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

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

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

特開2024-161467オフセット・ベースのリファインメント及び複数参照ライン選択の調和的設計
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024161467
(43)【公開日】2024-11-19
(54)【発明の名称】オフセット・ベースのリファインメント及び複数参照ライン選択の調和的設計
(51)【国際特許分類】
   H04N 19/593 20140101AFI20241112BHJP
【FI】
H04N19/593
【審査請求】未請求
【請求項の数】1
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024135189
(22)【出願日】2024-08-14
(62)【分割の表示】P 2023519440の分割
【原出願日】2022-01-27
(31)【優先権主張番号】63/217,061
(32)【優先日】2021-06-30
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/573,823
(32)【優先日】2022-01-12
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(72)【発明者】
【氏名】ジャオ,リアン
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リウ,シャン
(57)【要約】      (修正有)
【課題】ビデオ復号化におけるイントラ予測及び複数参照ライン・イントラ予測のためのオフセット・リファインメント方法、ビデオ符号化及び/又は復号化のための装置及びコンピュータ読み取り可能な記憶媒体を提供する。
【解決手段】方法1500は、デバイスが、ブロックに関するコーディングされたビデオ・ビットストリームを受信すること1510と、デバイスが、イントラ予測のためのオフセット・リファインメントがブロックに適用されるかどうかを、ブロックの参照ライン・インデックス、ブロックのイントラ予測モード及びブロックのサイズのうちの少なくとも1つを含むブロックのモード情報に基づいて決定すること1520と、イントラ予測のためのオフセット・リファインメントがブロックに適用される決定に応じて、デバイスが、オフセット・リファインメントを実行してブロックのイントラ予測のためのイントラ予測子を生成すること1530と、を含む。
【選択図】図15
【特許請求の範囲】
【請求項1】
ビデオ復号化におけるイントラ予測及び複数参照ライン・イントラ予測のためのオフセット・リファインメント方法であって:
命令を記憶するメモリ、及び前記メモリと通信するプロセッサを備えるデバイスが、ブロックに関するコーディングされたビデオ・ビットストリームを受信するステップと;
前記デバイスが、イントラ予測のためのオフセット・リファインメントが前記ブロックに適用されるかどうかを、前記ブロックのモード情報に基づいて決定するステップであって、前記ブロックのモード情報は、前記ブロックの参照ライン・インデックス、前記ブロックのイントラ予測モード、及び前記ブロックのサイズのうちの少なくとも1つを含む、ステップと;
前記イントラ予測のためのオフセット・リファインメントが前記ブロックに適用される決定に応じて、前記デバイスが、前記オフセット・リファインメントを実行して前記ブロックのイントラ予測のためのイントラ予測子を生成するステップと;
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 関連出願
本件出願は、2021年6月30日に出願された米国仮出願第63/217,061号及び2022年1月12日に出願された米国非仮出願第17/573,823号に基づいて優先権を主張するものであり、それらは全体的に本件に援用される。
【0002】
[0002] 技術分野
本開示は、ビデオ・コーディング及び/又はデコーディング技術に関連し、特に、オフセット・ベースのリファインメント及び複数参照ライン選択方式の改良された設計及びシグナリングに関連する。
【背景技術】
【0003】
[0003] 開示の背景
本件で行われる背景の説明は、本開示の状況を一般的に提示するためのものである。現在の発明者の名の下になされる仕事は、その仕事がこの背景のセクションだけでなく、別の方法で出願時点の先行技術としての適格性を付与されない可能性のある記述の態様で説明される範囲において、本開示に対する先行技術として、明示的にも暗示的にも認められていない。
【0004】
[0004] ビデオのコーディング及びデコーディングは、動き補償を伴うインター・ピクチャ予測を用いて実行されることが可能である。非圧縮化されたデジタル・ビデオは一連のピクチャを含むことが可能であり、各ピクチャは、例えば1920x1080のルミナンス・サンプル及び関連する完全な又はサブサンプリングされたクロミナンス・サンプルの空間次元を有する。一連のピクチャは、例えば60ピクチャ/秒、即ちフレーム毎秒の固定された又は可変のピクチャ・レート(代替的に、フレーム・レートと呼ばれる)を有することが可能である。非圧縮化されたビデオは、ストリーミング又はデータ処理に対する特定のビットレート要件を有する。例えば、8ビット/ピクセル/カラー・チャネルにおける、1920x1080のピクセル解像度、60フレーム/秒のフレーム・レート、及び4:2:0のクロマ・サブサンプリングによるビデオは、1.5 Gbit/sに近い帯域幅を必要とする。このようなビデオの1時間は、600Gバイトを超える記憶スペースを必要とする。
【0005】
[0005] ビデオのコーディング及びデコーディングの目的の1つは、圧縮による入力画像及び/又はビデオ信号の冗長性の低減であるということができる。圧縮は、場合によっては、2桁以上の大きさで、前述の帯域幅及び/又は記憶スペース要件を低減するのに役立つ可能性がある。ロスレス圧縮及び非ロスレス圧縮の両方、並びにそれらの組み合わせを用いることが可能である。ロスレス圧縮とは、元の信号の正確なコピーが、復号化プロセスにより、圧縮された元の信号から再構成することができる技術をいう。非ロスレス圧縮は、元のビデオ情報がコーディングの際に完全には維持されず、デコーディングの際に完全には回復可能でないコーディング/デコーディング・プロセスをいう。非ロスレス圧縮を使用する場合、再構成された信号は、元の信号と同一ではないかもしれないが、元の信号と再構成された信号との間の歪は、再構成された信号を、幾らかの情報損失があるにもかかわらず、意図された用途にとって有用となる程度に十分に小さい。ビデオの場合、非ロスレス圧縮が多くの用途で広く使用されている。許容される歪の量は、用途に依存する。例えば、特定の消費者ビデオ・ストリーミング・アプリケーションのユーザーは、映画又はテレビ放送アプリケーションのユーザーよりも高い歪に耐え得る可能性がある。特定のコーディング・アルゴリズムにより達成可能な圧縮比は、種々の歪み許容度を反映するように選択又は調整されることが可能であり:より高い許容可能な歪は、一般に、より高い損失及びより高い圧縮比をもたらすコーディング・アルゴリズムを可能にする。
【0006】
[0006] ビデオ・エンコーダ及びデコーダは、例えば、動き補償、フーリエ変換、量子化、及びエントロピー・コーディングを含む幾つもの広範なカテゴリ及びステップのうちの技術を利用することができる。
【0007】
[0007] ビデオ・コーデック技術は、イントラ・コーディングとして知られる技術を含むことが可能である。イントラ・コーディングでは、サンプル値は、以前に再構成された参照ピクチャからのサンプル又はその他のデータを参照することなく表現される。幾つかのビデオ・コーデックでは、ピクチャはサンプルのブロックに空間的に細分される。サンプルの全てのブロックがイントラ・モードでコーディングされる場合、そのピクチャはイントラ・ピクチャと言及されることが可能である。イントラ・ピクチャ及びそれらの派生物(例えば、独立なデコーダ・リフレッシュ・ピクチャ)は、デコーダ状態をリセットするために使用することが可能であり、従って、コーディングされたビデオ・ビットストリーム及びビデオ・セッションにおける最初のピクチャとして、又は静止画像として使用することができる。イントラ予測後のブロックのサンプルは、周波数ドメインへの変換に委ねられる可能性があり、そのように生成される変換係数は、エントロピー・コーディングの前に量子化されることが可能である。イントラ予測は、変換前のドメインにおけるサンプル値を最小化する技術を表す。場合によっては、変換後のDC値が小さいほど、及びAC係数が小さいほど、エントロピー・コーディング後にブロックを表現するために、所与の量子化ステップ・サイズで必要とされるビット数は少なくなる。
【0008】
[0008] 例えばMPEG-2世代のコーディング技術などで知られているような伝統的なイントラ・コーディングは、イントラ予測を使用していない。しかしながら、幾つかのより新しいビデオ圧縮技術は、例えば、空間的に隣接する、符号化/復号化する間に得られた周囲のサンプル・データ及び/又はメタデータであってコーディング又はデコーディングされるデータのブロックに復号化順で先行しているもの、に基づいて、ブロックのコーディング/デコーディングを試みる技術を含む。このような技術は、以後「イントラ予測」技術と呼ばれる。少なくとも幾つかのケースでは、イントラ予測は、参照ピクチャからではなく、再構成中の現在のピクチャからの、参照データのみを使用することに留意されたい。
【0009】
[0009] 多くの様々な形式のイントラ予測が存在する可能性がある。1つより多くのそのような技術が所与のビデオ・コーディング技術で使用されることが可能である場合、使用されるその技術は、イントラ予測モードでコーディングされることが可能である。1つ以上のイントラ予測モードは、特定のコーデックで提供されることが可能である。ある場合には、モードは、サブモードを有することが可能であり、及び/又は様々なパラメータに関連付けられることが可能であり、ビデオのブロックに対するモード/サブモード情報及びイントラ・コーディング・パラメータは、個別にコーディングされることが可能であり、又は集合的にモード・コードワードに含めることが可能である。所与のモード、サブモード、及び/又はパラメータの組み合わせに使用するコードワードは、イントラ予測によるコーディング効率利得に影響を与える可能性があり、従って、コードワードをビットストリームに変換するために使用されるエントロピー・コーディング技術にも同様に影響を与える可能性がある。
【0010】
[0010] イントラ予測の所定のモードがH.264で導入され、H.265で改良され、共同探索モデル(JEM)、多用途ビデオ・コーディング(VVC)、ベンチマーク・セット(BMS)のような新しいコーディング技術で更に改良されている。一般に、イントラ予測の場合、予測ブロックは、利用可能になっている近辺のサンプル値(neighboring sample value)を使用して形成されることが可能である。例えば、特定の方向及び/又はラインに沿った近辺のサンプルの特定のセットのうちの利用可能な値は、予測子ブロック(predictor block)にコピーされることが可能である。
【0011】
[0011] 図1Aを参照すると、右下に示されているものは、(H.265で指定されている35個のイントラ・モードのうちの33個の角度モードに対応する)H.265の33個の可能なイントラ予測子方向の中で指定される9個の予測子方向のサブセットである。 矢印が収束する点(101)は、予測されるサンプルを表す。矢印は方向を示し、101におけるサンプルを予測するために、その方向から近辺のサンプルが使用される。例えば、矢印(102)は、サンプル(101)が、水平方向から45度の角度で右上に向かう1つ又は複数の近辺のサンプルから、予測されることを示す。同様に、矢印(103)は、サンプル(101)が、水平方向から22.5度の角度でサンプル(101)の左下に向かう1つ又は複数の近辺のサンプルから、予測されることを示す。
【0012】
[0012] 図1Aを更に参照すると、左上に4x4サンプルの正方形ブロック(104)が示されている(太い破線で示されている)。正方形ブロック(104)は16個のサンプルを含み、その各々は、「S」と、Y次元におけるその位置(例えば、行インデックス)と、X次元におけるその位置(例えば、列インデックス)とでラベル付けされている。例えば、サンプルS21は、Y次元で(上から)2番目のサンプルであって、X次元で(左から)1番目のサンプルである。同様に、サンプルS44は、Y及びX次元の両方においてブロック(104)内で4番目のサンプルである。ブロックは4x4サンプルのサイズであるので、S44は右下にある。更に、同様の番号付け方式に従った例示的な参照サンプルが示されている。参照サンプルは、Rと、ブロック(104)に対するそのY位置(例えば、行インデックス)と、X位置(列インデックス)とでラベル付けされている。H.264とH.265の両方において、再構成中のブロックに隣接している予測サンプルが使用されている。
【0013】
[0013] ブロック104のイントラ・ピクチャ予測は、シグナリングされた予測方向に従って、近辺のサンプルから参照サンプル値をコピーすることによって開始してもよい。例えば、コーディングされたビデオ・ビットストリームが、このブロック104に関し、矢印(102)の予測方向を示すシグナリングを含んでいると仮定する-即ち、サンプルは、水平方向から45度の角度で右上に向かう1つ又は複数の予測サンプルから予測される。その場合、サンプルS41,S32,S23,及びS14は、同じ参照サンプルR05から予測される。そして、サンプルS44は、参照サンプルR08から予測される。
【0014】
[0014] 場合によっては、参照サンプルを計算するために、複数の参照サンプルの値が、例えば補間によって組み合わせられてもよい;特に、方向が45度で均等に割り切れない場合にはなおさらである。
【0015】
[0015] 可能な方向の数は、ビデオ・コーディング技術が発達し続けていることにより増えている。例えば、H.264(2003年)では、9つの異なる方向がイントラ予測に利用可能であった。これは、H.265(2013年)では33に増加し、本開示の時点におけるJEM/VVC/BMSは、65個までの方向をサポートすることができる。最も相応しいイントラ予測方向を同定することを支援するために実験研究が行われており、エントロピー・コーディングにおける特定の技術を使用して、方向に対して特定のビット・ペナルティを受け入れながら、最も相応しい方向を少ないビット数で符号化することができる。更に、方向それ自体は、復号化されている近辺のブロックのイントラ予測で使用された近辺の方向から、しばしば予測されることが可能である。
【0016】
[0016] 図1BはJEMに従う65個のイントラ予測方向を示す概略図(180)を示し、時を経て発展している様々な符号化技術において、増加しつつある予測方向の数を示す。
【0017】
[0017] コーディングされたビデオ・ビットストリームにおける予測方向に対する、イントラ予測方向を表現するビットのマッピングの仕方は、ビデオ・コーディング技術ごとに異なる可能性があり;例えば、予測方向の単純な直接的なマッピングから、イントラ予測モード、コードワード、最確モードを含む複雑な適応スキーム、及び類似の技術まで、広がる可能性がある。しかしながら、どのような場合でも、ビデオ・コンテンツにおいて、特定の他の方向よりも統計的に起こりにくい、イントラ予測の特定の方向が存在する可能性がある。ビデオ圧縮のゴールは、冗長性の低減であるので、これらの起こりそうにない方向は、良好に設計されたビデオ・コーディング技術では、より可能性の高い方向よりも多くのビット数で表現される可能性がある。
【0018】
[0018] インター・ピクチャ予測又はイントラ予測は、動き補償に基づくことが可能である。動き補償では、動きベクトル(以下、MVとする)で示される方向に空間的にシフトした後に、以前に再構成されたピクチャ又はその一部(参照ピクチャ)からのサンプル・データが、新たに再構成されるピクチャ又はピクチャの一部分(例えば、ブロック)の予測に使用されることが可能である。場合によっては、参照ピクチャは、現在再構成中のピクチャと同じである可能性がある。MVは、2つの次元X及びY、又は3次元を有する可能性があり、第3の次元は、使用中の参照ピクチャの指示である(後者は、時間次元に類似している)。
【0019】
[0019] 一部のビデオ圧縮技術では、サンプル・データの特定のエリアに適用可能な現在のMVは、他のMVから、例えば、再構成中のエリアに空間的に隣接するサンプル・データの他のエリアに関連するものであって復号化の順番で現在のMVに先行しているものから、予測することが可能である。このようにすると、相互関連するMVにおける冗長性を削減できることを当てにすることによって、MVをコーディングするために必要なデータ量を大幅に削減し、それによって圧縮効率を高めることができる。MV予測は効果的に機能する可能性があり、なぜなら、例えば、カメラ(ナチュラル・ビデオとして知られる)から導出される入力ビデオ信号をコーディングする際に、単一のMVが適用可能であるエリアよりも大きなエリアが、ビデオ・シーケンスの中で同様な方向に移動する統計的な尤度が存在し、従って場合によっては、隣接するエリアのMVから導出される同様な動きベクトルを用いて予測できるからである。これは、与えられたエリアに対して、周囲のMVから予測されるMVに類似する又は同一である実際のMVをもたらす。このようなMVは、エントロピー・コーディングの後に、近辺のMVから予測されるのではなく、直接的にMVがコーディングされる場合に使用されるものよりも、より少ないビット数で表現されることが可能である。場合によっては、MV予測は、元の信号(即ち、サンプル・ストリーム)から導出された信号(即ち、MV)のロスレス圧縮の一例である可能性がある。他の場合に、MV予測それ自体は、例えば、幾つかの周囲のMVから予測子を計算する際に、丸め誤差に起因して非ロスレスとなる可能性がある。
【0020】
[0020] 様々なMV予測メカニズムは、H.265/HEVC(ITU-T Rec.H.265,“High Efficiency Video Coding”,December 2016)に記載されている。H.265が指定する多くのMV予測メカニズムのうち、本件で説明されるものは、今後「空間マージ(spatial merge)」と呼ばれる技術である。
【0021】
[0021] 具体的には、図2を参照すると、現在のブロック(201)は、空間的にシフトされた同じサイズの以前のブロックから予測可能であるように動き探索プロセス中にエンコーダによって発見されているサンプルを含む。そのMVを直接的にコーディングする代わりに、MVは、1つ以上の参照ピクチャに関連付けられたメタデータから、例えばA0,A1,及びB0,B1,B2とされる5つの周辺サンプル(それぞれ202ないし206)の何れかに関連付けられたMVを使用して、(復号化の順序で)最新の参照ピクチャから、導出されることが可能である。H.265では、MV予測は、隣接ブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【0022】
[0022] 本開示は、ビデオ符号化及び/又は復号化のための方法、装置、コンピュータ読み取り可能な記憶媒体の様々な実施形態を述べている。
【0023】
[0023] 一態様によれば、本開示の実施形態は、ビデオ復号化におけるイントラ予測及び複数参照ライン・イントラ予測のためのオフセット・リファインメント方法を提供する。方法は、デバイスが、ブロックに関するコーディングされたビデオ・ビットストリームを受信するステップを含む。デバイスは、命令を記憶するメモリ、及びメモリと通信するプロセッサを含む。方法は、デバイスが、イントラ予測のためのオフセット・リファインメント(offset refinement)がブロックに適用されるかどうかを、ブロックのモード情報に基づいて決定するステップであって、ブロックのモード情報は、ブロックの参照ライン・インデックス、ブロックのイントラ予測モード、及びブロックのサイズのうちの少なくとも1つを含む、ステップと;イントラ予測のためのオフセット・リファインメントがブロックに適用される決定に応じて、デバイスが、オフセット・リファインメントを実行してブロックのイントラ予測のためのイントラ予測子(intra predictor)を生成するステップとを含む。
【0024】
[0024] 別の態様によれば、本開示の実施形態はビデオ符号化及び/又は復号化のための装置を提供する。装置は、命令を記憶するメモリ、及びメモリと通信するプロセッサを含む。プロセッサが命令を実行すると、プロセッサは、ビデオ符号化及び/又は復号化に関する上記の方法を装置に実行させるように構成されている。
【0025】
[0025] 別の態様によれば、本開示の実施形態は、命令を記憶する非一時的なコンピュータ読み取り可能な記憶媒体を提供し、命令は、ビデオ符号化及び/又は復号化のためのコンピュータにより実行されると、ビデオ符号化及び/又は復号化に関する方法をコンピュータに実行させる。
【0026】
[0026] 上記及びその他の態様並びにそれらの実装は、図面、明細書、及び特許請求の範囲においてより詳細に説明されている。
【図面の簡単な説明】
【0027】
[0027] 開示される対象事項の更なる特徴、性質、及び種々の利点は、以下の詳細な説明及び添付の図面から更に明らかになるであろう。
図1A】[0028] 図1Aは、イントラ予測方向モードの例示的なサブセットの概略図を示す。
図1B】[0029] 図1Bは、例示的なイントラ予測方向の例を示す。
図2】[0030] 図2は、一例における現在のブロックと動きベクトル予測のためのその周辺の空間マージ候補との概略図を示す。
図3】[0031] 図3は、例示的な実施形態による通信システム(300)の簡略化されたブロック図の概略図を示す。
図4】[0032] 図4は、例示的な実施形態による通信システム(400)の簡略化されたブロック図の概略図を示す。
図5】[0033] 図5は、例示的な実施形態によるビデオ・デコーダの簡略化されたブロック図の概略図を示す。
図6】[0034] 図6は、例示的な実施形態によるビデオ・エンコーダの簡略化されたブロック図の概略図を示す。
図7】[0035] 図7は、他の例示的な実施形態によるビデオ・エンコーダのブロック図を示す。
図8】[0036] 図8は、他の例示的な実施形態によるビデオ・デコーダのブロック図を示す。
図9】[0037] 図9は、本開示の例示的な実施形態による方向性イントラ予測モードを示す。
図10】[0038] 図10は、本開示の例示的な実施形態による非方向性イントラ予測モードを示す。
図11】[0039] 図11は、本開示の例示的な実施形態による再帰的イントラ予測モードを示す。
図12】[0040] 図12は、本開示の例示的な実施形態による様々な参照ラインに基づくイントラ予測方式を示す。
図13】[0041] 図13は、本開示の例示的な実施形態によるイントラ予測のためのオフセット・ベースのリファインメントを示す。
図14A】[0042] 図14Aは、本開示の例示的な実施形態によるイントラ予測のためのオフセット・ベースのリファインメントの別の例を示す。
図14B】[0043] 図14Bは、本開示の例示的な実施形態によるイントラ予測のためのオフセット・ベースのリファインメントの別の例を示す。
図15】[0044] 図15は、本開示の例示的な実施形態による方法のフロー・チャートを示す。
図16】[0045] 図16は、本開示の実施形態によるコンピュータ・システムの概略図を示す。
【発明を実施するための形態】
【0028】
[0046] 以下、本発明は、添付図面を参照しながら詳細に説明され、図面は本発明の一部を成すものであり且つ実施形態の特定の具体例を例示的に示している。しかしながら、本発明は、様々な異なる形態で実施することが可能であり、従って、カバーされる又はクレームされる対象事項は、以下で説明される如何なる実施形態にも限定されないものと解釈されるように意図されていることに留意されたい。また、本発明は、方法、デバイス、構成要素又はシステムとして実施されることが可能であることにも留意されたい。従って、本発明の実施形態は、例えば、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせの形態をとることが可能である。
【0029】
[0047] 明細書及びクレームを通じて、用語は、明示的に述べられている意味を超えて、文脈で示唆又は暗示されるニュアンスの意味を有する可能性がある。本件で使用されるフレーズ「ある実施形態において」又は「一部の実施形態において」は、必ずしも同じ実施形態を指すわけではなく、本件で使用されるフレーズ「別の実施形態において」又は「他の実施形態において」は、必ずしも異なる実施形態を指すわけではない。同様に、本件で使用される「ある実装において」又は「一部の実装において」というフレーズは、必ずしも同じ実装を指すわけではなく、本件で使用される「別の実装において」又は「他の実装において」というフレーズは、必ずしも異なる実装を指すわけではない。例えば、クレームされた主題事項は、例示的な実施形態/実装の組み合わせを全体的又は部分的に含む、ということが意図されている。
【0030】
[0048] 一般に、用語は、少なくとも部分的には、文脈における用法から理解される可能性がある。例えば、「及び」、「又は」又は「及び/又は」のような用語は、本件で使用される場合、そのような用語が使用される文脈に少なくとも部分的に依存する可能性のある様々な意味を含む可能性がある。典型的には、A、B又はCのようなリストを関連付けるために使用される場合に「又は」は、包括的な意味で使用される「A、B及びC」に加えて排他的な意味で使用される「A、B又はC」を意味するように意図されている。更に、本件で使用される用語「1つ以上」又は「少なくとも1つ」は、少なくとも部分的に文脈に依存して、単数の意味で何らかの特徴、構造、又は特性を述べるために使用される可能性があり、あるいは、複数の意味で特徴、構造、又は特性の組み合わせを述べるために使用される可能性がある。同様に、「ある(a)」、「或る(an)」、又は「その(the)」のような用語もまた、少なくとも部分的には文脈に依存して、単数の用法を伝えているか、又は複数の用法を伝えていると理解することができる。更に、「基づいて」又は「によって決定される」という用語は、必ずしも排他的な一組の要因を伝えるように意図されているわけではなく、むしろここでも、少なくとも部分的に文脈に依存して、必ずしも明示的には述べられていない追加の要因の存在を許容する可能性がある。
【0031】
[0049] 図3は、本開示の実施形態による通信システム(300)の簡略化されたブロック図を示す。通信システム(300)は、例えばネットワーク(350)を介して互いに通信することが可能な複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1ペアの端末デバイス(310)及び(320)を含む。図3の例では、第1ペアの端末デバイス(310)及び(320)は、データの一方向伝送を行うことが可能である。例えば、端末デバイス(310)は、ネットワーク(350)を介する他の端末デバイス(320)への伝送のために、ビデオ・データ(例えば、端末デバイス(310)によって捕捉されたビデオ・ピクチャのストリーム)をコーディングすることができる。符号化されたビデオ・データは、1つ以上のコーディングされたビデオ・ビットストリームの形態で伝送されることが可能である。端末デバイス(320)は、コーディングされたビデオ・データをネットワーク(350)から受信し、コーディングされたビデオ・データを復号化して、ビデオ・ピクチャを復元し、復元されたビデオ・データに従ってビデオ・ピクチャを表示することができる。一方向性データ伝送は、媒体サービング・アプリケーション等において実現されてもよい。
【0032】
[0050] 別の例では、通信システム(300)は、例えば、ビデオ・カンファレンス・アプリケーションの際に発生する可能性があるコーディングされたビデオ・データの双方向伝送を行う第2ペアの端末デバイス(330)及び(340)を含む。データの双方向伝送に関し、例えば、端末デバイス(330)及び(340)の各端末デバイスは、ネットワーク(350)を介して端末デバイス(330)及び(340)のうちの他方の端末デバイスへ伝送するために、ビデオ・データ(例えば、端末デバイスによって捕捉されたビデオ・ピクチャのストリーム)をコーディングすることができる。端末デバイス(330)及び(340)の各端末デバイスもまた、端末デバイス(330)及び(340)のうちの他方の端末デバイスによって伝送されたコーディングされたビデオ・データを受信することが可能であり、コーディングされたビデオ・データを復号化してビデオ・ピクチャを復元することが可能であり、復元されたビデオ・データに従って、アクセス可能なディスプレイ・デバイスでビデオ・ピクチャを表示することが可能である。
【0033】
[0051] 図3の例では、端末デバイス(310),(320),(330)及び(340)は、サーバー、パーソナル・コンピュータ、及びスマートフォンとして実現されているが、本開示の原理に基づく適用可能性はそのように限定されなくてよい。本開示の実施形態は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、メディア・プレーヤ、ウェアラブル・コンピュータ、専用のビデオ・カンファレンス装置、及び/又はこれに類するものにおいて実現されてもよい。ネットワーク(350)は、例えば有線(配線された)及び/又は無線通信ネットワークを含む、コーディングされたビデオ・データを端末デバイス(310),(320),(330)及び(340)の間で運ぶ任意の数又はタイプのネットワークを表現する。通信ネットワーク(350)は、回線交換、パケット交換型、及び/又はその他のタイプのチャネルでデータを交換することができる。代表的なネットワークは、テレコミュニケーション・ネットワーク、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、及び/又はインターネットを含む。本開示の目的に関し、ネットワーク(350)のアーキテクチャ及びトポロジーは、以下において明示的に説明されない限り、本開示の動作にとって重要ではない可能性がある。
【0034】
[0052] 図4は、開示される対象事項の適用例として、ストリーミング環境におけるビデオ・エンコーダ及びビデオ・デコーダの配置を示す。開示される対象事項は、例えば、ビデオ・カンファレンス、デジタルTV放送、ゲーミング、仮想現実、圧縮されたビデオのデジタル・メディア(CD、DVD、メモリ・スティック等を含む)への記憶などを含む、他のビデオの利用が可能なアプリケーションに等しく適用することが可能である
[0053] ストリーミング・システムは、ビデオ・ソース(401)、例えばデジタル・カメラを含むことが可能なキャプチャ・サブシステム(413)であって、非圧縮のビデオ・ピクチャ又は画像(402)のストリームを生成するようなものを含んでもよい。一例では、ビデオ・ピクチャのストリーム(402)は、ビデオ・ソース401のデジタル・カメラによって記録されたサンプルを含む。符号化されたビデオ・データ(404)(又はコーディングされたビデオ・ビットストリーム)と比較して、より多くのデータ量を強調するために太い線として描かれているビデオ・ピクチャのストリーム(402)は、ビデオ・ソース(401)に結合されたビデオ・エンコーダ(403)を含む電子デバイス(420)によって処理されることが可能である。ビデオ・エンコーダ(403)は、ハードウェア、ソフトウェア、又はそれらの組み合わせを含み、以下で詳細に説明されるような開示される対象事項の態様を動作可能にする又は実現することが可能である。非圧縮のビデオ・ピクチャ(402)のストリームと比較して、より少ないデータ量を強調するために細い線として描かれている符号化されたビデオ・データ(404)(又は符号化されたビデオ・ビットストリーム(404))は、将来の使用のためにストリーミング・サーバー(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及びその他のビデオ・コーディング規格の状況で使用される可能性がある。
【0035】
[0054] 電子デバイス(420)及び(430)は、他のコンポーネント(図示せず)を含むことが可能である、ということに留意を要する。例えば、電子デバイス(420)は、ビデオ・デコーダ(不図示)を含むことが可能であり、電子デバイス(430)は、ビデオ・エンコーダ(不図示)を含むことも可能である。
【0036】
[0055] 図5は本開示の一実施形態によるビデオ・デコーダ(510)のブロック図を示す。ビデオ・デコーダ(510)は、電子デバイス(530)に含まれることが可能である。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことが可能である。ビデオ・デコーダ(510)は、図4の例におけるビデオ・デコーダ(410)の代わりに使用することが可能である。
【0037】
[0056] 受信機(531)は、ビデオ・デコーダ(510)によって復号化されることになっている1つ以上のコーディングされたビデオ・シーケンスを受信することが可能である。同じ又は別の実施形態において、各々のコーディングされたビデオ・シーケンスの復号化が、他のコーディングされたビデオ・シーケンスから独立している場合には、一度に1つのコーディングされたビデオ・シーケンスを受信することが可能である。コーディングされたビデオ・シーケンスは、複数のビデオ・フレーム又は画像に関連していてもよい。コーディングされたビデオ・シーケンスは、チャネル(501)から受信することが可能であり、このチャネルは、符号化されたビデオ・データを記憶するストレージ・デバイス、又は符号化されたビデオ・データを伝送するストリーミング・ソースへの、ハードウェア/ソフトウェア・リンクであってもよい。受信機(531)は、符号化されたビデオ・データを、他のデータ、例えばコーディングされたオーディオ・データ及び/又は補助的なデータ・ストリームとともに受信することが可能であり、これらのデータは、それぞれのエンティティ(不図示)を使用して転送されることが可能である。受信機(531)は、コーディングされたビデオ・シーケンスを他のデータから分離することができる。ネットワーク・ジッタに対処するために、バッファ・メモリ(515)は、受信機(531)とエントロピー・デコーダ/パーサー(520)(以後「パーサー(520)」と言及する)との間に配置されてもよい。特定のアプリケーションでは、バッファ・メモリ(515)はビデオ・デコーダ(510)の一部として実現されてもよい。他のアプリケーションにおいて、それはビデオ・デコーダ(510)とは別個で外側にある可能性がある(不図示)。更に別のアプリケーションでは、例えばネットワーク・ジッタに対処するために、ビデオ・デコーダ(510)の外側にバッファ・メモリ(不図示)が存在する可能性があり、また、例えば再生タイミングを取り扱うためにビデオ・デコーダ(510)の内側に別の追加的なバッファ・メモリ(515)が存在する可能性がある。受信機(531)が、十分な帯域幅及び制御可能性を有するストア/フォワード・デバイスから、又はアイソクロナス・ネットワークから、データを受信している場合、バッファ・メモリ(515)は必要とされない可能性があるか、又は小さくすることが可能である。インターネットのようなベスト・エフォート・パケット・ネットワークでの使用のために、十分なサイズのバッファ・メモリ(515)が必要とされる可能性があり、そのサイズは比較的大きい可能性がある。そのようなバッファ・メモリは、適応的なサイズで実現されることが可能であり、また、ビデオ・デコーダ(510)の外側のオペレーティング・システム又は類似の要素(不図示)において少なくとも部分的に実現されてもよい。
【0038】
[0057] ビデオ・デコーダ(510)は、コーディングされたビデオ・シーケンスからシンボル(521)を再構成するためにパーサー(520)を含むことが可能である。これらのシンボルのカテゴリは、ビデオ・デコーダ(510)の動作を管理するために使用される情報、及び潜在的には、レンダリング・デバイス(512)(例えば、ディスプレイ・スクリーン)のようなレンダリング・デバイスを制御するための情報を含み、レンダリング・デバイスは、図5に示されているように、電子デバイス(530)の一体化部分であってもなくてもよいが、電子デバイス(530)に結合されることが可能なものである。レンダリング・デバイスの制御情報は、補足エンハンスメント情報(Supplemental Enhancement Information,SEI)メッセージ又はビデオ・ユーザビリティ情報(Video Usability Information,VUI)パラメータ・セット・フラグメント(不図示)の形態におけるものであってもよい。パーサー(520)は、パーサー(520)により受信されるコーディングされたビデオ・シーケンスを解析/エントロピー復号化することが可能である。コーディングされるビデオ・シーケンスのエントロピー・コーディングは、ビデオ・コーディング技術又は規格に従うことが可能であり、可変長コーディング、ハフマン・コーディング、コンテキストの影響を伴う又は伴わない算術コーディング等を含む種々の原理に従うことが可能である。パーサー(520)は、サブグループに対応する少なくとも1つのパラメータに基づいて、ビデオ・デコーダ内のピクセルのサブグループの少なくとも1つに対するサブグループ・パラメータのセットを、コーディングされたビデオ・シーケンスから抽出することができる。サブグループは、ピクチャ・グループ(Groups of Pictures,GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディング・ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)等を含むことが可能である。パーサー(520)はまた、変換係数(例えば、フーリエ変換係数)、量子化パラメータ値、動きベクトル等のようなコーディングされたビデオ・シーケンス情報から抽出することも可能である。
【0039】
[0058] パーサー(520)は、シンボル(521)を生成するために、バッファ・メモリ(515)から受信したビデオ・シーケンスに対してエントロピー復号化/解析処理を実行することが可能である。
【0040】
[0059] シンボル(521)の再構成は、コーディングされたビデオ・ピクチャ又はその一部分のタイプ(インター及びイントラ・ピクチャ、インター及びイントラ・ブロック)及びその他の要因に応じて、複数の異なる処理又は機能ユニットを含むことが可能である。どのユニットがどのように包含されるかは、コーディングされたビデオ・シーケンスからパーサー(520)によって解析されたサブグループ制御情報によって制御されることが可能である。パーサー(520)と以下の複数の処理又は機能ユニットとの間のこのようなサブグループ制御情報の流れは、明確性のために描かれていない。
【0041】
[0060] 既に述べた機能ブロックを超えて、ビデオ・デコーダ(510)は、以下に説明するような複数の機能ユニットに概念的に細分されることが可能である。商業的制約の下で動作する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されることが可能である。しかしながら、開示される対象事項の様々な機能を説明する目的のために、機能ユニットへの概念的な細分が以下の開示で採用されている。
【0042】
[0061] 第1のユニットは、スケーラ/逆変換ユニット(551)であってもよい。スケーラ/逆変換ユニット(551)は、量子化された変換係数だけでなく制御情報(どのタイプの逆変換を使用するか、ブロック・サイズ、量子化因子/パラメータ、量子化スケーリング行列などを含む)も、パーサー(520)からシンボル(521)として受信することができる。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力されることが可能なサンプル値を含むブロックを出力することが可能である。
【0043】
[0062] 場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラ・コーディングされたブロック、即ち、以前に再構成されたピクチャからの予測情報を使用していないが、現在のピクチャの以前に再構成された部分からの予測情報を使用することができるブロック、に関連する可能性がある。このような予測情報は、イントラ・ピクチャ予測ユニット(552)によって提供することが可能である。場合によっては、イントラ・ピクチャ予測ユニット(552)は、現在ピクチャ・バッファ(558)において既に再構成されて記憶されている周囲のブロック情報を使用して、再構成中のブロックと同じサイズ及び形状のブロックを生成することができる。現在ピクチャ・バッファ(558)は、例えば、部分的に再構成された現在のピクチャ及び/又は完全に再構成された現在のピクチャをバッファリングする。アグリゲータ(555)は、場合によっては、サンプル毎に、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供されるような出力サンプル情報に加えることができる。
【0044】
[0063] それ以外の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インター・コーディングされた、動き補償される可能性のあるブロックに関連する可能性がある。このような場合において、動き補償予測ユニット(553)は、インター・ピックチャ予測に使用されるサンプルを取り出すために、参照ピクチャ・メモリ(557)にアクセスすることが可能である。ブロックに関連するシンボル(521)に従って、取り出されたサンプルを動き補償した後に、これらのサンプルは、アグリゲータ(555)によって、スケーラ/逆変換ユニット(551)の出力に加えられ(ユニット551の出力は、残差サンプル又は残差信号と呼ばれてもよい)、出力サンプル情報を生成する。動き補償予測ユニット(553)が予測サンプルをフェッチする元である参照ピクチャ・メモリ(557)内のアドレスは、例えばX、Y成分(シフト)、及び参照ピクチャ成分(時間)を有することが可能なシンボル(521)の形態で、動き補償予測ユニット(553)にとって利用可能な動きベクトルによって制御されることが可能である。また、動き補償は、サブ・サンプルの正確な動きベクトルが使用される場合に、参照ピクチャ・メモリ(557)から取り出されるようなサンプル値の補間を含む可能性があり、また、動きベクトル予測メカニズム等に関連していてもよい。
【0045】
[0064] アグリゲータ(555)の出力サンプルは、ループ・フィルタ・ユニット(556)内の様々なループ・フィルタリング技術の影響を受けることが可能である。ビデオ圧縮技術は、コーディングされたビデオ・シーケンス(コーディングされたビデオ・ビットストリームとも呼ばれる)に含まれるパラメータであって、パーサー(520)からのシンボル(521)としてループ・フィルタ・ユニット(556)にとって利用可能にされるパラメータ、によって制御されるループ内フィルタ技術を含むことが可能であるが、ループ内フィルタ技術は、コーディングされたピクチャ又はコーディングされたビデオ・シーケンスの(復号化の順番で)以前の部分の復号化の間に取得されたメタ情報に応答することが可能であるとともに、以前に再構成されたループ・フィルタリングされたサンプル値にも応答することが可能である。以下に更に詳細に説明するように、幾つかのタイプのループ・フィルタが、様々な順序でループ・フィルタ・ユニット556の一部として含まれる可能性がある。
【0046】
[0065] ループ・フィルタ・ユニット(556)の出力は、レンダリング・デバイス(512)に出力されることが可能であるだけでなく、将来のインター・ピクチャ予測に使用するために参照ピクチャ・メモリ(557)に格納することも可能なサンプル・ストリームであるとすることが可能である。
【0047】
[0066] 所定のコーディングされたピクチャは、いったん完全に再構成されると、将来のインター・ピクチャ予測のための参照ピクチャとして使用することが可能である。例えば、現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサー(520)によって)参照ピクチャとして識別されると、現在ピクチャ・バッファ(558)は参照ピクチャ・メモリ(557)の一部となることが可能であり、新鮮な現在ピクチャ・バッファが、以後のコーディングされたピクチャの再構成を開始する前に、再割り当てされることが可能である。
【0048】
[0067] ビデオ・デコーダ(510)は、ITU-T Rec.H.265のような規格で採用されている所定のビデオ圧縮技術に従って復号化動作を実行することが可能である。コーディングされたビデオ・シーケンスが、ビデオ圧縮技術又は規格のシンタックスと、ビデオ圧縮技術又は規格で文書化されているようなプロファイルとの両方に従うという意味で、コーディングされたビデオ・シーケンスは、使用されているビデオ圧縮技術又は規格によって指定されたシンタックスに準拠することが可能である。具体的には、プロファイルは、特定のツールを、そのプロファイルの下で使用できる唯一のツールとして、ビデオ圧縮技術又は規格で使用可能な全てのツールの中から選択することが可能である。また、規格に準拠するために、コーディングされたビデオ・シーケンスの複雑さは、ビデオ圧縮技術又は規格のレベルによって定義される範囲内にある可能性がある。場合によっては、そのレベルは、最大ピクチャ・サイズ、最大フレーム・レート、最大再構成サンプル・レート(例えば、毎秒メガサンプルの単位で測定される)、最大参照ピクチャ・サイズ等を制限する。レベルによって設定される限界は、場合によっては、コーディングされたビデオ・シーケンスでシグナリングされるHRDバッファ管理のための仮想参照デコーダ(Hypothetical Reference Decoder,HRD)仕様及びメタデータによって更に制限される可能性がある。
【0049】
[0068] 一部の例示的な実施形態では、受信機(531)は、符号化されたビデオとともに追加的(冗長的)なデータを受信する可能性がある。追加的なデータは、コーディングされたビデオ・シーケンスの一部として含まれる可能性がある。追加的なデータは、データを適切に復号化するため、及び/又は、元のビデオ・データをより正確に再構成するために、ビデオ・デコーダ(510)によって使用されてもよい。追加的なデータは、例えば、時間、空間、又は信号雑音比(SNR)エンハンスメント・レイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正コード等の形態におけるものとすることが可能である。
【0050】
[0069] 図6は、本開示の例示的な実施形態によるビデオ・エンコーダ(603)のブロック図を示す。ビデオ・エンコーダ(603)は、電子デバイス(620)に含まれていてもよい。電子デバイス(620)は、送信機(640)(例えば、送信回路)を含んでいてもよい。ビデオ・エンコーダ(603)は、図4の例におけるビデオ・エンコーダ(403)の代わりに使用することが可能である。
【0051】
[0070] ビデオ・エンコーダ(603)は、ビデオ・エンコーダ(603)によってコーディングされることになるビデオ画像を捕捉することが可能なビデオ・ソース(601)(図6の例では電子デバイス(620)の一部ではないもの)から、ビデオ・サンプルを受信することが可能である。別の例では、ビデオ・ソース(601)は、電子デバイス(620)の一部として実現されてもよい。
【0052】
[0071] ビデオ・ソース(601)は、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 YCrCB、RGB、...)、及び任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)であるとすることが可能なデジタル・ビデオ・サンプル・ストリームの形態で、ビデオ・エンコーダ(603)によってコーディングされることになるソース・ビデオ・シーケンスを提供することが可能である。メディア・サービング・システムにおいて、ビデオ・ソース(601)は、事前に準備されたビデオを記憶することが可能なストレージ・デバイスであってもよい。ビデオ・カンファレンス・システムでは、ビデオ・ソース(601)は、ローカルな画像情報をビデオ・シーケンスとして捕捉するカメラであってもよい。ビデオ・データは、シーケンスで眺めた場合に動きを伝える複数の個々のピクチャ又は画像として提供されてもよい。ピクチャそれ自体は、ピクセルの空間アレイとして組織されることが可能であり、ここで、各ピクセルは、使用中のサンプリング構造、色空間などに応じて、1つ以上のサンプルを含むことが可能である。当業者は、ピクセルとサンプルとの間の関係を容易に理解することが可能である。以下の説明は、サンプルに焦点を当てている。
【0053】
[0072] 一部の例示的な実施形態によれば、ビデオ・エンコーダ(603)は、リアルタイムに、又はアプリケーションによって要求される他の任意の時間制約の下で、ソース・ビデオ・シーケンスのピクチャを、コーディングされたビデオ・シーケンス(643)にコーディングして圧縮することが可能である。適切なコーディング速度を強いることは、コントローラ(650)の1つの機能である。幾つかの実施形態において、コントローラ(650)は、以下で説明されるように他の機能ユニットに機能的に結合されてそれらを制御することが可能である。その結合は明確性のために描かれていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャ・スキップ、量子化器、レート歪最適化技術のラムダ値、...)、ピクチャ・サイズ、ピクチャ・グループ(GOP)レイアウト、最大動きベクトル探索範囲などを含むことが可能である。コントローラ(650)は、特定のシステム設計のために最適化されたビデオ・エンコーダ(603)に関連する他の適切な機能を有するように構成されることが可能である。
【0054】
[0073] 一部の例示的な実施形態では、ビデオ・エンコーダ(603)は、コーディング・ループで動作するように構成されることが可能である。極端に単純化された説明として、一例では、コーディング・ループは、ソース・コーダ(630)(例えば、コーディングされるべき入力ピクチャ及び参照ピクチャに基づいて、シンボル・ストリームのようなシンボルを生成する責任があるもの)と、ビデオ・エンコーダ(603)に組み込まれた(ローカル)デコーダ(533)とを含むことが可能である。たとえ内蔵デコーダ633がエントロピー・コーディングすることなくソース・コーダ630によって、コーディングされたビデオ・ストリームを処理したとしても、デコーダ(633)は、(リモート)デコーダが生成するのと同様な方法で、サンプル・データを生成するためにシンボルを再構成する(シンボルとコーディングされたビデオ・ビットストリームとの間の任意の圧縮は、開示される対象事項で考慮されるビデオ圧縮技術ではロスレスであるからである)。再構成されたサンプル・ストリーム(サンプル・データ)は、参照ピクチャ・メモリ(634)に入力される。シンボル・ストリームの復号化は、デコーダの位置(ローカル又はリモート)に依存しないビット・イグザクト(bit-exact)な結果をもたらすので、参照ピクチャ・メモリ(634)内の内容もまた、ローカル・エンコーダとリモート・エンコーダとの間でビット・イグザクトである。言い換えると、エンコーダの予測部は、デコーダが復号化中に予測を使用する場合に「見る(see)」と思われるものと厳密に同じサンプル値を、参照ピクチャ・サンプルとして「見る」。参照ピクチャ同期のこの基本原理(及び、例えばチャネル・エラーに起因して同期性が維持できない場合には、結果としてドリフトが生じる)は、コーディング品質を改善するために使用されている。
【0055】
[0074] 「ローカル」デコーダ(633)の動作は、図5に関連して上記で詳細に既に説明されているビデオ・デコーダ(510)のような「リモート」デコーダのものと同じであるとすることが可能である。しかしながら、図5も簡単に参照すると、シンボルが利用可能であり、且つエントロピー・コーダー(645)及びパーサー(520)によるシンボルのコーディングされたビデオ・シーケンスへの符号化/復号化はロスレスであるとすることが可能であるので、バッファ・メモリ(515)及びパーサー(520)を含むビデオ・デコーダ(510)のエントロピー復号化部は、エンコーダにおけるローカル・デコーダ(633)では完全には実現されない可能性がある。
【0056】
[0075] この時点で行うことができる洞察は、デコーダ内にのみ存在し得る解析/エントロピー復号化を除く任意のデコーダ技術もまた、対応するエンコーダ内に実質的に同一の機能形態で存在する必要があり得るということである。この理由のため、開示される対象事項は、エンコーダのデコーダ部分と関連するデコーダ動作にしばしば焦点を合わせることが可能である。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるので、省略することが可能である。特定のエリア又は態様においてのみ、エンコーダについてのより詳細な説明が以下において行われる。
【0057】
[0076] 動作中に、幾つかの例示的な実装では、ソース・コーダ(630)は、「参照ピクチャ」として指定されていたビデオ・シーケンスからの1つ以上の以前にコーディングされたピクチャを参照して、入力ピクチャを予測してコーディングする、動き補償された予測コーディングを実行することが可能である。このようにして、コーディング・エンジン(632)は、入力ピクチャのピクセル・ブロックと、入力ピクチャに対する予測参照として選択されることが可能な参照ピクチャのピクセル・ブロックとの間の、クロマ・チャネルにおける差分(又は残差)をコーディングする。
【0058】
[0077] ローカル・ビデオ・デコーダ(633)は、ソース・コーダー(630)によって生成されたシンボルに基づいて、参照ピクチャとして指定されることが可能なピクチャのコーディングされたビデオ・データを復号化することが可能である。コーディング・エンジン(632)の動作は、有利なことに、非ロスレス・プロセスであってもよい。コーディングされたビデオ・データがビデオ・デコーダ(図6には示されていない)で復号化されることが可能である場合、再構成されたビデオ・シーケンスは、典型的には、幾らかのエラーを伴うソース・ビデオ・シーケンスのレプリカである可能性がある。ローカル・ビデオ・デコーダ(633)は、参照ピクチャに関してビデオ・デコーダによって実行されることが可能な復号化プロセスを繰り返し、再構成された参照ピクチャが、参照ピクチャ・キャッシュ(634)に記憶されることを引き起こすことが可能である。このように、ビデオ・エンコーダ(603)は、遠方端のビデオ・デコーダによって得られる再構成された参照ピクチャとして、共通の内容を有する再構成された参照ピクチャのコピーを、局所的に記憶することが可能である(伝送エラーはないものとする)。
【0059】
[0078] 予測器(635)は、コーディング・エンジン(632)のために予測検索を行うことが可能である。即ち、コーディングされるべき新しいピクチャについて、予測器(635)は、サンプル・データ(候補の参照ピクセル・ブロックとして)又は所定のメタデータ(参照ピクチャ動きベクトル、ブロック形状など)について、参照ピクチャ・メモリ(534)を検索することが可能であり、これらは、新しいピクチャについての適切な予測参照として役立つ可能性がある。予測器(535)は、適切な予測参照を見出すために、サンプル・ブロック-ピクセル・ブロック・ベースで動作することが可能である。場合によっては、予測器(635)によって得られた探索結果によって決定されるように、入力ピクチャは、参照ピクチャ・メモリ(634)に記憶された複数の参照ピクチャから引き出される予測参照を有する可能性がある。
【0060】
[0079] コントローラ(650)は、例えば、ビデオ・データを符号化するために使用されるパラメータ及びサブグループ・パラメータの設定を含む、ソース・コーダ(630)のコーディング動作を管理することが可能である。
【0061】
[0080] 前述の機能ユニットの全ての出力は、エントロピー・コーダー(645)におけるエントロピー・コーディングを施されることが可能である。エントロピー・コーダー(645)は、ハフマン・コーディング、可変長コーディング、算術コーディング等のような技術に従って、シンボルのロスレス圧縮によって、種々の機能ユニットによって生成されたシンボルを、コーディングされたビデオ・シーケンスに変換する。
【0062】
[0081] 送信機(640)は、エントロピー・コーダー(645)によって作成されるようなコーディングされたビデオ・シーケンスをバッファリングして、通信チャネル(660)を介する伝送のための準備を行うことが可能であり、通信チャネル(660)は、符号化されたビデオ・データを記憶する記憶デバイスへのハードウェア/ソフトウェア・リンクであってもよい。送信機(640)は、ビデオ・エンコーダ(603)からのコーディングされたビデオ・データを、例えばコーディングされたオーディオ・データ及び/又は補助的なデータ・ストリーム(ソースは不図示)のような伝送されるべき他のデータと併合することが可能である。
【0063】
[0082] コントローラ(650)は、ビデオ・エンコーダ(603)の動作を管理することが可能である。コーディングの間に、コントローラ(650)は、コーディングされたピクチャの各々に、特定のコーディングされたピクチャ・タイプを割り当てることが可能であり、これは、各ピクチャに適用されることが可能なコーディング技術に影響を及ぼす可能性がある。例えば、ピクチャはしばしば次のピクチャ・タイプのうちの1つとして割り当てられてもよい。
【0064】
[0083] イントラ・ピクチャ(Iピクチャ)は、シーケンス内の如何なる他のピクチャも予測のソースとして使用せずに、符号化及び復号化されることが可能なものである。幾つかのビデオ・コーデックは、例えば、独立デコーダ・リフレッシュ(Independent Decoder Refresh,“IDR”)ピクチャを含む異なるタイプのイントラ・ピクチャを許容する。当業者は、Iピクチャのこれらの変形例、並びにそれら各自の用途及び特徴を認識している。
【0065】
[0084] 予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、高々1つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いて符号化及び復号化されることが可能なものである。
【0066】
[0085] 双-方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、高々2つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いて符号化及び復号化されることが可能なものである。同様に、複数の予測ピクチャは、1つのブロックの再構成のために、2つより多い参照ピクチャ及び関連するメタデータを使用することが可能である。
【0067】
[0086] ソース・ピクチャは、通常、複数のサンプル・コーディング・ブロックに(例えば、4x4、8x8、4x8、又は16x16サンプルのブロックにそれぞれ)空間的に細分され、ブロック毎にコーディングされることが可能である。ブロックは、ブロックそれぞれのピクチャに適用されるコーディング割り当てによって決定されるように、他の(既にコーディングされた)ブロックを参照して予測的にコーディングされることが可能である。例えば、Iピクチャのブロックは、非予測的にコーディングされてもよいし、又は、それらは同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測又はイントラ予測)。Pピクチャのピクセル・ブロックは、以前にコーディングされた1つの参照ピクチャを参照して、空間的な予測又は時間的な予測により予測的にコーディングされてもよい。Bピクチャのブロックは、1つ又は2つの以前にコーディングされた参照ピクチャを参照して、空間的な予測又は時間的な予測により予測的にコーディングされてもよい。ソース・ピクチャ又は中間的な処理中のピクチャは、他の目的のために、他のタイプのブロックに細分されてもよい。コーディング・ブロック及び他のタイプのブロックの分割は、以下で更に詳細に説明されるものと同じ方法に従っても従わなくてもよい。
【0068】
[0087] ビデオ・エンコーダ(603)は、ITU-T Rec.H.265のような所定のビデオ・コーディング技術又は規格に従ってコーディング動作を行うことが可能である。この動作において、ビデオ・エンコーダ(603)は、入力ビデオ・シーケンスにおける時間的及び空間的な冗長性を活用する予測コーディング動作を含む種々の圧縮動作を実行することが可能である。コーディングされたビデオ・データは、使用されているビデオ・コーディング技術又は規格によって指定されたシンタックスに相応に準拠することが可能である。
【0069】
[0088] 一部の例示的な実施形態では、送信機(640)は、符号化されたビデオとともに追加データを伝送することが可能である。ソース・コーダ(630)は、そのようなデータを、コーディングされたビデオ・シーケンスの一部として含むことが可能である。追加データは、時間的/空間的/SNRエンハンスメント・レイヤ、その他の形式の冗長データ(冗長ピクチャ及びスライス、SEIメッセージ、VUIパラメータ・セット・フラグメント等)を含む可能性がある。
【0070】
[0089] ビデオは、時間シーケンスにおける複数のソース・ピクチャ(ビデオ・ピクチャ)として捕捉されることが可能である。イントラ・ピクチャ予測(しばしば、イントラ予測と略される)は、所与のピクチャにおける空間相関を利用しており、インター・ピクチャ予測は、ピクチャ間の時間的又はその他の相関を利用する。例えば、現在のピクチャとして言及される符号化/復号化の下にある特定のピクチャが、ブロックにパーティション化されてもよい。ビデオにおいて以前にコーディングされ且つ依然としてバッファリングされている参照ピクチャの中の参照ブロックに類似する場合、現在のピクチャ内のブロックは、動きベクトルと呼ばれるベクトルによってコーディングされることが可能である。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用される場合には、参照ピクチャを識別する第3の次元を有することが可能である。
【0071】
[0090] 一部の例示的な実施形態では、インター・ピクチャ予測に双-予測技術を用いることが可能である。双-予測技術によれば、ビデオ内で現在のピクチャに対して復号化順序で両方とも先行している(ただし、表示順序ではそれぞれ過去及び将来におけるものである可能性がある)第1の参照ピクチャ及び第2の参照ピクチャのような2つの参照ピクチャが使用される。現在のピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトルと、第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルとによってコーディングされることが可能である。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって協働して予測されることが可能である。
【0072】
[0091] 更に、コーディング効率を改善するために、インター・ピクチャ予測にマージ・モード技術を用いることが可能である。
【0073】
[0092] 本開示の幾つかの実施形態によれば、インター・ピクチャ予測及びイントラ・ピクチャ予測のような予測は、ブロックの単位で実行される。例えば、ビデオ・ピクチャのシーケンス中のピクチャは、圧縮のためにコーディング・ツリー・ユニット(CTU)にパーティション化され、ピクチャ内のCTUは、64x64ピクセル、32x32ピクセル、又は16x16ピクセルのような同じサイズを有することが可能である。一般に、CTUは、1つのルマCTBと2つのクロマCTBである3つの並列的なコーディング・ツリー・ブロック(CTB)を含むことが可能である。各CTUは、1つ又は複数のコーディング・ユニット(CU)に再帰的に4分木分割されることが可能である。例えば、64x64ピクセルのCTUは、64x64ピクセルの1個のCU、32x32ピクセルの4個のCUに分割されることが可能である。1つ以上の32x32ブロックの各々は、16x16ピクセルの4個のCUに更に分割されることが可能である。幾つかの例示的な実施形態では、各CUは、インター予測タイプ又はイントラ予測タイプのような種々の予測タイプの中でCUの予測タイプを決定するために、符号化の際に分析されることが可能である。CUは、時間的及び/又は空間的な予測可能性に依存して1つ以上の予測ユニット(PU)に分割されることが可能である。一般に、各PUはルマ予測ブロック(PB)と2つのクロマPBを含む。一実施形態では、コーディング(符号化/復号化)における予測処理は、予測ブロックの単位で実行される。CUのPU(又は異なるカラー・チャネルのPB)への分割は、様々な空間パターンで実行されることが可能である。例えば、ルマ又はクロマPBは、8x8ピクセル、16x16ピクセル、8x16ピクセル、16x8ピクセル等のような、ピクセルに対する値(例えば、ルマ値)のマトリクスを含むことが可能である。
【0074】
[0093] 図7は本開示の別の実施形態によるビデオ・エンコーダ(703)の図を示す。ビデオ・エンコーダ(703)は、ビデオ・ピクチャのシーケンスにおける現在のビデオ・ピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、コーディングされたビデオ・シーケンスの一部であるコーディングされたピクチャに符号化するように構成される。例えばビデオ・エンコーダ(703)は、図4の例のビデオ・エンコーダ(403)の代わりに使用されることが可能である。
【0075】
[0094] 例えば、ビデオ・エンコーダ(703)は、8x8サンプルの予測ブロック等のような処理ブロックのサンプル値のマトリクスを受信する。ビデオ・エンコーダ(703)は、次いで、イントラ・モード、インター・モード、又は双-予測モードを使用して、例えばレート歪最適化(rate-distortion optimization,RDO)を使用して、処理ブロックが最良にコーディングされるかどうかを決定する。処理ブロックがイントラ・モードでコーディングされるべきであると決定された場合、ビデオ・エンコーダ(703)は、処理ブロックを、コーディングされたピクチャに符号化するためにイントラ予測技術を使用することが可能であり;処理ブロックがインター・モード又は双-予測モードでコーディングされるべきであると決定された場合、ビデオ・エンコーダ(703)は、処理ブロックを、コーディングされたピクチャに符号化するために、インター予測技術又は双-予測技術をそれぞれ使用することが可能である。一部の例示的な実施形態では、マージ・モードはインター・ピクチャ予測のサブモードとして使用される可能性があり、その場合、動きベクトルは、予測子外部のコーディングされた動きベクトル成分の恩恵なしに、1つ以上の動きベクトル予測子から導出される。一部の他の例示的な実施形態では、対象ブロックに適用可能な動きベクトル成分が存在する可能性がある。従って、ビデオ・エンコーダ(703)は、処理ブロックの予測モードを決定するためにモード決定モジュールのような、図7で明示的には示されていないコンポーネントを含む可能性がある。
【0076】
[0095] 図7の例では、ビデオ・エンコーダ(703)は、インター・エンコーダ(730)、イントラ・エンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、汎用コントローラ(721)、及びエントロピー・エンコーダ(725)を、図7の例示的な配置で示されるように共に結合して含んでいる。
【0077】
[0096] インター・エンコーダ(730)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを、参照ピクチャ内の1つ以上の参照ブロック(例えば、表示の順序で以前のピクチャ及び以後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インター符号化技術による冗長情報の説明、動きベクトル、マージ・モード情報)を生成し、任意の適切な技術を用いてインター予測情報に基づいて、インター予測結果(例えば、予測ブロック)を計算するように構成される。幾つかの例では、参照ピクチャは、図6の例示的なエンコーダ620に組み込まれている復号化ユニット633(以下で更に詳細に説明されるような図7の残差デコーダ728として示されるようなもの)を使用して、符号化されたビデオ情報に基づいて復号化された復号化済み参照ピクチャである。
【0078】
[0097] イントラ・エンコーダ(722)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを、同じピクチャ内で既にコーディングされたブロックと比較し、量子化された係数を変換後に生成し、場合によってはイントラ予測情報(例えば、1つ以上のイントラ符号化技術に従ったイントラ予測方向情報)も生成するように構成される。イントラ・エンコーダ(722)は、同じピクチャ内のイントラ予測情報及び参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算することが可能である。
【0079】
[0098] 汎用コントローラ(721)は、一般的な制御データを決定し、一般的な制御データに基づいてビデオ・エンコーダ(703)の他のコンポーネントを制御するように構成されることが可能である。一例では、汎用コントローラ(721)は、ブロックの予測モードを決定し、その予測モードに基づいてスイッチ(726)に制御信号を提供する。例えば、予測モードがイントラ・モードである場合、汎用コントローラ(721)は、スイッチ(726)を制御して、残差計算器(723)による使用のためにイントラ・モード結果を選択し、且つエントロピー・エンコーダ(725)を制御して、イントラ予測情報を選択し、イントラ予測情報をビットストリームに含め;及びブロックの予測モードがインター・モードである場合、汎用コントローラ(721)は、スイッチ(726)を制御して、残差計算器(723)による使用のためにインター予測結果を選択し、且つエントロピー・エンコーダ(725)を制御して、インター予測情報を選択し、インター予測情報をビットストリームに含める。
【0080】
[0099] 残差計算器(723)は、受信ブロックと、イントラ・エンコーダ(722)又はインター・エンコーダ(730)から選択されたブロックに対する予測結果との間の差分(残差データ)を計算するように構成されることが可能である。残差エンコーダ(724)は、残差データを符号化して変換係数を生成するように構成されることが可能である。例えば、残差エンコーダ(724)は、残差データを空間ドメインから周波数ドメインへ変換し、変換係数を生成するように構成されてもよい。次いで、変換係数は、量子化された変換係数を得るために量子化処理を施される。様々な実施形態では、ビデオ・エンコーダ(703)はまた、残差デコーダ(728)も含む。残差デコーダ(728)は、逆変換を実行し、復号化された残差データを生成するように構成される。復号化された残差データは、イントラ・エンコーダ(722)及びインター・エンコーダ(730)によって適切に使用することが可能である。例えば、インター・エンコーダ(730)は、復号化された残差データ及びインター予測情報に基づいて、復号化されたブロックを生成することが可能であり、イントラ・エンコーダ(722)は、復号化された残差データ及びイントラ予測情報に基づいて、復号化されたブロックを生成することが可能である。復号化されたブロックは、復号化されたピクチャを生成するために適切に処理され、復号化されたピクチャは、メモリ回路(不図示)内でバッファリングされ、参照ピクチャとして使用することが可能である。
【0081】
[0100] エントロピー・エンコーダ(725)は、符号化されたブロックを含むようにビットストリームのフォーマットを設定し、エントロピー・コーディングを実行するように構成されることが可能である。エントロピー・エンコーダ(725)は、ビットストリームに様々な情報を含めるように構成される。例えば、エントロピー・エンコーダ(725)は、一般的な制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及びその他の適切な情報をビットストリームに含めるように構成されることが可能である。インター・モード又は双-予測モードの何れかのマージ・サブモードにおけるブロックをコーディングする場合に、残差情報は存在しない可能性がある。
【0082】
[0101] 図8は、本開示の別の実施形態による例示的なビデオ・デコーダ(810)の図を示す。ビデオ・デコーダ(810)は、コーディングされたビデオ・シーケンスの一部であるコーディングされたピクチャを受信し、コーディングされたピクチャを復号化して、再構成されたピクチャを生成するように構成される。一例では、ビデオ・デコーダ(810)は、図4の例におけるビデオ・デコーダ(410)の代わりに使用されてもよい。
【0083】
[0102] 図8の例では、ビデオ・デコーダ(810)は、エントロピー・デコーダ(871)、インター・デコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、及びイントラ・デコーダ(872)を、図8の例示的な配置に示されるように共に結合して含んでいる。
【0084】
[0103] エントロピー・デコーダ(871)は、コーディングされたピクチャが構築される際のシンタックス要素を表す特定のシンボルを、コーディングされたピクチャから再構成するように構成されることが可能である。このようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラ・モード、インター・モード、双-予測モード、マージ・サブモード又は別のサブモード)、イントラ・デコーダ(872)又はインター・デコーダ(880)によって予測のために使用される特定のサンプル又はメタデータを識別することが可能な予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報(例えば、量子化された変換係数の形式におけるもの)等を含むことが可能である。一例において、予測モードがインター又は双-予測モードである場合には、インター予測情報がインター・デコーダ(880)に提供され;予測タイプがイントラ予測タイプである場合には、イントラ予測情報がイントラ・デコーダ(872)に提供される。残差情報は、逆量子化を施されることが可能であり、残差デコーダ(873)に提供される。
【0085】
[0104] インター・デコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成されることが可能である。
【0086】
[0105] イントラ・デコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成されることが可能である。
【0087】
[0106] 残差デコーダ(873)は、逆量子化を実行して非-量子化変換係数を抽出し、非-量子化変換係数を処理して残差を周波数ドメインから空間ドメインへ変換するように構成されることが可能である。残差デコーダ(873)はまた、特定の制御情報(量子化パラメータ(QP)を含む)も使用する可能性があり、その情報は、エントロピー・デコーダ(871)によって提供される可能性がある(これは、僅かな量の制御情報でしかない可能性があるので、データ経路は描かれていない)。
【0088】
[0107] 再構成モジュール(874)は、空間ドメインにおいて、残差デコーダ(873)による出力としての残差と、予測結果(場合によっては、インター又はイントラ予測モジュールによって出力されるもの)とを組み合わせて、再構成されたビデオの一部として、再構成されたピクチャの一部を形成する再構成されたブロックを形成するように構成されることが可能である。デブロッキング処理などのような適切な他の処理が、視覚的な品質を改善するために実行される可能性もあることに留意を要する。
【0089】
[0108] ビデオ・エンコーダ(403),(603),及び(703)、並びにビデオ・デコーダ(410),(510),及び(810)は、任意の適切な技術を用いて実現することが可能である。一部の例示的な実施形態では、ビデオ・エンコーダ(403),(603),及び(703)、並びにビデオ・デコーダ(410),(510),及び(810)は、1つ以上の集積回路を使用して実現することが可能である。別の実施形態では、ビデオ・エンコーダ(403),(603),及び(703)、並びにビデオ・デコーダ(410),(510),及び(810)は、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実現することが可能である。
【0090】
[0109] イントラ予測プロセスに戻り、これは、予測ブロックを生成するために、ブロック内のサンプル(例えば、ルミナンス又はクロマ予測ブロック、又は、それ以上予測ブロックに分割されていない場合には、符号化ブロック)が、隣接する、次に隣接する、又はその他のライン若しくは複数のラインのサンプル(複数)、又はそれらの組み合わせによって予測される。次いで、コーディングされた実際のブロックと予測ブロックとの間の残差が、変換により処理されて、量子化に続く。種々のイントラ予測モードが利用可能である可能性があり、イントラ・モードの選択に関するパラメータ及びその他のパラメータはビットストリームでシグナリングされることが可能である。種々のイントラ予測モードは、例えば、サンプルを予測するためのライン位置(複数可)、予測サンプルがライン(複数可)から選択される際に沿う方向、及びその他の特別なイントラ予測モードに関連していてもよい。
【0091】
[0110] 例えば、一組のイントラ予測モード(「イントラ・モード」と可換に言及される)は、事前に定められた数の方向イントラ予測モードを含んでいてもよい。図1の例示的な実装に関連して上述したように、これらのイントラ予測モードは、事前に定められた数の方向に対応していてもよく、その方向に沿って、ブロック外サンプルが、特定のブロック内で予測されるサンプルに対する予測として選択される。別の特定の例示的な実装では、水平軸に対して45ないし207度の角度に対応する8つの主方向モードがサポートされ、予め定められていてもよい。
【0092】
[0111] イントラ予測の幾つかの他の実装では、方向性テクスチャにおける空間的冗長性の更なる多様性を更に活用するために、方向性イントラ・モードは、より細かい粒度で設定された角度まで更に拡張されることが可能である。例えば、上述の8つの角度の実装は、図9に示されるように、V_PRED,H_PRED,D45_PRED, D135_PRED,D113_PRED,D157_PRED,D203_PRED,及びD67_PREDと称される8つの公称角度を提供するように構成されることが可能であり、各々の公称角度に対して、事前に設定された個数(e.g.,7)のより細い角度が追加されてもよい。そのような拡張では、より大きな総数の(例えば、この例では56個の)方向角度が、イントラ予測のために利用可能であり、同じ個数の所定の方向性イントラ・モードに対応している。予測角度は、公称イントラ角度プラス角度デルタによって表現されてもよい。各々の公称角度について7つのより細かい角度方向を有する上記の特定の例では、角度デルタは、-3~3であってもよく、3度のステップ・サイズを乗じる。
【0093】
[0112] 上記の方向性イントラ予測は、単一方向性イントラ予測とも呼ばれる場合があり、これは、本開示の後の部分で説明される双-方向性イントラ予測(イントラ双方向予測とも呼ばれるもの)とは異なる。
【0094】
[0113] 幾つかの実装では、上記の方向性イントラ・モードに対して代替的又は追加的に、予め定められた数の非方向性イントラ予測モード(non-directional intra prediction mode)も、予め定められて利用可能にしてもよい。例えば、スムーズ・イントラ予測モード(smooth intra prediction mode)と呼ばれる5つの非方向性イントラ・モードが指定されてもよい。これらの非方向性イントラ・モード予測モードは、具体的には、DC,PAETH,SMOOTH,SMOOTH_V,及びSMOOTH_Hイントラ・モードと呼ばれてもよい。これらの例示的な非方向性モードの下での特定のブロックのサンプルの予測は、図10に示されている。一例として、図10は、上-隣接ライン及び/又は左-隣接ラインからのサンプルによって予測される4x4ブロック1002を示す。ブロック1002における特定のサンプル1010は、ブロック1002の上-隣接ライン内の、サンプル1010の真上のサンプル1004と、上及び左-隣接ラインの交点としての、サンプル1010の左上サンプル1006と、ブロック1002の左-隣接ライン内の、サンプル1010の左真横のサンプル1008とに対応する可能性がある。例えばDCイントラ予測モードの場合、左及び上の隣接するサンプル1008及び1004の平均が、サンプル1010の予測子として使用されることが可能である。例えばPAETHイントラ予測モードの場合、上、左、及び左上の参照サンプル1004,1008,及び1006が取られ、次いで、これらの3つの参照サンプルのうち、(上+左-左上)に最も近い値が、サンプル1010に対する予測子として設定されることが可能である。例えばSMOOTH_Vイントラ予測モードの場合、サンプル1010は、左上の隣接サンプル1006と左の隣接サンプル1008の垂直方向における二次補間(quadratic interpolation)によって予測されることが可能である。例えばSMOOTH_Hイントラ予測モードの場合、サンプル1010は、左上の隣接サンプル1006と上の隣接サンプル1004の水平方向における二次補間によって予測されることが可能である。例えば、SMOOTH_Hイントラ予測モードの場合、サンプル1010は、垂直及び水平方向における二次補間の平均によって予測されることが可能である。上記の非方向性イントラ・モードの実装は、非限定的な例として単に例示されているに過ぎない。他の隣接ライン、サンプルの他の非方向性選択、及び、予測ブロック内の特定のサンプルを予測するために予測サンプルを組み合わせる方法も考えられる。
【0095】
[0114] 種々のコーディング・レベル(ピクチャ、スライス、ブロック、ユニットなど)における上記の方向性又は非方向性モードからの、エンコーダによる特定のイントラ予測モードの選択は、ビットストリームにおいてシグナリングされることが可能である。幾つかの例示的な実装では、例示的な8つの公称方向モードが、5つの非角度スムーズ・モードとともに(合計13個のオプション)、先ずシグナリングされることが可能である。次いで、シグナリングされたモードが8つの公称角度イントラ・モードのうちの1つである場合、対応するシグナリングされた公称角度に対する選択された角度デルタを指定するために、インデックスが更にシグナリングされる。幾つかの他の例示的な実装において、全てのイントラ予測モードが、シグナリングのために全て一緒にインデックス化されていてもよい(例えば、56個の方向性モード・プラス5個の非方向モードで61個のイントラ予測モードを生じる)。
【0096】
[0115] 幾つかの例示的な実装において、例えば56個又はその他の数の方向性イントラ予測モードは、統一された方向性予測子を用いて実装されてもよく、これは、ブロックの各サンプルを、参照サブ・サンプル位置に投影し、2タップ・バイリニア・フィルタによって参照サンプルを補間する。
【0097】
[0116] 幾つかの実装では、エッジ上の参照を用いて減衰空間相関(decaying spatial correlation)を取り込むために、フィルタ・イントラ(FILTER INTRA)モードと呼ばれる追加のフィルタ・モードが設計されてもよい。これらのモードでは、ブロック外サンプルに加えてブロック内で予測されたサンプルは、ブロック内の何らかのパッチに対するイントラ予測参照サンプルとして使用されることが可能である。これらのモードは、例えば、事前に定義され、少なくともルマ・ブロック(又はルマ・ブロックのみ)に対するイントラ予測に利用できるようにすることができる。予め定義された数(例えば、5つ)のフィルタ・イントラ・モードが予め設計されていてもよく、各々は、例えば、4x2パッチ及びそれに隣接するn個の近辺のサンプル間の相関を反映するnタップ・フィルタ(例えば、7タップ・フィルタ)のセットによって表現される。換言すれば、nタップ・フィルタの重み付け係数は、位置依存性であってもよい。図11に示されるように、8x8ブロック、4x2パッチ、及び7タップ・フィルタリングを例にとると、8x8ブロック1102は、8つの4x2パッチに分割されることが可能である。これらのパッチは、B0,B1,B1,B3,B4,B5,B6,及びB7により、図11で示されている。各パッチに関し、図11においてR0~R7で示されている、パッチの7つの近辺(neighbors)は、現在のパッチ内のサンプルを予測するために使用されてもよい。パッチB0の場合、全ての近辺は、既に再構築されている可能性がある。しかしながら、他のパッチの場合、近辺のうちの幾つかは現在のブロック内にあり、従って再構築されていない可能性があり、従って直ぐ近くの近辺の予測値が参照として使用される。例えば、図11に示されているように、パッチB7の近辺は全ては再構成されておらず、従って、近辺のうちの予測サンプル、例えば、B4,B5,及び/又はB6の一部分が代わりに使用される。
【0098】
[0117] イントラ予測の幾つかの実施において、1つの色成分は、1つ以上の他の色成分を用いて予測されることが可能である。色成分は、YCrCb、RGB、XYZ色空間などにおける成分のうちの任意のものである可能性がある。例えば、ルマ成分(例えば、ルマ参照サンプル)からのクロマ成分(例えば、クロマ・ブロック)の予測は、クロマ・フロム・ルマ(Chroma from Luma,CfL)と呼ばれ、これが実装されてもよい。幾つかの例示的な実装では、クロス・カラー予測は、ルマからクロマの方へ許容されるだけである可能性がある。例えば、クロマ・ブロック中のクロマ・サンプルは、同時に再構成されるルマ・サンプルの線形関数としてモデル化されることが可能である。CfL予測は、次のようにして実装されてもよい:
【0099】
【数1】
[0118] ここで、LACはルマ成分のAC寄与度を示し、αは線型モデルのパラメータであり、DCはクロマ成分のDC寄与度を示す。AC成分は、例えば、ブロックの各サンプルについて取得される一方、DC成分は、ブロック全体について取得される。具体的には、再構成されたルマ・サンプルはクロマ解像度にサブサンプリングされることが可能であり、次いで平均ルマ値(ルマのDC)が、各ルマ値から差し引かれて、ルマにおけるAC寄与度を形成することが可能である。次いで、ルマのAC寄与度を、Eq.(1)の線形モードにおいて使用して、クロマ成分のAC値を予測する。クロマAC成分をルマACの寄与度から近似する又は予測するために、デコーダに、スケーリング・パラメータを計算することを要求する代わりに、例えばCfLの実装は、元のクロマ・サンプルに基づいてパラメータαを決定し、それらをビットストリームでシグナリングしてもよい。これは、デコーダの複雑さを低減し、より正確な予測をもたらす。クロマ成分のDC寄与度に関し、これは、幾つかの例示的な実装において、クロマ成分においてイントラDCモードを用いて計算されてもよい。
【0100】
[0119] イントラ予測の説明に戻り、幾つかの例示的な実装では、コーディング・ブロック又は予測ブロックにおけるサンプルの予測は、参照ラインのセットのうちの1つに基づくことが可能である。換言すれば、最も近い近辺のライン(例えば、上述の図1に示されているように、予測ブロックの直ぐ上の近辺のライン又は直ぐ左の近辺のライン)を常に使用するのではなく、複数の参照ラインが、イントラ予測のための選択オプションとして提供されていてもよい。このようなイントラ予測の実装は、多重(又は複数)参照ライン選択(Multiple Reference Line Selection,MRLS)と呼ばれてもよい。これらの実装では、エンコーダは、複数の参照ラインのどの参照ラインが、イントラ予測子を生成するために使用されるかを決定してシグナリングする。デコーダ側では、参照ライン・インデックスを解析した後に、イントラ予測モード(方向性、非方向性、及びその他のイントラ予測モード等)に従って、指定された参照ラインを探すことで、再構成済みの参照サンプルを識別することによって、現在のイントラ予測ブロックのイントラ予測を生成することが可能である。幾つかの実装では、参照ライン・インデックスは、コーディング・ブロック・レベルでシグナリングされてもよく、また、複数の参照ラインのうちの1つのみが、1つのコーディング・ブロックのイントラ予測のために選択されて使用されてもよい。幾つかの例において、複数の参照ラインが、イントラ予測のために一緒に選択される可能性がある。例えば、1つより多い参照ラインが、組み合わられたり、平均化されたり、補間されたり、あるいはウェイトを伴うか又は伴わない何らかの他の方法で予測を生成することができる。一部の実装例では、MRLSはルマ成分に適用されるだけであってもよく、クロマ成分には適用されなくてもよい。
【0101】
[0120] 図12においては、4つの参照ラインMRLSの例が示されている。図12の例に示されるように、イントラ・コーディング・ブロック1202は、4つの水平参照ライン1204,1206,1208及び1210,4つの垂直参照ライン1212,1214,1216及び1218のうちの1つに基づいて予測されることが可能である。これらの参照ラインの中で、1210と1218は、直近の近辺の参照ラインである。参照ラインは、コーディング・ブロックからのそれらの距離に従ってインデックスが付されていてもよい。例えば、参照ライン1210と1218は、ゼロ参照ラインと言及されてもよく、他の参照ラインは非ゼロ参照ラインと言及されてもよい。具体的には、
参照ライン1208と1216は第1の参照ラインとして参照されてもよく;
参照ライン1206と1214は第2の参照ラインとして参照されてもよく;
参照ライン1204と1212は第3の参照ラインとして参照されてもよい。
【0102】
[0121] 幾つかの実施形態では、ビデオ符号化/復号化パフォーマンスを改善するために、イントラ予測サンプルを生成した後に、イントラ予測のためのオフセット・ベースのリファインメント(offset-based refinement for intra prediction,ORIP)が使用されてもよい。ORIPが適用される場合、予測サンプルは、オフセット値を加えることによって精密化される。
【0103】
[0122] 図13に示されるように、参照サンプルに基づいて、イントラ予測(1330)が実行される。参照サンプルは、1つ以上の左参照ライン(1312)及び/又は1つ以上の上参照ライン(1310)からのサンプルを含む可能性がある。イントラ予測のためのオフセット・ベースのリファインメント(ORIP)は、近辺の参照サンプルを用いてオフセット値を生成することができる。幾つかの実装では、ORIPのための近辺の参照サンプルは、イントラ予測のための参照サンプルと同じセットであってもよい。幾つかの他の実装では、ORIPのための近辺の参照サンプルは、イントラ予測のための参照サンプルと異なるように設定されてもよい。
【0104】
[0123] 図14A及び図14Bに関連する幾つかの実装において、ORIPは、4x4サブ・ブロック・レベルで実行されてもよい。各々の4x4サブ・ブロック(1471,1472,1473,及び/又は1474)について、オフセットは、その近辺のサンプルから生成される。例えば、第1のサブ・ブロック(1471)の場合、オフセットは、その上の近辺のサンプル(1420におけるP1,P2,P3,及びP4)、左の近辺のサンプル(1410におけるP5,P6,P7,及びP8)、及び/又は左上の近辺のサンプル(P0)(1401)から生成される。幾つかの実装において、上の近辺のサンプルは、上の近辺のサンプル(1420におけるP1,P2,P3,及びP4)と、左上の近辺のサンプル(P0)(1401)の両方を含んでもよい。幾つかの他の実装において、左の近辺のサンプルは、左の近辺のサンプル(1410におけるP5,P6,P7,及びP8)と、左上の近辺のサンプル(P0)(1401)の両方を含んでもよい。
【0105】
[0124] 第1のサブ・ブロック(1471)は、4x4ピクセルを含み、4x4ピクセルのうちの各ピクセルは、リファインメント前のN番目までの近辺の予測サンプルであるpredNに対応し、例えば、pred0,pred1,pred2,..., pred16である。
【0106】
[0125] 様々な実施形態において、所与のサブ・ブロックの各ピクセルのオフセット値は、数式に従って近辺のサンプルに基づいて計算されることが可能である。数式は、予め定義されている数式、又は、コーディングされたビットストリームでコーディングされたパラメータによって指定される数式であってもよい。
【0107】
[0126] 図14Bに関連する幾つかの実装において、所与のサブ・ブロックのk番目の位置のオフセット値(offset(k))は、以下のようにして生成されてもよい:
【0108】
【数2】
[0127] Wknは、オフセット計算のための事前に定義されたウェイトである。Pnは、近辺のサンプルの値(e.g.,P0,P1,P2,...,P8)である。predkは、イントラ予測又は他の予測(例えば、インター予測)の適用後のピクセルに対する予測される値である。pred_refinedkは、ORIPの適用後のピクセルに対する精密化された値である。clip3()は、clip3数学関数である。nは、両端を含む0から8までの整数である。kは、両端を含む0から15までの整数である。
【0109】
[0128] 幾つかの実装において、Wknは、事前に定義されてもよく、また、テーブル1に従って得られてもよい。
【0110】
テーブル1:オフセット計算のために事前に定義されているウェイト
【0111】
【数3】
[0129] 幾つかの他の実装において、サブ・ブロック・ベースのORIPは、事前に定義されたイントラ予測モードのセットに対してのみ適用されてもよく、及び/又はイントラ予測モードに依存してルマ及びクロマに対して異なっていてもよい。テーブル2は、種々のイントラ予測モード、及びルマ又はクロマ・チャネルの何れか、によるサブ・ブロック・ベースのORIPの一実装例を示す。ルマ・チャネルを一例として使用すると:予測モードがDC又はSMOOTHの何れかである場合、ORIPは常にONであり、追加のシグナリングは必要とされず;予測モードがHOR/VERであり、angle_deltaが0に等しい場合、ORIPのイネーブル/ディセーブルのために、ブロック・レベルのシグナリングが必要とされ;及び/又はイントラ予測モードが他のモードである場合、ORIPは常にOFFであり、追加のシグナリングは必要とされない。
【0112】
テーブル2:提案方法のモード依存ON/OFF
【0113】
【数4】
[0130] 第2の4x4サブ・ブロック(1473)の説明に戻ると、第1の4x4サブ・ブロック(1471)との相対的な位置に起因して、第2のサブ・ブロックの上の近辺のサンプルは、第1のサブ・ブロックの幾つかのピクセルである可能性があり;
第2のサブ・ブロックのP1は第1のサブ・ブロックのpred12である可能性があり、
第2のサブ・ブロックのP2は第1のサブ・ブロックのpred13である可能性があり、
第2のサブ・ブロックのP3は第1のサブ・ブロックのpred14である可能性があり、
第2のサブ・ブロックのP4は第1のサブ・ブロックのpred15である可能性がある。第2のサブ・ブロックの左上の近辺のサンプル(P0)は、第1のサブ・ブロックの左の近辺のサンプル(P8)である可能性がある。
【0114】
[0131] 一部のORIP実装に関連する何らかの課題/問題が存在する可能性がある。例えば、ブロックのルマ成分のイントラ予測モードが、垂直又は水平イントラ予測モードの何れかである場合、3つ異なるオプションが存在する可能性がある:
1)隣接参照ライン(adjacent reference line)を選択し、ORIPをブロックに適用すること;
2)隣接参照ラインを選択し、ORIPをブロックに適用しないこと;及び/又は
3)非隣接参照ライン(non-adjacent reference line)を選択し、ORIPをブロックに適用しないこと。
隣接参照ラインと非隣接参照ラインからの参照サンプルは、通常、類似している可能性があるので、オプション2)とオプション3の間にはある程度の冗長性が存在する可能性があり、その冗長性はビデオ符号化/復号化のパフォーマンスを下げる可能性がある。
【0115】
[0132] 本開示は、ビデオ符号化及び/又は復号化におけるイントラ予測及び多重参照ライン・イントラ予測のためのオフセット・リファインメントに関する種々の実施形態を述べており、これは、上述した課題/問題の少なくとも1つに対処する。
【0116】
[0133] 種々の実施形態において、図15を参照すると、ビデオ復号化におけるイントラ予測及び多重参照ライン・イントラ予測のためのオフセット・リファインメント方法1500が示されており、方法1500は以下のステップの全部又は一部を含む可能性がある:ステップS1510,命令を記憶するメモリ、及びメモリと通信するプロセッサを備えるデバイスが、ブロックに関するコーディングされたビデオ・ビットストリームを受信するステップ;ステップS1520,デバイスが、イントラ予測のためのオフセット・リファインメントがブロックに適用されるかどうかを、ブロックのモード情報に基づいて決定するステップであって、ブロックのモード情報は、ブロックの参照ライン・インデックス、ブロックのイントラ予測モード、及びブロックのサイズのうちの少なくとも1つを含む、ステップ;ステップS1530,イントラ予測のためのオフセット・リファインメントがブロックに適用される決定に応じて、デバイスが、オフセット・リファインメントを実行してブロックのイントラ予測のためのイントラ予測子を生成するステップ。
幾つかの実装において、ステップ1520は、デバイスが、イントラ予測のためのオフセット・リファインメントがブロックに適用されるかどうかを、ブロックのモード情報に基づいて決定するステップを含むことが可能であり、ブロックのモード情報は、ブロックの参照ライン・インデックス、ブロックのイントラ予測モード、又はブロックのサイズのうちの少なくとも1つを含む。
【0117】
[0134] 本開示における種々の実施形態において、ブロックのサイズ(例えば、コーディング・ブロック、予測ブロック、又は変換ブロックであるが、これらに限定されない)は、ブロックの幅又は高さを指す可能性がある。ブロックの幅又は高さは、ピクセル単位の整数であってもよい。
【0118】
[0135] 本開示における様々な実施形態において、ブロックのサイズ(例えば、コーディング・ブロック、予測ブロック、又は変換ブロックであるが、これらに限定されない)は、ブロックのエリア・サイズを指す可能性がある。ブロックのエリア・サイズは、ブロックの幅にブロックの高さを乗算したピクセル単位で計算された整数であってもよい。
【0119】
[0136] 本開示における様々な実施形態において、ブロックのサイズ(例えば、コーディング・ブロック、予測ブロック、又は変換ブロックであるが、これらに限定されない)は、ブロックの幅又は高さの最大値、ブロックの幅又は高さの最小値、又は、ブロックのアスペクト比を指す可能性がある。ブロックのアスペクト比は、ブロックの幅を高さで割ったものとして計算されてもよいし、又はブロックの高さを幅で割ったものとして計算されてもよい。
【0120】
[0137] 本開示において、参照ライン・インデックスは、複数の参照ラインのうちの参照ラインを指定する。様々な実施形態において、ブロックに対して0である参照ライン・インデックスは、ブロックに対する隣接参照ラインを示すことが可能であり、これはブロックに最も近い参照ラインでもある。例えば、図12のブロック(1202)を参照すると、上の参照ライン(1210)は、ブロック(1202)に対して上の隣接する参照ラインであり、これはブロックに最も近い上の参照ラインであり;左の参照ライン(1218)は、ブロック(1202)に対して左に隣接する参照ラインであり、これはブロックに最も近い左の参照ラインでもある。ブロックに対して0より大きい参照ライン・インデックスは、ブロックの非隣接参照ラインを示し、これはブロックに対して最も近くはない参照ライン(non-nearest reference line)である。例えば、図12のブロック(1202)を参照すると、
1である参照ライン・インデックスは、上の参照ライン(1208)及び/又は左の参照ライン(1216)を示すことが可能であり;
2である参照ライン・インデックスは、上の参照ライン(1206)及び/又は左の参照ライン(1214)を示すことが可能であり;及び/又は
3である参照ライン・インデックスは、上の参照ライン(1204)及び/又は左の参照ライン(1212)を示すことが可能である。
【0121】
[0138] ビデオ・コーディング及び/又はデコーディングのための種々の実施形態において、非隣接参照ラインにおいてサンプルからイントラ予測子を生成するために、ブロック(例えば、コーディング・ブロック又はコーディングされたブロック)に対して、方向性イントラ予測モードが選択される場合、イントラ予測のためのオフセット・リファインメント(ORIP)がブロックに適用されるか否かを決定することが可能である。この決定は、ブロックのモード情報に依存する可能性があり、ブロックのモード情報は、参照ライン・インデックス、1つ以上のイントラ予測角度、及び/又はブロックのサイズ(又は)ブロック・サイズ(複数)を含む可能性があるが、これらに限定されない。この決定がブロックのモード情報に基づいて行われる場合、ORIPが適用されるか否かを示すための追加のシグナリングは不要であり、ビデオ符号化/復号可におけるオーバーヘッドを低減し、及び/又はビデオ符号化/復号のパフォーマンスを改善する。種々の実施形態において、イントラ予測のためのオフセット・リファインメント(ORIP)は、イントラ予測のためのオフセット・ベースのリファインメントを指す可能性があり、ORIPは、イントラ予測の一種であって、その予測結果が1つ以上の近辺の参照サンプルに基づいて生成されたオフセット値に従って更に精密化(又は修正)される、イントラ予測の一種である。
【0122】
[0139] ステップ1510を参照すると、デバイスは、図5の電子デバイス(530)又は図8のビデオ・デコーダ(810)であってもよい。幾つかの実装において、デバイスは、図6のエンコーダ(620)内のデコーダ(633)であってもよい。他の実装において、デバイスは、図5の電子デバイス(530)の一部、図8のビデオ・デコーダ(810)の一部、又は図6のエンコーダ(620)の中のデコーダ(633)の一部であってもよい。コーディングされたビデオ・ビットストリームは、図8のコーディングされたビデオ・シーケンス、図6又は図7の中間的なコーディングされたデータであってもよい。ブロックは、コーディング・ブロック又はコーディングされたブロックを指す可能性がある。
【0123】
[0140] ステップ1520を参照すると、デバイスは、イントラ予測のためのオフセット・リファインメントがブロックに適用されるかどうかを、ブロックのモード情報に基づいて決定することが可能であり、ブロックのモード情報は、ブロックの参照ライン・インデックス、ブロックのイントラ予測モード、及びブロックのサイズのうちの少なくとも1つを含む可能性がある。
【0124】
[0141] 様々な実施形態において、ステップ1520は、ブロックの参照ライン・インデックスが所定の閾値より小さく且つブロックのイントラ予測モードが方向性イントラ予測モードに属していることに応じて、イントラ予測のためのオフセット・リファインメントはブロックに適用されると決定するステップ;及び/又はブロックの参照ライン・インデックスが所定の閾値より小さくはなく、又は、ブロックのイントラ予測モードが方向性イントラ予測モードに属していることに応じて、イントラ予測のためのオフセット・リファインメントはブロックに適用されないと決定するステップを含む可能性がある。
【0125】
[0142] 幾つかの実装形態では、一組の方向性イントラ予測モードに対して、参照ライン・インデックスの値が所定の値よりも小さい場合、ORIPが常に適用され;及び/又は参照ライン・インデックスの値が所定の値以上である場合、ORIPは決して適用されない。一例では、この一組の方向性イントラ予測モードは、垂直モードと水平モードを含む。別の例では、この一組の方向イントラ予測モードは、垂直、水平、45度、及び135度の方向性モードを含む。別の例では、所定の値はNであって、1に設定されている。別の例では、Nは2に設定されている。別の例では、Nは0又は3に設定されている。
【0126】
[0143] 様々な実施形態において、ステップ1520は、ブロックの参照ライン・インデックスが偶数であり且つブロックのイントラ予測モードが方向性イントラ予測モードに属していることに応じて、イントラ予測のためのオフセット・リファインメントはブロックに適用されると決定するステップ;及び/又はブロックの参照ライン・インデックスが奇数であり且つブロックのイントラ予測モードが方向性イントラ予測モードに属していることに応じて、イントラ予測のためのオフセット・リファインメントはブロックに適用されないと決定するステップを含む可能性がある。
【0127】
[0144] 幾つかの実装では、方向性イントラ予測モードのあるセットに対して、ORIPが適用されるか否かの決定は、参照ライン・インデックスの値が偶数であるか又は奇数であるかに依存する。一例では、方向性イントラ予測モードのあるセットに対して、参照ライン・インデックスの値が偶数である場合には、ORIPが適用され;参照ライン・インデックスの値が奇数である場合には、ORIPは適用されない。別の例では、方向性イントラ予測モードのあるセットに対して、参照ライン・インデックスの値が奇数である場合には、ORIPが適用され;参照ライン・インデックスの値が偶数である場合には、ORIPは適用されない。別の例では、方向性イントラ予測モードのこのセットは、垂直モードと水平モードを含む。別の例では、方向イントラ予測モードのこのセットは、垂直、水平、45度、及び135度の方向性モードを含む。
【0128】
[0145] 様々な実施形態において、ステップ1520は、ブロックのイントラ予測モードがイントラ予測モードの第1の選択されたセットに属していることに応じて、イントラ予測のためのオフセット・リファインメントはブロックに適用されると決定するステップ;ブロックのイントラ予測モードがイントラ予測モードの第2の選択されたセットに属しており、且つ参照ライン・インデックスが隣接参照ラインを示していることに応じて、イントラ予測のためのオフセット・リファインメントはブロックに適用されると決定するステップ;及び/又はブロックのイントラ予測モードがイントラ予測モードの第2の選択されたセットに属しており、且つ参照ライン・インデックスが非隣接参照ラインを示していることに応じて、イントラ予測のためのオフセット・リファインメントはブロックに適用されないと決定するステップを含む可能性がある。幾つかの実装において、イントラ予測モードの第1の選択されたセットは、イントラ予測モードの第2の選択されたセットとオーバーラップしていない。幾つかの他の実装では、イントラ予測モードの第1の選択されたセットは、対角線イントラ予測モードを含む可能性がある。
【0129】
[0146] 幾つかの実装では、イントラ予測モードの選択されたセットに対して、ORIPは、隣接及び非隣接参照ラインの両方に適用されるが、イントラ予測モードの残りのセットに対しては、ORIPは、隣接参照ラインにのみ適用される。一例において、イントラ予測が、整数サンプルのみを使用することによって適用される場合、例えば対角(45/225度)イントラ予測モードの場合、ORIPは非隣接参照ラインにも適用される可能性があり;及び/又は、イントラ予測が整数サンプルを使用しない場合、ORIPは隣接参照ラインにのみ適用される。
【0130】
[0147] 様々な実施形態において、ステップ1520は、ブロックのイントラ予測モードが方向性イントラ予測モードに属しており、且つブロックの参照ライン・インデックスが非隣接参照ラインを示していることに応じて、イントラ予測のためのオフセット・リファレインメントはブロックに適用されると決定するステップを含む可能性がある。
【0131】
[0148] 幾つかの実装では、ステップ1520は、エントロピー復号化の際に、ブロックのモード情報を、イントラ予測のためのオフセット・リファインメントに関するパラメータのコンテキストとして使用するステップを更に含む可能性がある。
【0132】
[0149] 幾つかの他の実装では、方向性イントラ予測モードがブロックに対して選択され、非隣接参照ラインにおけるサンプルからイントラ予測子を生成する場合、ORIPは依然として適用可能であってもよく、及び/又はORIPは、ブロックのモード情報の値にかかわらず、コーディングされたビットストリーム中のパラメータ(例えば、ORIPフラグ又はORIPインデックス)によってシグナリングされてもよい。
【0133】
[0150] 幾つかの他の実装では、ビデオ符号化の際に、ORIPが適用されるかどうか、及びどのように適用されるかを示すORIPパラメータ(例えば、フラグ/インデックス)のエントロピー・コーディングに使用されるコンテキストは、現在のブロックのモード情報に依存する。幾つかの実装では、現在のブロックの他のモードが適用されるかどうか、及びどのように適用されるかを示すシンタックス値のエントロピー・コーディングのコンテキストは、ORIPがブロックに適用されるかどうか、及びどのように適用されるかを示すORIPフラグ/インデックスに依存する。現在のブロックの他のモードのシンタックスの具体例は、参照ライン・インデックス、1つ以上のイントラ予測角度、及び/又はブロックのサイズを含むが、これらに限定されない。
【0134】
[0151] ステップ1530を参照すると、イントラ予測のためのオフセット・リファインメントがブロックに適用される決定に応じて、デバイスは、イントラ予測のためのオフセット・リファインメントをブロックに対して実行する。幾つかの実装では、ブロックは4x4ブロックであるか又は複数の4x4ブロックを含み、イントラ予測のためのオフセット・リファインメントは、所定の方法に従って、例えばEq.(2)及びEq.(3)を用いて上述した方法に従って、ブロックに対して実行される。
【0135】
[0152] 様々な実施形態において、ステップ1530は、ブロックの参照ライン・インデックスにより指定される非隣接参照ラインから予測子を決定するステップ;予測子に基づくイントラ予測に従ってブロックの予測値を決定するステップ;及び/又は隣接参照ラインからのサンプルに基づいて、イントラ予測のためのオフセット・リファインメントに従って予測値を修正するステップを含む可能性がある。幾つかの実装では、非隣接参照ライン及び隣接参照ラインは2つの側からのものであり;2つの側は上側と左側を含む。
【0136】
[0153] 幾つかの実装では、ORIPが適用されると、非隣接参照ラインにおけるサンプルからイントラ予測子を生成するために、予測子(例えば、予測子A)は、MRLSによって選択された非隣接参照ラインにおけるサンプルから生成され、次いで、ORIPは、隣接参照ラインからのサンプルを使用することによって、予測子Aからの予測値を更に修正する。
【0137】
[0154] 幾つかの他の実装では、予測子Aを生成し、予測子Aから(又は、それに基づいて)予測子の値を更に修正するために使用される参照サンプルは、近辺の参照サンプルの異なる側からのものである。近辺の参照サンプルの側の具体例は、上の参照サンプルと左の参照サンプルを含むが、これらに限定されない。一例では、1つ以上の上の参照サンプルが、予測子Aを生成するために使用され、1つ以上の左の参照サンプルが、予測子Aから(又はそれに基づいて)予測子の値を修正するために使用される。別の例では、1つ以上の左の参照サンプルが、予測子Aを生成するために使用され、1つ以上の上の参照サンプルが、予測子Aから(又はそれに基づいて)予測子の値を修正するために使用される。
【0138】
[0155] 様々な実施形態において、ステップ1530は、ブロックの参照ライン・インデックスにより指定される非隣接参照ラインから予測子を決定するステップ;予測子に基づくイントラ予測に従ってブロックの予測値を決定するステップ;及び/又は複数の参照ラインからの複数のサンプルに基づいて、イントラ予測のためのオフセット・リファインメントに従って予測値を修正するステップを含む可能性がある。
【0139】
[0156] 幾つかの実装において、ステップ1530は、線形加重平均を用いて、複数のサンプル及び対応するウェイトに基づいてサンプルを取得するステップを更に含む可能性があり、対応するウェイトはサンプルの相対的な位置に応じて予め決定されている。
【0140】
[0157] 幾つかの他の実装において、ORIPが適用される場合に、非隣接参照ラインにおけるサンプルからイントラ予測子を生成するために、予測サンプルは、複数の(1つより多い)参照ラインからのサンプルを用いてORIPによって精密化される。一例では、ORIPは、複数の参照ラインからのサンプルの線形加重和を使用して生成される。ウェイトは、サンプルの相対的な位置に応じて予め決定されている。
【0141】
[0158] 本開示の実施形態は、別々に又は任意の順序で組み合わせて使用されてもよい。更に、各方法(又は実施形態)、エンコーダ、及びデコーダは、処理回路(例えば、1つ以上のプロセッサ、又は1つ以上の集積回路)によって実現されてもよい。一例では、1つ以上のプロセッサは、非一時的なコンピュータ読み取り可能な媒体に記憶されたプログラムを実行する。本開示の実施形態は、ルマ・ブロック又はクロマ・ブロックに適用される可能性があり;クロマ・ブロックでは、実施形態は、2つ以上の色成分に別々に適用されてもよいし、又は2つ以上の色成分に一緒に適用されてもよい。
【0142】
[0159] 本開示において、様々な実施形態における任意のステップ又は処理は、望まれるように任意の量又は任意の順序で組み合わされる可能性がある。本開示において、様々な実施形態における2つ以上のステップ又は処理は、並行して実行されてもよい。
【0143】
[0160] 上述した技術は、コンピュータ読み取り可能な命令を用いてコンピュータ・ソフトウェアとして実装することが可能であり、1つ以上のコンピュータ読み取り可能な媒体に物理的に記憶することが可能である。例えば、図16は、開示される対象事項の特定の実施形態を実現するのに適したコンピュータ・システム(2600)を示す。
【0144】
[0161] コンピュータ・ソフトウェアは、アセンブリ、コンパイル、リンク、又は類似のメカニズムの対象となり得る任意の適切なマシン・コード又はコンピュータ言語を使用してコーディングされて、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)等によって、直接的に実行されることが可能な命令、又は解釈やマイクロコード実行などを経由する命令、を含むコードを作成することが可能である。
【0145】
[0162] 命令は、例えば、パーソナル・コンピュータ、タブレット・コンピュータ、サーバー、スマートフォン、ゲーミング・デバイス、モノのインターネット・デバイス等を含む、種々のタイプのコンピュータ又はそれらのコンポーネント上で実行されることが可能である。
【0146】
[0163] コンピュータ・システム(2600)に関して図16に示されるコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実現するコンピュータ・ソフトウェアの使用範囲又は機能性に関する如何なる制限も示唆するようには意図されていない。また、コンポーネントの構成は、コンピュータ・システム(2600)の例示的な実施形態に示されたコンポーネントの任意の1つ又は組み合わせに関する何らかの従属性や要件を有するものとして解釈されてはならない。
【0147】
[0164] コンピュータ・システム(2600)は、特定のヒューマン・インターフェース入力デバイスを含むことが可能である。このようなヒューマン・インターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データ・グローブの動き)、聴覚的な入力(例えば、声、拍手)、視覚的な入力(例えば、ジェスチャ)、嗅覚的な入力(図示されていない)を介して、1人以上の人間ユーザーによる入力に応答することが可能である。また、ヒューマン・インターフェース・デバイスは、オーディオ(例えば、会話、音楽、周囲音)、画像(例えば、スキャンされた画像、静止画像カメラから得られる写真画像)、ビデオ(例えば、2次元ビデオ、ステレオスコピック・ピクチャを含む3次元ビデオ)のような、人間による意識的な入力に必ずしも直接的に関係しない特定のメディアを捕捉するために使用することも可能である。
【0148】
[0165] 入力ヒューマン・インターフェース・デバイスは、キーボード(2601)、マウス(2602)、トラックパッド(2603)、タッチ・スクリーン(2610)、データ・グローブ(不図示)、ジョイスティック(2605)、マイクロホン(2606)、スキャナ(2607)、カメラ(2608)のうちの(描かれているものはそれぞれ唯1つであるが)1つ以上を含む可能性がある。
【0149】
[0166] コンピュータ・システム(2600)は、特定のヒューマン・インターフェース出力デバイスを含むことも可能である。このようなヒューマン・インターフェース出力デバイスは、例えば、触覚出力、音、光、及び嗅覚/味覚を通じて、1人以上の人間ユーザーの感覚を刺激することが可能である。このようなヒューマン・インターフェース出力デバイスは、触覚出力デバイス(例えば、タッチ・スクリーン(2610)、データ・グローブ(不図示)、ジョイスティック(2605)による触覚フィードバックであるが、入力として役立たない触覚フィードバック・デバイスが存在する可能性もある)、聴覚的な出力デバイス(例えば、スピーカー(2609)、ヘッドフォン(不図示せず))、視覚的な出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマ・スクリーン、OLEDスクリーンを含むスクリーン(2610)であり、各々はタッチ・スクリーン入力機能を備えるか又は備えておらず、各々は触覚フィードバック機能を備えるか又は備えておらず、それらのうちの幾つかは、二次元的な視覚的な出力、立体出力のような手段による三次元以上の出力を出力することが可能であってもよい;仮想現実メガネ(図示せず)、ホログラフィック・ディスプレイ、及びスモーク・タンク(図示せず))、及びプリンタ(図示せず)を含むことが可能である。
【0150】
[0167] コンピュータ・システム(2600)はまた、CD/DVD等の媒体(2621)を使うCD/DVD ROM/RW(2620)を含む光媒体、サム・ドライブ(2622)、リムーバブル・ハード・ドライブ又はソリッド・ステート・ドライブ(2623)、テープ及びフロッピー・ディスク(図示せず)等のレガシー磁気媒体(不図示)、セキュリティ・ドングル(不図示)等の特殊化されたROM/ASIC/PLDベースのデバイスのような、人間がアクセス可能な記憶デバイス及びそれらに関連する媒体を含むことも可能である。
【0151】
[0168] 当業者は、ここに開示される対象事項に関連して使用される用語「コンピュータ読み取り可能な媒体」は、伝送媒体、搬送波、又はその他の過渡的な信号を包含しない、ということも理解するはずである。
【0152】
[0169] コンピュータ・システム(2600)は、1つ以上の通信ネットワーク(2655)へのネットワーク・インターフェース(2654)を含むことも可能である。ネットワークは、例えば、無線、有線、光であるとすることが可能である。ネットワークは、更に、ローカル、ワイド・エリア、メトロポリタン、車両及びインダストリアル、リアルタイム、遅延耐性などであるとすることが可能である。ネットワークの例は、イーサーネット、無線LAN、セルラー・ネットワーク(GSM、3G、4G、5G、LTE等を含む)、TVの有線又は無線ワイド・エリア・デジタル・ネットワーク(ケーブルTV、衛星TV、及び地上放送TVを含む)、CANBusを含む車両及びインダストリアルなどを含む。特定のネットワークは、一般に、特定の汎用データ・ポート又は周辺バス(2649)に取り付けられる外部ネットワーク・インターフェース・アダプタを必要とする(例えば、コンピュータ・システム(2600)のUSBポート);その他は、一般に、以下に説明するようなシステム・バスに取り付けることによって、コンピュータ・システム(2600)のコアに統合される(例えば、イーサーネット・インターフェースはPCコンピュータ・システム内に、セルラー・ネットワーク・インターフェースはスマートフォン・コンピュータ・システム内に統合される)。これらのうちの任意のネットワークを使用して、コンピュータ・システム(2600)は、他のエンティティと通信することが可能である。このような通信は、片-方向受信専用(例えば、放送テレビ)、片-方向送信専用(例えば、特定のCANbusデバイスに対するCANbus)、又は双-方向、例えばローカル又はワイド・エリア・デジタル・ネットワークを使用する他のコンピュータ・システムに対するものであるとすることが可能である。特定のプロトコル及びプロトコル・スタックは、上述のように、それらのネットワーク及びネットワーク・インターフェースの各々で使用されることが可能である。
【0153】
[0170] 前述のヒューマン・インターフェース・デバイス、ヒューマン・アクセシブル・ストレージ・デバイス、及びネットワーク・インターフェースは、コンピュータ・システム(2600)のコア(2640)に取り付けられることが可能である。
【0154】
[0171] コア(2640)は、1つ以上の中央処理ユニット(CPU)(2641)、グラフィックス処理ユニット(GPU)(2642)、フィールド・プログラマブル・ゲート・アレイ(FPGA)(2643)の形式における特殊プログラマブル処理デバイス、特定のタスク用のハードウェア・アクセラレータ(2644)、グラフィックス・アダプタ(2650)等を含むことが可能である。これらのデバイスは、リード・オンリ・メモリ(ROM)(2645)、ランダム・アクセス・メモリ(2646)、内部大容量ストレージ・デバイス(例えば、内的な非ユーザー・アクセシブル・ハード・ドライブ、SSD等)(2647)と共に、システム・バス(2648)を介して接続されることが可能である。幾つかのコンピュータ・システムでは、システム・バス(2648)は、追加のCPU、GPU等による拡張を可能にするために、1つ以上の物理的プラグの形態でアクセス可能である可能性がある。周辺デバイスは、コアのシステム・バス(2648)に直接取り付けられるか、又は周辺バス(2649)を介して取り付けられることが可能である。一例では、スクリーン(2610)はグラフィックス・アダプタ(2650)に接続されることが可能である。周辺バスのアーキテクチャは、PCI、USB等を含む。
【0155】
[0172] CPU(2641)、GPU(2642)、FPGA(2643)、及びアクセラレータ(2644)は、組み合わされて、前述のコンピュータ・コードを構成することが可能な特定の命令を実行することが可能である。コンピュータ・コードは、ROM(2645)又はRAM(2646)に格納されることが可能である。一時的なデータはRAM(2646)に格納されることが可能である一方、永続的なデータは例えば内的な大容量ストレージ(2647)に格納されることが可能である。任意のメモリ・デバイスに対する高速な記憶及び検索は、キャッシュ・メモリを利用することで可能になる可能性があり、キャッシュ・メモリは、1つ以上のCPU(2641)、GPU(2642)、大容量ストレージ(2647)、ROM(2645)、RAM(2646)等と密接に関連付けることが可能である。
【0156】
[0173] コンピュータ読み取り可能な媒体は、様々なコンピュータ実装動作を実行するためのコンピュータ・コードをそこに有することが可能である。媒体及びコンピュータ・コードは、本開示の目的のために特別に設計及び構築されたものであるとすることが可能であり、又はそれらは、コンピュータ・ソフトウェアの分野における当業者にとって周知であり且つ入手可能な種類のものであるとすることが可能である。
【0157】
[0174] 非限定的な例として、アーキテクチャ(2600)、具体的にはコア(2640)を有するコンピュータ・システムは、プロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として、1つ以上の有形のコンピュータ読み取り可能な媒体に具現化されたソフトウェアを実行する機能を提供することが可能である。そのようなコンピュータ読み取り可能な媒体は、コア内部の大容量ストレージ(2647)又はROM(2645)のような非一時的な性質のコア(2640)の特定のストレージと同様に、上述したようなユーザー・アクセシブル大容量ストレージに関連するメディアであるとすることが可能である。本開示の様々な実施形態を実現するソフトウェアは、そのようなデバイスに記憶され、コア(2640)によって実行されることが可能である。コンピュータ読み取り可能な媒体は、特定のニーズに応じて、1つ以上のメモリ・デバイス又はチップを含むことが可能である。ソフトウェアは、RAM(2646)に記憶されたデータ構造を定めること、及びソフトウェアによって定められたプロセスに従ってそのようなデータ構造を修正することを含む、本願で説明された特定のプロセス又は特定のプロセスの特定の部分を、コア(2640)、具体的にはその中のプロセッサ(CPU、GPU、FPGA等を含む)に実行させることが可能である。更に又は代替として、コンピュータ・システムは、回路(例えば、アクセラレータ(2644))内に配線された又は他の方法で具現化されたロジックの結果として機能を提供することが可能であり、その回路は、本願で説明された特定のプロセス又は特定のプロセスの特定の部分を実行することを、ソフトウェアの代わりに又はそれと共に実行することが可能である。ソフトウェアに対する言及はロジックを含み、必要に応じて、その逆も可能である。コンピュータ読み取り可能な媒体に対する言及は、実行のためのソフトウェアを記憶する(集積回路(IC)のような)回路、実行のためのロジックを具体化する回路、又は適切な場合にはその両方を包含することが可能である。本開示はハードウェア及びソフトウェアの適切な任意の組み合わせを包含する。
【0158】
[0175] 特定の発明が例示的な実施形態に関連して述べられているが、その記述は限定であるようには意図されていない。本発明の例示的な実施形態及び追加の実施形態の種々の修正が、本説明から当業者には明らかであろう。当業者は、本発明の精神及び範囲から逸脱することなく、本件で例示及び説明されている例示的な実施形態に、これら及び種々の他の修正が施される可能性があることを容易に認めるであろう。従って、添付のクレームは任意のそのような修正及び代替の実施形態をカバーするであろう、ということが想定されている。図中の特定の比率は誇張されている可能性がある一方、他の比率は最小限にされている可能性がある。従って、本開示及び図面は、限定的ではなく例示的であると解釈されることになる。

図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14A
図14B
図15
図16
【外国語明細書】