(57)【要約】  コーディングされたビデオビットストリームを復号する方法が提供される。方法は、コーディングされたビデオビットストリーム内に示されたパラメータセットを解析するステップを含む。パラメータセットは、参照ピクチャリスト構造のセットを含んだシンタックス要素のセットを含む。また、方法は、コーディングされたビデオビットストリーム内に示された現在のスライスのスライスヘッダを解析するステップを含む。スライスヘッダは、パラメータセット内の参照ピクチャリスト構造のセットのうちの参照ピクチャリスト構造のインデックスを含む。方法は、パラメータセット内のシンタックス要素のセットおよび参照ピクチャリスト構造のインデックスに基づいて現在のスライスの参照ピクチャリストを導出するステップをさらに含む。また、方法は、参照ピクチャリストに基づいて現在のスライスの少なくとも1つの再構築されたブロックを取得するステップを含む。
2021534668.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデコーダによって実施される、コーディングされたビデオビットストリームを復号する方法であって、
前記コーディングされたビデオビットストリーム内に示されたパラメータセットを解析するステップであって、前記パラメータセットが、参照ピクチャリスト構造のセットを含んだシンタックス要素のセットを含む、ステップと、
前記コーディングされたビデオビットストリーム内に示された現在のスライスのスライスヘッダを解析するステップであって、前記スライスヘッダが、前記パラメータセット内の参照ピクチャリスト構造の前記セットのうちの参照ピクチャリスト構造のインデックスを含む、ステップと、
前記パラメータセット内のシンタックス要素の前記セットおよび前記参照ピクチャリスト構造の前記インデックスに基づいて前記現在のスライスの参照ピクチャリストを導出するステップと、
前記参照ピクチャリストに基づいて前記現在のスライスの少なくとも1つの再構築されたブロックを取得するステップと
を含む方法。
【請求項２】
前記参照ピクチャリスト構造のエントリの順序が、前記参照ピクチャリスト内の対応する参照ピクチャの順序と同じである、請求項1に記載の方法。
【請求項３】
エントリの順序が、ゼロから、示された値までである、請求項1または2に記載の方法。
【請求項４】
前記示された値が、ゼロから、sps_max_dec_pic_buffering_minus1によって示される値までである、請求項3に記載の方法。
【請求項５】
前記参照ピクチャリストが、指定されたRefPictList[0]である、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記参照ピクチャリストが、指定されたRefPictList[1]である、請求項1から4のいずれか一項に記載の方法。
【請求項７】
前記少なくとも1つの再構築されたブロックが、電子デバイスのディスプレイに表示される画像を生成するために使用される、請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記参照ピクチャリストが、インター予測のために使用される参照ピクチャのリストを含む、請求項1から7のいずれか一項に記載の方法。
【請求項９】
インター予測が、PスライスのためまたはBスライスのためのものである、請求項1から8のいずれか一項に記載の方法。
【請求項１０】
前記パラメータセットが、シーケンスパラメータセット(SPS)を含む、請求項1から9のいずれか一項に記載の方法。
【請求項１１】
前記パラメータセットからのシンタックス要素の前記セットが、ネットワーク抽象化レイヤ(NAL)ユニットの未加工バイトシーケンスペイロード(RBSP)に配置される、請求項1から10のいずれか一項に記載の方法。
【請求項１２】
前記参照ピクチャリストが、指定されたRefPictList[0]またはRefPictList[1]であり、前記参照ピクチャリスト構造のエントリの順序が、前記参照ピクチャリスト内の対応する参照ピクチャの順序と同じである、請求項7から11のいずれか一項に記載の方法。
【請求項１３】
前記コーディングされたビデオビットストリーム内に示されたパラメータセットを解析するステップであって、前記パラメータセットが、参照ピクチャリスト構造のセットを含んだシンタックス要素のセットを含む、ステップと、
前記コーディングされたビデオビットストリーム内に示された参照ピクチャリスト構造を取得するステップと、
前記参照ピクチャリスト構造に基づいて現在のスライスの第1の参照ピクチャリストを導出するステップであって、前記第1の参照ピクチャリストが、少なくとも1つのアクティブなエントリおよび少なくとも1つの非アクティブなエントリを含み、前記少なくとも1つの非アクティブなエントリが、前記現在のスライスのインター予測のために使用されないが、第2の参照ピクチャリストのアクティブなエントリによって参照される参照ピクチャを参照し、前記第2の参照ピクチャリストが、復号の順序で前記現在のスライスの後に続くスライスの参照ピクチャリストまたは復号の順序で現在のピクチャの後に続くピクチャの参照ピクチャリストである、ステップと、
前記第1の参照ピクチャリストの少なくとも1つのアクティブなエントリに基づいて前記現在のスライスの少なくとも1つの再構築されたブロックを取得するステップと
をさらに含む、請求項1から12のいずれか一項に記載の方法。
【請求項１４】
コーディングされたビデオビットストリームを受信するように構成された受信機と、
前記受信機に接続されたメモリであって、命令を記憶するメモリと、
前記メモリに接続されたプロセッサであって、前記メモリに記憶された前記命令を実行するように構成されたプロセッサと
を含み、
前記命令は、前記プロセッサに、
前記コーディングされたビデオビットストリーム内に示されたパラメータセットを解析することであって、前記パラメータセットが、参照ピクチャリスト構造のセットを含んだシンタックス要素のセットを含む、ことと、
前記コーディングされたビデオビットストリーム内に示された現在のスライスのスライスヘッダを解析することであって、前記スライスヘッダが、前記パラメータセット内の参照ピクチャリスト構造の前記セットのうちの参照ピクチャリスト構造のインデックスを含む、ことと、
前記パラメータセット内のシンタックス要素の前記セットおよび前記参照ピクチャリスト構造の前記インデックスに基づいて前記現在のスライスの参照ピクチャリストを導出することと、
前記参照ピクチャリストに基づいて前記現在のスライスの少なくとも1つの再構築されたブロックを取得することと
を行わせる、復号デバイス。
【請求項１５】
前記少なくとも1つの再構築されたブロックに基づいて画像を表示するように構成されたディスプレイ
をさらに含む、請求項14に記載の復号デバイス。
【請求項１６】
復号するビットストリームを受信するように構成された受信機と、
前記受信機に接続された送信機であって、復号された画像をディスプレイに送信するように構成された送信機と、
前記受信機または前記送信機のうちの少なくとも一方に接続されたメモリであって、命令を記憶するように構成されたメモリと、
前記メモリに接続されたプロセッサであって、前記メモリに記憶された前記命令を実行して、請求項1から13のいずれか一項に記載の方法を実行するように構成されたプロセッサと
を含む、コーディング装置。
【請求項１７】
エンコーダと、
前記エンコーダと通信するデコーダと
を含み、
前記デコーダが、請求項14または15に記載の復号デバイスまたは請求項16に記載のコーディング装置を含む、システム。
【請求項１８】
復号するビットストリームを受信するように構成された受信手段と、
前記受信手段に接続された送信手段であって、復号された画像を表示手段に送信するように構成された送信手段と、
前記受信手段または前記送信手段のうちの少なくとも一方に接続された記憶手段であって、命令を記憶するように構成された記憶手段と、
前記記憶手段に接続された処理手段であって、前記記憶手段に記憶された前記命令を実行して、請求項1から13のいずれか一項に記載の方法を実行するように構成された処理手段と
を含む、コーディングのための手段。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2018年8月17日に出願された、Ye-Kui Wangらによる、「Reference Picture Management in Video Coding」と題した米国特許仮出願第62/719,360号の利益を主張するものであり、この仮出願は、参照により本明細書に組み込まれる。
本開示は、概して、ビデオコーディングにおける参照ピクチャの管理のための技術に関する。より詳細には、本開示は、参照ピクチャリストの構築および参照ピクチャのマーキングのための技術を説明する。
【背景技術】
【０００２】
比較的短いビデオでさえも描くために必要とされるビデオデータの量はかなり多くなり得、それが、データが限られた帯域幅の容量を有する通信ネットワークを介してストリーミングされるかまたはそれ以外の方法で伝達されるべきであるときに困難をもたらす可能性がある。したがって、ビデオデータは、概して、現代の通信ネットワークを介して伝達される前に圧縮される。メモリリソースも限られている可能性があるので、ビデオがストレージデバイスに記憶されるとき、ビデオのサイズも問題となり得る。多くの場合、ビデオ圧縮デバイスは、送信または記憶の前にビデオデータをコーディングするために送信元においてソフトウェアおよび/またはハードウェアを使用し、それによって、デジタルビデオ画像を表現するために必要とされるデータの量を削減する。そして、圧縮されたデータが、ビデオデータを復号するビデオ解凍デバイスによって送信先において受信される。限られたネットワークリソースおよびより高いビデオ品質のますます増加する需要によって、画像品質をほとんどまたはまったく犠牲にせずに圧縮比を高める改善された圧縮および解凍技術が、望ましい。
【発明の概要】
【課題を解決するための手段】
【０００３】
第1の態様は、コーディングされたビデオビットストリームを復号する方法に関する。方法は、コーディングされたビデオビットストリーム内に示されたパラメータセットを解析するステップであって、パラメータセットが、参照ピクチャリスト構造のセットを含んだシンタックス要素のセットを含む、ステップと、コーディングされたビデオビットストリーム内に示された現在のスライスのスライスヘッダを解析するステップであって、スライスヘッダが、パラメータセット内の参照ピクチャリスト構造のセットのうちの参照ピクチャリスト構造のインデックスを含む、ステップと、パラメータセット内のシンタックス要素のセットおよび参照ピクチャリスト構造のインデックスに基づいて現在のスライスの参照ピクチャリストを導出するステップと、参照ピクチャリストに基づいて現在のスライスの少なくとも1つの再構築されたブロックを取得するステップとを含む。
【０００４】
方法は、参照ピクチャリストのシグナリングを簡単にし、より効率的にする技術を提供する。したがって、コーディングプロセス全体が、改善される。
【０００５】
第1の態様それ自体による方法の第1の実装形態において、参照ピクチャリスト構造のエントリの順序は、参照ピクチャリスト内の対応する参照ピクチャの順序と同じである。
【０００６】
第1の態様それ自体による方法の第2の実装形態または第1の態様の任意の前述の実装形態において、順序は、ゼロから、示された値までである。
【０００７】
第1の態様それ自体による方法の第3の実装形態または第1の態様の任意の前述の実装形態において、示された値は、ゼロから、sps_max_dec_pic_buffering_minus1によって示される値までである。
【０００８】
第1の態様それ自体による方法の第4の実装形態または第1の態様の任意の前述の実装形態において、参照ピクチャリストは、指定されたRefPictList[0]である。
【０００９】
第1の態様それ自体による方法の第5の実装形態または第1の態様の任意の前述の実装形態において、参照ピクチャリストは、指定されたRefPictList[1]である。
【００１０】
第1の態様それ自体による方法の第6の実装形態または第1の態様の任意の前述の実装形態において、少なくとも1つの再構築されたブロックは、電子デバイスのディスプレイ上に表示される画像を生成するために使用される。
【００１１】
第1の態様それ自体による方法の第7の実装形態または第1の態様の任意の前述の実装形態において、参照ピクチャリストは、インター予測のために使用される参照ピクチャのリストを含む。
【００１２】
第1の態様それ自体による方法の第8の実装形態または第1の態様の任意の前述の実装形態において、インター予測は、PスライスのためまたはBスライスのためのものである。
【００１３】
第1の態様それ自体による方法の第9の実装形態または第1の態様の任意の前述の実装形態において、パラメータセットは、シーケンスパラメータセット(SPS: sequence parameter set)を含む。
【００１４】
第1の態様それ自体による方法の第10の実装形態または第1の態様の任意の前述の実装形態において、パラメータセットからのシンタックス要素のセットは、ネットワーク抽象化レイヤ(NAL)ユニットの未加工バイトシーケンスペイロード(RBSP: Raw Byte Sequence Payload)に配置される。
【００１５】
第1の態様それ自体による方法の第11の実装形態または第1の態様の任意の前述の実装形態において、参照ピクチャリストは、指定されたRefPictList[0]またはRefPictList[1]であり、参照ピクチャリスト構造のエントリの順序は、参照ピクチャリスト内の対応する参照ピクチャの順序と同じである。
【００１６】
第1の態様それ自体による方法の第12の実装形態または第1の態様の任意の前述の実装形態において、方法は、コーディングされたビデオビットストリーム内に示されたパラメータセットを解析するステップであって、パラメータセットが、参照ピクチャリスト構造のセットを含んだシンタックス要素のセットを含む、ステップと、コーディングされたビデオビットストリーム内に示された参照ピクチャリスト構造を取得するステップと、参照ピクチャリスト構造に基づいて現在のスライスの第1の参照ピクチャリストを導出するステップであって、第1の参照ピクチャリストが、少なくとも1つのアクティブなエントリおよび少なくとも1つの非アクティブなエントリを含み、少なくとも1つの非アクティブなエントリが、現在のスライスのインター予測のために使用されないが、第2の参照ピクチャリストのアクティブなエントリによって参照される参照ピクチャを参照し、第2の参照ピクチャリストが、復号の順序で現在のスライスの後に続くスライスの参照ピクチャリストまたは復号の順序で現在のピクチャの後に続くピクチャの参照ピクチャリストである、ステップと、第1の参照ピクチャリストの少なくとも1つのアクティブなエントリに基づいて現在のスライスの少なくとも1つの再構築されたブロックを取得するステップとをさらに含む。
【００１７】
第2の態様は、復号デバイスに関し、復号デバイスは、コーディングされたビデオビットストリームを受信するように構成された受信機と、受信機に接続されたメモリであって、命令を記憶するメモリと、メモリに接続されたプロセッサであって、メモリに記憶された命令を実行するように構成されたプロセッサとを含み、命令は、コーディングされたビデオビットストリーム内に示されたパラメータセットを解析することであって、パラメータセットが、参照ピクチャリスト構造のセットを含んだシンタックス要素のセットを含む、ことと、コーディングされたビデオビットストリーム内に示された現在のスライスのスライスヘッダを解析することであって、スライスヘッダが、パラメータセット内の参照ピクチャリスト構造のセットのうちの参照ピクチャリスト構造のインデックスを含む、ことと、パラメータセット内のシンタックス要素のセットおよび参照ピクチャリスト構造のインデックスに基づいて現在のスライスの参照ピクチャリストを導出することと、参照ピクチャリストに基づいて現在のスライスの少なくとも1つの再構築されたブロックを取得することとをプロセッサに行わせる。
【００１８】
復号デバイスは、参照ピクチャリストのシグナリングを簡単にし、より効率的にする技術を提供する。したがって、コーディングプロセス全体が、改善される。
【００１９】
第2の態様それ自体による復号デバイスの第1の実装形態において、復号デバイスは、少なくとも1つの再構築されたブロックに基づいて生成された現在のピクチャを表示するように構成されたディスプレイをさらに含む。
【００２０】
第3の態様は、コーディング装置に関し、コーディング装置は、復号するビットストリームを受信するように構成された受信機と、受信機に接続された送信機であって、復号された画像をディスプレイに送信するように構成された送信機と、受信機または送信機のうちの少なくとも一方に接続されたメモリであって、命令を記憶するように構成されたメモリと、メモリに接続されたプロセッサであって、メモリに記憶された命令を実行して、前述の態様または実装のいずれかに記載の方法を実行するように構成されたプロセッサとを含む。
【００２１】
第4の態様は、エンコーダと、エンコーダと通信するデコーダとを含むシステムに関する。エンコーダまたはデコーダは、前述の態様または実装のいずれかの復号デバイスまたはコーディング装置を含む。
【００２２】
システムは、参照ピクチャリストのシグナリングを簡単にし、より効率的にする技術を提供する。したがって、コーディングプロセス全体が、改善される。
【００２３】
第5の態様は、コーディングのための手段に関し、コーディングのための手段は、符号化するピクチャを受信するかまたは復号するビットストリームを受信するように構成された受信手段と、受信手段に接続された送信手段であって、ビットストリームをデコーダに送信するかまたは復号された画像を表示手段に送信するように構成された送信手段と、受信手段または送信手段のうちの少なくとも一方に接続された記憶手段であって、命令を記憶するように構成された記憶手段と、記憶手段に接続された処理手段であって、記憶手段に記憶された命令を実行して、前述の態様または実装のいずれかに記載の方法を実行するように構成された処理手段とを含む。
【００２４】
コーディングのための手段は、参照ピクチャリストのシグナリングを簡単にし、より効率的にする技術を提供する。したがって、コーディングプロセス全体が、改善される。
【００２５】
本開示をより完全に理解するために、同様の参照番号が同様の部分を表す添付の図面および詳細な説明に関連して解釈される以下の簡単な説明がここで参照される。
【図面の簡単な説明】
【００２６】
【図１】双方向予測技術を利用する可能性がある例示的なコーディングシステムを示すブロック図である。
【図２】双方向予測技術を実装する可能性がある例示的なビデオエンコーダを示すブロック図である。
【図３】双方向予測技術を実装する可能性があるビデオデコーダの例を示すブロック図である。
【図４】ピクチャを有する参照ピクチャセット(RPS)をRPSのすべてのサブセットのエントリとともに示す概略図である。
【図５】コーディングされたビデオビットストリームを復号する方法の実施形態の図である。
【図６】ビデオコーディングデバイスの概略図である。
【図７】コーディングのための手段の実施形態の概略図である。
【発明を実施するための形態】
【００２７】
図1は、本明細書において説明されるようにビデオコーディング技術を利用する可能性がある例示的なコーディングシステム10を示すブロック図である。図1に示されるように、コーディングシステム10は、送信先デバイス14によって後で復号される符号化されたビデオデータを提供する送信元デバイス12を含む。特に、送信元デバイス12は、コンピュータ可読媒体16を介して送信先デバイス14にビデオデータを提供する可能性がある。送信先デバイス12および送信先デバイス14は、デスクトップコンピュータ、ノートブック(たとえば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレイヤー、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む幅広いデバイスのいずれかを含む可能性がある。場合によっては、送信元デバイス12および送信先デバイス14は、ワイヤレス通信に対応している可能性がある。
【００２８】
送信先デバイス14は、コンピュータ可読媒体16を介して復号される符号化されたビデオデータを受信する可能性がある。コンピュータ可読媒体16は、送信元デバイス12から送信先デバイス14に符号化されたビデオデータを移動させることができる任意の種類の媒体またはデバイスを含む可能性がある。一例において、コンピュータ可読媒体16は、送信元デバイス12が符号化されたビデオデータを送信先デバイス14にリアルタイムで直接送信することを可能にするための通信媒体を含む可能性がある。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、送信先デバイス14に送信される可能性がある。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理的な送信回線などの任意のワイヤレスまたは有線通信媒体を含む可能性がある。通信媒体は、ローカルエリアネットワーク、広域ネットワーク、またはインターネットなどのグローバルネットワークなどのパケットに基づくネットワークの一部を形成する可能性がある。通信媒体は、送信元デバイス12から送信先デバイス14への通信を容易にするのに役立つ可能性があるルータ、スイッチ、基地局、または任意のその他の機器を含む可能性がある。
【００２９】
一部の例において、符号化されたデータは、出力インターフェース22からストレージデバイスに出力される可能性がある。同様に、符号化されたデータは、入力インターフェースによってストレージデバイスからアクセスされる可能性がある。ストレージデバイスは、ハードドライブ、ブルーレイディスク、デジタルビデオディスク(DVD)、コンパクトディスク読み出し専用メモリ(CD-ROM)、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化されたビデオデータを記憶するための任意のその他の好適なデジタルストレージ媒体などの様々な分散されたまたはローカルでアクセスされるデータストレージ媒体のいずれかを含む可能性がある。さらなる例において、ストレージデバイスは、送信元デバイス12によって生成された符号化されたビデオを記憶する可能性があるファイルサーバまたは別の中間ストレージデバイスに対応する可能性がある。送信先デバイス14は、ストリーミングまたはダウンロードによってストレージデバイスからの記憶されたビデオデータにアクセスする可能性がある。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを送信先デバイス14に送信することができる任意の種類のサーバである可能性がある。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。送信先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を通じて符号化されたビデオデータにアクセスする可能性がある。これは、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi-Fi接続)、有線接続(たとえば、デジタル加入者線(DSL)、ケーブルモデムなど)、またはこれら両方の組合せを含む可能性がある。ストレージデバイスからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはこれらの組合せである可能性がある。
【００３０】
本開示の技術は、ワイヤレスアプリケーションまたは設定に必ずしも限定されない。技術は、電波テレビ放送、ケーブルテレビ送信、衛星テレビ送信、HTTPを介した動的適応ストリーミング(DASH: dynamic adaptive streaming over HTTP)などのインターネットストリーミングビデオ送信、データストレージ媒体に符号化されるデジタルビデオ、データストレージ媒体に記憶されたデジタルビデオの復号、またはその他のアプリケーションなどの様々なマルチメディアアプリケーションのいずれかを支援してビデオコーディングに適用される可能性がある。一部の例において、コーディングシステム10は、ビデオストリーミング、ビデオ再生、ビデオのブロードキャスト、および/またはテレビ電話などのアプリケーションをサポートするために片方向または双方向のビデオ送信をサポートするように構成される可能性がある。
【００３１】
図1の例において、送信元デバイス12は、ビデオソース18、ビデオエンコーダ20、および出力インターフェース22を含む。送信先デバイス14は、入力インターフェース28、ビデオデコーダ30、およびディスプレイデバイス32を含む。本開示によれば、送信元デバイス12のビデオエンコーダ20および/または送信先デバイス14のビデオデコーダ30は、ビデオコーディングのための技術を適用するように構成される可能性がある。その他の例において、送信元デバイスおよび送信先デバイスは、その他の構成要素または構成を含む可能性がある。たとえば、送信元デバイス12は、外部カメラなどの外部ビデオソースからビデオデータを受信する可能性がある。同様に、送信先デバイス14は、一体化されたディスプレイデバイスを含むのではなく外部ディスプレイデバイスとインターフェースをとる可能性がある。
【００３２】
図1の示されたコーディングシステム10は、一例であるに過ぎない。ビデオコーディングのための技術が、任意のデジタルビデオ符号化および/または復号デバイスによって実行される可能性がある。本開示の技術は概してビデオコーディングデバイスによって実行されるが、技術は、通常「コーデック」と呼ばれるビデオエンコーダ/デコーダによって実行される可能性もある。さらに、本開示の技術は、ビデオプリプロセッサによって実行される可能性もある。ビデオエンコーダおよび/またはデコーダは、グラフィックス処理ユニット(GPU)または同様のデバイスである可能性がある。
【００３３】
送信元デバイス12および送信先デバイス14は、そのようなコーディングデバイスの例に過ぎず、送信元デバイス12が、送信先デバイス14に送信するためのコーディングされたビデオデータを生成する。一部の例において、送信元デバイス12および送信先デバイス14は、送信元および送信先デバイス12、14の各々がビデオ符号化および復号構成要素を含むような実質的に対称的な方法で動作する可能性がある。したがって、コーディングシステム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオのブロードキャスト、またはテレビ電話のためにビデオデバイス12、14の間の片方向または双方向のビデオ送信をサポートする可能性がある。
【００３４】
送信元デバイス12のビデオソース18は、ビデオカメラなどのビデオ撮影デバイス、前に撮影されたビデオを含むビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含む可能性がある。さらなる代替として、ビデオソース18は、コンピュータグラフィックスに基づくデータをソースビデオとして生成するか、またはライブビデオと、アーカイブされたビデオと、コンピュータによって生成されたビデオとの組合せを生成する可能性がある。
【００３５】
場合によっては、ビデオソース18がビデオカメラであるとき、送信元デバイス12および送信先デバイス14は、いわゆるカメラ付き電話またはビデオ付き電話を形成する可能性がある。しかし、上述のように、本開示において説明される技術は、概してビデオコーディングに適用可能である可能性があり、ワイヤレスおよび/または有線アプリケーションに適用される可能性がある。それぞれの場合において、撮影された、事前に撮影された、またはコンピュータによって生成されたビデオが、ビデオエンコーダ20によって符号化される可能性がある。そして、符号化されたビデオ情報が、出力インターフェース22によってコンピュータ可読媒体16に出力される可能性がある。
【００３６】
コンピュータ可読媒体16は、ワイヤレス放送もしくは有線ネットワーク送信などの一過性の媒体、またはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイディスク、もしくはその他のコンピュータ可読媒体などのストレージ媒体(すなわち、非一時的ストレージ媒体)を含む可能性がある。一部の例においては、ネットワークサーバ(図示せず)が、たとえば、ネットワーク送信によって送信元デバイス12から符号化されたビデオデータを受信し、送信先デバイス14に符号化されたビデオデータを提供する可能性がある。同様に、ディスクスタンピング(disc stamping)施設などの媒体製造施設のコンピューティングデバイスが、送信元デバイス12から符号化されたビデオデータを受信し、符号化されたビデオデータを含むディスクを製造する可能性がある。したがって、コンピュータ可読媒体16は、様々な例において様々な形態の1つまたは複数のコンピュータ可読媒体を含むものと理解される可能性がある。
【００３７】
送信先デバイス14の入力インターフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ビデオデコーダ30によっても使用される、ビデオエンコーダ20によって定義されたシンタックス情報を含む可能性があり、シンタックス情報は、ブロックおよびその他のコーディングされる単位、たとえば、ピクチャのグループ(GOP: group of pictures)の特徴および/または処理を記述するシンタックス要素を含む。ディスプレイデバイス32は、ユーザに対して復号されたビデオデータを表示し、ブラウン管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別の種類のディスプレイデバイスなどの様々なディスプレイデバイスのいずれかを含む可能性がある。
【００３８】
ビデオエンコーダ20およびビデオデコーダ30は、現在開発されている高効率ビデオコーディング(HEVC: High Efficiency Video Coding)規格などのビデオコーディング規格に従って動作する可能性があり、HEVCテストモデル(HM: HEVC Test Model)に準拠する可能性がある。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、動画専門家グループ(MPEG: Moving Picture Expert Group)-4、パート10、高度ビデオコーディング(AVC: Advanced Video Coding)とも呼ばれる国際電気通信連合電気通信標準化セクタ(ITU-T)H.264規格、H.265/HEVC、またはそのような規格の拡張などのその他の独自仕様の規格または業界標準に従って動作する可能性がある。しかし、本開示の技術は、いかなる特定のコーディング規格にも限定されない。ビデオコーディング規格のその他の例は、MPEG-2およびITU-T H.263を含む。図1に示されていないが、一部の態様において、ビデオエンコーダ20およびビデオデコーダ30は、それぞれ、オーディオエンコーダおよびデコーダと統合される可能性があり、共通のデータストリームまたは別々のデータストリーム内の音声とビデオとの両方の符号化を扱うための適切なマルチプレクサ-デマルチプレクサ(MUX-DEMUX)ユニットまたはその他のハードウェアおよびソフトウェアを含む可能性がある。妥当な場合、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコルまたはユーザデータグラムプロトコル(UDP)などのその他のプロトコルに準拠する可能性がある。
【００３９】
ビデオエンコーダ20およびビデオデコーダ30は、それぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組合せなどの様々な好適なエンコーダ回路のいずれかとして実装される可能性がある。技術が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技術を実行するために1つまたは複数のプロセッサを使用するハードウェアにおいて命令を実行する可能性がある。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれる可能性があり、それらのエンコーダまたはデコーダのどちらかが、それぞれのデバイスにおいて組み合わされたエンコーダ/デコーダ(コーデック)の一部として統合される可能性がある。ビデオエンコーダ20および/またはビデオデコーダ30を含むデバイスは、集積回路、マイクロプロセッサ、および/またはセルラ電話などのワイヤレス通信デバイスを含む可能性がある。
【００４０】
図2は、ビデオコーディング技術を実装する可能性があるビデオエンコーダ20の例を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラおよびインターコーディングを実行する可能性がある。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を減らすかまたは取り除くために空間予測に依拠する。インターコーディングは、ビデオシーケンスの近くのフレームまたはピクチャ内のビデオの時間的冗長性を減らすかまたは取り除くために時間予測に依拠する。イントラモード(Iモード)は、いくつかの空間に基づくコーディングモードのいずれかを指す可能性がある。単方向(別名、単予測(uni prediction))予測(Pモード)または双予測(bi-prediction)(別名、双予測(bi prediction))(Bモード)などのインターモードは、いくつかの時間に基づくコーディングモードのいずれかを指す可能性がある。
【００４１】
図2に示されるように、ビデオエンコーダ20は、符号化されるビデオフレーム内の現在のビデオブロックを受信する。図2の例において、ビデオエンコーダ20は、モード選択ユニット40、参照フレームメモリ64、加算器(summer)50、変換処理ユニット52、量子化ユニット54、およびエントロピーコーディングユニット56を含む。さらに、モード選択ユニット40は、動き補償ユニット44、動き推定ユニット42、イントラ予測(intra-prediction)(別名、イントラ予測(intra prediction))ユニット46、および区分けユニット48を含む。ビデオブロックの再構築のために、ビデオエンコーダ20は、逆量子化ユニット58、逆変換ユニット60、および加算器62も含む。デブロッキングフィルタ(図2に示さず)も、ブロックの境界をフィルタリングして、再構築されたビデオからブロッキネスアーチファクトを取り除くために含まれる可能性がある。必要に応じて、デブロッキングフィルタは、概して、加算器62の出力をフィルタリングする。(ループ内またはループの後の)さらなるフィルタも、デブロッキングフィルタに加えて使用される可能性がある。そのようなフィルタは、簡潔にするために示されないが、必要に応じて、(ループ内フィルタとして)加算器50の出力をフィルタリングする可能性がある。
【００４２】
符号化プロセス中に、ビデオエンコーダ20は、コーディングされるビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロックに分割される可能性がある。動き推定ユニット42および動き補償ユニット44は、時間予測を提供するために1つまたは複数の参照フレーム内の1つまたは複数のブロックに対する受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット46は、代替的に、空間予測を提供するためにコーディングされるブロックと同じフレームまたはスライス内の1つまたは複数の近隣のブロックに対する受信されたビデオブロックのイントラ予測コーディングを実行する可能性がある。ビデオエンコーダ20は、たとえば、ビデオデータの各ブロックに関する適切なコーディングモードを選択するために複数のコーディングパス(coding pass)を実行する可能性がある。
【００４３】
さらに、区分けユニット48は、前のコーディングパスにおける前の区分け方式の評価に基づいてビデオデータのブロックを下位ブロックに区分けする可能性がある。たとえば、区分けユニット48は、最初に、フレームまたはスライスを最大コーディングユニット(LCU)に区分けする可能性があり、レート歪み分析(たとえば、レート歪み最適化)に基づいてLCUの各々を下位コーディングユニット(下位CU)に区分けする可能性がある。モード選択ユニット40は、さらに、下位CUへのLCUの区分けを示す四分木データ構造を生成する可能性がある。四分木の葉ノードCUは、1つまたは複数の予測ユニット(PU)および1つまたは複数の変換ユニット(TU)を含む可能性がある。
【００４４】
本開示は、HEVCの文脈でCU、PU、もしくはTUのいずれかを指すため、またはその他の規格の文脈で同様のデータ構造(たとえば、H.264/AVCのマクロブロックおよびその下位ブロック)を指すために用語「ブロック」を使用する。CUは、コーディングノード、PU、およびコーディングノードに関連するTUを含む。CUのサイズは、コーディングノードのサイズに対応し、正方形の形状である。CUのサイズは、8×8ピクセルから最大64×64ピクセル以上のツリーブロックのサイズまでの範囲である可能性がある。各CUは、1つまたは複数のPUおよび1つまたは複数のTUを含む可能性がある。CUに関連するシンタックスデータは、たとえば、1つまたは複数のPUへのCUの区分けを記述する可能性がある。区分けモードは、CUがスキップもしくはダイレクトモード(skip or direct mode)符号化されるのか、イントラ予測モード符号化されるのか、またはインター予測(inter-prediction)(別名、インター予測(inter prediction))モード符号化されるのかの間で異なる可能性がある。PUは、正方形でない形状になるように区分けされる可能性がある。CUに関連するシンタックスデータは、たとえば、四分木による1つまたは複数のTUへのCUの区分けを記述する可能性もある。TUは、正方形であるかまたは正方形でない(たとえば、長方形)形状であることが可能である。
【００４５】
モード選択ユニット40は、たとえば、誤差の結果(error result)に基づいてコーディングモード、イントラまたはインターのうちの1を選択する可能性があり、結果として得られるイントラまたはインターコーディングされたブロックを、残差ブロックデータを生成するために加算器50に提供し、参照フレームとして使用するために符号化ブロックを再構築するために加算器62に提供する。また、モード選択ユニット40は、動きベクトル、イントラモードインジケータ、区分け情報、およびその他のそのようなシンタックス情報などのシンタックス要素をエントロピーコーディングユニット56に提供する。
【００４６】
動き推定ユニット42および動き補償ユニット44は、高度に一体化される可能性があるが、概念的な目的のために別々に示される。動き推定ユニット42によって実行される動き推定は、ビデオブロックに関する動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム(またはその他のコーディングされる単位)内のコーディングされている現在のブロックに関連する参照フレーム(またはその他のコーディングされる単位)内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示す可能性がある。予測ブロックは、差分絶対値和(SAD)、差分二乗和(SSD)、またはその他の差の測定基準によって決定される可能性があるピクセルの差の観点でコーディングされるブロックとよく一致することが判明しているブロックである。一部の例において、ビデオエンコーダ20は、参照フレームメモリ64に記憶された参照ピクチャの整数よりも細かいピクセル位置の値を計算する可能性がある。たとえば、ビデオエンコーダ20は、参照ピクチャの4分の1ピクセル位置、8分の1ピクセル位置、またはその他の分数ピクセル(fractional pixel)位置の値を補間する可能性がある。したがって、動き推定ユニット42は、フルピクセル(full pixel)位置および分数ピクセル位置に関連する動き探索を実行し、分数ピクセルの精度で動きベクトルを出力する可能性がある。
【００４７】
動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによってインターコーディングされるスライス内のビデオブロックのPUに関する動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(List 0)または第2の参照ピクチャリスト(List 1)から選択される可能性があり、それらの参照ピクチャリストの各々は、参照フレームメモリ64に記憶された1つまたは複数の参照ピクチャを特定する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56および動き補償ユニット44に送信する。
【００４８】
動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて予測ブロックを取り出すことまたは生成することを含む可能性がある。やはり、動き推定ユニット42および動き補償ユニット44は、一部の例において、機能的に統合される可能性がある。現在のビデオブロックのPUに関する動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャリストのうちの1つにおいて動きベクトルが指す予測ブロックを見つける可能性がある。加算器50は、以下で検討されるように、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を引くことによって残差ビデオブロックを形成し、ピクセル差分値を形成する。概して、動き推定ユニット42は、ルーマ成分に関連する動き推定を実行し、動き補償ユニット44は、クロマ成分とルーマ成分との両方のためにルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット40は、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30によって使用するためのビデオブロックおよびビデオスライスに関連するシンタックス要素も生成する可能性がある。
【００４９】
イントラ予測ユニットは、上述のように動き推定ユニット42および動き補償ユニット44によって実行されるインター予測の代替として現在のブロックをインター予測する可能性がある。特に、イントラ予測ユニット46は、現在のブロックを符号化するために使用するイントラ予測モードを決定する可能性がある。一部の例において、イントラ予測ユニット46は、たとえば、別々の符号化パス中に様々なイントラ予測モードを使用して現在のブロックを符号化する可能性があり、イントラ予測ユニット46(または一部の例においてはモード選択ユニット40)は、テストされたモードから使用する適切なイントラ予測モードを選択する可能性がある。
【００５０】
たとえば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードに関するレート歪み分析を使用してレート歪み値を計算し、テストされたモードの中で最良のレート歪み特性を有するイントラ予測モードを選択する可能性がある。レート歪み分析は、概して、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間の歪み(または誤差)の量と、符号化されたブロックを生成するために使用されたビットレート(すなわち、ビット数)とを決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックに関して最良のレート歪み値を示すかを判定するために、様々な符号化されたブロックに関する歪みおよびレートから比率を計算する可能性がある。
【００５１】
さらに、イントラ予測ユニット46は、深度モデリングモード(DMM: depth modeling mode)を使用して深度マップの深度ブロックをコーディングするように構成される可能性がある。モード選択ユニット40は、たとえば、レート歪み最適化(RDO)を使用して、利用可能なDMMモードがイントラ予測モードおよびその他のDMMモードよりも良いコーディングの結果を生じるかどうかを判定する可能性がある。深度マップに対応するテクスチャ画像に関するデータが、参照フレームメモリ64に記憶される可能性がある。動き推定ユニット42および動き補償ユニット44は、深度マップの深度ブロックをインター予測するように構成される可能性もある。
【００５２】
ブロックに関するイントラ予測モード(たとえば、通常のイントラ予測モードまたはDMMモードのうちの1つ)を選択した後、イントラ予測ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピーコーディングユニット56に提供する可能性がある。エントロピーコーディングユニット56は、選択されたイントラ予測モードを示す情報を符号化する可能性がある。ビデオエンコーダ20は、複数のイントラ予測モードインデックステーブルおよび複数の修正されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)を含む可能性がある送信ビットストリーム構成データに、様々なブロックに関する符号化コンテキストの定義、ならびにコンテキストの各々のために使用する最も可能性が高いイントラ予測モード、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルのインジケーションを含める可能性がある。
【００５３】
ビデオエンコーダ20は、コーディングされている元のビデオブロックからモード選択ユニット40からの予測データを引くことによって残差ビデオブロックを形成する。加算器50は、この減算を実行する1つの構成要素または複数の構成要素を表す。
【００５４】
変換処理ユニット52は、残差ブロックに離散コサイン変換(DCT)または似た概念の変換などの変換を適用し、残差変換係数値を含むビデオブロックを生成する。変換処理ユニット52は、DCTと似た概念のその他の変換を実行する可能性がある。ウェーブレット変換、整数変換、サブバンド変換、またはその他の種類の変換も、使用される可能性がある。
【００５５】
変換処理ユニット52は、残差ブロックに変換を適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換する可能性がある。変換処理ユニット52は、結果として得られる変換係数を量子化ユニット54に送信する可能性がある。量子化ユニット54は、ビットレートをさらに削減するために変換係数を量子化する。量子化プロセスは、係数の一部またはすべてに関連するビット深度を削減する可能性がある。量子化の度合いは、量子化パラメータを調整することによって修正される可能性がある。一部の例において、量子化ユニット54は、それから、量子化された変換係数を含む行列のスキャン(scan)を実行する可能性がある。代替的に、エントロピー符号化ユニット56が、スキャンを実行する可能性がある。
【００５６】
量子化の後、エントロピーコーディングユニット56は、量子化された変換係数をエントロピーコーディングする。たとえば、エントロピーコーディングユニット56は、コンテキスト適応可変長コーディング(CAVLC: context adaptive variable length coding)、コンテキスト適応2値算術コーディング(CABAC: context adaptive binary arithmetic coding)、シンタックスに基づくコンテキスト適応2値算術コーディング(SBAC: syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE: probability interval partitioning entropy) コーディング、または別のエントロピーコーディング技術を実行する可能性がある。コンテキストに基づくエントロピーコーディングの場合、コンテキストは、近隣のブロックに基づく可能性がある。エントロピーコーディングユニット56によるエントロピーコーディングの後、符号化されたビットストリームが、別のデバイス(たとえば、ビデオデコーダ30)に送信されるか、または後で送信するかもしくは取り出すためにアーカイブされる可能性がある。
【００５７】
逆量子化ユニット58および逆変換ユニット60は、たとえば、参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構築するために逆量子化および逆変換をそれぞれ適用する。動き補償ユニット44は、参照フレームメモリ64のフレームのうちの1つの予測ブロックに残差ブロックを足すことによって参照ブロックを計算する可能性がある。動き補償ユニット44は、動き推定において使用するための整数よりも細かいピクセル値を計算するために再構築された残差ブロックに1つまたは複数の補間フィルタを適用する可能性もある。加算器62は、動き補償ユニット44によって生成された動き補償された予測ブロックに再構築された残差ブロックを足して、参照フレームメモリ64に記憶するための再構築されたビデオブロックを生成する。再構築されたビデオブロックは、後続のビデオフレームのブロックをインターコーディングするための参照ブロックとして動き推定ユニット42および動き補償ユニット44によって使用される可能性がある。
【００５８】
図3は、ビデオコーディング技術を実装する可能性があるビデオデコーダ30の例を示すブロック図である。図3の例において、ビデオデコーダ30は、エントロピー復号ユニット70、動き補償ユニット72、イントラ予測ユニット74、逆量子化ユニット76、逆変換ユニット78、参照フレームメモリ82、および加算器80を含む。ビデオデコーダ30は、一部の例において、ビデオエンコーダ20(図2)に関連して説明された符号化パスと概して逆である復号パスを実行する可能性がある。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて予測データを生成する可能性があり、一方、イントラ予測ユニット74は、エントロピー復号ユニット70から受信されたイントラ予測モードインジケータに基づいて予測データを生成する可能性がある。
【００５９】
復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から符号化されたビデオスライスのビデオブロックおよび関連するシンタックス要素を表す符号化されたビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット70は、ビットストリームをエントロピー復号して、量子化された係数、動きベクトルまたはイントラ予測モードインジケータ、およびその他のシンタックス要素を生成する。エントロピー復号ユニット70は、動きベクトルおよびその他のシンタックス要素を動き補償ユニット72に転送する。ビデオデコーダ30は、ビデオスライスのレベルおよび/またはビデオブロックのレベルでシンタックス要素を受信する可能性がある。
【００６０】
ビデオスライスがイントラコーディングされる(I)スライスとしてコーディングされるとき、イントラ予測ユニット74は、シグナリングされたイントラ予測モードおよび現在のフレームまたはピクチャの既に復号されたブロックからのデータに基づいて現在のビデオスライスのビデオブロックに関する予測データを生成する可能性がある。ビデオフレームがインターコーディングされる(たとえば、B、P、またはGPB)スライスとしてコーディングされるとき、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルおよびその他のシンタックス要素に基づいて現在のビデオスライスのビデオブロックに関する予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成される可能性がある。ビデオデコーダ30は、参照フレームメモリ82に記憶された参照ピクチャに基づいてデフォルトの構築技術を使用して参照フレームリストList 0およびList 1を構築する可能性がある。
【００６１】
動き補償ユニット72は、動きベクトルおよびその他のシンタックス要素を解析することによって現在のビデオスライスのビデオブロックに関する予測情報を決定し、予測情報を使用して、復号されている現在のビデオブロックに関する予測ブロックを生成する。たとえば、動き補償ユニット72は、受信されたシンタックス要素の一部を使用して、ビデオスライスのビデオブロックをコーディングするために使用された予測モード(たとえば、イントラまたはインター予測)、インター予測のスライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)、スライスのための参照ピクチャリストのうちの1つまたは複数に関する構築情報、スライスのそれぞれのインター符号化されたビデオブロックに関する動きベクトル、スライスのそれぞれのインターコーディングされたビデオブロックに関するインター予測のステータス、および現在のビデオスライス内のビデオブロックを復号するためのその他の情報を決定する。
【００６２】
動き補償ユニット72は、補間フィルタに基づいて補間を実行する可能性もある。動き補償ユニット72は、参照ブロックの整数よりも細かいピクセルに関する補間された値を計算するためにビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用する可能性がある。この場合、動き補償ユニット72は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、補間フィルタを使用して予測ブロックを生成する可能性がある。
【００６３】
深度マップに対応するテクスチャ画像に関するデータが、参照フレームメモリ82に記憶される可能性がある。動き補償ユニット72は、深度マップの深度ブロックをインター予測するように構成される可能性もある。
【００６４】
画像およびビデオ圧縮は、急速な成長を遂げ、様々なコーディング規格をもたらした。そのようなビデオコーディング規格は、ITU-T H.261、ISO/IEC動画専門家グループ(MPEG)-1パート2、ITU-T H.262または国際標準化機構(ISO)/国際電気標準会議(IEC)MPEG-2パート2、ITU-T H.263、ISO/IEC MPEG-4パート2、ITU-T H.264またはISO/IEC MPEG-4パート10としても知られる高度ビデオコーディング(AVC)、およびITU-T H.265またはMPEG-Hパート2としても知られる高効率ビデオコーディング(HEVC)を含む。AVCは、スケーラブルビデオコーディング(SVC: Scalable Video Coding)、多視点ビデオコーディング(MVC: Multiview Video Coding)および多視点ビデオコーディングプラス深度(MVC+D: Multiview Video Coding plus Depth)、ならびに3D AVC(3D-AVC)などの拡張を含む。HEVCは、スケーラブルHEVC(SHVC)、多視点HEVC(MV-HEVC)、および3D HEVC(3D-HEVC)などの拡張を含む。
【００６５】
多目的ビデオコーディング(VVC: Versatile Video Coding)は、ITU-TおよびISO/IECの合同ビデオ専門家チーム(JVET: joint video experts team)によって開発されている新しいビデオコーディング規格である。本明細書の執筆時点で、VVCの最新の作業草案(WD)は、JVET-K1001-v1に含まれている。JVETの文書JVET-K0325-v3は、VVCの高レベルのシンタックスの改訂を含む。
【００６６】
概して、本開示は、開発中のVVC規格に基づく技術を説明する。しかし、技術は、その他のビデオ/メディアコーデックの仕様にも適合する。
【００６７】
ビデオ圧縮技術は、空間的(イントラピクチャ)予測および/または時間的(インターピクチャ)予測を実行してビデオシーケンスに固有の冗長性を減らすかまたは取り除く。ブロックに基づくビデオコーディングのために、ビデオスライス(たとえば、ビデオピクチャまたはビデオピクチャの一部)が、ビデオブロックに区分けされる可能性があり、ビデオブロックは、ツリーブロック、コーディングツリーブロック(CTB)、コーディングツリーユニット(CTU)、コーディングユニット(CU)、および/またはコーディングノードとも呼ばれる可能性がある。ピクチャのイントラコーディングされる(I)スライス内のビデオブロックは、同じピクチャ内の近隣のブロック内の参照サンプルに関連する空間予測を使用して符号化される。ピクチャのインターコーディングされる(PまたはB)スライス内のビデオブロックは、同じピクチャ内の近隣のブロック内の参照サンプルに関連する空間予測またはその他の参照ピクチャ内の参照サンプルに関連する時間予測を使用する可能性がある。ピクチャは、フレームと呼ばれる可能性があり、参照ピクチャは、参照フレームと呼ばれる可能性がある。
【００６８】
空間または時間予測は、コーディングされるブロックに関する予測ブロックをもたらす。残差データは、コーディングされる元のブロックと予測ブロックとの間のピクセルの差を表す。インターコーディングされるブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コーディングされるブロックと予測ブロックとの間の差を示す残差データとによって符号化される。イントラコーディングされるブロックは、イントラコーディングモードおよび残差データによって符号化される。さらなる圧縮のために、残差データが、ピクセル領域から変換領域に変換される可能性があり、残差変換係数をもたらし、そして、残差変換係数が、量子化される可能性がある。最初に2次元配列に配列された量子化された変換係数は、変換係数の1次元ベクトルを生成するためにスキャンされる可能性があり、エントロピーコーディングが、さらなる圧縮を実現するために適用される可能性がある。
【００６９】
ビデオコーデック仕様において、ピクチャは、インター予測における参照ピクチャとして使用するため、復号ピクチャバッファ(DPB: decoded picture buffer)からのピクチャの出力のため、動きベクトルのスケーリングのため、重み付けされた予測のためなど、複数の目的のために特定される。AVCおよびHEVCにおいて、ピクチャは、ピクチャ順序カウント(POC: picture order count)によって特定され得る。AVCおよびHEVCにおいて、DPB内のピクチャは、「短期的参照のために使用される」、「長期的参照のために使用される」、または「参照のために使用されない」と印を付けられ得る。ピクチャが「参照のために使用されない」と印を付けられると、ピクチャは、もはや予測のために使用され得ない。ピクチャがもはや出力のために必要とされないとき、ピクチャは、DPBから削除され得る。
【００７０】
AVCにおいては、参照ピクチャの2つの種類、短期および長期が存在する。参照ピクチャは、参照ピクチャがもはや予測の参照のために必要とされなくなるときに「参照のために使用されない」と印を付けられる可能性がある。これら3つのステータス(短期、長期、および参照ために使用されない)の間の転換は、復号された参照ピクチャのマーキングプロセスによって制御される。2つの択一的な復号された参照ピクチャのマーキングメカニズム、暗黙的な移動窓(sliding window)プロセスおよび明示的なメモリ管理制御動作(MMCO: memory management control operation)プロセスが存在する。移動窓プロセスは、参照フレームの数が所与の最大数(シーケンスパラメータセット(SPS)のmax_num_ref_frames)に等しいとき、短期的参照ピクチャに「参照のために使用されない」と印を付ける。短期的参照ピクチャは、最も新しく復号された短期的ピクチャがDPBに保有されるように先入れ先出しで記憶される。
【００７１】
明示的MMCOプロセスは、複数のMMCOコマンドを含む可能性がある。MMCOコマンドは、1つもしくは複数の短期的または長期的参照ピクチャに「参照のために使用されない」と印を付ける可能性があり、すべてのピクチャに「参照のために使用されない」と印を付ける可能性があり、または現在の参照ピクチャもしくは既存の短期的参照ピクチャに長期的と印を付け、それから、その長期的参照ピクチャに長期的ピクチャインデックスを割り振る可能性がある。
【００７２】
AVCにおいては、参照ピクチャのマーキング動作ならびにDPBからのピクチャの出力および削除のためのプロセスが、ピクチャが復号された後に実行される。
【００７３】
HEVCは、参照ピクチャセット(RPS)と呼ばれる参照ピクチャの管理のための異なる手法を導入する。AVCのMMCO/移動窓プロセスと比べたRPSの概念の最も根本的な違いは、それぞれの特定のスライスに関して、現在のピクチャまたは任意の後続のピクチャによって使用される参照ピクチャの完全なセットが提供されることである。したがって、現在のまたは将来のピクチャによる使用のためにDPBに保有されなければならないすべてのピクチャの完全なセットが、シグナリングされる。これは、DPBに対する相対的な変更のみがシグナリングされるAVCの方式と異なる。RPS概念によれば、DPB内の参照ピクチャの正しいステータスを維持するために、復号の順序で先のピクチャからの情報が必要とされない。
【００７４】
HEVCにおけるピクチャの復号の順序およびDPBの動作は、RPSの利点を活かし、誤り耐性を高めるために、AVCと比べて変更される。AVCにおいて、ピクチャのマーキングおよびバッファの動作(DPBからの復号されたピクチャの出力と削除との両方)は、概して、現在のピクチャが復号された後に適用される。HEVCにおいては、まず、RPSが、現在のピクチャのスライスヘッダから復号され、それから、ピクチャのマーキングおよびバッファの動作が、概して、現在のピクチャを復号する前に適用される。
【００７５】
HEVCにおける各スライスヘッダは、スライスを含むピクチャに関するRPSのシグナリングのためのパラメータを含む可能性がある。唯一の例外は、即時復号リフレッシュ(IDR: Instantaneous Decoding Refresh)スライスに関してRPSがシグナリングされないことである。その代わりに、RPSは、空であると推測される。IDRピクチャに属さないIスライスに関しては、復号の順序でIピクチャに先行したピクチャからのインター予測を使用する、復号の順序でIピクチャの後に続くピクチャが存在する可能性があるので、たとえそれらのIスライスがIピクチャに属するとしてもRPSが提供される可能性がある。RPSのピクチャの数は、SPSのsps_max_dec_pic_bufferingシンタックス要素によって指定されるDPBのサイズ制限を超えない。
【００７６】
各ピクチャは、出力の順序を表すPOC値に関連付けられる。スライスヘッダは、POC LSBとしても知られる完全なPOC値の最下位ビット(LSB)を表す固定長コードワードpic_order_cnt_lsbを含む。コードワードの長さは、SPS内でシグナリングされ、たとえば、4ビットから16ビットまでの間であることが可能である。RPSの概念は、参照ピクチャを特定するためにPOCを使用する。自身のPOC値の他に、各スライスヘッダは、RPSの各ピクチャのPOC値(またはLSB)のコーディングされた表現を直に含むかまたはSPSから継承する。
【００７７】
各ピクチャのRPSは、5つのRPSサブセットとも呼ばれる参照ピクチャの5つの異なるリストからなる。RefPicSetStCurrBeforeは、復号の順序と出力の順序との両方で現在のピクチャの前にあり、現在のピクチャのインター予測において使用される可能性があるすべての短期的参照ピクチャからなる。RefPicSetStCurrAfterは、復号の順序で現在のピクチャの前にあり、出力の順序で現在のピクチャの後にあり、現在のピクチャのインター予測において使用される可能性があるすべての短期的参照ピクチャからなる。RefPicSetStFollは、復号の順序で現在のピクチャの後に続くピクチャのうちの1つまたは複数のインター予測において使用される可能性があり、現在のピクチャのインター予測において使用されないすべての短期的参照ピクチャからなる。RefPicSetLtCurrは、現在のピクチャのインター予測において使用される可能性があるすべての長期的参照ピクチャからなる。RefPicSetLtFollは、復号の順序で現在のピクチャの後に続くピクチャのうちの1つまたは複数のインター予測において使用される可能性があり、現在のピクチャのインター予測において使用されないすべての長期的参照ピクチャからなる。
【００７８】
RPSは、異なる種類の参照ピクチャ、現在のピクチャよりも小さなPOC値を有する短期的参照ピクチャ、現在のピクチャよりも大きなPOC値を有する短期的参照ピクチャ、および長期的参照ピクチャに対して繰り返される最大3つのループを使用してシグナリングされる。さらに、フラグ(used_by_curr_pic_X_flag)が、各ピクチャに関して送信され、参照ピクチャが現在のピクチャによる参照のために使用される(リストRefPicSetStCurrBefore、RefPicSetStCurrAfter、またはRefPicSetLtCurrのうちの1つに含まれる)のかまたは使用されない(リストRefPicSetStFollまたはRefPicSetLtFollのうちの1つに含まれる)のかを示す。
【００７９】
図4は、現在のピクチャB14を有するRPS 400をRPS 400のすべてのサブセット402のエントリ(たとえば、ピクチャ)とともに示す。図4の例において、現在のピクチャB14は、5つのサブセット404(別名、RPSサブセット)の各々にちょうど1つのピクチャを含む。P8は、ピクチャが出力の順序でB14の前にあり、B14によって使用されるので、RefPicSetStCurrBeforeと呼ばれるサブセット402のピクチャである。P12は、ピクチャが出力の順序でB14の後にあり、B14によって使用されるので、RefPicSetStCurrAfterと呼ばれるサブセット402のピクチャである。P13は、ピクチャがB14によって使用されない短期的参照ピクチャである(しかし、そのピクチャはB15によって使用されるのでDPBに保有されなければならない)ので、RefPicSetStFollと呼ばれるサブセット402のピクチャである。P4は、ピクチャがB14によって使用される長期的参照ピクチャであるのでRefPicSetLtCurrと呼ばれるサブセット402のピクチャである。I0は、ピクチャが現在のピクチャによって使用されない長期的参照ピクチャである(しかし、そのピクチャがB15によって使用されるのでDPBに保有されなければならない)ので、RefPicSetLtFollと呼ばれるサブセット402のピクチャである。
【００８０】
RPS 400の短期的な部分は、スライスヘッダに直に含まれる可能性がある。代替的に、スライスヘッダは、アクティブなSPS内で送信されたRPSの予め定義されたリストを参照するインデックスを表すシンタックス要素のみを含む可能性がある。RPS 402の短期的な部分は、2つの異なる方式、下で説明されるインターRPSまたはここで説明されるイントラRPSのどちらかを使用してシグナリングされ得る。イントラRPSが使用されるとき、参照ピクチャの2つの異なるリストの長さを表すnum_negative_picsおよびnum_positive_picsが、シグナリングされる。これらのリストは、それぞれ、現在のピクチャと比べて負のPOCの差および正のPOCの差を有する参照ピクチャを含む。これらのリストの各要素は、リスト内の前の要素に関連するPOC値の差から1を引いた値を表す可変長コーディングによって符号化される。各リストの最初のピクチャに関しては、シグナリングは、現在のピクチャのPOC値から1を引いた値に関連する。
【００８１】
シーケンスパラメータセット内の繰り返し現れるRPSを符号化するとき、1つのRPS(たとえば、RPS 400)の要素を、シーケンスパラメータセット内の既に符号化された別のRPSを参照して符号化することが可能である。これは、インターRPSと呼ばれる。シーケンスパラメータセットのすべてのRPSが同じネットワーク抽象化レイヤ(NAL)ユニット内にあるので、この方法に関連する誤り堅牢性(error robustness)の問題は存在しない。インターRPSのシンタックスは、現在のピクチャのRPSが既に復号されたピクチャのRPSから予測され得るという事実を利用する。これは、現在のピクチャのすべての参照ピクチャが前のピクチャの参照ピクチャかまたは既に復号されたピクチャ自体かのどちらかでなければならないからである。これらのピクチャのどちらが参照ピクチャであり、現在のピクチャの予測のために使用されるべきかを示しさえすればよい。したがって、シンタックスは、以下、すなわち、予測子(predictor)として使用するRPSを指すインデックス、現在のRPSの差分(delta)POCを得るために予測子のdelta_POCに足されるdelta_POC、ならびにどのピクチャが参照ピクチャであるのかおよびそれらのピクチャが将来のピクチャの予測のためにのみ使用されるのかどうかを示す1セットのインジケータを含む。
【００８２】
長期的参照ピクチャを利用したいエンコーダは、SPSシンタックス要素long_term_ref_pics_present_flagを1に設定しなければならない。そのとき、長期的参照ピクチャは、それぞれの長期的ピクチャの完全なPOC値の最下位ビットを表す固定長コードワードpoc_lsb_ltによってスライスヘッダ内でシグナリングされ得る。それぞれのpoc_lsb_ltは、特定の長期的ピクチャに関してシグナリングされたpic_order_cnt_lsbコードワードのコピーである。POC LSB値のリストとしてSPS内で1セットの長期的ピクチャをシグナリングすることも、可能である。そのとき、長期的ピクチャに関するPOC LSBは、このリストへのインデックスとしてスライスヘッダ内でシグナリングされ得る。
【００８３】
現在のピクチャに対する長期的参照ピクチャの完全なPOCの距離の計算を可能にするために、delta_poc_msb_cycle_lt_minus1シンタックス要素がさらにシグナリングされ得る。コードワードdelta_poc_msb_cycle_lt_minus1が、RPS内のいずれかのその他の参照ピクチャと同じPOC LSB値を有するそれぞれの長期的参照ピクチャに関してシグナリングされることが必要とされる。
【００８４】
HEVCにおける参照ピクチャのマーキングに関しては、概して、ピクチャの復号の前にDPB内にいくつかのピクチャが存在する。ピクチャの一部は、予測のために利用可能であり、したがって、「参照のために使用される」と印を付けられる可能性がある。その他のピクチャは、予測のために利用不可能である可能性があるが、出力を待っており、したがって、「参照のために使用されない」と印を付けられる。スライスヘッダが解析されたとき、スライスデータが復号される前にピクチャのマーキングプロセスが実行される。DPB内に存在し、「参照のために使用される」と印を付けられるが、RPSに含まれないピクチャは、「参照のために使用されない」と印を付けられる。used_by_curr_pic_X_flagがゼロに等しいとき、DPB内に存在しないが参照ピクチャセットに含まれるピクチャは、無視される。しかし、その代わりにused_by_curr_pic_X_flagが1に等しいとき、この参照ピクチャは、現在のピクチャにおいて予測のために使用されるように意図されていたが、欠落している。そのとき、意図されていないピクチャの喪失が、推測され、デコーダが、適切な対応を行うべきである。
【００８５】
現在のピクチャを復号した後、そのピクチャは、「短期的参照のために使用される」と印を付けられる。
【００８６】
次に、HEVCにおける参照ピクチャリストの構築が、検討される。HEVCにおいて、インター予測という用語は、現在復号されているピクチャ以外の参照ピクチャのデータ要素(たとえば、サンプル値または動きベクトル)から導出される予測を指すために使用される。AVCと同様に、ピクチャは、複数の参照ピクチャから予測され得る。インター予測のために使用される参照ピクチャは、1つまたは複数の参照ピクチャリストに編成される。参照インデックスは、リストの参照ピクチャのうちのどれが予測信号を生成するために使用されるべきであるかを特定する。
【００８７】
単一の参照ピクチャリストList 0が、Pスライスのために使用され、2つの参照ピクチャリストList 0およびList 1が、Bスライスのために使用される。AVCと同様に、HEVCにおける参照ピクチャリストの構築は、参照ピクチャリストの初期化および参照ピクチャリストの修正を含む。
【００８８】
AVCにおいて、List 0の初期化プロセスは、(復号の順序が使用される)Pスライスと(出力の順序が使用される)Bスライスとに関して異なる。HEVCにおいて、出力の順序が、両方の場合に使用される。
【００８９】
参照ピクチャリストの初期化は、3つのRPSサブセット、すなわち、RefPicSetStCurrBefore、RefPicSetStCurrAfter、およびRefPicSetLtCurrに基づいてデフォルトのList 0およびList 1(スライスがBスライスである場合)を生成する。まず、先の(後の)出力の順序の短期的ピクチャが、現在のピクチャとのPOCの距離の昇順にList 0(List 1)に挿入され、それから、後の(先の)出力の順序の短期的ピクチャが、現在のピクチャとのPOCの距離の昇順にList 0(List 1)に挿入され、そして最終的に、長期的ピクチャが、最後に挿入される。RPSの観点で見ると、List 0に関して、RefPicSetStCurrBeforeのエントリが、初期リストに挿入され、その後にRefPicSetStCurrAfterのエントリが続く。その後、利用可能である場合は、RefPicSetLtCurrのエントリが、末尾に付け加えられる。
【００９０】
HEVCにおいては、リストのエントリの数が(ピクチャパラメータセット(picture parameter set)またはスライスヘッダ内でシグナリングされた)アクティブな参照ピクチャの目標数よりも少ないとき、上述のプロセスが繰り返される(参照ピクチャリストに既に追加された参照ピクチャが再び追加される)。エントリの数が目標数よりも多いとき、リストは、切り詰められる。
【００９１】
参照ピクチャリストが初期化された後、参照ピクチャリストは、参照ピクチャリスト修正コマンドに基づいて、1つの特定の参照ピクチャがリスト内で2つ以上の位置に現れる可能性がある場合も含め、現在のピクチャのための参照ピクチャが任意の順序で配列される可能性があるように修正される可能性がある。リストの修正の存在を示すフラグが1に設定されるとき、(参照ピクチャリストのエントリの目標数に等しい)決まった数のコマンドがシグナリングされ、各コマンドが参照ピクチャリストに関する1つのエントリを挿入する。RPSのシグナリングから導出された現在のピクチャのための参照ピクチャのリストへのインデックスによって、コマンド内で参照ピクチャが特定される。これは、ピクチャが(frame_numシンタックス要素から導出された)ピクチャ番号かまたは長期的参照ピクチャインデックスかのどちらかによって特定され、たとえば、初期リストの最初の2つのエントリを交換するかまたは初期リストの初めに1つのエントリを挿入し、その他のエントリをシフトするためにより少ないコマンドが必要とされる可能性があるH.264/AVCにおける参照ピクチャリストの修正とは異なる。
【００９２】
参照ピクチャリストは、現在のピクチャよりも大きいTemporalIdを有するいかなる参照ピクチャも含むことを許されない。HEVCのビットストリームは、いくつかの時間的サブレイヤからなる可能性がある。各NALユニットは、(temporal_id_plus1 - 1に等しい)TemporalIdによって示される特定のサブレイヤに属する。
【００９３】
参照ピクチャの管理は、参照ピクチャリストに直接基づく。JCT-VCの文書JCTVC-G643は、DPB内の参照ピクチャリストの管理のために3つの参照ピクチャリスト、参照ピクチャリスト0、参照ピクチャリスト1、およびアイドル参照ピクチャリストを直接使用する手法を含み、それによって、1)AVCの移動窓およびMMCOプロセスならびに参照ピクチャリスト初期化および修正プロセスか、または2)HEVCの参照ピクチャセットならびに参照ピクチャリスト初期化および修正プロセスかのどちらかを含むシグナリングおよび復号プロセスの必要性を回避する。
【００９４】
参照ピクチャの管理のための手法は、いくつかの問題を有する可能性がある。AVCの手法は、複雑な移動窓、MMCOプロセス、ならびに参照ピクチャリスト初期化および修正プロセスを含む。さらに、ピクチャの喪失は、さらなるインター予測が参照する目的でどのピクチャがDPB内にあるべきであったかという観点でのDPBのステータスの喪失につながる可能性がある。HEVCの手法は、DPBのステータスの喪失の問題がない。しかし、HEVCの手法は、複雑な参照ピクチャセットシグナリングおよび導出プロセスならびに複雑な参照ピクチャリスト初期化および修正プロセスを含む。DPB内の参照ピクチャの管理のために3つの参照ピクチャリスト、参照ピクチャリスト0、参照ピクチャリスト1、およびアイドル参照ピクチャリストを直接使用するJCTVC-G643の手法は、以下の点、すなわち、第3の参照ピクチャリスト、すなわち、アイドル参照ピクチャリスト、「短期的」部分およびue(v)コーディングされた(ue(v)-coded)「長期的部分」としてのPOCの差の2部分コーディング、POCの差のコーディングのためのTemporalIdに基づくPOCの粒度(granularity)、「短期的参照のために使用される」または「長期的参照のために使用される」の間でマーキングを決定するためのPOCの差の2部分コーディングの使用、特定の先の参照ピクチャリストの記述の末尾から参照ピクチャを削除することによって参照ピクチャを指定する能力を与える参照ピクチャリストのサブセットの記述、シンタックス要素ref_pic_list_copy_flagによって有効化される参照ピクチャリストコピーモード、ならびに参照ピクチャリスト記述プロセスを含む。上述の点の各々は、手法を不必要に複雑にする。さらに、JCTVC-G643の参照ピクチャリストに関する復号プロセスも、複雑である。長期的参照ピクチャのシグナリングは、スライスヘッダ内でPOCサイクルのシグナリングを必要とする可能性がある。これは、効率的ではない。
【００９５】
上に挙げられた問題に対処するために、本明細書において開示されるのは、下の解決策であり、それらの解決策の各々は、個々に適用されることが可能であり、それらの解決策の一部は、組み合わせて適用されることが可能である。1)参照ピクチャのマーキングが、2つの参照ピクチャリスト、すなわち、参照ピクチャリスト0および参照ピクチャリスト1に直接基づく。1a)2つの参照ピクチャリストの導出のための情報が、SPS、PPS、および/またはスライスヘッダ内のシンタックス要素およびシンタックス構造に基づいてシグナリングされる。1b)ピクチャのための2つの参照ピクチャリストの各々が、参照ピクチャリスト構造内で明示的にシグナリングされる。1b.i)1つまたは複数の参照ピクチャリスト構造が、SPS内でシグナリングされることが可能であり、それらの参照ピクチャリスト構造の各々が、スライスヘッダからのインデックスによって参照されることが可能である。1b.ii)参照ピクチャリスト0および1の各々が、スライスヘッダ内で直接シグナリングされ得る。2)2つの参照ピクチャリストの導出のための情報が、すべての種類のスライス、すなわち、B(双予測)、P(短予測)、およびI(イントラ)スライスに関してシグナリングされる。スライスという用語は、HEVCまたは最新のVVC WDのスライスなどのコーディングツリーユニットの集合を指し、スライスという用語は、HEVCのタイルなどのコーディングツリーユニットの何らかのその他の集合を指す可能性もある。3)2つの参照ピクチャリストが、すべての種類のスライス、すなわち、B、P、およびIスライスに関して生成される。4)2つの参照ピクチャリストが、参照ピクチャリスト初期化プロセスおよび参照ピクチャリスト修正プロセスを使用することなく直接構築される。5)2つの参照ピクチャリストの各々において、現在のピクチャのインター予測のために使用される可能性がある参照ピクチャが、リストの初めのいくつかのエントリによってのみ参照され得る。これらのエントリは、リストのアクティブエントリと呼ばれ、一方、その他のエントリは、リストの非アクティブエントリと呼ばれる。リストのすべてのエントリの数およびアクティブエントリの数は、両方とも導出され得る。6)参照ピクチャリストの非アクティブエントリによって参照されるピクチャが、参照ピクチャリストの別のエントリまたはその他の参照ピクチャリストのいかなるエントリによっても参照されることを許されない。7)長期的参照ピクチャが、特定の数のPOC LSBによってのみ特定され、この数は、POC値の導出のためにスライスヘッダ内でシグナリングされるPOC LSBの数よりも大きい可能性があり、この数は、SPSにおいて示される。8)参照ピクチャリスト構造が、スライスヘッダ内でのみシグナリングされ、短期的参照ピクチャと長期的参照ピクチャとの両方が、POC値の導出のためにスライスヘッダ内でシグナリングされるPOC LSBを表すために使用されるビットの数と異なる数のビットによって表される可能性があるそれらの参照ピクチャのPOC LSBによって特定され、短期的参照ピクチャおよび長期的参照ピクチャを特定するためのPOC LSBを表すために使用されるビットの数は、異なる可能性がある。9)参照ピクチャリスト構造が、スライスヘッダ内でのみシグナリングされ、短期的参照ピクチャと長期的参照ピクチ��との間の区別がなされず、すべての参照ピクチャが、単に参照ピクチャと呼ばれ、参照ピクチャが、POC値の導出のためにスライスヘッダ内でシグナリングされるPOC LSBを表すために使用されるビットの数と異なる数のビットによって表される可能性があるそれらの参照ピクチャのPOC LSBによって特定される。
【００９６】
本開示の第1の実施形態が、提供される。説明は、最新のVVC WDに関連する。この実施形態においては、参照ピクチャリスト構造の2つのセットが、参照ピクチャリスト0および参照ピクチャリスト1の各々につき1つずつSPS内でシグナリングされる。
【００９７】
本明細書において使用される用語の一部に関する定義が、与えられる。イントランダムアクセスポイント(IRAP)ピクチャ:各ビデオコーディングレイヤ(VCL)NALユニットがIRAP_NUTに等しいnal_unit_typeを有するコーディングされたピクチャ。非IRAPピクチャ:各VCL NALユニットがNON_IRAP_NUTに等しいnal_unit_typeを有するコーディングされたピクチャ。参照ピクチャリスト:PまたはBスライスのインター予測のために使用される参照ピクチャのリスト。2つの参照ピクチャリスト、参照ピクチャリスト0および参照ピクチャリスト1が、非IRAPピクチャの各スライスに関して生成される。ピクチャに関連する2つの参照ピクチャリストのすべてのエントリによって参照される一意のピクチャのセットは、関連するピクチャまたは復号の順序で関連するピクチャの後に続く任意のピクチャのインター予測のために使用される可能性があるすべての参照ピクチャからなる。Pスライスのスライスデータを復号するために、参照ピクチャリスト0のみが、インター予測のために使用される。Bスライスのスライスデータを復号するために、両方の参照ピクチャリストが、インター予測のために使用される。Iスライスのスライスデータを復号するために、参照ピクチャリストは、インター予測のために使用されない。長期的参照ピクチャ(LTRP):「長期的参照のために使用される」と印を付けられるピクチャ。短期的参照ピクチャ(STRP):「短期的参照のために使用される」と印を付けられるピクチャ。
【００９８】
用語「短期的参照のために使用される」、「長期的参照のために使用される」、または「参照のために使用されない」は、VVCにおいてはセクション8.3.3 Decoding process for reference picture markingに定義され、HEVCにおいてはセクション8.3.2 Decoding process for reference picture setに定義され、AVCにおいてはセクション7.4.3.3 Decoded reference picture marking semanticsに定義されている。本明細書において使用されるとき、用語は、同じ意味を有する。
【００９９】
第1の実施形態のための関連するシンタックスおよびセマンティクスが、以下で与えられる。
【０１００】
NALユニットヘッダのシンタックス
【０１０１】
【表１】
2021534668.tif 000003
【０１０２】
シーケンスパラメータセットの未加工バイトシーケンスペイロード(RBSP)のシンタックス
【０１０３】
【表２】
2021534668.tif 000004
【０１０４】
ピクチャパラメータセットのRBSPのシンタックス
【０１０５】
【表３】
2021534668.tif 000005
【０１０６】
スライスヘッダのシンタックス
【０１０７】
【表４】
2021534668.tif 000006
【０１０８】
参照ピクチャリスト構造のシンタックス
【０１０９】
【表５】
2021534668.tif 000007
【０１１０】
NALユニットヘッダのセマンティクス
【０１１１】
forbidden_zero_bitは、0に等しい。nal_unit_typeは、NALユニットに含まれるRBSPデータ構造の種類を指定する。
【０１１２】
【表６】
2021534668.tif 000008
【０１１３】
nuh_temporal_id_plus1から1を引いた値は、NALユニットに関する時間識別子(temporal identifier)を指定する。nuh_temporal_id_plus1の値は、0に等しくない。変数TemporalIdは、次のように、すなわち、TemporalId = nuh_temporal_id_plus1 - 1のように指定される。nal_unit_typeがIRAP_NUTに等しいとき、コーディングされたスライスは、IRAPピクチャに属し、TemporalIdは、0に等しい。TemporalIdの値は、アクセスユニットのすべてのVCL NALユニットに関して同じである。コーディングされたピクチャまたはアクセスユニットのTemporalIdの値は、コーディングされたピクチャまたはアクセスユニットのVCL NALユニットのTemporalIdの値である。非VCL NALユニットに関するTemporalIdの値は、以下のように制約される。nal_unit_typeがSPS_NUTに等しい場合、TemporalIdは、0に等しく、NALユニットを含むアクセスユニットのTemporalIdは、0に等しい。そうではなくnal_unit_typeがEOS_NUTまたはEOB_NUTに等しい場合、TemporalIdは、0に等しい。そうでない場合、TemporalIdは、NALユニットを含むアクセスユニットのTemporalId以上である。NALユニットが非VCL NALユニットであるとき、TemporalIdの値は、非VCL NALユニットが当てはまるすべてのアクセスユニットのTemporalId値のうちの最小値に等しい。nal_unit_typeがPPS_NUTに等しいとき、TemporalIdは、すべてのピクチャパラメータセット(PPS)がビットストリームの初めに含まれる可能性があり、第1のコーディングされたピクチャが0に等しいTemporalIdを有するので、包含するアクセスユニットのTemporalId以上である可能性がある。nal_unit_typeがPREFIX_SEI_NUTまたはSUFFIX_SEI_NUTに等しいとき、TemporalIdは、TemporalId値がSEI NALユニットを含むアクセスユニットのTemporalIdよりも大きいアクセスユニットを含むビットストリームのサブセットに適用される情報をSEI NALユニットが含む可能性があるので、包含するアクセスユニットのTemporalId以上である可能性がある。nuh_reserved_zero_7bitsは、'0000000'に等しい。nuh_reserved_zero_7bitsのその他の値が、ITU_T | ISO/IECによって将来規定される可能性がある。デコーダは、'0000000'に等しくないnuh_reserved_zero_7bitsの値を有するNALユニットを無視する(すなわち、ビットストリームから削除し、破棄する)。
【０１１４】
シーケンスパラメータセットのRBSPのセマンティクス
【０１１５】
log2_max_pic_order_cnt_lsb_minus4は、ピクチャ順序カウントに関する復号プロセスにおいて使用される変数MaxPicOrderCntLsbの値を次のように、すなわち、MaxPicOrderCntLsb = 2( log2_max_pic_order_cnt_lsb_minus4 + 4 )のように指定する。log2_max_pic_order_cnt_lsb_minus4の値は、0および12を含んで0から12までの範囲内にある。sps_max_dec_pic_buffering_minus1に1を足した値は、ピクチャストレージバッファ(picture storage buffer)を単位としてCVSのための復号ピクチャバッファの最大の必要とされるサイズを指定する。sps_max_dec_pic_buffering_minus1の値は、0およびMaxDpbSize - 1を含んで0からMaxDpbSize - 1までの範囲内にあり、MaxDpbSizeは、別のどこかで指定される。0に等しいlong_term_ref_pics_flagは、LTRPがCVS内のいかなるコーディングされたピクチャのインター予測にも使用されないことを指定する。1に等しいlong_term_ref_pics_flagは、LTRPがCVS内の1つまたは複数のコーディングされたピクチャのインター予測のために使用される可能性があることを指定する。additional_lt_poc_lsbは、参照ピクチャリストに関する復号プロセスにおいて使用される変数MaxLtPicOrderCntLsbの値を次のように、すなわち、MaxLtPicOrderCntLsb = 2( log2_max_pic_order_cnt_lsb_minus4 + 4 + additional_lt_poc_lsb )のように指定する。additional_lt_poc_lsbの値は、0および32 - log2_max_pic_order_cnt_lsb_minus4 - 4を含んで0から32 - log2_max_pic_order_cnt_lsb_minus4 - 4までの範囲内にある。存在しないとき、additional_lt_poc_lsbの値は、0に等しいと推測される。num_ref_pic_lists_in_sps[i]は、SPSに含まれるlistIdxがiに等しいref_pic_list_struct(listIdx, rplsIdx, ltrpFlag)シンタックス構造の数を指定する。num_ref_pic_lists_in_sps[i]の値は、0および64を含んで0から64までの範囲内にある。(0または1に等しい)listIdxの各値に関して、デコーダは、現在のピクチャのスライスヘッダ内で直接シグナリングされた1つのref_pic_list_struct(listIdx, rplsIdx, ltrpFlag)シンタックス構造が存在する可能性があるので、合計num_ref_pic_lists_in_sps[i] + 1個のref_pic_list_struct(listIdx, rplsIdx, ltrpFlag)シンタックス構造のためにメモリを割り当てるべきである。
【０１１６】
ピクチャパラメータセットのRBSPのセマンティクス
【０１１７】
num_ref_idx_default_active_minus1[i]に1を足した値は、iが0に等しいとき、num_ref_idx_active_override_flagが0に等しいPまたはBスライスに関する変数NumRefIdxActive[0]の推測された値を指定し、iが1に等しいとき、num_ref_idx_active_override_flagが0に等しいBスライスに関するNumRefIdxActive[1]の推測された値を指定する。num_ref_idx_default_active_minus1[i]の値は、0および14を含んで0から14までの範囲内にある。
【０１１８】
スライスヘッダのセマンティクス
【０１１９】
存在するとき、スライスヘッダのシンタックス要素slice_pic_parameter_set_idおよびslice_pic_order_cnt_lsbの各々の値は、コーディングされたピクチャのすべてのスライスヘッダにおいて同じである。... slice_typeは、Table 7-3(表7)に従ってスライスのコーディングタイプを指定する。
【０１２０】
【表７】
2021534668.tif 000009
【０１２１】
nal_unit_typeがIRAP_NUTに等しい、すなわち、ピクチャがIRAPピクチャであるとき、slice_typeは、2に等しい。... slice_pic_order_cnt_lsbは、現在のピクチャに関するピクチャ順序カウントのモジュロMaxPicOrderCntLsbを指定する。slice_pic_order_cnt_lsbシンタックス要素の長さは、log2_max_pic_order_cnt_lsb_minus4 + 4ビットである。slice_pic_order_cnt_lsbの値は、0およびMaxPicOrderCntLsb - 1を含んで0からMaxPicOrderCntLsb - 1までの範囲内にある。slice_pic_order_cnt_lsbが存在しないとき、slice_pic_order_cnt_lsbは、0に等しいと推測される。1に等しいref_pic_list_sps_flag[i]は、現在のピクチャの参照ピクチャリストiがアクティブなSPS内でlistIdxがiに等しいref_pic_list_struct(listIdx, rplsIdx, ltrpFlag)シンタックス構造のうちの1つに基づいて導出されることを指定する。0に等しいref_pic_list_sps_flag[i]は、現在のピクチャの参照ピクチャリストiが現在のピクチャのスライスヘッダに直接含まれるlistIdxがiに等しいref_pic_list_struct(listIdx, rplsIdx, ltrpFlag)シンタックス構造に基づいて導出されることを指定する。num_ref_pic_lists_in_sps[i]が0に等しいとき、ref_pic_list_sps_flag[i]の値は、0に等しい。ref_pic_list_idx[i]は、現在のピクチャの参照ピクチャリストiの導出のために使用されるlistIdxがiに等しいref_pic_list_struct(listIdx, rplsIdx, ltrpFlag)シンタックス構造の、アクティブなSPSに含まれるlistIdxがiに等しいref_pic_list_struct(listIdx, rplsIdx, ltrpFlag)シンタックス構造のリストへのインデックスを指定する。シンタックス要素ref_pic_list_idx[i]は、Ceil( Log2(num_ref_pic_lists_in_sps[i]) )ビットによって表される。存在しないとき、ref_pic_list_idx[i]の値は、0に等しいと推測される。ref_pic_list_idx[i]の値は、0およびnum_ref_pic_lists_in_sps[i] - 1を含んで0からnum_ref_pic_lists_in_sps[i] - 1までの範囲内にある。1に等しいnum_ref_idx_active_override_flagは、シンタックス要素num_ref_idx_active_minus1[0]がPおよびBスライスに関して存在することと、シンタックス要素num_ref_idx_active_minus1[1]がBスライスに関して存在することとを指定する。0に等しいnum_ref_idx_active_override_flagは、シンタックス要素num_ref_idx_active_minus1[0]およびnum_ref_idx_active_minus1[1]が存在しないことを指定する。num_ref_idx_active_minus1[i]は、存在するとき、変数NumRefIdxActive[i]の値を次のように、すなわち、NumRefIdxActive[i] = num_ref_idx_active_minus1[i] + 1のように指定する。num_ref_idx_active_minus1[i]の値は、0および14を含んで0から14までの範囲内にある。
【０１２２】
NumRefIdxActive[i]の値 - 1は、スライスを復号するために使用される可能性がある参照ピクチャリストiに関する最大の参照インデックスを指定する。NumRefIdxActive[i]の値が0に等しいとき、参照ピクチャリストiに関する参照インデックスは、スライスを復号するために使用されない可能性がある。0または1に等しいiに関して、現在のスライスがBスライスであり、num_ref_idx_active_override_flagが0に等しいとき、NumRefIdxActive[i]は、num_ref_idx_default_active_minus1[i] + 1に等しいと推測される。現在のスライスがPスライスであり、num_ref_idx_active_override_flagが0に等しいとき、NumRefIdxActive[0]は、num_ref_idx_default_active_minus1[0] + 1に等しいと推測される。現在のスライスがPスライスであるとき、NumRefIdxActive[1]は、0に等しいと推測される。現在のスライスがIスライスであるとき、NumRefIdxActive[0]とNumRefIdxActive[1]との両方は、0に等しいと推測される。
【０１２３】
代替的に、0または1に等しいiに関して、以上の後、以下のことが適用される。rplsIdx1がref_pic_list_sps_flag[i] ? ref_pic_list_idx[i] : num_ref_pic_lists_in_sps[i]に等しいように設定され、numRpEntries[i]がnum_strp_entries[i][rplsIdx1] + num_ltrp_entries[i][rplsIdx1]に等しいものとする。NumRefIdxActive[i]がnumRpEntries[i]よりも大きいとき、NumRefIdxActive[i]の値は、numRpEntries[i]に等しいように設定される。
【０１２４】
参照ピクチャリスト構造のセマンティクス
【０１２５】
ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag)シンタックス構造は、SPS内またはスライスヘッダ内に存在する可能性がある。シンタックス構造がスライスヘッダに含まれるのかまたはSPSに含まれるのかに応じて、以下のことが適用される。スライスヘッダ内に存在する場合、ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag)シンタックス構造は、現在のピクチャ(スライスを含むピクチャ)の参照ピクチャリストのlistIdxを指定する。そうでない(SPS内に存在する)場合、ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag)シンタックス構造は、参照ピクチャリストのlistIdxに関する候補を指定し、このセクションの残りにおいて明示されるセマンティクスにおける用語「現在のピクチャ」は、1)SPSに含まれるref_pic_list_struct(listIdx, rplsIdx, ltrpFlag)シンタックス構造のリストへのインデックスに等しいref_pic_list_idx[listIdx]を含む1つまたは複数のスライスを有し、2)SPSをアクティブなSPSとして有するCVS内にある各ピクチャを指す。num_strp_entries[listIdx][rplsIdx]は、ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag)シンタックス構造のSTRPエントリの数を指定する。num_ltrp_entries[listIdx][rplsIdx]は、ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag)シンタックス構造のLTRPエントリの数を指定する。存在しないとき、num_ltrp_entries[listIdx][rplsIdx]の値は、0に等しいと推測される。変数NumEntriesInList[listIdx][rplsIdx]は、次のように、すなわち、NumEntriesInList[listIdx][rplsIdx] = num_strp_entries[listIdx][rplsIdx] + num_ltrp_entries[listIdx][rplsIdx]のように導出される。NumEntriesInList[listIdx][rplsIdx]の値は、0およびsps_max_dec_pic_buffering_minus1を含んで0からsps_max_dec_pic_buffering_minus1までの範囲内にある。1に等しいlt_ref_pic_flag[listIdx][rplsIdx][i]は、ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag)シンタックス構造のi番目のエントリがLTRPエントリであることを指定する。0に等しいlt_ref_pic_flag[listIdx][rplsIdx][i]は、ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag)シンタックス構造のi番目のエントリがSTRPエントリであることを指定する。存在しないとき、lt_ref_pic_flag[listIdx][rplsIdx][i]の値は、0に等しいと推測される。0およびNumEntriesInList[listIdx][rplsIdx] - 1を含んで0からNumEntriesInList[listIdx][rplsIdx] - 1までの範囲内にあるiのすべての値に関するlt_ref_pic_flag[listIdx][rplsIdx][i]の総和がnum_ltrp_entries[listIdx][rplsIdx]に等しいことが、ビットストリームの準拠の要件である。delta_poc_st[listIdx][rplsIdx][i]は、i番目のエントリがref_pic_list_struct(rplsIdx, ltrpFlag)シンタックス構造の最初のSTRPエントリであるとき、現在のピクチャのピクチャ順序カウントの値とi番目のエントリによって参照されるピクチャのピクチャ順序カウントの値との間の差を指定し、またはi番目のエントリがref_pic_list_struct(rplsIdx, ltrpFlag)シンタックス構造のSTRPエントリであるが最初のSTRPエントリではないとき、i番目のエントリによって参照されるピクチャのピクチャ順序カウントの値とref_pic_list_struct(listIdx, rplsIdx, ltrpFlag)シンタックス構造の前のSTRPエントリによって参照されるピクチャのピクチャ順序カウントの値との間の差を指定する。delta_poc_st[listIdx][rplsIdx][i]の値は、-215および215 - 1を含んで-215から215 - 1までの範囲内にある。poc_lsb_lt[listIdx][rplsIdx][i]は、ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag)シンタックス構造のi番目のエントリによって参照されるピクチャのピクチャ順序カウントのモジュロMaxLtPicOrderCntLsbの値を指定する。poc_lsb_lt[listIdx][rplsIdx][i]シンタックス要素の長さは、Log2(MaxLtPicOrderCntLsb)ビットである。
【０１２６】
復号プロセスが、検討される。復号プロセスは、現在のピクチャCurrPicに関して以下のように動作する。NALユニットの復号が、下で規定される。下のプロセスは、スライスヘッダレイヤ以上のシンタックス要素を使用して以下の復号プロセスを規定する。ピクチャ順序カウントに関連する変数および関数が、導出される。これは、ピクチャの最初のスライスに関してのみ呼び出される必要がある。非IRAPピクチャの各スライスに関する復号プロセスの初めに、参照ピクチャリストの構築のための復号プロセスが、参照ピクチャリスト0(RefPicList[0])および参照ピクチャリスト1(RefPicList[1])の導出のために呼び出される。参照ピクチャのマーキングのための復号プロセスが、呼び出され、参照ピクチャが、「参照のために使用されない」または「長期的参照のために使用される」と印を付けられる可能性がある。これは、ピクチャの最初のスライスに関してのみ呼び出される必要がある。コーディングツリーユニット、スケーリング、変換、ループ内フィルタリングなどのための復号プロセスが、呼び出される。現在のピクチャのすべてのスライスが復号された後、現在の復号されたピクチャが、「短期的参照のために使用される」と印を付けられる。
【０１２７】
NALユニット復号プロセスが、検討される。このプロセスへの入力は、現在のピクチャのNALユニットおよびそれらの関連する非VCL NALユニットである。このプロセスの出力は、NALユニットにカプセル化された解析されたRBSPシンタックス構造である。各NALユニットに関する復号プロセスは、NALユニットからRBSPシンタックス構造を抽出し、それから、RBSPシンタックス構造を解析する。
【０１２８】
ピクチャ順序カウントに関する復号プロセスを含むスライス復号プロセスが、検討される。このプロセスの出力は、PicOrderCntVal、現在のピクチャのピクチャ順序カウントである。ピクチャ順序カウントは、マージモード(merge mode)および動きベクトルの予測において動きパラメータを導出するためおよびデコーダの準拠の検査のためにピクチャを特定するために使用される。それぞれのコーディングされたピクチャは、PicOrderCntValと表されるピクチャ順序カウント変数に関連付けられる。現在のピクチャがIRAPピクチャでないとき、変数prevPicOrderCntLsbおよびprevPicOrderCntMsbは、以下のように導出される。prevTid0Picが、0に等しいTemporalIdを有する、復号の順序で前のピクチャであるものとする。変数prevPicOrderCntLsbは、prevTid0Picのslice_pic_order_cnt_lsbに等しいように設定される。変数prevPicOrderCntMsbは、prevTid0PicのPicOrderCntMsbに等しいように設定される。
【０１２９】
現在のピクチャの変数PicOrderCntMsbは、次のように導出される。現在のピクチャがIRAPピクチャである場合、PicOrderCntMsbは、0に等しいように設定される。そうでない場合、PicOrderCntMsbは、以下のように導出される。
if( ( slice_pic_order_cnt_lsb < prevPicOrderCntLsb ) && ( ( prevPicOrderCntLsb - slice_pic_order_cnt_lsb ) >= ( MaxPicOrderCntLsb / 2 ) ) )
PicOrderCntMsb = prevPicOrderCntMsb + MaxPicOrderCntLsb
else if( (slice_pic_order_cnt_lsb > prevPicOrderCntLsb ) && ( ( slice_pic_order_cnt_lsb - prevPicOrderCntLsb ) > ( MaxPicOrderCntLsb / 2 ) ) )
PicOrderCntMsb = prevPicOrderCntMsb - MaxPicOrderCntLsb
else
PicOrderCntMsb = prevPicOrderCntMsb
【０１３０】
PicOrderCntValは、次のように、すなわち、PicOrderCntVal = PicOrderCntMsb + slice_pic_order_cnt_lsbのように導出される。
【０１３１】
slice_pic_order_cnt_lsbがIRAPピクチャに関して0であると推測され、prevPicOrderCntLsbとprevPicOrderCntMsbとの両方が0に等しいように設定されるので、すべてのIRAPピクチャは、0に等しいPicOrderCntValを持つ。PicOrderCntValの値は、-231および231 - 1を含んで-231から231 - 1までの範囲内にある。1つのCVSにおいては、いかなる2つのコーディングされたピクチャに関するPicOrderCntVal値も、同じでない。
【０１３２】
復号プロセス中の任意の瞬間に、DPB内のいかなる2つの参照ピクチャに関するPicOrderCntVal & ( MaxLtPicOrderCntLsb - 1 )の値も、同じでない。関数PicOrderCnt(picX)は、次のように、すなわち、PicOrderCnt(picX) =ピクチャpicXのPicOrderCntValのように指定される。関数DiffPicOrderCnt(picA, picB)は、次のように、すなわち、DiffPicOrderCnt(picA, picB) = PicOrderCnt(picA) - PicOrderCnt(picB)のように指定される。ビットストリームは、-215および215 - 1を含む-215から215 - 1までの範囲内にない、復号プロセスにおいて使用されるDiffPicOrderCnt(picA, picB)の値をもたらすデータを含まない。Xが現在のピクチャであり、YおよびZが同じコーディングビデオシーケンス(CVS: coded video sequence)内の2つのその他のピクチャであるものとして、YおよびZは、DiffPicOrderCnt(X, Y)とDiffPicOrderCnt(X, Z)との両方が正であるかまたは両方が負であるとき、Xから同じ出力順序の方向にあると考えられる。
【０１３３】
参照ピクチャリストの構築のための復号プロセスが、検討される。このプロセスは、非IRAPピクチャの各スライスに関する復号プロセスの初めに呼び出される。参照ピクチャは、参照インデックスによってアドレス指定される。参照インデックスは、参照ピクチャリストへのインデックスである。Iスライスを復号するとき、参照ピクチャリストは、スライスデータの復号において使用されない。Pスライスを復号するとき、参照ピクチャリスト0(すなわち、RefPicList[0])のみが、スライスデータの復号において使用される。Bスライスを復号するとき、参照ピクチャリスト0と参照ピクチャリスト1(すなわち、RefPicList[1])との両方が、スライスデータの復号において使用される。非IRAPピクチャの各スライスに関する復号プロセスの初めに、参照ピクチャリストRefPicList[0]およびRefPicList[1]が、導出される。参照ピクチャリストは、参照ピクチャのマーキングにおいてまたはスライスデータの復号において使用される。ピクチャの最初のスライスでない非IRAPピクチャのIスライスに関して、RefPicList[0]およびRefPicList[1]が、ビットストリームの準拠の検査の目的で導出される可能性があるが、それらの導出は、現在のピクチャまたは復号の順序で現在のピクチャの後に続くピクチャの復号のために必要でない。ピクチャの最初のスライスでないPスライスに関して、RefPicList[1]が、ビットストリームの準拠の検査の目的で導出される可能性があるが、その導出は、現在のピクチャまたは復号の順序で現在のピクチャの後に続くピクチャの復号のために必要でない。参照ピクチャリストRefPicList[0]およびRefPicList[1]は、以下のように構築される。
for( i = 0; i < 2; i++ ) {
if( ref_pic_list_sps_flag[i] )
RplsIdx[i] = ref_pic_list_idx[i]
else
RplsIdx[i] = num_ref_pic_lists_in_sps[i]
for( j = 0, pocBase = PicOrderCntVal; j < NumEntriesInList[i][RplsIdx[i]]; j++ ) {
if( !lt_ref_pic_flag[i][RplsIdx[i]][j] ) {
RefPicPocList[i][j] = pocBase - delta_poc_st[i][RplsIdx[i]][j]
if( PicOrderCntValがRefPicPocList[i][j]に等しいDPB内の参照ピクチャpicAが存在する )
RefPicList[i][j] = picA
else
RefPicList[i][j] = "no reference picture"
pocBase = RefPicPocList[i][j]
} else {
if( PicOrderCntVal & ( MaxLtPicOrderCntLsb - 1 )がpoc_lsb_lt[i][RplsIdx[i]][j]に等しいDPB内の参照ピクチャpicAが存在する )
RefPicList[i][j] = picA
else
RefPicList[i][j] = "no reference picture"
}
}
}
【０１３４】
0または1に等しい各iに関して、以下のことが適用される。RefPicList[i]の最初のNumRefIdxActive[i]個のエントリが、RefPicList[i]のアクティブなエントリと呼ばれ、RefPicList[i]のその他のエントリは、RefPicList[i]の非アクティブなエントリと呼ばれる。0およびNumEntriesInList[i][RplsIdx[i]] - 1を含んで0からNumEntriesInList[i][RplsIdx[i]] - 1までの範囲内のjに関してRefPicList[i][j]の各エントリは、lt_ref_pic_flag[i][RplsIdx[i]][j]が0に等しい場合、STRPエントリと呼ばれ、そうでない場合、LTRPエントリと呼ばれる。特定のピクチャが、RefPicList[0]のエントリとRefPicList[1]のエントリとの両方によって参照されることが可能である。特定のピクチャが、RefPicList[0]の2つ以上のエントリによってまたはRefPicList[1]の2つ以上のエントリによって参照されることも可能である。RefPicList[0]のアクティブなエントリおよびRefPicList[1]のアクティブなエントリは、現在のピクチャおよび復号の順序で現在のピクチャの後に続く1つまたは複数のピクチャのインター予測のために使用される可能性があるすべての参照ピクチャを集合的に指す。RefPicList[0]の非アクティブなエントリおよびRefPicList[1]の非アクティブなエントリは、現在のピクチャのインター予測のために使用されないが、復号の順序で現在のピクチャの後に続く1つまたは複数のピクチャのインター予測において使用される可能性があるすべての参照ピクチャを集合的に指す。対応するピクチャがDPB内に存在しないので「no reference picture」に等しいRefPicList[0]またはRefPicList[1]の1つまたは複数のエントリが、存在する可能性がある。「no reference picture」に等しいRefPicList[0]またはRefPicList[0]のそれぞれの非アクティブなエントリは、無視されるべきである。「no reference picture」に等しいRefPicList[0]またはRefPicList[1]のそれぞれのアクティブなエントリに関しては、意図しないピクチャの喪失が、推測されるべきである。
【０１３５】
以下の制約が適用されることが、ビットストリームの準拠の要件である。0または1に等しい各iに関して、NumEntriesInList[i][RplsIdx[i]]が、NumRefIdxActive[i]以上である。RefPicList[0]またはRefPicList[1]のそれぞれのアクティブなエントリによって参照されるピクチャが、DPB内に存在し、現在のピクチャのTemporalId以下のTemporalIdを有する。任意で、以下の制約が、さらに指定される可能性がある。RefPicList[0]またはRefPicList[1]のいかなる非アクティブなエントリのエントリインデックスも、現在のピクチャの復号のための参照インデックスとして使用されない。任意で、以下の制約が、さらに指定される可能性がある。RefPicList[0]またはRefPicList[1]の非アクティブなエントリが、RefPicList[0]またはRefPicList[1]のいかなるその他のエントリとも同じピクチャを参照しない。ピクチャのスライスのRefPicList[0]またはRefPicList[1]のSTRPエントリおよび同じスライスまたは同じピクチャの異なるスライスのRefPicList[0]またはRefPicList[1]のLTRPエントリが、同じピクチャを参照しない。現在のピクチャ自体が、RefPicList[0]またはRefPicList[1]のいかなるエントリによっても参照されない。現在のピクチャのPicOrderCntValとエントリによって参照されるピクチャのPicOrderCntValとの間の差が224以上であるRefPicList[0]またはRefPicList[1]のLTRPエントリが、存在しない。setOfRefPicsは、RefPicList[0]のすべてのエントリおよびRefPicList[1]のすべてのエントリによって参照される一意のピクチャのセットであるものとする。setOfRefPics内のピクチャの数が、sps_max_dec_pic_buffering_minus1以下であり、setOfRefPicsが、ピクチャのすべてのスライスに関して同じである。
【０１３６】
参照ピクチャのマーキングのための復号プロセス
【０１３７】
このプロセスは、スライスヘッダの復号およびスライスに関する参照ピクチャリストの構築のための復号プロセスの後であるが、スライスデータの復号の前に、ピクチャ毎に1回呼び出される。このプロセスは、DPB内の1つまたは複数の参照ピクチャが「参照のために使用されない」または「長期的参照のために使用される」と印を付けられる結果をもたらす可能性がある。DPB内の復号されたピクチャは、「参照のために使用されない」、「短期的参照のために使用される」、または「長期的参照のために使用される」として、ただし、復号プロセスの動作中の任意の所与の瞬間にこれら3つのうちのただ1つとして印を付けられ得る。ピクチャにこれらのマーキングのうちの1つを割り振ることは、該当する場合、これらのマーキングのうちの別のマーキングを暗黙的に削除する。ピクチャが「参照のために使用される」と印を付けられていると言われるとき、これは、集合的に、ピクチャが「短期的参照のために使用される」または「長期的参照のために使用される」として(ただし、両方ではない)印を付けられていることを指す。現在のピクチャがIRAPピクチャであるとき、現在DPB内にあるすべての参照ピクチャ(もしあれば)は、「参照のために使用されない」と印を付けられる。STRPは、それらのPicOrderCntVal値によって特定される。LTRPは、それらのPicOrderCntVal値のLog2(MaxLtPicOrderCntLsb) LSBによって特定される。以下のことが、適用される。RefPicList[0]またはRefPicList[1]の各LTRPエントリに関して、参照されるピクチャがSTRPであるとき、ピクチャは、「長期的参照のために使用される」と印を付けられる。RefPicList[0]またはRefPicList[1]のいかなるエントリによっても参照されないDPB内の各参照ピクチャは、「参照のために使用されない」と印を付けられる。
【０１３８】
本開示の第2の実施形態の詳細な説明が、与えられる。このセクションは、上述のように本開示の第2の実施形態の文書を提供する。説明は、最新のVVC WDに関連する。この実施形態においては、参照ピクチャリスト構造の1つのセットが、SPS内でシグナリングされ、参照ピクチャリスト0および参照ピクチャリスト1によって共有される。
【０１３９】
シーケンスパラメータセットのRBSPのシンタックス
【０１４０】
【表８】
2021534668.tif 000010
【０１４１】
ピクチャパラメータセットのRBSPのシンタックス
【０１４２】
【表９】
2021534668.tif 000011
【０１４３】
スライスヘッダのシンタックス
【０１４４】
【表１０】
2021534668.tif 000012
【０１４５】
参照ピクチャリスト構造のシンタックス
【０１４６】
【表１１】
2021534668.tif 000013
【０１４７】
NALユニットヘッダのセマンティクスが、検討される。
【０１４８】
シーケンスパラメータセットのRBSPのセマンティクス
【０１４９】
log2_max_pic_order_cnt_lsb_minus4は、ピクチャ順序カウントに関する復号プロセスにおいて使用される変数MaxPicOrderCntLsbの値を次のように、すなわち、MaxPicOrderCntLsb = 2( log2_max_pic_order_cnt_lsb_minus4 + 4 )のように指定する。log2_max_pic_order_cnt_lsb_minus4の値は、0および12を含んで0から12までの範囲内にある。sps_max_dec_pic_buffering_minus1に1を足した値は、ピクチャストレージバッファを単位としてCVSのための復号ピクチャバッファの最大の必要とされるサイズを指定する。sps_max_dec_pic_buffering_minus1の値は、0およびMaxDpbSize - 1を含んで0からMaxDpbSize - 1までの範囲内にあり、MaxDpbSizeは、別のどこかで指定される。num_ref_pic_lists_in_spsは、SPSに含まれるref_pic_list_struct(rplsIdx, ltrpFlag)シンタックス構造の数を指定する。num_ref_pic_lists_in_spsの値は、0および128を含んで0から128までの範囲内にある。デコーダは、現在のピクチャのスライスヘッダ内で直接シグナリングされる2つのref_pic_list_struct(rplsIdx, ltrpFlag)シンタックス構造が存在する可能性があるので、合計num_short_term_ref_pic_sets + 2個のref_pic_list_struct(rplsIdx, ltrpFlag)シンタックス構造のためのメモリを割り当てるべきである。0に等しいlong_term_ref_pics_flagは、LTRPがCVS内のいかなるコーディングされたピクチャのインター予測にも使用されないことを指定する。1に等しいlong_term_ref_pics_flagは、LTRPがCVS内の1つまたは複数のコーディングされたピクチャのインター予測のために使用される可能性があることを指定する。additional_lt_poc_lsbは、参照ピクチャリストに関する復号プロセスにおいて使用される変数MaxLtPicOrderCntLsbの値を次のように、すなわち、MaxLtPicOrderCntLsb = 2( log2_max_pic_order_cnt_lsb_minus4 + 4 + additional_lt_poc_lsb )のように指定する。additional_lt_poc_lsbの値は、0および32 - log2_max_pic_order_cnt_lsb_minus4 - 4を含んで0から32 - log2_max_pic_order_cnt_lsb_minus4 - 4までの範囲内にある。存在しないとき、additional_lt_poc_lsbの値は、0に等しいと推測される。
【０１５０】
ピクチャパラメータセットのRBSPのセマンティクスが、検討される。
【０１５１】
スライスヘッダのセマンティクス
【０１５２】
存在するとき、スライスヘッダのシンタックス要素slice_pic_parameter_set_idおよびslice_pic_order_cnt_lsbの各々の値は、コーディングされたピクチャのすべてのスライスヘッダにおいて同じである。slice_typeは、Table 7-3(表12)に従ってスライスのコーディングタイプを指定する。
【０１５３】
【表１２】
2021534668.tif 000014
【０１５４】
nal_unit_typeがIRAP_NUTに等しい、すなわち、ピクチャがIRAPピクチャであるとき、slice_typeは、2に等しい。... slice_pic_order_cnt_lsbは、現在のピクチャに関するピクチャ順序カウントのモジュロMaxPicOrderCntLsbを指定する。slice_pic_order_cnt_lsbシンタックス要素の長さは、log2_max_pic_order_cnt_lsb_minus4 + 4ビットである。slice_pic_order_cnt_lsbの値は、0およびMaxPicOrderCntLsb - 1を含んで0からMaxPicOrderCntLsb - 1までの範囲内にある。slice_pic_order_cnt_lsbが存在しないとき、slice_pic_order_cnt_lsbは、0に等しいと推測される。1に等しいref_pic_list_sps_flag[i]は、現在のピクチャの参照ピクチャリストiがアクティブなSPS内のref_pic_list_struct(rplsIdx, ltrpFlag)のうちの1つに基づいて導出されることを指定する。0に等しいref_pic_list_sps_flag[i]は、現在のピクチャの参照ピクチャリストiが現在のピクチャのスライスヘッダに直接含まれるref_pic_list_struct(rplsIdx, ltrpFlag)シンタックス構造に基づいて導出されることを指定する。num_ref_pic_lists_in_spsが0に等しいとき、ref_pic_list_sps_flag[i]の値は、0に等しい。ref_pic_list_idx[i]は、現在のピクチャの参照ピクチャリストiの導出のために使用されるref_pic_list_struct(rplsIdx, ltrpFlag)シンタックス構造の、アクティブなSPSに含まれるref_pic_list_struct(rplsIdx, ltrpFlag)シンタックス構造のリストへのインデックスを指定する。シンタックス要素ref_pic_list_idx[i]は、Ceil( Log2(num_ref_pic_lists_in_sps) )ビットによって表される。存在しないとき、ref_pic_list_idx[i]の値は、0に等しいと推測される。ref_pic_list_idx[i]の値は、0およびnum_ref_pic_lists_in_sps - 1を含んで0からnum_ref_pic_lists_in_sps - 1までの範囲内にある。1に等しいnum_ref_idx_active_override_flagは、シンタックス要素num_ref_idx_active_minus1[0]がPおよびBスライスに関して存在することと、シンタックス要素num_ref_idx_active_minus1[1]がBスライスに関して存在することとを指定する。0に等しいnum_ref_idx_active_override_flagは、シンタックス要素num_ref_idx_active_minus1[0]およびnum_ref_idx_active_minus1[1]が存在しないことを指定する。
【０１５５】
num_ref_idx_active_minus1[i]は、存在するとき、変数NumRefIdxActive[i]の値を次のように、すなわち、NumRefIdxActive[i] = num_ref_idx_active_minus1[i] + 1のように指定する。num_ref_idx_active_minus1[i]の値は、0および14を含んで0から14までの範囲内にある。NumRefIdxActive[i]の値 - 1は、スライスを復号するために使用される可能性がある参照ピクチャリストiに関する最大の参照インデックスを指定する。NumRefIdxActive[i]の値が0に等しいとき、参照ピクチャリストiに関する参照インデックスは、スライスを復号するために使用されない可能性がある。0または1に等しいiに関して、現在のスライスがBスライスであり、num_ref_idx_active_override_flagが0に等しいとき、NumRefIdxActive[i]は、num_ref_idx_default_active_minus1[i] + 1に等しいと推測される。現在のスライスがPスライスであり、num_ref_idx_active_override_flagが0に等しいとき、NumRefIdxActive[0]は、num_ref_idx_default_active_minus1[0] + 1に等しいと推測される。現在のスライスがPスライスであるとき、NumRefIdxActive[1]は、0に等しいと推測される。現在のスライスがIスライスであるとき、NumRefIdxActive[0]とNumRefIdxActive[1]との両方は、0に等しいと推測される。
【０１５６】
代替的に、0または1に等しいiに関して、以上の後、以下のことが適用される。rplsIdx1がref_pic_list_sps_flag[i] ? ref_pic_list_idx[i] : num_ref_pic_lists_in_sps[i]に等しいように設定され、numRpEntries[i]がnum_strp_entries[i][rplsIdx1] + num_ltrp_entries[i][rplsIdx1]に等しいものとする。NumRefIdxActive[i]がnumRpEntries[i]よりも大きいとき、NumRefIdxActive[i]の値は、numRpEntries[i]に等しいように設定される。
【０１５７】
参照ピクチャリスト構造のセマンティクス
【０１５８】
ref_pic_list_struct(rplsIdx, ltrpFlag)シンタックス構造は、SPS内またはスライスヘッダ内に存在する可能性がある。シンタックス構造がスライスヘッダに含まれるのかまたはSPSに含まれるのかに応じて、以下のことが適用される。スライスヘッダ内に存在する場合、ref_pic_list_struct(rplsIdx, ltrpFlag)シンタックス構造は、現在のピクチャ(スライスを含むピクチャ)の参照ピクチャリストを指定する。そうでない(SPS内に存在する)場合、ref_pic_list_struct(rplsIdx, ltrpFlag)シンタックス構造は、候補参照ピクチャリストを指定し、このセクションの残りにおいて明示されるセマンティクスにおける用語「現在のピクチャ」は、1)SPSに含まれるref_pic_list_struct(rplsIdx, ltrpFlag)シンタックス構造のリストへのインデックスに等しいref_pic_list_idx[i]を含む1つまたは複数のスライスを有し、2)SPSをアクティブなSPSとして有するCVS内にある各ピクチャを指す。num_strp_entries[rplsIdx]は、ref_pic_list_struct(rplsIdx, ltrpFlag)シンタックス構造のSTRPエントリの数を指定する。num_ltrp_entries[rplsIdx]は、ref_pic_list_struct(rplsIdx, ltrpFlag)シンタックス構造のLTRPエントリの数を指定する。存在しないとき、num_ltrp_entries[rplsIdx]の値は、0に等しいと推測される。
【０１５９】
変数NumEntriesInList[rplsIdx]は、次のように、すなわち、NumEntriesInList[rplsIdx] = num_strp_entries[rplsIdx] + num_ltrp_entries[rplsIdx]のように導出される。NumEntriesInList[rplsIdx]の値は、0およびsps_max_dec_pic_buffering_minus1を含んで0からsps_max_dec_pic_buffering_minus1までの範囲内にある。1に等しいlt_ref_pic_flag[rplsIdx][i]は、ref_pic_list_struct(rplsIdx, ltrpFlag)シンタックス構造のi番目のエントリがLTRPエントリであることを指定する。0に等しいlt_ref_pic_flag[rplsIdx][i]は、ref_pic_list_struct(rplsIdx, ltrpFlag)シンタックス構造のi番目のエントリがSTRPエントリであることを指定する。存在しないとき、lt_ref_pic_flag[rplsIdx][i]の値は、0に等しいと推測される。0およびNumEntriesInList[rplsIdx] - 1を含んで0からNumEntriesInList[rplsIdx] - 1までの範囲内にあるiのすべての値に関するlt_ref_pic_flag[rplsIdx][i]の総和がnum_ltrp_entries[rplsIdx]に等しいことが、ビットストリームの準拠の要件である。delta_poc_st[rplsIdx][i]は、i番目のエントリがref_pic_list_struct(rplsIdx, ltrpFlag)シンタックス構造の最初のSTRPエントリであるとき、現在のピクチャのピクチャ順序カウントの値とi番目のエントリによって参照されるピクチャのピクチャ順序カウントの値との間の差を指定し、またはi番目のエントリがref_pic_list_struct(rplsIdx, ltrpFlag)シンタックス構造のSTRPエントリであるが最初のSTRPエントリではないとき、i番目のエントリによって参照されるピクチャのピクチャ順序カウントの値とref_pic_list_struct(rplsIdx, ltrpFlag)シンタックス構造の前のSTRPエントリによって参照されるピクチャのピクチャ順序カウントの値との間の差を指定する。delta_poc_st[rplsIdx][i]の値は、0および215 - 1を含んで0から215 - 1までの範囲内にある。poc_lsb_lt[rplsIdx][i]は、ref_pic_list_struct(rplsIdx, ltrpFlag)シンタックス構造のi番目のエントリによって参照されるピクチャのピクチャ順序カウントのモジュロMaxLtPicOrderCntLsbの値を指定する。poc_lsb_lt[rplsIdx][i]シンタックス要素の長さは、Log2(MaxLtPicOrderCntLsb)ビットである。
【０１６０】
本開示の第1の実施形態の詳細な説明の一部として明示された全体的な復号プロセスが、適用される。NALユニット復号プロセスが、説明される。本開示の第1の実施形態の詳細な説明の一部として明示されたNALユニット復号プロセスが、適用される。
【０１６１】
スライス復号プロセスが、提供される。
【０１６２】
ピクチャ順序カウントに関する復号プロセス
【０１６３】
本開示の第1の実施形態の詳細な説明の一部として明示されたピクチャ順序カウントに関する復号プロセスが、適用される。
【０１６４】
参照ピクチャリストの構築のための復号プロセス
【０１６５】
このプロセスは、非IRAPピクチャの各スライスに関する復号プロセスの初めに呼び出される。参照ピクチャは、参照インデックスによってアドレス指定される。参照インデックスは、参照ピクチャリストへのインデックスである。Iスライスを復号するとき、参照ピクチャリストは、スライスデータの復号において使用されない。Pスライスを復号するとき、参照ピクチャリスト0(すなわち、RefPicList[0])のみが、スライスデータの復号において使用される。Bスライスを復号するとき、参照ピクチャリスト0と参照ピクチャリスト1(すなわち、RefPicList[1])との両方が、スライスデータの復号において使用される。非IRAPピクチャの各スライスに関する復号プロセスの初めに、参照ピクチャリストRefPicList[0]およびRefPicList[1]が、導出される。参照ピクチャリストは、参照ピクチャのマーキングにおいてまたはスライスデータの復号において使用される。ピクチャの最初のスライスでない非IRAPピクチャのIスライスに関して、RefPicList[0]およびRefPicList[1]が、ビットストリームの準拠の検査の目的で導出される可能性があるが、それらの導出は、現在のピクチャまたは復号の順序で現在のピクチャの後に続くピクチャの復号のために必要でない。ピクチャの最初のスライスでないPスライスに関して、RefPicList[1]が、ビットストリームの準拠の検査の目的で導出される可能性があるが、その導出は、現在のピクチャまたは復号の順序で現在のピクチャの後に続くピクチャの復号のために必要でない。
【０１６６】
参照ピクチャリストRefPicList[0]およびRefPicList[1]は、以下のように構築される。
for( i = 0; i < 2; i++ ) {
if( ref_pic_list_sps_flag[i] )
RplsIdx[i] = ref_pic_list_idx[i]
else
RplsIdx[i] = num_ref_pic_lists_in_sps
for( j = 0, pocBase = PicOrderCntVal; j < NumEntriesInList[RplsIdx[i]]; j++ ) {
if( !lt_ref_pic_flag[RplsIdx[i]][j] ) {
RefPicPocList[i][j] = pocBase - delta_poc_st[RplsIdx[i]][j]
if( PicOrderCntValがRefPicPocList[i][j]に等しいDPB内の参照ピクチャpicAが存在する )
RefPicList[i][j] = picA
else
RefPicList[i][j] = "no reference picture"
pocBase = RefPicPocList[i][j]
} else {
if( PicOrderCntVal & ( MaxLtPicOrderCntLsb - 1 )がpoc_lsb_lt[RplsIdx[i]][j]に等しいDPB内の参照picAが存在する )
RefPicList[i][j] = picA
else
RefPicList[i][j] = "no reference picture"
}
}
}
【０１６７】
0または1に等しい各iに関して、以下のことが適用される。RefPicList[i]の最初のNumRefIdxActive[i]個のエントリが、RefPicList[i]のアクティブなエントリと呼ばれ、RefPicList[i]のその他のエントリは、RefPicList[i]の非アクティブなエントリと呼ばれる。0およびNumEntriesInList[RplsIdx[i]] - 1を含んで0からNumEntriesInList[RplsIdx[i]] - 1までの範囲内のjに関してRefPicList[i][j]の各エントリは、lt_ref_pic_flag[RplsIdx[i]][j]が0に等しい場合、STRPエントリと呼ばれ、そうでない場合、LTRPエントリと呼ばれる。特定のピクチャが、RefPicList[0]のエントリとRefPicList[1]のエントリとの両方によって参照されることが可能である。特定のピクチャが、RefPicList[0]の2つ以上のエントリによってまたはRefPicList[1]の2つ以上のエントリによって参照されることも可能である。RefPicList[0]のアクティブなエントリおよびRefPicList[1]のアクティブなエントリは、現在のピクチャおよび復号の順序で現在のピクチャの後に続く1つまたは複数のピクチャのインター予測のために使用される可能性があるすべての参照ピクチャを集合的に指す。RefPicList[0]の非アクティブなエントリおよびRefPicList[1]の非アクティブなエントリは、現在のピクチャのインター予測のために使用されないが、復号の順序で現在のピクチャの後に続く1つまたは複数のピクチャのインター予測において使用される可能性があるすべての参照ピクチャを集合的に指す。対応するピクチャがDPB内に存在しないので「no reference picture」に等しいRefPicList[0]またはRefPicList[1]の1つまたは複数のエントリが、存在する可能性がある。「no reference picture」に等しいRefPicList[0]またはRefPicList[1]のそれぞれの非アクティブなエントリは、無視されるべきである。「no reference picture」に等しいRefPicList[0]またはRefPicList[1]のそれぞれのアクティブなエントリに関しては、意図しないピクチャの喪失が、推測されるべきである。
【０１６８】
以下の制約が適用されることが、ビットストリームの準拠の要件である。0または1に等しい各iに関して、NumEntriesInList[RplsIdx[i]]が、NumRefIdxActive[i]以上である。RefPicList[0]またはRefPicList[1]のそれぞれのアクティブなエントリによって参照されるピクチャが、DPB内に存在し、現在のピクチャのTemporalId以下のTemporalIdを有する。任意で、以下の制約が、さらに指定される可能性がある。RefPicList[0]またはRefPicList[1]のいかなる非アクティブなエントリのエントリインデックスも、現在のピクチャの復号のための参照インデックスとして使用されない。任意で、以下の制約が、さらに指定される可能性がある。RefPicList[0]またはRefPicList[1]の非アクティブなエントリが、RefPicList[0]またはRefPicList[1]のいかなるその他のエントリとも同じピクチャを参照しない。ピクチャのスライスのRefPicList[0]またはRefPicList[1]のSTRPエントリおよび同じスライスまたは同じピクチャの異なるスライスのRefPicList[0]またはRefPicList[1]のLTRPエントリが、同じピクチャを参照しない。現在のピクチャ自体が、RefPicList[0]またはRefPicList[1]のいかなるエントリによっても参照されない。現在のピクチャのPicOrderCntValとエントリによって参照されるピクチャのPicOrderCntValとの間の差が224以上であるRefPicList[0]またはRefPicList[1]のLTRPエントリが、存在しない。setOfRefPicsは、RefPicList[0]のすべてのエントリおよびRefPicList[1]のすべてのエントリによって参照される一意のピクチャのセットであるものとする。setOfRefPics内のピクチャの数が、sps_max_dec_pic_buffering_minus1以下であり、setOfRefPicsが、ピクチャのすべてのスライスに関して同じである。
【０１６９】
参照ピクチャのマーキングのための復号プロセスが、検討される。
【０１７０】
このプロセスは、スライスヘッダの復号およびスライスに関する参照ピクチャリストの構築のための復号プロセスの後であるが、スライスデータの復号の前に、ピクチャ毎に1回呼び出される。このプロセスは、DPB内の1つまたは複数の参照ピクチャが「参照のために使用されない」または「長期的参照のために使用される」と印を付けられる結果をもたらす可能性がある。DPB内の復号されたピクチャは、「参照のために使用されない」、「短期的参照のために使用される」、または「長期的参照のために使用される」として、ただし、復号プロセスの動作中の任意の所与の瞬間にこれら3つのうちのただ1つとして印を付けられ得る。ピクチャにこれらのマーキングのうちの1つを割り振ることは、該当する場合、これらのマーキングのうちの別のマーキングを暗黙的に削除する。ピクチャが「参照のために使用される」と印を付けられていると言われるとき、これは、集合的に、ピクチャが「短期的参照のために使用される」または「長期的参照のために使用される」として(ただし、両方ではない)印を付けられていることを指す。現在のピクチャがIRAPピクチャであるとき、現在DPB内にあるすべての参照ピクチャ(もしあれば)は、「参照のために使用されない」と印を付けられる。STRPは、それらのPicOrderCntVal値によって特定される。LTRPは、それらのPicOrderCntVal値のLog2(MaxLtPicOrderCntLsb) LSBによって特定される。
【０１７１】
以下のことが、適用される。RefPicList[0]またはRefPicList[1]の各LTRPエントリに関して、参照されるピクチャがSTRPであるとき、ピクチャは、「長期的参照のために使用される」と印を付けられる。RefPicList[0]またはRefPicList[1]のいかなるエントリによっても参照されないDPB内の各参照ピクチャは、「参照のために使用されない」と印を付けられる。
【０１７２】
図5は、ビデオデコーダ(たとえば、ビデオデコーダ30)によって実施されるコーディングされたビデオビットストリームを復号する方法500の実施形態である。方法500は、復号されたビットストリームがビデオエンコーダ(たとえば、ビデオエンコーダ20)から直接的または間接的に受信された後に実行される可能性がある。方法500は、復号プロセスを改善する(たとえば、復号プロセスを通常の復号プロセスよりも効率的にする、高速にするなど)ために実行される可能性がある。したがって、実際の問題として、コーデックの性能が、改善されることが可能であり、それが、より良いユーザエクスペリエンスにつながる。
【０１７３】
ブロック502において、コーディングされたビデオビットストリーム内に示されたパラメータセットが、解析される。実施形態において、パラメータセットは、参照ピクチャリスト構造のセットを含んだシンタックス要素のセットを含む。
【０１７４】
ブロック504において、コーディングされたビデオビットストリーム内に示された現在のスライスのスライスヘッダが、解析される。実施形態において、スライスヘッダは、パラメータセット内の参照ピクチャリスト構造のセットのうちの参照ピクチャリスト構造のインデックスを含む。
【０１７５】
ブロック506において、現在のスライスの参照ピクチャリストが、導出される。実施形態において、参照ピクチャリストは、パラメータセット内のシンタックス要素のセットおよび参照ピクチャリスト構造のインデックスに基づいて導出される。実施形態において、参照ピクチャリスト構造のエントリの順序は、参照ピクチャリスト内の対応する参照ピクチャの順序と同じである。実施形態において、順序は、ゼロから示された値までである。実施形態において、示された値は、ゼロからsps_max_dec_pic_buffering_minus1によって示される値までである。
【０１７６】
ブロック508において、現在のスライスの少なくとも1つの再構築されたブロックが、取得される。実施形態において、現在のスライスの少なくとも1つの再構築されたブロックは、参照ピクチャリストに基づいて再構築される。再構築プロセスの後、ビデオデコーダは、ビデオまたは画像を出力することができる。実施形態においては、そのビデオまたは画像が、電子デバイス(たとえば、スマートフォン、タブレット、ラップトップなど)のディスプレイ上に表示される可能性がある。
【０１７７】
実施形態において、参照ピクチャリストは、指定されたRefPictList[0]またはRefPictList[1]である。実施形態において、参照ピクチャリストは、インター予測のために使用される参照ピクチャのリストを含む。実施形態において、インター予測は、PスライスのためまたはBスライスのためのものである。実施形態において、パラメータセットからのシンタックス要素のセットは、ネットワーク抽象化レイヤ(NAL)ユニットの未加工バイトシーケンスペイロード(RBSP)に配置される。
【０１７８】
第1のおよび第2の実施形態に基づく代替的な実施形態の概要が、与えられる。
【０１７９】
このセクションは、本開示のその他の代替的な実施形態の簡潔な概要を与える。概要は、第1の実施形態の説明に関連する。しかし、以下の代替的な実施形態に関する本開示の基本的な概念は、第2の実施形態に関する本開示を熟知した実装のためにも適用可能である。そのような実装は、第1の実施形態を熟知したうえで態様が実装される方法と同じ趣旨である。
【０１８０】
短期的参照ピクチャのエントリの差分POCのセマンティクス
【０１８１】
本開示の1つの代替的な実施形態において、参照ピクチャリスト構造ref_pic_list_struct( )のi番目のエントリの差分POCを指定するシンタックス要素のセマンティック(semantic)は、現在のピクチャとi番目のエントリに関連する参照ピクチャとの間のPOCの差として定義される。本明細書において使用される記述の一部は、差分のみが示されるかまたは記述される現在の規格の草案(たとえば、VVCの作業草案)に関連する。削除されたテキストは、取り消し線によって示され、任意の追加されたテキストは、強調される。
【０１８２】
delta_poc_st[listIdx][rplsIdx][i]のセマンティックは、以下のように定義される。delta_poc_st[listIdx][rplsIdx][i]は、現在のピクチャのピクチャ順序カウントの値とi番目のエントリによって参照されるピクチャのピクチャ順序カウントの値との間の差を指定する。delta_poc_st[listIdx][rplsIdx][i]の値は、-215および215 - 1を含んで-215から215 - 1までの範囲内にある。
【０１８３】
参照ピクチャリストの構築プロセスの等式は、更新される必要がある。参照ピクチャリストRefPicList[0]およびRefPicList[1]は、以下のように構築される。
【０１８４】
【数１】
2021534668.tif 000015
【０１８５】
長期的参照ピクチャのエントリのシグナリング
【０１８６】
本開示の1つの代替的な実施形態において、長期的参照ピクチャのエントリは、短期的参照ピクチャのエントリを含む同じ参照ピクチャリスト構造内でシグナリングされない。長期的参照ピクチャのエントリは別個の構造内でシグナリングされ、構造の各エントリに関して、最終的な参照ピクチャリスト内の対応するエントリインデックスの導出のための、長期的参照ピクチャの意図された位置を記述するシンタックス要素が存在する。
【０１８７】
シーケンスパラメータセットのRBSPのシンタックス
【０１８８】
【表１３】
2021534668.tif 000016
【０１８９】
スライスヘッダのシンタックス
【０１９０】
【表１４】
2021534668.tif 000017
【０１９１】
参照ピクチャリスト構造のシンタックス
【０１９２】
【表１５】
2021534668.tif 000018
【０１９３】
長期的参照ピクチャリスト構造のシンタックス
【０１９４】
【表１６】
2021534668.tif 000019
【０１９５】
シーケンスパラメータセットのRBSPのセマンティクス
【０１９６】
num_ref_pic_lists_lt_in_spsは、SPSに含まれるref_pic_list_lt_struct(ltRplsIdx)シンタックス構造の数を指定する。num_ref_pic_lists_lt_in_spsの値は、0および64を含んで0から64までの範囲内にある。存在しないとき、num_ref_pic_lists_lt_in_spsの値は、0に等しいと推測される。
【０１９７】
スライスヘッダのセマンティクス
【０１９８】
ref_pic_list_lt_idx[i]は、現在のピクチャの参照ピクチャリストiの導出のために使用されるアクティブなSPSに含まれるref_pic_list_lt_struct(ltRplsIdx)シンタックス構造のリストへのインデックスを指定する。シンタックス要素ref_pic_list_lt_idx[i]は、Ceil( Log2(num_ref_pic_lists_lt_in_sps) )ビットによって表される。ref_pic_list_lt_idxの値は、0およびnum_ref_pic_lists_lt_in_sps - 1を含んで0からnum_ref_pic_lists_lt_in_sps - 1までの範囲内にある。
【０１９９】
参照ピクチャリスト構造のセマンティクス
【０２００】
ref_pic_list_struct(listIdx, rplsIdx)シンタックス構造は、SPS内またはスライスヘッダ内に存在する可能性がある。シンタックス構造がスライスヘッダに含まれるのかまたはSPSに含まれるのかに応じて、以下のことが適用される。スライスヘッダ内に存在する場合、ref_pic_list_struct(listIdx, rplsIdx)シンタックス構造は、現在のピクチャ(スライスを含むピクチャ)の短期的参照ピクチャリストのlistIdxを指定する。そうでない(SPS内に存在する)場合、ref_pic_list_struct(listIdx, rplsIdx)シンタックス構造は、短期的参照ピクチャリストのlistIdxに関する候補を指定し、このセクションの残りにおいて明示されるセマンティクスにおける用語「現在のピクチャ」は、1)SPSに含まれるref_pic_list_struct(listIdx, rplsIdx)シンタックス構造のリストへのインデックスに等しいref_pic_list_idx[listIdx]を含む1つまたは複数のスライスを有し、2)SPSをアクティブなSPSとして有するCVS内にある各ピクチャを指す。num_strp_entries[listIdx][rplsIdx]は、ref_pic_list_struct(listIdx, rplsIdx)シンタックス構造のSTRPエントリの数を指定する。
【０２０１】
【数２】
2021534668.tif 000020
【０２０２】
【数３】
2021534668.tif 000021
【０２０３】
【数４】
2021534668.tif 000022
【０２０４】
【数５】
2021534668.tif 000023
【０２０５】
【数６】
2021534668.tif 000024
【０２０６】
【数７】
2021534668.tif 000025
【０２０７】
delta_poc_st[listIdx][rplsIdx][i]は、i番目のエントリがref_pic_list_struct(listIdx, rplsIdx)シンタックス構造の最初のSTRPエントリであるとき、現在のピクチャのピクチャ順序カウントの値とi番目のエントリによって参照されるピクチャのピクチャ順序カウントの値との間の差を指定し、またはi番目のエントリがref_pic_list_struct(listIdx, rplsIdx)シンタックス構造のSTRPエントリであるが最初のSTRPエントリではないとき、i番目のエントリによって参照されるピクチャのピクチャ順序カウントの値とref_pic_list_struct(listIdx, rplsIdx)シンタックス構造の前のSTRPエントリによって参照されるピクチャのピクチャ順序カウントの値との間の差を指定する。delta_poc_st[listIdx][rplsIdx][i]の値は、-215および215 - 1を含んで-215から215 - 1までの範囲内にある。
【０２０８】
【数８】
2021534668.tif 000026
【０２０９】
長期的参照ピクチャリスト構造のセマンティクス
【０２１０】
ref_pic_list_lt_struct(ltRplsIdx)シンタックス構造は、SPS内またはスライスヘッダ内に存在する可能性がある。シンタックス構造がスライスヘッダに含まれるのかまたはSPSに含まれるのかに応じて、以下のことが適用される。スライスヘッダ内に存在する場合、ref_pic_list_lt_struct(ltRplsIdx)シンタックス構造は、現在のピクチャ(スライスを含むピクチャ)の長期的参照ピクチャリストを指定する。そうでない(SPS内に存在する)場合、ref_pic_list_struct(listIdx, rplsIdx)シンタックス構造は、長期的参照ピクチャリストに関する候補を指定し、このセクションの残りにおいて明示されるセマンティクスにおける用語「現在のピクチャ」は、1)SPSに含まれるref_pic_list_lt_struct(ltRplsIdx)シンタックス構造のリストへのインデックスに等しいref_pic_list_lt_idx[i]を含む1つまたは複数のスライスを有し、2)SPSをアクティブなSPSとして有するCVS内にある各ピクチャを指す。num_ltrp_entries[ltRplsIdx]は、ref_pic_list_lt_struct(ltRplsIdx)シンタックス構造のLTRPエントリの数を指定する。poc_lsb_lt[rplsIdx][i]は、ref_pic_list_lt_struct(rplsIdx)シンタックス構造のi番目のエントリによって参照されるピクチャのピクチャ順序カウントのモジュロMaxLtPicOrderCntLsbの値を指定する。poc_lsb_lt[rplsIdx][i]シンタックス要素の長さは、Log2(MaxLtPicOrderCntLsb)ビットである。lt_pos_idx[rplsIdx][i]は、参照ピクチャリストの構築後の参照ピクチャリスト内のref_pic_list_lt_struct(rplsIdx)シンタックス構造のi番目のエントリのインデックスを指定する。lt_pos_idx[rplsIdx][i]シンタックス要素の長さは、Log2( sps_max_dec_pic_buffering_minus1 + 1 )ビットである。num_ltrp_entries[ltRplsIdx]が1を超えているとき、poc_lsb_lt[rplsIdx][i]およびlt_pos_idx[rplsIdx][i]は、lt_pos_idx[rplsIdx][i]の値の降順である。
【０２１１】
復号プロセスが、説明される。
【０２１２】
参照ピクチャリストの構築のための復号プロセス
【０２１３】
このプロセスは、非IRAPピクチャの各スライスに関する復号プロセスの初めに呼び出される。参照ピクチャは、参照インデックスによってアドレス指定される。参照インデックスは、参照ピクチャリストへのインデックスである。Iスライスを復号するとき、参照ピクチャリストは、スライスデータの復号において使用されない。Pスライスを復号するとき、参照ピクチャリスト0(すなわち、RefPicList[0])のみが、スライスデータの復号において使用される。Bスライスを復号するとき、参照ピクチャリスト0と参照ピクチャリスト1(すなわち、RefPicList[1])との両方が、スライスデータの復号において使用される。非IRAPピクチャの各スライスに関する復号プロセスの初めに、参照ピクチャリストRefPicList[0]およびRefPicList[1]が、導出される。参照ピクチャリストは、参照ピクチャのマーキングにおいてまたはスライスデータの復号において使用される。ピクチャの最初のスライスでない非IRAPピクチャのIスライスに関して、RefPicList[0]およびRefPicList[1]が、ビットストリームの準拠の検査の目的で導出される可能性があるが、それらの導出は、現在のピクチャまたは復号の順序で現在のピクチャの後に続くピクチャの復号のために必要でない。ピクチャの最初のスライスでないPスライスに関して、RefPicList[1]が、ビットストリームの準拠の検査の目的で導出される可能性があるが、その導出は、現在のピクチャまたは復号の順序で現在のピクチャの後に続くピクチャの復号のために必要でない。参照ピクチャリストRefPicList[0]およびRefPicList[1]は、以下のように構築される。
【０２１４】
【数９】
2021534668.tif 000027
【０２１５】
0または1に等しい各iに関して、以下のことが適用される。RefPicList[i]の最初のNumRefIdxActive[i]個のエントリが、RefPicList[i]のアクティブなエントリと呼ばれ、RefPicList[i]のその他のエントリは、RefPicList[i]の非アクティブなエントリと呼ばれる。0およびNumEntriesInList[i][RplsIdx[i]] - 1を含んで0からNumEntriesInList[i][RplsIdx[i]] - 1までの範囲内のjに関してRefPicList[i][j]の各エントリは、lt_ref_pic_flag[i][RplsIdx[i]][j]が0に等しい場合、STRPエントリと呼ばれ、そうでない場合、LTRPエントリと呼ばれる。特定のピクチャが、RefPicList[0]のエントリとRefPicList[1]のエントリとの両方によって参照されることが可能である。特定のピクチャが、RefPicList[0]の2つ以上のエントリによってまたはRefPicList[1]の2つ以上のエントリによって参照されることも可能である。RefPicList[0]のアクティブなエントリおよびRefPicList[1]のアクティブなエントリは、現在のピクチャおよび復号の順序で現在のピクチャの後に続く1つまたは複数のピクチャのインター予測のために使用される可能性があるすべての参照ピクチャを集合的に指す。RefPicList[0]の非アクティブなエントリおよびRefPicList[1]の非アクティブなエントリは、現在のピクチャのインター予測のために使用されないが、復号の順序で現在のピクチャの後に続く1つまたは複数のピクチャのインター予測において使用される可能性があるすべての参照ピクチャを集合的に指す。対応するピクチャがDPB内に存在しないので「no reference picture」に等しいRefPicList[0]またはRefPicList[1]の1つまたは複数のエントリが、存在する可能性がある。「no reference picture」に等しいRefPicList[0]またはRefPicList[0]のそれぞれの非アクティブなエントリは、無視されるべきである。「no reference picture」に等しいRefPicList[0]またはRefPicList[1]のそれぞれのアクティブなエントリに関しては、意図しないピクチャの喪失が、推測されるべきである。
【０２１６】
以下の制約が適用されることが、ビットストリームの準拠の要件である。0または1に等しい各iに関して、RefPicList[i]のエントリの数が、NumRefIdxActive[i]以上である。RefPicList[0]またはRefPicList[1]のそれぞれのアクティブなエントリによって参照されるピクチャが、DPB内に存在し、現在のピクチャのTemporalId以下のTemporalIdを有する。任意で、以下の制約が、さらに指定される可能性がある。RefPicList[0]またはRefPicList[1]のいかなる非アクティブなエントリのエントリインデックスも、現在のピクチャの復号のための参照インデックスとして使用されない。任意で、以下の制約が、さらに指定される可能性がある。RefPicList[0]またはRefPicList[1]の非アクティブなエントリが、RefPicList[0]またはRefPicList[1]のいかなるその他のエントリとも同じピクチャを参照しない。ピクチャのスライスのRefPicList[0]またはRefPicList[1]のSTRPエントリおよび同じスライスまたは同じピクチャの異なるスライスのRefPicList[0]またはRefPicList[1]のLTRPエントリが、同じピクチャを参照しない。現在のピクチャ自体が、RefPicList[0]またはRefPicList[1]のいかなるエントリによっても参照されない。現在のピクチャのPicOrderCntValとエントリによって参照されるピクチャのPicOrderCntValとの間の差が224以上であるRefPicList[0]またはRefPicList[1]のLTRPエントリが、存在しない。setOfRefPicsは、RefPicList[0]のすべてのエントリおよびRefPicList[1]のすべてのエントリによって参照される一意のピクチャのセットであるものとする。setOfRefPics内のピクチャの数が、sps_max_dec_pic_buffering_minus1以下であり、setOfRefPicsが、ピクチャのすべてのスライスに関して同じである。
【０２１７】
短期的参照ピクチャのエントリの数のシグナリングが、検討される。
【０２１８】
本開示の1つの代替的な実施形態において、参照ピクチャリスト構造ref_pic_list_struct( )内の短期的参照ピクチャに関連するエントリの数を指定するシンタックス要素は、num_strp_entries[listIdx][rplsIdx]の代わりにnum_strp_entries_minus1[listIdx][rplsIdx]として定義される。変更は、参照ピクチャリストのシグナリングに関して2つの効果を有する。変更は、要素がue(v)を使用してコーディングされるので、参照ピクチャリスト構造内の短期的参照ピクチャに関連するエントリの数をシグナリングするためのビットを節約する可能性がある。変更は、各参照ピクチャリストが少なくとも1つの短期的参照ピクチャを含むような制約を暗黙的に課す。この着想に対応するために、第1の実施形態に関連するいくつかの変更が必要とされる。
【０２１９】
スライスヘッダ内での参照ピクチャリストのシグナリングに関しては、必要な参照ピクチャリストのみが、スライスタイプに応じてシグナリングされ、すなわち、IまたはPスライスに関しては1つの参照ピクチャリスト(すなわち、参照ピクチャリスト0)がシグナリングされ、Bスライスに関しては2つの参照ピクチャリスト(すなわち、参照ピクチャリスト0と参照ピクチャリスト1との両方)がシグナリングされる。スライスヘッダのシンタックスが、以下のように変更される。
【０２２０】
【表１７】
2021534668.tif 000028
【０２２１】
スライスヘッダの上記変更(すなわち、IまたはPスライスに関して参照ピクチャリスト0およびBスライスに関して参照ピクチャ0および参照ピクチャ1)を適用することによって、それは、Pスライスに関して1つの短期的参照ピクチャのみが存在する場合に方式が問題に陥ることを防ぐ。しかし、重複した短期的参照ピクチャは、参照ピクチャリスト0および参照ピクチャリスト1内でシグナリングされ得ず、参照ピクチャリスト1のアクティブエントリの数が0に等しくなければならないので、参照ピクチャリスト1のエントリは非アクティブなエントリである。num_strp_entries_minus1[listIdx][rplsIdx]のセマンティックは、以下のように変更される。num_strp_entries_minus1[listIdx][rplsIdx]に1を足した値が、ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag)シンタックス構造のSTRPエントリの数を指定する。変数NumEntriesInList[listIdx][rplsIdx]は、次のように、すなわち、NumRefPicEntriesInRpl[listIdx][rplsIdx] = num_strp_entries_minus1[listIdx][rplsIdx] + 1 + num_ltrp_entries[listIdx][rplsIdx]のように導出される。NumRefPicEntries[listIdx][rplsIdx]の値は、1およびsps_max_dec_pic_buffering_minus1を含んで1からsps_max_dec_pic_buffering_minus1までの範囲内にある。
【０２２２】
参照ピクチャリストへの現在のピクチャの包含を許すこと
【０２２３】
本開示の1つの代替的な実施形態においては、現在のピクチャが、その参照ピクチャリストに含まれることを許される。この特徴をサポートするために、第1のおよび第2の実施形態におけるそれらの説明に関連して必要とされるシンタックスおよびセマンティクスの変更はない。しかし、参照ピクチャリストの構築のための復号プロセスにおいて説明されているビットストリームの準拠の制約が、以下のように修正される必要がある。以下の制約が適用されることが、ビットストリームの準拠の要件である。0または1に等しい各iに関して、NumEntriesInList[i][RplsIdx[i]]が、NumRefIdxActive[i]以上である。RefPicList[0]またはRefPicList[1]のそれぞれのアクティブなエントリによって参照されるピクチャが、DPB内に存在し、現在のピクチャのTemporalId以下のTemporalIdを有する。任意で、以下の制約が、さらに指定される可能性がある。RefPicList[0]またはRefPicList[1]のいかなる非アクティブなエントリのエントリインデックスも、現在のピクチャの復号のための参照インデックスとして使用されない。任意で、以下の制約が、さらに指定される可能性がある。RefPicList[0]またはRefPicList[1]の非アクティブなエントリが、RefPicList[0]またはRefPicList[1]のいかなるその他のエントリとも同じピクチャを参照しない。ピクチャのスライスのRefPicList[0]またはRefPicList[1]のSTRPエントリおよび同じスライスまたは同じピクチャの異なるスライスのRefPicList[0]またはRefPicList[1]のLTRPエントリが、同じピクチャを参照しない。
【数１０】
2021534668.tif 000029
0または1に等しいiに関して現在のピクチャがRefPicList[i]のエントリによって参照されるとき、エントリインデックスが、NumRefIdxActive[i]未満である。現在のピクチャのPicOrderCntValとエントリによって参照されるピクチャのPicOrderCntValとの間の差が224以上であるRefPicList[0]またはRefPicList[1]のLTRPエントリが、存在しない。setOfRefPicsは、RefPicList[0]のすべてのエントリおよびRefPicList[1]のすべてのエントリによって参照される一意のピクチャのセットであるものとする。現在のピクチャがsetOfRefPicsに含まれない場合、setOfRefPics内のピクチャの数が、sps_max_dec_pic_buffering_minus1以下であり、そうでない場合、setOfRefPics内のピクチャの数が、sps_max_dec_pic_buffering_minus1 + 1以下である。setOfRefPicsが、ピクチャのすべてのスライスに関して同じである。
【０２２４】
参照ピクチャリスト内のLTRPエントリに関して異なるPOC LSBビットを使用すること
【０２２５】
本開示の1つの代替的な実施形態において、参照ピクチャリスト構造内の長期的参照ピクチャを特定するために使用されるビットの数が、参照ピクチャリスト0と参照ピクチャリスト1との間で異なることが許される。この特徴をサポートするために、以下の変更が必要とされる。
【０２２６】
【表１８】
2021534668.tif 000030
【０２２７】
additional_lt_poc_lsb[i]が、iに等しい参照ピクチャリストのlistIdxに関する復号プロセスにおいて使用される変数MaxLtPicOrderCntLsb[i]の値を次のように、すなわち、MaxLtPicOrderCntLsb[i] = 2( log2_max_pic_order_cnt_lsb_ minus4 + 4 + additional_lt_poc_lsb[i] )のように指定する。additional_lt_poc_lsb[i]の値は、0および32 - log2_max_pic_order_cnt_lsb_minus4 - 4を含んで0から32 - log2_max_pic_order_cnt_lsb_minus4 - 4までの範囲内にある。存在しないとき、additional_lt_poc_lsb[i]の値は、0に等しいと推測される。
【０２２８】
poc_lsb_lt[listIdx][rplsIdx][i]は、ref_pic_list_struct(listIdx, rplsIdx, ltrpFlag)シンタックス構造のi番目のエントリによって参照されるピクチャのピクチャ順序カウントのモジュロMaxLtPicOrderCntLsb[listIdx]の値を指定する。poc_lsb_lt[listIdx][rplsIdx][i]シンタックス要素の長さは、Log2(MaxLtPicOrderCntLsb[listIdx])ビットである。
【０２２９】
参照ピクチャリストRefPicList[0]およびRefPicList[1]は、以下のように構築される。
for( i = 0; i < 2; i++ ) {
if( ref_pic_list_sps_flag[i] )
RplsIdx[i] = ref_pic_list_idx[i]
else
RplsIdx[i] = num_ref_pic_lists_in_sps[i]
for( j = 0, pocBase = PicOrderCntVal; j < NumEntriesInList[i][RplsIdx[i]]; j++ ) {
if( !lt_ref_pic_flag[i][RplsIdx[i]][j] ) {
RefPicPocList[i][j] = pocBase - delta_poc_st[i][RplsIdx[i]][j]
if( PicOrderCntValがRefPicPocList[i][j]に等しいDPB内の参照ピクチャpicAが存在する )
RefPicList[i][j] = picA
else
RefPicList[i][j] = "no reference picture"
pocBase = RefPicPocList[i][j]
} else {
if( PicOrderCntVal & ( MaxLtPicOrderCntLsb[i] - 1 )がpoc_lsb_lt[i][RplsIdx[i]][j]に等しいDPB内の参照picAが存在する )
RefPicList[i][j] = picA
else
RefPicList[i][j] = "no reference picture"
}
}
}
【０２３０】
参照ピクチャリスト0および1に関して同じref_pic_list_sps_flagを使用すること
【０２３１】
本開示の1つの代替的な実施形態においては、参照ピクチャリスト0および参照ピクチャリスト1がアクティブなSPS内のref_pic_list_struct( )シンタックス構造に基づいて導出されるかどうかを示すために2つのフラグを使用する代わりに、両方の参照ピクチャリストのために1つのフラグが使用される。そのような代替は、両方の参照ピクチャリストがアクティブなSPS内のref_pic_list_struct( )に基づいて導出されるか、またはそれらの参照ピクチャリストが現在のピクチャのスライスヘッダに直接含まれるref_pic_list_struct( )シンタックス構造に基づいて導出されるかのどちらかあると制約する。この特徴をサポートするために、以下の変更が必要とされる。
【０２３２】
【表１９】
2021534668.tif 000031
【０２３３】
【数１１】
2021534668.tif 000032
【０２３４】
参照ピクチャリストRefPicList[0]およびRefPicList[1]は、以下のように構築される。
【０２３５】
【数１２】
2021534668.tif 000033
【０２３６】
長期的参照ピクチャのエントリに関する差分POC最上位ビット(MSB)のシグナリング
【０２３７】
本開示の1つの代替的な実施形態においては、ref_pic_list_struct( )内の長期的参照ピクチャのエントリのPOC LSBを表すための追加のビットを使用する代わりに、POC MSBサイクルが、長期的参照ピクチャを区別するためにシグナリングされる。シグナリングされるとき、POC MSBサイクル情報が、長期的参照ピクチャを指すref_pic_list_struct( )内の各エントリに関してシグナリングされる。ref_pic_list_struct( )シンタックス構造は、SPS内でシグナリングされず、スライスヘッダ内でのみシグナリングされる。この特徴をサポートするために、以下の変更が必要とされる。
【０２３８】
【表２０】
2021534668.tif 000034
【０２３９】
【表２１】
2021534668.tif 000035
【０２４０】
【表２２】
2021534668.tif 000036
【０２４１】
【数１３】
2021534668.tif 000037
【０２４２】
【数１４】
2021534668.tif 000038
【０２４３】
【数１５】
2021534668.tif 000039
【０２４４】
参照ピクチャリストRefPicList[0]およびRefPicList[1]は、以下のように構築される。
【０２４５】
【数１６】
2021534668.tif 000040
【０２４６】
代替的に、delta_poc_msb_cycle_lt[listIdx][i]のセマンティクスは、参照ピクチャリストの構築が以下のように更新され得るように差分の差分として表現されることが可能である。参照ピクチャリストRefPicList[0]およびRefPicList[1]は、以下のように構築される。
【０２４７】
【数１７】
2021534668.tif 000041
【０２４８】
以下の制約が適用されることが、ビットストリームの準拠の要件である。0または1に等しい各iに関して、NumEntriesInList[i][RplsIdx[i]]が、NumRefIdxActive[i]以上である。RefPicList[0]またはRefPicList[1]のそれぞれのアクティブなエントリによって参照されるピクチャが、DPB内に存在し、現在のピクチャのTemporalId以下のTemporalIdを有する。任意で、以下の制約が、さらに指定される可能性がある。RefPicList[0]またはRefPicList[1]のいかなる非アクティブなエントリのエントリインデックスも、現在のピクチャの復号のための参照インデックスとして使用されない。任意で、以下の制約が、さらに指定される可能性がある。RefPicList[0]またはRefPicList[1]の非アクティブなエントリが、RefPicList[0]またはRefPicList[1]のいかなるその他のエントリとも同じピクチャを参照しない。ピクチャのスライスのRefPicList[0]またはRefPicList[1]のSTRPエントリおよび同じスライスまたは同じピクチャの異なるスライスのRefPicList[0]またはRefPicList[1]のLTRPエントリが、同じピクチャを参照しない。現在のピクチャ自体が、RefPicList[0]またはRefPicList[1]のいかなるエントリによっても参照されない。現在のピクチャのPicOrderCntValとエントリによって参照されるピクチャのPicOrderCntValとの間の差が224以上であるRefPicList[0]またはRefPicList[1]のLTRPエントリが、存在しない。setOfRefPicsは、RefPicList[0]のすべてのエントリおよびRefPicList[1]のすべてのエントリによって参照される一意のピクチャのセットであるものとする。setOfRefPics内のピクチャの数が、sps_max_dec_pic_buffering_minus1以下であり、setOfRefPicsが、ピクチャのすべてのスライスに関して同じである。
【０２４９】
各STRPは、そのPicOrderCntVal値によって特定される。各LTRPに関して、そのLTRPがdelta_poc_msb_present_flag[listIdx][i]が1に等しいRefPicList[0]またはRefPicList[1]のエントリによって参照される場合、そのLTRPは、そのPicOrderCntVal値によって特定され、そうでない場合、そのLTRPは、そのPicOrderCntVal値のLog2(MaxPicOrderCntLsb) LSBによって特定される。
【０２５０】
長期的参照ピクチャのエントリに関する差分POC MSBのシグナリングの代替1
【０２５１】
この実施形態は、前のセクションにおいて説明された実施形態の代替を提供する。前のセクションの着想と同様に、ref_pic_list_struct( )内の長期的参照ピクチャのPOC LSBを表すための追加のビットを使用する代わりに、POC MSBサイクルが、長期的参照ピクチャを区別するためにシグナリングされる。しかし、この代替においては、シグナリングされるとき、POC MSBサイクル情報は、ref_pic_list_struct( )内でシグナリングされず、その代わりに、POC MSBサイクル情報が必要とされるとき、POC MSBサイクル情報は、スライスヘッダ内でシグナリングされる。ref_pic_list_struct( )シンタックス構造は、SPS内およびスライスヘッダ内でシグナリングされる可能性がある。
【０２５２】
【表２３】
2021534668.tif 000042
【０２５３】
【表２４Ａ】
2021534668.tif 000043
【表２４Ｂ】
2021534668.tif 000044
【０２５４】
1に等しいdelta_poc_msb_present_flag[i][j]は、delta_poc_msb_cycle_lt[i][j]が存在することを指定する。0に等しいdelta_poc_msb_present_flag[i][j]は、delta_poc_msb_cycle_lt[i][j]が存在しないことを指定する。NumLtrpEntries[i]が0を超えており、ref_pic_list_struct(i, rplsIdx, 1)シンタックス構造のj番目のLTRPエントリに関して、スライスヘッダが復号されるときにPicOrderCntValのモジュロMaxPicOrderCntLsbがpoc_lsb_lt[i][rplsIdx][jj]に等しい2つ以上の参照ピクチャがDPB内に存在し、jjが、ref_pic_list_struct(i, rplsIdx, 1)シンタックス構造のj番目のLTRPエントリであるref_pic_list_struct(i, rplsIdx, 1)シンタックス構造のエントリのエントリインデックスであるとき、delta_poc_msb_present_flag[i][j]は、1に等しい。存在しないとき、delta_poc_msb_cycle_lt[i][j]の値は、0に等しいと推測される。delta_poc_msb_cycle_lt[i][j]は、ref_pic_list_struct(i, rplsIdx, 1)シンタックス構造のj番目のLTRPエントリのピクチャ順序カウントの値の最上位ビットの値を決定するために使用される。delta_poc_msb_cycle_lt[i][j]が存在しないとき、delta_poc_msb_cycle_lt[i][j]は、0に等しいと推測される。
【０２５５】
【表２５Ａ】
2021534668.tif 000045
【表２５Ｂ】
2021534668.tif 000046
【０２５６】
1に等しいdelta_poc_msb_present_flag[i][j]は、delta_poc_msb_cycle_lt[i][j]が存在することを指定する。0に等しいdelta_poc_msb_present_flag[i][j]は、delta_poc_msb_cycle_lt[i][j]が存在しないことを指定する。NumLtrpEntries[i]が0を超えており、スライスヘッダが復号されるときにPicOrderCntValのモジュロMaxPicOrderCntLsbがpoc_lsb_lt[i][rplsIdx][j]に等しい2つ以上の参照ピクチャがDPB内に存在するとき、delta_poc_msb_present_flag[i][j]は、1に等しい。存在しないとき、delta_poc_msb_cycle_lt[i][j]の値は、0に等しいと推測される。delta_poc_msb_cycle_lt[i][j]は、ref_pic_list_struct(i, rplsIdx, 1)シンタックス構造のj番目のエントリのピクチャ順序カウントの値の最上位ビットの値を決定するために使用される。delta_poc_msb_cycle_lt[i][j]が存在しないとき、delta_poc_msb_cycle_lt[i][j]は、0に等しいと推測される。
【数１８】
2021534668.tif 000047
【０２５７】
ピクチャ順序カウントに関する復号プロセスに対する変更。
【数１９】
2021534668.tif 000048
【０２５８】
スライスヘッダの設計1に関して、参照ピクチャリストRefPicList[0]およびRefPicList[1]は、以下のように構築される。
【０２５９】
【数２０】
2021534668.tif 000049
【０２６０】
代替的に、スライスヘッダの設計1に関して、delta_poc_msb_cycle_lt[listIdx][i]のセマンティクスは、参照ピクチャリストの構築が以下のように更新され得るように差分の差分として表現されることが可能である。参照ピクチャリストRefPicList[0]およびRefPicList[1]は、以下のように構築される。
【０２６１】
【数２１】
2021534668.tif 000050
【０２６２】
スライスヘッダの設計2に関して、参照ピクチャリストRefPicList[0]およびRefPicList[1]は、以下のように構築される。
【０２６３】
【数２２】
2021534668.tif 000051
【０２６４】
代替的に、スライスヘッダの設計2に関して、delta_poc_msb_cycle_lt[listIdx][i]のセマンティクスは、参照ピクチャリストの構築が以下のように更新され得るように差分の差分として表現されることが可能である。参照ピクチャリストRefPicList[0]およびRefPicList[1]は、以下のように構築される。
【０２６５】
【数２３】
2021534668.tif 000052
【０２６６】
以下の制約が適用されることが、ビットストリームの準拠の要件である。0または1に等しい各iに関して、NumEntriesInList[i][RplsIdx[i]]が、NumRefIdxActive[i]以上である。RefPicList[0]またはRefPicList[1]のそれぞれのアクティブなエントリによって参照されるピクチャが、DPB内に存在し、現在のピクチャのTemporalId以下のTemporalIdを有する。任意で、以下の制約が、さらに指定される可能性がある。RefPicList[0]またはRefPicList[1]のいかなる非アクティブなエントリのエントリインデックスも、現在のピクチャの復号のための参照インデックスとして使用されない。任意で、以下の制約が、さらに指定される可能性がある。RefPicList[0]またはRefPicList[1]の非アクティブなエントリが、RefPicList[0]またはRefPicList[1]のいかなるその他のエントリとも同じピクチャを参照しない。ピクチャのスライスのRefPicList[0]またはRefPicList[1]のSTRPエントリおよび同じスライスまたは同じピクチャの異なるスライスのRefPicList[0]またはRefPicList[1]のLTRPエントリが、同じピクチャを参照しない。現在のピクチャ自体が、RefPicList[0]またはRefPicList[1]のいかなるエントリによっても参照されない。現在のピクチャのPicOrderCntValとエントリによって参照されるピクチャのPicOrderCntValとの間の差が224以上であるRefPicList[0]またはRefPicList[1]のLTRPエントリが、存在しない。setOfRefPicsは、RefPicList[0]のすべてのエントリおよびRefPicList[1]のすべてのエントリによって参照される一意のピクチャのセットであるものとする。setOfRefPics内のピクチャの数が、sps_max_dec_pic_buffering_minus1以下であり、setOfRefPicsが、ピクチャのすべてのスライスに関して同じである。
【０２６７】
各STRPは、そのPicOrderCntVal値によって特定される。各LTRPに関して、そのLTRPがdelta_poc_msb_present_flag[i][j]が1に等しいRefPicList[0]またはRefPicList[1]のエントリによって参照される場合、そのLTRPは、そのPicOrderCntVal値によって特定され、そうでない場合、そのLTRPは、そのPicOrderCntVal値のLog2(MaxPicOrderCntLsb) LSBによって特定される。
【０２６８】
長期的参照ピクチャのエントリに関する差分POC MSBのシグナリングの代替2
【０２６９】
本開示の1つの代替的な実施形態において、第1の実施形態または第2の実施形態において説明された開示は、上述の、それぞれ「長期的参照ピクチャのエントリに関する差分POC MSBのシグナリング」および「長期的参照ピクチャのエントリに関する差分POC MSBのシグナリングの代替1」と呼ばれる実施形態と組み合わされ得る。組み合わされる本開示の態様は、additional_lt_poc_lsbの(すなわち、第1の実施形態または第2の実施形態からの)およびPOC MSBサイクル情報の(すなわち、上述の、「長期的参照ピクチャのエントリに関する差分POC MSBのシグナリング」および「長期的参照ピクチャのエントリに関する差分POC MSBのシグナリングの代替1」と呼ばれる実施形態からの)シグナリングである。第1の実施形態と、上述の、「長期的参照ピクチャのエントリに関する差分POC MSBのシグナリングの代替1」と呼ばれる実施形態とを組み合わせる組合せがどのように行われ得るのかの一例が、以下のように示される。
【０２７０】
【表２６Ａ】
2021534668.tif 000053
【表２６Ｂ】
2021534668.tif 000054
【０２７１】
1に等しいdelta_poc_msb_present_flag[i][j]は、delta_poc_msb_cycle_lt[i][j]が存在することを指定する。0に等しいdelta_poc_msb_present_flag[i][i]は、delta_poc_msb_cycle_lt[i][j]が存在しないことを指定する。NumLtrpEntries[i]が0を超えており、ref_pic_list_struct(i, rplsIdx, 1)シンタックス構造のj番目のLTRPエントリに関して、スライスヘッダが復号されるときにPicOrderCntValのモジュロMaxPicOrderCntLsbがpoc_lsb_lt[i][rplsIdx][jj]に等しい2つ以上の参照ピクチャがDPB内に存在し、jjが、ref_pic_list_struct(i, rplsIdx, 1)シンタックス構造のj番目のLTRPエントリであるref_pic_list_struct(i, rplsIdx, 1)シンタックス構造のエントリのエントリインデックスであるとき、delta_poc_msb_present_flag[i][j]は、1に等しい。存在しないとき、delta_poc_msb_cycle_lt[i][j]の値は、0に等しいと推測される。delta_poc_msb_cycle_lt[i][j]は、ref_pic_list_struct(i, rplsIdx, 1)シンタックス構造のj番目のLTRPエントリのピクチャ順序カウントの値の最上位ビットの値を決定するために使用される。delta_poc_msb_cycle_lt[i][j]が存在しないとき、delta_poc_msb_cycle_lt[i][j]は、0に等しいと推測される。
【０２７２】
ピクチャ順序カウントに関する復号プロセスに対する変更。
【数２４】
2021534668.tif 000055
【０２７３】
参照ピクチャリストRefPicList[0]およびRefPicList[1]は、以下のように構築される。
for( i = 0; i < 2; i++ ) {
if( ref_pic_list_sps_flag[i] )
RplsIdx[i] = ref_pic_list_idx[i]
else
RplsIdx[i] = num_ref_pic_lists_in_sps[i]
msbCycleIdx = 0
for( j = 0, pocBase = PicOrderCntVal; j < NumEntriesInList[i][RplsIdx[i]]; j++ ) {
if( !lt_ref_pic_flag[i][RplsIdx[i]][j] ) {
RefPicPocList[i][j] = pocBase - delta_poc_st[i][RplsIdx[i]][j]
if( PicOrderCntValがRefPicPocList[i][j]に等しいDPB内の参照ピクチャpicAが存在する )
RefPicList[i][j] = picA
else
RefPicList[i][j] = "no reference picture"
pocBase = RefPicPocList[i][j]
} else {
if( delta_poc_msb_cycle_lt[i][msbCycleIdx]が0に等しい && PicOrderCntVal & ( MaxLtPicOrderCntLsb - 1 )がpoc_lsb_lt[i][RplsIdx[i]][j]に等しいDPB内の参照ピクチャpicAが存在する )
RefPicList[i][j] = picA
else if( delta_poc_msb_cycle_lt[i][msbCycleIdx]が1に等しい && PicOrderCntValが(MaxLtPicOrderCntLsb * delta_poc_msb_cycle_lt[i][msbCycleIdx] ) + poc_lsb_lt[i][RplsIdx[i]][j]に等しいDPB内の参照ピクチャpicAが存在する ) ) {
RefPicList[i][j] = picA
msbCycleIdx++
} else
RefPicList[i][j] = "no reference picture"
}
}
}
【０２７４】
代替的に、delta_poc_msb_cycle_lt[listIdx][i]のセマンティクスは、参照ピクチャリストの構築が以下のように更新され得るように差分の差分として表現されることが可能である。参照ピクチャリストRefPicList[0]およびRefPicList[1]は、以下のように構築される。
for( i = 0; i < 2; i++ ) {
if( ref_pic_list_sps_flag[i] )
RplsIdx[i] = ref_pic_list_idx[i]
else
RplsIdx[i] = num_ref_pic_lists_in_sps[i]
prevMsbCycle = 0
msbCycleIdx = 0
for( j = 0, pocBase = PicOrderCntVal; j < NumEntriesInList[i][RplsIdx[i]]; j++ ) {
if( !lt_ref_pic_flag[i][RplsIdx[i]][j] ) {
RefPicPocList[i][j] = pocBase - delta_poc_st[i][RplsIdx[i]][j]
if( PicOrderCntValがRefPicPocList[i][j]に等しいDPB内の参照ピクチャpicAが存在する )
RefPicList[i][j] = picA
else
RefPicList[i][j] = "no reference picture"
pocBase = RefPicPocList[i][j]
} else {
if( delta_poc_msb_cycle_lt[i][msbCycleIdx]が0に等しい && PicOrderCntVal & ( MaxLtPicOrderCntLsb - 1 )がpoc_lsb_lt[i][RplsIdx[i]][j]に等しいDPB内の参照ピクチャpicAが存在する )
RefPicList[i][j] = picA
else if( delta_poc_msb_cycle_lt[i][msbCycleIdx]が1に等しい && PicOrderCntValが( MaxLtPicOrderCntLsb * ( delta_poc_msb_cycle_lt[i][msbCycleIdx] + prevMsbCycle ) + poc_lsb_lt[i][RplsIdx[i]][j] )に等しいDPB内の参照ピクチャpicAが存在する ) {
RefPicList[i][j] = picA
prevMsbCycle += delta_poc_msb_cycle_lt[i][msbCycleIdx]
msbCycleIdx++
} else
RefPicList[i][j] = "no reference picture"
}
}
}
【０２７５】
以下の制約が適用されることが、ビットストリームの準拠の要件である。0または1に等しい各iに関して、NumEntriesInList[i][RplsIdx[i]]が、NumRefIdxActive[i]以上である。RefPicList[0]またはRefPicList[1]のそれぞれのアクティブなエントリによって参照されるピクチャが、DPB内に存在し、現在のピクチャのTemporalId以下のTemporalIdを有する。任意で、以下の制約が、さらに指定される可能性がある。RefPicList[0]またはRefPicList[1]のいかなる非アクティブなエントリのエントリインデックスも、現在のピクチャの復号のための参照インデックスとして使用されない。任意で、以下の制約が、さらに指定される可能性がある。RefPicList[0]またはRefPicList[1]の非アクティブなエントリが、RefPicList[0]またはRefPicList[1]のいかなるその他のエントリとも同じピクチャを参照しない。ピクチャのスライスのRefPicList[0]またはRefPicList[1]のSTRPエントリおよび同じスライスまたは同じピクチャの異なるスライスのRefPicList[0]またはRefPicList[1]のLTRPエントリが、同じピクチャを参照しない。現在のピクチャ自体が、RefPicList[0]またはRefPicList[1]のいかなるエントリによっても参照されない。現在のピクチャのPicOrderCntValとエントリによって参照されるピクチャのPicOrderCntValとの間の差が224以上であるRefPicList[0]またはRefPicList[1]のLTRPエントリが、存在しない。setOfRefPicsは、RefPicList[0]のすべてのエントリおよびRefPicList[1]のすべてのエントリによって参照される一意のピクチャのセットであるものとする。setOfRefPics内のピクチャの数が、sps_max_dec_pic_buffering_minus1以下であり、setOfRefPicsが、ピクチャのすべてのスライスに関して同じである。
【０２７６】
各STRPは、そのPicOrderCntVal値によって特定される。各LTRPに関して、そのLTRPがdelta_poc_msb_present_flag[i][j]が1に等しいRefPicList[0]またはRefPicList[1]のエントリによって参照される場合、そのLTRPは、そのPicOrderCntVal値によって特定され、そうでない場合、そのLTRPは、そのPicOrderCntVal値のLog2(MaxLtPicOrderCntLsb) LSBによって特定される。
【０２７７】
短期的参照ピクチャと長期的参照ピクチャとを区別するようにして常にスライスヘッダ内で参照ピクチャリストをシグナリングすること
【０２７８】
このセクションは、本開示の別の代替的な実施形態を説明する。説明は、最新のVVC WDに関連する(すなわち、JVET-K1001-v1の最新のVVC WDに対する差分のみが説明されるが、下で説明されない最新のVVC WDのテキストはそのまま適用される)。この代替的な実施形態は、以下のように要約される。参照ピクチャリスト構造が、スライスヘッダ内でのみシグナリングされる。短期的参照ピクチャと長期的参照ピクチャとの両方が、POC値の導出のためにスライスヘッダ内でシグナリングされるPOC LSBを表すために使用されるビットの数と異なる数のビットによって表される可能性があるそれらの参照ピクチャのPOC LSBによって特定される。さらに、短期的参照ピクチャおよび長期的参照ピクチャを特定するためのPOC LSBを表すために使用されるビットの数は、異なる可能性がある。
【０２７９】
NALユニットヘッダのシンタックス
【０２８０】
【表２７】
2021534668.tif 000056
【０２８１】
シーケンスパラメータセットのRBSPのシンタックス
【０２８２】
【表２８】
2021534668.tif 000057
【０２８３】
ピクチャパラメータセットのRBSPのシンタックス
【０２８４】
【表２９】
2021534668.tif 000058
【０２８５】
スライスヘッダのシンタックス
【０２８６】
【表３０】
2021534668.tif 000059
【０２８７】
参照ピクチャリスト構造のシンタックス
【０２８８】
【表３１】
2021534668.tif 000060
【０２８９】
NALユニットヘッダのセマンティクス
【０２９０】
forbidden_zero_bitは、0に等しい。nal_unit_typeは、NALユニットに含まれるRBSPデータ構造の種類を指定する。
【０２９１】
【表３２】
2021534668.tif 000061
【０２９２】
nuh_temporal_id_plus1から1を引いた値は、NALユニットに関する時間識別子を指定する。nuh_temporal_id_plus1の値は、0に等しくない。変数TemporalIdは、次のように、すなわち、TemporalId = nuh_temporal_id_plus1 - 1のように指定される。
【０２９３】
nal_unit_typeがIRAP_NUTに等しいとき、コーディングされたスライスは、IRAPピクチャに属し、TemporalIdは、0に等しい。TemporalIdの値は、アクセスユニットのすべてのVCL NALユニットに関して同じである。コーディングされたピクチャまたはアクセスユニットのTemporalIdの値は、コーディングされたピクチャまたはアクセスユニットのVCL NALユニットのTemporalIdの値である。非VCL NALユニットに関するTemporalIdの値は、以下のように制約される。nal_unit_typeがSPS_NUTに等しい場合、TemporalIdは、0に等しく、NALユニットを含むアクセスユニットのTemporalIdは、0に等しい。そうではなくnal_unit_typeがEOS_NUTまたはEOB_NUTに等しい場合、TemporalIdは、0に等しい。そうでない場合、TemporalIdは、NALユニットを含むアクセスユニットのTemporalId以上である。NALユニットが非VCL NALユニットであるとき、TemporalIdの値は、非VCL NALユニットが当てはまるすべてのアクセスユニットのTemporalId値のうちの最小値に等しい。nal_unit_typeがPPS_NUTに等しいとき、TemporalIdは、すべてのピクチャパラメータセット(PPS)がビットストリームの初めに含まれる可能性があり、第1のコーディングされたピクチャが0に等しいTemporalIdを有するので、包含するアクセスユニットのTemporalId以上である可能性がある。nal_unit_typeがPREFIX_SEI_NUTまたはSUFFIX_SEI_NUTに等しいとき、TemporalIdは、TemporalId値が補足増強情報(SEI)NALユニットを含むアクセスユニットのTemporalIdよりも大きいアクセスユニットを含むビットストリームのサブセットに適用される情報をSEI NALユニットが含む可能性があるので、包含するアクセスユニットのTemporalId以上である可能性がある。nuh_reserved_zero_7bitsは、'0000000'に等しい。nuh_reserved_zero_7bitsのその他の値が、ITU_T | ISO/IECによって将来規定される可能性がある。デコーダは、'0000000'に等しくないnuh_reserved_zero_7bitsの値を有するNALユニットを無視する(すなわち、ビットストリームから削除し、破棄する)。
【０２９４】
シーケンスパラメータセットのRBSPのセマンティクス
【０２９５】
log2_max_pic_order_cnt_lsb_minus4は、ピクチャ順序カウントに関する復号プロセスにおいて使用される変数MaxPicOrderCntLsbの値を次のように指定する。
MaxPicOrderCntLsb = 2( log2_max_pic_order_cnt_lsb_minus4 + 4 )
【０２９６】
log2_max_pic_order_cnt_lsb_minus4の値は、0および12を含んで0から12までの範囲内にある。sps_max_dec_pic_buffering_minus1に1を足した値は、ピクチャストレージバッファを単位としてCVSのための復号ピクチャバッファの最大の必要とされるサイズを指定する。sps_max_dec_pic_buffering_minus1の値は、0およびMaxDpbSize - 1を含んで0からMaxDpbSize - 1までの範囲内にあり、MaxDpbSizeは、別のどこかで指定される。additional_st_poc_lsbは、参照ピクチャリストに関する復号プロセスにおいて使用される変数MaxStPicOrderCntLsbの値を次のように指定する。
MaxStPicOrderCntLsb = 2( log2_max_pic_order_cnt_lsb_minus4 + 4 + additional_st_poc_lsb )
【０２９７】
additional_st_poc_lsbの値は、0および32 - log2_max_pic_order_cnt_lsb_minus4 - 4を含んで0から32 - log2_max_pic_order_cnt_lsb_minus4 - 4までの範囲内にある。0に等しいlong_term_ref_pics_flagは、LTRPがCVS内のいかなるコーディングされたピクチャのインター予測にも使用されないことを指定する。1に等しいlong_term_ref_pics_flagは、LTRPがCVS内の1つまたは複数のコーディングされたピクチャのインター予測のために使用される可能性があることを指定する。additional_lt_poc_lsbは、参照ピクチャリストに関する復号プロセスにおいて使用される変数MaxLtPicOrderCntLsbの値を次のように指定する。
MaxLtPicOrderCntLsb = 2( log2_max_pic_order_cnt_lsb_minus4 + 4 + additional_st_poc_lsb + additional_lt_poc_lsb )
additional_lt_poc_lsbの値は、0および32 - log2_max_pic_order_cnt_lsb_minus4 - 4 - additional_st_poc_lsbを含んで0から32 - log2_max_pic_order_cnt_lsb_minus4 - 4 - additional_st_poc_lsbまでの範囲内にある。存在しないとき、additional_lt_poc_lsbの値は、0に等しいと推測される。
【０２９８】
ピクチャパラメータセットのRBSPのセマンティクス
【０２９９】
num_ref_idx_default_active_minus1[i]に1を足した値は、iが0に等しいとき、num_ref_idx_active_override_flagが0に等しいPまたはBスライスに関する変数NumRefIdxActive[0]の推測された値を指定し、iが1に等しいとき、num_ref_idx_active_override_flagが0に等しいBスライスに関するNumRefIdxActive[1]の推測された値を指定する。num_ref_idx_default_active_minus1[i]の値は、0および14を含んで0から14までの範囲内にある。
【０３００】
スライスヘッダのセマンティクス
【０３０１】
存在するとき、スライスヘッダのシンタックス要素slice_pic_parameter_set_idおよびslice_pic_order_cnt_lsbの各々の値は、コーディングされたピクチャのすべてのスライスヘッダにおいて同じである。slice_typeは、Table 7-3(表33)に従ってスライスのコーディングタイプを指定する。
【０３０２】
【表３３】
2021534668.tif 000062
【０３０３】
nal_unit_typeがIRAP_NUTに等しい、すなわち、ピクチャがIRAPピクチャであるとき、slice_typeは、2に等しい。
【０３０４】
slice_pic_order_cnt_lsbは、現在のピクチャに関するピクチャ順序カウントのモジュロMaxPicOrderCntLsbを指定する。slice_pic_order_cnt_lsbシンタックス要素の長さは、log2_max_pic_order_cnt_lsb_minus4 + 4ビットである。slice_pic_order_cnt_lsbの値は、0およびMaxPicOrderCntLsb - 1を含んで0からMaxPicOrderCntLsb - 1までの範囲内にある。slice_pic_order_cnt_lsbが存在しないとき、slice_pic_order_cnt_lsbは、0に等しいと推測される。1に等しいnum_ref_idx_active_override_flagは、シンタックス要素num_ref_idx_active_minus1[0]がPおよびBスライスに関して存在することと、シンタックス要素num_ref_idx_active_minus1[1]がBスライスに関して存在することとを指定する。0に等しいnum_ref_idx_active_override_flagは、シンタックス要素num_ref_idx_active_minus1[0]およびnum_ref_idx_active_minus1[1]が存在しないことを指定する。num_ref_idx_active_minus1[i]は、存在するとき、変数NumRefIdxActive[i]の値を次のように指定する。
NumRefIdxActive[i] = num_ref_idx_active_minus1[i] + 1
【０３０５】
num_ref_idx_active_minus1[i]の値は、0および14を含んで0から14までの範囲内にある。NumRefIdxActive[i]の値 - 1は、スライスを復号するために使用される可能性がある参照ピクチャリストiに関する最大の参照インデックスを指定する。NumRefIdxActive[i]の値が0に等しいとき、参照ピクチャリストiに関する参照インデックスは、スライスを復号するために使用されない可能性がある。0または1に等しいiに関して、現在のスライスがBスライスであり、num_ref_idx_active_override_flagが0に等しいとき、NumRefIdxActive[i]は、num_ref_idx_default_active_minus1[i] + 1に等しいと推測される。現在のスライスがPスライスであり、num_ref_idx_active_override_flagが0に等しいとき、NumRefIdxActive[0]は、num_ref_idx_default_active_minus1[0] + 1に等しいと推測される。現在のスライスがPスライスであるとき、NumRefIdxActive[1]は、0に等しいと推測される。現在のスライスがIスライスであるとき、NumRefIdxActive[0]とNumRefIdxActive[1]との両方は、0に等しいと推測される。代替的に、0または1に等しいiに関して、以上の後、以下のことが適用される。rplsIdx1がref_pic_list_sps_flag[i] ? ref_pic_list_idx[i] : num_ref_pic_lists_in_sps[i]に等しいように設定され、numRpEntries[i]がnum_strp_entries[i][rplsIdx1] + num_ltrp_entries[i][rplsIdx1]に等しいものとする。NumRefIdxActive[i]がnumRpEntries[i]よりも大きいとき、NumRefIdxActive[i]の値は、numRpEntries[i]に等しいように設定される。
【０３０６】
参照ピクチャリスト構造のセマンティクス
【０３０７】
ref_pic_list_struct(listIdx, ltrpFlag)シンタックス構造は、スライスヘッダ内に存在する可能性がある。ref_pic_list_struct(listIdx, ltrpFlag)シンタックス構造がスライスヘッダ内に存在する場合、ref_pic_list_struct(listIdx, ltrpFlag)シンタックス構造は、現在のピクチャ(スライスを含むピクチャ)の参照ピクチャリストのlistIdxを指定する。num_strp_entries[listIdx]は、ref_pic_list_struct(listIdx, ltrpFlag)シンタックス構造のSTRPエントリの数を指定する。num_ltrp_entries[listIdx]は、ref_pic_list_struct(listIdx, ltrpFlag)シンタックス構造のLTRPエントリの数を指定する。存在しないとき、num_ltrp_entries[listIdx]の値は、0に等しいと推測される。変数NumEntriesInList[listIdx]は、次のように導出される。
NumEntriesInList[listIdx] = num_strp_entries[listIdx] + num_ltrp_entries[listIdx]
【０３０８】
NumEntriesInList[listIdx]の値は、0およびsps_max_dec_pic_buffering_minus1を含んで0からsps_max_dec_pic_buffering_minus1までの範囲内にある。1に等しいlt_ref_pic_flag[listIdx][i]は、ref_pic_list_struct(listIdx, ltrpFlag)シンタックス構造のi番目のエントリがLTRPエントリであることを指定する。0に等しいlt_ref_pic_flag[listIdx][i]は、ref_pic_list_struct(listIdx, ltrpFlag)シンタックス構造のi番目のエントリがSTRPエントリであることを指定する。存在しないとき、lt_ref_pic_flag[listIdx][i]の値は、0に等しいと推測される。0およびNumEntriesInList[listIdx] - 1を含んで0からNumEntriesInList[listIdx] - 1までの範囲内にあるiのすべての値に関するlt_ref_pic_flag[listIdx][i]の総和がnum_ltrp_entries[listIdx]に等しいことが、ビットストリームの準拠の要件である。poc_lsb_st[listIdx][i]は、lt_ref_pic_flag[listIdx][i]が0に等しいとき、ref_pic_list_struct(listIdx, ltrpFlag)シンタックス構造のi番目のエントリによって参照されるピクチャのピクチャ順序カウントのモジュロMaxStPicOrderCntLsbの値を指定する。poc_lsb_st[listIdx][i]シンタックス要素の長さは、Log2(MaxStPicOrderCntLsb)ビットである。poc_lsb_lt[listIdx][i]は、lt_ref_pic_flag[listIdx][i]が1に等しいとき、ref_pic_list_struct(listIdx, ltrpFlag)シンタックス構造のi番目のエントリによって参照されるピクチャのピクチャ順序カウントのモジュロMaxLtPicOrderCntLsbの値を指定する。poc_lsb_lt[listIdx][i]シンタックス要素の長さは、Log2(MaxLtPicOrderCntLsb)ビットである。
【０３０９】
復号プロセスが、検討される。
【０３１０】
全体的復号プロセス
【０３１１】
復号プロセスは、現在のピクチャCurrPicに関して以下のように動作する。NALユニットの復号が、下で規定される。下のプロセスは、スライスヘッダレイヤ以上のシンタックス要素を使用して以下の復号プロセスを規定する。ピクチャ順序カウントに関連する変数および関数が、導出される。これは、ピクチャの最初のスライスに関してのみ呼び出される必要がある。非IRAPピクチャの各スライスに関する復号プロセスの初めに、参照ピクチャリストの構築のための復号プロセスが、参照ピクチャリスト0(RefPicList[0])および参照ピクチャリスト1(RefPicList[1])の導出のために呼び出される。参照ピクチャのマーキングのための復号プロセスが、呼び出され、参照ピクチャが、「参照のために使用されない」または「長期的参照のために使用される」と印を付けられる可能性がある。これは、ピクチャの最初のスライスに関してのみ呼び出される必要がある。コーディングツリーユニット、スケーリング、変換、ループ内フィルタリングなどのための復号プロセスが、呼び出される。現在のピクチャのすべてのスライスが復号された後、現在の復号されたピクチャが、「短期的参照のために使用される」と印を付けられる。
【０３１２】
NALユニット復号プロセス
【０３１３】
このプロセスへの入力は、現在のピクチャのNALユニットおよびそれらの関連する非VCL NALユニットである。このプロセスの出力は、NALユニットにカプセル化された解析されたRBSPシンタックス構造である。各NALユニットに関する復号プロセスは、NALユニットからRBSPシンタックス構造を抽出し、それから、RBSPシンタックス構造を解析する。
【０３１４】
スライス復号プロセス
【０３１５】
ピクチャ順序カウントに関する復号プロセス
【０３１６】
このプロセスの出力は、PicOrderCntVal、現在のピクチャのピクチャ順序カウントである。ピクチャ順序カウントは、マージモードおよび動きベクトルの予測において動きパラメータを導出するためおよびデコーダの準拠の検査のためにピクチャを特定するために使用される。それぞれのコーディングされたピクチャは、PicOrderCntValと表されるピクチャ順序カウント変数に関連付けられる。現在のピクチャがIRAPピクチャでないとき、変数prevPicOrderCntLsbおよびprevPicOrderCntMsbは、以下のように導出される。prevTid0Picが、0に等しいTemporalIdを有する、復号の順序で前のピクチャであるものとする。変数prevPicOrderCntLsbは、prevTid0Picのslice_pic_order_cnt_lsbに等しいように設定される。変数prevPicOrderCntMsbは、prevTid0PicのPicOrderCntMsbに等しいように設定される。現在のピクチャの変数PicOrderCntMsbは、次のように導出される。現在のピクチャがIRAPピクチャである場合、PicOrderCntMsbは、0に等しいように設定される。そうでない場合、PicOrderCntMsbは、以下のように導出される。
if( ( slice_pic_order_cnt_lsb < prevPicOrderCntLsb ) && ( ( prevPicOrderCntLsb - slice_pic_order_cnt_lsb ) >= ( MaxPicOrderCntLsb / 2 ) ) )
PicOrderCntMsb = prevPicOrderCntMsb + MaxPicOrderCntLsb
else if( (slice_pic_order_cnt_lsb > prevPicOrderCntLsb ) && ( ( slice_pic_order_cnt_lsb - prevPicOrderCntLsb ) > ( MaxPicOrderCntLsb / 2 ) ) )
PicOrderCntMsb = prevPicOrderCntMsb - MaxPicOrderCntLsb
else
PicOrderCntMsb = prevPicOrderCntMsb
【０３１７】
PicOrderCntValは、次のように導出される。
PicOrderCntVal = PicOrderCntMsb + slice_pic_order_cnt_lsb
【０３１８】
slice_pic_order_cnt_lsbがIRAPピクチャに関して0であると推測され、prevPicOrderCntLsbとprevPicOrderCntMsbとの両方が0に等しいように設定されるので、すべてのIRAPピクチャは、0に等しいPicOrderCntValを持つ。PicOrderCntValの値は、-231および231 - 1を含んで-231から231 - 1までの範囲内にある。1つのCVSにおいては、いかなる2つのコーディングされたピクチャに関するPicOrderCntVal値も、同じでない。復号プロセス中の任意の瞬間に、DPB内のいかなる2つの短期的参照ピクチャに関するPicOrderCntVal & ( MaxStPicOrderCntLsb - 1 )の値も、同じでない。復号プロセス中の任意の瞬間に、DPB内のいかなる2つの参照ピクチャに関するPicOrderCntVal & ( MaxLtPicOrderCntLsb - 1 )の値も、同じでない。
【０３１９】
関数PicOrderCnt(picX)が、次のように指定される。
PicOrderCnt(picX) =ピクチャpicXのPicOrderCntVal
【０３２０】
関数DiffPicOrderCnt(picA, picB)が、次のように指定される。
DiffPicOrderCnt(picA, picB) = PicOrderCnt(picA) - PicOrderCnt(picB)
【０３２１】
ビットストリームは、-215および215 - 1を含む-215から215 - 1までの範囲内にない、復号プロセスにおいて使用されるDiffPicOrderCnt(picA, picB)の値をもたらすデータを含まない。Xが現在のピクチャであり、YおよびZが同じCVS内の2つのその他のピクチャであるものとして、YおよびZは、DiffPicOrderCnt(X, Y)とDiffPicOrderCnt(X, Z)との両方が正であるかまたは両方が負であるとき、Xから同じ出力順序の方向にあると考えられる。
【０３２２】
参照ピクチャリストの構築のための復号プロセス
【０３２３】
このプロセスは、非IRAPピクチャの各スライスに関する復号プロセスの初めに呼び出される。参照ピクチャは、参照インデックスによってアドレス指定される。参照インデックスは、参照ピクチャリストへのインデックスである。Iスライスを復号するとき、参照ピクチャリストは、スライスデータの復号において使用されない。Pスライスを復号するとき、参照ピクチャリスト0(すなわち、RefPicList[0])のみが、スライスデータの復号において使用される。Bスライスを復号するとき、参照ピクチャリスト0と参照ピクチャリスト1(すなわち、RefPicList[1])との両方が、スライスデータの復号において使用される。非IRAPピクチャの各スライスに関する復号プロセスの初めに、参照ピクチャリストRefPicList[0]およびRefPicList[1]が、導出される。参照ピクチャリストは、参照ピクチャのマーキングにおいてまたはスライスデータの復号において使用される。ピクチャの最初のスライスでない非IRAPピクチャのIスライスに関して、RefPicList[0]およびRefPicList[1]が、ビットストリームの準拠の検査の目的で導出される可能性があるが、それらの導出は、現在のピクチャまたは復号の順序で現在のピクチャの後に続くピクチャの復号のために必要でない。ピクチャの最初のスライスでないPスライスに関して、RefPicList[1]が、ビットストリームの準拠の検査の目的で導出される可能性があるが、その導出は、現在のピクチャまたは復号の順序で現在のピクチャの後に続くピクチャの復号のために必要でない。
【０３２４】
参照ピクチャリストRefPicList[0]およびRefPicList[1]は、以下のように構築される。
for( i = 0; i < 2; i++ ) {
for( j = 0; j < NumEntriesInList[i]; j++ ) {
if( lt_ref_pic_flag[i][j] ) {
if( PicOrderCntVal & ( MaxLtPicOrderCntLsb - 1 )がpoc_lsb_lt[i][j]に等しいDPB内の参照picAが存在する )
RefPicList[i][j] = picA
else
RefPicList[i][j] = "no reference picture"
}
}
}
for( i = 0; i < 2; i++ ) {
for( j = 0; j < NumEntriesInList[i]; j++ ) {
if( !lt_ref_pic_flag[i][j] ) {
if( PicOrderCntVal & ( MaxStPicOrderCntLsb - 1 )がpoc_lsb_st[i][j]に等しいDPB内の短期的参照ピクチャpicAが存在する )
RefPicList[i][j] = picA
else
RefPicList[i][j] = "no reference picture"
}
}
}
【０３２５】
0または1に等しい各iに関して、以下のことが適用される。
【０３２６】
RefPicList[i]の最初のNumRefIdxActive[i]個のエントリが、RefPicList[i]のアクティブなエントリと呼ばれ、RefPicList[i]のその他のエントリは、RefPicList[i]の非アクティブなエントリと呼ばれる。0およびNumEntriesInList[i] - 1を含んで0からNumEntriesInList[i] - 1までの範囲内のjに関してRefPicList[i][j]の各エントリは、lt_ref_pic_flag[i][j]が0に等しい場合、STRPエントリと呼ばれ、そうでない場合、LTRPエントリと呼ばれる。特定のピクチャが、RefPicList[0]のエントリとRefPicList[1]のエントリとの両方によって参照されることが可能である。特定のピクチャが、RefPicList[0]の2つ以上のエントリによってまたはRefPicList[1]の2つ以上のエントリによって参照されることも可能である。RefPicList[0]のアクティブなエントリおよびRefPicList[1]のアクティブなエントリは、現在のピクチャおよび復号の順序で現在のピクチャの後に続く1つまたは複数のピクチャのインター予測のために使用される可能性があるすべての参照ピクチャを集合的に指す。RefPicList[0]の非アクティブなエントリおよびRefPicList[1]の非アクティブなエントリは、現在のピクチャのインター予測のために使用されないが、復号の順序で現在のピクチャの後に続く1つまたは複数のピクチャのインター予測において使用される可能性があるすべての参照ピクチャを集合的に指す。対応するピクチャがDPB内に存在しないので「no reference picture」に等しいRefPicList[0]またはRefPicList[1]の1つまたは複数のエントリが、存在する可能性がある。「no reference picture」に等しいRefPicList[0]またはRefPicList[0]のそれぞれの非アクティブなエントリは、無視されるべきである。「no reference picture」に等しいRefPicList[0]またはRefPicList[1]のそれぞれのアクティブなエントリに関しては、意図しないピクチャの喪失が、推測されるべきである。
【０３２７】
以下の制約が適用されることが、ビットストリームの準拠の要件である。0または1に等しい各iに関して、NumEntriesInList[i]が、NumRefIdxActive[i]以上である。RefPicList[0]またはRefPicList[1]のそれぞれのアクティブなエントリによって参照されるピクチャが、DPB内に存在し、現在のピクチャのTemporalId以下のTemporalIdを有する。任意で、以下の制約が、さらに指定される可能性がある。RefPicList[0]またはRefPicList[1]のいかなる非アクティブなエントリのエントリインデックスも、現在のピクチャの復号のための参照インデックスとして使用されない。任意で、以下の制約が、さらに指定される可能性がある。RefPicList[0]またはRefPicList[1]の非アクティブなエントリが、RefPicList[0]またはRefPicList[1]のいかなるその他のエントリとも同じピクチャを参照しない。ピクチャのスライスのRefPicList[0]またはRefPicList[1]のSTRPエントリおよび同じスライスまたは同じピクチャの異なるスライスのRefPicList[0]またはRefPicList[1]のLTRPエントリが、同じピクチャを参照しない。現在のピクチャ自体が、RefPicList[0]またはRefPicList[1]のいかなるエントリによっても参照されない。現在のピクチャのPicOrderCntValとエントリによって参照されるピクチャのPicOrderCntValとの間の差が224以上であるRefPicList[0]またはRefPicList[1]のLTRPエントリが、存在しない。setOfRefPicsは、RefPicList[0]のすべてのエントリおよびRefPicList[1]のすべてのエントリによって参照される一意のピクチャのセットであるものとする。setOfRefPics内のピクチャの数が、sps_max_dec_pic_buffering_minus1以下であり、setOfRefPicsが、ピクチャのすべてのスライスに関して同じである。
【０３２８】
参照ピクチャのマーキングのための復号プロセス
【０３２９】
このプロセスは、スライスヘッダの復号およびスライスに関する参照ピクチャリストの構築のための復号プロセスの後であるが、スライスデータの復号の前に、ピクチャ毎に1回呼び出される。このプロセスは、DPB内の1つまたは複数の参照ピクチャが「参照のために使用されない」または「長期的参照のために使用される」と印を付けられる結果をもたらす可能性がある。DPB内の復号されたピクチャは、「参照のために使用されない」、「短期的参照のために使用される」、または「長期的参照のために使用される」として、ただし、復号プロセスの動作中の任意の所与の瞬間にこれら3つのうちのただ1つとして印を付けられ得る。ピクチャにこれらのマーキングのうちの1つを割り振ることは、該当する場合、これらのマーキングのうちの別のマーキングを暗黙的に削除する。ピクチャが「参照のために使用される」と印を付けられていると言われるとき、これは、集合的に、ピクチャが「短期的参照のために使用される」または「長期的参照のために使用される」として(ただし、両方ではない)印を付けられていることを指す。現在のピクチャがIRAPピクチャであるとき、現在DPB内にあるすべての参照ピクチャ(もしあれば)は、「参照のために使用されない」と印を付けられる。STRPは、それらのPicOrderCntVal値のLog2(MaxStPicOrderCntLsb) LSBによって特定される。LTRPは、それらのPicOrderCntVal値のLog2(MaxLtPicOrderCntLsb) LSBによって特定される。
【０３３０】
以下のことが、適用される。RefPicList[0]またはRefPicList[1]の各LTRPエントリに関して、参照されるピクチャがSTRPであるとき、ピクチャは、「長期的参照のために使用される」と印を付けられる。RefPicList[0]またはRefPicList[1]のいかなるエントリによっても参照されないDPB内の各参照ピクチャは、「参照のために使用されない」と印を付けられる。
【０３３１】
短期的参照ピクチャと長期的参照ピクチャとを区別することなく常にスライスヘッダ内で参照ピクチャリストをシグナリングすること
【０３３２】
このセクションは、本開示の別の代替的な実施形態を説明する。説明は、最新のVVC WDに関連する(すなわち、JVET-K1001-v1の最新のVVC WDに対する差分のみが説明されるが、下で説明されない最新のVVC WDのテキストはそのまま適用される)。この代替的な実施形態は、以下のように要約される。参照ピクチャリスト構造が、スライスヘッダ内でのみシグナリングされる。短期的参照ピクチャと長期的参照ピクチャとの間の区別が、なされない。すべての参照ピクチャが、単に参照ピクチャと呼ばれる。参照ピクチャが、POC値の導出のためにスライスヘッダ内でシグナリングされるPOC LSBを表すために使用されるビットの数と異なる数のビットによって表される可能性があるそれらの参照ピクチャのPOC LSBによって特定される。
【０３３３】
略語。VVC WDの4項のテキストが、適用される。
【０３３４】
NALユニットヘッダのシンタックス
【０３３５】
【表３４】
2021534668.tif 000063
【０３３６】
シーケンスパラメータセットのRBSPのシンタックス
【０３３７】
【表３５】
2021534668.tif 000064
【０３３８】
ピクチャパラメータセットのRBSPのシンタックス
【０３３９】
【表３６】
2021534668.tif 000065
【０３４０】
スライスヘッダのシンタックス
【０３４１】
【表３７】
2021534668.tif 000066
【０３４２】
参照ピクチャリスト構造のシンタックス
【０３４３】
【表３８】
2021534668.tif 000067
【０３４４】
NALユニットヘッダのセマンティクス
【０３４５】
forbidden_zero_bitは、0に等しい。nal_unit_typeは、NALユニットに含まれるRBSPデータ構造の種類を指定する。
【０３４６】
【表３９】
2021534668.tif 000068
【０３４７】
nuh_temporal_id_plus1から1を引いた値は、NALユニットに関する時間識別子を指定する。nuh_temporal_id_plus1の値は、0に等しくない。変数TemporalIdは、次のように指定される。
TemporalId = nuh_temporal_id_plus1 - 1
【０３４８】
nal_unit_typeがIRAP_NUTに等しいとき、コーディングされたスライスは、IRAPピクチャに属し、TemporalIdは、0に等しい。TemporalIdの値は、アクセスユニットのすべてのVCL NALユニットに関して同じである。コーディングされたピクチャまたはアクセスユニットのTemporalIdの値は、コーディングされたピクチャまたはアクセスユニットのVCL NALユニットのTemporalIdの値である。非VCL NALユニットに関するTemporalIdの値は、以下のように制約される。
【０３４９】
nal_unit_typeがSPS_NUTに等しい場合、TemporalIdは、0に等しく、NALユニットを含むアクセスユニットのTemporalIdは、0に等しい。そうではなくnal_unit_typeがEOS_NUTまたはEOB_NUTに等しい場合、TemporalIdは、0に等しい。そうでない場合、TemporalIdは、NALユニットを含むアクセスユニットのTemporalId以上である。NALユニットが非VCL NALユニットであるとき、TemporalIdの値は、非VCL NALユニットが当てはまるすべてのアクセスユニットのTemporalId値のうちの最小値に等しい。nal_unit_typeがPPS_NUTに等しいとき、TemporalIdは、すべてのピクチャパラメータセット(PPS)がビットストリームの初めに含まれる可能性があり、第1のコーディングされたピクチャが0に等しいTemporalIdを有するので、包含するアクセスユニットのTemporalId以上である可能性がある。nal_unit_typeがPREFIX_SEI_NUTまたはSUFFIX_SEI_NUTに等しいとき、TemporalIdは、TemporalId値がSEI NALユニットを含むアクセスユニットのTemporalIdよりも大きいアクセスユニットを含むビットストリームのサブセットに適用される情報をSEI NALユニットが含む可能性があるので、包含するアクセスユニットのTemporalId以上である可能性がある。nuh_reserved_zero_7bitsは、'0000000'に等しい。nuh_reserved_zero_7bitsのその他の値が、ITU_T | ISO/IECによって将来規定される可能性がある。デコーダは、'0000000'に等しくないnuh_reserved_zero_7bitsの値を有するNALユニットを無視する(すなわち、ビットストリームから削除し、破棄する)。
【０３５０】
シーケンスパラメータセットのRBSPのセマンティクス
【０３５１】
log2_max_pic_order_cnt_lsb_minus4は、ピクチャ順序カウントに関する復号プロセスにおいて使用される変数MaxPicOrderCntLsbの値を次のように指定する。
MaxPicOrderCntLsb = 2( log2_max_pic_order_cnt_lsb_minus4 + 4 )
【０３５２】
log2_max_pic_order_cnt_lsb_minus4の値は、0および12を含んで0から12までの範囲内にある。sps_max_dec_pic_buffering_minus1に1を足した値は、ピクチャストレージバッファを単位としてCVSのための復号ピクチャバッファの最大の必要とされるサイズを指定する。sps_max_dec_pic_buffering_minus1の値は、0およびMaxDpbSize - 1を含んで0からMaxDpbSize - 1までの範囲内にあり、MaxDpbSizeは、別のどこかで指定される。additional_ref_poc_lsbは、参照ピクチャリストに関する復号プロセスにおいて使用される変数MaxRefPicOrderCntLsbの値を次のように指定する。
MaxRefPicOrderCntLsb = 2( log2_max_pic_order_cnt_lsb_minus4 + 4 + additional_ref_poc_lsb )
【０３５３】
additional_ref_poc_lsbの値は、0および32 - log2_max_pic_order_cnt_lsb_minus4 - 4を含んで0から32 - log2_max_pic_order_cnt_lsb_minus4 - 4までの範囲内にある。
【０３５４】
ピクチャパラメータセットのRBSPのセマンティクス
【０３５５】
num_ref_idx_default_active_minus1[i]に1を足した値は、iが0に等しいとき、num_ref_idx_active_override_flagが0に等しいPまたはBスライスに関する変数NumRefIdxActive[0]の推測された値を指定し、iが1に等しいとき、num_ref_idx_active_override_flagが0に等しいBスライスに関するNumRefIdxActive[1]の推測された値を指定する。num_ref_idx_default_active_minus1[i]の値は、0および14を含んで0から14までの範囲内にある。
【０３５６】
スライスヘッダのセマンティクス
【０３５７】
存在するとき、スライスヘッダのシンタックス要素slice_pic_parameter_set_idおよびslice_pic_order_cnt_lsbの各々の値は、コーディングされたピクチャのすべてのスライスヘッダにおいて同じである。... slice_typeは、Table 7-3(表40)に従ってスライスのコーディングタイプを指定する。
【０３５８】
【表４０】
2021534668.tif 000069
【０３５９】
nal_unit_typeがIRAP_NUTに等しい、すなわち、ピクチャがIRAPピクチャであるとき、slice_typeは、2に等しい。... slice_pic_order_cnt_lsbは、現在のピクチャに関するピクチャ順序カウントのモジュロMaxPicOrderCntLsbを指定する。slice_pic_order_cnt_lsbシンタックス要素の長さは、log2_max_pic_order_cnt_lsb_minus4 + 4ビットである。slice_pic_order_cnt_lsbの値は、0およびMaxPicOrderCntLsb - 1を含んで0からMaxPicOrderCntLsb - 1までの範囲内にある。slice_pic_order_cnt_lsbが存在しないとき、slice_pic_order_cnt_lsbは、0に等しいと推測される。1に等しいnum_ref_idx_active_override_flagは、シンタックス要素num_ref_idx_active_minus1[0]がPおよびBスライスに関して存在することと、シンタックス要素num_ref_idx_active_minus1[1]がBスライスに関して存在することとを指定する。0に等しいnum_ref_idx_active_override_flagは、シンタックス要素num_ref_idx_active_minus1[0]およびnum_ref_idx_active_minus1[1]が存在しないことを指定する。num_ref_idx_active_minus1[i]は、存在するとき、変数NumRefIdxActive[i]の値を次のように指定する。
NumRefIdxActive[i] = num_ref_idx_active_minus1[i] + 1
【０３６０】
num_ref_idx_active_minus1[i]の値は、0および14を含んで0から14までの範囲内にある。NumRefIdxActive[i]の値 - 1は、スライスを復号するために使用される可能性がある参照ピクチャリストiに関する最大の参照インデックスを指定する。NumRefIdxActive[i]の値が0に等しいとき、参照ピクチャリストiに関する参照インデックスは、スライスを復号するために使用されない可能性がある。0または1に等しいiに関して、現在のスライスがBスライスであり、num_ref_idx_active_override_flagが0に等しいとき、NumRefIdxActive[i]は、num_ref_idx_default_active_minus1[i] + 1に等しいと推測される。現在のスライスがPスライスであり、num_ref_idx_active_override_flagが0に等しいとき、NumRefIdxActive[0]は、num_ref_idx_default_active_minus1[0] + 1に等しいと推測される。現在のスライスがPスライスであるとき、NumRefIdxActive[1]は、0に等しいと推測される。現在のスライスがIスライスであるとき、NumRefIdxActive[0]とNumRefIdxActive[1]との両方は、0に等しいと推測される。代替的に、0または1に等しいiに関して、以上の後、以下のことが適用される。rplsIdx1がref_pic_list_sps_flag[i] ? ref_pic_list_idx[i] : num_ref_pic_lists_in_sps[i]に等しいように設定され、numRpEntries[i]がnum_strp_entries[i][rplsIdx1] + num_ltrp_entries[i][rplsIdx1]に等しいものとする。NumRefIdxActive[i]がnumRpEntries[i]よりも大きいとき、NumRefIdxActive[i]の値は、numRpEntries[i]に等しいように設定される。
【０３６１】
参照ピクチャリスト構造のセマンティクス
【０３６２】
ref_pic_list_struct(listIdx)シンタックス構造は、スライスヘッダ内に存在する可能性がある。ref_pic_list_struct(listIdx)シンタックス構造がスライスヘッダ内に存在する場合、ref_pic_list_struct(listIdx)シンタックス構造は、現在のピクチャ(スライスを含むピクチャ)の参照ピクチャリストのlistIdxを指定する。num_ref_entries[listIdx]は、ref_pic_list_struct(listIdx)シンタックス構造のエントリの数を指定する。変数NumEntriesInList[listIdx]は、次のように導出される。
NumRefPicEntriesInRpl[listIdx] = num_ref_entries[listIdx]
【０３６３】
NumRefPicEntries[listIdx]の値は、0およびsps_max_dec_pic_buffering_minus1を含んで0からsps_max_dec_pic_buffering_minus1までの範囲内にある。poc_ref_lsb[listIdx][i]は、ref_pic_list_struct(listIdx)シンタックス構造のi番目のエントリによって参照されるピクチャのピクチャ順序カウントのモジュロMaxRefPicOrderCntLsbの値を指定する。poc_ref_lsb[listIdx][i]シンタックス要素の長さは、Log2(MaxRefPicOrderCntLsb)ビットである。
【０３６４】
復号プロセスが、検討される。
【０３６５】
全体的復号プロセス
【０３６６】
復号プロセスは、現在のピクチャCurrPicに関して以下のように動作する。NALユニットの復号が、下で規定される。下のプロセスは、スライスヘッダレイヤ以上のシンタックス要素を使用して以下の復号プロセスを規定する。ピクチャ順序カウントに関連する変数および関数が、導出される。これは、ピクチャの最初のスライスに関してのみ呼び出される必要がある。非IRAPピクチャの各スライスに関する復号プロセスの初めに、参照ピクチャリストの構築のための復号プロセスが、参照ピクチャリスト0(RefPicList[0])および参照ピクチャリスト1(RefPicList[1])の導出のために呼び出される。参照ピクチャのマーキングのための復号プロセスが、呼び出され、参照ピクチャが、「参照のために使用されない」と印を付けられる可能性がある。これは、ピクチャの最初のスライスに関してのみ呼び出される必要がある。コーディングツリーユニット、スケーリング、変換、ループ内フィルタリングなどのための復号プロセスが、呼び出される。現在のピクチャのすべてのスライスが復号された後、現在の復号されたピクチャが、「参照のために使用される」と印を付けられる。
【０３６７】
NALユニット復号プロセス
【０３６８】
このプロセスへの入力は、現在のピクチャのNALユニットおよびそれらの関連する非VCL NALユニットである。このプロセスの出力は、NALユニットにカプセル化された解析されたRBSPシンタックス構造である。各NALユニットに関する復号プロセスは、NALユニットからRBSPシンタックス構造を抽出し、それから、RBSPシンタックス構造を解析する。
【０３６９】
スライス復号プロセス
【０３７０】
ピクチャ順序カウントに関する復号プロセス
【０３７１】
このプロセスの出力は、PicOrderCntVal、現在のピクチャのピクチャ順序カウントである。ピクチャ順序カウントは、マージモードおよび動きベクトルの予測において動きパラメータを導出するためおよびデコーダの準拠の検査のためにピクチャを特定するために使用される。それぞれのコーディングされたピクチャは、PicOrderCntValと表されるピクチャ順序カウント変数に関連付けられる。現在のピクチャがIRAPピクチャでないとき、変数prevPicOrderCntLsbおよびprevPicOrderCntMsbは、以下のように導出される。prevTid0Picが、0に等しいTemporalIdを有する、復号の順序で前のピクチャであるものとする。変数prevPicOrderCntLsbは、prevTid0Picのslice_pic_order_cnt_lsbに等しいように設定される。変数prevPicOrderCntMsbは、prevTid0PicのPicOrderCntMsbに等しいように設定される。現在のピクチャの変数PicOrderCntMsbは、次のように導出される。現在のピクチャがIRAPピクチャである場合、PicOrderCntMsbは、0に等しいように設定される。そうでない場合、PicOrderCntMsbは、以下のように導出される。
if( ( slice_pic_order_cnt_lsb < prevPicOrderCntLsb ) && ( ( prevPicOrderCntLsb - slice_pic_order_cnt_lsb ) >= ( MaxPicOrderCntLsb / 2 ) ) )
PicOrderCntMsb = prevPicOrderCntMsb + MaxPicOrderCntLsb
else if( (slice_pic_order_cnt_lsb > prevPicOrderCntLsb ) && ( ( slice_pic_order_cnt_lsb - prevPicOrderCntLsb ) > ( MaxPicOrderCntLsb / 2 ) ) )
PicOrderCntMsb = prevPicOrderCntMsb - MaxPicOrderCntLsb
else
PicOrderCntMsb = prevPicOrderCntMsb
【０３７２】
PicOrderCntValは、次のように導出される。
PicOrderCntVal = PicOrderCntMsb + slice_pic_order_cnt_lsb
【０３７３】
slice_pic_order_cnt_lsbがIRAPピクチャに関して0であると推測され、prevPicOrderCntLsbとprevPicOrderCntMsbとの両方が0に等しいように設定されるので、すべてのIRAPピクチャは、0に等しいPicOrderCntValを持つ。PicOrderCntValの値は、-231および231 - 1を含んで-231から231 - 1までの範囲内にある。1つのCVSにおいては、いかなる2つのコーディングされたピクチャに関するPicOrderCntVal値も、同じでない。復号プロセス中の任意の瞬間に、DPB内のいかなる2つの参照ピクチャに関するPicOrderCntVal & ( MaxRefPicOrderCntLsb - 1 )の値も、同じでない。
【０３７４】
関数PicOrderCnt(picX)が、次のように指定される。
PicOrderCnt(picX) =ピクチャpicXのPicOrderCntVal
【０３７５】
関数DiffPicOrderCnt(picA, picB)が、次のように指定される。
DiffPicOrderCnt(picA, picB) = PicOrderCnt(picA) - PicOrderCnt(picB)
【０３７６】
ビットストリームは、-215および215 - 1を含む-215から215 - 1までの範囲内にない、復号プロセスにおいて使用されるDiffPicOrderCnt(picA, picB)の値をもたらすデータを含まない。Xが現在のピクチャであり、YおよびZが同じCVS内の2つのその他のピクチャであるものとして、YおよびZは、DiffPicOrderCnt(X, Y)とDiffPicOrderCnt(X, Z)との両方が正であるかまたは両方が負であるとき、Xから同じ出力順序の方向にあると考えられる。
【０３７７】
参照ピクチャリストの構築のための復号プロセス
【０３７８】
このプロセスは、非IRAPピクチャの各スライスに関する復号プロセスの初めに呼び出される。参照ピクチャは、参照インデックスによってアドレス指定される。参照インデックスは、参照ピクチャリストへのインデックスである。Iスライスを復号するとき、参照ピクチャリストは、スライスデータの復号において使用されない。Pスライスを復号するとき、参照ピクチャリスト0(すなわち、RefPicList[0])のみが、スライスデータの復号において使用される。Bスライスを復号するとき、参照ピクチャリスト0と参照ピクチャリスト1(すなわち、RefPicList[1])との両方が、スライスデータの復号において使用される。非IRAPピクチャの各スライスに関する復号プロセスの初めに、参照ピクチャリストRefPicList[0]およびRefPicList[1]が、導出される。参照ピクチャリストは、参照ピクチャのマーキングにおいてまたはスライスデータの復号において使用される。ピクチャの最初のスライスでない非IRAPピクチャのIスライスに関して、RefPicList[0]およびRefPicList[1]が、ビットストリームの準拠の検査の目的で導出される可能性があるが、それらの導出は、現在のピクチャまたは復号の順序で現在のピクチャの後に続くピクチャの復号のために必要でない。ピクチャの最初のスライスでないPスライスに関して、RefPicList[1]が、ビットストリームの準拠の検査の目的で導出される可能性があるが、その導出は、現在のピクチャまたは復号の順序で現在のピクチャの後に続くピクチャの復号のために必要でない。参照ピクチャリストRefPicList[0]およびRefPicList[1]は、以下のように構築される。
for( i = 0; i < 2; i++ ) {
for( j = 0, pocBase = PicOrderCntVal; j < NumEntriesInList[i]; j++ ) {
if( PicOrderCntVal & ( MaxRefPicOrderCntLsb - 1 )がpoc_ref_lsb[i][j]に等しいDPB内の参照picAが存在する )
RefPicList[i][j] = picA
else
RefPicList[i][j] = "no reference picture"
}
}
【０３７９】
0または1に等しい各iに関して、RefPicList[i]の最初のNumRefIdxActive[i]個のエントリが、RefPicList[i]のアクティブなエントリと呼ばれ、RefPicList[i]のその他のエントリは、RefPicList[i]の非アクティブなエントリと呼ばれる。特定のピクチャが、RefPicList[0]のエントリとRefPicList[1]のエントリとの両方によって参照されることが可能である。特定のピクチャが、RefPicList[0]の2つ以上のエントリによってまたはRefPicList[1]の2つ以上のエントリによって参照されることも可能である。RefPicList[0]のアクティブなエントリおよびRefPicList[1]のアクティブなエントリは、現在のピクチャおよび復号の順序で現在のピクチャの後に続く1つまたは複数のピクチャのインター予測のために使用される可能性があるすべての参照ピクチャを集合的に指す。RefPicList[0]の非アクティブなエントリおよびRefPicList[1]の非アクティブなエントリは、現在のピクチャのインター予測のために使用されないが、復号の順序で現在のピクチャの後に続く1つまたは複数のピクチャのインター予測において使用される可能性があるすべての参照ピクチャを集合的に指す。対応するピクチャがDPB内に存在しないので「no reference picture」に等しいRefPicList[0]またはRefPicList[1]の1つまたは複数のエントリが、存在する可能性がある。「no reference picture」に等しいRefPicList[0]またはRefPicList[0]のそれぞれの非アクティブなエントリは、無視されるべきである。「no reference picture」に等しいRefPicList[0]またはRefPicList[1]のそれぞれのアクティブなエントリに関しては、意図しないピクチャの喪失が、推測されるべきである。
【０３８０】
以下の制約が適用されることが、ビットストリームの準拠の要件である。0または1に等しい各iに関して、NumEntriesInList[i]が、NumRefIdxActive[i]以上である。RefPicList[0]またはRefPicList[1]のそれぞれのアクティブなエントリによって参照されるピクチャが、DPB内に存在し、現在のピクチャのTemporalId以下のTemporalIdを有する。任意で、以下の制約が、さらに指定される可能性がある。RefPicList[0]またはRefPicList[1]のいかなる非アクティブなエントリのエントリインデックスも、現在のピクチャの復号のための参照インデックスとして使用されない。任意で、以下の制約が、さらに指定される可能性がある。RefPicList[0]またはRefPicList[1]の非アクティブなエントリが、RefPicList[0]またはRefPicList[1]のいかなるその他のエントリとも同じピクチャを参照しない。現在のピクチャ自体が、RefPicList[0]またはRefPicList[1]のいかなるエントリによっても参照されない。現在のピクチャのPicOrderCntValとエントリによって参照されるピクチャのPicOrderCntValとの間の差が224以上であるRefPicList[0]またはRefPicList[1]のエントリが、存在しない。setOfRefPicsは、RefPicList[0]のすべてのエントリおよびRefPicList[1]のすべてのエントリによって参照される一意のピクチャのセットであるものとする。setOfRefPics内のピクチャの数が、sps_max_dec_pic_buffering_minus1以下であり、setOfRefPicsが、ピクチャのすべてのスライスに関して同じである。
【０３８１】
参照ピクチャのマーキングのための復号プロセス
【０３８２】
このプロセスは、スライスヘッダの復号およびスライスに関する参照ピクチャリストの構築のための復号プロセスの後であるが、スライスデータの復号の前に、ピクチャ毎に1回呼び出される。このプロセスは、DPB内の1つまたは複数の参照ピクチャが「参照のために使用されない」と印を付けられる結果をもたらす可能性がある。DPB内の復号されたピクチャは、「参照のために使用されない」または「参照のために使用される」として、ただし、復号プロセスの動作中の任意の所与の瞬間にこれら2つのうちのただ1つとして印を付けられ得る。ピクチャにこれらのマーキングのうちの1つを割り振ることは、該当する場合、これらのマーキングのうちの別のマーキングを暗黙的に削除する。現在のピクチャがIRAPピクチャであるとき、現在DPB内にあるすべての参照ピクチャ(もしあれば)は、「参照のために使用されない」と印を付けられる。DPB内の参照ピクチャは、それらのPicOrderCntVal値のLog2(MaxRefPicOrderCntLsb) LSBによって特定される。RefPicList[0]またはRefPicList[1]のいかなるエントリによっても参照されないDPB内の各参照ピクチャは、「参照のために使用されない」と印を付けられる。
【０３８３】
さらに別の代替的な実施形態
【０３８４】
このセクションは、「短期的参照ピクチャと長期的参照ピクチャとを区別するようにして常にスライスヘッダ内で参照ピクチャリストをシグナリングすること」と呼ばれる上で詳細に説明された手法の代替的な実施形態を説明する。この代替的な実施形態においては、スライスヘッダ内で、HEVCまたは上述の手法と同様に、POC MSBサイクルが各LTRPエントリに関してシグナリングされる可能性があり、以下の制約が取り除かれる。復号プロセス中の任意の瞬間に、DPB内のいかなる2つの参照ピクチャに関するPicOrderCntVal & ( MaxLtPicOrderCntLsb - 1 )の値も、同じでない。
【０３８５】
図6は、本開示の実施形態によるビデオコーディングデバイス600(たとえば、ビデオエンコーダ20またはビデオデコーダ30)の概略図である。ビデオコーディングデバイス600は、本明細書において説明されたように開示された実施形態を実装するのに好適である。ビデオコーディングデバイス600は、データを受信するための着信ポート610および受信機ユニット(Rx)620、データを処理するためのプロセッサ、論理ユニット、または中央演算処理装置(CPU)630、データを送信するための送信機ユニット(Tx)640および発信ポート650、ならびにデータを記憶するためのメモリ660を含む。ビデオコーディングデバイス600は、光または電気信号の着信または発信のために着信ポート610、受信機ユニット620、送信機ユニット640、および発信ポート650に接続された光-電気(OE)構成要素および電気-光(EO)構成要素も含む可能性がある。
【０３８６】
プロセッサ630は、ハードウェアおよびソフトウェアによって実装される。プロセッサ630は、1つまたは複数のCPUチップ、コア(たとえば、マルチコアプロセッサとして)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、およびデジタル信号プロセッサ(DSP)として実装される可能性がある。プロセッサ630は、着信ポート610、受信機ユニット620、送信機ユニット640、発信ポート650、およびメモリ660と通信する。プロセッサ630は、コーディングモジュール670を含む。コーディングモジュール670は、上述の開示された実施形態を実装する。たとえば、コーディングモジュール670は、様々なネットワーキング機能を実装するか、処理するか、準備するか、または提供する。したがって、コーディングモジュール670を含むことは、ビデオコーディングデバイス600の機能を大幅に改善し、ビデオコーディングデバイス600の異なる状態への転換を実現する。代替的に、コーディングモジュール670は、メモリ660に記憶され、プロセッサ630によって実行される命令として実装される。
【０３８７】
ビデオコーディングデバイス600は、ユーザにおよびユーザからデータを伝達するための入力および/または出力(I/O)デバイス680も含む可能性がある。I/Oデバイス680は、ビデオデータを表示するためのディスプレイ、オーディオデータを出力するためのスピーカなどの出力デバイスを含む可能性がある。I/Oデバイス680は、キーボード、マウス、トラックボールなどの入力デバイス、および/またはそのような出力デバイスとインタラクションするための対応するインターフェースも含む可能性がある。
【０３８８】
メモリ660は、1つまたは複数のディスク、テープドライブ、およびソリッドステートドライブを含み、プログラムが実行するために選択されるときにそのようなプログラムを記憶するためならびにプログラムの実行中に読まれる命令およびデータを記憶するためのオーバーフローデータストレージデバイス(over-flow data storage device)として使用される可能性がある。メモリ660は、揮発性および/または不揮発性である可能性があり、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、3値連想メモリ(TCAM: ternary content-addressable memory)、および/またはスタティックランダムアクセスメモリ(SRAM)である可能性がある。
【０３８９】
図7は、コーディングのための手段700の実施形態の概略図である。実施形態において、コーディングのための手段700は、ビデオコーディングデバイス702(たとえば、ビデオエンコーダ20またはビデオデコーダ30)に実装される。ビデオコーディングデバイス702は、受信手段701を含む。受信手段701は、符号化するピクチャを受信するかまたは復号するビットストリームを受信するように構成される。ビデオコーディングデバイス702は、受信手段701に接続された送信手段707を含む。送信手段707は、ビットストリームをデコーダに送信するかまたは復号された画像を表示手段(たとえば、I/Oデバイス680のうちの1つ)に送信するように構成される。
【０３９０】
ビデオコーディングデバイス702は、記憶手段703を含む。記憶手段703は、受信手段701または送信手段707のうちの少なくとも一方に接続される。記憶手段703は、命令を記憶するように構成される。ビデオコーディングデバイス702は、処理手段705も含む。処理手段705は、記憶手段703に接続される。処理手段705は、本明細書において開示された方法を実行するための、記憶手段703に記憶された命令を実行するように構成される。
【０３９１】
いくつかの実施形態が本開示において与えられたが、開示されたシステムおよび方法は、本開示の精神または範囲を逸脱することなく多くのその他の特定の形態で具現化される可能性があることを理解されたい。これらの例は、例示的であって限定的でないと考えられるべきであり、意図は、本明細書において与えられた詳細に限定されるべきでない。たとえば、様々な要素もしくは構成要素が、組み合わされるかもしくは別のシステムに統合される可能性があり、または特定の特徴が、省略されるかもしくは実装されない可能性がある。
【０３９２】
加えて、様々な実施形態において分離しているまたは別々であるものとして説明され、図示された技術、システム、サブシステム、および方法は、本開示の範囲を逸脱することなくその他のシステム、モジュール、技術、または方法と組み合わされるかまたは統合される可能性がある。互いに結合されるかもしくは直接結合されるか、または互いに通信しているものとして示されたかまたは検討されたその他のものが、電気的であるか、機械的であるか、またはそれ以外であるかにかかわらず何らかのインターフェース、デバイス、または中間構成要素を通じて間接的に結合されるかまたは通信している可能性がある。変更、置き換え、および改変のその他の例が、当業者によって突き止められる可能性があり、本明細書において開示された精神および範囲を逸脱することなくなされる可能性がある。
【符号の説明】
【０３９３】
10  コーディングシステム
12  送信元デバイス
14  送信先デバイス
16  コンピュータ可読媒体
18  ビデオソース
20  ビデオエンコーダ
22  出力インターフェース
28  入力インターフェース
30  ビデオデコーダ
32  ディスプレイデバイス
40  モード選択ユニット
42  動き推定ユニット
44  動き補償ユニット
46  イントラ予測ユニット
48  区分けユニット
50  加算器
52  変換処理ユニット
54  量子化ユニット
56  エントロピーコーディングユニット
58  逆量子化ユニット
60  逆変換ユニット
62  加算器
64  参照フレームメモリ
70  エントロピー復号ユニット
72  動き補償ユニット
74  イントラ予測ユニット
76  逆量子化ユニット
78  逆変換ユニット
80  加算器
82  参照フレームメモリ
400  参照ピクチャセット(RPS)
402  サブセット
500  方法
600  ビデオコーディングデバイス
610  着信ポート
620  受信機ユニット(Rx)
630  プロセッサ、論理ユニット、中央演算処理装置(CPU)
640  送信機ユニット(Tx)
650  発信ポート
660  メモリ
670  コーディングモジュール
680  入力および/または出力(I/O)デバイス
700  コーディングのための手段
701  受信手段
702  ビデオコーディングデバイス
703  記憶手段
705  処理手段
707  送信手段
【図１】
2021534668.tif 000070
【図２】
2021534668.tif 000071
【図３】
2021534668.tif 000072
【図４】
2021534668.tif 000073
【図５】
2021534668.tif 000074
【図６】
2021534668.tif 000075
【図７】
2021534668.tif 000076
【手続補正書】
【提出日】令和3年4月9日(2021.4.9)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本開示は、概して、ビデオコーディングにおける参照ピクチャの管理のための技術に関する。より詳細には、本開示は、参照ピクチャリストの構築および参照ピクチャのマーキングのための技術を説明する。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデコーダによって実施される、コーディングされたビデオビットストリームを復号する方法であって、
前記コーディングされたビデオビットストリーム内に示されたパラメータセットを解析するステップであって、前記パラメータセットが、参照ピクチャリストシンタックス構造のセットを含む、ステップと、
前記コーディングされたビデオビットストリーム内に示された現在のスライスのスライスヘッダを解析するステップであって、前記スライスヘッダが、前記パラメータセット内の参照ピクチャリストシンタックス構造の前記セットのうちの参照ピクチャリストシンタックス構造のインデックスを含む、ステップと、
参照ピクチャリストシンタックス構造の前記セットおよび前記参照ピクチャリストシンタックス構造の前記インデックスに基づいて前記現在のスライスの参照ピクチャリストを導出するステップと、
前記参照ピクチャリストに基づいて前記現在のスライスの少なくとも1つの再構築されたブロックを取得するステップと
を含む方法。
【請求項２】
前記参照ピクチャリストシンタックス構造のエントリの順序が、前記参照ピクチャリスト内の対応する参照ピクチャの順序と同じであり、前記参照ピクチャリストシンタックス構造の各エントリが、前記参照ピクチャリスト内の対応する参照ピクチャを記述する、請求項1に記載の方法。
【請求項３】
前記少なくとも1つの再構築されたブロックが、電子デバイスのディスプレイに表示される画像を生成するために使用される、請求項1または2に記載の方法。
【請求項４】
前記参照ピクチャリストが、前記少なくとも1つの再構築されたブロックのインター予測のために使用される参照ピクチャのリストを含む、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記現在のスライスが、PスライスまたはBスライスである、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記パラメータセットが、シーケンスパラメータセット(SPS)を含む、請求項1から5のいずれか一項に記載の方法。
【請求項７】
前記パラメータセットからのシンタックス要素のセットが、ネットワーク抽象化レイヤ(NAL)ユニットの未加工バイトシーケンスペイロード(RBSP)に配置される、請求項1から6のいずれか一項に記載の方法。
【請求項８】
コーディングされたビデオビットストリームを受信するように構成された受信機と、
前記受信機に接続されたメモリであって、命令を記憶するメモリと、
前記メモリに接続されたプロセッサであって、前記メモリに記憶された前記命令を実行するように構成されたプロセッサと
を含み、
前記命令は、前記プロセッサに、
前記コーディングされたビデオビットストリーム内に示されたパラメータセットを解析することであって、前記パラメータセットが、参照ピクチャリストシンタックス構造のセットを含む、ことと、
前記コーディングされたビデオビットストリーム内に示された現在のスライスのスライスヘッダを解析することであって、前記スライスヘッダが、前記パラメータセット内の参照ピクチャリストシンタックス構造の前記セットのうちの参照ピクチャリストシンタックス構造のインデックスを含む、ことと、
参照ピクチャリストシンタックス構造の前記セットおよび前記参照ピクチャリストシンタックス構造の前記インデックスに基づいて前記現在のスライスの参照ピクチャリストを導出することと、
前記参照ピクチャリストに基づいて前記現在のスライスの少なくとも1つの再構築されたブロックを取得することと
を行わせる、復号デバイス。
【請求項９】
前記少なくとも1つの再構築されたブロックに基づいて画像を表示するように構成されたディスプレイ
をさらに含む、請求項8に記載の復号デバイス。
【請求項１０】
ビデオエンコーダによって実施される、コーディングされたビデオビットストリームを符号化する方法であって、
現在のスライスに対する参照ピクチャリストを構築するステップと、
前記参照ピクチャリストに基づいて前記現在のスライスの少なくとも1つの再構築されたブロックを取得するステップと、
前記コーディングされたビットストリームにおいて、前記現在のスライスの参照ピクチャリストシンタックス構造のインデックスをスライスヘッダに符号化するステップであって、前記参照ピクチャリストシンタックス構造が、前記参照ピクチャリストのエントリを導出するために使用されるエントリの数を含み、前記参照ピクチャリストシンタックス構造が、前記コーディングされたビデオビットストリームのパラメータセット内の参照ピクチャリストシンタックス構造のセットのうちの1つである、ステップと
を含む方法。
【請求項１１】
符号化デバイスであって、
命令を記憶したメモリと、
前記メモリに接続されたプロセッサであって、前記メモリに記憶された前記命令を実行するように構成されたプロセッサと
を含み、
前記命令は、前記プロセッサに、
現在のスライスに対する参照ピクチャリストを構築することと、
前記参照ピクチャリストに基づいて前記現在のスライスの少なくとも1つの再構築されたブロックを取得することと、
コーディングされたビットストリームにおいて、前記現在のスライスの参照ピクチャリストシンタックス構造のインデックスをスライスヘッダに符号化することであって、前記参照ピクチャリストシンタックス構造が、前記参照ピクチャリストのエントリを導出するために使用されるエントリの数を含み、前記参照ピクチャリストシンタックス構造が、前記コーディングされたビデオビットストリームのパラメータセット内の参照ピクチャリストシンタックス構造のセットのうちの1つである、ことと
を行わせる、符号化デバイス。
【請求項１２】
符号化されたビットストリームを記憶した非一時的な記憶媒体であって、
前記ビットストリームは、ビデオ信号または画像信号の現在のピクチャを複数のスライスに分割することによって生成され、現在のスライスのスライスヘッダおよび前記現在のスライスを表すデータを含み、
前記スライスヘッダは、参照ピクチャリストシンタックス構造のインデックスを含み、
前記参照ピクチャリストシンタックス構造が、参照ピクチャリストのエントリを導出するために使用されるエントリの数を含み、
前記参照ピクチャリストシンタックス構造が、コーディングされたビデオビットストリームのパラメータセット内の参照ピクチャリストシンタックス構造のセットのうちの1つである、非一時的な記憶媒体。
【請求項１３】
請求項10に記載の方法を実行するための処理回路を含む、エンコーダ。
【請求項１４】
請求項1から7のいずれか一項に記載の方法を実行するための処理回路を含む、デコーダ。
【請求項１５】
コンピュータまたはプロセッサで実行されたとき、請求項1から7のいずれか一項に記載の方法を実行するためのプログラムコードを含む、コンピュータプログラム。
【請求項１６】
コンピュータまたはプロセッサで実行されたとき、請求項10に記載の方法を実行するためのプログラムコードを含む、コンピュータプログラム。
【請求項１７】
コンピュータデバイスによって実行されたとき、前記コンピュータデバイスに、請求項1から7のいずれか一項に記載の方法を実行させるプログラムコードを記憶した、非一時的なコンピュータ可読記憶媒体。
【請求項１８】
コンピュータデバイスによって実行されたとき、前記コンピュータデバイスに、請求項10に記載の方法を実行させるプログラムコードを記憶した、非一時的なコンピュータ可読記憶媒体。
【請求項１９】
復号するビットストリームを受信するように構成された受信機と、
前記受信機に接続された送信機であって、復号された画像をディスプレイに送信するように構成された送信機と、
前記受信機または前記送信機のうちの少なくとも一方に接続されたメモリであって、命令を記憶するように構成されたメモリと、
前記メモリに接続されたプロセッサであって、前記メモリに記憶された前記命令を実行して、請求項1から7のいずれか一項または請求項10に記載の方法を実行するように構成されたプロセッサと
を含む、コーディング装置。
【請求項２０】
復号するビットストリームを受信するように構成された受信手段と、
前記受信手段に接続された送信手段であって、復号された画像を表示手段に送信するように構成された送信手段と、
前記受信手段または前記送信手段のうちの少なくとも一方に接続された記憶手段であって、命令を記憶するように構成された記憶手段と、
前記記憶手段に接続された処理手段であって、前記記憶手段に記憶された前記命令を実行して、請求項1から7のいずれか一項または請求項10に記載の方法を実行するように構成された処理手段と
を含む、コーディングのための手段。
【国際調査報告】
2021534668.tif 000077
2021534668.tif 000078