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

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

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

特開2023-164845ビデオエンコーダ、ビデオデコーダ、及び対応する方法
<>
  • 特開-ビデオエンコーダ、ビデオデコーダ、及び対応する方法 図1
  • 特開-ビデオエンコーダ、ビデオデコーダ、及び対応する方法 図2
  • 特開-ビデオエンコーダ、ビデオデコーダ、及び対応する方法 図3
  • 特開-ビデオエンコーダ、ビデオデコーダ、及び対応する方法 図4
  • 特開-ビデオエンコーダ、ビデオデコーダ、及び対応する方法 図5
  • 特開-ビデオエンコーダ、ビデオデコーダ、及び対応する方法 図6
  • 特開-ビデオエンコーダ、ビデオデコーダ、及び対応する方法 図7
  • 特開-ビデオエンコーダ、ビデオデコーダ、及び対応する方法 図8
  • 特開-ビデオエンコーダ、ビデオデコーダ、及び対応する方法 図9
  • 特開-ビデオエンコーダ、ビデオデコーダ、及び対応する方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023164845
(43)【公開日】2023-11-14
(54)【発明の名称】ビデオエンコーダ、ビデオデコーダ、及び対応する方法
(51)【国際特許分類】
   H04N 19/70 20140101AFI20231107BHJP
   H04N 19/52 20140101ALI20231107BHJP
