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

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

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

特許7454657ピクチャーレベルでの非ピクチャーレベルの構文要素のシグナリング
<>
  • 特許-ピクチャーレベルでの非ピクチャーレベルの構文要素のシグナリング 図1
  • 特許-ピクチャーレベルでの非ピクチャーレベルの構文要素のシグナリング 図2
  • 特許-ピクチャーレベルでの非ピクチャーレベルの構文要素のシグナリング 図3
  • 特許-ピクチャーレベルでの非ピクチャーレベルの構文要素のシグナリング 図4
  • 特許-ピクチャーレベルでの非ピクチャーレベルの構文要素のシグナリング 図5
  • 特許-ピクチャーレベルでの非ピクチャーレベルの構文要素のシグナリング 図6
  • 特許-ピクチャーレベルでの非ピクチャーレベルの構文要素のシグナリング 図7
  • 特許-ピクチャーレベルでの非ピクチャーレベルの構文要素のシグナリング 図8
  • 特許-ピクチャーレベルでの非ピクチャーレベルの構文要素のシグナリング 図9
  • 特許-ピクチャーレベルでの非ピクチャーレベルの構文要素のシグナリング 図10
  • 特許-ピクチャーレベルでの非ピクチャーレベルの構文要素のシグナリング 図11
  • 特許-ピクチャーレベルでの非ピクチャーレベルの構文要素のシグナリング 図12
  • 特許-ピクチャーレベルでの非ピクチャーレベルの構文要素のシグナリング 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-13
(45)【発行日】2024-03-22
(54)【発明の名称】ピクチャーレベルでの非ピクチャーレベルの構文要素のシグナリング
(51)【国際特許分類】
   H04N 19/70 20140101AFI20240314BHJP
