(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-10
(45)【発行日】2024-04-18
(54)【発明の名称】柔軟なプロファイル構成のエンコーダ、デコーダ及び対応する方法
(51)【国際特許分類】
H04N 19/70 20140101AFI20240411BHJP
【FI】
H04N19/70
(21)【出願番号】P 2022540564
(86)(22)【出願日】2020-12-30
(86)【国際出願番号】 RU2020050405
(87)【国際公開番号】W WO2021045656
(87)【国際公開日】2021-03-11
【審査請求日】2022-06-29
(31)【優先権主張番号】PCT/EP2020/050077
(32)【優先日】2020-01-03
(33)【優先権主張国・地域又は機関】EP
(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)【発明者】
【氏名】カラブトフ,アレキサンダー アレクサンドロヴィッチ
(72)【発明者】
【氏名】イコニン,セルゲイ ユリエヴィッチ
(72)【発明者】
【氏名】アルシナ,エレナ アレクサンドロブナ
【審査官】間宮 嘉誉
(56)【参考文献】
【文献】米国特許出願公開第2022/0217409(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
復号デバイスにより実現されるビデオビットストリームの復号のための方法であり、前記ビデオビットストリームは、1つ以上のシーケンスパラメータセット(SPS)フラグを表すデータを含む、方法であって、
前記1つ以上のSPSフラグのうち或るSPSフラグについて、前記ビデオビットストリームをパースすることにより、それぞれ前記SPSフラグの2つの変数を取得するステップであり、前記2つの変数のうち1つの変数の値は前記SPSフラグの最小許容値であり、前記2つの変数のうち他の変数の値は前記SPSフラグの最大許容値である、ステップと、
前記ビデオビットストリームをパースすることにより、前記SPSフラグの値を取得するステップと、
前記2つの変数の値に基づいて前記SPSフラグの値が有効であるか否かを評価するステップと、
前記SPSフラグの値が有効である場合、前記SPSフラグの値に従って前記ビデオビットストリームを復号するステップ、及び/又は
前記SPSフラグの値が有効でない場合、前記ビデオビットストリームの復号を停止するステップと
を含む方法。
【請求項2】
前記SPSフラグの前記2つの変数はブール変数であり、前記2つの変数は、それぞれ2つのシンタックスエレメントにパックされ、前記2つの変数は、それぞれ前記2つのシンタックスエレメント内の特定のビットに対応する、請求項1に記載の方法。
【請求項3】
前記2つの変数の値は、集合{0,1}からのものである、請求項1又は2に記載の方法。
【請求項4】
前記SPSフラグの値は、前記変数の値のうち1つに等しい、請求項1乃至3のうちいずれか1項に記載の方法。
【請求項5】
前記2つの変数の値は、集合{0,1}からのものであり、l
i及びh
iと示され、前記SPSフラグの前に前記ビットストリームでシグナリングされ、l
i≦sps
i≦h
iであり、sps
iは前記SPSフラグの値である、請求項4に記載の方法。
【請求項6】
前記1つ以上のSPSフラグの全てのSPSフラグについて、集合{0,1}からの前記2つの変数は、集合{0,1}からの要素を有する2つのベクトル、すなわち、toolset_idc_l=l
0l
1,...,l
i,...l
n-1及びtoolset_idc_h=h
0h
1,...,h
i,...,h
n-1によりシグナリングされ、nは前記1つ以上のSPSフラグの数であり、iは整数である、請求項5に記載の方法。
【請求項7】
符号化デバイスにより実現されるビデオビットストリームの符号化のための方法であり、前記ビデオビットストリームは、1つ以上のシーケンスパラメータセット(SPS)フラグを表すデータを含む、方法であって、
前記1つ以上のSPSフラグのうち或るSPSフラグについて、それぞれ前記SPSフラグの2つの変数を設定するステップであり、前記2つの変数のうち1つの変数の値は前記SPSフラグの最小許容値であり、前記2つの変数のうち他の変数の値は前記SPSフラグの最大許容値である、ステップと、
前記SPSフラグの前記2つの変数に従って前記SPSフラグの値を決定するステップと、
前記SPSフラグの値及び前記SPSフラグの前記2つの変数を前記ビデオビットストリームに符号化するステップと
を含む方法。
【請求項8】
前記SPSフラグの最小許容値である1つの変数の値が1に等しい場合、前記SPSフラグの値を1に決定するか、或いは
前記SPSフラグの最大許容値である1つの変数の値が0に等しい場合、前記SPSフラグの値を0に決定する、請求項7に記載の方法。
【請求項9】
前記SPSフラグの前記2つの変数の双方の値が1に等しい場合、前記SPSフラグの値をそれぞれ1に決定するステップ、又は
前記SPSフラグの前記2つの変数の双方の値が0に等しい場合、前記SPSフラグの値をそれぞれ0に決定するステップを更に含む、請求項7に記載の方法。
【請求項10】
前記SPSフラグの前記2つの変数はブール変数であり、前記2つの変数は、それぞれ2つのシンタックスエレメントにパックされ、前記2つの変数は、それぞれ前記2つのシンタックスエレメント内の特定のビットに対応する、請求項7乃至9のうちいずれか1項に記載の方法。
【請求項11】
前記2つの変数の値は、集合{0,1}からのものである、請求項7乃至10のうちいずれか1項に記載の方法。
【請求項12】
前記SPSフラグの値は、前記変数の値のうち1つに等しい、請求項7乃至11のうちいずれか1項に記載の方法。
【請求項13】
前記2つの変数の値は、集合{0,1}からのものであり、l
i及びh
iと示され、前記SPSフラグの前に前記ビットストリームでシグナリングされ、l
i≦sps
i≦h
iであり、sps
iは前記SPSフラグの値である、請求項12に記載の方法。
【請求項14】
前記1つ以上のSPSフラグの全てのSPSフラグについて、集合{0,1}からの前記2つの変数は、集合{0,1}からの要素を有する2つのベクトル、すなわち、toolset_idc_l=l
0l
1,...,l
i,...l
n-1及びtoolset_idc_h=h
0h
1,...,h
i,...,h
n-1によりシグナリングされ、nは前記1つ以上のSPSフラグの数であり、iは整数である、請求項13に記載の方法。
【請求項15】
コンピュータ又はプロセッサに請求項1乃至6のうちいずれか1項に記載の方法を実行させるコンピュータプログラム。
【請求項16】
コンピュータ又はプロセッサに請求項7乃至14のうちいずれか1項に記載の方法を実行させるコンピュータプログラム。
【請求項17】
デコーダであって、
1つ以上のプロセッサと、
前記プロセッサに結合されて前記プロセッサによる実行のためのプログラミングを記憶する非一時的なコンピュータ読み取り可能記憶媒体と
を含み、
前記プログラミングは、前記プロセッサにより実行されたとき、請求項1乃至6のうちいずれか1項に記載の方法を実行するように当該デコーダを構成する、デコーダ。
【請求項18】
エンコーダであって、
1つ以上のプロセッサと、
前記プロセッサに結合されて前記プロセッサによる実行のためのプログラミングを記憶する非一時的なコンピュータ読み取り可能記憶媒体と
を含み、
前記プログラミングは、前記プロセッサにより実行されたとき、請求項7乃至14のうちいずれか1項に記載の方法を実行するように当該エンコーダを構成する、エンコーダ。
【請求項19】
コンピュータデバイスにより実行されたとき、前記コンピュータデバイスに請求項1乃至6のうちいずれか1項に記載の方法を実行させるプログラムコードを
記憶した非一時的なコンピュータ読み取り可能
記憶媒体。
【請求項20】
コンピュータデバイスにより実行されたとき、前記コンピュータデバイスに請求項7乃至14のうちいずれか1項に記載の方法を実行させるプログラムコードを
記憶した非一時的なコンピュータ読み取り可能
記憶媒体。
【請求項21】
ビデオビットストリームの復号のためのデコーダであり、前記ビデオビットストリームは、1つ以上のシーケンスパラメータセット(SPS)フラグを表すデータを含む、デコーダであって、
前記1つ以上のSPSフラグのうち或るSPSフラグについて、前記ビデオビットストリームをパースすることにより、それぞれ2つの変数を取得するように構成された第1の取得ユニットであり、前記2つの変数のうち1つの変数の値は前記SPSフラグの最小許容値であり、前記2つの変数のうち他の変数の値は前記SPSフラグの最大許容値である、第1の取得ユニットと、
前記ビデオビットストリームをパースすることにより、前記SPSフラグの値を取得するように構成された第2の取得ユニットと、
前記2つの変数の値に基づいて前記SPSフラグの値が有効であるか否かを評価するように構成された評価ユニットと、
前記SPSフラグの値が有効である場合、前記SPSフラグの値に従って前記ビデオビットストリームを復号するように構成された復号ユニットと
を含むデコーダ。
【請求項22】
ビデオビットストリームの符号化のためのエンコーダであり、前記ビデオビットストリームは、1つ以上のシーケンスパラメータセット(SPS)フラグを表すデータを含む、エンコーダであって、
前記1つ以上のSPSフラグのうち或るSPSフラグについて、それぞれ2つの変数を設定するように構成された指示ユニットであり、前記2つの変数のうち1つの変数の値は前記SPSフラグの最小許容値であり、前記2つの変数のうち他の変数の値は前記SPSフラグの最大許容値である、指示ユニットと、
前記SPSフラグの前記2つの変数に従って前記SPSフラグの値を決定するように構成された決定ユニットと、
前記SPSフラグの値及び前記SPSフラグの前記2つの変数を前記ビデオビットストリームに符号化するように構成された符号化ユニットと
を含むエンコーダ。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本特許出願は、2020年1月3日に出願された国際特許出願PCT/EP2020/050077の優先権を主張する。
【0002】
[技術分野]
本出願(開示)の実施形態は、概してピクチャ処理の分野に関し、より詳細には、ハイレベルシンタックス及びビットストリーム適合に関する。
【0003】
ビデオコーディング(ビデオ符号化及び/又は復号)は、広範囲のデジタルビデオアプリケーション、例えば、放送デジタルTV、インターネット及び移動ネットワーク上のビデオ送信、ビデオチャットのようなリアルタイム会話アプリケーション、ビデオ会議、DVD及びブルーレイディスク、ビデオコンテンツ取得及び編集システム、並びにセキュリティアプリケーションのカムコーダにおいて使用される。
【0004】
比較的短いビデオですら描写するために必要なビデオデータの量は相当なものになる可能性があり、これは、データがストリーミングされるとき或いは限られた帯域幅容量を有する通信ネットワークを横切って通信されるときに、困難を生じることがある。したがって、ビデオデータは、一般的に、現代の電気通信ネットワークを横切って通信される前に圧縮される。メモリリソースが制限されることがあるので、ビデオが記憶デバイスに記憶されるとき、ビデオのサイズも問題になる可能性がある。ビデオ圧縮デバイスは、しばしば、送信又は記憶の前にビデオデータをコーディングするためにソースにおいてソフトウェア及び/又はハードウェアを使用し、それにより、デジタルビデオ画像を表すために必要なデータの量を減少させる。次いで、圧縮されたデータは、ビデオデータを復号するビデオ解凍デバイスにより宛先で受信される。限られたネットワークリソース及びより高いビデオ品質についての更に高まる要求のため、ピクチャ品質にほとんど或いは全く犠牲を払わず、圧縮比を改善する圧縮及び解凍技術が望ましい。
【発明の概要】
【0005】
本出願の実施形態は、独立請求項に従って符号化及び復号するための装置及び方法を提供する。
【0006】
上記及び他の目的は、独立請求項の対象物により達成される。更なる実現形式は、従属請求項、詳細な説明及び図面から明らかである。
【0007】
特定の実施形態は、従属請求項における他の実施形態と共に、添付の独立請求項に概説されている。
【0008】
本開示は、復号デバイスにより実現されるビデオビットストリームの復号のための方法を提供し、ビデオビットストリームは、1つ以上のシーケンスパラメータセット(SPS, sequence parameter set)フラグを表すデータを含み、当該方法は、1つ以上のSPSフラグのうち或るSPSフラグについて、ビデオビットストリームをパースすることにより、それぞれSPSフラグの2つの変数を取得するステップであり、2つの変数のうち1つの変数の値はSPSフラグの最小許容値であり、2つの変数のうち他の変数の値はSPSフラグの最大許容値である、ステップと、ビデオビットストリームをパースすることにより、SPSフラグの値を取得するステップと、2つの変数の値に基づいてSPSフラグの値が有効であるか否かを評価するステップと、SPSフラグの値が有効である場合、SPSフラグの値に従ってビデオビットストリームを復号するステップとを含む。
【0009】
以下では、用語sps及びSPS、spsフラグ及びSPSフラグ、複数のspsフラグ及び複数のSPSフラグ、spsフラグ値及びSPSフラグ値は、それぞれ同じ意味を有すると理解されるべきである。
【0010】
したがって、本開示は、下方境界からSPSフラグを制限すること、すなわち、SPSフラグの最小許容値を意図した、1つの更なるシンタックスエレメントをSPSに導入する。
【0011】
上記の方法は、SPSフラグの値の値が有効でない場合、ビデオビットストリームの復号を停止するステップを更に含んでもよい。
【0012】
上記の方法では、SPSフラグの2つの変数はブール変数でもよく、2つの変数は、それぞれ2つのシンタックスエレメント(例えば、toolset_idc_H及びtoolset_idc_L)にパックされてもよく、2つの変数は、それぞれ2つのシンタックスエレメント内の特定のビットに対応してもよい。
【0013】
上記の方法では、2つの変数の値は、集合{0,1}からのものでもよい。
【0014】
上記の方法では、SPSフラグの値は、変数の値のうち1つに等しくてもよい。
【0015】
上記の方法では、2つの変数の値は、集合{0,1}からのものでもよく、li及びhiと示されてもよく、SPSフラグの前にビットストリームでシグナリングされてもよく、li≦spsi≦hiであり、spsiはSPSフラグの値である。
【0016】
上記の方法では、1つ以上のSPSフラグの全てのSPSフラグについて、集合{0,1}からの2つの変数は、集合{0,1}からの要素を有する2つのベクトル、すなわち、toolset_idc_l=l0l1,...,li,...ln-1及びtoolset_idc_h=h0Hh1,...,hi,...,hn-1によりシグナリングされてもよく、nは1つ以上のSPSフラグの数であり、iは整数である。
【0017】
従来技術では、toolset_idcメカニズムのようなメカニズムは、SPSフラグ値を0に制限することのみを許容し、SPSフラグを1に制限する方法は存在しない点に留意すべきである。
【0018】
これを考慮して、本開示は、下方境界及び上方境界の双方からの機能をサポートするようにtoolset_idcメカニズムを拡張することにより、この問題を克服する。言い換えると、本開示による解決策は、0及び1の双方のSPSフラグ値を強制させるために使用できる。
【0019】
本開示は、符号化デバイスにより実現されるビデオビットストリームの符号化のための方法を更に提供し、ビデオビットストリームは、1つ以上のシーケンスパラメータセット(SPS, sequence parameter set)フラグを表すデータを含み、当該方法は、1つ以上のSPSフラグのうち或るSPSフラグについて、それぞれSPSフラグの2つの変数を設定するステップであり、2つの変数のうち1つの変数の値はSPSフラグの最小許容値であり、2つの変数のうち他の変数の値はSPSフラグの最大許容値である、ステップと、SPSフラグの2つの変数に従ってSPSフラグの値を決定するステップと、SPSフラグの値及びSPSフラグの2つの変数をビデオビットストリームに符号化するステップとを含む。
【0020】
SPSフラグの2つの変数の設定は、必要とされるコーディング能力に基づく。
【0021】
上記の方法は、SPSフラグの最小許容値である1つの変数の値が1に等しい場合、SPSフラグの値を1に決定するステップを更に含んでもよい。
【0022】
上記の方法は、SPSフラグの最大許容値である1つの変数の値が0に等しい場合、SPSフラグの値を0に決定するステップを更に含んでもよい。
【0023】
上記の方法は、SPSフラグの2つの変数の双方の値が1に等しい場合、SPSフラグの値をそれぞれ1に決定するステップを更に含んでもよい。
【0024】
上記の方法は、SPSフラグの2つの変数の双方の値が0に等しい場合、SPSフラグの値をそれぞれ0に決定するステップを更に含んでもよい。
【0025】
上記の方法では、SPSフラグの2つの変数はブール変数でもよく、2つの変数は、それぞれ2つのシンタックスエレメントにパックされてもよく、2つの変数は、それぞれ2つのシンタックスエレメント内の特定のビットに対応してもよい。
【0026】
上記の方法では、2つの変数の値は、集合{0,1}からのものでもよい。
【0027】
上記の方法では、SPSフラグの値は、変数の値のうち1つに等しくてもよい。
【0028】
上記の方法では、2つの変数の値は、集合{0,1}からのものでもよく、li及びhiと示されてもよく、SPSフラグの前にビットストリームでシグナリングされてもよく、li≦spsi≦hiであり、spsiはSPSフラグの値である。
【0029】
上記の方法では、1つ以上のSPSフラグの全てのSPSフラグについて、集合{0,1}からの2つの変数は、集合{0,1}からの要素を有する2つのベクトル、すなわち、toolset_idc_l=l0l1,...,li,...ln-1及びtoolset_idc_h=h0Hh1,...,hi,...,hn-1によりシグナリングされてもよく、nは1つ以上のSPSフラグの数であり、iは整数である。
【0030】
本開示は、上記の方法を実行するための処理回路を含むエンコーダを更に開示する。
【0031】
本開示は、上記の方法を実行するための処理回路を含むデコーダを更に開示する。
【0032】
本開示は、コンピュータ又はプロセッサ上で実行されたとき、上記の方法を実行するためのプログラムコードを含むコンピュータプログラム製品を更に開示する。
【0033】
本開示は、1つ以上のプロセッサと、プロセッサに結合されてプロセッサによる実行のためのプログラミングを記憶する非一時的なコンピュータ読み取り可能記憶媒体とを含むデコーダを更に開示し、プログラミングは、プロセッサにより実行されたとき、上記の方法を実行するようにデコーダを構成する。
【0034】
本開示は、1つ以上のプロセッサと、プロセッサに結合されてプロセッサによる実行のためのプログラミングを記憶する非一時的なコンピュータ読み取り可能記憶媒体とを含むエンコーダを更に開示し、プログラミングは、プロセッサにより実行されたとき、上記の方法を実行するようにエンコーダを構成する。
【0035】
本開示は、コンピュータデバイスにより実行されたとき、コンピュータデバイスに上記の方法を実行させるプログラムコードを搬送する非一時的なコンピュータ読み取り可能媒体を更に開示する。
【0036】
本開示は、画像復号デバイスにより復号される符号化ビットストリームを含む非一時的な記憶媒体を更に開示し、ビットストリームは、ビデオ信号又は画像信号のフレームを複数のブロックに分割することにより生成され、複数のSPSフラグを含み、ビットストリームは、SPSフラグの2つの変数を更に含み、2つの変数のうち1つの変数の値はSPSフラグの最小許容値であり、2つの変数のうち他の変数の値はSPSフラグの最大許容値である。
【0037】
本開示は、ビデオビットストリームの復号のためのデコーダを更に開示し、ビデオビットストリームは、1つ以上のシーケンスパラメータセット(SPS, sequence parameter set)フラグを表すデータを含み、当該デコーダは、1つ以上のSPSフラグのうち或るSPSフラグについて、ビデオビットストリームをパースすることにより、それぞれ2つの変数を取得するように構成された第1の取得ユニットであり、2つの変数のうち1つの変数の値はSPSフラグの最小許容値であり、2つの変数のうち他の変数の値はSPSフラグの最大許容値である、第1の取得ユニットと、ビデオビットストリームをパースすることにより、SPSフラグの値を取得するように構成された第2の取得ユニットと、2つの変数の値に基づいてSPSフラグの値が有効であるか否かを評価するように構成された評価ユニットと、SPSフラグの値が有効である場合、SPSフラグの値に従ってビデオビットストリームを復号するように構成された復号ユニットとを含む。
【0038】
本開示は、ビデオビットストリームの符号化のためのエンコーダを更に開示し、ビデオビットストリームは、1つ以上のシーケンスパラメータセット(SPS, sequence parameter set)フラグを表すデータを含み、当該エンコーダは、1つ以上のSPSフラグのうち或るSPSフラグについて、それぞれ2つの変数を設定するように構成された指示ユニットであり、2つの変数のうち1つの変数の値はSPSフラグの最小許容値であり、2つの変数のうち他の変数の値はSPSフラグの最大許容値である、指示ユニットと、SPSフラグの2つの変数に従ってSPSフラグの値を決定するように構成された決定ユニットと、SPSフラグの値及びSPSフラグの2つの変数をビデオビットストリームに符号化するように構成された符号化ユニットとを含む。
【0039】
1つ以上の実施形態の詳細は、添付の図面及び以下の詳細な説明に記載されている。他の特徴、目的及び利点は、詳細な説明、図面及び特許請求の範囲から明らかになる。
【図面の簡単な説明】
【0040】
以下に、本発明の実施形態について、添付の図及び図面を参照してより詳細に説明する。
【
図1A】本発明の実施形態を実現するように構成されたビデオコーディングシステムの例を示すブロック図である。
【
図1B】本発明の実施形態を実現するように構成されたビデオコーディングシステムの他の例を示すブロック図である。
【
図2】本発明の実施形態を実現するように構成されたビデオエンコーダの例を示すブロック図である。
【
図3】本発明の実施形態を実現するように構成されたビデオデコーダの例示的な構造を示すブロック図である。
【
図4】符号化装置又は復号装置の例を示すブロック図である。
【
図5】符号化装置又は復号装置の他の例を示すブロック図である。
【
図6】コンテンツ配信サービスを実現するコンテンツ供給システム3100の例示的な構造を示すブロック図である。
【
図7】端末デバイスの例の構造を示すブロック図である。
【
図8】本開示の実施形態によるビデオビットストリームの復号のための方法のフローチャートを示す。
【
図9】本開示の実施形態によるビデオビットストリームの復号のためのデコーダを示す。
【
図10】本開示の実施形態によるビデオビットストリームの符号化のための方法のフローチャートを示す。
【
図11】本開示の実施形態によるビデオビットストリームの符号化のためのエンコーダを示す。
【0041】
以下では、同一の参照符号は、他に明示的に指定されていない場合、同一の或いは少なくとも機能的に等価な特徴を示す。
【発明を実施するための形態】
【0042】
以下の説明では、本開示の一部を形成し、例示により本発明の実施形態の特定の態様又は本発明の実施形態が使用され得る特定の態様を示す、添付の図面に参照が行われる。本発明の実施形態は、他の態様で使用され、図面に示さない構造的又は論理的変更を含んでもよいことが理解される。したがって、以下の詳細な説明は、限定的な意味で考えられるべきではなく、本発明の範囲は、添付の特許請求の範囲により定義される。
【0043】
例えば、記載の方法に関連する開示はまた、方法を実行するように構成された対応するデバイス又はシステムにも当てはまってもよく、逆も同様であることが理解される。例えば、1つ又は複数の特定の方法のステップが記載される場合、対応するデバイスは、記載される1つ又は複数の方法のステップを実行するための1つ又は複数のユニット、例えば、機能ユニットを、このような1つ以上のユニットが明示的に記載されないか或いは図面に示されない場合でも含んでもよい(例えば、1つのユニットが1つ又は複数のステップを実行するか、或いは、複数のユニットが複数のステップのうち1つ以上をそれぞれ実行する)。他方、例えば、特定の装置が1つ又は複数のユニット、例えば、機能ユニットに基づいて記載される場合、対応する方法は、1つ又は複数のユニットの機能を実行するための1つのステップを、このような1つ又は複数のステップが明示的に記載されないか或いは図面に示されない場合でも含んでもよい(例えば、1つのステップが1つ又は複数のユニットの機能を実行するか、或いは、複数のステップが複数のユニットのうち1つ以上の機能をそれぞれ実行する)。さらに、ここに記載の様々な例示的な実施形態及び/又は態様の特徴は、特に断りのない限り、互いに結合されてもよいことが理解される。
【0044】
典型的には、ビデオコーディングは、ビデオ又はビデオシーケンスを形成するピクチャのシーケンスの処理を示す。「ピクチャ」という用語の代わりに、「フレーム」又は「画像」という用語がビデオコーディングの分野において同義語として使用されてもよい。ビデオコーディング(又は一般的にコーディング)は、ビデオ符号化及びビデオ復号の2つの部分を含む。ビデオ符号化は、ソース側で実行され、典型的には、(より効率的な記憶及び/又は送信のために)ビデオピクチャを表すために必要なデータの量を低減するように、(例えば、圧縮により)元のビデオピクチャを処理することを含む。ビデオ復号は、宛先側で実行され、典型的には、ビデオピクチャを再構成するために、エンコーダと比較して逆の処理を含む。ビデオピクチャ(又は一般的にピクチャ)の「コーディング」を参照する実施形態は、ビデオピクチャ又はそれぞれのビデオシーケンスの「符号化」又は「復号」に関連すると理解されるものとする。符号化部及び復号部の組み合わせはまた、コーデック(CODEC, Coding and Decoding)とも呼ばれる。
【0045】
可逆ビデオコーディングの場合、元のビデオピクチャは再構成でき、すなわち、再構成ビデオピクチャは、元のビデオピクチャと同じ品質を有する(記憶又は送信の間の送信損失又は他のデータ損失がないと仮定する)。非可逆ビデオコーディングの場合、ビデオピクチャを表すデータの量を低減するために、例えば、量子化による更なる圧縮が実行され、これは、デコーダで完全には再構成できず、すなわち、再構成ビデオピクチャの品質は、元のビデオピクチャの品質と比較して低いか或いは悪い。
【0046】
いくつかのビデオコーディング標準は、「非可逆ハイブリッドビデオコーデック」のグループに属する(すなわち、サンプルドメインにおける空間及び時間予測と、変換ドメインにおける量子化を適用するための2D変換コーディングとを組み合わせる)。ビデオシーケンスの各ピクチャは、典型的には、重複しないブロックのセットにパーティションされ、コーディングは、典型的には、ブロックレベルで実行される。言い換えると、エンコーダにおいて、例えば、空間(イントラピクチャ)予測及び/又は時間(インターピクチャ)予測を使用して予測ブロックを生成し、現在ブロック(現在処理されている/処理されるべきブロック)から予測ブロックを減算して残差ブロックを取得し、残差ブロックを変換して変換ドメインにおいて残差ブロックを量子化して送信されるべきデータの量を低減すること(圧縮)により、ビデオは典型的にはブロック(ビデオブロック)レベルで処理され、すなわち、符号化される。一方、デコーダにおいて、エンコーダと比較して逆の処理が符号化又は圧縮されたブロックに適用されて、表現のために現在ブロックを再構成する。さらに、エンコーダは、デコーダ処理ループを複製し、それにより、双方は後続のブロックを処理するために、すなわち、コーディングするために、同一の予測(例えば、イントラ及びインター予測)及び/又は再構成を生成する。
【0047】
以下に、ビデオコーディングシステム10、ビデオエンコーダ20及びビデオデコーダ30の実施形態について
図1~3に基づいて説明する。
【0048】
図1Aは、本願の技術を利用し得る例示的なコーディングシステム10、例えばビデオコーディングシステム10(又は略してコーディングシステム10)を示す概略ブロック図である。ビデオコーディングシステム10のビデオエンコーダ20(又は略してエンコーダ20)及びビデオデコーダ30(又は略してデコーダ30)は、本願に記載の様々な例による技術を実行するように構成され得るデバイスの例を表す。
【0049】
図1Aに示すように、コーディングシステム10は、符号化ピクチャデータ21を、例えば、符号化ピクチャデータ13を復号するための宛先デバイス14に提供するように構成されたソースデバイス12を含む。
【0050】
ソースデバイス12は、エンコーダ20を含み、さらに、すなわち任意選択で、ピクチャソース16と、プリプロセッサ(又は前処理ユニット)18、例えばピクチャプリプロセッサ18と、通信インタフェース又は通信ユニット22とを含んでもよい。
【0051】
ピクチャソース16は、いずれかの種類のピクチャキャプチャデバイス、例えば、現実世界のピクチャをキャプチャするためのカメラ、及び/又はいずれかの種類のピクチャ生成デバイス、例えば、コンピュータアニメーションピクチャを生成するためのコンピュータグラフィックスプロセッサ、又は現実世界のピクチャ、コンピュータにより生成されたピクチャ(例えば、スクリーンコンテンツ、仮想現実(VR, virtual reality)ピクチャ)及び/又はこれらのいずれかの組み合わせ(例えば、拡張現実(AR, augmented reality)ピクチャ)を取得及び/又は提供するためのいずれかの種類の他のデバイスでもよく或いはこれを含んでもよい。ピクチャソースは、上記のピクチャのうちいずれかを記憶するいずれかの種類のメモリ又はストレージでもよい。
【0052】
プリプロセッサ18、及び前処理ユニット18により実行される処理と対照的に、ピクチャ又はピクチャデータ17はまた、未加工ピクチャ又は未加工ピクチャデータ17とも呼ばれてもよい。
【0053】
プリプロセッサ18は、(未加工)ピクチャデータ17を受信し、ピクチャデータ17に対して前処理を実行して、前処理されたピクチャ19又は前処理されたピクチャデータ19を取得するように構成される。プリプロセッサ18により実行される前処理は、例えば、トリミング、カラーフォーマット変換(例えば、RGBからYCbCrへ)、色補正又はノイズ除去を含んでもよい。前処理ユニット18は任意選択のコンポーネントでもよいことが理解できる。
【0054】
ビデオエンコーダ20は、前処理されたピクチャデータ19を受信し、符号化ピクチャデータ21を提供するように構成される(更なる詳細については、例えば、
図2に基づいて以下に説明する)。
【0055】
ソースデバイス12の通信インタフェース22は、符号化ピクチャデータ21を受信し、記憶又は直接の再構成のために、通信チャネル13上で符号化ピクチャデータ21(又はそのいずれかの更なる処理されたバージョン)を他のデバイス、例えば、宛先デバイス14又はいずれかの他のデバイスに送信するように構成されてもよい。
【0056】
宛先デバイス14は、デコーダ30(例えば、ビデオデコーダ30)を含み、さらに、すなわち任意選択で、通信インタフェース又は通信ユニット28と、ポストプロセッサ32(又は後処理ユニット32)と、ディスプレイデバイス34とを含んでもよい。
【0057】
宛先デバイス14の通信インタフェース28は、例えば、ソースデバイス12から直接に或いはいずれかの他のソース、例えば、記憶デバイス、例えば、符号化ピクチャデータ記憶デバイスから、符号化ピクチャデータ21(又はそのいずれかの更なる処理されたバージョン)を受信し、符号化ピクチャデータ21をデコーダ30に提供するように構成される。
【0058】
通信インタフェース22及び通信インタフェース28は、ソースデバイス12と宛先デバイス14との間の直接通信リンク、例えば、直接有線又は無線接続を介して、或いはいずれかの種類のネットワーク、例えば、有線若しくは無線ネットワーク又はこれらのいずれかの組み合わせ、又はいずれかの種類の私設及び公衆ネットワーク、又はこれらのいずれかの種類の組み合わせを介して、符号化ピクチャデータ21又は符号化データ13を送信又は受信するように構成されてもよい。
【0059】
通信インタフェース22は、例えば、符号化ピクチャデータ21を適切なフォーマット、例えばパケットにパッケージ化し、及び/又は通信リンク又は通信ネットワーク上での送信のために、いずれかの種類の送信符号化又は処理を使用して符号化ピクチャデータを処理するように構成されてもよい。
【0060】
通信インタフェース22の相手方を形成する通信インタフェース28は、例えば、送信データを受信し、いずれかの種類の対応する送信復号若しくは処理及び/又はパッケージ解除を使用して、送信データを処理して、符号化ピクチャデータ21を取得するように構成されてもよい。
【0061】
通信インタフェース22及び通信インタフェース28の双方は、
図1Aにおいてソースデバイス12から宛先デバイス14を指す通信チャネル13についての矢印により示されるような単方向通信インタフェースとして、或いは双方向通信インタフェースとして構成されてもよく、例えば、メッセージを送信及び受信するように、例えば、接続を設定して、通信リンク及び/又はデータ送信、例えば、符号化ピクチャデータ送信に関連するいずれかの他の情報を承認及び交換するように構成されてもよい。
【0062】
デコーダ30は、符号化ピクチャデータ21を受信し、復号ピクチャデータ31又は復号ピクチャ31を提供するように構成される(更なる詳細については、例えば、
図3又は
図5に基づいて以下に説明する)。
【0063】
宛先デバイス14のポストプロセッサ32は、復号ピクチャデータ31(再構成ピクチャデータとも呼ばれる)、例えば復号ピクチャ31を後処理して、後処理されたピクチャデータ33、例えば、後処理されたピクチャ33を取得するように構成される。後処理ユニット32により実行される後処理は、例えば、カラーフォーマット変換(例えば、YCbCrからRGBへ)、色補正、トリミング若しくは再サンプリング、又は例えば復号ピクチャデータ31を、例えば、ディスプレイデバイス34による表示のために準備するためのいずれかの他の処理を含んでもよい。
【0064】
宛先デバイス14のディスプレイデバイス34は、後処理されたピクチャデータ33を受信して、例えば、ユーザ又はビューアにピクチャを表示するように構成される。ディスプレイデバイス34は、再構成ピクチャを提示するいずれかの種類のディスプレイ、例えば、一体型若しくは外部ディスプレイ又はモニタでもよく或いはこれを含んでもよい。ディスプレイは、例えば、液晶ディスプレイ(LCD, liquid crystal display)、有機発光ダイオード(OLED, organic light emitting diode)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、シリコン上液晶(LCoS, liquid crystal on silicon)、デジタル光プロセッサ(DLP, digital light processor)又はいずれかの種類の他のディスプレイでもよく或いはこれを含んでもよい。
【0065】
図1Aはソースデバイス12及び宛先デバイス14を別個のデバイスとして示すが、デバイスの実施形態はまた、双方又は双方の機能、ソースデバイス12又は対応する機能及び宛先デバイス14又は対応する機能を含んでもよい。このような実施形態では、ソースデバイス12又は対応する機能及び宛先デバイス14又は対応する機能は、同じハードウェア及び/又はソフトウェアを使用して或いは別個のハードウェア及び/又はソフトウェア又はこれらのいずれかの組み合わせにより実現されてもよい。
【0066】
説明に基づいて当業者に明らかなように、
図1Aに示すようなソースデバイス12及び/又は宛先デバイス14内の異なるユニット又は機能の存在及び(正確な)分割は、実際のデバイス及び用途に依存して変化してもよい。
【0067】
エンコーダ20(例えば、ビデオエンコーダ20)若しくはデコーダ30(例えば、ビデオデコーダ30)又はエンコーダ20及びデコーダ30の双方は、1つ以上のマイクロプロセッサ、デジタルシグナルプロセッサ(DSP, digital signal processor)、特定用途向け集積回路(ASIC, application-specific integrated circuit)、フィールドプログラマブルゲートアレイ(FPGA, field-programmable gate array)、ディスクリートロジック、ハードウェア、専用ビデオコーディング又はこれらのいずれかの組み合わせのような、
図1Bに示すような処理回路を介して実現されてもよい。エンコーダ20は、
図2のエンコーダ20及び/又はここに記載のいずれかの他のエンコーダシステム又はサブシステムに関して説明するように、様々なモジュールを具体化するように処理回路46を介して実現されてもよい。デコーダ30は、
図3のデコーダ30及び/又はここに記載のいずれかの他のデコーダシステム又はサブシステムに関して説明するように、様々なモジュールを具体化するように処理回路46を介して実現されてもよい。処理回路は、以下に説明するように、様々な動作を実行するように構成されてもよい。
図5に示すように、技術が部分的にソフトウェアで実現される場合、デバイスは、適切な非一時的なコンピュータ読み取り可能記憶媒体内にソフトウェアのための命令を記憶してもよく、本開示の技術を実行するために1つ以上のプロセッサを使用してハードウェアで命令を実行してもよい。ビデオエンコーダ20及びビデオデコーダ30のいずれかは、例えば、
図1Bに示すように、単一のデバイス内の結合されたエンコーダ/デコーダ(CODEC, encoder/decoder)の部分として統合されてもよい。
【0068】
ソースデバイス12及び宛先デバイス14は、いずれかの種類のハンドヘルド又は固定デバイス、例えば、ノートブック又はラップトップコンピュータ、携帯電話、スマートフォン、タブレット又はタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビ、ディスプレイデバイス、デジタルメディアプレイヤ、ビデオゲームコンソール、ビデオストリーミングデバイス(コンテンツサービスサーバ又はコンテンツ配信サーバ等)、放送受信機デバイス、放送送信機デバイス等を含む、広範なデバイスのうちいずれかを含んでもよく、いずれかの種類のオペレーティングシステムを使用してもよく或いは使用しなくてもよい。いくつかの場合、ソースデバイス12及び宛先デバイス14は、無線通信のために装備されてもよい。したがって、ソースデバイス12及び宛先デバイス14は無線通信デバイスでもよい。
【0069】
いくつかの場合、
図1Aに示すビデオコーディングシステム10は単に例であり、本願の技術は、必ずしも符号化デバイスと復号デバイスとの間にいずれかのデータ通信を含むとは限らないビデオコーディング設定(例えば、ビデオ符号化又はビデオ復号)に適用してもよい。他の例では、データはローカルメモリから取り出される、ネットワーク上でストリーミングされる、等である。ビデオ符号化デバイスは、データを符号化してメモリに記憶してもよく、及び/又はビデオ復号デバイスはデータをメモリから取り出して復号してもよい。いくつかの例では、符号化及び復号は、互いに通信しないが単にデータをメモリに符号化し及び/又はメモリからデータを取り出して復号するデバイスにより実行される。
【0070】
説明の便宜上、本発明の実施形態は、ここでは、例えば高効率ビデオコーディング(HEVC, High-Efficiency Video Coding)又はバーサタイルビデオコーディング(VVC, Versatile Video coding)のリファレンスソフトウェア、ITU-Tビデオコーディング専門家委員会(VCEG, Video Coding Experts Group)及びISO/IEC動画専門家委員会(MPEG, Motion Picture Experts Group)のビデオコーディングに関する共同作業部会(JCT-VC, Joint Collaboration Team on Video Coding)により開発された次世代ビデオコーディング標準を参照することにより記載される。当業者は、本発明の実施形態がHEVC又はVVCに限定されないことを理解する。
【0071】
エンコーダ及び符号化方法
図2は、本願の技術を実現するように構成された例示的なビデオエンコーダ20の概略ブロック図を示す。
図2の例では、ビデオエンコーダ20は、入力201(又は入力インタフェース201)と、残差計算ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構成ユニット214と、ループフィルタユニット220と、復号ピクチャバッファ(DPB, decoded picture buffer)230と、モード選択ユニット260と、エントロピー符号化ユニット270と、出力272(又は出力インタフェース272)とを含む。モード選択ユニット260は、インター予測ユニット244と、イントラ予測処理ユニット254と、パーティションユニット262とを含んでもよい。インター予測ユニット244は、動き推定ユニット及び動き補償ユニット(図示せず)を含んでもよい。
図2に示すようなビデオエンコーダ20はまた、ハイブリッドビデオエンコーダ又はハイブリッドビデオコーデックによるビデオエンコーダとも呼ばれてもよい。
【0072】
残差計算ユニット204、変換処理ユニット206、量子化ユニット208、モード選択ユニット260は、エンコーダ20の順方向信号経路を形成するものと呼ばれてもよい。一方で、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ(DPB, decoded picture buffer)230、インター予測ユニット244及びイントラ予測ユニット254は、ビデオエンコーダ20の逆方向信号経路を形成するものと呼ばれてもよく、ビデオエンコーダ20の逆方向信号経路はデコーダの信号経路に対応する(
図3におけるデコーダ30を参照する)。逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループフィルタ220、復号ピクチャバッファ(DPB, decoded picture buffer)230、インター予測ユニット244及びイントラ予測ユニット254はまた、ビデオエンコーダ20の「内蔵デコーダ」を形成するものとも呼ばれる。
【0073】
ピクチャ及びピクチャパーティション(ピクチャ及びブロック)
エンコーダ20は、例えば、入力201を介して、ピクチャ17(又はピクチャデータ17)、例えば、ビデオ又はビデオシーケンスを形成するピクチャのシーケンスのピクチャを受信するように構成されてもよい。受信したピクチャ又はピクチャデータはまた、前処理ピクチャ19(前処理ピクチャデータ19)でもよい。簡潔にするために、以下の説明はピクチャ17を参照する。ピクチャ17はまた、(特に、ビデオコーディングにおいて、現在ピクチャを他のピクチャ、例えば、同じビデオシーケンス、すなわち、現在ピクチャも含むビデオシーケンスの前に符号化及び/又は復号されたピクチャと区別するために)現在ピクチャ又はコーディングされるべきピクチャとも呼ばれてもよい。
【0074】
(デジタル)ピクチャは、強度値を有するサンプルの2次元配列又は行列であるか或いはそれとして考えられることができる。配列内のサンプルはまた、ピクセル(ピクチャエレメントの短縮形)又はペル(pel)とも呼ばれてもよい。配列又はピクチャの水平及び垂直方向(又は軸)におけるサンプルの数は、ピクチャのサイズ及び/又は解像度を定義する。色の表現のために、典型的には3つの色成分が使用され、すなわち、ピクチャは、3つのサンプル配列として表されてもよく或いはこれらを含んでもよい。RBGフォーマット又は色空間では、ピクチャは、対応する赤、緑及び青のサンプル配列を含む。しかし、ビデオコーディングでは、各ピクセルは、典型的には、ルミナンス及びクロミナンスフォーマット又は色空間、例えば、Y(場合によっては代わりにLも使用される)により示されるルミナンス成分とCb及びCrにより示される2つのクロミナンス成分とを含むYCbCrで表される。ルミナンス(又は略してルマ)成分Yは、明るさ又はグレーレベル強度(例えば、グレースケールピクチャにおけるもの等)を表す。一方で、2つのクロミナンス(又は略してクロマ)成分Cb及びCrは、色度又は色情報成分を表す。したがって、YCbCrフォーマットのピクチャは、ルミナンスサンプル値(Y)のルミナンスサンプル配列と、クロミナンス値(Cb及びCr)の2つのクロミナンスサンプル配列とを含む。RGBフォーマットのピクチャは、YCbCrフォーマットに転換又は変換されてもよく、逆も同様であり、プロセスはまた、色変換又は転換としても知られる。ピクチャがモノクロである場合、ピクチャは、ルミナンスサンプル配列のみを含んでもよい。したがって、ピクチャは、例えば、モノクロフォーマットのルマサンプルの配列、又は4:2:0、4:2:2及び4:4:4カラーフォーマットのルマサンプルの配列及びクロマサンプルの2つの対応する配列でもよい。
【0075】
ビデオエンコーダ20の実施形態は、ピクチャ17を複数の(典型的には重複しない)ピクチャブロック203にパーティションするように構成されたピクチャパーティションユニット(
図2に図示せず)を含んでもよい。これらのブロックはまた、ルートブロック、マクロブロック(H.264/AVC)又はコーディングツリーブロック(CTB, coding tree block)又はコーディングツリーユニット(CTU, coding tree unit)(H.265/HEVC及びVVC)とも呼ばれてもよい。ピクチャパーティションユニットは、ビデオシーケンスの全てのピクチャ、及びブロックサイズを定義する対応するグリッドに同じブロックサイズを使用するように、或いは、ピクチャ又はピクチャのサブセット若しくはグループの間でブロックサイズを変更し、各ピクチャを対応するブロックにパーティションするように構成されてもよい。
【0076】
更なる実施形態では、ビデオエンコーダは、ピクチャ17のブロック203、例えば、ピクチャ17を形成する1つ、いくつか又は全てのブロックを直接受信するように構成されてもよい。ピクチャブロック203はまた、現在ピクチャブロック又はコーディングされるべきピクチャブロックとも呼ばれてもよい。
【0077】
ピクチャ17と同様に、ピクチャブロック203もまた、強度値(サンプル値)を有するサンプルの2次元配列又は行列であるか或いはそれとして考えられることができるが、ピクチャ17よりも小さい次元である。言い換えると、ブロック203は、例えば、1つのサンプル配列(例えば、モノクロピクチャ17の場合のルマ配列、又はカラーピクチャの場合のルマ若しくはクロマ配列)若しくは3つのサンプル配列(例えば、カラーピクチャ17の場合のルマ及び2つのクロマ配列)、又は適用されるカラーフォーマットに依存していずれかの他の数及び/又は種類の配列を含んでもよい。ブロック203の水平及び垂直方向(又は軸)におけるサンプルの数は、ブロック203のサイズを定義する。したがって、ブロックは、例えば、サンプルのM×N(M列×N行)配列、又は変換係数のM×N配列でもよい。
【0078】
図2に示すようなビデオエンコーダ20の実施形態は、ブロック毎にピクチャ17を符号化するように構成されてもよく、例えば、符号化及び予測がブロック203毎に実行される。
【0079】
図2に示すようなビデオエンコーダ20の実施形態は、スライス(ビデオスライスとも呼ばれる)を使用することによりピクチャをパーティション及び/又は符号化するように更に構成されてもよく、ピクチャは、(典型的には重複しない)1つ以上のスライスにパーティションされてもよく或いはこれを使用して符号化されてもよく、各スライスは、1つ以上のブロック(例えば、CTU)又は1つ以上のブロックのグループ(例えば、タイル(H.265/HEVC及びVVC)又はブリック(VVC))を含んでもよい。
【0080】
図2に示すようなビデオエンコーダ20の実施形態は、スライス/タイルグループ(ビデオタイルグループとも呼ばれる)及び/又はタイル(ビデオタイルとも呼ばれる)を使用することによりピクチャをパーティション及び/又は符号化するように更に構成されてもよく、ピクチャは、(典型的には重複しない)1つ以上のスライス/タイルグループにパーティションされてもよく或いはこれを使用して符号化されてもよく、各スライス/タイルグループは、例えば、1つ以上のブロック(例えば、CTU)又は1つ以上のタイルを含んでもよく、各タイルは、例えば、長方形形状でもよく、1つ以上のブロック(例えば、CTU)、例えば完全な或いは部分的なブロックを含んでもよい。
【0081】
残差計算
残差計算ユニット204は、ピクチャブロック203及び予測ブロック265(予測ブロック265に関する更なる詳細は以下に提供される)に基づいて、例えば、サンプル毎に(ピクセル毎に)ピクチャブロック203のサンプル値から予測ブロック265のサンプル値を減算して、サンプルドメインにおける残差ブロック205を取得することにより、残差ブロック205を計算するように構成されてもよい。
【0082】
変換
変換処理ユニット206は、残差ブロック205のサンプル値に対して変換、例えば、離散コサイン変換(DCT, discrete cosine transform)又は離散サイン変換(DST, discrete sine transform)を適用して、変換ドメインにおける変換係数207を取得するように構成されてもよい。変換係数207はまた、変換残差係数とも呼ばれ、変換ドメインにおける残差ブロック205を表してもよい。
【0083】
変換処理ユニット206は、H.265/HEVCについて指定された変換のようなDCT/DSTの整数近似を適用するように構成されてもよい。直交DCT変換と比較して、このような整数近似は、典型的には、特定のファクタによりスケーリングされる。順変換及び逆変換により処理される残差ブロックのノルムを維持するために、更なるスケーリングファクタが変換プロセスの一部として適用される。スケーリングファクタは、典型的には、スケーリングファクタがシフト演算のために2の冪乗であること、変換係数のビット深度、精度と実現コストとの間のトレードオフ等のような特定の制約に基づいて選択される。特定のスケーリングファクタは、例えば、逆変換処理ユニット212による逆変換(及び例えば、ビデオデコーダ30における逆変換処理ユニット312による対応する逆変換)について指定され、例えば、エンコーダ20における変換処理ユニット206による順変換についての対応するスケーリングファクタが相応して指定されてもよい。
【0084】
ビデオエンコーダ20の実施形態(それぞれ、変換処理ユニット206)は、例えば、直接或いはエントロピー符号化ユニット270を介して符号化又は圧縮される、変換パラメータ、例えば、変換又は複数の変換のタイプを出力するように構成されてもよく、それにより、例えば、ビデオデコーダ30は、復号のために変換パラメータを受信して使用してもよい。
【0085】
量子化
量子化ユニット208は、例えば、スカラー量子化又はベクトル量子化を適用することにより、変換係数207を量子化して、量子化された係数209を取得するように構成されてもよい。量子化された係数209はまた、量子化された変換係数209又は量子化された残差係数209とも呼ばれてもよい。
【0086】
量子化プロセスは、変換係数207の一部又は全部に関連するビット深度を低減してもよい。例えば、nビットの変換係数は、量子化の間にmビットの変換係数に切り捨てられてもよく、nはmよりも大きい。量子化の程度は、量子化パラメータ(QP, quantization parameter)を調整することにより変更されてもよい。例えば、スカラー量子化では、より精細な或いはより粗い量子化を達成するために異なるスケーリングが適用されてもよい。より小さい量子化ステップサイズは、より精細な量子化に対応する。一方で、より大きい量子化ステップサイズは、より粗い量子化に対応する。適用可能な量子化ステップは、量子化パラメータ(QP, quantization parameter)により示されてもよい。量子化パラメータは、例えば、適用可能な量子化ステップサイズの所定のセットへのインデックスでもよい。例えば、小さい量子化パラメータは、精細な量子化(小さい量子化ステップサイズ)に対応してもよく、大きい量子化パラメータは、粗い量子化(大きい量子化ステップサイズ)に対応してもよく、逆も同様である。量子化は、量子化ステップサイズによる除算を含んでもよく、例えば、逆量子化ユニット210による対応するもの及び/又は逆の反量子化は、量子化ステップサイズによる乗算を含んでもよい。いくつかの標準、例えば、HEVCによる実施形態は、量子化ステップサイズを決定するために量子化パラメータを使用するように構成されてもよい。一般的に、量子化ステップサイズは、除算を含む式の固定点近似を使用して、量子化パラメータに基づいて計算されてもよい。量子化ステップサイズ及び量子化パラメータについての式の固定点近似において使用されるスケーリングのため、変更され得る残差ブロックのノルムを復元するために、量子化及び反量子化のための更なるスケーリングファクタが導入されてもよい。1つの例示的な実現方式では、逆変換及び反量子化のスケーリングは組み合わされてもよい。代替として、カスタマイズされた量子化テーブルが使用され、例えば、ビットストリームでエンコーダからデコーダにシグナリングされてもよい。量子化は非可逆動作であり、量子化ステップサイズの増加に伴い損失が増加する。
【0087】
ビデオエンコーダ20の実施形態(それぞれ、量子化ユニット208)は、例えば、直接或いはエントロピー符号化ユニット270を介して符号化される、量子化パラメータ(QP, quantization parameter)を出力するように構成されてもよく、それにより、例えば、ビデオデコーダ30は、復号のために量子化パラメータを受信して適用してもよい。
【0088】
逆量子化
逆量子化ユニット210は、例えば、量子化ユニット208と同じ量子化ステップサイズに基づいて或いはこれを使用して、量子化ユニット208により適用された量子化方式の逆を適用することにより、量子化された係数に対して量子化ユニット208の逆量子化を適用して、反量子化された係数211を取得するように構成される。反量子化された係数211はまた、反量子化された残差係数211とも呼ばれ、典型的には量子化による損失のため変換係数と同一ではないが、変換係数207に対応してもよい。
【0089】
逆変換
逆変換処理ユニット212は、変換処理ユニット206により適用された変換の逆変換、例えば、逆離散コサイン変換(DCT, discrete cosine transform)若しくは逆離散サイン変換(DST, discrete sine transform)又は他の逆変換を適用して、サンプルドメインにおける再構成された残差ブロック213(又は対応する反量子化された係数213)を取得するように構成される。再構成された残差ブロック213はまた、変換ブロック213とも呼ばれてもよい。
【0090】
再構成
再構成ユニット214(例えば、加算器又は合計器214)は、変換ブロック213(すなわち、再構成された残差ブロック213)を予測ブロック265に加算して、例えば、再構成された残差ブロック213のサンプル値と予測ブロック265のサンプル値とをサンプル毎に加算することにより、サンプルドメインにおける再構成されたブロック215を取得するように構成される。
【0091】
フィルタリング
ループフィルタユニット220(又は略して「ループフィルタ」220)は、再構成されたブロック215をフィルタリングして、フィルタリングされたブロック221を取得するように、或いは一般的に、再構成されたサンプルをフィルタリングして、フィルタリングされたサンプル値を取得するように構成される。ループフィルタユニットは、例えば、ピクセル遷移を円滑化するように、或いは、ビデオ品質を改善するように構成される。ループフィルタユニット220は、デブロッキングフィルタ、サンプル適応オフセット(SAO, sample-adaptive offset)フィルタ又は1つ以上の他のフィルタ、例えば、適応ループフィルタ(ALF, adaptive loop filter)、ノイズ抑制フィルタ(NSF, noise suppression filter)又はこれらのいずれかの組み合わせのような1つ以上のループフィルタを含んでもよい。一例では、ループフィルタユニット220は、デブロッキングフィルタ、SAOフィルタ及びALFフィルタを含んでもよい。フィルタリングプロセスの順序は、デブロッキングフィルタ、SAO及びALFでもよい。他の例では、クロマスケーリングを伴うルママッピング(LMCS, luma mapping with chroma scaling)(すなわち、適応インループリシェーパ)と呼ばれるプロセスが追加される。このプロセスはデブロッキングの前に実行される。他の例では、デブロッキングフィルタプロセスはまた、内部サブブロックエッジ、例えば、アフィンサブブロックエッジ、ATMVPサブブロックエッジ、サブブロック変換(SBT, sub-block transform)エッジ及びイントラサブパーティション(ISP, intra sub-partition)エッジに適用されてもよい。ループフィルタユニット220はインループフィルタであるとして
図2に示されているが、他の構成では、ループフィルタユニット220はポストループフィルタとして実現されてもよい。フィルタリングされたブロック221はまた、フィルタリングされた再構成ブロック221とも呼ばれてもよい。
【0092】
ビデオエンコーダ20の実施形態(それぞれ、ループフィルタユニット220)は、例えば、直接或いはエントロピー符号化ユニット220を介して符号化される、ループフィルタパラメータ(SAOフィルタパラメータ又はALFフィルタパラメータ又はLMCSパラメータ等)を出力するように構成されてもよく、それにより、例えば、デコーダ30は、復号のために同じループフィルタパラメータ又はそれぞれのループフィルタを受信して適用してもよい。
【0093】
復号ピクチャバッファ
復号ピクチャバッファ(DPB, decoded picture buffer)230は、ビデオエンコーダ20によりビデオデータを符号化するために、参照ピクチャ又は一般的に参照ピクチャデータを記憶するメモリでもよい。DPB230は、シンクロナスDRAM(SDRAM, synchronous DRAM)を含むダイナミックランダムアクセスメモリ(DRAM, dynamic random access memory)、磁気抵抗RAM(MRAM, magnetoresistive RAM)、抵抗RAM(RRAM, resistive RAM)、又は他のタイプのメモリデバイスのような様々なメモリデバイスのうちいずれかにより形成されてもよい。復号ピクチャバッファ(DPB, decoded picture buffer)230は、1つ以上のフィルタリングされたブロック221を記憶するように構成されてもよい。復号ピクチャバッファ230は、同じ現在ピクチャ又は異なるピクチャ、例えば、前に再構成されたピクチャの他の前にフィルタリングされたブロック、例えば、前に再構成されてフィルタリングされたブロック221を記憶するように更に構成されてもよく、例えば、インター予測のために、完全な前に再構成された、すなわち、復号されたピクチャ(及び対応する参照ブロック及びサンプル)、及び/又は部分的に再構成された現在ピクチャ(及び対応する参照ブロック及びサンプル)を提供してもよい。復号ピクチャバッファ(DPB, decoded picture buffer)230はまた、1つ以上のフィルタリングされていない再構成ブロック215、又は一般的には、例えば、再構成されたブロック215がループフィルタユニット220によりフィルタリングされない場合には、フィルタリングされていない再構成サンプル、又は再構成されたブロック若しくはサンプルのいずれかの他の更に処理されたバージョンを記憶するように構成されてもよい。
【0094】
モード選択(パーティション及び予測)
モード選択ユニット260は、パーティションユニット262と、インター予測ユニット244と、イントラ予測ユニット254とを含み、元のピクチャデータ、例えば、元のブロック203(現在ピクチャ17の現在ブロック203)と、再構成ピクチャデータ、例えば、同じ(現在)ピクチャの及び/又は1つ又は複数の前に復号されたピクチャからの、例えば、復号ピクチャバッファ230又は他のバッファ(例えば、図示しないラインバッファ)からのフィルタリングされた及び/又はフィルタリングされていない再構成サンプル又はブロックとを受信又は取得するように構成される。再構成ピクチャデータは、予測ブロック265又は予測子265を取得するために、予測、例えば、インター予測又はイントラ予測のための参照ピクチャデータとして使用される。
【0095】
モード選択ユニット260は、現在ブロック予測モードについてのパーティション(パーティションしないことを含む)と、予測モード(例えば、イントラ又はインター予測モード)とを決定又は選択し、残差ブロック205の計算のため且つ再構成ブロック215の再構成のために使用される対応する予測ブロック265を生成するように構成されてもよい。
【0096】
モード選択ユニット260の実施形態は、最良の適合若しくは言い換えると最小残差(最小残差は送信又は記憶のためのより良い圧縮を意味する)又は最小シグナリングオーバヘッド(最小シグナリングオーバヘッドは送信又は記憶のためのより良い圧縮を意味する)を提供するか、或いは、双方を考慮するか或いはバランスさせるパーティション及び予測モードを(例えば、モード選択ユニット260によりサポートされるか或いは利用可能なものから)選択するように構成されてもよい。モード選択ユニット260は、レート歪み最適化(RDO, rate distortion optimization)に基づいて、パーティション及び予測モードを決定するように、すなわち、最小のレート歪みを提供する予測モードを選択するように構成されてもよい。この文脈における「最良」、「最小」、「最適」等のような用語は、必ずしも全体的な「最良」、「最小」、「最適」等を示すとは限らず、閾値を超えるか或いはそれよりも下である値のような終了若しくは選択基準、又は潜在的に「準最適選択」をもたらすが複雑さ及び処理時間を低減する他の制約の充足を示してもよい。
【0097】
言い換えると、パーティションユニット262は、ビデオシーケンスからのピクチャをコーディングツリーユニット(CTU, coding tree unit)のシーケンスにパーティションするように構成されてもよく、CTU203は、例えば、四分木パーティション(QT, quad-tree-partitioning)、二分木パーティション(BT, binary partitioning)若しくは三分木パーティション(TT, triple-tree-partitioning)又はこれらのいずれかの組み合わせを繰り返し使用して、より小さいブロックパーティション又はサブブロック(これも再びブロックを形成する)に更にパーティションされてもよく、ブロックパーティション又はサブブロックのそれぞれについて予測を実行し、モード選択は、パーティションされたブロック203の木構造の選択を含み、予測モードは、ブロックパーティション又はサブブロックのそれぞれに適用される。
【0098】
以下に、例示的なビデオエンコーダ20により実行される(例えば、パーティションユニット260による)パーティション及び(インター予測ユニット244及びイントラ予測ユニット254による)予測処理について更に詳細に説明する。
【0099】
パーティション
パーティションユニット262は、ビデオシーケンスからのピクチャをコーディングツリーユニット(CTU, coding tree unit)のシーケンスにパーティションするように構成されてもよく、パーティションユニット262は、コーディングツリーユニット(CTU, coding tree unit)203を、より小さいパーティション、例えば正方形又は長方形サイズのより小さいブロックにパーティション(又は分割)してもよい。3つのサンプル配列を有するピクチャについて、CTUは、ルマサンプルのN×Nブロックから、クロマサンプルの2つの対応するブロックと共に構成される。CTU内のルマブロックの最大許容サイズは、策定中のバーサタイルビデオコーディング(VVC, versatile video coding)では128×128と指定されているが、将来128×128ではない値、例えば256×256と指定される可能性がある。ピクチャのCTUは、スライス/タイルグループ、タイル又はブリックとしてクラスタ化/グループ化されてもよい。タイルは、ピクチャの長方形領域をカバーし、タイルは、1つ以上のブリックに分割できる。ブリックは、タイル内の複数のCTU行から構成される。複数のブリックにパーティションされないタイルは、ブリックと呼ばれることができる。しかし、ブリックはタイルの真のサブセットであり、タイルとは呼ばれない。VVCでサポートされるタイルグループの2つのモード、すなわち、ラスタ走査スライス/タイルグループモード及び長方形スライスモードが存在する。ラスタ走査タイルグループモードでは、スライス/タイルグループは、ピクチャのタイルラスタ走査におけるタイルのシーケンスを含む。長方形スライスモードでは、スライスは、ピクチャの長方形領域をまとめて形成するピクチャの多数のブリックを含む。長方形スライス内のブリックは、スライスのブリックラスタ走査の順序になっている。これらのより小さいブロック(サブブロックとも呼ばれてもよい)は、一層小さいパーティションに更にパーティションされてもよい。これはまた、ツリーパーティション又は階層ツリーパーティションとも呼ばれ、例えば、ルートツリーレベル0(階層レベル0、深度0)におけるルートブロックは、再帰的にパーティションされ、例えば、次のより下のツリーレベルの2つ以上のブロック、例えば、ツリーレベル1(階層レベル1、深度1)におけるノードにパーティションされてもよく、これらのブロックは、例えば、終了基準が充足されたため、例えば、最大ツリー深度又は最小ブロックサイズに達したため、パーティションが終了するまで、再び、次のより下のツリーレベル、例えば、ツリーレベル2(階層レベル2、深度2)の2つ以上のブロックにパーティションされる、等でもよい。更にパーティションされないブロックはまた、ツリーのリーフブロック又はリーフノードとも呼ばれる。2つのパーティションへのパーティションを使用するツリーは、二分木(BT, binary-tree)と呼ばれ、3つのパーティションへのパーティションを使用するツリーは三分木(TT, ternary-tree)と呼ばれ、4つのパーティションへのパーティションを使用するツリーは四分木(QT, quad-tree)と呼ばれる。
【0100】
例えば、コーディングツリーユニット(CTU, coding tree unit)は、ルマサンプルのCTB、3つのサンプル配列を有するピクチャのクロマサンプルの2つの対応するCTB、又はモノクロピクチャ若しくは3つの別個の色平面及びサンプルをコーディングするために使用されるシンタックス構造を使用してコーディングされるピクチャのサンプルのCTBでもよく或いはこれを含んでもよい。対応して、コーディングツリーブロック(CTB, coding tree block)は、何らかの値のNについて、サンプルのN×Nブロックでもよく、それにより、CTBへの成分の分割はパーティションである。コーディングユニット(CU, coding unit)は、ルマサンプルのコーディングブロック、3つのサンプル配列を有するピクチャのクロマサンプルの2つの対応するコーディングブロック、又はモノクロピクチャ若しくは3つの別個の色平面及びサンプルをコーディングするために使用されるシンタックス構造を使用してコーディングされるピクチャのサンプルのコーディングブロックでもよく或いはこれを含んでもよい。対応して、コーディングブロック(CB, coding block)は、何らかの値のM及びNについて、サンプルのM×Nブロックでもよく、それにより、コーディングブロックへのCTBの分割はパーティションである。
【0101】
例えば、HEVCによる実施形態では、コーディングツリーユニット(CTU, coding tree unit)は、コーディングツリーとして示される四分木構造を使用することによりCUに分割されてもよい。インターピクチャ(時間)予測を使用してピクチャ領域をコーディングするか、イントラピクチャ(空間)予測を使用してピクチャ領域をコーディングするかの判断は、リーフCUレベルで行われる。各リーフCUは、PU分割タイプに従って、1つ、2つ又は4つのPUに更に分割できる。1つのPU内で、同じ予測プロセスが適用され、関連情報がPU毎にデコーダに送信される。PU分割タイプに基づいて予測プロセスを適用することにより残差ブロックを取得した後に、リーフCUは、CUについてのコーディングツリーと同様の他の四分木構造に従って、変換ユニット(TU, transform unit)にパーティションできる。
【0102】
例えば、バーサタイルビデオコーディング(VVC, Versatile Video Coding)と呼ばれる現在策定中の最新のビデオコーディング標準による実施形態では、二分割及び三分割セグメント化構造を使用する結合された四分木ネスト型マルチタイプツリーが、例えば、コーディングツリーユニットをパーティションするために使用される。コーディングツリーユニット内のコーディングツリー構造では、CUは正方形又は長方形形状のいずれかを有することができる。例えば、コーディングツリーユニット(CTU, coding tree unit)は、まず、四分木によりパーティションされる。次いで、四分木リーフノードは、マルチタイプツリー構造により更にパーティションできる。マルチタイプツリー構造には、4つの分割タイプ、すなわち、垂直二分割(SPLIT_BT_VER)、水平二分割(SPLIT_BT_HOR)、垂直三分割(SPLIT_TT_VER)及び水平三分割(SPLIT_TT_HOR)が存在する。マルチタイプツリーリーフノードは、コーディングユニット(CU, coding unit)と呼ばれ、CUが最大変換長にとって大きすぎない限り、このセグメント化は、更なるパーティションなしで予測及び変換処理に使用される。これは、ほとんどの場合、CU、PU及びTUがネスト型マルチタイプツリーのコーディングブロック構造を有する四分木において同じブロックサイズを有することを意味する。例外は、最大サポート変換長がCUの色成分の幅又は高さよりも小さいときに発生する。VVCは、ネスト型マルチタイプツリーのコーディングツリー構造を有する四分木におけるパーティション分割情報の独特のシグナリングメカニズムを策定している。当該シグナリングメカニズムでは、コーディングツリーユニット(CTU, coding tree unit)は四分木のルートとして扱われ、まず、四分木構造によりパーティションされる。次いで、各四分木リーフノード(それを許容するほど十分に大きいとき)は、マルチタイプツリー構造により更にパーティションされる。マルチタイプツリー構造では、第1のフラグ(mtt_split_cu_flag)は、ノードが更にパーティションされるか否かを示すためにシグナリングされ、ノードが更にパーティションされるとき、第2のフラグ(mtt_split_cu_vertical_flag)は、分割方向を示すためにシグナリングされ、次いで、第3のフラグ(mtt_split_cu_binary_flag)は、分割が二分割であるか三分割であるかを示すためにシグナリングされる。mtt_split_cu_vertical_flag及びmtt_split_cu_binary_flagの値に基づいて、CUのマルチタイプツリー分割モード(MttSplitMode)は、所定のルール又はテーブルに基づいてデコーダにより導出できる。
図6に示すように、特定の設計、例えば、VVCハードウェアデコーダにおける64×64ルマブロック及び32×32クロマパイプライン設計では、ルマコーディングブロックの幅又は高さのいずれかが64よりも大きいとき、TT分割は禁止される。クロマコーディングブロックの幅又は高さのいずれかが32よりも大きいときも、TT分割は禁止される。パイプライン設計は、ピクチャを仮想パイプラインデータユニット(VPDU, Virtual pipeline data unit)に分割し、これらは、ピクチャ内の重複しないユニットとして定義される。ハードウェアデコーダでは、連続するVPDUが複数のパイプライン段により同時に処理される。VPDUサイズは、ほとんどのパイプライン段においてバッファサイズにほぼ比例するので、VPDUサイズを小さく保持することが重要である。ほとんどのハードウェアデコーダでは、VPDUサイズは最大変換ブロック(TB, transform block)サイズに設定できる。しかし、VVCでは、三分木(TT, ternary tree)及び二分木(BT, binary tree)パーティションはVPDUサイズの増加をもたらす可能性がある。
【0103】
さらに、ツリーノードブロックの一部が下側又は右側ピクチャ境界を超えるとき、ツリーノードブロックは、全てのコーディングされたCUの全てのサンプルがピクチャ境界内に位置するまで、強制的に分割される点に留意すべきである。
【0104】
一例として、イントラサブパーティション(ISP, Intra Sub-Partitions)ツールは、ブロックサイズに依存して、ルマイントラ予測ブロックを垂直又は水平に2つ又は4つのサブパーティションに分割してもよい。
【0105】
一例では、ビデオエンコーダ20のモード選択ユニット260は、ここに記載のパーティション技術のいずれかの組み合わせを実行するように構成されてもよい。
【0106】
上記のように、ビデオエンコーダ20は、(例えば、予め決定された)予測モードのセットから最良又は最適な予測モードを決定又は選択するように構成される。予測モードのセットは、例えば、イントラ予測モード及び/又はインター予測モードを含んでもよい。
【0107】
イントラ予測
イントラ予測モードのセットは、35個の異なるイントラ予測モード、例えば、DC(又は平均)モード及びプラナーモードのような非方向性モード、又は例えば、HEVCで定義されたような方向性モードを含んでもよく、或いは、67個の異なるイントラ予測モード、例えば、DC(又は平均)モード及びプラナーモードのような非方向性モード、又は例えば、VVCについて定義されたような方向性モードを含んでもよい。一例として、いくつかの従来の角度イントラ予測モードは、例えばVVCにおいて定義されたような非正方形ブロックのための広角イントラ予測モードに適応的に置き換えられる。他の例として、DC予測のための分割動作を回避するために、長辺のみが非正方形ブロックについての平均を計算するために使用される。さらに、プラナーモードのイントラ予測の結果は、位置依存イントラ予測結合(PDPC, position dependent intra prediction combination)方法により更に修正されてもよい。
【0108】
イントラ予測ユニット254は、イントラ予測モードのセットのうち或るイントラ予測モードに従ってイントラ予測ブロック265を生成するために、同じ現在ピクチャの隣接ブロックの再構成されたサンプルを使用するように構成される。
【0109】
イントラ予測ユニット254(又は一般的にモード選択ユニット260)は、符号化ピクチャデータ21に含めるためにシンタックスエレメント226の形式で、イントラ予測パラメータ(又は一般的にブロックについて選択されたイントラ予測モードを示す情報)をエントロピー符号化ユニット270に出力するように更に構成され、それにより、例えば、ビデオデコーダ30は、復号のために予測パラメータを受信して使用してもよい。
【0110】
インター予測
インター予測モードのセット(又は可能なもの)は、利用可能な参照ピクチャ(すなわち、例えば、DBP230に記憶された、前の少なくとも部分的に復号されたピクチャ)及び他のインター予測パラメータ、例えば、最良の適合する参照ブロックを探索するために全体の参照ピクチャが使用されるか、参照ピクチャの部分のみ、例えば、現在ブロックの領域の周辺の探索ウインドウ領域が使用されるか、及び/又は、例えば、ピクセル補間、例えばハーフ/セミペル、4分の1ペル及び/又は1/16ペル補間が適用されるか否かに依存する。
【0111】
上記の予測モードに加えて、スキップモード、直接モード及び/又は他のインター予測モードが適用されてもよい。
【0112】
例えば、拡張マージ予測では、このようなモードのマージ候補リストは、順に以下の5つのタイプの候補、すなわち、空間隣接CUからの空間MVP、同一位置のCUからの時間MVP、FIFOテーブルからの履歴ベースMVP、対の平均MVP及びゼロMVを含めることにより構成される。さらに、マージモードのMVの精度を高めるために、バイラテラルマッチングベースのデコーダ側動きベクトル精緻化(DMVR, decoder-side motion vector refinement)が適用されてもよい。MVDを伴うマージモード(MMVD, Merge mode with MVD)は、動きベクトル差(MVD, motion vector difference)を伴うマージモードに由来する。MMVDモードがCUに使用されるか否かを指定するために、スキップフラグ及びマージフラグを送信した直後にMMVDフラグがシグナリングされる。さらに、CUレベルの適応動きベクトル精度(AMVR, adaptive motion vector resolution)方式が適用されてもよい。AMVRは、CUのMVDが異なる精度でコーディングされることを可能にする。現在のCUについての予測モードに依存して、現在のCUのMVDが適応的に選択できる。CUがマージモードでコーディングされるとき、結合インター/イントラ予測(CIIP, combined inter/intra prediction)モードが現在のCUに適用されてもよい。CIIP予測を取得するために、インター及びイントラ予測信号の加重平均が実行される。アフィン動き補償予測では、ブロックのアフィン動き場は、2つの制御点(4パラメータ)又は3つの制御点動きベクトル(6パラメータ)の動き情報により記述される。サブブロックベースの時間動きベクトル予測(SbTMVP, sub-block-based temporal motion vector prediction)は、HEVCにおける時間動きベクトル予測(TMVP, temporal motion vector prediction)と同様であるが、現在のCU内のサブCUの動きベクトルを予測する。以前はBIOと呼ばれていた双方向オプティカルフロー(BDOF, bi-directional optical flow)は、特に乗算の数及び乗算器のサイズに関して非常に少ない計算量を必要とするより簡単なバージョンである。三角パーティションモードでは、このようなモードで、CUは、対角分割又は非対角分割のいずれかを使用して2つの三角形の形状のパーティションに均等に分割される。その上、双予測モードは、2つの予測信号の加重平均を可能にするために、単純平均を越えて拡張される。
【0113】
インター予測ユニット244は、動き推定(ME, motion estimation)ユニット及び動き補償(ME, motion compensation)ユニット(双方とも
図2に図示せず)を含んでもよい。動き推定ユニットは、動き推定のために、ピクチャブロック203(現在ピクチャ17の現在ブロック203)及び復号ピクチャ231、又は少なくとも1つ若しくは複数の前に再構成されたブロック、例えば、1つ若しくは複数の他の/異なる前の復号ピクチャ231の再構成されたブロックを受信又は取得するように構成されてもよい。例えば、ビデオシーケンスは、現在ピクチャ及び前の復号ピクチャ231を含んでもよく、或いは言い換えると、現在ピクチャ及び前の復号ピクチャ231は、ビデオシーケンスを形成するピクチャのシーケンスの一部でもよく或いはこれを形成してもよい。
【0114】
エンコーダ20は、例えば、複数の他のピクチャの同じ或いは異なるピクチャの複数の参照ブロックから参照ブロックを選択し、参照ピクチャ(又は参照ピクチャインデックス)及び/又は参照ブロックの位置(x,y座標)と現在ブロックの位置との間のオフセット(空間オフセット)を、インター予測パラメータとして動き推定ユニットに提供するように構成されてもよい。このオフセットはまた、動きベクトル(MV, motion vector)とも呼ばれる。
【0115】
動き補償ユニットは、インター予測パラメータを取得し、例えば、受信し、インター予測パラメータに基づいて或いはこれを使用してインター予測を実行して、インター予測ブロック265を取得するように構成される。動き補償ユニットにより実行される動き補償は、動き推定により決定された動き/ブロックベクトルに基づいて、予測ブロックをフェッチ又は生成し、場合によってはサブピクセル精度への補間を実行することを含んでもよい。補間フィルタリングは、既知のピクセルサンプルから更なるピクセルサンプルを生成してもよく、したがって、ピクチャブロックをコーディングするために使用され得る候補予測ブロックの数を潜在的に増加させる。現在ピクチャブロックのPUの動きベクトルを受信すると、動き補償ユニットは、参照ピクチャリストのうち1つの中で動きベクトルが指す予測ブロックを見つけてもよい。
【0116】
動き補償ユニットはまた、ビデオスライスのピクチャブロックを復号する際にビデオデコーダ30による使用のために、ブロック及びビデオスライスに関連するシンタックスエレメントを生成してもよい。スライス及びそれぞれのシンタックスエレメントに加えて或いはその代替として、タイルグループ及び/又はタイル及びそれぞれのシンタックスエレメントが生成又は使用されてもよい。
【0117】
エントロピーコーディング
エントロピー符号化ユニット270は、量子化された係数209、インター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ及び/又は他のシンタックスエレメントに対して、例えば、エントロピー符号化アルゴリズム又は方式(例えば、可変長コーディング(VLC, variable length coding)方式、コンテキスト適応型VLC方式(CAVLC, context adaptive VLC, scheme)、算術コーディング方式、二値化、コンテキスト適応型バイナリ算術コーディング(CABAC, context adaptive binary arithmetic coding)、シンタックスベースのコンテキスト適応型バイナリ算術コーディング(SBAC, syntax-based context-adaptive binary arithmetic coding)、確率区間区分エントロピー(PIPE, probability interval partitioning entropy)コーディング又は他のエントロピー符号化方法若しくは技術)を適用するか或いは迂回して(非圧縮)、例えば、符号化ビットストリーム21の形式で出力272を介して出力できる符号化ピクチャデータ21を取得するように構成され、それにより、例えば、ビデオデコーダ30は、復号のためにパラメータを受信して使用してもよい。符号化ビットストリーム21は、ビデオデコーダ39に送信されてもよく、或いは、ビデオデコーダ30による後の送信又は取り出しのためにメモリに記憶されてもよい。
【0118】
ビデオエンコーダ20の他の構造的変形は、ビデオストリームを符号化するために使用できる。例えば、非変換ベースのエンコーダ20は、特定のブロック又はフレームについて、変換処理ユニット206なしに、残差信号を直接量子化できる。他の実現方式では、エンコーダ20は、単一のユニットに結合された量子化ユニット208及び逆量子化ユニット210を有することができる。
【0119】
デコーダ及び復号方法
図3は、本願の技術を実現するように構成されたビデオデコーダ30の例を示す。ビデオデコーダ30は、復号ピクチャ331を取得するために、例えば、エンコーダ20により符号化された符号化ピクチャデータ21(例えば、符号化ビットストリーム21)を受信するように構成される。符号化ピクチャデータ又はビットストリームは、符号化ピクチャデータを複合するための情報、例えば、符号化ビデオスライス(及び/又はタイルグループ又はタイル)のピクチャブロック及び関連するシンタックスエレメントを表すデータを含む。
【0120】
図3の例では、デコーダ30は、エントロピー復号ユニット304と、逆量子化ユニット310と、逆変換処理ユニット312と、再構成ユニット314(例えば、合計器314)と、ループフィルタ320と、復号ピクチャバッファ(DBP, decoded picture buffer)330と、モード適用ユニット360と、インター予測ユニット344と、イントラ予測ユニット354とを含む。インター予測ユニット344は、動き補償ユニットでもよく或いはこれを含んでもよい。ビデオデコーダ30は、いくつかの例では、
図2からビデオエンコーダ100に関して説明した符号化経路と一般的に逆の復号経路を実行してもよい。
【0121】
エンコーダ20に関して説明したように、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループフィルタ220、復号ピクチャバッファ(DPB, decoded picture buffer)230、インター予測ユニット344及びイントラ予測ユニット354はまた、ビデオエンコーダ20の「内蔵デコーダ」を形成するとも呼ばれてもよい。したがって、逆量子化ユニット310は逆量子化ユニット110と機能的に同一でもよく、逆変換処理ユニット312は逆変換処理ユニット212と機能的に同一でもよく、再構成ユニット314は再構成ユニット214と機能的に同一でもよく、ループフィルタ320はループフィルタ220と機能的に同一でもよく、復号ピクチャバッファ330は復号ピクチャバッファ230と機能的に同一でもよい。したがって、ビデオ20エンコーダのそれぞれのユニット及び機能について提供された説明は、対応して、ビデオデコーダ30のそれぞれのユニット及び機能に適用する。
【0122】
エントロピー復号
エントロピー復号ユニット304は、ビットストリーム21(又は一般的には符号化ピクチャデータ21)をパースし、例えば、符号化ピクチャデータ21に対してエントロピー復号を実行して、例えば、量子化された係数309及び/又は復号されたコーディングパラメータ(
図3に図示せず)、例えば、インター予測パラメータ(例えば、参照ピクチャインデックス及び動きベクトル)、イントラ予測パラメータ(例えば、イントラ予測モード又はインデックス)、変換パラメータ、量子化パラメータ、ループフィルタパラメータ及び/又は他のシンタックスエレメントのうちいずれか又は全てを取得するように構成される。エントロピー復号ユニット304は、エンコーダ20のエントロピー符号化ユニット270に関して説明したような符号化方式に対応する復号アルゴリズム又は方式を適用するように構成されてもよい。エントロピー復号ユニット304は、インター予測パラメータ、イントラ予測パラメータ及び/又は他のシンタックスエレメントをモード適用ユニット360に提供し、他のパラメータをデコーダ30の他のユニットに提供するように更に構成されてもよい。ビデオデコーダ30は、ビデオスライスレベル及び/又はビデオブロックレベルのシンタックスエレメントを受信してもよい。スライス及びそれぞれのシンタックスエレメントに加えて或いはその代替として、タイルグループ及び/又はタイル及びそれぞれのシンタックスエレメントが受信及び/又は使用されてもよい。
【0123】
逆量子化
逆量子化ユニット310は、符号化ピクチャデータ21から(例えば、エントロピー復号ユニット304により例えばパース及び/又は復号することにより)量子化パラメータ(QP, quantization parameter)(又は一般的に逆量子化に関する情報)及び量子化された係数を受信し、量子化パラメータに基づいて、復号済みの量子化された係数309に対して逆量子化を適用して、変換係数311とも呼ばれてもよい反量子化された係数311を取得するように構成されてもよい。逆量子化プロセスは、量子化の程度、及び同様に適用されるべき逆量子化の程度を決定するために、ビデオスライス(又はタイル若しくはタイルグループ)内の各ビデオブロックについてビデオエンコーダ20により決定された量子化パラメータの使用を含んでもよい。
【0124】
逆変換
逆変換処理ユニット312は、変換係数311とも呼ばれる反量子化された係数311を受信し、サンプルドメインにおいて再構成された残差ブロック213を取得するために反量子化された係数311に変換を適用するように構成されてもよい。再構成された残差ブロック213はまた、変換ブロック313とも呼ばれてもよい。変換は、逆変換、例えば、逆DCT、逆DST、逆整数変換又は概念的に同様の逆変換プロセスでもよい。逆変換処理ユニット312は、符号化ピクチャデータ21から(例えば、エントロピー復号ユニット304により例えばパース及び/又は復号することにより)変換パラメータ又は対応する情報を受信して、反量子化された係数311に適用されるべき変換を決定するように更に構成されてもよい。
【0125】
再構成
再構成ユニット314(例えば、加算器又は合計器314)は、再構成された残差ブロック313を予測ブロック365に加算して、例えば、再構成された残差ブロック313のサンプル値と予測ブロック365のサンプル値とを加算することにより、サンプルドメインにおける再構成されたブロック315を取得するように構成されてもよい。
【0126】
フィルタリング
(コーディングループ内又はコーディングループの後のいずれかの)ループフィルタユニット320は、再構成されたブロック315をフィルタリングして、フィルタリングされたブロック321を取得するように、例えば、ピクセル遷移を円滑化するように或いはビデオ品質を改善するように構成される。ループフィルタユニット320は、デブロッキングフィルタ、サンプル適応オフセット(SAO, sample-adaptive offset)フィルタ又は1つ以上の他のフィルタ、例えば、適応ループフィルタ(ALF, adaptive loop filter)、ノイズ抑制フィルタ(NSF, noise suppression filter)又はこれらのいずれかの組み合わせのような1つ以上のループフィルタを含んでもよい。一例では、ループフィルタユニット220は、デブロッキングフィルタ、SAOフィルタ及びALFフィルタを含んでもよい。フィルタリングプロセスの順序は、デブロッキングフィルタ、SAO及びALFでもよい。他の例では、クロマスケーリングを伴うルママッピング(LMCS, luma mapping with chroma scaling)(すなわち、適応インループリシェーパ)と呼ばれるプロセスが追加される。このプロセスはデブロッキングの前に実行される。他の例では、デブロッキングフィルタプロセスはまた、内部サブブロックエッジ、例えば、アフィンサブブロックエッジ、ATMVPサブブロックエッジ、サブブロック変換(SBT, sub-block transform)エッジ及びイントラサブパーティション(ISP, intra sub-partition)エッジに適用されてもよい。ループフィルタユニット320はインループフィルタであるとして
図3に示されるが、他の構成では、ループフィルタユニット320はポストループフィルタとして実現されてもよい。
【0127】
復号ピクチャバッファ
ピクチャの復号ビデオブロック321は、次いで、他のピクチャのための後の動き補償のための参照ピクチャとして及び/又はそれぞれの表示の出力のために復号ピクチャ331を記憶する復号ピクチャバッファ330に記憶される。
【0128】
デコーダ30は、ユーザへの提示又は閲覧のために、例えば、出力312を介して復号ピクチャ331を出力するように構成される。
【0129】
予測
インター予測ユニット344は、インター予測ユニット244(特に、動き補償ユニット)と同一でもよく、イントラ予測ユニット354は、インター予測ユニット254と機能的に同一でもよく、パーティション及び/又は予測パラメータ又は符号化ピクチャデータ21から(例えば、エントロピー復号ユニット304により例えばパース及び/又は復号することにより)受信したそれぞれの情報に基づいて、分割又はパーティション判断及び予測を実行する。モード適用ユニット360は、再構成ピクチャ、ブロック又はそれぞれの(フィルタリングされた或いはフィルタリングされていない)サンプルに基づいて、ブロック毎に予測(イントラ又はインター予測)を実行して、予測ブロック365を取得するように構成されてもよい。
【0130】
ビデオスライスがイントラコーディングされた(I, intra-coded)スライスとしてコーディングされるとき、モード適用ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モード及び現在ピクチャの前に復号されたブロックからのデータに基づいて、現在ビデオスライスのピクチャブロックについて予測ブロック365を生成するように構成される。ビデオピクチャがインターコーディングされた(すなわち、B又はP)スライスとしてコーディングされるとき、モード適用ユニット360のインター予測ユニット344(例えば、動き補償ユニット)は、エントロピー復号ユニット304から受信した動きベクトル及び他のシンタックスエレメントに基づいて、現在ビデオスライスのビデオブロックについて予測ブロック365を生成するように構成される。インター予測では、予測ブロックは、参照ピクチャリストのうち1つの中の参照ピクチャのうち1つから生成されてもよい。ビデオデコーダ30は、DPB330に記憶された参照ピクチャに基づいて、デフォルト構成技術を使用して、参照フレームリスト、リスト0及びリスト1を構成してもよい。同じ又は同様のものが、スライス(例えば、ビデオスライス)に加えて或いはその代替として、タイルグループ(例えば、ビデオタイルグループ)及び/又はタイル(例えば、ビデオタイル)を使用する実施形態に或いはそれにより適用されてもよく、例えば、ビデオは、I、P又はBタイルグループ及び/又はタイルを使用してコーディングされてもよい。
【0131】
モード適用ユニット360は、動きベクトル又は関連情報及び他のシンタックスエレメントをパースすることにより、現在ビデオスライスのビデオブロックについて予測情報を決定するように構成され、復号されている現在ビデオブロックについて予測ブロックを生成するために予測情報を使用する。例えば、モード適用ユニット360は、受信したシンタックスエレメントのうちいくつかを使用して、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(例えば、イントラ又はインター予測)、インター予測スライスタイプ(例えば、Bスライス、Pスライス又はGPBスライス)、スライスの参照ピクチャリストのうち1つ以上についての構成情報、スライスの各インター符号化ビデオブロックの動きベクトル、スライスの各インターコーディングされたビデオブロックについてのインター予測状態、及び現在ビデオスライス内のビデオブロックを復号するための他の情報を決定する。同じ又は同様の手法が、スライス(例えば、ビデオスライス)に加えて或いはその代替として、タイルグループ(例えば、ビデオタイルグループ)及び/又はタイル(例えば、ビデオタイル)を使用する実施形態に或いはそれにより適用されてもよく、例えば、ビデオは、I、P又はBタイルグループ及び/又はタイルを使用してコーディングされてもよい。
【0132】
図3に示すようなビデオデコーダ30の実施形態は、スライス(ビデオスライスとも呼ばれる)を使用することによりピクチャをパーティション及び/又は復号するように構成されてもよく、ピクチャは、(典型的には重複しない)1つ以上のスライスにパーティションされてもよく或いはこれを使用して復号されてもよく、各スライスは、1つ以上のブロック(例えば、CTU)又は1つ以上のブロックのグループ(例えば、タイル(H.265/HEVC及びVVC又はブリック(VVC))を含んでもよい。
【0133】
図3に示すようなビデオデコーダ30の実施形態は、スライス/タイルグループ(ビデオタイルグループとも呼ばれる)及び/又はタイル(ビデオタイルとも呼ばれる)を使用することによりピクチャをパーティション及び/又は復号するように構成されてもよく、ピクチャは、(典型的には重複しない)1つ以上のスライス/タイルグループにパーティションされてもよく或いはこれを使用して復号されてもよく、各スライス/タイルグループは、例えば、1つ以上のブロック(例えば、CTU)又は1つ以上のタイルを含んでもよく、各タイルは、例えば長方形形状でもよく、1つ以上のブロック(例えば、CTU)、例えば完全な或いは部分的なブロックを含んでもよい。
【0134】
ビデオデコーダ30の他の変形は、符号化ピクチャデータ21を復号するために使用できる。例えば、デコーダ30は、ループフィルタユニット320なしに、出力ビデオストリームを生成できる。例えば、非変換ベースのデコーダ30は、特定のブロック又はフレームについて、逆変換処理ユニット312なしに、残差信号を直接逆量子化できる。他の実現方式では、ビデオデコーダ30は、単一のユニットに結合された逆量子化ユニット310及び逆変換処理ユニット312を有することができる。
【0135】
エンコーダ20及びデコーダ30において、現在のステップの処理結果は更に処理され、次いで次のステップに出力されてもよいことが理解されるべきである。例えば、補間フィルタリング、動きベクトル導出又はループフィルタリングの後に、クリップ又はシフトのような更なる動作が、補間フィルタリング、動きベクトル導出又はループフィルタリングの処理結果に対して実行されてもよい。
【0136】
更なる動作は、現在ブロックの導出された動きベクトル(アフィンモードの制御点動きベクトル、アフィン、プラナー、ATMVPモードにおけるサブブロック動きベクトル、時間動きベクトル等を含むが、これらに限定されない)に適用されてもよい点に留意すべきである。例えば、動きベクトルの値は、その表現ビットに従って所定の範囲に制約される。動きベクトルの表現ビットがbitDepthである場合、範囲は-2^(bitDepth-1)~2^(bitDepth-1)-1であり、「^」は累乗を意味する。例えば、bitDepthが16に等しく設定された場合、範囲は-32768~32767であり、bitDepthが18に等しく設定された場合、範囲は-131072~131071である。例えば、導出された動きベクトルの値(例えば、1つの8×8ブロック内の4つの4×4サブブロックのMV)は、4つの4×4サブブロックのMVの整数部分の間の最大差が、1ピクセルよりも多くない等のNピクセルよりも多くないように制約される。ここで、bitDepthに従って動きベクトルを制約するための2つの方法を提供する。
【0137】
図4は、本開示の実施形態によるビデオコーディングデバイス400の概略図である。ビデオコーディングデバイス400は、ここに説明するような開示の実施形態を実現するのに適する。実施形態では、ビデオコーディングデバイス400は、
図1Aのビデオデコーダ30のようなデコーダ又は
図1Aのビデオエンコーダ20のようなエンコーダでもよい。
【0138】
ビデオコーディングデバイス400は、データを受信するための入口ポート410(又は入力ポート410)及び受信機ユニット(Rx)420と、データを処理するためのプロセッサ、論理ユニット又は中央処理装置(CPU, central processing unit)430と、データを送信するための送信機ユニット(Tx)440及び出口ポート450(又は出力ポート450)と、データを記憶するためのメモリ460とを含む。ビデオコーディングデバイス400はまた、光若しくは電気信号の出口又は入口のための、入口ポート410、受信機ユニット420、送信機ユニット440及び出口ポート450に結合された光電気(OE, optical-to-electrical)コンポーネント及び電気光(EO, electrical-to-optical)コンポーネントを含んでもよい。
【0139】
プロセッサ430は、ハードウェア及びソフトウェアにより実現される。プロセッサ430は、1つ以上のCPUチップ、コア(例えば、マルチコアプロセッサ)、FPGA、ASIC及びDSPとして実現されてもよい。プロセッサ430は、入口ポート410、受信機ユニット420、送信機ユニット440、出口ポート450及びメモリ460と通信する。プロセッサ430は、コーディングモジュール470を含む。コーディングモジュール470は、上記に記載する開示の実施形態を実現する。例えば、コーディングモジュール470は、様々なコーディング動作を実現、処理、準備又は提供する。したがって、コーディングモジュール470に含まれるものは、ビデオコーディングデバイス400の機能に実質的な改善を提供し、異なる状態へのビデオコーディングデバイス400の変換をもたらす。代替として、コーディングモジュール470は、メモリ460に記憶されてプロセッサ430により実行される命令として実現される。
【0140】
メモリ460は、1つ以上のディスク、テープドライブ及びソリッドステートドライブを含んでもよく、プログラムが実行のために選択されるときこのようなプログラムを記憶するため且つプログラムの実行中に読み取られる命令及びデータを記憶するためのオーバフローデータ記憶デバイスとして使用されてもよい。メモリ460は、例えば、揮発性及び/又は不揮発性でもよく、読み取り専用メモリ(ROM, read-only memory)、ランダムアクセスメモリ(RAM, random access memory)、三値連想メモリ(TCAM, ternary content-addressable memory)及び/又はスタティックランダムアクセスメモリ(SRAM, static random-access memory)でもよい。
【0141】
図5は、例示的な実施形態による
図1Aからのソースデバイス12及び宛先デバイス14の一方又は双方として使用されてもよい装置500の簡略ブロック図である。
【0142】
装置500内のプロセッサ502は、中央処理装置とすることができる。代替として、プロセッサ502は、現在存在するか或いは今後開発される、情報を操作又は処理できるいずれかの他のタイプのデバイス又は複数のデバイスとすることができる。開示の実現方式は図示のように単一のプロセッサ、例えばプロセッサ502で実施できるが、速度及び効率における利点は、1つよりも多くのプロセッサを使用して達成できる。
【0143】
装置500内のメモリ504は、実現方式では、読み取り専用メモリ(ROM, read only memory)デバイス又はランダムアクセスメモリ(RAM, random access memory)デバイスとすることができる。いずれかの他の適切なタイプの記憶デバイスが、メモリ504として使用できる。メモリ504は、バス512を使用してプロセッサ502によりアクセスされるコード及びデータ506を含むことができる。メモリ504は、オペレーティングシステム508及びアプリケーションプログラム510を更に含むことができ、アプリケーションプログラム510は、プロセッサ502がここに記載の方法を実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム510は、ここに記載の方法を実行するビデオコーディングアプリケーションを更に含むアプリケーション1~Nを含むことができる。
【0144】
装置500はまた、ディスプレイ518のような1つ以上の出力デバイスを含むことができる。ディスプレイ518は、一例では、タッチ入力を感知するよう動作可能なタッチセンシティブ素子とディスプレイを結合したタッチセンシティブディスプレイでもよい。ディスプレイ518は、バス512を介してプロセッサ502に結合できる。
【0145】
ここでは単一のバスとして示されるが、装置500のバス512は複数のバスで構成できる。さらに、2次ストレージ514は、装置500の他のコンポーネントに直接結合でき、或いは、ネットワークを介してアクセスでき、メモリカードのような単一の統合ユニット又は複数のメモリカードのような複数のユニットを含むことができる。したがって、装置500は、広範な構成で実現できる。
【0146】
シーケンスパラメータセット(SPS, sequence parameter set)フラグの使用は、ビットストリームにおいてピクチャをそのコーディング表現から再構成するために使用されるコーディングアルゴリズムを制御するための(例えば、AVC、HEVC、VVCからの)周知の技術である。例えば、sps_sao_enabledフラグが1である場合、SAOアルゴリズムが再構成ピクチャを取得するために使用され、そうでなく、sps_sao_enabledフラグが0である場合、SAOは使用されず、既存のSPS制御フラグのいずれかと同様である。
【0147】
プロファイリングメカニズム
ビデオコーデックにおける重要なタスクはプロファイル定義であり、これは、ビデオデコーダが受信したビットストリームと互換性があることを保証するために使用される。この目的のため、ビデオコーディング標準は、通常では、特定のクラスのアプリケーションを対象として、プロファイルと呼ばれるいくつかのセットの能力を定義する。これらは、プロファイルコード(profile_idc)と、場合によってはエンコーダにおいて適用される更なる制限のセットとを使用して宣言される。プロファイルコード及び示される制限は、デコーダがその特定のビットストリームを復号するための要件を認識することを可能にする。(また、多くのシステム環境では、1つ又は2つのプロファイルのみが使用されることが許可されているので、これらの環境におけるデコーダは、あまり一般的に使用されていないプロファイルを認識することに関心を持つ必要はない。)MPEG-5/EVCでは、profile_idcメカニズムの他に、toolset_idcメソッドと呼ばれるコーディングツール制限の拡張が存在する。これは{0,1}の要素の更なる配列のシグナリングを仮定しており、各ビットは1つの特定のコーデック機能に対応し、例えば、コーディングアルゴリズムは、SPS制御フラグにより制御されて、以下のようにこのツールの使用に更なる制限を加えて、復号ピクチャに影響を与える。toolset_idc内の特定のビットが1に等しい場合、対応するSPSフラグは1又は0とすることができる。そうでない場合、対応するSPSフラグは0に等しいものとする。より一般的には、いずれかの特定のSPSフラグは、toolse_idc配列内の対応するビット以下であるものとする。
【0148】
以下のシンタックステーブルは、EVC toolset_idcシグナリングの方法を提供する。
【表1】
【0149】
以下の表は、EVCにおけるtoolset_idc値に基づくSPSフラグの制限を提供する。
【表2】
【0150】
従来技術では、toolset_idcメカニズムは、SPSフラグ値を0に制限することのみを許容し、SPSフラグを1に制限する方法は存在しない点に留意すべきである。
【0151】
これを考慮して、本開示は、下方境界及び上方境界の双方からの機能をサポートするようにtoolset_idcメカニズムを拡張することにより、この問題を克服する。言い換えると、本開示による解決策は、0及び1の双方のSPSフラグ値を強制させるために使用できる。
【0152】
この解決策を達成するために、本開示は、tools_idc_Lと呼ばれる1つの更なるシンタックスエレメントをspsに導入し、これは、SPSフラグを下方境界から制限すること、すなわち、それぞれのSPSフラグの最小許容値を意図する。
【0153】
更なるシンタックスエレメントはまた、tools_idc_l(下記参照)として示さてもよく、同じ目的、すなわち、SPSフラグを下方境界から制限すること、すなわち、それぞれのSPSフラグの最小許容値を意図する点に留意すべきである。
【0154】
本発明の第1の実施形態では、tools_idc(tools_idc_H)SPSフラグに加えて、1つ以上のSPSフラグtools_idc_Lが導入される。以下の表は、実施形態によるSPSシグナリングの例を提供する。
【表3】
【0155】
toolset_idc_H及びtoolset_idc_Lシンタックスエレメントの使用は以下に与えられる。
【表4】
【0156】
1に等しいsps_btt_flagは、二分割及び三分割が使用されることを指定する。0に等しいsps_btt_flagは、二分割及び三分割が使用されず、四分割のみが使用されることを指定する。
【0157】
1に等しいsps_suco_flagは、分割ユニットのコーディング順序が使用されることを指定する。0に等しいsps_suco_flagは、分割ユニットのコーディング順序が使用されないことを指定する。
【0158】
1に等しいsps_affine_flagは、アフィンモデルに基づく動き補償がインター予測に使用できることを指定する。0に等しいsps_affine_flagは、CVSにおいてアフィンモデルベースの動き補償が使用されないようにシンタックスが制限されるものであることを指定し、affine_flag、affine_merge_idx及びaffine_mode_flagは、CVSのコーディングユニットのシンタックスに存在しない。sps_affine_flagが存在しないとき、これは0に等しいと推定される。
【0159】
1に等しいsps_amvr_flagは、適応動きベクトル精度が使用されることを指定する。0に等しいsps_amvr_flagは、適応動きベクトル精度が使用されないことを指定する。sps_amvr_flagが存在しないとき、これは0に等しいと推定される。
【0160】
1に等しいsps_dmvr_flagは、デコーダ側動きベクトル洗練化が使用できることを指定する。0に等しいsps_dmvr_flagは、デコーダ側動きベクトル洗練化が使用されないことを指定する。sps_dmvr_flagが提示されないとき、これは0に等しいと推定される。
【0161】
1に等しいsps_mmvd_flagは、MMVDが使用できることを指定する。0に等しいsps_mmvd_flagは、MMVDが使用されないことを指定する。sps_mmvd_flagが存在しないとき、これは0に等しいと推定される。
【0162】
1に等しいsps_alf_flagは、適応ループフィルタが適用できることを指定する。0に等しいsps_alf_flagは、適応ループフィルタが適用されないことを指定する。
【0163】
1に等しいsps_admvp_flagは、高度動きベクトル予測、シグナリング及び補間が使用されることを指定する。0に等しいsps_admvp_flagは、高度動きベクトル予測、シグナリング及び補間が使用されないことを指定する。
【0164】
1に等しいsps_eipd_flagは、拡張イントラ予測モードが使用されることを指定する。0に等しいsps_eipd_flagは、拡張イントラ予測モードが使用されないことを指定する。
【0165】
1に等しいsps_ibc_flagは、イントラブロックコピーを使用できることを指定する。0に等しいsps_ibc_flagは、イントラブロックコピーが使用されないことを指定する。sps_ibc_flagが存在しないとき、これは0に等しいと推定される。
【0166】
1に等しいsps_cm_init_flagは、コンテキストモデリング及び初期化プロセスが使用されることを指定する。0に等しいsps_cm_init_flagは、コンテキストモデリング及び初期化プロセスが使用されないことを指定する。
【0167】
1に等しいsps_adcc_flagは、高度残差コーディングが使用されることを指定する。0に等しいsps_adcc_flagは、ランレングス残差コーディングが使用されることを指定する。sps_adcc_flagが提示されないとき、これは0に等しいと推定される。
【0168】
1に等しいsps_iqt_flagは、改善された量子化及び変換が使用されることを指定する。0に等しいsps_iqt_flagは、改善された量子化及び変換が使用されないことを指定する。
【0169】
1に等しいsps_ats_flagは、ats_cu_intra_flag及びats_cu_inter_flagがCVSの残差コーディングシンタックスに存在してもよいことを指定する。0に等しいsps_ats_flagは、ats_cu_intra_flag及びats_cu_inter_flagがCVSの残差コーディングシンタックスに存在しないことを指定する。存在しないとき、sps_ats_flagの値は0に等しいと推定される。
【0170】
1に等しいsps_addb_flagは、高度デブロッキングフィルタが適用できることを指定する。0に等しいsps_addb_flagは、デブロックフィルタが適用できることを指定する。
【0171】
1に等しいsps_alf_flagは、適応ループフィルタが適用できることを指定する。0に等しいsps_alf_flagは、適応ループフィルタが適用されないことを指定する。
【0172】
1に等しいsps_htdf_flagは、アダマール変換ドメインフィルタが適用できることを指定する。0に等しいsps_htdf_flagは、アダマール変換ドメインフィルタが適用されないことを指定する。
【0173】
1に等しいsps_rpl_flagは、参照ピクチャリストに関連するシンタックスが存在することを指定する。0に等しいsps_rpl_flagは、参照ピクチャリストに関連するシンタックスが存在しないことを指定する。
【0174】
1に等しいsps_pocs_flagは、ピクチャオーダカウントに関連するシンタックスが存在することを指定する。0に等しいsps_pocs_flagは、ピクチャオーダカウントに関するシンタックスが存在しないことを指定する。
【0175】
1に等しいsps_dquant_flagは、改善されたデルタqpシグナリングプロセスが使用されることを指定する。0に等しいsps_dquant_flagは、改善されたデルタqpシグナリングプロセスが使用されないことを指定する。sps_btt_flag及びsps_admvp_flagの双方が0に等しいとき、sps_dquant_flagは0に等しいものとする。
【0176】
1に等しいsps_cm_init_flagは、コンテキストモデリング及び初期化プロセスが使用されることを指定する。0に等しいsps_cm_init_flagは、コンテキストモデリング及び初期化プロセスが使用されないことを指定する。
【0177】
1に等しいsps_addb_flagは、高度デブロッキングフィルタが適用できることを指定する。0に等しいsps_addb_flagは、デブロックフィルタが適用できることを指定する。
【0178】
言い換えると、全ての特定のSPSフラグは、toolset_idc_H及びtoolset_idc_Lシンタックスエレメントにより定義される範囲内にあるものとする。
【0179】
上記の表は、技術の使用例を提供しているに過ぎず、他のセットのSPSフラグ及び/又はSPSフラグと{0,1}要素の配列との間の他のマッピングに単に適用される点に留意すべきである。
【0180】
本発明の第1の実施形態の変更では、tools_idc(tools_idc_h)SPSフラグに加えて、1つ以上のSPSフラグtools_idc_hが導入される。以下の表は、この変更された実施形態によるSPSシグナリングの例を提供する。
【表5】
【0181】
toolset_idc_h及びtoolset_idc_lシンタックスエレメントの使用が以下に与えられる。
【0182】
toolset_idc_hは、以下の表に指定されるようにCVSが適合する制限のセットを示す。
【0183】
シンタックスエレメントtoolset_idc_h内の特定のビットが0に等しい場合、以下の表に従って、対応するSPSフラグは0に等しいものとする。
【0184】
そうでなく、シンタックスエレメントtoolset_idc_h内のビット値が1に等しいとき、以下の表に従って、対応するSPSフラグ値は制限されない。
【0185】
toolset_idc_lは、以下の表に指定されるようにCVSが適合する制限のセットを示す。
【0186】
シンタックスエレメントtoolset_idc_l内の特定のビットが1に等しい場合、以下の表に従って、対応するSPSフラグは1に等しいものとする。
【0187】
そうでなく、シンタックスエレメントtoolset_idc_l内のビット値が0に等しいとき、以下の表に従って、対応するSPSフラグ値は制限されない。
【0188】
- (toolset_idc_l|toolset_idc_h)の値はtoolset_idc_hに等しいものとする。
【表6】
【0189】
言い換えると、全ての特定のspsフラグは、toolset_idc_h及びtoolset_idc_lシンタックスエレメントにより定義される範囲にあるものとする。
【0190】
上記に示す変更された第1の実施形態の表も、技術の使用例を提供しているに過ぎず、他のセットのSPSフラグ及び/又はSPSフラグと{0,1}要素の配列との間の他のマッピングに単に適用される点に留意すべきである。
【0191】
図8は、本開示の実施形態によるビデオビットストリームの復号のための方法のフローチャートを示す。
図8に示す方法は、復号デバイスにより実現されるビデオビットストリームの復号のための方法であり、ビデオビットストリームは、1つ以上のシーケンスパラメータセット(SPS, sequence parameter set)フラグを表すデータを含み、当該方法は、1つ以上のSPSフラグのうち或るSPSフラグについて、ビデオビットストリームをパースすることにより、それぞれSPSフラグの2つの変数を取得するステップであり、2つの変数のうち1つの変数の値はSPSフラグの最小許容値であり、2つの変数のうち他の変数の値はSPSフラグの最大許容値である、ステップ(1601)と、ビデオビットストリームをパースすることにより、SPSフラグの値を取得するステップ(1603)と、2つの変数の値に基づいてSPSフラグの値が有効であるか否かを評価するステップ(1605)と、SPSフラグの値が有効である場合、SPSフラグの値に従ってビデオビットストリームを復号するステップ(1607)とを含む。
【0192】
図9は、本開示の実施形態によるビデオビットストリームの復号のための、
図8の方法に対応するものでもよい。
図9に示すデコーダ30は、ビデオビットストリームの復号のためのデコーダ30であり、ビデオビットストリームは、1つ以上のシーケンスパラメータセット(SPS, sequence parameter set)フラグを表すデータを含み、当該デコーダは、1つ以上のSPSフラグのうち或るSPSフラグについて、ビデオビットストリームをパースすることにより、それぞれ2つの変数を取得するように構成された第1の取得ユニット3001であり、2つの変数のうち1つの変数の値はSPSフラグの最小許容値であり、2つの変数のうち他の変数の値はSPSフラグの最大許容値である、第1の取得ユニット3001と、ビデオビットストリームをパースすることにより、SPSフラグの値を取得するように構成された第2の取得ユニット3003と、2つの変数の値に基づいてSPSフラグの値が有効であるか否かを評価するように構成された評価ユニット3005と、SPSフラグの値が有効である場合、SPSフラグの値に従ってビデオビットストリームを復号するように構成された復号ユニット3007とを含む。
【0193】
ここで、ユニットは、プロセッサによる実行のためのソフトウェアモジュール又は処理回路でもよい。
【0194】
ここで、第1の取得ユニット3001及び第2の取得ユニット3003の双方は、エントロピー復号ユニット304でもよい。評価ユニット3005及び復号ユニット3007の双方は、
図3におけるSPSフラグに関連するユニットでもよい。デコーダ30は、宛先デバイス14、装置500、ビデオデコーダ3206又は端末デバイス3106でもよい。
【0195】
図10は、本開示の実施形態によるビデオビットストリームの符号化のための方法のフローチャートを示す。
図10に示す方法は、符号化デバイスにより実現されるビデオビットストリームの符号化のための方法であり、ビデオビットストリームは、1つ以上のシーケンスパラメータセット(SPS, sequence parameter set)フラグを表すデータを含み、当該方法は、1つ以上のSPSフラグのうち或るSPSフラグについて、それぞれSPSフラグの2つの変数を設定するステップであり、2つの変数のうち1つの変数の値はSPSフラグの最小許容値であり、2つの変数のうち他の変数の値はSPSフラグの最大許容値である、ステップ(1701)と、SPSフラグの2つの変数に従ってSPSフラグの値を決定するステップ(1703)と、SPSフラグの値及びSPSフラグの2つの変数をビデオビットストリームに符号化するステップ(1705)とを含む。
【0196】
図11は、本開示の実施形態によるビデオビットストリームの符号化のための、
図10の方法に対応するものでもよい。
図11に示すエンコーダは、ビデオビットストリームの符号化のためのエンコーダ20であり、ビデオビットストリームは、1つ以上のシーケンスパラメータセット(SPS, sequence parameter set)フラグを表すデータを含み、当該エンコーダは、1つ以上のSPSフラグのうち或るSPSフラグについて、それぞれ2つの変数を設定するように構成された設定ユニット2001であり、2つの変数のうち1つの変数の値はSPSフラグの最小許容値であり、2つの変数のうち他の変数の値はSPSフラグの最大許容値である、設定ユニット2001と、SPSフラグの2つの変数に従ってSPSフラグの値を決定するように構成された決定ユニット2003と、SPSフラグの値及びSPSフラグの2つの変数をビットストリームに符号化するように構成された符号化ユニット2005とを含む。
【0197】
ここで、ユニットは、プロセッサによる実行のためのソフトウェアモジュール又は処理回路でもよい。
【0198】
ここで、符号化ユニット2005は、エントロピー符号化ユニット270でもよい。設定ユニット2001及び決定ユニット2003の双方は、
図2におけるSPSフラグに関連するユニットでもよい。エンコーダ20は、ソースデバイス12又は装置500でもよい。
【0199】
以下に、上記の実施形態に示す符号化方法及び復号方法並びにこれらを使用したシステムの適用の説明を提供する。
【0200】
図6は、コンテンツ配信サービスを実現するためのコンテンツ供給システム3100を示すブロック図である。このコンテンツ供給システム3100は、キャプチャデバイス3102、端末デバイス3106を含み、任意選択でディスプレイ3126を含む。キャプチャデバイス3102は、通信リンク3104上で端末デバイス3106と通信する。通信リンクは、上記の通信チャネル13を含んでもよい。通信リンク3104は、WIFI、イーサネット、ケーブル、無線(3G/4G/5G)、USB又はこれらのいずれかの種類の組み合わせ等を含むが、これらに限定されない。
【0201】
キャプチャデバイス3102は、データを生成し、上記の実施形態に示すような符号化方法によりデータを符号化してもよい。代替として、キャプチャデバイス3102は、データをストリーミングサーバ(図面に図示せず)に配信してもよく、サーバは、データを符号化し、符号化データを端末デバイス3106に送信する。キャプチャデバイス3102は、カメラ、スマートフォン若しくはパッド、コンピュータ若しくはラップトップ、ビデオ会議システム、PDA、車載デバイス又はこれらのうちいずれかの組み合わせ等を含むが、これらに限定されない。例えば、キャプチャデバイス3102は、上記のようなソースデバイス12を含んでもよい。データがビデオを含むとき、キャプチャデバイス3102に含まれるビデオエンコーダ20は、実際に、ビデオ符号化処理を実行してもよい。データがオーディオ(すなわち、音声)を含むとき、キャプチャデバイス3102に含まれるオーディオエンコーダは、実際に、オーディオ符号化処理を実行してもよい。いくつかの実際のシナリオでは、キャプチャデバイス3102は、符号化ビデオ及びオーディオデータを、これらを一緒に多重化することにより配信する。他の実際のシナリオでは、例えば、ビデオ会議システムにおいて、符号化オーディオデータ及び符号化ビデオデータは多重化されない。キャプチャデバイス3102は、符号化オーディオデータ及び符号化ビデオデータを端末デバイス3106に別個に配信する。
【0202】
コンテンツ供給システム3100では、端末デバイス310は、符号化データを受信して再生する。端末デバイス3106は、上記の符号化データを復号できるスマートフォン若しくはパッド3108、コンピュータ若しくはラップトップ3110、ネットワークビデオレコーダ(NVR, network video recorder)/デジタルビデオレコーダ(DVR, digital video recorder)3112、TV3114、セットトップボックス(STB, set top box)3116、ビデオ会議システム3118、ビデオ監視システム3120、パーソナルデジタルアシスタント(PDA, personal digital assistant)3122、車載デバイス3124又はこれらのうちいずれかの組合せ等のような、データ受信及び復元能力を有するデバイスでもよい。例えば、端末デバイス3106は、上記のような宛先デバイス14を含んでもよい。符号化データがビデオを含むとき、端末デバイスに含まれるビデオデコーダ30は、ビデオ復号を実行するように優先される。符号化データがオーディオを含むとき、端末デバイスに含まれるオーディオデコーダは、オーディオ復号処理を実行するように優先される。
【0203】
自身のディスプレイを有する端末デバイス、例えば、スマートフォン若しくはパッド3108、コンピュータ若しくはラップトップ3110、ネットワークビデオレコーダ(NVR, network video recorder)/デジタルビデオデコーダ(DVR, digital video recorder)3112、TV3114、パーソナルデジタルアシスタント(PDA, personal digital assistant)3122又は車載デバイス3124では、端末デバイスは、復号データを自身のディスプレイに供給できる。ディスプレイを備えない端末デバイス、例えば、STB3116、ビデオ会議システム3118又はビデオ監視システム3120では、外部ディスプレイ3126が、復号データを受信して表示するために自身に接触される。
【0204】
このシステム内の各デバイスが符号化又は復号を実行するとき、上記の実施形態において示すように、ピクチャ符号化デバイス又はピクチャ復号デバイスが使用できる。
【0205】
図7は、端末デバイス3106の例の構造を示す図である。端末デバイス3106がキャプチャデバイス3102からストリームを受信した後に、プロトコル処理ユニット3202は、ストリームの送信プロトコルを分析する。プロトコルは、リアルタイムストリーミングプロトコル(RTSP, Real Time Streaming Protocol)、ハイパーテキスト転送プロトコル(HTTP, Hyper Text Transfer Protocol)、HTTPライブストリーミングプロトコル(HLS, HTTP Live streaming protocol)、MPEG-DASH、リアルタイムトランスポートプロトコル(RTP, Real-time Transport protocol)、リアルタイムメッセージングプロトコル(RTMP, Real Time Messaging Protocol)又はいずれかの種類のこれらの組み合わせ等を含むが、これらに限定されない。
【0206】
プロトコル処理ユニット3202がストリームを処理した後に、ストリームファイルが生成される。ファイルは、逆多重化ユニット3204に出力される。逆多重化ユニット3204は、多重化データを符号化オーディオデータ及び符号化ビデオデータに分離できる。上記のように、いくつかの実際のシナリオでは、例えば、ビデオ会議システムにおいて、符号化オーディオデータ及び符号化ビデオデータは多重化されない。この状況では、符号化データは、逆多重化ユニット3204を通過せずにビデオデコーダ3206及びオーディオデコーダ3208に送信される。
【0207】
逆多重化処理を介して、ビデオエレメンタリストリーム(ES, elementary stream)、オーディオES及び任意選択のサブタイトルが生成される。上記の実施形態において説明したようなビデオデコーダ30を含むビデオデコーダ3206は、上記の実施形態において示すような復号方法によりビデオESを復号して、ビデオフレームを生成し、このデータを同期ユニット3212に供給する。オーディオデコーダ3208は、オーディオESを復号してオーディオフレームを生成し、このデータを同期ユニット3212に供給する。代替として、ビデオフレームは、同期ユニット3212に供給する前に、バッファ(
図7に図示せず)に記憶してもよい。同様に、オーディオフレームは、同期ユニット3212に供給する前に、バッファ(
図7に図示せず)に記憶してもよい。
【0208】
同期ユニット3212は、ビデオフレーム及びオーディオフレームを同期させ、ビデオ/オーディオをビデオ/オーディオディスプレイ3214に供給する。例えば、同期ユニット3212は、ビデオ及びオーディオ情報の提示を同期させる。情報は、コーディングされたオーディオ及び視覚データの提示に関するタイムスタンプと、データストリーム自身の配信に関するタイムスタンプとを使用してシンタックス内にコーディングしてもよい。
【0209】
サブタイトルがストリームに含まれる場合、サブタイトルデコーダ3210は、サブタイトルを復号し、これをビデオフレーム及びオーディオフレームと同期させ、ビデオ/オーディオ/サブタイトルをビデオ/オーディオ/サブタイトルディスプレイ3216に供給する。
【0210】
本発明は、上記のシステムに限定されず、上記の実施形態におけるピクチャ符号化デバイス又はピクチャ復号デバイスのいずれかは、他のシステム、例えば車両システムに組み込まれることができる。
【0211】
数学演算子
本願で使用される数学演算子は、Cプログラミング言語で使用されるものと同様である。しかし、整数除算及び算術シフト演算の結果は、より正確に定義され、指数計算及び実数値の除算のような更なる演算子が定義される。番号付け及び計数規則は、一般的に0から始まり、例えば、「第1」は0番目と等価であり、「第2」は1番目と等価である、等である。
【0212】
論理演算子
以下の論理演算子は以下のように定義される。
【表7】
【0213】
論理演算子
以下の論理演算子は以下のように定義される。
x&&y x及びyのブール論理「積」
x||y x及びyのブール論理「和」
! ブール論理「否定」
x?y:z xが真である場合又は0に等しくない場合、yの値に評価され、そうでない場合、zの値に評価される
【0214】
関係演算子
以下の関係演算子は以下のように定義される。
> よりも大きい
>= 以上
< 未満
<= 以下
== 等しい
!= 等しくない
関係演算子が値「na」(not applicable)を割り当てられたシンタックスエレメント又は変数に適用されるとき、値「na」は、シンタックスエレメント又は変数の個別の値として扱われる。値「na」は、いずれかの他の値に等しくないと考えられる。
【0215】
ビット演算子
以下のビット演算子は以下のように定義される。
& ビット毎の「積」。整数の引数に対して演算するとき、整数値の2の補数表現に対して演算する。他の引数よりも少ないビットを含む二値の引数に対して演算するとき、より短い引数は、0に等しいより上位のビットを追加することにより拡張される。
| ビット毎の「和」。整数の引数に対して演算するとき、整数値の2の補数表現に対して演算する。他の引数よりも少ないビットを含む二値の引数に対して演算するとき、より短い引数は、0に等しいより上位のビットを追加することにより拡張される。
^ ビット毎の「排他和」。整数の引数に対して演算するとき、整数値の2の補数表現に対して演算する。他の引数よりも少ないビットを含む二値の引数に対して演算するとき、より短い引数は、0に等しいより上位のビットを追加することにより拡張される。
x>>y y個の二進数字によるxの2の補数整数表現の算術右シフト。この関数は、yの非負整数値についてのみ定義される。右シフトの結果としての最上位ビット(MSB, most significant bit)にシフトされたビットは、シフト演算前のxのMSBに等しい値を有する。
x<<y y個の二進数字によるxの2の補数整数表現の算術左シフト。この関数は、yの非負整数値についてのみ定義される。左シフトの結果としての最下位ビット(LSB, least significant bit)にシフトされたビットは、0に等しい値を有する。
【0216】
代入演算子
以下の代入演算子は以下のように定義される。
= 代入演算子
++ インクリメント。すなわち、x++はx=x+1に等しい。配列インデックスにおいて使用されるとき、インクリメント演算の前の変数の値に評価される。
-- デクリメント。すなわち、x--はx=x-1に等しい。配列インデックスにおいて使用されるとき、デクリメント演算の前の変数の値に評価される。
+= 指定された量だけのインクリメント。すなわちx+=3はx=x+3に等しく、x+=(-3)はx=x+(-3)に等しい。
-= 指定された量だけのデクリメント。すなわちx-=3はx=x-3に等しく、x-=(-3)はx=x-(-3)に等しい。
【0217】
範囲表記
以下の表記が値の範囲を指定するために使用される。
x=y..z xはy以上z以下の整数値をとり、x、y及びzは整数であり、zはyよりも大きい。
【0218】
数学関数
以下の数学関数が定義される。
【数1】
Asin(x) 三角法の逆正弦関数。-1.0以上1.0以下の範囲にある引数xに対して演算し、ラジアンの単位の-π÷2以上π÷2以下の範囲の出力値を有する。
Atan(x) 三角法の逆正接関数。引数xに対して演算し、ラジアンの単位の-π÷2以上π÷2以下の範囲の出力値を有する。
【数2】
Ceil(x) x以上の最小の整数。
Clip1
Y(x)=Clip3(0,(1<<BitDepth
Y)-1,x)
Clip1
C(x)=Clip3(0,(1<<BitDepth
C)-1,x)
【数3】
Cos(x) ラジアンの単位の引数xに対して演算する三角法の余弦関数。
Floor(x) x以下の最大の整数。
【数4】
Ln(x) xの自然対数(eを底とする対数であり、eは自然対数の底の定数2.718281828...である)。
Log2(x) xの2を底とする対数。
Log10(x) xの10を底とする対数。
【数5】
【数6】
Round(x)=Sign(x)*Floor(Abs(x)+0.5)
【数7】
Sin(x) ラジアンの単位の引数xに対して演算する三角法の正弦関数。
Sqrt(x)=√x
Swap(x,y)=(y,x)
Tan(x) ラジアンの単位の引数xに対して演算する三角法の正接関数。
【0219】
演算優先順位
式の優先順位が括弧の使用により明示的に示されないとき、以下の規則が当てはまる。
-より高い優先度の演算は、より低い優先度のいずれかの演算の前に評価される。
-同じ優先度の演算は、左から右に順次評価される。
【0220】
以下の表は、最高から最低までの演算の優先度を指定し、表におけるより高い位置は、より高い優先度を示す。
【0221】
Cプログラミング言語でも使用される演算子については、本明細書で使用される優先順位は、Cプログラミング言語で使用される優先順位と同じである。
【表8】
【0222】
論理演算のテキスト記述
テキストにおいて、以下の形式:
if(条件0)
ステートメント0
else(条件1)
ステートメント1
...
else /*残りの条件に関する参考注記*/
ステートメントn
で数学的に記述されるような論理演算のステートメントは、以下の方式で記述されてもよい。
...以下の通り/...以下が当てはまる:
-条件0である場合、ステートメント0
-そうでなく、条件1である場合、ステートメント1
-...
-そうでない場合(残りの条件に関する参考注記)、ステートメントn
テキストにおけるそれぞれの「…である場合…、そうでなく、…である場合…、そうでない場合…」のステートメントは、「…である場合」が直後に続く「…以下の通り」又は「…以下が当てはまる」で導入される。「…である場合…、そうでなく、…である場合…、そうでない場合…」の最後の条件は、常に「そうでない場合、…」である。交互に配置される「…である場合…、そうでなく、…である場合…、そうでない場合…」のステートメントは、「そうでない場合、…」で終わる「…以下の通り」又は「…以下が当てはまる」に一致させることにより識別できる。
【0223】
テキストにおいて、以下の形式:
if(条件0a&&条件0b)
ステートメント0
else if(条件1a||条件1b)
ステートメント1
...
else
ステートメントn
で数学的に記述されるような論理演算のステートメントは、以下の方式で記述されてもよい。
...以下の通り/...以下が当てはまる:
-以下の条件の全てが真である場合、ステートメント0:
-条件0a
-条件0b
-そうでなく、以下の条件のうち1つ以上が真である場合、ステートメント1:
-条件1a
-条件1b
-…
-そうでない場合、ステートメントn
【0224】
テキストにおいて、以下の形式:
if(条件0)
ステートメント0
if(条件1)
ステートメント1
で数学的に記述されるような論理演算のステートメントは、以下の方式で記述されてもよい。
条件0であるとき、ステートメント0
条件1であるとき、ステートメント1
【0225】
本発明の実施形態について、主にビデオコーディングに基づいて説明したが、コーディングシステム10、エンコーダ20及びデコーダ30(及び対応してシステム10)の実施形態、並びにここに記載の他の実施形態はまた、静止画ピクチャ処理又はコーディング、すなわち、ビデオコーディングにおけるような、いずれかの前の或いは又は連続するピクチャと独立した個々のピクチャの処理又はコーディングについて構成されてもよい点に留意すべきである。一般的に、ピクチャ処理コーディングが単一のピクチャ17に限定される場合、インター予測ユニット244(エンコーダ)及び344(デコーダ)のみが利用可能でなくてもよい。ビデオエンコーダ20及びビデオデコーダ30の全ての他の機能(ツール又は技術とも呼ばれる)は、静止画ピクチャ処理、例えば、残差計算204/304、変換206、量子化208、逆量子化210/310、(逆)変換212/312、パーティション262/362、イントラ予測254/354、及び/又はループフィルタリング220、320、並びにエントロピーコーディング270及びエントロピー復号304に同等に使用されてもよい。
【0226】
例えば、エンコーダ20及びデコーダ30の実施形態、並びに、例えば、エンコーダ20及びデコーダ30に関してここに記載した機能は、ハードウェア、ソフトウェア、ファームウェア又はこれらのいずれかの組み合わせで実現されてもよい。ソフトウェアで実現される場合、機能は、1つ以上の命令又はコードとしてコンピュータ読み取り可能媒体に記憶され或いは通信媒体上で送信され、ハードウェアベースの処理ユニットにより実行されてもよい。コンピュータ読み取り可能媒体は、データ記憶媒体のような有形媒体に対応するコンピュータ読み取り可能記憶媒体、又は例えば、通信プロトコルに従って或る場所から他の場所へのコンピュータプログラムの転送を容易にするいずれかの媒体を含む通信媒体を含んでもよい。このように、コンピュータ読み取り可能媒体は、一般的に、(1)非一時的である有形コンピュータ読み取り可能記憶媒体、又は(2)信号若しくは搬送波のような通信媒体に対応してもよい。データ記憶媒体は、本開示に記載の技術の実現のために命令、コード及び/又はデータ構造を取り出すために、1つ以上のコンピュータ又は1つ以上のプロセッサによりアクセスできるいずれかの利用可能な媒体でもよい。コンピュータプログラム製品は、コンピュータ読み取り可能媒体を含んでもよい。
【0227】
限定ではなく例として、このようなコンピュータ読み取り可能記憶媒体は、RAM、ROM、EEPROM、CD-ROM若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、フラッシュメモリ、又は命令若しくはデータ構造の形式で所望のプログラムコードを記憶するために使用でき且つコンピュータによりアクセスできるいずれかの他の媒体を含むことができる。さらに、いずれかの接続は、適切にコンピュータ読み取り可能媒体と呼ばれる。例えば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL, digital subscriber line)、又は赤外線、無線及びマイクロ波のような無線技術を使用してウェブサイト、サーバ又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、又は赤外線、無線及びマイクロ波のような無線技術は、媒体の定義に含まれる。しかし、コンピュータ読み取り可能記憶媒体及びデータ記憶媒体は、接続、搬送波、信号又は他の一時的な媒体を含まないが、代わりに非一時的な有形記憶媒体を対象とすることが理解されるべきである。ディスク(disk)及びディクス(disc)は、ここで使用されるとき、コンパクトディスク(CD, compact disc)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD, digital versatile disc)、フロッピーディスク及びブルーレイディスクを含み、ディスク(disk)は通常ではデータを磁気的に再生し、ディスク(disc)はデータをレーザで光学的に再生する。上記の組み合わせも、コンピュータ読み取り可能媒体の範囲に含まれるべきである。
【0228】
命令は、1つ以上のデジタルシグナルプロセッサ(DSP, digital signal processor)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC, application specific integrated circuit)、フィールドプログラマブルロジックアレイ(FPGA, field programmable logic array)又は他の等価な集積若しくは個別論理回路のような1つ以上のプロセッサにより実行されてもよい。したがって、「プロセッサ」という用語は、ここで使用されるとき、上記の構造のうちいずれか又はここに記載の技術の実現方式に適したいずれかの他の構造を示してもよい。さらに、いくつかの態様では、ここに記載の機能は、符号化及び復号のために構成された専用のハードウェア及び/又はソフトウェアモジュール内に提供されてもよく或いは結合されたコーデックに組み込まれてもよい。さらに、技術は、1つ以上の回路又は論理素子に完全に実現されてもよい。
【0229】
本開示の技術は、無線ハンドセット、集積回路(IC, integrated circuit)又はICのセット(例えば、チップセット)を含む広範なデバイス又は装置に実現されてもよい。様々なコンポーネント、モジュール又はユニットは、開示の技術を実行するように構成されたデバイスの機能的側面を強調するように本開示において記載されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上記のように、様々なユニットは、適切なソフトウェア及び/又はファームウェアと組み合わせて、コーデックハードウェアユニットに結合されてもよく、或いは、上記のような1つ以上のプロセッサを含む相互運用ハードウェアユニットの集合により提供されてもよい。
【0230】
本開示は以下の12個の更なる態様を提供する。
【0231】
1.画像又はビデオデータを処理する方法の態様であり、当該方法は、
データの符号化表現を含むビットストリームのシグナリングされた特性に基づいて、デコーダがビットストリームを復号できるか否かを決定するステップを含み、
ビットストリームはコーディング仕様に準拠し、複数のシーケンスレベル(SPS)制御フラグを含み、
SPS制御フラグの空でないサブセットの要素毎に、{0,1}の集合からの2つの変数がシグナリングされ、
SPS制御フラグの空でないサブセットの各要素は、シグナリングされた変数のうち1つに等しい。
【0232】
2.態様1の方法の態様であり、{0,1}の集合からの2つの変数Li及びHiは、SPS制御フラグの空でないサブセットからの第iのSPSフラグの前に、ビットストリームにおいてシグナリングされ、Li≦spsi≦Hiであり、spsiは第iのSPSフラグである。
【0233】
3.態様2の方法の態様であり、SPS制御フラグの空でないサブセットからの全てのSPSフラグに対応する{0,1}の集合からの2つの変数は、{0,1}の集合からの要素を有する2つのベクトル、すなわち、toolset_idc_L=L0L1,...,Li,...Ln-1及びtoolset_idc_H=H0H1,...,Hi,...,Hn-1としてシグナリングされ、nはSPS制御フラグのサブセット内の要素の数である。
【0234】
4.復号デバイスにより実現されるビデオビットストリームの復号のための方法の態様であり、ビデオビットストリームは、複数のシーケンスレベル(SPS)制御フラグを表すデータを含み、復号方法は、SPS制御フラグのうち或るSPS制御フラグについて、ビデオビットストリームをパースすることにより、2つの変数を取得するステップであり、2つの変数のうち1つの変数の値はSPS制御フラグの値の下方境界であり、2つの変数のうち他の変数の値はSPS制御フラグの値の最大許容値である、ステップと、2つの変数に従って、SPSを参照してエンコーダのピクチャを復号するステップとを含む。
【0235】
5.態様4の方法の態様であり、当該方法は、2つの変数の双方が1に等しいとき、ビットストリームをパースせずに、SPS制御フラグの値が1であると決定するステップを更に含む。
【0236】
6.態様4の方法の態様であり、当該方法は、2つの変数の双方が0に等しいとき、ビットストリームをパースせずに、SPS制御フラグの値が0であると決定するステップを更に含む。
【0237】
7.態様1~6のうちいずれか1つによる方法を実行するための処理回路を含むエンコーダ(20)の態様。
【0238】
8.態様1~6のうちいずれか1つによる方法を実行するための処理回路を含むデコーダ(30)の態様。
【0239】
9.コンピュータ又はプロセッサ上で実行されたとき、上記の請求項のうちいずれか1項に記載の方法を実行するためのプログラムコードを含むコンピュータプログラム製品の態様。
【0240】
10.1つ以上のプロセッサと、プロセッサに結合されてプロセッサによる実行のためのプログラミングを記憶する非一時的なコンピュータ読み取り可能記憶媒体とを含み、プログラミングは、プロセッサにより実行されたとき、上記の態様のうちいずれか1つによる方法を実行するようにデコーダを構成する、デコーダの態様。
【0241】
11.1つ以上のプロセッサと、プロセッサに結合されてプロセッサによる実行のためのプログラミングを記憶する非一時的なコンピュータ読み取り可能記憶媒体とを含み、プログラミングは、プロセッサにより実行されたとき、上記の態様のうちいずれか1つによる方法を実行するようにエンコーダを構成する、エンコーダの態様。
【0242】
コンピュータデバイスにより実行されたとき、コンピュータデバイスに上記の態様のうちいずれか1つによる方法を実行させるプログラムコードを搬送する非一時的なコンピュータ読み取り可能媒体の態様。