【FI】
H04N19/70
H04N19/52
【審査請求】有
【請求項の数】12
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023133172
(22)【出願日】2023-08-17
(62)【分割の表示】P 2021539073の分割
【原出願日】2020-01-03
(31)【優先権主張番号】62/788,634
(32)【優先日】2019-01-04
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Blu-ray
(71)【出願人】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
【住所又は居所原語表記】Huawei Administration Building, Bantian, Longgang District, Shenzhen, Guangdong 518129, P.R. China
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ヘンドリー,フヌ
(72)【発明者】
【氏名】ワン,イエクォイ
(57)【要約】
【課題】 ビデオデコーダによって実施されるコーディングしたビデオビットストリームを復号化する方法が提供される。
【解決手段】 この方法は、ビデオデコーダの受信機が、第1のサブピクチャ及び第2のサブピクチャを含む混合イントラ・ランダムアクセスポイント(IRAP)ピクチャを受信するステップであって、第1のサブピクチャはIRAPピクチャであり、第2のサブピクチャは非IRAPサブピクチャである、受信するステップと;受信機が、混合IRAPピクチャの参照ピクチャリスト(RPL)を受信するステップと;ビデオデコーダのプロセッサが、RPLを使用して第2のサブピクチャを復号化するステップと;プロセッサが、復号化した第2のサブピクチャに基づいて画像を生成するステップと;を含む。対応する符号化方法も提供される。
【選択図】図7
【特許請求の範囲】
【請求項1】
ビデオデコーダによって実施されるコーディングしたビデオビットストリームを復号化する方法であって、当該方法は、
第1のサブピクチャ(502)及び第2のサブピクチャ(504)を含む混合イントラ・ランダムアクセスポイント(IRAP)ピクチャ(500)のコーディングしたデータを含む前記コーディングしたビデオビットストリーム(600)を受信するステップであって、前記第1のサブピクチャ(502)はIRAPサブピクチャであり、前記第2のサブピクチャ(504)は非IRAPサブピクチャであり、前記第1のサブピクチャは、瞬時デコードリフレッシュ(IDR)ネットワーク抽象化レイヤ(NAL)ユニットタイプ又はクリーンランダムアクセス(CRA)NALユニットタイプを有する第1のネットワーク抽象化レイヤ(NAL)のセット内に含まれる前記IRAPサブピクチャであり、及び前記第2のサブピクチャは、トレイリング(trailing)NALユニットタイプを有する第2のNALユニットのセット内に含まれる前記非IRAPサブピクチャである、ステップと、
前記コーディングしたデータから前記第2のサブピクチャの参照ピクチャリスト(RPL)を取得するステップと、
前記RPLを使用して前記第2のサブピクチャを復号化するステップと、
該復号化した第2のサブピクチャに基づいて前記混合IRAPピクチャを生成するステップと、を含む、
方法。
【請求項2】
前記混合IRAPピクチャの前記コーディングしたデータは、第1のサブビットストリーム(602)及び第2のサブビットストリーム(604)を含む分割ビットストリームで受信される、請求項1に記載の方法。
【請求項3】
前記第1のサブピクチャは第1のサブビットストリームに配置され、前記第2のサブピクチャは第2のサブビットストリームに配置される、請求項1又は2に記載の方法。
【請求項4】
ビデオエンコーダ(20)によって実施されるビデオビットストリームを符号化する方法であって、当該方法は、
混合イントラ・ランダムアクセスポイント(IRAP)ピクチャの第2のサブピクチャに対する参照ピクチャリスト(RPL)を取得するステップであって、前記混合IRAPピクチャは第1のサブピクチャをさらに含み、該第1のサブピクチャはIRAPサブピクチャであり、前記第2のサブピクチャは非IRAPサブピクチャであり、前記第1のサブピクチャは、瞬時デコードリフレッシュ(IDR)ネットワーク抽象化レイヤ(NAL)ユニットタイプ又はクリーンランダムアクセス(CRA)NALユニットタイプを有する第1のネットワーク抽象化レイヤ(NAL)ユニットのセット内に含まれる前記IRAPサブピクチャであり、及び前記第2のサブピクチャは、トレイリングNALユニットタイプを有する第2のNALユニットのセット内に含まれる前記非IRAPサブピクチャである、ステップと、
前記混合IRAPピクチャをコーディングされるビデオビットストリームに符号化するステップと、
前記RPLを前記コーディングされるビデオビットストリームに符号化するステップと、を含む、
方法。
【請求項5】
前記ビデオエンコーダ(20)のメモリに、ビデオデコーダ(30)に向けて送信するための前記ビットストリームを格納するステップをさらに含む、請求項4に記載の方法。
【請求項6】
復号化装置であって、当該復号化装置は、
コーディングしたビデオビットストリームを受信するように構成された受信機であって、前記コーディングしたビデオビットストリームは、
第1のサブピクチャ及び第2のサブピクチャを含む混合イントラ・ランダムアクセスポイント(IRAP)ピクチャのコーディングしたデータと、
前記第2のサブピクチャに対する参照ピクチャリスト(RPL)のコーディングしたデータと、を含み、
前記第1のサブピクチャはIRAPサブピクチャであり、前記第2のサブピクチャは非IRAPサブピクチャであり、前記第1のサブピクチャは、瞬時デコードリフレッシュ(IDR)ネットワーク抽象化レイヤ(NAL)ユニットタイプ又はクリーンランダムアクセス(CRA)NALユニットタイプを有する第1のネットワーク抽象化レイヤ(NAL)ユニットのセット内に含まれる前記IRAPサブピクチャであり、及び前記第2のサブピクチャは、トレイリングNALユニットタイプを有する第2のNALユニットのセット内に含まれる前記非IRAPサブピクチャである、受信機と、
該受信機に結合され、命令を記憶するメモリと、
該メモリに結合されたプロセッサと、を含み、
該プロセッサは、前記命令を実行して当該復号化装置に、
前記RPLを使用して前記第2のサブピクチャを復号化することと、
該復号化した第2のサブピクチャに基づいて前記混合IRAPピクチャを生成することと、を行わせるように構成される、
復号化装置。
【請求項7】
画像を表示するように構成されたディスプレイをさらに含む、請求項6に記載の復号化装置。
【請求項8】
符号化装置であって、当該符号化装置は、
命令を含むメモリと、
該メモリに結合されたプロセッサと、を含み、
該プロセッサは、前記命令を実行して当該符号化装置に、
混合イントラ・ランダムアクセスポイント(IRAP)ピクチャの第2のサブピクチャに対する参照ピクチャリスト(RPL)を取得することであって、前記混合IRAPピクチャは第1のサブピクチャをさらに含み、前記第1のサブピクチャはIRAPサブピクチャであり、前記第2のサブピクチャは非IRAPサブピクチャであり、前記第1のサブピクチャは、瞬時デコードリフレッシュ(IDR)ネットワーク抽象化レイヤ(NAL)ユニットタイプ又はクリーンランダムアクセス(CRA)NALユニットタイプを有する第1のネットワーク抽象化レイヤ(NAL)ユニットのセット内に含まれる前記IRAPサブピクチャであり、及び前記第2のサブピクチャは、トレイリングNALユニットタイプを有する第2のNALユニットのセット内に含まれる前記非IRAPサブピクチャである、ことと、
前記混合IRAPピクチャをコーディングされるビデオビットストリームに符号化することと、
前記RPLを前記コーディングされるビデオビットストリームに符号化することと、を行わせるように構成される、
符号化装置。
【請求項9】
ビデオデコーダ(30)に向けて送信するために、前記ビットストリームを前記メモリに記憶することをさらに含む、請求項8に記載の符号化装置。
【請求項10】
前記プロセッサに接続され、ビデオデコーダ(30)に向けて前記ビットストリームを送信するように構成された送信機をさらに含む、請求項8又は9に記載の符号化装置。
【請求項11】
プログラムコードを含む非一時的なコンピュータ可読媒体であって、前記プログラムコードがコンピュータ装置によって実行されると、該コンピュータ装置に請求項1乃至5のいずれか一項に記載の方法を実行させる、
非一時的なコンピュータ可読媒体。
【請求項12】
コンピュータ又はプロセッサ上で実行されると、請求項1乃至5のいずれか一項に記載の方法を実行するためのプログラムコードを含むコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
概して、本開示は、ビデオコーディングにおけるサブピクチャベースのランダムアクセスをサポートするための技術を説明する。より具体的には、本開示は、ピクチャが、イントラ・ランダムアクセスポイントとして識別される1つ又は複数の領域と、同時に、非イントラ・ランダムアクセスポイントとして識別される残りの領域とを含むことを可能にするための技術を説明する。
【背景技術】
【0002】
比較的短いビデオでさえ描写するのに必要なビデオデータの量はかなりの量になる可能性があり、これは、帯域幅容量が限られた状況の通信ネットワークを介してデータをストリーミング又は他に通信するときに困難性を生じさせる可能性がある。こうして、ビデオデータは、現代の電気通信ネットワークを介して通信される前に通常圧縮される。ビデオを記憶装置に格納する場合に、メモリリソースが制限され得るため、ビデオのサイズも問題になる可能性がある。ビデオ圧縮装置は、大抵の場合、送信又は格納の前にビデオデータをコーディングするために送信元(source:ソース)でソフトウェア及び/又はハードウェアを使用し、それによりデジタルビデオ画像を表すために必要なデータの量を減らす。次に、圧縮したデータは、宛先(destination:送信先)でビデオデータを復号化するビデオ解凍装置によって受信される。ネットワークリソースが限られており、より高いビデオ品質に対する要求が益々高まっているため、画質を殆ど又は全く犠牲にすることなく圧縮率を高める改善した圧縮及び解凍技術が望まれている。
【発明の概要】
【0003】
第1の態様は、ビデオデコーダによって実施されるコーディングしたビデオビットストリームを復号化する方法に関する。この方法は、ビデオデコーダの受信機が、第1のサブピクチャ(sub-picture)及び第2のサブピクチャを含む混合イントラ・ランダムアクセスポイント(IRAP)ピクチャを受信するステップであって、第1のサブピクチャはIRAPピクチャであり、第2のサブピクチャは非IRAPサブピクチャである、受信するステップと;受信機が、混合IRAPピクチャの参照ピクチャリスト(RPL)を受信するステップと;ビデオデコーダのプロセッサが、RPLを使用して第2のサブピクチャを復号化するステップと;プロセッサが、復号化した第2のサブピクチャに基づいて画像(image)を生成するステップと;を含む。
【0004】
従来のコーディング技術は、IRAPピクチャがRPLを参照及び利用するのを許容しないが、本明細書で開示する技術は、IRAPピクチャ、特に混合IRAPピクチャがRPLを参照及び利用するのを許容する。従って、混合IRAPピクチャがIRAPサブピクチャを含む場合でも、コーデックは、RPLを参照及び利用して、非IRAPサブピクチャをコーディングすることが許容される。これは、VRコーディングアプリケーションで特に有益である。そのため、ビデオコーディングのコーダ/デコーダ(別名「コーデック」)は、現在のコーデックに比べて改善される。実際には、改善したビデオコーディングプロセスは、ビデオを送信、受信、及び/又は表示するときにより良いユーザ体験をユーザに提供する。
【0005】
第1の態様自体による方法の第1の実施態様では、混合IRAPピクチャは、第1のサブビットストリーム及び第2のサブビットストリームを含む分割ビットストリームで受信される。
【0006】
第1の態様自体による方法の第2の実施態様、又は第1の態様の任意の先行する実施態様では、第1のサブピクチャは、第1のサブビットストリームに配置され、第2のサブピクチャは、第2のサブビットストリームに配置される。
【0007】
第1の態様自体による方法の第3の実施態様、又は第1の態様の任意の先行する実施態様では、IRAPピクチャは、瞬時デコーダリフレッシュ(IDR)ピクチャである。
【0008】
第1の態様自体による方法の第4の実施態様、又は第1の態様の任意の先行する実施態様では、第1のサブピクチャは、第1のネットワーク抽象化レイヤ(NAL)ユニット内に含まれるIRAPピクチャであり、第2のサブピクチャは、第2のNALユニット内に含まれる非IRAPサブピクチャである。
【0009】
第1の態様自体による方法の第5の実施態様、又は第1の態様の任意の先行する実施態様では、方法は、ビットストリーム内のフラグを受信するステップをさらに含み、フラグは、ビットストリームに任意の混合IRAPピクチャが含まれるかどうかを示す。
【0010】
第1の態様自体による方法の第6の実施態様、又は第1の態様の任意の先行する実施態様では、フラグは、ビットストリームのシーケンスパラメータセット(SPS)内にある。
【0011】
第1の態様自体による方法の第7の実施態様、又は第1の態様の任意の先行する実施態様では、フラグは、sps_mixed_tile_groups_in_pic_flagと指定される。
【0012】
第2の態様は、ビデオエンコーダによって実施されるビデオビットストリームを符号化する方法に関する。この方法は、ビデオエンコーダのプロセッサが、第1のサブピクチャ及び第2のサブピクチャを含む混合イントラ・ランダムアクセスポイント(IRAP)ピクチャを符号化するステップであって、第1のサブピクチャはIRAPピクチャであり、第2のサブピクチャは非IRAPサブピクチャである、符号化するステップと;プロセッサが、混合IRAPピクチャの参照ピクチャリスト(RPL)を符号化するステップと;プロセッサが、混合IRAPピクチャ及び混合IRAPピクチャに対応するRPLを含むビットストリームを生成するステップと;ビデオデコーダに向けて送信するためのビットストリームをビデオエンコーダのメモリに格納するステップと;を含む。
【0013】
従来のコーディング技術は、IRAPピクチャがRPLを参照及び利用するのを許容しないが、本明細書で開示する技術は、IRAPピクチャ、特に混合IRAPピクチャがRPLを参照及び利用するのを許容する。従って、混合IRAPピクチャがIRAPサブピクチャを含む場合でも、コーデックは、RPLを参照及び利用して、非IRAPサブピクチャをコーディングすることが許容される。これは、VRコーディングアプリケーションで特に有益である。そのため、ビデオコーディングのコーダ/デコーダ(別名「コーデック」)は、現在のコーデックに比べて改善される。実際には、改善したビデオコーディングプロセスは、ビデオを送信、受信、及び/又は表示するときにより良いユーザ体験をユーザに提供する。
【0014】
第2の態様自体による方法の第1の実施態様では、混合IRAPピクチャは、第1のサブビットストリーム及び第2のサブビットストリームを含む分割ビットストリームに符号化される。
【0015】
第2の態様自体による方法の第2の実施態様、又は第2の態様の任意の先行する実施態様では、第1のサブピクチャは、第1のサブビットストリームに符号化され、第2のサブピクチャは、第2のサブビットストリームに符号化される。
【0016】
第2の態様自体による方法の第3の実施態様、又は第2の態様の任意の先行する実施態様では、IRAPピクチャは、瞬時デコーダリフレッシュ(IDR)ピクチャである。
【0017】
第2の態様自体による方法の第4の実施態様、又は第2の態様の任意の先行する実施態様では、第1のサブピクチャは、第1のネットワーク抽象化レイヤ(NAL)ユニット内に含まれるIRAPピクチャであり、第2のサブピクチャは、第2のNALユニット内に含まれる非IRAPサブピクチャである。
【0018】
第2の態様自体による方法の第5の実施態様、又は第2の態様の任意の先行する実施態様では、方法は、ビットストリーム内でフラグを符号化するステップをさらに含み、フラグは、ビットストリームに任意の混合IRAPピクチャが含まれるかどうかを示す。
【0019】
第2の態様自体による方法の第6の実施態様、又は第2の態様の任意の先行する実施態様では、フラグは、ビットストリームのシーケンスパラメータセット(SPS)内にある。
【0020】
第2の態様自体による方法の第7の実施形態、又は第2の態様の任意の先行する実施態様では、フラグは、sps_mixed_tile_groups_in_pic_flagと指定される。
【0021】
第3の態様は、復号化装置に関する。復号化装置は、受信機と;受信機に結合されるメモリと;メモリに結合されるプロセッサと;を含み、受信機は、第1のサブピクチャ及び第2のサブピクチャを含む混合イントラ・ランダムアクセスポイント(IRAP)ピクチャと、混合IRAPピクチャの参照ピクチャリスト(RPL)とを含むコーディングしたビデオビットストリームを受信するように構成され、第1のサブピクチャはIRAPピクチャであり、第2のサブピクチャは非IRAPサブピクチャであり、メモリは命令を格納し、プロセッサは、命令を実行して復号化装置に、RPLを使用して第2のサブピクチャを復号化すること、及び復号化した第2のサブピクチャに基づいて画像を生成すること、を行わせるように構成される。
【0022】
従来のコーディング技術は、IRAPピクチャがRPLを参照及び利用するのを許容しないが、本明細書で開示する復号化装置は、IRAPピクチャ、特に混合IRAPピクチャがRPLを参照及び利用するのを許容する。従って、混合IRAPピクチャがIRAPサブピクチャを含む場合でも、コーデックは、RPLを参照及び利用して、非IRAPサブピクチャをコーディングすることが許容される。これは、VRコーディングアプリケーションで特に有益である。そのため、ビデオコーディングのコーダ/デコーダ(別名「コーデック」)は、現在のコーデックに比べて改善される。実際には、改善したビデオコーディングプロセスは、ビデオを送信、受信、及び/又は表示するときにより良いユーザ体験をユーザに提供する。
【0023】
第3の態様自体による復号化装置の第1の実施態様では、復号化装置は、画像を表示するように構成されるディスプレイをさらに含む。
【0024】
第3の態様自体による復号化装置の第2の実施態様、又は第3の態様の任意の先行する実施態様では、受信機は、第1のサブビットストリーム及び第2のサブビットストリームを含む分割ビットストリームで混合IRAPピクチャを受信するように構成される。
【0025】
第3の態様自体による復号化装置の第3の実施態様、又は第3の態様の任意の先行する実施態様では、第1のサブピクチャは、第1のサブビットストリームに配置され、第2のサブピクチャは、第2のサブビットストリームに配置される。
【0026】
第3の態様自体による復号化装置の第4の実施態様、又は第3の態様の任意の先行する実施態様では、IRAPピクチャは、瞬時デコーダリフレッシュ(IDR)ピクチャである。
【0027】
第4の態様は、符号化装置に関する。符号化装置は、命令を含むメモリと、メモリに結合されるプロセッサとを含み、プロセッサは、命令を実行して符号化装置に、第1のサブピクチャ及び第2のサブピクチャを含む混合イントラ・ランダムアクセスポイント(IRAP)ピクチャを符号化することであって、第1のサブピクチャはIRAPピクチャであり、第2のサブピクチャは非IRAPサブピクチャである、符号化すること;混合IRAPピクチャの参照ピクチャリスト(RPL)を符号化すること;混合IRAPピクチャ及び混合IRAPピクチャに対応するRPLを含むビットストリームを生成すること;及びビデオデコーダに向けて送信するためのビットストリームをメモリに格納すること:を行わせるように構成される。
【0028】
従来のコーディング技術は、IRAPピクチャがRPLを参照及び利用するのを許容しないが、本明細書で開示する符号化装置は、IRAPピクチャ、特に混合IRAPピクチャがRPLを参照及び利用するのを許容する。従って、混合IRAPピクチャがIRAPサブピクチャを含む場合でも、コーデックは、RPLを参照及び利用して、非IRAPサブピクチャをコーディングすることが許容される。これは、VRコーディングアプリケーションで特に有益である。そのため、ビデオコーディングのコーダ/デコーダ(別名「コーデック」)は、現在のコーデックに比べて改善される。実際には、改善したビデオコーディングプロセスは、ビデオを送信、受信、及び/又は表示するときにより良いユーザ体験をユーザに提供する。
【0029】
第4の態様自体による符号化装置の第1の実施態様では、符号化装置は、プロセッサに結合される送信機をさらに含み、送信機は、ビットストリームをビデオデコーダに向けて送信するように構成される。
【0030】
第4の態様自体による符号化装置の第2の実施態様では、混合IRAPピクチャは、第1のサブビットストリーム及び第2のサブビットストリームを含む分割ビットストリームに符号化される。
【0031】
第4の態様自体による符号化装置の第3の実施態様では、第1のサブピクチャは、第1のサブビットストリームで符号化され、第2のサブピクチャは、第2のサブビットストリームで符号化される。
【0032】
第4の態様自体による符号化装置の第4の実施態様では、IRAPピクチャは、瞬時デコーダリフレッシュ(IDR)ピクチャである。
【0033】
第5の態様は、コーディング機器に関する。コーディング機器は、符号化すべきピクチャを受信する、又は復号化すべきビットストリームを受信するように構成される受信機と;受信機に結合される送信機であって、ビットストリームをデコーダに送信する、又は復号化した画像をディスプレイに送信するように構成される送信機と;受信機又は送信機の少なくとも一方に結合されるメモリであって、命令を格納するように構成されるメモリと;メモリに結合されるプロセッサであって、メモリに格納された命令を実行して、本明細書に記載の方法を実行するように構成されるプロセッサと;を含む。
【0034】
従来のコーディング技術は、IRAPピクチャがRPLを参照及び利用するのを許容しないが、本明細書で開示するコーディング機器は、IRAPピクチャ、特に混合IRAPピクチャがRPLを参照及び利用するのを許容する。従って、混合IRAPピクチャがIRAPサブピクチャを含む場合でも、コーデックは、RPLを参照及び利用して、非IRAPサブピクチャをコーディングすることが許容される。これは、VRコーディングアプリケーションで特に有益である。そのため、ビデオコーディングのコーダ/デコーダ(別名「コーデック」)は、現在のコーデックに比べて改善される。実際には、改善したビデオコーディングプロセスは、ビデオを送信、受信、及び/又は表示するときにより良いユーザ体験をユーザに提供する。
【0035】
第6の態様は、システムに関する。システムは、エンコーダと、エンコーダと通信するデコーダと、を含み、エンコーダ又はデコーダは、本明細書で開示する復号化装置、符号化装置、又はコーディング機器を含む。
【0036】
従来のコーディング技術は、IRAPピクチャがRPLを参照及び利用するのを許容しないが、本明細書で開示するシステムは、IRAPピクチャ、特に混合IRAPピクチャがRPLを参照及び利用するのを許容する。従って、混合IRAPピクチャがIRAPサブピクチャを含む場合でも、コーデックは、RPLを参照及び利用して、非IRAPサブピクチャをコーディングすることが許容される。これは、VRコーディングアプリケーションで特に有益である。そのため、ビデオコーディングのコーダ/デコーダ(別名「コーデック」)は、現在のコーデックに比べて改善される。実際には、改善したビデオコーディングプロセスは、ビデオを送信、受信、及び/又は表示するときにより良いユーザ体験をユーザに提供する。
【0037】
第7の態様は、コーディングのための手段に関する。コーディングのための手段は、復号化すべきビットストリームを受信するように構成される受信手段と;受信手段に結合される送信手段であって、復号化した画像を表示手段に送信するように構成される送信手段と;受信手段又は送信手段の少なくとも一方に結合される記憶手段であって、命令を記憶するように構成される記憶手段と;記憶手段に結合される処理手段であって、記憶手段に記憶された命令を実行して、本明細書で開示する方法を実行するように構成された処理手段と;を含む。
【0038】
従来のコーディング技術は、IRAPピクチャがRPLを参照及び利用するのを許容しないが、本明細書に開示するコーディングのための手段は、IRAPピクチャ、特に混合IRAPピクチャがRPLを参照及び利用するのを許容する。従って、混合IRAPピクチャがIRAPサブピクチャを含む場合でも、コーデックは、RPLを参照及び利用して、非IRAPサブピクチャをコーディングすることが許容される。これは、VRコーディングアプリケーションで特に有益である。そのため、ビデオコーディングのコーダ/デコーダ(別名「コーデック」)は、現在のコーデックに比べて改善される。実際には、改善したビデオコーディングプロセスは、ビデオを送信、受信、及び/又は表示するときにより良いユーザ体験をユーザに提供する。
【0039】
第8の態様は、復号化装置に関する。復号化装置は、コーディングしたビデオビットストリームを受信するように構成される受信機と;受信機に結合されるプロセッサと;を含み、プロセッサは、コーディングしたビデオビットストリーム内のフラグを解析することであって、フラグの値は、コーディングしたビデオビットストリーム内のピクチャが混合ネットワーク抽象化レイヤ(NAL)ユニットタイプを含むことを示す、解析すること;フラグの値に基づいて、ピクチャを非イントラ・ランダムアクセスポイント(IRAP)ピクチャとして復号化すること;及び復号化したピクチャに基づいて画像を生成すること;を行うように構成される。
【0040】
本明細書で開示する復号化装置によって、復号化装置が、コーディングしたビデオビットストリーム内のどのピクチャに混合ネットワーク抽象化レイヤ(NAL)ユニットタイプが含まれるかを識別するのを可能にする。つまり、復号化装置は、コーディングしたビデオビットストリーム内のフラグを解析して、ピクチャに混合NALユニットタイプが含まれていることを特定するように構成される。ピクチャがIRAP NALユニットタイプを含む場合でも、ピクチャは、フラグの値に基づいて非IRAPピクチャとして復号化される。
【0041】
第8の態様自体による符号化装置の第1の実施態様では、ピクチャがIRAP NALユニットタイプを含む場合に、ピクチャは非IRAPピクチャとして復号化される。
【0042】
第8の態様自体による符号化装置の第2の実施態様では、フラグの値は1である。
【0043】
実際には、改善したビデオコーディングプロセスは、ビデオを送信、受信、及び/又は表示するときにより良いユーザ体験をユーザに提供する。
【図面の簡単な説明】
【0044】
本開示のより完全な理解のために、ここで、添付の図面及び詳細な説明に関連して解釈される以下の簡単な説明が参照され、同様の参照番号は同様の部分を表す。
図1】双方向予測技術を利用することができる例示的なコーディングシステムを示すブロック図である。
図2】双方向予測技術を実施することができる例示的なビデオエンコーダを示すブロック図である。
図3】双方向予測技術を実施することができるビデオデコーダの一例を示すブロック図である。
図4】エントリがRPSの全てのサブセットにある現在のピクチャを有する参照ピクチャセット(RPS)を示す概略図である。
図5】VRコーディングアプリケーションでの使用に適したピクチャの一実施形態の概略図である。
図6図5のピクチャに対応するビデオビットストリームの一実施形態の概略図である。
図7】コーディングしたビデオビットストリームを復号化する方法の一実施形態である。
図8】ビデオビットストリームを符号化する方法の一実施形態である。
図9】ビデオコーディング装置の概略図である。
図10】コーディングするための手段の一実施形態の概略図である。
【発明を実施するための形態】
【0045】
以下は、本明細書で使用する様々な略語:コーディングしたビデオシーケンス(CVS)、復号化したピクチャバッファ(DPB)、瞬時復号化リフレッシュ(IDR)、イントラ・ランダムアクセスポイント(IRAP)、最下位ビット(LSB)、最上位ビット(MSB)、ネットワーク抽象化レイヤ(NAL)、ピクチャ順序カウント(POC)、RBSP(Raw Byte Sequence Payload)、シーケンスパラメータセット(SPS)、及び作業文書(WD)である。
【0046】
図1は、本明細書で説明するようなビデオコーディング技術を利用することができる例示的なコーディングシステム10を示すブロック図である。図1に示されるように、コーディングシステム10は、送信元装置12を含み、送信元装置12は、宛先装置14によって後で復号化される符号化ビデオデータを提供する。特に、送信元装置12は、コンピュータ可読媒体16を介してビデオデータを宛先装置14に提供することができる。送信元装置12及び宛先装置14は、デスクトップコンピュータ、ノートブック(例えば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォン等の電話ハンドセット、いわゆる「スマート」パッド、テレビ、カメラ、表示装置、デジタルメディアプレイヤ、ビデオゲームコンソール、ビデオストリーミング装置等を含む広範囲の装置のいずれかを含み得る。場合によっては、送信元装置12及び宛先装置14は、無線通信のために装備され得る。
【0047】
宛先装置14は、コンピュータ可読媒体16を介して復号化すべき符号化ビデオデータを受信することができる。コンピュータ可読媒体16は、符号化ビデオデータを送信元装置12から宛先装置14に移動させることができる任意のタイプの媒体又は装置を含み得る。一例では、コンピュータ可読媒体16は、送信元装置12が符号化ビデオデータを宛先装置14にリアルタイムで直接送信するのを可能にする通信媒体を含み得る。符号化ビデオデータは、無線通信プロトコル等の通信規格に従って変調され、宛先装置14に送信され得る。通信媒体は、無線周波数(RF)スペクトル或いは1つ又は複数の物理的な伝送ライン等の、任意の無線又は有線通信媒体を含み得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットのようなグローバルネットワーク等のパケットベースのネットワークの一部を形成することができる。通信媒体は、ルータ、スイッチ、基地局、又は送信元装置12から宛先装置14への通信を容易にするのに役立ち得る任意の他の機器を含み得る。
【0048】
いくつかの例では、符号化データは、出力インターフェイス22から記憶装置に出力され得る。同様に、符号化データは、入力インターフェイスによって記憶装置からアクセスされ得る。記憶装置には、ハードドライブ、Blu-rayディスク、デジタルビデオディスク(DVD)、コンパクトディスク読取り専用メモリ(CD-ROM)、フラッシュメモリ、揮発性又は不揮発性メモリ、又は符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体等、様々な分散型又はローカルアクセス型のデータ記憶媒体のいずれかが含まれ得る。更なる例では、記憶装置は、送信元装置12によって生成された符号化したビデオを記憶し得るファイルサーバ又は別の中間記憶装置に対応し得る。宛先装置14は、ストリーミング又はダウンロードを介して記憶装置から記憶したビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを格納し、その符号化ビデオデータを宛先装置14に送信することができる任意のタイプのサーバであり得る。ファイルサーバの例には、(例えば、ウェブサイトのための)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続ストレージ(NAS)装置、又はローカルディスクドライブが含まれる。宛先装置14は、インターネット接続を含む任意の標準データ接続を介して、符号化ビデオデータにアクセスすることができる。これには、無線チャネル(例えば、Wi-Fi接続)、有線接続(例えば、デジタル加入者線(DSL)、ケーブルモデム等)、又はファイルサーバに格納した符号化ビデオデータへのアクセスに適した両方の組合せが含まれ得る。記憶装置からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、又はこれらの組合せであり得る。
【0049】
本開示の技術は、必ずしも無線アプリケーション又は設定に限定されない。この技術は、地上波テレビ放送、ケーブルテレビ送信、衛星テレビ送信、HTTPを介した動的適応ストリーミング(DASH)等のインターネットストリーミングビデオ送信、データ記憶媒体上に符号化したデジタルビデオ、データ記憶媒体に記憶したデジタルビデオの復号化、又は他のアプリケーション等、様々なマルチメディアアプリケーションのいずれかをサポートするビデオコーディングに適用できる。いくつかの例では、コーディングシステム10は、ビデオストリーミング、ビデオ再生、ビデオ放送、及び/又はテレビ電話等のアプリケーションをサポートするために、一方向又は双方向のビデオ送信をサポートするように構成され得る。
【0050】
図1の例では、送信元装置12は、ビデオソース18、ビデオエンコーダ20、及び出力インターフェイス22を含む。宛先装置14は、入力インターフェイス28、ビデオデコーダ30、及び表示装置32を含む。本開示によれば、送信元装置12のビデオエンコーダ20及び/又は宛先装置14のビデオデコーダ30は、ビデオコーディングのための技術を適用するように構成され得る。他の例では、送信元装置及び宛先装置は、他のコンポーネント又は構成を含み得る。例えば、送信元装置12は、外部カメラ等の外部ビデオソースからビデオデータを受信することができる。同様に、宛先装置14は、統合した表示装置を含むのではなく、外部表示装置とインターフェイスすることができる。
【0051】
図1の図示するコーディングシステム10は、単なる一例である。ビデオコーディングの技術は、任意のデジタルビデオ符号化及び/又は復号化装置によって実行することができる。本開示の技術は、概して、ビデオコーディング装置によって実行されるが、この技術は、典型的には「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。さらに、本開示の技術は、ビデオ・プリプロセッサによっても実行され得る。ビデオエンコーダ及び/又はデコーダは、グラフィックス処理装置(GPU)又は同様の装置であり得る。
【0052】
送信元装置12及び宛先装置14は、送信元装置12がコーディングしたビデオデータを生成して宛先装置14に送信する、そのようなコーディング装置の単なる例である。いくつかの例では、送信元装置12及び宛先装置14は、送信元装置及び宛先装置12、14のそれぞれがビデオ符号化及び復号化コンポーネントを含むように、実質的に対称に動作し得る。このため、コーディングシステム10は、例えば、ビデオストリーミング、ビデオ再生、ビデオ放送、又はテレビ電話のために、ビデオ装置12、14の間の一方向又は双方向のビデオ送信をサポートすることができる。
【0053】
送信元装置12のビデオソース18は、ビデオカメラ等のビデオ取込み装置、以前に取り込んだビデオを含むビデオアーカイブ、及び/又はビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェイスを含み得る。更なる代替として、ビデオソース18は、ソースビデオとして、又はライブビデオ、アーカイブ化したビデオ、及びコンピュータで生成したビデオの組合せとして、コンピュータグラフィックスベースのデータを生成することができる。
【0054】
場合によっては、ビデオソース18がビデオカメラである場合に、送信元装置12及び宛先装置14は、いわゆるカメラ付き携帯電話又はビデオ電話を形成し得る。しかしながら、上述したように、本開示で説明する技術は、概して、ビデオコーディングに適用可能であり得、そして無線及び/又は有線アプリケーションに適用され得る。いずれの場合にも、取り込んだ、予め取り込んだ、又はコンピュータで生成したビデオは、ビデオエンコーダ20によって符号化され得る。次に、符号化したビデオ情報は、出力インターフェイス22によってコンピュータ可読媒体16に出力され得る。
【0055】
コンピュータ可読媒体16は、無線放送又は有線ネットワーク送信等の一時的な媒体、又はハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu-rayディスク、又は他のコンピュータ可読媒体等の記憶媒体(すなわち、非一時的な記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、送信元装置12から符号化ビデオデータを受信し、符号化ビデオデータを例えばネットワーク送信を介して宛先装置14に提供することができる。同様に、ディスクスタンピング設備等の媒体生産設備のコンピューティング装置は、送信元装置12から符号化ビデオデータを受信し、符号化ビデオデータを含むディスクを生成することができる。従って、コンピュータ可読媒体16は、様々な例において、様々な形態の1つ又は複数のコンピュータ可読媒体を含むと理解され得る。
【0056】
宛先装置14の入力インターフェイス28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ブロック及び他のコーディングしたユニット、例えばピクチャ(picture)のグループ(GOP)の特性及び/又は処理を記述する構文要素を含む、ビデオエンコーダ20によって規定される構文情報を含み得、この構文情報はビデオデコーダ30によっても使用される。表示装置32は、復号化ビデオデータをユーザに表示し、ブラウン管(CRT)、液晶ディスプレイ(LDC)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、又は別のタイプの表示装置等の様々な表示装置のいずれかを含み得る。
【0057】
ビデオエンコーダ20及びビデオデコーダ30は、現在開発中の高効率ビデオコーディング(HEVC)規格等のビデオコーディング規格に従って動作することができ、HEVCテストモデル(HM)に準拠することができる。あるいはまた、ビデオエンコーダ20及びビデオデコーダ30は、国際電気通信連合電気通信標準化セクタ(ITU-T)H.264規格、あるいはまたMPEG(Moving Picture Expert Group)4、パート10、AVC(Advanced Video Coding)、H.265/HEVCと呼ばれる他の独占技術(proprietary)又は工業規格、又はそのような規格等の拡張に従って動作することができる。しかしながら、本開示の技術は、任意の特定のコーディング規格に限定されない。ビデオコーディング規格の他の例には、MPEG-2及びITU-T H.263が含まれる。図1には示されないが、いくつかの態様では、ビデオエンコーダ20及びビデオデコーダ30はそれぞれオーディオエンコーダ及びデコーダと統合され得、共通のデータストリーム又は個別のデータストリームにおいてオーディオとビデオと両方の符号化を処理するために、適切なマルチプレクサ-デマルチプレクサ(MUX-DEMUX)ユニット、又は他のハードウェア及びソフトウェアを含み得る。該当する場合に、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、又はユーザデータグラムプロトコル(UDP)等の他のプロトコルに準拠し得る。
【0058】
ビデオエンコーダ20及びビデオデコーダ30はそれぞれ、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組合せ等の様々な適切なエンコーダ回路のいずれかとして実装され得る。技術がソフトウェアで部分的に実装される場合に、装置は、ソフトウェアの命令を適切な非一時的なコンピュータ可読媒体に格納し、1つ又は複数のプロセッサを使用して命令をハードウェアで実行して、本開示の技術を実行することができる。ビデオエンコーダ20及びビデオデコーダ30のそれぞれは、1つ又は複数のエンコーダ又はデコーダに含まれ得、それらエンコーダ又はデコーダのいずれかは、それぞれの装置で組み合わされたエンコーダ/デコーダ(コーデック)の一部として統合され得る。ビデオエンコーダ20及び/又はビデオデコーダ30を含む装置は、集積回路、マイクロプロセッサ、及び/又は携帯電話等の無線通信装置を含み得る。
【0059】
図2は、ビデオコーディング技術を実施することができるビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラ(intra)コーディング及びインター(inter)コーディングを実行することができる。イントラコーディングは、空間的予測に依拠して、所与のビデオフレーム又はピクチャ内のビデオの空間的冗長性を低減又は除去する。インターコーディングは、時間予測に依拠して、ビデオシーケンスの隣接するフレーム又はピクチャ内のビデオの時間的冗長性を低減又は除去する。イントラモード(Iモード)は、いくつかの空間ベースのコーディングモードのいずれかを指し得る。単方向(別名、ユニ予測)予測(Pモード)又は双方向予測(別名、バイ予測)(Bモード)等のインターモードは、いくつかの時間ベースのコーディングモードのいずれかを指し得る。
【0060】
図2に示されるように、ビデオエンコーダ20は、符号化すべきビデオフレーム内の現在のビデオブロックを受信する。図2の例では、ビデオエンコーダ20は、モード選択ユニット40、参照フレームメモリ64、加算器(summer)50、変換処理ユニット52、量子化ユニット54、及びエントロピーコーディングユニット56を含む。次に、モード選択ユニット40は、動き補償ユニット44、動き推定ユニット42、イントラ予測(別名、イントラ予測)ユニット46、及びパーティションユニット48を含む。ビデオブロック再構成のために、ビデオエンコーダ20は、逆量子化ユニット58、逆変換ユニット60、及び加算器62も含む。デブロッキングフィルタ(図2に示されない)を含めて、ブロック境界をフィルタ処理して、再構成したビデオからブロック性アーチファクトを除去することもできる。必要に応じて、デブロッキングフィルタは、典型的に、加算器62の出力をフィルタ処理するだろう。デブロッキングフィルタに加えて、追加のフィルタ(インループ(in loop)又はポストループ(post loop))を使用してもよい。このようなフィルタは簡潔にするために示してないが、必要に応じて、加算器50の出力を(インループフィルタとして)フィルタ処理することができる。
【0061】
符号化プロセス中に、ビデオエンコーダ20は、符号化すべきビデオフレーム又はスライスを受信する。フレーム又はスライスは、複数のビデオブロックに分割され得る。動き推定ユニット42及び動き補償ユニット44は、1つ又は複数の参照フレーム内の1つ又は複数のブロックに対して受信したビデオブロックのインター予測コーディングを実行して、時間的予測を提供する。あるいはまた、イントラ予測ユニット46は、コーディングすべきブロックと同じフレーム又はスライス内の1つ又は複数の隣接するブロックに対して受信したビデオブロックのイントラ予測コーディングを実行して、空間的予測を提供することができる。ビデオエンコーダ20は、例えば、ビデオデータの各ブロックに対して適切なコーディングモードを選択するために、複数のコーディングパスを実行することができる。
【0062】
さらに、パーティションユニット48は、以前のコーディングパスにおける以前のパーティション分割スキームの評価に基づいて、ビデオデータのブロックをサブブロックにパーティション分割することができる。例えば、パーティションユニット48は、最初にフレーム又はスライスを最大のコーディングユニット(LCU)にパーティション分割し、レート歪み解析(例えば、レート歪み最適化)に基づいて、LCUのそれぞれをサブコーディングユニット(サブCU)にパーティション分割することができる。モード選択ユニット40は、LCUのサブCUへのパーティション分割を示す四分木データ構造をさらに生成することができる。四分木のリーフノードCUには、1つ又は複数の予測ユニット(PU)及び1つ又は複数の変換ユニット(TU)が含まれ得る。
【0063】
本開示は、「ブロック」という用語を使用して、HEVCの文脈におけるCU、PU、又はTUのいずれか、又は他の規格の文脈における同様のデータ構造(例えば、H.264/AVCにおけるそのマクロブロック及びサブブロック)を指す。CUには、コーディングノード、PU、及びコーディングノードに関連するTUが含まれる。CUのサイズは、コーディングノードのサイズに対応し、形状が正方形である。CUのサイズは、8×8ピクセルから、最大64×64ピクセル以上のツリーブロックのサイズまでの範囲になり得る。各CUには、1つ又は複数のPU及び1つ又は複数のTUが含まれ得る。CUに関連する構文データは、例えば、CUを1つ又は複数のPUにパーティション分割することを記述し得る。パーティション分割モードは、CUがスキップ又は直接モードで符号化されているか、イントラ予測モードで符号化されているか、又はインター予測(別名、インター予測)モードで符号化されているかによって異なる場合がある。PUは、形状が非正方形になるようにパーティション分割され得る。CUに関連する構文データは、例えば、四分木に従ってCUを1つ又は複数のTUにパーティション分割することも記述し得る。TUは、形状が正方形又は非正方形(例えば、長方形)であり得る。
【0064】
モード選択ユニット40は、例えば、エラー結果に基づいて、イントラ又はインターコーディングモードの1つを選択して、結果として生じるイントラ又はインターコーディングしたブロックを加算器50に提供して残余ブロックデータを生成し、及び結果として生じるイントラ又はインターコーディングしたブロックを加算器62に提供して符号化したブロックを再構成して参照フレームとして使用することができる。モード選択ユニット40は、動きベクトル、イントラモードインジケータ、パーティション情報、及び他のそのような構文情報等の構文要素を、エントロピー符号化ユニット56にも提供する。
【0065】
動き推定ユニット42及び動き補償ユニット44は、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在のビデオフレーム又はピクチャ内のビデオブロックのPUの、現在のフレーム(又は他のコーディングされるユニット)内でコーディングされている現在のブロックに対する参照フレーム(又は他のコーディングされるユニット)内の予測ブロックに対する変位を示し得る。予測ブロックは、ピクセルの差に関して、コーディングすべきブロックと厳密に一致すると見出されたブロックであり、これは、絶対差の合計(SAD)、二乗差の合計(SSD)、又は他の差メトリックによって決定され得る。いくつかの例では、ビデオエンコーダ20は、参照フレームメモリ64に格納された参照ピクチャのサブ整数ピクセル位置の値を計算することができる。例えば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、又は他の分数のピクセル位置値を補間することができる。従って、動き推定ユニット42は、全ピクセル位置及び分数(fractional)ピクセル位置に対して動き検索を実行し、分数ピクセル精度で動きベクトルを出力することができる。
【0066】
動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングしたスライス内のビデオブロックのPUの動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)又は第2の参照ピクチャリスト(リスト1)から選択することができ、それぞれのリストによって参照フレームメモリ64に格納された1つ又は複数の参照ピクチャを識別する。動き推定ユニット42が、計算した運動ベクトルをエントロピー符号化ユニット56及び動き補償ユニット44に送信する。
【0067】
動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて予測ブロックをフェッチ又は生成することを含み得る。いくつかの例では、再び、動き推定ユニット42及び動き補償ユニット44は、機能的に統合され得る。現在のビデオブロックのPUの動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうちの1つのリストで指し示す予測ブロックの位置を特定する(locate)ことができる。加算器50は、以下で議論するように、コーディングしている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を差し引くことによって残余ビデオブロックを形成し、ピクセル差の値を形成する。一般に、動き推定ユニット42は、ルマ(luma:輝度)成分に対する動き推定を実行し、動き補償ユニット44は、前記ルマ成分に基づいてクロマ(chroma:色差)成分とルマ成分との両方について計算した動きベクトルを使用する。モード選択ユニット40は、ビデオスライスのビデオブロックを復号化する際にビデオデコーダ30によって使用される、ビデオブロック及びビデオスライスに関連する構文要素を生成することもできる。
【0068】
イントラ予測ユニット46は、上記のように、動き推定ユニット42及び動き補償ユニット44によって実行されるインター予測の代替として、現在のブロックをイントラ予測することができる。特に、イントラ予測ユニット46は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定することができる。いくつかの例では、イントラ予測ユニット46は、例えば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化することができ、イントラ予測ユニット46(又は、いくつかの例では、モード選択ユニット40)は、テストしたモードから使用すべき適切なイントラ予測モードを選択することができる。
【0069】
例えば、イントラ予測ユニット46は、テストした様々なイントラ予測モードのレート歪み解析を使用してレート歪み値を計算し、テストしたモードの中で最良のレート歪み特性を有するイントラ予測モードを選択することができる。レート歪み解析は、一般に、符号化したブロックと、この符号化したブロックを生成するために符号化した元の符号化していないブロックとの間の歪み(又はエラー)の量、及び符号化したブロックを生成するために使用されるビットレート(つまり、ビット数)を決定する。イントラ予測ユニット46は、様々な符号化したブロックの歪み及びレートから比率を計算して、どのイントラ予測モードがブロックに対して最良のレート歪み値を示すかを決定することができる。
【0070】
さらに、イントラ予測ユニット46は、深度モデリングモード(DMM)を使用して深度マップの深度ブロックをコーディングするように構成され得る。モード選択ユニット40は、例えば、レート歪み最適化(RDO)を使用して、利用可能なDMMモードがイントラ予測モード及び他のDMMモードよりも良好なコーディング結果を生成するかどうかを判定することができる。深度マップに対応するテクスチャ画像のデータは、参照フレームメモリ64に格納され得る。動き推定ユニット42及び動き補償ユニット44は、深度マップの深度ブロックをインター予測するようにも構成され得る。
【0071】
ブロックのイントラ予測モード(例えば、従来のイントラ予測モード又はDMMモードのうちの1つ)を選択した後に、イントラ予測ユニット46は、ブロックに関して選択したイントラ予測モードを示す情報をエントロピーコーディングユニット56に提供することができる。エントロピーコーディングユニット56は、選択したイントラ予測モードを示す情報を符号化することができる。ビデオエンコーダ20は、送信したビットストリーム構成データに含まれ得、この構成データには、複数のイントラ予測モードインデックステーブル及び複数の修正したイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)、様々なブロックの符号化コンテキストの規定、及び各コンテキストに使用する最も可能性の高いイントラ予測モード、イントラ予測モードインデックステーブル、及び修正したイントラ予測モードインデックステーブルの指標を含み得る。
【0072】
ビデオエンコーダ20は、モード選択ユニット40からの予測データをコーディングしている元のビデオブロックから差し引くことによって、残余ビデオブロックを形成する。加算器50は、この減算操作を行う1つ又は複数のコンポーネントを表す。
【0073】
変換処理ユニット52は、離散コサイン変換(DCT)又は概念的に類似した変換等の変換を残余ブロックに適用し、残余変換係数値を含むビデオブロックを生成する。変換処理ユニット52は、概念的にDCTと同様の他の変換を行うことができる。ウェーブレット変換、整数変換、サブバンド変換、又は他のタイプの変換も使用できる。
【0074】
変換処理ユニット52は、変換を残余ブロックに適用し、残余変換係数のブロックを生成する。変換は、残余情報をピクセル値ドメインから周波数ドメイン等の変換ドメインに変換することができる。変換処理ユニット52は、結果として得られた変換係数を量子化ユニット54に送信することができる。量子化ユニット54は、変換係数を量子化して、ビットレートをさらに低減する。量子化プロセスは、係数の一部又は全てに関連するビット深度を減らし得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、次に、量子化ユニット54は、量子化した変換係数を含むマトリックスのスキャンを実行してもよい。あるいはまた、エントロピー符号化ユニット56がスキャンを実行してもよい。
【0075】
量子化に続いて、エントロピーコーディングユニット56は、量子化した変換係数をエントロピーコーディングする。例えば、エントロピーコーディングユニット56は、コンテキスト適応可変長コーディング(CAVLC)、コンテキスト適応バイナリ算術コーディング(CABAC)、構文ベースのコンテキスト適応バイナリ算術コーディング(SBAC)、確率間隔パーティション分割エントロピー(PIPE)コーディング、又は別のエントロピーコーディング技術を実行することができる。コンテキストベースのエントロピーコーディングの場合に、コンテキストは隣接するブロックに基づき得る。エントロピーコーディングユニット56によるエントロピーコーディングに続いて、符号化したビットストリームは、別の装置(例えば、ビデオデコーダ30)に送信され得るか、又は後の送信又は検索のためにアーカイブされ得る。
【0076】
逆量子化ユニット58及び逆変換ユニット60は、それぞれ、逆量子化及び逆変換を適用して、例えば、後で参照ブロックとして使用するために、残余ブロックをピクセルドメインに再構成する。動き補償ユニット44は、参照フレームメモリ64のフレームのうちの1つのフレームの予測ブロックに残余ブロックを追加することによって参照ブロックを計算することができる。動き補償ユニット44は、1つ又は複数の補間フィルタを再構成した残余ブロックに適用して、動き推定で使用するためのサブ整数ピクセル値を計算することもできる。加算器62は、再構成した残余ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに追加して、参照フレームメモリ64に格納するための再構成したビデオブロックを生成する。再構成したビデオブロックは、動き推定ユニット42及び動き補償ユニット44によって、後続のビデオフレームでブロックをインターコーディングするための参照ブロックとして使用され得る。
【0077】
図3は、ビデオコーディング技術を実施し得るビデオデコーダ30の一例を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号化ユニット70、動き補償ユニット72、イントラ予測ユニット74、逆量子化ユニット76、逆変換ユニット78、参照フレームメモリ82、及び加算器80を含む。いくつかの例では、ビデオデコーダ30は、ビデオエンコーダ20(図2)に関して説明した符号化パスと概ね逆の復号化パスを実行する。動き補償ユニット72は、エントロピー復号化ユニット70から受信した動きベクトルに基づいて予測データを生成することができる一方、イントラ予測ユニット74は、エントロピー復号化ユニット70から受信したイントラ予測モードインジケータに基づいて予測データを生成することができる。
【0078】
復号化プロセス中に、ビデオデコーダ30は、符号化したビデオスライスのビデオブロック及び関連する構文要素を表す符号化したビデオビットストリームをビデオエンコーダ20から受信する。ビデオデコーダ30のエントロピー復号化ユニット70は、ビットストリームをエントロピー復号化して、量子化した係数、動きベクトル又はイントラ予測モードインジケータ、及び他の構文要素を生成する。エントロピー復号化ユニット70は、動きベクトル及び他の構文要素を動き補償ユニット72に転送する。ビデオデコーダ30は、構文要素をビデオスライスレベル及び/又はビデオブロックレベルで受信することができる。
【0079】
ビデオスライスがイントラコーディングした(I)スライスとしてコーディングされる場合に、イントラ予測ユニット74は、信号通知されたイントラ予測モードと、現在のフレーム又はピクチャの以前に復号化したブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックの予測データを生成し得る。ビデオフレームがインターコーディングした(例えば、B、P、又はGPB)スライスとしてコーディングされる場合に、動き補償ユニット72は、動きベクトルと、エントロピー復号化ユニット70から受信した他の構文要素とに基づいて、現在のビデオスライスのビデオブロックの予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つのリスト内の参照ピクチャのうちの1つのピクチャから生成され得る。ビデオデコーダ30は、参照フレームメモリ82に格納された参照ピクチャに基づくデフォルトの構成技術を使用して、参照フレームリスト、リスト0及びリスト1を構成することができる。
【0080】
動き補償ユニット72は、動きベクトル及び他の構文要素を解析することによって現在のビデオスライスのビデオブロックの予測情報を決定し、予測情報を使用して、復号化している現在のビデオブロックの予測ブロックを生成する。例えば、動き補償ユニット72は、受信した構文要素のいくつかを使用して、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(例えば、イントラ予測又はインター予測)、インター予測スライスタイプ(例えば、Bスライス、Pスライス、又はGPBスライス)、スライスの1つ又は複数の参照ピクチャリストの構成情報、スライスの各インターコーディングしたビデオブロックの動きベクトル、スライスの各インターコーディングしたビデオブロックのインター予測ステータス、及びビデオブロックを現在のビデオスライスで復号化するための他の情報を決定する。
【0081】
動き補償ユニット72は、補間フィルタに基づいて補間を行うこともできる。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20によって使用される補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算することができる。この場合に、動き補償ユニット72は、受信した構文要素からビデオエンコーダ20によって使用される補間フィルタを決定し、補間フィルタを使用して予測ブロックを生成することができる。
【0082】
深度マップに対応するテクスチャ画像のデータは、参照フレームメモリ82に格納され得る。動き補償ユニット72は、深度マップの深度ブロックをインター予測するようにも構成され得る。
【0083】
画像及びビデオ圧縮は、急速な成長を経ており、様々なコーディング規格につながっている。このようなビデオコーディング規格には、ITU-T H.261、ISO/IEC MPEG-1 Part2、ITU-T H.262又はISO/IEC MPEG-2 Part2、ITU-T H.263、ISO/IEC MPEG-4 Part2、ITU-T H.264又はISO/IEC MPEG-4 Part10としても知られるAVC(Advanced Video Coding)、及びITU-T H.265又はMPEG-H Part2としても知られる高効率ビデオコーディング(HEVC)が含まれる。AVCには、スケーラブルビデオコーディング(SVC)、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)等の拡張機能が含まれる。
【0084】
ITU-T及びISO/IECのJVET(joint video experts team)によって開発されている、多用途ビデオコーディング(VVC)と名付けられた新しいビデオコーディング規格もある。VVCの最新のワーキングドラフト(WD)がJVET-L1001-v1に含められ、これは、http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L1001-v11.zip.で公開されている。本明細書で開示する技術は、ITU-T及びISO/IECのJVET(joint video experts team)によるVVCの開発不足に基づいている。ただし、この技術は他のビデオ/メディアコーデック仕様にも適用される。
【0085】
ビデオコーディングの基本について議論する。
【0086】
ビデオ圧縮技術は、空間的(イントラピクチャ)予測及び/又は時間的(インターピクチャ)予測を実行して、ビデオシーケンスに固有の冗長性を低減又は除去する。ブロックベースのビデオコーディングの場合に、ビデオスライス(すなわち、ビデオピクチャ又はビデオピクチャの一部)は、ビデオブロックにパーティション分割され得、これは、ツリーブロック、コーディングツリーブロック(CTB)、コーディングツリーユニット(CTU)、コーディングユニット(CU)及び/又はコーディングノードとも呼ばれ得る。ピクチャのイントラコーディングした(I)スライスにおけるビデオブロックは、同じピクチャの隣接するブロック内の参照サンプルに関する空間的予測を使用して符号化される。ピクチャのインターコーディングした(P又はB)スライスにおけるビデオブロックは、同じピクチャの隣接するブロック内の参照サンプルに関する空間的予測、又は他の参照ピクチャ内の参照サンプルに関する時間予測を使用することができる。ピクチャはフレームと呼ばれ得、参照ピクチャは参照フレームと呼ばれ得る。
【0087】
空間的又は時間的予測は、コーディングすべきブロックの予測ブロックをもたらす。残余データは、コーディングすべき元のブロックと予測ブロックの間のピクセル差を表す。インターコーディングしたブロックは、予測ブロックを形成する参照サンプルのブロックを指し示す動きベクトル、及びコーディングしたブロックと予測ブロックの差を示す残余データに従って符号化される。イントラコーディングされるブロックは、イントラコーディングモード及び残余データに従って符号化される。さらに圧縮するために、残余データをピクセルドメインから変換ドメインに変換して、残余変換係数を生成し、次に、この残余変換係数を量子化することができる。最初に2次元アレイに配置された量子化した変換係数は、変換係数の1次元ベクトルを生成するためにスキャンされ得、エントロピーコーディングが、さらに多くの圧縮を達成するために適用され得る。
【0088】
ビデオコーディングにおけるピクチャタイプについて議論する。
【0089】
ビデオコーデック仕様では、ピクチャ識別(例えば、POC)の導出、DPBにおける参照ピクチャステータスのマーキング、DPBからのピクチャの出力等を含む、復号化プロセスを規定するために、ピクチャタイプを識別する必要がある。
【0090】
AVC及びHEVCでは、ピクチャタイプは、コーディングしたピクチャを含むNALユニットタイプから識別することができる。AVCのピクチャタイプには、IDRピクチャ及び非IDRピクチャが含まれる。一方、HEVCの主要なピクチャタイプには、トレイリング(trailing:末尾)ピクチャ、時間的サブレイヤアクセスピクチャ(TSA)、段階的時間サブレイヤアクセスピクチャ(STSA)、ランダムアクセス復号化可能リーディング(leading:先頭)ピクチャ(RADL)、ランダムアクセススキップリーディングピクチャ(RASL)、リンク切れ(broken link)アクセスピクチャ(BLA)、瞬時ランダムアクセス、及びクリーンランダムアクセスが含まれる。HEVCのこれらの主要なピクチャタイプのそれぞれについて、ピクチャは、サブレイヤ参照ピクチャ又はサブレイヤ非参照ピクチャのいずれかとしてさらに区別することができる。BLAピクチャは、リーディングピクチャを含むBLA、RADLピクチャを含むBLA、又はリーディングピクチャなしのBLAのいずれかとしてさらに区別される。IDRピクチャは、RADLピクチャを含むIDR又はリーディングピクチャなしのIDRとしてさらに区別される。
【0091】
イントラ・ランダムアクセスポイント(IRAP)ピクチャについて議論する。
【0092】
HEVCでは、IDR、BLA、及びクリーンランダムアクセス(CRA)ピクチャはまとめて、イントラ・ランダムアクセスポイント(IRAP)ピクチャと見なされる。VVCについては、2018年10月の第12回JVETミーティングで、IDRピクチャとCRAピクチャとの両方がIRAPピクチャに含まれることが合意された。
【0093】
IRAPピクチャは、以下の2つの重要な機能又は利点を提供する。第1に、IRAPピクチャの存在は、復号化プロセスがそのピクチャから開始できることを示す。この機能により、ランダムアクセス機能が可能になり、このランダムアクセス機能では、IRAPピクチャがその位置に存在する限り、復号化プロセスは、ビットストリーム内の位置で開始し、必ずしもビットストリームの先頭である必要はない。第2に、IRAPピクチャの存在は、RASLピクチャを除いて、IRAPピクチャで始まるコーディングしたピクチャが以前のピクチャを何ら参照せずにコーディングされるように、復号化プロセスをリフレッシュする。IRAPピクチャをビットストリームに存在させることで、IRAPピクチャの前にコーディングしたピクチャの復号化中に発生した可能性のある任意のエラーが、IRAPピクチャ及び復号化順にIRAPピクチャに続くそれらピクチャに伝播するのを防ぐ。
【0094】
IRAPピクチャは重要な機能を提供するが、IRAPピクチャは圧縮効率にペナルティ(penalty:不利益)を伴う可能性がある。例えば、IRAPピクチャが存在すると、ビットレートを急上昇させる可能性がある。圧縮効率のペナルティには2つの原因がある。第1に、IRAPピクチャがイントラ予測したピクチャであるため、ピクチャ自体は、他のインター予測したピクチャと比較して、表現するためにより多くのビットを必要とする。第2に、IRAPピクチャは時間的予測を狂わせる(break)。例えば、復号化プロセス中にIRAPピクチャに直面する(encountered)と、DPBがリフレッシュされ、以前の参照ピクチャが削除される。さらに、IRAPピクチャは、復号化順でIRAPピクチャに続くピクチャのコーディングの効率を低下させる。例えば、復号化順でIRAPピクチャに続くピクチャは、それらピクチャにはそれらインター予測コーディングのための参照ピクチャが少ないため、表現するためにより多くのビットを必要とする。
【0095】
IRAPピクチャと見なされるピクチャタイプの中で、HEVCのIDRピクチャは、他のピクチャタイプと比較した場合に、異なるシグナリング及び導出を有する。いくつかの差異は次の通りである。
【0096】
IDRピクチャのPOC値のシグナリング及び導出について、POCの最上位ビット(MSB)は、以前のキー(key)ピクチャから導出されない。むしろ、MSBは、単に0に等しくなるように設定される。
【0097】
IDRピクチャのスライスヘッダは、参照ピクチャ管理を支援するために信号通知する必要がある情報を含まない。他のピクチャタイプ(例えば、CRA、トレイリング(Trailing)、TSA等)の場合に、以下で説明する参照ピクチャセット(RPS)等の情報、又はいくつかの他の形式の同様の情報(例えば、参照ピクチャリスト)が参照ピクチャのマーキングプロセス(例えば、参照のために使用されるか、又は参照のために使用されない、DPB内の参照ピクチャのステータスを決定するプロセス)に必要である。ただし、IDRピクチャの場合に、IDRの存在は、復号化プロセスがDPB内の全ての参照ピクチャを参照に使用されないとしてマークするだけであることを示しているため、このような情報を信号通知する必要はない。
【0098】
ビデオコーディングにおける参照ピクチャ管理について議論する。
【0099】
ピクチャタイプに加えて、ピクチャ識別が、インター予測における参照ピクチャとしての使用、復号化したピクチャバッファ(DPB)からのピクチャの出力、動きベクトルのスケーリング、重み付け予測等を含む複数の目的のためにも必要とされる。AVC及びHEVCでは、ピクチャはピクチャ順序カウント(POC)で識別できる。
【0100】
AVC及びHEVCでは、DPB内のピクチャは、「短期間の参照に使用される」、「長期間の参照に使用される」、又は「参照に使用されない」としてマークされ得る。ピクチャが「参照に使用されない」とマークされると、そのピクチャはもはや予測に使用できなくなる。そのピクチャがもはや出力する必要がなくなった場合に、そのピクチャをDPBから削除できる。
【0101】
AVCでは、短期及び長期の2つのタイプの参照ピクチャが存在する。参照ピクチャは、そのピクチャがもはや予測参照のために不要になったときに、「参照に使用されない」とマークされ得る。これらの3つのステータス(短期、長期、及び参照用に使用されない)間の変換は、復号化した参照ピクチャのマーキングプロセスによって制御される。取り得る(alternative)2つの復号化した参照ピクチャのマーキングメカニズム、暗黙的なスライディングウィンドウプロセス、及び明示的なメモリ管理制御操作(MMCO)プロセスがある。スライディングウィンドウプロセスは、参照フレームの数が指定した最大数(例えば、SPS内のmax_num_ref_frames)に等しい場合に、短期参照ピクチャを「参照に使用されない」としてマークする。短期参照ピクチャは先入れ先出し方式で格納されるため、直近に復号化した短期ピクチャはDPBに保持される。
【0102】
明示的なMMCOプロセスは、複数のMMCOコマンドを含み得る。MMCOコマンドは、1つ又は複数の短期又は長期の参照ピクチャを「参照に使用されない」としてマークするか、全てのピクチャを「参照に使用されない」としてマークするか、現在の参照ピクチャ又は既存の短期参照ピクチャを長期としてマークすることができ、その長期参照ピクチャに長期ピクチャインデックスを割り当てることができる。
【0103】
AVCでは、参照ピクチャマーキング操作、並びにDPBからのピクチャの出力及び削除のためのプロセスは、ピクチャを復号化した後に実行される。
【0104】
HEVCは、参照ピクチャセット(RPS)と呼ばれる、参照ピクチャ管理について異なるアプローチを導入する。AVCのMMCO/スライディングウィンドウと比較したRPSの概念との最も基本的な差異は、特定のスライス毎に、現在のピクチャ又は任意の後続のピクチャで使用される参照ピクチャの完全なセットが提供されることである。こうして、現在又は将来のピクチャで使用するためにDPBに保持されている全てのピクチャの完全なセットが信号通知される。これは、DPBへの相対的な変更のみが信号通知されるAVCスキームとは異なる。RPSの概念では、DPB内の参照ピクチャの正しいステータスを維持するために、復号化順に前のピクチャからの情報は必要ない。
【0105】
HVCにおけるピクチャ復号化及びDPB操作の順序は、RPSの利点を活用し、エラー回復力を高めるために、AVCと比較して変更される。AVCでは、ピクチャのマーキング及びバッファ操作(DPBからの復号化したピクチャの出力と削除との両方)は、通常、現在のピクチャが復号化された後に適用される。HEVCでは、RPSは最初に現在のピクチャのスライスヘッダから復号化され、次に、ピクチャのマーキング及びバッファ操作が通常、現在のピクチャを復号化する前に適用される。
【0106】
HEVCにおけるRPSのシグナリングについて議論する。
【0107】
HEVCの各スライスヘッダは、スライスを含むピクチャに関してRPSのシグナリングのためのパラメータを含む。唯一の例外は、IDRスライスに対してRPSが信号通知されないことである。代わりに、RPSは空であると推測される。IDRピクチャに属さないIスライスの場合に、IスライスがIピクチャに属していても、RPSが提供される場合がある。これは、復号化順でIピクチャに先行するピクチャに基づいてインター予測を使用する、復号化順でIピクチャに続くピクチャが存在する可能性があるためである。RPS内のピクチャの数は、SPS内のsps_max_dec_pic_buffering構文要素で指定されるDPBサイズ制限を超えてはならない。
【0108】
各ピクチャは、出力順序を表すPOC値に関連付けられる。スライスヘッダには、固定長のコードワードpic_order_cnt_lsbが含まれており、これは、POC LSBとしても知られている完全なPOC値の最下位ビットを表す。コードワードの長さは、SPSで信号通知され、4~16ビットの間にすることができる。RPSの概念では、POCを使用して参照ピクチャを識別する。スライスヘッダ自体のPOC値に加えて、各スライスヘッダは、RPS内の各ピクチャのPOC値(又はLSB)のコーディングした表現をSPSに直接含むか、SPSから継承する。
【0109】
各ピクチャのRPSは、5つのRPSサブセットとも呼ばれる、参照ピクチャの5つの異なるリストから構成される。RefPicSetStCurrBeforeは、復号化順と出力順との両方で現在のピクチャより前にあり、且つ現在のピクチャのインター予測に使用できる全ての短期参照ピクチャで構成される。RefPicSetStCurrAfterは、復号化順で現在のピクチャより前にあり、出力順で現在のピクチャに続き、且つ現在のピクチャのインター予測に使用できる全ての短期参照ピクチャで構成される。RefPicSetStFollは、復号化順に現在のピクチャに続く1つ又は複数のピクチャのインター予測に使用でき、且つ現在のピクチャのインター予測には使用されない全ての短期参照ピクチャで構成される。RefPicSetLtCurrは、現在のピクチャのインター予測に使用できる全ての長期参照ピクチャで構成される。RefPicSetLtFollは、復号化順で現在のピクチャに続く1つ又は複数のピクチャのインター予測に使用でき、且つ現在のピクチャのインター予測には使用されない全ての長期参照ピクチャで構成される。
【0110】
RPSは、異なるタイプの参照ピクチャ(現在のピクチャよりもPOC値が低い短期参照ピクチャ、現在のピクチャよりもPOC値が高い短期参照ピクチャ、及び長期参照ピクチャ)を反復する最大3つのループを使用して信号通知される。さらに、参照ピクチャが、現在のピクチャ(リストRefPicSetStCurrBefore、RefPicSetStCurrAfter、又はRefPicSetLtCurrのいずれかに含まれる)による参照のために使用されるか、又は現在のピクチャ(リストRefPicSetStFoll又はRefPicSetLtFollのいずれかに含まれる)による参照のために使用されないどうかを示すフラグ(used_by_curr_pic_X_flag)が各参照ピクチャに送信される。
【0111】
図4は、RPS400の全てのサブセット402にエントリ(例えば、ピクチャ)を含む状態の現在のピクチャB14を有するRPS400を示す。図4の例では、現在のピクチャB14は、5つのサブセット402(別名、RPSサブセット)のそれぞれに正確に1つのピクチャを含む。P8は、ピクチャが出力順で前にあり且つB14によって使用されるため、RefPicSetStCurrBeforeと呼ばれるサブセット402内のピクチャである。P12は、ピクチャが出力順で後ろにあり且つB14によって使用されるため、RefPicSetStCurrAfterと呼ばれるサブセット402内のピクチャである。P13は、ピクチャがB14で使用されない短期参照ピクチャであるため(ただし、そのピクチャはB15で使用されるためDPBに保持する必要がある)、RefPicSetStFollと呼ばれるサブセット402内のピクチャである。P4は、ピクチャがB14によって使用される長期参照ピクチャであるため、RefPicSetLtCurrと呼ばれるサブセット402内のピクチャである。I0は、ピクチャが現在のピクチャでは使用されない長期参照ピクチャであるため(ただし、そのピクチャがB15で使用されるためDPBに保持する必要がある)、RefPicSetLtFollと呼ばれるサブセット402内のピクチャである。
【0112】
RPS400の短期部分は、スライスヘッダに直接含まれ得る。あるいはまた、スライスヘッダには、アクティブなSPSで送信されるRPSの予め規定したリストを参照する、インデックスを表す構文要素のみが含まれ得る。RPS402の短期部分は、2つの異なるスキーム:以下で説明するインターRPS、又はここで説明するイントラRPSのいずれかを使用して信号通知することができる。イントラRPSを使用すると、参照ピクチャの2つの異なるリストの長さを表すnum_negative_pics及びnum_positive_picsが信号通知される。これらのリストには、現在のピクチャと比較して、それぞれ負のPOC差及び正のPOC差がある参照ピクチャが含まれる。これらのリストの各要素は、リストの前の要素から1を引いたものと比較したPOC値の差を表す可変長コードで符号化される。各リストの第1のピクチャの場合に、シグナリングは現在のピクチャのPOC値から1を引いた値に関連している。
【0113】
シーケンスパラメータセットで循環するRPSを符号化する場合に、シーケンスパラメータセットで既に符号化した別のRPSを参照して、1つのRPS(例えば、RPS400)の要素を符号化することが可能である。これは、インターRPSと呼ばれる。シーケンスパラメータセットの全てのRPSが同じネットワーク抽象化レイヤ(NAL)ユニットにあるため、この方法に関連するエラーの堅牢性の問題はない。インターRPS構文は、現在のピクチャのRPSが以前に復号化したピクチャのRPSから予測できるという事実を利用している。これは、現在のピクチャの全ての参照ピクチャが、以前のピクチャの参照ピクチャ又は以前に復号化したピクチャ自体のいずれかである必要があるためである。これらのピクチャのどれが参照ピクチャであり、現在のピクチャの予測に使用すべきかを示す必要があるだけである。従って、構文は、以下のもの:予測子として使用するRPSを指し示すインデックス、現在のRPSのデルタPOCを取得するために予測子のdelta_POCに追加されるdelta_POC、及びどのピクチャが参照ピクチャであり、それらピクチャが将来のピクチャの予測にのみ使用されるかどうかを示すインジケータのセットで構成される。一実施形態では、デルタPOCは、現在の参照ピクチャと別の(例えば、以前の)参照ピクチャとの間のPOC値の差を指す。
【0114】
長期参照ピクチャの使用を利用したいエンコーダは、SPS構文要素long_term_ref_pic_present_flagを1に設定しなければならない。次に、長期参照ピクチャは、固定長コードワードpoc_lsb_ltによってスライスヘッダで信号通知され、このコードワードは、各長期ピクチャの完全なPOC値の最下位ビットを表す。各poc_lsb_ltは、特定の長期ピクチャに対して信号通知されたpic_order_cnt_lsbコードワードのコピーである。また、SPS内の長期ピクチャのセットをPOC LSB値のリストとして信号通知することもできる。次に、長期ピクチャのPOC LSBは、このリストへのインデックスとしてスライスヘッダで信号通知できる。
【0115】
delta_POC_msb_cycle_lt_minus1構文要素は、現在のピクチャに対する長期参照ピクチャの完全なPOC距離の計算を可能にするためにさらに信号通知することができる。コードワードdelta_POC_msb_cycle_lt_minus1は、RPS内の任意の他の参照ピクチャと同じPOC LSB値を有する長期参照ピクチャ毎に信号通知する必要がある。
【0116】
HEVCにおける参照ピクチャマーキングについて議論する。
【0117】
ピクチャ復号化の前に、典型的に、DPBに多数のピクチャが存在するであろう。いくつかのピクチャは予測に利用できるため、「参照に使用される」とマークされ得る。他のピクチャは予測に利用できないが出力を待っているため、「参照に使用されない」とマークされ得る。スライスヘッダが解析されると、スライスデータを復号化する前にピクチャマーキングプロセスが実行される。DPBに存在し、「参照に使用される」とマークされるがRPSに含まれないピクチャは、「参照に使用されない」とマークされる。used_by_curr_pic_X_flagがゼロに等しい場合に、DPBには存在しないが、参照ピクチャセットに含まれるピクチャは無視される。ただし、代わりに、used_by_curr_pic_X_flagが1に等しい場合に、この参照ピクチャは、現在のピクチャでの予測に使用することを意図していたが、欠落している。次に、意図しないピクチャの損失が推測され、デコーダは適切なアクションを講じる必要がある。
【0118】
現在のピクチャを復号化した後に、その復号化したピクチャは「短期間の参照に使用される」とマークされる。
【0119】
HEVCにおける参照ピクチャリストの構成について議論する。
【0120】
HEVCでは、用語インター予測は、現在の復号化したピクチャ以外の参照ピクチャのデータ要素(例えば、サンプル値又は動きベクトル)から導出した予測を示すために使用される。AVCと同様に、ピクチャは複数の参照ピクチャから予測できる。インター予測に使用される参照ピクチャは、1つ又は複数の参照ピクチャリストに編成される。参照インデックスは、リスト内のどの参照ピクチャを予測信号の作成に使用すべきかを特定する。
【0121】
単一の参照ピクチャリスト、リスト0がPスライスに使用され、2つの参照ピクチャリスト、リスト0及びリスト1がBスライスに使用される。AVCと同様に、HEVCでの参照ピクチャリストの構成には、参照ピクチャリストの初期化及び参照ピクチャリストの修正が含まれる。
【0122】
AVCでは、リスト0の初期化プロセスは、Pスライス(復号化順序が使用される)とBスライス(出力順序が使用される)とで異なる。HEVCでは、どちらの場合にも出力順序が使用される。
【0123】
参照ピクチャリストの初期化は、3つのRPSサブセット:RefPicSetStCurrBefore、RefPicSetStCurrAfter、及びRefPicSetLtCurrに基づいて、デフォルトのリスト0及びリスト1(スライスがBスライスである場合に)を作成する。出力順序が早い(遅い)短期ピクチャは、最初に現在のピクチャまでのPOC距離の昇順でリスト0(リスト1)に挿入され、次に出力順序が遅い(早い)短期ピクチャは、現在のピクチャまでのPOC距離の昇順でリスト0(リスト1)に挿入され、最終的に、長期ピクチャが最後に挿入される。RPSに関しては、リスト0の場合に、RefPicSetStCurrBeforeのエントリが最初のリストに挿入され、その後にRefPicSetStCurrAfterのエントリが続く。その後、利用可能な場合に、RefPicSetLtCurrのエントリが追加される。
【0124】
HEVCでは、リスト内のエントリの数がアクティブな参照ピクチャの目標数(ピクチャパラメータセット又はスライスヘッダで信号通知される)よりも少ない場合に、上記のプロセスが繰り返される(参照ピクチャリストに既に追加されている参照ピクチャが再び追加される)。エントリ数が目標数よりも多い場合に、リストは切り捨てられる。
【0125】
参照ピクチャリストが初期化された後に、参照ピクチャは、現在のピクチャの参照ピクチャが任意の順序で配置され得るように修正され得、これは、1つの特定の参照ピクチャが、参照ピクチャリスト修正コマンドに基づいて、リスト内の複数の位置に現れ得るケースを含む。リスト修正の有無を示すフラグが1に設定されている場合に、コマンドの固定数(参照ピクチャリスト内のエントリの目標数に等しい)が信号通知され、各コマンドは参照ピクチャリストに1つのエントリを挿入する。参照ピクチャは、RPSシグナリングから導出した現在のピクチャの参照ピクチャのリストへのインデックスによってコマンドで識別される。これは、ピクチャがピクチャ番号(frame_num構文要素から導出される)又は長期参照ピクチャインデックスのいずれかによって識別される、H.264/AVCの参照ピクチャリストの修正とは異なり、例えば、初期リストの最初の2つのエントリを交換し、又は初期リストの先頭に1つのエントリを挿入して、他のエントリをシフトするために、必要なコマンドが少なくなる可能性がある。
【0126】
参照ピクチャリストは、現在のピクチャよりも大きいTemporalIDを有する任意の参照ピクチャを含むことは許可されない。HEVCビットストリームは、いくつかの一時的なサブレイヤで構成される場合がある。各NALユニットは、TemporalID(temporal_id_plus1-1に等しい)で示される特定のサブレイヤに属する。
【0127】
参照ピクチャリストに直接基づく参照ピクチャ管理について議論する。
【0128】
JCT-VC文書JCTVC-G643は、http://phenix.int-evry.fr/jct/doc_end_user/documents/7_Geneva/wg11/JCTVC-G643-v3.zipで公開されており、参照ピクチャリスト0、参照ピクチャリスト1、及びDPB内の参照ピクチャの管理のためのアイドル状態の参照ピクチャリストの3つの参照ピクチャリストを直接使用するアプローチを含む。このアプローチにより、1)スライディングウィンドウ及びMMCOプロセス、並びにAVCでの参照ピクチャリストの初期化及び修正プロセス、又は2)参照ピクチャセット、並びにHEVCでの参照ピクチャリストの初期化及び修正プロセスのいずれかを利用する必要がなくなり、これは、シグナリング及び復号化を簡素化する。
【0129】
JVET文書JVET-L0112は、http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L0112-v4.zipで公開されており、参照ピクチャリストに直接基づく参照ピクチャ管理のための別のアプローチを説明している。JCTVC-G643で提案されるような3つの参照ピクチャリストを使用する代わりに、JVET-L0112で提案されるアプローチでは、2つの参照ピクチャリスト:参照ピクチャリスト0及び参照ピクチャリスト1のみを使用する。各参照ピクチャリストには、関連する最終参照ピクチャリストを構成するための参照ピクチャに関連する情報が含まれる(例えば、参照ピクチャリスト0の参照ピクチャは、最終参照ピクチャリスト0を構成するためのものであり、参照ピクチャリスト1の参照ピクチャは、最終参照ピクチャリスト1を構成するためのものである)。各参照ピクチャリストには、アクティブではない参照ピクチャ(例えば、現在のピクチャには必要ないが、将来のピクチャには必要になり得る)が含まれ得る。
【0130】
HEVCにおけるピクチャパーティション分割スキームについて議論する。
【0131】
HEVCは、4つの異なるピクチャパーティション分割スキーム、すなわち、通常のスライス、依存(dependent)スライス、タイル、及び波面並列処理(WPP)を含み、これらは、最大転送単位(MTU)サイズマッチング、並列処理、及び低減したエンドツーエンド遅延に適用され得る。
【0132】
通常のスライスは、H.264/AVCの場合と同様である。各通常のスライスはそれ自体のNALユニットにカプセル化され、インピクチャ(in-picture)予測(イントラサンプル予測、動き情報予測、コーディングモード予測)及びスライス境界を越えたエントロピーコーディングの依存関係が無効になる。こうして、通常のスライスは、同じピクチャ内の他の通常のスライスから独立して再構成することができる(ただし、ループフィルタリング操作のために依然として相互依存性が残っている場合がある)。
【0133】
通常のスライスは、並列化に使用できる唯一のツールであり、実質的に同一の形式で、H.264/AVCでも利用可能である。通常のスライスベースの並列化は、プロセッサ間(inter-processor)又はコア間(inter-core)通信をあまり必要としない(予測的にコーディングしたピクチャを復号化するときの動き補償のためのプロセッサ間又はコア間データ共有を除く。これは、典型的に、インピクチャ予測によってプロセッサ間又はコア間データ共有よりもはるかに重い)。ただし、同じ理由で、通常のスライスを使用すると、スライスヘッダのビットコストによって及びスライス境界を越えた予測の欠如によって、かなりのコーディングオーバーヘッドが発生する可能性がある。さらに、通常のスライスは(以下で述べる他のツールとは対照的に)、通常のスライスとは独立したインピクチャによって、及び各通常のスライスがそれ自体のNALユニットにカプセル化されているため、MTUサイズの要件にマッチングするビットストリームパーティション分割の主要なメカニズムとしても機能する。多くの場合、並列化の目標及びMTUサイズのマッチングの目標は、矛盾する要求をピクチャのスライスレイアウトに突きつける。この状況の実現は、以下に述べる並列化ツールの開発につながった。
【0134】
依存スライスは、短いスライスヘッダを有し、任意のインピクチャ予測を狂わすことなく、ツリーブロック境界でビットストリームのパーティション分割を可能にする。基本的に、依存スライスは、通常のスライスを複数のNALユニットに断片化し、通常のスライス全体の符号化が完了する前に通常のスライスの一部を送信できるようにすることで、エンドツーエンドの遅延を減らす。
【0135】
WPPでは、ピクチャは、コーディングツリーブロック(CTB)の単一の行にパーティション分割される。エントロピー復号化及び予測では、他のパーティションのCTBからのデータを使用できる。並列処理は、CTB行の復号化の開始が2つのCTBだけ遅れる、CTB行の並列復号化によって可能であり、これにより、対象CTBの右上のCTBに関連するデータが対象CTBを復号化している前に利用可能になる。この千鳥状(staggered:互い違いの)開始(グラフィカルに表現すると波面のように見える)を使用すると、ピクチャに含まれるCTB行と同じ数のプロセッサ/コアまで並列化が可能である。ピクチャの内の隣接するツリーブロック行同士の間のインピクチャ予測が許容されるため、インピクチャ予測を可能にするために必要なプロセッサ間/コア間通信はかなりの量になる可能性がある。WPPパーティション分割では、適用されない場合と比較して、追加のNALユニットが生成されることはない。こうして、WPPは、MTUサイズのマッチングのためのツールではない。ただし、MTUサイズのマッチングが必要な場合には、通常のスライスを、特定のコーディングオーバーヘッド伴うWPPで使用できる。
【0136】
タイルは、ピクチャをタイルの列及び行にパーティション分割する水平方向及び垂直方向の境界を規定する。CTBのスキャン順序は、ピクチャのタイルラスタースキャンの順序で次のタイルの左上のCTBを復号化する前に、(タイルのCTBラスタースキャンの順序で)タイル内でローカルになるように変更される。通常のスライスと同様に、タイルは、インピクチャ予測の依存関係及びエントロピー復号化の依存関係を狂わす。ただし、タイルを個々のNALユニットに含める必要はない(この点ではWPPと同じである)。このため、タイルをMTUサイズのマッチングに使用することはできない。各タイルは1つのプロセッサ/コアで処理でき、隣接するタイルを復号化する処理ユニット同士の間のインピクチャ予測に必要なプロセッサ間/コア間通信は、スライスが複数のタイルにまたがっている場合に、共有スライスヘッダの伝達、及び再構成したサンプル及びメタデータの共有に関連するループフィルタ処理に制限される。複数のタイル又はWPPセグメントがスライスに含まれる場合に、スライスの最初のタイル又はWPPセグメント以外の各タイル又はWPPセグメントのエントリポイントバイトオフセットは、スライスヘッダで信号通知される。
【0137】
簡潔にするために、4つの異なるピクチャパーティション分割スキームの適用のための制限がHEVCで指定されている。所与のコーディングしたビデオシーケンスには、HEVCで指定した殆どのプロファイルについてタイルと波面との両方を含めることはできない。スライス及びタイル毎に、次の条件のいずれか又は両方を満たす必要がある:1)スライス内の全てのコーディングしたツリーブロックが同じタイルに属する;2)タイル内の全てのコーディングしたツリーブロックは、同じスライスに属する。最後に、波面セグメントには正確に1つのCTB行が含まれ、WPPが使用されている場合であって、スライスがCTB行内で開始する場合に、そのスライスは、同じCTB行で終了する必要がある。
【0138】
動き制約付きタイルセット(MCTS)について議論する。
【0139】
HEVCに対する最近の改訂は、JCT-VC出力文書JCTVC-AC1005、J Boyce, A. Ramasubramonian, R. Skupin, G. J. Sullivan, A. Tourapis, Y.-K. Wang (editors), “HEVC Additional Supplemental Enhancement Information (Draft 4),” Oct. 24, 2017に明示され、http://phenix.int-evry.fr/jct/doc_end_user/documents/29_Macau/wg11/JCTVC -AC1005-v2.zipで公開されている。この改訂を含めると、HEVCは、3つのMCTS関連の補足強化情報(SEI)メッセージ、つまり、一時的なMCTS SEIメッセージ、MCTS抽出情報セットSEIメッセージ、及びMCTS抽出情報ネスト化SEIメッセージを指定する。
【0140】
一時的なMCTS SEIメッセージは、ビットストリーム内のMCTSの存在を示し、MCTSに信号通知する。各MCTSについて、動きベクトルは、MCTS内のフルサンプル位置と、補間のためにMCTS内のフルサンプル位置のみを必要とする分数(fractional)サンプル位置とを指し示すように制限され、MCTSの外側のブロックから導出された一時的な動きベクトル予測のための動きベクトル候補の使用は許可されない。このようにして、MCTSに含まれていないタイルが存在しなくても、各MCTSを独立して復号化できる。
【0141】
MCTS抽出情報セットSEIメッセージは、MCTSサブビットストリーム抽出(SEIメッセージのセマンティクスの一部として指定される)で使用されて、MCTSセットの適合ビットストリームを生成することができる補足情報を提供する。この情報には、いくつかの抽出情報セットが含まれ、各抽出情報セットが、いくつかのMCTSセットを規定し、MCTSサブビットストリーム抽出プロセス中に使用すべき置換VPS、SPS、及びPPSのRBSPバイトを含む。MCTSサブビットストリーム抽出プロセスに従ってサブビットストリームを抽出するときに、パラメータセット(VPS、SPS、及びPPS)を書き換える、又は置き換える必要があり、スライスアドレスに関連する構文要素(first_slice_segment_in_pic_flag及びslice_segment_addressを含む)の1つ又は全てが、典型的に、異なる値を有する必要があるため、スライスヘッダを僅かに更新する必要がある。
【0142】
タイルグループについて議論する。
【0143】
2018年10月にマカオで開催された第12回JVET会議の後に、スライスの概念をタイルグループに置き換えることが合意された。ただし、本開示の時点では、VVCの最新のドラフトには、合意したタイルグループの概念が未だ含まれていなかった。寄稿JVET-L0686は、http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L0686-v2.zipで公開されており、合意したタイルグループのテキストを含む。第12回JVET会議で合意したタイルグループでは、1つ又は複数のタイルをタイルグループにグループ化できる。タイルグループに属するタイルは、ピクチャのラスタースキャン順序で連続している。本開示の残りの部分では、JVET-L0686で説明しているタイルグループは、ラスタースキャンタイルグループと呼ばれる。
【0144】
寄稿JVET-L0114は、http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L0114-v1.zipで公開されており、タイルグループの別のアプローチを説明している。本明細書で説明するタイルグループは、タイルグループに一緒にグループ化されるタイルがピクチャ内の長方形状の領域を形成するものとして制約される。本開示の残りの部分では、JVET-L0114で説明しているタイルグループは、長方形タイルグループと呼ばれる。
【0145】
360°ビデオアプリケーションにおけるビューポート依存のユースケースについて議論する。
【0146】
360度(360°)のビデオアプリケーションは、球全体の一部のみを表示する(結果として、ピクチャ全体のサブセットのみを表示する)。ビットレートを下げるために、ビューポートに依存するDASHを介した360°配信と呼ばれるユースケースのシナリオを使用して、DASHを介して360°ビデオを配信する。ユースケースのシナリオは次の通りである。
【0147】
球/投影した画像全体を(例えば、キューブマップ投影(CMP)を使用して)複数のMCTSに分割する。
【0148】
異なる空間解像度又は品質で2つ以上のビットストリームを符号化する。
【0149】
デコーダに配信するときに、より高い解像度/品質のビットストリームからのMCTSがビューポート(例えば、フロントビューポート)を表示するために使用され、より低い解像度/品質のビットストリームからのMCTSが残りを表示するために使用される。これらのMCTSは特定の方法でパックされ、次に、復号化するために受信機に送信される。
【0150】
良好な視聴体験を提供するために、ユーザによって見られるビューポートが高い解像度/品質のMCTSによって表されることが期待される。ユーザが別のビューポート(例えば、左又は右のビューポート)を見るために自分の頭を向けるときに、システムがそのビューポートの高い解像度/品質のMCTSをフェッチしている間に、表示されるコンテンツはより低い解像度/品質のビューポートから短期間に亘って取得される(come from)だろう。
【0151】
ユーザが別のビューポートを見るために自分の頭を向けるときに、ユーザが自分の頭を向ける時と、ビューポートのより高い解像度/品質の表現が見られる時との間に遅延がある。この遅延は、システムがそのビューポートのより高い解像度/品質のMCTSをどれ位速くフェッチできるかに依存し、次に、これは、新しいビューポートのMCTSがIRAPピクチャから開始してのみ復号化可能であるため、IRAP期間(例えば、2つのIRAPの間の発生間隔)に依存する。IRAP期間が1秒毎にコーディングされている場合に、以下が適用される。
【0152】
遅延の最良ケースのシナリオは、システムが新しいセグメント/IRAP期間のフェッチを開始する直前にユーザが新しいビューポートを見るために自分の頭を向ける場合のネットワークラウンドトリップ遅延と同じである。このシナリオでは、システムは、新しいビューポートに対してより高解像度/品質のMCTSを直ぐに要求できるだろう。そのため、唯一の遅延はネットワークラウンドトリップ遅延である(フェッチ要求の遅延と要求したMCTSの送信時間の合計であり、最小バッファリング遅延をゼロに設定できると仮定する(が、通常はストリーミングシステムでは最小バッファリング遅延を0に設定できない)と、センサの遅延は、小さく、無視できる)。ネットワークラウンドトリップ遅延は、例えば、約200ミリ秒(ms)になる可能性がある。
【0153】
遅延の最悪ケースのシナリオは、システムが既に次のセグメントの要求を行った直後にユーザが新しいビューポートを見るために自分の頭を向ける場合のIRAP期間+ネットワークラウンドトリップ遅延である。
【0154】
上記の最悪ケースのシナリオを改善するために、より頻繁なIRAPピクチャを用いてビットストリームを符号化して、IRAP期間をより短くし、こうして全体的な遅延を低減することができる。ただし、これにより、圧縮効率が低下するため、結果的に帯域幅の要件が増大する。
【0155】
既存のIRAP概念の問題について議論する。
【0156】
HEVC及びVVCの最新の開発まで、IRAP概念はピクチャレベルの概念である。それは、イントラ・ランダムアクセスポイントに関連付けられたコーディングしたビデオビットストリーム内の最小のオブジェクトがピクチャであることを意味する。それは、IRAPの概念がサブピクチャレベルで適用可能であれば有益となろう。サブピクチャレベルでIRAPを使用すると、上記のように、DASHを介した360°の配信で最悪ケースのシナリオを減らすのに役立つだろう。しかしながら、以下の問題のために、既存のビデオコーディング仕様(例えば、HEVC、VVC等)でこのようにIRAPの概念を改善することは困難である。
【0157】
一般に、IRAPピクチャのシグナリング、導出プロセス、及び復号化プロセスは、非IRAPピクチャのそれらとは異なる。さらに、多くの態様がピクチャレベルで規定される。いくつかの差異は次の通りである。
【0158】
POC導出に関して、POC MSBは、IDRピクチャについては常に0に設定される一方、POC MSBは、他のピクチャタイプについては以前のキーピクチャから導出される。
【0159】
参照ピクチャ管理に関して、IDRピクチャを受信したときに、IDRピクチャについて情報を通知する必要はない。デコーダは、DPB内の全ての参照ピクチャを「参照に使用されない」とマークするだけである。一方、他のピクチャタイプについては、参照ピクチャの管理を支援するための情報(例えば、RPS、RPL等)を通知する必要がある。
【0160】
サブピクチャが、元のビットストリームから抽出されて、サブビットストリーム抽出プロセスを介して新しいビットストリームを形成することができる。サブビットストリーム抽出プロセスの前後の同じサブピクチャのシグナリング、導出、及び復号化プロセスが変化せず、同じ復号化/再構成結果を生成することが望ましい。
【0161】
現在のコーディング技術の欠点の1つは、IRAPピクチャを含むことである。IRAPピクチャはイントラコーディングされる。そのため、コーダ/デコーダ(別名、コーデック)は、参照ピクチャリスト(RPL)を利用せずにIRAPピクチャをコーディングする。その結果、現在のコーディング技術で使用されている構文は、IRAPピクチャに直面した(encountered)ときはいつでもRPLを検索しないようにコーデックに命令する。
【0162】
仮想現実(VR)コーディングでは、ピクチャをサブピクチャに分割することが望ましい場合があり、この場合、一方のサブピクチャはIRAPサブピクチャであり、他方のサブピクチャは非IRAPサブピクチャである。ピクチャがこのように分割されている場合に、そのピクチャは混合IRAPピクチャと呼ばれ得る。ただし、混合IRAPピクチャは、現在のコーディング技術では問題を提示する。実際に、現在の構文では、IRAPサブピクチャが存在するため、コーデックが混合IRAPピクチャ全体の任意のRPLを無視する必要がある。RPLが無視されるため、コーデックは、インターコーディングしたピクチャとして、適切なコーディングためにRPLに依存する非IRAPサブピクチャをコーディングできない。
【0163】
本明細書に開示するのは、IRAPピクチャ、特に混合IRAPピクチャがRPLを参照及び利用するのを許容するビデオコーディング技術である。従って、混合IRAPピクチャがIRAPサブピクチャを含む場合でも、コーデックは、RPLを参照及び利用して、非IRAPサブピクチャをコーディングすることが許容される。これはVRコーディングアプリケーションで特に有益であるが、この概念は他の分野にも同様に適用することができる。
【0164】
図5は、VRコーディングアプリケーションでの使用に適したピクチャ500の一実施形態の概略図である。示されるように、ピクチャ500は、第1のサブピクチャ502及び第2のサブピクチャ504に分割されている。一実施形態では、第1のサブピクチャ502は、VRアプリケーションで使用されるビューポートに対応する。ビューポートは、VRアプリケーション又はプログラムのユーザが現在見ているピクチャの一部である。一実施形態では、第2のサブピクチャ504は、ピクチャ500の残りの部分を含む。すなわち、第2のサブピクチャ504は、ビューポートの外側のピクチャ500の部分である。一実施形態では、第1のサブピクチャ502はIRAPピクチャであり、第2のサブピクチャ504は、ビットストリーム内の特定の時点tにおける非IRAPピクチャである。そのため、ピクチャ500は、時間tにおける混合IRAPピクチャと呼ばれ得る。
【0165】
図6は、図5のピクチャ500に対応するビデオビットストリーム600の一実施形態の概略図である。本明細書で使用する場合に、ビデオビットストリーム600は、コーディングしたビデオビットストリーム、ビットストリーム、又はそれらの変形とも呼ばれ得る。図6のピクチャ500は、単一のNALユニット(太字の黒い長方形で表される)内に含まれる場合、又はいくつかのNALユニット内に含まれる場合がある。
【0166】
図6に示されるように、ビットストリーム600は、第1のサブビットストリーム602及び第2のサブビットストリーム604に分割されている。第1のサブビットストリーム602は第1のサブピクチャ502に対応し、第2のサブビットストリーム604は第2のサブピクチャ504に対応する。第1のサブビットストリーム602が、この例ではビューポートである第1のサブピクチャ502に対応するので、第1のサブビットストリーム602は、第2のサブビットストリーム604よりも多くのIRAPサブピクチャを含む。IRAPピクチャは、コーデックがビットストリーム600内のその位置で復号化を開始するのを許容する。第1のサブストリーム602がいくつかのIRAPピクチャを含むので、デコーダは、様々な異なる位置で第1のサブピクチャ502の復号化を開始することができる。IRAPピクチャの例には、瞬時デコーダリフレッシュ(IDR)ピクチャ、クリーンランダムアクセス(CRA)ピクチャ、及びリンク切れアクセス(BLA)ピクチャが含まれる。
【0167】
本明細書で開示する実施形態によれば、デコーダ(例えば、ビデオデコーダ30)が、復号化プロセス中にビットストリーム600内のピクチャ500に直面する(encounter)と、デコーダは、IRAPサブピクチャ(例えば、第1のサブピクチャ502)の存在によって、混合IRAPピクチャ(例えば、ピクチャ500)全体の任意のRPLを無視するようにもはや命令されない。従って、混合IRAPピクチャがIRAPサブピクチャ含む場合でも、デコーダは、非IRAPサブピクチャ(例えば、第2のサブピクチャ504)を復号化するために、RPLを参照及び利用することが許容される。つまり、IRAPピクチャ、特に混合IRAPピクチャは、RPLを参照及び利用することが許容される。このため、VRアプリケーションで有益な混合IRAPピクチャが可能である。
【0168】
一実施形態では、ビットストリーム(例えば、ビットストリーム600)が混合IRAPピクチャ(例えば、ピクチャ500)のいずれかを含むかどうかをデコーダ(例えば、ビデオデコーダ30)に示すために、エンコーダ(例えば、ビデオエンコーダ20)によってフラグは信号通知され得る。フラグは、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、又はビットストリームの別のパラメータセットで信号通知され得る。一実施形態では、フラグは、sps_mixed_tile_groups_in_pic_flagと指定される。
【0169】
一実施形態では、第1のサブピクチャ502及び第2のサブピクチャ504は、タイルグループと呼ばれ得る。一実施形態では、RPLは、そのタイルグループのNALユニットタイプに関係なく、各タイルグループの復号化の開始時に構成される。RPLは、例えば、RPLアプローチの場合にはRefPicList[0]及びRefPicList[1]、又は参照ピクチャセット(RPS)アプローチの場合にはRefPicList0[]及びRefPicList1[]を含み得る。インター予測動作のための参照ピクチャを含む同様のリストも利用することができる。
【0170】
図7は、ビデオデコーダ(例えば、ビデオデコーダ30)によって実装されるコーディングしたビデオビットストリーム(例えば、ビットストリーム600)を復号化する方法700の一実施形態である。方法700は、復号化したビットストリームをビデオエンコーダ(例えば、ビデオエンコーダ20)から直接的又は間接的に受信した後に実行され得る。方法700は、IRAPピクチャ、特に混合IRAPピクチャがRPLを参照及び利用するのを許容されるので、復号化プロセスを改善する(例えば、従来の復号化プロセスよりも復号化プロセスをより効率的、高速等にする)。このため、VRアプリケーションで有益な混合IRAPピクチャが可能である。従って、実際に、コーデックの性能が向上し、より良いユーザ体験につながる。
【0171】
ブロック702において、ビデオデコーダは、第1のサブピクチャ(例えば、サブピクチャ502)及び第2のサブピクチャ(例えば、サブピクチャ504)を含む混合イントラ・ランダムアクセスポイント(IRAP)ピクチャ(例えば、ピクチャ500)を受信する。一実施形態では、第1のサブピクチャはIRAPピクチャであり、第2のサブピクチャは非IRAPサブピクチャである。一実施形態では、混合IRAPピクチャは、第1のサブビットストリーム(例えば、第1のサブビットストリーム602)及び第2のサブビットストリーム(例えば、第2のサブビットストリーム604)を含む分割ビットストリームで受信される。一実施形態では、IRAPピクチャは、瞬時デコーダリフレッシュ(IDR)ピクチャである。一実施形態では、混合IRAPピクチャは、単一のネットワークアクセスレイヤ(NAL)ユニットに含まれる。
【0172】
ブロック704において、ビデオデコーダは、混合IRAPピクチャの参照ピクチャリスト(RPL)を受信する。少なくとも1つのIRAPピクチャを含む混合IRAPピクチャにもかかわらず、RPLはビデオデコーダによって受信又は別の方法で取得される。
【0173】
ブロック706において、ビデオデコーダは、RPLを使用して第2のサブピクチャを復号化する。ブロック708において、ビデオデコーダは、復号化した第2のサブピクチャに基づいて画像を生成する。一実施形態では、画像は、電子装置(例えば、スマートフォン、タブレット、ラップトップ、パーソナルコンピュータ等)のディスプレイ又は画面上でユーザに表示され得る。
【0174】
一実施形態では、方法700は、ビットストリームでフラグを受信することをさらに含む。このフラグは、ビットストリームに混合IRAPピクチャが含まれているかどうかを示す。一実施形態では、フラグは、SPS、PPS、又はビットストリームの別の部分で信号通知される。
【0175】
図8は、ビデオエンコーダ(例えば、ビデオエンコーダ20)によって実装されるビデオビットストリーム(例えば、ビットストリーム500)を符号化する方法800の一実施形態である。方法800は、(例えば、ビデオからの)ピクチャがビデオビットストリームに符号化され、次にビデオデコーダ(例えば、ビデオデコーダ30)に向けて送信されるときに実行され得る。方法800は、IRAPピクチャ、特に混合IRAPピクチャがRPLを参照及び利用するのを許容されるので、符号化プロセスを改善する(例えば、符号化プロセスを従来の符号化プロセスよりも効率的、高速等にする)。このため、VRアプリケーションで有益な混合IRAPピクチャが可能である。従って、実際に、コーデックの性能が向上し、より良いユーザ体験につながる。
【0176】
ブロック802において、ビデオエンコーダは、第1のサブピクチャ及び第2のサブピクチャを含む混合イントラ・ランダムアクセスポイント(IRAP)ピクチャを符号化し、第1のサブピクチャはIRAPピクチャであり、第2のサブピクチャは非IRAPサブピクチャである。一実施形態では、混合IRAPピクチャは、第1のサブビットストリーム及び第2のサブビットストリームを含む分割ビットストリームに符号化される。一実施形態では、第1のサブピクチャは第1のサブビットストリームに符号化され、第2のサブピクチャは第2のサブビットストリームに符号化される。一実施形態では、IRAPピクチャは、瞬時デコーダリフレッシュ(IDR)ピクチャである。一実施形態では、混合IRAPピクチャは、単一のネットワークアクセスレイヤ(NAL)ユニットに符号化される。
【0177】
ブロック804において、ビデオエンコーダは、混合IRAPピクチャの参照ピクチャリスト(RPL)を符号化する。
【0178】
ブロック806において、ビデオエンコーダは、混合IRAPピクチャ及び混合IRAPピクチャに対応するRPLを含むビットストリームを生成する。ビデオエンコーダは、少なくとも1つのIRAPピクチャを含む混合IRAPピクチャにもかかわらず、ビットストリームでRPLを符号化する。
【0179】
ブロック808において、ビデオエンコーダは、ビデオデコーダに向けて送信するためのビットストリームを格納する。ビットストリームは、ビデオエンコーダがビデオビットストリーム(例えば、ビットストリーム600)をビデオデコーダに向けて送信するまで、少なくとも一時的にメモリに格納され得る。ビデオデコーダによって受信されると、符号化したビデオビットストリームは、(例えば、上で説明したように)復号化され、電子装置(例えば、スマートフォン、タブレット、ラップトップ、パーソナルコンピュータ等)のディスプレイ又は画面でユーザに表示するための画像を生成又は作成する。
【0180】
一実施形態では、方法800は、ビットストリーム内でフラグを符号化することをさらに含む。このフラグは、ビットストリームに混合IRAPピクチャが含まれているかどうかを示す。一実施形態では、フラグは、SPS、PPS、又はビットストリームの別の部分で信号通知される。
【0181】
本明細書で開示する技術の説明は、JVET-L0686-v2及びJVET-L0112-v2における最新のアプローチに関連して提供される。JVET-L0686-v2及びJVET-L0112-v2のアプローチに関連する変更部分は斜体で表示され(以下では斜体の代わりに{}で示す( の中身が斜体に相当する))、削除については太字で示される(以下では太字の代わりに[]で示す( の中身が太字に相当する))一方、以下で言及しないJVET-L0686-v2及びJVET-L0112-v2のアプローチのテキストは、そのまま適用する。
【0182】
以下の規定が提供される。
【0183】
瞬時復号化リフレッシュ(IDR)タイルグループ:IDR_NUTに等しいnal_unit_typeを有するVCL NALユニットに含まれるタイルグループ。
【0184】
イントラ・ランダムアクセスポイント(IRAP)タイルグループ:IDR_NUT又はCRA_NUTに等しいnal_unit_typeを有するVCL NALユニットに含まれるタイルグループ。
【0185】
イントラ・ランダムアクセスポイント(IRAP)ピクチャ:各VCL NALユニットがIDR_NUT又はCRA_NUTのnal_unit_typeを有するコーディングしたピクチャ。
【0186】
注-FirstIrapPictureFlagの値は、復号化順序でCVSの最初のアクセスユニットである各IDR又はCRAアクセスユニットについて1に等しい。FirstIrapPictureFlagの値が1に等しい場合に、NoRaslOutputFlagの値は1に等しくなるように設定される。IDRピクチャは常にCVSの最初のアクセスユニットである。CRAアクセスユニットは、そのアクセスユニットが、ビットストリームの最初のピクチャである場合に、シーケンスの終わりのNALユニットの直後に続く場合に、又は関連する変数HandleCraAsFirstPicInCvsFlagが1に等しい場合に、CVSの最初のアクセスユニットである。変数HandleCraAsFirstPicInCvsFlagは、外部手段によって設定できる。
【0187】
非IRAPタイルグループ:nal_unit_typeがIDR_NUTにもCRA_NUTにも等しくないVCL NALユニットに含まれるタイルグループ。
【0188】
NALユニットヘッダセマンティクスが提供される。
表71-NALユニットタイプコード及びNALユニットタイプクラス
【表1】
【0189】
ピクチャの各タイルグループがIDR_NUT又はCRA_NUTに等しいnal_unit_typeを有する場合に、つまり、現在のタイルグループがIRAPピクチャに属する場合に、TemporalIDは0に等しくしなければならない。
【0190】
同じピクチャの少なくとも1つの他のVCL NALユニットが、IDR_NUT又はCRA_NUTに等しいnal_unit_typeを有する一方で、VCL NALユニットのnal_unit_typeがIDR_NUTにもCRA_NUTにも等しくもない場合に、TemporalIDは0に等しくなければならない。
【0191】
シーケンスパラメータセットの構文及びセマンティクスが提供される。
【表2】
【0192】
1に等しいsps_mixed_tile_groups_in_pic_flagは、IRAPタイルグループと非IRAPタイルグループとの両方を有するピクチャがCVSに存在し得ることを指定する。0に等しいsps_mixed_tile_groups_in_pic_flagは、CVS内の各ピクチャにIRAPタイルグループのみ又は非IRAPタイルグループのみがあることを指定する。
【0193】
ピクチャパラメータセット構文について議論する。
【表3】
【0194】
タイルグループ構文について議論する。
【表4】
【0195】
poc_msb_reset_flagは、以下のように変数PicRefreshFlagを指定するために使用される。
【0196】
- 現在のタイルグループが復号化順序でビットストリームの最初のアクセスユニットに属する場合に、PicRefreshFlagは1に等しく設定される。
【0197】
- それ以外の場合に、現在のタイルグループがIDRタイルグループである場合に、PicRefreshFlagは、sps_mixed_tile_groups_in_pic_flag?poc_msb_reset_flag:1に等しく設定される。
【0198】
- それ以外の場合に、現在のタイルグループがCRAタイルグループである場合に、以下が適用される。
【0199】
- 現在のアクセスユニットがシーケンスの終わりのNALユニットの直後に続く場合に、又は関連する変数HandleCraAsFirstPicInCvsFlagが1に等しい場合に、PicRefreshFlagは1に等しく設定される。
【0200】
- それ以外の場合に、PicRefreshFlagは0に等しく設定される。
【0201】
- それ以外の場合に(現在のタイルグループは、復号化順序でビットストリームの最初のアクセスユニットに属しておらず、そのグループはIRAPタイルグループではない)、PicRefreshFlagは0に等しく設定される。
【0202】
sps_mixed_tile_groups_in_pic_flagが0に等しい場合に、poc_msb_reset_flagの値は無視されることに注意されたい。
【0203】
sps_mixed_tile_groups_in_pic_flagが1に等しい場合に、以下の制約が適用されることがビットストリーム適合性の要件である。
【0204】
- 現在のピクチャの全てのタイルグループがIDRタイルグループである場合に、poc_msb_reset_flagの値は、現在のピクチャの全てのIDRタイルグループに対して1に等しくしなければならない。
【0205】
- 現在のピクチャにIDRタイルグループとIDRタイルグループではない少なくとも1つのタイルグループとが含まれている場合に、poc_msb_reset_flagの値は0に等しくしなければならない。
【0206】
注- 1に等しいpoc_msb_reset_flagの値は、現在のピクチャに複数のタイルグループがある場合に、全てのタイルグループがIDRタイルグループであることを示す。
【0207】
注- MCTSが、sps_mixed_tile_groups_in_pic_flaghが1に等しい元のビットストリームからサブビットストリームになるように抽出される場合に、抽出したサブビットストリームのアクティブSPSにおけるsps_mixed_tile_groups_in_pic_flagの値は、0に等しく設定されなければならず、つまり、抽出したサブビットストリームでは、各ピクチャは、IRAPタイルグループのみ又は非IRAPタイルグループのみを含む必要がある。換言すると、1つのピクチャに属し、且つ1つのMCTSに属するタイルグループは、同じNALユニットタイプを含む必要がある。
【0208】
タイルグループ復号化プロセスについて議論する。
【0209】
復号化プロセスは、現在のピクチャCurrPicに対して以下のように動作する。
【0210】
1. NALユニットの復号化は、以下のNALユニット復号化プロセスの節(clause)で指定される。
【0211】
2. タイルグループ復号化プロセスに関する節のプロセスは、タイルグループヘッダレイヤ以上の構文要素を使用して、以下の復号化プロセスを指定する。
【0212】
以下のピクチャ順序カウントの復号化プロセスに関する節で指定されるように、ピクチャ順序カウントに関連する変数及び関数が導出される。これは、ピクチャの最初のタイルグループに対してのみ呼び出す必要がある。
【0213】
非IDRピクチャの各タイルグループの復号化プロセスの開始時に、参照ピクチャリスト構成のための復号化プロセスが、参照ピクチャリスト0(RefPicList[0])及び参照ピクチャリスト1(RefPicList[1])の導出のために呼び出される。
【0214】
- 参照ピクチャマーキングのための復号化プロセスが呼び出され、参照ピクチャは、「参照のために使用されない」又は「長期参照のために使用される」としてマークされ得る。これは、ピクチャの最初のタイルグループに対してのみ呼び出す必要がある。
【0215】
3. ツリーユニットのコーディング、スケーリング、変換、インループフィルタ処理等のための復号化プロセスを呼び出す。
【0216】
4.現在のピクチャの全てのスライスが復号化された後に、復号化した現在のピクチャは、「短期間の参照に使用される」としてマークされる。
【0217】
NALユニット復号化プロセスについて議論する。
【0218】
このプロセスへの入力は、現在のピクチャのNALユニット及びそれらユニットに関連する非VCL NALユニットである。
【0219】
このプロセスの出力は、NALユニット内にカプセル化された解析したRBSP構文構造である。
【0220】
各NALユニットのための復号化プロセスは、NALユニットからRBSP構文構造を抽出し、次に、RBSP構文構造を解析する。
【0221】
タイルグループ復号化プロセスについて議論する。
【0222】
ピクチャ順序カウントのための復号化プロセスが提供される。
【0223】
このプロセスの出力は、現在のピクチャのピクチャ順序カウント、PicOrderCntValである。
【0224】
ピクチャ順序カウントは、ピクチャを識別するため、マージモード及び動きベクトル予測における動きパラメータを導出するため、及びデコーダ適合性チェックのために使用される。
【0225】
コーディングした各ピクチャは、PicOrderCntValとして示されるピクチャ順序カウント変数に関連付けられる。
【0226】
PicRefreshFlagが0に等しい場合に、現在のピクチャはIRAPピクチャではなく、変数prevPicOrderCntLsb及びprevPicOrderCntMsbは次のように導出される。
- prevTid0Picを、TemporalIDを0に等しくした、復号化順で以前のピクチャとする。
- 変数prevPicOrderCntLsbは、prevTid0Picのslice_pic_order_cnt_lsbと等しく設定される。
- 変数prevPicOrderCntMsbは、prevTid0PicのPicOrderCntMsbと等しく設定される。
現在のピクチャの変数PicOrderCntMsbは、次のように導出される。
PicRefreshFlagが1に等しい場合に、現在のピクチャはIRAPピクチャであり、PicOrderCntMsbは0に等しく設定される。
- それ以外の場合に、PicOrderCntMsbは次のように導出される。
if((slice_pic_order_cnt_lsb < prevPicOrderCntLsb)&&
((prevPicOrderCntLsb - slice_pic_order_cnt_lsb)> =(MaxPicOrderCntLsb/2)))
PicOrderCntMsb = prevPicOrderCntMsb + MaxPicOrderCntLsb(8 1)
else if((slice_pic_order_cnt_lsb > prevPicOrderCntLsb)&& ((slice_pic_order_cnt_lsb - prevPicOrderCntLsb) > (MaxPicOrderCntLsb/2)))
PicOrderCntMsb = prevPicOrderCntMsb - MaxPicOrderCntLsb
【0227】
そうでなければ、
PicOrderCntMsb = prevPicOrderCntMsb
PicOrderCntValは次のように導出される。
PicOrderCntVal = PicOrderCntMsb + slice_pic_order_cnt_lsb(8-2)
【0228】
注1- IRAPピクチャのslice_pic_order_cnt_lsbが0であると推測され、prevPicOrderCntLsbとprevPicOrderCntMsbとが両方とも0に設定されているため、全てのIRAPピクチャのPicOrderCntValは0に等しくされるだろう。
【0229】
PicOrderCntValの値は、-231~231-1の範囲(境界を含む:inclusive)でなければならない。1つのCVSでは、任意の2つのコーディングしたピクチャのPicOrderCntVal値は同じであってはならない。
【0230】
復号化プロセス中の任意の時点で、DPB内の任意の2つの参照ピクチャのPicOrderCntVal & (MaxLtPicOrderCntLsb -1)の値は同じであってはならない。
【0231】
関数PicOrderCnt(picX)は次のように指定される。
【0232】
PicOrderCnt(picX)= ピクチャpicXのPicOrderCntVal(8-3)
【0233】
関数DiffPicOrderCnt(picA, picB)は次のように指定される。
【0234】
DiffPicOrderCnt(picA, picB) = PicOrderCnt(picA) - PicOrderCnt(picB)(8-4)
【0235】
ビットストリームは、-215~215-1の範囲(境界を含む)ではない復号化プロセスで使用されるDiffPicOrderCnt(picA, picB)の値をもたらすデータを含んではならない。
【0236】
注2- Xを現在のピクチャとし、Y及びZを同じCVS内の他の2つのピクチャとすると、DiffPicOrderCnt(X, Y)とDiffPicOrderCnt(X, Z)との両方が正、又は両方が負である場合に、Y及びZは、Xから同じ出力順序の方向にあると見なされる。
【0237】
参照ピクチャリスト構成のための復号化プロセスが提供される。
【0238】
このプロセスは、非IRAPピクチャの各タイルグループの復号化プロセスの開始時に呼び出される。
【0239】
参照ピクチャは、参照インデックスを介してアドレス指定される。参照インデックスは、参照ピクチャリストへのインデックスである。Iタイルグループを復号化する場合に、タイルグループデータの復号化に参照ピクチャリストは使用されない。Pタイルグループを復号化する場合に、参照ピクチャリスト0(つまり、RefPicList[0])のみがタイルグループデータの復号化に使用される。Bタイルグループを復号化する場合に、参照ピクチャリスト0と参照ピクチャリスト1(すなわち、RefPicList[1])との両方が、タイルグループデータの復号化に使用される。
【0240】
非IRAPピクチャの(左記は取消線で示される)各タイルグループの復号化プロセスの開始時に、参照ピクチャリストRefPicList[0]及びRefPicList[1]が導出される。参照ピクチャリストは、参照ピクチャのマーキング又はタイルグループデータの復号化に使用される。
【0241】
注1- 非IRAPタイルグループであるIタイルグループの場合に、RefPicList[0]及びRefPicList[1]は、ビットストリーム適合性チェックの目的で導出できるが、それらの導出は、現在のピクチャ、又は復号化順で現在のピクチャに続くピクチャを復号化するためには必要ない。Pタイルグループの場合に、ビットストリーム適合性チェックの目的でRefPicList[1]を導出できるが、その導出は、現在のピクチャ又は復号化順で現在のピクチャに続くピクチャを復号化するためには必要ない。
【0242】
参照ピクチャリスト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++) { (8-5)
if( !lt_ref_pic_flag[ i ][ RplsIdx[ i ] ][ j ] ) {
RefPicPocList[ i ][ j ] = pocBase - DeltaPocSt[ i ][ RplsIdx[ i ] ][ j ]
if( there is a reference picture picA in the DPB with PicOrderCntVal equal to RefPicPocList[ i ][ j ] )
RefPicList[ i ][ j ] = picA
else
RefPicList[ i ][ j ] = “no reference picture”
pocBase = RefPicPocList[ i ][ j ]
} else {
if( there is a reference picA in the DPB with PicOrderCntVal & ( MaxLtPicOrderCntLsb - 1 )
equal to poc_lsb_lt[ i ][ RplsIdx[ i ] ][ j ] )
RefPicList[ i ][ j ] = picA
else
RefPicList[ i ][ j ] = “no reference picture”
}
}
}
【0243】
各iが0又は1に等しい場合に、以下が適用される。
- RefPicList[i]の最初のNumRefIdxActive[i]エントリは、RefPicList[i]のアクティブなエントリと呼ばれ、RefPicList[i]の他のエントリは、RefPicList[i]の非アクティブなエントリと呼ばれる。
- 0~NumEntriesInList[i] [RplsIdx[i]] -1までの範囲(境界を含む)のjのRefPicList[i] [j]の各エントリは、lt_ref_pic_flag[i] [RplsIdx[i]] [j]が0に等しい場合に、STRPエントリと呼ばれ、それ以外の場合にはLTRPエントリと呼ばれる。
【0244】
注2- 特定のピクチャがRefPicList[0]のエントリとRefPicList[1]のエントリとの両方によって参照される可能性がある。特定のピクチャがRefPicList[0]の複数のエントリ又はRefPicList[1]の複数のエントリによって参照される可能性もある。
【0245】
注3- RefPicList[0]のアクティブなエントリとRefPicList[1]のアクティブなエントリは、現在のピクチャと復号化順で現在のピクチャに続く1つ又は複数のピクチャとのインター予測に使用できる全ての参照ピクチャをまとめて参照する。RefPicList[0]の非アクティブなエントリとRefPicList[1]の非アクティブなエントリは、現在のピクチャのインター予測には使用されないが、復号化順で現在のピクチャに続く1つ又は複数のピクチャのインター予測に使用され得る全ての参照ピクチャをまとめて参照する。
【0246】
注4- 対応するピクチャがDPBに存在しないため、「参照ピクチャなし」に等しいRefPicList[0]又はRefPicList[1]に1つ又は複数のエントリが存在する可能性がある。「参照ピクチャなし」に等しいRefPicList[0]又はRefPicList[0]の各非アクティブなエントリは無視する必要がある。「参照ピクチャなし」に等しいRefPicList[0]又はRefPicList[1]のアクティブなエントリ毎に、意図しないピクチャの損失を推測する必要がある。
【0247】
以下の制約が適用されることは、ビットストリーム適合性の要件である。
【0248】
各iが0又は1に等しい場合に、NumEntriesInList[i] [RplsIdx[i]]は、NumRefIdxActive[i]以上でなければならない。
【0249】
- RefPicList[0]又はRefPicList[1]の各アクティブなエントリによって参照されるピクチャは、DPBに存在し、現在のピクチャのTemporalID以下であるTemporalIDを有しなければならない。
【0250】
- ピクチャのスライスのRefPicList[0]又はRefPicList[1]のSTRPエントリ、及び同じスライスの又は同じピクチャの異なるスライスのRefPicList[0]又はRefPicList[1]のLTRPエントリは同じピクチャを参照してはならない。
【0251】
- 現在のピクチャのPicOrderCntValとエントリによって参照されるピクチャのPicOrderCntValとの間の差が224以上であるLTRPエントリがRefPicList[0]又はRefPicList[1]に存在してはならない。
【0252】
setOfRefPicsを、RefPicList[0]の全てのエントリ及びRefPicList[1]の全てのエントリによって参照される一意のピクチャのセットとする。setOfRefPics内のピクチャの数は、sps_max_dec_pic_buffering_minus1以下にしなければならず、setOfRefPicsは、ピクチャの全てのスライスで同じにしなければならない。
【0253】
参照ピクチャマーキングのための復号化プロセスが提供される。
【0254】
このプロセスは、タイルグループヘッダの復号化及びタイルグループの参照ピクチャリスト構成のための復号化プロセスの後であるが、タイルグループデータの復号化の前に、ピクチャ毎に1回呼び出される。このプロセスにより、DPB内の1つ又は複数の参照ピクチャが、「参照に使用されない」又は「長期参照に使用される」とマークされ得る。
【0255】
DPB内の復号化したピクチャは、「参照に使用されない」、「短期参照に使用される」、又は「長期参照に使用される」としてマークすることができるが、これら3つの中の1つのみが復号化プロセスの動作中に任意の所与の時点においてマークされ得る。これらのマーキングのうちの1つをピクチャに割り当てると、該当する場合に、これらのマーキングのうちの別のマーキングが暗黙的に削除される。ピクチャが「参照に使用される」とマークされていると参照される場合に、これは、まとめて「短期参照に使用される」又は「長期参照に使用される」とマークされているピクチャを指す(しかし、両方ではない)。
【0256】
現在のピクチャがIRAPピクチャである場合に、現在DPBにある全ての参照ピクチャ(もしあれば)は、「参照に使用されない」としてマークされる。
【0257】
STRPは、それらのPicOrderCntVal値によって識別される。LTRPは、それらPicOrderCntVal値のLog2(MaxLtPicOrderCntLsb)LSBによって識別される。
【0258】
以下が適用される。
【0259】
PicRefreshFlagが1に等しい場合に、DPB内の全ての参照ピクチャは、「参照に使用されない」としてマークされる。
【0260】
それ以外の場合に(sps_mixed_tile_groups_in_pic_flagが1に等しいか、又は現在のタイルグループがIDRタイルグループではない)、以下が適用される。
【0261】
「短期参照に使用される」とマークされたDPB内の各参照ピクチャについて、そのピクチャがRefPicList[0]又はRefPicList[1]のLTRPエントリによって参照される場合に、参照ピクチャは「長期参照に使用される。」としてマークされる。
【0262】
RefPicList[0]又はRefPicList[1]のどのエントリによっても参照されないDPB内の各参照ピクチャは、「参照に使用されない」としてマークされる。
【0263】
本開示の概念についてさらに議論する。
【0264】
上記の問題を解決するために、以下の態様を開示し、それら態様のそれぞれを個別に適用することができ、それら態様のいくつかを組み合わせて適用することができる。
【0265】
1)ピクチャが複数のサブピクチャを有する場合に、そのピクチャにIRAPサブピクチャと非IRAPサブピクチャとの両方が含まれることが可能にされる。
【0266】
a. ピクチャ内のサブピクチャは、スライス、タイルグループ、MCTS、又はピクチャの任意の他のサブセットにすることができる。
【0267】
b. サブピクチャは、通常、それ自体のNALユニットで排他的に伝送されるが、必ずしも常にそうであるとは限らない。
【0268】
2)MCTS記述のための情報は、パラメータセット、タイルグループヘッダ、又は補足強化情報(SEI)メッセージに存在する/それらで信号通知され得る。
【0269】
3)あるいはまた、項目1)は、コーディングしたピクチャが複数のNALユニットで伝送される場合に、それらのNALユニットの1つ又は複数がIRAP NALユニットタイプであり、それらのNALユニットの1つ又は複数が非IRAP NALユニットタイプ(トレイリングNALユニットタイプ)であり得るように表すことができる。
【0270】
4)ピクチャが複数のサブピクチャを有しており、サブピクチャがIRAPサブピクチャと非IRAPサブピクチャとの混合である場合に、ピクチャは、0に等しいTemporalIDを有する必要がある。
【0271】
5)ピクチャが複数のサブピクチャを有しており、サブピクチャがIRAPサブピクチャと非IRAPサブピクチャとの混合である場合に、IRAPサブピクチャは、MCTSの一部である必要があり得る。
【0272】
6)ピクチャが複数のサブピクチャを有しており、サブピクチャがIRAPサブピクチャと非IRAPサブピクチャとの混合である場合に、アクセスユニット区切り文字が、ビットストリームに存在し、システム/アプリケーションがアクセスユニットを容易に識別できるように支援するために、ピクチャに関連付けられる必要がある。
【0273】
7)混合IRAP及び非IRAPサブピクチャを含むピクチャが存在し得るかどうかを指定するために、タイルグループによって直接的又は間接的に参照されるパラメータセットにフラグが存在する。
【0274】
a. フラグは、シーケンスパラメータセット、ピクチャパラメータセット、又はタイルグループによって直接又は間接的に参照される別のタイプのパラメータセット等のパラメータセットで信号通知できる。特に、シーケンスパラメータセット内のフラグのシグナリングが好ましい場合がある。
【0275】
b. フラグはsps_mixed_tile_groups_in_pic_flagと呼ばれ得る。
【0276】
8)IDRタイルグループを含むNALユニットの場合に、ピクチャのPOC導出においてPOC MSBがリセットされるかどうかを指定するために、そのタイルグループヘッダにフラグが存在する。
【0277】
9)PicRefreshFlagと呼ばれる変数が、規定され、ピクチャに関連付けられる。このフラグは、ピクチャを復号化するときにPOCの導出及びDPBの状態をリフレッシュする必要があるかどうかを指定する。
【0278】
10)PicRefreshFlagの値は、以下のように導出される。
【0279】
a. 現在のタイルグループがビットストリームの最初のアクセスユニットに属する場合に、PicRefreshFlagは1に等しく設定される。
【0280】
b. それ以外の場合に、現在のタイルグループがIDRタイルグループである場合に、PicRefreshFlagは、sps_mixed_tile_groups_in_pic_flag ? poc_msb_reset_flag:1に等しく設定される。
【0281】
c. それ以外の場合に、現在のタイルグループがCRAタイルグループである場合に、以下が適用される。
【0282】
i. 現在のアクセスユニットがコーディングしたシーケンスの最初のアクセスユニットである場合に(つまり、そのアクセスユニットがシーケンスの終わりのNALユニットの直後に続く場合に、又は関連する変数HandleCraAsFirstPicInCvsFlagが1に等しい場合に)、PicRefreshFlagは1に等しく設定される。
【0283】
ii. それ以外の場合に、PicRefreshFlagは0に等しく設定される。
【0284】
d. それ以外の場合に(現在のタイルグループはビットストリームの最初のアクセスユニットに属しておらず、IRAPタイルグループではない)、PicRefreshFlagは0に等しく設定される。
【0285】
11)PicRefreshFlagが1に等しい場合に、ピクチャのPOCの導出中に、POC MSBの値(つまり、PicOrderCntMsb)がリセットされる(つまり、0に等しく設定される)。
【0286】
12)sps_mixed_tile_group_in_pic_flagが1に等しい場合に、以下の制約が適用される。
【0287】
a. 現在のピクチャの全てのタイルグループがIDRタイルグループである場合に、poc_msb_reset_flagの値は、現在のピクチャの全てのIDRタイルグループについて1に等しくしなければならない。
【0288】
b. 現在のピクチャにIDRタイルグループとIDRタイルグループではない少なくとも1つのタイルグループとが含まれている場合に、poc_msb_reset_flagの値は0に等しくしなければならない。
【0289】
13)MCTSが、sps_mixed_tile_groups_in_pic_flagが1に等しい元のビットストリームからサブビットストリームになるように抽出される場合に、抽出したサブビットストリームのアクティブなSPSのsps_mixed_tile_groups_in_pic_flagの値を0に等しく設定する必要があり、つまり、抽出したサブビットストリームでは、各ピクチャは、IRAPタイルグループのみ又は非IRAPタイルグループのみを含む必要がある。換言すると、1つのピクチャに属し、且つ1つのMCTSに属するタイルグループは、同じNALユニットタイプを含まなければならないという必要がある。
【0290】
14)参照ピクチャセット(RPS)又は参照ピクチャリスト(RPL)等の参照ピクチャ管理に必要な情報は、そのNALユニットタイプに関係なく、タイルグループヘッダで信号通知される。あるいはまた、そのような情報は、ピクチャヘッダでのみ通知される場合がある(ピクチャヘッダが存在する場合に)。
【0291】
15)参照ピクチャリスト(例えば、RPLアプローチの場合にはRefPicList[0]及びRefPicList[1]、又はRPSアプローチの場合にはRefPicList0[]及びRefPicList1[]、又はピクチャのインター予測動作のための参照ピクチャを含む同様のリスト)は、そのNALユニットタイプに関係なく、各タイルグループの復号化の開始時に構成される。
【0292】
16)参照ピクチャマーキングプロセスは、DPB内の各参照ピクチャが、信号通知された参照ピクチャ管理情報(例えば、RPLアプローチの場合にはRefPicList[0]及びRefPicList[1])、又はRPSアプローチの場合にはRPSサブセット)のエントリによって参照されているかどうかをチェックすることによって行われる。
【0293】
17)PicRefreshFlagが1に等しい場合に、参照ピクチャマーキングプロセス中に、DPB内の全ての参照ピクチャは「参照に使用されない」としてマークされる。
【0294】
18)RPLアプローチのための参照ピクチャマーキングプロセスの詳細は以下の通りである。
【0295】
a. PicRefreshFlagが1に等しい場合に、DPB内の全ての参照ピクチャは「参照に使用されない」としてマークされる。
【0296】
b. それ以外の場合には、以下が適用される。
【0297】
i. 「短期参照に使用される」とマークされたDPBの各参照ピクチャについて、それ(参照ピクチャ)がRefPicList[0]又はRefPicList[1]のLTRPエントリによって参照されると、参照ピクチャは「長期参照に使用される」とマークされる。
【0298】
ii.RefPicList[0]又はRefPicList[1]のどのエントリによっても参照されない、DPB内の各参照ピクチャは、「参照に使用されない」としてマークされる。
【0299】
図9は、本開示の一実施形態による、ビデオコーディング装置900(例えば、ビデオエンコーダ20又はビデオデコーダ30)の概略図である。ビデオコーディング装置900は、本明細書で説明した開示される実施形態を実施するのに適している。ビデオコーディング装置900は、データを受信するための入力ポート910及び受信機ユニット(Rx)920と;データを処理するためのプロセッサ、論理ユニット、又は中央処理装置(CPU)930と;データを送信するための送信機ユニット(Tx)940及び出力ポート950と;データを格納するためのメモリ960と;を含む。ビデオコーディング装置900は、光信号又は電気信号の出力又は入力のための入力ポート910、受信機ユニット920、送信機ユニット940、及び出力ポート950に結合した光/電気(OE:optical-to-electrical)コンポーネント及び電気/光(EO:electrical-to-optical)コンポーネントも含み得る。
【0300】
プロセッサ930は、ハードウェア及びソフトウェアによって実装される。プロセッサ930は、1つ又は複数のCPUチップ、コア(例えば、マルチコアプロセッサとして)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、及びデジタル信号プロセッサ(DSP)として実装され得る。プロセッサ930は、入力ポート910、受信機ユニット920、送信機ユニット940、出力ポート950、及びメモリ960と通信している。プロセッサ930は、コーディングモジュール970を含む。コーディングモジュール970は、上記の開示した実施形態を実施する。例えば、コーディングモジュール970は、様々なネットワーキング機能を実装、処理、準備、又は提供する。従って、コーディングモジュール970を含めることは、ビデオコーディング装置900の機能に実質的な改善を与え、ビデオコーディング装置900の異なる状態への変換をもたらす。あるいはまた、コーディングモジュール970は、メモリ960に格納され、プロセッサ930によって実行される命令として実装される。
【0301】
ビデオコーディング装置900は、ユーザとの間でデータを通信するための入力及び/又は出力(I/O)装置980も含み得る。I/O装置980は、ビデオデータを表示するためのディスプレイ、オーディオデータを出力するためのスピーカ等の出力装置を含み得る。I/O装置980は、キーボード、マウス、トラックボール等の入力装置、及び/又はそのような出力装置と相互作用するための対応するインターフェイスを含み得る。
【0302】
メモリ960は、1つ又は複数のディスク、テープドライブ、及びソリッドステートドライブを含み、オーバーフローデータ記憶装置として使用され、そのようなプログラムが実行のために選択されたときにプログラムを格納し、プログラムの実行中に読み出される命令及びデータを格納することができる。メモリ960は、揮発性及び/又は不揮発性であってもよく、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、三元連想メモリ(TCAM)、及び/又はスタティックランダムアクセスメモリ(SRAM)であってもよい。
【0303】
図10は、コーディングするための手段1000の一実施形態の概略図である。実施形態では、コーディングするための手段1000は、ビデオコーディング装置1002(例えば、ビデオエンコーダ20又はビデオデコーダ30)に実装される。ビデオコーディング装置1002は、受信手段1001を含む。受信手段1001は、符号化すべきピクチャを受信する、又は復号化すべきビットストリームを受信するように構成される。ビデオコーディング装置1002は、受信手段1001に結合した送信手段1007を含む。送信手段1007は、ビットストリームをデコーダに送信するか、又は復号化した画像を表示手段(例えば、I/O装置980のうちの1つ)に送信するように構成される。
【0304】
ビデオコーディング装置1002は、記憶手段1003を含む。記憶手段1003は、受信手段1001又は送信手段1007の少なくとも一方に結合される。記憶手段1003は、命令を記憶するように構成される。ビデオコーディング装置1002は、処理手段1005も含む。処理手段1005は、記憶手段1003に結合される。処理手段1005は、記憶手段1003に記憶された命令を実行して、本明細書で開示する方法を実行するように構成される。
【0305】
本明細書に記載の例示的な方法のステップは、必ずしも説明した順序で実行する必要はなく、そのような方法のステップの順序は、単に例示的なものであると理解すべきであることも理解されたい。同様に、本開示の様々な実施形態と一致する方法において、追加のステップをそのような方法に含めてもよく、特定のステップを省略又は組み合わせてもよい。
【0306】
本開示ではいくつかの実施形態を提供しているが、開示したシステム及び方法は、本開示の精神又は範囲から逸脱することなく、他の多くの特定の形態で具体化され得ることを理解されたい。本実施例は、例示的であり、限定的ではないと見なすべきであり、意図は、本明細書に与えられた詳細に限定すべきではない。例えば、様々な要素又はコンポーネントを別のシステムに組み合わせ又は統合し、或いは特定の特徴を、省略してもよく、又は実装しなくてもよい。
【0307】
さらに、様々な実施形態で離散的又は別個として説明及び図示した技術、システム、サブシステム、及び方法は、本開示の範囲から逸脱することなく、他のシステム、モジュール、技術、又は方法と組み合わせ又は統合することができる。互いに結合又は直接結合又は通信するものとして示し又は議論した他のアイテムは、電気的、機械的、又は他の方法で、何らかのインターフェイス、装置、又は中間コンポーネントを介して間接的に結合又は通信することができる。変更、置換、及び交替の他の例は、当業者によって確認可能であり、本明細書に開示する精神及び範囲から逸脱することなく行うことができる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
【外国語明細書】