【FI】
H04N19/70
【請求項の数】 15
(21)【出願番号】P 2022518802
(86)(22)【出願日】2020-09-23
(65)【公表番号】
(43)【公表日】2022-11-28
(86)【国際出願番号】 US2020052281
(87)【国際公開番号】W WO2021022264
(87)【国際公開日】2021-02-04
【審査請求日】2022-04-21
(31)【優先権主張番号】62/905,228
(32)【優先日】2019-09-24
(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/045128(WO,A1)
【文献】国際公開第2020/112488(WO,A1)
【文献】国際公開第2013/042329(WO,A1)
【文献】Sachin Deshpande,On Reference Pictures Signaling and Management for VVC,Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,JVET-l0450-v2,12th Meeting: Macao, CN,2018年10月,pp.1-6
【文献】Martin Pettersson, Per Wennersten, Rickard Sjoberg, and Mitra Damghanian,AHG17: Parameters in PPS or slice headers,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-O0238-v3,15th Meeting: Gothenburg, SE,2019年07月,pp.1-6
【文献】Versatile Video Coding (Draft 6),Benjamin Bross, Jianle Chen, and Shan Liu,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-O2001 (version 14),15th Meeting: Gothenburg, SE,2019年07月31日,pp.50-54
【文献】Hendry, Ye-Kui Wang, and Jianle Chen,AHG17: On Access Unit Delimiter and Picture Header,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-P0120-v1,16th Meeting: Geneva, CH,2019年09月,pp.1-3
【文献】Wade Wan, Tim Hellman, and Brian Heng,AHG17: Picture Header,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-P0239-v1,16th Meeting: Geneva, CH,2019年10月,pp.1-8
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
ビデオ・デコーダによって実装される方法であって:
前記ビデオ・デコーダによって、参照ピクチャー・リスト(RPL)フラグを含むビデオ・ビットストリームを受領する段階であって、第1の値に等しい前記RPLフラグは、RPLシグナリングがピクチャー・ヘッダ(PH)に存在することを指定し、第2の値に等しい前記RPLフラグは、RPLシグナリングが前記PHに存在せず、スライスヘッダに存在する可能性があることを指定し、前記ビットストリームがさらに、RPLインデックスを含み、前記RPLインデックスは、現在のピクチャーのRPL iの導出に使用される、iに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造の、シーケンスパラメータセット(SPS)に含まれるiに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造のリスト中へのインデックスを指定する、段階と;
前記ビデオ・デコーダによって、コーディングされたピクチャーを、前記RPLフラグを用いてデコードして、デコードされたピクチャーを得る段階とを含む、
方法。
【請求項2】
前記第1の値が1である、請求項1に記載の方法。
【請求項3】
前記第2の値が0である、請求項1または2に記載の方法。
【請求項4】
前記ビットストリームがさらに、RPLシーケンスパラメータセット(SPS)フラグを含み、前記RPL SPSフラグは、RPL iが、SPS内のiに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造の1つに基づいて導出されることを指定するか、または、直接含まれるiに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造の1つに基づいて導出されることを指定する、
請求項1ないし3のうちいずれか一項に記載の方法。
【請求項5】
デコードされたピクチャーを電子装置のディスプレイ上に表示する段階をさらに含む、請求項1ないし4のうちいずれか一項に記載の方法。
【請求項6】
非ピクチャー・レベルの構文要素が前記PHに存在するとき、該構文要素を含む前記PHに関連付けられたピクチャーのどのスライスにも、対応する構文要素は存在しない、請求項1ないし5のうちいずれか一項に記載の方法。
【請求項7】
ビデオ・エンコーダによって実装される方法であって:
参照ピクチャー・リスト(RPL)フラグを生成する段階であって、第1の値に等しい前記RPLフラグは、RPLシグナリングがピクチャーヘッダ(PH)に存在することを指定し、第2の値に等しい前記RPLフラグは、RPLシグナリングが前記PHに存在せず、スライスヘッダに存在する可能性があることを指定する、段階と;
RPLインデックスを生成する段階であって、前記RPLインデックスは、現在のピクチャーのRPL iの導出に使用される、iに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造の、シーケンスパラメータセット(SPS)に含まれるiに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造のリスト中へのインデックスを指定する、段階と;
前記ビデオ・エンコーダによって、前記RPLフラグをビデオ・ビットストリーム中にエンコードする段階と;
前記ビデオ・エンコーダによって、前記ビデオ・ビットストリームを、ビデオ・デコーダへの通信のために記憶する段階とを含む、
方法。
【請求項8】
前記第1の値が1である、請求項7に記載の方法。
【請求項9】
前記第2の値が0である、請求項7または8に記載の方法。
【請求項10】
RPLシーケンスパラメータセット(SPS)フラグを生成する段階をさらに含み、前記RPL SPSフラグは、RPL iが、SPS内のiに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造の1つに基づいて導出されることを指定するか、または、直接含まれるiに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造の1つに基づいて導出されることを指定する、
請求項7ないし9のうちいずれか一項に記載の方法。
【請求項11】
非ピクチャー・レベルの構文要素が前記PHに存在するとき、該構文要素を含む前記PHに関連付けられたピクチャーのどのスライスにも、対応する構文要素は存在しない、請求項7ないし10のうちいずれか一項に記載の方法。
【請求項12】
命令を記憶するように構成されたメモリと;
前記メモリに結合されており、前記命令を実行して請求項1ないし6のうちいずれか一項を実行するように構成されたプロセッサとを有する、
ビデオ・デコーダ。
【請求項13】
ビデオ・デコーダ内のプロセッサに請求項1ないし6のうちいずれか一項を実行させるためのコンピュータ・プログラム。
【請求項14】
命令を記憶するように構成されたメモリと;
前記メモリに結合されており、前記命令を実行して請求項7ないし11のうちいずれか一項を実行するように構成されたプロセッサとを有する、
ビデオ・エンコーダ。
【請求項15】
ビデオ・エンコーダ内のプロセッサに請求項7ないし11のうちいずれか一項を実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
これは、フューチャーウェイ・テクノロジーズ社により2019年9月24日に出願された、「ビデオ・コーディングにおけるピクチャー・ヘッダでの非ピクチャーレベルの構文要素のシグナリング」と題する米国仮特許出願第62/905,228号の優先権を主張する。同出願は参照により組み込まれる。
【0002】
技術分野
開示される実施形態は、一般的にはビデオ・コーディングに関し、特に、ピクチャーレベルでの非ピクチャーレベルの構文要素のシグナリングに関する。
【背景技術】
【0003】
比較的短いビデオを描写するために必要とされるビデオ・データの量でも相当なものになりえ、そのことは、データが限定された帯域幅容量をもつ通信ネットワークを通じてストリーミングされるか、または他の仕方で通信される場合に、困難を生じる可能性がある。よって、ビデオ・データは、一般に、現代の電気通信ネットワークを通じて通信される前に圧縮される。メモリ資源が制限される可能性があるため、ビデオが記憶装置に記憶される場合にも、ビデオのサイズが問題となる可能性がある。ビデオ圧縮装置は、しばしば、伝送または記憶の前にビデオ・データを符号化するためにソースにおいてソフトウェアおよび/またはハードウェアを使用し、それによってデジタルビデオ画像を表すのに必要とされるデータ量を減少させる。次いで、圧縮されたデータは、ビデオ・データをデコードするビデオ圧縮解除装置によって宛先において受領される。ネットワーク資源が限られており、より高いビデオ品質の要求が絶えず増加しているため、画像品質にほとんどまたは全く犠牲を払わずに圧縮比を改善する改良された圧縮および圧縮解除技術が望ましい。
【発明の概要】
【課題を解決するための手段】
【0004】
第1の側面は、ビデオ・デコーダによって実装される方法であって、前記ビデオ・デコーダによって、RPLフラグを含むビデオ・ビットストリームを受領するステップであって、第1の値に等しい前記RPLフラグは、RPLシグナリングがPH内に存在することを指定し、第2の値に等しい前記RPLフラグは、RPLシグナリングがPH内に存在せず、スライスヘッダ内に存在してもよいことを指定する、ステップを含む、方法に関する。
【0005】
実施形態において、構文要素は、それらの構文要素が同じである場合にはピクチャー・ヘッダに含まれ、それらの構文要素に変化がある場合にはスライスヘッダに含まれる。しかしながら、いくつかの実施形態では、構文要素は両方には含まれなくてもよい。第一に、非ピクチャーレベルの構文要素はPHに存在してもよい。非ピクチャーレベルの構文要素は、ピクチャーレベル以外のビデオ・ビットストリームのレベルの構文要素である。第二に、非ピクチャーレベルの構文要素の各カテゴリーについて、そのカテゴリーの構文要素がPHまたはスライスヘッダに存在する時をフラグが指定する。フラグはPH内にあってもよい。非ピクチャーレベルの構文要素は、RPLのシグナリング、合同Cb Cr符号フラグ、SAOツール・イネーブルおよびパラメータ、ALFツール・イネーブルおよびパラメータ、LMCSツール・イネーブルおよびパラメータ、ならびにスケーリング・リスト・ツール・イネーブルおよびパラメータを含む。第三に、非ピクチャーレベルの構文要素がPH内に存在する場合、対応する構文要素は、それらの構文要素を含むピクチャー・ヘッダに関連付けられたピクチャーのいかなるスライスの中にも存在しない。PHに存在する非ピクチャーレベルの構文要素の値は、それらの構文要素を含むピクチャー・ヘッダに関連付けられたピクチャーのすべてのスライスに適用される。第四に、非ピクチャーレベルの構文要素がPH内に存在しない場合、対応する構文要素は、ピクチャー・ヘッダに関連付けられたピクチャーのスライスのスライスヘッダに存在してもよい。非ピクチャーレベルの構文要素のシグナリングをピクチャーレベルに移すことにより、冗長性が低減され、エンコードされたビットストリームにおける無駄なビットがより少なくなる。
【0006】
任意的に、前述の側面のいずれかにおいて、本側面の別の実装は、1に等しいRPLフラグが、RPLシグナリングがPH内に存在することを指定することを提供する。
【0007】
任意的に、前述の側面のいずれかにおいて、本側面の別の実装は、1に等しいRPLフラグが、RPLシグナリングがスライス内にないことを指定することを提供する。
【0008】
任意的に、前述の側面のいずれかにおいて、本側面の別の実装は、0に等しいRPLフラグが、RPLシグナリングがPH内に存在しないことを指定することを提供する。
【0009】
任意的に、前述の側面のいずれかにおいて、本側面の別の実装は、0に等しいRPLフラグが、スライスヘッダ内にRPLシグナリングが存在してもよいことを指定することを提供する。
【0010】
任意的に、前述の側面のいずれかにおいて、本側面の別の実装は、ビットストリームがさらにRPL SPSフラグを含み、ここで、RPL SPSフラグは、RPL iが、SPSにおけるiに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造の1つに基づいて導出されることを指定するか、または、RPL iが、直接含まれるiに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造の1つに基づいて導出されることを指定する、ことを提供する。
【0011】
任意的に、上記の側面のいずれかにおいて、本側面の別の実装は、ビットストリームがさらにRPLインデックスを含み、ここで、RPLインデックスは、現在のピクチャーのRPL iの導出に使用される、iに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造の、シーケンスパラメータセット(SPS)に含まれるiに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造のリスト中へのインデックスを指定する、ことを提供する。
【0012】
任意的に、前述の側面のいずれかにおいて、本側面の別の実装は、本方法が、デコードされたピクチャーを電子装置のディスプレイ上に表示することをさらに含むことを提供する。
【0013】
任意的に、前述の側面のいずれかにおいて、本側面の別の実装は、非ピクチャーレベルの構文要素がPH内に存在する場合、対応する構文要素は、それらの構文要素を含むPHに関連付けられたピクチャーのいかなるスライス内にも存在しないことを提供する。
【0014】
第2の側面は、ビデオ・エンコーダによって実装される方法であって、RPLフラグを生成するステップであって、第1の値に等しいRPLフラグは、RPLシグナリングがPH内に存在することを指定し、第2の値に等しいRPLフラグは、RPLシグナリングがPH内に存在せず、スライスヘッダ内に存在してもよいことを指定する、ステップを含む、方法に関する。
【0015】
任意的に、前述の側面のいずれかにおいて、本側面の別の実装は、1に等しいRPLフラグが、RPLシグナリングがPH内に存在することを指定することを提供する。
【0016】
任意的に、前述の側面のいずれかにおいて、本側面の別の実装は、1に等しいRPLフラグが、RPLシグナリングがスライス内にないことを指定することを提供する。
【0017】
任意的に、前述の側面のいずれかにおいて、本側面の別の実装は、0に等しいRPLフラグが、RPLシグナリングがPH内に存在しないことを指定することを提供する。
【0018】
任意的に、前述の側面のいずれかにおいて、本側面の別の実装は、0に等しいRPLフラグが、スライスヘッダ内にRPLシグナリングが存在してもよいことを指定することを提供する。
【0019】
任意的に、前述の側面のいずれかにおいて、本側面の別の実装は、本方法が、さらに、RPL SPSフラグを生成することを含み、ここで、RPL SPSフラグは、RPL iが、SPSにおけるiに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造の1つに基づいて導出されることを指定するか、または、RPL iが、直接含まれるiに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造の1つに基づいて導出されることを指定する、ことを提供する。
【0020】
任意的に、前述の側面のいずれかにおいて、本側面の別の実装は、本方法が、さらに、RPLインデックスを生成することを含み、ここで、RPLインデックスは、現在のピクチャーのRPL iの導出に使用される、iに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造の、シーケンスパラメータセット(SPS)に含まれるiに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造のリスト中へのインデックスを指定する、ことを提供する。
【0021】
任意的に、前述の側面のいずれかにおいて、本側面の別の実装は、非ピクチャーレベルの構文要素がPH内に存在する場合、対応する構文要素は、それらの構文要素を含むPHに関連付けられたピクチャーのいかなるスライス内にも存在しないことを提供する。
【0022】
第3の側面は、ビデオ・デコーダによって実装される方法であって、前記ビデオ・デコーダによって、SAOフラグを含むビデオ・ビットストリームを受領するステップであって、第1の値に等しい前記SAOフラグは、SAOシグナリングがPH内に存在することを指定し、第2の値に等しい前記SAOフラグは、SAOシグナリングがPH内に存在せず、スライスヘッダ内に存在してもよいことを指定するステップと;前記ビデオ・デコーダによって、前記SAOフラグを使用してコードされたピクチャーをデコードし、デコードされたピクチャーを取得するステップと、を含む、方法に関する。
【0023】
任意的に、前述の側面のいずれかにおいて、本側面の別の実装は、本方法が、さらに、デコードされたピクチャーを電子装置のディスプレイ上に表示することを含むことを提供する。
【0024】
任意的に、前述の側面のいずれかにおいて、本側面の別の実装は、非ピクチャーレベルの構文要素がPH中に存在する場合、対応する構文要素は、それらの構文要素を含むPHに関連付けられたピクチャーのいかなるスライス中にも存在しないことを提供する。
【0025】
第4の側面は、ビデオ・エンコーダによって実装される方法であって、SAOフラグを生成するステップであって、第1の値に等しいSAOフラグは、SAOシグナリングがPH内に存在することを指定し、第2の値に等しいSAOフラグは、SAOシグナリングがPH内に存在せず、スライスヘッダ内に存在してもよいことを指定するステップと;ビデオ・エンコーダによって、SAOフラグをビデオ・ビットストリームにエンコードするステップと;ビデオ・エンコーダによって、ビデオ・デコーダに向けた通信のために、ビデオ・ビットストリームを記憶するステップと、を含む。
【0026】
任意的に、前述の側面のいずれかにおいて、本側面の別の実装は、非ピクチャーレベルの構文要素がPH中に存在する場合、対応する構文要素は、それらの構文要素を含むPHに関連付けられたピクチャーのいかなるスライス中にも存在しないことを規定する。
【0027】
第5の側面は、ビデオ・デコーダによって実装される方法であって、前記ビデオ・デコーダによって、ALFフラグを含むビデオ・ビットストリームを受領するステップであって、第1の値に等しい前記ALFフラグは、ALFシグナリングがPH内に存在することを指定し、第2の値に等しい前記ALFフラグは、ALFシグナリングがPH内に存在せず、スライスヘッダ内に存在してもよいことを指定する、ステップと;前記ビデオ・デコーダによって、ALFフラグを使用してコードされたピクチャーをデコードして、デコードされたピクチャーを取得するステップと、を含む、方法に関する。
【0028】
任意的に、前述の側面のいずれかにおいて、本側面の別の実施側面は、本方法が、デコードされたピクチャーを電子装置のディスプレイ上に表示することをさらに含むことを提供する。
【0029】
任意的に、前述の側面のいずれかにおいて、本側面の別の実装は、非ピクチャーレベルの構文要素がPH中に存在する場合、対応する構文要素は、構文要素を含むPHに関連付けられたピクチャーのいかなるスライス中にも存在しないことを提供する。
【0030】
第6の側面は、ビデオ・エンコーダによって実装される方法であって、ALFフラグを生成するステップであって、第1の値に等しいALFフラグは、ALFシグナリングがPH内に存在することを指定し、第2の値に等しいALFフラグは、ALFシグナリングがPH内に存在せず、スライスヘッダ内に存在してもよいことを指定する、ステップと;ビデオ・エンコーダによって、ALFフラグをビデオ・ビットストリームにエンコードするステップと;ビデオ・エンコーダによって、ビデオ・デコーダに向けた通信のために、ビデオ・ビットストリームを記憶するステップと、を含む、方法を提供する。
【0031】
任意的に、前述の側面のいずれかにおいて、本側面の別の実装は、非ピクチャーレベルの構文要素がPH中に存在する場合、対応する構文要素は、構文要素を含むPHに関連付けられたピクチャーのいかなるスライス中にも存在しないことを提供する。
【0032】
第7の側面は、ビデオ・デコーダによって実装される方法であって、前記ビデオ・デコーダによって、構文要素を含むビデオ・ビットストリームを受領するステップであって、前記構文要素は、情報がPH内に存在しうる、または存在しないことを指定する、または、前記情報がスライスヘッダ内に存在しうる、または存在しないことを指定する、ステップと;前記ビデオ・デコーダによって、前記構文要素を使用して、コードされたピクチャーをデコードして、デコードされたピクチャーを得るステップと、を含む、方法に関する。
【0033】
上記の実施形態の任意のものは、上記の他の実施形態の他の任意のものと組み合わされて、新たな実施形態を作り出してもよい。これらおよび他の特徴は、添付の図面および特許請求の範囲に関連して参酌される以下の詳細な説明から、より明確に理解されるであろう。
【図面の簡単な説明】
【0034】
本開示をより完全に理解するために、ここで、添付の図面および詳細な説明に関連して参酌される、以下の簡単な説明が参照される。ここで、同様の参照番号は同様の部分を表す。
【0035】
図1】ビデオ信号をコードする例示的な方法のフローチャートである。
【0036】
図2】ビデオ・コーディングのためのコーディングおよびデコード(コーデック)システムの例の概略図である。
【0037】
図3】例示的なビデオ・エンコーダを示す概略図である。
【0038】
図4】例示的なビデオ・デコーダを示す概略図である。
【0039】
図5】ビデオ・ビットストリームの実施形態を示す。
【0040】
図6】第1の実施形態による、ビットストリームをデコードする方法を示すフローチャートである。
【0041】
図7】第1の実施形態による、ビットストリームをエンコードする方法を示すフローチャートである。
【0042】
図8】第2の実施形態による、ビットストリームをデコードする方法を示すフローチャートである。
【0043】
図9】第2の実施形態による、ビットストリームをエンコードする方法を示すフローチャートである。
【0044】
図10】第3の実施形態による、ビットストリームをデコードする方法を示すフローチャートである。
【0045】
図11】第3の実施形態による、ビットストリームをエンコードする方法を示すフローチャートである。
【0046】
図12】ビデオ・コーディング装置の概略図である。
【0047】
図13】コーディング手段の実施形態の概略図である。
【発明を実施するための形態】
【0048】
一つまたは複数の実施形態の例示的な実装が以下に提供されるが、開示されたシステムおよび/または方法は、現在既知または既存であるかを問わず、任意の数の技術を使用して実施されうることを、最初に理解しておくべきである。本開示は、本明細書に示され説明された例示的な設計および実装を含む、以下に示される例示的な実装、図面、および技法には決して限定されるべきではなく、添付の請求項の範囲および均等物の全範囲の範囲ないで修正されてもよい。
【0049】
以下の略語が適用される:
ALF: adaptive loop filter(適応ループフィルタ)
APS:adaptation parameter set(適応パラメータセット)
ASIC:application-specific integrated circuit(特定用途向け集積回路)
AU:access unit(アクセス単位)
AUD:access unit delimiter(アクセス単位デリミタ)
BT:binary tree(二分木)
CABAC:context-adaptive binary arithmetic coding(コンテキスト適応型2進算術符号化)
CAVLC:context-adaptive variable-length coding(コンテキスト適応型可変長符号化)
Cb:blue difference chroma(青差クロマ)
CLVS:coded layer-wise video sequence(コーディングされた層ごとのビデオシーケンス)
CLVS:coded layer video sequence(コーディングされた層ビデオシーケンス)
CPU:central processing unit(中央処理装置)
Cr:red difference chroma(赤差クロマ)
CRA:clean random access(クリーンなランダムアクセス)
CTB:coding tree block(コーディングツリーブロック)
CTU:coding tree unit(コーディングツリー単位)
CU:coding unit(コーディング単位)
CVS:coded video sequence(コーディングされたビデオシーケンス)
DC:direct current(直流)
DCI:decoding capability information(デコード能力情報)
DCT:discrete cosine transform(離散コサイン変換)
DMM:depth modeling mode(深さモデリングモード)
DPB:decoded picture buffer(デコードされたピクチャーバッファ)
DPS:decoding parameter set(デコードパラメータセット)
DSP:digital signal processor(デジタル信号プロセッサ)
DST:discrete sine transform(離散サイン変換)
EO:electrical-to-optical(電気光学)
FPGA:field-programmable gate array(フィールドプログラマブルゲートアレイ)
GDR:gradual decoding refresh(漸進デコードリフレッシュ)
HEVC:High Efficiency Video Coding(高効率ビデオ・コーディング)
ID:identifier(識別子)
IDR:instantaneous decoding refresh(瞬時デコードリフレッシュ)
IEC:International Electrotechnical Commission(国際電気標準会議)
I/O:input/output(入出力)
IRAP:intra random access pictures(イントラランダムアクセスピクチャー)
ISO:International Organization for Standardization(国際標準化機構)
ITU:International Telecommunication Union(国際電気通信連合)
ITU-T:ITU Telecommunication Standardization Sector(ITU電気通信標準化部門)
LMCS:luma mapping with chroma scaling(クロマスケーリングのあるルーママッピング)
LTRP:long-term reference picture(長期参照ピクチャー)
MVP:motion vector predictor(動きベクトル予測子)
NAL:network abstraction layer(ネットワーク抽象化層)
OE:optical-to-electrical(光から電気)
PH:picture header(ピクチャー・ヘッダ)
PIPE:probability interval partitioning entropy(確率区間分割エントロピー)
POC:picture order count(ピクチャー順カウント)
PPS:picture parameter set(ピクチャーパラメータセット)
PU:picture unit(ピクチャー単位)
QT:quad tree(四分木)
RADL:random access decodable leading(ランダムアクセスデコード可能リーディング)
RAM:random-access memory(ランダムアクセスメモリ)
RASL:random access skipped leading(ランダム・アクセス・スキップ・リーディング)
RBSP:raw byte sequence payload(生バイト・シーケンス・ペイロード)
RDO:rate-distortion optimization(レート歪み最適化)
ROM:read-only memory(読み出し専用メモリ)
RPL:reference picture list(参照ピクチャー・リスト)
Rx:receiver unit(受信器ユニット)
SAD:sum of absolute differences(差分絶対値和)
SAO:sample adaptive offset(サンプル適応オフセット)
SBAC:syntax-based arithmetic coding(構文ベースの算術コーディング)
SOP:sequence of pictures(ピクチャーのシーケンス)
SPS:sequence parameter set(シーケンスパラメータセット)
SRAM:static RAM(静的RAM)
SSD:sum of squared differences(差分平方和)
TCAM:ternary content-addressable memory(三値連想記憶メモリ)
TT:triple tree(三分木)
TU:transform unit(変換単位)
Tx:transmitter unit(送信器ユニット)
VCL:video coding layer(ビデオ・コーディング層)
VPS:video parameter set(ビデオ・パラメータ・セット)
VVC:Versatile Video Coding(多用途ビデオ・コーディング)
【0050】
他所で修正されない限り、以下の定義が適用される:ビットストリームは、エンコーダとデコーダとの間での伝送のために圧縮されたビデオ・データを含む一連のビットである。エンコーダは、ビデオ・データをビットストリームに圧縮するためにエンコード・プロセスを使用する装置である。デコーダは、表示のためにビットストリームからビデオ・データを再構成するためにデコード・プロセスを使用する装置である。ピクチャーは、フレームまたはフィールドを作成するルーマ・サンプルまたはクロマ・サンプルのアレイである。エンコードまたはデコードされているピクチャーは、現在のピクチャーと称されることがある。参照ピクチャーは、インター予測または層間予測に従って参照によって他のピクチャーをコーディングするときに使用できる参照サンプルを含む。参照ピクチャー・リストは、インター予測または層間予測に使用される参照ピクチャーのリストである。フラグは、可能な2つの値(0または1)のうちの1つをとることができる変数または1ビットの構文要素である。いくつかのビデオ・コーディング・システムは、参照ピクチャー・リスト1および参照ピクチャー・リスト0と表されることができる2つの参照ピクチャー・リストを利用する。参照ピクチャー・リスト構造は、複数の参照ピクチャー・リストを含むアドレッシング可能な構文構造である。インター予測は、現在のピクチャーとは異なる参照ピクチャー内の指示されたサンプルへの参照によって、現在のピクチャーのサンプルをコーディングする機構である。ここで、参照ピクチャーと現在のピクチャーは同じ層内にある。参照ピクチャー・リスト構造エントリーは、参照ピクチャー・リストと関連付けられた参照ピクチャーを示す参照ピクチャー・リスト構造内のアドレッシング可能な位置である。スライスヘッダは、コーディングされたスライスの一部であり、スライス内で表されるタイル内のすべてのビデオ・データに関連するデータ要素を含む。PPSは、ピクチャー全体に関するデータを含む。より具体的には、PPSは、各ピクチャー・ヘッダに見られる構文要素によって決定される、ゼロ個以上のコーディングされたピクチャー全体に適用される構文要素を含む構文構造である。SPSは、ピクチャーのシーケンスに関連するデータを含む。AUは、DPBからの出力のため(たとえば、ユーザーへの表示のため)に、同じ表示時間(たとえば、同じピクチャー順カウント)に関連付けられた一つまたは複数のコーディングされたピクチャーの集合である。AUDは、AUの先頭またはAU間の境界を示す。デコードされたビデオシーケンスは、ユーザーへの表示のための準備においてデコーダによって再構成されたピクチャーのシーケンスである。
【0051】
図1は、ビデオ信号をコーディングする例示的な動作方法100のフローチャートである。具体的には、ビデオ信号はエンコーダにおいてエンコードされる。エンコード・プロセスは、ビデオ・ファイル・サイズを低減する種々の機構を採用することによって、ビデオ信号を圧縮する。より小さいファイル・サイズは、圧縮されたビデオ・ファイルをユーザーに向けて送信することを可能にし、一方、関連する帯域幅オーバーヘッドを減少させる。次いで、デコーダは、圧縮されたビデオ・ファイルをデコードして、エンドユーザーに表示するためにもとのビデオ信号を再構成する。デコード・プロセスは、一般に、エンコード・プロセスをミラーし、デコーダがビデオ信号を一貫して再構成することを可能にする。
【0052】
ステップ101で、ビデオ信号がエンコーダに入力される。たとえば、ビデオ信号はメモリに記憶された非圧縮ビデオ・ファイルであってもよい。別の例として、ビデオ・ファイルは、ビデオ・カメラなどのビデオ捕捉装置によって捕捉され、ビデオのライブ・ストリーミングをサポートするようにエンコードされてもよい。ビデオ・ファイルは、オーディオ成分とビデオ成分の両方を含むことができる。ビデオ成分は、シーケンスで閲覧されるときに視覚的な動きの印象を与える一連の画像フレームを含む。フレームは、本明細書ではルーマ成分(またはルーマ・サンプル)と呼ばれる明るさと、クロマ成分(またはカラー・サンプル)と呼ばれる色とを用いて表現されるピクセルを含む。いくつかの例では、フレームはまた、三次元閲覧をサポートするために奥行き値をも含んでいてもよい。
【0053】
ステップ103で、ビデオはブロックにパーティション分割される。パーティション分割は、圧縮のために、各フレーム内のピクセルを正方形および/または長方形のブロックに細分することを含む。たとえば、HEVCでは、フレームは、まず、あらかじめ定義されたサイズ(たとえば、64ピクセル×64ピクセル)のブロックであるCTUに分割されることができる。CTUはルーマ・サンプルとクロマ・サンプルの両方を含む。コーディングツリーを使用して、CTUをブロックに分割し、次いで、さらなるエンコードをサポートする構成が達成されるまで、ブロックを再帰的に細分することができる。たとえば、フレームのルーマ成分は、個々のブロックが比較的均一な照明値を含むまで、細分されてもよい。さらに、フレームのクロマ成分は、個々のブロックが比較的均一な色値を含むまで、細分されてもよい。よって、パーティション分割機構はビデオ・フレームの内容に依存して変化する。
【0054】
ステップ105では、ステップ103でパーティション分割された画像ブロックを圧縮するために、さまざまな圧縮機構が用いられる。たとえば、インター予測および/またはイントラ予測が用いられてもよい。インター予測は、共通のシーン内の諸オブジェクトが連続したフレームに現れる傾向があるという事実を利用するように設計されている。よって、参照フレーム内のオブジェクトを描くブロックは、隣接するフレーム内で繰り返し記述される必要はない。具体的には、テーブルのようなオブジェクトは、複数のフレームにわたって一定の位置に留まることがある。よって、テーブルは一度記述され、隣接するフレームは前の参照フレームを参照することができる。パターン・マッチング機構を使用して、複数フレームにわたってオブジェクトをマッチングすることができる。さらに、動いているオブジェクトは、たとえば、オブジェクトの動きまたはカメラの動きのために、複数のフレームにわたって表現されてもよい。具体的な例として、ビデオは、複数のフレームにわたってスクリーンを横切って移動する自動車を示してもよい。そのような動きを記述するために、動きベクトルを用いることができる。動きベクトルは、フレーム内のオブジェクトの座標から参照フレーム内のオブジェクトの座標へのオフセットを提供する二次元ベクトルである。よって、インター予測は、参照フレーム内の対応するブロックからのオフセットを示す動きベクトルの集合として、現在のフレーム内の画像ブロックをエンコードすることができる。
【0055】
イントラ予測は、共通フレーム内のブロックをエンコードする。イントラ予測は、ルーマおよびクロマ成分がフレームにおいて集群する傾向があるという事実を利用する。たとえば、木の一部における緑色のパッチは、同様の緑色のパッチに隣接して位置する傾向がある。イントラ予測は、複数の方向性予測モード(たとえば、HEVCでは33個)、平面モード、およびDCモードを使用する。方向性モードは、現在ブロックが、対応する方向の近傍ブロックのサンプルと同様/同じであることを示す。平面モードは、行/列(たとえば、平面)に沿った一連のブロックが、行の端における近傍ブロックに基づいて補間できることを示す。平面モードは、事実上、値を変化させる際に比較的一定の傾きを使用することによって、行/列を横切る明るさ/色のなめらかな遷移を示す。DCモードは境界平滑化のために使用され、ブロックが、方向性予測モードの角度方向に関連付けられたすべての近傍ブロックのサンプルに関連付けられた平均値と同様/同じであることを示す。よって、イントラ予測ブロックは、画像ブロックを、実際の値の代わりに、さまざまな関係予測モード値として、表現することができる。さらに、インター予測ブロックは、画像ブロックを、実際の値の代わりに、動きベクトル値として表現することができる。いずれの場合も、予測ブロックは、場合によっては、画像ブロックを正確に表現しないことがある。差があればそれは残差ブロックに格納される。ファイルをさらに圧縮するために、残差ブロックに変換が適用されうる。
【0056】
ステップ107において、種々のフィルタリング技術が適用されうる。HEVCでは、フィルタは、ループ内フィルタリング方式に従って適用される。上述のブロックベースの予測は、デコーダにおいてブロック状の画像の生成につながることがある。さらに、ブロックベースの予測方式は、ブロックをエンコードし、次いで、後で参照ブロックとして使用するために、エンコードされたブロックを再構成することができる。ループ内フィルタリング方式は、ノイズ抑制フィルタ、ブロッキング解除フィルタ、適応ループフィルタ、およびSAOフィルタをブロック/フレームに逐次反復的に適用する。これらのフィルタは、エンコードされたファイルが正確に再構成できるように、そのようなブロッキングアーチファクトを緩和する。さらに、これらのフィルタは、再構成された参照ブロック内のアーチファクトを緩和し、その結果、アーチファクトは、再構成された参照ブロックに基づいてエンコードされる後続ブロックにおいて追加的なアーチファクトを生成する可能性が低くなる。
【0057】
いったんビデオ信号がパーティション分割され、圧縮され、フィルタリングされると、結果として得られたデータはステップ109でビットストリームにエンコードされる。ビットストリームは、上述のデータと、デコーダでの適切なビデオ信号再構成をサポートするのに望ましい任意のシグナリング・データとを含む。たとえば、そのようなデータは、パーティション・データ、予測データ、残差ブロック、およびデコーダにコーディング命令を提供する種々のフラグを含んでいてもよい。ビットストリームは、要求に際してデコーダに向かって送信するために、メモリに格納されてもよい。ビットストリームはまた、複数のデコーダに向かってブロードキャストおよび/またはマルチキャストされてもよい。ビットストリームの生成は逐次反復的なプロセスである。よって、ステップ101、103、105、107、および109は、多くのフレームおよびブロックにわたって連続的におよび/または同時に発生することができる。図1に示された順序は、議論の明確さと容易さのために示されており、ビデオ・コーディング・プロセスを特定の順序に限定することを意図したものではない。
【0058】
デコーダは、ステップ111でビットストリームを受領し、デコード・プロセスを開始する。具体的には、デコーダは、ビットストリームを対応する構文およびビデオ・データに変換するエントロピーデコード方式を採用する。デコーダは、ステップ111で、ビットストリームからの構文データを使用して、フレームのためのパーティションを決定する。パーティション分割は、ステップ103におけるブロック・パーティション分割の結果と一致するべきである。ステップ111で使用されるエントロピー・エンコード/デコードが、ここで説明される。エンコーダは、入力画像(単数または複数)内の値の空間的位置決めに基づいていくつかの可能な選択からブロック・パーティション分割方式を選択するなど、圧縮プロセスの間に多くの選択を行う。正確な選択のシグナリングは、多数のビンを使用する場合がある。本明細書で使用されるところでは、ビンは、変数として扱われるバイナリ値(たとえば、コンテキストに依存して変化しうるビット値)である。エントロピーコーディングは、エンコーダが、特定の場合について明らかに現実的でない任意のオプションを破棄し、許容可能なオプションの集合を残すことを可能にする。各許容可能なオプションには、次いで、コードワードが割り当てられる。コードワードの長さは、許容可能なオプションの数に基づいている(たとえば、2つのオプションについては1つのビン、3つから4つのオプションについては2つのビンなど)。エンコーダは、次いで、選択されたオプションについてコードワードをエンコードする。この方式は、コードワードが、可能なすべてのオプションの潜在的に大きな集合からの選択を一意に示すのではなく、許容可能なオプションの小さなサブセットからの選択を一意に示すために所望されるだけの大きさであるので、コードワードのサイズを小さくする。次いで、デコーダは、エンコーダと同様の仕方で、許容可能なオプションの集合を決定することによって、前記選択をデコードする。許容可能なオプションの集合を決定することによって、デコーダは、コードワードを読み取り、エンコーダによってなされた選択を決定することができる。
【0059】
ステップ113で、デコーダはブロック・デコードを実行する。具体的には、デコーダは、残差ブロックを生成するために逆変換を使用する。次いで、デコーダは、パーティション分割に従って画像ブロックを再構成するために、残差ブロックおよび対応する予測ブロックを使用する。予測ブロックは、ステップ105においてエンコーダで生成された、イントラ予測ブロックとインター予測ブロックの両方を含んでいてもよい。次いで、再構成された画像ブロックは、ステップ111で決定されたパーティション分割データに従って、再構成されたビデオ信号のフレーム内に位置決めされる。ステップ113のための構文も、上述のようにエントロピーコーディングによってビットストリーム内でシグナリングされてもよい。
【0060】
ステップ115で、エンコーダにおけるステップ107と同様の仕方で、再構成されたビデオ信号のフレームに対してフィルタリングが実行される。たとえば、ノイズ抑制フィルタ、ブロッキング解除フィルタ、適応ループフィルタ、およびSAOフィルタが、ブロッキングアーチファクトを除去するためにフレームに適用されてもよい。ひとたびフレームがフィルタリングされると、ビデオ信号は、エンドユーザーによる閲覧のために、ステップ117でディスプレイに出力されることができる。
【0061】
図2は、ビデオ・コーディングのための例示的なコーディングおよびデコード(コーデック)システム200の概略図である。具体的には、コーデック・システム200は、動作方法100の実装をサポートするための機能性を提供する。コーデック・システム200は、エンコーダおよびデコーダの両方で使用される構成要素を示すために一般化されている。コーデック・システム200は、動作方法100のステップ101および103に関して説明したように、ビデオ信号を受領およびパーティション分割し、これにより、パーティション分割されたビデオ信号201が得られる。次いで、コーデック・システム200は、エンコーダとして作用するときには、方法100のステップ105、107、および109に関して説明したように、パーティション分割されたビデオ信号201をコーディングされたビットストリームに圧縮する。デコーダとして作用する場合は、コーデック・システム200は、動作方法100におけるステップ111、113、115、および117に関して説明したように、ビットストリームからの出力ビデオ信号を生成する。コーデック・システム200は、汎用コーダ(coder)制御コンポーネント211と、変換スケーリングおよび量子化コンポーネント213と、イントラピクチャー推定コンポーネント215と、イントラピクチャー予測コンポーネント217と、動き補償コンポーネント219と、動き推定コンポーネント221と、スケーリングおよび逆変換コンポーネント229と、フィルタ制御解析コンポーネント227と、ループ内フィルタ・コンポーネント225と、デコードピクチャーバッファ・コンポーネント223と、ヘッダ・フォーマットおよびCABACコンポーネント231とを含む。そのようなコンポーネントは、図示されるように結合される。図2において、黒線はエンコード/デコードされるべきデータの移動を示し、破線は他のコンポーネントの動作を制御する制御データの移動を示す。コーデック・システム200のコンポーネントはすべて、エンコーダ内に存在してもよい。デコーダは、コーデック・システム200のコンポーネントのサブセットを含んでいてもよい。たとえば、デコーダは、イントラピクチャー予測コンポーネント217、動き補償コンポーネント219、スケーリングおよび逆変換コンポーネント229、ループ内フィルタ・コンポーネント225、およびデコードピクチャーバッファ・コンポーネント223を含んでいてもよい。ここで、これらのコンポーネントについて説明する。
【0062】
パーティション分割されたビデオ信号201は、コーディングツリーによってピクセルのブロックにパーティション分割された、捕捉されたビデオシーケンスである。コーディングツリーは、ピクセルのブロックを、ピクセルのより小さなブロックに細分するために、種々の分割モードを使用する。次いで、これらのブロックは、より小さなブロックにさらに細分されることができる。ブロックは、コーディングツリー上のノードと称されてもよい。より大きな親ノードは、より小さな子ノードに分割される。ノードが細分される回数は、ノード/コーディングツリーの深さと呼ばれる。分割されたブロックは、場合によってはCUに含められることができる。たとえば、CUは、ルーマ・ブロック、Crブロック、およびCbブロックを、そのCUについての対応する構文命令とともに含むCTUのサブ部分であってもよい。分割モードは、ノードを、使用される分割モードに応じて異なる形状のそれぞれ2つ、3つ、または4つの子ノードにパーティション分割するために使用されるBT、TT、およびQTを含んでいてもよい。パーティション分割されたビデオ信号201は、圧縮のために、一般コーダ制御コンポーネント211、変換スケーリングおよび量子化コンポーネント213、イントラピクチャー推定コンポーネント215、フィルタ制御解析コンポーネント227、および動き推定コンポーネント221に転送される。
【0063】
一般コーダ制御コンポーネント211は、アプリケーションの制約に従って、ビデオシーケンスの画像をビットストリームにコーディングすることに関連する決定を行うように構成される。たとえば、一般コーダ制御コンポーネント211は、ビットレート/ビットストリームサイズ対再構成品質の最適化を管理する。そのような決定は、記憶スペース/帯域幅可用性および画像解像度要求に基づいて行われてもよい。一般コーダ制御コンポーネント211はまた、バッファ・アンダーランおよびオーバーランの問題を緩和するために、伝送速度に照らしてバッファの利用を管理する。これらの問題を管理するために、一般コーダ制御コンポーネント211は、他のコンポーネントによるパーティション分割、予測、およびフィルタリングを管理する。たとえば、汎用コーダ制御コンポーネント211は、解像度を増加させ、帯域幅の使用を増加させるために圧縮の複雑さを動的に増加させてもよく、または、解像度および帯域幅の使用を減少させるために圧縮の複雑さを減少させてもよい。よって、一般コーダ制御コンポーネント211は、ビデオ信号再構成品質を、ビットレートの懸念とバランスを取るために、コーデック・システム200の他のコンポーネントを制御する。一般コーダ制御コンポーネント211は、他のコンポーネントの動作を制御する制御データを生成する。制御データはまた、デコーダでデコードするためのパラメータをシグナリングするためにビットストリームにおいてエンコードされるために、ヘッダ・フォーマットおよびCABACコンポーネント231に転送される。
【0064】
パーティション分割されたビデオ信号201は、インター予測のために、動き推定コンポーネント221および動き補償コンポーネント219にも送られる。パーティション分割されたビデオ信号201のフレームまたはスライスは、複数のビデオ・ブロックに分割されてもよい。動き推定コンポーネント221および動き補償コンポーネント219は、時間的予測を提供するために、一つまたは複数の参照フレーム内の一つまたは複数のブロックに対して、受領されたビデオ・ブロックのインター予測コーディングを実行する。コーデック・システム200は、たとえばビデオ・データの各ブロックについて適切なコーディング・モードを選択するために、複数のコーディング・パス(pass)を実行することができる。
【0065】
動き推定コンポーネント221および動き補償コンポーネント219は、高度に統合されてもよいが、概念的な目的のために別個に図示されている。動き推定コンポーネント221によって実行される動き推定は、動きベクトルを生成するプロセスであり、動きベクトルはビデオ・ブロックについての動きを推定する。動きベクトルは、たとえば、予測ブロックに対する、コーディングされるオブジェクトの変位を示すことができる。予測ブロックは、ピクセル差の点で、コーディングされるべきブロックに密接に一致することが見出されるブロックである。予測ブロックは、参照ブロックと呼ばれることもある。そのようなピクセル差は、SAD、SSD、または他の差分メトリックによって決定されうる。HEVCは、CTU、CTB、およびCUを含むいくつかのコーディングされたオブジェクトを使用する。たとえば、CTUはCTBに分割され、CTBはCUに含めるためにCBに分割されることができる。CUは、予測データを含む予測単位、および/またはCUについての変換された残差データを含むTUとしてエンコードされることができる。動き推定コンポーネント221は、レート歪み最適化プロセスの一部としてレート‐歪み解析を使用することによって、動きベクトル、予測単位、およびTUを生成する。たとえば、動き推定コンポーネント221は、現在のブロック/フレームについての複数の参照ブロック、複数の動きベクトルなどを決定し、最良のレート‐歪み特性を有する参照ブロック、動きベクトルなどを選択することができる。最良のレート‐歪み特性は、ビデオ再構成の品質(たとえば、圧縮によるデータ損失量)とコーディング効率(たとえば、最終的なエンコードのサイズ)の両方をバランスさせる。
【0066】
いくつかの例では、コーデック・システム200は、デコードピクチャーバッファ・コンポーネント223に格納された参照ピクチャーのサブ整数ピクセル位置の値を計算することができる。たとえば、ビデオ・コーデック・システム200は、参照ピクチャーの1/4ピクセル位置、1/8ピクセル位置、または他の端数ピクセル位置の値を補間することができる。したがって、動き推定コンポーネント221は、全ピクセル位置および端数ピクセル位置に対する動き探索を実行し、端数ピクセル精度をもつ動きベクトルを出力することができる。動き推定コンポーネント221は、予測単位の位置を参照ピクチャーの予測ブロックの位置と比較することにより、インターコーディングされたスライス内のビデオ・ブロックの予測単位についての動きベクトルを計算する。
【0067】
動き推定コンポーネント221は、計算された動きベクトルを、動きデータとして、エンコードのためにヘッダ・フォーマットおよびCABACコンポーネント231に出力し、動きを動き補償コンポーネント219に出力する。動き補償コンポーネント219によって実行される動き補償は、動き推定コンポーネント221によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することを含んでいてもよい。ここでもまた、いくつかの例では、動き推定コンポーネント221および動き補償コンポーネント219は機能的に統合されてもよい。現在のビデオ・ブロックの予測単位についての動きベクトルを受領すると、動き補償コンポーネント219は、動きベクトルがポイントする予測ブロックを位置特定することができる。次いで、コーディングされている現在のビデオ・ブロックのピクセル値から予測ブロックのピクセル値を減算してピクセル差値を形成することによって、残差ビデオ・ブロックが形成される。一般に、動き推定コンポーネント221はルーマ成分に対する動き推定を実行し、動き補償コンポーネント219は、ルーマ成分に基づいて計算された動きベクトルを、クロマ成分とルーマ成分の両方のために使用する。予測ブロックおよび残差ブロックは、変換スケーリングおよび量子化コンポーネント213に転送される。
【0068】
パーティション分割されたビデオ信号201は、イントラピクチャー推定コンポーネント215およびイントラピクチャー予測コンポーネント217にも送られる。動き推定コンポーネント221および動き補償コンポーネント219と同様に、イントラピクチャー推定コンポーネント215およびイントラピクチャー予測コンポーネント217は、高度に統合されてもよいが、概念的な目的のために別個に図示されている。イントラピクチャー推定コンポーネント215およびイントラピクチャー予測コンポーネント217は、上述のように、フレーム間で動き推定コンポーネント221および動き補償コンポーネント219によって実行されるインター予測の代わりに、現在フレーム内のブロックに対して現在ブロックをイントラ予測する。特に、イントラピクチャー推定コンポーネント215は、現在ブロックをエンコードするために使用するイントラ予測モードを決定する。いくつかの例では、イントラピクチャー推定コンポーネント215は、複数の試験されたイントラピクチャー予測モードから、現在ブロックをエンコードするために適切なイントラ予測モードを選択する。次いで、選択されたイントラ予測モードが、エンコードのためにヘッダ・フォーマットおよびCABACコンポーネント231に転送される。
【0069】
たとえば、イントラピクチャー推定コンポーネント215は、種々の試験されたイントラピクチャー予測モードについてレート‐歪み解析を用いてレート‐歪み値を計算し、試験されたモードのうちで最良のレート‐歪み特性を有するイントラ予測モードを選択する。レート‐歪み解析は、一般に、エンコードされたブロックと該エンコードされたブロックを生成するためにエンコードされたもとのエンコードされていないブロックとの間の歪み(または誤差)の量と、エンコードされたブロックを生成するために使用されるビットレート(たとえば、ビット数)とを決定する。イントラピクチャー推定コンポーネント215は、種々のエンコードされたブロックについての歪みおよびレートから比を計算し、どのイントラ予測モードがそのブロックについて最良のレート‐歪み値を示すかを決定する。加えて、イントラピクチャー推定コンポーネント215は、RDOに基づくDMMを使用して、奥行きマップの奥行きブロックをコーディングするように構成されてもよい。
【0070】
イントラピクチャー予測コンポーネント217は、エンコーダに実装された場合にはイントラピクチャー推定コンポーネント215によって決定された選択されたイントラピクチャー予測モードに基づいて予測ブロックから残差ブロックを生成し、デコーダに実装された場合にはビットストリームから残差ブロックを読み取ることができる。残差ブロックは、予測ブロックともとのブロックとの間の値の差を行列として表したものを含む。次いで、残差ブロックは、変換スケーリングおよび量子化コンポーネント213に転送される。イントラピクチャー推定コンポーネント215およびイントラピクチャー予測コンポーネント217は、ルーマ成分およびクロマ成分の両方に対して作用することができる。
【0071】
変換スケーリングおよび量子化コンポーネント213は、残差ブロックをさらに圧縮するように構成される。変換スケーリングおよび量子化コンポーネント213は、DCT、DST、または概念的に類似した変換などの変換を残差ブロックに適用し、残差変換係数値を含むビデオ・ブロックを生成する。ウェーブレット変換、整数変換、サブバンド変換、または他のタイプの変換も使用することができる。変換は、残差情報をピクセル値領域から変換領域、たとえば周波数領域に変換することができる。変換スケーリングおよび量子化コンポーネント213はまた、変換された残差情報を、たとえば周波数に基づいてスケーリングするように構成される。そのようなスケーリングは、異なる周波数情報が異なる粒度で量子化されるように、残差情報にスケール因子を適用することを含み、これは、再構成されたビデオの最終的な視覚品質に影響を及ぼしうる。変換スケーリングおよび量子化コンポーネント213はまた、ビットレートをさらに低下させるために、変換係数を量子化するように構成される。量子化プロセスは、係数のいくつかまたは全てに関連するビット深さを低減することができる。量子化の程度は、量子化パラメータを調整することによって修正されうる。いくつかの例では、変換スケーリングおよび量子化コンポーネント213は、次いで、量子化された変換係数を含む行列の走査を行ってもよい。量子化された変換係数は、ビットストリームにおいてエンコードされるために、ヘッダ・フォーマットおよびCABACコンポーネント231に転送される。
【0072】
スケーリングおよび逆変換コンポーネント229は、動き推定をサポートするために変換スケーリングおよび量子化コンポーネント213の逆演算を適用する。スケーリングおよび逆変換コンポーネント229は、逆スケーリング、変換、および/または量子化を適用して、ピクセル領域での残差ブロックを再構成する。たとえば、後に、別の現在ブロックについての予測ブロックとなりうる参照ブロックとして使用するためである。動き推定コンポーネント221および/または動き補償コンポーネント219は、後のブロック/フレームの動き推定において使用するために、残差ブロックを対応する予測ブロックに加算することによって参照ブロックを計算することができる。スケーリング、量子化、および変換の間に生成されるアーチファクトを緩和するために、再構成された参照ブロックにフィルタが適用される。それがなければ、そのようなアーチファクトは、後続のブロックが予測されるときに不正確な予測を引き起こしうる(および追加のアーチファクトを作り出しうる)。
【0073】
フィルタ制御解析コンポーネント227およびループ内フィルタ・コンポーネント225は、残差ブロックおよび/または再構成された画像ブロックにフィルタを適用する。たとえば、スケーリングおよび逆変換コンポーネント229からの変換された残差ブロックは、イントラピクチャー予測コンポーネント217および/または動き補償コンポーネント219からの対応する予測ブロックと組み合わされて、もとの画像ブロックを再構成することができる。次いで、フィルタは、再構成された画像ブロックに適用されうる。いくつかの例において、フィルタは、代わりに、残差ブロックに適用されてもよい。図2の他のコンポーネントと同様に、フィルタ制御解析コンポーネント227およびループ内フィルタ・コンポーネント225は、高度に統合されており、一緒に実装されてもよいが、概念的な目的のために別々に示されている。再構成された参照ブロックに適用されるフィルタは、特定の空間領域に適用され、そのようなフィルタがどのように適用されるかを調整するために複数のパラメータを含む。フィルタ制御解析コンポーネント227は、再構成された参照ブロックを解析して、そのようなフィルタがどこで適用されるべきか決定し、対応するパラメータを設定する。そのようなデータは、エンコードのためにフィルタ制御データとしてヘッダ・フォーマットおよびCABACコンポーネント231に転送される。ループ内フィルタ・コンポーネント225は、フィルタ制御データに基づいてそのようなフィルタを適用する。フィルタは、ブロッキング解除フィルタ、ノイズ抑制フィルタ、SAOフィルタ、および適応ループフィルタを含んでいてもよい。そのようなフィルタは、例に応じて、空間/ピクセル領域(たとえば、再構成されたピクセルブロック)で、または周波数領域で、適用されうる。
【0074】
エンコーダとして動作する場合、フィルタリングされた再構成画像ブロック、残差ブロック、および/または予測ブロックは、後に上述のような動き推定において使用するために、デコードピクチャーバッファ・コンポーネント223に格納される。デコーダとして動作するとき、デコードピクチャーバッファ・コンポーネント223は、出力ビデオ信号の一部として、再構成されフィルタリングされたブロックを記憶し、ディスプレイに向かって転送する。デコードピクチャーバッファ・コンポーネント223は、予測ブロック、残差ブロック、および/または再構成された画像ブロックを記憶することができる任意のメモリ装置であってもよい。
【0075】
ヘッダ・フォーマットおよびCABACコンポーネント231は、コーデック・システム200の種々のコンポーネントからデータを受領し、デコーダに向けて伝送するために、そのようなデータをコーディングされたビットストリームにエンコードする。具体的には、ヘッダ・フォーマットおよびCABACコンポーネント231は、一般制御データおよびフィルタ制御データのような制御データをエンコードするための種々のヘッダを生成する。さらに、イントラ予測および動きデータを含む予測データ、ならびに量子化された変換係数データの形の残差データは、すべてビットストリームにエンコードされる。最終的なビットストリームは、もとのパーティション分割されたビデオ信号201を再構成するためにデコーダによって望まれるすべての情報を含む。そのような情報は、また、イントラ予測モード・インデックス・テーブル(コードワード・マッピング・テーブルとも呼ばれる)、種々のブロックについてのエンコード・コンテキストの定義、最も可能性の高いイントラ予測モードの指示、パーティション情報の指示などを含みうる。そのようなデータは、エントロピーコーディングを使用することによってエンコードされてもよい。たとえば、情報は、CAVLC、CABAC、SBAC、PIPEコーディング、または他のエントロピーコーディング技術を使用することによってエンコードされてもよい。エントロピーコーディングに続いて、コーディングされたビットストリームは、別の装置(たとえば、ビデオデコーダ)に送信されてもよく、または後の送信または取得のためにアーカイブされてもよい。
【0076】
図3は、例示的なビデオ・エンコーダ300を示すブロック図である。ビデオ・エンコーダ300は、コーデック・システム200のエンコード機能を実装するため、および/または動作方法100のステップ101、103、105、107、および/または109を実装するために使用されてもよい。エンコーダ300は、入力ビデオ信号をパーティション分割し、その結果、パーティション分割ビデオ信号301が得られ、これは、パーティション分割されたビデオ信号201と実質的に同様である。次いで、パーティション分割されたビデオ信号301は、エンコーダ300のコンポーネントによって圧縮され、ビットストリームにエンコードされる。
【0077】
具体的には、パーティション分割されたビデオ信号301は、イントラ予測のために、イントラピクチャー予測コンポーネント317に転送される。イントラピクチャー予測コンポーネント317は、イントラピクチャー推定コンポーネント215およびイントラピクチャー予測コンポーネント217と実質的に類似していてもよい。パーティション分割されたビデオ信号301はまた、デコードピクチャーバッファ・コンポーネント323内の参照ブロックに基づくインター予測のために、動き補償コンポーネント321に転送される。動き補償コンポーネント321は、動き推定コンポーネント221および動き補償コンポーネント219と実質的に同様であってもよい。イントラピクチャー予測コンポーネント317および動き補償コンポーネント321からの予測ブロックおよび残差ブロックは、残差ブロックの変換および量子化のために変換および量子化コンポーネント313に転送される。変換および量子化コンポーネント313は、変換スケーリングおよび量子化コンポーネント213と実質的に類似していてもよい。変換され量子化された残差ブロックおよび対応する予測ブロックは(関連する制御データと一緒に)ビットストリーム中にコーディングするために、エントロピーコーディングコンポーネント331に転送される。エントロピーコーディングコンポーネント331は、ヘッダ・フォーマットおよびCABACコンポーネント231と実質的に類似していてもよい。
【0078】
変換および量子化された残差ブロックおよび/または対応する予測ブロックは、また、動き補償コンポーネント321による使用のための参照ブロックに再構成するために、変換および量子化コンポーネント313から逆変換および量子化コンポーネント329に転送される。逆変換および量子化コンポーネント329は、スケーリングおよび逆変換コンポーネント229と実質的に類似していてもよい。ループ内フィルタ・コンポーネント325内のループ内フィルタはまた、例に応じて、残差ブロックおよび/または再構成された参照ブロックに適用される。ループ内フィルタ・コンポーネント325は、フィルタ制御解析コンポーネント227およびループ内フィルタ・コンポーネント225と実質的に類似していてもよい。ループ内フィルタ・コンポーネント325は、ループ内フィルタ・コンポーネント225に関して論じられたように、複数のフィルタを含んでいてもよい。次いで、フィルタリングされたブロックは、動き補償コンポーネント321による参照ブロックとしての使用のために、デコードピクチャーバッファ・コンポーネント323に格納される。デコードピクチャーバッファ・コンポーネント323は、デコードピクチャーバッファ・コンポーネント223と実質的に同様であってもよい。
【0079】
図4は、例示的なビデオ・デコーダ400を示すブロック図である。ビデオ・デコーダ400は、コーデック・システム200のデコード機能を実装するため、および/または動作方法100のステップ111、113、115、および/または117を実装するために使用されてもよい。デコーダ400は、たとえばエンコーダ300からビットストリームを受領し、エンドユーザーに表示するために、ビットストリームに基づいて、再構成された出力ビデオ信号を生成する。
【0080】
ビットストリームはエントロピーデコード・コンポーネント433によって受領される。エントロピーデコード・コンポーネント433は、CAVLC、CABAC、SBAC、PIPEコーディング、または他のエントロピーコーディング技法などのエントロピーデコード方式を実装するように構成される。たとえば、エントロピーデコード・コンポーネント433は、ビットストリーム内のコードワードとしてエンコードされた追加データを解釈するためのコンテキストを提供するために、ヘッダ情報を使用することができる。デコードされた情報は、一般的な制御データ、フィルタ制御データ、パーティション情報、動きデータ、予測データ、および残差ブロックからの量子化された変換係数のような、ビデオ信号をデコードするための任意の所望の情報を含む。量子化された変換係数は、残差ブロックに再構成するために、逆変換および量子化コンポーネント429に転送される。逆変換および量子化コンポーネント429は、逆変換および量子化コンポーネント329と同様であってもよい。
【0081】
再構成された残差ブロックおよび/または予測ブロックは、イントラ予測動作に基づく画像ブロックへの再構成のために、イントラピクチャー予測コンポーネント417に転送される。イントラピクチャー予測コンポーネント417は、イントラピクチャー推定コンポーネント215およびイントラピクチャー予測コンポーネント217に類似していてもよい。具体的には、イントラピクチャー予測コンポーネント417は、フレーム内の参照ブロックを位置特定するために予測モードを使用し、その結果に残差ブロックを適用して、イントラ予測された画像ブロックを再構成する。再構成されたイントラ予測された画像ブロックおよび/または残差ブロックならびに対応するインター予測データは、デコードピクチャーバッファコンポーネント423に、ループ内フィルタ・コンポーネント425を介して転送される。これらは、デコードピクチャーバッファコンポーネント223およびループ内フィルタ・コンポーネント225にそれぞれ実質的に類似していてもよい。ループ内フィルタ・コンポーネント425は、再構成された画像ブロック、残差ブロックおよび/または予測ブロックをフィルタリングし、そのような情報はデコードピクチャーバッファ・コンポーネント423に格納される。デコードピクチャーバッファコンポーネント423からの再構成された画像ブロックは、インター予測のために動き補償コンポーネント421に転送される。動き補償コンポーネント421は、動き推定コンポーネント221および/または動き補償コンポーネント219と実質的に同様であってもよい。具体的には、動き補償コンポーネント421は、参照ブロックからの動きベクトルを用いて予測ブロックを生成し、その結果に残差ブロックを適用して画像ブロックを再構成する。結果として得られる再構成されたブロックは、ループ内フィルタ・コンポーネント425を介してデコードピクチャーバッファコンポーネント423に転送されてもよい。デコードピクチャーバッファコンポーネント423は、パーティション情報を介してフレームに再構成されるできる追加的な再構成された画像ブロックを格納し続ける。そのようなフレームは、シーケンスに配置されてもよい。このシーケンスは、再構成された出力ビデオ信号としてディスプレイに出力される。
【0082】
図5は、ビデオ・ビットストリーム500の実施形態を示す。ビデオ・ビットストリーム500はまた、コーディングされたビデオ・ビットストリーム、ビットストリーム、またはそれらの変形とも称されうる。ビットストリーム500は、少なくとも1つのPU 501を含む。図5には3つのPU 501が示されているが、実際的な用途においては、異なる数のPU 501がビットストリーム500内に存在してもよい。各PU 501は、指定された分類規則に従って互いに関連付けられ、デコード順において連続し、ちょうど1つのコーディングされたピクチャー(たとえば、ピクチャー514)を含むNAL単位の集合である。ある実施形態では、各PU 501は、時間ID 519を有するか、または時間ID 519に関連付けられている。
【0083】
ある実施形態では、各PU 501は、DCI 502、VPS 504、SPS 506、PPS 508、PH 512、およびピクチャー514のうちの一つまたは複数を含む。DCI 502、VPS 504、SPS 506、およびPPS 508のそれぞれは、総称して、パラメータセットと称されることがある。図5に示されていない他のパラメータセット、たとえば、APSが、ビットストリーム500に含まれてもよい。APSは、スライスヘッダ520に見られるゼロ個以上の構文要素によって決定されるゼロ個以上のスライスに適用される構文要素を含む構文構造である。
【0084】
DCI 502は、DPSとも呼ばれることもあるが、ビットストリーム全体に適用される構文要素を含む構文構造である。DCI 502は、セッションの寿命に変換することができるビデオ・ビットストリーム(たとえば、ビットストリーム500)の寿命にわたって一定のままであるパラメータを含む。DCI 502は、たとえビデオシーケンスのスプライシングがセッション内で起こったとしても、決して超えられないことが保証される最大の複雑性の相互運用〔インターオップ〕点を決定するために、プロファイル、レベル、およびサブプロファイル情報を含むことができる。それは、さらに、任意的に、制約条件フラグを任意に含む。該フラグは、ビデオ・ビットストリームが、それらのフラグの値によって示されるある種の機能の使用に制約されるであろうことを示す。これにより、ビットストリームは、デコーダ実装における資源割り当てなどを許容する、ある種のツールを使用しないものとしてラベル付けされることができる。すべてのパラメータセットと同様に、DCI 502は、最初に参照されたときに存在し、ビデオシーケンスの最初のピクチャーによって参照される。このことは、DCI 502が、ビットストリームの最初の諸NAL単位のうちに送信されなければならないことを含意する。ビットストリーム内には複数のDCI 502があることがあるが、それらの中の構文要素の値は、参照されるときに矛盾してはならない。
【0085】
VPS 504は、向上層の参照ピクチャーセット構築のためのデコード依存性または情報を含む。スケーラブルなシーケンスの全体的な視点またはビューを提供し、それは、VPS 504は、どのようなタイプのオペレーションポイントが提供されるか、それらのオペレーションポイントのプロファイル、階層、およびレベル、ならびにセッション交渉およびコンテンツ選択などの基礎として使用できるビットストリームのいくつかの他の高レベルの特性を含む。
【0086】
SPS 506は、SOP内のすべてのピクチャーに共通するデータを含む。SPS 506 は、各ピクチャー・ヘッダに見られる構文要素によって参照されるPPSに見られる構文要素の内容によって決定されるように、ゼロ個以上のCLVS全体に適用される構文要素を含む構文構造である。対照的に、PPS 508は、ピクチャー全体に共通するデータを含む。PPS 508は、各ピクチャーヘッダ(たとえば、PH 512)に見られる構文要素によって決定されるように、ゼロ個以上のコーディングされたピクチャー全体に適用される構文要素を含む構文構造である。
【0087】
DCI 502、VPS 504、SPS 506 、およびPPS 508は、異なるタイプのNAL単位に含まれる。NAL単位は、従うべきデータのタイプ(たとえば、コーディングされたビデオ・データ)の指示を含む構文構造体である。NAL単位は、VCL NAL単位と非VCL NAL単位に分類される。VCL NAL単位は、ビデオピクチャー内のサンプルの値を表すデータを含み、非VCL NAL単位は、パラメータセット(いくつかのVCL NAL単位に適用できる重要なデータ)および補足向上情報(タイミング情報およびデコードされたビデオ信号の有用性を高める可能性があるがビデオピクチャー内のサンプルの値をデコードするためには必要ではない他の補足データ)のような、任意の関連する追加的な情報を含む。
【0088】
PH 512は、コーディングされたピクチャー(たとえば、ピクチャー514)のすべてのスライス(たとえば、スライス518)に適用される構文要素を含む構文構造である。ある実施形態では、PH 512は、PH NAL単位として指定された新しいタイプの非VCL NAL単位内にある。したがって、PH NAL単位は、PH NUT(たとえば、PH_NUT)を有する。ある実施形態では、各PU 501には、1つのみのPH 512が含まれる。すなわち、PU 501は、単一または孤立したPH 512を含む。ある実施形態では、正確に1つのPH NAL単位が、ビットストリーム500内の各ピクチャー501について存在する。
【0089】
ピクチャー514は、モノクロフォーマットにおけるルーマ・サンプルのアレイ、または、4:2:0、4:2:2、および4:4:4カラーフォーマットにおけるルーマ・サンプルのアレイおよびクロマ・サンプルの対応する2つのアレイである。ある実施形態では、各PU 501には、1つのみのピクチャー514が含まれる。よって、各PU 501内には、1つのみのPH 512と、そのPH 512に対応する1つのみのピクチャー514が存在する。すなわち、PU 501は、単一または孤立ピクチャー514を含む。
【0090】
各ピクチャー514は、一つまたは複数のスライス518を含む。スライス518は、整数個の完全なタイル、またはピクチャー(たとえば、ピクチャー514)のあるタイル内の整数個の連続する完全なCTU行の整数である。各スライス518は、単一のNAL単位(たとえば、VCL NAL単位)に排他的に含まれる。ある実施形態では、単一のNAL単位は、層ID 515に関連付けられている、または層ID 515を有する。タイル(図示せず)は、特定のタイル列内の諸CTUの矩形領域およびピクチャー(たとえば、ピクチャー514)内の特定のタイル行である。タイルは、水平および垂直境界によって作成されたピクチャーのパーティション分割された部分である。タイルは、矩形および/または正方形であってもよい。具体的には、タイルは、直角に接続された4つの辺を含む。4つの辺は、2組の平行な辺を含む。さらに、平行な辺対の辺は、等しい長さである。このように、タイルは、任意の長方形の形状であってもよく、正方形は、四辺のすべてが等しい長さの長方形の特殊なケースである。画像/ピクチャーは一つまたは複数のタイルを含むことができる。CTU(図示せず)は、3つのサンプルアレイを有するピクチャーのルーマ・サンプルのCTB、クロマ・サンプルの2つの対応するCTB、または、サンプルをコーディングするために使用される3つの別々のカラープレーンと構文構造を使用してコーディングされるモノクロ画像またはピクチャーのサンプルのCTBである。CTB(図示せず)は、ある成分のCTBへの分割がパーティション分割であるような、Nの何らかの値についての、サンプルのN×Nブロックである。ブロック(図示せず)は、サンプル(たとえば、ピクセル)のM×N(M列×N行)アレイ、または変換係数のM×Nアレイである。
【0091】
ピクチャー514およびそれらのスライス518は、エンコードまたはデコードされる画像またはビデオに関連するデータを含む。よって、ピクチャー514およびそれらのスライス518は、単に、ビットストリーム500内で搬送されるペイロードまたはデータと称することができる。PH 512およびスライスヘッダ520は、フラグ522を含んでいてもよい。フラグ522は、後述するように、RPLフラグ、SAOフラグ、またはALFフラグであってもよい。
【0092】
VVC仕様は、ピクチャーレベルである少数の構文要素しか規定しないが、一般的に使用される場合には、同じピクチャーのスライス間で値が異なる可能性があるが、通常は同じピクチャーのすべてのスライスについて値が同じである、さらなる構文要素が存在する。そのような構文要素の例は、RPL、合同クロマ符号フラグ、SAOイネーブルフラグ、ALFイネーブルフラグとパラメータ、LMCSイネーブルフラグとパラメータ、スケーリングリストイネーブルフラグとパラメータに関連する構文要素である。これらのような非ピクチャーレベルの構文要素は、PHにおいてシグナリングされず、同じピクチャーのすべてのスライスについて同じ値をもつ場合でも、それらのスライスのすべてのスライスヘッダにおいて繰り返されなければならない。言い換えれば、いくつかのアプローチでは、これらの構文要素はスライスヘッダにおいてシグナリングされた。これは、それが担持するデータがスライスごとに異なる可能性があるからであった。ただし、ほとんどの場合、スライスを含むピクチャー全体について同じである。その結果、これらの要素はピクチャーごとに数回シグナリングされるが、値は一般的に同じであり、これは冗長であり、エンコードされたビットストリームにおけるビットを浪費する。
【0093】
本明細書に開示されるのは、ピクチャーレベルでの非ピクチャーレベル構文のシグナリングのための実施形態である。実施形態において、構文要素は、構文要素が同じである場合にはピクチャー・ヘッダに含まれ、構文要素に変化がある場合にはスライスヘッダに含まれる。しかしながら、いくつかの実施形態では、構文要素は両方には含まれなくてもよい。第一に、非ピクチャーレベルの構文要素がPH中に存在してもよい。非ピクチャーレベルの構文要素は、ピクチャーレベル以外のビデオ・ビットストリームのレベルの構文要素である。第二に、非ピクチャーレベルの構文要素の各カテゴリーについて、そのカテゴリーの構文要素がPHまたはスライスヘッダに存在する時をフラグが指定する。フラグはPH内にあってもよい。非ピクチャーレベルの構文要素は、RPL、合同Cb Cr符号フラグ、SAOツール・イネーブルとパラメータ、ALFツール・イネーブルとパラメータ、LMCSツール・イネーブルとパラメータ、スケーリングリストツールイネーブルとパラメータのシグナリングに関係するものを含む。第三に、非ピクチャーレベルの構文要素がPH内に存在する場合、対応する構文要素は、それらの構文要素を含むピクチャー・ヘッダに関連するピクチャーのいかなるスライスにも存在しない。PHに存在する非ピクチャーレベルの構文要素の値は、それらの構文要素を含むピクチャー・ヘッダに関連付けられたピクチャーのすべてのスライスに適用される。第四に、非ピクチャーレベルの構文要素がPH内に存在しない場合、対応する構文要素は、ピクチャー・ヘッダに関連するピクチャーのスライスのスライスヘッダに存在してもよい。非ピクチャーレベルの構文要素のシグナリングをピクチャーレベルに移すことにより、冗長性が低減され、エンコードされたビットストリームにおける無駄なビットがより少なくなる。
【表1-1】
【表1-2】
【表1-3】
【表2-1】
【表2-2】
【表2-3】
【表2-4】
【表2-5】
【表2-6】
【0094】
PH RBSPのセマンティクス
PHは、デコード順で次のVCL NAL単位が最初のコーディングされるスライスであるような、コーディングされるピクチャーのすべてのスライスについて共通の情報を含む。
【0095】
pic_typeは、pic_typeの所与の値について、テーブル1にリストされているコーディングされたピクチャーの特徴付けを示す。pic_typeの値は、この仕様のこのバージョンに準拠するビットストリームにおいて、0ないし5(両端含む)に等しい。pic_typeの他の値は、ITU-T ISO/IECによる将来の使用のために予約されている。この仕様のこのバージョンに準拠するデコーダは、pic_typeの予約値を無視する。
【表3】
【0096】
pic_parameter_set_idは、使用中のPPSのpps_pic_parameter_set_idの値を指定する。pic_parameter_set_idの値は、0ないし63(両端含む)の範囲内である。
【0097】
non_reference_picture_flagが1に等しいことは、PHに関連付けられたピクチャーが参照ピクチャーとして決して使用されないことを指定する。non_reference_picture_flagが0に等しいことは、ピクチャーが参照ピクチャーとして使用されてもされなくてもよいことを指定する。
【0098】
colour_plane_idは、separate_colour_plane_flagが1に等しいときに、PHに関連付けられたピクチャーに関連付けられたカラープレーンを指定する。colour_plane_idの値は、0ないし2(両端含む)の範囲内である。colour_plane_id値0、1、2はそれぞれY、Cb、Crプレーンに対応する。colour_plane_idの値が異なるピクチャーのデコード・プロセスの間には依存性はない。
【0099】
pic_order_cnt_lsbは、PHに関連付けられたピクチャーについて、MaxPicOrderCntLsbを法としてピクチャー順カウントを指定する。pic_order_cnt_lsb構文要素の長さは、log2_max_pic_order_cnt_lsb_minus4+4ビットである。pic_order_cnt_lsbの値は、0ないしMaxPicOrderCntLsb-1(両端含む)の範囲内である。
【0100】
recovery_poc_cntデコードされた諸ピクチャーのリカバリーポイントを出力順で指定する。CVSにおいてデコード順で現在のGDRピクチャーの後のピクチャーpicAであって、現在のGDRピクチャーのPicOrderCntValにrecovery_poc_cntの値を加えたものに等しいPicOrderCntValをもつピクチャーpicAがある場合、ピクチャーpicAはリカバリーポイントピクチャーと呼ばれる。そうでない場合、現在のピクチャーのPicOrderCntValにrecovery_poc_cntの値を加えたものよりも大きいPicOrderCntValをもつ、出力順で最初のピクチャーが、リカバリーポイントピクチャーと呼ばれる。リカバリーポイントピクチャーは、復号順で現在のGDRピクチャーに先行しない。recovery_poc_cntの値は、0ないしMaxPicOrderCntLsb-1(両端含む)の範囲内である。
【0101】
変数RpPicOrderCntValは、RpPicOrderCntVal=PicOrderCntVal+recovery_poc_cntのように導出される。
【0102】
no_output_of_prior_pics_flagは、付属書Cで指定される、ビットストリームにおける最初のピクチャーではないCLVSSピクチャーのデコード後、デコードピクチャーバッファ内の以前にデコードされたピクチャーの出力に影響する。
【0103】
pic_output_flagは、付属書Cに規定される、デコードされたピクチャー出力および除去プロセスに影響する。pic_output_flagが存在しない場合、1に等しいと推定される。
【0104】
pic_rpl_present_flagが1に等しいことは、RPLシグナリングがPH内に存在することを指定する.pic_rpl_present_flagが0に等しいことは、RPLシグナリングがPH内に存在せず、ピクチャーのスライスのスライスヘッダに存在する可能性があることを指定する。存在しない場合、pic_rpl_present_flagの値は0に等しいと推定される。RPLシグナリングは、ビデオ・ビットストリーム500に含まれるRPL情報である。
【0105】
pic_rpl_sps_flag[i]が1に等しいことは、ピクチャーのRPL iが、ref_pic_list_struct(listIdx,rplsIdx)構文構造の1つに基づいて導出されることを指定する。ここで、listIdxはSPS内のiに等しい。ref_pic_list_sps_flag[i]が0に等しいことは、ピクチャーの参照ピクチャー・リストiが、ref_pic_list_struct(listIdx,rplsIdx)構文構造に基づいて導出されることを指定する。ここで、listIdxは、ピクチャー・ヘッダに直接含まれるiに等しい。
【0106】
pic_rpl_sps_flag[i]が存在しない場合、次が適用される:num_ref_pic_lists_in_sps[i]が0に等しい場合、pic_rpl_sps_flag[i]の値は0に等しいと推定される。それ以外の場合で(num_ref_pic_lists_in_sps[i]が0より大きい)、rpl1_idx_present_flagが0に等しい場合、pic_rpl_sps_flag[1]の値はpic_rpl_sps_flag[0]に等しいと推定される。それ以外の場合、pic_rpl_sps_flag[i]の値はpps_ref_pic_list_sps_idc[i]-1に等しいと推定される。
【0107】
pic_rpl_idx[i]は、現在のピクチャーのRPL iの導出に使用される、iに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造の、SPSに含まれるiに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造のリスト中へのインデックスを指定する。構文要素pic_rpl_idx[i]は、Ceil(Log2(num_ref_pic_lists_in_sps[i]))ビットで表される。存在しない場合、pic_rpl_idx[i]の値は0に等しいと推定される。pic_rpl_idx[i]の値は、0ないしnum_ref_pic_lists_in_sps[i]-1(両端含む)の範囲内である。pic_rpl_sps_flag[i]が1に等しく、num_ref_pic_lists_in_sps[i]が1に等しい場合、pic_rpl_idx[i]の値は0に等しいと推定される。pic_rpl_sps_flag[i]が1に等しく、rpl1_idx_present_flagが0に等しい場合、pic_rpl_idx[1]の値はpic_rpl_idx[0]に等しいと推定される。
【0108】
変数PicRplsIdx[i]は、次のように導出される:PicRplsIdx[i]=pic_rpl_sps_flag[i] ? pic_rpl_idx[i]:num_ref_pic_lists_in_sps[i]。
【0109】
pic_poc_lsb_lt[i][j]は、PHに関連付けられたピクチャーについてのi番目の参照ピクチャー・リストにおけるj番目のLTRPエントリーの、MaxPicOrderCntLsbを法としたピクチャー順カウントの値を指定する。pic_poc_lsb_lt[i][j]構文要素の長さは、log2_max_pic_order_cnt_lsb_minus4+4ビットである。
【0110】
変数PicPocLsbLt[i][j]は、次のように導出される:PicPocLsbLt[i][j]=ltrp_in_slice_header_flag[i][PicRplsIdx[i]] ? pic_poc_lsb_lt[i][j]:rpls_poc_lsb_lt[listIdx][PicRplsIdx[i]][j]。
【0111】
pic_delta_poc_msb_present_flag[i][j]が1に等しいことは、pic_delta_poc_msb_cycle_lt[i][j]が存在することを指定する。pic_delta_poc_msb_present_flag[i][j]が0に等しいことは、pic_delta_poc_msb_cycle_lt[i][j]が存在しないことを指定する。
【0112】
prevTid0Picは、PHと同じnuh_layer_idをもち、0に等しいTemporalIdをもち、RASLまたはRADLピクチャーではない、デコード順で前のピクチャーであるとする。setOfPrevPocValsは、次からなる集合であるとする:prevTid0PicのPicOrderCntVal;prevTid0PicのRefPicList[0]またはRefPicList[1]のエントリーによって参照され、現在のピクチャーと同じnuh_layer_idをもつ各ピクチャーのPicOrderCntVal;および、デコード順でprevTid0Picの後であり、現在のピクチャーと同じnuh_layer_idをもち、デコード順で現在のピクチャーに先行する各ピクチャーのPicOrderCntVal。
【0113】
setOfPrevPocValsにおいて、MaxPicOrderCntLsbを法とする値がPicPocLsLt[i][j]に等しいような2つ以上の値がある場合、pic_delta_poc_msb_present_flag[i][j]の値は1に等しい。
【0114】
pic_delta_poc_msb_cycle_lt[i][j]は、変数PicFullPocLt[i][j]の値を次のように指定する:
【表4】
【0115】
pic_delta_poc_msb_cycle_lt[i][j]の値は、0ないし2(32-log2_max_pic_order_cnt_lsb_minus4-4)(両端含む)の範囲内である。存在しない場合、pic_delta_poc_msb_cycle_lt[i][j]の値は0に等しいと推定される。
【0116】
pic_temporal_mvp_enabled_flagは、時間的MVPがインター予測のために使用できるかどうかを指定する。pic_temporal_mvp_enabled_flagが0に等しい場合、ピクチャー・ヘッダに関連するピクチャーの構文要素は、ピクチャーのデコードにおいて時間的MVPが使われないように制約される。それ以外の場合(pic_temporal_mvp_enabled_flagが1に等しい)、時間的MVPがピクチャーのデコードにおいて使われてもよい。
【0117】
pic_temporal_mvp_enabled_flagが存在しない場合、次が適用される:sps_temporal_mvp_enabled_flagが0に等しい場合、pic_temporal_mvp_enabled_flagの値は0に等しいと推定される。それ以外の場合(sps_temporal_mvp_enabled_flagが1に等しい)、pps_temporal_mvp_enabled_flagの値はpps_temporal_mvp_enabled_idc-1に等しいと推定される。
【0118】
pic_level_joint_cbcr_sign_flagが1に等しいことは、slice_joint_cbcr_sign_flagがスライスヘッダに存在しないことを指定する。pic_level_joint_cbcr_sign_flagが0に等しいことは、slice_joint_cbcr_sign_flagがスライスヘッダに存在することを指定する。存在しない場合、pic_level_joint_cbcr_sign_flagの値は0に等しいと推定される。
【0119】
pic_level_alf_enabled_flagが1に等しいことは、PHに関連付けられたピクチャーに属するすべてのスライスについてALFが有効にされ、スライス内のY、Cb、またはCr色成分に適用されうることを指定する。pic_level_alf_enabled_flagが0に等しいことは、ALFが一つまたは複数、またはPHに関連付けられたピクチャーに属するすべてのスライスについて無効にされうることを指定する。存在しない場合、pic_level_alf_enabled_flagは0に等しいと推定される。
【0120】
pic_num_alf_aps_ids_lumaは、PHに関連付けられたピクチャーに属するスライスが参照するALF APSの数を指定する。slice_num_alf_aps_ids_lumaの値は、0ないし7(両端含む)の範囲内である。
【0121】
pic_alf_aps_id_luma[i]は、PHに関連付けられたピクチャーのスライスのルーマ成分が参照するi番目のALF APSのadaptation_parameter_set_idを指定する。
【0122】
pic_alf_chroma_idcが0に等しいことは、ALFがCbおよびCr色成分に適用されないことを指定する。pic_alf_chroma_idcが1に等しいことは、ALFがCb色成分に適用されることを示す。pic_alf_chroma_idcが2に等しいことは、ALFがCr色成分に適用されることを示す。pic_alf_chroma_idcが3に等しいことは、ALFがCbおよびCr色成分に適用されることを示す。pic_alf_chroma_idcが存在しない場合、0に等しいと推定される。
【0123】
pic_alf_aps_id_chromaは、ピクチャー・ヘッダに関連付けられたピクチャーのスライスのクロマ成分が参照するALF APSのadaptation_parameter_set_idを指定する。
【0124】
pic_level_lmcs_enabled_flagが1に等しいことは、ピクチャー・ヘッダに関連付けられたピクチャーに属するすべてのスライスについて、クロマスケーリングのあるルーママッピングが有効にされることを指定する。pic_level_lmcs_enabled_flagが0に等しいことは、ピクチャー・ヘッダに関連付けられたピクチャーに属する一つの、または複数の、またはすべてのスライスについて、クロマスケーリングのあるルーママッピングが無効にされうることを指定する。存在しない場合、pic_level_lmcs_enabled_flagの値は0に等しいと推定される。
【0125】
pic_lmcs_aps_idは、ピクチャー・ヘッダに関連付けられたピクチャーのスライスが参照するLMCS APSのadaptation_parameter_set_idを指定する。
【0126】
pic_chroma_residual_scale_flagが1に等しいことは、ピクチャー・ヘッダに関連付けられたピクチャーに属するすべてのスライスについてクロマ残差スケーリングが有効にされることを指定する。pic_chroma_residual_scale_flagが0に等しいことは、ピクチャー・ヘッダに関連付けられたピクチャーに属する一つの、または複数の、またはすべてスライスについてクロマ残差スケーリングが無効にされうることを指定する。pic_chroma_residual_scale_flagが存在しない場合、0に等しいと推定される。
【0127】
pic_level_scaling_list_present_flagが1に等しいことは、ピクチャー・ヘッダに関連付けられたピクチャーのスライスについて使用されるスケーリングリストデータが、参照されたスケーリングリストAPSに含まれるスケーリングリストデータに基づいて導出されることを指定する。pic_level_scaling_list_present_flagが0に等しいことは、ピクチャー・ヘッダに関連付けられたピクチャーの一つの、または複数の、またはすべてのスライスについて使用されるスケーリングリストデータが、7.4.3.16節で導出・指定されたデフォルトのスケーリングリストデータであることを指定する。存在しない場合、pic_level_scaling_list_present_flagの値は0に等しいと推定される。
【0128】
pic_scaling_list_aps_idは、スケーリングリストAPSのadaptation_parameter_set_idを指定する。
【0129】
スライスヘッダRBSPのセマンティクス
slice_rpl_sps_flag[i]が1に等しいことは、現在のスライスのRPL iが、SPS内のiに等しいlistIdxをもつ、ref_pic_list_struct(listIdx,rplsIdx)構文構造のうちの1つに基づいて導出されることを指定する。slice_rpl_sps_flag[i]が0に等しいことは、現在のスライスのRPL iが、現在のピクチャーのスライスヘッダに直接含まれるiに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造に基づいて導出されることを指定する。
【0130】
slice_rpl_sps_flag[i]が存在しない場合、次が適用される:pic_rpl_present_flagが1に等しい場合、slice_rpl_sps_flag[i]の値はpic_rpl_sps_flag[i]に等しいと推定される。それ以外の場合、num_ref_pic_lists_in_sps[i]が0に等しい場合、slice_rpl_sps_flag[i]の値は0に等しいと推定される。それ以外の場合(num_ref_pic_lists_in_sps[i]が0より大きい)、rpl1_idx_present_flagが0に等しい場合、slice_rpl_sps_flag[1]の値はslice_rpl_sps_flag[0]に等しいと推定される。それ以外の場合、slice_rpl_sps_flag[i]の値はpps_ref_pic_list_sps_idc[i]-1に等しいと推定される。
【0131】
slice_rpl_idx[i]は、現在のスライスの参照ピクチャー・リストiの導出に使用される、iに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造の、SPSに含まれるiに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造のリスト中への、インデックスを指定する。構文要素slice_rpl_idx[i]は、Ceil(Log2(num_ref_pic_lists_in_sps[i]))ビットで表される。slice_rpl_idx[i]の値は、0ないしnum_ref_pic_lists_in_sps[i]-1(両端含む)の範囲内である。slice_rpl_sps_flag[i]が1に等しく、num_ref_pic_lists_in_sps[i]が1に等しい場合、slice_rpl_idx[i]の値は0に等しいと推定される。slice_rpl_sps_flag[i]が1に等しく、rpl1_idx_present_flagが0に等しい場合、slice_rpl_idx[1]の値はslice_rpl_idx[0]に等しいと推定される。
【0132】
変数RplsIdx[i]は次のように導出される:
【表5】
【0133】
slice_poc_lsb_lt[i][j]は、現在のスライスについてのi番目の参照ピクチャー・リストにおけるj番目のLTRPエントリーの、MaxPicOrderCntLsbを法としたピクチャー順カウントの値を指定する。slice_poc_lsb_lt[i][j]構文要素の長さは、log2_max_pic_order_cnt_lsb_minus4+4ットである。
【0134】
変数PocLsbLt[i][j]は次のように導出される:
【表6】
【0135】
slice_delta_poc_msb_present_flag[i][j]が1に等しいことは、slice_delta_poc_msb_cycle_lt[i][j]が存在することを指定する。slice_delta_poc_msb_present_flag[i][j]が0に等しいことは、slice_delta_poc_msb_cycle_lt[i][j]が存在しないことを指定する。
【0136】
prevTid0Picを、現在のピクチャーと同じnuh_layer_idをもち、0に等しいTemporalIdをもち、RASLまたはRADLピクチャーではない、デコード順で前のピクチャーであるとする。setOfPrevPocValsは、次からなる集合であるとする:prevTid0PicのPicOrderCntVal、prevTid0PicのRefPicList[0]またはRefPicList[1]のエントリーによって参照され、現在のピクチャーと同じnuh_layer_idをもつ各ピクチャーのPicOrderCntVal、デコード順でprevTid0Picの後であり、現在のピクチャーと同じnuh_layer_idをもち、デコード順で現在のピクチャーに先行する各ピクチャーのPicOrderCntVal。
【0137】
pic_rpl_present_flagが0に等しく、MaxPicOrderCntLsbを法とする値がPocLsbLt[i][j]に等しいような、setOfPrevPocVals内の2つ以上の値があるとき、slice_delta_poc_msb_present_flag[i][j]の値は1に等しい。
【0138】
slice_delta_poc_msb_cycle_lt[i][j]は、変数FullPocLt[i][j]の値を次のように指定する:
【表7】
【0139】
slice_delta_poc_msb_cycle_lt[i][j]の値は、0ないし2(32-log2_max_pic_order_cnt_lsb_minus4-4)(両端含む)の範囲内である。存在しない場合、slice_delta_poc_msb_cycle_lt[i][j]の値は0に等しいと推定される。
【0140】
slice_joint_cbcr_sign_flagは、tu_joint_cbcr_residual_flag[x0][y0]が1に等しい変換単位において、両方のクロマ成分の共位置の残差サンプルが反転した符号をもつかどうかを指定する。tu_joint_cbcr_residual_flag[x0][y0]がある変換単位について1に等しい場合、slice_joint_cbcr_sign_flagが0に等しいことは、Cr(またはCb)成分の各残差サンプルの符号が、共位置のCb(またはCr)残差サンプルの符号と同一であることを指定し、slice_joint_cbcr_sign_flagが1に等しいことは、Cr(またはCb)成分の各残差サンプルの符号が、共位置のCb(またはCr)残差サンプルの反転した符号によって与えられることを指定する。存在しない場合、slice_joint_cbcr_sign_flagの値はpic_level_joint_cbcr_sign_flagと等しいと推定される。
【0141】
slice_sao_luma_flagが1に等しいことは、現在のスライスにおけるルーマ成分についてSAOが有効にされることを指定する。slice_sao_luma_flagが0に等しいことは、現在のスライスにおけるルーマ成分についてSAOが無効にされることを指定する。slice_sao_luma_flagが存在しない場合、pic_level_sao_luma_enabled_flagと等しいと推定される。
【0142】
slice_sao_chroma_flagが1に等しい場合、現在のスライスにおけるクロマ成分についてSAOが有効にされることを指定する。slice_sao_chroma_flagが0に等しいことは、現在のスライスにおけるクロマ成分についてSAOが無効にされることを指定する。slice_sao_chroma_flagが存在しない場合、pic_level_sao_chroma_enabled_flagと等しいと推定される。
【0143】
slice_alf_enabled_flagが1に等しいことは、ALFが有効にされ、スライス内のY、Cb、またはCr色成分に適用されてもよいことを指定する。slice_alf_enabled_flagが0に等しいことは、スライス内のすべての色成分についてALFが無効にされることを指定する。存在しない場合、slice_alf_enabled_flagの値はpic_level_alf_enabled_flagと等しいと推定される。
【0144】
slice_num_alf_aps_ids_lumaは、スライスが参照するALF APSの数を指定する。slice_alf_enabled_flagが1に等しく、slice_num_alf_aps_ids_lumaが存在しない場合、slice_num_alf_aps_ids_lumaの値はpic_num_alf_aps_ids_lumaの値と等しいと推定される。slice_num_alf_aps_ids_lumaの値は、0ないし7(両端含む)の範囲内である。
【0145】
slice_alf_aps_id_luma[i]は、スライスのルーマ成分が参照するi番目のALF APSのadaptation_parameter_set_idを指定する。aps_params_typeがALF_APSに等しく、adapdation_parameter_set_idがslice_alf_aps_id_luma[i]に等しいAPS NAL単位のTemporalIdは、コーディングされるスライスNAL単位のTemporalId以下である。slice_alf_enabled_flagが1に等しく、slice_alf_aps_id_luma[i]が存在しない場合、slice_alf_aps_id_luma[i]の値はpic_alf_aps_id_luma[i]の値と等しいと推定される。
【0146】
イントラスライスおよびIRAPピクチャー内のスライスについて、slice_alf_aps_id_luma[i]は、そのイントラスライスまたはIRAPピクチャーを含むピクチャーではなく、他のピクチャーに関連付けられたALF APSを参照してはならない。
【0147】
slice_alf_chroma_idcが0に等しいことは、ALFがCbおよびCr色成分に適用されないことを指定する。slice_alf_chroma_idcが1に等しいことは、ALFがCb色成分に適用されることを示す。slice_alf_chroma_idcが2に等しいことは、ALFがCr色成分に適用されることを示す。slice_alf_chroma_idcが3に等しいことは、ALFがCbおよびCr色成分に適用されることを示す。slice_alf_chroma_idcが存在しない場合、pic_alf_chroma_idcと等しいと推定される。
【0148】
slice_alf_aps_id_chromaは、スライスのクロマ成分が参照するALF APSのadaptation_parameter_set_idを指定する。aps_params_typeがALF_APSに等しく、adapdation_parameter_set_idがslice_alf_aps_id_chromaに等しいAPS NAL単位のTemporalIdは、コーディングされるスライスNAL単位のTemporalId以下である。slice_alf_enabled_flagが1に等しく、slice_alf_aps_id_chromaが存在しない場合、slice_alf_aps_id_chromaの値はpic_alf_aps_id_chromaの値と等しいと推定される。
【0149】
イントラスライスおよびIRAPピクチャー中のスライスについては、slice_alf_aps_id_chromaは、そのイントラスライスまたはIRAPピクチャーを含むピクチャーではなく、他のピクチャーに関連付けられたALF APSを参照してはならない。
【0150】
slice_lmcs_enabled_flagが1に等しいことは、現在のスライスについてクロマスケーリングのあるルーママッピングが有効にされることを指定する。slice_lmcs_enabled_flagが0に等しいことは、現在のスライスについてクロマスケーリングのあるルーママッピングが有効にされないことを指定する。slice_lmcs_enabled_flagが存在しない場合、pic_lmcs_enabled_flagと等しいと推定される。
【0151】
slice_lmcs_aps_idは、スライスが参照するLMCS APSのadaptation_parameter_set_idを指定する。aps_params_typeがLMCS_APSに等しく、adapdation_parameter_set_idがslice_lmcs_aps_idに等しいAPS NAL単位のTemporalIdは、コーディングされるスライスNAL単位のTemporalId以下である。slice_lmcs_enabled_flagが1に等しく、slice_lmcs_aps_idが存在しない場合、slice_lmcs_aps_idの値はpic_lmcs_aps_idの値と等しいと推定される。
【0152】
存在する場合、slice_lmcs_aps_idの値はピクチャーのすべてのスライスについて同じである。
【0153】
slice_chroma_residual_scale_flagが1に等しいことは、現在のスライスについてクロマ残差スケーリングが有効にされることを指定する。slice_chroma_residual_scale_flagが0に等しいことは、現在のスライスについてクロマ残差スケーリングが有効にされないことを指定する。slice_chroma_residual_scale_flagが存在しない場合、pic_chroma_residual_scale_flagと等しいと推定される。
【0154】
slice_scaling_list_present_flagが1に等しいことは、現在のスライスに使用されるスケーリングリストデータが、参照されているスケーリングリストAPSに含まれるスケーリングリストデータに基づいて導出されることを指定する。slice_scaling_list_present_flagが0に等しいことは、現在のピクチャーに使用されるスケーリングリストデータが、7.4.3.16節で指定されたデフォルトのスケーリングリストデータであることを指定する。存在しない場合、slice_scaling_list_present_flagの値はpic_level_scaling_list_present_flagと等しいと推定される。
【0155】
slice_scaling_list_aps_idは、スケーリングリストAPSのadaptation_parameter_set_idを指定する。aps_params_typeがSCALING_APSに等しく、adaptation_parameter_set_idがslice_scaling_list_aps_idに等しいAPS NAL単位のTemporalIdは、コーディングされるスライスNAL単位のTemporalId以下である。slice_scaling_list_enabled_flagが1に等しく、slice_scaling_list_aps_idが存在しない場合、slice_scaling_list_aps_idの値はpic_scaling_list_aps_idの値に等しいと推定される。
【0156】
図6は、第1の実施形態によるビットストリームをデコードする方法600を示すフローチャートである。デコーダ400が、方法600を実装してもよい。ステップ610で、RPLフラグを含むビデオ・ビットストリームが受領される。第1の値に等しいRPLフラグは、RPLシグナリングがPHに存在することを指定する。第2の値に等しいRPLフラグは、RPLシグナリングがPHに存在せず、スライスヘッダに存在する可能性があることを指定する。最後に、ステップ620において、コーディングされたピクチャーが、RPLフラグを用いてデコードされて、デコードされたピクチャーが得られる。
【0157】
方法600は、追加的な実施形態を実装してもよい。たとえば、第1の値は1である。第2の値は0である。ビットストリームは、さらに、RPL SPSフラグを含み、RPL SPSフラグは、RPL iが、SPS内のiに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造の1つに基づいて導出されることを指定するか、または、直接含まれるiに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造の1つに基づいて導出されることを指定する。ビットストリームは、さらにRPLインデックスを含み、RPLインデックスは、現在のピクチャーのRPL iの導出に使用される、iに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造の、SPSに含まれるiに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造のリスト中へのインデックスを指定する。デコードされたピクチャーは、電子装置のディスプレイ上に表示される。
【0158】
図7は、第1の実施形態によるビットストリームをエンコードする方法700を示すフローチャートである。エンコーダ300は、方法700を実装してもよい。ステップ710で、RPLフラグが生成される。第1の値に等しいRPLフラグは、RPLシグナリングがPHに存在することを指定する。第2の値に等しいRPLフラグは、RPLシグナリングがPHに存在せず、スライスヘッダに存在する可能性があることを指定する。最後に、ステップ730において、ビデオ・ビットストリームは、ビデオ・デコーダへの通信のために記憶される。
【0159】
方法700は、追加的な実施形態を実装してもよい。たとえば、第1の値は1である。第2の値は0である。RPL SPSフラグが生成される。ここで、RPL SPSフラグは、RPL iが、SPS中のiに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造の1つに基づいて導出されることを指定するか、または、直接含まれるiに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造の1つに基づいて導出されることを指定する。RPLインデックスが生成される。ここで、RPLインデックスは、現在のピクチャーのRPL iの導出に使用される、iに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造の、シーケンスパラメータセット(SPS)に含まれるiに等しいlistIdxをもつref_pic_list_struct(listIdx,rplsIdx)構文構造のリスト中へのインデックスを指定する。
【0160】
図8は、第2の実施形態によるビットストリームをデコードする方法800を示すフローチャートである。デコーダ400が、方法800を実装してもよい。ステップ810で、SAOフラグを含むビデオ・ビットストリームが受領される。第1の値に等しいSAOフラグは、SAOシグナリングがPHに存在することを指定し、第2の値に等しいSAOフラグは、SAOシグナリングがPHに存在せず、スライスヘッダに存在する可能性があることを指定する。最後に、ステップ820では、コーディングされたピクチャーが、SAOフラグを使用してデコードされて、デコードされたピクチャーが得られる。方法800は、追加的な実施形態を実装してもよい。たとえば、デコードされたピクチャーは、電子装置のディスプレイ上に表示されてもよい。
【0161】
図9は、第2の実施形態によるビットストリームをエンコードする方法900を示すフローチャートである。エンコーダ300は、方法900を実装してもよい。ステップ910で、SAOフラグが生成される。第1の値に等しいSAOフラグは、SAOシグナリングがPHに存在することを指定し、第2の値に等しいSAOフラグは、SAOシグナリングがPHに存在せず、スライスヘッダに存在する可能性があることを指定する。ステップ920で、RPLフラグはビデオ・ビットストリーム中にエンコードされる。最後に、ステップ930において、ビデオ・ビットストリームは、ビデオ・デコーダへの通信のために記憶される。
【0162】
図10は、第3の実施形態によるビットストリームをデコードする方法1000を示すフローチャートである。デコーダ400が方法1000を実装してもよい。ステップ1010で、ALFフラグを含むビデオ・ビットストリームが受領される。第1の値に等しいALFフラグは、ALFシグナリングがPHに存在することを指定し、第2の値に等しいALFフラグは、ALFシグナリングがPHに存在せず、スライスヘッダに存在する可能性があることを指定する。最後に、ステップ1020において、コーディングされたピクチャーがALFフラグを使用してデコードされ、デコードされたピクチャーが得られる。方法1000は、追加的な実施形態を実装してもよい。たとえば、デコードされたピクチャーは、電子装置のディスプレイ上に表示されてもよい。
【0163】
図11は、第3の実施形態によるビットストリームをエンコードする方法1100を示すフローチャートである。エンコーダ300は、方法1100を実装してもよい。ステップ1110で、ALFフラグが生成される。第1の値に等しいALFフラグは、ALFシグナリングがPHに存在することを指定し、第2の値に等しいALFフラグは、ALFシグナリングがPHに存在せず、スライスヘッダに存在する可能性があることを指定する。ステップ1120で、ALFフラグはビデオ・ビットストリーム中にエンコードされる。最後に、ステップ1130において、ビデオ・ビットストリームは、ビデオ・デコーダへの通信のために記憶される。
【0164】
図12は、本開示のある実施形態による、ビデオ・コーディング装置1200(たとえば、ビデオ・エンコーダ300またはビデオ・デコーダ400)の概略図である。ビデオ・コーディング装置1200は、開示された実施形態を実装するのに適している。ビデオ・コーディング装置1200は、データを受領するための入口ポート1210およびRx 1220と;該データを処理するためのプロセッサ、論理ユニット、またはCPU 1230と;該データを送信するためのTx 1240および出口ポート1250と;該データを記憶するためのメモリ1260とを有する。ビデオ・コーディング装置1200は、光信号または電気信号の出入りのために、入口ポート1210、受信器ユニット1220、送信器ユニット1240、および出口ポート1250に結合されたOEコンポーネントおよびEOコンポーネントをも有していてもよい。
【0165】
プロセッサ1230は、ハードウェアおよびソフトウェアによって実装される。プロセッサ1230は、一つまたは複数のCPUチップ、コア(たとえば、マルチコアプロセッサ)、FPGA、ASIC、およびDSPとして実装されてもよい。プロセッサ1230は、入口ポート1210、Rx 120、Tx 1240、出口ポート1250、およびメモリ1260と通信する。プロセッサ1230は、コーディング・モジュール1270を有する。コーディング・モジュール1270は、開示された実施形態を実装する。たとえば、コーディング・モジュール1270は、種々のコーデック機能を実装し、処理し、準備し、または提供する。よって、コーディング・モジュール1270を含めることは、ビデオ・コーディング装置1200の機能性に対する実質的な改善を提供し、ビデオ・コーディング装置1200の異なる状態への変換を実施する。あるいはまた、コーディング・モジュール1270は、メモリ1260に格納され、プロセッサ1230によって実行される命令として実装される。
【0166】
また、ビデオ・コーディング装置1200は、ユーザーとの間でデータを通信するための入出力装置1280を含んでいてもよい。入出力装置1280は、ビデオ・データを表示するためのディスプレイ、オーディオデータを出力するためのスピーカーなどの出力装置を含んでいてもよい。入出力装置1280はまた、キーボード、マウス、またはトラックボールのような入力装置、またはそのような出力装置と対話するための対応するインターフェースを含んでいてもよい。
【0167】
メモリ1260は、一つまたは複数のディスク、テープドライブ、およびソリッドステートドライブを含み、オーバーフローデータ記憶装置として使用されてもよく、プログラムを、そのようなプログラムが実行のために選択されたときに記憶し、プログラム実行の間に読み出された命令およびデータを記憶する。メモリ1260は、揮発性および/または不揮発性であってもよく、ROM、RAM、TCAM、またはSRAMであってもよい。
【0168】
図13は、コーディング手段1300のある実施形態の概略図である。ある実施形態では、コーディング手段1300は、ビデオ・コーディング装置1302(たとえば、ビデオ・エンコーダ300またはビデオ・デコーダ400)において実装される。ビデオ・コーディング装置1302は、受領手段1301を含む。受領手段1301は、エンコードするピクチャーを受領するか、またはデコードするビットストリームを受領するように構成される。
【0169】
ビデオ・コーディング装置1302は、受領手段1301に結合された送信手段1307を含む。送信手段1307は、ビットストリームをデコーダに送信するか、またはデコードされた画像を表示手段(たとえば、I/O装置1280の1つ)に送信するように構成される。ビデオ・コーディング装置1302は、記憶手段1303を含む。記憶手段1303は、受領手段1301または送信手段1307のうちの少なくとも1つに結合される。記憶手段1303は、命令を記憶するように構成される。また、ビデオ・コーディング装置1302は、処理手段1305をも含む。処理手段1305は、記憶手段1303に結合される。処理手段1305は、本明細書に開示される方法を実行するために、記憶手段1303に記憶された命令を実行するように構成される。
【0170】
ある実施形態では、受領手段は、RPLフラグを含むビデオ・ビットストリームを受領する。RPLフラグは、RPLシグナリングがPH中に存在するか存在しないかを指定するか、またはRPLシグナリングがスライスヘッダ中に存在する可能性があることを指定する。処理手段は、RPLフラグを用いてコーディングされたピクチャーをデコードし、デコードされたピクチャーを得る。
【0171】
用語「約」は、特に断らない限り、後続の数字の±10%を含む範囲を意味する。本開示においていくつかの実施形態が提供されているが、開示されたシステムおよび方法は、本開示の精神または範囲から逸脱することなく、多くの他の特定の形態で具現されうることが理解されうる。本願の例は、制約するのではなく例解するものと考えられ、その意図は、本明細書に与えられた詳細に限定されるものではない。たとえば、種々の要素またはコンポーネントは別のシステムに組み合わされ、または統合されてもよく、あるいはある種の特徴が省略されてもよく、または実装されなくてもよい。
【0172】
さらに、さまざまな実施形態において離散的または別個なものとして記載および図示される技法、システム、サブシステム、および方法は、本開示の範囲から逸脱することなく、他のシステム、コンポーネント、技法、または方法と組み合わされ、または統合されてもよい。結合されたものとして示される、または説明される他のアイテムは、直接結合されていてもよく、または電気的、機械的、または他の方法のいずれであれ何らかのインターフェース、装置、または中間コンポーネントを通じて間接的に結合されまたは通信していてもよい。変更、置換、および改変の他の例は、当業者によってみきわめられることができ、本明細書に開示された精神および範囲から逸脱することなく行うことができる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13