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

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

▶ キヤノン株式会社の特許一覧

特許7497441ビデオの符号化及び復号のための高レベルシンタックス
<>
  • 特許-ビデオの符号化及び復号のための高レベルシンタックス 図1
  • 特許-ビデオの符号化及び復号のための高レベルシンタックス 図2
  • 特許-ビデオの符号化及び復号のための高レベルシンタックス 図3
  • 特許-ビデオの符号化及び復号のための高レベルシンタックス 図4
  • 特許-ビデオの符号化及び復号のための高レベルシンタックス 図5
  • 特許-ビデオの符号化及び復号のための高レベルシンタックス 図6
  • 特許-ビデオの符号化及び復号のための高レベルシンタックス 図7
  • 特許-ビデオの符号化及び復号のための高レベルシンタックス 図8
  • 特許-ビデオの符号化及び復号のための高レベルシンタックス 図9
  • 特許-ビデオの符号化及び復号のための高レベルシンタックス 図10
  • 特許-ビデオの符号化及び復号のための高レベルシンタックス 図11
  • 特許-ビデオの符号化及び復号のための高レベルシンタックス 図12
  • 特許-ビデオの符号化及び復号のための高レベルシンタックス 図13
  • 特許-ビデオの符号化及び復号のための高レベルシンタックス 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-31
(45)【発行日】2024-06-10
(54)【発明の名称】ビデオの符号化及び復号のための高レベルシンタックス
(51)【国際特許分類】
   H04N 19/70 20140101AFI20240603BHJP
   H04N 19/85 20140101ALI20240603BHJP
