(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023184565
(43)【公開日】2023-12-28
(54)【発明の名称】ビデオエンコーダ、ビデオデコーダ、及び対応する方法
(51)【国際特許分類】
H04N 19/70 20140101AFI20231221BHJP
【FI】
H04N19/70
【審査請求】有
【請求項の数】11
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023177002
(22)【出願日】2023-10-12
(62)【分割の表示】P 2021537968の分割
【原出願日】2019-12-12
(31)【優先権主張番号】62/785,517
(32)【優先日】2018-12-31
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/871,024
(32)【優先日】2019-07-05
(33)【優先権主張国・地域又は機関】US
(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つのピクチャのコーディングデータを含み、各ピクチャは、少なくとも1つのタイルグループを含む。方法は、コーディングピクチャのタイル情報がパラメータセット内に又はタイルグループヘッダ内に存在するかを指定するフラグをパースするステップを含む。タイル情報は、ピクチャのどのタイルがタイルグループに含まれるかを示す。方法は、フラグに基づき、パラメータセット又はタイルグループヘッダからタイル情報をパースする。方法は、タイル情報に基づき、コーディングピクチャの復号データを取得する。
【選択図】
図8
【特許請求の範囲】
【請求項1】
複数のピクチャのためのコーディングデータを含むビデオビットストリームを符号化するエンコーダにおいて実施される方法であって、前記複数のピクチャのうちの各ピクチャは少なくとも1つのスライスと複数のタイルとを含み、前記方法は、
前記エンコーダのプロセッサにより、コーディングピクチャのタイル情報がパラメータセット内に存在するか又はスライスヘッダ内に存在するかを示すフラグを符号化するステップと、
前記プロセッサにより、前記フラグが、コーディングピクチャの前記タイル情報は前記パラメータセット内に符号化されることを示すとき、前記タイル情報を前記パラメータセット内に符号化するステップと、
前記プロセッサにより、前記フラグが、コーディングピクチャの前記タイル情報は前記スライスヘッダ内に符号化されることを示すとき、前記タイル情報を前記スライスヘッダ内に符号化するステップと、
前記プロセッサにより、前記タイル情報に基づき、前記ビデオビットストリーム内に前記ピクチャを符号化するステップと、
を含む方法。
【請求項2】
前記プロセッサにより、前記タイル情報を前記パラメータセット内に符号化するステップは、前記プロセッサにより、前記ピクチャ内の各スライスの最初のタイルのタイル識別子(ID)を符号化するステップを含む、請求項1に記載の方法。
【請求項3】
前記プロセッサにより、前記タイル情報を前記パラメータセット内に符号化するステップは、
前記プロセッサにより、前記パラメータセットを参照する現在スライスが1より多くのタイルを含むかどうかを指定する第2フラグをパースするステップと、
前記プロセッサにより、前記第2フラグが、前記パラメータセットを参照する前記現在スライスが1より多くのタイルを含むことを指定するという決定に応答して、前記ピクチャ内の前記現在スライスの最後のタイルのタイルIDを符号化するステップと、
を更に含む、請求項2に記載の方法。
【請求項4】
前記プロセッサにより、前記タイル情報を前記パラメータセット内に符号化するステップは、
前記プロセッサにより、前記パラメータセットを参照する現在スライスが1より多くのタイルを含むかどうかを指定する第2フラグをパースするステップと、
前記プロセッサにより、前記第2フラグが、前記パラメータセットを参照する前記現在スライスが1より多くのタイルを含むことを指定するという決定に応答して、前記ピクチャ内の前記現在スライス内のタイルの数を符号化するステップと、
を更に含む、請求項2に記載の方法。
【請求項5】
前記プロセッサにより、前記タイル情報を前記スライスヘッダ内に符号化するステップは、
前記プロセッサにより、前記ピクチャ内のスライスの最初のタイルのタイルIDをスライスヘッダ内に符号化するステップと、
前記プロセッサにより、前記フラグが、前記コーディングピクチャの前記タイル情報は前記スライスヘッダ内に符号化されることを指定するかどうか、及び前記第2フラグが、前記パラメータセットを参照する現在スライスは1より多くのタイルを含むことを指定するかどうか、を決定するステップと、
前記プロセッサにより、前記フラグが、前記コーディングピクチャの前記タイル情報は前記スライスヘッダ内に符号化されることを指定する、及び前記第2フラグが、前記パラメータセットを参照する前記現在スライスは1より多くのタイルを含むことを指定する、という決定に応答して、前記ピクチャ内の前記スライスの最後のタイルのタイルIDを前記スライスヘッダ内に符号化するステップと、
を含む、請求項3に記載の方法。
【請求項6】
ネットワークに沿ってデコーダへ向けて前記ビデオビットストリームを送信するステップ、を更に含む請求項1に記載の方法。
【請求項7】
前記タイル情報は、前記ピクチャのどのタイルがスライスに含まれるかを示す、請求項1に記載の方法。
【請求項8】
ビデオビットストリームを復号するデコーダにおいて実施される方法であって、前記ビデオビットストリームは、複数のピクチャのためのコーディングデータを含み、前記複数のピクチャのうちの各ピクチャは少なくとも1つのスライスと複数のタイルとを含み、前記方法は、
前記デコーダのプロセッサにより、コーディングピクチャのタイル情報がパラメータセット内に存在するか又はスライスヘッダ内に存在するかを示すフラグをパースするステップと、
前記プロセッサにより、前記フラグが、コーディングピクチャの前記タイル情報は前記パラメータセット内に符号化されることを示すとき、前記タイル情報を前記パラメータセットからパースするステップと、
前記プロセッサにより、前記フラグが、コーディングピクチャの前記タイル情報は前記スライスヘッダ内に符号化されることを示すとき、前記タイル情報を前記スライスヘッダからパースするステップと、
前記タイル情報に基づき、前記コーディングピクチャの復号データを取得するステップと、
を含む方法。
【請求項9】
前記プロセッサにより、前記パラメータセット内の前記タイル情報をパースするステップは、前記ピクチャ内の各スライスの最初のタイルのタイル識別子(ID)を復号するステップを含む、請求項8に記載の方法。
【請求項10】
前記プロセッサにより、前記パラメータセット内の前記タイル情報をパースするステップは、
前記プロセッサにより、前記パラメータセットを参照する現在スライスが1より多くのタイルを含むかどうかを指定する第2フラグをパースするステップと、
前記第2フラグが、前記パラメータセットを参照する前記現在スライスが1より多くのタイルを含むことを指定するという決定に応答して、前記ピクチャ内の前記現在スライスの最後のタイルのタイルIDを復号するステップと、
を更に含む、請求項9に記載の方法。
【請求項11】
前記プロセッサにより、前記パラメータセット内の前記タイル情報をパースするステップは、
前記プロセッサにより、前記パラメータセットを参照する現在スライスが1より多くのタイルを含むかどうかを指定する第2フラグをパースするステップと、
前記第2フラグが、前記パラメータセットを参照する前記現在スライスが1より多くのタイルを含むことを指定するという決定に応答して、前記ピクチャ内の前記現在スライス内のタイルの数を復号するステップと、
を更に含む、請求項9に記載の方法。
【請求項12】
前記プロセッサにより、前記スライスヘッダ内の前記タイル情報をパースするステップは、
スライスヘッダ内の、前記ピクチャ内のスライスの最初のタイルのタイルIDを復号するステップと、
前記フラグが、前記コーディングピクチャの前記タイル情報は前記スライスヘッダ内に符号化されることを指定するかどうか、及び前記第2フラグが、前記パラメータセットを参照する現在スライスは1より多くのタイルを含むことを指定するかどうか、を決定するステップと、
前記フラグが、前記コーディングピクチャの前記タイル情報は前記スライスヘッダ内に符号化されることを指定する、及び前記第2フラグが、前記パラメータセットを参照する前記現在スライスは1より多くのタイルを含むことを指定する、という決定に応答して、前記スライスヘッダ内の、前記ピクチャ内の前記スライスの最後のタイルのタイルIDを復号するステップと、
を含む、請求項10に記載の方法。
【請求項13】
前記プロセッサにより、コーディングピクチャのタイル情報がパラメータセット内に存在するか又はスライスヘッダ内に存在するかを指定する前記フラグをパースするステップは、前記フラグが前記パラメータセット内に存在しないという決定に応答して、前記フラグが、前記コーディングピクチャの前記タイル情報は前記スライスヘッダ内にのみ存在することを指定すると推定するステップを含む、請求項8に記載の方法。
【請求項14】
前記パラメータセットはピクチャパラメータセットである、請求項1~13のいずれかに記載の方法。
【請求項15】
前記タイル情報は、前記ピクチャのどのタイルがスライスに含まれるかを示す、請求項8に記載の方法。
【請求項16】
ビデオコーディング装置であって、
プロセッサと、前記プロセッサに結合された受信機と、前記プロセッサに結合された送信機と、を含み、前記プロセッサ、受信機、及び送信機は、請求項1~15のいずれかに記載の方法を実行するよう構成される、ビデオコーディング装置。
【請求項17】
ビデオコーディング装置による使用のためのコンピュータプログラムプロダクトを含む非一時的コンピュータ可読媒体であって、前記コンピュータプログラムプロダクトは、プロセッサにより実行されると前記ビデオコーディング装置に請求項1~15のいずれかに記載の方法を実行させる、前記非一時的コンピュータ可読媒体に記憶されたコンピュータ実行可能命令を含む、非一時的コンピュータ可読媒体。
【請求項18】
エンコーダであって、
ピクチャのタイル情報がパラメータセット内に存在するか又はスライスヘッダ内に存在するかを示すフラグを符号化するよう構成される第1符号化ユニットと、
第2符号化ユニットであって、
前記フラグが、ピクチャの前記タイル情報は前記パラメータセット内に符号化されると示すとき、前記パラメータセット内に前記タイル情報を符号化し、
前記フラグが、ピクチャの前記タイル情報は前記スライスヘッダ内に符号化されると示すとき、前記スライスヘッダ内に前記タイル情報を符号化し、
前記タイル情報に基づき、ビデオビットストリーム内に前記ピクチャを符号化する、
よう構成される第2符号化ユニットと、
を含むエンコーダ。
【請求項19】
デコーダであって、
パースユニットであって、
コーディングピクチャのタイル情報がパラメータセット内に存在するか又はスライスヘッダ内に存在するかを示すフラグをパースし、
前記フラグが、コーディングピクチャの前記タイル情報は前記パラメータセット内に符号化されると示すとき、前記パラメータセットから前記タイル情報をパースし、
前記フラグが、コーディングピクチャの前記タイル情報は前記スライスヘッダ内に符号化されると示すとき、前記スライスヘッダから前記タイル情報をパースする、
よう構成されるパースユニットと、
前記タイル情報に基づき、前記コーディングピクチャの復号データを取得するよう構成される取得ユニットと、
を含むデコーダ。
【請求項20】
請求項1~15のいずれかに記載の方法を実行する処理回路を含むコーダ。
【請求項21】
コンピュータ又はプロセッサに請求項1~15のいずれかに記載の方法を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、ビデオコーディングに関し、具体的には、ビデオコーディングにおけるタイルグループシグナリングに関する。
【背景技術】
【0002】
比較的短いビデオでも描写するために必要なビデオデータの量は相当なものになり得る。これは、データが限られた帯域幅能力を有する通信ネットワークに渡りストリーミングされる又はその他の場合に通信されるとき、困難をもたらすことがある。したがって、ビデオデータは、通常、今日の電気通信ネットワークに渡り通信される前に、圧縮される。ビデオが記憶装置に格納されるとき、メモリリソースが限られていることがあるので、ビデオのサイズも問題になり得る。ビデオ圧縮装置は、送信又は記憶の前に、ソースにおいてビデオデータをコーディングするためにソフトウェア及び/又はハードウェアを度々使用し、それによりデジタルビデオ画像を表現するために必要なデータの量を削減する。圧縮されたデータは、次に、ビデオデータを復号するビデオ伸長装置により宛先において受信される。限られたネットワークリソース及びより高いビデオ品質の増え続ける要求に伴い、画像品質を僅かしか又は全く犠牲にせずに圧縮率を向上する改良された圧縮及び伸長技術が望ましい。
【発明の概要】
【0003】
本開示の第1の態様は、エンコーダにおいて実施される方法であって、前記方法は、
前記エンコーダのプロセッサにより、コーディングピクチャのタイル情報がパラメータセット内に存在するか又はタイルグループヘッダ内に存在するかを指定するフラグを符号化するステップであって、前記タイル情報は、前記ピクチャのどのタイルがタイルグループに含まれるかを示す、ステップと、
前記プロセッサにより、前記フラグが、コーディングピクチャの前記タイル情報は前記パラメータセット内に符号化されることを指定するという決定に応答して、前記タイル情報を前記パラメータセット内にのみ符号化するステップと、
前記プロセッサにより、前記フラグが、コーディングピクチャの前記タイル情報は前記タイルグループヘッダ内に符号化されることを指定するという決定に応答して、前記タイル情報を前記タイルグループヘッダ内にのみ符号化するステップと、
前記プロセッサにより、前記タイル情報に基づき、前記ビデオビットストリーム内に前記ピクチャを符号化するステップと、
ネットワークに沿ってデコーダへ向けて前記ビデオビットストリームを送信するステップと、
を含む方法を含む。本態様は、タイルグループ構造シグナリングを向上し及び冗長な情報を削減するメカニズムを提供する。
【0004】
任意的に、第1の態様では、前記プロセッサにより、前記タイル情報を前記パラメータセット内にのみ符号化するステップは、前記プロセッサにより、前記ピクチャ内の各タイルグループの最初のタイルのタイル識別子(ID)を符号化するステップを含む。
【0005】
任意的に、第1の態様では、前記プロセッサにより、前記タイル情報を前記パラメータセット内にのみ符号化するステップは、
前記プロセッサにより、前記パラメータセットを参照する現在タイルグループが1より多くのタイルを含むかどうかを指定する第2フラグをパースするステップと、
前記プロセッサにより、前記第2フラグが、前記パラメータセットを参照する前記現在タイルグループが1より多くのタイルを含むことを指定するという決定に応答して、前記ピクチャ内の前記現在タイルグループの最後のタイルのタイルIDを符号化するステップと、
を更に含む。
【0006】
任意的に、第1の態様では、前記プロセッサにより、前記タイル情報を前記パラメータセット内にのみ符号化するステップは、
前記プロセッサにより、前記パラメータセットを参照する現在タイルグループが1より多くのタイルを含むかどうかを指定する第2フラグをパースするステップと、
前記プロセッサにより、前記第2フラグが、前記パラメータセットを参照する前記現在タイルグループが1より多くのタイルを含むことを指定するという決定に応答して、前記ピクチャ内の前記現在タイルグループ内のタイルの数を符号化するステップと、
を更に含む。
【0007】
任意的に、第1の態様では、前記プロセッサにより、前記タイル情報を前記タイルグループヘッダ内にのみ符号化するステップは、
前記プロセッサにより、前記ピクチャ内のタイルグループの最初のタイルのタイルIDをタイルグループヘッダ内に符号化するステップと、
前記プロセッサにより、前記フラグが、前記コーディングピクチャの前記タイル情報は前記タイルグループヘッダ内に符号化されることを指定するかどうか、及び前記第2フラグが、前記パラメータセットを参照する現在タイルグループは1より多くのタイルを含むことを指定するかどうか、を決定するステップと、
前記フラグが、前記コーディングピクチャの前記タイル情報は前記タイルグループヘッダ内に符号化されることを指定する、及び前記第2フラグが、前記パラメータセットを参照する前記現在タイルグループは1より多くのタイルを含むことを指定する、という決定に応答して、前記ピクチャ内の前記タイルグループの最後のタイルのタイルIDを前記タイルグループヘッダピクチャ内に符号化するステップと、
を含む。
【0008】
本開示の第2の態様は、ビデオビットストリームを復号するデコーダにおいて実施される方法であって、前記ビットストリームは、少なくとも1つのピクチャのためのコーディングデータを含み、各ピクチャは少なくとも1つのタイルグループを含み、前記方法は、
前記復号のプロセッサにより、コーディングピクチャのタイル情報がパラメータセット内又はタイルグループヘッダ内に存在するかを指定するフラグをパースするステップであって、前記タイル情報は、前記ピクチャのどのタイルがタイルグループに含まれるかを示す、ステップと、
前記プロセッサにより、前記フラグが、コーディングピクチャの前記タイル情報は前記パラメータセット内に符号化されることを指定するという決定に応答して、前記タイル情報を前記パラメータセットからパースするステップと、
前記プロセッサにより、前記フラグが、コーディングピクチャの前記タイル情報は前記タイルグループヘッダ内に符号化されることを指定するという決定に応答して、前記タイル情報を前記タイルグループヘッダからパースするステップと、
前記タイル情報に基づき、前記符号化ピクチャの前記復号データを取得するステップと、
を含む方法を含む。
【0009】
任意的に、第2態様では、前記プロセッサにより、前記パラメータセット内の前記タイル情報をパースするステップは、前記ピクチャ内の各タイルグループの最初のタイルのタイル識別子(ID)を復号するステップを含む。
【0010】
任意的に、第2態様では、前記プロセッサにより、前記パラメータセット内の前記タイル情報をパースするステップは、
前記プロセッサにより、前記パラメータセットを参照する現在タイルグループが1より多くのタイルを含むかどうかを指定する第2フラグをパースするステップと、
前記第2フラグが、前記パラメータセットを参照する前記現在タイルグループが1より多くのタイルを含むことを指定するという決定に応答して、前記ピクチャ内の前記現在タイルグループの最後のタイルのタイルIDを復号するステップと、
を更に含む。
【0011】
任意的に、第2態様では、前記プロセッサにより、前記パラメータセット内の前記タイル情報をパースするステップは、
前記プロセッサにより、前記パラメータセットを参照する現在タイルグループが1より多くのタイルを含むかどうかを指定する第2フラグをパースするステップと、
前記第2フラグが、前記パラメータセットを参照する前記現在タイルグループが1より多くのタイルを含むことを指定するという決定に応答して、前記ピクチャ内の前記現在タイルグループ内のタイルの数を復号するステップと、
を更に含む。
【0012】
任意的に、第2態様では、前記プロセッサにより、前記タイルグループヘッダ内の前記タイル情報をパースするステップは、
タイルグループヘッダ内の、前記ピクチャ内のタイルグループの最初のタイルのタイルIDを復号するステップと、
前記フラグが、前記コーディングピクチャの前記タイル情報は前記タイルグループヘッダ内に符号化されることを指定するかどうか、及び前記第2フラグが、前記パラメータセットを参照する現在タイルグループは1より多くのタイルを含むことを指定するかどうか、を決定するステップと、
前記フラグが、前記コーディングピクチャの前記タイル情報は前記タイルグループヘッダ内に符号化されることを指定する、及び前記第2フラグが、前記パラメータセットを参照する前記現在タイルグループは1より多くのタイルを含むことを指定する、という決定に応答して、前記タイルグループヘッダピクチャ内の、前記ピクチャ内の前記タイルグループの最後のタイルのタイルIDを復号するステップと、
を含む。
【0013】
任意的に、第2態様では、前記プロセッサにより、コーディングピクチャのタイル情報がパラメータセット内に又はタイルグループヘッダ内に存在するかどうかを指定する前記フラグをパースするステップは、前記フラグが前記パラメータセット内に存在しないという決定に応答して、前記フラグが、前記コーディングピクチャの前記タイル情報は前記タイルグループヘッダ内にのみ存在することを指定すると推定するステップを含む。
【0014】
任意的に、前述の態様のいずれかにおいて、前記フラグはtile_group_info_in_pps_flagと呼ばれる。
【0015】
任意的に、前述の態様のいずれかにおいて、前記第2フラグはsingle_tile_per_tile_group_flagと呼ばれる。
【0016】
任意的に、前述の態様のいずれかにおいて、前記パラメータセットはピクチャパラメータセットである。
【0017】
任意的に、前述の態様のいずれかにおいて、前記パラメータセットはシーケンスパラメータセットである。
【0018】
任意的に、前述の態様のいずれかにおいて、前記パラメータセットはビデオパラメータセットである。
【0019】
本開示の第3の態様は、ビデオコーディング装置であって、
プロセッサと、前記プロセッサに接続された受信機と、前記プロセッサに接続された送信機と、を含み、前記プロセッサ及び送信機は、上述の態様のいずれかの方法を実行するよう構成される、ビデオコーディング装置を含む。
【0020】
本開示の第4の態様は、ビデオコーディング装置による使用のためのコンピュータプログラムプロダクトを含む非一時的コンピュータ可読媒体であって、前記コンピュータプログラムプロダクトは、プロセッサにより実行されると前記ビデオコーディング装置に前述の態様のいずれかの方法を実行させる、前記非一時的コンピュータ可読媒体に記憶されたコンピュータ実行可能命令を含む、非一時的コンピュータ可読媒体を含む。
【0021】
明確さを目的として、前述の実施形態のうちのいずれか1つは、他の前述の実施形態のうちの任意の1つ以上と結合されて、本開示の範囲内にある新しい実施形態を生成してよい。
【0022】
上述及び他の特徴は、添付の図面及び請求の範囲と関連して取り入れられる以下の詳細な説明から一層明確に理解されるだろう。
【図面の簡単な説明】
【0023】
本開示のより完全な理解のために、ここで、添付の図面及び詳細な説明と関連して以下の簡単な説明を参照する。ここで同様の参照符号は同様の部分を表す。
【0024】
【
図1】ビデオ信号をコーディングする例示的な方法のフローチャートである。
【0025】
【
図2】ビデオコーディングのための例示的なコーディング及び復号(コーデック)システムの概略図である。
【0026】
【
図3】例示的なビデオエンコーダを示す概略図である。
【0027】
【
図4】例示的なビデオデコーダを示す概略図である。
【0028】
【
図5】符号化ビデオシーケンスを含む例示的なビットストリームを示す概略図である。
【0029】
【
図6】例示的なタイルグループにパーティションされたピクチャを示す概略図である。
【0030】
【
図7】例示的なビデオコーディング装置の概略図である。
【0031】
【
図8】タイルグループ情報の位置を示すフラグと共に画像をビットストリームに符号化する例示的な方法のフローチャートである。
【0032】
【
図9】タイルグループ情報の位置を示すフラグと共に画像をビットストリームから復号する例示的な方法のフローチャートである。
【0033】
【
図10】ビットストリーム内の画像のビデオシーケンスをコーディングする例示的なシステムの概略図である。
【発明を実施するための形態】
【0034】
初めに理解されるべきことに、1つ以上の実施形態の説明的実装が以下に適用されるが、開示のシステム及び/又は方法は、現在知られているか又は既存かに関わらず、任意の数の技術を用いて実装されてよい。本開示は、ここに図示され説明される例示的な設計及び実装を含む以下に説明する説明的実装、図面、及び技術に決して限定されるべきではないが、添付の請求の範囲の範囲内で、それらの均等物の全範囲と共に、変更されてよい。
【0035】
多くのビデオ圧縮技術が、最小限のデータ損失によりビデオファイルのサイズを削減するために利用され得る。例えば、ビデオ圧縮技術は、ビデオシーケンスの中のデータ冗長性を低減又は除去するために、空間(例えば、イントラピクチャ)予測及び/又は時間(例えば、インターピクチャ)予測を実行することを含み得る。ブロックに基づくビデオコーディングでは、ビデオスライス(例えば、ビデオピクチャ又はビデオピクチャの部分)は、木ブロック、コーディングブロック(coding block (CB))、コーディング木ブロック(coding tree block (CTB))、コーディング木単位(coding tree unit (CTU))、コーディング単位(coding unit (CU))、及び/又はコーディングノードとも呼ばれてよいビデオブロックにパーティションされてよい。コーディングブロック(coding block (CB))は、何らかの値のM及びNについてサンプルのM×Nブロックであってよい。その結果、コーディングブロックへのCTBの分割はパーティションである。相応して、コーディング木ブロック(coding tree block (CTB))は、何らかの値のNについてサンプルのN×Nブロックであってよい。その結果、CTBへの成分の分割はパーティションである。コーディング木単位(coding tree unit (CTU))は、ルマサンプルのCTB、3個のサンプル配列を有するピクチャのクロマサンプルの2個の対応するCTB、又は単色ピクチャ又は3個の別個の色平面及びサンプルをコーディングするために使用されるシンタックス構造を用いてコーディングされるピクチャのサンプルのCTBである。コーディング単位(coding unit (CU))は、ルマサンプルのコーディングブロック、3個のサンプル配列を有するピクチャのクロマサンプルの2個の対応するコーディングブロック、又は単色ピクチャ又は3個の別個の色平面及びサンプルをコーディングするために使用されるシンタックス構造を用いてコーディングされるピクチャのサンプルのコーディングブロックである。
【0036】
ピクチャのイントラコーディング(I)スライス内のビデオブロックは、同じピクチャ内の近隣ブロックの中の参照サンプルに対して空間予測を用いてコーディングされる。ピクチャのインターコーディング片方向予測(P)又は双方向予測(B)スライス内のビデオブロックは、同じピクチャ内の近隣ブロックの中の参照サンプルに対する空間予測、又は他の参照ピクチャ内の参照サンプルに対する時間予測を利用してコーディングされてよい。ピクチャは、フレーム及び/又は画像と呼ばれてよく、参照ピクチャは、参照フレーム及び/又は参照画像と呼ばれてよい。空間又は時間予測は、画像ブロックを表す予測ブロックを生じる。残差データは、元の画像ブロックと予測ブロックとの間のピクセル差を表す。従って、インターコーディングブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、及びコーディングブロックと予測ブロックとの間の差を示す残差データに従い符号化される。イントラコーディングブロックは、イントラコーディングモード及び残差データに従い符号化される。更なる圧縮のために、残差データは、ピクセルドメインから変換ドメインへと変換されてよい。これらは、量子化されてよい残差変換係数を生じる。量子化済み変換係数は、最初に、2次元アレイに構成されてよい。量子化済み変換係数は、1次元ベクトルの変換係数を生成するためにスキャンされてよい。エントロピーコーディングは、更に多くの圧縮を達成するために適用されてよい。このようなビデオ圧縮技術は、以下に更に詳細に議論される。
【0037】
符号化ビデオが正確に復号されることを保証するために、ビデオは、対応するビデオコーディング標準に従い符号化及び復号される。ビデオコーディング標準は、国際電気通信連合(International Telecommunication Union (ITU))標準化部門(ITU-T)H.261、国際標準化機構/国際電気標準会議(International Organization for Standardization/International Electrotechnical Commission (ISO/IEC))動画専門家グループ(Motion Picture Experts Group (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としても知られている高度ビデオコーディング(Advanced Video Coding (AVC))、及びITU-T H.265又はMPEG-H Part2としても知られている高効率ビデオコーディング(High Efficiency Video Coding (HEVC))を含む。AVCは、スケーラブル映像コーディング(Scalable Video Coding (SVC))、多視点映像コーディング(Multiview Video Coding (MVC))、及び多視点映像コーディング及び奥行き(Multiview Video Coding plus Depth (MVC+D))、並びに3次元(three dimensional (3D))AVC(3D-AVC)のような拡張を含む。HEVCは、スケーラブルHEVC(Scalable HEVC (SHVC))、多視点HEVC(Multiview HEVC (MV-HEVC))、及び3D HEVC(3D-HEVC)のような拡張を含む。ITU-T及びISO/IECの共同ビデオ専門家チーム(joint video experts team (JVET))は、バーサタイルビデオコーディング(Versatile Video Coding (VVC))と呼ばれるビデオコーディング標準を開発し始めている。VVCは、JVET-L1001-v9を含むワーキングドラフト(Working Draft (WD))に含まれる。
【0038】
ビデオ画像をコーディングするために、画像は先ずパーティションされ、パーティションはビットストリームにコーディングされる。種々のピクチャパーティション方式が利用可能である。例えば、画像は、通常スライス、依存スライス、タイルに、及び/又は波面並列処理(Wavefront Parallel Processing (WPP))に従い、パーティションできる。簡単のために、HEVCは、ビデオコーディングのためにスライスをCTBのグループにパーティションするとき、通常スライス、依存スライス、タイル、WPP、及びそれらの組合せのみが使用できるように、エンコーダを制約する。このようなパーティションは、最大転送単位(Maximum Transfer Unit (MTU))サイズ適合、並列処理、及び削減されたエンドツーエンド遅延をサポートするために適用できる。MTUは、単一パケットの中で送信できる最大データ量を示す。パケットペイロードがMTUを超える場合、該ペイロードは、フラグメント化と呼ばれる処理を通じて2個のパケットに分割される。
【0039】
単にスライスとも呼ばれる通常スライスは、ループフィルタリング動作による何からの相互依存性にも拘わらず、同じピクチャ内の他の通常スライスと独立に再構成可能な画像のパーティションされた部分である。スライスは、ラスタスキャンで連続して順序付けられた整数個のCTUを含む。各スライスは、送信のために、それ自体のネットワーク抽象化層(Network Abstraction Layer (NAL))単位の中にカプセル化される。更に、ピクチャ内予測(イントラサンプル予測、動き情報予測、コーディングモード予測)、及びスライス境界に跨がるエントロピーコーディング依存性は、独立した再構成をサポートするために無効にされてよい。このような独立した再構成は、並列化をサポートする。例えば、通常スライスに基づく並列化は、最小限のインタープロセッサ又はインターコア通信を利用する。しかしながら、各々の通常スライスは独立なので、各スライスは、個別のスライスヘッダに関連付けられる。通常スライスの使用は、スライス毎のスライスヘッダのビットコストにより、及びスライス境界に跨がる予測の欠如により、相当なコーディングオーバヘッドを生じ得る。更に、通常スライスは、MTUサイズ要件の適合をサポートするために利用されてよい。具体的に、通常スライスは別個のNAL単位にカプセル化され、独立にコーディングされ得るので、スライスを複数のパケットに分解することを防ぐために、各々の通常スライスは、MTU方式におけるMTUよりも小さいべきである。このように、並列化の目的と、MTUサイズ適合の目的とは、ピクチャ内のスライスレイアウトに対して矛盾する要求を課すことがある。
【0040】
依存スライスは、通常スライスと同様であるが、短縮されたスライスヘッダを有し、ピクチャ内予測を壊すことなく、画像木ブロック境界のパーティションを可能にする。従って、依存スライスは、通常スライスが複数のNAL単位にフラグメント化されることを可能にし、これは、通常スライス全体の符号化が完了する前に、通常スライスの部分を送出可能にすることにより、削減されたエンドツーエンド遅延をもたらす。
【0041】
タイルは、タイルの列及び行を生成する水平及び垂直境界により生成される画像/ピクチャのパーティションされた部分である。タイルは、ピクチャ内の特定のタイル列及び特定のタイル行の中で長方形領域のCTUを含む。タイルはラスタスキャン順序(右から左へ、及び上から下へ)でコーディングされてよい。CTBのスキャン順序はタイル内でローカルである。従って、第1タイル内のCTBは、次のタイル内のCTBに進む前に、ラスタスキャン順序でコーディングされる。通常スライスと同様に、タイルは、ピクチャ内予測依存性、並びにエントロピー復号依存性を壊す。しかしながら、タイルは、個々のNAL単位に含まれなくてよく、従って、タイルはMTUサイズ適合のために使用されなくてよい。各タイルは1つのプロセッサ/コアにより処理でき、近隣タイルを復号する処理ユニットの間でインターピクチャ予測のために利用されるインタープロセッサ/インターコア通信は、(隣接タイルが同じスライス内にあるとき)共有スライスヘッダを運ぶこと、及びループフィルタリングに関連する再構成サンプル及びメタデータの共有を実行することに限定され得る。1つより多くのタイルがスライスに含まれるとき、スライス内の最初のエントリポイントオフセット以外の各タイルのエントリポイントバイトオフセットは、スライスヘッダの中でシグナリングされてよい。
【0042】
所与のコーディングビデオシーケンスは、HEVCで指定されたプロファイルの大部分について、タイル及び波面の両方を含むことができない。スライス及びタイル毎に、以下の条件のうちのいずれか又は両方が満たされるべきである。1)スライス内の全部のコーディング木ブロックが同じタイルに属する、及び、2)タイル内の全部のコーディング木ブロックが同じスライスに属する。波面セグメントは、正確に1個のCTB行を含み、WPPが使用されるとき、スライスがCTB行内で開始する場合、それは同じCTB行の中で終了しなければならない。
【0043】
WPPでは、画像はCTBの単一の行にパーティションされる。エントロピー復号及び予測メカニズムは、他の行の中のCTBからのデータを使用してよい。並列処理は、CTB行の並列復号を通じて可能にされる。例えば、現在の行は、先行する行と並列に復号されてよい。しかしながら、現在の行の復号は、2CTBだけ、先行する行の復号処理から遅れる。この遅延は、現在の行の中の現在CTBの上のCTB及び右上のCTBに関連するデータが、現在CTBがコーディングされる前に利用可能になることを保証する。このアプローチは、図式的に表すと波面として現れる。この時差のある開始は、最大で画像が含むCTB行と同じ数のプロセッサ/コアによる並列化を可能にする。ピクチャ内の近隣木ブロック行の間のピクチャ内予測が許可されるので、ピクチャ内予測を可能にするインタープロセッサ/インターコア通信が重要になり得る。WPPパーティションは、NAL単位サイズを考慮する。従って、WPPは、MTUサイズ適合をサポートしない。しかしながら、通常スライスは、特定のコーディングオーバヘッドを伴い、WPPと関連して使用でき、所望のMTUサイズ適合を実施する。
【0044】
タイルは、動き制約タイルセットも含んでよい。動き制約タイルセット(motion constrained tile set (MCTS))は、関連する動きベクトルがMCTSの内部にあるフルサンプル位置を、及び補間のためにMCTS内のフルサンプル位置のみを必要とする分数サンプル位置を指すよう制限されるように設計されたタイルセットである。更に、MCTSの外部のブロックから導出される時間動きベクトル予測のための動きベクトル候補の使用は、許されない。このように、各MCTSは、MCTSに含まれないタイルの存在無しに、独立に復号されてよい。HEVCは、3つのMCTS関連補足強化情報(supplemental enhancement information (SEI))メッセージ、つまり、時間MCTS SEIメッセージ、MCTS抽出情報セットSEIメッセージ、及びMCTS抽出情報ネストSEIメッセージを指定する。
【0045】
時間MCTS SEIメッセージは、ビットストリーム内のMCTSの存在を示すために、及びMCTSをシグナリングするために、使用されてよい。MCTS SEIメッセージは、MCTSの確認ビットストリームを生成するためにMCTSサブビットストリーム抽出(SEIメッセージのセマンティクスの部分として指定される)で使用できる補足情報を提供する。情報は、抽出情報セットの数を含み、それぞれが、MCTSの数を定義し、MCTSサブビットストリーム抽出処理の間に使用されるべき置換ビデオパラメータセット(replacement video parameter set (VPS))、シーケンスパラメータセット(sequence parameter set (SPS))、及びピクチャパラメータセット(picture parameter set (PPS))の生バイトシーケンスペイロード(raw bytes sequence payload (RBSP))バイトを含む。MCTSサブビットストリーム抽出処理に従いサブビットストリームを抽出するとき、スライスアドレスに関連するシンタックス要素(first_slice_segment_in_pic_flag及びslice_segment_addressを含む)の1つ又は全部は抽出されたサブビットストリームの中で異なる値を利用し得るので、パラメータセット(VPS、SPS、及びPPS)は書き換えられ又は置き換えられてよく、スライスヘッダは更新されてよい。
【0046】
上述のように、タイルグループは、ピクチャのタイルラスタスキャンにおいて又は長方形グループ化において、ピクチャの整数個のタイルを含む。タイルグループ内のタイルは、専ら単一のNAL単位に含まれる。タイルグループは、幾つかの例では、スライスに取って代わることができる。更なる符号化のためにピクチャをパーティションするときに利用されてよい種々のタイリング方式(つまり、タイルグループ化のためのアプローチ)がある。特定の例として、タイルグループ化は、タイルグループに一緒にグループ化されるタイルが、ピクチャ内の長方形の領域(ここでは長方形タイルグループと呼ばれる)を形成するように、制約できる。タイルグループに含まれるタイルは、タイルグループの最初のタイル及び最後のタイルを示すことにより、シグナリングされてよい。このような場合には、最初のタイルのタイルインデックスは、最後のタイルのタイルインデックスより小さい値であってよい。
【0047】
タイルグループ構造(例えば、必要な場合には、ピクチャ内のタイルグループのアドレス/位置、及びタイルグループ内のタイルの数)のシグナリングのために2つの可能性がある。1つ目は、パラメータセット内で、例えばピクチャパラメータセット(picture parameter set (PPS))内で、タイルグループ構造をシグナリングすることである。2つ目は、各タイルグループのヘッダ内で、タイルグループ構造をシグナリングすることである。2つのシグナリングの可能性は、同時に使用してはならない。各々の可能性はそれ自体の利点を有する。例えば、第1オプションは、各ピクチャの部分のみを送信可能にするために、タイルグループが、通常、MCTSとしてコーディングされる、360°ビデオのようなアプリケーションにとって有利である。この場合には、ビデオコーディングレイヤ(video coding layer (VCL))NAL単位へのタイルの割り当ては、通常、ピクチャの既知の符号化である。第2オプションは、VCL NAL単位へのタイルの割り当てが、タイルのビット単位での実際のサイズに依存する必要があり得る、アプリケーションシナリオにおいて、例えば無線ディスプレイのような超低遅延アプリケーションにおいて、有利である。タイルグループ構造がパラメータセット内でシグナリングされるとき、タイルグループヘッダ内の幾つかのシンタックス要素は、必要ないことがあり、従って除去されてよく、又はそれらの存在は調整される必要があってよい。
【0048】
幾つかのアプリケーションでは、ピクチャは幾つかのVCL NAL単位にカプセル化されてよく、各VCL NAL単位は1つのタイルグループを含む。このようなアプリケーションでは、このアプリケーションの各タイルグループは1個のタイルのみを含み得るので、並列処理は、主な目的/関心ではなくてよい。例は、視点に依存する配信最適化を有する360度ビデオアプリケーションであり得る。このような状況では、タイルグループ構造の現在のシグナリングは、パラメータセット内で又はタイルグループヘッダ内でシグナリングされるかに拘わらず、何らかの冗長性を有し得る。
【0049】
上述の問題を解決するために、タイルグループ構造シグナリングを向上する種々のメカニズムが、ここに開示される。更に説明されるように、実施形態では、エンコーダは、パラメータセットを参照するタイルグループの各々が1個のタイルのみを含むかどうかを指定するために、タイルグループにより直接又は間接に参照されるパラメータセットの中に、フラグ(例えば、single_tile_per_tile_group_flagと呼ばれるフラグ)を符号化できる。例えば、single_tile_per_tile_group_flagが、1(1)又は真に設定される場合、特定のシンタックス要素(例えば、タイルグループ内のタイルの数を指定するシンタックス要素)は、タイルグループヘッダの中で除外される。他のシンタックス要素も、ここに更に説明されるように、タイルヘッダから除外できる。更に、幾つかの実施形態では、エンコーダは、タイルグループ構造情報がパラメータセット内に存在するかどうかを指定するために、パラメータセット内にフラグ(例えば、tile_group_info_in_pps_flagと呼ばれるフラグ)を符号化できる。Tile_group_info_in_pps_flagの値は、パラメータセット及びタイルグループヘッダ内のタイルグループ構造に関連するシンタックス要素の存在を調整するために使用される。特定の実施形態では、tile_group_info_in_pps_flagは、single_tile_per_tile_group_flagの代わりに又はそれに追加して符号化できる。
【0050】
図1は、ビデオ信号のコーディングの例示的な動作方法100のフローチャートである。具体的に、ビデオ信号はエンコーダで符号化される。符号化処理は、ビデオファイルサイズを削減するために、種々のメカニズムを利用することにより、ビデオ信号を圧縮する。小さなファイルサイズほど、関連する帯域幅オーバヘッドを削減しながら、ユーザに向けて圧縮されたビデオファイルを送信することを可能にする。デコーダは、次に、エンドユーザに表示するために、圧縮されたビデオファイルを復号して元のビデオ信号を再構成する。復号処理は、通常、符号化処理のミラーであり、デコーダがビデオ信号を矛盾無く再構成することを可能にする。
【0051】
ステップ101で、ビデオ信号はエンコーダに入力される。例えば、ビデオ信号は、メモリに格納された非圧縮ビデオファイルであってよい。別の例として、ビデオファイルは、ビデオカメラのようなビデオキャプチャ装置によりキャプチャされ、ビデオのライブストリーミングをサポートするために符号化されてよい。ビデオファイルは、オーディオコンポーネント及びビデオコンポーネントの両方を含んでよい。ビデオコンポーネントは、シーケンスの中で閲覧されるとき、動きの視覚的印象を与える一連の画像フレームを含む。フレームは、ここではルマ成分(又はルマサンプル)と呼ばれる光、及びクロマ成分(又はクロマサンプル)と呼ばれる色、の観点で表現されるピクセルを含む。幾つかの例では、フレームは、3次元表示をサポートするために、深さ値も含んでよい。
【0052】
ステップ103で、ビデオはブロックにパーティションされる。パーティションは、圧縮のために、各フレーム内のピクセルを正方形及び/又は長方形ブロックに細分化することを含む。例えば、高効率ビデオコーディング(High Efficiency Video Coding(HEVC))(H.265及びMPEG-H Part2としても知られる)では、フレームは、先ず、所定のサイズ(例えば、64ピクセル×64ピクセル)のブロックであるコーディング木単位(coding tree unit(CTU))に分割できる。CTUは、ルマ及びクロマサンプルの両方を含む。コーディング木は、CTUをブロックに分割し、次に、更なる符号化をサポートする構成が達成されるまで、ブロックを繰り返し細分化するために利用されてよい。例えば、フレームのルマ成分は、個々のブロックが比較的同種の光の値を含むまで、細分化されてよい。さらに、フレームのクロマ成分は、個々のブロックが比較的同種の色の値を含むまで、細分化されてよい。したがって、パーティションメカニズムは、ビデオフレームの内容に依存して変化する。
【0053】
ステップ105で、ステップ103でパーティションされた画像ブロックを圧縮するために、種々の圧縮メカニズムが利用される。例えば、インター予測及び/又はイントラ予測が利用されてよい。インター予測は、共通のシーンの中のオブジェクトは連続フレームで現れる傾向があるという事実を利用するよう設計される。したがって、参照フレーム内のオブジェクトを描写するブロックは、隣接フレーム内で繰り返し示される必要がない。具体的には、テーブルのようなオブジェクトは、複数のフレームに渡り、一定の位置に留まってよい。したがって、テーブルは一度示され、隣接フレームは参照フレームに戻り参照できる。複数のフレームに渡りオブジェクトを一致させるために、パターンマッチングメカニズムが利用されてよい。さらに、例えばオブジェクトの動き又はカメラの動きにより、動くオブジェクトが複数のフレームに渡り表示されてよい。特定の例として、ビデオは、複数のフレームに渡りスクリーンを横切って移動する自動車を示してよい。このような動きを示すために、動きベクトルが利用できる。動きベクトルは、フレーム内のオブジェクトの座標から参照フレーム内の該オブジェクトの座標へのオフセットを提供する2次元ベクトルである。したがって、インター予測は、現在フレーム内の画像ブロックを、参照フレーム内の対応するブロックからのオフセットを示す動きベクトルのセットとして、符号化できる。
【0054】
イントラ予測は、共通フレーム内のブロックを符号化する。イントラ予測は、ルマ及びクロマ成分がフレーム内で密集する傾向があるという事実を利用する。例えば、木の一部の緑のパッチは、同様の緑のパッチに隣接して位置する傾向がある。イントラ予測は、複数の方向予測モード(例えば、HEVCでは33個)、平面モード、及び直流(direct current (DC))モードを利用する。方向モードは、現在ブロックが対応する方向の近隣ブロックのサンプルと同様/同じであることを示す。平面モードは、行/列(例えば、平面)に沿う一連のブロックが行の端にある近隣ブロックに基づき補間できることを示す。平面モードは、事実上、変化する値の比較的一定の勾配を利用することにより、行/列に渡る光/色の円滑な遷移を示す。DCモードは、境界円滑化のために利用され、ブロックが方向予測モードの角度方向に関連する全部の近隣ブロックのサンプルに関連する平均値と同様/同じであることを示す。したがって、イントラ予測ブロックは、実際の値の代わりに、種々の関係予測モードとして、画像ブロックを表すことができる。さらに、インター予測ブロックは、実際の値の代わりに、動きベクトル値として、画像ブロックを表すことができる。いずれの場合にも、予測ブロックは、幾つかの場合に画像を正確に表さないことがある。任意の差が残差ブロックに格納される。ファイルを更に圧縮するために、変換が残差ブロックに適用されてよい。
【0055】
ステップ107で、種々のフィルタリング技術が適用されてよい。HEVCでは、フィルタは、インループフィルタリング方式に従い適用される。上述のブロックに基づく予測は、デコーダにおいて濃淡のむらのある画像の生成をもたらし得る。さらに、ブロックに基づく予測方式は、ブロックを符号化し、次に、参照ブロックとして後に使用するために、符号化したブロックを再構成し得る。インループフィルタリング方式は、ノイズ抑制フィルタ、デブロッキングフィルタ、適応型ループフィルタ、及びサンプル適応型オフセット(sample adaptive offset (SAO))フィルタをブロック/フィルタに繰り返し適用する。これらのフィルタは、このような濃淡のむらのアーチファクトを緩和し、その結果、符号化されたファイルは正確に再構成できる。さら、これらのフィルタは、再構成された参照ブロック内のアーチファクトを緩和し、その結果、再構成された参照ブロックに基づき符号化される後のブロック内で追加アーチファクトを生じる可能性が低い。
【0056】
ビデオ信号がパーティションされ、圧縮され、及びフィルタリングされると、結果として生じるデータは、ステップ109でビットストリーム内に符号化される。ビットストリームは、上述のデータ、及びデコーダにおける適正なビデオ信号再構成をサポートするための任意の所望のシグナリングデータを含む。例えば、このようなデータは、パーティションデータ、予測データ、残差ブロック、及びデコーダにコーディング指示を提供する種々のフラグを含んでよい。ビットストリームは、要求によりデコーダへ向けて送信するために、メモリに格納されてよい。ビットストリームは、複数のデコーダへ向けてブロードキャスト及び/又はマルチキャストされてもよい。ビットストリームの生成は反復処理である。したがって、ステップ101、103、105、107、及び109は、多数のフレーム及びブロックに渡り連続して及び/又は同時に生じてよい。
図1に示す順序は明確さ及び議論の容易さのために提示され、ビデオコーディング処理を特定の順序に限定することを意図しない。
【0057】
ステップ111で、デコーダは、ビットストリームを受信し、復号処理を開始する。具体的に、デコーダは、エントロピー復号方式を利用して、ビットストリームを対応するシンタックス及びビデオデータに変換する。ステップ111で、デコーダは、ビットストリームからのシンタックスを利用して、フレームのパーティションを決定する。パーティションは、ステップ103におけるブロックパーティションの結果と一致するべきである。ステップ111で利用されるようなエントロピー符号化/復号は、以下に説明される。エンコーダは、圧縮処理の間に、入力画像内の値の空間的位置に基づき幾つかの可能な選択肢からブロックパーティション方式を選択するような、多くの選択肢を生成する。正確な選択肢をシグナリングすることは、膨大な数のビンを利用し得る。ここで使用されるように、ビンは、変数として扱われる2進値である(例えば、コンテキストに依存して変化し得るビット値)。エントロピーコーディングは、許容可能な選択肢のセットを残して、エンコーダが特定の場合に明らかに実行可能ではない任意の選択肢を廃棄することを可能にする。各々の許容可能な選択肢は、次にコードワードを割り当てられる。コードワードの長さは、許容可能な選択肢の数に基づく(例えば、2個の選択肢に対して1つのビン、3~4個の選択肢に対して2つのビン、等)。エンコーダは、次に、選択された選択肢についてコードワードを符号化する。この方式は、全ての可能な選択肢の潜在的に大きな集合からの選択をユニークに示すのとは反対に、コードワードが可能な選択肢の小さな部分集合からの選択をユニークに示すために望ましい程度の大きさなので、コードワードのサイズを削減する。デコーダは、次に、エンコーダと同様の方法で許容可能な選択肢の集合を決定することにより、選択を復号する。許容可能な選択肢の集合を決定することにより、デコーダは、コードワードを読み出し、エンコーダにより行われた選択を決定できる。
【0058】
ステップ113で、デコーダは、ブロック復号を実行する。具体的に、デコーダは、逆変換を利用して残差ブロックを生成する。次に、デコーダは、残差ブロック及び対応する予測ブロックを利用して、パーティションに従い画像ブロックを再構成する。予測ブロックは、エンコーダにおいてステップ105で生成されたイントラ予測ブロック及びインター予測ブロックの両方を含んでよい。再構成画像ブロックは、次に、ステップ111で決定されたパーティションデータに従い再構成ビデオ信号のフレームへと位置付けられる。ステップ113のシンタックスも、上述のようなエントロピーコーディングによりビットストリームの中でシグナリングされてよい。
【0059】
ステップ115で、エンコーダにおけるステップ107と同様の方法で、再構成ビデオ信号のフレームに対してフィルタリングが実行される。例えば、ノイズ抑制フィルタ、デブロッキングフィルタ、適応型ループフィルタ、及びSAOフィルタが、ブロッキングアーチファクトを除去するためにフレームに適用されてよい。フレームがフィルタリングされると、ビデオ信号は、エンドユーザによる閲覧のためにステップ117においてディスプレイへと出力できる。
【0060】
図2は、ビデオコーディングのための例示的なコーディング及び復号(コーデック)システム200の概略図である。具体的に、コーデックシステム200は、動作方法100の実装をサポートするための機能を提供する。コーデックシステム200は、エンコーダ及びデコーダの両方の中で利用されるコンポーネントを示すために一般化される。コーデックシステム200は、パーティションされたビデオ信号201を生じる、動作方法100におけるステップ101及び103に関して上述したビデオ信号を受信しパーティションする。コーデックシステム200は、次に、方法100におけるステップ105、107、及び109に関して上述したエンコーダとして動作するとき、パーティションされたビデオ信号201をコーディングビットストリームへと圧縮する。デコーダとして動作するとき、コーデックシステム200は、動作方法100におけるステップ111、113、115、及び117に関して上述したようにビットストリームから出力ビデオ信号を生成する。コーデックシステム200は、汎用コーダ制御コンポーネント211、変換スケーリング及び量子化コンポーネント213、イントラピクチャ推定コンポーネント215、イントラピクチャ予測コンポーネント217、動き補償コンポーネント219、動き推定コンポーネント221、スケーリング及び逆変換コンポーネント229、フィルタ制御分析コンポーネント227、インループフィルタコンポーネント225、復号ピクチャバッファコンポーネント223、及びヘッダフォーマット及びコンテキスト適応型2進算術コーディング(context adaptive binary arithmetic coding (CABAC))コンポーネント231を含む。このようなコンポーネントは図示のように結合される。
図2では、黒線は符号化/復号されるべきデータの動きを示し、一方で、破線は他のコンポーネントの動作を制御する制御データの動きを示す。コーデックシステム200のコンポーネントは、エンコーダ内に全て存在してよい。デコーダは、コーデックシステム200のコンポーネントの一部を含んでよい。例えば、デコーダは、イントラピクチャ予測コンポーネント217、動き補償コンポーネント219、スケーリング及び逆変換コンポーネント229、インループフィルタコンポーネント225、及び復号ピクチャバッファコンポーネント223を含んでよい。これらのコンポーネントはここで説明される。
【0061】
パーティションされたビデオ信号201は、コーディング木によりピクセルのブロックへとパーティションされた、キャプチャされたビデオシーケンスである。コーディング木は、種々の分割モードを利用して、ピクセルのブロックをより小さなピクセルのブロックへと細分化する。これらのブロックは、次に、より小さなブロックへと更に細分化できる。ブロックは、コーディング木上のノードと呼ばれてよい。より大きな親ノードは、より小さな子ノードへと分割される。ノードが細分化される回数は、ノード/コーディング木の深さと呼ばれる。分割されたブロックは、幾つかの場合にはコーディング単位(coding unit (CU))に含まれ得る。例えば、CUは、ルマブロック、赤色差分クロマ(Cr)ブロック、及び青色差分クロマ(Cb)ブロック、ならびにCUの対応するシンタックス命令を含むCTUの副部分であり得る。分割モードは、利用される分割モードに依存して変化する形状のそれぞれ2、3、又は4個の子ノードにノードをパーティションするために利用される2分木(binary tree (BT))、3分木(triple tree (TT))、及び4分木(quad tree (QT))を含んでよい。パーティションされたビデオ信号201は、汎用コーダ制御コンポーネント211、変換スケーリング及び量子化コンポーネント213、イントラピクチャ推定コンポーネント215、フィルタ制御分析コンポーネント227、及び動き推定コンポーネント221へと圧縮のために転送される。
【0062】
汎用コーダ制御コンポーネント211は、アプリケーション制約に従いビットストリームへのビデオシーケンスの画像のコーディングに関連する決定を行うよう構成される。例えば、汎用コーダ制御コンポーネント211は、再構成品質に対するビットレート/ビットストリームサイズの最適化を管理する。このような決定は、記憶空間/帯域幅の利用可能性、及び画像解像度要求に基づき行われてよい。汎用コーダ制御コンポーネント211は、また、バッファアンダーラン及びオーバラン問題を緩和するために、変換速度の観点でバッファ利用を管理する。これらの問題に対応するために、汎用コーダ制御コンポーネント211は、他のコンポーネントによるパーティション、予測、及びフィルタリングを管理する。例えば、汎用コーダ制御コンポーネント211は、解像度を増大するために圧縮複雑性を動的に増大させ、解像度及び帯域幅使用を低減するために帯域幅使用を増大し又は圧縮複雑性を減少させてよい。したがって、汎用コーダ制御コンポーネント211は、コーデックシステム200の他のコンポーネントを制御して、ビデオ信号再構成品質とビットレート関心事とのバランスをとる。汎用コーダ制御コンポーネント211は、他のコンポーネントの動作を制御する制御データを生成する。制御データも、デコーダにおける復号のためのパラメータをシグナリングするためにビットストリーム内に符号化されるようヘッダフォーマット及びCABACコンポーネント231へ転送される。
【0063】
パーティションされたビデオ信号201は、インター予測のために、動き推定コンポーネント221及び動き補償コンポーネント219へも送信される。パーティションされたビデオ信号201のフレーム又はスライスは、複数のビデオブロックに分割されてよい。動き推定コンポーネント221及び動き補償コンポーネント219は、1つ以上の参照フレームの中の1つ以上のブロックに関連して、受信したビデオブロックのインター予測コーディングを実行し、時間予測を提供する。コーデックシステム200は、例えばビデオデータの各ブロックについて適切なコーディングモードを選択するために、複数のコーディングパスを実行してよい。
【0064】
動き推定コンポーネント221及び動き補償コンポーネント219は、高度に統合されてよいが、概念的目的のために別個に示される。動き推定コンポーネント221により実行される動き推定は、ビデオブロックについて動きを推定する動きベクトルを生成する処理である。動きベクトルは、例えば、予測ブロックに関連してコーディングオブジェクトの配置を示してよい。予測ブロックは、ピクセル差分の観点で、コーディングされるべきブロックに厳密に一致すると分かったブロックである。予測ブロックは、参照ブロックとも呼ばれてよい。このようなピクセル差分は、絶対値差分の和(sum of absolute difference (SAD))、平方差分の和(sum of square difference (SSD))、又は他の差分メトリックにより決定されてよい。HEVCは、CTU、コーディング木ブロック(coding tree block (CTB))、及びCUを含む幾つかのコーディングオブジェクトを利用する。例えば、CTUは、CTBに分割でき、CTBは次にCUに含むためにCBに分割できる。CUは、予測データを含む予測単位(prediction unit (PU))及び/又はCUの変換された残差データを含む変換単位(transform unit (TU))として符号化できる。動き推定コンポーネント221は、レート歪み最適化処理の部分としてレート歪み分析を用いて、動きベクトル、PU及びTUを生成する。例えば、動き推定コンポーネント221は、現在ブロック/フレームについて複数の参照ブロック、複数の動きベクトル、等を決定してよく、最適なレート歪み特性を有する参照ブロック、動きベクトル、等を選択してよい。最適なレート歪み特性は、ビデオ再構成の品質(例えば、圧縮によるデータ損失の量)及びコーディング効率(例えば、最終的な符号化のサイズ)の両方のバランスをとる。
【0065】
幾つかの例では、コーデックシステム200は、復号ピクチャバッファコンポーネント223に格納された参照ピクチャのサブ整数ピクチャ位置の値を計算してよい。例えば、ビデオコーデックシステム200は、参照ピクチャの4分の1ピクセル位置、8分の1ピクセル位置、又は他の分数ピクセル位置の値を補間してよい。したがって、動き推定コンポーネント221は、フルピクセル位置及び分数ピクセル位置に関連して動き探索を実行し、分数ピクセル精度で動きベクトルを出力してよい。動き推定コンポーネント221は、PUの位置を参照ピクチャの予測ブロックの位置と比較することにより、インターコーディングスライスの中のビデオブロックのPUについて、動きベクトルを計算する。動き推定コンポーネント221は、計算した動きベクトルを動きデータとして、符号化のためにヘッダフォーマット及びCABACコンポーネント231へ、動きを動き補償コンポーネント219へ出力する。
【0066】
動き補償コンポーネント219により実行される動き補償は、動き推定コンポーネント221により決定された動きベクトルに基づき、予測ブロックをフェッチする又は生成することを含んでよい。ここでも、動き推定コンポーネント221及び動き補償コンポーネント219は、幾つかの例では機能的に統合されてよい。現在ビデオブロックのPUの動きベクトルを受信すると、動き補償コンポーネント219は、動きベクトルの指す予測ブロックの位置を特定してよい。次に、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算してピクセル差分値を形成することにより、残差ビデオブロックが形成される。一般に、動き推定コンポーネント221は、ルマ成分に関連して動き推定を実行し、動き補償コンポーネント219は、クロマ成分及びルマ成分の両方についてルマ成分に基づき計算された動きベクトルを使用する。予測ブロック及び残差ブロックは、変換スケーリング及び量子化コンポーネント213へ転送される。
【0067】
パーティションされたビデオ信号201は、イントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217へも送信される。動き推定コンポーネント221及び動き補償コンポーネント219と同様に、イントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217は、高度に統合されてよいが、概念的目的のために別個に示される。上述のようなフレーム間の動き推定コンポーネント221及び動き補償コンポーネント219により実行されるインター予測の代わりに、イントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217は、現在フレーム内のブロックに関連して現在ブロックをイントラ予測する。特に、イントラピクチャ推定コンポーネント215は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定する。幾つかの例では、イントラピクチャ推定コンポーネント215は、複数のテストされたイントラ予測モードから、現在ブロックを符号化するための適切なイントラ予測モードを選択する。選択したイントラ予測モードは、次に、符号化のためにヘッダフォーマット及びCABACコンポーネント231へ転送される。
【0068】
例えば、イントラピクチャ推定コンポーネント215は、種々のテストされたイントラ予測モードについてレート歪み分析を用いてレート歪み値を計算し、テストしたモードの中で最適なレート歪み特性を有するイントラ予測モードを選択する。レート歪み分析は、一般に、符号化ブロックと、符号化されて該符号化ブロックを生成した元の未符号化ブロックとの間の歪み(又は誤差)の量、並びに符号化ブロックを生成するために使用されたビットレート(例えば、ビット数)を決定する。イントラピクチャ推定コンポーネント215は、種々の符号化ブロックについて歪み及びレートから比を計算して、ブロックについて、どのイントラ予測モードが最適なレート歪み値を示すかを決定する。さらに、イントラピクチャ推定コンポーネント215は、レート歪み最適化(rate-distortion optimization (RDO))に基づき、深さモデル化モード(depth modeling mode (DMM))を用いて深さマップの深さブロックをコーディングするよう構成されてよい。
【0069】
イントラピクチャ予測コンポーネント217は、エンコーダに実装されるとき、イントラピクチャ推定コンポーネント215により決定された、選択されたイントラ予測モードに基づき、予測ブロックから残差ブロックを生成し、又は、デコーダに実装されるとき、ビットストリームから残差ブロックを読み出してよい。残差ブロックは、行列として表現される、予測ブロックと元のブロックとの間の値の差分を含む。残差ブロックは、次に、変換スケーリング及び量子化コンポーネント213へ転送される。イントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217は、ルマ及びクロマ成分の両方に対して動作してよい。
【0070】
変換スケーリング及び量子化コンポーネント213は、残差ブロックを更に圧縮するよう構成される。変換スケーリング及び量子化コンポーネント213は、離散コサイン変換(discrete cosine transform (DCT))、離散サイン変換(discrete sine transform (DST))、又は概念的に類似する変換のような変換を残差ブロックに適用して、残差変換係数値を含むビデオブロックを生成する。ウェーブレット変換、整数変換、サブバンド変換、又は他の種類の変換も使用され得る。変換は、残差情報を、ピクセル値ドメインから周波数ドメインのような変換ドメインへと変換してよい。変換スケーリング及び量子化コンポーネント213は、また、例えば周波数に基づき、変換された残差情報をスケーリングするよう構成される。このようなスケーリングは、倍率を残差情報に適用することを含む。その結果、異なる周波数情報は異なる粒度で量子化され、これは再構成ビデオの最終的な視覚的品質に影響を与え得る。変換スケーリング及び量子化コンポーネント213は、また、ビットレートを更に低減するために、変換係数を量子化するよう構成される。量子化処理は、係数の一部又は全部に関連するビット深さを低減してよい。量子化の程度は、量子化パラメータを調整することにより、変更されてよい。幾つかの例では、変換スケーリング及び量子化コンポーネント213は、次に、量子化された変換係数を含む行列のスキャンを実行してよい。量子化された変換係数は、ビットストリーム内に符号化されるために、ヘッダフォーマット及びCABACコンポーネント231へ転送される。
【0071】
スケーリング及び逆変換コンポーネント229は、動き推定をサポートするために、変換スケーリング及び量子化コンポーネント213の逆処理を適用する。スケーリング及び逆変換コンポーネント229は、逆スケーリング、変換、及び/又は量子化を適用して、例えば別の現在ブロックのための予測ブロックになり得る参照ブロックとして後に使用するために、ピクセルドメインの残差ブロックを再構成する。動き推定コンポーネント221及び/又は動き補償コンポーネント219は、後のブロック/フレームの動き推定で使用するために、残差ブロックを対応する予測ブロックに加算して戻すことにより、参照ブロックを計算してよい。スケーリング、量子化、及び変換の間に生成されたアーチファクトを低減するために、再構成された参照ブロックにフィルタが適用される。このようなアーチファクトは、そうでなければ、後続のブロックが予測されるときに不正確な予測を生じ(及び追加アーチファクトを生成し)得る。
【0072】
フィルタ制御分析コンポーネント227及びインループフィルタコンポーネント225は、残差ブロックに及び/又は再構成画像ブロックにフィルタを適用する。例えば、スケーリング及び逆変換コンポーネント229からの変換された残差ブロックは、元の画像ブロックを再構成するために、イントラピクチャ予測コンポーネント217及び/又は動き補償コンポーネント219からの対応する予測ブロックと結合されてよい。フィルタは、次に、再構成画像ブロックに適用されてよい。幾つかの例では、フィルタは、代わりに、残差ブロックに適用されてよい。
図2の他のコンポーネントと同様に、フィルタ制御分析コンポーネント227及びインループフィルタコンポーネント225は、高度に統合され一緒に実装されてよいが、概念的目的のために別個に示される。再構成された参照ブロックに適用されるフィルタは、特定の空間領域に適用され、このようなフィルタがどのように適用されるかを調整するための複数のパラメータを含む。フィルタ制御分析コンポーネント227は、再構成された参照ブロックを分析して、このようなフィルタが適用されるべき場合を決定し、対応するパラメータを設定する。このようなデータは、ヘッダフォーマット及びCABACコンポーネント231へ、符号化のためのフィルタ制御データとして転送される。インループフィルタコンポーネント225は、フィルタ制御データに基づき、このようなフィルタを適用する。フィルタは、デブロッキングフィルタ、ノイズ抑制フィルタ、SAOフィルタ、及び適応型ループフィルタを含んでよい。このようなフィルタは、例に依存して、(例えば、再構成されたピクセルブロック上の)空間/ピクセルドメインにおいて、又は周波数ドメインにおいて、適用されてよい。
【0073】
エンコーダとして動作するとき、フィルタリングされた再構成画像ブロック、残差ブロック、及び/又は予測ブロックは、上述のように動き推定において後に使用するために、復号ピクチャバッファコンポーネント223に格納される。デコーダとして動作するとき、復号ピクチャバッファコンポーネント223は、出力ビデオ信号の部分として、再構成されフィルタリングされたブロックを格納しディスプレイへ向けて転送する。復号ピクチャバッファコンポーネント223は、予測ブロック、残差ブロック、及び/又は再構成画像ブロックを格納することの可能な任意のメモリ装置であってよい。
【0074】
ヘッダフォーマット及びCABACコンポーネント231は、コーデックシステム200の種々のコンポーネントからデータを受信し、デコーダへ向けて送信するためにこのようなデータをコーディングビットストリームに符号化する。具体的に、ヘッダフォーマット及びCABACコンポーネント231は、一般制御データ及びフィルタ制御データのような制御データを符号化するために種々のヘッダを生成する。さらに、イントラ予測及び動きデータを含む予測データ、ならびに量子化された変換係数データの形式の残差データは、全てビットストリーム内に符号化される。最終的なビットストリームは、元のパーティションされたビデオ信号201を再構成するためにデコーダにより所望される全ての情報を含む。このような情報は、イントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)、種々のブロックの符号化コンテキストの定義、最も有望なイントラ予測モードの指示、パーティション情報の指示、等も含んでよい。このようなデータは、エントロピーコーディングを利用することにより、符号化されてよい。例えば、情報は、コンテキスト適応型可変長コーディング(context adaptive variable length coding (CAVLC))、シンタックスに基づくコンテキスト適応型2進算術コーディング(syntax-based context-adaptive binary arithmetic coding (SBAC))、確率間隔区分エントロピー(probability interval partitioning entropy (PIPE))コーディング、又は別のエントロピーコーディング技術を利用することにより、符号化されてよい。エントロピーコーディングに従い、コーディングされたビットストリームは、別の装置(例えば、ビデオデコーダ)へ送信され、又は後の送信又は読み出しのために保存されてよい。
【0075】
図3は、例示的なビデオエンコーダ300を示すブロック図である。ビデオエンコーダ300は、コーデックシステム200の符号化機能を実装するために、及び/又は動作方法100のステップ101、103、105、107及び/又は109を実装するために、利用されてよい。エンコーダ300は、入力ビデオ信号をパーティションして、実質的にパーティションされたビデオ信号201と同様であるパーティションされたビデオ信号301を生じる。パーティションされたビデオ信号301は、次に、エンコーダ300のコンポーネントにより圧縮されビットストリームに符号化される。
【0076】
具体的に、パーティションされたビデオ信号301は、イントラ予測のためにイントラピクチャ予測コンポーネント317へ転送される。イントラピクチャ予測コンポーネント317は、イントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217と実質的に同様であってよい。パーティションされたビデオ信号301は、復号ピクチャバッファコンポーネント323の中の参照ブロックに基づくインター予測のために動き補償コンポーネント321へも転送される。動き補償コンポーネント321は、動き推定コンポーネント221及び動き補償コンポーネント219と実質的に同様であってよい。イントラピクチャ予測コンポーネント317及び動き補償コンポーネント321からの予測ブロック及び残差ブロックは、残差ブロックの変換及び量子化のために、変換及び量子化コンポーネント313へ転送される。変換及び量子化コンポーネント313は、変換スケーリング及び量子化コンポーネント213と実質的に同様であってよい。変換され量子化された残差ブロック及び対応する予測ブロックは(関連する制御データと一緒に)、ビットストリームへのコーディングのためにエントロピーコーディングコンポーネント313へ転送される。エントロピーコーディングコンポーネント331は、ヘッダフォーマット及びCABACコンポーネント231と実質的に同様であってよい。
【0077】
変換され量子化された残差ブロック及び/又は対応する予測ブロックは、また、動き補償コンポーネント321による使用のために参照ブロックへと再構成するために、変換及び量子化コンポーネント313から逆変換及び量子化コンポーネント329へ転送される。逆変換及び量子化コンポーネント329は、スケーリング及び逆変換コンポーネント229と実質的に同様であってよい。インループフィルタコンポーネント325の中のインループフィルタも、例に依存して、残差ブロック及び/又は再構成された参照ブロックに適用される。インループフィルタコンポーネント325は、フィルタ制御分析コンポーネント227及びインループフィルタコンポーネント225と実質的に同様であってよい。インループフィルタコンポーネント325は、インループフィルタコンポーネント225に関して議論したような複数のフィルタを含んでよい。フィルタリングされたブロックは、次に、動き補償コンポーネント321により参照ブロックとして使用するために、復号ピクチャバッファコンポーネント323に格納される。復号ピクチャバッファコンポーネント323は、復号ピクチャバッファコンポーネント223と実質的に同様であってよい。
【0078】
図4は、例示的なビデオデコーダ400を示すブロック図である。ビデオデコーダ400は、コーデックシステム200の復号機能を実装するために、及び/又は動作方法100のステップ111、113、115及び/又は117を実装するために、利用されてよい。デコーダ400は、例えばエンコーダ300からビットストリームを受信し、エンドユーザに表示するためにビットストリームに基づき再構成された出力ビデオ信号を生成する。
【0079】
ビットストリームは、エントロピー復号コンポーネント433により受信される。エントロピー復号コンポーネント433は、CAVLC、CABAC、SBAC、PIPEコーディングのようなエントロピー復号方式、又は他のエントロピーコーディング技術を実装するよう構成される。例えば、エントロピー復号コンポーネント433は、ビットストリーム内にコードワードとして符号化された追加データを解釈するために、ヘッダ情報を利用してコンテキストを提供してよい。復号された情報は、一般制御データ、フィルタ制御データ、パーティション情報、動きデータ、予測データ、及び残差ブロックからの量子化済み変換係数のような、ビデオ信号を復号するための任意の所望の情報を含む。量子化済み変換係数は、残差ブロックへと再構成するために、逆変換及び量子化コンポーネント429へ転送される。逆変換及び量子化コンポーネント429は、逆変換及び量子化コンポーネント329と同様であってよい。
【0080】
再構成残差ブロック及び/又は予測ブロックは、イントラ予測動作に基づき画像ブロックへと再構成するために、イントラピクチャ予測コンポーネント417へ転送される。イントラピクチャ予測コンポーネント417は、イントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217と同様であってよい。具体的に、イントラピクチャ予測コンポーネント417は、フレーム内の参照ブロックの位置を特定するために予測モードを利用し、結果に残差ブロックを適用して、イントラ予測された画像ブロックを再構成する。再構成されたイントラ予測された画像ブロック及び/又は残差ブロック、及び対応するインター予測データは、それぞれ復号ピクチャバッファコンポーネント223及びインループフィルタコンポーネント225と実質的に同様であってよいインループフィルタコンポーネント425を介して復号ピクチャバッファコンポーネント423へ転送される。インループフィルタコンポーネント425は、再構成画像ブロック、残差ブロック、及び/又は予測ブロックをフィルタリングし、そのような情報は復号ピクチャバッファコンポーネント423に格納される。復号ピクチャバッファコンポーネント423からの再構成画像ブロックは、インター予測のために動き補償コンポーネント421へ転送される。動き補償コンポーネント421は、動き推定コンポーネント221及び/又は動き補償コンポーネント219と実質的に同様であってよい。具体的に、動き補償コンポーネント421は、参照ブロックからの動きベクトルを利用して、予測ブロックを生成し、結果に残差ブロックを提供して、画像ブロックを再構成する。結果として生じた再構成ブロックは、インループフィルタコンポーネント425を介して、復号ピクチャバッファコンポーネント423へ転送されてもよい。復号ピクチャバッファコンポーネント423は、パーティション情報によりフレームへと再構成できる、追加再構成画像ブロックを格納し続けてよい。このようなフレームは、シーケンス内に配置されてもよい。シーケンスは、再構成された出力ビデオ信号としてディスプレイに向けて出力される。
【0081】
図5は、符号化ビデオシーケンスを含む例示的なビットストリーム500を示す概略図である。例えば、ビットストリーム500は、コーデックシステム200及び/又はデコーダ400による復号のために、コーデックシステム200及び/又はエンコーダ300により生成できる。別の例として、ビットストリーム500は、デコーダによりステップ111で使用するために、方法100のステップ109でエンコーダにより生成されてよい。
【0082】
ビットストリーム500は、シーケンスパラメータセット(sequence parameter set (SPS))510、複数のピクチャパラメータセット(picture parameter set (PPS))512、タイルグループヘッダ514、及び画像データ520を含む。SPS510は、ビットストリーム500に含まれるビデオシーケンス内の全部のピクチャに共通のシーケンスデータを含む。このようなデータは、ピクチャサイジング、ビット深さ、コーディングツールパラメータ、ビットレート制約、等を含み得る。PPS512は、1つ以上の対応するピクチャに固有のパラメータを含む。従って、ビデオシーケンス内の各ピクチャは、1つのPPS512を参照してよい。PPS512は、対応するピクチャ内のタイルについて利用可能なコーディングツール、量子化パラメータ、オフセット、ピクチャ固有コーディングツールパラメータ(例えば、フィルタ制御)、等を示すことができる。タイルグループヘッダ514は、ピクチャ内の各タイルグループに固有のパラメータを含む。従って、ビデオシーケンス内のタイルグループ毎に1個のタイルグループヘッダ514があってよい。タイルグループヘッダ514は、タイルグループ情報、ピクチャ順序カウント(picture order count (POC))、参照ピクチャリスト、予測重み、タイルエントリポイント、デブロッキングパラメータ、等を含んでよい。留意すべきことに、幾つかのシステムは、スライスヘッダとしてタイルグループヘッダ514を参照し、このような情報を、タイルグループの代わりにスライスをサポートするために使用する。
【0083】
画像データ520は、インター予測及び/又はイントラ予測に従い符号化されたビデオデータ、並びに対応する変換された量子化済み残差データを含む。このような画像データ520は、符号化の前に画像をパーティションするために使用されたパーティションに従い格納される。例えば、画像データ520内の画像は、タイルグループ523に分割される。タイル523は、コーディング木単位(coding tree unit (CTU))に更に分割される。CTUは、コーディング木に基づきコーディングブロックに更に分割される。コーディングブロックは、次に、予測メカニズムに従い符号化/復号できる。画像/ピクチャは、1つ以上のタイル523を含むことができる。
【0084】
タイル523は、水平及び垂直境界により生成されるピクチャのパーティションされた部分である。タイル523は、ラスタスキャン順序でコーディングされてよく、例に依存して、他のタイル523に基づくパーティションが可能であってよく、又はそうでなくてよい。各タイル523は、ピクチャ内でユニークなタイルインデックス524を有してよい。タイルインデックス524は、あるタイル523を別のものと区別するために使用できる、手順通りに選択された数値識別子である。例えば、タイルインデックス524は、ラスタスキャン順序で数値的に増大してよい。ラスタスキャン順序は、左から右へ及び上から下へである。留意すべきことに、幾つかの例では、タイル523は、タイル識別子(identifier (ID))も割り当てられてよい。タイルIDは、あるタイル523を別のものと区別するために使用できる、割り当てられた識別子である。幾つかの例では、計算は、タイルインデックス524の代わりにタイルIDを利用してよい。幾つかの例では、更に、タイルIDは、タイルインデックス524と同じ値を有するよう割り当てられることができる。
【0085】
タイルインデックス524は、タイル523を含むタイルグループを示すためにシグナリングされてよい。最初のタイルのインデックス及び最後のタイルのインデックスは、タイルグループヘッダ514内でシグナリングできる。幾つかの例では、最初のタイルのインデックス及び最後のタイルのインデックスは、対応するタイルIDによりシグナリングされる。デコーダは、次に、フラグ、最初のタイルのインデックス、及び最後のタイルのインデックスに基づき、タイルグループの構成を決定できる。エンコーダは、最適な符号化アプローチを選択するとき、デコーダにおいて復号結果を予測するために、レート歪み最適化処理の間にデコーダと同様の処理を利用できる。タイルグループの完全なメンバシップの代わりに、最初のタイルのインデックス及び最後のタイルのインデックスのみをシグナリングすることにより、相当数のビットが省略できる。これは、コーディング効率を向上し、従って、エンコーダ及びデコーダの両方のメモリリソース使用及びネットワークリソース使用を低減する。
【0086】
図6は、本開示の実施形態による、例示的なタイルグループにパーティションされた例示的なピクチャ601を示す。例えば、ピクチャ601は、例えばコーデックシステム200、エンコーダ300、及び/又はデコーダ400により、ビットストリーム500に符号化され、それから復号されるビデオシーケンス内の単一のピクチャであり得る。更に、ピクチャ601は、方法100に従い符号化及び復号をサポートするためにパーティションされることができる。
【0087】
ピクチャ601は、タイル603にパーティションされることができる。タイル603は、タイル523と実質的に同様であってよい。タイル603は、長方形及び/又は正方形であってよい。タイル603は、それぞれ、ラスタスキャン順序で増大するタイルインデックスを割り当てられる。図示の実施形態では、タイルインデックスは0から23まで(0~23)に及ぶ。このようなタイルインデックスは、例であり、議論の明確さのために提供され、従って限定と考えられるべきではない。
【0088】
ピクチャ601は、タイル0、6、12、18を含む左境界601aと、タイル5、11、17、23を含む右境界601bと、タイル0~5を含む上境界601cと、タイル18~23を含む下境界601dと、を含む。左境界601a、右境界601b、上境界601c、及び下境界601dは、ピクチャ601の端を形成する。更に、タイル603は、タイル行605及びタイル列607にパーティションされてよい。タイル行605は、水平方向に隣接するように位置付けられたタイル603のセットであり、左境界601aから右境界601bまでの連続ライン(逆も同様である)を生成する。タイル列607は、垂直方向に隣接するように位置付けられたタイル603のセットであり、上境界601cから下境界601dまでの連続ライン(逆も同様である)を生成する。
【0089】
タイル603は、1つ以上のタイルグループ609に含まれることができる。タイルグループ609は、例えば関心領域の表示をサポートするために及び/又は並列処理をサポートするために別個に抽出されコーディングされることのできる関連するタイル603のセットである。タイルグループ609内のタイル603は、タイルグループ609の外部のタイル603を参照することなく、コーディングできる。各タイル603は、対応するタイルグループ609に割り当てられてよく、従って、ピクチャ601は複数のタイルグループ609を含むことができる。しかしながら、議論の明確さのために、本開示は、7から10(7~10)及び13から16(13~16)のインデックスを有するタイル603を含む影付き領域として示されるタイルグループ609を参照する。
【0090】
従って、ピクチャ601のタイルグループ609は、最初のタイルのインデックス7、及び最後のタイルのインデックス16によりシグナリングできる。デコーダは、最初のタイルのインデックス及び最後のタイルのインデックスに基づき、タイルグループ609の構成を決定したいと望み得る。ここで使用されるとき、タイルグループ609構成は、タイルグループ609の中の行、列、及びタイル603を示す。タイルグループ609構成を決定するために、ビデオコーディング装置は、所定のアルゴリズムを利用できる。例えば、ビデオコーディング装置は、タイルグループ609の最後のタイルのインデックスとタイルグループ609の最初のタイルのインデックスとの間の差としてデルタタイルインデックスを設定することにより、ピクチャ601からパーティションされたタイルグループ609の中のタイル603の数を決定できる。タイルグループ609内のタイル行605の数は、デルタタイルインデックスを、ピクチャ601内のタイル列607の数に1を足したもので除算することにより、決定できる。更に、タイルグループ609内のタイル列607の数は、ピクチャ601内のタイル列607の数に1を足したものを法とするデルタタイルインデックスとして、決定できる。タイルグループ609内のタイル603の数は、タイルグループ609内のタイル列607の数を、タイルグループ609内のタイル行605の数により乗算することにより、決定できる。
【0091】
上述のように、特定の状況では、タイルグループ構造の現在のシグナリングは、パラメータセット内で又はタイルグループヘッダ内でシグナリングされるかに拘わらず、何らかの冗長な情報を含む。この問題を解決するために、単独で取り入れられる又は1つ以上の実施形態において結合して適用される以下の態様が、上述の問題を解決するために本開示において提案される。
【0092】
実施形態では、ピクチャ当たり1より多くのタイルがあるとき、パラメータセットを参照するタイルグループの各々が1個のタイルのみを含むかどうかを指定するために、タイルグループにより直接又は間接に参照されるパラメータセットの中で、フラグがシグナリングされる。パラメータセットは、シーケンスパラメータセット、ピクチャパラメータセット、又はタイルグループにより直接又は間接に参照される任意の他のパラメータセットであり得る。実施形態では、このフラグはsingle_tile_per_tile_group_flagと呼ばれてよい。実施形態では、single_tile_per_tile_group_flagの値が1に等しいとき、タイルグループヘッダ内の以下のシンタックス要素は存在しない:(1)タイルグループ内のタイルの数を指定するシンタックス要素、(2)タイルグループの最後のタイルの識別を指定するシンタックス要素、(3)タイルグループ内の最初のタイル以外の任意のタイルのタイル識別を指定するシンタックス要素。
【0093】
別の実施形態では、タイルグループ構造情報は、各タイルグループにより直接又は間接に参照されるパラメータセット内で又はタイルグループヘッダ内で直接に、シグナリングされてよい。ピクチャ内のタイルの数が1より多いとき、タイルグループ構造情報がパラメータセット内に存在するかどうかを指定するために、パラメータセット内にフラグが存在してよい。パラメータセットは、シーケンスパラメータセット、ピクチャパラメータセット、又はタイルグループにより直接又は間接に参照される任意の他のパラメータセットであり得る。実施形態では、フラグはtile_group_info_in_pps_flagと呼ばれてよい。実施形態では、フラグがパラメータセット内に存在しないとき(例えば、ピクチャが1つのタイルのみを含むとき)、tile_group_info_in_pps_flagの値は0に等しいと推定される。Tile_group_info_in_pps_flagの値は、パラメータセット及びタイルグループヘッダ内のタイルグループ構造に関連するシンタックス要素の存在を調整するために使用される。これらのシンタックス要素は以下を含んでよい:(1)タイルグループ内のタイルの数を指定するシンタックス要素、(2)タイルグループの最後のタイルの識別を指定するシンタックス要素、(3)タイルグループ内の最初のタイル以外の任意のタイルのタイル識別を指定するシンタックス要素。
【0094】
実施形態に従う、PPS及びタイルグループヘッダ内の関連するシンタックス要素のシンタックス及びセマンティクスは、以下の通りである。説明は、JVET contribution JVET-L0686、タイトル「Draft text of video coding specification」に記載されている基本テキストに関連する。つまり、デルタ又は追加変更のみが説明され、一方で、以下で言及されない基本テキストの中のテキストは、それらが基本テキストに記載されたように適用される。基本テキストに関連するpic_parameter_set_rbsp( )関数に対する変更されたテキストは、アスタリスク(*)により強調される。
【表1】
【0095】
上述のピクチャパラメータセットRBSPでは、シンタックス要素pps_pic_parameter_set_idは、他のシンタックス要素による参照のためにPPSを識別する。実施形態では、pps_pic_parameter_set_idの値は、両端を含む0~63の範囲であるべきである。シンタックス要素pps_seq_parameter_set_idは、アクティブSPSのsps_seq_parameter_set_idの値を指定する。pps_seq_parameter_set_idの値は、両端を含む0~15の範囲であるべきである。実施形態では、シンタックス要素transform_skip_enabled_flagが1に等しい場合、transform_skip_flagシンタックス要素は、残差コーディングシンタックス内に存在し得る。シンタックス要素transform_skip_enabled_flagが0に等しい場合、transform_skip_flagシンタックス要素は、残差コーディングシンタックス内に存在しない。シンタックス要素single_tile_in_pic_flagが1に等しい場合、これは、PPSを参照する各ピクチャ内に1個のタイルのみがあることを示す。シンタックス要素single_tile_in_pic_flagが0に等しい場合(つまり、if(!single_tile_in_pic_flag))、これは、PPSを参照する各ピクチャ内に1より多くのタイルがあることを指定する。この場合、シンタックス要素single_tile_per_tile_group_flagは、PPSを参照する各タイルグループが正確に1個のタイルを含むかどうかを示すために使用される。例えば、シンタックス要素single_tile_per_tile_group_flagが1に等しい場合、これは、PPSを参照する各タイルグループが正確に1個のタイルを含むことを指定する。シンタックス要素single_tile_per_tile_group_flagが0に等しい場合、それは、パラメータセットを参照する各タイルグループが1より多くのタイルを含むことを示す。シンタックス要素tile_group_info_in_pps_flagは、タイルグループ情報がPPS内に存在するか又はPPSを参照するタイルグループヘッダ内に存在するかを示すために使用される。実施形態では、シンタックス要素tile_group_info_in_pps_flagが1に等しい場合、これは、タイルグループ情報がPPS内に存在し、PPSを参照するタイルグループヘッダ内に存在しないことを指定する。シンタックス要素tile_group_info_in_pps_flagが0に等しい場合、それは、タイルグループ情報がPPS内に存在せず、PPSを参照するタイルグループヘッダ内に存在することを示す。
【0096】
示された実施形態では、シンタックス要素tile_group_info_in_pps_flagが1に等しい場合(つまり、if(tile_group_info_in_pps_flag))、これは、タイルグループ情報がPPS内に存在し、PPSを参照するタイルグループヘッダ内に存在しないことを指定し、変数num_tile_groups_in_pic_minus1は、ピクチャ内のタイルグループの数より1小さいものに等しく設定される。この変数は、ピクチャ内のタイルグループの各々を通じてループするよう、for-loopの中で使用される。シンタックス要素pps_first_tile_id[ i ]は、ピクチャ内のi番目のタイルグループの最初のタイルのタイルIDを指定する。実施形態では、pps_first_tile_id[ i ]の長さは、Ceil( Log2( NumTilesInPic ) )ビットである。pps_first_tile_id[ i ]の値は、jに等しくない任意のiについて、pps_first_tile_id[ j ]の値に等しくてはならない。特に断りの無い限り、ピクチャ内のi番目のタイルグループの最初のタイルのタイルIDは、ピクチャ内の任意の他のタイルグループの最初のタイルのタイルIDと同じであってはならない。
【0097】
ピクチャ内の各々のi番目のタイルグループについて、シンタックス要素single_tile_per_tile_group_flagが0に等しい場合(つまり、if(!single_tile_per_tile_group_flag))、これは、パラメータセットを参照するi番目のタイルグループが1つ以上のタイルを含むことを示し、シンタックス要素pps_num_tiles_in_tile_group_minus1[ i ]に1を足したものが、i番目のタイルグループの中のタイルの数を指定するために使用される。pps_num_tiles_in_tile_group_minus1[ i ]の値は、両端を含む0~NumTilesInPic - 1の範囲に包含されるべきである。実施形態では、シンタックス要素pps_num_tiles_in_tile_group_minus1[ i ]が存在しないとき、pps_num_tiles_in_tile_group_minus1[ i ]の値は0に等しいと推定される。
【0098】
別の例として、第2の実施形態に従う、PPS及びタイルグループヘッダ内の関連するシンタックス要素のシンタックス及びセマンティクスは、以下の通りである。上述のように、説明は、JVET contribution JVET-L0686、タイトル「Draft text of video coding specification」に記載されている基本テキストに関連する。つまり、デルタ又は追加変更のみが説明され、一方で、以下で言及されない基本テキストの中のテキストは、それらが基本テキストに記載されたように適用される。基本テキストに関連するpic_parameter_set_rbsp( )関数に対する変更されたテキストは、アスタリスク(*)により強調される。
【0099】
【0100】
シンタックス要素pps_pic_parameter_set_id、pps_seq_parameter_set_id、transform_skip_enabled_flag、及びsingle_tile_in_pic_flagは、基本テキスト(JVET contribution JVET-L0686)に従い先に上述した通りである。本実施形態では、シンタックス要素single_tile_in_pic_flagが0に等しい場合(つまり、if(!single_tile_in_pic_flag))、これは、パラメータセットを参照する各タイルグループが1つ以上のタイルを含むことを示し、single_tile_per_tile_group_flagシンタックス要素が、PPSを参照する各タイルグループが正確に1個のタイルを含むかどうかを示すために使用される。実施形態では、single_tile_per_tile_group_flagが1に等しい場合、それは、PPSを参照する各タイルグループが正確に1個のタイルを含むことを示す。single_tile_per_tile_group_flagが0に等しい場合、それは、PPSを参照する各タイルグループが1つ以上のタイルを含むことを指定する。tile_group_info_in_pps_flagシンタックス要素は、タイルグループ情報がPPS内に存在するか又はPPSを参照するタイルグループヘッダ内に存在するかを示すために使用される。実施形態では、tile_group_info_in_pps_flagが1に等しい場合、それは、タイルグループ情報がPPS内に存在し、PPSを参照するタイルグループヘッダ内に存在しないことを指定する。tile_group_info_in_pps_flagが0のとき、それは、タイルグループ情報がPPS内に存在せず、PPSを参照するタイルグループヘッダ内に存在することを示す。
【0101】
示された実施形態では、tile_group_info_in_pps_flagが1に等しい場合(つまり、if(tile_group_info_in_pps_flag))、それは、タイルグループ情報がPPS内に存在し、PPSを参照するタイルグループヘッダ内に存在しないことを示し、変数num_tile_groups_in_pic_minus1は、ピクチャ内のタイルグループの数より1小さいものに等しく設定される。この変数は、ピクチャ内のタイルグループの各々を通じてループするよう、for-loopの中で使用される。シンタックス要素pps_first_tile_id[ i ]は、ピクチャ内のi番目のタイルグループの最初のタイルのタイルIDを指定する。pps_first_tile_id[ i ]の値は、jに等しくない任意のiについて、pps_first_tile_id[ j ]の値に等しくてはならない。本実施形態では、タイルグループ当たり1より多くのタイルがある場合(つまり、if(!single_tile_per_tile_group_flag))、シンタックス要素pps_last_tile_id[ i ]は、i番目のタイルグループの最後のタイルのタイルのタイルIDを指定する。pps_first_tile_id[ i ]及びpps_last_tile_id[ i ]の長さは、Ceil( Log2( NumTilesInPic ) )ビットである。
【0102】
実施形態では、タイルグループヘッダ及びRBSPシンタックス及びセマンティクスは、以下の通りである。基本テキストに関連するtile_group_header( )関数に対する変更されたテキストは、アスタリスク(*)により強調される。
【表3】
【0103】
示された実施形態では、ピクチャ内のタイルの数(NumTilesInPic)が1より多い場合、シンタックス要素first_tile_idは、タイルグループの最初のタイルのタイルIDを指定するために使用される。First_tile_idの長さは、Ceil( Log2( NumTilesInPic ) )ビットである。タイルグループのfirst_tile_idの値は、同じピクチャの任意の他のタイルグループのfirst_tile_idの値と等しくてはならない。single_tile_per_tile_group_flagが、タイルグループ当たり1より多くのタイルがあることを指定し(つまり、if(!single_tile_per_tile_group_flag))、tile_group_info_in_pps_flagが、タイルグループ情報はPPS内に存在せずPPSを参照するタイルグループヘッダ内に存在すると示す(つまり、!tile_group_info_in_pps_flag)場合、シンタックス要素last_tile_idが、タイルグループの最後のタイルのタイルIDを指定するために使用される。実施形態では、last_tile_idの長さは、Ceil( Log2( NumTilesInPic ) )ビットである。
【0104】
実施形態では、NumTilesInPicが1に等しいか、又はsingle_tile_per_tile_group_flagが1に等しいとき、last_tile_idの値は、first_tile_idに等しいと推定される。実施形態では、tile_group_info_in_pps_flagが1に等しいとき、last_tile_idの値はpps_first_tile_id[ i ]の値に等しいと推定され、ここで、iは、first_tile_idがpps_first_tile_id[ i ]に等しくなるような値である。本実施形態では、各タイルグループはピクチャの長方形領域を含むことが更に制約されてよい。この場合、first_tile_idは、タイルグループの左上角に位置するタイルのタイルIDを指定し、last_tile_idは、タイルグループの右下角に位置するタイルのタイルIDを指定する。
【0105】
実施形態では、シンタックス要素は、少なくとも以下の2つのタイルグループモードを許可するタイルグループモードを指定するために、PPS内で更にシグナリングできる。長方形タイルグループモードと呼ばれる第1モードでは、各タイルグループはピクチャの長方形領域を含むことが更に制約される。この場合、first_tile_idは、タイルグループの左上角に位置するタイルのタイルIDを指定し、last_tile_idは、タイルグループの右下角に位置するタイルのタイルIDを指定する。タイルラスタスキャンモードと呼ばれる第2モードでは、追加の変更は行われず、各タイルグループに含まれるタイルは、ピクチャのタイルラスタスキャンの中の連続するタイルである。
【0106】
図7は、例示的なビデオコーディング装置700の概略図である。ビデオコーディング装置700は、ここに説明したような開示の例/実施形態を実施するのに適する。ビデオコーディング装置700は、ダウンストリームポート720、アップストリームポート750、及び/又は、ネットワークを介してデータアップストリーム及び/又はダウンストリームを通信する送信機及び/又は受信機を含むトランシーバユニット(Tx/Rx)710を含む。ビデオコーディング装置700は、データを処理する論理ユニット及び/又は中央処理ユニット(central processing unit (CPU))を含むプロセッサ730、及びデータを格納するメモリ732も含む。ビデオコーディング装置700は、電気、光-電気(optical-to-electrical (OE))コンポーネント、電気-光(electrical-to-optical (EO))コンポーネント、及び/又は、電気、光又は無線通信ネットワークを介するデータの通信のためにアップストリームポート750及び/又はダウンストリームポート720に接続される無線通信コンポーネント、も含んでよい。ビデオコーディング装置700は、データをユーザに及びから通信する入力及び/又は出力(input and/or output (I/O))装置760も含んでよい。I/O装置760は、ビデオデータを表示するディスプレイ、オーディオデータを出力するスピーカ、等のような出力装置を含んでよい。I/O装置760は、キーボード、マウス、トラックボール、等のような入力装置、及び/又は、そのような出力装置とインタフェースする対応するインタフェースも含んでよい。
【0107】
プロセッサ730は、ハードウェア及びソフトウェアにより実装される。プロセッサ730は、1つ以上のCPUチップ、コア(例えば、マルチコアプロセッサ)、フィールドプログラマブルゲートアレイ(field-programmable gate array (FPGA))、特定用途向け集積回路(application specific integrated circuit (ASIC))、及びデジタル信号プロセッサ(digital signal processor (DSP))として実装されてよい。プロセッサ730は、ダウンストリームポート720、Tx/Rx710、アップストリームポート750、及びメモリ732と通信する。プロセッサ730は、コーディングモジュール714を含む。コーディングモジュール714は、ビットストリーム500及び/又はタイルグループ609にパーティションされた画像を利用してよい方法100、800、及び900のような、ここに説明した開示の実施形態を実施する。コーディングモジュール714は、ここに説明した任意の他の方法/メカニズムも実施してよい。さらに、コーディングモジュール714は、コーデックシステム200、エンコーダ300、及び/又はデコーダ400を実装してよい。例えば、エンコーダとして動作するとき、コーディングモジュール714は、少なくとも1つのタイルグループを含む少なくとも1つのピクチャのためのコーディングデータを含むビデオビットストリームを符号化できる。コーディングモジュール714は、更に、コーディングピクチャのタイル情報がパラメータセット内に又はタイルグループヘッダ内に存在するかを指定するフラグをパラメータセット内に符号化できる。デコーダとして動作するとき、コーディングモジュール714は、コーディングピクチャのタイル情報がパラメータセット内に又はタイルグループヘッダ内に存在するかを示すフラグを読み取ることができる。従って、コーディングモジュール714は、ビデオコーディング分野に固有の問題を解決すると共に、ビデオコーディング装置700の機能を向上して、タイルグループシグナリングに悪影響を与えることなく、ビデオシーケンス内のデータ冗長性を低減又は除去する(従って、コーディング効率を向上する)。更に、コーディングモジュール714は、ビデオコーディング装置700の異なる状態への変換を実施する。代替として、コーディングモジュール714は、メモリ732に格納されプロセッサ730により実行される命令として(例えば、非一時的媒体に格納されたコンピュータプログラムプロダクトとして)実装できる。
【0108】
メモリ732は、ディスク、テープドライブ、個体ドライブ、読み出し専用メモリ(read only memory (ROM))、ランダムアクセスメモリ(random access memory (RAM))、フラッシュメモリ、三値連想メモリ(ternary content-addressable memory (TCAM))、静的ランダムアクセスメモリ(static random-access memory (SRAM))、等のような1つ以上のメモリ種類を含む。メモリ732は、プログラムが実行のために選択されるとき該プログラムを格納するため、及びプログラムの実行中に読み出される命令及びデータを格納するための、オーバフローデータ記憶装置として使用されてよい。
【0109】
図8は、ピクチャ601のような画像を、ビットストリーム500のようなビットストリームに符号化する例示的な方法800のフローチャートである。方法800は、方法100を実行するとき、コーデックシステム200、エンコーダ300、及び/又はビデオコーディング装置700のようなエンコーダにより利用されてよい。
【0110】
方法800は、エンコーダが複数の画像を含むビデオシーケンスを受信し、例えばユーザ入力に基づきビデオシーケンスをビットストリームに符号化することを決定するとき、開始してよい。ビデオシーケンスは、符号化の前に更なるパーティションのためにピクチャ/画像/フレームにパーティションされる。ステップ801で、ピクチャは、複数のタイルにパーティションされる。タイルは、複数のCTUに更にパーティションできる。該CTUは、予測に基づく圧縮の適用のために、コーディングブロックに更にパーティションできる。タイルのグループは、更に、タイルグループに割り当てられる。
【0111】
ステップ803で、タイルグループは、少なくとも1つのピクチャのためのコーディングデータを含むビットストリームに符号化される。ピクチャの各々は、少なくとも1つのタイルグループを含む。更に、フラグが、ビットストリーム内のパラメータセットに符号化される。フラグは、コーディングピクチャのタイル情報がパラメータセット内に又はタイルグループヘッダ内に存在するかを示す。タイル情報は、ピクチャのどのタイルがタイルグループに含まれるかを示す。特定の例として、フラグはtile_group_info_in_pps_flagである。例えば、フラグは、ピクチャに関連付けられたPPSに符号化できる。
【0112】
ステップ805で、タイル情報は、フラグに基づき、パラメータセット又はタイルグループヘッダのいずれかに符号化される。実施形態では、シンタックス要素tile_group_info_in_pps_flagが1に等しい場合、これは、タイルグループ情報がパラメータセット内に存在し、パラメータセットを参照するタイルグループヘッダ内に存在しないことを指定する。シンタックス要素tile_group_info_in_pps_flagが0に等しいとき、それは、タイルグループ情報がパラメータセット内に存在せず、パラメータセットを参照するタイルグループヘッダ内に存在することを示す。実施形態では、フラグがパラメータセット内に存在しないとき(例えば、ピクチャが1つのタイルのみを含むとき)、tile_group_info_in_pps_flagの値は0に等しいと推定される。タイルグループ情報は、タイルグループ内のタイルの数を指定するシンタックス要素、タイルグループの最後のタイルの識別を指定するシンタックス要素、及びタイルグループ内の最初のタイル以外の任意のタイルのタイル識別を指定するシンタックス要素、を含むことができる。
【0113】
ステップ807で、ビデオビットストリームは、デコーダへ向けてネットワークに沿って送信又は送信される。実施形態では、ビデオビットストリームは、要求により送信される。ビデオビットストリームは、また、エンコーダによりデコーダへ自動的にプッシュアウトできる。実施形態では、コーディングビデオビットストリームは、エンコーダにおいて一時的に又は永久的に格納できる。
【0114】
図9は、ピクチャ601のような画像を、ビットストリーム500のようなビットストリームから復号する例示的な方法900のフローチャートである。方法900は、方法100を実行するとき、コーデックシステム200、デコーダ400、及び/又はビデオコーディング装置700のようなデコーダにより利用されてよい。
【0115】
方法900は、ステップ901で、例えば方法800の結果として、デコーダがビデオシーケンスを表すコーディングデータのビットストリームを受信し始めると、開始する。例えば、コーディングデータは、少なくとも1つのピクチャのコーディングデータを含み、各ピクチャは、少なくとも1つのタイルグループを含む。
【0116】
ステップ903で、ビットストリーム内のパラメータセットから、フラグがパースされる。例えば、フラグは、ピクチャに関連付けられたPPSから取得できる。用語、パース又はパースする、は、ここで使用されるとき、フラグまたは他のシンタックス要素がパラメータセット内に存在するかどうかを識別し又は決定し、フラグまたは他のシンタックス要素に対応する値を取得し、及びフラグ又は他のシンタックス要素の値に関連付けられた条件を決定する処理を含むことができる。実施形態では、フラグをパースすることにより、方法900は、コーディングピクチャのタイル情報がパラメータセット内に又はタイルグループヘッダ内に存在するかを、フラグに基づき決定できる。
【0117】
ステップ905で、方法900は、フラグに基づき、パラメータセット又はタイルグループヘッダのいずれかの中のタイル情報を取得する。例えば、フラグが、コーディングピクチャのタイル情報はパラメータセット内に符号化されると指定するとき、方法900は、パラメータセットからタイル情報をパースできる。同様に、フラグが、コーディングピクチャのタイル情報はタイルグループヘッダ内に符号化されると指定するとき、方法900は、タイルグループヘッダからタイル情報をパースできる。
【0118】
ステップ907で、タイルグループは、ピクチャの一部を再構成するために復号できる。該一部は、次に、再構成ビデオシーケンスの部分として含まれることができる。結果として生じる再構成ビデオシーケンスは、ユーザへの表示のためにディスプレイ装置へ転送できる。結果として生じる再構成ビデオシーケンスは、デコーダのメモリ又はデータ記憶ユニットに一時的又は永久的に格納されることもできる。
【0119】
図10は、ビットストリーム500のようなビットストリームの中の、ピクチャ601のような画像のビデオシーケンスをコーディングする例示的なシステム1000の概略図である。システム1000は、コーデックシステム200のようなエンコーダ及びデコーダ、エンコーダ300、デコーダ400、及び/又はビデオコーディング装置700により実装されてよい。更に、システム1000は、方法100、800、及び/又は900を実施するとき、利用されてよい。
【0120】
システム1000は、ビデオエンコーダ1002を含む。ビデオエンコーダ1002は、第1のピクチャを複数のタイルにパーティションするパーティションモジュール1001を含む。ビデオエンコーダ1002は、タイルグループにタイルのグループを割り当てる割り当てモジュール1003を更に含む。ビデオエンコーダ1002は、タイルグループをビットストリームに符号化し、及び符号化ピクチャのタイル情報がパラメータセット内に又はタイルグループヘッダ内に存在するかを示すためにフラグをビットストリーム内のパラメータセットに符号化する符号化モジュール1005を更に含む。ビデオエンコーダ1002は、デコーダへ向けた通信のためにビットストリームを格納する格納モジュール1007を更に含む。ビデオエンコーダ1002は、デコーダへビットストリームを送信する送信モジュール1009を更に含む。ビデオエンコーダ1002は、方法800のステップのうちのいずれかを実行するよう更に構成されてよい。
【0121】
システム1000は、ビデオデコーダ1010も含む。ビデオデコーダ1010は、ピクチャからパーティションされたタイルのグループを含むタイルグループを含むビットストリームを受信する受信モジュール1011を含む。ビデオデコーダ1010は、ビットストリーム内のパラメータセットからフラグを取得する取得モジュール1013を更に含み、フラグは、符号化ピクチャのタイル情報がパラメータセット内に又はタイルグループヘッダ内に存在するかを示す。ビデオデコーダ1010は、特定の条件がタイリング情報の位置に関連するとき、それらが存在するかどうかを決定する決定モジュール1015を更に含む。例えば、決定モジュール1015は、single_tile_per_tile_group_flagをパースすることにより、タイルグループ当たりに単一のタイルがあるかどうかを決定できる。ビデオデコーダ1010は、タイルグループを復号して表示のための再構成ビデオシーケンスを生成する復号モジュール1017を更に含む。ビデオデコーダ1010は、方法900のステップのうちのいずれかを実行するよう更に構成されてよい。
【0122】
第1コンポーネントと第2コンポーネントとの間に線、トレース、又は別の媒体を除き仲介コンポーネントが存在しないとき、第1コンポーネントは、第2コンポーネントに直接接続される。第1コンポーネントと第2コンポーネントとの間に線、トレース、又は別の媒体以外の仲介コンポーネントが存在するとき、第1コンポーネントは、第2コンポーネントに間接接続される。用語「接続される」及びその変形は、直接接続及び間接接続の両方を含む。用語「約」の使用は、特に断りのない限り、後続の数値の±10%を含む範囲を意味する。
【0123】
更に理解されるべきことに、ここに説明された例示的な方法のステップは、必ずしも説明された順に実行される必要はなく、このような方法のステップの順は、単なる例であると理解されるべきである。同様に、追加ステップがこのような方法に含まれてよく、特定のステップは、本開示の種々の実施形態に従う方法において、省略され又は結合されてよい。
【0124】
幾つかの実施形態が本開示において提供されたが、開示のシステム及び方法は、本開示の精神又は範囲から逸脱することなく、多くの他の特定の形式で実施され得ることが理解され得る。本発明の例は、説明のためであり限定的ではないと考えられるべきであり、ここに与えられた詳細事項に限定されることを意図しない。例えば、種々の要素又はコンポーネントは、結合され、又は別のシステムに統合されてよく、或いは、特定の機能は、省略され又は実施されなくてよい。
【0125】
さらに、種々の実施形態において説明され示された技術、システム、サブシステム、及び方法は、本開示の範囲から逸脱することなく、他のシステム、コンポーネント、技術、又は方法と結合され又は統合されてよい。変更、代用、及び改造の他の例は、当業者により確認され、ここに開示した精神及び範囲から逸脱することなく行われてよい。
【符号の説明】
【0126】
500 ビットストリーム
510 シーケンスパラメータセット(SPS)
512 ピクチャパラメータセット(PPS)
514 タイルグループヘッダ
520 画像データ
524 タイルインデックス
523 タイル
【手続補正書】
【提出日】2023-11-15
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
デコーダにより使用されるデータ構造であって、前記データ構造は符号化ビットストリームを含み、前記ビットストリームは複数のピクチャの符号化データを含み、前記複数のピクチャの各々は少なくとも1つのスライスを含み、前記少なくとも1つのスライスのうちの1つのスライスは、複数のタイルを含み、
前記デコーダのプロセッサが、
符号化ピクチャのタイル情報がパラメータセット内に存在するか又はスライスヘッダ内に存在するかを示すフラグをパースし、
前記フラグが、符号化ピクチャの前記タイル情報は前記パラメータセット内に符号化されると示す場合、前記パラメータセットから前記タイル情報をパースし、
前記フラグが、符号化ピクチャの前記タイル情報は前記スライスヘッダ内に符号化されると示す場合、前記スライスヘッダから前記タイル情報をパースし、
前記タイル情報に基づき、前記符号化ピクチャの復号データを取得する、データ構造。
【請求項2】
前記タイル情報は、スライス内のタイルの数を示す、請求項1に記載のデータ構造。
【請求項3】
前記パラメータセットはピクチャパラメータセットである、請求項1又は2に記載のデータ構造。
【請求項4】
エンコーダであって、
命令を格納しているメモリと、
前記メモリに結合される1つ以上のプロセッサと、
を含み、
前記1つ以上のプロセッサは、前記命令を実行して、前記エンコーダに、
ピクチャのタイル情報がピクチャパラメータセット内に存在するか又はスライスヘッダ内に存在するかを示すフラグを符号化させ、前記ピクチャは少なくとも1つのスライスを含み、前記タイル情報はスライス内のタイルの数を示し、
前記フラグが、前記ピクチャの前記タイル情報は前記ピクチャパラメータセット内に符号化されると示す場合、前記ピクチャパラメータセット内にのみ前記タイル情報を符号化させ、
前記フラグが、前記ピクチャの前記タイル情報は前記スライスヘッダ内に符号化されると示す場合、前記スライスヘッダ内にのみ前記タイル情報を符号化させ、
前記タイル情報に基づき、前記ピクチャのデータをビデオビットストリームに符号化させる、エンコーダ。
【請求項5】
前記1つ以上のプロセッサは、前記ピクチャ内の各スライスの第1タイルのタイル識別子(ID)を符号化するよう更に構成される、請求項4に記載のエンコーダ。
【請求項6】
前記1つ以上のプロセッサは、
前記ピクチャパラメータセットを参照する現在スライスが1より多くのタイルを含むかどうかを指定する第2フラグを符号化し、
前記第2フラグが、前記ピクチャパラメータセットを参照する前記現在スライスが1より多くのタイルを含むことを指定するという決定に応答して、前記ピクチャ内の前記現在スライスの最後のタイルのタイルIDを符号化する、
よう更に構成される、請求項5に記載のエンコーダ。
【請求項7】
前記1つ以上のプロセッサは、
前記ピクチャパラメータセットを参照する現在スライスが1より多くのタイルを含むかどうかを指定する第2フラグを符号化し、
前記第2フラグが、前記ピクチャパラメータセットを参照する前記現在スライスが1より多くのタイルを含むことを指定するという決定に応答して、前記ピクチャ内の前記現在スライスの中のタイルの数を符号化する、
よう更に構成される、請求項5に記載のエンコーダ。
【請求項8】
デコーダであって、
命令を格納しているメモリと、
前記メモリに結合される1つ以上のプロセッサと、
を含み、
前記1つ以上のプロセッサは、前記命令を実行して、前記デコーダに、
ピクチャのタイル情報がピクチャパラメータセット内に存在するか又はスライスヘッダ内に存在するかを示すフラグをパースさせ、前記タイル情報はスライス内のタイルの数を示し、前記ピクチャは少なくとも1つのスライスを含み、
前記フラグが、前記ピクチャの前記タイル情報は前記ピクチャパラメータセット内に符号化されると示す場合、前記ピクチャパラメータセットから前記タイル情報をパースさせ、
前記フラグが、前記ピクチャの前記タイル情報は前記スライスヘッダ内に符号化されると示す場合、前記スライスヘッダから前記タイル情報をパースさせ、
前記タイル情報に基づき、符号化ピクチャの復号データを取得させる、デコーダ。
【請求項9】
前記1つ以上のプロセッサが、前記パラメータセット内の前記タイル情報をパースするよう更に構成されることは、前記ピクチャ内の各スライスの第1タイルのタイル識別子(ID)を復号することを含む、請求項8に記載のデコーダ。
【請求項10】
1つ以上のプロセッサは、
前記ピクチャパラメータセットを参照する現在スライスが1より多くのタイルを含むかどうかを指定する第2フラグをパースし、
前記第2フラグが、前記ピクチャパラメータセットを参照する前記現在スライスが1より多くのタイルを含むことを指定するという決定に応答して、前記ピクチャ内の前記現在スライスの最後のタイルのタイルIDを復号する、
よう更に構成される、請求項9に記載のデコーダ。
【請求項11】
前記1つ以上のプロセッサは、
前記ピクチャパラメータセットを参照する現在スライスが1より多くのタイルを含むかどうかを指定する第2フラグをパースし、
前記第2フラグが、前記ピクチャパラメータセットを参照する前記現在スライスが1より多くのタイルを含むことを指定するという決定に応答して、前記ピクチャ内の前記現在スライスの中のタイルの数を復号する、
よう更に構成される、請求項9に記載のデコーダ。
【外国語明細書】