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

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

▶ 華為技術有限公司の特許一覧

特許7454633パレット符号化を使用するエンコード装置、デコード装置および対応する方法
<>
  • 特許-パレット符号化を使用するエンコード装置、デコード装置および対応する方法 図1A
  • 特許-パレット符号化を使用するエンコード装置、デコード装置および対応する方法 図1B
  • 特許-パレット符号化を使用するエンコード装置、デコード装置および対応する方法 図2
  • 特許-パレット符号化を使用するエンコード装置、デコード装置および対応する方法 図3
  • 特許-パレット符号化を使用するエンコード装置、デコード装置および対応する方法 図4
  • 特許-パレット符号化を使用するエンコード装置、デコード装置および対応する方法 図5
  • 特許-パレット符号化を使用するエンコード装置、デコード装置および対応する方法 図6
  • 特許-パレット符号化を使用するエンコード装置、デコード装置および対応する方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-13
(45)【発行日】2024-03-22
(54)【発明の名称】パレット符号化を使用するエンコード装置、デコード装置および対応する方法
(51)【国際特許分類】
   H04N 19/70 20140101AFI20240314BHJP
   H04N 19/593 20140101ALI20240314BHJP
【FI】
H04N19/70
H04N19/593
【請求項の数】 22
【外国語出願】
(21)【出願番号】P 2022196094
(22)【出願日】2022-12-08
(62)【分割の表示】P 2021510825の分割
【原出願日】2019-08-30
(65)【公開番号】P2023024531
(43)【公開日】2023-02-16
【審査請求日】2022-12-21
(31)【優先権主張番号】62/725,132
(32)【優先日】2018-08-30
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/784,537
(32)【優先日】2018-12-23
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/786,314
(32)【優先日】2018-12-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
【住所又は居所原語表記】Huawei Administration Building, Bantian, Longgang District, Shenzhen, Guangdong 518129, P.R. China
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チェルニャーク,ローマン
(72)【発明者】
【氏名】イコニン,セルゲイ ユリエヴィチ
(72)【発明者】
【氏名】チェン,ジェンレェ
【審査官】岩井 健二
(56)【参考文献】
【文献】特開2021-010046(JP,A)
【文献】米国特許出願公開第2020/0092546(US,A1)
【文献】Benjamin Bross, Jianle Chen, and Shan Liu,Versatile Video Coding (Draft 2),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-K1001 (version 4),11th Meeting: Ljubljana, SI,2018年08月17日,pp.25-28
【文献】Jing Ye, Xiang Li, Shan Liu, and Xiaozhong Xu,CE15-related: palette mode when dual-tree is enabled,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-L0308,12th Meeting: Macao, CN,2018年09月,pp.1-3
【文献】Roman Chernyak, Sergey Ikonin, and Jianle Chen,CE15-related: Separate Palette Coding for Luma and Chroma components,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-L0427-v1,12th Meeting: Macao, CN,2018年09月,pp.1-3
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
デコード装置によって実装されるデコード方法であって:
対象符号化単位CUの分割タイプを決定するステップであって、
前記分割タイプは、
対象符号化単位が1つのルーマ符号化ブロックCBおよび2つのクロマCBを含む単一CUに分割される単一分割タイプ、または
対象符号化単位が、ルーマCBのみを含む別個のルーマCUおよび2つのクロマCBのみを含むクロマCUに分割される別個分割タイプのいずれかである、ステップと;
前記分割タイプが前記単一分割タイプである場合および前記分割タイプが前記別個分割タイプである場合の両方について、前記対象CUの前記分割タイプに基づいて、ビットストリームから前記対象CUおよび関連するパレット符号化情報をデコードするステップであって、前記関連するパレット符号化情報は、パレット符号化情報シンタックス要素を含み、前記パレット符号化情報シンタックス要素は、パレット予測子ベクトル、パレットのサイズ、エスケープ・フラグ、インデックス・マップのうちの任意のものまたは任意の組み合わせを含み、前記分割タイプが前記単一分割タイプである場合および前記分割タイプが前記別個分割タイプである場合の両方について、前記パレット符号化情報シンタックス要素は、前記対象CUの前記分割タイプに基づいて前記ビットストリームにおいて信号伝達される、ステップとを特徴とする、
方法。
【請求項2】
前記対象CUの前記分割タイプが前記単一分割タイプである場合、前記パレット符号化情報シンタックス要素は、Y、Cb、Cr成分を合わせたものについて、前記対象CUについて前記ビットストリームにおいて信号伝達されることを特徴とする、
請求項1に記載の方法。
【請求項3】
前記対象CUの前記分割タイプが前記別個分割タイプである場合、前記対象CUについて前記ビットストリームにおいて、Y成分についての前記パレット符号化情報シンタックス要素およびCb-Cr成分についての前記パレット符号化情報シンタックス要素が別個に信号伝達されることを特徴とする、
請求項1または2に記載の方法。
【請求項4】
前記対象CUの前記分割タイプが前記別個分割タイプである場合、前記パレット符号化情報シンタックス要素は、Y成分について、前記ルーマCUについて前記ビットストリームにおいて信号伝達されることを特徴とする、
請求項1または2に記載の方法。
【請求項5】
前記対象CUの前記分割タイプが前記別個分割タイプである場合、前記パレット符号化情報シンタックス要素は、前記クロマCUにおけるCb-Cr成分を合わせたものについて、前記ビットストリームにおいて信号伝達されることを特徴とする、
請求項1または2に記載の方法。
【請求項6】
前記対象CUの前記分割タイプが前記別個分割タイプである場合、前記クロマCUについての前記パレット符号化情報シンタックス要素の信号伝達は、前記対象CUの前記ルーマCUのパレット符号化制御フラグに依存することを特徴とする、
請求項1ないしのうちいずれか一項に記載の方法。
【請求項7】
前記対象CUの前記分割タイプが前記別個分割タイプである場合、前記クロマCUについての前記パレット符号化情報シンタックス要素の信号伝達は、次の規則、すなわち:
前記対象CUのすべてのルーマCBが1に等しいパレット符号化制御フラグを有する場合は、前記ビットストリームにおいて、前記クロマCBについてパレット符号化制御フラグを信号伝達し;
それ以外の場合は、前記クロマCBについてパレット符号化を使用しないという規則
に従って、前記対象CUの前記ルーマCUの前記パレット符号化制御フラグに依存することを特徴とする、
請求項に記載の方法。
【請求項8】
前記対象CUの前記分割タイプが前記別個分割タイプである場合、前記クロマCUについての前記パレット符号化情報シンタックス要素の信号伝達は、次の規則、すなわち:
前記対象CUのすべてのルーマCBが1に等しいパレット符号化制御フラグをもつ場合は、前記クロマCBについてのパレット符号化制御フラグが1に等しいと推定し、前記クロマCBについて前記パレット符号化情報シンタックス要素を前記ビットストリームにおいて信号伝達し;
それ以外の場合は、前記クロマCBについて前記パレット符号化制御フラグを前記ビットストリームにおいて信号伝達するという規則
に従って、前記対象CUの前記ルーマCUの前記パレット符号化制御フラグに依存することを特徴とする、
請求項に記載の方法。
【請求項9】
エンコード装置によって実装される符号化方法であって:
対象符号化単位CUの分割タイプを決定するステップと;
前記対象CUを、
単一分割タイプにおいて1つのルーマ符号化ブロックCBおよび2つのクロマCBを含む単一CUに、または
別個分割タイプにおいて前記ルーマCBのみを含む別個のルーマCUおよび前記2つのクロマCBのみを含むクロマCUに分割するステップと;
前記分割タイプが前記単一分割タイプである場合および前記分割タイプが前記別個分割タイプである場合の両方について、前記対象CUの前記分割タイプに依存して、前記対象CUおよび関連するパレット符号化情報をビットストリーム中にエンコードするステップであって、
前記関連するパレット符号化情報は、パレット符号化情報シンタックス要素を含み、前記パレット符号化情報シンタックス要素は、パレット予測子ベクトル、パレットのサイズ、エスケープ・フラグ、インデックス・マップのうちの任意のものまたは任意の組み合わせを含み、前記分割タイプが前記単一分割タイプである場合および前記分割タイプが前記別個分割タイプである場合の両方について、前記パレット符号化情報シンタックス要素は、前記対象CUの前記分割タイプに基づいて前記ビットストリームにおいて信号伝達される、ステップとを特徴とする、
方法。
【請求項10】
命令をもつコードを含む、非一時的媒体上に記憶されたプログラムであって、前記命令は、一つまたは複数のプロセッサによって実行されると該一つまたは複数のプロセッサに請求項1ないしのうちいずれか一項に記載の方法を実行させるものであることを特徴とする、プログラム。
【請求項11】
デコード装置(30)であって、
対象符号化単位CUの分割タイプを決定するステップであって、
前記分割タイプは、
対象符号化単位が1つのルーマ符号化ブロックCBおよび2つのクロマCBを含む単一CUに分割される単一分割タイプ、または
対象符号化単位が、ルーマCBのみを含む別個のルーマCUおよび2つのクロマCBのみを含むクロマCUに分割される別個分割タイプのいずれかである、ステップと;
前記分割タイプが前記単一分割タイプである場合および前記分割タイプが前記別個分割タイプである場合の両方について、前記対象CUの前記分割タイプに基づいて、ビットストリームから前記対象CUおよび関連するパレット符号化情報をデコードするステップであって、
前記関連するパレット符号化情報は、パレット符号化情報シンタックス要素を含み、前記パレット符号化情報シンタックス要素は、パレット予測子ベクトル、パレットのサイズ、エスケープ・フラグ、インデックス・マップのうちの任意のものまたは任意の組み合わせを含み、
前記分割タイプが前記単一分割タイプである場合および前記分割タイプが前記別個分割タイプである場合の両方について、前記パレット符号化情報シンタックス要素は、前記対象CUの前記分割タイプに基づいて前記ビットストリームにおいて信号伝達される、ステップとを実行するように構成された処理回路を含むことを特徴とする、
デコード装置。
【請求項12】
前記対象CUの前記分割タイプが前記単一分割タイプである場合、前記パレット符号化情報シンタックス要素は、Y、Cb、Cr成分を合わせたものについて、前記対象CUについて前記ビットストリームにおいて信号伝達されることを特徴とする、
請求項11に記載のデコード装置。
【請求項13】
前記対象CUの前記分割タイプが前記別個分割タイプである場合、前記対象CUについて前記ビットストリームにおいて、Y成分についての前記パレット符号化情報シンタックス要素およびCb-Cr成分についての前記パレット符号化情報シンタックス要素が別個に信号伝達される、
請求項11または12に記載のデコード装置。
【請求項14】
エンコード装置(20)であって、
対象符号化単位CUの分割タイプを決定するステップと;
前記対象CUを、
単一分割タイプにおいて1つのルーマ符号化ブロックCBおよび2つのクロマCBを含む単一CUに、または
別個分割タイプにおいて前記ルーマCBのみを含む別個のルーマCUおよび前記2つのクロマCBのみを含むクロマCUに分割するステップと;
前記分割タイプが前記単一分割タイプである場合および前記分割タイプが前記別個分割タイプである場合の両方について、前記対象CUの分割タイプに依存して、前記対象CUおよび関連するパレット符号化情報をビットストリーム中にエンコードするステップであって、
前記関連するパレット符号化情報は、パレット符号化情報シンタックス要素を含み、前記パレット符号化情報シンタックス要素は、パレット予測子ベクトル、パレットのサイズ、エスケープ・フラグ、インデックス・マップのうちの任意のものまたは任意の組み合わせを含み、前記分割タイプが前記単一分割タイプである場合および前記分割タイプが前記別個分割タイプである場合の両方について、前記パレット符号化情報シンタックス要素は、前記対象CUの前記分割タイプに基づいて前記ビットストリームにおいて信号伝達される、ステップとを実行するように構成された処理回路を含むことを特徴とする、
エンコード装置。
【請求項15】
前記対象CUの前記分割タイプが前記単一分割タイプである場合、前記パレット符号化情報シンタックス要素は、Y、Cb、Cr成分を合わせたものについて、前記対象CUについて前記ビットストリームにおいて信号伝達されることを特徴とする、
請求項14に記載のエンコード装置。
【請求項16】
前記対象CUの前記分割タイプが前記別個分割タイプである場合、前記ビットストリームにおいて、Y成分についての前記パレット符号化情報シンタックス要素およびCb-Cr成分についての前記パレット符号化情報シンタックス要素が別個に信号伝達されることを特徴とする、
請求項14または15に記載のエンコード装置。
【請求項17】
ビットストリームの形でビデオ・データを記憶するように構成された非一時的なメモリ記憶と;
請求項1ないしのうちいずれか一項に記載の方法のいずれかを実行するように構成されたビデオ・デコーダとを特徴とする、
ビデオ・データ・デコード装置。
【請求項18】
ビットストリームの形でビデオ・データを記憶するように構成された非一時的なメモリ記憶と;
請求項に記載の方法のいずれかを実行するように構成されたビデオ・エンコーダとを特徴とする、
ビデオ・データ・エンコード装置。
【請求項19】
ビットストリームを記憶する方法であって:
ビットストリームを取得するステップであって、前記ビットストリームは、対象CUおよび関連するパレット符号化情報を含み、前記関連するパレット符号化情報はパレット符号化情報シンタックス要素を含み、前記パレット符号化情報シンタックス要素は、パレット予測子ベクトル、パレットのサイズ、エスケープ・フラグ、インデックス・マップのうちの任意のものまたは任意の組み合わせを含み、前記対象CUの分割タイプが単一分割タイプである場合および前記分割タイプが別個分割タイプである場合の両方について、前記パレット符号化情報シンタックス要素は、前記対象CUの前記分割タイプに基づいて前記ビットストリームにおいて信号伝達される、ステップと;
前記ビットストリームを少なくとも1つの記憶媒体に記憶するステップとを含む、
方法。
【請求項20】
少なくとも1つの記憶媒体および少なくとも1つの通信インターフェースを有する、ビットストリームを記憶する装置であって:
前記少なくとも1つの通信インターフェースはビットストリームを送信または受信するように構成されており;
前記少なくとも1つの記憶媒体は前記ビットストリームを記憶するように構成されており、
前記ビットストリームは、対象CUおよび関連するパレット符号化情報を含み、前記関連するパレット符号化情報はパレット符号化情報シンタックス要素を含み、前記パレット符号化情報シンタックス要素は、パレット予測子ベクトル、パレットのサイズ、エスケープ・フラグ、インデックス・マップのうちの任意のものまたは任意の組み合わせを含み、前記対象CUの分割タイプが単一分割タイプである場合および前記分割タイプが別個分割タイプである場合の両方について、前記パレット符号化情報シンタックス要素は、前記対象CUの前記分割タイプに基づいて前記ビットストリームにおいて信号伝達される、
装置。
【請求項21】
ビットストリームを送達する方法であって:
少なくとも1つのビットストリームを少なくとも1つの記憶媒体に記憶するステップと;
前記少なくとも1つの記憶媒体のうちの1つからターゲット・ビットストリームを取得するステップであって、前記ターゲット・ビットストリームは、対象CUおよび関連するパレット符号化情報を含み、前記関連するパレット符号化情報はパレット符号化情報シンタックス要素を含み、前記対象CUの分割タイプが単一分割タイプである場合および前記分割タイプが別個分割タイプである場合の両方について、前記パレット符号化情報シンタックス要素は、前記対象CUの前記分割タイプに基づいて前記ビットストリームにおいて信号伝達される、ステップと;
前記ターゲット・ビットストリームを宛先装置に送信するステップとを含む、
方法。
【請求項22】
ビットストリームを送達するシステムであって:
少なくとも1つのビットストリームを記憶するように構成された少なくとも1つの記憶媒体と;
前記少なくとも1つの記憶媒体のうちの1つからターゲット・ビットストリームを取得し、前記ターゲット・ビットストリームを宛先装置に送信するように構成された少なくとも1つのプロセッサとを有しており、前記ターゲット・ビットストリームは、対象CUおよび関連するパレット符号化情報を含み、前記関連するパレット符号化情報はパレット符号化情報シンタックス要素を含み、前記パレット符号化情報シンタックス要素は、パレット予測子ベクトル、パレットのサイズ、エスケープ・フラグ、インデックス・マップのうちの任意のものまたは任意の組み合わせを含み、前記対象CUの分割タイプが単一分割タイプである場合および前記分割タイプが別個分割タイプである場合の両方について、前記パレット符号化情報シンタックス要素は、前記対象CUの前記分割タイプに基づいて前記ビットストリームにおいて信号伝達される、
システム。
【発明の詳細な説明】
【技術分野】
【0001】
本願(開示)の実施形態は、概括的には、ピクチャー処理の分野に関し、より詳細には、ピクチャー処理装置およびエンコードおよびデコードのための方法によって別個ツリー(Separate Tree)手法が使用される場合のパレット符号化(Palette coding)に関する。
【背景技術】
【0002】
ビデオ符号化(ビデオ・エンコードおよびデコード)は、広範囲のデジタルビデオアプリケーション、たとえば、放送デジタルTV、インターネットおよびモバイルネットワークを通じたビデオ伝送、ビデオチャット、ビデオ会議のようなリアルタイムの会話アプリケーション、DVDおよびブルーレイディスク、ビデオコンテンツの収集および編集システム、ならびにセキュリティアプリケーションのビデオカメラにおいて使用される。
【0003】
比較的短いビデオを描写するために必要とされるビデオ・データの量でさえ、かなりになることがあり、そのことは、データがストリーミングされるか、または限られた帯域幅容量をもつ通信ネットワークを通じて他の仕方で通信される場合に、困難を生じる可能性がある。よって、ビデオ・データは、一般に、現代の遠隔通信ネットワークを通じて通信される前に圧縮される。メモリ資源が制限される可能性があるため、ビデオが記憶装置に記憶される場合には、ビデオのサイズも問題となる可能性がある。ビデオ圧縮装置は、しばしば、伝送または記憶の前にビデオ・データを符号化するために源においてソフトウェアおよび/またはハードウェアを使用し、それによりデジタルビデオ画像を表わすのに必要とされるデータの量を減少させる。次いで、圧縮されたデータは、ビデオ・データをデコードするビデオ圧縮解除装置によって宛先で受領される。限られたネットワーク資源およびますます増大する、より高いビデオ品質の要求のため、ピクチャー品質の犠牲がほとんどまたは全くない、圧縮比を改善する改良された圧縮および圧縮解除技術が望ましい。
【発明の概要】
【0004】
本願の実施形態は、独立請求項による、エンコードおよびデコードするための装置および方法を提供する。
【0005】
上記および他の目的は、独立請求項の主題事項によって達成される。さらなる実装形態は、従属請求項、本記述および図面から明白である。
【0006】
ある実施形態によれば、デコード装置によって実装されるデコード方法は、対象符号化単位CUの分割タイプを決定するステップであって、前記分割タイプは、対象符号化単位が1つのルーマ符号化ブロックCBおよび2つのクロマCBを含む単一CUに分割される単一分割タイプ、または対象符号化単位が、ルーマCBのみを含む別個のルーマCUおよび2つのクロマCBのみを含むクロマCUに分割される別個分割タイプのいずれかである、ステップと;対象CUの分割タイプに基づいて、ビットストリームから対象CUおよび関連するパレット符号化情報をデコードするステップとを含む。
【0007】
関連するパレット符号化情報は、対象CUに関連付けられることを注意しておく。対象CUは現在CUと記されることもありえ、これはそれが現在処理されているCUであることを意味する。分割タイプに基づいて対象CUおよびパレット符号化情報をデコードすることの利点の一つは、効率的なシンタックスの可能性である。パレット符号化情報は、2つの分割タイプについて異なる可能性があるため、対応するパレットを用いて符号化された対象CUも異なることになる。よって、対象CUおよびパレット符号化情報を符号化する際の分割タイプを考慮することによって、より効率的なエンコードおよび/または二値化が可能である。
【0008】
対象符号化単位がルーマCBのみを含む別個のルーマCUおよび2つのクロマCBのみを含むクロマCUに分割される別個分割タイプは、ルーマ符号化単位についてのツリーおよびクロマ符号化単位の2つの(一般的には一つまたは複数の)構成要素(符号化ブロック)についてのツリーという、2つの別個の分割ツリーがあることを意味する。これはまた、対象符号化単位が、サイズおよび/または位置において互いに対応しないルーマ符号化単位(単数または複数)およびクロマ符号化単位(単数または複数)を含みうることを意味する。同様に、上記の用語「1つのルーマ符号化ブロックCBおよび2つのクロマCBを含む単一CUに分割される」は、必ずしも、CUがより小さな単位にさらに分割(区分)されえないことを意味しない。むしろ、すべての成分(Y、Cb、Cr)が同じ分割ツリーを共有していることを意味する。
【0009】
上述の実施形態に加えて、別の実施形態では、関連するパレット符号化情報は、パレット符号化情報シンタックス要素を含み、パレット符号化情報シンタックス要素は、対象CUの分割タイプに基づいてビットストリームにおいて信号伝達される。
【0010】
たとえば、デコーダでは、パレット符号化情報シンタックス要素は分割タイプと一緒に、パレットを決定し、それに応じて対象CUをデコードするために使用される。
【0011】
たとえば、対象CUの分割タイプが単一分割タイプである場合、パレット符号化情報シンタックス要素は、Y、Cb、Cr成分を合わせたものについて一度、対象CUについてビットストリームにおいて信号伝達される。
【0012】
ここで、「Y、Cb、Cr成分を合わせたものについて一度」という用語は、パレット符号化情報シンタックス要素が3つの成分について共通であることを意味する。たとえば、パレット符号化情報(info)シンタックス要素は、パレット・ルックアップテーブルの項目、または複数のルックアップテーブルのうちの1つのルックアップテーブルへの参照を含んでいてもよく、ルックアップテーブル(単数または複数)は、Y、Cb、Cr成分について共通である。この例では、色成分はY、Cb、Crであることを注意しておく。しかしながら、本開示は、それに限定されず、RGB、YUV等の任意の他の色空間が使用されうる。さらに、色空間には3つより多い、または3つより少ない成分が存在することもある。
【0013】
一例では、対象CUの分割タイプが別個分割タイプである場合、パレット符号化情報シンタックス要素は、対象CUについてビットストリームにおいて2回信号伝達される。Y成分について1回、Cb-Cr成分を合わせたもの(結合したもの)について1回である。
【0014】
この例では、Y成分についての別個の(他の色成分とは別の)パレットが提供され、対応する情報が信号伝達されてもよい。その場合、デコーダは、信号伝達されるパレット符号化情報シンタックス要素を抽出し、そこからY成分についてのパレットを導出する。
【0015】
上述の実施形態および例のいずれかに加えて、別の実施形態では、対象CUの分割タイプが別個分割タイプである場合、パレット符号化情報シンタックス要素は、Y成分について一度、ルーマCUについてビットストリームにおいて信号伝達される。
【0016】
この実施形態では、Cb-Cr成分についてのパレット符号化情報シンタックス要素は、統合Cb-Crパレット項目を示すために提供されてもよく(たとえば、1つのパレット・インデックスが、Cb成分値とCr成分値の組み合わせを参照する)、Y成分についてのパレット符号化情報シンタックス要素は、上述のように別個に提供されてもよい。
【0017】
ある実施形態では、対象CUの分割タイプが別個分割タイプである場合、パレット符号化情報シンタックス要素は、クロマCU内のCb-Cr成分を合わせたものについて一度、ビットストリームにおいて信号伝達される。
【0018】
たとえば、パレット符号化情報シンタックス要素は、パレット(単数または複数)予測子ベクトル、パレット(単数または複数)のサイズ、パレット(単数または複数)、エスケープ・フラグ(単数または複数)、インデックス・マップ(単数または複数)のうちの任意のものまたは任意の組み合わせを含む。
【0019】
追加的または代替的に、対象CUの分割タイプが別個分割タイプである場合、クロマCUについてのパレット符号化情報シンタックス要素の信号伝達は、対象CUのルーマCUのパレット符号化制御フラグに依存する。
【0020】
ここで、対象CUのルーマCUは、共位置のルーマCU(単数または複数)を参照する。共位置のルーマCUとは、(対象CUの)クロマCUと(少なくとも部分的に)同じサンプル位置上にあるルーマCUである。パレット符号化制御フラグは、パレット符号化がそれぞれのルーマまたはクロマCUに適用されるか否かを示すことができる。本明細書の実施形態の任意のものにおける対象CUは、符号化ツリー単位であってもよく、または符号化ツリー単位に含まれる符号化単位であってもよいことを注意しておく。
【0021】
代替的または追加的に、対象CUの分割タイプが別個分割タイプである場合、クロマCUについてのパレット符号化情報シンタックス要素の信号伝達は、次の規則に従って、対象CUのルーマCUのパレット符号化制御フラグに依存する:対象CUのすべてのルーマCBが1に等しいパレット符号化制御フラグを有する場合、ビットストリームにおいて、クロマCBのためのパレット符号化制御フラグを信号伝達する。それ以外の場合は、クロマCBのためにパレット符号化を使用しない。
【0022】
言い換えると、クロマCBと重複する(またはそれに含まれる)すべてのルーマCBが1に設定されたフラグをもつ場合、そのことは、すべてのルーマCBがパレット符号化を使用することを意味する。この場合、クロマCBフラグが信号伝達されてもよい。それ以外の場合、クロマCBのフラグは0であると推測されてもよい。規約は逆にされてもよいことを注意しておく。すなわち、上記の場合におけるパレット符号化制御フラグは、ビットストリーム中では実際には1ではなく0として示されてもよく、その逆も可能である。一般に、パレット符号化制御フラグは、第1の値と第2の値という2つの異なる値のうちの一方をとることができる。上記の「1」は第1の値に対応し、「0」(または「それ以外の場合」)は第2の値に対応する。
【0023】
別の例では、対象CUの分割タイプが別個分割タイプである場合、クロマCUについてのパレット符号化情報シンタックス要素の信号伝達は、次の規則に従って、対象CUのルーマCUのパレット符号化制御フラグに依存する:対象CUのすべてのルーマCBが1に等しいパレット符号化制御フラグをもつ場合、クロマCBについてのパレット符号化制御フラグが1に等しいと推定し、クロマCBについてのパレット符号化情報シンタックス要素をビットストリームにおいて信号伝達する。それ以外の場合は、クロマCBについてのパレット符号化制御フラグをビットストリームにおいて信号伝達する。
【0024】
ある実施形態によれば、エンコード装置によって実装される符号化方法であって:対象符号化単位CUの分割タイプを決定するステップと;前記対象CUを、単一分割タイプにおいて1つのルーマ符号化ブロックCBおよび2つのクロマCBを含む単一CUに、または別個分割タイプにおいて前記ルーマCBのみを含む別個のルーマCUおよび前記2つのクロマCBのみを含むクロマCUに分割するステップと;前記対象CUの分割タイプに依存して、前記対象CUおよび前記関連するパレット符号化情報をビットストリーム中にエンコードするステップとを含む、方法。
【0025】
さらに、非一時的(記憶)媒体上に記憶され、一つまたは複数のプロセッサによって実行されると、該一つまたは複数のプロセッサに上述した方法のいずれかを実行させる命令をもつコードを含むプログラムが提供される。
【0026】
ある実施形態によれば、対象符号化単位CUの分割タイプを決定するステップであって、前記分割タイプは、対象符号化単位が1つのルーマ符号化ブロックCBおよび2つのクロマCBを含む単一CUに分割される単一分割タイプ、または対象符号化単位が、ルーマCBのみを含む別個のルーマCUおよび2つのクロマCBのみを含むクロマCUに分割される別個分割タイプのいずれかである、ステップと;対象CUの分割タイプに基づいて、ビットストリームから対象CUおよび関連するパレット符号化情報をデコードするステップとを実行するように構成された処理回路を含むデコード装置が提供される。
【0027】
ある実施形態によれば、対象符号化単位CUの分割タイプを決定し;前記対象CUを、単一分割タイプにおいて1つのルーマ符号化ブロックCBおよび2つのクロマCBを含む単一CUに、または別個分割タイプにおいて前記ルーマCBのみを含む別個のルーマCUおよび前記2つのクロマCBのみを含むクロマCUに分割し;前記対象CUの分割タイプに依存して、前記対象CUおよび前記関連するパレット符号化情報をビットストリーム中にエンコードするように構成された処理回路を含むエンコード装置が提供される。
【0028】
一つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、明細書、図面、および特許請求の範囲から明白であろう。
【図面の簡単な説明】
【0029】
下記では、本発明の実施形態が、添付の図面および図を参照して、より詳細に説明される。
図1A】本発明の実施形態を実装するように構成されたビデオ符号化システムの例を示すブロック図である。
図1B】本発明の実施形態を実装するように構成されたビデオ符号化システムの別の例を示すブロック図である。
図2】本発明の実施形態を実装するように構成されたビデオ・エンコーダの例を示すブロック図である。
図3】本発明の実施形態を実装するように構成されたビデオ・デコーダの例示的な構造を示すブロック図である;
図4】エンコード装置またはデコード装置の例を示すブロック図である。
図5】エンコード装置またはデコード装置の別の例を示すブロック図である。
図6】コンテンツ送達サービスを実現するコンテンツ供給システム3100の例示的構造を示すブロック図である。
図7】端末装置の例の構造を示すブロック図である。
【0030】
下記では、同一の参照符号は、そうでないことが明示的に指定されていない場合は、同一のまたは少なくとも機能的に等価な特徴を指す。
【発明を実施するための形態】
【0031】
以下の説明では、本開示の一部をなし、本発明の実施形態の具体的な側面または本発明の実施形態が使用されうる具体的な側面を例として示す添付の図面が参照される。本発明の実施形態は、他の側面で使用されてもよく、図に示されていない構造的または論理的変更を含みうることが理解される。よって、以下の詳細な説明は、限定的な意味で解釈されるべきではなく、本発明の範囲は、添付の特許請求の範囲によって定義される。
【0032】
たとえば、記載された方法に関連する開示は、当該方法を実行するように構成された対応する装置またはシステムについても真であることがあり、その逆もありうることが理解される。たとえば、一つまたは複数の特定の方法ステップが記載されている場合、対応する装置は、記載された一つまたは複数の方法ステップ(たとえば、一つまたは複数のステップを実行する1つのユニット、または複数のステップの一つ以上をそれぞれが実行する複数のユニット)を実行するための一つまたは複数のユニット、たとえば機能ユニットを、たとえそのような一つまたは複数のユニットが明示的に記載または図示されていなくても、含んでいてもよい。他方、たとえば、一つまたは複数のユニット、たとえば、機能ユニットに基づいて特定の装置が記載される場合、対応する方法は、一つまたは複数のユニットの機能を実行するための1つのステップ(たとえば、前記一つまたは複数のユニットの機能を実行する1つのステップ、または複数のユニットのうちの一つまたは複数の機能をそれぞれ実行する複数のステップ)を、たとえそのような一つまたは複数のステップが明示的に記載または図示されていなくても、含んでいてもよい。さらに、本明細書に記載されるさまざまな例示的な実施形態および/または側面の特徴は、特に断りのない限り、互いに組み合わされてもよいことができることが理解される。
【0033】
ビデオ符号化は、典型的には、ビデオまたはビデオ・シーケンスを形成するピクチャーのシーケンスの処理をいう。「ピクチャー」という用語の代わりに、「フレーム」または「画像」という用語が、ビデオ符号化の分野では同義語として使用されることがある。ビデオ符号化(または、符号化全般)は、ビデオ・エンコードおよびビデオ・デコードという2つの部分を有する。ビデオ・エンコードは、源側で実行され、典型的には、(より効率的な記憶および/または伝送のために)ビデオ・ピクチャーを表現するのに必要なデータ量を減らすために、もとのビデオ・ピクチャーを(たとえば、圧縮によって)処理することを含む。ビデオ・デコードは、宛先側で実行され、典型的には、ビデオ・ピクチャーを再構成するために、エンコーダと比較して逆の処理を含む。ビデオ・ピクチャー(または、ピクチャー全般)の「符号化」に言及する実施形態は、ビデオ・ピクチャーまたはそれぞれのビデオ・シーケンスの「エンコード」または「デコード」に関連するものと理解される。エンコード部分とデコード部分の組み合わせは、コーデック(コーディングおよびデコーディング)とも呼ばれる。
【0034】
損失のないビデオ符号化の場合、もとのビデオ・ピクチャーが再構成できる。すなわち、再構成されたビデオ・ピクチャーは、もとのビデオ・ピクチャーと同じ品質をもつ(記憶または伝送の間に伝送損失またはその他のデータ損失がないとする)。損失のあるビデオ符号化の場合、ビデオ・ピクチャーを表わすデータの量を減らすために、たとえば量子化によるさらなる圧縮が実行され、これはデコーダにおいて完全に再構成されることができない。すなわち、再構成されたビデオ・ピクチャーの品質は、もとのビデオ・ピクチャーの品質に比べ低いまたは悪い。
【0035】
いくつかのビデオ符号化標準は、「損失のあるハイブリッド・ビデオ・コーデック」のグループに属する(すなわち、サンプル領域における空間的および時間的予測と、変換領域における量子化を適用するための2D変換符号化を組み合わせる)。ビデオ・シーケンスの各ピクチャーは、典型的には、重複しないブロックの集合に分割され、符号化は典型的にはブロック・レベルで実行される。換言すれば、エンコーダでは、ビデオは、典型的には、ブロック(ビデオ・ブロック)レベルで処理、すなわち、エンコードされる。これはたとえば、空間的(ピクチャー内)予測および/または時間的(ピクチャー間)予測を使用して予測ブロックを生成し、現在のブロック(現在処理されている/処理されるべきブロック)から予測ブロックを減算して残差ブロックを取得し、残差ブロックを変換し、変換領域において残差ブロックを量子化して、送信されるべきデータ量を低減すること(圧縮)による。一方、デコーダでは、エンコーダに比べ逆の処理が、エンコードされたまたは圧縮されたブロックに適用されて、表現のために現在のブロックを再構成する。さらに、エンコーダはデコーダ処理ループを複製し、両者が同一の予測(たとえばイントラ予測およびインター予測)および/または再構成を、処理、すなわち、その後のブロックの符号化のために、生成する。
【0036】
ビデオ符号化システム10の以下の実施形態では、図1図3に基づいて、ビデオ・エンコーダ20およびビデオ・デコーダ30が記述される。
【0037】
図1Aは、本願の技術を利用することができる例示的な符号化システム10、たとえばビデオ符号化システム10(または略して符号化システム10)を示す概略ブロック図である。ビデオ符号化システム10のビデオ・エンコーダ20(または略してエンコーダ20)およびビデオ・デコーダ30(または略してデコーダ30)は、本願に記載されるさまざまな例による技術を実行するように構成されうる装置の例を表わす。
【0038】
図1Aに示されるように、符号化システム10は、エンコードされたピクチャー・データ21を、たとえば該エンコードされたピクチャー・データ13をデコードする宛先装置14に提供するように構成された源装置12を有する。源装置12は、エンコーダ20を有し、追加的すなわち任意的に、ピクチャー源16、プリプロセッサ(または前処理ユニット)18、たとえばピクチャー・プリプロセッサ18、および通信インターフェースもしくは通信ユニット22を有していてもよい。
【0039】
ピクチャー源16は、任意の種類のピクチャー捕捉装置、たとえば、実世界ピクチャーを捕捉するためのカメラ、および/または任意の種類のピクチャー生成装置、たとえば、コンピュータ・アニメーション化されたピクチャーを生成するためのコンピュータ・グラフィックス・プロセッサ、または、実世界ピクチャー、コンピュータ生成されたピクチャー(たとえば、スクリーン・コンテンツ、仮想現実(VR)ピクチャー)、および/またはそれらの任意の組み合わせ(たとえば、拡張現実(AR)ピクチャー)を取得および/または提供するための任意の種類の他の装置を有するか、またはそのようなものであってよい。ピクチャー源は、上記のピクチャーのいずれかを記憶する任意の種類のメモリまたは記憶であってもよい。
【0040】
プリプロセッサ18および前処理ユニット18によって実行される処理と区別して、ピクチャーまたはピクチャー・データ17は、生ピクチャーまたは生ピクチャー・データ17と称されてもよい。
【0041】
プリプロセッサ18は、(生)ピクチャー・データ17を受け取り、ピクチャー・データ17に対して前処理を実行し、前処理されたピクチャー19または前処理されたピクチャー・データ19を得るように構成される。プリプロセッサ18によって実行される前処理は、たとえば、トリミング、色フォーマット変換(たとえば、RGBからYCbCrへ)、色補正、またはノイズ除去を含んでいてもよい。前処理ユニット18は、任意的な構成要素であってもよいことが理解できる。
【0042】
ビデオ・エンコーダ20は、前処理されたピクチャー・データ19を受領し、エンコードされたピクチャー・データ21を提供するように構成される(さらなる詳細は、たとえば図2に基づいて後述する)。
【0043】
源装置12の通信インターフェース22は、エンコードされたピクチャー・データ21を受領し、エンコードされたピクチャー・データ21(またはその任意のさらなる処理バージョン)を、通信チャネル13を通じて、別の装置、たとえば宛先装置14または任意の他の装置に、記憶または直接再構成のために送信するように構成されてもよい。
【0044】
宛先装置14は、デコーダ30(たとえば、ビデオ・デコーダ30)を有しており、追加的すなわち任意的に、通信インターフェースまたは通信ユニット28、ポストプロセッサ32(または後処理ユニット32)、および表示装置34を有していてもよい。
【0045】
宛先装置14の通信インターフェース28は、エンコードされたピクチャー・データ21(またはそのさらなる処理されたバージョン)を、たとえば源装置12から直接、または他の任意の源、たとえば記憶装置、たとえばエンコード・ピクチャー・データ記憶装置から受領し、エンコードされたピクチャー・データ21をデコーダ30に提供するように構成される。
【0046】
通信インターフェース22および通信インターフェース28は、源装置12と宛先装置14との間の直接通信リンク、たとえば直接的な有線もしくは無線接続を介して、または任意の種類のネットワーク、たとえば有線もしくは無線ネットワークもしくはそれらの任意の組み合わせ、または任意の種類の私的および公的ネットワーク、またはそれらの任意の種類の組み合わせを介して、エンコードされたピクチャー・データ21またはエンコードされたデータ13を送信または受信するように構成されてもよい。
【0047】
通信インターフェース22は、たとえば、エンコードされたピクチャー・データ21を適切なフォーマット、たとえば、パケットにパッケージ化し、および/またはエンコードされたピクチャー・データを通信リンクもしくは通信ネットワークを通じた伝送のための任意の種類の伝送エンコードもしくは処理を用いて処理するように構成されてもよい。
【0048】
通信インターフェース22の相手をなす通信インターフェース28は、たとえば、送信されたデータを受信し、任意の種類の対応する伝送デコードもしくは処理および/またはパッケージ化解除を用いて伝送データを処理して、エンコードされたピクチャー・データ21を得るように構成されてもよい。
【0049】
通信インターフェース22および通信インターフェース28の両方は、図1Aにおいて源装置12から宛先装置14を指す通信チャネル13についての矢印によって示されるような一方向通信インターフェース、または双方向通信インターフェースとして構成されることができ、たとえば、メッセージを送信および受信するように構成されてもよい。たとえば接続をセットアップするため、通信リンクおよび/またはデータ伝送、たとえばエンコードされたピクチャー・データ伝送に関連する任意の他の情報を受け取り確認および交換するためである。
【0050】
デコーダ30は、エンコードされたピクチャー・データ21を受信し、デコードされたピクチャー・データ31またはデコードされたピクチャー31を提供するように構成される(さらなる詳細は、たとえば図3または図5に基づいて後述する)。
【0051】
宛先装置14のポストプロセッサ32は、デコードされたピクチャー・データ31(再構成されたピクチャー・データとも呼ばれる)、たとえばデコードされたピクチャー31を後処理して、後処理されたピクチャー・データ33、たとえば後処理されたピクチャー33を得るように構成される。後処理ユニット32によって実行される後処理は、たとえば、色フォーマット変換(たとえば、YCbCrからRGBへ)、色補正、トリミング、または再サンプリング、または、たとえばデコードされたピクチャー・データ31を、たとえば表示装置34による、表示のために準備するための任意の他の処理を含むことができる。
【0052】
宛先装置14の表示装置34は、ピクチャーを、たとえばユーザーまたは閲覧者に対して表示するために、後処理されたピクチャー・データ33を受領するように構成される。表示装置34は、再構成されたピクチャーを表現するための任意の種類のディスプレイ、たとえば、統合されたまたは外部のディスプレイまたはモニターであってもよく、またはそれを含んでいてもよい。ディスプレイは、たとえば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマディスプレイ、プロジェクター、マイクロLEDディスプレイ、液晶オン・シリコン(LCoS)、デジタル光プロセッサ(DLP)、または任意の他の種類のディスプレイを含みうる。
【0053】
図1Aは、源装置12および宛先装置14を別個の装置として描いているが、装置の実施形態は、両方もしくは両方の機能、源装置12もしくは対応する機能および宛先装置14もしくは対応する機能を含んでいてもよい。そのような実施形態では、源装置12または対応する機能と宛先装置14または対応する機能は、同じハードウェアおよび/またはソフトウェアを使用して、または別個のハードウェアおよび/またはソフトウェアまたはそれらの任意の組み合わせによって実装されることができる。
【0054】
前記記述に基づいて当業者には明白であろうように、異なるユニットの機能または図1Aに示されるような源装置12および/または宛先装置14内の機能の存在および(厳密な)分割は、実際の装置および用途に依存して変わりうる。
【0055】
エンコーダ20(たとえば、ビデオ・エンコーダ20)、またはデコーダ30(たとえば、ビデオ・デコーダ30)、またはエンコーダ20とデコーダ30の両方は、図1Bに示されるような処理回路、たとえば、一つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディクリート論理、ハードウェア、専用のビデオ符号化、またはそれらの任意の組み合わせを介して実装されうる。エンコーダ20は、図2のエンコーダ20および/または本明細書に記載される任意の他のエンコーダ・システムまたはサブシステムに関して論じられるさまざまなモジュールを具現するために、処理回路46を介して実装されてもよい。デコーダ30は、図3のデコーダ30および/または本明細書に記載される任意の他のデコーダ・システムまたはサブシステムに関して論じられるさまざまなモジュールを具現するために、処理回路46を介して実装されてもよい。処理回路は、後述するように、さまざまな動作を実行するように構成されうる。図5に示されるように。技術が部分的にソフトウェアで実装される場合、装置が、好適な非一時的なコンピュータ読み取り可能な記憶媒体に該ソフトウェアのための命令を記憶してもよく、一つまたは複数のプロセッサを使用してハードウェアにおいて該命令を実行して、本開示の技術を実行してもよい。ビデオ・エンコーダ20とビデオ・デコーダ30のいずれかも、たとえば図1Bに示されるように、組み合わされたエンコーダ/デコーダ(コーデック)の一部として単一の装置内に統合されてもよい。
【0056】
源装置12および宛先装置14は、任意の種類のハンドヘルドもしくは固定装置、たとえばノートブックまたはラップトップコンピュータ、携帯電話、スマートフォン、タブレットまたはタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビ、表示装置、デジタルメディアプレーヤー、ビデオゲーム機、ビデオストリーミング装置(コンテンツサービスサーバーまたはコンテンツ送達サーバーなど)、放送受信機装置、放送送信機装置などを含む、広範囲の装置の任意のものを含むことができ、オペレーティング・システムを使用しなくてもよく、あるいは任意の種類のオペレーティング・システムを使用してもよい。
【0057】
場合によっては、源装置12および宛先装置14は、無線通信用のために装備されてもよい。よって、源装置12および宛先装置14は、無線通信装置であってもよい。場合によっては、図1Aに示されるビデオ符号化システム10は、単に例であり、本願の技術は、必ずしもエンコード装置とデコード装置との間のデータ通信を含まないビデオ符号化場面(たとえば、ビデオ・エンコードまたはビデオ・デコード)に適用されうる。他の例では、データはローカルメモリから取り出される、ネットワークを通じてストリーミングされる、などされる。ビデオ・エンコード装置は、データをエンコードし、メモリに格納することができ、および/またはビデオ・デコード装置は、メモリからデータを取り出し、デコードすることができる。いくつかの例では、エンコードおよびデコードは、互いに通信せず、単にデータをメモリにエンコードする、および/またはデータをメモリから取り出してデコードする装置によって実行される。
【0058】
記述の便宜上、本発明の実施形態は、本明細書では、たとえば、高効率ビデオ符号化(HEVC)または多用途ビデオ符号化(VVC)の参照ソフトウェア、ITU-Tビデオ符号化エキスパートグループ(VCEG)およびISO/IEC動画像エキスパートグループ(MPEG)のビデオ符号化に関する統合協働チーム(Joint Collaboration Team on Video Coding、JCT-VC)によって開発された次世代ビデオ符号化規格を参照して記載される。当業者は、本発明の実施形態がHEVCまたはVVCに限定されないことを理解するであろう。
【0059】
エンコーダおよびエンコード方法
図2は、本願の技術を実装するように構成された例示的なビデオ・エンコーダ20の概略ブロック図を示す。図2の例では、ビデオ・エンコーダ20は、入力201(または入力インターフェース201)、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループ・フィルタ・ユニット220、デコードピクチャーバッファ(decoded picture buffer、DPB)230、モード選択ユニット260、エントロピー・エンコード・ユニット270、および出力272(または出力インターフェース272)を有する。モード選択ユニット260は、インター予測ユニット244と、イントラ予測ユニット254と、分割ユニット262とを含んでいてもよい。インター予測ユニット244は、動き推定ユニットおよび動き補償ユニット(図示せず)を含んでいてもよい。図2に示されるビデオ・エンコーダ20は、ハイブリッド・ビデオ・エンコーダまたはハイブリッド・ビデオ・コーデックによるビデオ・エンコーダと称されてもよい。
【0060】
残差計算ユニット204、変換処理ユニット206、量子化ユニット208、モード選択ユニット260はエンコーダ20の順方向信号経路を形成すると称されてもよく、一方、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループ・フィルタ220、デコードピクチャーバッファ(DPB)230、インター予測ユニット244、およびイントラ予測ユニット254は、ビデオ・エンコーダ20の逆方向信号経路を形成すると称されてもよい。ビデオ・エンコーダ20の逆方向信号経路はデコーダ(図3のビデオ・デコーダ30参照)の信号経路に対応する。逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループ・フィルタ220、デコードピクチャーバッファ(DPB)230、インター予測ユニット244、およびイントラ予測ユニット254は、ビデオ・エンコーダ20の「組み込みデコーダ」をなすとも称される。
【0061】
ピクチャーおよびピクチャー分割(ピクチャーとブロック)
エンコーダ20は、たとえば入力201を介してピクチャー17(またはピクチャー・データ17)、たとえばビデオまたはビデオ・シーケンスを形成するピクチャーのシーケンスのピクチャーを受領するように構成されてもよい。受領されたピクチャーまたはピクチャー・データは、前処理されたピクチャー19(または前処理されたピクチャー・データ19)であってもよい。簡単のために、以下の記述は、ピクチャー17を参照する。ピクチャー17はまた、現在ピクチャーまたは符号化されるべきピクチャーと称されてもよい(特に、ビデオ符号化においては、現在ピクチャーを他のピクチャー、たとえば、同じビデオ・シーケンス、すなわち現在ピクチャーをも含むビデオ・シーケンスの、以前にエンコードおよび/またはデコードされたピクチャーから区別するために)。
【0062】
(デジタル)ピクチャーは、強度値をもつサンプルの二次元アレイまたはマトリクスとみなされるか、またはみなされることができる。アレイ中のサンプルは、ピクセル(ピクチャー・エレメントの短縮形)または画素と称されてもよい。アレイまたはピクチャーの水平および垂直方向(または軸)のサンプル数は、ピクチャーのサイズおよび/または解像度を定義する。色の表現のためには、典型的には、3つの色成分が使用される。すなわち、ピクチャーは、3つのサンプル・アレイで表現される、または3つのサンプル・アレイを含むことができる。RBGフォーマットまたは色空間においては、ピクチャーは、対応する赤、緑および青のサンプル・アレイを含む。しかしながら、ビデオ符号化においては、各ピクセルは、典型的には、ルミナンスおよびクロミナンス・フォーマットまたは色空間、たとえば、Yで示されるルミナンス成分(時に代わりにLが使用される)、とCbおよびCrで示される2つのクロミナンス成分を含むYCbCrで表現される。ルミナンス(または略してルーマ)成分Yは輝度またはグレーレベル強度(例えば、グレースケール・ピクチャーにおけるような)を表わし、その一方、2つのクロミナンス(または略してクロマ)成分CbおよびCrは色度または色情報成分を表わす。よって、YCbCrフォーマットのピクチャーは、ルミナンス・サンプル値(Y)のルミナンス・サンプル・アレイと、クロミナンス値(CbおよびCr)の2つのクロミナンス・サンプル・アレイとを含む。RGBフォーマットのピクチャーは、YCbCrフォーマットに変換または転換されることができ、その逆も可能である。このプロセスは色変換または転換としても知られる。ピクチャーがモノクロである場合、ピクチャーはルミナンス・サンプル・アレイのみを含んでいてもよい。したがって、ピクチャーは、たとえば、4:2:0、4:2:2、および4:4:4色フォーマットにおける、モノクロ・フォーマットのルーマ・サンプルのアレイまたはルーマ・サンプルのアレイと、クロマ・サンプルの2つの対応するアレイとでありうる。
【0063】
ビデオ・エンコーダ20の実施形態は、ピクチャー17を複数の(典型的には重複しない)ピクチャー・ブロック203に分割するように構成されたピクチャー分割ユニット(図2には示されていない)を含んでいてもよい。これらのブロックは、ルートブロック、マクロブロック(H.264/AVC)または符号化ツリー・ブロック(CTB)または符号化ツリー単位(CTU)(H.265/HEVCおよびVVC)と称されることもある。ピクチャー分割ユニットは、ビデオ・シーケンスのすべてのピクチャーについて同じブロック・サイズおよび該ブロック・サイズを定義する対応するグリッドを使用するように、あるいは、ピクチャー間、またはピクチャーのサブセットもしくはグループ間でブロック・サイズを変更し、各ピクチャーを対応するブロックに分割するように構成されてもよい。非モノクロ・ピクチャー17の場合、ピクチャー分割ユニットは、ルーマおよびクロマ・ブロックについて統合的な(シングル)、または分離した(デュアル)分割のいずれかを使用するように構成されうる。そのような手法は、たとえばVVCで使用され、分離ツリー(Separate Tree)またはデュアル・ツリー(Dual Tree)分割と呼ばれる。デュアル・ツリーがあるCUにおいて使用される場合、それは1つのルーマ符号化ブロック(CB)をもつルーマCU、または2つのクロマ符号化ブロック(CB)をもつクロマCUのいずれかでありうる。通常、デュアル・ツリーは、たとえばスライス・タイプ、ブロック・サイズ等のあらかじめ定義された条件に基づいて適用されることを注意しておくべきである。条件が満たされない場合、CUにおいて単一ツリー(Single Tree)分割が使用される。ここで、CUは1つのルーマと2つのクロマ符号化ブロック(CB)を含み適用される。
【0064】
さらなる実施形態では、ビデオ・エンコーダは、ピクチャー17のブロック203、たとえば、ピクチャー17を形成する1つの、いくつかの、またはすべてのブロックを直接受領するように構成されてもよい。ピクチャー・ブロック203は、現在のピクチャー・ブロックまたは符号化されるべきピクチャー・ブロックと称されることもある。
【0065】
ピクチャー17と同様に、ピクチャー・ブロック203もまた、ピクチャー17よりも小さい寸法ではあるが、強度値(サンプル値)をもつサンプルの二次元アレイまたはマトリクスとしてみなされる、またはみなされることができる。言い換えると、ブロック203は、たとえば、1つのサンプル・アレイ(たとえば、モノクロ・ピクチャー17の場合、およびデュアル・ツリーが適用されるときのカラー・ピクチャーでルーマ・ブロックの場合のルーマ・アレイ)、または2つのサンプル・アレイ(たとえば、デュアル・ツリーが適用されるときのカラー・ピクチャーでクロマ・ブロックの場合の2つのクロマ・アレイ)、または3つのサンプル・アレイ(たとえば、カラー・ピクチャー17の場合のルーマ・アレイおよび2つのクロマ・アレイ)、または適用される色フォーマットに依存して任意の他の数および/または種類のアレイを含むことができる。ブロック203の水平および垂直方向(または軸)のサンプル数は、ブロック203のサイズを定義する。よって、ブロックは、たとえば、サンプルのM×N(M列×N行)アレイ、または変換係数のM×Nアレイであってもよい。
【0066】
図2に示されるようなビデオ・エンコーダ20の実施形態は、ブロック毎にピクチャー17をエンコードするように構成されてもよく、たとえば、エンコードおよび予測はブロック203毎に実行される。
【0067】
残差計算
残差計算ユニット204は、ピクチャー・ブロック203および予測ブロック265に基づいて残差ブロック205(残差205とも称される)を計算するように構成されてもよい(予測ブロック265についてのさらなる詳細は後述する)。これはたとえば、ピクチャー・ブロック203のサンプル値から予測ブロック265のサンプル値をサンプル毎に(ピクセル毎に)減算してサンプル領域における残差ブロック205を得ることによる。
【0068】
変換
変換処理ユニット206は、残差ブロック205のサンプル値に対して変換、たとえば離散コサイン変換(DCT)または離散サイン変換(DST)を適用して、変換領域における変換係数207を得るように構成されてもよい。変換係数207は、変換残差係数と称されてもよく、変換領域における残差ブロック205を表わす。
【0069】
変換処理ユニット206は、H.265/HEVCのために指定された変換など、DCT/DSTの整数近似を適用するように構成されてもよい。直交DCT変換と比較して、そのような整数近似は、典型的には、ある因子によってスケーリングされる。順変換と逆変換によって処理される残差ブロックのノルムを保存するために、変換プロセスの一部として追加的なスケーリング因子が適用される。スケーリング因子は、典型的には、スケーリング因子がシフト演算のための2の冪乗であること、変換係数のビット深さ、精度と実装コストの間のトレードオフなどのような、ある種の制約条件に基づいて選択される。具体的なスケーリング因子は、たとえば逆変換処理ユニット212による逆変換(および例えば、ビデオ・デコーダ30における逆変換処理ユニット312による対応する逆変換)のためにたとえば指定され、エンコーダ20におけるたとえば変換処理ユニット206による順変換のための対応するスケーリング因子が、それに応じて指定されてもよい。
【0070】
ビデオ・エンコーダ20(個別的には変換処理ユニット206)の実施形態は、変換パラメータ、たとえば単数または複数の変換のタイプを、たとえば直接、またはエントロピー・エンコード・ユニット270を介してエンコードまたは圧縮されて、出力するように構成されてもよく、それにより、たとえば、ビデオ・デコーダ30は、該変換パラメータを受領し、デコードのために使用してもよい。
【0071】
量子化
量子化ユニット208は、たとえばスカラー量子化またはベクトル量子化を適用することによって、変換係数207を量子化して、量子化された係数209を得るように構成されてもよい。量子化された係数209は、量子化された変換係数209または量子化された残差係数209と称されることもある。
【0072】
量子化プロセスは、変換係数207の一部または全部に関連するビット深さを低減することができる。たとえば、nビット変換係数は、量子化の間に、mビット変換係数に丸められてもよい。ここで、nはmより大きい。量子化の程度は、量子化パラメータ(QP)を調整することによって修正されてもよい。たとえば、スカラー量子化については、より細かいまたはより粗い量子化を達成するために異なるスケーリングが適用されてもよい。より小さな量子化ステップ・サイズはより細かい量子化に対応し、一方、より大きな量子化ステップ・サイズはより粗い量子化に対応する。適用可能な量子化ステップ・サイズは、量子化パラメータ(QP)によって示されてもよい。量子化パラメータは、たとえば、適用可能な量子化ステップ・サイズのあらかじめ定義された集合に対するインデックスであってもよい。たとえば、小さな量子化パラメータは、細かい量子化(小さな量子化ステップ・サイズ)に対応してもよく、大きな量子化パラメータは、粗い量子化(大きな量子化ステップ・サイズ)に対応してもよく、あるいはその逆でもよい。量子化は、量子化ステップ・サイズによる除算を含んでいてもよく、たとえば逆量子化ユニット210による対応するおよび/または逆の脱量子化は、量子化ステップ・サイズによる乗算を含んでいてもよい。いくつかの標準、たとえばHEVCによる実施形態は、量子化ステップ・サイズを決定するために量子化パラメータを使用するように構成されてもよい。一般に、量子化ステップ・サイズは、除算を含む式の固定小数点近似を使用して、量子化パラメータに基づいて計算されてもよい。量子化パラメータおよび量子化ステップ・サイズについての式の固定小数点近似において使用されるスケーリングのために修正されることがある残差ブロックのノルムを復元するために、量子化および脱量子化のために追加的なスケーリング因子が導入されてもよい。一つの例となる実装では、逆変換および脱量子化のスケーリングが組み合わされてもよい。あるいはまた、カスタマイズされた量子化テーブルが使用されて、たとえばビットストリームにおいて、エンコーダからデコーダへ信号伝達されてもよい。量子化は、損失のある演算であり、損失は量子化ステップ・サイズの増加とともに増加する。
【0073】
ビデオ・エンコーダ20(個別的には量子化ユニット208)の実施形態は、量子化パラメータ(QP)を、たとえば直接、またはエントロピー・エンコード・ユニット270を介してエンコードされて、出力するように構成されてもよく、それにより、たとえばビデオ・デコーダ30は、量子化パラメータを受領し、デコードのために適用することができる。
【0074】
逆量子化
逆量子化ユニット210は、たとえば、量子化ユニット208と同じ量子化ステップ・サイズに基づいて、または量子化ユニット208と同じ量子化ステップ・サイズを使用して、量子化ユニット208によって適用される量子化方式の逆数を適用することによって、量子化された係数に対して量子化ユニット208の逆の量子化を適用して、脱量子化された係数211を得るように構成される。脱量子化された係数211は、脱量子化された残差係数211と称されてもよく、典型的には量子化による損失のため変換係数と同一ではないが、変換係数207に対応する。
【0075】
逆変換
逆変換処理ユニット212は、変換処理ユニット206によって適用された変換の逆変換、たとえば逆離散コサイン変換(DCT)または逆離散サイン変換(DST)または他の逆変換を適用して、サンプル領域における再構成された残差ブロック213(または対応する脱量子化された係数213)を得るように構成される。再構成された残差ブロック213は、変換ブロック213と称されることもある。
【0076】
再構成
再構成ユニット214(たとえば、加算器または総和器214)は、変換ブロック213(すなわち、再構成された残差ブロック213)を予測ブロック265に加算して、サンプル領域における再構成されたブロック215を得るように構成される。これはたとえば、再構成された残差ブロック213のサンプル値と、予測ブロック265のサンプル値とをサンプル毎に加算することによる。
【0077】
フィルタリング
ループ・フィルタ・ユニット220(または略して「ループ・フィルタ」220)は、再構成されたブロック215をフィルタリングして、フィルタリングされたブロック221を得るように、または一般には、再構成されたサンプルをフィルタリングして、フィルタリングされたサンプルを得るように構成される。ループ・フィルタ・ユニットは、たとえば、ピクセル遷移をなめらかにする、または、他の仕方でビデオ品質を改善するように構成される。ループ・フィルタ・ユニット220は、ブロッキング解除フィルタ、サンプル適応オフセット(SAO)・フィルタ、または一つまたは複数の他のフィルタ、たとえばバイラテラル・フィルタ、適応ループ・フィルタ(ALF)、鮮鋭化フィルタ、平滑化フィルタ、または協働フィルタ、またはそれらの任意の組み合わせなどの一つまたは複数のループ・フィルタを含んでいてもよい。ループ・フィルタ・ユニット220は、図2ではループ内フィルタとして示されているが、他の構成では、ループ・フィルタ・ユニット220は、ループ後フィルタとして実装されてもよい。フィルタリングされたブロック221は、フィルタリングされた再構成されたブロック221と称されることもある。
【0078】
ビデオ・エンコーダ20(個別的にはループ・フィルタ・ユニット220)の実施形態は、ループ・フィルタ・パラメータ(サンプル適応オフセット情報など)をたとえば直接、またはエントロピー・エンコード・ユニット270を介してエンコードされて、出力するように構成されてもよく、それにより、たとえば、デコーダ30は、同じループ・フィルタ・パラメータまたはそれぞれのループ・フィルタを受領し、デコードのために適用することができる。
【0079】
デコードピクチャーバッファ
デコードピクチャーバッファ(DPB)230は、ビデオ・エンコーダ20によってビデオ・データをエンコードするために、参照ピクチャーまたは一般には参照ピクチャー・データを記憶するメモリであってもよい。DPB 230は、同期DRAM(SDRAM)を含む動的ランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、または他のタイプのメモリ・デバイスといった多様なメモリ・デバイスのいずれかによって形成されうる。デコードピクチャーバッファ(DPB)230は、一つまたは複数のフィルタリングされたブロック221を格納するように構成されてもよい。デコードピクチャーバッファ230は、さらに、同じ現在ピクチャーのまたは異なるピクチャー、たとえば以前に再構成されたピクチャーの、他の以前にフィルタリングされたブロック、たとえば、以前に再構成され、フィルタリングされたブロック221を記憶するように構成されてもよく、完全な以前に再構成された、すなわちデコードされたピクチャー(おょび対応する参照ブロックおよびサンプル)および/または部分的に再構成された現在ピクチャー(および対応する参照ブロックおよびサンプル)を、たとえばインター予測のために提供してもよい。デコードピクチャーバッファ(DPB)230は、たとえば再構成されたブロック215がループ・フィルタ・ユニット220によってフィルタリングされない場合には一つまたは複数のフィルタリングされていない再構成されたブロック215、または一般にはフィルタリングされていない再構成されたサンプルを、あるいは再構成されたブロックまたはサンプルの任意の他のさらに処理されたバージョンを、記憶するように構成されてもよい。
【0080】
モード選択(分割および予測)
モード選択ユニット260は、分割ユニット262と、インター予測ユニット244と、イントラ予測ユニット254とを有し、もとのピクチャー・データ、たとえばもとのブロック203(現在ピクチャー17の現在ブロック203)と、たとえばデコードピクチャーバッファ230または他のバッファ(たとえば、ラインバッファ、図示せず)からの、同じ(現在)ピクチャーのおよび/または、一つもしくは複数の以前にデコードされたピクチャーからの再構成されたピクチャー・データ、たとえばフィルタリングされたおよび/またはフィルタリングされていない再構成されたサンプルまたはブロックとを受領または取得するよう構成される。再構成されたピクチャー・データは、予測ブロック265または予測子265を得るために、予測、たとえばインター予測またはイントラ予測のための参照ピクチャー・データとして使用される。
【0081】
モード選択ユニット260は、現在のブロック予測モードについての分割(分割なしを含む)および予測モード(たとえば、イントラまたはインター予測モード)を決定または選択し、残差ブロック205の計算および再構成ブロック215の再構成のために使用される対応する予測ブロック265を生成するように構成されてもよい。
【0082】
モード選択ユニット260の実施形態は、分割および予測モードを(たとえば、モード選択ユニット260にサポートされる、またはモード選択ユニット260に利用可能なものから)を選択するように構成されてもよく、選択されるのは、最良のマッチ、すなわち、最小の残差(最小の残差は、伝送または記憶のためのよりよい圧縮を意味する)または最小の信号伝達オーバーヘッド(最小の信号伝達オーバーヘッドは、伝送または記憶のためのよりよい圧縮を意味する)を提供する、または両方を考慮またはバランスさせるものである。モード選択ユニット260は、レート歪み最適化(RDO)に基づいて分割および予測モードを決定する、つまり、最小レート歪みを提供する予測モードを選択するように構成されてもよい。この文脈における「最良」、「最小」、「最適」などのような用語は、必ずしも全体的な「最良」、「最小」、「最適」などを指すのではなく、終了、または値が閾値を超えるまたは下回るのような選択基準、または他の制約条件の達成を指すこともあり、潜在的には「最適ではない選択」につながるが、複雑さと処理時間を低減する。
【0083】
換言すれば、分割ユニット262は、ブロック203を、たとえば四分木分割(QT)、二分分割(BT)もしくは三分木分割(TT)またはそれらの任意の組み合わせを反復的に使用して、より小さなブロック・パーティションまたはサブブロック(これもやはりブロックをなす)に分割し、たとえば、ブロック・パーティションまたはサブブロックのそれぞれについて予測を実行するように構成されてもよい。ここで、モード選択は、分割されたブロック203の木構造の選択を含み、予測モードは、ブロック・パーティションまたはサブブロックのそれぞれに適用される。
【0084】
以下では、例示的なビデオ・エンコーダ20によって実行される分割(たとえば分割ユニット260による)および予測処理(インター予測ユニット244およびイントラ予測ユニット254による)について、より詳細に説明する。
【0085】
パーティション分割
分割ユニット262は、現在ブロック203を、より小さなパーティション、たとえば正方形または長方形のサイズのより小さなブロックにパーティション分割(または分割)することができる。これらのより小さなブロック(サブブロックとも呼ばれ得る)は、さらに、より一層小さなパーティションに分割されてもよい。これは、ツリー分割または階層ツリー分割とも呼ばれ、たとえばルートツリーレベル0(階層レベル0、深さ0)におけるルートブロックが再帰的に分割されてもよく、たとえば次の、より低いツリーレベルの2つ以上のブロック、たとえばツリーレベル1(階層レベル1、深さ1)におけるノードに分割されてもよく、これらのブロックは再び次の、より低いレベル、たとえばツリーレベル2(階層レベル2、深さ2)の2つ以上のブロックに分割されてもよい、などと、たとえば最大ツリー深さまたは最小ブロック・サイズに達するなど終了基準が満たされために分割が打ち切られるまで続く。それ以上分割されないブロックは、ツリーのリーフブロックまたはリーフノードとも呼ばれる。2つのパーティションへの分割を使用するツリーは二分木(BT)、3つのパーティションへの分割を使用するツリーは三分木(TT)、4つのパーティションへの分割を使用するツリーは四分木(QT)と呼ばれる。
【0086】
前述のように、本明細書で使用される「ブロック」という用語は、ピクチャーの一部、特に正方形または長方形の一部であってもよい。たとえばHEVCおよびVVCを参照するに、ブロックは、符号化ツリー単位(CTU)、符号化単位(CU)、予測単位(PU)、および変換単位(TU)、および/または対応するブロック、たとえば、符号化ツリー・ブロック(CTB)、符号化ブロック(CB)、変換ブロック(TB)、または予測ブロック(PB)であってもよく、またはこれらに対応してもよい。デュアル・ツリーの場合、「ブロック」という用語は、それが属する対応する成分、によっても指定されうる。たとえば、ルーマ成分のみを含むブロックについての「ルーマ・ブロック」、またはクロマ成分のみを含むブロックについての「クロマ・ブロック」である。たとえばVVCを参照するに、ルーマ・ブロックおよび/またはクロマ・ブロックは、ルーマおよび/またはクロマ符号化ツリー単位(ルーマおよび/またはクロマCTU)、ルーマおよび/またはクロマ符号化単位(ルーマおよび/またはクロマCU)、ルーマおよび/またはクロマ予測単位(ルーマおよび/またはクロマPU)、およびルーマおよび/またはクロマ変換単位(ルーマおよび/またはクロマTU)であってもよく、またはこれらに対応してもよく、および/または対応するブロック、たとえば、ルーマおよび/またはクロマ符号化ツリー・ブロック(ルーマおよび/またはクロマCTB)、ルーマおよび/またはクロマ符号化ブロック(ルーマおよび/またはクロマCB)、ルーマおよび/またはクロマ変換ブロック(ルーマおよび/またはクロマTB)、またはルーマおよび/またはクロマ予測ブロック(ルーマおよび/またはクロマPB)に対応してもよい。
【0087】
たとえば、符号化ツリー単位(CTU)は、3つのサンプル・アレイを有するピクチャーのルーマ・サンプルのCTB、クロマ・サンプルの2つの対応するCTB、または、モノクロ・ピクチャーまたはサンプルを符号化するために使用される3つの別個の色平面およびシンタックス構造を使用して符号化されるピクチャーのサンプルのCTBであってもよく、または、これらを含んでいてもよい。デュアル・ツリーが符号化ツリー単位(CTU)を使用する場合、符号化ツリー単位は、3つのサンプル・アレイを有するピクチャーのルーマ・サンプルのCTBまたはクロマ・サンプルの2つのCTBであってもよく、または、これらを含んでいてもよい。対応して、符号化ツリーブロック(CTB)は、ある成分のCTBへの分割がパーティション分割であるように、Nの何らかの値についてのサンプルのN×Nブロックであってもよい。符号化単位(CU)は、3つのサンプル・アレイを有するピクチャーのルーマ・サンプルの符号化ブロック、クロマ・サンプルの2つの対応する符号化ブロック、または、モノクロ・ピクチャーまたはサンプルを符号化するために使用される3つの別個の色平面およびシンタックス構造を使用して符号化されるピクチャーのサンプルの符号化ブロックであってもよく、または、これらを含んでいてもよい。対応して、符号化ブロック(CB)は、CTBの符号化ブロックへの分割がパーティション分割であるように、MおよびNの何らかの値についてのサンプルのM×Nブロックであってもよい。
【0088】
実施形態において、たとえばHEVCによれば、符号化ツリー単位(CTU)は、符号化ツリーと記される四分木構造を使用することによって、CUに分割されてもよい。ピクチャー間(時間的)またはピクチャー内(空間的)予測を使用してピクチャー領域を符号化するかどうかの決定は、CUレベルで行なわれる。各CUはさらに、PU分割タイプに応じて、1つ、2つ、または4つのPUに分割できる。1つのPU内では、同じ予測プロセスが適用され、関連情報はPUごとにデコーダに伝送される。PU分割タイプに基づく予測プロセスを適用することによって残差ブロックを得た後、CUは、該CUについての符号化ツリーと同様の別の四分木構造に従って変換単位(TU)に分割できる。
【0089】
実施形態において、たとえば多用途ビデオ符号化(VVC)と称される現在開発中の最新のビデオ符号化標準によれば、符号化ブロックを分割するために四分木および二分木(QTBT)分割が使用される。QTBTブロック構造では、CUは正方形または長方形のいずれかの形状を有することができる。たとえば、符号化ツリー単位(CTU)は、まず四分木構造によって分割される。四分木リーフノードは、二分木または三分木(または三叉木)構造によってさらに分割される。分割木リーフノードは、符号化単位(CU)と呼ばれ、そのセグメント分割は、それ以上の分割なしに予測および変換処理に使用される。これは、QTBT符号化ブロック構造においてCU、PU、およびTUが同じブロック・サイズをもつことを意味する。並列に、多分割、たとえば三分木分割もQTBTブロック構造と一緒に使用されることが提案された。
【0090】
一例では、ビデオ・エンコーダ20のモード選択ユニット260は、本明細書に記載される分割技術の任意の組み合わせを実行するように構成されうる。
【0091】
上述のように、ビデオ・エンコーダ20は、(あらかじめ決定された)予測モードの集合から最良または最適な予測モードを決定または選択するように構成される。予測モードの集合は、たとえば、イントラ予測モードおよび/またはインター予測モードを含んでいてもよい。
【0092】
イントラ予測
イントラ予測モードの集合は、たとえばHEVCで定義されているように、35の異なるイントラ予測モード、たとえばDC(または平均)モードおよび平面モードのような非方向性モード、または、方向性モードを含んでいてもよく、または、たとえばVVCで定義されているように、67の異なるイントラ予測モード、たとえばDC(または平均)モードおよび平面モードのような非方向性モード、または、方向性モードを含んでいてもよい。
【0093】
イントラ予測ユニット254は、イントラ予測モードの集合のうちのあるイントラ予測モードに従ってイントラ予測ブロック265を生成するために、同じ現在のピクチャーの近傍ブロックの再構成されたサンプルを使用するように構成される。
【0094】
イントラ予測ユニット254(または、一般に、モード選択ユニット260)は、イントラ予測パラメータ(または、一般に、そのブロックについての選択されたイントラ予測モードを示す情報)を、エンコードされたピクチャー・データ21に含めるために、シンタックス要素266の形でエントロピー・エンコード・ユニット270に対して出力するようにさらに構成される。それにより、たとえば、ビデオ・デコーダ30は、予測パラメータを受領し、デコードのために使用することができる。
【0095】
イントラ予測ユニット254は、パレット符号化(palette coding)方法を含んでいてもよく、これは、典型的には2つの部分を含む:パレットについての符号化方法と、パレットを使った、サンプルについての符号化方法である。後者の部分は、通常、パレット・インデックス符号化とエスケープ・ピクセル符号化とを含む。より具体的には、パレット・モードは、CUレベルで、次いで該パレット・モードで符号化されるCUについて信号伝達/導出される。パレット・モードで符号化されるCUについて、該CU内の優勢色を列挙するパレットがビットストリームにおいて信号伝達される。ビットストリームにおける信号伝達は、ここでは、それに基づいてパレットを決定することを可能にする任意のシンタックス要素を指す。
【0096】
パレットは、一般に、各カラー項目がインデックスに関連付けられる色ルックアップテーブルとして実装される。ひとたびパレットが構築されると、CU内のサンプルの頻度に基づいて、サンプルは2つのカテゴリーに分類できる。第1のカテゴリーに属するサンプルは、パレット内の項目と同じかそれに非常に近い。この場合、サンプルは、パレット内の対応する項目のインデックスによって表現できる。デコーダは、対応するインデックスを使用してパレット項目を検索することによって、サンプルを再構成することができる。これらのサンプルはインデックス指定されるサンプルと呼ばれ、インデックスはパレット・インデックスと呼ばれる。他方のカテゴリーに属するサンプルについては、各サンプルはパレット内のどの項目とも有意に異なる。これらのサンプルは、パレット・インデックスによって表現するのに好適ではなく、エスケープ・サンプルと呼ばれる。それらの色成分値は量子化され、ビットストリームにおいて明示的に符号化される。
【0097】
例示される場合において、典型的には、信号伝達の観点から、パレット符号化は、ビットストリームにおいて信号伝達される一つまたは複数(またはすべて)の以下のシンタックス要素を含んでいてもよい:
・CUパレット・モード・フラグ(palette_mode_flag)。これは、CUレベルでパレット符号化ツールが有効にされるか無効にされるかを示す。このフラグは、本稿ではパレット符号化制御フラグとも呼ばれる。
・色成分のそれぞれまたはいくつかについてのパレット(palette)。これは、CU内で最も頻度の高い信号情報を表わす。
・パレットの予測ベクトル。これは、予測機構を実装し、パレット伝送のためのスペースを節約することを可能にする。
・信号エスケープ・フラグ(signal_escape_flag)。これは、パレットに含まれない、現在CU内のピクセルがあるかどうかを指定する。
・パレット・インデックス・マップ(palette_indexes_map)。これは、CU内の各ピクセルについてあるパレット要素を示す。
・スキャン順タイプ。これは、CUにわたって移動するために使用されるスキャン・タイプを指定する。
【0098】
しかしながら、たとえばVVC標準において、デュアル・ツリー分割がビデオ圧縮に導入されたので、伝統的なパレット符号化はもはや通常の仕方では適用できない。ルーマ成分とクロマ成分が異なる分割パターンをもつことがありえ、その結果、異なるブロック・サイズ、異なる優勢サンプル値となるからである。本発明は、VVCにおけるデュアル・ツリー方式でパレット符号化を使用することに向けた可能な仕方を提供する。そのことは後に詳細に開示する。
【0099】
インター予測
前記集合の(または可能な)インター予測モードは、利用可能な参照ピクチャー(すなわち、たとえばDBP 230に記憶されている、以前の少なくとも部分的にデコードされたピクチャー)および他のインター予測パラメータに依存する。該他のインター予測パラメータは、たとえば、最良マッチの参照ブロックを探すために参照ピクチャーの全体が使用されるか、または参照ピクチャーの一部のみ、たとえば、現在ブロックの当該領域のまわりの探索窓領域が、使用されるか、および/または、たとえば、ピクセル補間、たとえば、半分/セミ画素および/または1/4画素補間が適用されるかどうかである。
【0100】
上記の予測モードに加えて、スキップモードおよび/または直接モードが適用されてもよい。
【0101】
インター予測ユニット244は、動き推定(ME)ユニットおよび動き補償(MC)ユニットを含んでいてもよい(いずれも図2には示されていない)。動き推定ユニットは、ピクチャー・ブロック203(現在ピクチャー17の現在ピクチャー・ブロック203)およびデコードされたピクチャー231、または少なくとも一つまたは複数の以前に再構成されたブロック、たとえば、一つまたは複数の他の/異なる以前にデコードされたピクチャー231の再構成されたブロックを動き推定のために受領または取得するように構成されてもよい。たとえば、ビデオ・シーケンスは、現在ピクチャーと以前にデコードされたピクチャー231とを含んでいてもよく、あるいは、換言すれば、現在ピクチャーと以前にデコードされたピクチャー231は、ビデオ・シーケンスを形成するピクチャーのシーケンスの一部であってもよく、または該シーケンスを形成してもよい。
【0102】
エンコーダ20は、たとえば、複数の他のピクチャーのうちの同じまたは異なるピクチャーの複数の参照ブロックから参照ブロックを選択し、参照ピクチャー(または参照ピクチャー・インデックス)および/または参照ブロックの位置(x、y座標)と現在のブロックの位置との間のオフセット(空間オフセット)を、動き推定ユニットへのインター予測パラメータとして提供するように構成されてもよい。このオフセットは動きベクトル(MV)とも呼ばれる。
【0103】
動き補償ユニットは、たとえば、インター予測パラメータを取得、たとえば受領して、該インター予測パラメータに基づいて、または、該インター予測パラメータを用いて、インター予測を実行して、インター予測ブロック265を得るように構成される。動き補償ユニットによって実行される動き補償は、動き推定によって決定された動き/ブロック・ベクトルに基づいて、可能性としてはサブピクセル精度への補間を実行して、予測ブロックを取ってくるまたは生成することを含んでもよい。補間フィルタリングが、既知のピクセル・サンプルから追加的なピクセル・サンプルを生成してもよく、よって、潜在的には、ピクチャー・ブロックを符号化するために使用されうる候補予測ブロックの数を増加させる。現在ピクチャー・ブロックのPUについての動きベクトルを受領すると、動き補償ユニットは、参照ピクチャー・リストのうちの1つのリストにおいて動きベクトルがポイントする予測ブロックを位置特定することができる。
【0104】
動き補償ユニットはまた、ビデオ・スライスのピクチャー・ブロックをデコードする際にビデオ・デコーダ30が使用するために、ブロックおよびビデオ・スライスに関連するシンタックス要素を生成してもよい。
【0105】
エントロピー符号化
エントロピー・エンコード・ユニット270は、たとえば、エントロピー・エンコード・アルゴリズムまたは方式(たとえば、可変長符号化(VLC)方式、コンテキスト適応VLC方式(CAVLC)、演算符号化方式、バイナリー化、コンテキスト適応バイナリー算術符号化(CABAC)、シンタックスベースのコンテキスト適応バイナリー算術符号化(SBAC)、確率区間分割エントロピー(PIPE)符号化、または他のエントロピー・エンコード方法または技術)またはバイパス(非圧縮)を、量子化された係数209、インター予測パラメータ、イントラ予測パラメータ、ループ・フィルタ・パラメータおよび/または他のシンタックス要素に対して適用して、エンコードされたピクチャー・データ21を得るように構成される。エンコードされたピクチャー・データ21はたとえばエンコードされたビットストリーム21の形で、出力272を介して出力でき、それにより、たとえば、ビデオ・デコーダ30はそれらのパラメータを受領し、デコードのために使用することができる。エンコードされたビットストリーム21は、ビデオ・デコーダ30に送信されてもよいし、または後の送信またはビデオ・デコーダ30による取得のためにメモリに記憶されてもよい。
【0106】
ビデオ・ストリームをエンコードするために、ビデオ・エンコーダ20の他の構造的変形が使用できる。たとえば、非変換ベースのエンコーダ20は、ある種のブロックまたはフレームについて、変換処理ユニット206なしで直接、残差信号を量子化することができる。別の実装では、エンコーダ20は、量子化ユニット208と逆量子化ユニット210とを単一のユニットに組み合わせたものを有することができる。
【0107】
デコーダおよびデコード方法
図3は、本願の技術を実装するように構成されたビデオ・デコーダ30の例を示す。ビデオ・デコーダ30は、デコードされたピクチャー331を得るために、たとえばエンコーダ20によってエンコードされた、エンコードされたピクチャー・データ21(たとえばエンコードされたビットストリーム21)を受領するように構成される。エンコードされたピクチャー・データまたはビットストリームは、エンコードされたピクチャー・データをデコードするための情報、たとえば、エンコードされたビデオ・スライスのピクチャー・ブロックおよび関連するシンタックス要素を表わすデータを含む。
【0108】
図3の例では、デコーダ30は、エントロピー・デコード・ユニット304と、逆量子化ユニット310と、逆変換処理ユニット312と、再構成ユニット314(たとえば、加算器314)と、ループ・フィルタ320と、デコードピクチャーバッファ(DBP)330と、インター予測ユニット344と、イントラ予測ユニット354とを含む。インター予測ユニット344は、動き補償ユニットであってもよいし、またはこれを含んでいてもよい。ビデオ・デコーダ30は、いくつかの例では、図2からのビデオ・エンコーダ100に関して記述されたエンコード・パスと概して逆のデコード・パスを実行することができる。
【0109】
エンコーダ20に関して説明したように、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループ・フィルタ220、デコードピクチャーバッファ(DPB)230、インター予測ユニット344、およびイントラ予測ユニット354は、ビデオ・エンコーダ20の「組み込みデコーダ」を形成するとも称される。よって、逆量子化ユニット310は、逆量子化ユニット110と機能的に同一であってもよく、逆変換処理ユニット312は、逆変換処理ユニット212と機能的に同一であってもよく、再構成ユニット314は、再構成ユニット214と機能的に同一であってもよく、ループ・フィルタ320は、ループ・フィルタ220と機能的に同一であってもよく、デコードピクチャーバッファ330は、デコードピクチャーバッファ230と機能的に同一であってもよい。したがって、ビデオ20エンコーダのそれぞれのユニットおよび機能について与えた説明は、ビデオ・デコーダ30のそれぞれのユニットおよび機能に、対応して当てはまる。
【0110】
エントロピー・デコード
エントロピー・デコード・ユニット304は、ビットストリーム21(または一般に、エンコードされたピクチャー・データ21)をパースし、たとえば、エンコードされたピクチャー・データ21に対してエントロピー・デコードを実行し、たとえば、量子化された係数309および/またはデコードされた符号化パラメータ(図3には示されていない)、たとえば、インター予測パラメータ(たとえば、参照ピクチャー・インデックスおよび動きベクトル)、イントラ予測パラメータ(たとえば、イントラ予測モードまたはインデックス)、変換パラメータ、量子化パラメータ、ループ・フィルタ・パラメータ、および/または他のシンタックス要素のいずれかまたは全部を得るように構成される。エントロピー・デコード・ユニット304は、エンコーダ20のエントロピー・エンコード・ユニット270に関して述べたエンコード方式に対応するデコード・アルゴリズムまたは方式を適用するように構成されてもよい。エントロピー・デコード・ユニット304は、インター予測パラメータ、イントラ予測パラメータおよび/または他のシンタックス要素をモード選択ユニット360に、他のパラメータをデコーダ30の他のユニットに提供するようにさらに構成されてもよい。ビデオ・デコーダ30は、ビデオ・スライス・レベルおよび/またはビデオ・ブロック・レベルでシンタックス要素を受領してもよい。
【0111】
逆量子化
逆量子化ユニット310は、エンコードされたピクチャー・データ21から量子化パラメータ(QP)(または一般に、逆量子化に関する情報)および量子化された係数を受領し(たとえばエントロピー・デコード・ユニット304によるたとえばパースおよび/またはデコードによって)、デコードされた量子化された係数309に対して該量子化パラメータに基づいて逆量子化を適用して、脱量子化された係数311を得るように構成されてもよい。脱量子化された係数311は変換係数311と称されることもある。逆量子化プロセスは、ビデオ・スライス内の各ビデオ・ブロックについてビデオ・エンコーダ20によって決定された量子化パラメータを使用して、量子化の程度、および、同様に、適用されるべき逆量子化の程度を決定してもよい。
【0112】
逆変換
逆変換処理ユニット312は、変換係数311とも呼ばれる脱量子化された係数311を受領し、サンプル領域における再構成された残差ブロック213を得るために、脱量子化された係数311に変換を適用するように構成されてもよい。再構成された残差ブロック213は、変換ブロック313と称されることもある。変換は、逆変換、たとえば、逆DCT、逆DST、逆整数変換、または概念的に同様の逆変換プロセスであってもよい。逆変換処理ユニット312は、さらに、変換パラメータまたは対応する情報をエンコードされたピクチャー・データ21から受領して(たとえばエントロピー・デコード・ユニット304によるたとえばパースおよび/またはデコードによって)、脱量子化された係数311に適用される変換を決定するように構成されてもよい。
【0113】
再構成
再構成ユニット314(たとえば、加算器または総和器314)は、再構成された残差ブロック313を予測ブロック365に加算して、サンプル領域における再構成されたブロック315を得るように構成されてもよい。これはたとえば、再構成された残差ブロック313のサンプル値および予測ブロック365のサンプル値を加算することによる。
【0114】
フィルタリング
ループ・フィルタ・ユニット320(符号化ループ内または符号化ループ後)は、たとえばピクセル遷移をなめらかにする、または、他の仕方でビデオ品質を改善するために、再構成されたブロック315をフィルタリングして、フィルタリングされたブロック321を得るように構成される。ループ・フィルタ・ユニット320は、ブロッキング解除フィルタ、サンプル適応オフセット(SAO)・フィルタ、または一つまたは複数の他のフィルタ、たとえばバイラテラル・フィルタ、適応ループ・フィルタ(ALF)、鮮鋭化、平滑化フィルタ、または協働フィルタ、またはそれらの任意の組み合わせなどの一つまたは複数のループ・フィルタを含んでいてもよい。ループ・フィルタ・ユニット320は、図3ではループ内フィルタとして示されているが、他の構成では、ループ・フィルタ・ユニット320は、ループ後フィルタとして実装されてもよい。
【0115】
デコードピクチャーバッファ
次いで、ピクチャーのデコードされたビデオ・ブロック321は、デコードピクチャーバッファ330に記憶される。デコードピクチャーバッファ330は、デコードされたピクチャー331を、他のピクチャーについてのその後の動き補償のための参照ピクチャーとして、および/またはそれぞれの出力もしくは表示のために記憶する。
【0116】
デコーダ30は、デコードされたピクチャー311を、ユーザーへの提示または閲覧のために、たとえば出力312を介して出力するように構成される。
【0117】
予測
インター予測ユニット344は、インター予測ユニット244(特に、動き補償ユニット)と同一であってもよく、イントラ予測ユニット354は、機能において、インター予測ユニット254と同一であってもよく、エンコードされたピクチャー・データ21から(たとえばエントロピー・デコード・ユニット304による、たとえばパースおよび/またはデコードによって)受領される分割および/または予測パラメータまたはそれぞれの情報に基づいて、分割もしくはパーティション分割決定および予測を実行する。モード選択ユニット360は、再構成されたピクチャー、ブロック、またはそれぞれのサンプル(フィルタリングされた、またはフィルタリングされていない)に基づいて、ブロックごとの予測(イントラ予測またはインター予測)を実行して、予測ブロック365を得るように構成されてもよい。
【0118】
ビデオ・スライスがイントラ符号化される(I)スライスとして符号化されるとき、モード選択ユニット360のイントラ予測ユニット354は、信号伝達されたイントラ予測モードと、現在ピクチャーの以前にデコードされたブロックからのデータとに基づいて、現在ビデオ・スライスのピクチャー・ブロックについての予測ブロック365を生成するように構成される。ビデオ・ピクチャーがインター符号化される(すなわちBまたはP)スライスとして符号化されるとき、モード選択ユニット360のインター予測ユニット344(たとえば、動き補償ユニット)は、エントロピー・デコード・ユニット304から受領される動きベクトルおよび他のシンタックス要素に基づいて、現在のビデオ・スライスのビデオ・ブロックについての予測ブロック365を生成するように構成される。インター予測のために、予測ブロックは、参照ピクチャー・リストのうちの1つのリスト内の参照ピクチャーの1つから生成されてもよい。ビデオ・デコーダ30は、DPB 330に記憶された参照ピクチャーに基づくデフォルト構築技術を使用して、参照フレームリスト、リスト0およびリスト1を構築することができる。
【0119】
モード選択ユニット360は、動きベクトルおよび他のシンタックス要素をパースすることによって、現在のビデオ・スライスのビデオ・ブロックについての予測情報を決定するように構成され、該予測情報を使用して、デコードされる現在のビデオ・ブロックについての予測ブロックを生成する。たとえば、モード選択ユニット360は、受領されたシンタックス要素のいくつかを用いて、ビデオ・スライスのビデオ・ブロックを符号化するために使用される予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライス・タイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)、スライスについての参照ピクチャー・リストのうちの一つまたは複数のリストについての構築情報、スライスのそれぞれのインター・エンコードされたビデオ・ブロックについての動きベクトル、スライスのそれぞれのインター符号化されたビデオ・ブロックについてのインター予測ステータス、および現在のビデオ・スライス内のビデオ・ブロックをデコードするための他の情報を決定する。
【0120】
エンコードされたピクチャー・データ21をデコードするために、ビデオ・デコーダ30の他の変形が使用できる。たとえば、デコーダ30は、ループ・フィルタリング・ユニット320なしで出力ビデオ・ストリームを生成することができる。たとえば、非変換ベースのデコーダ30は、ある種のブロックまたはフレームについて、逆変換処理ユニット312なしに直接、残差信号を逆量子化することができる。別の実施形態では、ビデオ・デコーダ30は、逆量子化ユニット310および逆変換処理ユニット312を単一のユニットに組み合わせたものを有することができる。
【0121】
エンコーダ20およびデコーダ30では、現在のステップの処理結果がさらに処理されて、次いで次のステップに出力されてもよいことを理解しておくべきである。たとえば、補間フィルタリング、動きベクトル導出、またはループ・フィルタリングの後に、クリップまたはシフトなどのさらなる操作が、補間フィルタリング、動きベクトル導出、またはループ・フィルタリングの処理結果に対して実行されてもよい。
【0122】
図4は、本開示のある実施形態によるビデオ符号化装置400の概略図である。ビデオ符号化装置400は、本明細書に記載される開示される実施形態を実装するのに好適である。ある実施形態では、ビデオ符号化装置400は、図1Aのビデオ・デコーダ30のようなデコーダ、または図1Aのビデオ・エンコーダ20のようなエンコーダであってもよい。
【0123】
ビデオ符号化装置400は、データを受領するための入口ポート410(または入力ポート410)および受領器ユニット(Rx)420;データを処理するためのプロセッサ、論理ユニット、または中央処理ユニット(CPU)430;データを送信するための送信器ユニット(Tx)440および出口ポート450(または出力ポート450);およびデータを記憶するためのメモリ460を含む。ビデオ符号化装置400は、光信号または電気信号の出入りのために、入口ポート410、受領器ユニット420、送信器ユニット440、および出口ポート450に結合された光対電気(OE)コンポーネントおよび電気対光(EO)コンポーネントをも有していてもよい。
【0124】
プロセッサ430は、ハードウェアおよびソフトウェアによって実装される。プロセッサ430は、一つまたは複数のCPUチップ、コア(たとえば、マルチコアプロセッサとして)、FPGA、ASIC、およびDSPとして実装されてもよい。プロセッサ430は、入口ポート410、受領器ユニット420、送信器ユニット440、出口ポート450、およびメモリ460と通信する。プロセッサ430は、符号化モジュール470を有する。符号化モジュール470は、上記の開示された諸実施形態を実装する。たとえば、符号化モジュール470は、さまざまな符号化動作を実装、処理、準備、または提供する。よって、符号化モジュール470を含めることにより、ビデオ符号化装置400の機能が実質的に改善され、ビデオ符号化装置400の異なる状態への変換が実現される。あるいはまた、符号化モジュール470は、メモリ460に記憶された命令として実装され、プロセッサ430によって実行される。
【0125】
メモリ460は、一つまたは複数のディスク、テープドライブ、およびソリッドステートドライブを含んでいてもよく、オーバーフロー・データ記憶装置として使用され、プログラムを、該プログラムが実行のために選択されるときに記憶し、そしてプログラム実行中に読み出される命令およびデータを記憶してもよい。メモリ460は、たとえば、揮発性および/または不揮発性であってもよく、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、三値連想記憶メモリ(TCAM)、および/またはスタティックランダムアクセスメモリ(SRAM)であってもよい。
【0126】
図5は、ある例示的実施形態による、図1からの源装置12および宛先装置14のいずれかまたは両方として使用されうる装置500の簡略化されたブロック図である。
【0127】
装置500内のプロセッサ502は、中央処理ユニットであってもよい。あるいはまた、プロセッサ502は、現在存在する、または今後開発される情報を操作または処理することができる、任意の他のタイプの装置または複数の装置であってもよい。開示された実装は、図示のような単一のプロセッサ、たとえばプロセッサ502を用いて実施できるが、複数のプロセッサを用いて、速度および効率における利点が達成できる。
【0128】
装置500内のメモリ504は、ある実装では、リードオンリーメモリ(ROM)デバイスまたはランダムアクセスメモリ(RAM)デバイスであることができる。メモリ504として、任意の他の好適なタイプの記憶デバイスが使用できる。メモリ504は、バス512を使用してプロセッサ502によってアクセスされるコードおよびデータ506を含むことができる。メモリ504は、さらに、オペレーティング・システム508およびアプリケーション・プログラム510を含むことができ、該アプリケーション・プログラム510は、プロセッサ502がここに記載される方法を実行することを許容する少なくとも1つのプログラムを含む。たとえば、アプリケーション・プログラム510は、アプリケーション1~Nを含むことができ、これは、ここに記載される方法を実行するビデオ符号化アプリケーションをさらに含む。
【0129】
装置500は、ディスプレイ518などの一つまたは複数の出力装置をも含むことができる。ディスプレイ518は、一例では、ディスプレイを、タッチ入力を感知するように動作可能なタッチ感応性要素と組み合わせるタッチ感応性ディスプレイであってもよい。ディスプレイ518は、バス512を介してプロセッサ502に結合されることができる。
【0130】
ここでは単一のバスとして示されているが、装置500のバス512は、複数のバスから構成されることができる。さらに、二次記憶514は、装置500の他のコンポーネントに直接結合されることができるか、またはネットワークを介してアクセスされることができ、メモリカードのような単一の集積ユニットまたは複数のメモリカードのような複数のユニットを含むことができる。よって、装置500は、幅広い多様な構成で実装されることができる。
【0131】
デュアル・ツリー分割方式におけるパレット符号化
前述したように、デュアル・ツリー分割は、符号化ブロック、たとえばCUが、1つのルーマ符号化ブロック(CB)および2つのクロマCBを含む単一CU、または別個のルーマCUおよびクロマCUのいずれかであることを想定する。ここで、ルーマCUは1つのルーマCBを含み、クロマCUは2つのクロマCBを含む。デュアル・ツリー分割方式におけるCBの多様性に対処するために、ある種のCUの分割タイプに従って、パレット符号化手法が使用され、信号伝達されることができる。
【0132】
一般に、パレット符号化は、各パレット・インデックスが色成分の1つにポイントする(関連付けられている)ときの別個式で、あるいは各パレット・インデックスが2つ以上の色成分にポイントする(関連付けられている)ときの結合式で適用できる。第1の方法(別個式)は、別個パレット符号化(separate palette coding)と呼ばれ、各色成分についてパレット・インデックス・マップの別個の計算および信号伝達を想定する。第2の方法(結合式)は結合パレット符号化(coupled palette coding)と呼ばれ、色成分のいくつかについて、パレット・インデックス・マップの計算および信号伝達が一緒に実行されると想定する。
【0133】
結合パレット符号化は、異なるタイプの結合を含むことができること、たとえば、Y-Cb-Cr結合の場合、1つのパレット・インデックスがパレットにおけるY-Cb-Crの三つ組をポイントし、Cb-Cr結合の場合、1つのパレット・インデックスがパレットにおけるCb-Cr対をポイントすることが理解されるべきである。言い換えれば、Y-Cb-Cr結合は、1つのパレット・インデックスを、3つの色成分Y、Cb、Crの1つのそれぞれの組み合わせと関連付ける。Cb-Cr結合は、各パレット・インデックスを、2つの色成分Cb、Crの1つのそれぞれの組み合わせと関連付ける。典型的には、パレット中のインデックスは、色成分の可能な組み合わせの量よりも少ない。よって、パレットは、色成分の可能な組み合わせによって表現可能なすべての色の部分集合の符号化を可能にするだけである。このようにして、パレットへのインデックスは、その値の範囲が、典型的には、色成分の組み合わせの値の範囲よりも小さいので、より効率的な符号化を提供することができる。色の変動が限られているいくつかのCUについては、符号化効率がこうして向上される。しかしながら、インデックスのエンコードされたマップ(CUのサンプルに関連付けられたパレット・インデックス)によって与えられる長さに加えて、追加的な信号伝達情報の長さが考慮されなければならない。信号伝達情報は、パレット、パレットの長さ、エスケープ・フラグ、パレット符号化フラグ等のような、上述したパラメータの一つまたは複数を含んでいてもよい。いくつかのパラメータは、エンコーダおよびデコーダで利用可能なCUに関連する他のパラメータに基づいて導出されてもよく、標準によってあらかじめ定義されてもよく、またはより高いレベル(スライス・ヘッダ、単一のピクチャーまたは複数のピクチャーについて共通のパラメータ集合など)で信号伝達されてもよい。
【0134】
パレット符号化のある仕方が、通常、コーデックのためにあらかじめ選択されているか、または分割、スライス・タイプなどのようないくつかの符号化パラメータに依存して選ばれる。
【0135】
以下では、ここで用いる用語を簡単に要約する:
【表1】
【0136】
最近、別個またはデュアル符号化ツリー手法が、現代のビデオ・コーデック標準に導入され、通常の単一ツリー手法と比較して有益な効果が達成されることを許容している。別個ツリー手法は、再帰的符号化ブロックの構造がルーマおよびクロマ成分に別個に適用されると想定する。この手法を用いると、各CTUは、2つの分離された符号化ツリーに再帰的にさらに分割され、該分割は、四分、二分、三分、または任意の他のタイプの分割でありうる。1つのツリーは、信号のY情報を含むルーマ成分のためであり、1つのツリーは、信号からのCbおよびCr情報を含むクロマ成分のためである。
【0137】
パレット符号化ツールは、いくつかの異なる仕方で実装でき、通常、以下の主要な構成要素を含む:CUレベルでパレット・ツールが有効にされるか無効にされるかを示すCUパレット・モード・フラグ(palette_mode_flag);CU内で最も頻度の高い信号情報を表わす、成分のそれぞれまたはいくつかについてのパレット(palette);予測機構が実装されるべきであり、パレットを伝送するためのスペースが節約されるべきであることを示す、パレットの予測ベクトル;パレット外の、現在CU内のピクセルがあるかどうかを指定する信号エスケープ・フラグ(signal_escape_flag);CU内の各ピクセルについてあるパレット要素を示すパレット・インデックス・マップ(palette_indexes_map);CUにわたって移動するために使用されるスキャン・タイプを指定するスキャン順タイプ。別個またはデュアル符号化ツリー手法が可能な場合の、上記のパレット・ツール構成要素の実装が、以下に開示される。
【実施例1】
【0138】
第1の実施形態
第1の実施形態は、デュアル・ツリー分割が許容される場合、ルーマ別個ツリーにおけるCUとクロマ別個ツリーにおけるCUについてのpalette_mode_flagの関係を記述する。
【0139】
第1の可能な仕方では、palette_mode_flagが各CUについて独立して信号伝達される。この方法では、別個ツリーが使用される場合、ルーマCUについて1つのpalette_mode_flagが信号伝達され、クロマCUについて1つのpalette_mode_flagが独立して信号伝達される。単一ツリーの場合、palette_mode_flagは、すべての色成分(1つのルーマCBと2つのクロマCB)を含む1つのCUについて信号伝達される。
【0140】
第2の可能な仕方では、単一ツリーが使用されるか別個ツリーが使用されるかにかかわらず、ルーマ成分とクロマ成分について、常に独立して、palette_mode_flagが信号伝達される。この方法では、別個ツリーが使用される場合、それぞれ、ルーマについて1つのpalette_mode_flagが信号伝達され、クロマCUについて1つのpalette_mode_flagが信号伝達される。単一ツリーの場合、1つのCU内では、1つのルーマ符号化ブロックについて1つのpalette_mode_flagが信号伝達され、同じCU内のクロマ符号化ブロックについてもう1つのpalette_mode_flagが信号伝達される。
【0141】
第3の可能な仕方では、palette_mode_flagはルーマCUについてのみ信号伝達される。この方法では、クロマCUについてのpalette_mode_flagは偽であると推定され、クロマについてのパレット・モードは使用されない。
【0142】
第4の可能な仕方では、クロマCUについてのpalette_mode_flagは、対応するルーマCUと、それらの、現在のクロマCUとの相互作用(関係)に依存する。ルーマ・カバレッジが、和集合がクロマ・ブロック全体を空間的にカバーするルーマCUの集合であるとする。現在のクロマ・ブロックについて複数のカバレッジがある場合は、要素数が最小のものが考慮される。
【0143】
1.クロマCUが1つのルーマCUによって完全にカバーされる場合、クロマCUについてのpalette_mode_flagはルーマCUから継承される。たとえば、palette_mode_flag_CbCr(クロマ)は、同じCU位置についてのpalette_mode_flag_Y(luma)値と同じ値に設定される。
【0144】
2.クロマCUが複数のルーマCUによってカバーされ、すべてのかかるルーマCUが同じpalette_mode_flagをもつ場合、クロマCUについてのパレット・モードはそれらのルーマCUから継承される。
【0145】
3.クロマCUが複数のルーマCUによってカバーされ、すべてのかかるルーマCUが同じpalette_mode_flagをもつのではない場合、以下のいずれかとなる:
a.クロマCUについてのpalette_mode_flagはビットストリームにおいて信号伝達される;または
b.クロマCUについてのpalette_mode_flagは、諸ルーマCUについての諸palette_mode_flagの間で多数決原理に基づいて諸ルーマCUから継承される。すなわち、palette_mode_flag_CbCrは、そのクロマCUをカバーする諸ルーマCUのフラグの間で最も頻繁に現われるフラグに設定される;または
c.クロマCUについてのpalette_mode_flagは、同じ値(真/偽)のパレット・モード・フラグの比に基づいて諸ルーマCUから継承される;比が何らかのあらかじめ定義された閾値より上である(超える)場合、クロマCUについてのpalette_mode_flagは、諸ルーマCUにおけるpalette_mode_flagの多数決値から継承される;そうでない場合、クロマCUについてのpalette_mode_flagは信号伝達される。言い換えると、最も頻繁に現われるフラグ値をもつCUの数と、逆のフラグ値との比が、あらかじめ定義された閾値を超える場合にはオプションb)が適用され、そうでない場合には、クロマpalette_mode_flagは信号伝達される;ここで、フラグは、2つの異なる値の1つをとりうつと想定されているが、本開示はそれに限定されない。一般に、パレット・モード・フラグは、それぞれの2つより多くのパレット・モードに対応する2つより多くの値を信号伝達することができてもよい;または
d.クロマCUについてのpalette_mode_flagは、諸ルーマCUについてのパレット・モードの重み付けされた関数に基づいて、諸ルーマCUから継承される。ここで、各ルーマCUパレット・モードについての重みは、現在のクロマCUとルーマCUとの間の空間的対応によって決定される。
(上記の可能性a~dのうち一つが標準によってあらかじめ定義されてもよいことを注意しておく。あるいはまた、可能性a~bのうちの1つがエンコーダによって設定され、一つまたは複数のピクチャーまたはピクチャーの一部について一度、信号伝達されてもよい。エンコーダおよびデコーダが、同じ継承規則(a~dのうちの1つ)を採用することができる限り、本開示は、どの特定の手法によっても限定されない。)
【0146】
4.クロマCUについてのpalette_mode_flagは、そのクロマCUをカバーする1つのあるルーマCU、たとえばそのクロマCUの左上または中央サンプルをカバーするルーマCUから継承される。
【0147】
5.クロマCUについてのpalette_mode_flagは、そのクロマCUをカバーする1つのあるルーマCU、たとえばそのクロマCUの左上または中央サンプルをカバーするルーマCUに基づいて、たとえば以下の仕方のうちの一つで導出される:
a.カバーするルーマCUが0に等しいpalette_mode_flagをもつ(つまり、そのルーマCUについてはパレット符号化が適用されない)場合、そのクロマCUについてのpalette_mode_flagは0であると推定される。
b.カバーするルーマCUが0に等しいpalette_mode_flagをもつ場合、そのクロマCUについてのpalette_mode_flagは、バイストリームにおいて/デコード側のために信号伝達され、そのクロマCUについてのpalette_mode_flagはビットストリームからパースされる。
c.カバーするルーマCUが1に等しいpalette_mode_flagをもつ場合、そのクロマCUについてのpalette_mode_flagは1であると推定される
d.カバーするルーマCUが1に等しいpalette_mode_flagをもつ場合、そのクロマCUについてのpalette_mode_flagは、バイストリームにおいて/デコード側のために信号伝達され、そのクロマCUについてのpalette_mode_flagはビットストリームからパースされる。
【0148】
上記の諸例では、2つのクロマ成分が統合的に扱われていることを注意しておく。しかしながら、いくつかの例示的な実装では、それらのクロマ成分は別個に扱われてもよい、すなわち、別個のpalette_mode_flag、パレット、およびルーマおよびクロマについて上述した他の関連パラメータを有していてもよい。さらに、本明細書では、簡単のために、palette_mode_flagまたはフラグという用語が、時に、フラグ値の意味で使用される。
【0149】
第5の方法では、クロマCUについてのpalette_mode_flagはCABACを使って信号伝達される。ここで、現在のクロマ・ブロックについてのコンテキストは、対応するルーマ・ブロックに基づいて選ばれる。たとえば、すべての対応するルーマ・ブロックが同じpalette_mode_flagをもつ場合にはあるコンテキストを使用し、そうでない場合には別のコンテキストを使用する。
【実施例2】
【0150】
第2の実施形態
この実施形態は、デュアル・ツリーが可能な場合のパレットおよびパレットのサイズの伝送および導出の方法を開示する。この実施形態は、任意の可能な仕方で第1の実施形態と組み合わされることができることに注意しておくべきである。
【0151】
第1の可能な仕方では、単一ツリーが使用されるか別個ツリーが使用されるかにかかわりなく、別個のパレットが常に使用される。この方法では、各Y、Cb、Cr成分についてのパレットのサイズおよびパレットが、独立したシンタックス要素として伝送される。単一ツリーが使用される場合、パレットのサイズおよびパレットは、各Y、Cb、Cr成分について、単一CUにおいて伝送される。デュアル・ツリーが使用される場合、Y成分についてのパレットのサイズおよびパレットはルーマCUにおいて伝送され、CbおよびCr成分についてのパレットのサイズおよびパレットはクロマCUにおいて伝送される。第1の可能な仕方の代替として、単一ツリーが使用される場合、各Y、Cb、Cr成分についてそれぞれのパレットのサイズおよびパレットは、単一CUにおいて伝送される。デュアル・ツリーが使用される場合、Y成分についてのパレットのサイズおよびパレットはルーマCUにおいて伝送され、CbおよびCr成分についてそれぞれのパレットのサイズおよびパレットはクロマCUにおいて伝送される。
【0152】
第2の可能な仕方では、ある成分についてのパレットのサイズは、何らかのあらかじめ定義された条件に基づいて別の成分のパレットのサイズに基づいて導出されてもよい。たとえば、クロマについてのパレットのサイズは、ルーマについての伝送されるパレットのサイズの2分の1であってもよい。この方法は、別個パレット手法と結合パレット手法の両方のために使用されうる。この方法では、単一ツリーが使用される場合、Y成分についてのパレットのサイズが単一CUにおいて伝送され、CbおよびCr成分についてのパレットのサイズがあらかじめ定義された条件に基づいて導出される;デュアル・ツリーが使用される場合、Y成分についてのパレットのサイズがルーマCUにおいて伝送され、CbおよびCr成分についてのパレットのサイズがあらかじめ定義された条件に基づいて導出される。
【0153】
第3の可能な仕方では、ある成分についてのパレットのサイズが、信号伝達されるか、または別の成分のパレットのサイズに基づいて導出されるかを指定するために、ビットストリームにおいて特別なフラグが信号伝達されてもよい。上述のパレット・サイズ信号伝達(符号化)手法は、例示的なものである。本開示は、これに限定されない。たとえば、パレットのサイズは、標準において固定されていてもよく、あるいはたとえば標準において定義された何らかの規則に従って、CUサイズまたは他のパラメータに基づいて、エンコーダとデコーダとの間のさらなる信号伝達なしに導出可能であってもよい。
【0154】
第4の可能な仕方では、Y、Cb、およびCr成分について伝送される各パレットは、何らかのあらかじめ定義された単調な順序で並べられてもよく、隣接する要素間の差分が伝送されてもよい。単一ツリーが使用される場合、差分は単一CUにおいて伝送される。デュアル・ツリーが使用される場合、Y成分についての差分はルーマCUにおいて伝送され、CbおよびCr成分についての差分はクロマCUにおいて伝送される。この方法では、一般性を限定することなく、パレットが単調に増加する順序で並べられていると想定して、各成分について、2番目以降の各パレット要素は、現在のパレット要素と前のパレット要素との間の差として表現されうる。最初の要素は、いかなる追加的な処理なしに、完全な表現を用いて表現され、符号化されてもよい。
【0155】
第5の可能な仕方では、Y、Cb、Cr成分について伝送される各パレットは、何らかのあらかじめ定義された単調な順序で並べられてもよく、隣接する要素間の差分が伝送されてもよい。単一ツリーが使用される場合、差分は単一CUにおいて伝送される。デュアル・ツリーが使用される場合、Y成分についての差分はルーマCUにおいて伝送され、CbおよびCr成分についての差分はクロマCUにおいて伝送される。この方法では、一般性を限定することなく、パレットが増加する順序で並べられていると想定して、各成分について、2番目から最後から2番目までの各パレット要素は、現在のパレット要素と前のパレット要素との間の差として表現されうる。最初の要素は、いかなる追加的な処理なしに、完全な表現を用いて表現され、符号化されてもよい。最後の要素は、最大の可能な値と自分自身との差として表現され、符号化されてもよい。
【0156】
第6の方法では、単一ツリーが使用されるか別個ツリーが使用されるかにかかわりなく、常に統合CbCrパレットが使用される。この方法では、パレットのサイズおよびパレットは、それぞれの別個のグループについて伝送される。単一ツリーが使用される場合、パレットのサイズおよびパレットは、Y成分および合同的なCb-Cr成分のそれぞれについて、単一CUにおいて伝送される;デュアル・ツリーが使用される場合、Y成分についてのパレットのサイズおよびパレットは、ルーマCUにおいて伝送され、合同CbCrパレットのサイズおよびパレットは、クロマCUにおいて伝送される。
【0157】
第7の方法では、別個ツリーが使用される場合には統合CbCrパレットが適用され、単一ツリーが使用される場合には統合YCbCrパレットが適用される。単一ツリーが使用される場合、統合YCbCrパレットのサイズおよびパレットは、すべてのY、Cb、Cr成分を一緒にしたCUについて伝送される。デュアル・ツリーが使用される場合、Y成分についてのパレットのサイズおよびパレットはルーマCUにおいて伝送され、統合CbCrパレットのサイズおよびパレットはクロマCUにおいて伝送される。
【0158】
上述の2つの方法において、結合パレットが使用される場合、結合された要素は、タプルとして、タプルのある種の要素によって順序付けられてもよい。たとえば、Y-Cb-Cr結合が使用される場合、パレット要素であるY-Cb-Cr三つ組の順序付けは、まずY値によって実行され、Cb値およびCr値は、Y値に従って並べ替えられる。より具体的な例では、結合されたY-Cb-Crパレットが、次の三つ組:(100,100,100)、(90,150,150)、(120,200,90)で構成されている場合、第1の(Y成分)で並べた後は、(90,150,150)、(100,100,100)、(120,200,90)となる。
【0159】
この方法では、Yパレットは、上述のように、隣接する要素のパレット要素間の差として表現されてもよく、CbおよびCrパレットは、追加的な処理なしで完全に表現されてもよい。上記の具体例においては、そのような表現は、(100,100,100)、(10,100,100)、(10,200,90)である。
【0160】
別の例では、Cb-Cr結合パレットが使用される場合、YパレットとCbまたはCrパレットの一方とが隣接する要素間の差分として表現され、伝送されてもよいが、残りのパレット部分(たとえば、残りのパレット)は、追加的な処理なしで完全に表現され、伝送されてもよい。
【実施例3】
【0161】
第3の実施形態
この実施形態は、デュアル・ツリーが可能な場合のパレットの予測の種々の方法を記載する。
【0162】
第1の可能な仕方では、別個のパレットが使用される場合、各Y、Cb、およびCr成分について1つある別個のパレットの、0および1の値のみからなる予測ベクトル(ブーリアン・ベクトルとも呼ばれる)が、独立したシンタックス要素として伝送される。この方法では、単一ツリーが使用される場合、各Y、Cb、およびCr成分についてのパレットの予測ベクトルは単一CUにおいて伝送され;デュアル・ツリーが使用される場合、Y成分についてのパレットの予測ブーリアン・ベクトルはルーマCUにおいて伝送され、CbおよびCr成分についてのパレットの予測ブーリアン・ベクトルはクロマCUにおいて伝送される。
【0163】
第2の可能な仕方では、結合パレットが使用される場合、パレットの予測ブーリアン・ベクトルは、それぞれの別個のグループについて伝送される。たとえば、結合されたCb-Crの場合、単一ツリーが使用される場合、Y成分および結合されたCb-Cr成分についてのパレットの予測ブーリアン・ベクトルは単一CUにおいて伝送される;デュアル・ツリーが使用される場合、Y成分についてのパレットの予測ブーリアン・ベクトルはルーマCUにおいて伝送され、結合されたCb-Cr成分についてのパレットの予測ブーリアン・ベクトルはクロマCUにおいて伝送される。
【0164】
第3の方法では、結合パレットが使用される場合、パレットの予測ブーリアン・ベクトルは、それぞれの別個のグループについて伝送される。たとえば、結合されたCb-Crの場合、単一ツリーが使用される場合、Y成分および結合Cb-Cr成分についてのパレットの予測ブーリアン・ベクトルは単一CUにおいて伝送される;デュアル・ツリーが使用される場合、Y成分についてのパレットの予測ブーリアン・ベクトルはルーマCUにおいて伝送され、結合されたCb-Cr成分についてのパレットの予測ブーリアン・ベクトルはクロマCUにおいて伝送される。
【0165】
第3の実施形態は、単独のまたは組み合わせた第1の実施形態および第2の実施形態と組み合わされることができることを注意しておくべきである。
【実施例4】
【0166】
第4の実施形態
この実施形態は、デュアル・ツリーが可能な場合の、signal_escape_flag使用の種々の方法を記載する。
【0167】
第1の可能な仕方では、各Y、Cb、Cr成分についてのsignal_escape_flagは、独立したシンタックス要素として伝送される。単一ツリーが使用される場合、Y、Cb、Cr成分についてのsignal_escape_flagは単一CUにおいて独立に伝送され、デュアル・ツリーが使用される場合、Y成分についてのsignal_escape_flagはルーマCUにおいて伝送され、CbおよびCr成分についてのsignal_escape_flagはクロマCUにおいて独立に伝送される。
【0168】
第2の可能な仕方では、すべての成分についての1つだけのsignal_escape_flagがCUにおいて伝送される。単一ツリーが使用される場合、Y、Cb、Cr成分についての1つのsignal_escape_flagがCUにおいて伝送される。デュアル・ツリーが使用される場合、Y成分についての1つのsignal_escape_flagはルーマCUにおいて伝送され、CbおよびCr成分についての1つのsignal_escape_flagはクロマCUにおいて伝送される。
【0169】
第3の可能な仕方では、単一ツリーが使用されるか別個ツリーが使用されるかにかかわらず、Y成分について常に1つのsignal_escape_flagが信号伝達され、CbおよびCr成分について1つのsignal_escape_flagが常に信号伝達される。単一ツリーが使用される場合、Y成分についての1つのsignal_escape_flagと、統合CbおよびCr成分についての1つのsignal_escape_flagとが、CUにおいて伝送される。デュアル・ツリーが使用される場合、Y成分についての1つのsignal_escape_flagはルーマCUにおいて伝送され、CbおよびCr成分についての1つのsignal_escape_flagはクロマCUにおいて伝送される。
【0170】
第4の可能な仕方では、signal_escape_flagはルーマCUについてのみ信号伝達され、クロマCUについては常に、偽であると推定されてもよい。
【0171】
第5の可能な仕方では、signal_escape_flagは、ルーマCUについてのみ信号伝達され、クロマCUについては以下の仕方のうちの一つまたは複数で導出されてもよい:
1.クロマCUが1つのルーマCUによって完全にカバーされる場合、クロマCUについてのsignal_escape_flagはルーマCUから継承される。
【0172】
2.クロマCUが複数のルーマCUによって最小限にカバーされ、すべてのかかるルーマCUが同じsignal_escape_flagをもつ場合、クロマCUについてのパレット・モードはルーマCUから継承される。
【0173】
3.クロマCUが複数のルーマCUによってカバーされ、すべてのかかるルーマCUが同じsignal_escape_flagをもつのではない場合、以下のいずれかとなる:
a.クロマCUについてのsignal_escape_flagはビットストリームにおいて信号伝達される;または
b.クロマCUについてのsignal_escape_flagは、諸ルーマCUについてのsignal_escape_flagの間で多数決原理に基づいて諸ルーマCUから継承される;または
c.クロマCUについてのsignal_escape_flagは、同じ値(真/偽)のパレット・モード・フラグの比に基づいて諸ルーマCUから継承される;比が何らかのあらかじめ定義された閾値より上である(超える)場合、クロマCUについてのsignal_escape_flagは、諸ルーマCUにおけるsignal_escape_flagの多数決値から継承される;そうでない場合、クロマCUについてのsignal_escape_flagは信号伝達される;または
d.クロマCUについてのsignal_escape_flagは、諸ルーマCUについてのパレット・モードの重み付けされた関数に基づいて、諸ルーマCUから継承される。ここで、各ルーマCUパレット・モードについての重みは、現在のクロマCUとルーマCUとの間の空間的対応によって決定される。
【0174】
4.クロマCUについてのsignal_escape_flagは、そのクロマCUをカバーする1つのあるルーマCU、たとえばそのクロマCUの左上または中央サンプルをカバーするルーマCUから継承される。
【0175】
5.クロマCUについてのsignal_escape_flagは、そのクロマCUをカバーする1つのあるルーマCU、たとえばそのクロマCUの左上または中央サンプルをカバーするルーマCUに基づいて、たとえば以下の仕方のうちの一つで導出される:
a.カバーするルーマCUが0に等しいsignal_escape_flagをもつ場合、そのクロマCUについてのsignal_escape_flagは0であると推定される
b.カバーするルーマCUが0に等しいsignal_escape_flagをもつ場合、そのクロマCUについてのsignal_escape_flagは、ビットストリームにおいて信号伝達される
c.カバーするルーマCUが1に等しいsignal_escape_flagをもつ場合、そのクロマCUについてのsignal_escape_flagは1であると推定される
d.カバーするルーマCUが1に等しいsignal_escape_flagをもつ場合、そのクロマCUについてのsignal_escape_flagは、ビットストリームにおいて信号伝達される。
【実施例5】
【0176】
第5の実施形態
この実施形態は、デュアル・ツリーが可能な場合のパレット・インデックス・マップの使用および信号伝達の種々の方法を記載する。
【0177】
第1の可能な仕方では、別個のパレットが使用される場合、各Y、Cb、およびCr成分についてのpalette_indexes_mapは、独立したシンタックス要素として伝送される。単一ツリーが使用される場合、各Y、Cb、Cr成分についてそれぞれのpalette_indexes_mapが単一CUにおいて伝送され、デュアル・ツリーが使用される場合、Y成分についてのpalette_indexes_mapはルーマCUにおいて伝送され、Cb、Cr成分についてそれぞれのpalette_indexes_mapはクロマCUにおいて伝送される。
【0178】
第2の可能な仕方では、結合パレットが使用される場合、palette_indexes_mapは、それぞれの別個のグループについて伝送される。たとえば、結合されたCb-Crの場合、単一ツリーが使用される場合、各YおよびCb-Crグループについてのpalette_indexes_mapは、単一CUにおいて独立したシンタックス要素として伝送され、デュアル・ツリーが使用される場合、Y成分についてのpalette_indexes_mapはルーマCUにおいて伝送され、Cb-Cr成分についての結合されたpalette_indexes_mapはクロマCUにおいて伝送される。
【0179】
別の例では、Y-Cb-Cr結合の場合、単一ツリーが使用される場合、Y-Cb-Crグループについてのpalette_indexes_mapは、単一CUにおいて独立したシンタックス要素として伝送され、デュアル・ツリーが使用される場合、Y成分についてのpalette_indexes_mapはルーマCUにおいて伝送され、Cb-Cr成分についての結合されたpalette_indexes_mapは、クロマCUにおいて伝送される。
【0180】
上述した諸方法は、インデックス・マップの表現および符号化のいかなるタイプにもかかわらず、適用されうることを理解しておくべきである。たとえば、palette_indexes_mapは、ランレングス符号化(RLE)符号化を用いて表現され、符号化されてもよく、次に、RLE符号化は以下のシンタックス要素:num_indexes配列、last_run_type値、s_points配列、runs配列、およびその他のうちの全部または一部を含んでいてもよい。別の例では、palette_indexes_mapは、2次元の長方形のインデックス・マトリクス上を移動するために、あるスキャン・タイプを使用して直接、表現され、符号化されてもよい。
【0181】
第3の可能な仕方では、ルーマおよびクロマCUについてのpalette_indexes_mapは、互いに異なる表現および符号化を有していてもよい。たとえば、ルーマCUについてのpalette_indexes_mapは、RLE符号化を使用して表現され、符号化されてもよく、次に、RLE符号化は以下のシンタックス要素:num_indexes配列、last_run_type値、s_points配列、runs配列、およびその他のうちの全部または一部を含んでいてもよく、クロマCUについてのpalette_indexes_mapは、2次元の長方形のインデックス・マトリクス上を移動するために、あるスキャン・タイプを使用して直接、表現され、符号化されてもよい。別の例では、ルーマおよびクロマCUについての表現および符号化の任意の他の組み合わせが使用されてもよい。
【0182】
第4の可能な仕方では、Y、Cb、およびCr成分についてのpalette_indexes_mapは、互いに異なる表現および符号化を有していてもよい。たとえば、Y成分についてのpalette_indexes_mapは、RLE符号化を使用して表現され、符号化されてもよく、次に、RLE符号化は以下のシンタックス要素:num_indexes配列、last_run_type値、s_points配列、runs配列、およびその他のうちの全部または一部を含んでいてもよく、CbおよびCr成分についてのpalette_indexes_mapは、2次元の長方形のインデックス・マトリクス上を移動するために、あるスキャン・タイプを使用して直接、表現され、符号化されてもよい。別の例では、異なる成分についての表現および符号化の任意の他の組み合わせが使用されてもよい。
【実施例6】
【0183】
第6の実施形態
この実施形態は、デュアル・ツリーが可能である場合のpalette_scan_orderの使用の種々の手法を記載する。
【0184】
第1の可能な仕方では、各Y、Cb、およびCr成分についてのpalette_scan_orderは、独立したシンタックス要素として送信される。単一ツリーが使用される場合、Y、Cb、およびCr成分についてのpalette_scan_orderは、3つのシンタックス要素として単一CUにおいて伝送され、デュアル・ツリーが使用される場合、Y成分についてのpalette_scan_orderは、ルーマCUにおいて伝送され、CbおよびCr成分についてのpalette_scan_orderは、2つのシンタックス要素としてクロマCUにおいて伝送される。
【0185】
第2の可能な仕方では、デュアル・ツリーが使用される場合、palette_scan_orderは、独立したシンタックス要素として各ルーマCUおよびクロマCUについて一度伝送されてもよい。
【0186】
第3の可能な仕方では、デュアル・ツリーが使用される場合、palette_scan_orderはルーマCUについてのみ信号伝達され、クロマCUについては何らかのあらかじめ定義された値に推定されてもよい。
【0187】
あるいはまた、palette_scan_orderは、Y平面についてのみ信号伝達され、Cb平面およびCr平面についてはあらかじめ定義された値に推定されてもよい。
【0188】
第4の可能な仕方では、palette_scan_orderはルーマCUについてのみ信号伝達され、クロマCUについては以下の仕方のうちの一つまたは複数で導出されてもよい:
1.クロマCUが1つのルーマCUによって完全にカバーされる場合、クロマCUについてのpalette_scan_orderはルーマCUから継承される。
【0189】
2.クロマCUが複数のルーマCUによって最小限にカバーされ、すべてのかかるルーマCUが同じpalette_scan_orderをもつ場合、クロマCUについてのパレット・モードはルーマCUから継承される。
【0190】
3.クロマCUが複数のルーマCUによって最小限にカバーされ、すべてのかかるルーマCUが同じpalette_scan_orderをもつのではない場合、以下のいずれかとなる:
a.クロマCUについてのpalette_scan_orderはビットストリームにおいて信号伝達される;または
b.クロマCUについてのpalette_scan_orderは、諸ルーマCUについてのpalette_scan_orderの間で多数決原理に基づいて諸ルーマCUから継承される;または
c.クロマCUについてのpalette_scan_orderは、同じ値(真/偽)のパレット・モード・フラグの比に基づいて諸ルーマCUから継承される;比が何らかのあらかじめ定義された閾値より上である場合、クロマCUについてのpalette_scan_orderは、それらのルーマCUにおけるpalette_scan_orderの多数決値から継承される;そうでない場合、クロマCUについてのpalette_scan_orderは信号伝達される;または
d.クロマCUについてのpalette_scan_orderは、諸ルーマCUについてのパレット・モードの重み付けされた関数に基づいて、諸ルーマCUから継承される。ここで、各ルーマCUパレット・モードについての重みは、現在のクロマCUとルーマCUとの間の空間的対応によって決定される。
【0191】
4.クロマCUについてのpalette_scan_orderは、そのクロマCUをカバーする1つのあるルーマCU、たとえばそのクロマCUの左上または中央サンプルをカバーするルーマCUから継承される。
【0192】
上記で開示した諸実施形態によって、以下の改善されたパフォーマンスが実験によって観察されることができる。
【0193】
テーブル1―VVC3.0におけるパレット符号化シミュレーション結果。Y-Cb-Cr結合パレットが単一ツリーについて使用される。
【表2】
【0194】
テーブル2―VVC3.0におけるパレット符号化シミュレーション結果。YパレットおよびCb-Cr結合パレットが単一ツリーについて使用される。
【表3】
【0195】
テーブル1は、デュアル・ツリー分割を用いるVVC3.0におけるパレット符号化のパフォーマンスを例証しており、ここで、単一ツリーについては、結合されたY-Cb-Crパレット・インデックス・マップが信号伝達され;デュアル・ツリーのルーマCUについては、Yパレット・インデックス・マップが信号伝達され、デュアル・ツリーのクロマCUについては、結合されたCb-Crパレット・インデックス・マップが信号伝達される。
【0196】
テーブル2は、デュアル・ツリー分割を用いるVVC3.0におけるパレット符号化のパフォーマンスを例証する。ここで、単一ツリーについては、結合されたYパレット・インデックス・マップおよび結合されたCb-Crパレット・インデックス・マップが信号伝達され;デュアル・ツリーのルーマCUについては、Yパレット・インデックス・マップが信号伝達され、デュアル・ツリーのクロマCUについては、結合されたCb-Crパレット・インデックス・マップが信号伝達される。
【0197】
このように、分離されたパレットの代わりに結合されたパレットを使用することが有益な効果を達成することを許容することを示すことができる。
【0198】
本発明の実施形態は、主にビデオ符号化に基づいて記載されてきたが、符号化システム10、エンコーダ20およびデコーダ30(および対応してシステム10)の実施形態、ならびに本明細書に記載される他の実施形態は、静止ピクチャーの処理または符号化、すなわち、ビデオ符号化におけるような先行するまたは連続するどのピクチャーからも独立した個別のピクチャーの処理または符号化のために構成されてもよいことを注意しておくべきである。一般に、ピクチャー処理符号化が単一のピクチャー17に限定される場合、インター予測ユニット244(エンコーダ)および344(デコーダ)だけは利用可能でない可能性がある。ビデオ・エンコーダ20およびビデオ・デコーダ30の他のすべての機能(ツールまたは技術とも呼ばれる)は、静止ピクチャー処理のためにも等しく使用されうる。たとえば、残差計算204/304、変換206、量子化208、逆量子化210/310、(逆)変換212/312、分割262/362、イントラ予測254/354、および/またはループ・フィルタリング220、320、およびエントロピー符号化270およびエントロピー・デコード304がそうである。
【0199】
たとえばエンコーダ20およびデコーダ30の実施形態、並びに、たとえばエンコーダ20およびデコーダ30を参照して本明細書に記載された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実装されうる。ソフトウェアで実装される場合、機能は、コンピュータ読み取り可能媒体に記憶されるか、あるいは一つまたは複数の命令またはコードとして通信媒体を通じて伝送され、ハードウェアベースの処理ユニットによって実行されてもよい。コンピュータ読み取り可能媒体は、データ記憶媒体のような有形媒体に対応するコンピュータ読み取り可能記憶媒体、または、たとえば通信プロトコルに従って、ある場所から他の場所へのコンピュータ・プログラムの転送を容易にする任意の媒体を含む通信媒体を含んでいてもよい。このように、コンピュータ読み取り可能媒体は、一般に、(1)非一時的である有形のコンピュータ読み取り可能な記憶媒体、または(2)信号または搬送波のような通信媒体に対応しうる。データ記憶媒体は、本開示に記載される技術の実装のための命令、コードおよび/またはデータ構造を取得するために、一つまたは複数のコンピュータまたは一つまたは複数のプロセッサによってアクセス可能な任意の利用可能な媒体でありうる。コンピュータ・プログラム製品は、コンピュータ読み取り可能媒体を含んでいてもよい。
【0200】
本開示を手短かに要約すると、第1の例においては、エンコード装置によって実装される符号化方法が提供され:現在の符号化ツリー単位を、シグナル分割タイプにおける1つのルーマCBおよび2つのクロマCBを含む単一CUに、または別個分割タイプのみにおけるルーマCBのみを含む別個のルーマCUおよび2つのクロマCBのみを含むクロマCUに分割するステップ;対象CUおよび関連するパレット符号化情報を、対象CUの分割タイプに依存してビットストリーム中にエンコードするステップ;および/または対象CUの分割タイプおよび関連するパレット符号化情報に基づいて、ある/前記ビットストリームから対象CUをデコードするステップを含む。前記関連するパレット符号化情報は、パレット符号化制御フラグおよびパレット符号化情報シンタックス要素を含み、該パレット符号化制御フラグおよびパレット符号化情報シンタックス要素は、対象CUの分割タイプに基づいて計算され、信号伝達/パースされる、請求項1に記載の方法。
【0201】
第1の例に加えて、パレット符号化情報シンタックス要素は、パレット(単数または複数)予測子ベクトル、パレット(単数または複数)のサイズ、パレット(単数または複数)、エスケープ・フラグ(単数または複数)、インデックス・マップ(単数または複数)のうちの一つまたは複数(または全部)を含んでいてもよい。
【0202】
代替的または追加的に、パレット符号化制御フラグおよびパレット符号化情報シンタックス要素は、単一CUタイプについて、Y-Cb-Cr成分を合わせたもの(結合したもの)について一度、計算され、信号伝達されてもよい。
【0203】
代替的または追加的に、パレット符号化制御フラグおよびパレット符号化情報シンタックス要素は、単一CUタイプについて2回、計算され、信号伝達される:1回はY成分について、もう1回はCb-Cr成分を合わせたもの(結合したもの)についてである。
【0204】
代替的または追加的に、パレット符号化制御フラグおよびパレット符号化情報シンタックス要素は、ルーマCUについて、Y成分について一度、計算され、信号伝達される。
【0205】
代替的または追加的に、デュアル・ツリーが使用される場合、パレット符号化はクロマCUにおいては使用されない。
【0206】
代替的または追加的に、デュアル・ツリーが使用される場合、パレット符号化制御フラグおよびパレット符号化情報シンタックス要素は、クロマCUにおいてCb-Cr成分を合わせたもの(結合したもの)について一度、計算され、信号伝達される。
【0207】
代替的または追加的に、デュアル・ツリーが使用される場合の、クロマCUについての、パレット符号化制御フラグおよびパレット符号化情報シンタックス要素の計算および信号伝達は、共位置のルーマCU(単数または複数)のパレット符号化制御フラグに依存する。
【0208】
たとえば、デュアル・ツリーが使用される場合、クロマCUについてのパレット符号化制御フラグは、以下の規則に従って、共位置のルーマCU(単数または複数)のパレット符号化制御フラグに基づいて計算される:すべての共位置のルーマ・ブロックが1に等しいパレット符号化制御フラグを有する場合、現在のクロマ・ブロックについてパレット符号化制御フラグおよびパレット符号化情報シンタックス要素を計算して信号伝達する。それ以外の場合は、現在のクロマ・ブロックについてはパレット符号化を使用しない。
【0209】
別の例では、デュアル・ツリーが使用される場合、クロマCUについてのパレット符号化制御フラグは、以下の規則に従って、共位置のルーマCU(単数または複数)のパレット符号化制御フラグに基づいて計算される:すべての共位置のルーマ・ブロックが1に等しいパレット符号化制御フラグを有する場合、そのクロマ・ブロックについてのパレット符号化制御フラグを1に等しいと推定し、パレット符号化情報シンタックス要素を計算し、信号伝達する。それ以外の場合、現在のクロマ・ブロックについてパレット符号化制御フラグおよびパレット符号化情報シンタックス要素を計算して信号伝達する。
【0210】
ある例示的実施形態によれば、デコード装置によって実装されるデコード方法が提供され、ビットストリームから現在の符号化単位(CU)の分割タイプをパースするステップであって、前記分割タイプは、単一ツリー分割タイプまたは別個ツリー分割タイプのいずれかであり、前記単一ツリー分割タイプとしては、現在のCUは、ルーマ符号化ブロックおよび2つのクロマ符号化ブロックを含む単一CUである、または別個ツリー分割タイプとしては、別個分割タイプにおいて、現在のCUは、ルーマ符号化ブロックのみを含むルーマCU、または2つのクロマ符号化ブロックのみを含むクロマCUである、ステップ;現在のCUの分割タイプが単一ツリー分割タイプである場合、前記ビットストリームから、前記単一CUについて、パレット符号化が許容されるかどうかを示すパレット有効化インジケータをパースする、または、現在のCUの分割タイプが別個ツリー分割タイプである場合、前記ビットストリームから、前記ルーマCUについて、パレット符号化が許容されるかどうかを示すパレット有効化インジケータをパースするステップ;およびパレット有効化インジケータがパレット符号化が許容されることを示す場合に、パレット・デコード方法を使用することによって、現在のCUをデコードするステップを含む。
【0211】
いくつかの例示的実装では、前記方法において、前記クロマCUについてパレット符号化が許容されないと推定し、前記方法は、前記パレット・デコード方法以外のデコード方法を使用することによって、前記クロマCUをデコードすることを含む。
【0212】
前記方法は、前記クロマCUに関連するルーマCUのパレット有効化インジケータに基づいて、前記クロマCUについてパレット符号化が許容されるかどうかを示すパレット有効化インジケータを導出するステップをさらに含んでいてもよい。
【0213】
前記方法において、前記クロマCUに関連するルーマCUのパレット有効化インジケータに基づいて、前記クロマCUについてパレット符号化が許容されるかどうかのパレット有効化インジケータを導出することが:前記クロマCUが前記ルーマCUによって完全にカバーされる場合、前記クロマCUについてのパレット有効化インジケータは前記ルーマCUについてのパレット有効化インジケータと同じである;または、前記クロマCUが前記ルーマCUを含む複数のルーマCUによって最小限にカバーされ、それらのルーマCUのすべてが同じインジケータ(同じ値)をもつ場合、前記クロマCUについてのパレット有効化インジケータは、それらのルーマCUについてのインジケータと同じである;または、前記クロマCUが前記ルーマCUを含む複数のルーマCUによって最小限にカバーされるが、すべてのルーマCUが同じインジケータをもつのではない場合、前記クロマCUについてのパレット有効化インジケータをビットストリームからパースする;もしくは、前記クロマCUについてのインジケータを、前記複数のルーマCUについての多数で(majorly)使用されているインジケータとして設定する;もしくは、あらかじめ定義された条件に基づいて、前記複数のルーマCUのうちのあるルーマCUのインジケータを、前記クロマCUについてのインジケータとして設定する、もしくは、前記複数のルーマCUのうちのあるルーマCUのインジケータを、複数のルーマCUについてのインジケータの重み付けされた関数に基づいて、前記クロマCUについてのインジケータとして設定し、ここで、各ルーマCUのインジケータについての重みは、前記クロマCUと前記複数のルーマCUとの間の空間的対応によって決定される;または、前記ルーマCUが前記クロマCUの左上または中央サンプルをカバーする場合、前記ルーマCUのインジケータを前記クロマCUのインジケータとして設定する;または前記ルーマCUが前記クロマCUの左上または中央サンプルをカバーする場合、前記ルーマCUのインジケータを前記クロマCUのインジケータとして、次の仕方のいずれかによって導出する:a)前記ルーマCUのパレット有効化インジケータが0に等しい場合、前記クロマCUについてのインジケータは0に設定される;b)前記ルーマCUのインジケータが0に等しい場合、前記クロマCUについてのインジケータをビットストリームからパースする;c)前記ルーマCUのパレット有効化インジケータが1に等しい場合、前記クロマCUについてのインジケータは1に設定される;d)前記ルーマCUのパレット有効化インジケータが1に等しい場合、前記クロマCUについてのインジケータをビットストリームからパースする、ことを含んでいてもよい。
【0214】
たとえば、前記クロマCUが前記ルーマCUを含む複数のルーマCUによって最小限にカバーされるが、すべてのルーマCUが同じインジケータをもつのではない場合に、あらかじめ定義された条件に基づいて、前記複数のルーマCUのうちのあるルーマCUのインジケータを、前記クロマCUについてのインジケータとして設定することは:前記複数のルーマCUのうちのあるルーマCUのインジケータを、同じ値(真/偽)のインジケータの比に基づいて、前記クロマCUについてのインジケータとして設定することを含み、前記比があらかじめ定義された閾値より上である場合には、クロマCUについてのインジケータは前記複数のCUによって多数で使用されているパレット有効化インジケータとして設定され、それ以外の場合には、前記クロマCUについてのインジケータをビットストリームからパースすることを含む。
【0215】
いくつかの実施形態では、パレット・デコード方法を使用することによって現在のCUをデコードすることは、ビットストリームから単一CU、ルーマCUまたはクロマCUについてのパレット符号化情報を導出し;該符号化情報を使用することによってパレット・デコード方法を使用することによって現在のCUをデコードすることを含む。
【0216】
たとえば、単一CUについてのパレット符号化情報は:ルーマCBおよびクロマCBのそれぞれについてのパレット、および/またはルーマCBおよびクロマCBのそれぞれについてのパレット・サイズおよび/またはパレット・インデックス・マップおよび/またはパレット・スキャン順を含む;または、単一CUについてのパレット符号化情報は:ルーマCBについてのパレットおよび/またはパレット・サイズおよび/またはパレット・インデックス・マップおよび/またはパレット・スキャン順、クロマCBについてのパレットおよび/またはパレット・サイズおよび/またはパレット・インデックス・マップおよび/またはパレット・スキャン順を含む;または単一CUについてのパレット符号化情報は:ルーマCBおよびクロマCBについてのパレットおよび/またはパレット・サイズおよび/またはパレット・インデックス・マップおよび/またはパレット・スキャン順を含む;かつ、ルーマCUについてのパレット符号化情報は:ルーマCBについてのパレット、および/またはルーマCBについてのパレット・サイズおよび/またはパレット・インデックス・マップおよび/またはパレット・スキャン順を含む;クロマCUについてのパレット符号化情報は、クロマCBについてのパレット、および/またはクロマCBについてのパレット・サイズおよび/またはパレット・インデックス・マップおよび/またはパレット・スキャン順を含む。
【0217】
上記実施形態および例のいくつかによれば、ビットストリームから単一CU、ルーマCUまたはクロマCUについてのパレット符号化情報を導出することは:ビットストリームから単一CUのルーマCBについてのパレット・サイズをパースし、カルCUのルーマCBについてのパレット・サイズに基づいて、フルのクロマCBについてのパレット・サイズを導出する;またはビットストリームからルーマCUについてのパレット・サイズをパースし、ルーマCUについてのパレット・サイズに基づいて、ルーマCUに関連するクロマCUについてのパレット・サイズを導出することを含む。
【0218】
ある例示的な実装では、パレット内の要素は、あらかじめ定義された単調な順序で並べられ、それらの要素のうちの最初の要素と、それらの要素のうちの最初の要素に続く隣接する要素の間の差分とが、符号化されたデータとしてビットストリームに含まれる。
【0219】
ある実施形態によれば、デコード装置によって実装されるデコード方法が提供され、現在の符号化単位(CU)の分割タイプをビットストリームからパースするステップであって、前記分割タイプは、単一ツリー分割タイプまたは別個ツリー分割タイプのいずれかであり、前記単一ツリー分割タイプとしては、現在のCUは、ルーマ符号化ブロックおよび2つのクロマ符号化ブロックを含む単一CUである、または別個ツリー分割タイプとしては、別個分割タイプにおいて、現在のCUは、ルーマ符号化ブロックのみを含むルーマCU、または2つのクロマ符号化ブロックのみを含むクロマCUである、ステップ;現在のCUの分割タイプが単一ツリー分割タイプである場合、前記ビットストリームから、前記ルーマ符号化ブロックについて、パレット符号化が許容されるかどうかを示すパレット有効化インジケータと、前記クロマ符号化ブロックの一つについて、パレット符号化が許容されるかどうかを示すパレット有効化インジケータとをパースする、または、現在のCUの分割タイプが別個ツリー分割タイプである場合、前記ビットストリームから、前記ルーマCUについて、パレット符号化が許容されるかどうかを示すパレット有効化インジケータと、前記クロマCUについて、パレット符号化が許容されるかどうかを示すパレット有効化インジケータとをパースするステップ;およびパレット有効化インジケータがパレット符号化が許容されることを示す場合に、パレット・デコード方法を使用することによって、現在のCUをデコードするステップを含む。
【0220】
ある実施形態によれば、デコード装置によって実装されるデコード方法が提供され、ビットストリームから単一CU、ルーマCUまたはクロマCUについてのパレット符号化情報を導出するステップと、該符号化情報を使用することによってパレット・デコード方法を使用することによって、現在のCUをデコードするステップとを含む。
【0221】
たとえば、単一CUについてのパレット符号化情報は:ルーマCBおよびクロマCBのそれぞれについてのパレット、および/またはルーマCBおよびクロマCBのそれぞれについてのパレット・サイズおよび/またはパレット・インデックス・マップおよび/またはパレット・スキャン順を含む;または、単一CUについてのパレット符号化情報は:ルーマCBについてのパレットおよび/またはパレット・サイズおよび/またはパレット・インデックス・マップおよび/またはパレット・スキャン順、クロマCBについてのパレットおよび/またはクロマCBについてのパレット・サイズおよび/またはパレット・インデックス・マップおよび/またはパレット・スキャン順を含む;または単一CUについてのパレット符号化情報は:ルーマCBおよびクロマCBについてのパレットおよび/またはパレット・サイズおよび/またはパレット・インデックス・マップおよび/またはパレット・スキャン順を含む;または、ルーマCUについてのパレット符号化情報は:ルーマCBについてのパレット、および/またはルーマCBについてのパレット・サイズおよび/またはパレット・インデックス・マップおよび/またはパレット・スキャン順を含む;クロマCUについてのパレット符号化情報は、クロマCBについてのパレット、および/またはクロマCBについてのパレット・サイズおよび/またはパレット・インデックス・マップおよび/またはパレット・スキャン順を含む。
【0222】
たとえば、ビットストリームから単一CU、ルーマCUまたはクロマCUについてのパレット符号化情報を導出することは:ビットストリームから単一CUのルーマCBについてのパレット・サイズをパースし、単一CUのルーマCBについてのパレット・サイズに基づいて、単一CUのクロマCBについてのパレット・サイズを導出する;またはビットストリームからルーマCUについてのパレット・サイズをパースし、ルーマCUについてのパレット・サイズに基づいて、ルーマCUに関連するクロマCUについてのパレット・サイズを導出することを含む。
【0223】
いくつかの実施形態では、パレット内の要素は、あらかじめ定義された単調な順序で並べられ、それらの要素のうちの最初の要素と、それらの要素のうちの最初の要素に続く隣接する要素の間の差分とが、符号化されたデータとしてビットストリームに含まれる。
【0224】
いくつかの実施形態では、パレット・インデックス・マップは、num_indexes配列、last_run_type値、s_points配列、およびruns配列を含むシンタックスのうちの少なくとも1つを使用するランレングス符号化(RLE)符号化方法を使用することによって符号化される。
【0225】
ある実施形態によれば、現在の符号化単位(CU)をデコードするための、デコード装置によって実装されるデコード方法が提供され、現在のCUは、単一ツリー分割タイプまたは別個ツリー分割タイプのいずれかであり、単一ツリー分割タイプとしては、現在のCUは、ルーマ符号化ブロックおよび2つのクロマ符号化ブロックを含む単一CUである、または別個ツリー分割タイプとしては、別個分割タイプにおいて、現在のCUは、ルーマ符号化ブロックのみを含むルーマCU、または2つのクロマ符号化ブロックのみを含むクロマCUであり、ルーマ符号化ブロックおよびクロマ符号化ブロックのそれぞれについて、当該方法は、ルーマ符号化ブロックおよびクロマ符号化ブロックのそれぞれについて、ビットストリームから、符号化ブロックにおける関連するサンプルがパレット外で符号化されていることを示すエスケープ・インジケータをパースするステップと;エスケープ・インジケータが、符号化ブロックにおける関連するサンプルがパレット外で符号化されていることを示す場合に、前記パレット・デコード方法以外の符号化方法を使用することによって、現在のCUの対応する符号化ブロックをデコードするステップとを含む。
【0226】
現在の符号化単位(CU)をデコードするための、デコード装置によって実装される別のデコード方法が提供され、現在のCUは、単一ツリー分割タイプまたは別個ツリー分割タイプのいずれかであり、単一ツリー分割タイプとしては、現在のCUは、ルーマ符号化ブロックおよび2つのクロマ符号化ブロックを含む単一CUである、または別個ツリー分割タイプとしては、別個分割タイプにおいて、現在のCUは、ルーマ符号化ブロックのみを含むルーマCU、または2つのクロマ符号化ブロックのみを含むクロマCUであり、ルーマ符号化ブロックおよびクロマ符号化ブロックのそれぞれについて、当該方法は、現在のCUがシグナルCUである場合、ルーマ符号化ブロックおよびクロマ符号化ブロックの全部について、ビットストリームから、符号化ブロックにおける関連するサンプルがパレット外で符号化されていることを示すエスケープ・インジケータをパースする;または現在のCUがルーマCUまたはクロマCUである場合、ビットストリームから、符号化ブロックにおける関連するサンプルがパレット外で符号化されているエスケープ・インジケータをパースする、ステップと;エスケープ・インジケータが、符号化ブロックにおける関連するサンプルがパレット外で符号化されていることを示す場合に、前記パレット・デコード方法以外の符号化方法を使用することによって、現在のCUをデコードするステップとを含む。
【0227】
ある実施形態によれば、現在の符号化単位(CU)をデコードするための、デコード装置によって実装されるデコード方法が提供され、現在のCUは、単一ツリー分割タイプまたは別個ツリー分割タイプのいずれかであり、単一ツリー分割タイプとしては、現在のCUは、ルーマ符号化ブロックおよび2つのクロマ符号化ブロックを含む単一CUである、または別個ツリー分割タイプとしては、別個分割タイプにおいて、現在のCUは、ルーマ符号化ブロックのみを含むルーマCU、または2つのクロマ符号化ブロックのみを含むクロマCUであり、ルーマ符号化ブロックおよびクロマ符号化ブロックのそれぞれについて、当該方法は、現在のCUがシグナルCUである場合、現在のCUのルーマ符号化ブロックについて、ビットストリームから、符号化ブロックにおける関連するサンプルがパレット外で符号化されているかどうかを示すエスケープ・インジケータをパースし、現在のクロマ符号化ブロックについて、ビットストリームから、符号化ブロックにおける関連するサンプルがパレット外で符号化されているかどうかを示すエスケープ・インジケータをパースする;または現在のCUがルーマCUまたはクロマCUである場合、ビットストリームから、符号化ブロックにおける関連するサンプルがパレット外で符号化されているかどうかを示すエスケープ・インジケータをパースする、ステップと;エスケープ・インジケータが、符号化ブロックにおける関連するサンプルがパレット外で符号化されていることを示す場合に、前記パレット・デコード方法以外の符号化方法を使用することによって、ルーマ符号化ブロックまたはクロマ符号化ブロックまたはルーマCUまたはクロマCUをデコードするステップとを含む。
【0228】
ある実施形態によれば、現在の符号化単位(CU)をデコードするための、デコード装置によって実装されるデコード方法が提供され、現在のCUは、単一ツリー分割タイプまたは別個ツリー分割タイプのいずれかであり、単一ツリー分割タイプとしては、現在のCUは、ルーマ符号化ブロックおよび2つのクロマ符号化ブロックを含む単一CUである、または別個ツリー分割タイプとしては、別個分割タイプにおいて、現在のCUは、ルーマ符号化ブロックのみを含むルーマCU、または2つのクロマ符号化ブロックのみを含むクロマCUであり、ルーマ符号化ブロックおよびクロマ符号化ブロックのそれぞれについて、当該方法は、現在のCUがルーマCUである場合、ビットストリームから、符号化ブロックにおける関連するサンプルがパレット外で符号化されているかどうかを示すエスケープ・インジケータをパースするステップと;エスケープ・インジケータが、符号化ブロックにおける関連するサンプルがパレット外で符号化されていることを示す場合に、前記パレット・デコード方法以外の符号化方法を使用することによって、ルーマCUをデコードするステップとを含む。
【0229】
たとえば、本方法は、符号化ブロックにおける関連するサンプルがパレット外で符号されているかどうかを示すエスケープ・インジケータを、クロマCUに関連するルーマCUのエスケープ・インジケータに基づいて導出するステップをさらに含んでいてもよい。
【0230】
たとえば、符号化ブロックにおける関連するサンプルがパレット外で符号されているかどうかを示すエスケープ・インジケータを、クロマCUに関連するルーマCUのエスケープ・インジケータに基づいて導出することは:前記クロマCUが前記ルーマCUによって完全にカバーされる場合、前記クロマCUについてのエスケープ・インジケータは前記ルーマCUについてのエスケープ・インジケータと同じである;または、前記クロマCUが前記ルーマCUを含む複数のルーマCUによって最小限にカバーされ、それらのルーマCUのすべてが同じインジケータ(同じ値)をもつ場合、前記クロマCUについてのエスケープ・インジケータは、それらのルーマCUについてのインジケータと同じである;または、前記クロマCUが前記ルーマCUを含む複数のルーマCUによって最小限にカバーされるが、すべてのルーマCUが同じインジケータをもつのではない場合、前記クロマCUについてのエスケープ・インジケータをビットストリームからパースする;もしくは、前記クロマCUについてのインジケータを、前記複数のルーマCUについて多数で(majorly)使用されているインジケータとして設定する;もしくは、あらかじめ定義された条件に基づいて、前記複数のルーマCUのうちのあるルーマCUのインジケータを、前記クロマCUについてのインジケータとして設定する、もしくは、前記複数のルーマCUのうちのあるルーマCUのインジケータを、複数のルーマCUについてのインジケータの重み付けされた関数に基づいて、前記クロマCUについてのインジケータとして設定し、ここで、各ルーマCUのインジケータについての重みは、前記クロマCUと前記複数のルーマCUとの間の空間的対応によって決定される;または、前記ルーマCUが前記クロマCUの左上または中央サンプルをカバーする場合、前記ルーマCUのインジケータを前記クロマCUについてのインジケータとして設定する;または前記ルーマCUが前記クロマCUの左上または中央サンプルをカバーする場合、前記ルーマCUのインジケータを前記クロマCUについてのインジケータとして、次の仕方のいずれかによって導出する:a)前記ルーマCUのエスケープ・インジケータが0に等しい場合、前記クロマCUについてのインジケータは0に設定される;b)前記ルーマCUのインジケータが0に等しい場合、前記クロマCUについてのインジケータをビットストリームからパースする;c)前記ルーマCUのエスケープ・インジケータが1に等しい場合、前記クロマCUについてのインジケータは1に設定される;d)前記ルーマCUのエスケープ・インジケータが1に等しい場合、前記クロマCUについてのインジケータをビットストリームからパースする、ことを含む。
【0231】
たとえば、前記クロマCUが前記ルーマCUを含む複数のルーマCUによって最小限にカバーされるが、すべてのルーマCUが同じインジケータをもつのではない場合に、あらかじめ定義された条件に基づいて、前記複数のルーマCUのうちのあるルーマCUのインジケータを、前記クロマCUについてのインジケータとして設定することは:前記複数のルーマCUのうちのあるルーマCUのインジケータを、同じ値(真/偽)のインジケータの比に基づいて、前記クロマCUについてのインジケータとして設定することを含み、前記比があらかじめ定義された閾値より上である場合には、クロマCUについてのインジケータは前記複数のCUによって多数で使用されているエスケープ・インジケータとして設定され、それ以外の場合には、前記クロマCUについてのインジケータをビットストリームからパースすることを含む。
【0232】
ある実施形態によれば、デコード装置によって実装されるデコード方法が提供され、現在の符号化単位(CU)の分割タイプをビットストリームからパースするステップであって、分割タイプは、単一ツリー分割タイプまたは別個ツリー分割タイプのいずれかであり、単一ツリー分割タイプとしては、現在のCUは、ルーマ符号化ブロックおよび2つのクロマ符号化ブロックを含む単一CUである、または別個ツリー分割タイプとしては、別個分割タイプにおいて、現在のCUは、ルーマ符号化ブロックのみを含むルーマCU、または2つのクロマ符号化ブロックのみを含むクロマCUである、ステップと;現在のCUの分割タイプが単一ツリー分割タイプである場合、単一CUにおけるルーマ符号化ブロックおよびクロマ符号化ブロックのそれぞれについて、パレット・スキャン順をビットストリームからパースする;または現在のCUの分割タイプが別個ツリー分割タイプである場合、ルーマCUについてのパレット・スキャン順をビットストリームからパースする、ステップと;パレット・スキャン順に基づいてパレット・デコード方法を使用することによって、現在のCUをデコードするステップとを含む。
【0233】
たとえば、本方法は、クロマCUについてパレット・スキャン順をあらかじめ定義されたスキャン順として推定することをさらに含む。
【0234】
さらに、本方法は、クロマCUについてのパレット・スキャン順を、そのクロマCUに関連するルーマCUのパレット・スキャン順に基づいて導出することをさらに含んでいてもよい。
【0235】
上述した方法の一つまたは複数において、クロマCUについてのパレット・スキャン順を、そのクロマCUに関連するルーマCUのパレット・スキャン順に基づいて導出することは:前記クロマCUが前記ルーマCUによって完全にカバーされる場合、クロマCUについてのパレット・スキャン順は前記ルーマCUについてのパレット・スキャン順と同じである;または、前記クロマCUが前記ルーマCUを含む複数のルーマCUによって最小限にカバーされ、それらのルーマCUのすべてが同じパレット・スキャン順(同じ値)をもつ場合、前記クロマCUについてのパレット・スキャン順は、それらのルーマCUについてのパレット・スキャン順と同じである;または、前記クロマCUが前記ルーマCUを含む複数のルーマCUによって最小限にカバーされるが、すべてのルーマCUが同じパレット・スキャン順をもつのではない場合、前記クロマCUについてのパレット・スキャン順をビットストリームからパースする;もしくは、前記クロマCUについてのパレット・スキャン順を、前記複数のルーマCUについて多数で(majorly)使用されているパレット・スキャン順として設定する;もしくは、あらかじめ定義された条件に基づいて、前記複数のルーマCUのうちのあるルーマCUのパレット・スキャン順を、前記クロマCUについてのパレット・スキャン順として設定する、もしくは、前記複数のルーマCUのうちのあるルーマCUのパレット・スキャン順を、複数のルーマCUについてのインジケータの重み付けされた関数に基づいて、前記クロマCUについてのパレット・スキャン順として設定し、ここで、各ルーマCUのパレット・スキャン順についての重みは、前記クロマCUと前記複数のルーマCUとの間の空間的対応によって決定される;または、前記ルーマCUが前記クロマCUの左上または中央サンプルをカバーする場合、前記ルーマCUのパレット・スキャン順を前記クロマCUについてのパレット・スキャン順として設定することを含む。
【0236】
いくつかの実施形態では、前記クロマCUが前記ルーマCUを含む複数のルーマCUによって最小限にカバーされるが、すべてのルーマCUが同じパレット・スキャン順をもつのではない場合に、あらかじめ定義された条件に基づいて、前記複数のルーマCUのうちのあるルーマCUのパレット・スキャン順を、前記クロマCUについてのパレット・スキャン順として設定することは:前記複数のルーマCUのうちのあるルーマCUのパレット・スキャン順を、同じ値(真/偽)のインジケータの比に基づいて、前記クロマCUについてのパレット・スキャン順として設定することを含み、前記比があらかじめ定義された閾値より上である場合には、前記クロマCUについてのパレット・スキャン順は前記複数のCUによって多数で使用されているパレット・スキャン順として設定され、それ以外の場合には、前記クロマCUについてのパレット・スキャン順をビットストリームからパースすることを含む。
【0237】
ある実施形態によれば、プロセッサと、前記プロセスに結合された、命令を記憶しているメモリとを有するデコード装置が提供される。前記命令は、上記のデコード方法のいずれかを実行するために前記プロセッサによって実行されるものである。
【0238】
限定ではなく例として、そのようなコンピュータ読み取り可能記憶媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスク記憶、磁気ディスク記憶、または他の磁気記憶装置、フラッシュメモリ、または命令またはデータ構造の形で所望のプログラムコードを記憶するために使用されることができ、コンピュータによってアクセスされることができる他の任意の媒体を含むことができる。任意の接続も、適正にコンピュータ読み取り可能媒体と呼ばれる。たとえば、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、電波、およびマイクロ波のような無線技術を用いて、ウェブサイト、サーバー、または他のリモート源から命令が送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、電波、およびマイクロ波のような無線技術は、媒体の定義に含まれる。しかしながら、コンピュータ読み取り可能な記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的な媒体を含まず、代わりに非一時的な有形の記憶媒体に向けられることが理解されるべきである。ディスク(disk)およびディスク(disc)は、本明細書で使用される場合、コンパクトディスク(CD)、レーザーディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピーディスクおよびブルーレイディスクを含み、ディスク(disk)は通例、磁気的にデータを再生し、ディスク(disc)はレーザーを用いて光学的にデータを再生する。上記の組み合わせも、コンピュータ読み取り可能媒体の範囲内に含まれるべきである。
【0239】
命令は、一つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積されたまたは離散的な論理回路などの一つまたは複数のプロセッサによって実行されることができる。よって、本明細書で使用される「プロセッサ」という用語は、上記の構造の任意のもの、または本明細書に記載される技術の実装のために好適な任意の他の構造を指しうる。さらに、いくつかの側面においては、本明細書に記載される機能は、エンコードおよびデコードのために構成される専用ハードウェアおよび/またはソフトウェアモジュール内に設けられてもよく、または組み合わされたコーデックに組み込まれてもよい。また、これらの技術は、一つまたは複数の回路または論理素子で完全に実装できる。
【0240】
本開示の技術は、ワイヤレスハンドセット、集積回路(IC)、または一組のIC(たとえば、チップセット)を含む、幅広い多様なデバイスまたは装置で実装されうる。本開示では、開示された技術を実行するように構成されたデバイスの機能的側面を強調するために、さまざまなコンポーネント、モジュール、またはユニットが記載されるが、必ずしも異なるハードウェアユニットによる実現を要求するものではない。むしろ、上述のように、さまざまなユニットは、コーデック・ハードウェアユニット内で組み合わされてもよく、または、好適なソフトウェアおよび/またはファームウェアとともに、上記のような一つまたは複数のプロセッサを含む、相互運用されるハードウェアユニットの集合によって提供されてもよい。
【0241】
要約すると、本開示は、デコードおよびエンコード方法、ならびにデコードおよびエンコード装置、およびプログラムに関する。具体的には、対象符号化単位CUの分割タイプが決定される。分割タイプは、対象符号化単位が1つのルーマ符号化ブロックCBおよび2つのクロマCBを含む単一CUに分割される単一分割タイプ、または対象符号化単位が、ルーマCBのみを含む別個のルーマCUおよび2つのクロマCBのみを含むクロマCUに分割される別個分割タイプのいずれかである。対象CUの分割タイプに基づいて、ビットストリームから対象CUおよび関連するパレット符号化情報がデコードされる(デコード方法/装置の場合)またはビットストリーム中に挿入される(エンコード方法/装置の場合)。
【0242】
下記は、上記の実施形態に示されるエンコード方法およびデコード方法ならびにそれらを用いるシステムの応用の説明である。
【0243】
図6は、コンテンツ配送サービスを実現するためのコンテンツ供給システム3100を示すブロック図である。このコンテンツ供給システム3100は、捕捉装置3102、端末装置3106を含み、任意的にディスプレイ3126を含む。捕捉装置3102は、通信リンク3104を通じて端末装置3106と通信する。通信リンクは、上述の通信チャネル13を含んでいてもよい。通信リンク3104は、WIFI、イーサネット、ケーブル、無線(3G/4G/5G)、USB、またはそれらの任意の種類の組み合わせなどを含むが、これらに限定されない。
【0244】
捕捉装置3102は、データを生成し、上記の諸実施形態に示されるようなエンコード方法によって該データをエンコードしてもよい。あるいはまた、捕捉装置3102は、ストリーミングサーバー(図には示されていない)にデータを配送することができ、サーバーは、データをエンコードし、エンコードされたデータを端末装置3106に送信する。捕捉装置3102は、カメラ、スマートフォンもしくはパッド、コンピュータもしくはラップトップ、ビデオ会議システム、PDA、車載装置、またはそれらの任意のものの組み合わせなどを含むが、これらに限定されない。たとえば、捕捉装置3102は、上述のように源装置12を含んでいてもよい。データがビデオを含む場合、捕捉装置3102に含まれるビデオ・エンコーダ20が、実際にビデオ・エンコード処理を実行してもよい。データがオーディオ(すなわち、音声)を含む場合、捕捉装置3102に含まれるオーディオ・エンコーダが、実際にオーディオ・エンコード処理を実行してもよい。いくつかの実際的なシナリオについては、捕捉装置3102は、エンコードされたビデオおよびオーディオ・データを、それらを一緒に多重化することによって配送する。たとえばビデオ会議システムにおける、他の実際的なシナリオについては、エンコードされたオーディオ・データおよびエンコードされたビデオ・データは多重化されない。捕捉装置3102は、エンコードされたオーディオ・データおよびエンコードされたビデオ・データを、端末装置3106に別個に配送する。
【0245】
コンテンツ供給システム3100では、端末装置310は、エンコードされたデータを受信および再生する。端末装置3106は、スマートフォンもしくはパッド3108、コンピュータもしくはラップトップ3110、ネットワークビデオレコーダー(NVR)/デジタルビデオレコーダー(DVR)3112、TV 3114、セットトップボックス(STB)3116、ビデオ会議システム3118、ビデオ監視システム3120、パーソナルデジタルアシスタント(PDA)3122、車両搭載装置3124、またはこれらの任意のものの組み合わせなどであって上述したエンコードされたデータをデコードすることができるものといった、データ受信および復元能力を有する装置であってもよい。たとえば、端末装置3106は、上記のような宛先装置14を含んでいてもよい。エンコードされたデータがビデオを含む場合、端末装置に含まれるビデオ・デコーダ30は、ビデオ・デコードを実行するために優先される。エンコードされたデータがオーディオを含む場合、端末装置に含まれるオーディオ・デコーダは、オーディオ・デコード処理を実行するために優先される。
【0246】
ディスプレイを有する端末装置、たとえばスマートフォンもしくはパッド3108、コンピュータもしくはラップトップ3110、ネットワークビデオレコーダー(NVR)/デジタルビデオレコーダー(DVR)3112、TV 3114、パーソナルデジタルアシスタント(PDA)3122、または車両搭載装置3124の場合、端末装置は、デコードされたデータをそのディスプレイに与えることができる。ディスプレイを備えていない端末装置、たとえばSTB 3116、ビデオ会議システム3118、またはビデオ監視システム3120については、デコードされたデータを受信し、表示するために外部ディスプレイ3126がそこに接触される。
【0247】
このシステムにおける各装置がエンコードまたはデコードを実行するとき、上述した実施形態に示されるようなピクチャー・エンコード装置またはピクチャー・デコード装置が使用できる。
【0248】
図6は、端末装置3106の一例の構造を示す図である。端末装置3106が捕捉装置3102からストリームを受信した後、プロトコル進行ユニット3202が、ストリームの送信プロトコルを解析する。このプロトコルは、リアルタイムストリーミングプロトコル(RTSP)、ハイパーテキスト転送プロトコル(HTTP)、HTTPライブストリーミングプロトコル(HLS)、MPEG-DASH、リアルタイムトランスポートプロトコル(RTP)、リアルタイムメッセージングプロトコル(RTMP)、またはそれらの任意の種類の組み合わせなどを含むが、これらに限定されない。
プロトコル進行ユニット3202がストリームを処理した後、ストリームファイルが生成される。ファイルは、多重分離ユニット3204に出力される。多重分離ユニット3204は、多重化されたデータをエンコードされたオーディオ・データとエンコードされたビデオ・データとに分離することができる。上述したように、たとえばビデオ会議システムにおけるいくつかの実際的なシナリオについては、エンコードされたオーディオ・データおよびエンコードされたビデオ・データは多重化されない。この状況では、エンコードされたデータは、多重分離ユニット3204を介することなく、ビデオ・デコーダ3206およびオーディオ・デコーダ3208に送信される。
【0249】
多重分離処理を介して、ビデオ・エレメンタリーストリーム(ES)、オーディオES、および任意的に字幕が生成される。上述した諸実施形態で説明されたようなビデオ・デコーダ30を含むビデオ・デコーダ3206は、上述した諸実施形態に示されるようなデコード方法によってビデオESをデコードして、ビデオ・フレームを生成し、このデータを同期ユニット3212に与える。オーディオ・デコーダ3208は、オーディオESをデコードしてオーディオ・フレームを生成し、このデータを同期ユニット3212に与える。あるいはまた、ビデオ・フレームは、同期ユニット3212に与える前に、バッファ(図Yには示さず)に格納されてもよい。同様に、オーディオ・フレームは、同期ユニット3212に与える前に、バッファ(図Yには示さず)に格納されてもよい。
【0250】
同期ユニット3212は、ビデオ・フレームとオーディオ・フレームを同期させ、ビデオ/オーディオをビデオ/オーディオ・ディスプレイ3214に供給する。たとえば、同期ユニット3212は、ビデオおよびオーディオ情報の提示を同期させる。符号化されたオーディオおよびビジュアルデータの提示に関するタイムスタンプおよびデータストリーム自体の送達に関するタイムスタンプを使用して、情報がシンタックスにおいて符号化されてもよい。
【0251】
字幕がストリームに含まれる場合、字幕デコーダ3210は、字幕をデコードし、それをビデオ・フレームおよびオーディオ・フレームと同期させ、ビデオ/オーディオ/字幕をビデオ/オーディオ/字幕ディスプレイ3216に供給する。
【0252】
本発明は、上述のシステムに限定されるものではなく、上述の諸実施形態におけるピクチャー・エンコード装置またはピクチャー・デコード装置のいずれかが、他のシステム、たとえば車両システムに組み込まれてもよい。
図1A
図1B
図2
図3
図4
図5
図6
図7