【FI】
H04N19/70
H04N19/85
【請求項の数】 12
(21)【出願番号】P 2022542498
(86)(22)【出願日】2021-03-17
(65)【公表番号】
(43)【公表日】2023-04-19
(86)【国際出願番号】 EP2021056866
(87)【国際公開番号】W WO2021185927
(87)【国際公開日】2021-09-23
【審査請求日】2022-09-12
(31)【優先権主張番号】2004093.7
(32)【優先日】2020-03-20
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】ラロシュ, ギローム
(72)【発明者】
【氏名】ウエドラオゴ, ナエル
(72)【発明者】
【氏名】オンノ, パトリス
【審査官】岩井 健二
(56)【参考文献】
【文献】Jonatan Samuelsson, et al.,AHG9: Picture Header in Slice Header,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-Q0775,17th Meeting: Brussels, BE,2020年01月,pp.1-5
【文献】Benjamin Bross, Jianle Chen, Shan Liu, and Ye-Kui Wang,Versatile Video Coding (Draft 8),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-Q2001 (version 15),17th Meeting: Brussels, BE,2020年03月12日,pp.39-44,47-50,59-61,141
【文献】Guillaume Laroche, Nael Ouedraogo, and Patrice Onno,AhG9: Syntax cleanups when Picture Header is in the Slice Header,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-R0202,18th Meeting: by teleconference,2020年04月,pp.1-6
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
ビットストリームからビデオデータを復号する方法であって、前記ビットストリームは、1以上のスライスに対応する符号化されたビデオデータと、ピクチャヘッダと、スライスヘッダとを有し、
前記方法は、
複数のシンタックス要素を構文解析することと、
前記複数のシンタックス要素を用いて前記ビットストリームから前記ビデオデータを復号することと、を有し、
前記スライスヘッダから復号された第1フラグが前記ピクチャヘッダが前記スライスヘッダにあることを示す場合、サブピクチャ情報は前記ビットストリームから復号されず、
加重予測パラメータと適応ループフィルタ(ALF)のためのアダプテーションパラメータセット(APS)IDとが前記ピクチャヘッダから復号される場合、前記加重予測パラメータが前記ピクチャヘッダから復号される前に前記適応ループフィルタ(ALF)のための前記アダプテーションパラメータセット(APS)IDが前記ピクチャヘッダから復号される
ことを特徴とする方法
【請求項2】
前記第1フラグが前記ピクチャヘッダが前記スライスヘッダにあることを示す場合、前記サブピクチャ情報が存在するか否かを示す第2フラグは、前記サブピクチャ情報が存在しないことを示す値を持つよう制約されることを特徴とする請求項1に記載の方法。
【請求項3】
前記ビデオデータは1以上のスライスを含む画像を有し、
シンタックス要素がラスタスキャンスライスモードが有効化されることを示し、前記画像におけるタイル数が1より大きく、且つスライスにおけるタイル数が前記画像における前記タイル数と等しい場合、復号される画像は1つのみのスライスを含むよう制約される
ことを特徴とする請求項1に記載の方法。
【請求項4】
参照ピクチャリストパラメータと前記適応ループフィルタ(ALF)のための前記アダプテーションパラメータセット(APS)IDとが前記ピクチャヘッダから復号される場合、前記参照ピクチャリストパラメータが前記ピクチャヘッダから復号される前に前記適応ループフィルタ(ALF)のための前記アダプテーションパラメータセット(APS)IDが前記ピクチャヘッダから復号される
ことを特徴とする請求項1に記載の方法。
【請求項5】
ビデオデータをビットストリームに符号化する方法であって、前記ビットストリームは1つ以上のスライスに対応する符号化されたビデオデータと、ピクチャヘッダと、スライスヘッダとを有し、
前記方法は、
予測モードを決定することと、
前記予測モードを用いて前記ビデオデータを符号化することと、を有し、
前記スライスヘッダにおける第1フラグが前記ピクチャヘッダが前記スライスヘッダにあることを示す場合、サブピクチャ情報は前記ビットストリームに符号化されず、
加重予測パラメータと適応ループフィルタ(ALF)のためのアダプテーションパラメータセット(APS)IDとが前記ピクチャヘッダにシグナリングされる場合、前記ピクチャヘッダにおいて前記加重予測パラメータより先に前記適応ループフィルタ(ALF)のための前記アダプテーションパラメータセット(APS)IDがシグナリングされる
ことを特徴とする方法
【請求項6】
前記第1フラグが前記ピクチャヘッダが前記スライスヘッダにあることを示す場合、前記サブピクチャ情報が存在するか否かを示す第2フラグは、前記サブピクチャ情報が存在しないことを示す値を持つよう制約されることを特徴とする請求項5に記載の方法。
【請求項7】
前記ビデオデータは1以上のスライスを含む画像を有し、
シンタックス要素がラスタスキャンスライスモードが有効化されることを示し、前記画像におけるタイル数が1より大きく、且つスライスにおけるタイル数が前記画像における前記タイル数と等しい場合、前記画像は1つのみのスライスを含むよう制約されることを特徴とする請求項5に記載の方法。
【請求項8】
参照ピクチャリストパラメータと前記適応ループフィルタ(ALF)のための前記アダプテーションパラメータセット(APS)IDとが前記ピクチャヘッダにシグナリングされる場合、前記ピクチャヘッダにおいて参照ピクチャリストパラメータより先に適応ループフィルタ(ALF)のためのアダプテーションパラメータセット(APS)IDがシグナリングされる
ことを特徴とする請求項5に記載の方法。
【請求項9】
ビットストリームからビデオデータを復号するビデオデコーダであって、前記ビットストリームは、1以上のスライスに対応する符号化されたビデオデータと、ピクチャヘッダと、スライスヘッダとを有し、
前記ビデオデコーダは、
複数のシンタックス要素を構文解析する手段と、
前記複数のシンタックス要素を用いて前記ビットストリームから前記ビデオデータを復号する手段と、を有し、
前記スライスヘッダから復号された第1フラグが前記ピクチャヘッダが前記スライスヘッダにあることを示す場合、サブピクチャ情報は前記ビットストリームから復号されず、
加重予測パラメータと適応ループフィルタ(ALF)のためのアダプテーションパラメータセット(APS)IDとが前記ピクチャヘッダから復号される場合、前記加重予測パラメータが前記ピクチャヘッダから復号される前に前記適応ループフィルタ(ALF)のための前記アダプテーションパラメータセット(APS)IDが前記ピクチャヘッダから復号される
ことを特徴とするビデオデコーダ
【請求項10】
ビデオデータをビットストリームに符号化するエンコーダであって、前記ビットストリームは1つ以上のスライスに対応する符号化されたビデオデータと、ピクチャヘッダと、スライスヘッダとを有し、
前記エンコーダは、
予測モードを決定する手段と、
前記予測モードを用いて前記ビデオデータを符号化する手段と、を有し、
前記スライスヘッダにおけるフラグが前記ピクチャヘッダが前記スライスヘッダにあることを示す場合、サブピクチャ情報は前記ビットストリームに符号化されず、
加重予測パラメータと適応ループフィルタ(ALF)のためのアダプテーションパラメータセット(APS)IDとが前記ピクチャヘッダにシグナリングされる場合、前記ピクチャヘッダにおいて前記加重予測パラメータより先に前記適応ループフィルタ(ALF)のための前記アダプテーションパラメータセット(APS)IDがシグナリングされる
ことを特徴とするエンコーダ
【請求項11】
請求項1乃至4のいずれか1項に記載の方法を実行させるためのコンピュータプログラム。
【請求項12】
請求項5乃至8のいずれか1項に記載の方法を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はビデオ符号化及び復号に関し、特に、ビットストリームで使用される高レベルシンタックスに関する。
【背景技術】
【0002】
最近、MPEGとITU-T Study Group 16のVCEGにより形成された協力チームであるJoint Video Experts Team(JVET)は、VVC(Versatile Video Coding)と呼ばれる新しいビデオ符号化規格の研究を開始した。VVCの目標は既存のHEVC標準を上回る(すなわち、典型的には、以前の2倍の)圧縮性能の著しい改善を提供し、2020年に完了することである。主なターゲットアプリケーションおよびサービスには360度およびハイダイナミックレンジ(HDR)ビデオが含まれるが、これらに限定されない。全体として、JVETは、32の組織からの応答を、独立した試験機関によって実施された正式な主観的試験を用いて評価した。いくつかの提案は、HEVCを使用する場合と比較して、典型的には40%以上の圧縮効率の向上を実証した。超高精細(UHD)ビデオ試験材料について特に有効性を示した。したがって、最終規格の目標50%をはるかに超える圧縮効率の向上が期待できる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
JVET探査モデル(JVET exploration model:JEM)はすべてのHEVCツールを使用し、多くの新しいツールを導入している。これらの変更により、ビットストリームの構造、特にビットストリーム全体のビットレートに影響を与える可能性のある高レベルシンタックスの変更が必要になった。
【課題を解決するための手段】
【0004】
本発明は、符号化性能を著しく低下させることなく複雑さ及び/又はシグナリングを低減させる高レベルのシンタックス構造の改良に関する。
【0005】
本発明の第1の態様では、ビットストリームからビデオデータに復号する方法が提供される。ここで、前記ビットストリームは、1以上のスライスに対応するビデオデータを有する。そして、前記復号は、1以上のシンタックス要素を構文解析することと、少なくとも1つのシンタックス要素が復号対象のピクチャが1つのスライスを含むことを示す場合に、サブピクチャの利用、及び/又はサブピクチャ情報の構文解析を許可しないことと、前記シンタックス要素を用いて前記ビットストリームを復号することを有する。
【0006】
本発明の更なる対応では、ビットストリームからビデオデータを復号する方法が提供される。ここで、前記ビットストリームは、1以上のスライスに対応するビデオデータを有する。そして、前記復号は、1以上のシンタックス要素を構文解析することと、復号対象のピクチャが1つのスライスのみを含むことを示す少なくとも1つのシンタックス要素との組み合わせで、サブピクチャの利用および/またはサブピクチャ情報の構文解析を許可しないことと、前記シンタックス要素を用いて前記ビットストリームを復号することを有する。
【0007】
本発明の更なる別の態様では、ビットストリームからビデオデータを復号する方法が提供される。ここで、前記ビットストリームは1以上のスライスに対応するビデオデータを有し、前記ビットストリームは、当該ビットストリームが復号対象のピクチャが1つのスライスのみを含むことを示す値を有するシンタックス要素を含む場合に、前記ビットストリームはサブピクチャが使用されないこと、および/またはサブピクチャ情報がピクチャに存在しないことを示す値を有するシンタックス要素も含むように制約されている。そして、前記方法は、前記シンタックス要素を使用して前記ビットストリームを復号することを有する。
【0008】
これは、ビットストリームにおける不整合を回避する。具体的には、サブピクチャを含むピクチャがいくつかのスライスを有する。ピクチャが1つのスライスのみを含む場合、それは、1つのサブピクチャのみを含むピクチャである。さらに、これにより、一部の実装でスライスヘッダの解析が簡素化される。
前記方法は、少なくとも1つのシンタックス要素が復号対象のピクチャが1つのスライスを含むことを示すとき、サブピクチャの存在を示すシンタックス要素の値を、サブピクチャが使用されないことを示す値に制限することをさらに有する。サブピクチャの存在を示すシンタックス要素は、サブピクチャ情報が存在するかどうかを示すフラグを含むことができる。
【0009】
復号対象のピクチャが1つのスライスを含むことを示すシンタックス要素は、ピクチャヘッダインスライスヘッダシンタックス要素(a picture header in slice header syntax element)を有し、スライスヘッダ内でシグナリングされるピクチャヘッダは1つのスライスを含むピクチャを示す。
復号太陽のピクチャが1つのスライスを含むことを示す少なくとも1つのシンタックス要素は、ラスタスキャンスライスモードが有効であることを示すシンタックス要素を含み、ピクチャ内のタイルの数が1より大きいことを示すシンタックス要素を含み、スライス内のタイルの数がピクチャ内のタイルの数と等しいことを示すシンタックス要素を含み得る。
【0010】
本発明に係る第2の態様では、ビットストリームからビデオデータを復号する方法が提供される。ここで、前記ビットストリームは1以上のスライスに対応するビデオデータを有する。前記復号は、1以上のシンタックス要素を構文解析することと、ピクチャヘッダがスライスヘッダ内でシグナリングされるとき、サブピクチャの使用およびサブピクチャ情報の構文解析を許可しないことと、前記シンタックス要素を用いて前記ビットストリームを復号することを有する。
【0011】
本発明による第3の態様では、ビットストリームからビデオデータを復号する方法が提供される。ここで、前記ビットストリームは1以上のスライスに対応するビデオデータを有する。そして、前記復号は、1以上のシンタックス要素を構文解析することと、ピクチャが1つのスライスのみを含むとき、カラーピクチャのカラープレーンを分離することを許可しないことと、前記シンタックス要素を用いて前記ビットストリームを復号することとを有する。
この態様の利点は、ビットストリームの矛盾を避けることである。実際、独立して符号化されたカラープレーンを含むピクチャは、いくつかのスライスを有する。したがって、現在のピクチャ内に1つのスライスのみを有することは不可能である。さらに、一部の実装ではスライスヘッダの解析が簡素化される。
【0012】
前記許可しないことは、ピクチャのカラープレーンが分離されるべきかどうかを示すフラグが、プレーンが分離されていないことを示す値を有するという制約を実施することを含み得る。
【0013】
オプションとして、本方法はさらに、ピクチャヘッダがスライスヘッダ内でシグナリングされるかどうかを示すシンタックス要素を構文解析することを含み、スライスヘッダ内でシグナリングされるピクチャヘッダは1つのスライスを含むピクチャを示す。
オプションとして、本方法は、カラーピクチャのカラープレーンが分離され、ピクチャヘッダがスライスヘッダ内に位置するとき、カラープレーン識別子シンタックス要素を構文解析することを更にする。
オプションとして、本方法は、ラスタスキャンスライスモードが有効であり、ピクチャ内のタイルの数が1より大きい場合、及び、スライス内のタイルの数がピクチャ内のタイルの数に等しいとき、現在のピクチャのカラープレーンが分離されることを許可しないことをさらに有する。
オプションとして、本方法は、ピクチャのカラープレーンの分離を示すフラグの値を、カラープレーンの分離がないことを示す値に制限することによって、ピクチャのカラープレーンを分離することを許可しないことをさらに有する。
オプションとして、ラスタスキャンスライスモードが有効であり、ピクチャ内のタイルの数が1より大きく場合、及び、スライス内のタイルの数がピクチャ内のタイルの数に等しいとき、カラープレーン識別子シンタックス要素は復号されない。
【0014】
本発明による第4の態様では、ビットストリームからビデオデータを復号する方法が提供される。ここで、前記ビットストリームは1以上のスライスに対応するビデオデータを有する。そして、前記復号は、1以上のシンタックス要素を構文解析することと、ピクチャヘッダがスライスヘッダ内でシグナリングされるときにカラーピクチャのカラープレーンが分離されることを許可しないことと、前記シンタックス要素を用いて前記ビットストリームを復号することを有する。
【0015】
本発明による第5の態様では、第1または第2の態様による方法および第3または第4の態様による方法を実行することを含む、ビットストリームからビデオデータを復号する方法が提供される。本発明による第6の態様では、ビットストリームからビデオデータを復号する方法が提供される。ここで前記ビットストリームは、ピクチャの1以上のスライスに対応するビデオデータを有する。そして、前記復号は、1以上のシンタックス要素を構文解析することと、カラーピクチャのカラープレーンの分離を強制し、ピクチャ内の1以上のスライスの単一のカラープレーン識別情報を推論することと、前記シンタックス要素を用いて前記ビットストリームを復号することを有する。
【0016】
これは、各スライスに対するいくつかのシンタックス要素の修正なしに、3つの色プレーンを含むビットストリームから1つの色プレーンのみを容易に抽出する可能性を提供する。そのため、そのようなアプリケーションの複雑さが軽減される。
オプションとして、強制は、ピクチャが1つのスライスのみを含む場合に行われる。
推定されるカラープレーン識別子は、ルマ(Luma)であり得る。
オプションとして、強制は、ピクチャヘッダがスライスヘッダ内でシグナリングされたときに行われる。
オプションとして、強制は、ラスタスキャンスライスモードが有効であり、現在のピクチャ内のタイルの個数が1よりも大きいとき、及び、スライス内のタイルの数が現在のピクチャ内のタイルの数に等しいときに行われる。
【0017】
本発明に係る第7の態様では、ビデオデータをビットストリームに符号化する方法が提供される。ここで、前記ビットストリームは1以上のスライスに対応するビデオデータを有する。そして、前記符号化は、1つ以上のシンタックス要素を判定することと、少なくとも1つのシンタックス要素が、符号化対象のピクチャが1つのスライスを含むことを示す場合に、サブピクチャの使用および/またはサブピクチャ情報の符号化を許可しないことと、前記シンタックス要素を用いて前記ビットストリームを符号化することを有する。本発明による追加の態様では、ビデオデータをビットストリームにエンコードする方法が提供される。ここで、前記ビットストリームは1以上のスライスに対応するビデオデータを有する。そして、前記符号化は、1以上のシンタックス要素を判定することと、符号化対象のピクチャが1つのスライスのみを含むことを示す少なくとも1つのシンタックス要素と組み合わせて、サブピクチャの使用および/またはサブピクチャ情報の符号化を許可しないことと、前記シンタックス要素を用いて前記ビットストリームを符号化することを有する。本発明に係るさらなる追加の態様では、ビデオデータをビットストリームに符号化する方法が提供される。ここで、前記ビットストリームは、1以上のスライスに対応するビデオデータを有する。そして、前記ビットストリームは、当該ビットストリームが、サブピクチャが使用されないこと、および/またはサブピクチャ情報がピクチャに対して存在しないことを示す値を持つシンタックス要素も含む場合、前記ビットストリームが、サブピクチャが使用されない、及び/または、サブピクチャ情報が存在しないことを示す値を持つシンタックス要素を含むように制約されており、前記方法は、前記シンタックス要素を用いて前記ビットストリームを符号化することを有する。これは、ビットストリームにおける不整合を回避する。具体的には、サブピクチャを含むピクチャがいくつかのスライスを有する。ピクチャが1つのスライスのみを含む場合、それは、1つのサブピクチャのみを含むピクチャである。さらに、これにより、一部の実装でスライスヘッダの解析が簡素化される。
【0018】
オプションとして、前記方法は、少なくとも1つのシンタックス要素が、復号対象のピクチャが1つのスライスを含むことを示すとき、サブピクチャの存在を示すシンタックス要素の値を、サブピクチャが使用されないことを示す値に制限することをさらに有する。
サブピクチャの存在を示すシンタックス要素は、サブピクチャ情報が存在するかどうかを示すフラグを含むことができる。
符号化対象のピクチャが1つのスライスを含むことを示すシンタックス要素は、ピクチャヘッダインスライスヘッダシンタックス要素を有し、スライスヘッダ内でシグナリングされるピクチャヘッダは1つのスライスを含むピクチャを示す。
符号化対象のピクチャが1つのスライスを含むことを示す少なくとも1つのシンタックス要素は、ラスタスキャンスライスモードが有効であることを示すシンタックス要素を含んでもよく、ピクチャ内のタイル数が1より大きいことを示すシンタックス要素を含んでもよく、スライス内のタイルの数がピクチャ内のタイルの数と等しいことを示すシンタックス要素を含んでもよい。
【0019】
本発明の別の態様では、ビットストリームからビデオデータを復号する方法が提供される。ここで、前記ビットストリームは1以上のスライスに対応するビデオデータを有する。そして、前記復号は、1以上のシンタックス要素を構文解析することと、サブピクチャの使用、および/または、サブピクチャ情報とスライスヘッダ内に送信されるピクチャヘッダの構文解析を許可しないことと、前記シンタックス要素を用いて前記ビットストリームを復号することを有する。
オプションとして、サブピクチャの使用、及び/又は、サブピクチャ情報の構文解析、及び、ピクチャヘッダがスライスヘッダ内に送信するかどうかは、構文解析対象のシンタックス要素によって示される。
オプションとして、サブピクチャの使用、および/または、サブピクチャ情報の構文解析を示すシンタックス要素と、ピクチャヘッダがスライスヘッダ内で送信されることを示すシンタックス要素は、組み合わせが許可されない。
【0020】
本発明に係る第8の態様では、ビデオデータをビットストリームに符号化する方法が提供される。ここで、前記ビットストリームは1以上のスライスに対応するビデオデータを有する。そして、前記符号化は、1以上のシンタックス要素を判定することと、ピクチャヘッダがスライスヘッダ内でシグナリングされるときにサブピクチャの使用、および/またはサブピクチャ情報の符号化を許可しないことと、前記シンタックス要素を用いて前記ビデオデータを符号化することとを有する。
本発明の別のさらなる態様では、ビデオデータをビットストリームに符号化する方法が提供される。ここで、前記ビットストリームは1以上のスライスに対応するビデオデータを有する。そして、前記復号は、1以上のシンタックス要素を構文解析することと、サブピクチャの使用、および/または、サブピクチャ情報と、スライスヘッダ内に送信されるピクチャヘッダの構文解析を許可しないことと、前記シンタックス要素を用いて前記ビットストリームを符号化することを有する。
オプションとして、サブピクチャの使用、及び/または、サブピクチャ情報の構文解析、及び、ピクチャヘッダがスライスヘッダ内に送信するかどうかは、構文解析対象のシンタックス文要素によって示される。
オプションとして、サブピクチャの使用、および/または、サブピクチャ情報の構文解析を示すシンタックス要素と、ピクチャヘッダがスライスヘッダ内に送信されることを示すシンタックス要素の組み合わせは許可されない。
【0021】
本発明による第9の態様では、ビデオデータをビットストリームに符号化する方法が提供される。ここで、前記ビットストリームは1以上のスライスに対応するビデオデータを有する。そして、前記符号化は、1以上のシンタックス要素を判定することと、ピクチャが1つのスライスのみを含むとき、カラーピクチャのカラープレーンが分離されることを許可しないことと、前記シンタックス要素を用いて前記ビットストリームを符号化することを有する。この態様の利点は、ビットストリームの矛盾を避けることである。実際、独立して符号化されたカラープレーンを含むピクチャは、いくつかのスライスを有する。したがって、現在のピクチャ内に1つのスライスのみを有することは不可能である。さらに、一部の実装ではスライスヘッダの解析が簡素化される。
【0022】
前記許可しないことは、ピクチャのカラープレーンが分離されるべきかどうかを示すフラグが、プレーンが分離されていないことを示す値を有するという制約を実施することを有する。
前記方法は、ピクチャヘッダがスライスヘッダ内でシグナリングされるかどうかを示すシンタックス要素を判定することを更に有し、前記スライスヘッダ内でシグナリングされているピクチャヘッダは1つのスライスを含むピクチャを示す。
前記方法は、カラーピクチャのカラープレーンが分離され、ピクチャヘッダがスライスヘッダ内に位置するとき、カラープレーン識別子シンタックス要素を判定することを更に有する。
前記方法は、ラスタスキャンスライスモードが有効にされ、ピクチャ内のタイルの数が1より大きい場合、及び、スライス内のタイルの数がピクチャ内のタイルの数に等しいとき、現在のピクチャのカラープレーンが分離されることを許可しないことをさらに有する。
オプションとして、ピクチャのカラープレーンを分離することが許されないことは、ピクチャのカラープレーンの分離を示すフラッグの値を、カラープレーンの分離がないことを示す値に制限することによる。
オプションとして、ラスタスキャンスライスモードが有効にされ、ピクチャ内のタイルの数が1より大きい場合、及び、スライス内のタイルの数がピクチャ内のタイルの数に等しいとき、カラープレーン識別子シンタックス要素は符号化されない。
【0023】
本発明による第10の態様では、ビデオデータをビットストリームに符号化する方法が提供される。ここで、前記ビットストリームは1以上のスライスに対応するビデオデータを有する。そして、前記符号化は、1以上のシンタックス要素を判定することと、ピクチャヘッダがスライスヘッダ内でシグナリングされるとき、カラーピクチャのカラープレーンが分離されることを許可しないことと、前記シンタックス要素を使用して前記ビデオデータを符号化することを有する。
【0024】
本発明による第11の態様では、第7または第8の態様による方法および第9または第10の態様の方法を実行することを含む、ビデオデータをビットストリームに符号化する方法が提供される。
【0025】
本発明による第12の態様ではビデオデータをビットストリームに符号化する方法が提供される。ここで、前記ビットストリームは、ピクチャの1以上のスライスに対応するビデオデータを有する。そして、前記符号化は、1以上のシンタックス要素を判定することと、カラーピクチャのカラープレーンの分離を強制し、ピクチャ内の1以上のスライスに対して単一のカラープレーン識別子を設定することと、前記シンタックス要素を用いて前記ビットストリームを符号化することを有する。一実施形態では、カラープレーン識別子は推測することができる。
【0026】
これは、各スライスに対するいくつかのシンタックス要素の修正なしに、3つのカラープレーンを含むビットストリームから1つの色プレーンのみを容易に抽出する可能性を提供する。そのため、そのようなアプリケーションの複雑さが軽減される。
【0027】
オプションとして、前記強制は、ピクチャが1つのスライスのみを含む場合に行われる。
オプションとして、推定されるカラープレーン識別子はルマ(Luma)である。
オプションとして、前記強制は、ピクチャヘッダがスライスヘッダ内でシグナリングされるときに行われる。
オプションとして、前記強制は、ラスタスキャンスライスモードが有効にされ、現在のピクチャ内のタイルの数が1よりも大きい場合、及び、スライス内のタイルの数が現在のピクチャ内のタイルの数に等しいときに行われる。
【0028】
本発明による第13の態様では、第1~第4の態様のいずれかの方法を実行するように構成されたデコーダを有するデバイスが提供される。
【0029】
本発明による第14の態様では、第5~第8の態様のいずれかの方法を実行するように構成されたエンコーダを備えるデバイスが提供される。
【0030】
本発明による第15の態様では、実行時に第1~第8の態様のいずれかの方法を実行させるコンピュータプログラムが提供される。
【0031】
プログラムはそれ自体で提供されてもよいし、キャリア媒体上、キャリア媒体によって、またはキャリア媒体中で搬送されてもよい。キャリア媒体は非一時的な、例えば、記憶媒体、特にコンピュータ可読記憶媒体であってもよい。キャリア媒体はまた、一時的なもの、例えば、信号または他の伝送媒体であってもよい。信号は、インターネットを含む任意の適切なネットワークを介して送信され得る。本発明のさらなる特徴は、独立請求項および従属請求項によって特徴付けられる。
【0032】
本発明の一態様における任意の特徴は、任意の適切な組み合わせで、本発明の他の態様に適用され得る。特に、方法の態様は、装置の態様に適用されてもよく、逆もまた同様である。
さらに、ハードウェアで実施される特徴は、ソフトウェアで実施されてもよく、その逆も可能である。本明細書におけるソフトウェアおよびハードウェア特徴へのいかなる基準も、それに応じて解釈されるべきである。
【0033】
本明細書に記載される任意の装置特徴は、方法特徴として提供されてもよく、逆もまた同様である。本明細書で使用される場合、手段および機能特徴は、適切にプログラムされたプロセッサおよび関連するメモリなど、それらの対応する構造に関して代替的に表現され得る。
【0034】
また、本発明の任意の態様に記載され定義された様々な特徴の特定の組合せが、独立して実装および/または供給および/または使用され得ることが理解されるべきである。
【図面の簡単な説明】
【0035】
ここで、例として、添付の図面を参照する:
図1】HEVCおよびVVCにおいて使用される符号化構造を説明する際に使用するための図である。
図2】本発明の1つ以上の実施形態が実施され得るデータ通信システムを概略的に示すブロック図である。
図3】本発明の1つまたは複数の実施形態が実装され得る処理デバイスの構成要素を示すブロック図である。
図4】本発明の実施形態による符号化方法のステップを示すフローチャートである。
図5】本発明の実施形態による復号方法のステップを示すフローチャートである。
図6】例示的な符号化システムVVCにおけるビットストリームの構造を示す図である。
図7】例示的な符号化システムVVCにおけるビットストリームの別の構造を示す図である。
図8】ルマモデリングクロマスケーリング(LMCS)を示す図である。
図9】LMCSのサブツールを示す図である。
図10】現在のVVC原案標準のラスタスキャンスライスモードと矩形スライスモードの図である。
図11】本発明の実施形態による、エンコーダまたはデコーダと通信ネットワークとを備えるシステムを示す図である。
図12】本発明の1つ以上の実施形態の実装のためのコンピューティングデバイスの概略ブロック図である。
図13】ネットワークカメラシステムを示す図である。
図14】スマートフォンを示す図である。
【発明を実施するための形態】
【0036】
図1は、High Efficiency Video Coding(HEVC)ビデオ規格で使用されるコーディング構造に関する。ビデオシーケンス1は、一連のデジタル画像iから構成される。そのようなデジタル画像の各々は、1つまたは複数の行列によって表される。行列係数は画素を表す。
【0037】
シーケンスの画像2は、スライス3に分割することができる。スライスは、いくつかの例では画像全体を構成し得る。これらのスライスは、重複しないコーディングツリーユニット(CTU)に分割される。コードツリーユニット(CTU)は、High Efficiency Video Coding(HEVC)ビデオ規格の基本的な処理ユニットであり、概念的に、いくつかの以前のビデオ規格で使用されたマクロブロックユニットに構造的に対応する。CTUは、Largest Coding Unit(LCU)と呼ばれることもある。CTUはルマ(luma:輝度)成分部分とクロマ(chroma:色差)成分部分とを有し、それぞれの成分部分は、コーディングツリーブロック(Coding Tree Block: CTB)と呼ばれる。これらの異なる色成分は、図1に示されていない。
【0038】
CTUは一般に、64画素×64画素サイズである。各CTUは、四分木分解を使用して、より小さい可変サイズのコーディングユニット(CU)5に反復的に分割され得る。
【0039】
コーディングユニットは基本符号化要素であり、予測ユニット(Prediction Unit:PU)と変換ユニット(Transform Unit:TU)と呼ばれる2種類のサブユニットで構成される。PUまたはTUの最大サイズは、CUのサイズに等しい。予測ユニットは、ピクセル値の予測のためのCUの区分に対応する。CUのPUへの様々な異なるパーティションが、4つの二乗PUへのパーティションと、2つの矩形PUへの2つの異なるパーティションとを含む606によって示されるように可能である。変換ユニット(Transform Unit)は、DCTを使用して空間変換を行う基本単位である。CUは、クワッドツリー表現607に基づいてTUに区分され得る。
【0040】
各スライスは、1つのネットワーク抽象化レイヤ(Network Abstraction Layer: NAL)ユニットに埋め込まれる。さらに、ビデオシーケンスの符号化パラメータが、パラメータセットと呼ばれる専用NALユニットに記憶される。HEVCおよびH.264/AVCでは、2種類のパラメータセットNALユニットが使用される。第1に、ビデオシーケンス全体の間に変化しないすべてのパラメータを収集するシーケンスパラメータセット(SPS)NALユニットである。典型的には、それはコーディングプロファイル、ビデオフレームのサイズ、および他のパラメータを処理する。第2の、ピクチャパラメータセット(PPS)NALユニットは、シーケンスの1つの画像(またはフレーム)から別の画像(またはフレーム)に変化し得るパラメータを含む。HEVC には、ビットストリームの全体的な構造を記述するパラメータを含むVideo Parameter Set(VPS)NALユニットも含まれている。VPS は、HEVC で定義された新しいタイプのパラメータセットで、ビットストリームのすべてのレイヤに適用される。レイヤには複数のテンポラルサブレイヤを含めることができ、すべてのバージョン1のビットストリームは1つのレイヤに制限される。HEVCは拡張性とマルチビューのための特定の層拡張があり、これらは後方互換性のあるバージョン1基本レイヤを備えた複数のレイヤを可能にする。
【0041】
Versatile Video Coding(VVC)の現在の定義では、ピクチャの分割のための3つの高レベルの可能性、すなわち、サブピクチャ、スライス、およびタイルがある。それぞれは独自の特性と有用性を持っている。サブピクチャへの分割は、ビデオの領域の空間抽出および/またはマージのためのものである。スライスへの分割は、以前の規格と同様の概念に基づいており、たとえ他のアプリケーションに使用することができるとしても、ビデオ送信のためのパケット化に対応する。タイルへの分割は、概念的にはピクチャをピクチャの同じサイズ(ほぼ)の独立した符号化領域に分割するコード並列化ツールである。ただし、このツールは他のアプリケーションにも使用できる。
【0042】
ピクチャの分割のこれらの3つの高レベルの利用可能な方法は、一緒に使用することができるので、それらの使用のためのいくつかのモードがある。VVCの現在のドラフト仕様で定義されているように、スライスの2つのモードが定義される。ラスタ走査スライスモードの場合、スライスは、ピクチャのタイルラスタ走査における一連の完全なタイルを含む。現在のVVC仕様でのこのモードを図10(a) に示す。この図に示すように、ピクチャは、12個のタイルと3つのラスタ走査スライスとに区分された18×12のルマCTUを含むことが示されている。
【0043】
2つ目のスライスモードである矩形スライスモードでは、スライスがピクチャの矩形領域から集合的に多数の完全なタイルのいずれかを含む。現在のVVC 仕様でのこのモードを図10(b) に示す。この例では、24個のタイルと9個の矩形スライスとに区分された18×12個のルマCTUを有するピクチャが示されている。
【0044】
図2は、本発明の1つ以上の実施形態が実装され得るデータ通信システムを示す。データ通信システムは、データ通信ネットワーク200を介して、データストリームのデータパケットを受信装置、この場合はクライアント端末202に送信するように動作可能な送信装置、この場合はサーバ201を含む。データ通信ネットワーク200は、ワイドエリアネットワーク(WAN)またはローカルエリアネットワーク(LAN)であってもよい。このようなネットワークは例えば、無線ネットワーク(Wifi /802.11aまたはbまたはg)、イーサネットネットワーク、インターネットネットワーク、または複数の異なるネットワークから構成される混合ネットワークであってもよい。本発明の特定の実施形態では、データ通信システムは、サーバ201が同じデータコンテンツを複数のクライアントに送信するデジタルテレビ放送システムであってもよい。
【0045】
サーバ201によって提供されるデータストリーム204は、ビデオおよびオーディオデータを表すマルチメディアデータから構成されてもよい。オーディオおよびビデオデータストリームは、本発明のいくつかの実施形態ではそれぞれマイクロフォンおよびカメラを使用してサーバ201によってキャプチャされ得る。いくつかの実施形態において、データストリームは、サーバ201上に記憶されてもよく、あるいは別のデータプロバイダからサーバ201によって受信されてもよく、あるいはサーバ201で生成されてもよい。サーバ201は特に、エンコーダへの入力として提示されるデータのよりコンパクトな表現で伝送のための圧縮ビットストリームを提供するために、ビデオおよびオーディオストリームを符号化するためのエンコーダで提供される。
【0046】
送信されたデータの品質と送信されたデータの量とのより良好な比を得るために、ビデオデータの圧縮は、たとえば、HEVCフォーマットまたはH.264/AVCフォーマットに従ったものとなる。
【0047】
クライアント202は送信されたビットストリームを受信し、再構成されたビットストリームを復号して、ビデオ画像を表示装置上で再生し、音声データをスピーカにより再生する。
【0048】
図2の例ではストリーミングシナリオが考慮されるが、本発明のいくつかの実施形態ではエンコーダとデコーダとの間のデータ通信が例えば、光ディスクなどの媒体記憶デバイスを使用して実行され得ることが理解されよう。
【0049】
本発明の1つまたは複数の実施形態では、ビデオ画像は、画像の再構成されたピクセルに適用して最終画像内のフィルタリングされたピクセルを提供するための補償オフセットを表すデータと共に送信される。
【0050】
図3は、本発明の少なくとも1つの実施形態を実施するように構成された処理デバイス300を概略的に示す。処理デバイス300は、マイクロコンピュータ、ワークステーション、または軽量の携帯型デバイスなどのデバイスであってもよい。装置300は、接続される通信バス313を備え、この通信バスは以下が接続される。
- CPUで示されるマイクロプロセッサなどの中央演算処理装置311;
- 本発明を実施するためのコンピュータプログラムを記憶するためのROMと表記される読み出し専用メモリ306;
- RAMと示されるランダムアクセスメモリ312は、本発明の実施形態の方法の実行可能コード、ならびに本発明の実施形態によるデジタル画像のシーケンスを符号化する方法、および/またはビットストリームを復号する方法を実施するために必要な変数およびパラメータを記録するように適合されたレジスタを記憶するためのものである、
- 処理されるデジタルデータが送受信される通信ネットワーク303に接続された通信インターフェース302
【0051】
オプションで、装置300は、以下の構成要素も含むことができる:
- 本発明の1つまたは複数の実施形態の方法を実施するためのコンピュータプログラム、および本発明の1つまたは複数の実施形態の実施中に使用または生成されるデータを記憶するための、ハードディスクなどのデータ記憶手段 304;
- ディスク306のためのディスクドライブ305であり、ディスクドライブは、ディスク306からデータを読み取るか、またはディスクにデータを書き込むように構成されている;
- キーボード310または他の任意のポインティング手段の手段によって、ユーザーとのグラフィカルインターフェースとして機能するデータを表示するためのスクリーン309。
【0052】
装置300は例えば、デジタルカメラ320またはマイクロフォン308などの様々な周辺機器に接続することができ、それぞれは、装置300にマルチメディアデータを供給するように入出力カード(図示せず)に接続される。
【0053】
通信バスは、装置300に含まれるかまたはそれに接続される様々な要素間の通信および相互運用性を提供する。バスの表現は限定的ではなく、特に、中央演算装置は装置300の任意の要素に直接的に、または装置300の別の要素の手段によって命令を通信するように動作可能である。
【0054】
ディスク306は例えばコンパクトディスク(CD-ROM)、書き換え可能またはそうでない、ZIPディスクまたはメモリカードなどの任意の情報媒体に置き換えることができ、一般的に言えば、マイクロコンピュータまたはマイクロプロセッサによって読み取ることができる情報記憶手段によって置き換えることができ、装置に統合または非統合され、可能であれば、リムーバブルであり、実行がデジタル画像のシーケンスを符号化する方法および/または本発明によるビットストリームの復号方法を可能にする1つ以上のプログラムを記憶するように構成することができる。
【0055】
実行可能コードは、読み出し専用メモリ306、ハードディスク304、または先に説明したような例えばディスク306のようなリムーバブルデジタル媒体のいずれかに格納することができる。変形例によれば、プログラムの実行可能コードは、ハードディスク304のような実行される前に装置300の記憶手段の1つに記憶されるために、インターフェース302を介して、通信ネットワーク303の手段によって受信することができる。
【0056】
中央演算処理装置311は上述の記憶手段のうちの1つに記憶された命令で本発明によるプログラムまたはプログラムの命令またはソフトウェアコードの一部の実行を制御し、指示するように適合される。電源投入時に、例えばハードディスク304または読み出し専用メモリ306上の不揮発性メモリに記憶されたプログラムまたはプログラムはランダムアクセスメモリ312に転送され、ランダムアクセスメモリはプログラムまたはプログラムの実行可能コード、ならびに本発明を実施するために必要な変数およびパラメータを記憶するためのレジスタを含む。
【0057】
この実施形態では、装置が本発明を実施するためにソフトウェアを使用するプログラマブル装置である。しかし、本発明はハードウェア(例えば、特定用途向け集積回路またはASICの形態)で実現されてもよい。
【0058】
図4は、本発明の少なくとも1つの実施形態によるエンコーダのブロック図を示す。エンコーダは接続されたモジュールによって表され、各モジュールは例えば、デバイス300のCPU 311によって実行されるプログラム命令の形態で実装されるように適合され、方法の少なくとも1つの対応するステップは本発明の1つまたは複数の実施形態による、一連の画像の画像を符号化する少なくとも1つの実施形態を実装する。
【0059】
デジタル画像i0~inのオリジナルシーケンス401は、エンコーダ400によって入力として受信される。各デジタル画像は、ピクセルとして知られるサンプルのセットによって表される。
【0060】
ビットストリーム410は、符号化プロセスの実行後にエンコーダ400によって出力される。ビットストリーム410は、複数の符号化ユニットまたはスライスを有し、各スライスはスライスを符号化するために使用される符号化パラメータの符号化値を送信するためのスライスヘッダと、符号化ビデオデータを有するスライスボディを備える。
【0061】
入力デジタル画像i0~in 401は、モジュール402によって画素のブロックに分割される。ブロックは画像の部分に対応し、可変サイズであり得る(たとえば、4×4、8×8、16×16、32×32、64×64、128×128画素、およびいくつかの矩形ブロックサイズも考慮され得る)。入力ブロックごとに符号化モードが選択される。符号化モードの2つのファミリ、すなわち、空間予測符号化に基づく符号化モード(イントラ予測)と、時間予測に基づく符号化モード(インター符号化、マージ、SKIP)とが提供される。可能な符号化モードがテストされる。
【0062】
モジュール403は、符号化対象の所与のブロックに対し、その符号化対象の前記ブロックの近隣の画素から計算された予測子によって予測する、イントラ予測プロセスを実施する。イントラ予測が選択された場合、選択されたイントラ予測子、及び、所与のブロックとその予測子との間の差分を表す指示が、残差を提供するために符号化される。
【0063】
時間予測は、動き推定モジュール404および動き補償モジュール405によって実行される。まず、参照画像416のセットの中から参照画像が選択され、符号化対象ブロックに最も近い参照領域または画像部分とも呼ばれる参照画像の部分が、動き推定モジュール404によって選択する。次いで、動き補償モジュール405は、選択されたエリアを使用して符号化対象のブロックを予測する。選択された参照エリアと所与のブロックとの間の差分は、残差ブロックとも呼ばれ、動き補償モジュール405によって計算される。選択された参照領域は、動きベクトルによって示される。
【0064】
したがって、両方の場合(空間予測および時間予測)でも、オリジナルのブロックから予測を減算することによって、残差が計算される。
【0065】
モジュール403によって実行されるINTRA予測では、予測方向が符号化される。時間予測では、少なくとも1つの動きベクトルが符号化される。モジュール404、405、416、418、417によって実行されるインター予測では、そのような動きベクトルを識別するための少なくとも1つの動きベクトルまたはデータが時間予測のために符号化される。
【0066】
インター予測が選択される場合、動きベクトルに関する情報及び残差ブロックが符号化される。ビットレートをさらに低減するために、動きが均一であると仮定すると、動きベクトルは、動きベクトル予測子に対する差分によって符号化される。動き情報予測子のセットの動きベクトル予測子は、動きベクトル予測及び符号化モジュール417によって動きベクトルフィールド418から取得される。
【0067】
エンコーダ400はさらに、レート歪み基準などの符号化コスト基準を適用することによって、符号化モードを選択するための選択モジュール406を備える。冗長性をさらに低減するために、変換モジュール407によって変換(DCTなど)を残差ブロックに適用し、得られた変換データが量子化モジュール408によって量子化され、エントロピー符号化モジュール409によってエントロピー符号化される。最後に、符号化されている現在のブロックの符号化された残差ブロックがビットストリーム410に挿入される。
【0068】
また、エンコーダ400は後続の画像の動き推定のための参照画像を生成するために、符号化された画像の復号を行う。これにより、エンコーダとビットストリームを受信するデコーダとが同じ参照フレームを有することを可能にする。逆量子化モジュール411は、量子化データの逆量子化を行い、続いて逆変換モジュール412による逆変換が行われる。逆イントラ予測モジュール413は、予測情報を使用して、所与のブロックのためにどの予測子を使用すべきかを決定し、逆動き補償モジュール414は、モジュール412によって取得された残差を、参照画像のセット416から取得された参照エリアに実際に加算する。
【0069】
次いで、モジュール415によるポストフィルタリングが適用されて、再構成された画素のフレームがフィルタリングされる。本発明の実施形態では、SAOループフィルタが使用され、補償オフセットを再構成画像の再構成画素の画素値に付加される。
【0070】
図5は、本発明の一実施形態による、エンコーダからデータを受信するために使用され得るデコーダ60のブロック図を示す。デコーダは、接続されたモジュールによって表され、各モジュールは例えば、デバイス300のCPU 311によって実行されるプログラム命令の形成で、デコーダ60によって実現される方法の対応するステップを実現するように構成される。
【0071】
デコーダ60は符号化ユニットを含むビットストリーム61を受信する。各符号化ユニットは、符号化パラメータに関する情報を含むヘッダと、符号化されたビデオデータを含むボディとから構成される。VVCにおけるビットストリームの構造は図6を参照して以下でより詳細に説明される。図4に関して説明されるように、符号化されたビデオデータはエントロピー符号化され、動きベクトル予測子のインデックスが、所与のブロックについて、所定のビット数で符号化される。受信された符号化ビデオデータは、モジュール62によってエントロピー復号される。次いで、残差データがモジュール63によって逆量子化され、次いで、画素値を得るため、モジュール64によって逆変換が適用される。
【0072】
符号化モードを示すモードデータもエントロピー復号され、そのモードに基づいて、画像データの符号化ブロックに対してINTRAタイプ復号またはINTERタイプ復号が実行される。
【0073】
INTRAモードの場合、INTRA予測子が、ビットストリームにおいて指定されたイントラ予測モードに基づいて、イントラ逆予測モジュール65によって決定される。
【0074】
モードがINTERである場合、エンコーダによって使用された参照領域を見つけるため、動き予測情報がビットストリームから抽出される。動き予測情報は、参照フレームインデックスと動きベクトル残差とから構成される。動きベクトル予測子は、動きベクトル復号モジュール70によって、動きベクトルを取得するために、動きベクトル残差に加算される。
【0075】
動きベクトル復号モジュール70は、動き予測によって符号化された現在のブロックごとに動きベクトル復号を適用する。動きベクトル予測子のインデックスが取得されると、現在のブロックについて、現在のブロックに関連する動きベクトルの実際の値が復号され、モジュール66によって逆動き補償を適用するために使用され得る。復号された動きベクトルが示す参照画像部分は、参照画像68から抽出され、逆動き補償66が適用される。動きベクトルフィールドデータ71は、後続の復号動きベクトルの逆予測に用いるために、復号動きベクトルで更新される。
【0076】
最後に、復号されたブロックが得られる。ポストフィルタリングが、ポストフィルタリングモジュール67によって適用される。復号されたビデオ信号69が、最終的にデコーダ60によって供給される。
【0077】
図6は、JVET-Q2001-vDに記載されているような例示的な符号化システムVVCにおけるビットストリームの構成を示している。
【0078】
VVC符号化システムによるビットストリーム61は、シンタックス要素と符号化データの順序付けられたシーケンスから構成される。シンタックス要素および符号化データは、ネットワーク抽象化レイヤ(NAL)ユニット601~608に配置される。NAL ユニットには異なるタイプがある。ネットワーク抽象化レイヤはRTP/IPなどの異なるプロトコルにビットストリームをカプセル化する機能を提供し、リアルタイムプロトコル/インターネットプロトコル、ISO ベースメディアファイル形式などに対応する。ネットワーク抽象化レイヤは、パケット損失回復力のためのフレームワークも提供する。
【0079】
NALユニットは、ビデオ符号化レイヤ(Video Coding Layer:VCL)NALユニットと非VCL NALユニットとに分割される。VCL NALユニットは、実際の符号化ビデオデータを含む。非VCL NALユニットには、追加情報が含まれる。この追加情報は、符号化されたビデオデータの復号に必要なパラメータ、または復号されたビデオデータの使い勝手を向上させることができる補足データである。NALユニット606はスライスに対応し、ビットストリームのVCL NALユニットを構成する。
【0080】
異なるNALユニット601~605は異なるパラメータセットに対応し、これらのNALユニットは非VCL NALユニットである。デコーダパラメータセット(Decoder Parameter Set:DPS) NALユニット301には、所定の復号処理に対して一定のパラメータが含まれている。ビデオパラメータセット(VPS)NALユニット602は、ビデオ全体、すなわちビットストリーム全体に対して定義されたパラメータを含む。DPS NALユニットは、VPSにおけるパラメータよりも静的なパラメータを定義することができる。言い換えれば、DPSのパラメータは、VPSのパラメータよりも頻繁に変化しない。
【0081】
シーケンスパラメータセット(SPS)NALユニット603は、ビデオシーケンスのために定義されたパラメータを含む。特に、SPS NALユニットは、ビデオシーケンスのサブピクチャレイアウトおよび関連するパラメータを定義することができる。各サブピクチャに関連するパラメータは、サブピクチャに適用されるコード制約を特定する。特に、それは、サブピクチャ間の時間的予測が同じサブピクチャから来るデータに制限されることを示すフラグを備える。別のフラグは、サブピクチャ境界を横断するループフィルタを有効または無効にすることができる。
【0082】
ピクチャパラメータセット(Picture Parameter Set: PPS) NALユニット604は、ピクチャまたはピクチャのグループに対して定義されたパラメータを含む。適応パラメータセット(Adaptation Parameter Set: APS) NALユニット605は、ループフィルタのためのパラメータを含み、典型的には、適応ループフィルタ(Adaptation Loop Filter: ALF)または再成形モデル(reshaper model)(又は、クロマスケーリングを有するルママッピング(Luma mapping with chroma scaling:LMCS)モデル)またはスライスレベルで使用されるスケーリングマトリクスを含む。
【0083】
VVCの現在のバージョンで提案されているPPSのシンタックスは、ルマサンプル中のピクチャのサイズと、タイルおよびスライス中の各ピクチャの区分とを特定するシンタックス要素を備える。
【0084】
PPSには、フレーム内のスライスの位置を決定できるようにする構文要素が含まれている。サブピクチャはフレーム内に矩形領域を形成するので、パラメータセットNALユニットから、スライスのセット、タイルの部品、またはサブピクチャに属するタイルを決定することが可能である。APSと同様、PPSは、同じPPSの送信量を制限するID機構を有する。
【0085】
PPSとピクチャヘッダ(Picture Header)との間の主な違いは、PPSが送信されることであり、PPSは一般に、各ピクチャに対して系統的に送信されるPHと比較して、ピクチャのグループに対して送信される。したがって、PHと比較されるPPSは、いくつかのピクチャについて一定であり得るパラメータを含む。
【0086】
ビットストリームはまた、補足拡張情報(Supplemental Enhancement Information: SEI) NALユニット(図6には示されていないを含み得る。ビットストリーム内で、これらのパラメータセットが発生する周期性は可変である。ビットストリーム全体に対して定義されたVPSは、ビットストリーム内で1 回のみ発生する可能性がある。これに対して、スライスについて定義されるAPSは、各ピクチャ中の各スライスについて1回発生し得る。実際、異なるスライスは同じAPSに依存し得、したがって、一般に、各ピクチャ中のスライスよりも少ないAPSが存在する。特に、APSはピクチャヘッダで定義される。しかし、ALF APSは、スライスヘッダにおいて洗練されることができる。
【0087】
アクセスユニットデリミタ(Access Unit Delimiter: AUD)NALユニット607は、2つのアクセスユニットを分離する。アクセスユニットは、同じデコードタイムスタンプを持つ1以上の符号化ピクチャを備え得るNALユニットのセットである。このオプショナルNALユニットは、現在のVVC明細書における1つのシンタックス要素、pic_typeのみを含む。このシンタックス要素pic_typeは、AUにおける符号化ピクチャのすべてのスライスのslice_type値を示す。pic_typeが0に等しく設定される場合、AUはイントラスライスのみを含む。1の場合、PスライスとIスライスが含まれる。2に等しい場合、それはB、Pまたはイントラスライスを含む。
このNALユニットは。pic-typeの構文要素を1つだけ含んでいる。
【0088】
テーブル1 シンタックスAUD
【0089】
JVET-Q2001-vDでは、pic_typeは以下のように定義される:
“pic_typeは、AUデリミタNALユニットを含むAU内の符号化ピクチャのすべてのスライスのslice_type値がpic_typeの所与の値についてテーブル2に列挙されたセットのメンバであることを示す。pic_typeの値は、この明細書のこのバージョンに適合するビットストリームにおいて0、1または2に等しいものとする。pic_typeの他の値は、ITUT-T |ISO/IECによって将来の使用のために予約される。この明細書のこのバージョンに適合するデコーダは、pic_typeの予約値を無視するものとする”
rbsp_trailing_bits()は、バイトの末尾に整列させるためにビットを追加する関数である。したがって、この関数の後、解析されるビットストリームの量は整数のバイト数になる。
【0090】
テーブル2 pic_typeの解釈
【0091】
PH NALユニット608は、1つの符号化ピクチャのスライスのセットに共通するパラメータをグループ化するピクチャヘッダNALユニットである。ピクチャは、ピクチャのスライスによって使用されるAFLパラメータ、再形成(reshaper)モデル、およびスケーリング行列を示すために、1つ以上のAPSを参照することがある。
【0092】
VCL NALユニット606の各々はスライスを含む。スライスは、ピクチャ全体またはサブピクチャ、単一のタイル、または複数のタイル、またはタイルの一部分に対応し得る。例えば、図6のスライスは、いくつかのタイル620を含む。スライスは、スライスヘッダ610と、符号化ブロック640として符号化された符号化画素データを含む生バイトシーケンスペイロード(raw byte sequence payload)RBSP 611とから構成される。
【0093】
VVCの現在のバージョンで提案されているPPSのシンタックスは、ルマサンプル中のピクチャのサイズと、タイルおよびスライス中の各ピクチャの区分とを特定するシンタックス要素を備える。
【0094】
PPSには、フレーム内のスライスの位置を決定できるようにするシンタックス要素が含まれている。サブピクチャはフレーム内に矩形領域を形成するので、パラメータセットNALユニットから、スライスのセット、タイルの部品、またはサブピクチャに属するタイルを決定することが可能である。
【0095】
NALユニットスライス(NAL Unit Slice)
NALユニットスライスレイヤはテーブル3に示すように、スライスヘッダ及びスライスデータを含む。
【0096】
テーブル3 スライスレイヤのシンタックス
【0097】
APS
アダプテーションパラメータセット(APS)NALユニット605は、シンタックス要素を示すテーブル4において定義される。
テーブル4に示すように、APS_params_type シンタックス要素で指定できるAPS には3つのタイプがある:
・ ALF_AP: ALFパラメータ用
・ LMCSパラメータ用のLMCS_APS
・ Scaling list 相対パラメータ用のScaling_APS
【0098】
テーブル4 適応パラメータセットのシンタックス
【0099】
これらの3つのタイプのAPSパラメータを、以下に順に論じる。
【0100】
ALP AP
ALFパラメータは、適応ループフィルタデータシンタックス要素(テーブル5)で説明する。第1に、4つのフラグが、ALFフィルタがルマおよび/またはクロマのために送信されるかどうか、ならびにCC-ALF(Cross Component Adaptive Loop Filtering)がCb成分およびCr成分のために有効にされるかどうかを指定するために専用である。ルマフィルタフラグが有効な場合、クリップ値がシグナリングされているかどうかを知るために別のフラグがデコードされる(alf_Luma_clip_flag)。次に、シグナリングされるフィルタの数が、alf_luma_num_filters_signalled_minus1シンタックス要素を使用してデコードされる。必要に応じて、ALF係数delta“alf_luma_coeff_delta_idx”を表すシンタックス要素が、有効なフィルタごとに復号される。そして、各フィルタの各係数の絶対値及び符号(sign)が復号される。
【0101】
alf_luma_clip_flag が有効な場合、有効な各フィルタの各係数のクリップインデックスがデコードされる。
同様に、ALFクロマ係数が、必要に応じて復号される。
【0102】
CC-ALF がCrまたはCbに対して有効な場合、フィルタの個数がデコードされ(alf_cc_cb_filters_signalled_minus1 又は alf_cc_cr_filters_signalled_minus1)、関連する係数が復号される(alf_cc_cb_mapped_coeff_abs およびalf_cc_cb_coeff_sign 又は alf_cc_cr_mapped_coeff_abs およびalf_cc_cr_coeff_signそれぞれ)。
【0103】
テーブル5 適応ループフィルタデータのシンタックス
【0104】
ルママッピングとクロマスケーリングの両方のためのLMCSシンタックス要素
以下のテーブル6に、APS_params_type パラメータが1 (LMCS_APS) に設定されている場合に、適応パラメータセット(APS)シンタックス構造で符号化されるすべてのLMCSシンタックス要素を示す。符号化ビデオシーケンスでは最大4つのLMCS APSを使用することができるが、所与のピクチャに対して単一のLMCS APSのみを使用することができる。
これらのパラメータは、ルマの順方向および逆方向マッピング関数と、クロマのスケーリング関数を構築するために使用される。
【0105】
テーブル6 クロマスケーリングデータシンタックスを有するルママッピング
【0106】
スケーリングリストAPS
スケーリングリストは、定量化に使用される量子化行列を更新する可能性を提供する。VVCにおいては、このスケーリングマトリクスがスケーリングリストデータのシンタックス要素(テーブル7)に記述されているように、APSにおいてシグナリングされる。最初のシンタックス要素は、フラグscaling_matrix_for_LFNST_disabled_flagに基づいてLFNST(Low Frequency Non-Separable Transform)ツールにスケーリング行列を使用されるかどうかを特定する。2 番目のものは、スケーリングリストがクロマ成分(scaling_list_Chroma_present_flag)に使用される場合に特定される。次に、スケーリング行列を構築するために必要なシンタックス要素が復号される(scaling_list_copy_mode_flag、scaling_list_pred_mode_flag、scaling_list_pred_id_delta、scaling_list_dc_coef、scaling_list_delta_coef)。
【0107】
テーブル7 スケーリングリストデータのシンタックス
【0108】
ピクチャヘッダ
ピクチャヘッダは、他のスライスデータの前の各ピクチャの先頭で送信される。これは、標準の以前の草案における以前のヘッダと比較して非常に大きい。これら全てのパラメータの完全な説明は、JVET-Q2001-vDに記載されている。テーブル10は、現在のピクチャヘッダの復号シンタックスにおけるこれらのパラメータを示している。
【0109】
復号可能な関連するシンタックス要素は以下に関連する:
・ このピクチャの使用、参照フレームかどうか
・ ピクチャのタイプ
・ 出力フレーム
・ ピクチャの個数
・ 必要に応じてサブピクチャの使用
・ 必要に応じて参照ピクチャリスト
・ 必要に応じて色プレーン
・ オーバライドフラグが有効な場合のパーティション更新
・ 必要に応じてデルタQPパラメータ
・ 必要に応じて動き情報パラメータ
・ 必要に応じてALFパラメータ
・ 必要に応じてSAOパラメータ
・ 必要に応じて定量化パラメータ
・ 必要に応じてLMCSパラメータ
・ 必要に応じてスケーリングリストパラメータ
・ 必要に応じてピクチャヘッダ拡張
・ Etc...
【0110】
ピクチャ「タイプ」
最初のフラグはgdr_or_irap_pic_flag で、現在のピクチャが再同期ピクチャ(resynchronisation picture)(IRAPまたはGDR)かどうかを示す。このフラグがtrueの場合、gdr_pic_flag は復号され、現在のピクチャがIRAPかGDRピクチャかを知ることができる。
次に、ph_inter_slice_allowed_flag が復号され、インタースライスが許可されていることが識別される。
許可されると、フラグph_intra_slice_allowed_flag が復号され、現在のピクチャに対してイントラスライスが許可されているかどうかがわかる。
次に、non_reference_picture_flag、PPS IDを示すph_pic_parameter_set_id、ピクチャ順序カウントph_pic_order_cnt_lsbが復号される。ピクチャ順序カウントは、現在のピクチャの個数を与える。
ピクチャがGDRまたはIRAPピクチャの場合、フラグno_output_of_prior_pics_flag が復号される。
ピクチャがGDRの場合、recovery_poc_cntが復号される。その後、必要に応じてph_poc_msb_present_flagとpoc_msb_valが復号される。
【0111】
ALF
現在のピクチャに関する重要な情報を記述するこれらのパラメータの後、ALFがSPSレベルで有効になっていて、ALFがピクチャヘッダレベルで有効になっている場合、ALF APS idシンタックス要素のセットが復号される。ALFは、sps_alf_enabled_flagフラグによってSPSレベルで有効になる。そして、ALFシグナリングは、alf_info_in_ph_flag が1であることによってピクチャヘッダレベルで有効になる。そうでない場合(alf_info_in_ph_flagが0)、ALFはスライスレベルでシグナリングされる。
【0112】
alf_info_in_ph_flag は以下のように定義される:
“alf_info_in_ph_flag が1 に等しいことは、ALF情報がPH シンタックス構造に存在し、PHシンタックス構造を含まないPPSを参照するスライスヘッダには存在しないことを特定する。alf_info_in_ph_flagが0に等しいことは、ALF情報がPHシンタックス構造に存在せず、PHシンタックス文構造を含まないPPSを参照するスライスヘッダに存在する可能性があることを特定する。”
【0113】
まず、ph_alf_enabled_present_flagが復号され、ph_alf_enabled_flagを復号するかどうかを判定する。ph_alf_enabled_flagを有効であると、現在の画像のすべてのスライスに対してALFが有効になる。
【0114】
ALFが有効な場合、ルマ用のALF APS idの量が、pic_num_alf_aps_ids_luma シンタックス要素を使用して復号される。APS idごとに、ルマのAPS id値は“ph_alf_APS_id_luma”に復号される。
【0115】
クロマシンタックス要素の場合、ph_alf_chroma_idcが復号され、クロマ用に、Crのみ、又は、Cbのみのいずれに対してALFが有効かどうか判定される。有効であると、クロマ用のAPS ID値がph_alf_aps_ID_Chromaシンタックス要素を使用して復号される。
このようにして、CC-ALF方法のためのAPS IDが、Cbおよび/またはCR成分のために、必要に応じて復号される
【0116】
LMCS
次いで、LMCS APS IDシンタックス要素のセットが、LMCSがSPSレベルで有効にされた場合に、復号される。まず、ph_lmcs_enabled_flag が復号され、現在のピクチャに対してLMCS が有効かどうか判定される。LMCSが有効な場合、そのID値は、復号されたph_lmcs_aps_ID である。クロマの場合、クロマのメソッドを有効または無効にするため、ph_Chroma_residual_scale_flagのみが復号される。
【0117】
スケーリングリスト
次いで、スケーリングリストがSPSレベルで有効にされている場合、スケーリングリストAPS IDのセットが復号される。ph_scaling_list_present_flag が復号され、現在のピクチャに対してスケーリングマトリクスが有効かどうかを判定される。そして、APS IDの値ph_scaling_list_aps_idが復号される。
【0118】
サブピクチャ
サブピクチャパラメータは、SPSで有効にされたとき、および、サブピクチャidシグナリングが無効にされたときに有効にされる。また、仮想境界に関する情報も含まれている。サブピクチャパラメータに対して、8つのシンタックス要素が定義される:
・ ph_virtual_boundaries_present_flag
・ ph_num_ver_virtual_boundaries
・ ph_virtual_boundaries_pos_x[i]
・ ph_num_hor_virtual_boundaries
・ ph_virtual_boundaries_pos_y[i]
【0119】
出力フラグ
これらのサブピクチャパラメータの後に、pic_output_flagが続く(存在する場合)。
【0120】
参照ピクチャリスト
参照ピクチャリストがピクチャヘッダでシグナリングされている場合(rpl_info_in_ph_flagが1のため)、参照ピクチャリストのパラメータは、ref_pic_lists() に復号され、これは以下のシンタックス要素が含まれる:
・ rpl_sps_flag[]
・ rpl_idx[]
・ poc_lsb_lt[][]
・ delta_poc_msb_present_flag[][]
・ delta_poc_msb_cycle_lt[][]
また、次のシンタックステーブルが定義される。
【0121】
テーブル8 参照ピクチャリストのシンタックス
【0122】
パーティショニング
パーティショニングパラメータのセットが必要に応じてデコードされ、それには以下のシンタックス要素が含まれる:
・ partition_constraints_override_flag
・ ph_log2_diff_min_qt_min_cb_intra_slice_luma
・ ph_max_mtt_hierarchy_depth_intra_slice_luma
・ ph_log2_diff_max_bt_min_qt_intra_slice_luma
・ ph_log2_diff_max_tt_min_qt_intra_slice_luma
・ ph_log2_diff_min_qt_min_cb_intra_slice_chroma
・ ph_max_mtt_hierarchy_depth_intra_slice_chroma
・ ph_log2_diff_max_bt_min_qt_intra_slice_chroma
・ ph_log2_diff_max_tt_min_qt_intra_slice_chroma
・ ph_log2_diff_min_qt_min_cb_inter_slice
・ ph_max_mtt_hierarchy_depth_inter_slice
・ ph_log2_diff_max_bt_min_qt_inter_slice
・ ph_log2_diff_max_tt_min_qt_inter_slice
【0123】
加重予測(Weighted prediction)
加重予測パラメータpred_weight_table()が、加重予測方法がPPS レベルで有効になっていて、加重予測パラメータがピクチャヘッダ(wp_info_in_ph_flag が1) でシグナリングされている場合に、復号される。
pred_weight_table() は、双予測重み付き予測(bi-prediction weighted prediction)が有効な場合、リストL0とリストL1の重み付き予測パラメータを含む。加重予測パラメータがピクチャヘッダで送信されると、pred_weight_table()シンタックステーブル8に示すように、各リストの加重個数が明示的に送信される。
【0124】
テーブル9 重み付け予測パラメータシンタックス
【0125】
デルタQP
ピクチャがイントラの場合、必要に応じて、ph_cu_qp_delta_subdiv_intra_slice とph_cu_chroma_qp_offset_subdiv_intra_slice が復号される。また、インタースライスが許可されている場合、必要に応じてph_cu_qp_delta_subdiv_inter_slice とph_cu_chroma_qp_offset_subdiv_inter_slice が復号される。最後に、ピクチャヘッダ拡張シンタックス要素は、必要に応じて復号される。
【0126】
すべてのパラメータalf_info_in_ph_flag、rpl_info_in_ph_flag、qp_delta_info_in_ph_flag、sao_info_in_ph_flag、dbf_info_in_ph_flag、wp_info_in_ph_flagは、PPSにおいてシグナリングされる。
【0127】
テーブル10 ピクチャヘッダ構造
【0128】
スライスヘッダ
スライスヘッダは、各スライスの先頭で送信される。スライスヘッダには、約65個のシンタックス要素が含まれる。これは、以前のビデオコーディング規格における以前のスライスヘッダと比較して非常に大きい。すべてのスライスヘッダパラメータの完全な説明は、JVET-Q2001-vDにある。テーブル11は、現在のスライスヘッダ復号シンタックス文における、これらのパラメータを示している。
【0129】
テーブル11 部分的なスライスヘッダ(Partial Slice Header)
【0130】
まず、picture_header_in_slice_header_flag が復号され、picture_header_structure()がスライスヘッダ内に存在するかどうかを知る。
slice_subpic_id は、SPS内にてsubpic_info_present_flagが1に等しく設定されている場合に復号され、slice_subpic_id は現在のスライスのサブピクチャidを与える。subpic_info_present_flagは、現在のVVC仕様では次のように定義されている:
“1に等しいsubpic_info_present_flagの場合、サブピクチャ情報がCLVSのために存在すること、及び、CLVSの各ピクチャ内に1以上のサブピクチャが存在し得ることを特定する。0に等しいsubpic_info_present_flagは、サブピクチャ情報がCLVSのために存在せず、かつ、CLVSの各ピクチャ内には1つのサブピクチャのみが存在することを特定する。”
【0131】
次に、slice_addressが復号され、現在のスライスのアドレスが判定される。スライスアドレスは、現在のスライスモードが矩形スライスモード(rect_slice_flagが1に等しい)であり、現在のサブピクチャ内のスライスの数が1を超えている場合に、復号される。スライスアドレスは、現在のスライスモードがラスタスキャンモード(rect_slice_flagが0に等しい)であり、現在のピクチャ内のタイル数が、PPSで定義された変数に基づいて計算された1を超えている場合にも復号できる。
【0132】
次に、num_tiles_in_slice_minus1は、現在のピクチャ内のタイルの数が1より大きく、且つ、現在のスライスモードが矩形スライスモードでない場合に、復号される。現在のVVCドラフト仕様では、num_tiles_In_slice_minus1 は次のように定義されている:
“num_tiles_in_slice_minus1 + 1 (存在する場合) は、スライス内のタイルの数を特定する。num_tiles_in_slice_minus1の値は、0からNumTilesInPic-1までの範囲内である。”
【0133】
その後、slice_type が復号される。
ALFがSPS レベル(sps_alf_enabled_flag) で有効になっていて、ALFがスライスヘッダ(alf_info_in_ph_flag が0) にシグナリングされている場合、ALF情報が復号される。これには、現在のスライスに対してALF が有効であることを示すフラグ(slice_alf_enabled_flag) が含まれる。有効であると、ルマ用のAPS ALF ID(slice_num_alf_aps_ids_luma)の個数が復号され、APS IDが復号される(slice_alf_aps_id_luma[i])。次に、slice_ALF_chroma_idcが復号され、クロマ成分に対してALF が有効になっているかどうか、および、いずれのクロマ成分が有効になっているかを知る。次に、クロマのAPS IDが必要に応じて、slice_alf_aps_id_chromaに復号される。同様に、slice_cc_alf_cb_enabled_flagが、必要に応じて復号され、CC ALF方法が有効かどうかを知る。CC ALFが有効である場合、CC ALFがCRおよび/またはCBに対してイネーブルである場合ではCRおよび/またはCBに対する関連するAPS IDが復号される。
【0134】
separate_colour_plane_flagが1に等しいときにカラープレーンが個別に送信される場合、colour_plane_idが復号される。separate_colour_plane_flagは、現在のVVCドラフト仕様において以下のように定義されている:
“separate_colour_plane_flagが1に等しい場合、4:4:4 クロマ形式の3つのカラー成分が個別に符号化されることを特定する。separate_colour_plane_flagが0に等しい場合、カラー成分が個別に符号化されないことを特定する。separate_colour_plane_flag が存在しない場合は、0に等しいと推測される。separate_colour_plane_flagが1に等しいとき、符号化ピクチャは3つの別個の成分からなり、その各々は1つのカラープレーン(Y、Cb、またはCr)の符号化サンプルからなり、モノクロ符号化シンタックスを使用する。この場合、各色プレーンは、特定のcolour_plane_id値に関連付けられる。”
【0135】
参照ピクチャリストref_pic_lists()がピクチャヘッダで送信されず(rpl_info_in_ph_flag が0に等しい)、Nal ユニットがIDR でない場合、またはIDRピクチャに対して参照ピクチャリストが送信された場合(sps_idr_rpl_present_flag が1 に等しい)、参照ピクチャリストパラメータが復号される。これらはピクチャヘッダのパラメータと同様である。
【0136】
参照ピクチャリストがピクチャヘッダで送信され(rpl_info_in_ph_flag が1)、Nal ユニットがIDR でない場合、またはIDR ピクチャに対して参照ピクチャリストが送信され(sps_idr_rpl_present_flag が1 に等しい)、少なくとも1つのリストの参照数が1を超えている場合、オーバーライドフラグnum_ref_idx_active_override_flagが復号される。このフラグは、VVCドラフト仕様において以下のように定義されている:
“num_ref_idx_active_override_flagが1 に等しい場合、シンタックス要素num_ref_idx_active_minus1[ 0 ] がPおよびBスライスに存在し、シンタックス要素num_ref_idx_active_minus1[ 1 ]がBスライスに存在することを特定する。num_ref_idx_active_override_flagが0に等しい場合、シンタックス要素num_ref_idx_active_minus1[ 0 ]およびnum_ref_idx_active_minus1[ 1 ]が存在しないことを特定する。存在しない場合、num_ref_idx_active_override_flagの値は1に等しいと推測される。”
【0137】
num_ref_idx_active_override_flagが有効な場合、各リスト“i”の参照インデックスの数num_ref_idx_active_minus1[i]が、必要に応じて復号される。現在のリストの参照インデックスのオーバーライドの数は、ref_pic_lists()で送信された参照フレームインデックスの数未満か、等しいはずである。したがって、オーバーライドは、各リストの参照フレームの最大数を減らすか、減らさない。
【0138】
スライスタイプがイントラではないとき、及び、必要に応じてcabac_init_flagが復号される。参照ピクチャリストがスライスヘッダで送信され、他の条件になる場合、slice_collocated_from_l0_flag とslice_collocated_ref_idx が復号される。これらのデータは、CABAC符号化および配置された動きベクトルに関連する。
【0139】
同様に、スライスタイプがイントラでない場合、加重予測のパラメータpred_weight_table()が復号される。
【0140】
delta QP情報がスライスヘッダ(QP_delta_info_in_ph_flag が0に等しい)に送信されていると、slice_qp_deltaが復号される。必要に応じて、シンタックス要素、slice_cb_qp_offset、slice_cr_qp_offset、slice_joint_cbcr_qp_offset、cu_chroma_qp_offset_enabled_flag が復号される。
【0141】
SAO情報がスライスヘッダ(sao_info_in_ph_flag が0に等しい)に送信され、SPSレベル(sps_sao_enabled_flag)で有効になっている場合、SAO の有効なフラグは、ルマとクロマの両方に対して復号される。これらはslice_sao_luma_flag、slice_sao_chroma_flagである。次に、スライスヘッダ(dbf_info_in_ph_flag が0に等しい)でシグナリングされている場合、デブロッキングフィルタパラメータが復号される。
【0142】
フラグslice_ts_residual_coding_disabled_flagが、Transform Skip residual coding方法が現在のスライスに対して有効かどうかを知るため、体系的に復号される。
LMCSがピクチャヘッダで有効にされていた場合(ph_lmcs_enabled_flagが1に等しい)、フラグslice_lmcs_enabled_flag が復号される。現在のVVC仕様において、slice_lmcs_enabled_flagは以下のように定義されている:
“slice_lmcs_enabled_flagが1に等しい場合、現在のスライスにたいしてクロマスケーリングを用いるルミナンスマッピングが有効であることを特定する。slice_lmcs_enabled_flag が0に等しい場合、現在のスライスに対し、クロマスケーリングを用いるルミナンスマッピングが有効になっていないことを特定する。slice_lmcs_enabled_flag が存在しない場合、0に等しいと推測される。”
【0143】
同様に、ピクチャヘッダでスケーリングリストが有効になっている場合(phpic_scaling_list_presentenabled_flag が1に等しい)、フラグslice_scaling_list_present_flagが復号される。現在のVVC仕様において、slice_scaling_list_present_flagは以下のように定義されている:
“slice_scaling_list_present_flagが1 に等しい場合、現在のスライスに使用されているスケーリングリストデータは、
SCALING_APSに等しいaps_params_typeを持つ参照されるスケーリングリストAPSに含まれているスケーリングリストデータ、及び、ph_scaling_list_APS_idに基づいて導出されることを特定する。slice_scaling_list_present_flagが0に等しい場合、現在のピクチャに使用されているスケーリングリストデータは、節7.4.3.21で指定され、導出されるデフォルトのスケーリングリストデータであることを特定する。派生データであることを指定する。存在しない場合、slice_scaling_list_present_flagの値は0に等しいと推測される。”
その後、必要に応じて他のパラメータが復号される。
【0144】
スライスヘッダ内のピクチャヘッダ
特定のシグナリング方法では、図7に示すように、ピクチャヘッダ(708)がスライスヘッダ(710)内にてシグナリングすることができる。その場合、ピクチャヘッダ(608)のみを含むNALユニットは存在しない。NALユニット701~707は、図6のそれぞれのNALユニット601~607に対応する。同様に、コードタイル(coding tile)720およびコードブロック(coding block)740は図6のブロック620および640に対応する。したがって、これらのユニットおよびブロックの説明はここでは繰り返さない。これは、フラグpicture_header_in_slice_header_flag によってスライスヘッダで有効にできる。さらに、ピクチャヘッダがスライスヘッダの内部でシグナリングされるとき、ピクチャは1つのスライスのみを含む。したがって、ピクチャごとに常に1つのピクチャヘッダのみが存在する。さらに、フラグpicture_header_in_slice_header_flagは、CLVS(Coded Layer Video Sequence:符号化レイヤビデオシーケンス)の全ての画像に対して同じ値を持つ。これは、第1のIRAPを含む2つのIRAP間の全てのピクチャが、ピクチャ当たり1つのスライスのみを有することを意味する。
【0145】
フラグpicture_header_in_slice_header_flagは以下のように定義される:
“picture_header_in_slice_header_flag が1 の場合、PHシンタックス構造がスライスヘッダ内に存在することを特定する。picture_header_in_slice_header_flag が0 の場合、PH シンタックス構造がスライスヘッダ内に存在しないことを特定する。
picture_header_in_slice_header_flag の値がCLVSのすべての符号化スライスで同じであることは、ビットストリーム適合性の要件である。
符号化されたスライスに対してpicture_header_in_slice_header_flag が1 に等しい場合、PH_NUT に等しいnal_unit_typeを持つVCL NALユニットがCLVSに存在しないことが、ビットストリーム適合の要件である。
picture_header_in_slice_header_flagが0に等しいとき、現在のピクチャ内の符号化スライスの全てが、0に等しいpicture_header_in_slice_header_flagを持ち、そして現在のPUはPH NALユニットを持つ。
picture_header_structure()は、スタッフィングビットrbsp_trailing_bits()を除き、picture_rbsp() のシンタックス要素を含む。”
【0146】
ストリーミングアプリケーション
一部のストリーミングアプリケーションは、ビットストリームの特定の部分のみを抽出する。これらの抽出は、空間的(サブピクチャとして)または時間的(ビデオシーケンスのサブ部分)であり得る。次いで、これらの抽出された部分は、他のビットストリームとマージされ得る。いくつかの他のものは、いくつかのフレームのみを抽出することによってフレームレートを低減する。一般に、これらのストリーミングアプリケーションの主な目的は、エンドユーザに対して最大品質を示すために、許容帯域幅を最大限に使用することである。
【0147】
VVCでは、新しいフレームAPS id数(a new APS id number of a frame)が、時間階層の上位レベルのフレームに使用できないようにするために、APS IDナンバリングがフレームレート低減のための制限されている。しかしながら、ビットストリームの一部を抽出するストリーミングアプリケーションの場合、フレーム(IRAP)がAPS IDのナンバリング付けをリセットしないので、APS IDを追跡して、どのAPSがビットストリームのサブ部分のために保持されるべきかを決定する必要がある。
【0148】
LMCS(クロマスケーリングを有するルママッピング)
クロマスケーリングを有するルママッピング(Luma Mapping with Chroma scaling;LMCS)技法は、VVCのようなビデオデコーダにおけるループフィルタを適用する前に、ブロックに適用されるサンプル値変換方法である。
【0149】
LMCSは、2つのサブツールに分けることができる。第1のものは、ルマブロック上に適用され、一方、第2のサブツールはクロマブロック上に適用されるもので、次の通りである。
1)第1のサブツールは、適応区分線形モデル(adaptive piecewise linear models)に基づくルマ成分におけるループ内マッピングである。ルマ成分のループ内マッピングは、圧縮効率を改善するために、ダイナミックレンジにわたってコードワードを再分配することによって、入力信号のダイナミックレンジを調整する。ルママッピングは、「マッピング済み領域(mapped domain)」への順方向マッピング機能と、「入力領域(input domain)」に戻る、対応の逆方向マッピング機能を利用する。
2)第2のサブツールは、ルマ依存のクロマ残差スケーリングが適用されるクロマ成分に関連する。クロマ残差スケーリングは、ルマ信号と対応するクロマ信号の相互作用を補正するように設計されている。クロマ残差スケーリングは、現在のブロックのトップおよび/または左の再構成された隣接ルマサンプルの平均値に依存する。
【0150】
VVCのようなビデオコーダの他のほとんどのツールと同様、LMCSは、SPSフラグを使用し、シーケンスレベルで有効/無効にすることができる。クロマ残差スケーリングが有効であるか否かは、スライスレベルでシグナリングされる。ルママッピングがイネーブルとなっている場合、ルマ依存クロマ残差スケーリングが有効となっているかどうか示すために、追加のフラグがシグナリングされる。ルママッピングが使用されないとき、ルマ依存クロマ残差スケーリングは完全に無効にされる。加えて、ルマ依存クロマ残差スケーリングは、サイズが4以下であるクロマブロックに対して常に無効にされる。
【0151】
図8は、ルママッピングサブツールについて上述したLMCSの原理を示す。図8の斜線ブロックは、ルミナンス信号の順方向および逆方向のマッピングを含む、新しいLMCS機能ブロックである。LMCSを使用するとき、いくつかの復号動作が「マッピングされた領域」において適用されることに留意することが重要である。これらの動作は、この図8の破線ブロックで表され、通常は、逆量子化、逆変換、ルマイントラ予測、および、ルマ予測をルマ残差に加算する再構成ステップに対応している。逆に、図8の実線ブロックは、復号処理がオリジナル(すなわち、マッピングされていない)領域において適用される場所を示し、これは、デブロッキング、ALF、およびSAOなどのループフィルタリング、動き補償予測、および参照ピクチャ(DPB)としての復号ピクチャの記憶を含む。
【0152】
図9図8と同様の図を示すが、今回は、LMCSツールのクロマスケーリングサブツールのためのものである。図9の斜線ブロックは、ルマ依存クロマスケーリングプロセスを含む、新しいLMCS機能ブロックである。ただし、クロマでは、ルマの場合と比較して、いくつかの重要な違いがある。ここで、破線のブロックによって表される逆量子化および逆変換のみが、クロマサンプルのための「マッピング済み領域」において実行される。イントラクロマ予測、動き補償、ループフィルタの他のステップは、オリジナル領域において実行される。図9に示すように、スケーリングプロセスのみが存在し、ルママッピングの場合と同様の順方向および逆方向の処理は存在しない。
【0153】
区分線形モデルを用いたLumaマッピング
ルママッピングサブツールは、区分線形モデル(piecewise linear model)を使用する。これは、区分的線形モデルが、入力信号ダイナミックレンジを、16個の等しいサブレンジにダイナミックレンジを分離することを示し、それぞれのサブレンジについて、その線形マッピングパラメータがそのレンジに割り当てられた符号語の数を用いて表現される。
【0154】
ルママッピングのセマンティクス
シンタックス要素lmcs_min_bin_idxは、クロマスケーリングを持つルママッピングにおいて使用される最小ビンインデックスを指定する。lmcs_min_bin_idx の値は、0から15の範囲内である。
【0155】
シンタックス要素lmcs_delta_max_bin_idxは、15から、クロマスケーリングを持つルママッピングで使用される最大ビンインデックスLmcsMaxBinIdxまでの、デルタ値を指定する。lmcs_delta_max_bin_idx の値は、0~15の範囲内である。LmcsMaxBinIdxの値は15-lmcs_delta_max_bin_idxに設定される。LmcsMaxBinIdxの値は、lmcs_min_bin_idx以上となる。
【0156】
シンタックス要素lmcs_delta_cw_prec_minus1 +1は、シンタックスlmcs_delta_abs_cw[i]の表現に使用されるビット数を特定する。
シンタックス要素lmcs_delta_abs_cw[i]は、第i番目のビンの絶対デルタコードワード値を特定する。
シンタックス要素lmcs_delta_sign_cw_flag[i]は、変数lmcsDeltaCW[i]の符号(sign)を特定する。lmcs_delta_sign_cw_flag[i]が存在しない場合、0に等しいと推測される。
【0157】
ルママッピングのためのLMCS中間変数演算
順方向および逆方法のルママッピングプロセスを適用するために、いくつかの中間変数およびデータ配列が必要とされる。
【0158】
まず、変数OrgCWを以下のように導出される。
OrgCW =(1 << BitDepth)/16
【0159】
次に、変数lmcsDeltaCW[i]が、i = lmcs_min_bin_idx .. LmcsMaxBinIdxについて、以下のように計算される:
lmcsDeltaCW[i]=(1 - 2 * lmcs_delta_sign_cw_flag[i]) * lmcs_delta_abs_cw[i]
【0160】
新しい変数lmcsCW[i]は、以下のように導出される:
- For i = 0.. lmcs_min_bin_idx-1, lmcsCW[i]を0に等しくなるようにセットされる.
- For i = lmcs_min_bin_idx.. LmcsMaxBinIdx、以下が適用される:
lmcsCW[i]= OrgCW + lmcsDeltaCW[i]
lmcsCW[i]の値は、(OrgCW>>3)~(OrgCW<<3-1)の範囲内である。
- For i = LmcsMaxBinIdx+1 .. 15, lmcsCW[i]を0に等しくなるようにセットする.
【0161】
変数InputPivot[i]を、i = 0..16について、次のように計算する。
InputPivot[i] = i * OrgCW
【0162】
変数LmcsPivot[i]をi=0..16について、変数ScaleCoeff[i]及びInvScaleCoeff[i]をi=0..15について以下のように計算する。
LmcsPivot[0]=0;
for(i=0; i <=15; i++){
LmcsPivot[i+1] =LmcsPivot[i] + lmcsCW[i]
ScaleCoeff[i] = (lmcsCW[i] * (1<<11) + (1 <<
(Log2(OrgCW)-1))) >> (Log2(OrgCW))
if (lmcsCW[i] ==0)
InvScaleCoeff[i] = 0
else
InvScaleCoeff[i] = OrgCW * (1 << 11)/lmcsCW[i]
【0163】
順方向ルママッピング
図8に示すように、LMCSがルマに適用されるとき、predMapSamples[i][j]と呼ばれるルマ再マッピングされたサンプルが、予測サンプルpredSamples[i][j]から取得される。
predMapSamples[i][j]は、以下のように計算される:
先ず、インデックスidxYが、位置(i,j)における、予測サンプルpredSamples[i][j]から算出される。
idxY = preSamples[i][j] >> log2(OrgCW)
次いで、predMapSamples[i][j]が、セクション0の中間変数idxY、LmcsPivot[idxY]およびInputPivot[idxY]を使用して以下のように導出される。
predMapSamples[i][j] = LmcsPivot[idxY]
+ (ScaleCoeff[idxY] * (predSamples[i][j] - InputPivot[idxY])+(1 << 10)) >> 11
【0164】
ルマ再構成サンプル(luma reconstruction samples)
再構成プロセスは、予測されたルマサンプルpredMapSample[i][j]および残差ルマサンプルresiSamples[i][j]から取得される。
再構成されたルマピクチャサンプルrecSamples[i][j]は、以下のように、resiSamples[i][j]にpredMapSample[i][j]を加算するだけで得られる。
recSamples[i][j] = Clip1(predMapSamples[i][j] + resiSamples[i][j]])
上記の関係において、Clip1関数は、再構成されたサンプルが、きちんと0と1<<BitDepth-1内にあるようにするクリッピング関数である。
【0165】
逆ルママッピング
図8に従って逆ルママッピングを適用するとき、処理対象の現在のブロックの各サンプルrecSample[i][j]に、以下の演算が適用される:
まず、インデックスidxYが、位置(i,j)における再構成サンプルrecSamples[i][j]から計算される。
idxY = recSamples[i][j] >> Log2(OrgCW)
逆マッピングされたルマサンプルinvLumaSample[i][j]が、次のように導出される。
invLumaSample[i][j] =
InputPivot[idxYInv] + (InvScaleCoeff[idxYInv] *
(recSample[i][j] - LmcsPivot[idxYInv]) + (1 << 10)) >> 11
次いで、最終サンプルを得るためにクリッピング演算が行われる:
finalSample[i][j] = Clip1(invLumaSample[i][j])
【0166】
クロマスケーリング
クロマスケーリング用のLMCSセマンティクス
テーブル6のシンタックス要素lmcs_delta_abs_crsは、変数lmcsDeltaCrs の絶対コードワード値を特定する。lmcs_delta_abs_crsの値は、両端値を含む0と7の範囲内にあるものとする。もし存在しない場合、lmcs_delta_abs_crs は0に等しいと推測される。
シンタックス要素lmcs_delta_sign_crs_flag は、変数lmcsDeltaCrsの符号(sign)を特定する。存在しない場合、lmcs_delta_sign_crs_flagは0 に等しいと推測される。
【0167】
クロマスケーリングのためのLMCS中間変数演算
クロマスケーリングプロセスを適用するには、いくつかの中間変数が必要となる。
変数lmcsDeltaCrsは以下のように導出される:
lmcsDeltaCrs = (1 - 2 * lmcs_delta_sign_crs_flag) * lmcs_delta_abs_crs
変数ChromaScaleCoeff[i]は、i = 0..15 にて、次のように導出される:
if(lmcsCW[i] == 0)
ChromaScaleCoeff[i] = (1 << 11)
else
ChromaScaleCoeff[i] = OrgCW * (1 << 11) / (lmcsCW[i] + lmcsDeltaCrs)
【0168】
クロマスケーリングプロセス
第1のステップでは、変数invAvgLumaが、現在の対応するクロマブロックの周りの再構成されたルマサンプルの平均ルマ値を計算するために導出される。平均ルマは、対応するクロマブロックを囲む左および上のルマブロックから計算される。
もしサンプルがない場合、変数invAvgLumaは次のように設定される:
invAvgLuma = 1 << (BitDepth - 1)
【0169】
次いで、セクション0の中間アレイLmcsPivot[]に基づいて、変数idxYInvが、以下のように導出される。
For (idxYInv = lmcs_min_bin_idx; idxYInv <= LmcsMaxBinIdx; idxYInv++) {
if(invAvgLuma < LmcsPivot [idxYInv + 1]) break
}
IdxYInv = Min(idxYInv, 15)
【0170】
変数varScaleは以下のように導出される:
varScale = ChromaScaleCoeff[idxYInv]
【0171】
変換が現在のクロマブロックに適用されるとき、再構成されたクロマピクチャサンプルアレイrecSamplesは、以下のように導出される。
recSamples[i][j] = Clip1(predSamples[i][j] +
Sign(resiSamples[i][j]) * ((Abs(resiSamples[i][j]) * varScale +
(1 << 10)) >> 11))
現在のブロックに変換が適用されない場合は、以下が適用される:
recSamples[i][j]= Clip1(predSamples[i][j])
【0172】
エンコーダ考慮事項
LMCSエンコーダの基本原理は、最初に、より多くのコードワードを、それらのダイナミックレンジセグメントが平均分散よりも低いコードワードを有する範囲に割り当てることである。これの別の定式化では、LMCSの主な目標が平均分散よりも高いコードワードを有するダイナミックレンジセグメントに、より少ないコードワードを割り当てることである。このようにして、ピクチャの滑らかなエリアは、平均よりも多くのコードワードでコーディングされ、逆もまた同様である。
【0173】
APSに記憶されるLMCSツールの全てのパラメータ(テーブル6参照)は、エンコーダ側で決定される。LMCS符号化エンコーダアルゴリズムは、局所ルマ分散の評価に基づいており、前述の基本原理に従ってLMCSパラメータの判定を最適化する。次いで、最適化は、所与のブロックの最終的な再構成されたサンプルのための最良のPSNR指標を得るために行われる。
【0174】
実施形態
1.スライスが1つしかない場合はサブピクチャを避けること
一実施形態では、少なくとも1つのシンタックス要素が、現在のピクチャが1つのスライスのみを含むことを示すとき、サブピクチャは許可されない、および/またはシグナリングされない。これは、以下の文を、subpic_info_present_flagのセマンティクスに追加することで実装できる:
“一つ以上のシンタックス要素が現在のピクチャが一つのスライスのみを含むことを特定するとき、subpic_info_present_flagが0に等しいことは、ビットストリーム適合性の必要条件である。”
この実施形態の利点は、ビットストリームの不整合を回避することである。実際、サブピクチャを含むピクチャは、いくつかのスライスを有する。ピクチャが1つのスライスのみを含む場合、それは、1つのサブピクチャのみを含むピクチャである。つまり、ピクチャのサブパートである。さらに、一部の実装ではスライスヘッダの解析が簡素化される。
【0175】
1.1 PHがSHのときはサブピクチャを避けること
一実施形態では、サブピクチャは、ピクチャヘッダがスライスヘッダで送信されるとき、許可されず、かつ/またはシグナリングされない。実際、ピクチャヘッダがスライスヘッダ内にあるとき、現在のピクチャは1つのスライスのみを含む。したがって、現在のピクチャをいくつかのサブピクチャに分割することは不可能であり、サブピクチャは少なくとも1つのスライスを含むので、いくつかのスライスを暗示する。
【0176】
1.1.1 セマンティクスのみ
一実施形態では、subpic_info_present_flagは、ピクチャヘッダがスライスヘッダで送信されるときは、0に等しくなるように設定される。これは、次の文をsubpic_info_present_flagのセマンティクスに追加することで取得できる:
“PPSを参照するスライスヘッダがPHシンタックス構造を含む場合、subpic_info_present_flag が0に等しいことはビットストリーム適合性の要件である。”
【0177】
1.1.2 テーブルシンタックス
一実施形態では、テーブル12に示されるように、ピクチャヘッダがスライスヘッダ内にあるとき、slice_subpic_idは復号されない。このシンタックステーブルでは、subpic_info_present_flag が1に等しくなるように設定され、picture_header_in_slice_header_flagが0に等しくなるように設定されている場合にのみ、slice_subpic_id が復号される。
【0178】
1.2 スライス内のタイルがピクチャ内のタイルと等しく、ピクチャ内のタイルの数が1より大きい場合は、サブピクチャを避けること
一実施形態では、ラスタスキャンスライスモードが有効になっており、現在のピクチャ内のタイルの数が1を超えており、スライス内のタイルの数が現在のピクチャ内のタイルの数に等しいとき、サブピクチャは許可されない、および/またはシグナリングされない。その場合、現在のピクチャが1つのスライスのみを含むので、現在のピクチャはいくつかのサブピクチャを含むことができないことが確かである。
【0179】
1.2.1 セマンティクスのみ
一実施形態では、ラスタスキャンスライスモードが有効であるとき、現在のピクチャ内のタイルの数が1より大きく、およびスライス内のタイルの数が現在のピクチャ内のタイルの数に等しいとき、subpic_info_present_flagは0に等しくなるように設定される。これは、次の文を、subpic_info_present_flag のセマンティクスに追加することで取得できる:
“ラスタスキャンスライスモードが有効で、現在のピクチャ内のタイルの数が1より大きく、スライスのタイルの数が現在のピクチャ内のタイルの数と等しい場合、subpic_info_present_flagが0に等しいビットストリーム適合性の要件である。”
【0180】
1.2.2 テーブルシンタックス
一実施形態において、ラスタ走査スライスモードが有効になっており、現在のピクチャ内のタイルの数が1を超えており、及び、スライス内のタイルの数が、テーブル13に示されるように、現在のピクチャ内のタイルの数に等しいとき、slice_subpic_idは復号されない。
【0181】
1.3- 1.1+1.2の組合せ
一実施形態では、ピクチャヘッダがスライスヘッダ中で送信されるとき、または、ラスタスキャンスライスモードが有効にされ、現在ピクチャ内のタイルの数が1を超え、スライス内のタイルの数が現在のピクチャ内のタイルの個数に等しいとき、サブピクチャは許可されない、および/またはシグナリングされない。
【0182】
2. 1つのスライスのみの場合は、個別のカラープレーンを避けること
一実施形態では、現在のピクチャのカラープレーンは、現在のピクチャがただ一つのスライスを含むときには分離されない。これは、以下の文をseparate_colour_plane_flag のセマンティクスに追加することで取得できる:
“1つ以上のシンタックス要素が、現在のピクチャが1つのスライスのみを含むことを特定するとき、separate_colour_plane_flagが1に等しくないことは、ビットストリーム適合性の要件である。”
この実施形態の利点は、矛盾ビットストリームを回避することである。実際、独立して符号化されたカラープレーンを含むピクチャは、いくつかのスライスを有する。したがって、現在のピクチャ内に1つのスライスのみを有することは不可能である。さらに、一部の実装ではスライスヘッダの解析が簡素化される。
【0183】
2.1 PHがSHの場合、個別のカラープレーンを避けること
一実施形態では、ピクチャヘッダがスライスヘッダ内で送信されるとき、現在のピクチャのカラープレーンは分離されない。実際、ピクチャヘッダがスライスヘッダ内にあるとき、現在のピクチャは1つのスライスのみを含む。
【0184】
2.1.1 セマンティクスのみ
一実施形態では、ピクチャヘッダがスライスヘッダ内で送信されるとき、separate_colour_plane_flagは0に設定される。これは、以下の文をseparate_colour_plane_flag のセマンティクスに追加することで取得できる:
“PPSを参照するスライスヘッダがPHシンタックス構造を含む場合、separate_colour_plane_flag が0に等しいことは、ビットストリーム適合性の要件である。”
【0185】
2.1.2 テーブル構文
一実施形態では、表12に示されるように、ピクチャヘッダがスライスヘッダ内にあるとき、colour_plane_idは復号されない。このシンタックステーブルでは、separate_colour_plane_flag が1に設定され、picture_header_in_slice_header_flagが0 に設定されている場合にのみ、colour_plane_idが復号される。
【0186】
2.2 スライス内のタイルがピクチャ内のタイルに等しく、ピクチャ内のタイルの数が1より大きい場合は、個別のカラープレーンを避けること
一実施形態では、ラスタスキャンスライスモードが有効にされていて、現在のピクチャ内のタイルの数が1より大きく、スライス内のタイルの数が現在のピクチャ内のタイルの数に等しいとき、現在のピクチャのカラープレーンは分離されない。その場合、現在のピクチャが1つのスライスのみを含むことが確実であり、したがって、現在のピクチャは、異なるスライスで符号化されたカラープレーンを含むことができない。
【0187】
2.2.1 セマンティクスのみ
一実施形態では、ラスタスキャンスライスモードが有効にされおり、現在のピクチャ内のタイルの数が1より大きく、スライス内のタイルの数が現在のピクチャ内のタイルの数に等しいとき、separate_colour_plane_flagは0に等しく設定される。これは、以下の文をseparate_colour_plane_flag のセマンティクスに追加することで取得できる:
“ラスタスキャンスライスモードが有効であり、現在のピクチャ内のタイルの数が1よりも大きいとき、および、スライス内のタイルの数が現在のピクチャ内のタイルの数に等しいとき、separate_colour_plane_flagが0に等しくなければならないことは、ビットストリーム適合性の要件である。”
【0188】
2.2.2 テーブルシンタックス
一実施形態では、ラスタスキャンスライスモードが有効にされており、現在のピクチャ内のタイルの数が1を超えており、およびスライス内のタイルの個数が、テーブル13に示すように、現在のピクチャ内のタイルの数に等しいとき、colour_plane_idは復号されない。
【0189】
2.3 2.1+ 2.2の組合せ
一実施形態では、ピクチャヘッダがスライスヘッダ中で送信されるとき、またはラスタ走査スライスモードが有効にされ、現在のピクチャ内のタイルの数が1より大きく、スライス内のタイルの数が現在のピクチャ中のタイルの数に等しいとき、現在のピクチャのカラープレーンは分離されない。
【0190】
テーブル12 修正を示す部分スライスヘッダ
【0191】
テーブル13 修正を示す部分スライスヘッダ
【0192】
3. 1と2の組合せ
一実施形態では、少なくとも1つのシンタックス要素が、現在のピクチャが1つのスライスのみを含むことを示すとき、サブピクチャは許可されず、および/またはシグナリングされず、現在のピクチャのカラープレーンは分離されない。
【0193】
4. カラープレーンのみでカラープレーンの分離
一実施形態では、分離されたカラープレーンシンタックス要素は1に等しく設定され、現在のピクチャは同じカラープレーンidのみを有する1以上のスライスを含む。
この実施形態は、いくつかのシンタックス要素を各スライスに変更することなく、3つの色プレーンを含むビットストリームから1つの色プレーンのみを容易に抽出する可能性を提供する。したがって、そのようなアプリケーションの複雑さを軽減する
【0194】
4.1 ルマに等しいスライスが1つだけのカラープレーンの分離
一実施形態では、少なくとも1つのシンタックス要素が、現在のピクチャが1つのスライスのみを含むことを示すとき、ルマ成分のモノクロが現在のピクチャが、分離されたカラープレーンシンタックス要素のおかげで、シグナリングされ得る。その場合、colour_plane_idは0に等しいと推測される。前の実施形態と比較した場合のこの実施形態の利点は、カラープレーンidを送信する必要がないため、ビットレートの低減である。
これは、次の文をcolour_plane_idのセマンティクスに追加することで取得できる:
“1つ以上のシンタックス要素が、現在のピクチャが1つのスライスのみを含むことを示し、separate_colour_plane_flagが1に設定されている場合、colour_plane_idは0に等しいと推測される。”
【0195】
4.1.1 PHがSHの場合
一実施形態では、ピクチャヘッダがスライスヘッダ内で送信されるとき、分離されたカラープレーンシンタックス要素のおかげで、ルマ成分のモノクロがシグナリングされ得る。その場合、colour_plane_id は0 に等しいと推測される。前の実施形態と比較した場合のこの実施形態の利点は、カラープレーンidを送信する必要がないため、ビットレートの低減である。
これは、次の文をcolour_plane_id のセマンティクスに追加することで取得できる:
“PPSを参照するスライスヘッダがPHシンタックス構造を含んでいるとき、及び、separate_colour_plane_flag が1に設定されているとき、colour_plane_id は0に等しいと推測される。”
さらに、テーブル12に示すように、カラープレーンidを送信する必要はない。
【0196】
4.1.2 スライス内のタイルがピクチャ内のタイルに等しく、ピクチャ内のタイルの数が1より大きい場合
一実施形態では、ラスタスキャンスライスモードが有効にされ、現在のピクチャ内のタイルの数が1を超えており、スライス内のタイルの数が現在のピクチャ内のタイルの数に等しいとき、ルマ成分のモノクロは、分離されたカラープレーンシンタックス要素のおかげでシグナリングされ得る。その場合、colour_plane_idは0に等しいと推測される。この実施形態の利点は、カラープレーンidを送信する必要がないため、ビットレートを低減することである。
これは、次の文をcolour_plane_id のセマンティクスに追加することで取得できる:
“ラスタスキャンスライスモードが有効であり、現在のピクチャ内のタイルの数が1を超えているとき、及び、スライス内のタイルの数が現在のピクチャ内のタイルの数に等しいとき、及び、separate_colour_plane_flagが1に等しく設定されるとき、colour_plane_idは0に等しいと推論される。”
【0197】
4.1.3 4.1.1と4.1.2の組合せ
一実施形態では、ピクチャヘッダがスライスヘッダ中で送信されるとき、または、ラスタスキャンスライスモードが有効にされ、現在のピクチャ内のタイルの数が1を超えているとき、及び、スライス内のタイルの個数が現在のピクチャ内のタイルの数に等しいとき、分離されたカラープレーンシンタックス要素のおかげで、ルマ成分のモノクロがシグナリングされ得る。
【0198】
実装
図11は、本発明の実施形態による、エンコーダ150またはデコーダ100および通信ネットワーク199のうちの少なくとも1つを備えるシステム191、195を示す。一実施形態によれば、システム195は例えば、デコーダ100を含むユーザ端末のユーザインターフェースまたはデコーダ100と通信可能なユーザ端末を介してデコーダ100にアクセスできるユーザにコンテンツ(例えば、ビデオ/オーディオコンテンツを表示/出力またはストリーミングするためのビデオおよびオーディオコンテンツ)を処理し提供するためのものである。このようなユーザ端末は、コンピュータ、携帯電話、タブレット、または(提供/ストリーミングされた)コンテンツをユーザに提供/表示することができる任意の他のタイプの装置であってもよい。システム195は通信ネットワーク199を介してビットストリーム101(例えば、以前のビデオ/オーディオが表示/出力されている間、連続ストリームまたは信号の形成で)を取得/受信する。一実施形態によれば、システム191はコンテンツを処理し、処理されたコンテンツ、例えば、後で表示/出力/ストリーミングするために処理されたビデオおよびオーディオコンテンツを記憶するためのものである。システム191は、受信され、エンコーダ150によって処理される(本発明によるデブロッキングフィルタによるフィルタリングを含む)オリジナルの画像シーケンス151を含むコンテンツを取得/受信し、エンコーダ150は、通信ネットワーク191を介してデコーダ100に通信されるビットストリーム101を生成する。次に、ビットストリーム101はいくつかの方法でデコーダ100に通信され、例えば、エンコーダ150によって事前に生成され、ユーザが記憶装置からコンテンツ(すなわち、ビットストリームデータ)を要求するまで、通信ネットワーク199内の記憶装置(例えば、サーバまたはクラウドストレージ)にデータとして記憶装置に記憶され、その時点で、データが記憶装置からデコーダ100に通信/ストリーミングされる。また、システム191はユーザに(例えば、ユーザ端末上に表示されるユーザインターフェースのためのデータを通信することによって)、記憶装置に記憶されたコンテンツのコンテンツ情報(例えば、コンテンツのタイトルや、コンテンツを識別、選択、要求するためのその他のメタ/記憶位置データ)を提供/ストリーミングし、要求されたコンテンツを記憶装置からユーザ端末に配信/ストリーミングできるように、コンテンツに対するユーザ要求を受信して処理するためのコンテンツ提供装置を備えてもよい。あるいは、エンコーダ150がビットストリーム101を生成し、ユーザがコンテンツを要求するときに、それをデコーダ100に直接通信/ストリーミングする。デコーダ100は、次いで、ビットストリーム101(または信号)を受信し、本発明によるデブロッキングフィルタを用いてフィルタリングを実行して、ビデオ信号109および/またはオーディオ信号を取得/生成し、次いで、ビデオ信号は、ユーザ端末によって使用されて、要求されたコンテンツをユーザに提供する。
【0199】
本発明による方法/プロセスの任意のステップまたは本明細書で説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、ステップ/機能は、1つまたは複数の命令もしくはコードもしくはプログラム、またはコンピュータ可読媒体として、1つまたは複数の命令もしくはコードもしくはプログラムとして記憶され、プログラマブルコンピューティングマシン(「パーソナルコンピュータ」)、DSP(「デジタル信号プロセッサ」)、回路、回路、プロセッサおよびメモリ、汎用マイクロプロセッサまたは中央演算処理装置、マイクロコントローラ、ASIC(「特定用途向け集積回路」)、フィールドプログラマブルロジックアレイ(FPGA)、または他の同等の集積もしくは個別論理回路であり得る、プログラマブルコンピューティングマシンなどの1つまたは複数のハードウェアベースの処理ユニットによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造のいずれか、または本明細書で説明する技法の実装に適した任意の他の構造を指すことがある。
【0200】
本発明の実施形態はまた、ワイヤレスハンドセット、集積回路(IC)、またはJCのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置によって実現され得る。本明細書では様々な構成要素、モジュール、またはユニットがそれらの実施形態を実行するように構成されたデバイス/装置の機能的態様を示すために説明されるが、必ずしも異なるハードウェアユニットによる実現を必要としない。むしろ、種々モジュール/ユニットは、コーデックハードウェアユニットで結合されてもよく、または適切なソフトウェア/ファームウェアと共に1つ以上のプロセッサを含む相互運用ハードウェアユニットの集合によって提供されてもよい。
【0201】
本発明の実施形態は記憶媒体に記録されたコンピュータ実行可能命令(例えば、1つ以上のプログラム)を読み出して実行し、1つ以上の上述の実施形態のモジュール/ユニット/機能を実行する、及び/又は1つ以上の上述の実施形態の機能を実行するための1つ以上の中央演算処理装置又は回路を含むシステム又は装置のコンピュータによって、及び、例えば、1つ以上の上述の実施形態の機能を実行するために記憶媒体からコンピュータ実行可能命令を読み出して実行する、及び/又は1つ以上の上述の実施形態の機能を実行するために1つ以上の中央演算処理装置又は回路を制御することによって、システム又は装置のコンピュータによって実行される方法によって、実現することができる。コンピュータはコンピュータ実行可能命令を読み出して実行するために、別個のコンピュータまたは別個の処理ユニットのネットワークを含んでもよい。コンピュータ実行可能命令は例えば、ネットワークまたは実体のある記憶媒体を介して通信媒体のようなコンピュータ可読媒体からコンピュータに提供されてもよい。通信媒体は、信号/ビットストリーム/搬送波であり得る。有形記憶媒体は例えば、ハードディスク、ランダムアクセスメモリ、リードオンリメモリ、分散コンピューティングシステムの記憶装置、光ディスク(コンパクトディスク(CD)、デジタルバーサタイルディスク(DVD)、またはBlu-ray Disc(BD)TMなど)、フラッシュ・メモリ・デバイス、メモリ・カードなどの1つ以上を含み得る「一時的でないコンピュータ読み取り可能な記憶媒体」である。ステップ/機能の少なくともいくつかはまた、FPGA(「フィールドプログラマブルゲートアレイ」)またはASIC(「特定用途向け集積回路」)などの機械または専用構成要素によってハードウェアで実装され得る。
【0202】
図12は、本発明の1つまたは複数の実施形態の実装のためのコンピューティングデバイス2000の概略ブロック図である。コンピューティングデバイス2000は、マイクロコンピュータ、ワークステーション、またはライトポータブルデバイスなどのデバイスであり得る。コンピューティングデバイス2000は、以下に接続された通信バスを備える:-マイクロプロセッサなどの中央処理装置2001;-本発明の実施形態の実行可能コードを記憶するためのランダムアクセスメモリ2002;ならびに本発明の実施形態に係る画像の少なくとも一部を符号化または復号化するための方法を実現するために必要な変数およびパラメータを記録するために適合されたレジスタ、およびそれらのメモリ容量は例えば、拡張ポートに接続されたオプションのRAMによって拡張することができる;-本発明の実施形態を実現するためのコンピュータプログラムを記憶するための読み出し専用メモリ2003;-処理されるデジタルデータが送信または受信される通信ネットワークに典型的に接続されるネットワークインターフェース2004。ネットワークインターフェース(NET)2004は、単一のネットワークインターフェースであってもよいし、異なるネットワークインターフェース(例えば、有線および無線インターフェース、または異なる種類の有線または無線インターフェース)のセットで構成されてもよい。データパケットは送信のためにネットワークインターフェースに書き込まれるか、またはCPU 2001で実行されるソフトウェアアプリケーションの制御の下で受信のためにネットワークインターフェースから読み出される。-ユーザからの入力を受信したり、ユーザに情報を表示するためにユーザインターフェース(UI)2005が使用されてもよい。-大容量記憶装置としてハードディスク(HD)2006が提供されてもよい。-入出力モジュール(IO)2007が、ビデオソースやディスプレイなどの外部装置との間でデータを送受信するために使用されてもよい。実行可能コードは、ROM 2003、HD 2006、または例えばディスクのようなリムーバブルデジタル媒体のいずれかに格納することができる。変形例によれば、プログラムの実行可能符号は実行される前に、HD2006などの通信装置2000の記憶手段の1つに記憶されるために、NET 2004を介して、通信ネットワークの手段によって受信することができる。CPU 2001は本発明の実施形態によるプログラムの命令またはソフトウェアコードの一部の実行を制御および指示するように適合され、その命令は前述の記憶手段のうちの1つに記憶される。電源投入後、CPU 2001は例えば、プログラムROM 2003またはHD 2006からこれらの命令がロードされた後に、メインRAMメモリ2002から、ソフトウェアアプリケーションに関する命令を実行することができる。このようなソフトウェアアプリケーションは、CPU 2001によって実行されると、本発明による方法のステップを実行させる。
【0203】
また、本発明の別の実施形態によれば、上述の実施形態に係るデコーダはコンピュータ、携帯電話(携帯電話)、テーブル、またはユーザにコンテンツを提供/表示することができる任意の他のタイプのデバイス(例えば、ディスプレイ装置)などのユーザ端末において提供されることが理解される。さらに別の実施形態によれば、前述の実施形態によるエンコーダはエンコーダがエンコードするためのコンテンツをキャプチャおよび提供する、カメラ、デジタルビデオカメラ、またはネットワークカメラ(たとえば、閉回路テレビジョンまたはビデオ監視カメラ)も備える画像キャプチャ装置において提供される。2つのそのような例が、図11および図12を参照して以下に提供される。
【0204】
ネットワークカメラ
図13は、ネットワークカメラ2102及びクライアント装置2104を含むネットワークカメラシステム2100を示す図である。
ネットワークカメラ2102は、撮像部2106と、符号化部2108と、通信ユニット2110と、制御部2112とを有する。
ネットワークカメラ2102とクライアント装置2104は、ネットワーク200を介して相互に通信可能に接続されている。
【0205】
撮像ユニット2106はレンズおよび撮像素子(例えば、電荷結合素子(CCD)または相補型金属酸化膜半導体(CMOS))を含み、被写体の画像を撮像し、その画像に基づいて画像データを生成する。この画像は、静止画像またはビデオ画像とすることができる。
【0206】
符号化部2108は、上述した符号化方法を用いて、画像データを符号化する。
ネットワークカメラ2102の通信ユニット2110は、符号化部2108で符号化された符号化画像データをクライアント装置2104に送信する。
また、通信ユニット2110は、クライアント装置2104からコマンドを受信する。コマンドは、符号化ユニット2108の符号化のためのパラメータを設定するコマンドが含まれる。
制御部2112は、通信部2110が受信したコマンドに従って、ネットワークカメラ2102内の他のユニットを制御する。
【0207】
クライアント装置2104は、通信ユニット2114と、復号部2116と、制御部2118とを備える。
クライアント装置2104の通信ユニット2114は、ネットワークカメラ2102にコマンドを送信する。
また、クライアント装置2104の通信ユニット2114は、ネットワークカメラ2102から符号化画像データを受信する。
復号部2116は、上述した復号方法を用いて、符号化画像データを復号する。
【0208】
クライアント装置2104の制御部2118は、通信部2114が受信したユーザ操作やコマンドに応じて、クライアント装置2104内の他のユニットを制御する。
クライアント装置2104の制御部2118は、復号部2116で復号された画像を表示するように表示装置2120を制御する。
また、クライアント装置2104の制御部2118は、GUI(Graphical User Interface)を表示するように表示装置2120を制御し、符号化部2108の符号化のためのパラメータを含むネットワークカメラ2102のパラメータの値を指定する。
また、クライアントユニット2104の制御部2118は、表示ユニット2120が表示するGUIに対するユーザ操作入力に応じて、クライアントユニット2104内の他の部を制御する。
クライアント装置2104の制御部2119は、表示装置2120が表示するGUIに対するユーザ操作入力に応じて、ネットワークカメラ2102のパラメータの値を指定するネットワークカメラ2102にコマンドを送信するように、クライアント装置2104の通信ユニット2114を制御する。
【0209】
スマートフォン
図14は、スマートフォン2200を示す図である。
スマートフォン2200は、通信ユニット2202、復号部2204、制御部2206、表示部2208、画像記録装置2210およびセンサ2212を備える。
通信ユニット2202は、ネットワーク200を介して符号化画像データを受信する。
復号部2204は、通信ユニット2202により受信された符号化画像データを復号する。
復号部2204は、上述した復号方法を用いて、符号化画像データを復号する。
制御部2206は、通信部2202によって受信されたユーザ操作またはコマンドに従って、スマートフォン2200内の他のユニットを制御する。
例えば、制御部2206は、復号部2204により復号された画像を表示するように表示部2208を制御する。
【0210】
以上、本発明を実施の形態を用いて説明したが、本発明はこれらの実施の形態に限定されるものではない。添付の特許請求の範囲に定義されるように、本発明の範囲から逸脱することなく、様々な変更および修正を行うことができることが、当業者によって理解されるのであろう。明細書(任意の添付の特許請求の範囲、要約、および図面を含む)に開示される特徴のすべて、および/またはそのように開示される任意の方法またはプロセスのステップのすべては、そのような特徴および/またはステップの少なくともいくつかが相互に排他的である組合せを除いて、任意の組合せで組み合わせることができる。明細書(任意の添付の特許請求の範囲、要約、および図面を含む)に開示される各特徴は別段の明示的な記載がない限り、同じ、同等、または類似の目的を果たす代替の特徴によって置き換えられ得る。したがって、特に明記しない限り、開示される各特徴は、一般的な一連の同等または同様の機能の一例に過ぎない。
【0211】
また、上記の比較、決定、評価、選択、実行、実行、または検討の任意の結果、例えば符号化またはフィルタリングプロセス中に行われた選択はビットストリーム内のデータ、例えば結果を示すフラグまたはデータに示されてもよく、またはそれから決定可能/推論可能であってもよく、その結果、示されたまたは決定された/推論された結果は例えばデコード処理中に、比較、決定、評価、選択、実行、実行、または検討を実際に実行する代わりに、処理において使用され得ることが理解される。
【0212】
請求項において、単語「有する(comprising)」は他の要素又はステップを除外せず、不定冠詞「a」又は「an」は複数を除外しない。異なる特徴が相互に異なる従属請求項に記載されているという単なる事実は、これらの特徴の組合せが有利に使用され得ないことを示すものではない。
【0213】
請求項に記載されている参照符号は例示のみを目的としたものであり、請求項の範囲に限定的な影響を及ぼさない。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14