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

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

▶ テンセント・アメリカ・エルエルシーの特許一覧

特許7655636ビデオストリーミングにおけるパラメータセット指示の方法
<>
  • 特許-ビデオストリーミングにおけるパラメータセット指示の方法 図1
  • 特許-ビデオストリーミングにおけるパラメータセット指示の方法 図2
  • 特許-ビデオストリーミングにおけるパラメータセット指示の方法 図3
  • 特許-ビデオストリーミングにおけるパラメータセット指示の方法 図4
  • 特許-ビデオストリーミングにおけるパラメータセット指示の方法 図5
  • 特許-ビデオストリーミングにおけるパラメータセット指示の方法 図6
  • 特許-ビデオストリーミングにおけるパラメータセット指示の方法 図7
  • 特許-ビデオストリーミングにおけるパラメータセット指示の方法 図8
  • 特許-ビデオストリーミングにおけるパラメータセット指示の方法 図9
  • 特許-ビデオストリーミングにおけるパラメータセット指示の方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-25
(45)【発行日】2025-04-02
(54)【発明の名称】ビデオストリーミングにおけるパラメータセット指示の方法
(51)【国際特許分類】
   H04N 19/70 20140101AFI20250326BHJP
【FI】
H04N19/70
【請求項の数】 12
(21)【出願番号】P 2023566697
(86)(22)【出願日】2022-11-04
(65)【公表番号】
(43)【公表日】2024-04-11
(86)【国際出願番号】 US2022048932
(87)【国際公開番号】W WO2023183033
(87)【国際公開日】2023-09-28
【審査請求日】2023-10-27
(31)【優先権主張番号】63/323,846
(32)【優先日】2022-03-25
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/973,986
(32)【優先日】2022-10-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】シャオジョン・シュ
(72)【発明者】
【氏名】シャン・リュウ
【審査官】田中 純一
(56)【参考文献】
【文献】特表2015-515239(JP,A)
【文献】国際公開第2013/163563(WO,A1)
【文献】特開2015-126507(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
ビデオ処理のための方法であって、前記方法は、
少なくとも1つのビデオサンプルを含むビットストリームを受信するステップであって、前記少なくとも1つのビデオサンプルは、現在のビデオサンプルおよび前のビデオサンプルを含み、前記少なくとも1つのビデオサンプルの各々は少なくとも1つのビデオフレームを含み、前記少なくとも1つのビデオサンプルの前記各々は前記少なくとも1つのビデオサンプルの前記各々をデコードするためのサービングシーケンスパラメータセット(SPS)と関連付けられている、ステップと、
前記現在のビデオサンプルに対する前記サービングSPSを、以下のタイプ、すなわち、
前記ビットストリームからすでにパースされ、前記前のビデオサンプルをデコードするために使用された前のSPS、
前記現在のビデオサンプルにカプセル化された現在のSPS、および
候補SPSのリスト内のSPS、
のうちの1つとして決定するステップと、
前記現在のビデオサンプルに対する前記サービングSPSおよび前記サービングSPSの前記決定されたタイプに基づいて前記現在のビデオサンプルをデコードするステップとを含み、
前記SPSは、以下のパラメータ、すなわち、
プロファイル、
レベル値、
ティア値、
クロマフォーマット、
ビット深度、
ピクチャ幅、
ピクチャ高さ、
エントロピーコーディングモード、および
変換モード、のうちの少なくとも1つを含む、方法。
【請求項2】
前記現在のビデオサンプルに対する前記サービングSPSを決定するステップは、
前記ビットストリームから、前記現在のビデオサンプルが前記現在のSPSをカプセル化しているかどうかを指示するSPS存在フラグを抽出するステップと、
前記現在のビデオサンプルが前記現在のSPSをカプセル化していることを指示する前記SPS存在フラグに応じて、
前記ビットストリームから、前記現在のSPSの位置情報を抽出するステップと、
前記現在のSPSを取得するために、前記位置情報に基づいて前記ビットストリームをパースするステップと、
前記現在のSPSを前記現在のビデオサンプルに対する前記サービングSPSとして決定するステップとを含む、請求項1に記載の方法。
【請求項3】
前記現在のビデオサンプルが前記現在のSPSをカプセル化していないことを指示する前記SPS存在フラグに応じて、前記前のSPSを前記現在のビデオサンプルに対する前記サービングSPSとして決定するステップをさらに含む、請求項2に記載の方法。
【請求項4】
前記少なくとも1つのビデオサンプルの前記各々は、SPSをカプセル化しており、
前記現在のビデオサンプルにカプセル化された前記SPSは、前記現在のSPSであり、
前記現在のビデオサンプルに対する前記サービングSPSを決定するステップは、
前記ビットストリームから、前記サービングSPSが、前記前のビデオサンプルをデコードするために使用された前記前のSPSから更新されているかどうかを指示するSPS更新状況フラグを抽出するステップと、
前記サービングSPSが前記前のSPSから更新されていることを指示する前記SPS更新状況フラグに応じて、前記現在のSPSを前記サービングSPSとして決定するステップと、
前記サービングSPSが前記前のSPSから更新されていないことを指示する前記SPS更新状況フラグに応じて、前記現在のビデオサンプル内の前記現在のSPSを無視してパースをスキップし、前記前のSPSを前記現在のビデオサンプルに対する前記サービングSPSとして決定するステップとを含む、
請求項1に記載の方法。
【請求項5】
前記現在のSPSは、前記現在のビデオサンプルがランダムアクセス要求の開始点であることに応じて前記現在のビデオサンプルにカプセル化される、請求項1に記載の方法。
【請求項6】
前記現在のビデオサンプルに対する前記サービングSPSを決定するステップは、
前記現在のビデオサンプルがランダムアクセス要求の開始点であることに応じて、前記現在のSPSを前記現在のビデオサンプルに対する前記サービングSPSとして決定するステップを含む、請求項5に記載の方法。
【請求項7】
前記現在のビデオサンプルに対する前記サービングSPSを記憶するステップと、
前記ビットストリームから前記現在のビデオサンプルに続く次のビデオサンプルを受信するステップと、
前記次のビデオサンプルに対する前記サービングSPSが前記現在のビデオサンプルに対する前記サービングSPSから更新されていないと決定するステップと、
前記現在のビデオサンプルに対する前記サービングSPSに基づいて前記次のビデオサンプルをデコードするステップと
をさらに含む、請求項1に記載の方法。
【請求項8】
前記方法は、前記少なくとも1つのビデオサンプルを含む前記ビットストリームを受信するステップの前に、前記ビットストリームから、前記候補SPSのリストを受信するステップをさらに含み、
前記現在のビデオサンプルに対する前記サービングSPSを決定するステップは、
前記ビットストリームから、前記現在のビデオサンプルと関連付けられた、前記候補SPSのリスト内のSPSを識別するSPS識別子を抽出するステップと、
前記SPS識別子によって識別される前記候補SPSのリスト内の前記SPSを、前記現在のビデオサンプルに対する前記サービングSPSとして決定するステップとを含む、
請求項1に記載の方法。
【請求項9】
前記現在のビデオサンプルは前記現在のSPSをカプセル化しており、
前記方法は、前記現在のSPSが前記候補SPSのリスト内にあるかどうかを決定するステップをさらに含み、
前記現在のビデオサンプルに対する前記サービングSPSを決定するステップは、
前記現在のSPSが前記候補SPSのリスト内にないことに応じて、
前記現在のSPSを取得するために前記現在のビデオサンプルをパースするステップと、
前記現在のSPSを前記候補SPSのリストに追加するステップと、
前記現在のSPSを前記現在のビデオサンプルに対する前記サービングSPSとして決定するステップと、
前記現在のSPSが前記候補SPSのリスト内にあることに応じて、
前記候補SPSのリストから前記現在のSPSを検索するステップと、
前記現在のSPSを前記現在のビデオサンプルに対する前記サービングSPSとして決定するステップとを含む、
請求項1に記載の方法。
【請求項10】
前記現在のビデオサンプルに対する前記サービングSPSを決定するステップは、
前記ビットストリームから、前記現在のビデオサンプルと関連付けられた、前記現在のビデオサンプルにカプセル化された前記現在のSPSの長さを指示するSPS長さインジケータを抽出するステップと、
前記SPS長さインジケータによって指示される前記現在のSPSの前記長さが0であることに応じて、前記サービングSPSが前記前のビデオサンプルをデコードするために使用された前記前のSPSであると決定するステップと、
前記SPS長さインジケータによって指示される前記現在のSPSの前記長さが0ではないことに応じて、
前記ビットストリームから、前記現在のSPSの位置情報を抽出するステップと、
前記現在のSPSを取得するために、前記位置情報に基づいて前記ビットストリームをパースするステップと、
前記現在のSPSを前記現在のビデオサンプルに対する前記サービングSPSとして決定するステップとを含む、請求項1に記載の方法。
【請求項11】
ビデオ処理のためのデバイスであって、前記デバイスは、コンピュータ命令を記憶するためのメモリと、前記メモリと通信するプロセッサとを含み、前記プロセッサが前記コンピュータ命令を実行すると、前記プロセッサは前記デバイスに、請求項1~10のいずれか一項に記載の方法を行わせるように構成される、デバイス。
【請求項12】
ビデオ処理のためにデバイス内のプロセッサにより実行されると、前記プロセッサに、請求項1~10のいずれか一項に記載の方法を行わせるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
参照による組み込み
本出願は、参照によりその全体が本明細書に組み込まれる、2022年3月25日に出願された、「METHOD AND APPARATUS FOR PARAMETER SET INDICATION IN VIDEO STREAMING」なる名称の米国仮出願第63/323,846号に基づき、その優先権の利益を主張する、2022年10月26日に出願された、「METHODS OF PARAMETER SET INDICATION IN VIDEO STREAMING」と題する米国非仮出願第17/973,986号に基づき、その優先権の利益を主張する。
【0002】
本開示は、高度なビデオコーディング技術のセットを説明する。より具体的には、開示の技術は、ビデオビットストリームのためのビデオファイルカプセル化、ならびにデコーディングパラメータシグナリングの実装および強化を含む。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示の文脈を一般的に提示することを目的としている。本発明者らの研究は、その研究がこの背景技術の項に記載されている限りにおいて、またそれ以外の本出願の出願時に先行技術として認められない可能性のある説明の態様と共に、本開示に対する先行技術としては明示的にも暗黙的にも認められない。
【0004】
マルチメディアシステムは、以下の手順、すなわち、ビデオ取り込み、ビデオコーディング、ビデオファイルカプセル化、ファイルトランスポート、ファイルカプセル化解除、ビデオデコーディングおよびビデオレンダリングをサポートするモジュールを含む場合がある。これらの手順中で、ファイルカプセル化は、トランスポートおよびデコーディング手順を最適化するために、元のビデオビットストリームを必須のメタデータ情報で編成するために使用される。ファイルカプセル化中、ビットストリーム内のビデオフレームは、通常、ファイル内のサンプル(またはビデオサンプル)として再定義され、典型的には、サンプルは、フレームサイズ、プレゼンテーション時間などといった追加のメタデータを有するビデオフレームとみなされることができる。
【0005】
ビデオコーディングおよびビデオデコーディングは、動き補償を伴うインターピクチャ予測を使用して行われることができる。非圧縮デジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080の輝度サンプルおよび関連するフルサンプリングまたはサブサンプリングされたクロミナンスサンプルの空間次元を有する。一連のピクチャは、例えば、毎秒60ピクチャまたは毎秒60フレームの固定または可変のピクチャレート(代替的にフレームレートとも呼ばれる)を有することができる。非圧縮ビデオは、ストリーミングまたはデータ処理のための特定のビットレート要件を有する。例えば、1920×1080のピクセル解像度、60フレーム/秒のフレームレート、および色チャネルあたりピクセルあたり8ビットで4:2:0のクロマサブサンプリングを有するビデオは、1.5Gbit/sに近い帯域幅を必要とする。1時間分のそのようなビデオは、600GByteを超える記憶空間を必要とする。
【0006】
ビデオコーディングおよびビデオデコーディングの1つの目的は、圧縮による非圧縮入力ビデオ信号の冗長性の低減でありうる。圧縮は、前述の帯域幅要件および/または記憶空間要件を、場合によっては2桁以上低減させるのに役立ちうる。可逆圧縮と非可逆圧縮の両方、ならびにそれらの組み合わせが採用されることができる。可逆圧縮とは、デコーディングプロセスを介して圧縮された原信号から原信号の正確なコピーが再構成されることができる技術を指す。非可逆圧縮とは、元のビデオ情報がコーディング時に完全に保持されず、デコーディング時に完全に復元できないコーディング/デコーディングプロセスを指す。非可逆圧縮を使用する場合、再構成された信号は原信号と同一ではない可能性があるが、原信号と再構成された信号との間の歪みは、多少の情報損失はあっても、再構成された信号を意図された用途に役立てるのに十分なほど小さくなる。ビデオの場合、非可逆圧縮が多くの用途で広く採用されている。耐容できる歪みの量は、用途に依存する。例えば、特定の消費者ビデオストリーミング用途のユーザは、映画やテレビ放送用途のユーザよりも高い歪みを容認しうる。特定のコーディングアルゴリズムによって達成可能な圧縮比は、様々な歪み耐性を反映するように選択または調整されることができる、すなわち、一般に、耐容できる歪みが高いほど、高い損失および高い圧縮比をもたらすコーディングアルゴリズムが可能になる。
【0007】
ビデオエンコーダおよびビデオデコーダは、例えば、動き補償、フーリエ変換、量子化、およびエントロピーコーディングを含む、いくつかの広範なカテゴリおよびステップからの技術を利用することができる。
【発明の概要】
【課題を解決するための手段】
【0008】
本開示の態様は、一般に、ビデオエンコーディングおよびビデオデコーディングに関し、特に、ビデオビットストリームのためのビデオファイルカプセル化、ならびにデコーディングパラメータシグナリングの実装および強化に関する。
【0009】
本開示の態様は、ビデオデータを処理するための方法を提供する。方法は、少なくとも1つのビデオサンプルを含むビットストリームを受信するステップであって、少なくとも1つのビデオサンプルは、現在のビデオサンプルおよび前のビデオサンプルを含み、少なくとも1つのビデオサンプルの各々は少なくとも1つのビデオフレームを含み、少なくとも1つのビデオサンプルの各々は少なくとも1つのビデオサンプルの各々をデコードするためのサービングシーケンスパラメータセット(SPS)と関連付けられている、ステップと、現在のビデオサンプルに対するサービングSPSを、ビットストリームからすでにパースされ、前のビデオサンプルをデコードするために使用された前のSPS、現在のビデオサンプルにカプセル化された現在のSPS、および候補SPSのリスト内のSPS、のうちの1つとして決定するステップと、現在のビデオサンプルに対するサービングSPSに基づいて現在のビデオサンプルをデコードするステップと、を含む。
【0010】
本開示の態様はまた、上記の方法実装形態のいずれかを実行するように構成された回路を含むビデオエンコーディングまたはビデオデコーディングのデバイスまたは装置も提供する。
【0011】
本開示の態様はまた、ビデオデコーディングおよび/またはビデオエンコーディングのためにコンピュータによって実行されると、コンピュータにビデオデコーディングおよび/またはビデオエンコーディングのための方法を行わせる命令を記憶している非一時的コンピュータ可読媒体も提供する。
【0012】
開示の主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0013】
図1】ビデオエンコーディング/デコーディング方法の例示的な適用環境の図を示す。
図2】様々な例示的なビデオサンプルを示す。
図3】例示的な実施形態による通信システム(300)の簡略ブロック図の概略図を示す。
図4】例示的な実施形態による通信システム(400)の簡略ブロック図の概略図を示す。
図5】例示的な実施形態によるビデオデコーダの簡略ブロック図の概略図を示す。
図6】例示的な実施形態によるビデオエンコーダの簡略ブロック図の概略図を示す。
図7】別の例示的な実施形態によるビデオエンコーダのブロック図を示す。
図8】別の例示的な実施形態によるビデオデコーダのブロック図を示す。
図9】本開示の例示的な実施形態による方法のフローチャートを示す。
図10】本開示の例示的な実施形態によるコンピュータシステムの概略図を示す。
【発明を実施するための形態】
【0014】
次に、本発明の一部を形成し、実施形態の具体例を例示として示す添付の図面を参照して本発明を以下で詳細に説明する。しかしながら、本発明は、様々な異なる形態で具体化されてもよく、したがって、対象として含まれるか、または特許請求される主題は、以下に記載される実施形態のいずれにも限定されないと解釈されることが意図されていることに留意されたい。また、本発明は、方法、デバイス、構成要素、またはシステムとして具体化されうることにも留意されたい。したがって、本発明の実施形態は、例えば、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせの形態をとりうる。
【0015】
本明細書および特許請求の範囲全体を通して、用語は、明示的に記載される意味を超えて文脈内で示唆または暗示される微妙な意味を有する場合がある。本明細書で使用される「一実施形態では」または「いくつかの実施形態では」という語句は、必ずしも同じ実施形態を指すものではなく、本明細書で使用される「別の実施形態では」または「他の実施形態では」という語句は、必ずしも異なる実施形態を指すものではない。同様に、本明細書で使用される「一実装形態では」または「いくつかの実装形態では」という語句は、必ずしも同じ実装形態を指すものではなく、本明細書で使用される「別の実装形態では」または「他の実装形態では」という語句は、必ずしも異なる実装形態を指すものではない。例えば、特許請求される主題は、例示的な実施形態/実装形態の全部または一部の組み合わせを含むことが意図されている。
【0016】
一般に、用語は、文脈における用法から少なくとも部分的に理解されうる。例えば、本明細書で使用される「および」、「または」、または「および/または」などの用語は、そのような用語が使用される文脈に少なくとも部分的に依存しうる様々な意味を含む場合がある。典型的には、A、B、またはCなどのリストを関連付けるために使用される場合の「または」は、ここでは包括的な意味で使用されるA、B、およびC、ならびにここでは排他的な意味で使用されるA、B、またはCを意味することを意図されている。加えて、本明細書で使用される「1つまたは複数」または「少なくとも1つ」という用語は、文脈に少なくとも部分的に依存して、単数の意味で任意の特徴、構造、または特性を記述するために使用されてもよいし、複数の意味で特徴、構造、または特性の組み合わせを記述するために使用されてもよい。同様に、「a」、「an」、または「the」などの用語もやはり、文脈に少なくとも部分的に依存して、単数の用法を伝えるか、または複数の用法を伝えると理解されてもよい。加えて、「に基づいて」または「によって決定される」という用語は、必ずしも排他的な要因のセットを伝えることを意図されていないと理解される場合もあり、代わりに、やはり文脈に少なくとも部分的に依存して、必ずしも明示的に記述されていないさらなる要因の存在を許容する場合もある。
【0017】
図1は、一実施形態によるビデオ処理(エンコーディング/デコーディング)方法の適用環境の図である。図1を参照すると、ビデオ処理方法はビデオ処理システムに適用される。ビデオ処理システムは、端末110と、サーバ120とを含む。端末110は、ネットワークによってサーバ120に接続される。端末110は、デスクトップ端末またはモバイル端末であってもよいが、これらに限定されず、モバイル端末は、具体的には、携帯電話、タブレットコンピュータ、ノートブックコンピュータなどのうちの少なくとも1つであってもよく、本出願では制限は課されない。サーバ120は、独立したサーバまたは複数のサーバを含むサーバクラスタを使用することによって実装されてもよい。端末は、クライアントと呼ばれる場合もある。
【0018】
ビデオエンコーディング方法およびビデオデコーディング方法は、端末110および/またはサーバ120において実装されうる。端末110は、ビデオエンコーディング方法を使用することによって現在のフレームをエンコードし、次いで、エンコードされたビデオフレームをサーバ120に送信するか、またはサーバ120からエンコードされたデータ(例えば、ビットストリーム)を受信し、ビデオデコーディング方法を使用することによってエンコードされたデータをデコードし、次いで、再構成されたビデオフレームを生成しうる。サーバ120は、記憶中にコードストリームに対してトランスコーディングを行いうる。この場合、ビデオエンコーディング方法はサーバ上で完了される。サーバ120がコードストリームをデコードする必要がある場合、ビデオデコーディング方法はサーバ上で完了される。エンコーディング端とデコーディング端とは、同じ端であっても、異なる端であってもよいことが理解されよう。コンピュータデバイス、例えば端末やサーバは、エンコーディング端であってもデコーディング端であっても、エンコーディング端とデコーディング端の両方であってもよい。
【0019】
図1を参照すると、端末110またはサーバ120は、エンコーダを使用することによってビデオエンコーディングを行いうるか、またはデコーダを使用することによってビデオデコーディングを行いうる。端末110またはサーバ120はまた、ビデオエンコーディングプログラムを実行するプロセッサを使用することによってビデオエンコーディングを行いうるか、またはビデオデコーディングプログラムを実行するプロセッサを使用することによってビデオデコーディングを行いうる。例えば、端末110によって送信されたエンコードされたデータを入力インターフェースを介して受信した後、サーバ120は、エンコードされたデータをデコーディングのためにプロセッサに直接転送してもよいし、エンコードされたデータを後でデコードするためにデータベースに記憶してもよい。プロセッサにより元のビデオフレームをエンコードすることによってエンコードされたデータを取得した後、サーバ120は、エンコードされたデータを、出力インターフェースを介して端末110に直接送信してもよいし、エンコードされたデータを後で転送するためにデータベースに記憶してもよい。
【0020】
例示的な実装形態では、本開示で提供されるビデオエンコーディング方法およびビデオデコーディング方法は、ビデオオンデマンドやビデオストリーミングなどの用途に適用されうる。そのような用途では、一例として、端末はサーバに、ビデオを再生するよう求める要求を送信する場合がある。サーバは、データベースからソースデータをフェッチしてもよく、ビデオソースは予めエンコードされたビデオデータであってもよいし、サーバは、例えば、特定のサービス要件および/または伝送帯域幅を満たすために、ビデオソースをリアルタイムでエンコードしてエンコードされたビデオデータを取得してもよい。次いで、サーバは、エンコードビデオデータをビットストリームを介して端末に送信しうる。端末はまた、早送り、巻き戻し、またはジャンプ(例えば、タイムライン内の新しい時点をクリックすることによるか、またはタイムライン内の再生ヘッドを新しい時点までドラッグすることによる)などの複数の再生モードをサポートしうる。ジャンプ再生はランダムアクセス機能を含み、これは後のセクションで詳細に説明される。
【0021】
例示的な実装形態では、本開示で提供されるビデオエンコーディング方法およびビデオデコーディング方法は、ビデオ通話機能を有するアプリケーションに適用されうる。アプリケーションは、ソーシャルアプリケーションまたはインスタントメッセージングアプリケーションを含みうる。本出願の実施形態をインストールされた2つの端末間のビデオ通話中に、第1の端末は、カメラを使用することによってビデオフレームを取得し、アプリケーションのビデオエンコーディング機能を使用することによってビデオフレームをエンコードしてエンコードされたデータを取得し、エンコードされたデータをアプリケーションのバックグラウンドサーバに送信する。バックグラウンドサーバは、エンコードされたデータを第2の端末に転送する。エンコードされたデータを受信した後、第2の端末は、アプリケーションのビデオデコーディング機能を使用することによってエンコードされたデータをデコードし、ビデオフレームを表示するために、再構成を行ってビデオフレームを取得する。同様に、第2の端末は、エンコーディングによって取得されたエンコードされたデータをバックグラウンドサーバを使用することによって第1の端末に送信してもよく、第1の端末はデコーディングおよび表示を行い、それによって2者間でビデオ通話を実現する。
【0022】
例示的な実装形態では、本出願で提供されるビデオエンコーディング方法およびビデオデコーディング方法は、ビデオ再生機能を有するアプリケーションに適用されうる。例えば、アプリケーションは、ビデオライブストリーミングアプリケーション、ショートビデオアプリケーション、またはビデオ再生アプリケーションを含みうる。アプリケーションの実施形態がインストールされた端末は、カメラを使用することによってビデオフレームを取得し、アプリケーションのビデオエンコーディング機能を使用することによってビデオフレームをエンコードしてエンコードされたデータを取得し、エンコードされたデータをアプリケーションのバックグラウンドサーバに送信しうる。別の端末がビデオの視聴を要求した場合、バックグラウンドサーバは、ビデオのエンコードされたデータをその別の端末に送信する。その別の端末上のアプリケーションは、エンコードされたデータをデコードしてビデオを再生する。
【0023】
前述のいくつかの可能な適用シナリオは、例示的な説明のために使用されているにすぎない。本開示の様々な実施形態で提供されるビデオエンコーディング方法およびビデオデコーディング方法は、ビデオエンコーディングおよびビデオデコーディングを必要とする任意のシナリオにさらに適用されてもよい。
【0024】
図2は、例示的な高レベルビデオビットストリーム構造を示している。ビットストリームは、n個のビデオサンプル(202)を含んでもよい。各ビデオサンプルは、少なくとも1つのビデオフレームによって形成される。一実装形態では、各ビデオサンプル内のビデオフレームの数は可変でありうる。一実装形態では、各ビデオサンプル内のビデオフレームの数は固定されうる(例えば、各ビデオサンプルが1つのビデオフレームを含んでもよいし、各ビデオサンプルが2つのビデオフレームなどを含んでもよいなど)。一実装形態では、各ビデオサンプルは、伝送のための1つのデータパケット(例えば、インターネットプロトコル(IP)パケット)にカプセル化されうる。一実装形態では、各ビデオフレームは、1つのデータパケットにカプセル化されうる。
【0025】
例示的な実装形態では、同じシーケンスパラメータセット(SPS、シーケンスレベルパラメータセットとも呼ばれる)を共有する複数の隣接するビデオサンプルが、ビデオシーケンス(またはシーケンス、コーディングされたビデオシーケンス)を形成しうる。図2を参照すると、ビデオサンプル1とビデオサンプル2とはシーケンスを形成してもよく、シーケンスは両方のビデオサンプル内のすべてのフレームを含む。ビデオフレームn-1とビデオフレームnとは別のシーケンスを形成しうる。ビデオサンプルは、同じシーケンス内のビデオサンプルをデコードするために使用されうるSPSをさらにカプセル化していてもよい。SPSは、シーケンス内の開始ビデオサンプルなど、シーケンス内のただ1つのビデオサンプルにカプセル化されてもよい。SPSはまた、シーケンス内のすべてのビデオサンプルにカプセル化されてもよい。詳細な実装形態は後のセクションで説明される。本開示では、ビデオサンプルをデコードすることは、ビデオサンプル内のすべてのフレームをデコードすることを含む。一例として、ビットストリームはn個のビデオサンプルを含んでもよく、nは正の整数であり、各ビデオサンプルは1つのビデオフレームを含んでもよく、n個のビデオサンプルは複数のシーケンスを形成してもよい。
【0026】
本開示では、ビデオシーケンスは、単一のビデオサンプルによって形成されうる。
【0027】
図3は、本開示の一実施形態による通信システム(300)の簡略ブロック図を示している。通信システム(300)は、例えばネットワーク(350)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された端末デバイス(310)および(320)の第1のペアを含む。図3の例では、端末デバイス(310)および(320)の第1のペアは、データの単方向伝送を行いうる。例えば、端末デバイス(310)は、ネットワーク(350)を介して他方の端末デバイス(320)に送信するために(例えば、端末デバイス(310)によって取り込まれたビデオピクチャのストリームの)ビデオデータをコーディングしうる。エンコードされたビデオデータは、1つまたは複数のコーディングされたビデオビットストリームの形式で送信されることができる。端末デバイス(320)は、ネットワーク(350)からコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコードしてビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示しうる。単方向データ伝送は、メディアサービング用途などで実施される場合がある。端末デバイス(310)はまた、予めエンコードされたビデオデータを内部/外部ストレージおよび/または内部/外部データベースから直接取り出してもよいことに留意されたい。この場合、エンコーディングプロセスはスキップされてもよく、端末デバイス(310)は、ビデオビットストリームを端末デバイス(320)に直接送信してもよい。
【0028】
別の例では、通信システム(300)は、例えば、ビデオ会議用途の間に実施されうるコーディングされたビデオデータの双方向伝送を行う端末デバイス(330)および(340)の第2のペアを含む。データの双方向伝送の場合、一例では、端末デバイス(330)および(340)の各端末デバイスは、ネットワーク(350)を介して端末デバイス(330)および(340)の他方の端末デバイスに送信するために(例えば、端末デバイスによって取り込まれたビデオピクチャのストリームの)ビデオデータをコーディングしうる。端末デバイス(330)および(340)の各端末デバイスはまた、端末デバイス(330)および(340)の他方の端末デバイスによって送信されたコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコードしてビデオピクチャを復元し、復元されたビデオデータに従ってアクセス可能な表示デバイスでビデオピクチャを表示しうる。
【0029】
図3の例では、端末デバイス(310)、(320)、(330)、および(340)は、サーバ、パーソナルコンピュータ、およびスマートフォンとして実装されてもよいが、本開示の基礎となる原理の適用性はそのように限定されない。本開示の実施形態は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、ウェアラブルコンピュータ、専用のビデオ会議機器などにおいて実装されうる。ネットワーク(350)は、例えば、有線(有線接続)および/または無線通信ネットワークを含む、端末デバイス(310)、(320)、(330)および(340)間でコーディングされたビデオデータを伝達する任意の数またはタイプのネットワークを表す。通信ネットワーク(350)は、回線交換チャネル、パケット交換チャネル、および/または他のタイプのチャネルでデータを交換しうる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットを含む。本考察の目的では、ネットワーク(350)のアーキテクチャおよびトポロジーは、本明細書で明示的に説明されない限り、本開示の動作にとって重要ではない場合がある。
【0030】
図4は、開示の主題についての用途の一例として、ビデオストリーミング環境内のビデオエンコーダおよびビデオデコーダの配置を示している。開示の主題は、例えば、ビデオ会議、デジタルテレビ放送、ゲーム、仮想現実、CD、DVD、メモリスティックなどを含むデジタル媒体上の圧縮ビデオの記憶などを含む、他のビデオ用途に等しく適用可能でありうる。
【0031】
ビデオストリーミングシステムは、例えば、圧縮されていないビデオピクチャまたは画像のストリーム(402)を作成するためのビデオソース(401)、例えば、デジタルカメラを含むことができるビデオキャプチャサブシステム(413)を含んでもよい。一例では、ビデオピクチャのストリーム(402)は、ビデオソース401のデジタルカメラによって記録されたサンプルを含む。ビデオピクチャのストリーム(402)は、エンコードされたビデオデータ(404)(またはコーディングされたビデオビットストリーム)と比較した場合の高データ量を強調するために太線として図示されており、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理されることができる。ビデオエンコーダ(403)は、以下でより詳細に説明されるように、開示の主題の態様を可能にするかまたは実装するために、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。エンコードされたビデオデータ(404)(またはエンコードされたビデオビットストリーム(404))は、非圧縮ビデオピクチャのストリーム(402)と比較した場合の低データ量を強調するために細線として図示されており、将来の使用のためにストリーミングサーバ(405)上に、または下流のビデオデバイス(図示せず)に直接記憶されることができる。図4のクライアントサブシステム(406)および(408)などの1つまたは複数のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、エンコードされたビデオデータ(404)のコピー(407)および(409)を取り出すことができる。クライアントサブシステム(406)は、例えば、電子デバイス(430)内のビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、エンコードされたビデオデータの入力コピー(407)をデコードし、圧縮されていない、ディスプレイ(412)(例えば、表示スクリーン)または他のレンダリングデバイス(図示せず)上にレンダリングすることができるビデオピクチャの出力ストリーム(411)を作成する。ビデオデコーダ410は、本開示に記載される様々な機能の一部または全部を行うように構成されうる。いくつかのストリーミングシステムでは、エンコードされたビデオデータ(404)、(407)、および(409)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮規格に従ってエンコーディングされることができる。それらの規格の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオコーディング規格は、多用途ビデオコーディング(VVC)として非公式に知られている。開示の主題は、VVC、および他のビデオコーディング規格の文脈で使用されてもよい。
【0032】
電子デバイス(420)および(430)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(420)はビデオデコーダ(図示せず)も含むことができ、電子デバイス(430)はビデオエンコーダ(図示せず)も含むことができる。
【0033】
図5は、以下の本開示の任意の実施形態によるビデオデコーダ(510)のブロック図を示している。ビデオデコーダ(510)は、電子デバイス(530)に含まれることができる。電子デバイス(530)は、受信器(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、図4の例のビデオデコーダ(410)の代わりに使用されることができる。
【0034】
受信器(531)は、ビデオデコーダ(510)によってデコーディングされるべき1つまたは複数のコーディングされたビデオシーケンスを受信しうる。同じかまたは別の実施形態では、一度に1つのコーディングされたビデオシーケンスがデコーディングされてもよく、各コーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスから独立している。各ビデオシーケンスは、複数のビデオフレームまたはビデオ画像と関連付けられてもよい。コーディングされたビデオシーケンスはチャネル(501)から受信されてもよく、チャネル(501)は、エンコードされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであっても、またはエンコードされたビデオデータを送信するストリーミングソースであってもよい。受信器(531)は、エンコードされたビデオデータを、それぞれの処理回路(図示せず)に転送されうる、コーディングされたオーディオデータおよび/または補助データストリームなどの他のデータと共に受信しうる。受信器(531)は、コーディングされたビデオシーケンスをその他のデータから離しうる。ネットワークジッタに対抗するために、受信器(531)とエントロピーデコーダ/パーサ(520)(以降「パーサ(520)」)との間にバッファメモリ(515)が配置されてもよい。特定の用途では、バッファメモリ(515)は、ビデオデコーダ(510)の一部として実装されうる。他の用途では、バッファメモリ(515)は、ビデオデコーダ(510)の外部にビデオデコーダ(510)から離れていることが可能である(図示せず)。さらに他の用途では、例えば、ネットワークジッタに対抗する目的でビデオデコーダ(510)の外部にバッファメモリ(図示せず)があることが可能であり、例えば再生タイミングを処理するためにビデオデコーダ(510)の内部に別のさらなるバッファメモリ(515)があってもよい。受信器(531)が十分な帯域幅および可制御性の記憶/転送デバイスから、またはアイソシンクロナスネットワークからデータを受信しているとき、バッファメモリ(515)は不要な場合があり、または小さくすることができる。インターネットなどのベストエフォートパケットネットワークで使用する場合、十分なサイズのバッファメモリ(515)が必要とされる場合があり、そのサイズは比較的大きい可能性がある。そのようなバッファメモリは、適応サイズで実装されてもよく、ビデオデコーダ(510)の外部のオペレーティングシステムまたは同様の要素(図示せず)に少なくとも部分的に実装されてもよい。
【0035】
ビデオデコーダ(510)は、コーディングされたビデオシーケンスからシンボル(521)を再構成するためのパーサ(520)を含んでもよい。それらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報と、図5に示されるように、潜在的に、電子デバイス(530)の不可欠な部分である場合もそうでない場合もあるが、電子デバイス(530)に結合されることができるディスプレイ(512)(例えば、表示スクリーン)などのレンダリングデバイスを制御するための情報とを含む。(1つまたは複数の)レンダリングデバイスのための制御情報は、補足拡張情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)のパラメータセットフラグメント(図示せず)の形式であってもよい。パーサ(520)は、パーサ(520)によって受信されるコーディングされたビデオシーケンスをパース/エントロピーデコーディングしうる。コーディングされたビデオシーケンスのエントロピーコーディングは、ビデオコーディング技術または規格に従ったものとすることができ、可変長コーディング、ハフマンコーディング、文脈依存性ありまたはなしの算術コーディングなどを含む様々な原理に従うことができる。パーサ(520)は、コーディングされたビデオシーケンスから、サブグループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つのサブグループパラメータのセットを抽出しうる。サブグループは、Group of Pictures(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ(520)はまた、コーディングされたビデオシーケンスから、変換係数(例えば、フーリエ変換係数)、量子化パラメータ値、動きベクトルなどといった情報も抽出しうる。
【0036】
パーサ(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受信されたビデオシーケンスに対してエントロピーデコーディング/パース動作を行いうる。
【0037】
シンボル(521)の再構成は、コーディングされたビデオピクチャまたはその部分のタイプ(インターピクチャおよびイントラピクチャ、インターブロックおよびイントラブロックなど)、ならびに他の要因に応じて、複数の異なる処理ユニットまたは機能ユニットを含むことができる。含まれるユニットおよびユニットがどのように含まれるかは、パーサ(520)によってコーディングされたビデオシーケンスからパースされたサブグループ制御情報によって制御されうる。パーサ(520)と以下の複数の処理ユニットまたは機能ユニットとの間のそのようなサブグループ制御情報の流れは、簡潔にするために図示されていない。
【0038】
すでに述べられた機能ブロック以外に、ビデオデコーダ(510)は、以下で説明されるように、概念的にいくつかの機能ユニットに細分されることができる。商業的制約の下で動作する実際の実装形態では、これらの機能ユニットの多くは互いに密接に相互作用し、少なくとも部分的に、互いに統合されることができる。しかしながら、開示の主題の様々な機能を明確に説明する目的で、以下の開示においては機能ユニットへの概念的細分が採用される。
【0039】
第1のユニットは、スケーラ/逆変換ユニット(551)を含んでもよい。スケーラ/逆変換ユニット(551)は、量子化変換係数、ならびにどのタイプの逆変換を使用するかを指示する情報、ブロックサイズ、量子化係数/パラメータ、量子化スケーリング行列などを含む制御情報を、パーサ(520)から(1つまたは複数の)シンボル(521)として受信しうる。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力されることができるサンプル値を含むブロックを出力することができる。
【0040】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラコーディングされたブロック、すなわち、以前に再構成されたピクチャからの予測情報を使用しないが、現在のピクチャの以前に再構成された部分からの予測情報を使用することができるブロックに関係する可能性がある。そのような予測情報は、イントラピクチャ予測ユニット(552)によって提供されることができる。場合によっては、イントラピクチャ予測ユニット(552)は、すでに再構成され、現在のピクチャバッファ(558)に記憶されている周囲のブロックの情報を使用して、再構成中のブロックと同じサイズおよび形状のブロックを生成してもよい。現在のピクチャバッファ(558)は、例えば、部分的に再構成された現在のピクチャおよび/または完全に再構成された現在のピクチャをバッファリングする。アグリゲータ(555)は、いくつかの実装形態では、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に追加してもよい。
【0041】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされ、潜在的に動き補償されたブロックに関係する可能性がある。そのような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、インターピクチャ予測に使用されるサンプルをフェッチすることができる。ブロックに関係するシンボル(521)に従ってフェッチされたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力に追加されることができる(ユニット551の出力は、残差サンプルまたは残差信号と呼ばれる場合がある)。動き補償予測ユニット(553)がそこから予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えば、X成分、Y成分(シフト)、および参照ピクチャ成分(時間)を有することができるシンボル(521)の形式で動き補償予測ユニット(553)が利用可能な、動きベクトルによって制御されることができる。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされたサンプル値の補間を含んでもよく、また、動きベクトル予測メカニズムなどと関連付けられてもよい。
【0042】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術は、(コーディングされたビデオビットストリームとも呼ばれる)コーディングされたビデオシーケンスに含まれ、パーサ(520)からシンボル(521)としてループフィルタユニット(556)に供されるパラメータによって制御されるインループフィルタ技術を含むことができるが、コーディングされたピクチャまたはコーディングされたビデオシーケンスの(デコーディング順序で)前の部分のデコーディング中に取得されたメタ情報に応じるものであってもよく、以前に再構成およびループフィルタリングされたサンプル値に応じるものであってもよく。以下でさらに詳細に説明されるように、いくつかのタイプのループフィルタが、様々な順序でループフィルタユニット556の一部として含まれてもよい。
【0043】
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)に出力されることもでき、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に記憶されることもできるサンプルストリームでありうる。
【0044】
特定のコーディングされたピクチャは、完全に再構成されると、将来のインターピクチャ予測のための参照ピクチャとして使用されることができる。例えば、現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在のピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部になることができ、後続のコーディングされたピクチャの再構成を開始する前に新規の現在のピクチャバッファが再割り当てされることができる。
【0045】
ビデオデコーダ(510)は、ITU-T勧告H.265などの規格で採用された所定のビデオ圧縮技術に従ってデコーディング動作を行いうる。コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスがビデオ圧縮技術または規格の構文と、ビデオ圧縮技術または規格に文書化されたプロファイルの両方に忠実であるという意味において、使用されているビデオ圧縮技術または規格によって指定された構文に準拠しうる。具体的には、プロファイルは、ビデオ圧縮技術または規格において利用可能なすべてのツールから、そのプロファイルの下で使用することができる限られたツールとして特定のツールを選択することができる。規格に準拠するために、コーディングされたビデオシーケンスの複雑さは、ビデオ圧縮技術または規格のレベルによって定義される範囲内にありうる。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば毎秒メガサンプル単位で測定される)、最大参照ピクチャサイズなどを制限する。レベルによって設定される限界は、場合によっては、仮想参照デコーダ(HRD)の仕様、およびコーディングされたビデオシーケンス内でシグナリングされるHRDバッファ管理のためのメタデータによってさらに制限されうる。
【0046】
いくつかの例示的な実施形態では、受信器(531)は、エンコードされたビデオと共に追加の(冗長な)データを受信しうる。追加のデータは、(1つまたは複数の)コーディングされたビデオシーケンスの一部として含まれる場合がある。追加のデータは、ビデオデコーダ(510)によって、データを適切にデコードするために、かつ/または元のビデオデータをより正確に再構成するために使用されうる。追加のデータは、例えば、時間的、空間的、または信号雑音比(SNR)エンハンスメント層、冗長スライス、冗長ピクチャ、前方誤り訂正符号などの形式であることができる。
【0047】
図6は、本開示の例示的な実施形態によるビデオエンコーダ(603)のブロック図を示している。ビデオエンコーダ(603)は、電子デバイス(620)に含まれうる。電子デバイス(620)は、送信器(640)(例えば、送信回路)をさらに含んでもよい。ビデオエンコーダ(603)は、図4の例のビデオエンコーダ(403)の代わりに使用されることができる。
【0048】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコーディングされるべき(1つまたは複数の)ビデオ画像を取り込みうる(図6の例では電子デバイス(620)の一部ではない)ビデオソース(601)からビデオサンプルを受信しうる。別の例では、ビデオソース(601)は、電子デバイス(620)の一部分として実装されてもよい。
【0049】
ビデオソース(601)は、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 YCrCb、RGB、XYZ…)、および任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)のものでありうるデジタルビデオサンプルストリームの形式で、ビデオエンコーダ(603)によってコーディングされるべきソースビデオシーケンスを提供しうる。メディアサービングシステムでは、ビデオソース(601)は、以前に準備されたビデオを記憶することが可能な記憶デバイスであってもよい。ビデオ会議システムでは、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとして取り込むカメラであってもよい。ビデオデータは、順番に見られたときに動きを与える複数の個々のピクチャまたは画像として提供されうる。ピクチャ自体は、ピクセルの空間配列として編成されてもよく、各ピクセルは、使用されているサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者であれば、ピクセルとサンプルとの間の関係を容易に理解することができる。以下の説明はサンプルに焦点を当てる。
【0050】
いくつかの例示的な実施形態によれば、ビデオエンコーダ(603)は、リアルタイムで、または用途によって必要とされる任意の他の時間制約の下で、ソースビデオシーケンスのピクチャをコーディングされたビデオシーケンス(643)にコーディングおよび圧縮しうる。適切なコーディング速度を実施することが、コントローラ(650)の1つの機能を構成する。いくつかの実施形態では、コントローラ(650)は、以下で説明されるように、他の機能ユニットに機能的に結合され、他の機能ユニットを制御しうる。簡潔にするために、結合は図示されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連のパラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、…)、ピクチャサイズ、Group of Pictures(GOP)レイアウト、最大動きベクトル探索範囲などを含むことができる。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関係する他の適切な機能を有するように構成することができる。
【0051】
いくつかの例示的な実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成されてもよい。過度に単純化された説明として、一例では、コーディングループは、(例えば、コーディングされるべき入力ピクチャ、および参照ピクチャに基づいて、シンボルストリームなどのシンボルを作成する役割を担う)ソースコーダ(630)と、ビデオエンコーダ(603)に組み込まれた(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、(開示の主題で考慮されるビデオ圧縮技術においてはシンボルとコーディングされたビデオビットストリームとの間の任意の圧縮が可逆でありうるため)、たとえ組み込まれたデコーダ633がエントロピーコーディングなしでソースコーダ630によるコーディングされたビデオストリームを処理するとしても、(リモート)デコーダが作成することになるのと同様のやり方でシンボルを再構成してサンプルデータを作成する。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームのデコーディングは、デコーダの位置(ローカルかリモートか)に関係なくビットイグザクトな結果をもたらすため、参照ピクチャメモリ(634)内の内容も、ローカルエンコーダとリモートエンコーダとの間でビットイグザクトである。言い換えれば、エンコーダの予測部分は、デコーディング中に予測を使用するときにデコーダが「見る」ことになるのと全く同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャ同期性のこの基本原理(および、例えばチャネル誤差が原因で同期性が維持されることができない場合に結果として生じるドリフト)は、コーディング品質を向上させるために使用される。
【0052】
「ローカル」デコーダ(633)の動作は、図5と併せて上記で詳細にすでに説明されている、ビデオデコーダ(510)などの「リモート」デコーダの動作と同じでありうる。図5も簡単に参照すると、しかしながら、シンボルが利用可能であり、エントロピーコーダ(645)およびパーサ(520)によるシンボル対コーディングされたビデオシーケンスのエンコーディング/デコーディングが可逆でありうるため、バッファメモリ(515)およびパーサ(520)を含むビデオデコーダ(510)のエントロピーデコーディング部分は、エンコーダ内のローカルデコーダ(633)においては完全に実装されない場合がある。
【0053】
この時点で言えることは、デコーダ内にのみ存在しうるパース/エントロピーデコーディングを除く任意のデコーダ技術もまた必然的に、対応するエンコーダにおいて、実質的に同一の機能形式で存在する必要がありうるということである。このため、開示の主題はデコーダ動作に焦点を当てる場合があり、この動作はエンコーダのデコーディング部分と同様である。よって、エンコーダ技術の説明は、包括的に説明されるデコーダ技術の逆であるので、省略されることができる。特定の領域または態様においてのみ、エンコーダのより詳細な説明が以下に提供される。
【0054】
動作中、いくつかの例示的な実装形態では、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の以前にコーディングされたピクチャを参照して予測的に入力ピクチャをコーディングする、動き補償予測コーディングを行ってもよい。このようにして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャへの(1つまたは複数の)予測参照として選択されうる(1つまたは複数の)参照ピクチャのピクセルブロックとの間の色チャネルの差(または残差)をコーディングする。「残差」という用語とその形容詞形「残差の」とは、互換的に使用される場合がある。
【0055】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定されうるピクチャのコーディングされたビデオデータをデコードしうる。コーディングエンジン(632)の動作は、有利には、非可逆プロセスであってもよい。コーディングされたビデオデータが(図6には図示せず)ビデオデコーダでデコーディングされうる場合、再構成されたビデオシーケンスは、典型的には、いくつかの誤差を伴うソースビデオシーケンスの複製でありうる。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって行われうるデコーディングプロセスを複製し、再構成された参照ピクチャを参照ピクチャキャッシュ(634)に記憶させうる。このようにして、ビデオエンコーダ(603)は、(送信誤差なしで)遠端(リモート)ビデオデコーダによって取得される再構成された参照ピクチャと共通の内容を有する再構成された参照ピクチャのコピーをローカルに記憶しうる。
【0056】
予測器(635)は、コーディングエンジン(632)の予測探索を行いうる。すなわち、コーディングされるべき新しいピクチャについて、予測器(635)は、新しいピクチャの適切な予測参照として機能しうる、(候補参照ピクセルブロックとしての)サンプルデータまたは参照ピクチャ動きベクトル、ブロック形状などといった特定のメタデータを求めて、参照ピクチャメモリ(634)を探索しうる。予測器(635)は、適切な予測参照を見つけるために、ピクセルブロックごとサンプルブロックごとに動作しうる。場合によっては、予測器(635)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから選び出された予測参照を有しうる。
【0057】
コントローラ(650)は、例えば、ビデオデータをエンコードするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理しうる。
【0058】
すべての前述の機能ユニットの出力は、エントロピーコーダ(645)においてエントロピーコーディングを施されうる。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディングなどといった技術によるシンボルの可逆圧縮により、様々な機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換する。
【0059】
送信器(640)は、エントロピーコーダ(645)によって作成された(1つまたは複数の)コーディングされたビデオシーケンスをバッファリングして通信チャネル(660)を介した伝送に備えてもよく、通信チャネル(660)は、エンコードされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであってもよい。送信器(640)は、ビデオコーダ(603)からのコーディングされたビデオデータを、伝送されるべき他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージしてもよい。
【0060】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理しうる。コントローラ(650)は、コーディング中に、各コーディングされたピクチャに特定のコーディングされたピクチャタイプを割り当ててもよく、ピクチャタイプは、それぞれのピクチャに適用されうるコーディング技術に影響を及ぼす場合がある。例えば、ピクチャは、多くの場合、以下のピクチャタイプのうちの1つとして割り当てられうる。
【0061】
イントラピクチャ(Iピクチャ)は、シーケンス内の他のピクチャを予測のソースとして使用せずにコーディングおよびデコーディングされうるピクチャでありうる。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを可能にする。当業者は、Iピクチャのそれらの変形形態、ならびにそれらのそれぞれの用途および特徴を認識している。
【0062】
予測ピクチャ(Pピクチャ)は、最大でも1つの動きベクトルおよび参照インデックスを使用して各ブロックのサンプル値を予測するイントラ予測またはインター予測を使用してコーディングおよびデコーディングされうるピクチャでありうる。
【0063】
双方向予測ピクチャ(Bピクチャ)は、最大でも2つの動きベクトルおよび参照インデックスを使用して各ブロックのサンプル値を予測するイントラ予測またはインター予測を使用してコーディングおよびデコーディングされうるピクチャでありうる。同様に、複数予測ピクチャは、単一のブロックの再構成のために3つ以上の参照ピクチャおよび関連付けられたメタデータを使用することができる。
【0064】
ソースピクチャは、一般に、複数のサンプルコーディングブロック(例えば、各々4×4サンプル、8×8サンプル、4×8サンプル、または16×16サンプルのブロック)に空間的に細分され、ブロックごとにコーディングされうる。ブロックは、ブロックのそれぞれのピクチャに適用されたコーディング割り当てによって決定されるように、他の(すでにコーディングされた)ブロックを参照して予測的にコーディングされうる。例えば、Iピクチャのブロックは、非予測的にコーディングされてもよいし、同じピクチャのすでにコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測またはイントラ予測)。Pピクチャのピクセルブロックは、1つの以前にコーディングされた参照ピクチャを参照して、空間予測を介するかまたは時間予測を介して、予測的にコーディングされうる。Bピクチャのブロックは、1つまたは2つの以前にコーディングされた参照ピクチャを参照して、空間予測を介するかまたは時間予測を介して、予測的にコーディングされうる。ソースピクチャまたは中間処理されたピクチャは、他の目的で他のタイプのブロックに細分されてもよい。コーディングブロックおよび他のタイプのブロックの分割は、以下でさらに詳細に説明されるように、同じやり方に従ってもよいし、従わなくてもよい。
【0065】
ビデオエンコーダ(603)は、ITU-T勧告H.265などの所定のビデオコーディング技術または規格に従ってコーディング動作を行いうる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的冗長性および空間的冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を行いうる。コーディングされたビデオデータは、使用されているビデオコーディング技術または規格によって指定された構文にしかるべく準拠しうる。
【0066】
いくつかの例示的な実施形態では、送信器(640)は、エンコードされたビデオと共に追加のデータを送信しうる。ソースコーダ(630)は、そのようなデータをコーディングされたビデオシーケンスの一部として含んでもよい。追加のデータは、時間的/空間的/SNRエンハンスメント層、冗長なピクチャおよびスライスなどの他の形式の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含んでもよい。
【0067】
ビデオは、複数のソースピクチャ(ビデオピクチャ)として時系列に取り込まれうる。イントラピクチャ予測(しばしばイントラ予測と略される)は、所与のピクチャにおける空間相関を利用し、インターピクチャ予測は、ピクチャ間の時間相関または他の相関を利用する。例えば、現在のピクチャと呼ばれる、エンコーディング/デコーディング中の特定のピクチャがブロックに分割されてもよい。現在のピクチャ内のブロックは、ビデオ内の以前にコーディングされ、まだバッファリングされている参照ピクチャ内の参照ブロックと同様である場合、動きベクトルと呼ばれるベクトルによってコーディングされうる。動きベクトルは、参照ピクチャ内の参照ブロックを指し示し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3の次元を有することができる。
【0068】
いくつかの例示的な実施形態では、双予測技術がインターピクチャ予測に使用されることができる。そのような双予測技術によれば、両方ともデコーディング順序でビデオにおいて現在のピクチャより前にある(が、表示順序ではそれぞれ過去または未来のものでありうる)第1の参照ピクチャおよび第2の参照ピクチャなどの2つの参照ピクチャが使用される。現在のピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指し示す第1の動きベクトル、および第2の参照ピクチャ内の第2の参照ブロックを指し示す第2の動きベクトルによってコーディングされることができる。ブロックは、第1の参照ブロックと第2の参照ブロックの組み合わせによって一緒に予測されることができる。
【0069】
さらに、マージモード技術が、インターピクチャ予測においてコーディング効率を向上させるために使用されてもよい。
【0070】
本開示のいくつかの例示的な実施形態によれば、インターピクチャ予測やイントラピクチャ予測などの予測は、ブロック単位で行われる。例えば、ビデオピクチャのシーケンス内のピクチャが、圧縮のためにコーディングツリーユニット(CTU)に分割され、ピクチャ内のCTUは、128×128ピクセル、64×64ピクセル、32×32ピクセル、または16×16ピクセルなどの同じサイズを有しうる。一般に、CTUは、3つの並列のコーディングツリーブロック(CTB)、すなわち、1つのルーマCTBおよび2つのクロマCTBを含みうる。各CTUは、1つまたは複数のコーディングユニット(CU)に再帰的に四分木分割されることができる。例えば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、または32×32ピクセルの4つのCUに分割されることができる。32×32ブロックのうちの1つまたは複数の各々は、16×16ピクセルの4つのCUにさらに分割されてもよい。いくつかの例示的な実施形態では、各CUは、インター予測タイプやイントラ予測タイプなどの様々な予測タイプの中からそのCUの予測タイプを決定するためにエンコーディング中に分析されうる。CUは、時間的および/または空間的予測可能性に応じて、1つまたは複数の予測ユニット(PU)に分割されうる。一般に、各PUは、1つのルーマ予測ブロック(PB)および2つのクロマPBを含む。一実施形態では、コーディング(エンコーディング/デコーディング)における予測動作は、予測ブロック単位で行われる。CUのPU(または異なる色チャネルのPB)への分割は、様々な空間パターンで行われうる。ルーマPBまたはクロマPBは、例えば、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8サンプルなどといった、サンプルの値(ルーマ値など)の行列を含んでもよい。
【0071】
図7は、本開示の別の例示的な実施形態によるビデオエンコーダ(703)の図を示している。ビデオエンコーダ(703)は、ビデオピクチャのシーケンスにおける現在のビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックをコーディングされたビデオシーケンスの一部であるコーディングされたピクチャにエンコードするように構成される。例示的なビデオエンコーダ(703)は、図4の例のビデオエンコーダ(403)の代わりに使用されてもよい。
【0072】
例えば、ビデオエンコーダ(703)は、8×8サンプルの予測ブロックなどの処理ブロックのサンプル値の行列を受信する。次いでビデオエンコーダ(703)は、例えばレート歪み最適化(RDO)を使用して、処理ブロックがイントラモード、インターモード、または双予測モードのいずれを使用して最良にコーディングされるかを決定する。処理ブロックがイントラモードでコーディングされると決定された場合、ビデオエンコーダ(703)は、イントラ予測技術を使用して処理ブロックをコーディングされたピクチャにエンコードし、処理ブロックがインターモードまたは双予測モードでコーディングされると決定された場合、ビデオエンコーダ(703)は、それぞれインター予測技術または双予測技術を使用して、処理ブロックをコーディングされたピクチャにエンコードしうる。いくつかの例示的な実施形態では、動きベクトルが予測子の外側のコーディングされた動きベクトル成分の恩恵を受けずに1つまたは複数の動きベクトル予測子から導出されるマージモードが、インターピクチャ予測のサブモードとして使用されうる。いくつかの他の例示的な実施形態では、対象ブロックに適用可能な動きベクトル成分が存在しうる。したがって、ビデオエンコーダ(703)は、処理ブロックの予測モードを決定するために、モード決定モジュールなど、図7に明示的に示されていない構成要素を含んでもよい。
【0073】
図7の例では、ビデオエンコーダ(703)は、図7の例示的な配置に示されるように互いに結合されたインターエンコーダ(730)、イントラエンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、汎用コントローラ(721)、およびエントロピーエンコーダ(725)を含む。
【0074】
インターエンコーダ(730)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを参照ピクチャ内の1つまたは複数の参照ブロック(例えば、表示順序で前のピクチャ内および後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インターエンコーディング技術による冗長情報、動きベクトル、マージモード情報の記述)を生成し、任意の適切な技術を使用してインター予測情報に基づいてインター予測結果(例えば、予測されたブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、(以下でさらに詳細に説明されるように、図7の残差デコーダ728として示されている)図6の例示的なエンコーダ620に組み込まれたデコーディングユニット633を使用して、エンコードされたビデオ情報に基づいてデコードされた、デコードされた参照ピクチャである。
【0075】
イントラエンコーダ(722)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを同じピクチャ内のすでにコーディングされたブロックと比較し、変換後の量子化係数を生成し、場合によってはイントラ予測情報(例えば、1つまたは複数のイントラエンコーディング技術によるイントラ予測方向情報)も生成するように構成される。イントラエンコーダ(722)は、イントラ予測情報および同じピクチャ内の参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算しうる。
【0076】
汎用コントローラ(721)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成されうる。一例では、汎用コントローラ(721)は、ブロックの予測モードを決定し、予測モードに基づいてスイッチ(726)に制御信号を提供する。例えば、予測モードがイントラモードである場合、汎用コントローラ(721)は、スイッチ(726)を制御して、残差計算器(723)が使用するためのイントラモード結果を選択させ、エントロピーエンコーダ(725)を制御して、イントラ予測情報を選択させてそのイントラ予測情報をビットストリームに含めさせ、ブロックの予測モードがインターモードである場合、汎用コントローラ(721)は、スイッチ(726)を制御して、残差計算器(723)が使用するためのインター予測結果を選択させ、エントロピーエンコーダ(725)を制御して、インター予測情報を選択させてそのインター予測情報をビットストリームに含めさせる。
【0077】
残差計算器(723)は、受信されたブロックと、イントラエンコーダ(722)またはインターエンコーダ(730)から選択されたブロックについての予測結果との間の差(残差データ)を計算するように構成されうる。残差エンコーダ(724)は、残差データをエンコードして変換係数を生成するように構成されうる。例えば、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換して変換係数を生成するように構成されうる。次いで、変換係数は、量子化変換係数を取得するために量子化処理を受ける。様々な例示的な実施形態において、ビデオエンコーダ(703)はまた、残差デコーダ(728)も含む。残差デコーダ(728)は逆変換を行い、デコードされた残差データを生成するように構成される。デコードされた残差データは、イントラエンコーダ(722)およびインターエンコーダ(730)によって適切に使用されることができる。例えば、インターエンコーダ(730)は、デコードされた残差データおよびインター予測情報に基づいてデコードされたブロックを生成することができ、イントラエンコーダ(722)は、デコードされた残差データおよびイントラ予測情報に基づいてデコードされたブロックを生成することができる。デコードされたブロックは、デコードされたピクチャを生成するために適切に処理され、デコードされたピクチャは、メモリ回路(図示せず)にバッファリングされ、参照ピクチャとして使用されることができる。
【0078】
エントロピーエンコーダ(725)は、エンコードされたブロックを含むようにビットストリームをフォーマットし、エントロピーコーディングを行うように構成されうる。エントロピーエンコーダ(725)は、ビットストリームに様々な情報を含めるように構成される。例えば、エントロピーエンコーダ(725)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報やインター予測情報)、残差情報、および他の適切な情報をビットストリームに含めるように構成されうる。インターモードまたは双予測モードのいずれかのマージサブモードでブロックをコーディングするとき、残差情報が存在しない場合もある。
【0079】
図8は、本開示の別の実施形態による例示的なビデオデコーダ(810)の図を示している。ビデオデコーダ(810)は、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャを受信し、コーディングされたピクチャをデコードして再構成されたピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、図4の例のビデオデコーダ(410)の代わりに使用されてもよい。
【0080】
図8の例では、ビデオデコーダ(810)は、図8の例示的な配置に示されたように互いに結合されたエントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、およびイントラデコーダ(872)を含む。
【0081】
エントロピーデコーダ(871)は、コーディングされたピクチャから、コーディングされたピクチャが構成される構文要素を表す特定のシンボルを再構成するように構成されることができる。そのようなシンボルは、例えば、ブロックがコーディングされているモード(例えば、イントラモード、インターモード、双予測モード、マージサブモードまたは別のサブモード)、イントラデコーダ(872)またはインターデコーダ(880)によって予測に使用される特定のサンプルまたはメタデータを識別することができる予測情報(例えば、イントラ予測情報やインター予測情報)、例えば、量子化変換係数の形式の残差情報などを含むことができる。一例では、予測モードがインター予測モードまたは双予測モードである場合、インター予測情報がインターデコーダ(880)に提供され、予測タイプがイントラ予測タイプである場合、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(873)に提供される。
【0082】
インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成されうる。
【0083】
イントラデコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成されうる。
【0084】
残差デコーダ(873)は、逆量子化を行って逆量子化変換係数を抽出し、逆量子化変換係数を処理して、残差を周波数領域から空間領域に変換するように構成されうる。残差デコーダ(873)はまた、(量子化パラメータ(QP)を含めるために)エントロピーデコーダ(871)によって提供されうる特定の制御情報を利用してもよい(これは低データ量の制御情報のみでありうるのでデータパス図示せず)。
【0085】
再構成モジュール(874)は、空間領域において、残差デコーダ(873)による出力としての残差と(場合によって、インター予測モジュールまたはイントラ予測モジュールによる出力としての)予測結果とを組み合わせて、再構成されたビデオの一部としての再構成されたピクチャの一部を形成する再構成されたブロックを形成するように構成されうる。視覚的品質を向上させるために、デブロッキング動作などの他の適切な動作が行われうることに留意されたい。
【0086】
ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、任意の適切な技術を使用して実装されることができることに留意されたい。いくつかの例示的な実施形態では、ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、1つまたは複数の集積回路を使用して実装されることができる。別の実施形態では、ビデオエンコーダ(403)、(603)、および(603)、ならびにビデオデコーダ(410)、(510)、および(810)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを使用して実装されることができる。
【0087】
コーディングおよびデコーディングのためのブロック分割に目を向けると、一般的な分割は、ベースブロックから開始し、事前定義されたルールセット、特定のパターン、分割ツリー、または任意の分割構造もしくは方式に従いうる。分割は、階層的かつ再帰的であってもよい。以下で説明される例示的な分割手順もしくは他の手順、またはそれらの組み合わせのいずれかに従ってベースブロックを分け、または分割した後に、パーティションまたはコーディングブロックの最終セットが取得されうる。これらのパーティションの各々は、分割階層内の様々な分割レベルのうちの1つにあってもよく、様々な形状のものであってもよい。パーティションの各々は、コーディングブロック(CB)と呼ばれる場合がある。以下でさらに説明される様々な例示的な分割実装形態では、結果として得られる各CBは、許容されるサイズおよび分割レベルのいずれかのものでありうる。そのようなパーティションは、そのためのいくつかの基本的なコーディング/デコーディング決定が行われ、コーディング/デコーディングパラメータが最適化され、決定され、エンコードされたビデオビットストリームにおいてシグナリングされうるユニットを形成しうるので、コーディングブロックと呼ばれる。最終パーティションにおける最高または最深のレベルは、コーディングブロック分割ツリー構造の深度を表す。コーディングブロックは、ルーマコーディングブロックまたはクロマコーディングブロックでありうる。各色のCBツリー構造は、コーディングブロックツリー(CBT)と呼ばれる場合がある。
【0088】
すべての色チャネルのコーディングブロックは、まとめてコーディングユニット(CU)と呼ばれる場合がある。すべての色チャネルの階層構造は、まとめてコーディングツリーユニット(CTU)と呼ばれる場合がある。CTU内の様々な色チャネルの分割パターンまたは分割構造は、同じであってもよいし、同じでなくてもよい。
【0089】
いくつかの実装形態では、ルーマチャネルとクロマチャネルとに使用される分割ツリー方式または構造が同じでなくてもよい場合もある。言い換えれば、ルーマチャネルとクロマチャネルとは、別々のコーディングツリー構造またはパターンを有してもよい。さらに、ルーマチャネルとクロマチャネルとが同じコーディング分割ツリー構造を使用するか、それとも異なるコーディング分割ツリー構造を使用するか、および使用されるべき実際のコーディング分割ツリー構造は、コーディングされているスライスがPスライスか、Bスライスか、それともIスライスかに依存しうる。例えば、Iスライスの場合、クロマチャネルとルーマチャネルとは、別々のコーディング分割ツリー構造またはコーディング分割ツリー構造モードを有しうるが、PスライスまたはBスライスの場合、ルーマチャネルとクロマチャネルとは、同じコーディング分割ツリー方式を共有しうる。別々のコーディング分割ツリー構造またはモードが適用される場合、ルーマチャネルは、1つのコーディング分割ツリー構造によってCBに分割されてもよく、クロマチャネルは、別のコーディング分割ツリー構造によってクロマCBに分割されてもよい。
【0090】
図2に戻って、同じシーケンス内の各フレームは、いくつかの共通の特性またはプロパティを有しうる。例えば、シーケンス内の各フレームは、同じプロファイル、同じクロマフォーマット、同じレベルなどを共有してもよい。したがって、デコーディング目的で、シーケンス内のすべてのフレームがシーケンスレベルでパラメータセットを共有してもよく、そのようなパラメータセットはシーケンスパラメータセット(SPS、またはシーケンスレベルパラメータセット)と呼ばれる。デコーダ側では、デコーダは、デコーディングパラメータを初期設定すること、ビットストリームをパースすること、メモリ管理を行うことなどを含む様々なデコーディングタスクのためにSPSを参照しうる。
【0091】
例示的な実装形態では、SPSは、少なくとも以下のパラメータを含んでもよい。
・プロファイル、
・レベル値、
・ティア値、
・クロマフォーマット、
・ビット深度、
・ピクチャ幅、
・ピクチャ高さ、
・エントロピーコーディングモード、または
・変換モード。
【0092】
SPSセットは、HEVC、VVC、AV1、AV2、AVS、AVS2、AVS3、および将来の世代のビデオ規格を含むがこれらに限定されない様々なビデオ技術および規格に適用されうる。
【0093】
デコーディングプロセス中、デコーダが正しいSPSを使用してフレームのシーケンスをデコードすることは重要であり、そうでない場合、シーケンスは正しくデコーディングされない場合がある。様々な性能オーバーヘッドがSPSによって導入されうる。例えば、ビットストリームにおけるSPSの伝送は、伝送帯域幅を要する。デコーダ側では、生データビットからSPSをパースし、パースされたSPSを後で使用するために記憶し/アクティブ化するための労力が必要とされる。
【0094】
本開示では、SPS実装形態を向上させることを目指した様々な実施形態が説明されている。一態様において、いくつかの実施形態はSPSシグナリング効率を向上させうる。例えば、SPSは必要に応じてのみシグナリングされ、現在アクティブ化されているSPS(サービングSPSとしても知られる)は、同じシーケンス内の後続のビデオサンプルに再利用されてもよい。別の態様において、いくつかの実施形態はSPS決定の柔軟性を向上させうる。例えば、SPSは(例えば、SPSをビットストリームにカプセル化することによって)デコーダが利用可能になりうるが、デコーダは、SPS更新が必要であるかどうかを決定してもよく、シグナリングされたSPSを無視するか、またはシグナリングされたSPSに基づいてSPSベースを更新する柔軟性を有する。別の態様では、異なるセッションで伝送された同じビデオソースについて、エンコーダは、例えば、伝送条件、サービス品質合意などに基づいて、同じシーケンスに異なるSPSをシグナリングすることを選択してもよい。さらに別の態様では、ビデオストリーミングの持続時間において、ビデオシーケンスに適用されるSPSは、例えば、より良好な圧縮率および/またはより良好なビデオ品質を達成するために、様々なタイプのデコーダおよび/または様々な伝送条件などに適応するために、動的に更新されてもよい。
【0095】
いくつかの例示的な実装形態では、サービングSPSは、現在のビデオフレームをデコードするために使用される特定のSPSである。いくつかのシナリオでは、例えば、前のビデオフレームと現在のビデオフレームとが同じシーケンス内にある場合、サービングSPSは、現在のビデオフレームの前のビデオフレームをデコードするために使用されたSPSと同じでありうる。この場合、デコーダは、前に使用されたSPSを直接再利用しうる(例えば、サービングSPSはすでにメモリに記憶されている)。いくつかのシナリオでは、例えば、前のビデオフレームと現在のビデオフレームとが異なるシーケンス内にある場合、サービングSPSは、前のビデオフレームをデコードするために使用されたSPSとは異なりうる。この場合、デコーダは、例えば、ビデオビットストリーム内のSPS関連構文をパースすることによって、サービングSPSを取得しうる。
【0096】
いくつかの例示的な実装形態では、図2を参照すると、各ビデオサンプルにおいて、現在のビデオサンプルがSPSをカプセル化/搬送しているかどうかを指示するためにフラグがシグナリングされる。例えば、ビデオサンプル1では、ビデオサンプル1で搬送されているSPS1があることを指示するために、フラグが真としてシグナリングされうる。一方、ビデオサンプル2では、ビデオサンプル2で搬送されているSPSがないことを指示するために、フラグが偽としてシグナリングされうる。ビデオサンプルがSPSを搬送していると指示される場合、SPSの長さなどの位置情報がさらにシグナリングされうる。ビデオサンプル内のSPSの開始位置は、固定または事前定義された位置であってもよいし、シグナリングされてもよい。開始位置は、ビデオフレームの開始やフラグの開始などの特定の基準点からのオフセットを含んでもよい。これらの実装形態では、SPSは、例えば、ビデオサンプル1などの現在のビデオサンプルに対してSPSが更新される必要があるときに、必要に応じてシグナリングされうる。これは、新しいシーケンスが開始されるときに行われうる。デコーダは、ビデオサンプル1を処理するとき、ビットストリームをパースしてカプセル化されたSPSを取り出し、取り出されたSPSをアクティブ化し、それを使用してビデオサンプル1内のビデオシーケンスをデコードする必要がありうる。しかしながら、ビデオサンプル2の場合、SPSは、ビデオサンプル1でシグナリングされたSPSから変更されないので、デコーダは、ビデオサンプル2をデコードするために、すでにアクティブ化されているSPS1を再利用してもよい。ビデオサンプルをデコードするためのアクティブ化されたSPSは、サービングSPSと呼ばれる場合がある。
【0097】
いくつかの例示的な実装形態では、SPSが更新されるか否かにかかわらず、SPSは各ビデオサンプルでシグナリングされる。図2を参照すると、SPS2は、同じSPS2がビデオサンプルn-1でシグナリングされても、ビデオサンプルnでシグナリングされる。SPS更新状況を指示するためにフラグがさらにシグナリングされてもよい。SPSが更新されたことをフラグが指示する場合には、デコーダは、ビットストリームをパースして更新されたSPSを取り出す必要がある。そうでない場合、フラグは、SPSが前のビデオサンプルから更新されていないことを指示してもよく、デコーダは異なる選択肢を有しうる。1つの選択肢では、デコーダは、現在のビデオサンプルで搬送されているSPSの内容のパースをスキップし、すでにパースされた(前のビデオサンプルに使用され、後で使用するために記憶された)前のSPSを直接使用しうる。この選択肢は、SPSパースコストが節約されるため、ビデオストリーミングが連続して再生される(すなわち、フレームがタイムラインシーケンスに従って表示される)場合に有用である。別の選択肢では、フラグがSPS更新がないことを指示していても、デコーダは、それにもかかわらず、現在のビデオサンプルで搬送されているSPSの内容をパースし、現在のビデオサンプルをデコードするために新たにパースされ/取り出されたSPSを使用する必要がありうる。この選択肢は、現在のビデオサンプルがランダムアクセス再生の開始点である場合に有用であり、というのは、前に使用されたSPSは、この場合、ランダムビデオサンプルのSPSでありえ、現在のビデオサンプルにはもはや有効ではないため、SPSに対する強制リフレッシュが望ましい場合があるためである。これらの実装形態では、SPSと表示されるべき次のフレームとが同じビデオサンプルにカプセル化されるので、SPSは常にデコーダから利用可能である。SPS位置情報は、前述の実装形態と同様にシグナリングされてもよい。
【0098】
上記の例示的な実装形態では、ビデオストリーミングが順序付けられた再生(フレームタイムラインに従う)であるかランダムアクセス再生であるかは、サーバ/エンコーダに対して透過的とされ、サーバ/エンコーダはそれに関係なくSPSを各ビデオサンプルにカプセル化する。SPSを選択するためのロジックは、端末/デコーダ側で実装されさえすればよい。
【0099】
いくつかの例示的な実装形態では、SPS更新状況を指示するためにSPS更新フラグがシグナリングされてもよく、SPSは、SPSが更新されて前のビデオサンプルに使用されたSPSとは異なる場合にのみビデオサンプルでシグナリングされる。SPS更新フラグがSPSが更新されたことを指示する場合には、デコーダはビットストリームをパースして更新されたSPSを取得し、更新されたSPSを、例えばローカルまたはオンチップメモリに記憶/保存し、SPSが再び更新されたとSPS更新フラグによって指示されるまで、後続のビデオサンプルにその更新されたSPSを使用し続けてもよい。他方、SPS更新フラグがSPS更新がないことを指示する場合、デコーダは、SPSパースおよび処理の労力を費やすことなく、記憶されている前のSPSを使用してもよい。SPS更新フラグがSPSが更新されたことを指示する場合には、SPSの長さなどの位置情報がさらにシグナリングされうることに留意されたい。ビデオサンプル内のSPSの開始位置は、固定または事前定義された位置であってもよいし、シグナリングされてもよい。開始位置は、ビデオフレームの開始やSPS更新フラグの位置などの特定の基準点からのオフセットを含んでもよい。
【0100】
いくつかの例示的な実装形態では、ビデオサンプルと関連付けられたSPSの長さを指示するために、構文要素がビデオサンプルごとにシグナリングされうる。この長さが0に等しいとき、それは現在のビデオサンプルがSPSを搬送してないことを暗黙的に指示しており、したがって、後続のSPSの内容はパースされる必要がない。この場合、デコーダは、適切なデコーディングのために(前のビデオサンプルをデコードするための)前のSPSを使用する。この長さが0に等しくないとき、それは、例えば、長さ情報フィールドの直後に、または事前定義された位置から開始してSPSがシグナリングされることを指示する。デコーダは、現在のビデオサンプルにおいてシグナリング/カプセル化されたSPSをパースして使用する。
【0101】
いくつかの例示的な実装形態では、サーバ側から、サーバまたはエンコーダは、ビデオストリーミングセッションで使用されるSPSのリストを決定し、ビデオストリーミングセッションが開始したときにSPSのリストを端末(デコーダ)にシグナリングしてもよく、SPSのリスト内の各SPSは、SPS id(識別子)によって識別可能である。次いで、SPSのリストからどのSPSが選択され、ビデオフレームをデコードするときに適用されるべきかをデコーダに通知するために、各ビデオフレームにおいて、SPS idがシグナリングされうる。詳細なSPSの内容は、もはやシグナリングされる必要がない。したがって、SPSシグナリングオーバーヘッドが低減されえ、デコーダ上のSPSパース労力も不要になる。さらに、0、負の数、SPS idフィールドによってサポートされる最大数(0xffなど、SPS idは1バイト長である)などの特別なSPS idが、SPS更新がないためにデコーダが前のSPSを直接使用しうることを指示するために使用されてもよい。これらの実装形態は、ランダムアクセスシナリオに特に有用でありうる。
【0102】
いくつかの例示的な実装形態では、上記の実装形態で説明されたようにサーバ/エンコーダがSPSのリストをシグナリングするのではなく、ビデオストリーミングを受信する端末/デコーダがSPSのリストを収集して維持しうる。例えば、SPSはビデオサンプルでシグナリングされ、SPSはidを含んでもよい。デコーダは、受信された(そのidによって指示される)任意の新しいSPSをリストに追加することによってSPSのリストを維持しうる。ビデオサンプルごとに、デコーダは、まず、検索を行って、(例えば、ビデオサンプルで搬送された)SPS idによって指示されるSPSがSPSのリストにすでに存在するかどうかをチェックしうる。デコーダがSPSのリストから特定のSPSを見つけることができる場合、ビットストリームからのSPSの内容のパースはスキップされてもよい。一実装形態では、過剰なメモリの使用を回避するために、SPSのリストは循環バッファによって実装されてもよい。
【0103】
いくつかの例示的な実装形態では、現在のビデオサンプルがランダムアクセス要求から生じるランダムビデオシーケンスを含む場合、エンコーダは、ランダムビデオシーケンスのSPSが受信端末(例えば、デコーダ)に供給された最後のビデオサンプルに使用されたSPSと同じであるかどうかの決定を行いうる。例えば、図2に示されるように、最後に再生されたシーケンスがビデオサンプル1内にあり、次のシーケンスがビデオサンプルn内にあるランダムシーケンスである(すなわち、ビデオはビデオサンプル1からビデオサンプルnにジャンプする)場合、(SPS1からSPS2への)SPS更新があるため、ビットストリームはSPS更新を指示するSPS更新フラグをシグナリングする。デコーダは、それに対応して更新されたSPSを取り出す。しかしながら、ビデオサンプルnにジャンプするとき、最後に再生されたシーケンスもまたSPS2を使用する場合には、SPS更新フラグはSPSに対する更新がないことを指示し、SPSはビデオサンプルnでシグナリングされない。したがって、現在のビデオサンプルがランダムアクセス開始点であっても、デコーダは依然として前のSPSを再利用しうる。
【0104】
図9は、ビデオデータを処理するための例示的な方法900を示している。方法は、以下のステップ、すなわち、ステップ910、少なくとも1つのビデオサンプルを含むビットストリームを受信するステップであって、少なくとも1つのビデオサンプルは、現在のビデオサンプルおよび前のビデオサンプルを含み、少なくとも1つのビデオサンプルの各々が少なくとも1つのビデオフレームを含み、少なくとも1つのビデオサンプルの各々が少なくとも1つのビデオサンプルの各々をデコードするためのサービングシーケンスパラメータセット(SPS)と関連付けられている、ステップと、ステップ920、現在のビデオサンプルに対するサービングSPSを、
ビットストリームからすでにパースされ、前のビデオサンプルをデコードするために使用された前のSPS、
現在のビデオサンプルにカプセル化された現在のSPS、および
候補SPSのリスト内のSPS、
のうちの1つとして決定するステップと、ステップ930、現在のビデオサンプルに対するサービングSPSに基づいて現在のビデオサンプルをデコードするステップと、の一部分または全部を含みうる。
【0105】
本開示の実施形態および実装形態では、所望により、任意のステップおよび/または動作が、任意の量または順序で組み合わされるか、または配置されてもよい。ステップおよび/または動作のうちの2つ以上が、並列に行われてもよい。本開示の実施形態および実装形態は、別々に使用されても、任意の順序で組み合わされてもよい。さらに、方法(または実施形態)の各々、エンコーダ、およびデコーダは、処理回路(例えば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実装されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。
【0106】
上述された技術は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装され、1つまたは複数のコンピュータ可読媒体に物理的に記憶されることができる。例えば、図10は、開示の主題の特定の実施形態を実装するのに適したコンピュータシステム(2800)を示している。
【0107】
コンピュータソフトウェアは、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)などによって直接、または解釈、マイクロコード実行などを介して実行されることができる命令を含むコードを作成するためにアセンブリ、コンパイル、リンクなどのメカニズムを施されうる、任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされることができる。
【0108】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、モノのインターネットデバイスなどを含む様々なタイプのコンピュータまたはコンピュータの構成要素上で実行されることができる。
【0109】
コンピュータシステム(2800)について図10に示される構成要素は、本質的に例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能の範囲に関する限定を示唆することを意図されていない。構成要素の構成は、コンピュータシステム(2800)の例示的な実施形態に示される構成要素のいずれか1つまたは組み合わせに関連するいかなる依存性も要件も有すると解釈されるべきではない。
【0110】
コンピュータシステム(2800)は、特定のヒューマンインターフェース入力デバイスを含んでもよい。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を介した、1人または複数の人間ユーザによる入力に反応するものであってもよい。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、写真画像静止画像カメラから取得など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、必ずしも人間による意識的な入力に直接関連しない特定の媒体を取り込むためにも使用されることができる。
【0111】
入力ヒューマンインターフェースデバイスは、キーボード(2801)、マウス(2802)、トラックパッド(2803)、タッチスクリーン(2810)、データグローブ(図示せず)、ジョイスティック(2805)、マイクロフォン(2806)、スキャナ(2807)、カメラ(2808)のうちの1つまたは複数(それぞれ1つのみ図示)を含んでもよい。
【0112】
コンピュータシステム(2800)はまた、特定のヒューマンインターフェース出力デバイスを含んでもよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および匂い/味によって1人または複数の人間ユーザの感覚を刺激してもよい。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(2810)、データグローブ(図示せず)、またはジョイスティック(2805)による触覚フィードバック、ただし、入力デバイスとして機能しない触覚フィードバックデバイスもありうる)、オーディオ出力デバイス(スピーカ(2809)、ヘッドホン(図示せず)など)、視覚出力デバイス(例えば、各々タッチスクリーン入力能力を有するかまたは有さず、各々触覚フィードバック能力を有するかまたは有さず、その一部は2次元視覚出力または立体出力などの手段による3次元を超える出力を出力することが可能でありうる、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(2810)、仮想現実メガネ(図示せず)、ホログラフィックディスプレイおよびスモークタンク(図示せず)など)ならびに、プリンタ(図示せず)を含んでもよい。
【0113】
コンピュータシステム(2800)はまた、CD/DVDまたは同様の媒体(2821)を有するCD/DVD ROM/RW(2820)を含む光媒体、サムドライブ(2822)、リムーバブルハードドライブまたはソリッドステートドライブ(2823)、テープやフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの専用ROM/ASIC/PLDベースのデバイスなどの人間がアクセス可能な記憶デバイスおよびそれらの関連媒体も含むことができる。
【0114】
当業者はまた、本開示の主題と関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことも理解するはずである。
【0115】
コンピュータシステム(2800)はまた、1つまたは複数の通信ネットワーク(2855)へのインターフェース(2854)も含むことができる。ネットワークは、例えば、無線、有線、光とすることができる。ネットワークはさらに、ローカル、ワイドエリア、メトロポリタン、車両用および産業用、リアルタイム、遅延耐性などとすることができる。ネットワークの例は、Ethernetなどのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラネットワーク、ケーブルテレビ、衛星テレビおよび地上波テレビを含むテレビの有線または無線広域デジタルネットワーク、CAN busを含む車両用および産業用などを含む。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス(2849)(例えば、コンピュータシステム(2800)のUSBポートなど)に接続された外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、一般に、以下で説明されるように、システムバスに接続することによってコンピュータシステム(2800)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースや、スマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(2800)は他のエンティティと通信することができる。そのような通信は、単方向受信のみ(例えば、テレビ放送)、単方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または、例えば、ローカルもしくはワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの双方向とすることができる。特定のプロトコルおよびプロトコルスタックが、上述されたようにそれらのネットワークおよびネットワークインターフェースの各々で使用されることができる。
【0116】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピュータシステム(2800)のコア(2840)に取り付けられることができる。
【0117】
コア(2840)は、1つまたは複数の中央処理装置(CPU)(2841)、グラフィックスプロセッシングユニット(GPU)(2842)、フィールドプログラマブルゲートエリア(FPGA)(2843)の形式の専用プログラマブル処理ユニット、特定のタスク用のハードウェアアクセラレータ(2844)、グラフィックスアダプタ(2850)などを含むことができる。これらのデバイスは、読み出し専用メモリ(ROM)(2845)、ランダムアクセスメモリ(2846)、内部非ユーザアクセス可能ハードドライブ、SSDなどといった内部大容量ストレージ(2847)と共に、システムバス(2848)を介して接続されてもよい。いくつかのコンピュータシステムでは、システムバス(2848)は、追加のCPU、GPUなどによる拡張を可能にするために1つまたは複数の物理プラグの形態でアクセス可能とすることができる。周辺デバイスは、コアのシステムバス(2848)に直接取り付けられることも、周辺バス(2849)を介して取り付けられることもできる。一例では、スクリーン(2810)は、グラフィックスアダプタ(2850)に接続されることができる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0118】
CPU(2841)、GPU(2842)、FPGA(2843)、およびアクセラレータ(2844)は、組み合わされて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(2845)またはRAM(2846)に記憶されることができる。RAM(2846)には暫定的なデータも記憶されることができるが、永続データは、例えば、内部大容量ストレージ(2847)に記憶されることができる。メモリデバイスのいずれかへの高速記憶および取り出しは、1つまたは複数のCPU(2841)、GPU(2842)、大容量ストレージ(2847)、ROM(2845)、RAM(2846)などと密接に関連付けられることができるキャッシュメモリの使用によって可能とされることができる。
【0119】
コンピュータ可読媒体は、様々なコンピュータ実装動作を行うためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものとすることもでき、またはコンピュータソフトウェア技術の当業者に周知の利用可能な種類のものとすることもできる。
【0120】
非限定的な例として、アーキテクチャを有するコンピュータシステム(2800)、具体的にはコア(2840)は、(CPU、GPU、FPGA、アクセラレータなどを含む)(1つまたは複数の)プロセッサが、1つまたは複数の有形のコンピュータ可読媒体において具体化されたソフトウェアを実行した結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上記で紹介されたようなユーザアクセス可能な大容量ストレージ、ならびにコア内部の大容量ストレージ(2847)やROM(2845)などの非一時的な性質のものであるコア(2840)の特定のストレージと関連付けられた媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(2840)によって実行されることができる。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(2840)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(2846)に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書で説明された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、ソフトウェアの代わりに、またはソフトウェアと共に本明細書で説明された特定のプロセスまたは特定のプロセスの特定の部分を実行するように動作することができる回路(例えば、アクセラレータ(2844))に配線されるかまたは他の方法で具体化されたロジックの結果として機能を提供することもできる。ソフトウェアへの言及は、適切な場合には、ロジックを包含することができ、逆もまた同様である。コンピュータ可読媒体への言及は、適切な場合には、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具体化する回路、またはその両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
【0121】
本開示は、例として視覚媒体を使用しているが、提案の実施形態は、オーディオや他のタイプの媒体コンテンツなどの他の同様のシナリオで使用されてもよい。
【0122】
本開示はいくつかの例示的な実施形態を説明しているが、変更形態、置換形態、および様々な代替の均等物が存在し、それらは本開示の範囲内に入る。よって、当業者は、本明細書に明示的に図示または記載されていないが、本開示の原理を具体化する、よって本開示の趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
【0123】
付記A:頭字語
IBC:イントラブロックコピー(Intra-Block Copy)
IntraBC:イントラブロックコピー(Intra-Block Copy)
JEM:共同探索モデル(joint exploration model)
VVC:多用途ビデオコーディング(versatile video coding)
BMS:ベンチマークセット(benchmark set)
MV:動きベクトル(Motion Vector)
HEVC:高効率ビデオコーディング(High Efficiency Video Coding)
SEI:補足拡張情報(Supplementary Enhancement Information)
VUI:ビデオユーザビリティ情報(Video Usability Information)
GOP:Group of Pictures
TU:変換ユニット(Transform Units)
PU:予測ユニット(Prediction Units)
CTU:コーディングツリーユニット(Coding Tree Units)
CTB:コーディングツリーブロック(Coding Tree Blocks)
PB:予測ブロック(Prediction Blocks)
HRD:仮想参照デコーダ(Hypothetical Reference Decoder)
SNR:信号雑音比(Signal Noise Ratio)
CPU:中央処理装置(Central Processing Units)
GPU:グラフィックスプロセッシングユニット(Graphics Processing Units)
CRT:陰極線管(Cathode Ray Tube)
LCD:液晶ディスプレイ(Liquid-Crystal Display)
OLED:有機発光ダイオード(Organic Light-Emitting Diode)
CD:コンパクトディスク(Compact Disc)
DVD:デジタルビデオディスク(Digital Video Disc)
ROM:読み出し専用メモリ(Read-Only Memory)
RAM:ランダムアクセスメモリ(Random Access Memory)
ASIC:特定用途向け集積回路(Application-Specific Integrated Circuit)
PLD:プログラマブルロジックデバイス(Programmable Logic Device)
LAN:ローカルエリアネットワーク(Local Area Network)
GSM:グローバル移動体通信システム(Global System for Mobile communications)
LTE:ロングタームエボリューション(Long-Term Evolution)
CANBus:コントローラエリアネットワークバス(Controller Area Network Bus)
USB:ユニバーサルシリアルバス(Universal Serial Bus)
PCI:周辺機器相互接続(Peripheral Component Interconnect)
FPGA:フィールドプログラマブルゲートエリア(Field Programmable Gate Areas)
SSD:ソリッドステートドライブ(solid-state drive)
IC:集積回路(Integrated Circuit)
HDR:ハイダイナミックレンジ(high dynamic range)
SDR:標準ダイナミックレンジ(standard dynamic range)
JVET:共同ビデオ探索チーム(Joint Video Exploration Team)
MPM:最確モード(most probable mode)
WAIP:広角イントラ予測(Wide-Angle Intra Prediction)
CU:コーディングユニット(Coding Unit)
PU:予測ユニット(Prediction Unit)
TU:変換ユニット(Transform Unit)
CTU:コーディングツリーユニット(Coding Tree Unit)
PDPC:位置依存予測組み合わせ(Position Dependent Prediction Combination)
ISP:イントラサブパーティション(Intra Sub-Partitions)
SPS:シーケンスパラメータ設定(Sequence Parameter Setting)
PPS:ピクチャパラメータセット(Picture Parameter Set)
APS:適応パラメータセット(Adaptation Parameter Set)
VPS:ビデオパラメータセット(Video Parameter Set)
DPS:デコーディングパラメータセット(Decoding Parameter Set)
ALF:適応ループフィルタ(Adaptive Loop Filter)
SAO:サンプル適応オフセット(Sample Adaptive Offset)
CC-ALF:交差成分適応ループフィルタ(Cross-Component Adaptive Loop Filter)
CDEF:制約付き方向性強調フィルタ(Constrained Directional Enhancement Filter)
CCSO:交差成分サンプルオフセット(Cross-Component Sample Offset)
LSO:ローカルサンプルオフセット(Local Sample Offset)
LR:ループ復元フィルタ(Loop Restoration Filter)
AV1:AOMedia Video 1
AV2:AOMedia Video 2
AVS:オーディオおよびビデオコーディング規格(Audio and Video Coding Standard)
AVS2:第2世代AVS規格(The Second Generation AVS Standard)
AVS3:第3世代AVS規格(The Third Generation AVS Standard)
DASH:HTTP上の動的適応ストリーミング(Dynamic Adaptive Streaming over HTTP)
ISO BMFF:ISOベースメディアファイルフォーマット(ISO Base Media File Format)
VOD:ビデオオンデマンド(Video on Demand)
RPS:参照ピクチャセット(Reference Picture Set)
【符号の説明】
【0124】
1 ビデオサンプル、2 ビデオサンプル、110 端末、120 サーバ、202 ビデオサンプル、300 通信システム、310 端末デバイス、320 端末デバイス、330 端末デバイス、340 端末デバイス、350 ネットワーク、400 通信システム、401 ビデオソース、402 ビデオピクチャのストリーム、403 ビデオエンコーダ、404 エンコードされたビデオデータ、エンコードされたビデオビットストリーム、405 ストリーミングサーバ、406 クライアントサブシステム、407 エンコードされたビデオデータのコピー、408 クライアントサブシステム、409 エンコードされたビデオデータのコピー、410 ビデオデコーダ、411 ビデオピクチャの出力ストリーム、412 ディスプレイ、413 ビデオキャプチャサブシステム、420 電子デバイス、430 電子デバイス、501 チャネル、510 ビデオデコーダ、512 レンダリングデバイス、ディスプレイ、515 バッファメモリ、520 パーサ、521 シンボル、531 受信器、551 スケーラ/逆変換ユニット、552 イントラピクチャ予測ユニット、553 動き補償予測ユニット、555 アグリゲータ、556 ループフィルタ、557 参照ピクチャメモリ、558 現在のピクチャバッファ、601 ビデオソース、603 ビデオエンコーダ、ビデオコーダ、620 電子デバイス、630 ソースコーダ、632 コーディングエンジン、633 ローカルビデオデコーダ、デコーディングユニット、634 参照ピクチャメモリ、参照ピクチャキャッシュ、635 予測器、640 送信器、643 コーディングされたビデオシーケンス、645 エントロピーコーダ、650 コントローラ、660 通信チャネル、703 ビデオエンコーダ、721 汎用コントローラ、722 イントラエンコーダ、723 残差計算器、724 残差エンコーダ、725 エントロピーエンコーダ、726 スイッチ、728 残差デコーダ、730 インターエンコーダ、810 ビデオデコーダ、871 エントロピーデコーダ、872 イントラデコーダ、873 残差デコーダ、874 再構成モジュール、880 インターデコーダ、900 ビデオデータを処理するための方法、2800 コンピュータシステム、2801 キーボード、2802 マウス、2803 トラックパッド、2805 ジョイスティック、2806 マイクロフォン、2807 スキャナ、2808 カメラ、2809 オーディオ出力デバイススピーカ、2810 タッチスクリーン、2820 CD/DVD ROM/RW、2821 CD/DVDまたは同様の媒体、2822 サムドライブ、2823 リムーバブルハードドライブまたはソリッドステートドライブ、2840 コア、2841 中央処理装置、CPU、2842 グラフィックスプロセッシングユニット、GPU、2843 フィールドプログラマブルゲートエリア、FPGA、2844 ハードウェアアクセラレータ、2845 読み出し専用メモリ、ROM、2846 ランダムアクセスメモリ、2847 内部大容量ストレージ、2848 システムバス、2849 周辺バス、2850 グラフィックスアダプタ、2854 インターフェース、2855 通信ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10