(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-22
(45)【発行日】2024-07-30
(54)【発明の名称】一般的な制約情報の信号通知
(51)【国際特許分類】
H04N 19/70 20140101AFI20240723BHJP
【FI】
H04N19/70
(21)【出願番号】P 2022573731
(86)(22)【出願日】2021-06-02
(86)【国際出願番号】 US2021035366
(87)【国際公開番号】W WO2021247648
(87)【国際公開日】2021-12-09
【審査請求日】2023-01-18
(32)【優先日】2020-06-02
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】110002000
【氏名又は名称】弁理士法人栄光事務所
(72)【発明者】
【氏名】ワン イェクイ
(72)【発明者】
【氏名】ジャン リー
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2020/058567(WO,A1)
【文献】Sachin Deshpande, Jonatan Samuelsson, Andrew Segall, and Philip Cowan,AHG9: On Decoding Capability Information and PTL Signalling,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-R0108-v1,18th Meeting: by teleconference,2020年04月,pp.1-4
【文献】Zhipin Deng, Ye-Kui Wang, Li Zhang, Kai Zhang, and Kui Fan,AHG9: On general constraints information,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-S0050-v3,19th Meeting: by teleconference,2020年05月,pp.1-9
【文献】Ye-Kui Wang, et al.,AHG9: On conditional signalling of GCI fields,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-S0179-v1,19th Meeting: by teleconference,2020年06月,pp.1-4
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
映像処理の方法であって、
第1の規則に沿って、1つ以上のピクチャを含む映像と前記映像のビットストリームとの変換を実行すること、を有し、
前記第1の規則は、プロファイルティアレベル構文構造における一般的な制約情報(GCI)構文構造が構文要素の後にあることを規定し、
前記構文構造は、前記ビットストリームの一般的な制約情報(GCI)に関する情報を含み、
前記構文要素は、1つ以上の出力レイヤセットが適合するレベルを示し、
前記変換は、さらに第2の規則に沿って実行され、
前記第2の規則は、前記GCI構文構造におけるバイトアライメント構文が1つ以上のGCI予約フィールドの後にあることを規定する、
方法。
【請求項2】
前記GCIに関する情報は、1つ以上のGCIフラグが示されているかどうか、および/または、1つ以上のGCIフラグの値、を示す、
請求項1に記載の方法。
【請求項3】
前記GCI構文構造は、general_constraint_info()構文構造であり、
前記構文要素は、general_level_idc構文要素である、
請求項1に記載の方法。
【請求項4】
前記バイトアライメント構文は、前記ビットストリームにおける現在の位置が前記ビットストリームにおける第1のビットの位置から8ビットの整数倍であるかどうかを規定する、
請求項1に記載の方法。
【請求項5】
前記バイトアライメント構文は、前記GCI構文構造における終端にある、
請求項1に記載の方法。
【請求項6】
前記バイトアライメント構文は、gci_alignment_zero_bitフィールドとその構文条件を含み、
前記GCI構文構造は、general_constraint_info()構文構造である、
請求項1に記載の方法。
【請求項7】
前記変換は、さらに第3の規則に沿って実行され、
前記第3の規則は、複数の予約GCIビットを示す第1のGCI構文要素が前記ビットストリームに含まれることを規定する、
請求項1に記載の方法。
【請求項8】
前記第3の規則は、前記予約GCIビットの各値は前記ビットストリームに含まれていることをさらに規定する、
請求項7に記載の方法。
【請求項9】
前記予約GCIビットの各値は、符号なしの1ビット整数としてコーディングされている、
請求項8に記載の方法。
【請求項10】
前記第1のGCI構文要素は、gci_num_reserved_bitsである、
請求項7に記載の方法。
【請求項11】
前記変換は、さらに第4の規則に沿って実行され、
前記第4の規則は、第2のGCI構文要素が前記GCI構文構造の先頭に含まれていることを規定し、
前記第2のGCI構文要素は、1つ以上のGCI構文要素が前記GCI構文構造に含まれているかどうかを示す、
請求項1に記載の方法。
【請求項12】
ゼロに等しい前記第2のGCI構文要素は、前記1つ以上のGCI構文要素が前記GCI構文構造に含まれていないことを示す、
請求項11に記載の方法。
【請求項13】
前記1つ以上のGCI構文要素は、バイトアライメントフィールドを除外する、
請求項12に記載の方法。
【請求項14】
前記GCI構文構造は、制約を課さない、
請求項12に記載の方法。
【請求項15】
プロセッサと、命令を有する非一時的メモリと、を備える映像データを処理する装置であって、前記命令が前記プロセッサによって実行されると、前記プロセッサに、
第1の規則に沿って、1つ以上のピクチャを含む映像と前記映像のビットストリームとの変換を実行すること、を実行させ、
前記第1の規則は、プロファイルティアレベル構文構造における一般的な制約情報(GCI)構文構造が構文要素の後にあることを規定し、
前記構文構造は、前記ビットストリームの一般的な制約情報(GCI)に関する情報を含み、
前記構文要素は、1つ以上の出力レイヤセットが適合するレベルを示し、
前記変換は、さらに第2の規則に沿って実行され、
前記第2の規則は、前記GCI構文構造におけるバイトアライメント構文が1つ以上のGCI予約フィールドの後にあることを規定する、
装置。
【請求項16】
命令を記憶する非一時的なコンピュータ可読記憶媒体であって、この命令は、プロセッサに、
第1の規則に沿って、1つ以上のピクチャを含む映像と前記映像のビットストリームとの変換を実行すること、を実行させ、
前記第1の規則は、プロファイルティアレベル構文構造における一般的な制約情報(GCI)構文構造が構文要素の後にあることを規定し、
前記構文構造は、前記ビットストリームの一般的な制約情報(GCI)に関する情報を含み、
前記構文要素は、1つ以上の出力レイヤセットが適合するレベルを示し、
前記変換は、さらに第2の規則に沿って実行され、
前記第2の規則は、前記GCI構文構造におけるバイトアライメント構文が1つ以上のGCI予約フィールドの後にあることを規定する、
非一時的なコンピュータ可読記憶媒体。
【請求項17】
映像のビットストリームを記憶する
方法であって、前記方法は、
第1の規則に沿って、1つ以上のピクチャを含む映像と前記映像のビットストリームとの変換を実行すること
と、
前記ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することと、を実行させ、
前記第1の規則は、プロファイルティアレベル構文構造における一般的な制約情報(GCI)構文構造が構文要素の後にあることを規定し、
前記構文構造は、前記ビットストリームの一般的な制約情報(GCI)に関する情報を含み、
前記構文要素は、1つ以上の出力レイヤセットが適合するレベルを示し、
前記変換は、さらに第2の規則に沿って実行され、
前記第2の規則は、前記GCI構文構造におけるバイトアライメント構文が1つ以上のGCI予約フィールドの後にあることを規定する、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2020年6月2日出願の米国特許仮出願第63/033689号の優先権および利益を主張する2021年6月2日出願の国際特許出願第PCT/US2021/035366号に基づく。上記出願の開示全体は、本明細書の開示の一部として参照により援用される。
【0002】
この特許明細書は、画像および映像コーディングおよび復号に関する。
【背景技術】
【0003】
デジタル映像は、インターネットおよび他のデジタル通信ネットワークにおいて最大の帯域幅の使用量を占めている。映像を受信および表示することが可能である接続されたユーザ機器の数が増加するにつれ、デジタル映像の使用に対する帯域幅需要は増大し続けることが予測される。
【発明の概要】
【0004】
本明細書は、映像の符号化、復号、または処理を行うために、映像エンコーダおよびデコーダが使用できる一般的な制約情報(GCI)の信号通知のための技術を開示する。
【0005】
1つの例示的な態様において、映像処理方法が開示される。この方法は、規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、この規則は、プロファイルティアレベルの構文構造における構文構造が構文要素の後にあることを規定し、この構文構造は、このビットストリームのための一般的な制約情報(GCI)に関する情報を含み、この構文要素は、このプロファイルティアレベルの構文構造に関連付けられた出力レイヤセットが適合するレベルを示す。
【0006】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、規則に従って、1つ以上のピクチャを有する映像とこの映像のビットストリームとの間で変換を行うことを含み、この規則は、一般的な制約情報(GCI)構文構造のバイトアライメント構文が1つ以上のGCI予約フィールドの後であることを規定し、バイトアライメント構文は、ビットストリームにおける現在の位置がビットストリームの第1のビットの位置から8ビットの整数倍であるかどうかを示し、GCI構文構造はGCI関連構文要素を含む。
【0007】
さらに別の例示的な態様において、別の映像処理方法が開示される。この方法は、規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、この規則は、プロファイルティアレベルの構文構造における構文構造がレベル情報の指示の後にあることを規定し、この構文構造は、一般的な制約情報(GCI)に関する情報を含み、レベル情報の指示が相互運用性の指標を規定する。
【0008】
さらに別の例示的な態様において、別の映像処理方法が開示される。この方法は、規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、規則は、プロファイルティアレベルの構文構造における構文要素が、このプロファイルティアレベルの構文構造に一般的な制約情報(GCI)構文構造が含まれているかどうかを示すことを規定する。
【0009】
さらに別の例示的な態様において、別の映像処理方法が開示される。この方法は、規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、この規則は、バイトアライメント構文が、プロファイルティアレベル構文構造に存在する一般的な制約情報(GCI)構文構造から除外されることを規定し、このバイトアライメント構文は、ビットストリームにおける現在の位置が、このビットストリームの第1のビットの位置から8ビットの整数倍であるかどうかを示し、このGCI構文構造は、GCI関連構文要素を含む。
【0010】
さらに別の例示的な態様において、別の映像処理方法が開示される。この方法は、規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、この規則は、一般的な制約情報(GCI)構文構造が、プロファイルティアレベル構文構造におけるバイトアライメントチェック条件の直前にあることを規定し、このGCI構文構造は、GCI関連構文要素を含み、このバイトアライメントチェック条件は、ビットストリームにおける現在の位置が、このビットストリームの第1のビットの位置から8ビットの整数倍であるかどうかをチェックする。
【0011】
さらに別の例示的な態様において、別の映像処理方法が開示される。この方法は、規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、この規則は、一般的な制約情報(GCI)構文要素に関連付けられた複数の予約された制約ビットのうちの多くがこのビットストリームに含まれることを規定する。
【0012】
さらに別の例示的な態様において、別の映像処理方法が開示される。この方法は、規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、この規則は、一般的な制約情報(GCI)構文構造の先頭にGCI構文要素が含まれることを規定し、このGCI構文要素は、このGCI構文構造に1つ以上のGCI構文要素が含まれるかどうかを示す。
【0013】
さらに別の例示的な態様において、別の映像処理方法が開示される。この方法は、規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、この規則は、構文要素に対する制約を規定し、この構文要素は、このビットストリームにおけるこの映像を表すために使用されるビット深度に対応する。
【0014】
さらに別の例示的な態様において、別の映像処理方法が開示される。この方法は、規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、この規則は、構文要素に対する制約を規定し、この構文要素は、この映像の彩度フォーマットに対応する。
【0015】
さらに別の例示的な態様において、映像エンコーダ装置が開示される。この映像エンコーダは、上述した方法を実装するように構成されたプロセッサを備える。
【0016】
さらに別の例示的な態様において、映像デコーダ装置が開示される。この映像デコーダは、上述した方法を実装するように構成されたプロセッサを備える。
【0017】
さらに別の例示的な態様では、コードが記憶されたコンピュータ可読媒体が開示される。このコードは、本明細書に記載の方法の1つをプロセッサが実行可能なコードの形式で実施する。
【0018】
これらのおよび他の特徴は、本文書全体にわたって説明される。
【図面の簡単な説明】
【0019】
【
図1】本明細書で開示される様々な技術が実装され得る例示的な映像処理システムを示すブロック図である。
【
図2】映像処理に使用されるハードウェアプラットフォームの例を示すブロック図である。
【
図3】本開示のいくつかの実施形態を実装することができる例示的な映像コーディングシステムを示すブロック図である。
【
図4】本開示のいくつかの実施形態を実装することができるエンコーダの例を示すブロック図である。
【
図5】本開示のいくつかの実施形態を実装することができるデコーダの例を示すブロック図である。
【
図6】映像処理の方法の例を示すフローチャートである。
【
図7】映像処理の方法の例を示すフローチャートである。
【
図8】映像処理の方法の例を示すフローチャートである。
【
図9】映像処理の方法の例を示すフローチャートである。
【
図10】映像処理の方法の例を示すフローチャートである。
【
図11】映像処理の方法の例を示すフローチャートである。
【
図12】映像処理の方法の例を示すフローチャートである。
【
図13】映像処理の方法の例を示すフローチャートである。
【
図14】映像処理の方法の例を示すフローチャートである。
【
図15】映像処理の方法の例を示すフローチャートである。
【発明を実施するための形態】
【0020】
本明細書では、理解を容易にするために章の見出しを使用しており、その技術および各章に記載された実施形態の適用可能性をその章のみに限定するものではない。さらに、H.266という用語は、ある説明において、理解を容易にするためだけに用いられ、開示される技術の範囲を限定するために用いられたものではない。このように、本明細書で説明される技術は、他の映像コーデックプロトコルおよび設計にも適用可能である。
【0021】
1. 導入
本明細書は、映像コーディング技術に関する。具体的には、映像コーディングにおける一般的な制約情報(GCI)の信号通知のための構文設計に関する。この考えは、個々にまたは様々な組み合わせで、マルチレイヤ映像コーディング、例えば、現在開発されているVVC(Versatile Video Coding)をサポートする任意の映像コーディング規格または非標準映像コーデックに適用されてもよい。
【0022】
2. 略語
APS Adaptation Parameter Set(適応パラメータセット)
AU Access Unit(アクセス部)
AUD Access Unit Delimiter(アクセス部区切り文字)
AVC Advanced Video Coding(高度映像コーディング)
CLVS Coded Layer Video Sequence(コーディングされたレイヤ映像シーケンス)
CPB Coded Picture Buffer(コーディングされたピクチャバッファ)
CRA Clean Random Access(クリーンランダムアクセス)
CTU Coding Tree Unit(コーディングツリー部)
CVS Coded Video Sequence(コーディングされた映像シーケンス)
DPB Decoded Picture Buffer(復号されたピクチャバッファ)
DPS Decoding Parameter Set(復号パラメータセット)
EOB End Of Bitstream(ビットストリーム終端)
EOS End Of Sequence(シーケンス終端)
GCI General Constraints Information(一般的な制約情報)
GDR Gradual Decoding Refresh(漸次的復号リフレッシュ)
HEVC High Efficiency Video Coding(高効率映像コーディング)
HRD Hypothetical Reference Decoder(仮想参照デコーダ)
IDR Instantaneous Decoding Refresh(瞬時復号リフレッシュ)
JEM Joint Exploration Model(共同探索モデル)
MCTS Motion-Constrained Tile Sets(動き制約タイルセット)
NAL Network Abstraction Layer(ネットワーク抽象レイヤ)
OLS Output Layer Set(出力レイヤセット)
PH Picture Header(ピクチャヘッダ)
PPS Picture Parameter Set(ピクチャパラメータセット)
PTL Profile, Tier and Level(プロファイル、層およびレベル)
PU Picture Unit(ピクチャ部)
RRP Reference Picture Resampling(参照ピクチャリサンプリング)
RBSP Raw Byte Sequence Payload(生バイトシーケンスペイロード)
SEI Supplemental Enhancement Information(補足拡張情報)
SH Slice Header(スライスヘッダ)
SPS Sequence Parameter Set(シーケンスパラメータセット)
SVC Scalable Video Coding(スケーラブル映像コーディング)
VCL Video Coding Layer(映像コーディングレイヤ)
VPS Video Parameter Set(映像パラメータセット)
VTM VVC Test Model(VVC試験モデル)
VUI Video Usability Information(映像ユーザビリティ情報)
VVC Versatile Video Coding(汎用映像コーディング)
【0023】
3. 初期の協議
映像符号化規格は、主に周知のITU-TおよびISO/IEC規格の開発によって発展してきた。ITU-TはH.261とH.263を作り、ISO/IECはMPEG-1とMPEG-4Visualを作り、両団体はH.262/MPEG-2VideoとH.264/MPEG-4AVC(Advanced Video Coding)とH.265/HEVC規格を共同で作った。H.262以来、映像コーディング規格は、時間的予測と変換コーディングが利用されるハイブリッド映像コーディング構造に基づく。HEVCを超えた将来の映像コーディング技術を探索するため、2015年には、VCEGとMPEGが共同でJVET(Joint Video Exploration Team)を設立した。それ以来、多くの新しい方法がJVETによって採用され、JEM(Joint Exploration Model)と呼ばれる参照ソフトウェアに組み込まれてきた。JVETは四半期に1回開催され、新しいコーディング規格はHEVCに比べて50%のビットレート低減を目指している。2018年4月のJVET会議において、新しい映像コーディング規格を「VVC(Versatile Video Coding)」と正式に命名し、その時、第1版のVVCテストモデル(VTM)をリリースした。VVCの標準化に寄与する努力が続けられているので、すべてのJVET会議において、VVC標準に新しいコーディング技術が採用されている。毎回の会議の後、VVC作業草案およびテストモデルVTMをリフレッシュする。VVCプロジェクトは、現在、2020年7月の会合における技術完成(FDIS)を目指している。
【0024】
3.1 シーケンス内のピクチャ解像度の変更
AVCおよびHEVCにおいて、ピクチャの空間的解像度は、新しいSPSを使用する新しいシーケンスがIRAPピクチャで始まらない限り、変更することができない。VVCは、常にイントラ符号化されるIRAPピクチャを符号化せずに、ある位置のシーケンス内でピクチャの解像度を変更することを可能にする。この特徴は、参照ピクチャが復号されている現在のピクチャと異なる解像度を有する場合、インター予測に使用される参照ピクチャをリサンプリングすることが必要であるため、参照ピクチャリサンプリング(RPR)と称する。
【0025】
スケーリング比は、1/2(参照ピクチャから現在のピクチャへのダウンサンプリングの2倍)以上8(8倍のアップサンプリング)以下に制限される。参照ピクチャと現在のピクチャとの間の様々なスケーリング比に対処するために、周波数カットオフが異なる3つのリサンプリングフィルタセットを規定する。3つの組のリサンプリングフィルタは、それぞれ、1/2~1/1.75、1/1.75~1/1.25、および1/1.25~8の範囲のスケーリング比に適用される。各組のリサンプリングフィルタは、動き補償補間フィルタの場合と同様に、輝度に対して16個のフェーズを有し、彩度に対して32個のフェーズを有する。実際には、通常のMC補間処理は、1/1.25~8の範囲のスケーリング比を有するリサンプリング処理の特殊な場合である。水平および垂直スケーリング比は、ピクチャの幅および高さ、並びに参照ピクチャおよび現在のピクチャに対して規定された左、右、上および下のスケーリングオフセットに基づいて導出される。
【0026】
HEVCとは異なる、この特徴をサポートするためのVVC設計の他の態様は、i)SPSの代わりにPPSにおいてピクチャ解像度および対応する適合性ウィンドウを信号通知すること、SPSにおいて最大ピクチャ解像度を信号通知すること、ii)単レイヤビットストリームの場合、各ピクチャ記憶装置(1つの復号ピクチャを記憶するためのDPBにおける1つのスロット)は、最大ピクチャ解像度を有する復号ピクチャを記憶するために必要なバッファサイズを占めることを含む。
【0027】
3.2. 全般およびVVCにおけるスケーラブル映像コーディング(SVC)
SVC(Scalable Video Coding、時には、映像コーディングにおけるスケーラビリティとも呼ばれる)は、BL(Base Layer:基本レイヤ)(時には、RL(Reference Layer:参照レイヤ)と呼ばれる)および1つ以上のスケーラブルEL(Enhancement Layer:エンハンスメントレイヤ)が使用される映像コーディングを参照する。SVCにおいて、基本レイヤは、基本品質レベルの映像データを伝送することができる。1つ以上のエンハンスメントレイヤは、例えば、より高い空間的、時間的、および/または信号対雑音(SNR)レベルをサポートするように、追加の映像データを伝送することができる。エンハンスメントレイヤは、前の、符号化されたレイヤに対して定義されてもよい。例えば、下層がBLとして機能し、上層がELとして機能することができる。中間レイヤは、ELまたはRLのいずれか、またはその両方として機能することができる。例えば、中間レイヤ(例えば、最下レイヤでも最上レイヤでもないレイヤ)は、中間レイヤの下のレイヤ、例えば、基本レイヤまたは任意の介在する拡張レイヤのためのELであってもよく、同時に、中間レイヤの上の1つ以上の拡張レイヤのためのRLとしての役割を果たす。同様に、HEVC規格のマルチビューまたは3D拡張では、複数のビューが存在してもよく、1つのビューの情報を利用して別のビューの情報をコーディング(例えば、符号化または復号化)することができる(例えば、動き推定、動きベクトル予測および/または他の冗長性)。
【0028】
SVCにおいて、エンコーダまたはデコーダで使用されるパラメータは、それらを利用することができるコーディングレベル(例えば、映像レベル、シーケンスレベル、ピクチャレベル、スライスレベル等)に基づいてパラメータセットにグループ分けされる。例えば、ビットストリームにおける異なるレイヤのコーディング映像シーケンスによって利用できるパラメータは、映像パラメータセット(VPS)に含まれてもよく、コーディング映像シーケンスにおける1つ以上のピクチャによって利用されるパラメータは、シーケンスパラメータセット(SPS)に含まれてもよい。同様に、1つのピクチャの1つ以上のスライスで利用されるパラメータは、ピクチャパラメータセット(PPS)に含まれてもよく、1つのスライスに固有の他のパラメータは、スライスヘッダに含まれてもよい。同様に、特定のレイヤが所与の時間にどのパラメータセットを使用しているかの指示は、様々なコーディングレベルで提供されてもよい。
【0029】
VVCにおけるRPR(Reference Picture Resampling)のサポートのおかげで、空間的スケーラビリティサポートに必要なアップサンプリングはRPRアップサンプリングフィルタを使用するだけでよいので、追加の信号処理レベルのコーディングツールを必要とせずに、複数のレイヤ、例えば、VVCにおけるSDおよびHD解像度の2つのレイヤを含むビットストリームをサポートするように設計することができる。それにもかかわらず、スケーラビリティサポートのためには、高レベルの構文変更(スケーラビリティをサポートしない場合と比較して)が必要である。スケーラビリティサポートは、VVCバージョン1に規定されている。AVCおよびHEVCの拡張を含む、任意の以前の映像コーディング規格におけるスケーラビリティサポートとは異なり、VVCのスケーラビリティの設計は、単層デコーダの設計にできるだけ適したものにされてきた。多層ビットストリームの復号能力は、ビットストリームに1つのレイヤしかなかったかの如く規定される。例えば、DPBサイズのような復号能力は、復号されるビットストリームのレイヤの数に依存しないようで規定される。基本的に、単層ビットストリームのために設計されたデコーダは、多層ビットストリームを復号することができるようにするために、多くの変更を必要としない。AVCおよびHEVCの多層拡張の設計と比較して、HLSの態様は、ある程度の柔軟性を犠牲にして大幅に簡略化されてきた。例えば、IRAP AUは、CVSに存在するレイヤの各々にピクチャを含むことが必要である。
【0030】
3.3 パラメータセット
AVC、HEVC、VVCはパラメータ集合を規定する。パラメータセットのタイプは、SPS、PPS、APS、VPS等である。SPS、PPSは、AVC、HEVC、VVCのすべてでサポートされている。VPSは、HEVCから導入されたものであり、HEVCおよびVVCの両方に含まれる。APSは、AVCまたはHEVCに含まれていなかったが、最近のVVC草案のテキストに含まれている。
【0031】
SPSは、シーケンスレベルのヘッダ情報を伝送するように設計され、PPSは、頻繁に変化しないピクチャレベルのヘッダ情報を伝送するように設計された。SPSおよびPPSを用いると、シーケンスまたはピクチャごとに頻繁に変化する情報を繰り返す必要がないので、この情報の冗長な信号通知を回避することができる。さらに、SPSおよびPPSを使用することは、重要なヘッダ情報の帯域外伝送を有効化し、それにより、冗長な伝送の必要性を回避するだけでなく、誤り耐性を改善する。
【0032】
VPSは、マルチレイヤのビットストリームのすべてのレイヤに共通であるシーケンスレベルのヘッダ情報を伝送するために導入された。
【0033】
APSは、コーディングするためのかなりのビットを必要とし、複数のピクチャによって共有され、そして、シーケンスにおいて非常に多くの異なる変形例が存在し得る、そのようなピクチャレベルまたはスライスレベルの情報を伝送するために導入された。
【0034】
3.4. 一般的なプロファイル、階層、レベル構文と意味論
最近のVVC草案テキストにおいて、一般的なプロファイル、階層、レベル構文、および意味論は、以下の通りである。
【表1】
【0035】
profile_tier_level()構文構造は、レベル情報、および選択可能に、プロファイル、ティア、サブプロファイル、および一般的な制約情報を提供する。
profile_tier_level()構文構造がVPSに含まれている場合、OlsInScopeは、VPSで規定された1つ以上のOLSである。profile_tier_level()構文構造がSPSに含まれる場合、OlsInScopeは、SPSを参照するレイヤのうち最下レイヤであるレイヤのみを含むOLSであり、この最下レイヤは独立したレイヤである。
【0036】
general_profile_idcは、付録Aで規定されているOlsInScopeが適合しているプロファイルを示す。ビットストリームは、付録Aで規定されている値以外にgeneral_profile_idcの値を含まないものとする。general_profile_idcの他の値は、ITU-T|ISO/IECによって将来的に使用するときのために保持される。
general_tier_flagは、付録Aで規定されるgeneral_level_idcの解釈のためのティアコンテキストを規定する。
general_level_idcは、付録Aで規定されているOlsInScopeが適合するレベルを示す。ビットストリームには付録Aで規定されている値以外にgeneral_level_idcの値が含まれないものとする。general_level_idcの他の値は、ITU-T|ISO/IECによって将来的に使用されるときのために保持される。
【0037】
注記1- general_level_idcの値が大きいほどより高いレベルを示す。OlsInScopeのためにDCI NAL部に信号通知される最大レベルは、OlsInScope内に含まれるCLVSのためにSPSに信号通知されるレベルよりも高くてもよいが、低くはできない。
注記2- OlsInScopeが複数のプロファイルに適合している場合、general_profile_idcは、エンコーダが決定した(本明細書では規定されていない方法で)好適な復号された結果または好適なビットストリームの特定を提供するプロファイルを示すはずである。
注記3- OlsInScopeのCVSが異なるプロファイルに適合する場合、OlsInScopeのCVSごとに、CVSを復号することができるデコーダに対して、示されたプロファイル、ティア、およびレベルの少なくとも1つのセットが存在するように複数のprofile_tier_level()構文構造をDCI NAL部に含めてもよい。
【0038】
ptl_num_sub_profilesは、general_sub_profile_idc[i]構文要素の数を規定する。
general_sub_profile_idc[i]は、Rec.ITU-T T.35で規定されたように登録されたi番目の相互運用性メタデータの指標を規定する。本明細書ではその内容を明記しない。
ptl_sublayer_level_present_flag[i]が1に等しい場合、TemporalIdがiに等しいサブレイヤ表現のprofile_tier_level()構文構造にレベル情報が存在することを規定する。ptl_sublayer_level_present_flag[i]が0に等しい場合、TemporalIdがiに等しいサブレイヤ表現のprofile_tier_level()構文構造にレベル情報が存在しないことを規定する。
ptl_alignment_zero_bitsは0に等しいものとする。
構文要素sublayer_level_idc[i]の意味論は、不存在値の推論を規定することとは別として、構文要素general_level_idcと同じであるが、TemporalIdがiに等しいサブレイヤ表現にも適用される。
存在しない場合、sublayer_level_idc[i]の値は、以下のように推論される。
- sublayer_level_idc[maxNumSubLayersMinus1]は、同じprofile_tier_level()構造のgeneral_level_idcに等しいと推論される。
- maxNumSubLayersMinus1-1から0(iの値の降順)のiについて、sublayer_level_idc[i]は、sublayer_level_idc[i+1]に等しいと推論される。
【0039】
3.5. 一般的な制約情報構文および意味論
【表2】
【表3】
【表4】
【0040】
general_non_packed_constraint_flagが1に等しい場合、OlsInScopeのビットストリームにフレームパッキング配列SEIメッセージが存在しないことを規定する。general_non_packed_constraint_flagが0に等しい場合はこのような制約を課さない。
注記1-デコーダは、general_non_packed_constraint_flagの値を無視することができる。フレームパッキング配列SEIメッセージの存在または解釈に関連付けられた復号プロセス要件がないからである。
general_frame_only_constraint_flagが1に等しい場合、OlsInScopeがフレームを表すピクチャを伝送することを規定する。general_frame_only_constraint_flagが0に等しい場合、OlsInScopeがフレームを表すピクチャを伝送するが、そのピクチャはフレームを表しても表さなくてもよい。
注記2-デコーダは、general_frame_only_constraint_flagの値を無視することができる。何故なら、関連付けられた復号プロセス要件がないからである。
general_non_projected_constraint_flagが1に等しい場合は、OlsInScopeのビットストリームに等方投影SEIメッセージまたは一般化されたキューブマップ投影SEIメッセージが存在しないことを規定する。general_non_projected_constraint_flagが0に等しい場合は、そのような制約は課さない。
注記3-デコーダは、general_non_projected_constraint_flagの値を無視することができる。何故なら、等方投影SEIメッセージおよび一般化キューブマップ投影SEIメッセージの存在または解釈に関連付けられた復号プロセス要件がないからである。
【0041】
general_one_picture_only_constraint_flagが1に等しい場合は、ビットストリームに1つのコーディングされたピクチャしかないことを規定する。general_one_picture_only_constraint_flagが0に等しい場合、そのような制約を課さない。
intra_only_constraint_flagが1に等しい場合は、sh_slice_typeが1に等しいことを規定する。intra_only_constraint_flagが0に等しい場合は、そのような制約を課さない。
max_bitdepth_minus8_constraint_idcは、sps_bitdepth_minus8が0からmax_bitdepth_minus8_constraint_idcまでの範囲内にあることを規定する。
max_chroma_format_constraint_idcは、sps_chroma_format_idcが0からmax_chroma_format_constraint_idcまでの範囲内にあることを規定する。
【0042】
single_layer_constraint_flagが1に等しい場合は、OlsInScopeにおけるすべてのVCL NAL部に対してnuh_layer_idの値が同じであることを規定する。single_layer_constraint_flagが0に等しい場合はそのような制約を課さない。
all_layers_independent_constraint_flagが1に等しい場合は、vps_all_independent_layers_flagが1に等しいことを規定する。all_layers_independent_constraint_flagが0に等しい場合はそのような制約を課さない。
【0043】
no_ref_pic_resampling_constraint_flagが1に等しい場合は、sps_ref_pic_resampling_enabled_flagが0に等しいことを規定する。no_ref_pic_resampling_constraint_flagが0に等しい場合はそのような制約を課さない。
no_res_change_in_clvs_constraint_flagが1に等しい場合は、sps_res_change_in_clvs_allowed_flagが0に等しいことを規定する。no_res_change_in_clvs_constraint_flagが0に等しい場合は、そのような制約を課さない。
one_tile_per_pic_constraint_flagが1に等しい場合は、各ピクチャが1つのタイルしか含まないことを規定する。すなわち、ピクチャごとのNumTilesInPicの値は1に等しいものとする。one_tile_per_pic_constraint_flagが0に等しい場合は、そのような制約を課さないものとする。
pic_header_in_slice_header_constraint_flagが1に等しい場合は、各ピクチャが1つのスライスのみを含むものとし、各スライスにおけるsh_picture_header_in_slice_header_flagの値は1に等しいことを規定する。pic_header_in_slice_header_constraint_flagが0に等しい場合は、そのような制約を課さない。
one_slice_per_pic_constraint_flagが1に等しい場合は、各ピクチャが1つのスライスしか含まないことを規定する。すなわち、pps_rect_slice_flagが1に等しい場合、num_slices_in_pic_minus1の値は0に等しく、そうでない場合、各スライスヘッダに存在するnum_tiles_in_slice_minus1の値はNumTilesInPic-1に等しいものとする。one_slice_per_pic_constraint_flagが0に等しい場合は、このような制約を課さない。
【0044】
one_subpic_per_pic_constraint_flagが1に等しい場合は、各ピクチャが1つのサブピクチャしか含まないことを規定する。すなわち、各ピクチャのsps_num_subpics_minus1の値は0に等しいことを規定する。one_subpic_per_pic_constraint_flagが0に等しい場合は、そのような制約を課さない。
no_qtbtt_dual_tree_intra_constraint_flagが1に等しい場合は、sps_qtbtt_dual_tree_intra_flagが0に等しいことを規定する。no_qtbtt_dual_tree_intra_constraint_flagが0に等しい場合はそのような制約を課さない。
no_partition_constraints_override_constraint_flagが1に等しい場合は、sps_partition_constraints_override_enabled_flagが0に等しいことを規定する。no_partition_constraints_override_constraint_flagが0に等しい場合はそのような制約を課さない。
no_sao_constraint_flagが1に等しい場合は、sps_sao_enabled_flagが0に等しいことを規定する。no_sao_constraint_flagが0に等しい場合はそのような制約を課さない。
no_alf_constraint_flagが1に等しい場合は、sps_alf_enabled_flagが0に等しいことを規定する。no_alf_constraint_flagが0に等しい場合はそのような制約を課さない。
【0045】
no_ccalf_constraint_flagが1に等しい場合は、sps_ccalf_enabled_flagが0に等しいことを規定する。no_ccalf_constraint_flagが0に等しい場合はそのような制約を課さない。
no_joint_cbcr_constraint_flagが1に等しい場合は、sps_joint_cbcr_enabled_flagが0に等しいことを規定する。no_joint_cbcr_constraint_flagが0に等しい場合はそのような制約を課さない。
no_mrl_constraint_flagが1に等しい場合は、sps_mrl_enabled_flagが0に等しいことを規定する。no_mrl_constraint_flagが0に等しい場合はそのような制約を課さない。
no_isp_constraint_flagが1に等しい場合は、sps_isp_enabled_flagが0に等しいことを規定する。no_isp_constraint_flagが0に等しい場合はそのような制約を課さない。
no_mip_constraint_flagが1に等しい場合は、sps_mip_enabled_flagが0に等しいことを規定する。no_mip_constraint_flagが0に等しい場合はそのような制約を課さない。
【0046】
no_ref_wraparound_constraint_flagが1に等しい場合は、sps_ref_wraparound_enabled_flagが0に等しいことを規定する。no_ref_wraparound_constraint_flagが0に等しい場合はそのような制約を課さない。
no_temporal_mvp_constraint_flagが1に等しい場合は、sps_temporal_mvp_enabled_flagが0に等しいことを規定する。no_temporal_mvp_constraint_flagが0に等しい場合はそのような制約を課さない。
no_sbtmvp_constraint_flagが1に等しい場合は、sps_sbtmvp_enabled_flagが0に等しいことを規定する。no_sbtmvp_constraint_flagが0に等しい場合はそのような制約を課さない。
no_amvr_constraint_flagが1に等しい場合は、sps_amvr_enabled_flagが0に等しいことを規定する。no_amvr_constraint_flagが0に等しい場合はそのような制約を課さない。
no_bdof_constraint_flagが1に等しい場合は、sps_bdof_enabled_flagが0に等しいことを規定する。no_bdof_constraint_flagが0に等しい場合はそのような制約を課さない。
no_dmvr_constraint_flagが1に等しい場合は、sps_dmvr_enabled_flagが0に等しいことを規定する。no_dmvr_constraint_flagが0に等しい場合はそのような制約を課さない。
no_cclm_constraint_flagが1に等しい場合は、sps_cclm_enabled_flagが0に等しいことを規定する。no_cclm_constraint_flagが0に等しい場合はそのような制約を課さない。
no_mts_constraint_flagが1に等しい場合は、sps_mts_enabled_flagが0に等しいことを規定する。no_mts_constraint_flagが0に等しい場合はそのような制約を課さない。
no_sbt_constraint_flagが1に等しい場合は、sps_sbt_enabled_flagが0に等しいことを規定する。no_sbt_constraint_flagが0に等しい場合はそのような制約を課さない。
no_lfnst_constraint_flagが1に等しい場合は、sps_lfnst_enabled_flagが0に等しいことを規定する。no_lfnst_constraint_flagが0に等しい場合はそのような制約を課さない。
【0047】
no_affine_motion_constraint_flagが1に等しい場合は、sps_affine_enabled_flagが0に等しいことを規定する。no_affine_motion_constraint_flagが0に等しい場合はそのような制約を課さない。
no_mmvd_constraint_flagが1に等しい場合は、sps_mmvd_enabled_flagが0に等しいことを規定する。no_mmvd_constraint_flagが0に等しい場合はそのような制約を課さない。
no_smvd_constraint_flagが1に等しい場合は、sps_smvd_enabled_flagが0に等しいことを規定する。no_smvd_constraint_flagが0に等しい場合はそのような制約を課さない。
no_prof_constraint_flagが1に等しい場合は、sps_affine_prof_enabled_flagが0に等しいことを規定する。no_prof_constraint_flagが0に等しい場合はそのような制約を課さない。
no_bcw_constraint_flagが1に等しい場合は、sps_bcw_enabled_flagが0に等しいことを規定する。no_bcw_constraint_flagが0に等しい場合はそのような制約を課さない。
【0048】
no_ibc_constraint_flagが1に等しい場合は、sps_ibc_enabled_flagが0に等しいことを規定する。no_ibc_constraint_flagが0に等しい場合はそのような制約を課さない。
no_ciip_constraint_flagが1に等しい場合は、sps_ciip_enabled_flagが0に等しいことを規定する。no_cipp_constraint_flagが0に等しい場合はそのような制約を課さない。
no_gpm_constraint_flagが1に等しい場合は、sps_gpm_enabled_flagが0に等しいことを規定する。no_gpm_constraint_flagが0に等しい場合はそのような制約を課さない。
no_ladf_constraint_flagが1に等しい場合は、sps_ladf_enabled_flagが0に等しいことを規定する。no_ladf_constraint_flagが0に等しい場合はそのような制約を課さない。
no_transform_skip_constraint_flagが1に等しい場合は、sps_transform_skip_enabled_flagが0に等しいことを規定する。no_transform_skip_constraint_flagが0に等しい場合はそのような制約を課さない。
no_bdpcm_constraint_flagが1に等しい場合は、sps_bdpcm_enabled_flagが0に等しいことを規定する。no_bdpcm_constraint_flagが0に等しい場合はそのような制約を課さない。
【0049】
no_weighted_prediction_constraint_flagが1に等しい場合は、sps_weighted_pred_flagおよびsps_weighted_bipred_flagの両方が0に等しいことを規定する。no_weighted_prediction_constraint_flagが0に等しい場合は、そのような制約を課さない。
no_palette_constraint_flagが1に等しい場合は、sps_palette_enabled_flagが0に等しいことを規定する。no_palette_constraint_flagが0に等しい場合はそのような制約を課さない。
no_act_constraint_flagが1に等しい場合は、sps_act_enabled_flagが0に等しいことを規定する。no_act_constraint_flagが0に等しい場合はそのような制約を課さない。
no_lmcs_constraint_flagが1に等しい場合は、sps_lmcs_enabled_flagが0に等しいことを規定する。no_lmcs_constraint_flagが0に等しい場合はそのような制約を課さない。
【0050】
no_cu_qp_delta_constraint_flagが1に等しい場合は、pps_cu_qp_delta_enabled_flagが0に等しいことを規定する。no_cu_qp_delta_constraint_flagが0に等しい場合はそのような制約を課さない。
no_chroma_qp_offset_constraint_flagが1に等しい場合は、pps_cu_chroma_qp_offset_list_enabled_flagが0に等しいことを規定する。no_chroma_qp_offset_constraint_flagが0に等しい場合はそのような制約を課さない。
no_dep_quant_constraint_flagが1に等しい場合は、sps_dep_quant_enabled_flagが0に等しいことを規定する。no_dep_quant_constraint_flagが0に等しい場合はそのような制約を課さない。
no_sign_data_hiding_constraint_flagが1に等しい場合は、sps_sign_data_hiding_enabled_flagが0に等しいことを規定する。no_sign_data_hiding_constraint_flagが0に等しい場合はそのような制約を課さない。
【0051】
no_mixed_nalu_types_in_pic_constraint_flagが1に等しい場合は、pps_mixed_nalu_types_in_pic_flagが0に等しいことがビットストリーム適合性の要件であることを規定する。no_mixed_nalu_types_in_pic_constraint_flagが0に等しい場合には、そのような制約を課さない。
no_trail_constraint_flagが1に等しい場合は、OlsInScopeに存在するTRAIL_NUTに等しいnuh_unit_typeを有するNAL部が存在しないことを規定する。no_trail_constraint_flagが0に等しい場合には、そのような制約を課さない。
【0052】
no_stsa_constraint_flagが1に等しい場合、OlsInScopeに存在するSTSA_NUTに等しいnuh_unit_typeを有するNAL部が存在しないことを規定する。no_stsa_constraint_flagが0に等しい場合には、そのような制約を課さない。
no_rasl_constraint_flagが1に等しい場合、OlsInScopeに存在するRASL_NUTに等しいnuh_unit_typeを有するNAL部が存在しないことを規定する。no_rasl_constraint_flagが0に等しい場合には、そのような制約を課さない。
no_radl_constraint_flagが1に等しい場合、OlsInScopeに存在するRADL_NUTに等しいnuh_unit_typeを有するNAL部が存在しないことを規定する。no_radl_constraint_flagが0に等しい場合には、そのような制約を課さない。
no_idr_constraint_flagが1に等しい場合、OlsInScopeに存在するIDR_W_RADLまたはIDR_N_LPに等しいnuh_unit_typeを有するNAL部が存在しないことを規定する。no_idr_constraint_flagが0に等しい場合には、そのような制約を課さない。
no_cra_constraint_flagが1に等しい場合、OlsInScopeに存在するCRA_NUTに等しいnuh_unit_typeを有するNAL部が存在しないことを規定する。no_cra_constraint_flagが0に等しい場合には、そのような制約を課さない。
【0053】
no_gdr_constraint_flagが1に等しい場合は、sps_gdr_enabled_flagが0に等しいことを規定する。no_gdr_constraint_flagが0に等しい場合はそのような制約を課さない。
no_aps_constraint_flagが1に等しい場合、OlsInScopeに存在するPREFIX_APS_NUTまたはSUFFIX_APS_NUTに等しいnuh_unit_typeを有するNAL部が存在せず、かつsps_lmcs_enabled_flagおよびsps_scaling_list_enabled_flagが共に0に等しいことを規定する。no_aps_constraint_flagが0に等しい場合は、このような制約を課さない。
【0054】
gci_alignment_zero_bitsは0に等しいものとする。
gci_num_reserved_bytesは、予約された制約バイトの数を規定する。gci_num_reserved_bytesの値は0とする。gci_num_reserved_bytesの他の値は、ITU-T|ISO/IECが将来的に使用するために予約されたものであり、本明細書のこのバージョンに適合するビットストリームには含まれていないものとする。
gci_reserved_byte[i]は、任意の値を有してもよい。その存在および値は、本明細書バージョンで特定された特徴に対するデコーダの適合性に影響を与えない。本明細書のバージョンに準拠するデコーダは、すべてのgci_reserved_byte[i]構文要素の値を無視しなければならない。
【0055】
3.6. GCIフィールドの条件付き信号通知
JVET-S0050およびJVET-S0127はいずれも、PTL構文構造において、PTL構文構造におけるGCI構文構造の存在を規定するために、存在フラグを追加することを提案している。唯一の相違は、S0050において以下のことが行われ、S0127においては行われないことである。S0050は、GCI構文構造が存在する場合、それの直後のPTL構文構造にバイトアライメントを追加することにより、確実に、general_level_idcがPTL構文構造のバイトアラインされた位置から始まり、その結果、GCI構文構造内のバイトアライメントが削除されるようにする。
【化1】
【0056】
【表5】
【表6】
JVET-S0127の構文変更は、以下のとおりである。
【表7】
【0057】
JVET-S0092GCI構文構造そのもののみを変更する。これは、GCI構文構造において、GCI拡張指標(gci_num_reserved_bytes)を終端から先頭(gci_num_constraint_bytes)に移動させることにより、GCIフィールドの信号通知をスキップすることを有効化する。gci_num_reserved_bytesの値は、0または9に等しいものとする。
【0058】
S0092の構文変更は、以下のとおりである。
【表8】
【0059】
異なるアプローチに関する比較をいくつかここに示す。
【0060】
1) JVET-S0050、JVET-S0127について、general_level_idcがPTL構文構造のバイトアラインされた位置にあること(GCI存在フラグが0に等しい場合を含む)を確認するかどうかに違いがある。DCI、VPS、SPS構文はすべて、各PTL構文構造が存在する場合、その構造がDCI/VPS/SPSのバイトアラインされた位置にあることを確認するように設計されている。私は、general_level_idcをPTL構文構造のバイトアラインされた位置に保持すべきであると結論づけるために多くの議論の必要がないことを願う。もし、それが実現可能であれば、JVET-S0050とJVET-S0127は同一となる。
【0061】
2) PTL構文構造(JVET-S0050、JVET-S0127等)にGCI存在フラグを持つことと、GCI構文構造における構文を操作することとの違いは、以下のとおりである。両方とも、general_tier_flagとgeneral_level_idcの間に、PTL構文構造に何らかのGCI情報があることを規定する。GCI存在フラグのアプローチは、GCIフィールドの存在を規定するためにフラグを使用し、JVET-S0092アプローチは、その目的を達成するために8ビットサイズの指標を使用する。ビット数を計数すると、JVET-S0050アプローチは、フラグに0~7バイトのアライメントビットを加えたものに対して1ビットを使用し、JVET-S0092アプローチは、サイズ指標に0~7バイトのアライメントビットを加えたものに対して8ビットを使用する。従って、本質的にこの差は丁度7ビットである。
【0062】
3) JVET-S0092には1つの意味論エラーがあり、gci_num_reserved_bytesの値が0または9のいずれかに等しい場合、GCI構文構造にgci_reserved_byte[i]が決して存在しない可能性がある。もちろん、gci_num_reserved_bytesの値は、0に等しいか、または9以上である、のように言うことで、それを容易に解決することができる。
【0063】
4. 本明細書に開示される技術的解決策によって解決される技術的課題
CGIフィールドの信号通知のための既存の設計は、必要以上に多くのビットを費やす必要がある。
【0064】
5. 発明
上述した問題点および上記以外の問題点を解決するために、以下のような方法が開示されている。これらの項目は、一般的な概念を説明するための例であり、狭義に解釈されるべきではない。さらに、これらの項目は、個々に適用されてもよく、または任意の方法で組み合わされてもよい。
【0065】
1) 第1の問題を解決するために、PTL構文構造におけるGCIフィールドの条件付き信号通知について、例えば、第1の実施形態のように、以下のアプローチのうちの1つ以上を開示する。
a. general_tier_flagの直後に置く代わりに、general_constraint_info()構文構造および/または他のGCI関連構文要素(例えば、GCIフラグの存在)をレベル情報の指示後に移動させる。
i. 一例において、profile_tier_level()構文構造におけるgeneral_constraint_info()構文構造をgeneral_sub_profile_idc[i]構文要素の直後に移動する。
b. general_constraint_info()構文構造の存在を条件づけるために、profile_tier_level()構文構造に新しい構文要素(例えば、gci_present_flagという1ビットフラグ)を追加する。
i. profileTierPresentFlagが1に等しいprofile_tier_level()構文構造においてgci_present_flagが1に等しい場合、general_constraint_info()構文構造は、profile_tier_level()構文構造に存在する。profile_tier_level()構文構造に対してgci_present_flagが0に等しい場合(profileTierPresentFlagが1に等しいかどうかに関わらず)、general_constraint_info()構文構造は、profile_tier_level()構文構造に存在しない。
ii. GCIフィールドの意味論が存在する場合(すなわち、gci_present_flagが1に等しい場合)にのみ適用されるように、その意味論を変更する。すなわち、gci_present_flagが0に等しい場合、プロファイル定義の一部として規定される制約などのような他の規定された制約に加えて、一般的な制約は適用されない。
iii. あるいは、さらに、新しい構文要素は、例えば、profileTierPresentFlagの値に従って、条件付きで信号通知されてもよい。
c. general_constraint_info()構文構造からバイトアライメント構文(すなわち、gci_alignment_zero_bitフィールドおよびその構文条件)を削除する。
d. 予約された制約バイトの総数および予約された制約バイトを信号通知する代わりに、予約された制約ビットの数および/または各予約された制約ビットの値を信号通知してもよい。
i. 一例において、GCI構文要素gci_num_reserved_bytesをgci_num_reserved_bitsに変更する。
ii. あるいは、さらに、変更されたGCI構文要素は、u(8)の代わりにu(11)を用いてコーディングされてもよい。
iii. あるいは、さらに、GCI構文要素gci_reserved_byte[i]を、u(8)の代わりにu(1)でコーディングされたgci_reserved_bit[i]に変更する。
【0066】
2) 第1の問題を解決するために、PTL構文構造におけるGCIフィールドの条件付き信号通知について、例えば、第2の実施形態のように、以下のアプローチのうちの1つ以上を開示する。
a. general_tier_flagの直後に置く代わりに、general_constraint_info()構文構造および/または他のGCI関連の構文要素(例えば、GCIフラグの存在)をレベル情報の指示後に移動させる。
i. 一例において、profile_tier_level()構文構造におけるgeneral_constraint_info()構文構造を、(general_tier_flagの直後に置く代わりに)general_sub_profile_idc[i]構文要素の直後に移動させる。
b. general_constraint_info()構文構造の存在を条件づけるために、profile_tier_level()構文構造に新しい構文要素(例えば、gci_present_flagという1ビットフラグ)を追加する。
i. profileTierPresentFlagが1に等しいprofile_tier_level()構文構造においてgci_present_flagが1に等しい場合、general_constraint_info()構文構造はprofile_tier_level()構文構造に存在する。profile_tier_level()構文構造に対してgci_present_flagが0に等しい場合(profileTierPresentFlagが1に等しいかどうかに関わらず)、general_constraint_info()構文構造はprofile_tier_level()構文構造に存在しない。
ii. GCIフィールドの意味論が存在する場合(すなわち、gci_present_flagが1に等しい場合)にのみ適用されるように、その意味論を変更する。すなわち、gci_present_flagが0に等しい場合、プロファイル定義の一部として規定される制約などのような他の規定された制約に加えて、一般的な制約は適用されない。
iii. あるいは、さらに、新しい構文要素は、例えば、profileTierPresentFlagの値に従って、条件付きで信号通知されてもよい。
3) 第1の問題を解決するために、PTL構文構造におけるGCIフィールドの条件付き信号通知について、例えば、第1の実施形態のように、以下のアプローチのうちの1つ以上を開示する。
a. general_tier_flagの直後に位置させる代わりに、general_constraint_info()構文構造および/または他のGCI関連構文要素(例えば、GCIフラグの存在)を、PTL構文構造におけるバイトアライメントチェック条件の直前(例えば、while(!byte_aligned())ループの直前)に移動させる。
i. 一例において、profile_tier_level()構文構造におけるgeneral_constraint_info()構文構造を、(general_tier_flagの直後に置く代わりに)ptl_sublayer_level_present_flag[i]構文要素の直後に移動させる。
b. general_constraint_info()構文構造の存在を条件づけるために、profile_tier_level()構文構造に新しい構文要素(例えば、gci_present_flagという1ビットフラグ)を追加する。
i. profileTierPresentFlagが1に等しいprofile_tier_level()構文構造においてgci_present_flagが1に等しい場合、general_constraint_info()構文構造はprofile_tier_level()構文構造に存在する。profile_tier_level()構文構造に対してgci_present_flagが0に等しい場合(profileTierPresentFlagが1に等しいかどうかに関わらず)、general_constraint_info()構文構造はprofile_tier_level()構文構造に存在しない。
ii. GCIフィールドの意味論が存在する場合(すなわち、gci_present_flagが1に等しい場合)にのみ適用されるように、その意味論を変更する。すなわち、gci_present_flagが0に等しい場合、プロファイル定義の一部として規定される制約などのような他の規定された制約に加えて、一般的な制約は適用されない。
iii. あるいは、さらに、新しい構文要素は、例えば、profileTierPresentFlagの値に従って、条件付きで信号通知されてもよい。
c. general_constraint_info()構文構造からバイトアライメント構文(すなわち、gci_alignment_zero_bitフィールドおよびその構文条件)を削除する。
d. 予約された制約バイトの総数および予約された制約バイトを信号通知する代わりに、予約された制約ビットの数および/または各予約された制約ビットの値を信号通知してもよい。
i. 一例において、GCI構文要素gci_num_reserved_bytesをgci_num_reserved_bitsに変更する。
ii. あるいは、さらに、変更されたGCI構文要素は、u(8)の代わりにu(11)を用いてコーディングされてもよい。
iii. あるいは、さらに、GCI構文要素gci_reserved_byte[i]を、u(8)の代わりにu(1)でコーディングされたgci_reserved_bit[i]に変更する。
4) 第1の問題を解決するために、PTL構文構造におけるGCIフィールドの条件付き信号通知について、例えば、第2の実施形態のように、以下のアプローチのうちの1つ以上を開示する。
a. general_tier_flagの直後に位置させる代わりに、general_constraint_info()構文構造および/または他のGCI関連構文要素(例えば、GCIフラグの存在)を、PTL構文構造におけるバイトアライメントチェック条件の直前(例えば、while(!byte_aligned())ループの直前)に移動させる。
i. 一例において、profile_tier_level()構文構造におけるgeneral_constraint_info()構文構造をptl_sublayer_level_present_flag[i]構文要素の直後に移動する。
b. general_constraint_info()構文構造の存在を条件づけるために、profile_tier_level()構文構造に新しい構文要素(例えば、gci_present_flagという1ビットフラグ)を追加する。
i. profileTierPresentFlagが1に等しいprofile_tier_level()構文構造においてgci_present_flagが1に等しい場合、general_constraint_info()構文構造はprofile_tier_level()構文構造に存在する。profile_tier_level()構文構造に対してgci_present_flagが0に等しい場合(profileTierPresentFlagが1に等しいかどうかに関わらず)、general_constraint_info()構文構造はprofile_tier_level()構文構造に存在しない。
ii. GCIフィールドの意味論が存在する場合(すなわち、gci_present_flagが1に等しい場合)にのみ適用されるように、その意味論を変更する。すなわち、gci_present_flagが0に等しい場合、プロファイル定義の一部として規定される制約などのような他の規定された制約に加えて、一般的な制約は適用されない。
iii. あるいは、さらに、新しい構文要素は、例えば、profileTierPresentFlagの値に従って、条件付きで信号通知されてもよい。
5) 第1の問題を解決するために、PTL構文構造におけるGCIフィールドの条件付き信号通知について、例えば、第5の実施形態のように、以下のアプローチのうちの1つ以上を開示する。
a. general_level_idcの前に置く代わりに、general_constraint_info()構文構造および/または他のGCI関連構文要素(例えば、GCIフラグの存在)をgeneral_level_idcの後に移動する。
i. profile_tier_level()構文構造におけるgeneral_constraint_info()構文構造をgeneral_level_idc構文要素の直後に移動する。
b. バイトアライメント構文(すなわち、gci_alignment_zero_bitフィールドおよびその構文条件)をgeneral_constraint_info()構文構造の末端、すなわち、GCI予約フィールドの前の代わりに、GCI予約フィールドの後に移動する。
c. 予約された制約バイトの総数および予約された制約バイトを信号通知する代わりに、予約された制約ビットの数および/または各予約された制約ビットの値を信号通知してもよい。
i. 一例において、GCI構文要素gci_num_reserved_bytesをgci_num_reserved_bitsに変更する。
ii. 代替的に、変更されたGCI構文要素は、u(8)の代わりにu(11)を用いてコーディングされてもよい。
iii. 代替的に、さらに、GCI構文要素gci_reserved_byte[i]を、u(8)の代わりにu(1)を用いてコーディングされたgci_reserved_bit[i]に変更する。
d. general_constraint_info()構文構造の先頭に、新しい構文要素(例えば、gci_present_flagという名前の1ビットフラグ)を追加する。
i. gci_present_flagが0に等しい場合、general_constraint_info()構文構造におけるバイトアライメントフィールド以外のすべてのフィールドはスキップされる。これらすべてのスキップされたフィールドの意味論は、それらが存在する場合(すなわち、gci_present_flagが1に等しい場合)にのみ適用されるように変更される。すなわち、gci_present_flagが0に等しい場合、プロファイル定義の一部として規定される制約などのような他の規定された制約に加えて、一般的な制約は適用されない。
6) 第1の問題を解決するために、PTL構文構造におけるGCIフィールドの条件付き信号通知について、例えば、第6の実施形態のように、以下のアプローチのうちの1つ以上を開示する。
a. general_level_idcの前に置く代わりに、general_constraint_info()構文構造および/または他のGCI関連構文要素(例えば、GCIフラグの存在)をgeneral_level_idcの後に移動する。
i. 一例において、profile_tier_level()構文構造におけるgeneral_constraint_info()構文構造をgeneral_level_idc構文要素の直後に移動する。
b. general_constraint_info()構文構造の存在を条件づけるために、profile_tier_level()構文構造に新しい構文要素(例えば、gci_present_flagという1ビットフラグ)を追加する。
i. profileTierPresentFlagが1に等しいprofile_tier_level()構文構造においてgci_present_flagが1に等しい場合、general_constraint_info()構文構造はprofile_tier_level()構文構造に存在する。profile_tier_level()構文構造に対してgci_present_flagが0に等しい場合(profileTierPresentFlagが1に等しいかどうかに関わらず)、general_constraint_info()構文構造はprofile_tier_level()構文構造に存在しない。
ii. すべてのGCI構文構造の意味論は、GCIフィールドの意味論が存在する場合(すなわち、gci_present_flagが1に等しい場合)にのみ適用されるように、変更される。すなわち、gci_present_flagが0に等しい場合、プロファイル定義の一部として規定される制約などのような他の規定された制約に加えて、一般的な制約は適用されない。
iii. ptl_num_sub_profileの開始位置がある場合、その位置をバイトアラインされた位置に保つため、general_constraint_info()構文構造の直後にバイトアライメントチェックを行い、バイトアライメントされていない場合、ptl_alignment_zero_bitをそれがバイトアライメントされるまで追加する。
c. general_constraint_info()構文構造からバイトアライメント構文(すなわち、gci_alignment_zero_bitフィールドおよびその構文条件)を削除する。
d. 予約された制約バイトの総数および予約された制約バイトを信号通知する代わりに、予約された制約ビットの数および/または各予約された制約ビットの値を信号通知してもよい。
i. 一例において、GCI構文要素gci_num_reserved_bytesをgci_num_reserved_bitsに変更する。
ii. 代替的に、変更された構文要素は、u(8)の代わりにu(11)を用いてコーディングされてもよい。
iii.代替的に、さらに、GCI構文要素gci_reserved_byte[i]を、u(8)の代わりにu(1)を用いてコーディングされたgci_reserved_bit[i]に変更する。
7) 第1の問題を解決するために、PTL構文構造におけるGCIフィールドの条件付き信号通知について、例えば、第5の実施形態のように、以下のアプローチの1つ以上を開示する。
a. general_level_idcの前に置く代わりに、general_constraint_info()構文構造および/または他のGCI関連構文要素(例えば、GCIフラグの存在)をgeneral_level_idcの後に移動する。
i. 一例において、profile_tier_level()構文構造におけるgeneral_constraint_info()構文構造をgeneral_level_idc構文要素の直後に移動する。
b. general_constraint_info()構文構造の存在を条件づけるために、profile_tier_level()構文構造に新しい構文要素(例えば、gci_present_flagという1ビットフラグ)を追加する。
i. profileTierPresentFlagが1に等しいprofile_tier_level()構文構造においてgci_present_flagが1に等しい場合、general_constraint_info()構文構造はprofile_tier_level()構文構造に存在する。profile_tier_level()構文構造に対してgci_present_flagが0に等しい場合(profileTierPresentFlagが1に等しいかどうかに関わらず)、general_constraint_info()構文構造はprofile_tier_level()構文構造に存在しない。
ii. すべてのGCI構文構造の意味論は、GCIフィールドの意味論が存在する場合(すなわち、gci_present_flagが1に等しい場合)にのみ適用されるように、変更される。すなわち、gci_present_flagが0に等しい場合、プロファイル定義の一部として規定される制約などのような他の規定された制約に加えて、一般的な制約は適用されない。
iii. ptl_num_sub_profileの開始位置がある場合、その位置をバイトアラインされた位置に保つため、general_constraint_info()構文構造の直後にバイトアライメントチェックを追加し、バイトアライメントされていない場合、ptl_alignment_zero_bitをそれがバイトアライメントされるまで追加する。
8) max_bitdepth_minus8_constraint_idcの意味論を以下のように変更する。max_bitdepth_minus8_constraint_idcが8未満である場合、sps_bitdepth_minus8が0からmax_bitdepth_minus8_constraint_idcまでの範囲内にあることを規定する。max_bitdepth_minus8_constraint_idcが8以上である場合には制約を課さない。
a. あるいは、上記「制約を課さない」を「そのような制約を課さない」に変更する。
9) max_chroma_format_constraint_idcの意味論を以下のように変更する。max_chroma_format_constraint_idcが2未満である場合、sps_chroma_format_idcが0からmax_chroma_format_constraint_idcまでの範囲内にあることを規定する。max_chroma_format_constraint_idcが2に等しい場合には制約を課さない。
a. あるいは、上記「制約を課さない」を「そのような制約を課さない」に変更する。
【0067】
【0068】
6.1. 実施形態1
本実施形態は、項目1および小項目に対するものである。
構文構造profile_tier_level()は、以下のように変更される。
【0069】
【表9】
そして、意味論は、以下のように変更される。
…
【化3】
構文構造general_constraint_info ()は、以下のように変更される。
【表10】
そして、意味論は、以下のように変更される。
…
...
【化4】
【0070】
6.2. 実施形態2
本実施形態は、項目2および小項目に対するものである。
構文構造profile_tier_level()は、以下のように変更される。
【表11】
そして、意味論は、以下のように変更される。
…
【化5】
【0071】
6.3. 実施形態3
本実施形態は、項目3および小項目に対するものである。
構文構造profile_tier_level()は、以下のように変更される。
【表12】
そして、意味論は、以下のように変更される。
…
【化6】
一例において、代替的に、さらに、構文構造general_constraint_info()は、以下のように変更される。
【表13】
そして、意味論は、以下のように変更される。
...
【化7】
【0072】
6.4. 実施形態4
本実施形態は、項目4および小項目に対するものである。
構文構造profile_tier_level()は、以下のように変更される。
【表14】
そして、意味論は、以下のように変更される。
…
【化8】
【0073】
6.5. 実施形態5
本実施形態は、項目5および小項目に対するものである。
構文構造profile_tier_level()は、以下のように変更される。
【表15】
構文構造general_constraint_info()は、以下のように変更される。
【表16】
【表17】
【表18】
そして、意味論は、以下のように変更される。
…
【化9】
...
【化10】
【0074】
6.6. 実施形態6
本実施形態は、項目6および小項目に対するものである。
構文構造profile_tier_level()は、以下のように変更される。
【表19】
そして、意味論は、以下のように変更される。
…
【化11】
構文構造general_constraint_info()は、以下のように変更される。
【表20】
そして、意味論は、以下のように変更される。
…
...
【化12】
【0075】
6.7. 実施形態7
本実施形態は、項目7および小項目に対するものである。
構文構造profile_tier_level()は、以下のように変更される。
【表21】
そして、意味論は、以下のように変更される。
…
【化13】
...
【0076】
図1は、本明細書で開示される様々な技術が実装され得る例示的な映像処理システム1000を示すブロック図である。様々な実装形態は、システム1000のモジュールの一部または全部を含んでもよい。システム1000は、映像コンテンツを受信するための入力部1002を含んでもよい。映像コンテンツは、未加工または非圧縮フォーマット、例えば、8または10ビットのマルチモジュール画素値で受信されてもよく、または圧縮または符号化されたフォーマットで受信されてもよい。入力部1002は、ネットワークインターフェース、周辺バスインターフェース、または記憶インターフェースを表してもよい。ネットワークインターフェースの例は、イーサネット(登録商標)、PON(Passive Optical Network)等の有線インターフェース、およびWi-Fi(登録商標)またはセルラーインターフェース等の無線インターフェースを含む。
【0077】
システム1000は、本明細書に記載される様々なコーディングするまたは符号化する方法を実装することができるコーディングするモジュール1004を含んでもよい。コーディングモジュール1004は、入力部1002からの映像の平均ビットレートをコーディングモジュール1004の出力に低減し、映像のコーディングされた表現を生成してもよい。従って、このコーディング技術は、映像圧縮または映像コード変換技術と呼ばれることがある。コーディングモジュール1004の出力は、コンポーネント1006によって表されるように、記憶されてもよいし、接続された通信を介して送信されてもよい。入力部1002において受信された、記憶された、または通信された映像のビットストリーム(またはコード化された)表現は、コンポーネント1008によって使用されて、表示インターフェース部1010に送信される画素値、または表示可能な映像を生成してもよい。ビットストリーム表現からユーザが見ることができる映像を生成する処理は、映像伸張(映像展開)と呼ばれることがある。さらに、特定の映像処理動作を「コーディング」動作またはツールと呼ぶが、コーディングツールまたは動作は、エンコーダおよびそれに対応する、コーディングの結果を逆にするデコーデイングツールまたは動作が、デコーダによって行われることが理解されよう。
【0078】
周辺バスインターフェースまたは表示インターフェースの例は、ユニバーサルシリアルバス(USB)またはハイビジョンマルチメディアインターフェース(HDMI(登録商標))またはディスプレイポート等を含んでもよい。ストレージインターフェースの例は、SATA(Serial Advanced Technology Attachment)、PCI、IDEインターフェース等を含む。本明細書に記載される技術は、携帯電話、ノートパソコン、スマートフォン、またはデジタルデータ処理および/または映像表示を実施可能な他のデバイス等の様々な電子デバイスに実施されてもよい。
【0079】
図2は、映像処理装置2000のブロック図である。装置2000は、本明細書に記載の方法の1または複数を実装するために使用されてもよい。装置2000は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信機等に実施されてもよい。装置2000は、1つ以上の処理装置2002と、1つ以上のメモリ2004と、映像処理ハードウェア2006と、を含んでもよい。1または複数のプロセッサ2002は、本明細書に記載される1または複数の方法(例えば、
図6から
図9に記載)を実装するように構成されてもよい。メモリ(複数可)2004は、本明細書で説明される方法および技術を実装するために使用されるデータおよびコードを記憶するために使用してもよい。映像処理ハードウェア2006は、本明細書に記載される技術をハードウェア回路にて実装するために使用してもよい。いくつかの実施形態において、ハードウェア2006は、1つ以上の処理装置2002、例えばグラフィック処理装置内に部分的にまたは全体が含まれてもよい。
【0080】
図3は、本開示の技法を利用し得る例示的な映像コーディングシステム100を示すブロック図である。
図3に示すように、映像コーディングシステム100は、送信元デバイス110と、送信先デバイス120と、を備えてもよい。送信元装置110は、符号化された映像データを生成するものであり、映像符号化機器とも呼ばれ得る。送信先デバイス120は、送信元デバイス110によって生成された符号化映像データを復号化してよく、映像復号化デバイスと呼ばれ得る。送信元デバイス110は、映像ソース112と、映像エンコーダ114と、入出力(I/O)インターフェース116と、を備えてもよい。
【0081】
映像ソース112は、映像キャプチャデバイスなどのソース、映像コンテンツプロバイダからの映像データを受信するためのインターフェース、および/または映像データを生成するためのコンピュータグラフィックスシステム、またはこれらのソースの組み合わせを含んでもよい。映像データは、1または複数のピクチャを含んでもよい。映像エンコーダ114は、映像ソース112からの映像データを符号化し、ビットストリームを生成する。ビットストリームは、映像データのコーディング表現を形成するビットのシーケンスを含んでもよい。ビットストリームは、コーディングされたピクチャおよび関連付けられたデータを含んでもよい。コーディングされたピクチャは、ピクチャのコーディング表現である。関連付けられたデータは、シーケンスパラメータセット、ピクチャパラメータセット、および他の構文構造を含んでもよい。I/Oインターフェース116は、変復調器(モデム)および/または送信機を含んでもよい。符号化された映像データは、ネットワーク130aを介して、I/Oインターフェース116を介して送信先デバイス120に直接送信されてよい。エンコードされた映像データは、送信先デバイス120がアクセスするために、記録媒体/サーバ130bに記憶してもよい。
【0082】
送信先デバイス120は、I/Oインターフェース126、映像デコーダ124、および表示装置122を含んでもよい。
【0083】
I/Oインターフェース126は、受信機および/またはモデムを含んでもよい。I/Oインターフェース126は、送信元デバイス110または記憶媒体/サーバ130bから符号化された映像データを取得してもよい。映像デコーダ124は、符号化された映像データを復号してもよい。表示デバイス122は、復号された映像データをユーザに表示してもよい。表示装置122は、送信先デバイス120と一体化されてもよく、または外部表示装置とインターフェースで接続するように構成される送信先デバイス120の外部にあってもよい。
【0084】
映像エンコーダ114および映像デコーダ124は、高効率映像符号化(HEVC)規格、汎用映像符号化(VVM)規格、および他の現在のおよび/またはさらなる規格等の映像圧縮規格に従って動作してもよい。
【0085】
図4は、映像エンコーダ200の一例を示すブロック図であり、この映像エンコーダ200は、
図3に示されるシステム100における映像エンコーダ114であってもよい。
【0086】
映像エンコーダ200は、本開示の技術のいずれかまたは全部を行うように構成されてもよい。
図4の実施例において、映像エンコーダ200は、複数の機能モジュールを含む。本開示で説明される技法は、映像エンコーダ200の様々なコンポーネント間で共有されてもよい。いくつかの例では、プロセッサは、本開示で説明される技術のいずれかまたはすべてを行うように構成してもよい。
【0087】
映像エンコーダ200の機能性コンポーネントは、分割部201、プレディケーション部202を含んでもよく、予測部202は、モード選択部203、動き推定部204、動き補償部205、およびイントラ予測部206、残差生成部207、変換部208、量子化部209、逆量子化部210、逆変換部211、再構成部212、バッファ213、およびエントロピー符号化部214を含んでもよい。
【0088】
他の例において、映像エンコーダ200は、より多くの、より少ない、または異なる機能コンポーネントを含んでもよい。一例において、予測部202は、IBC(Intra Block Copy)部を含んでもよい。IBC部は、少なくとも1つの参照ピクチャが現在の映像ブロックが位置するピクチャであるIBCモードにおいて予測を行うことができる。
【0089】
さらに、動き推定部204および動き補償部205などのいくつかのコンポーネントは、高度に統合されてもよいが、説明のために、
図4の例においては個別に表現されている。
【0090】
分割部201は、ピクチャを1つ以上の映像ブロックに分割してもよい。映像エンコーダ200および映像デコーダ300は、様々な映像ブロックサイズをサポートしてもよい。
【0091】
モード選択部203は、例えば、誤りの結果に基づいて、イントラまたはインターによるコーディングモードのうちの1つを選択し、得られたイントラまたはインターコーディングされたブロックを残差生成部207に供給し、残差ブロックデータを生成して再構成部212に供給し、符号化されたブロックを参照ピクチャとして使用するために再構成してもよい。いくつかの例において、モード選択部203は、インター予測信号およびイントラ予測信号に基づいて予測を行うCIIP(Combination of Intra and Inter Prediction)モードを選択してもよい。モード選択部203は、インター予測の場合、ブロックのために動きベクトルの解像度(例えば、サブピクセルまたは整数ピクセル精度)を選択してもよい。
【0092】
現在の映像ブロックに対してインター予測を実行するために、動き推定部204は、バッファ213からの1つ以上の参照フレームと現在の映像ブロックとを比較することにより、現在の映像ブロックのために動き情報を生成してもよい。動き補償部205は、現在の映像ブロックに関連付けられたピクチャ以外のバッファ213からのピクチャの動き情報および復号されたサンプルに基づいて、現在の映像ブロックに対する予測映像ブロックを判定してもよい。
【0093】
動き推定部204および動き補償部205は、現在の映像ブロックがIスライスであるか、Pスライスであるか、またはBスライスであるかによって、例えば、現在の映像ブロックに対して異なる動作を行ってもよい。
【0094】
いくつかの例において、動き推定部204は、現在の映像ブロックに対して単一方向予測を行い、動き推定部204は、現在の映像ブロックに対して、参照映像ブロック用のリスト0またはリスト1の参照ピクチャを検索してもよい。そして、動き推定部204は、参照映像ブロックを含むリスト0またはリスト1における参照ピクチャを示す参照インデックスと、現在の映像ブロックと参照映像ブロックとの間の空間的変位を示す動きベクトルと、を生成する。動き推定部204は、参照インデックス、予測方向インジケータ、および動きベクトルを、現在の映像ブロックの動き情報として出力してもよい。動き補償部205は、現在の映像ブロックの動き情報が示す参照映像ブロックに基づいて、現在のブロックの予測映像ブロックを生成してもよい。
【0095】
他の例において、動き推定部204は、現在の映像ブロックを双方向予測してもよく、動き推定部204は、リスト0における参照ピクチャの中から現在の映像ブロックを求めるための参照映像ブロックを検索してもよく、また、リスト1における参照ピクチャの中から現在の映像ブロックを求めるための別の参照映像ブロックを検索してもよい。そして、動き推定部204は、参照映像ブロックを含むリスト0およびリスト1における参照ピクチャを示す参照インデックスと、参照映像ブロックと現在の映像ブロックとの間の空間的変位を示す動きベクトルとを生成してもよい。動き推定部204は、現在の映像ブロックの参照インデックスおよび動きベクトルを、現在の映像ブロックの動き情報として出力してもよい。動き補償部205は、現在の映像ブロックの動き情報が示す参照映像ブロックに基づいて、現在の映像ブロックの予測映像ブロックを生成してもよい。
【0096】
いくつかの例において、動き推定部204は、デコーダの復号処理のために、動き情報のフルセットを出力してもよい。
【0097】
いくつかの例では、動き推定部204は、現在の映像に対する動き情報のフルセットを出力しなくてもよい。むしろ、動き推定部204は、別の映像ブロックの動き情報を参照して、現在の映像ブロックの動き情報を信号通知してもよい。例えば、動き推定部204は、現在の映像ブロックの動き情報が近隣の映像ブロックの動き情報に十分に類似していることを判定してもよい。
【0098】
一例において、動き推定部204は、現在の映像ブロックに関連付けられた構文構造において、現在の映像ブロックが別の映像ブロックと同じ動き情報を有することを映像デコーダ300に示す値を示してもよい。
【0099】
他の例において、動き推定部204は、現在の映像ブロックに関連付けられた構文構造において、別の映像ブロックと、動きベクトル差分(MVD;Motion Vector Difference)とを識別してもよい。動きベクトルの差分は、現在の映像ブロックの動きベクトルと、指定された映像ブロックの動きベクトルとの差分を示す。映像デコーダ300は、指定された映像ブロックの動きベクトルと動きベクトル差分とを使用して、現在の映像ブロックの動きベクトルを決定してもよい。
【0100】
上述したように、映像エンコーダ200は、動きベクトルを予測的に信号通知してもよい。映像エンコーダ200によって実装され得る予測信号通知技法の2つの例は、AMVP(Advanced Motion Vector Prediction)およびマージモード信号通知を含む。
【0101】
イントラ予測部206は、現在の映像ブロックに対してイントラ予測を行ってもよい。イントラ予測部206が現在の映像ブロックをイントラ予測する場合、イントラ予測部206は、同じピクチャにおける他の映像ブロックの復号されたサンプルに基づいて、現在の映像ブロックのための予測データを生成してもよい。現在の映像ブロックに対する予測データは、予測された映像ブロックおよび様々な構文要素を含んでもよい。
【0102】
残差生成部207は、現在の映像ブロックから現在の映像ブロックの予測された映像ブロックを減算することによって(例えば、マイナス符号によって示されている)、現在の映像ブロックに対する残差データを生成してもよい。現在の映像ブロックの残差データは、現在の映像ブロックにおけるサンプルの異なるサンプル成分に対応する残差映像ブロックを含んでもよい。
【0103】
他の例において、例えば、スキップモードにおいて、現在の映像ブロックに対する残差データがなくてもよく、残差生成部207は、減算動作を行わなくてもよい。
【0104】
変換処理部208は、現在の映像ブロックに関連付けられた残差映像ブロックに1つ以上の変換を適用することによって、現在の映像ブロックに対する1つ以上の変換係数映像ブロックを生成してもよい。
【0105】
変換処理部208が現在の映像ブロックに関連付けられた変換係数映像ブロックを生成した後、量子化部209は、現在の映像ブロックに関連付けられた1つ以上の量子化パラメータ(QP:Quantization Parameter)値に基づいて、現在の映像ブロックに関連付けられた変換係数映像ブロックを量子化してもよい。
【0106】
逆量子化部210および逆変換部211は、変換係数映像ブロックに逆量子化および逆変換をそれぞれ適用し、変換係数映像ブロックから残差映像ブロックを再構成してもよい。再構成部212は、予測部202によって生成された1つ以上の予測映像ブロックから対応するサンプルに再構成された残差映像ブロックを追加して、バッファ213に格納するための現在のブロックに関連付けられた再構成された映像ブロックを生成してもよい。
【0107】
再構成部212が映像ブロックを再構成した後、映像ブロックにおける映像ブロッキングアーチファクトを縮小するために、ループフィルタリング動作が行われてもよい。
【0108】
エントロピー符号化部214は、映像エンコーダ200の他の機能コンポーネントからデータを受信してもよい。エントロピー符号化部214がデータを受信すると、エントロピー符号化部214は、1つ以上のエントロピー符号化動作を行い、エントロピー符号化されたデータを生成し、エントロピー符号化されたデータを含むビットストリームを出力してもよい。
【0109】
図5は、映像デコーダ300の一例を示すブロック図であり、この映像デコーダ300は、
図3に示すシステム100における映像デコーダ114であってもよい。
【0110】
映像デコーダ300は、本開示の技術のいずれかまたは全てを行うように構成されてもよい。
図5の実施例において、映像デコーダ300は、複数の機能コンポーネントを含む。本開示で説明される技法は、映像デコーダ300の様々なコンポーネント間で共有されてもよい。いくつかの例では、プロセッサは、本開示で説明される技術のいずれかまたはすべてを行うように構成してもよい。
【0111】
図5の実施例において、映像デコーダ300は、エントロピー復号部301、動き補償部302、イントラ予測部303、逆量子化部304、逆変換部305、および再構成部306、並びにバッファ307を含む。映像デコーダ300は、いくつかの例では、映像エンコーダ200(
図4)に関して説明した符号化パスとほぼ逆の復号パスを行ってもよい。
【0112】
エントロピー復号部301は、符号化されたビットストリームを取り出す。符号化されたビットストリームは、エントロピー符号化された映像データ(例えば、映像データの符号化されたブロック)を含んでもよい。エントロピー復号部301は、エントロピー符号化された映像データを復号し、エントロピー復号された映像データから、動き補償部302は、動きベクトル、動きベクトル精度、参照ピクチャリストインデックス、および他の動き情報を含む動き情報を決定してもよい。動き補償部302は、例えば、AMVPおよびマージモードを行うことで、このような情報を判定してもよい。
【0113】
動き補償部302は、動き補償されたブロックを生成してもよく、場合によっては、補間フィルタに基づいて補間を行う。構文要素には、サブピクセルの精度で使用される補間フィルタに対する識別子が含まれてもよい。
【0114】
動き補償部302は、映像ブロックのエンコーディング中に映像エンコーダ20によって使用されるような補間フィルタを使用して、参照ブロックのサブ整数ピクセルのための補間値を計算してもよい。動き補償部302は、受信した構文情報に基づいて、映像エンコーダ200が使用する補間フィルタを決定し、補間フィルタを使用して予測ブロックを生成してもよい。
【0115】
動き補償部302は、符号化された映像シーケンスのフレームおよび/またはスライスを符号化するために使用されるブロックのサイズを判定するための構文情報、符号化された映像シーケンスのピクチャの各マクロブロックがどのように分割されるかを記述する分割情報、各分割がどのように符号化されるかを示すモード、各インター符号化されたブロックに対する1つ以上の参照フレーム(および参照フレームリスト)、および符号化された映像シーケンスをデコードするための他の情報のうちのいくつかを使用してもよい。
【0116】
イントラ予測部303は、例えば、ビットストリームにおいて受信したイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成してもよい。逆量子化部303は、ビットストリームに提供され、エントロピー復号部301によって復号された量子化された映像ブロック係数を逆量子化(すなわち、逆量子化)する。逆変換部303は、逆変換を適用する。
【0117】
再構成部306は、残差ブロックと、動き補償部202またはイントラ予測部303によって生成された対応する予測ブロックとを合計し、復号されたブロックを形成してもよい。所望であれば、ブロックアーチファクトを除去するために、復号されたブロックをフィルタリングするためにデブロッキングフィルタを適用してもよい。デコードされた映像ブロックは、バッファ307に記憶され、バッファ307は、後続の動き補償/イントラ予測のために参照ブロックを提供し、表示デバイスに表示するためにデコードされた映像を生成する。
【0118】
図6~
図15は、上述した技術的解決策を実装することができる例示的な方法を示し、例えば、この実施形態は
図1~
図5に示す。
【0119】
図6は、映像処理の方法600の一例を示すフローチャートを示す。この方法600は、動作610において、プロファイルティアレベルの構文構造における構文構造が構文要素の後にあることを規定する規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、この構文構造は、このビットストリームのための一般的な制約情報(GCI)に関する情報を含み、この構文要素は、このプロファイルティアレベルの構文構造に関連付けられた出力レイヤセットが適合するレベルを示す。
【0120】
図7は、映像処理の方法700の一例を示すフローチャートを示す。方法700は、動作710において、一般的な制約情報(GCI)構文構造のバイトアライメント構文が1つ以上のGCI予約フィールドの後であることを規定する規則に従って、1つ以上のピクチャを有する映像とこの映像のビットストリームとの間で変換を行うことを含み、バイトアライメント構文は、ビットストリームにおける現在の位置が、ビットストリームの第1のビットの位置から8ビットの整数倍であるかどうかを示し、GCI構文構造はGCI関連の構文要素を含む。
【0121】
図8は、映像処理の方法800の一例を示すフローチャートを示す。方法800は、動作810において、プロファイルティアレベルの構文構造における構文構造がレベル情報の指示の後にあることを規定する規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、この構文構造は、一般的な制約情報(GCI)に関する情報を含み、レベル情報の指示が相互運用性の指標を規定する。
【0122】
図9は、映像処理の方法900の一例を示すフローチャートを示す。方法900は、動作910において、プロファイルティアレベルの構文構造における構文要素が、このプロファイルティアレベルの構文構造に一般的な制約情報(GCI)構文構造が含まれているかどうかを示すことを規定する規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含む。
【0123】
図10は、映像処理の方法1000の一例を示すフローチャートを示す。方法1000は、動作1010において、バイトアライメント構文が、プロファイルティアレベル構文構造に存在する一般的な制約情報(GCI)構文構造から除外されることを規定する規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、このバイトアライメント構文は、ビットストリームにおける現在の位置が、このビットストリームの第1のビットの位置から8ビットの整数倍であるかどうかを示し、このGCI構文構造は、GCI関連の構文要素を含む。
【0124】
図11は、映像処理の方法1100の一例を示すフローチャートを示す。方法1100は、動作1110において、一般的な制約情報(GCI)構文構造が、プロファイルティアレベル構文構造におけるバイトアライメントチェック条件の直前にあることを規定する規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、このGCI構文構造は、GCI関連の構文要素を含み、このバイトアライメントチェック条件は、ビットストリームにおける現在の位置が、このビットストリームの第1のビットの位置から8ビットの整数倍であるかどうかをチェックする。
【0125】
図12は、映像処理の方法1200の一例を示すフローチャートを示す。方法1200は、動作1210において、一般的な制約情報(GCI)構文要素に関連付けられた複数の予約された制約ビットのうちの多くがこのビットストリームに含まれることを規定する規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含む。
【0126】
図13は、映像処理の方法1300の一例を示すフローチャートを示す。方法1300は、動作1310において、一般的な制約情報(GCI)構文構造の先頭にGCI構文要素が含まれることを規定する規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、このGCI構文要素は、このGCI構文構造に1つ以上のGCI構文要素が含まれるかどうかを示す。
【0127】
図14は、映像処理の方法1400の一例を示すフローチャートを示す。方法1400は、動作1410において、構文要素に対する制約を規定する規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、この構文要素は、このビットストリームにおけるこの映像を表すために使用されるビット深度に対応する。
【0128】
図15は、映像処理の方法1500の一例を示すフローチャートを示す。方法1500は、動作1510において、構文要素に対する制約を規定する規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、この構文要素は、映像の彩度フォーマットに対応する。
【0129】
以下の解決策は、前章(例えば、項目1~9)で論じた技術の例示的な実施形態を示す。
【0130】
次に、いくつかの実施形態において好適な解決策を列挙する。
【0131】
A1.規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、この規則は、プロファイルティアレベルの構文構造における構文構造が構文要素の後にあることを規定し、この構文構造は、このビットストリームのための一般的な制約情報(GCI)に関する情報を含み、この構文要素は、このプロファイルティアレベルの構文構造に関連付けられた出力レイヤセットが適合するレベルを示す、映像処理方法。
【0132】
A2.前記GCIに関連する情報は、1つ以上のGCIフラグが示されているかどうかを示す、解決策A1に記載の方法。
【0133】
A3.前記構文構造は、前記構文要素の直後にある、解決策A1またはA2に記載の方法。
【0134】
A4.前記構文構造は、general_constraint_info()構文構造であり、前記構文要素は、general_level_idc構文要素である、解決策A1~A3のいずれかに記載の方法。
【0135】
A5.規則に従って、1つ以上のピクチャを有する映像とこの映像のビットストリームとの間で変換を行うことを含み、前記規則は、一般的な制約情報(GCI)構文構造のバイトアライメント構文が1つ以上のGCI予約フィールドの後であることを規定し、バイトアライメント構文は、ビットストリーム内の現在の位置がビットストリームの第1のビットの位置から8ビットの整数倍であるかどうかを示し、GCI構文構造はGCI関連の構文要素を含む、映像処理方法。
【0136】
A6.前記バイトアライメント構文は、前記GCI構文構造の最後にある、解決策A5に記載の方法。
【0137】
A7.前記バイトアライメント構文は、gci_alignment_zero_bitフィールドおよびその構文条件を含み、前記GCI構文構造は、general_constraint_info()構文構造である、解決策A5またはA6に記載の方法。
【0138】
A8.規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、この規則は、プロファイルティアレベルの構文構造における構文構造がレベル情報の表示の後にあることを規定し、この構文構造は、一般的な制約情報(GCI)に関する情報を含み、レベル情報の指示が相互運用性の指標を規定する、映像処理方法。
【0139】
A9.前記構文構造はgeneral_constraint_info()構文構造であり、前記指示はgeneral_sub_profile_idc[i]構文要素である、解決策A8に記載の方法。
【0140】
A10.規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、規則は、プロファイルティアレベルの構文構造における構文要素は、一般的な制約情報(GCI)構文構造がこのプロファイルティアレベルの構文構造に含まれているかどうかを示すことを規定する、映像処理方法。
【0141】
A11.前記構文要素は、第一のフラグである、解決策A10に記載の方法。
【0142】
A12.前記第1のフラグが1に等しく、第2のフラグが1に等しいことは、前記GCI構文構造が前記プロファイルティアレベル構文構造に存在することを示す、解決策A11に記載の方法。
【0143】
A13.第2のフラグがprofileTierPresentFlagである、解決策12に記載の方法。
【0144】
A14.前記第1のフラグがゼロに等しいことは、前記GCI構文構造が前記プロファイルティアレベル構文構造に存在しないことを示す、解決策A11に記載の方法。
【0145】
A15.前記GCI構文構造は、1つ以上のGCIフィールドを含み、前記1つ以上のGCIフィールドの意味論は、前記第1のフラグが1に等しい場合にのみ適用される、解決策A11に記載の方法。
【0146】
A16.前記第1のフラグを前記プロファイルティアレベルの構文構造に含めることは、第2のフラグの値に基づく、解決策A11に記載の方法。
【0147】
A17.第2のフラグがprofileTierPresentFlagである、解決策A16に記載の方法。
【0148】
A18.第1のフラグがgci_present_flagである、解決策A11からA17のいずれかに記載の方法。
【0149】
A19.規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、この規則は、バイトアライメント構文が、プロファイルティアレベル構文構造に存在する一般的な制約情報(GCI)構文構造から除外されることを規定し、このバイトアライメント構文は、ビットストリームにおける現在の位置が、このビットストリームの第1のビットの位置から8ビットの整数倍であるかどうかを示し、このGCI構文構造は、GCI関連の構文要素を含む、映像処理方法。
【0150】
A20.前記バイトアライメント構文は、gci_alignment_zero_bitフィールドおよびその構文条件を含み、前記GCI構文構造は、general_constraint_info()構文構造である、解決策A19に記載の方法。
【0151】
A21.前記規則は、GCI関連の構文要素に関連付けられた複数の予約済み制約ビットのうちの多くが前記ビットストリームに含まれることをさらに規定する、解決策A19に記載の方法。
【0152】
A22.前記規則は、複数の予約された制約ビットの各々の値が前記ビットストリームに含まれることをさらに規定する、解決策A21に記載の方法。
【0153】
A23.前記GCI構文要素がgci_num_reserved_bitsである、解決策A22に記載の方法。
【0154】
A24.前記構文要素は、符号なしの11ビット整数としてコーディングされる、解決策A22に記載の方法。
【0155】
A25.前記複数個の予約された制約ビットの各々の値は、符号なし1ビット整数としてコーディングされる、解決策A22に記載の方法。
【0156】
A26.規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、この規則は、一般的な制約情報(GCI)構文構造が、プロファイルティアレベル構文構造におけるバイトアライメントチェック条件の直前にあることを規定し、このGCI構文構造は、GCI関連の構文要素を含み、このバイトアライメントチェック条件は、ビットストリームにおける現在の位置が、このビットストリームの第1のビットの位置から8ビットの整数倍であるかどうかをチェックする、映像処理方法。
【0157】
A27.前記GCI構文構造は、general_constraint_info()構文構造であり、前記バイトアライメントチェック条件は、byte_aligned()構文要素に基づく、解決策A26に記載の方法。
【0158】
A28.前記変換は、前記ビットストリームから前記映像を復号することを含む、解決策A1~A27のいずれかに記載の方法。
【0159】
A29.前記変換は、前記ビットストリームに前記映像を符号化することを含む、解決策A1~A27のいずれかに記載の方法。
【0160】
A30.映像を表すビットストリームをコンピュータ読み取り可能な記録媒体に記憶する方法であって、解決策A1~A27のいずれか1項以上に記載の方法に従って、前記映像からビットストリームを生成し、前記ビットストリームを前記コンピュータ読み取り可能な記録媒体に記憶させることを含む、方法。
【0161】
A31.解決策A1~A30のいずれか1つ以上に記載の方法を実装するように構成された処理装置を備える映像処理装置。
【0162】
A32.命令が記憶されたコンピュータ可読媒体であって、前記命令が実行されると、処理装置に、解決策A1~A30に1つ以上記載の方法を実装させる、コンピュータ可読媒体。
【0163】
A33.解決策A1~A30のいずれか1つ以上により生成された前記ビットストリームを記憶するコンピュータ可読媒体。
【0164】
A34.解決策A1~A30のいずれか1つ以上に記載の方法を実装するように構成された、ビットストリームを記憶するための映像処理装置。
【0165】
次に、いくつかの実施形態において好適な別の解決策を列挙する。
【0166】
B1.規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、この規則は、一般的な制約情報(GCI)構文要素に関連付けられた複数の予約された制約ビットのうちの多くがこのビットストリームに含まれることを規定する、映像処理方法。
【0167】
B2.前記規則は、複数の予約された制約ビットの各々の値が前記ビットストリームに含まれることをさらに規定する、解決策B1に記載の方法。
【0168】
B3.前記構文要素は、符号なし11ビット整数としてコーディングされる、解決策B2に記載の方法。
【0169】
B4.前記複数の予約された制約ビットの各々の値は、符号なしの1ビット整数としてコーディングされる、解決策B2に記載の方法。
【0170】
B5.前記GCI構文要素がgci_num_reserved_bitsである、解決策B2に記載の方法。
【0171】
B6.規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、この規則は、一般的な制約情報(GCI)構文構造の先頭にGCI構文要素が含まれることを規定し、このGCI構文要素は、このGCI構文構造に1つ以上のGCI構文要素が含まれるかどうかを示す、映像処理方法。
【0172】
B7.前記GCI構文要素がゼロに等しいことは、前記1つ以上のGCI構文要素が前記GCI構文構造に含まれていないことを示す、解決策B6に記載の方法。
【0173】
B8.前記1つ以上のGCI構文要素は、バイトアライメントフィールドを除外する、解決策B7に記載の方法。
【0174】
B9.GCI構文構造は制約を課さない、解決策B7に記載の方法。
【0175】
B10.第2の構文要素がGCI構文構造の後にあり、第2の構文要素が多数の構文要素を規定し、それらの各々が相互運用性指標を規定する、解決策B6に記載の方法。
【0176】
B11.前記第2の構文要素は、前記GCI構文構造の直後にある、解決策B10に記載の方法。
【0177】
B12.第2の構文要素がビットストリームに存在することに呼応して、第2の構文要素のバイトアライメントチェックを追加する、解決策B10またはB11に記載の方法。
【0178】
B13.第2の構文要素がバイトアラインされていないことに呼応して、1つ以上のアライメントビットが追加され、この1つ以上のアライメントビットを追加することによって、第2の構文要素がバイトアラインされる、解決策B12に記載の方法。
【0179】
B14.前記1つ以上のアライメントビットは、1つ以上のptl_alignment_zero_bitを含む、解決策B13に記載の方法。
【0180】
B15.第2の構文要素はptl_num_sub_profilesである、解決策B10~B14のいずれかに記載の方法。
【0181】
B16.前記GCI構文要素が1に等しいことは、前記1つ以上のGCI構文要素が前記GCI構文構造に含まれていることを示す、解決策B6に記載の方法。
【0182】
B17.第1のGCI構文要素はgci_present_flagであり、GCI構文構造はgeneral_constraint_info()構文構造である、解決策B6~B16のいずれかに記載の方法。
【0183】
B18.規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、この規則は、構文要素に対する制約を規定し、この構文要素は、このビットストリームにおけるこの映像を表すために使用されるビット深度に対応する、映像処理方法。
【0184】
B19.前記制約は、前記構文要素が、前記構文要素の値に1を加えたものに等しい最大値よりも小さい非負の整数であることを規定する、解決策B18に記載の方法。
【0185】
B20.前記構文要素が8未満であることは、前記制約を課す、解決策B19に記載の方法。
【0186】
B21.前記構文要素が8以上であることは、前記制約を課さない、解決策B19に記載の方法。
【0187】
B22.前記構文要素は、max_bitdepth_minus8_constraint_idcである、解決策B18~B21のいずれかに記載の方法。
【0188】
B23.規則に従って、1つ以上のピクチャを含む映像とこの映像のビットストリームとの間で変換を行うことを含み、この規則は、構文要素に対する制約を規定し、この構文要素は、この映像の彩度フォーマットに対応する、映像処理方法。
【0189】
B24.前記制約は、前記構文要素が、前記構文要素の値に1を加えたものに等しい最大値よりも小さい非負の整数であることを規定する、解決策B23に記載の方法。
【0190】
B25.前記構文要素が2未満であることは、前記制約を課す、解決策B24に記載の方法。
【0191】
B26.前記構文要素が2に等しいことは、前記制約を課さない、解決策B24に記載の方法。
【0192】
B27.前記構文要素は、max_chroma_format_constraint_idcである、解決策B23~B26のいずれかに記載の方法。
【0193】
B28.前記変換は、前記ビットストリームから前記映像をデコーディングすることを含む、解決策B1~B27のいずれかに記載の方法。
【0194】
B29.前記変換は、前記ビットストリームに前記映像をエンコーディングすることを含む、解決策B1~B27のいずれかに記載の方法。
【0195】
B30.映像を表すビットストリームをコンピュータ読み取り可能な記録媒体に記憶する方法であって、解決策B1~B27のいずれか1項以上に記載の方法に従って、前記映像からビットストリームを生成し、前記ビットストリームを前記コンピュータ読み取り可能な記録媒体に記憶させることを含む、方法。
【0196】
B31.解決策B1~B30のいずれか1つ以上に記載の方法を実装するように構成されたプロセッサを備える、映像処理装置。
【0197】
B32.命令が記憶されたコンピュータ可読媒体であって、前記命令が実行されると、処理装置に、解決策B1~B30に1つ以上記載の方法を実装させる、コンピュータ可読媒体。
【0198】
B33.解決策B1~B30のいずれか1つ以上により生成された前記ビットストリームを記憶するコンピュータ可読媒体。
【0199】
B34.解決策B1~B30のいずれか1つ以上に記載の方法を実装するように構成された、ビットストリームを記憶するための映像処理装置。
【0200】
次に、いくつかの実施形態において好適なさらに別の解決策を列挙する。
【0201】
P1.映像と映像のコーディングされた表現との間で変換を行うことを含み、前記コーディングされた表現はフォーマット規則に準拠し、前記フォーマット規則は、一般的な制約情報構文(GCI)フィールドが前記コーディングされた表現のどこでどのように含まれるか、またはGCIフィールドが前記コーディングされた表現に含まれる条件を規定する、映像処理方法。
【0202】
P2.前記規則は、前記映像に対するレベル情報の指示の後に前記GCIフィールドが含まれることを規定する、解決策P1に記載の方法。
【0203】
P3.前記規則は、GCIフィールドが前記コーディングされた表現に含まれているかどうかを示すフィールドの後に、GCIフィールドを含めることを規定する、解決策P1~P2のいずれかに記載の方法。
【0204】
P4.前記規則は、GCIフィールドがティア指示フラグの後で、かつプロファイルティアレベル構文構造におけるバイトアライメント構文要素の前に含まれることを規定する、解決策P1に記載の方法。
【0205】
P5.前記規則は、予約された制約バイトの総数を信号通知する代わりに、前記コーディングされた表現が多数の制約ビットを含むか、または各予約された制約の値を含むことをさらに規定する、解決策P1~P4のいずれかに記載の方法。
【0206】
P6.映像と映像のコーディングされた表現との間で変換を行うことを含み、前記コーディングされた表現はフォーマット規則に準拠し、前記フォーマット規則は構文要素に対する制約を規定し、前記構文要素は、映像をコーディングされた表現で表すために使用されるビット深度または映像の彩度フォーマットの制約に対応する、映像処理方法。
【0207】
P7.前記フォーマット規則は、前記フィールドの値が8未満である制約を規定する、解決策P6に記載の方法。
【0208】
P8.前記フォーマット規則は、前記構文要素の値2に制約を課さないことを規定する、解決策P6に記載の方法。
【0209】
P9.前記変換を行うことは、前記映像を符号化して前記符号化表現を生成することを含む、解決策P1~P8のいずれかに記載の方法。
【0210】
P10.変換を行うことは、コーディングされた表現を構文解析し、復号して映像を生成することを含む、解決策P1~P8のいずれかに記載の方法。
【0211】
P11.解決策P1~P10の1つ以上に記載の方法を実装するように構成されたプロセッサを備える、映像復号装置。
【0212】
P12.解決策P1~P10の1つ以上に記載の方法を実装するように構成されたプロセッサを備える、映像符号化装置。
【0213】
P13.コンピュータコードが記憶されたコンピュータプログラム製品であって、コードは、プロセッサにより実行されると、プロセッサに、解決策P1~P10のいずれかに記載の方法を実装させるコンピュータプログラム製品。
【0214】
本明細書では、「映像処理」という用語は、映像符号化、映像復号化、映像圧縮、または映像展開を指すことができる。例えば、映像圧縮アルゴリズムは、映像の画素表現から対応するビットストリーム表現への変換中、またはその逆の変換中に適用されてもよい。現在の映像ブロックのビットストリーム表現(または単にビットストリーム)は、例えば、構文によって規定されるように、ビットストリーム内の同じ場所または異なる場所に拡散されるビットに対応していてもよい。例えば、マクロブロックは、変換およびコーディングされた誤り残差値の観点から、かつビットストリームにおけるヘッダおよび他のフィールドにおけるビットを使用して符号化されてもよい。
【0215】
開示された、およびその他の解決策、例、実施形態、モジュールと、本明細書に記載される機能動作の実装形態は、本明細書に開示された構造およびその構造的均等物を含めて、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェアで実施してもよく、またはそれらの1つ以上の組み合わせで実施してもよい。開示された、およびその他の実施形態は、1または複数のコンピュータプログラム製品、すなわち、データ処理装置によって実装されるため、またはデータ処理装置の動作を制御するために、コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1または複数のモジュールとして実施することができる。このコンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、機械可読伝播信号をもたらす物質の組成物、またはこれらの1または複数の組み合わせであってもよい。「データ処理装置」という用語は、例えば、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサ、若しくはコンピュータを含む、データを処理するためのすべての装置、デバイス、および機械を含む。この装置は、ハードウェアの他に、当該コンピュータプログラムの実行環境を作るコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらの1つ以上の組み合わせを構成するコードを含むことができる。伝播信号は、人工的に生成した信号、例えば、機械で生成した電気、光、または電磁信号であり、適切な受信装置に送信するための情報をエンコードするために生成される。
【0216】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイルされた言語または解釈された言語を含む任意の形式のプログラミング言語で記述することができ、また、それは、スタンドアロンプログラムとして、またはコンピューティング環境で使用するのに適したモジュール、コンポーネント、サブルーチン、または他の部として含む任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1または複数のスクリプト)に記録されていてもよいし、当該プログラム専用の単一のファイルに記憶されていてもよいし、複数の調整ファイル(例えば、1または複数のモジュール、サブプログラム、またはコードの一部を格納するファイル)に記憶されていてもよい。コンピュータプログラムを、1つのコンピュータで実行するように展開することができ、あるいは、1つのサイトに位置する、または複数のサイトにわたって分散され通信ネットワークによって相互接続される複数のコンピュータで実行するように展開することができる。
【0217】
本明細書に記載された処理およびロジックフローは、入力データに対して動作し、出力を生成することによって機能を行うための1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって行うことができる。処理およびロジックフローはまた、特定用途のロジック回路、例えば、FPGA(Field Programmable Gate Array)またはASIC(Application Specific Integrated Circuit)によって行うことができ、装置はまた、特別目的のロジック回路として実装することができる。
【0218】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用および専用マイクロプロセッサの両方、並びに任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般的に、プロセッサは、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための1つ以上の記憶装置とである。一般的に、コンピュータは、データを記憶するための1または複数の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含んでもよく、またはこれらの大容量記憶デバイスからデータを受信するか、またはこれらにデータを転送するように動作可能に結合されてもよい。しかしながら、コンピュータは、このようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体、およびメモリデバイスを含み、例えば、EPROM、EEPROM、フラッシュ記憶装置、磁気ディスク、例えば内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびCD-ROMおよびDVD-ROMディスク等の半導体記憶装置を含む。プロセッサおよびメモリは、特定用途のロジック回路によって補完されてもよく、または特定用途のロジック回路に組み込まれてもよい。
【0219】
本特許明細書は多くの特徴を含むが、これらは、任意の主題の範囲または特許請求の範囲を限定するものと解釈されるべきではなく、むしろ、特定の技術の特定の実施形態に特有であり得る特徴の説明と解釈されるべきである。本特許文献において別個の実施形態のコンテキストで説明されている特定の特徴は、1つの例において組み合わせて実装してもよい。逆に、1つの例のコンテキストで説明された様々な特徴は、複数の実施形態において別個にまたは任意の適切なサブコンビネーションで実装してもよい。さらに、特徴は、特定の組み合わせで作用するものとして上記に記載され、最初にそのように主張されていてもよいが、主張された組み合わせからの1つ以上の特徴は、場合によっては、組み合わせから抜粋されることができ、主張された組み合わせは、サブコンビネーションまたはサブコンビネーションのバリエーションに向けられてもよい。
【0220】
同様に、動作は図面において特定の順番で示されているが、これは、所望の結果を達成するために、このような動作が示された特定の順番でまたは連続した順番で行われること、または示された全ての動作が行われることを必要とするものと理解されるべきではない。また、本特許明細書に記載されている実施形態における様々なシステムの構成要素の分離は、全ての実施形態においてこのような分離を必要とするものと理解されるべきではない。
【0221】
いくつかの実装形態および実施例のみが記載されており、この特許明細書に記載され図示されているコンテンツに基づいて、他の実施形態、拡張および変形が可能である。