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

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

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

特表2024-542334適応可能動きベクトル差分解像度に用いられる補間フィルタ
<>
  • 特表-適応可能動きベクトル差分解像度に用いられる補間フィルタ 図1A
  • 特表-適応可能動きベクトル差分解像度に用いられる補間フィルタ 図1B
  • 特表-適応可能動きベクトル差分解像度に用いられる補間フィルタ 図2
  • 特表-適応可能動きベクトル差分解像度に用いられる補間フィルタ 図3
  • 特表-適応可能動きベクトル差分解像度に用いられる補間フィルタ 図4
  • 特表-適応可能動きベクトル差分解像度に用いられる補間フィルタ 図5
  • 特表-適応可能動きベクトル差分解像度に用いられる補間フィルタ 図6
  • 特表-適応可能動きベクトル差分解像度に用いられる補間フィルタ 図7
  • 特表-適応可能動きベクトル差分解像度に用いられる補間フィルタ 図8
  • 特表-適応可能動きベクトル差分解像度に用いられる補間フィルタ 図9
  • 特表-適応可能動きベクトル差分解像度に用いられる補間フィルタ 図10
  • 特表-適応可能動きベクトル差分解像度に用いられる補間フィルタ 図11
  • 特表-適応可能動きベクトル差分解像度に用いられる補間フィルタ 図12
  • 特表-適応可能動きベクトル差分解像度に用いられる補間フィルタ 図13
  • 特表-適応可能動きベクトル差分解像度に用いられる補間フィルタ 図14
  • 特表-適応可能動きベクトル差分解像度に用いられる補間フィルタ 図15
  • 特表-適応可能動きベクトル差分解像度に用いられる補間フィルタ 図16
  • 特表-適応可能動きベクトル差分解像度に用いられる補間フィルタ 図17
  • 特表-適応可能動きベクトル差分解像度に用いられる補間フィルタ 図18
  • 特表-適応可能動きベクトル差分解像度に用いられる補間フィルタ 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-15
(54)【発明の名称】適応可能動きベクトル差分解像度に用いられる補間フィルタ
(51)【国際特許分類】
   H04N 19/117 20140101AFI20241108BHJP
   H04N 19/176 20140101ALI20241108BHJP
   H04N 19/52 20140101ALI20241108BHJP
   H04N 19/139 20140101ALI20241108BHJP
   H04N 19/70 20140101ALI20241108BHJP
   H04N 19/91 20140101ALI20241108BHJP
【FI】
H04N19/117
H04N19/176
H04N19/52
H04N19/139
H04N19/70
H04N19/91
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023555810
(86)(22)【出願日】2022-10-07
(85)【翻訳文提出日】2023-09-12
(86)【国際出願番号】 US2022046011
(87)【国際公開番号】W WO2023107187
(87)【国際公開日】2023-06-15
(31)【優先権主張番号】63/286,327
(32)【優先日】2021-12-06
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/956,559
(32)【優先日】2022-09-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】リアン・ジャオ
(72)【発明者】
【氏名】シン・ジャオ
(72)【発明者】
【氏名】シャン・リュウ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA05
5C159ME11
5C159NN11
5C159NN14
5C159NN21
5C159RC16
5C159RC38
5C159TA59
5C159TA69
5C159TB08
5C159TC12
5C159TD12
5C159UA02
5C159UA05
5C159UA11
(57)【要約】
本開示は概して映像符号化に関し、特に、動きベクトル大きさ及び/又は動きベクトル画素解像度に基づいてインタ予測ブロックを生成するために用いられる補間フィルタを選択する方法及びシステムに関する。たとえば、映像ストリームの映像ブロックを処理する方法が開示される。本方法は、映像ストリームからフラグを受け取るステップと、受け取ったフラグに基づいて、動きベクトル(MV)に従って参照フレームによって映像ブロックがインタ予測される予定であると決定するステップと、映像ブロックのMVD(MV差分)と参照MVとからMVを導出するステップと、補間フィルタを示す信号を得るステップであって、信号は少なくともMVDの解像度及び大きさの一方に基づく、ステップと、信号に応じて補間フィルタを選択するステップと、MVと選択された補間フィルタとに従って参照フレームから映像ブロックのインタ予測を実行するステップとを含んでもよい。
【特許請求の範囲】
【請求項1】
映像ストリームの映像ブロックを処理する方法であって、
前記映像ストリームからフラグを受け取るステップと、
前記受け取ったフラグに基づいて、動きベクトル(MV)に従って参照フレームによって前記映像ブロックがインタ予測される予定であると決定するステップと、
前記映像ブロックのMVD(MV差分)と参照MVとから前記MVを導出するステップと、
補間フィルタを示す信号を得るステップであって、前記信号は少なくとも前記MVDの解像度及び大きさの一方に基づく、ステップと、
前記信号に応じて前記補間フィルタを選択するステップと、
前記MVと前記選択された補間フィルタとに従って前記参照フレームから前記映像ブロックのインタ予測を実行するステップと
を備える、方法。
【請求項2】
前記信号を得るステップは、
前記映像ブロックに関連するMVクラスインデックスに基づいて前記MVDの前記大きさを決定するステップであって、前記MVクラスインデックスは前記映像ストリームから抽出される、ステップと、
前記MVクラスインデックスが閾値MVクラスインデックス未満ではない場合にデフォルトの既定の補間フィルタに設定するための前記信号を得るステップと
を備える、請求項1に記載の方法。
【請求項3】
前記既定の補間フィルタは、前記閾値MVクラスインデックス未満のMVクラスインデックスを持つ映像ブロックに用いられる候補補間フィルタのプールを形成する複数の補間フィルタのうちの補間フィルタである、請求項2に記載の方法。
【請求項4】
前記既定の補間フィルタはREGULAR、SMOOTH、SHARP又はBILINEAR補間フィルタを含む、請求項2に記載の方法。
【請求項5】
前記信号を得るステップは、
前記MVDに適応可能画素解像度が適用されると決定するステップと、
複数の適応可能MVD画素解像度から前記MVDの画素解像度を決定するステップと、
前記MVDの前記画素解像度が1つ以上の既定のレベルにあることに応じてデフォルトの既定の補間フィルタに設定するための前記信号を得るステップと
を備える、請求項1に記載の方法。
【請求項6】
前記1つ以上の既定のレベルは既定のMVD画素解像度閾値を超えないMVD解像度レベルを含む、請求項5に記載の方法。
【請求項7】
前記MVDの前記画素解像度は前記映像ストリームから抽出される前記映像ブロックのMVクラスインデックスに基づいて決定される、請求項6に記載の方法。
【請求項8】
前記既定のMVD画素解像度閾値はMVクラスインデックス閾値に対応する、請求項7に記載の方法。
【請求項9】
前記既定の補間フィルタは前記1つ以上の既定のレベルではない適応可能MVD画素解像度を持つ映像ブロックに用いられる候補補間フィルタのプールを形成する複数の補間フィルタのうちの補間フィルタである、請求項5に記載の方法。
【請求項10】
前記既定の補間フィルタはREGULAR、SMOOTH、SHARP又はBILINEAR補間フィルタの1つを含む、請求項5に記載の方法。
【請求項11】
前記信号を得るステップは、
前記映像ストリームから前記MVDの前記大きさに対応するMVクラスインデックスを決定するステップと、
前記MVの前記MVクラスインデックスが既定のMVクラスインデックス閾値未満ではない場合に補間フィルタの集合のうちの既定の補間フィルタのデフォルトのサブセットに設定するステップと、
既定の補間フィルタの前記サブセットから前記補間フィルタを選択するための前記信号としての選択インジケータを前記映像ストリームから抽出するステップと
を備える、請求項1から10のいずれか一項に記載の方法。
【請求項12】
既定の補間フィルタの前記サブセットはREGULAR補間フィルタとSMOOTH補間フィルタとを含む、請求項11に記載の方法。
【請求項13】
前記信号を得るステップは、
前記MVDに適応可能画素解像度が適用されると決定するステップと、
複数の適応可能MVD画素解像度から前記MVDの画素解像度を決定するステップと、
前記MVDの前記画素解像度が既定のMVD画素解像度閾値を超えないことに応じて補間フィルタの集合のうちの既定の補間フィルタのデフォルトのサブセットに設定するステップと、
既定の補間フィルタの前記サブセットから前記補間フィルタを選択するための前記信号としての選択インジケータを前記映像ストリームから抽出するステップと
を備える、請求項1から10のいずれか一項に記載の方法。
【請求項14】
既定の補間フィルタの前記サブセットはREGULAR補間フィルタとSMOOTH補間フィルタとを含む、請求項13に記載の方法。
【請求項15】
前記信号を得るステップは、
前記映像ブロックの前記MVDに適応可能画素解像度が適用されると決定するステップと、
複数の適応可能MVD画素解像度から前記MVDの画素解像度を決定するか、複数のMVクラスインデックスから前記MVのMVクラスインデックスを決定するステップと、
前記MVDの前記画素解像度又は前記MVクラスインデックスに基づいて補間フィルタ選択インジケータを符号化するためのコンテキストの集合を特定するステップと、
コンテキストの前記集合に従って前記映像ストリームを復号して前記補間フィルタ選択インジケータを前記信号として取得するステップと
を備える、請求項1から10のいずれか一項に記載の方法。
【請求項16】
前記信号を得るステップは、
前記MVDに適応可能画素解像度が適用されると決定するステップと、
複数のMVクラスインデックスから前記映像ブロックのMVクラスインデックスを決定するステップと、
前記MVクラスインデックスが閾値MVクラスインデックス未満ではない場合にコンテキストの第1の集合を用いて前記映像ストリームを復号して補間フィルタ選択インジケータを前記信号として取得するステップと、
前記MVクラスインデックスが前記閾値MVクラスインデックス未満である場合にコンテキストの前記第1の集合とは異なるコンテキストの第2の集合を用いて前記映像ストリームを復号して前記補間フィルタ選択インジケータを前記信号として取得するステップと
を備える、請求項1から10のいずれか一項に記載の方法。
【請求項17】
前記信号を得るステップは、前記MVDのMVD画素解像度が端数ではない画素解像度であるとの決定に応じてデフォルトの前記補間フィルタに設定するための前記信号を得るステップを備える、請求項1から10のいずれか一項に記載の方法。
【請求項18】
前記信号を得るステップは、
前記MVDのMVD画素解像度が端数ではない画素解像度であるとの決定に応じて補間フィルタの集合のうちの既定の補間フィルタのデフォルトのサブセットに設定するステップと、
既定の補間フィルタの前記サブセットから前記補間フィルタを選択するための前記信号としての選択インジケータを前記映像ストリームから抽出するステップと
を備える、請求項1から10のいずれか一項に記載の方法。
【請求項19】
既定の補間フィルタの前記サブセットはREGULAR補間フィルタとSMOOTH補間フィルタとを含む、請求項18に記載の方法。
【請求項20】
メモリバッファと処理回路とを備える、映像ストリームの映像ブロックを処理するデバイスであって、前記処理回路は、
前記映像ストリームからフラグを受け取り、前記映像ストリームを前記メモリバッファに記憶し、
前記受け取ったフラグに基づいて、動きベクトル(MV)に従って参照フレームによって前記映像ブロックがインタ予測される予定であると決定し、
前記映像ブロックのMVD(MV差分)と参照MVとから前記MVを導出し、
少なくとも前記MVDの解像度及び大きさの一方に基づく、補間フィルタを示す信号を得て、
前記信号に応じて前記補間フィルタを選択し、
前記MVと前記選択された補間フィルタとに従って前記参照フレームから前記映像ブロックのインタ予測を実行する
ように構成される、デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
参照による援用
本出願は2022年9月29日に出願された米国非仮特許出願第17/956,559号に基づいており、この米国非仮特許出願の優先権の利益を主張し、この米国非仮特許出願は2021年12月6日に出願された米国仮特許出願第63/286,327号に基づいており、この米国仮特許出願の優先権を主張する(当該米国非仮特許出及び米国仮特許出願の両方の名称が“Interpolation Filters for Adaptive Motion Vector Difference Resolution”である)。当該先の特許出願の全体が参照により本明細書に援用される。
【0002】
本開示は概して映像符号化に関し、特に、動きベクトル大きさ及び/又は動きベクトル画素解像度に基づいてインタ予測ブロックを生成するために用いられる補間フィルタを選択する方法及びシステムに関する。
【背景技術】
【0003】
本明細書に記載されているこの背景の説明は本開示の背景を概略的に示すためのものである。本背景技術の記載箇所で説明されている範囲において、現時点で氏名が掲載されている発明者の成果と、その他、本出願の出願時の先行技術としての地位を獲得し得ない説明の態様とは、本開示に対する先行技術として明示的にも黙示的にも自認されるものではない。
【0004】
映像符号化及び復号は動き補償とともにピクチャ間予測を用いて実行することができる。圧縮されていないデジタル映像はピクチャ列を含む場合があり、各ピクチャは所定の空間的大きさを持ち、たとえば1920×1080個の輝度サンプル、及び関連する全色度サンプル又はサブサンプリングによる色度サンプルという空間的大きさを持つ。ピクチャ列は不変であったり可変であったりするピクチャレート(フレームレートとも別称される)を持ち、たとえば毎秒60ピクチャすなわち毎秒60フレームのピクチャレート持つ場合がある。圧縮されていない映像にはストリーミングやデータ処理に対する特定のビットレート要件がある。たとえば、画素解像度が1920×1080、フレームレートが毎秒60、クロマサブサンプリングが色チャンネル1つにつき1画素あたり8ビットで4:2:0である映像は約1.5Gbit/sの帯域幅を要する。このような映像1時間には600GByteより多い記憶領域が必要である。
【0005】
映像符号化及び復号の目的の1つは圧縮によって圧縮された入力映像信号の冗長さを削減することであるといえる。圧縮は上述の帯域幅要件及び/又は記憶領域要件を緩和することに有用であるといえ、場合によっては、2桁以上緩和することに有用であるといえる。可逆圧縮と非可逆圧縮との両方と、これらの組合せとを用いることができる。可逆圧縮とは、圧縮された元の信号から復号プロセスを介して元の信号の厳密な複製を再構成することができる手法を指す。非可逆圧縮とは、符号化の際に元の映像情報が完全には保持されず、復号の際に完全には復元することができない符号化/復号プロセスを指す。非可逆圧縮を用いると、再構成された信号は元の信号とは同一ではない場合があるが、元の信号と再構成された信号との間の歪みは、多少の情報の欠落があるが、再構成された信号が意図した用途に用いることができるようになる程度に十分小さくなる。映像の場合には、多くの用途に非可逆圧縮が広く用いられている。容認可能な歪みの量は用途に依存する。たとえば、特定の民生用ストリーミング用途のユーザは映画用途やテレビ放送用途のユーザよりも大きい歪みを容認する場合がある。特定の符号化アルゴリズムによって実現可能な圧縮率を、様々な歪み許容量を反映するように選択したり調節したりすることができる。すなわち、容認可能な歪みが大きいと、通常、大規模な欠落と高い圧縮率をもたらす符号化アルゴリズムが可能になる。
【0006】
たとえば動き補償、フーリエ変換、量子化やエントロピ符号化を含む、いくつかの幅広いカテゴリ及びステップから得られる手法を映像エンコーダ及びデコーダに利用することができる。
【0007】
映像コーデック技術はイントラ符号化として知られている手法を含むことができる。イントラ符号化では、以前に再構成された参照ピクチャからサンプル又はその他データを参照せずにサンプル値を表現する。いくつかの映像コーデックでは、ピクチャをサンプルのブロックに空間的に細分する。サンプルのすべてのブロックをイントラモードで符号化する場合、当該ピクチャをイントラピクチャと称することができる。イントラピクチャと、独立デコーダリフレッシュピクチャなどのその派生とを用いてデコーダの状態をリセットすることができるので、これを、符号化された映像のビットストリームや映像のセッションの最初の画像として用いたり、静止画像として用いたりすることができる。その後、イントラ予測の後のブロックのサンプルが周波数ドメインへの変換を受けることが可能であり、そのように生成された変換係数をエントロピ符号化の前に量子化することができる。イントラ予測は変換前のドメインでサンプル値を最小限にする手法を代表するものである。場合によっては、変換後のDC値が小さく、AC係数が小さいほど、エントロピ符号化後のブロックを表わす、所与の量子化ステップで必要なビットのサイズが小さくなる。
【0008】
たとえばMPEG-2世代の符号化手法で知られている符号化などの従来のイントラ符号化ではイントラ予測を用いていない。しかし、いくつかのより新規の映像圧縮手法は、たとえば、空間的に近傍にあるものの符号化及び/又は復号の際に得られる周囲のサンプルデータ及び/又はメタデータや、イントラ符号化又は復号されたデータのブロックに復号順で先行する周囲のサンプルデータ及び/又はメタデータに基づいてブロックの符号化/復号を試みる手法を含む。以下、このような手法を「イントラ予測」手法と称する。少なくともいくつかの例では、イントラ予測で、再構成中の現在のピクチャの参照データしか用いず、他の参照ピクチャの参照データは用いないことに留意する。
【0009】
多くの異なる形態のイントラ予測が存在することが可能である。このような手法の1つより多い所与の映像符号化技術に利用可能である場合、用いられる手法をイントラ予測モードと称することができる。1つ以上のイントラ予測モードを特定のコーデックで行なってもよい。いくつかの例では、モードは下位モードを有することができかつ/又は様々なパラメータと関連してもよく、モード/下位モード情報と映像のブロックのイントラ符号化パラメータとを個別に符号化したりモードコードワードにまとめて含ませたりすることができる。所与のモード、下位モード及び/又はパラメータの組合せにどのコードワードを用いるかによって、イントラ予測による符号化効率の向上に影響を及ぼすことができるので、コードワードをビットストリームに変換するために用いられるエントロピ符号化技術に影響を及ぼすことができる。
【0010】
イントラ予測の特定のモードがH.264から導入され、H.265で改良され、joint exploration model(JEM)、versatile video coding(VVC)、benchmark set(BMS)などの新規の符号化技術でさらに改良された。通常、イントラ予測では、利用可能になっている近傍サンプルの値を用いて予測値ブロックを形成することができる。たとえば、所定の方向及び/又はラインに沿って並ぶ近傍サンプルの特定の集合の利用可能な値を複製して予測値ブロックに入れてもよい。用いられている方向の方の参照値をそのビットストリームにおいて符号化することができるし、参照値そのものを予測してもよい。
【0011】
図1Aを参照して、H.265の可能な33個のイントラ予測値方向(H.265に記載されている35個のイントラモードの33個のアンギュラモードに対応する)で指定される9つの予測値方向のサブセットが右下に示されている。矢印が集まる点(101)は予測中のサンプルを表わす。矢印は近傍サンプルを用いて101のサンプルを予測する方向を表わす。たとえば、矢印(102)は、水平方向から45度の角度で、1つ以上の近傍サンプルから右上に向かってサンプル(101)を予測することを示す。同様に、矢印(103)は、水平方向から22.5度の角度で、1つ以上の近傍サンプルからサンプル(101)の左下に向かってサンプル(101)を予測することを示す。
【0012】
引き続き図1Aを参照して、左上には4×4個のサンプルの正方形ブロック(104)が示されている(太い破線で示されている)。正方形ブロック(104)は16個のサンプルを含み、各々には、“S”と、サンプルのY次元の位置(たとえば行インデックス)と、サンプルのX次元の位置(たとえば列インデックス)とを含む指標が付されている。たとえば、サンプルS21は(上から)Y次元において2番目のサンプルであって、(左から)X次元において1番目のサンプルである。同様に、サンプルS44はY次元とX次元との両方においてブロック(104)中で4番目のサンプルである。ブロックのサイズが4×4サンプルであれば、S44は右下にある。同様の番号の付け方にしたがった参照サンプルの例がさらに示されている。参照サンプルには、Rと、ブロック(104)に対する参照サンプルのY位置(たとえば行インデックス)及びX位置(列インデックス)とを含む指標が付されている。H.264でもH.265でも、再構成中にブロックの近傍にあって隣接する予測サンプルが用いられる。
【0013】
シグナリングされた予測方向に従って近傍サンプルから参照サンプル値を複製することからブロック104のピクチャ内予測を開始することができる。たとえば、当該ブロック104について、矢印(102)の予測方向を示すシグナリングを、符号化された映像ビットストリームが含むと仮定する。すなわち、水平方向から45度の角度で、1つ以上の予測サンプルから右上に向かってサンプルを予測することを示すシグナリングを、符号化された映像ビットストリームが含むと仮定する。このような場合、同じ参照サンプルR05からサンプルS41、S32、S23及びS14を予測する。その後、サンプルS44を参照サンプルR08から予測する。
【0014】
いくつかの例では、特に方向を45度で均等に分割することができない場合、参照サンプルを計算するために、複数の参照サンプルの値をたとえば補間を通じて組み合せてもよい。
【0015】
映像符号化技術が発展し続けることに応じて、可能な方向の個数が増大してきた。H.264(2003年)では、たとえば、異なる9つの方向をイントラ予測に利用可能である。これがH.265(2013年)では33個まで増加したが、JEM/VVC/BMSが本開示時点で最大65個の方向をサポートすることができる。最適なイントラ予測方向を特定するのを支援するために実験的考察が行なわれてきたが、少数のビットの場合のこのような最適な方向を符号化するために、方向についてのビットのなんらかの不利益を許容しつつ、エントロピ符号化のいくつかの技術を用いることができる。さらに、場合によっては、復号されている近傍のブロックのイントラ予測で用いられる近傍の方向から方向そのものを予測することができる。
【0016】
図1BはJEMにしたがう65個のイントラ予測方向を示す概略図(180)を示しており、日進月歩の様々な符号化技術の多数の予測方向が示されている。
【0017】
符号化された映像ビットストリームにおいてイントラ予測方向を表わすビットを予測方向にマッピングする仕方は映像符号化技術が変わると異なる場合があり、このマッピングの仕方は、たとえば、予測方向の単純な直接マッピングから、イントラ予測モード、コードワード、最も可能性が高いモードをもたらす複雑な適合方式などの手法にまで及ぶことができる。しかし、すべての場合において、いくつかの方向よりも映像コンテンツで統計的に起こる確からしさが低いイントロ予測のいくつかの方向が存在し得る。映像圧縮の目的が冗長さの削減であるので、このような確からしさが低い方向は、映像符号化技術が適切に設計されている場合、確からしさがより高い方向よりも多数のビットによって表現される場合がある。
【0018】
ピクチャ間予測(すなわちインタ予測)は動き補償に基づいてもよい。動き補償では、以前に再構成されたピクチャ又はその一部(参照ピクチャ)から得られるサンプルデータを、動きベクトル(以下、MV)によって示される方向に空間的にシフトした後、新たに再構成されたピクチャ又はピクチャの部分(たとえばブロック)の予測に用いてもよい。場合によっては、参照ピクチャが、再構成が行なわれている時点のピクチャと同じである場合がある。MVは2つの次元X及びY又は3つの次元を持ってもよく、第3の次元は用いられている参照ピクチャに関する指標である(時間次元に類するもの)。
【0019】
いくつかの映像圧縮技術では、サンプルデータの、ある領域に適用可能な現在のMVを他のMVから予測することができ、たとえば、再構成中の領域に空間的に隣接する、サンプルデータの他の領域に関連し、復号順で現在のMVに先行する当該他のMVから予測することができる。このようにすることで、相関するMVの冗長さが取り除かれることに応じてMVを符号化するために必要なデータの総量を実質的に削減することができ、これにより、圧縮効率を上げることができる。たとえば、カメラから得られた入力映像信号(未加工映像と呼ばれている)を符号化する場合、1つのMVを適用可能な領域よりも大きい領域が映像シーケンス中で同様の方向に移動することから、場合によっては、近傍の領域のMVから導出された同様の動きベクトルを用いて当該領域を予測することができるという統計的確からしさが存在するので、MV予測は効果的に機能することができる。その結果、所与の領域の実際のMVが周囲のMVから予測されたMVと同様になったり同一になったりする。エントロピ符号化の後、MVを近傍の1つ以上のMVから予測せずに直接符号化する場合に用いられることになるビット数よりも少ないビット数で上記のMVを表現することができる。いくつかの例では、MV予測は、元の信号(すなわちサンプルストリーム)から信号(すなわちMV)の可逆圧縮が導出されるという例であることが可能である。他の例では、たとえば、周囲のいくつかのMVから予測値を計算するときの丸め誤差によりMV予測そのものが不可逆になる場合がある。
【0020】
様々なMV予測メカニズムがH.265/HEVC(ITU-T Rec.H.265,“High Efficiency Video Coding”,December 2016)で説明されている。H.265に記載されている多くのMV予測メカニズムのうちから、以下「空間的マージ」と称する技術を以下で説明する。
【0021】
具体的には、図2を参照して、現在のブロック(201)は、動き探索プロセスの際にエンコーダによって検知されて、空間的にシフトされた同じサイズの以前のブロックから予想可能であるサンプルを備える。当該MVを直接符号化する代わりに、1つ以上の参照ピクチャに関連づけられたメタデータからMVを導出することができ、たとえば、A0,A1及びB0,B1,B2(それぞれ202~206)で示されている周囲の5つのサンプルのいずれか1つに関連づけられたMVを用いて、最新(復号順)の参照画像からMVを導出することができる。H.265において、MV予測では、近傍のブロックが用いる同じ参照ピクチャから得られる予測値を用いることができる。
【発明の概要】
【課題を解決するための手段】
【0022】
本開示は概して映像符号化に関し、特に、動きベクトル大きさ及び/又は動きベクトル画素解像度に基づいてインタ予測ブロックを生成するために用いられる補間フィルタを選択する方法及びシステムに関する。
【0023】
一実現例では、映像ストリームの映像ブロックを処理する方法が開示される。本方法は、映像ストリームからフラグを受け取るステップと、受け取ったフラグに基づいて、動きベクトル(MV)に従って参照フレームによって映像ブロックがインタ予測される予定であると決定するステップと、映像ブロックのMVD(MV差分)と参照MVとからMVを導出するステップと、補間フィルタを示す信号を得るステップであって、信号は少なくともMVDの解像度及び大きさの一方に基づく、ステップと、信号に応じて補間フィルタを選択するステップと、MVと選択された補間フィルタとに従って参照フレームから映像ブロックのインタ予測を実行するステップとを含んでもよい。
【0024】
上記の実現例では、信号を得るステップは、映像ブロックに関連するMVクラスインデックスに基づいてMVDの大きさを決定するステップであって、MVクラスインデックスは映像ストリームから抽出される、ステップと、MVクラスインデックスが閾値MVクラスインデックス未満ではない場合にデフォルトの既定の補間フィルタに設定するための信号を得るステップとを含んでもよい。
【0025】
上記の実現例のいずれか1つでは、既定の補間フィルタは、閾値MVクラスインデックス未満のMVクラスインデックスを持つ映像ブロックに用いられる候補補間フィルタのプールを形成する複数の補間フィルタのうちの補間フィルタである。
【0026】
上記の実現例のいずれか1つでは、既定の補間フィルタはREGULAR、SMOOTH、SHARP又はBILINEAR補間フィルタを含む。
【0027】
上記の実現例のいずれか1つでは、信号を得るステップは、MVDに適応可能画素解像度が適用されると決定するステップと、複数の適応可能MVD画素解像度からMVDの画素解像度を決定するステップと、MVDの画素解像度が1つ以上の既定のレベルにあることに応じてデフォルトの既定の補間フィルタに設定するための信号を得るステップとを含んでもよい。
【0028】
上記の実現例のいずれか1つでは、1つ以上の既定のレベルは既定のMVD画素解像度閾値を超えないMVD解像度レベルを含む。
【0029】
上記の実現例のいずれか1つでは、MVDの画素解像度は映像ストリームから抽出される映像ブロックのMVクラスインデックスに基づいて決定される。
【0030】
上記の実現例のいずれか1つでは、既定のMVD画素解像度閾値はMVクラスインデックス閾値に対応する。
【0031】
上記の実現例のいずれか1つでは、既定の補間フィルタは1つ以上の既定のレベルではない適応可能MVD画素解像度を持つ映像ブロックに用いられる候補補間フィルタのプールを形成する複数の補間フィルタのうちの補間フィルタである。
【0032】
上記の実現例のいずれか1つでは、既定の補間フィルタはREGULAR、SMOOTH、SHARP又はBILINEAR補間フィルタの1つを含む。
【0033】
上記の実現例のいずれか1つでは、信号を得るステップは、映像ストリームからMVDの大きさに対応するMVクラスインデックスを決定するステップと、MVのMVクラスインデックスが既定のMVクラスインデックス閾値未満ではない場合に補間フィルタの集合のうちの既定の補間フィルタのデフォルトのサブセットに設定するステップと、既定の補間フィルタのサブセットから補間フィルタを選択するための信号としての選択インジケータを映像ストリームから抽出するステップとを含んでもよい。
【0034】
上記の実現例のいずれか1つでは、信号を得るステップは、MVDに適応可能画素解像度が適用されると決定するステップと、複数の適応可能MVD画素解像度からMVDの画素解像度を決定するステップと、MVDの画素解像度が既定のMVD画素解像度閾値を超えないことに応じて補間フィルタの集合のうちの既定の補間フィルタのデフォルトのサブセットに設定するステップと、既定の補間フィルタのサブセットから補間フィルタを選択するための信号としての選択インジケータを映像ストリームから抽出するステップとを含んでもよい。
【0035】
上記の実現例のいずれか1つでは、信号を得るステップは、映像ブロックのMVDに適応可能画素解像度が適用されると決定するステップと、複数の適応可能MVD画素解像度からMVDの画素解像度を決定するか、複数のMVクラスインデックスからMVのMVクラスインデックスを決定するステップと、MVDの画素解像度又はMVクラスインデックスに基づいて補間フィルタ選択インジケータを符号化するためのコンテキストの集合を特定するステップと、コンテキストの集合に従って映像ストリームを復号して補間フィルタ選択インジケータを信号として取得するステップとを含んでもよい。
【0036】
上記の実現例のいずれか1つでは、信号を得るステップは、MVDに適応可能画素解像度が適用されると決定するステップと、複数のMVクラスインデックスから映像ブロックのMVクラスインデックスを決定するステップと、MVクラスインデックスが閾値MVクラスインデックス未満ではない場合にコンテキストの第1の集合を用いて映像ストリームを復号して補間フィルタ選択インジケータを信号として取得するステップと、MVクラスインデックスが閾値MVクラスインデックス未満である場合にコンテキストの第1の集合とは異なるコンテキストの第2の集合を用いて映像ストリームを復号して補間フィルタ選択インジケータを信号として取得するステップとを含んでもよい。
【0037】
上記の実現例のいずれか1つでは、信号を得るステップは、MVDのMVD画素解像度が端数ではない画素解像度であるとの決定に応じてデフォルトの補間フィルタに設定するステップを含んでもよい。
【0038】
上記の実現例のいずれか1つでは、信号を得るステップは、MVDのMVD画素解像度が端数ではない画素解像度であるとの決定に応じて補間フィルタの集合のうちの既定の補間フィルタのデフォルトのサブセットに設定するステップと、既定の補間フィルタのサブセットから補間フィルタを選択するための信号としての選択インジケータを映像ストリームから抽出するステップとを含んでもよい。
【0039】
本開示の態様では、上記の方法の実現例のいずれかを実行するように構成される回路を含む映像符号化又は復号デバイス又は装置も提供される。
【0040】
本開示の態様では、映像復号及び/又は符号化のためにコンピュータによって実行されるときに映像復号及び/又は符号化のための方法をコンピュータに実行させる指示を記憶する非一時的コンピュータ可読媒体も提供する。
【0041】
以下の詳細な説明と添付の図面とから、開示されている保護対象のさらなる特徴、性質及び様々な効果がより明らかになる。
【図面の簡単な説明】
【0042】
図1A】イントラ予測方向性モードの典型的なサブセットの概略図を示す。
図1B】典型的なイントラ予測方向の図を示す。
図2】一例における動きベクトル予測に用いられる現在のブロックとその周囲の空間的マージ候補との概略図を示す。
図3】一実施形態に係る通信システム(300)の簡略ブロック図の概略図を示す。
図4】一実施形態に係る通信システム(400)の簡略ブロック図の概略図を示す。
図5】一実施形態に係る映像デコーダの簡略ブロック図の概略図を示す。
図6】一実施形態に係る映像エンコーダの簡略ブロック図の概略図を示す。
図7】別の実施形態に係る映像エンコーダのブロック図を示す。
図8】別の実施形態に係る映像デコーダのブロック図を示す。
図9】本開示の実施形態に係る符号化ブロック分割の方式を示す。
図10】本開示の実施形態に係る符号化ブロック分割の別の方式を示す。
図11】本開示の実施形態に係る符号化ブロック分割の別の方式を示す。
図12】典型的な分割方式に従ってベースブロックを符号化ブロックに分割する例を示す。
図13】三分分割方式の例を示す。
図14】四分木二分木符号化ブロック分割方式の例を示す。
図15】本開示の実施形態に係る、符号化ブロックを複数の変換ブロックに分割する方式と、変換ブロックの符号化順序とを示す。
図16】本開示の実施形態に係る、符号化ブロックを複数の変換ブロックに分割する別の方式と、変換ブロックの符号化順序とを示す。
図17】本開示の実施形態に係る、符号化ブロックを複数の変換ブロックに分割する別の方式を示す。
図18】本開示の実施形態に係る方法のフローチャートを示す。
図19】本開示の実施形態に係るコンピュータシステムの概略図を示す。
【発明を実施するための形態】
【0043】
明細書と請求項とにわたって、用語は明記されている意味の範囲を超えて文脈で示唆又は暗示される特別な意味を持つ場合がある。本開示で用いられている語句「一実施形態では」又は語句「いくつかの実施形態では」は必ずしも同じ実施形態を指さず、本開示で用いられている語句「別の実施形態では」又は「他の実施形態では」は必ずしも異なる実施形態を指さない。同様に、本開示で用いられている語句「一実現例では」又は語句「いくつかの実現例では」は必ずしも同じ実現例を指さず、本開示で用いられている語句「別の実現例では」又は「他の実現例では」が必ずしも異なる実現例を指さない。意図としては、たとえば、主張された保護対象が典型的な実施形態/実現例の組合せを全体的又は部分的に含むということである。
【0044】
全体的に、用語の語法は文脈での用いられ方から少なくとも部分的に判明する場合がある。たとえば、本開示で用いられている「及び」、「又は」又は「及び/又は」などの用語は、当該用語が用いられている文脈に少なくとも部分的に依存する場合がある様々な意味を含む場合がある。典型的には、「又は」がA、B又はCのような列挙物を関連づけるために用いられる場合、「又は」はA、BやCを意味することを意図し、この場合は例示列挙の意味(inclusive sense)で用いられ、さらに、「又は」はA、B又はCを意味することを意図し、この場合は限定列挙の意味(exclusive sense)で用いられる。これに加えて、本開示で用いられている用語「1つ以上」又は用語「少なくとも1つ」は、少なくとも部分的に文脈に応じて、単数の意味のなんらかの特徴、構成又は特性を説明するために用いられる場合があったり、複数の意味の特徴、構成又は特性の組合せを説明するために用いられる場合があったりする。同様に、“a”、“an”又は“the”などの用語も、少なくとも部分的に文脈に応じて、単数での使用を認識させたり複数での使用を認識させたりすることが分かる。上記に加えて、用語「に基づいて」又は用語「決定される」は、この場合も少なくとも部分的に文脈に応じて、要因の限定列挙集合を認識させることを必ずしも意図しないものとして理解されるものである場合があり、さらに言えば、必ずしも明確に記載されない別の要因の存在の余地があるものである場合がある。図3は本開示の一実施形態に係る通信システム(300)の簡略ブロック図を示す。通信システム(300)は、互いとたとえばネットワーク(350)を介して通信することができる複数の端末装置を含む。たとえば、通信システム(300)はネットワーク(350)を介して相互接続されている端末装置(310)及び(320)の第1のペアを含む。図3の例では、端末装置(310)及び(320)の第1のペアはデータの一方向性伝送を行なってもよい。たとえば、端末装置(310)はネットワーク(350)を介して他の端末装置(320)に送信するために映像データ(たとえば、端末装置(310)によって撮像された映像ピクチャのストリームの映像データ)を符号化してもよい。符号化された映像データを1つ以上の符号化された映像ビットストリームとして送信することができる。端末装置(320)は符号化された映像データをネットワーク(350)から受信し、符号化された映像データを復号して映像ピクチャを復元し、復元された映像データに応じた映像ピクチャを表示することができる。メディア提供アプリケーションなどで一方向性データ伝送を実施してもよい。
【0045】
別の例では、通信システム(300)は、たとえばテレビ会議に適用する際に実施される場合がある符号化された映像データの双方向性伝送を行なう端末装置(330)及び(340)の第2のペアを含む。データの双方向性伝送の場合、一例であるが、端末装置(330)及び(340)の各端末装置はネットワーク(350)を介して端末装置(330)及び(340)のうちの他方の端末装置に送信するために、映像データ(たとえば、端末装置によって撮像された映像ピクチャのストリームの映像データ)を符号化してもよい。端末装置(330)及び(340)の各端末装置は、端末装置(330)及び(340)のうちの他方の端末装置によって送信された符号化された映像データの受信も行なってもよく、符号化された映像データを復号して映像ピクチャを復元し、復元された映像データに応じた映像ピクチャを、アクセス可能な表示装置で表示してもよい。
【0046】
図3の例では、端末装置(310)、(320)、(330)及び(340)をサーバ、パーソナルコンピュータ及びスマートフォンとして実施することができるが、本開示の根本原理の適用範囲はこのようには限定されないといえる。本開示の実施形態を、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、ウェアラブルコンピュータ、専用のテレビ会議機器及び/又は類似物で実施してもよい。ネットワーク(350)は、たとえば配線(有線)及び/又は無線通信ネットワークを含む、端末装置(310)、(320)、(330)及び(340)間で、符号化された映像データを伝達する任意の個数のネットワークや任意のタイプのネットワークを表わす。通信ネットワーク(350)9は回線交換チャンネル、パケット交換チャンネル及び/又は他のタイプのチャンネルでデータを交換してもよい。代表的なネットワークは電気通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク及び/又はインタネットを含む。本例の説明上、本出願で明示的に説明されない限り、ネットワーク(350)のアーキテクチャ及びトポロジは本開示の動作に重要ではない場合がある。
【0047】
図4は、開示されている保護対象に適用する例として、映像ストリーミング環境における映像エンコーダ及び映像デコーダの配置を示す。開示されている保護対象は、たとえば、テレビ会議、デジタルテレビ放送、ゲーム、仮想現実、CD、DVD、メモリスティックなどを含むデジタル媒体への圧縮された映像の記憶などを含む映像の他の適用例に同様に適用可能であってもよい。
【0048】
映像ストリーミングシステムは、圧縮されていない映像ピクチャ又は画像のストリーム(402)を生成する映像ソース(401)、たとえばデジタルカメラを含むことができる映像撮像サブシステム(413)を含んでもよい。一例では、映像ピクチャのストリーム(402)は映像ソース401のデジタルカメラによって記録されるサンプルを含む。符号化された映像データ(404)(すなわち符号化された映像ビットストリーム)と比較する場合にデータ量が多いことを強調するために映像ピクチャのストリーム(402)を太線で示しているが、その映像ピクチャのストリーム(402)を、映像ソース(401)に接続されている映像エンコーダ(403)を含む電子装置(420)によって処理することができる。映像エンコーダ(403)は、以降で詳細に説明されている、開示されている保護対象の態様を可能にしたり実施したりするハードウェア、ソフトウェア又はこれらの組合せを含むことができる。圧縮されていない映像ピクチャのストリーム(402)と比較する場合にデータ量が少ないことを強調するために、符号化された映像データ(404)(すなわち符号化された映像ビットストリーム(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が含まれる。一例では、開発中の映像符号化標準が非公式にはVersatile Video Coding(VVC)として知られている。開示されている保護対象をVVCや他の映像符号化標準を前提として用いてもよい。
【0049】
電子装置(420)及び(430)が他の構成要素(図示せず)を含むことができることに留意する。たとえば、電子装置(420)が映像デコーダ(図示せず)を含むことができ、同様に、電子装置(430)が映像エンコーダ(図示せず)を含むことができる。
【0050】
図5は後述の本開示のいずれかの実施形態に係る映像デコーダ(510)のブロック図を示す。映像デコーダ(510)を電子装置(530)に含ませることができる。電子装置(530)は受信器(531)(たとえば受信回路)を含むことができる。映像デコーダ(510)を図4の例の映像デコーダ(410)の代わりに用いることができる。
【0051】
受信器(531)は映像デコーダ(510)によって復号されることになる1つ以上の符号化された映像シーケンスを受信してもよい。一度に1つの符号化された映像シーケンスを同じ実施形態で復号したり別の実施形態で復号したりしてもよく、符号化された各映像シーケンスの復号は他の符号化された映像シーケンスとは独立する。各映像シーケンスが複数の映像フレーム又は画像に関連してもよい。符号化された映像シーケンスをチャンネル(501)から受信してもよく、チャンネル(501)は符号化された映像データを記憶する記憶装置や、符号化された映像データを送るストリーミングソースにつなげられたハードウェア/ソフトウェアであってもよい。受信器(531)は符号化された音声データ及び/又は付属データストリームなどの他のデータとともに、符号化された映像データを受信してもよく、当該他のデータを、それに対応する処理回路(図示せず)に転送してもよい。受信器(531)は符号化された映像シーケンスを他のデータから分離してもよい。ネットワークジターに対処するために、受信器(531)とエントロピデコーダ/パーサ(520)(以下「パーサ(520)」)との間にバッファメモリ(515)を配置してもよい。いくつかの適用例では、バッファメモリ(515)を映像デコーダ(510)の一部として実施してもよい。他の適用例では、バッファメモリ(515)は映像デコーダ(510)外に存在し、映像デコーダ(510)とは別体であることが可能である(図示せず)。さらに他の適用例では、たとえばネットワークのジッタに対処するために、映像デコーダ(510)外にバッファメモリ(図示せず)が存在することが可能であり、たとえば再生のタイミングを処理するために、映像デコーダ(510)内に別の追加バッファメモリ(515)が存在してもよい。受信器(531)が十分な帯域幅及び制御性を持つ記憶/転送装置やアイソクロナスネットワークからデータを受信するものである場合、バッファメモリ(515)を要さずともよいし、バッファメモリ(515)が小規模であることが可能である。インタネットなどのベストエフォートパケットネットワークに用いる場合には、十分なサイズのバッファメモリ(515)を要する場合があり、バッファメモリ(515)のサイズを比較的大きくすることができる。このようなバッファメモリを最適なサイズで実施してもよく、映像デコーダ(510)外のオペレーティングシステムや同様の要素(図示せず)で少なくとも部分的に実施してもよい。
【0052】
映像デコーダ(510)は符号化された映像シーケンスからシンボル(521)を再構成するパーサ(520)を含んでもよい。このようなシンボルのカテゴリには映像デコーダ(510)の動作を管理するために用いられる情報が含まれ、図5に示されているように、電子装置(530)の一体部分であってもなくてもよい、電子装置(530)に接続されることが可能であるディスプレイ(512)(たとえば表示画面)などの描画する装置を制御する情報が含まれる場合がある。1つ以上の描画する装置に用いる制御情報はSupplemental Enhancement Information(SEIメッセージ)やVideo Usability Information(VUI)パラメータ集合フラグメント(図示せず)の形態をとってもよい。パーサ(520)はパーサ(520)が受けた符号化された映像シーケンスをパース/エントロピ復号することができる。当該符号化された映像シーケンスのエントロピ符号化は映像符号化技術や標準に準拠することが可能であり、可変長符号化、ハフマン符号化、文脈依存を用いたり用いなかったりする算術符号化などを含む様々な原理にしたがうことができる。パーサ(520)は符号化された映像シーケンスから、映像デコーダ中にある画素の部分群の少なくとも1つについての部分群パラメータの集合を、部分群に対応する少なくとも1つのパラメータに基づいて抽出してもよい。部分群はGroup of Picture(GOP)、ピクチャ、タイル、スライス、マクロブロック、Coding Unit(CU)、ブロック、Transform Unit(TU)、Prediction Unit(PU)などを含むことができる。パーサ(520)は変換係数(たとえばフーリエ変換係数)、クオンタイザパラメータ値、動きベクトルなどの符号化された映像シーケンス情報からも抽出を行なってもよい。
【0053】
パーサ(520)はバッファメモリ(515)から受けた映像シーケンスにエントロピ復号/パーサ動作を実行することでシンボル(521)を生成してもよい。
【0054】
シンボル(521)の再構成には、符号化された映像ピクチャ又はその部分のタイプ(たとえばピクチャ間及びピクチャ内、ブロック間及びブロック内)と他の因子とに応じて複数の異なる処理部位又は機能部位を関与させることができる。関与させる部位と、どのように部位を関与させるのかとを、符号化された映像シーケンスからパーサ(520)によってパースされた部分群制御情報によって制御してもよい。簡略化するために、パーサ(520)と後述の複数の処理部位又は機能部位との間の、このような部分群の制御情報のフローは示されていない。
【0055】
既に説明されている機能ブロックについてさらに言えば、映像デコーダ(510)を、後述のように複数の機能部位に概念的に細分することができる。商業上の制約を受けながら運用される実際の実現例では、このような機能部位の多くは互いに緊密にやり取りし、互いに少なくとも部分的に一体化されることが可能である。一方で、開示されている保護対象の様々な機能を明確にしつつ説明するために、以下の開示では機能部位に概念的に細分することを採用している。
【0056】
最初の部位はスケーラ/逆変換部(551)を含んでもよい。スケーラ/逆変換部(551)はパーサ(520)からシンボル(521)として、量子化された変換係数と、どのタイプの逆変換を用いるべきかを示す情報、ブロックサイズ、量子化係数(quantization factor)/量子化パラメータ、量子化スケーリングマトリックス及び状態を含む制御情報とを受けてもよい。スケーラ/逆変換部(551)は集合器(555)に入力することができるサンプル値を備えるブロックを出力することができる。
【0057】
いくつかの例では、スケーラ/逆変換(551)の出力サンプルは、イントラ符号化ブロック、すなわち、以前に再構成されたピクチャから得られる予測的情報を用いないが、現在のピクチャの以前に再構成された部分から得られる予測的情報を用いることができるブロックに適する場合がある。このような予測的情報をピクチャ内予測部(552)によって提供することができる。いくつかの例では、ピクチャ内予測部(552)は、既に再構成され、現在のピクチャバッファ(558)に記憶されている周囲のブロックの情報を用いて、再構成中のブロックと同じサイズ及び形状のブロックを生成してもよい。現在のピクチャバッファ(558)は、たとえば、部分的に再構成された現在のピクチャ及び/又は全体的に再構成された現在のピクチャをバッファリングする。いくつかの実現例では、集合器(555)はサンプル毎に、イントラ予測部(552)が生成した予測情報を、スケーラ/逆変換部(551)によって提供された出力サンプル情報に加えてもよい。
【0058】
他の例では、スケーラ/逆変換部(551)の出力サンプルはインタ符号化ブロックに適し、場合によっては動き補償されたブロックに適する場合がある。このような例では、動き補償予測部(553)が参照ピクチャメモリ(557)にアクセスして、ピクチャ間予測に用いられるサンプルを取得することができる。ブロックに関係するシンボル(521)に応じて、取得されたサンプルを動き補償した後、当該サンプルをスケーラ/逆変換部(551)の出力(部位551の出力を残差サンプルや残差信号と称する場合がある)に集合器(555)によって加えることで、出力サンプル情報を生成することができる。動き補償予測部(553)が予測サンプルを取得する取得元の参照ピクチャメモリ(557)内のアドレスを動きベクトルによって制御することができ、動きベクトルは、たとえばX,Y成分(シフト)及び参照ピクチャ成分(時間)を有することができるシンボル(521)の形態をとった状態で動き補償予測部(553)に利用可能である。動き補償は、サブサンプルの正確な動きベクトルが用いられている場合の、参照ピクチャメモリ(557)から取得されるサンプル値の補間を含むこともでき、動きベクトル予測メカニズムなどに関連することもできる。
【0059】
集合器(555)の出力サンプルはループフィルタ部(556)で様々なループフィルタリング手法を受けることができる。映像圧縮技術は、符号化された映像シーケンス(符号化された映像ビットストリームとも称する)に含まれて、パーサ(520)からのシンボル(521)としてループフィルタ部(556)に利用可能になるパラメータによって制御されるループ内フィルタ技術を含むことができる一方で、映像圧縮技術は、符号化されたピクチャ又は符号化された映像シーケンスの以前(復号順)の部分を復号する際に得られるメタ情報の影響を受け易く、以前に再構成されてループフィルタリングされたサンプル値の影響も受け易い場合もある。ループフィルタ部556の一部として数種類のループフィルタを様々な順序で含ませてもよい。このことについてはさらに詳細に後述する。
【0060】
ループフィルタ部(556)の出力は描画する装置(512)に出力することができるだけでなく、後のピクチャ間予測で用いるために参照ピクチャメモリ(557)に記憶することもできるサンプルストリームであることが可能である。
【0061】
いくつかの符号化されたピクチャは完全に再構成されると、後のピクチャ間予測のために参照ピクチャとして用いられることが可能である。たとえば、現在のピクチャに対応する符号化済みピクチャが完全に再構成され、符号化済みピクチャが参照ピクチャとして(たとえばパーサ(520)によって)特定されると、現在のピクチャバッファ(558)は参照ピクチャメモリ(557)の一部になることが可能であり、次の符号化済みピクチャの再構成を開始する前に、新たな現在のピクチャバッファを割り当てし直すことができる。
【0062】
映像デコーダ(510)は所定の標準(たとえばITU-T勧告H.265)で採用されている既定の映像圧縮技術に従って復号動作を行なってもよい。符号化された映像シーケンスが映像圧縮技術や標準のシンタックスと、映像圧縮技術や標準の文書に記載されているプロファイルとの両方を遵守するという意味で、符号化された映像シーケンスは、用いられている映像圧縮技術や標準によって定められているシンタックスに準拠するといえる。特に、プロファイルについては、映像圧縮技術や標準で利用可能なすべてのツールから、当該プロファイルにしたがった使用に供することができる唯一のツールとして所定のツールを選択することができる。標準に準拠するために、符号化された映像シーケンスの複雑さが映像圧縮技術や標準のレベルによって定められた限界内にあってもよい。いくつかの例では、レベルに応じて、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(たとえば毎秒100万サンプルで測定)、最大参照ピクチャサイズなどが制限される。レベルによって設けられる限界は、いくつかの例では、Hypothetical Reference Decoder(HRD)の仕様と、符号化された映像シーケンスでシグナリングされるHRDバッファ管理用のメタデータとにより、さらに制限される場合がある。
【0063】
いくつかの実施形態では、受信器(531)が符号化された映像とともに付随(冗長)データを受信してもよい。付随データが符号化された映像シーケンスの一部として含まれてもよい。付随データを映像デコーダ(510)で用いて、データを適切に復号しかつ/又は元の映像データをより正確に再構成してもよい。たとえば、付随データは時間的、空間的又は信号雑音比(SNR)enhancement layer、redundant slice、redundant picture、前方誤り訂正符号などの形態をとることができる。
【0064】
図6は本開示の一実施形態に係る映像エンコーダ(603)のブロック図を示す。映像エンコーダ(603)を電子装置(620)に含ませてもよい。電子装置(620)は送信器(640)(たとえば送信回路)をさらに含んでもよい。映像エンコーダ(603)を図4の例の映像エンコーダ(403)の代わりに用いることができる。
【0065】
映像エンコーダ(603)は、映像エンコーダ(603)によって符号化されることになる1つ以上の映像画像を撮像することができる映像ソース(601)(図6の例では電子装置(620)の一部ではない)から映像サンプルを受けてもよい。別の例では、映像ソース(601)を電子装置(620)の一部として実施してもよい。
【0066】
映像ソース(601)は、任意の適切なビット深度(たとえば:8ビット、10ビット、12ビット、…)、任意の色空間(たとえば、BT.601 YCrCb、RGB、XYZ…)及び任意の適切なサンプリング構造(たとえば、YCrCb 4:2:0、YCrCb 4:4:4)が可能であるデジタル映像サンプルストリームとして映像エンコーダ(603)によって符号化されることになるソース映像シーケンスを提供してもよい。メディア提供システムでは、映像ソース(601)は予め用意された映像を記憶することができる記憶装置であってもよい。テレビ会議システムでは、映像ソース(601)は現地の画像情報を映像シーケンスとして撮像するカメラであってもよい。順番に見られると動きを実現する複数の個々のピクチャ又は画像として映像データを提供してもよい。ピクチャをそのまま画素の空間的配列として編成してもよく、各画素は使用されているサンプリング構造、色空間などに応じた1つ以上のサンプルを備えることができる。画素とサンプルとの関係については当業者は容易に理解することができる。以下の説明ではサンプルに注目する。
【0067】
いくつかの実施形態に係れば、映像エンコーダ(603)はソース映像シーケンスのピクチャを符号化済み映像シーケンス(643)にリアルタイムに符号化して圧縮してもよいし、アプリケーションによって必要とされる任意の他の時間制約を受けつつ符号化して圧縮してもよい。適切な符号化速度の強制的な維持はコントローラ(650)の機能の1つを構成する。いくつかの実施形態では、コントローラ(650)を後述されている他の機能部位に機能的に接続して、コントローラ(650)によって当該他の機能部位を制御してもよい。簡略化するために、接続については示されていない。コントローラ(650)によって設定されるパラメータはレート制御関連のパラメータ(ピクチャスキップ、クオンタイザ、レート-歪み最適化技術のλの値、…)、ピクチャサイズ、group of picture(GOP)のレイアウト、最長の動きベクトルの探索範囲などを含むことができる。特定のシステム設計に最適化された映像エンコーダ(603)に関する他の適切な機能を持つようにコントローラ(650)を構成することができる。
【0068】
いくつかの実施形態では、映像エンコーダ(603)を符号化ループで動作するように構成してもよい。最大限に単純化した説明として、一例では、符号化ループはソースコーダ(630)(たとえば、符号化されることになる入力ピクチャと1つ以上の参照ピクチャとに基づいて、シンボルストリームなどのシンボルを生成することを担う)と、映像エンコーダ(603)に組み込まれた(別の場所ではなくこの場所にある)デコーダ(633)とを含むことができる。デコーダ(633)はシンボルを再構成し、内蔵デコーダ633がエントロピ符号化を用いずにソースコーダ630によって符号化された映像ストリームを処理したとしても、あたかも(別の場所にある)デコーダによって生成されるのと同様にサンプルデータを生成する(エントロピ符号化における、シンボルと符号化された映像ビットストリームとの間の任意の圧縮は開示されている保護対象で検討されている映像圧縮技術に含まれる可逆圧縮であってもよい)。再構成されたサンプルストリーム(サンプルデータ)は参照ピクチャメモリ(634)に入力される。シンボルストリームを復号すると、デコーダの場所(この場所にあるのか別の場所にあるのか)とは無関係に正確なビット結果がもたらされるので、参照ピクチャメモリ(634)の内容についても、この場所にあるエンコーダと別の場所にあるエンコーダとの比較でビットが正確になる。言い換えると、あたかもデコーダが復号の際に予測を用いるときに「見る」のと同じサンプル値を、エンコーダの予測部分は参照ピクチャサンプルとして正確に「見る」。このような参照ピクチャの同時性(さらには、たとえばチャンネルエラーによって同時性を維持することができない場合に結果として得られるドリフト)の基本原理が符号化品質を改善するために用いられる。
【0069】
「この場所にある」デコーダ(633)の動作は図5をともなって上記で既に詳細に説明されている「別の場所にある」映像デコーダ(510)などのデコーダの動作と同じであることが可能である。しかし、幾分図5も参照するが、シンボルが有効であり、かつエントロピコーダ(645)及びパーサ(520)によるシンボルの符号化、及び符号化済み映像シーケンスへの復号が可逆であることが可能であるので、バッファメモリ(515)とパーサ(520)とを含む映像デコーダ(510)のエントロピ復号部分はエンコーダのこの場所にあるデコーダ(633)では完全には実施されない場合がある。
【0070】
この時点で言えることは、デコーダにしか存在し得ないパース/エントロピ復号以外のいかなるデコーダ技術も、対応するエンコーダにやはり必ず実質的に同一の機能的形態で存在する必要があるといえるということである。この理由から、開示されている保護対象について、エンコーダの復号部分に関連するデコーダの動作に場合に応じて注目する場合がある。従って、エンコーダ技術の説明については、全体が説明されているデコーダ技術の逆であるので、省略することができる。特定の部分又は態様に限って、エンコーダのより詳細な説明を以下に記載する。
【0071】
いくつかの実現例の動作の際、ソースコーダ(630)は、「参照ピクチャ」に指定された映像シーケンスから得られた以前に符号化された1つ以上のピクチャを参照して予測して入力ピクチャを符号化する動き補償予測符号化を行なってもよい。このようにして、符号化エンジン(632)は入力ピクチャの画素ブロックと、入力ピクチャに対する1つ以上の予測参照として選択することができる1つ以上の参照ピクチャの画素ブロックとの色チャンネルの差分(すなわち残差値)を符号化する。用語「残差値(residue)」とその形容詞形「残差の(residual)」とを互いに入れ替えて用いてもよい。
【0072】
この場所にある映像デコーダ(633)はソースコーダ(630)によって生成されたシンボルに基づいて、参照ピクチャに指定することができるピクチャの符号化された映像データを復号してもよい。符号化エンジン(632)の動作が非可逆プロセスであることが有効である場合がある。符号化された映像データがなんらかの映像デコーダ(図6には示されていない)で復号されることがある場合、再構成された映像シーケンスは一般的に多少の誤差をともなうソース映像シーケンスの複製である場合がある。この場所にある映像デコーダ(633)は参照ピクチャに対して映像デコーダによって行なわれる場合がある復号プロセスを繰り返し、再構成された参照ピクチャが参照ピクチャキャッシュ(634)に記憶されるようにしてもよい。このようにして、映像エンコーダ(603)は遠端の(別の場所にある)映像デコーダによって得られることになる再構成された参照ピクチャと共通の内容を持つ再構成された参照ピクチャの複製をこの場所に記憶することができる(伝送エラー無し)。
【0073】
予測器(635)は符号化エンジン(632)のために予測探索を行なってもよい。すなわち、符号化されることになる新たなピクチャのために、予測器(635)はサンプルデータ(候補参照画素ブロックとしてのサンプルデータ)を得たり、新たなピクチャのための適切な予測参照を担うことができる参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータを得たりするために参照ピクチャメモリ(634)を探索してもよい。予測器(635)は適切な予測参照を検知するために画素ブロック毎に1つのサンプルブロックを用いるようにして動作してもよい。いくつかの例では、予測器(635)によって得られる探索結果によって決定する際、入力ピクチャは参照ピクチャメモリ(634)に記憶されている複数の参照ピクチャから得られた予測参照を含むことができる。
【0074】
たとえば、コントローラ(650)は映像データを符号化するために用いられるパラメータ及び部分群パラメータの設定を含む、ソースコーダ(630)の符号化動作の管理を行なってもよい。
【0075】
上述のすべての機能部位の出力がエントロピコーダ(645)でエントロピ符号化を受けてもよい。エントロピコーダ(645)はハフマン符号化、可変長符号化、算術符号化などの技術に従ってシンボルを可逆圧縮することによって、様々な機能部位によって生成されたシンボルを符号化済み映像シーケンスに変換する。
【0076】
送信器(640)が通信チャンネル(660)を通じた送信に備えるためにエントロピコーダ(645)によって生成された1つ以上の符号化された映像シーケンスをバッファリングしてもよく、送信器(640)は符号化された映像データを記憶する記憶装置につなげられたハードウェア/ソフトウェアであってもよい。送信器(640)は送信されることになる他のデータ、たとえば、符号化された音声データ及び/又は付属データストリーム(ソースは示されていない)を、映像コーダ(603)から得られた符号化された映像データに統合してもよい。
【0077】
コントローラ(650)は映像エンコーダ(603)の動作を管理してもよい。符号化の際、コントローラ(650)は符号化されたピクチャ毎に、それぞれのピクチャに適用することができる符号化手法に影響を及ぼすことができる特定の符号化済みピクチャのタイプを割り当ててもよい。たとえば、多くの場合、以下のピクチャタイプの1つとしてピクチャを割り当てることができる。
【0078】
Intra Picture(Iピクチャ)は予測の元になるものとしてシーケンス中の他の一切のピクチャを用いずに符号化及び復号を行なうことができるピクチャであるといえる。いくつかの映像コーデックでは、たとえばIndependent Decoder Refresh(IDR)ピクチャを含む様々なタイプのイントラピクチャが可能である。Iピクチャのこのような変形例とそれに対応する適用例及び特徴部とに当業者は想到する。
【0079】
predictive picture(Pピクチャ)はイントラ予測又はインタ予測を用い、各ブロックのサンプル値を予測するために最大1つの動きベクトルと参照インデックスとを用いて符号化及び復号を行なうことができるピクチャであるといえる。
【0080】
bi-directionally predictive picture(Bピクチャ)はイントラ予測又はインタ予測を用い、各ブロックのサンプル値を予測するために最大2つの動きベクトルと参照インデックスとを用いて符号化及び復号を行なうことができるピクチャであるといえる。同様に、multiple-predictive pictureでは、1つのブロックの再構成のために、3つ以上の参照ピクチャと関連メタデータとを用いることができる。
【0081】
一般的に、ソースピクチャを複数のサンプル符号化ブロックに空間的に細分することができ(たとえば、それぞれ4×4、8×8、4×8や16×16サンプルのブロック)、ブロックを1つずつ符号化することができる。それぞれのブロックに対応するピクチャに適用される符号化割当てによって決定される際に、他の(既に符号化された)ブロックを参照して予測してブロックを符号化してもよい。たとえば、Iピクチャのブロックを予測を用いずに符号化してもよいし、同じピクチャの既に符号化されたブロックを参照して、予測を用いて符号化してもよい(空間的予測又はイントラ予測)。Pピクチャの画素ブロックを、空間的予測を用いたり、以前に符号化された1つの参照ピクチャを参照して時間的予測を用いたりして、予測を用いて符号化してもよい。Bピクチャのブロックを、空間的予測を用いたり、以前に符号化された1つ又は2つの参照ピクチャを参照して時間的予測を用いたりして、予測を用いて符号化してもよい。ソースピクチャ又は中間処理ピクチャを他の目的で他のタイプのブロックに細分してもよい。符号化ブロック及び他のタイプのブロックの分割が同じ仕方に従ってもしたがわなくてもよく、これについてはさらに詳細に後述されている。
【0082】
映像エンコーダ(603)は既定の映像符号化技術や標準(たとえばITU-T勧告H.265)に従って符号化動作を行なってもよい。その動作では、映像エンコーダ(603)は入力映像シーケンスの時間的冗長さと空間的冗長さとを利用する予測符号化動作を含む様々な圧縮動作を行なってもよい。従って、符号化された映像データは用いられている映像符号化技術や標準によって定められているシンタックスに準拠してもよい。
【0083】
いくつかの実施形態では、送信器(640)は符号化された映像とともに付随データを送信してもよい。ソースコーダ(630)は符号化された映像シーケンスの一部としてこのようなデータを含んでもよい。付随データは時間的/空間的/SNRエンハンスメントレイヤ、冗長ピクチャや冗長スライスなどの冗長データの他の形態、SEIメッセージ、VUIパラメータ集合フラグメントなどを備えてもよい。
【0084】
映像を複数のソースピクチャ(映像ピクチャ)として時間順に撮像してもよい。ピクチャ内予測(イントラ予測と略されることが多い)では所与のピクチャ内の空間的相関を利用し、ピクチャ間予測ではピクチャ間の相関(時間的相関又は他の相関)を利用する。たとえば、現在のピクチャと称されている、符号化/復号中の特定のピクチャをブロックに分割してもよい。現在のピクチャ中のブロックが映像中の、以前に符号化されて依然としてバッファリングされている参照ピクチャ中の参照ブロックに類似する場合、現在のピクチャ中のブロックを、動きベクトルと称されているベクトルによって符号化してもよい。動きベクトルは参照ピクチャ中で参照ブロックの方に向いており、複数の参照ピクチャが用いられる場合、第3の次元を持って参照ピクチャを特定することができる。
【0085】
いくつかの実施形態では、ピクチャ間予測に双予測法(bi-prediction technique)を用いることができる。この双予測法によれば、映像中の現在のピクチャよりも復号順でともに先行する(これとは異なり、表示順でそれぞれ過去又は未来にあってもよい)第1の参照ピクチャ及び第2の参照ピクチャなどの2つの参照ピクチャを用いる。第1の参照ピクチャ中で第1の参照ブロックの方に向いている第1の動きベクトルと、第2の参照ピクチャ中で第2の参照ブロックの方に向いている第2の動きベクトルとによって現在のピクチャ中のブロックを符号化することができる。第1の参照ブロックと第2の参照ブロックとの組合せによってこれらを併用してブロックを予測することができる。
【0086】
さらに、ピクチャ間予測にマージモード法を用いて符号化効率を改善することができる。
【0087】
本開示のいくつかの実施形態に係れば、ピクチャ間予測やピクチャ内予測などの予測をブロックの単位で行なう。たとえば、圧縮のために一連の映像ピクチャ中のピクチャをcoding tree unit(CTU)に分割し、ピクチャ中のCTUは同じサイズ(たとえば64×64個の画素、32×32個の画素又は16×16個の画素)を持ってもよい。一般的に、CTUは並列する3つのcoding tree block(CTB)、すなわち、1つのluma CTBと2つのchroma CTBとを含んでもよい。各CTUを1つ以上のCoding Unit(CU)に再帰的に四分木分割することができる。たとえば、64×64個の画素のCTUを64×64個の画素の1つのCUや、32×32個の画素の4つのCUに分割することができる。32×32ブロックの1つ以上の各々を16×16個の画素の4つのCUにさらに分割してもよい。いくつかの実施形態では、符号化の際に各CUを解析して、インタ予測タイプやイントラ予測タイプなどの様々な予測タイプからCUの予測タイプを決めてもよい。時間的及び/又は空間的予測可能性に応じてCUを1つ以上のPrediction Unit(PU)に分割してもよい。一般的には、各PUは1つのluma予測ブロック(prediction block:PB)と2つのchroma PBとを含む。一実施形態では、符号化の予測動作(符号化/復号)を予測ブロックの単位で行なう。CUのPU(又は異なる色チャンネルのPB)への分割を様々な空間パターンで実行してもよい。luma PB又はchroma PBは、たとえば、8×8個の画素、16×16個の画素、8×16個の画素、16×8個のサンプルなどのサンプルの値(たとえば、luma値)の行列を含んでもよい。
【0088】
図7は本開示の別の実施形態に係る映像エンコーダ(703)の図を示す。映像エンコーダ(703)は、一連の映像ピクチャ中の現在の映像ピクチャ中のサンプル値の処理ブロック(たとえば予測ブロック)を受けて、処理ブロックを符号化して、符号化済み映像シーケンスの一部である符号化済みピクチャにするように構成されている。映像エンコーダ(703)の例を図4の例の映像エンコーダ(403)の代わりに用いてもよい。
【0089】
たとえば、映像エンコーダ(703)は8×8個のサンプルの予測ブロックなどの処理ブロックのサンプル値の行列を受ける。その後、映像エンコーダ(703)は、たとえばレート-歪み最適化(rate-distortion optimization:RDO)を用い、処理ブロックがイントラモードを用いて最も良く符号化されるのか、インタモードを用いて最も良く符号化されるのか、双予測モードを用いて最も良く符号化されるのかを決定する。処理ブロックがイントラモードで符号化されると決定される場合、映像エンコーダ(703)は処理ブロックを符号化して符号化済みピクチャにするためにイントラ予測法を用いてもよく、処理ブロックがインタモード又は双予測モードで符号化されると決定される場合、映像エンコーダ(703)は処理ブロックを符号化して符号化済みピクチャにするためにインタ予測法又は双予測法をそれぞれ用いてもよい。いくつかの実施形態では、予測器外の符号化動きベクトル構成要素の補助なしに1つ以上の動きベクトル予測器から動きベクトルを得るピクチャ間予測の下位モードとしてマージモードを用いてもよい。いくつかの他の実施形態では、対象となるブロックに適用可能な動きベクトル構成要素が存在してもよい。従って、映像エンコーダ(703)は処理ブロックの予測モードを決定するモード判定モジュールなど、図7に明示的には示されていない構成要素を含んでもよい。
【0090】
図7の例では、映像エンコーダ(703)は、図7の配置例に示されているように接続され合っている、インタエンコーダ(730)、イントラエンコーダ(722)、残差値計算器(723)、スイッチ(726)、残差値エンコーダ(724)、統括コントローラ(721)及びエントロピエンコーダ(725)を含む。
【0091】
インタエンコーダ(730)は、現在のブロック(たとえば処理ブロック)のサンプルを受け、当該ブロックを参照ピクチャ中の1つ以上の参照ブロック(たとえば、表示順で前のピクチャ及び後のピクチャ中のブロック)と比較し、インタ予測情報(たとえば、インタ符号化法にしたがった冗長情報の記述、動きベクトル、マージモード情報)を生成し、任意の適切な技術を用いてインタ予測情報に基づいてインタ予測結果(たとえば、予測されたブロック)を計算するように構成されている。いくつかの例では、参照ピクチャは、図6のエンコーダ620の例に組み込まれている復号部633(図7の残差デコーダ728(さらに詳細に後述されている)として示されている)を用いて、符号化された映像情報に基づいて復号された復号済み参照ピクチャである。
【0092】
イントラエンコーダ(722)は、現在のブロック(たとえば処理ブロック)のサンプルを受け、当該ブロックを同じピクチャ中の既に符号化されたブロックと比較し、変換後の量子化された係数を生成し、場合によって、イントラ予測情報(たとえば、1つ以上のイントラ符号化技術にしたがったイントラ予測方向情報)も生成するように構成されている。イントラエンコーダ(722)はイントラ予測情報と同じピクチャ中の参照ブロックとに基づいてイントラ予測結果(たとえば予測されたブロック)を計算してもよい。
【0093】
統括コントローラ(721)を、統括制御データを決定して、統括制御データに基づいて映像エンコーダ(703)の他の構成要素を制御するように構成してもよい。一例では、統括コントローラ(721)はブロックの予測モードを決定し、予測モードに基づいて制御信号をスイッチ(726)に提供する。たとえば、予測モードがイントラモードである場合、統括コントローラ(721)は残差値計算器(723)による使用に対してイントラモード結果を選択するようにスイッチ(726)を制御し、イントラ予測情報を選択してイントラ予測情報をビットストリームに含ませるようにエントロピエンコーダ(725)を制御し、ブロックに用いる予測モードがインタモードである場合、統括コントローラ(721)は残差値計算器(723)による使用に対してインタ予測結果を選択するようにスイッチ(726)を制御し、インタ予測情報を選択してインタ予測情報をビットストリームに含ませるようにエントロピエンコーダ(725)を制御する。
【0094】
残差値計算器(723)を、受けたブロックと、イントラエンコーダ(722)又はインタエンコーダ(730)から選択されたブロックについての予測結果との差分(残差値データ)を計算するように構成してもよい。残差値エンコーダ(724)を、残差値データを符号化して変換係数を生成するように構成してもよい。たとえば、残差値エンコーダ(724)を、残差値データを空間ドメインから周波数ドメインに変換して変換係数を生成するように構成してもよい。その後、変換係数は量子化処理を受け、量子化された変換係数が得られる。様々な実施形態では、映像エンコーダ(703)は残差デコーダ(728)も含む。残差デコーダ(728)は逆変換を行なって、復号された残差値データを生成するように構成されている。復号された残差値データをイントラエンコーダ(722)及びインタエンコーダ(730)によって適切に用いることができる。たとえば、インタエンコーダ(730)は復号された残差値データとインタ予測情報とに基づいて、復号されたブロックを生成することができ、イントラエンコーダ(722)は復号された残差値データとイントラ予測情報とに基づいて、復号されたブロックを生成することができる。復号されたブロックを適切に処理して復号済みピクチャが生成され、復号済みピクチャをメモリ回路(図示せず)にバッファリングして参照ピクチャとして用いることができる。
【0095】
エントロピエンコーダ(725)を、符号化されたブロックを含むようにビットストリームをフォーマットしてエントロピ符号化を実行するように構成してもよい。エントロピエンコーダ(725)は様々な情報をビットストリームに含ませるように構成されている。たとえば、エントロピエンコーダ(725)を、統括制御データ、選択された予測情報(たとえば、イントラ予測情報やインタ予測情報)、残差値情報及びその他適切な情報をビットストリームに含ませるように構成してもよい。インタモード又は双予測モードのいずれかのマージ下位モードでブロックを符号化する場合、残差値情報が存在しなくてもよい。
【0096】
図8は本開示の別の実施形態に係る映像デコーダ(810)の例の図を示す。映像デコーダ(810)は、符号化された映像シーケンスの一部である符号化されたピクチャを受け、符号化されたピクチャを復号して再構成されたピクチャを生成するように構成されている。一例では、映像デコーダ(810)を図4の例の映像デコーダ(410)の代わりに用いてもよい。
【0097】
図8の例では、映像デコーダ(810)は、図8の配置例に示されているように接続され合っている、エントロピデコーダ(871)、インタデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)及びイントラデコーダ(872)を含む。
【0098】
エントロピデコーダ(871)を、符号化されたピクチャから、符号化されたピクチャを構成するシンタックス要素を表わす特定のシンボルを再構成するように構成することができる。このようなシンボルは、たとえば、ブロックの符号化に用いるモード(たとえば、イントラモード、インタモード、双予測されるモード、マージ下位モードや別の下位モード)や、イントラデコーダ(872)又はインタデコーダ(880)による予測に用いられる特定のサンプル又はメタデータを特定することができる予測情報(たとえば、イントラ予測情報やインタ予測情報)や、たとえば量子化された変換係数の形態をとる残差情報などを含むことができる。一例では、予測モードがインタモード又は双予測されるモードである場合、インタ予測情報がインタデコーダ(880)に提供され、予測タイプがイントラ予測タイプである場合、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報に逆の量子化を施すことができ、これは残差デコーダ(873)に提供される。
【0099】
インタデコーダ(880)を、インタ予測情報を受け、インタ予測情報に基づいてインタ予測結果を生成するように構成してもよい。
【0100】
イントラデコーダ(872)を、イントラ予測情報を受け、イントラ予測情報に基づいて予測結果を生成するように構成してもよい。
【0101】
残差デコーダ(873)を、逆の量子化を行なって、逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差を周波数ドメインから空間ドメインに変換するように構成してもよい。残差デコーダ(873)は(クオンタイザパラメータ(QP)を含むように)特定の制御情報も利用してもよく、当該情報はエントロピデコーダ(871)によって提供されてもよい(これは少量のデータ量しかない制御情報であるといえるので、データ経路は示されていない)。
【0102】
再構成モジュール(874)を、空間ドメインにおいて、残差デコーダ(873)によって出力された残差と予測結果(場合に応じてインタ予測モジュール又はイントラ予測モジュールによって出力される)とを組み合せて、再構成された映像の一部として再構成されたピクチャの一部を形成する再構成されたブロックを形成するように構成してもよい。デブロック動作などの他の適切な動作を行なって、映像品質を改善することもできることに留意する。
【0103】
映像エンコーダ(403)、(603)及び(703)と映像デコーダ(410)、(510)及び(810)とを任意の適切な手法を用いて実施することができることに留意する。いくつかの実施形態では、映像エンコーダ(403)、(603)及び(703)と映像デコーダ(410)、(510)及び(810)とを1つ以上の集積回路を用いて実施することができる。別の実施形態では、映像エンコーダ(403)、(603)及び(603)と映像デコーダ(410)、(510)及び(810)とをソフトウェア指示を実行する1つ以上のプロセッサを用いて実施することができる。
【0104】
符号化及び復号に用いられるブロック分割に注目すると、一般的な分割はベースブロックを起点として、既定の規則集合、特定のパターン、分割ツリーや、なんらかの分割構造や方式にしたがうことができる。分割は階層的であっても再帰的であってもよい。後述されている分割手順の例や他の手順や、これらの組合せのいずれかに従ってベースブロックを分ける、すなわち分割した後、分割部すなわち符号化ブロックの最終的な集合を取得することができる。このような分割部の各々は分割階層の様々な分割レベルの1つにある分割部であってもよく、様々な形状であってもよい。分割部の各々は符号化ブロック(coding block:CB)と称される場合がある。以下でさらに説明されている様々な分割実現例では、得られた各CBは許容されるサイズ及び許容される分割レベルのいずれかのCBであってもよい。このような分割部は単位(unit)を形成することができ、単位に対して、符号化/復号のいくつかの基本的な判定を行なうことができ、符号化された映像ビットストリームにおいて符号化/復号パラメータの最適化、決定、シグナリングを行なうことができるので、このような分割部は符号化ブロックと称される。最終的な分割部の最高レベル又は最深レベルはツリーの符号化ブロック分割構造の深度を表わす。符号化ブロックはluma符号化ブロックであってもchroma符号化ブロックであってもよい。各色のCBツリー構造はcoding block tree(CBT)と称される場合がある。
【0105】
すべての色チャンネルの符号化ブロックをまとめてcoding unit(CU)と総称する場合がある。すべての色チャンネルのための階層構造をまとめてcoding tree unit(CTU)と総称する場合がある。CTUにおける様々な色チャンネルの分割パターン又は構造は同じであってもよいし同じでなくてもよい。
【0106】
いくつかの実現例では、lumaチャンネルとchromaチャンネルとに用いられる分割ツリー方式又は構造が同じである必要はない場合がある。言い換えると、lumaチャンネルとchromaチャンネルが別々の符号化ツリー構造又はパターンを持つ場合がある。さらに、luma及びchromaチャンネルに同じ符号化分割ツリー構造が用いられるのか異なる符号化分割ツリー構造が用いられるのかと、用いられる実際の符号化分割ツリー構造とが、符号化中のスライスがPスライスであるのかBスライスであるのかIスライスであるのかのいずれなのかに依存してもよい。たとえば、Iスライスでは、chromaチャンネルとlumaチャンネルとが別々の符号化分割ツリー構造又は符号化分割ツリー構造モードを持ってもよい一方で、Pスライス又はBスライスでは、lumaチャンネルとchromaチャンネルとが同じ符号化分割ツリー方式を共有してもよい。別々の符号化分割ツリー構造又はモードが適用される場合、lumaチャンネルを所定の符号化分割ツリー構造によってCBに分割することができ、chromaチャンネルを別の符号化分割ツリー構造によってchroma CBに分割することができる。
【0107】
いくつかの実現例では、既定の分割パターンをベースブロックに適用することができる。図9に示されているように、4通りの分割ツリーの例で、最初の既定のレベル(ベースブロックサイズとして、たとえば64×64ブロックレベルやその他サイズ)を起点とすることができ、ベースブロックを分割して既定の最低レベル(たとえば4×4レベル)まで階層を下げることができる。たとえば、ベースブロックに902、904、906及び908によって示されている既定の4つの分割選択肢すなわち分割パターンが適用されてもよく、図9に示されている同じ分割選択肢を最低レベル(たとえば4×4レベル)までより小さいスケールで繰り返すことができる点で、Rで示されている分割部を再帰的分割に用いることができる。いくつかの実現例では、図9の分割方式には別の制限が適用される場合がある。図9の実現例において、矩形分割部(たとえば、1:2/2:1の矩形分割)を用いることができるが、矩形分割部を再帰的にすることはできない一方で、正方形分割部を再帰的にすることができる。必要な場合に再帰を用いる図9に従って分割することで、符号化ブロックの最終的な集合が生成される。ルートノードすなわちルートブロックを起点とする分割深度を示すように符号化ツリー深度をさらに定めてもよい。たとえば、ルートノードすなわちルートブロック(たとえば64×64ブロック)の符号化ツリー深度を0に設定することができ、さらに、ルートブロックを図9に従って1回分割した後は、符号化ツリー深度が1だけ増加する。64×64ベースブロックから4×4の最小分割部までの最大レベルすなわち最深レベルは上記の方式では4(レベル0を起点とする)になる。このような分割方式を色チャンネルの1つ以上に適用することができる。各色チャンネルを図9の方式に従って個別に分割することができる(たとえば、各階層レベルの色チャンネル毎に既定のパターンから分割パターンすなわち選択肢を個別に決定してもよい)。これの代わりに、色チャンネルの2つ以上が図9の同じ階層パターンツリーを共有してもよい(たとえば、各階層レベルの2つ以上の色チャンネルに対して既定のパターンから同じ分割パターンすなわち選択肢を選択してもよい)。
【0108】
図10は再帰的分割によって分割ツリーを形成するのを可能にする既定の分割パターンの別の例を示す。図10に示されているように、10通りの分割構造すなわちパターンの例を既定することができる。ルートブロックは既定のレベル(たとえば128×128レベルや64×64レベルのベースブロック)を起点とすることができる。図10の分割構造の例は様々な2:1/1:2矩形分割部及び4:1/1:4矩形分割部を含む。図10の2行目にある3つの細分物表示物1002、1004、1006及び1008を持つ分割タイプは「Tタイプ」分割に適用される場合がある。「Tタイプ」分割1002、1004、1006及び1008は左Tタイプ、上Tタイプ、右Tタイプ及び下Tタイプと称される場合がある。いくつかの実現例では、図10の矩形分割のいずれもさらに細分することができない。ルートノードすなわちルートブロックを起点とする分割深度を示すように符号化ツリー深度をさらに定めてもよい。たとえば、ルートノードすなわちルートブロック(たとえば128×128ブロック)の符号化ツリー深度を0に設定することができ、さらに、ルートブロックを図10に従って1回分割した後は、符号化ツリー深度が1だけ増加する。いくつかの実現例では、図10のパターンに従って分割ツリーの次のレベルにする再帰的分割には、1010にある、すべてが正方形の分割しか用いることができない。言い換えると、Tタイプパターン1002、1004、1006及び1008中の正方形分割部には再帰的分割を用いることができない。必要な場合に再帰を用いる図10にしたがう分割手順を用いることで、符号化ブロックの最終的な集合が生成される。このような方式を色チャンネルの1つ以上に適用することができる。いくつかの実現例では、8×8レベル以下の分割の使用に対してより高い柔軟性を付加することができる。たとえば、いくつかの例に2×2chromaインタ予測を用いることができる。
【0109】
符号化ブロック分割の他の実現例では、ベースブロック又は中間ブロックを四分木分割部に分割するために四分木構造を用いることができる。このような四分木分割をあらゆる正方形形状の分割に階層的かつ再帰的に適用することができる。ベースブロック又は中間ブロック/分割部の様々な局所的特徴に合せて、ベースブロック又は中間ブロックすなわち分割部をさらに四分木分割するかの可否を最適化することができる。さらに、ピクチャ境界での四分木分割を最適化することができる。たとえば、サイズがピクチャ境界に適するまでブロックが四分木分割され続けるように、ピクチャ境界で暗示的な(implicit)四分木分割を実行してもよい。
【0110】
他の実現例では、ベースブロックを起点とする階層的な二分分割を用いることができる。このような方式では、ベースブロック又は中間レベルブロックを2つの分割部に分割することができる。二分分割は水平と垂直とのいずれであってもよい。たとえば、水平二分分割はベースブロック又は中間ブロックを均等な左右の分割部に分割することができる。同様に、垂直二分分割はベースブロック又は中間ブロックを均等な上下の分割部に分割することができる。このような二分分割は階層的かつ再帰的であってもよい。ベースブロック又は中間ブロックの各々で、二分分割方式を継続するか否かを判定することができ、この方式をさらに継続する場合は、水平二分分割を用いるべきか垂直二分分割を用いるべきかを決定することができる。いくつかの実現例では、既定の最小分割サイズでこれ以上の分割を止めることができる(一方の次元の最小分割サイズと両方の次元の最小分割サイズとのいずれでも止めることができる)。これの代わりに、ベースブロックを起点とする既定の分割レベルすなわち深度に達したら、これ以上の分割を止めてもよい。いくつかの実現例では、分割部のアスペクト比を制限することができる。たとえば、分割部のアスペクト比を1:4未満(又は4:1を超える)にすることができない。従って、垂直対水平アスペクト比が4:1である垂直短冊状分割部については、垂直に上下の分割部にさらに二分分割することしかできず、上下の分割部の各々の垂直対水平アスペクト比は2:1である。
【0111】
さらにいくつかの他の例では、ベースブロック又はいずれかの中間ブロックを分割するために図13に示されているような三分分割方式を用いることができる。三分パターンを図13の1302に示されているように垂直に実施したり図13の1304に示されているように水平に実施したりすることができる。図13の分割比の例は垂直と水平とのいずれでも1:2:1として示されているが、他の比を既定してもよい。いくつかの実現例では、2つ以上の異なる比を既定してもよい。四分木と二分木とが常にブロック中央に沿って分割されるためにオブジェクトを別々の分割部に分割させるのに対して、このようなトリプルツリー分割は切れ目がなく連続する1つの分割部のブロック中央にあるオブジェクトを捕えることができるという点で四分木又は二分分割構造を補完するためにこのような三分分割方式を用いることができる。いくつかの実現例では、典型的なトリプルツリーの分割部の幅及び高さはさらなる変換を避けるために常に2の累乗である。
【0112】
上記の分割方式を様々な分割レベルであらゆる仕方で組み合せることができる。一例として、上述の四分木分割方式と二分分割方式とを組み合せてベースブロックを四分木-二分木(quadtree-binary-tree:QTBT)構造に分割してもよい。このような方式では、ベースブロック又は中間ブロック/分割部は、既定の条件の集合(条件が指定される場合)に従って、四分木分割か二分分割かのいずれかであってもよい。特定の例を図14に示す。図14の例では、まず、ベースブロックが1402、1404、1406及び1408に示されている4つの分割部に四分木分割される。その後、得られた分割部の各々は次のレベルの4つのさらなる分割部に四分木分割されるか(たとえば1408)、2つのさらなる分割部に二分分割されるか(たとえば、1402又は1406のように水平か垂直かのいずれかに分割され、その両方とも対称形である)、分割されないか(たとえば1404)のいずれかになる。1410の典型的な分割パターン全体と、1420の対応するツリー構造/表現とに示されているように、二分分割又は四分木分割を正方形形状の分割部に再帰的に用いることができる。1410及び1420では、実線が四分木分割を表わし、破線が二分分割を表わす。各二分分割ノード(葉でない二分分割)にフラグを用いて、二分分割が水平であるのか垂直であるのかを示すことができる。たとえば、1410の分割構造と整合する1420に示されているように、フラグ“0”が水平二分分割を表わすといえ、フラグ“1”が垂直二分分割を表わすといえる。四分木分割の分割部については、四分木分割では、同サイズの4つのサブブロック/分割部が生成されるように常に水平と垂直との両方でブロックすなわち分割部が分割されるので、分割タイプを示す必要がない。いくつかの実現例では、フラグ“1”が水平二分分割を表わしてもよく、フラグ“0”が垂直二分分割を表わしてもよい。
【0113】
QTBTのいくつかの実現例では、四分木分割及び二分分割の規則集合を以下の既定のパラメータと、これに関連する対応する機能とによって表わすことができる。
-CTUサイズ:四分木のルートノードサイズ(ベースブロックのサイズ)
-MinQTSize:最小許容四分木葉ノードサイズ
-MaxBTSize:最大許容二分木ルートノードサイズ
-MaxBTDepth:最大許容二分木深度
-MinBTSize:最小許容二分木葉ノードサイズ
QTBT分割構造のいくつかの実現例では、CTUサイズを、chromaサンプルの対応する64×64ブロックを有する128×128lumaサンプルとして設定することができ(典型的なchromaサブサンプリングを想定して用いる場合)、MinQTSizeを16×16として設定することができ、MaxBTSizeを64×64として設定することができ、MinBTSize(幅と高さとの両方のMinBTSize)を4×4として設定してもよく、MaxBTDepthを4として設定することができる。最初に四分木葉ノードを生成するように四分木分割をCTUに適用することができる。四分木葉ノードは四分木葉ノードがとり得る最小サイズ16×16(すなわちMinQTSize)から128×128(すなわちCTUサイズ)のサイズをとることができる。ノードが128×128である場合、サイズがMaxBTSize(すなわち64×64)を超えるので、最初に二分木によって分割されない。これ以外の場合に、MaxBTSizeを超えないノードを二分木によって分割することができる。図14の例では、ベースブロックは128×128である。既定の規則集合にしたがえば、基本ブロックには四分木分割しか行なうことができない。ベースブロックの分割深度はゼロである。得られた4つの分割部の各々は64×64であって、MaxBTSizeを超えず、レベル1で各分割部をさらに四分木分割又は二分木分割することができる。プロセスが進行する。二分木深度がMaxBTDepth(すなわち4)に達するときに、これ以上分割されないとみなすことができる。二分木ノードの幅がMinBTSize(すなわち4)に等しいときに、これ以上水平分割されないとみなすことができる。同様に、二分木ノードの高さがMinBTSizeに等しいときに、これ以上垂直分割されないとみなされる。
【0114】
いくつかの実現例では、上記のQTBT方式を、同じQTBT構造を持つluma及びchromaの柔軟性に対応するように構成することができるし、別々のQTBT構造を持つluma及びchromaの柔軟性に対応するように構成することもできる。たとえば、Pスライス及びBスライスでは、1つのCTU中のluma CTBとchroma CTBとが同じQTBT構造を共有してもよい。一方で、Iスライスでは、luma CTBをQTBT構造によってCBに分割してもよく、chroma CTBを別のQTBT構造によってchroma CBに分割してもよい。このことは、Iスライス中の異なる色チャンネルに適用するためにCUを用いることができ、たとえば、Iスライスがluma成分の符号化ブロック又は2つのchroma成分の符号化ブロックからなり得、Pスライス又はBスライスのCUが3つのすべての色成分の符号化ブロックからなり得ることを意味する。
【0115】
他の実現例では、QTBT方式を上述の三分方式を用いて補完することができる。このような実現例はマルチタイプツリー(multi-type-tree:MTT)構造と称される場合がある。たとえば、ノードの二分分割に加えて、図13の三分分割パターンの一方を選択することができる。いくつかの実現例では、正方形ノードのみに三分分割を施すことができる。三分分割が水平であるのか垂直であるのかを示すためにさらに別のフラグを用いることができる。
【0116】
QTBT実現例や、三分分割によって補完されるQTBT実現例などの2レベルツリーやマルチレベルツリーを設計しようとしたのは主に複雑さを緩和するためであるといえる。理論上、ツリーにわたる複雑さはTDである。ここで、Tは分割タイプの個数を示し、Dはツリーの深度である。深度(D)を削減しつつ複数のタイプ(T)を用いることでトレードオフを図ることができる。
【0117】
いくつかの実現例では、CBをさらに分割することができる。たとえば、符号化プロセス及び復号プロセスの際のフレーム内予測又はフレーム間予測のための複数の予測ブロック(prediction block:PB)にCBをさらに分割することができる。言い換えると、CBを異なる細分部にさらに分割することができ、個別の予測判定/構成を行なうことができる。これと平行して、映像データの変換又は逆変換が実行されるレベルを定めるために複数の変換ブロック(transform block:TB)にCBをさらに分割することができる。CBをPB及びTBに分割する方式は同じであっても同じでなくてもよい。たとえば、各分割方式をたとえば映像データの様々な特徴に基づいてその分割方式独自の手順を用いて実行してもよい。いくつかの実現例では、PB分割方式とTB分割方式とが無関係であってもよい。他の実現例では、PB及びTB分割方式と境界とが相関してもよい。I実現例、たとえば、PB分割の後にTBを分割してもよく、特に、符号化ブロックの分割に従って決定された後に、各PBを1つ以上のTBにさらに分割してもよい。たとえば、いくつかの実現例では、PBを1つのTB、2つのTB、4つのTBや他の個数のTBに分割してもよい。
【0118】
いくつかの実現例では、ベースブロックを符号化ブロックに分割し、さらに予測ブロック及び/又は変換ブロックに分割する場合に、lumaチャンネルとchromaチャンネルとを異なる仕方で扱うことができる。たとえば、いくつかの実現例では、符号化ブロックの予測ブロック及び/又は変換ブロックへの分割をlumaチャンネルに用いることができるのに対して、符号化ブロックの予測ブロック及び/又は変換ブロックへの当該分割を1つ以上のchromaチャンネルに用いることができない。従って、このような実現例では、符号化ブロックレベルではlumaブロックの変換及び/又は予測のみを実行することができる。別の例では、lumaチャンネルと1つ以上のchromaチャンネルとの最小変換ブロックサイズが異なってもよく、たとえば、lumaチャンネルの符号化ブロックをchromaチャンネルよりも小さい変換ブロック及び/又は予測ブロックに分割することを可能にしてもよい。さらに別の例では、符号化ブロック及び/又は予測ブロックを変換ブロックに分割する最大深度がlumaチャンネルとchromaチャンネルとで異なってもよく、たとえば、lumaチャンネルの符号化ブロックを1つ以上のchromaチャンネルよりも深い変換ブロック及び/又は予測ブロックに分割することを可能にしてもよい。特定の例では、luma符号化ブロックを複数のサイズの変換ブロックに分割してもよく、このことを、最大2レベル分下がる再帰的分割と表現することができ、正方形、2:1/1:2や4:1/1:4などの変換ブロックの形状と、4×4から64×64の変換ブロックサイズとを可能にしてもよい。これに対して、chromaブロックでは、lumaブロックに対して指定されている可能な最大変換ブロックのみを可能にしてもよい。
【0119】
符号化ブロックをPBに分割するいくつかの実現例では、PB分割の深度、形状及び/又はその他特性が、PBがイントラ符号化されるのかインタ符号化されるのかに依存してもよい。
【0120】
符号化ブロック(又は予測ブロック)の変換ブロックへの分割を、四分木分割と既定のパターン分割とを含む(ただしこれらに限定されない)様々な典型的な方式で再帰的に実施しても再帰的ではない仕方で実施してもよく、符号化ブロック又は予測ブロックの境界で変換ブロックについてさらに検討して実施してもよい。一般的に言えば、得られた変換ブロックが異なる分割レベルの変換ブロックであってもよく、同じサイズの変換ブロックでなくてもよく、形状が正方形であることを要さなくてもよい(たとえば、いくつかの許容サイズ及びアスペクト比を持つ矩形であることが可能である)。図15図16及び図17に関してさらなる例が以降でさらに詳細に説明されている。
【0121】
上記の仕方に対して、他の実現例では、上記の分割方式のいずれかを通じて得られたCBを基本符号化ブロックすなわち最小符号化ブロックとして予測及び/又は変換に用いてもよい。言い換えると、インタ予測/イントラ予測の目的及び/又は変換の目的でこれ以上分割が実行されない。たとえば、上記のQTBT方式から得られるCBを、予測を実行するための単位として直接用いてもよい。具体的には、このようなQTBT構造において複数の分割タイプというコンセプトを排除し、すなわち、CU、PU及びTUの分離を排除して、上述のCU/CB分割形状のより高い柔軟性に対応する。このようなQTBTブロック構造では、CU/CBが正方形形状と矩形形状とのいずれも持つことができる。このようなQTBTの葉ノードがこれ以上一切分割することなく予測及び変換処理のための単位として用いられる。このことは、このようなQTBT符号化ブロック構造の例ではCU、PU及びTUのブロックサイズが同じであることを意味する。
【0122】
上記の様々なCB分割方式とCBをPB及び/又はTBにさらに分割すること(PB/TB分割を含まない)とをあらゆる仕方で組み合せてもよい。以下の特定の実現例は限定を課さない例として提供されている。
【0123】
以下、符号化ブロック分割及び変換ブロック分割の特定の実現例を説明する。このような実現例では、再帰的四分木分割又は上述の既定の分割パターン(図9及び図10の分割パターンなど)を用いてベースブロックを符号化ブロックに分割することができる。レベル毎に、特定の分割部をさらに四分木分割することを継続するべきか否かを局所的な映像データ特性によって決定することができる。得られたCBが様々な四分木分割レベルのCBであってもよく、様々なサイズのCBであってもよい。ピクチャエリアをピクチャ間(時間的)予測を用いて符号化するべきかピクチャ内(空間的)予測を用いて符号化するべきかの判定をCBレベルで行なうことができる(三色チャンネルすべてに対してCUレベルで行なうこともできる)。既定のPB分割タイプに応じて各CBを1つのPB、2つのPB、4つのPBや他の個数のPBにさらに分割することができる。1つのPB中では、同じ予測プロセスを適用することができ、関連情報をPB単位でデコーダに送ることができる。PB分割タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後、CBの符号化ツリーと同様の別の四分木構造に従ってCBをTBに分割することができる。この特定の実現例では、CB又はTBを正方形形状に限定してもよいが、限定せざるを得ないわけではない。さらにこの特定の例では、インタ予測の場合にはPBが正方形形状であっても矩形形状であってもよく、イントラ予測の場合にはPBが正方形に限られてもよい。符号化ブロックをたとえば4つの正方形形状のTBに分割してもよい。さらに各TBをより小さいTBに(四分木分割を用いて)再帰的に分割してもよく、これは残差四分木(Residual Quadtree:RQT)と称される。
【0124】
以下、ベースブロックをCB、PB及び/又はTBに分割する別の実現例をさらに説明する。たとえば、図9又は図10に示されているものなどの複数の分割単位タイプを用いるのではなく、二分分割の分割構造と三分分割の分割構造とを用いるネスト化マルチタイプツリーをともなう四分木(たとえば、上述されているQTBT又は三分分割をともなうQTBT)を用いることができる。CB、PB及びTBの分離(すなわち、CBのPB及び/又はTBへの分割と、PBのTBへの分割)を、最大変換長に対してサイズが過大であるCB(このようなCBはさらに分割する必要がある場合がある)に必要な場合を除いて、中止することができる。これ以上分割せずに予測と変換との両方をCBレベルに対して実行することができるように、CB分割形状のより高い柔軟性に対応するようにこの典型的な分割方式を設計することができる。このような符号化ツリー構造では、CBが正方形形状と矩形形状とのいずれも持つことができる。特に、coding tree block(CTB)を最初に四分木構造によって分割することができる。その後、四分木葉ノードをネスト化マルチタイプツリー構造によってさらに分割することができる。二分分割又は三分分割を用いるネスト化マルチタイプツリー構造の例が図11に示されている。特に、図11の典型的なマルチタイプツリー構造は垂直二分分割(SPLIT_BT_VER)(1102)、水平二分分割(SPLIT_BT_HOR)(1104)、垂直三分分割(SPLIT_TT_VER)(1106)及び水平三分分割(SPLIT_TT_HOR)(1108)と称される4つの分割タイプを含む。その後、CBはマルチタイプツリーの葉に対応する。本実現例では、CBが最大変換長に対して過大である場合を除いて、このセグメンテーションがこれ以上一切分割することなく予測処理と変換処理との両方に用いられる。このことは、ほとんどの場合にネスト化マルチタイプツリー符号化ブロック構造をともなう四分木においてCB、PB及びTBのブロックサイズが同じであることを意味する。対応可能な最大変換長がCBの色成分の幅又は高さ未満である場合に例外が生じる。いくつかの実現例では、二分分割又は三分分割に加えて、図11のネスト化パターンは四分木分割をさらに含むことができる。
【0125】
1つのベースブロックに対するブロック分割のネスト化マルチタイプツリー符号化ブロック構造をともなう四分木(四分木選択肢、二分分割選択肢及び三分分割選択肢を含む)の特定の例の1つが図12に示されている。さらに詳細に説明すると、図12はベースブロック1200が4つの正方形分割部1202、1204、1206及び1208に四分木分割される様子を示している。さらに分割するために図11のマルチタイプツリー構造と四分木とをさらに用いるべきかが四分木分割の分割部毎に判定される。図12の例では、分割部1204はこれ以上分割されない。分割部1202及び1208の各々には別の四分木分割が用いられる。分割部1202では、第2レベルの四分木分割がなされた左上、右上、左下及び右下分割部に、四分木、図11の水平二分分割1104、分割なし及び図11の水平三分分割1108という第3レベル分割がそれぞれ用いられる。分割部1208には別の四分木分割が用いられ、第2レベルの四分木分割がなされた左上、右上、左下及び右下分割部に、図11の垂直三分分割1106、分割なし、分割なし及び図11の水平二分分割1104という第3レベル分割がそれぞれ用いられる。1208の第3レベル左上分割部の細分部の2つが図11の水平二分分割1104及び水平三分分割1108に従ってそれぞれさらに分割される。分割部1206には図11の垂直二分分割1102にしたがう第2レベルの分割パターンが用いられて2つの分割部に分割され、2つの分割部は第3レベルで図11の水平三分分割1108及び垂直二分分割1102に従ってさらに分割される。これらの1つに図11の水平二分分割1104に従って第4レベルの分割がさらに適用される。
【0126】
上記の特定の例では、最大luma変換サイズは64×64であってもよく、対応可能な最大chroma変換サイズはlumaとは異なる(たとえば32×32)ことが可能である。図12の上記の典型的なCBはより小さいPB及び/又はTBにさらに分割されないのが通常であるが、それでもluma符号化ブロック又はchroma符号化ブロックの幅又は高さが最大変換幅又は高さを超える場合は、luma符号化ブロック又はchroma符号化ブロックを水平及び/又は垂直方向に自動的に分割して当該方向の変換サイズ制限を満たすことができる。
【0127】
上述されているベースブロックをCBに分割する特定の例では、上述されているように、符号化ツリー方式が、lumaとchromaとが別々のブロックツリー構造を持つことができることに対応することができる。たとえば、Pスライス及びBスライスでは、1つのCTU中のluma CTBとchroma CTBとが同じ符号化ツリー構造を共有してもよい。Iスライスでは、たとえば、lumaとchromaとが別々の符号化ブロックツリー構造を持ってもよい。別々のブロックツリー構造が適用される場合、luma CTBを所定の符号化ツリー構造によってluma CBに分割することができ、chroma CTBを別の符号化ツリー構造によってchroma CBに分割する。このことは、Iスライス中のCUがluma成分の符号化ブロック又は2つのchroma成分の符号化ブロックからなり得、Pスライス又はBスライス中のCUが、映像が単色映像である場合を除いて、常に3つのすべての色成分の符号化ブロックからなることを意味する。
【0128】
符号化ブロックが複数の変換ブロックにさらに分割される場合、符号化ブロック中の変換ブロックは様々な順序にしたがうビットストリーム中の順序であってもよいし、スキャンの仕方にしたがうビットストリーム中の順序であってもよい。符号化ブロック又は予測ブロックを変換ブロックに分割する実現例と変換ブロックの符号化順序とがさらに詳細に後述されている。いくつかの実現例では、上述されているように、変換分割は、複数の形状(変換ブロックサイズの範囲がたとえば4×4から64×64である場合、たとえば1:1(正方形)、1:2/2:1や1:4/4:1)の変換ブロックに対応することができる。いくつかの実現例では、符号化ブロックが64×64以下である場合、chromaブロックでは変換ブロックサイズが符号化ブロックサイズと同一になるように変換ブロック分割をluma成分のみに適用することができる。上記以外の場合において、符号化ブロックの幅又は高さが64を超えるときは、luma符号化ブロックとchroma符号化ブロックとの両方をmin(W,64)×min(H,64)の倍数の変換ブロックとmin(W,32)×min(H,32)の倍数の変換ブロックとにそれぞれ暗示的に分割することができる。
【0129】
変換ブロック分割のいくつかの実現例において、イントラ符号化ブロック及びインタ符号化ブロックでは、既定のレベル数(たとえば2レベル)までの分割深度を用いて符号化ブロックを複数の変換ブロックにさらに分割することができる。変換ブロックの分割深度と分割サイズとを関連づけることができる。いくつかの実現例について、現在の深度の変換サイズから次の深度の変換サイズへの対応づけが表1に以下の通りに示されている。
【表1】
【0130】
表1の対応づけの例に基づいて、1:1正方形ブロックについては、次のレベルの変換分割部では4つの1:1正方形サブ変換ブロックを生じさせることができる。変換分割をたとえば4×4で中止することができる。従って、4×4である現在の深度の変換サイズは次の深度では同じ4×4のサイズに対応する。表1の例では、正方形ではない1:2/2:1ブロックについては、次のレベルの変換分割部では2つの1:1正方形サブ変換ブロックを生じさせることができるのに対して、正方形ではない1:4/4:1ブロックについては、次のレベルの変換分割部では2つの1:2/2:1サブ変換ブロックを生じさせることができる。
【0131】
いくつかの実現例では、イントラ符号化ブロックのluma成分については、変換ブロック分割に関してさらに別の制限を適用することができる。たとえば、変換分割のレベル毎に、すべてのサブ変換ブロックを、サイズが等しいものに制限することができる。たとえば、32×16符号化ブロックでは、レベル1変換分割部では2つの16×16サブ変換ブロックが生じ、レベル2変換分割部では8つの8×8サブ変換ブロックが生じる。言い換えると、transform unitを同サイズに保つようにすべての第1レベルのサブブロックに第2レベルの分割が適用されることが必ず行なわれる。表1にしたがうイントラ符号化正方形ブロックの場合の変換ブロック分割の例が図15に、矢印によって示されている符号化順序とともに示されている。具体的に説明すると、1502は正方形符号化ブロックを示す。表1に従って第1レベル分割を行なって同サイズの4つの変換ブロックにするものが1504に示されており、符号化順序が矢印によって示されている。表1に従って第1レベルの同サイズのブロックのすべてに対して第2レベル分割を行なって同サイズの16個の変換ブロックにするものが1506に示されており、符号化順序が矢印によって示されている。
【0132】
いくつかの実現例では、インタ符号化ブロックのluma成分にはイントラ符号化に対する上記の制限を適用しなくてもよい。たとえば、第1レベルの変換分割の後、サブ変換ブロックのいずれか1つをさらに1レベル付け足して他とは無関係にさらに分割してもよい。従って、得られた変換ブロックは同じサイズの変換ブロックである場合もあるし、同じサイズの変換ブロックでない場合もある。インタ符号化ブロックを変換ブロックに分割する例がその符号化順序とともに図16に示されている。図16の例では、インタ符号化ブロック1602が表1に従って2つのレベルの変換ブロックに分割される。第1レベルでは、インタ符号化ブロックが同サイズの4つの変換ブロックに分割される。その後、4つの変換ブロックのうちの1つのみ(4つのすべてではない)が4つのサブ変換ブロックにさらに分割され、この結果、1604に示されているように異なる2つのサイズの合計7つの変換ブロックが得られる。これらの7つの変換ブロックの符号化順序の例が図16の1604に矢印によって示されている。
【0133】
いくつかの実現例では、1つ以上のchroma成分について変換ブロックに対するいくつかのさらに別の制限を適用することができる。たとえば、1つ以上のchroma成分について変換ブロックサイズが符号化ブロックサイズと同程度の大きさであることが可能である。ただし、既定のサイズ(たとえば8×8)未満にはならない。
【0134】
いくつかの他の実現例では、幅(W)か高さ(H)かのいずれかが64を超える符号化ブロックについて、luma符号化ブロックとchroma符号化ブロックとの両方をmin(W,64)×min(H,64)の倍数のtransform unitとmin(W,32)×min(H,32)の倍数のtransform unitとにそれぞれ暗示的に分割することができる。ここで、本開示では、min(a,b)はaとbとで小さい方の値を返すことができる。
【0135】
図17は符号化ブロック又は予測ブロックを変換ブロックに分割する別の代替方式の例をさらに示す。図17に示されているように、再帰的な変換分割を用いる代わりに、符号化ブロックの変換タイプに応じて分割タイプの既定の集合を符号化ブロックに適用することができる。図17に示されている特定の例では、6つの典型的な分割タイプの1つを適用して符号化ブロックを様々な個数の変換ブロックに分割することができる。変換ブロック分割を引き起こすこのような方式を符号化ブロックと予測ブロックとのいずれにも適用することができる。
【0136】
さらに詳細に説明すると、図17の分割方式によって所与のあらゆる変換タイプに対して最大6つの典型的な分割タイプが提供される(ここで言及されている変換タイプは、たとえば、ADSTなどの主要な変換の変換タイプを指す)。この方式では、どの符号化ブロック又は予測ブロックにもたとえばレート-歪みコスト(rate-distortion cost)に基づいて変換分割タイプを割り当てることができる。一例では、符号化ブロック又は予測ブロックに割り当てられる変換分割タイプを符号化ブロック又は予測ブロックの変換タイプに基づいて決定することができる。図17に示されている6つの変換分割タイプによって示されているように、特定の変換分割タイプが変換ブロック分割サイズ及びパターンに対応することができる。様々な変換タイプと様々な変換分割タイプとの対応関係を既定することができる。以下に例を示す。大文字の説明は、符号化ブロック又は予測ブロックにレート歪みコストに基づいて割り当てることができる変換分割タイプを示す。
【0137】
・PARTITION_NONE:ブロックサイズに等しい変換サイズを割り当てる。
【0138】
・PARTITION_SPLIT:ブロックサイズの幅の1/2でありかつブロックサイズの高さの1/2である変換サイズを割り当てる。
【0139】
・PARTITION_HORZ:ブロックサイズと同じ幅を持ちかつブロックサイズの高さの1/2を持つ変換サイズを割り当てる。
【0140】
・PARTITION_VERT:ブロックサイズの幅の1/2を持ちかつブロックサイズと同じ高さを持つ変換サイズを割り当てる。
【0141】
・PARTITION_HORZ4:ブロックサイズと同じ幅を持ちかつブロックサイズの高さの1/4を持つ変換サイズを割り当てる。
【0142】
・PARTITION_VERT4:ブロックサイズの幅の1/4を持ちかつブロックサイズと同じ高さを持つ変換サイズを割り当てる。
【0143】
上記の例では、図17に示されている変換分割タイプのすべてが分割された変換ブロックについて同一の変換サイズを含む。これは限定ではなく例にすぎない。他の実現例では、異なる変換ブロックサイズが混ざったものを特定の分割タイプ(すなわちパターン)の分割済み変換ブロックに用いることができる。
【0144】
上記の分割方式のいずれかから得られたPB(すなわちCBであり、予測ブロックにこれ以上分割されない場合のPBとも言える)はその後、イントラ予測かインタ予測かのいずれかによる符号化に用いられる個々のブロックになることができる。現在のPBのインタ予測では、現在のブロックと予測ブロックとの残差を生成し、符号化して、符号化されたビットストリームに含ませることができる。
【0145】
インタ予測をたとえばシングル参照モード又は合成参照モードで実施することができる。いくつかの実現例では、まず、現在のブロックに用いられるビットストリームにスキップフラグを含ませて(又はより高いレベルに含ませて)、現在のブロックがインタ符号化されかつスキップされないことになっているか否かを示すことができる。現在のブロックがインタ符号化される場合、現在のブロックの予測にシングル参照モードが用いられるのか合成参照モードが用いられるのかを示す信号として別のフラグをビットストリームにさらに含ませることができる。シングル参照モードでは、1つの参照ブロックを用いて現在のブロックの予測ブロックを生成することができる。合成参照モードでは、2つ以上の参照ブロックを用いてたとえば加重平均によって予測ブロックを生成することができる。合成参照モードに1個以上参照モード、2個参照モードや複数個参照モードとして参照させる場合がある。1つ以上の参照ブロックを、1つ以上の参照フレームインデックスを用い、1つ以上の参照ブロックと現在のブロックとの間の位置のシフト、たとえば水平画素及び垂直画素のシフトを示す対応する1つ以上の動きベクトルをさらに用いて特定することができる。たとえば、現在のブロックのインタ予測ブロックを、シングル参照モードでは、参照フレーム中の1つの動きベクトルによって予測ブロックとして特定されるシングル参照ブロックから生成することができるのに対して、合成参照モードでは、2つの参照フレームインデックスと2つの対応する動きベクトルとによって示される2つの参照フレーム中の2つの参照ブロックの加重平均によって予測ブロックを生成することができる。1つ以上の動きベクトルを様々な仕方で符号化してビットストリームに含ませることができる。
【0146】
いくつかの実現例では、符号化システム又は復号システムで復号ピクチャバッファ(decoded picture buffer:DPB)を管理することができる。いくつかの画像/ピクチャを表示待ち状態でDPBで管理することができ(復号システムにおける場合)、DPB中のいくつかの画像/ピクチャを参照フレームとして用いてインタ予測を可能にすることができる(復号システム又は符号化システムにおける場合)。いくつかの実現例では、DPB中の参照フレームには符号化又は復号中の現在の画像の短期参照か長期参照かのいずれかのタグを付すことができる。たとえば、短期参照フレームは、現在のフレーム中のブロック、又は復号順で現在のフレームの最寄りの既定の個数(たとえば2つ)の後続する映像フレーム中のブロックのインタ予測に用いられるフレームを含むことができる。長期参照フレームは、復号順で現在のフレームから離れている上記既定の個数より多いフレームであるフレーム中の画像ブロックを予測するために用いることができるDPB中のフレームを含むことができる。短期参照フレーム及び長期参照フレームのこのようなタグに関する情報は参照ピクチャセット(Reference Picture Set:RPS)と称される場合があり、この情報を符号化されたビットストリーム中の各フレームのヘッダに付加することができる。符号化された映像ストリーム中の各フレームをピクチャ・オーダ・カウンタ(Picture Order Counter:POC)によって特定することができ、POCは絶対的な再生順序に従ってカウントされたり、たとえばIフレームを起点としたピクチャ集合に関連したりする。
【0147】
いくつかの実現例では、インタ予測に用いられる短期参照フレーム及び長期参照フレームの識別情報を含む1つ以上の参照ピクチャリストをRPS中の情報に基づいて形成することができる。たとえば、単方向性インタ予測に対して1つのピクチャ参照リストを形成することができ、これはL0参照(参照リスト0とも称する)と示される。これに対して、2方向インタ予測に対して2つのピクチャ被参照リストを形成することができ、これらは2つの予測方向の各々に対してL0(参照リスト0とも称する)、L1(参照リスト1とも称する)と示される。L0リスト及びL1リストに含まれる参照フレームの順序を様々な既定の仕方で決めることができる。L0リスト及びL1リストの長さを映像ビットストリームでシグナリングすることができる。単方向性インタ予測はシングル参照モードと、合成予測モードでの加重平均による予測ブロックの生成に用いられる複数の参照物が予測されるブロックの同じ側にある場合の合成参照モードとのいずれでのものであってもよい。2方向性インタ予測には少なくとも2つの参照ブロックが必要である点で、2方向性インタ予測は合成モードに限られるといえる。
【0148】
いくつかの実現例では、インタ予測に用いられるマージモード(merge mode:MM)を実施することができる。一般的に、マージモードでは、現在のPBのシングル参照予測の動きベクトル又は合成参照予測の動きベクトルの1つ以上を他とは無関係に計算してシグナリングするのではなく他の1つ以上の動きベクトルから導出することができる。たとえば、符号化システムでは、現在のPBの1つ以上の現在の動きベクトルを1つ以上の現在の動きベクトルと、既に符号化された他の1つ以上の動きベクトル(参照動きベクトルと称される)との1つ以上の差分によって表わすことができる。1つ以上の現在の動きベクトルそのものではなく1つ以上の動きベクトルのこのような1つ以上の差分を符号化してビットストリームに含ませることができ、1つ以上の参照動きベクトルにリンクさせることができる。これに対応して、復号システムでは、現在のPBに対応する1つ以上の動きベクトルを、復号された1つ以上の動きベクトル差分と、これとリンクされた1つ以上の復号された参照動きベクトルとに基づいて導出することができる。一般的なマージモード(MM)インタ予測の特定の形態として、1つ以上の動きベクトル差分に基づくこのようなインタ予測は動きベクトル差分を用いるマージモード(Merge Mode with Motion Vector Difference:MMVD)と称される場合がある。従って、異なるPBに関連する動きベクトルの間の相関を活用して符号化効率を改善するために一般的にはMMを実施することができるし、特定の場合にはMMVDを実施することができる。一例では、近傍のPBの動きベクトルは類似する場合があるので、MVDが小さい場合があり、近傍のPBの動きベクトルを効率的に符号化することができる。別の例では、動きベクトルは空間的に同様に位置する/配置されたブロックの場合に時間的に(フレーム間で)相関する場合がある。
【0149】
いくつかの実現例では、現在のPBがマージモードのものであるか否かを示すために、符号化プロセスの際にMMフラグをビットストリームに含ませることができる。これに加えて又はこれの代わりに、現在のPBがMMVDモードにあるか否かを示すために、符号化プロセスの際にMMVDフラグをビットストリームに含ませてシグナリングすることができる。MMフラグ及び/又はMMVDフラグ又はインジケータをPBレベル、CBレベル、CUレベル、CTBレベル、CTUレベル、スライスレベル、ピクチャレベルなどで設けることができる。特定の例では、MMフラグとMMVDフラグとの両方を含ませて現在のCUに用いてもよく、MMVDモードが現在のCUに用いられるか否かを指定するためにMMVDフラグをスキップフラグ及びMMフラグの直後にシグナリングしてもよい。
【0150】
MMVDのいくつかの実現例では、動きベクトル予測に用いられる参照動きベクトル(reference motion vector:RMV)候補すなわちMV予測要素候補のリストを形成して予測中のブロックに用いることができる。RMV候補のリストは、現在の動きベクトルを予測するために用いることができる動きベクトルの、既定の個数(たとえば2個)のMV予測要素候補ブロックを含むことができる。RMV候補ブロックは同じフレーム中の近傍のブロック及び/又は時間的ブロック(たとえば、現在のフレームの前又は後のフレーム中で同一の位置にあるブロック)から選択されるブロックを含むことができる。このようにして選択されたものは、現在のブロックを基準とした空間的又は時間的位置にあり、現在のブロックと同様か同一の動きベクトルを持つ可能性が高いブロックを表わす。MV予測要素候補のリストのサイズを既定することができる。たとえば、リストは2つ以上の候補を含んでもよい。RMV候補でリストに掲載されるには、たとえば、候補ブロックが現在のブロックと同じ1つの参照フレーム(又は複数の参照フレーム)を持つことを要することができ、かつ候補ブロックが存在しなければならず(たとえば、現在のブロックがフレームの縁に近い場合は境界チェックを実行する必要がある)、かつ符号化プロセスの際に既に符号化されていなければならず、かつ/又は復号プロセスの際に既に復号されていなければならない。いくつかの実現例では、マージ候補のリストにはまず、空間的に近傍にあるブロック(特定の既定順序でスキャンされる)を、利用可能でありかつ上記の条件を満たす場合に入れ、その後、リストにまだ利用可能な余地がある場合に時間的ブロックを入れることができる。近傍のRMV候補ブロックをたとえば現在のブロックの左及び上のブロックから選択してもよい。RMV予測要素候補のリストをダイナミック参照リスト(Dynamic Reference List:DRL)として様々なレベル(シーケンス、ピクチャ、フレーム、スライス、スーパーブロックなど)で動的に形成することができる。DRLをビットストリームでシグナリングすることができる。
【0151】
いくつかの実現例では、現在のブロックの動きベクトルを予測するための参照動きベクトルとして用いられている現在のMV予測要素候補をシグナリングすることができる。RMV候補リストが2つの候補を含む場合、マージ候補フラグと称される1ビットのフラグを、参照マージ候補の選択を示すために用いることができる。現在のブロックが合成モードで予測中である場合、MV予測要素を用いて予測される複数の動きベクトルの各々を、マージ候補リストから得られる参照動きベクトルに関連づけることができる。現在の符号化ブロックのMVのより近い予測に用いられるRMV候補をエンコーダによって決定し、選択したものをインデックスとしてシグナリングしてDRLに入れることができる。
【0152】
MMVDのいくつかの実現例では、RMV候補が選択されて、予測される動きベクトルのベース動きベクトル予測要素として用いられた後、動きベクトル差分(MVDデルタMVとも称され、予測される動きベクトルと参照候補動きベクトルとの差分を表わす)を符号化システムで計算することができる。このようなMVDはMV差分の大きさとMV差分の方向とを表わす情報を含むことができ、これらの両方をビットストリームでシグナリングすることができる。動き差分大きさと動き差分方向とを様々な仕方でシグナリングすることができる。
【0153】
MMVDのいくつかの実現例では、動きベクトル差分の大きさ情報を指定し、起点(参照動きベクトル)からの既定の動きベクトル差分を表わす1組の既定のオフセットの1つを示すために距離インデックスを用いることができる。その後、シグナリングされたインデックスに応じたMVオフセットを起点(参照)動きベクトルの水平成分か垂直成分かのいずかに付加することができる。参照動きベクトルの水平成分をオフセットするべきか垂直成分をオフセットするべきかをMVDの方向性情報によって決定することができる。距離インデックスと既定のオフセットとの既定の関係の例が表2に記載されている。
【表2】
【0154】
MMVDのいくつかの実現例では、方向インデックスをさらにシグナリングし、参照動きベクトルに対するMVDの方向を表わすために用いることができる。いくつかの実現例では、方向を水平方向と垂直方向とのいずれか一方に制限することができる。2ビットの方向インデックスの例が表3に示されている。表3の例では、MVDの解釈は起点/参照MVの情報に応じて変わることが可能である。たとえば、単予測ブロックに対応するか、両方の参照フレームリストをともなう双予測ブロックに対応するかする起点/参照MVが現在のピクチャの同じ側に向く場合(すなわち、2つの参照ピクチャのPOCが両方とも現在のピクチャのPOCを超えるか、両方とも現在のピクチャのPOC未満である場合)、表3の符号は起点/参照MVに付加されるMVオフセットの符号(方向)を指すといえる。起点/参照MVが、2つの参照ピクチャが現在のピクチャの異なる側にある(すなわち、一方の参照ピクチャのPOCが現在のピクチャのPOCを超え、他方の参照ピクチャのPOCが現在のピクチャのPOC未満である)双予測ブロックに対応し、かつピクチャ参照リスト0中の参照POCと現在のフレームとの差がピクチャ参照リスト1中の参照POCと現在のフレームとの差を超える場合、表3の符号はピクチャ参照リスト0中の参照ピクチャに対応する参照MVに付加されるMVオフセットの符号を指すといえ、ピクチャ参照リスト1中の参照ピクチャに対応するMVのオフセットの符号は逆の値(オフセットの逆の符号)を持つといえる。上記とは別の場合であって、ピクチャ参照リスト1中の参照POCと現在のフレームとの差がピクチャ参照リスト0中の参照POCと現在のフレームとの差を超える場合、表3の符号はピクチャ参照リスト1に関連する参照MVに付加されるMVオフセットの符号を指すといえ、ピクチャ参照リスト0に関連する参照MVのオフセットの符号は逆の値を持つ。
【表3】
【0155】
いくつかの実現例では、各方向のPOCの差分に応じてMVDをスケーリングすることができる。両方のリスト中のPOCの差分が同じである場合、スケーリングは必要ない。同じでない場合において、参照リスト0中のPOCの差分が参照リスト1のPOCを超えるときは、参照リスト1のMVDをスケーリングする。参照リスト1のPOC差分がリスト0よりも大きい場合、リスト0のMVDを同じ仕方でスケーリングすることができる。起点MVが単予測される場合、MVDを利用可能なMVすなわち参照MVに加える。
【0156】
2方向性合成予測のためのMVD符号化及びシグナリングのいくつかの実現例では、2つのMVDを別々に符号化してシグナリングすることに加えて又はこれの代わりに、一方のMVDのみがシグナリングを要し、他方のMVDが、シグナリングされたMVDから導出され得るような対称MVD符号化を実施することができる。このような実現例では、リスト-0とリスト-1との両方の参照ピクチャインデックスを含む動き情報がシグナリングされる。ただし、たとえば参照リスト-0に関連するMVDのみがシグナリングされ、参照リスト-1に関連するMVDはシグナリングされずに導出される。特に、スライスレベルで、参照リスト-1がビットストリームでシグナリングされないか否かを示すために“mvd_l1_zero_flag”と称されるフラグをビットストリームに含ませることができる。このフラグが、参照リスト-1がゼロに等しい(従ってシグナリングされない)ことを示す1である場合、“BiDirPredFlag”と称される2方向性予測フラグを、2方向性予測が行なわれないことを意味する0に設定することができる。上記とは異なり、mvd_l1_zero_flagがゼロである場合において、リスト-0中の最も近い参照ピクチャ及びリスト-1中の最も近い参照ピクチャが参照ピクチャの前方と後方とのペア又は参照ピクチャの後方と前方とのペアを形成するとき、BiDirPredFlagを1に設定することができ、リスト-0とリスト-1との両方の参照ピクチャは短期参照ピクチャである。上記でない場合は、BiDirPredFlagはゼロに設定される。1であるBiDirPredFlagは対称モードフラグがビットストリームでさらにシグナリングされることを示すといえる。BiDirPredFlagが1である場合にはビットストリームから対称モードフラグをデコーダによって抽出することができる。たとえば、対称モードフラグをCUレベルでシグナリングすることができ(必要な場合)、対称モードフラグは対称MVD符号化モードが対応するCUに使用中であるか否かを示すことができる。対称モードフラグが1である場合、このことは、対称MVD符号化モードが用いられ、リスト-0とリスト-1との両方の参照ピクチャインデックス(“mvp_l0_flag”、“mvp_l1_flag”と称される)のみがリスト-0に関連するMVD(“MVD0”と称される)とともにシグナリングされ、他方の動きベクトル差分(“MVD1”)がシグナリングされずに導出されることになっていることを示す。たとえば、MVD1を-MVD0として導出することができる。従って、一方のMVDのみが典型的な対称MVDモードでシグナリングされる。MV予測の他の実現例では、シングル参照モード及び合成参照モードMV予測について、一般的なマージモード、MMVDやその他いくつかのタイプのMV予測を実施するために協調する方式を用いることができる。現在のブロックのMVを予測する仕方をシグナリングするために様々なシンタックス要素を用いることができる。
【0157】
たとえば、シングル参照モードでは、以下のMV予測モードをシグナリングすることができる。
【0158】
NEARMV:一切MVDを用いずに直接DRL(Dynamic Reference List)インデックスによって示されるリスト中の動きベクトル予測要素(motion vector predictor:MVP)の1つを用いる。
【0159】
NEWMV:参照物としてDRLインデックスによってシグナリングされるリスト中の動きベクトル予測要素(MVP)の1つを用いて、デルタをMVPに適用する(たとえば、MVDを用いて適用する)。
【0160】
GLOBALMV:フレームレベルグローバルモーションパラメータに基づいて動きベクトルを用いる。
【0161】
同様に、予測される2つのMVに対応する2つの参照フレームを用いる合成参照インタ予測モードでは、以下のMV予測モードをシグナリングすることができる。
【0162】
NEAR_NEARMV:予測されるMVのうちの2つの各々についてMVDを用いずにDRLインデックスによってシグナリングされるリスト中の動きベクトル予測要素(MVP)の1つを用いる。
【0163】
NEAR_NEWMV:2つの動きベクトルのうちの第1の動きベクトルを予測するために、MVDを用いずに参照MVとしてDRLインデックスによってシグナリングされるリスト中の動きベクトル予測要素(MVP)の1つを用い、2つの動きベクトルのうちの第2の動きベクトルを予測するために、さらにシグナリングされるデルタMV(MVD)をともに用いて参照MVとしてDRLインデックスによってシグナリングされるリスト中の動きベクトル予測要素(MVP)の1つを用いる。
【0164】
NEW_NEARMV:2つの動きベクトルのうちの第2の動きベクトルを予測するために、MVDを用いずに参照MVとしてDRLインデックスによってシグナリングされるリスト中の動きベクトル予測要素(MVP)の1つを用い、2つの動きベクトルのうちの第1の動きベクトルを予測するために、さらにシグナリングされるデルタMV(MVD)をともに用いて参照MVとしてDRLインデックスによってシグナリングされるリスト中の動きベクトル予測要素(MVP)の1つを用いる。
【0165】
NEW_NEWMV:参照MVとしてDRLインデックスによってシグナリングされるリスト中の動きベクトル予測要素(MVP)の1つを用い、これを、2つのMVの各々について予測するさらにシグナリングされるデルタMVとともに用いる。
【0166】
GLOBAL_GLOBALMV:各参照物から得られるMVをこのMVのフレームレベルグローバルモーションパラメータに基づいて用いる。
【0167】
従って、上記の用語“NEAR”は一般的なマージモードのようにMVDを用いずに参照MVを用いるMV予測を指すのに対して、用語“NEW”はMMVDモードの場合のように、参照されたMVを用い、このMVをシグナリングされたMVDを用いてオフセットすることをともなうMV予測を指す。合成インタ予測では、上記の参照ベース動きベクトルと動きベクトルデルタとの両方が双方の参照の間で通常は異なるか、無関係である場合がある。双方が相関する場合があり、このような相関を活用して、2つの動きベクトルデルタをシグナリングするために必要な情報量を減らすことができるにもかかわらず、このようになる場合がある。このような場面では、2つのMVDをともにシグナリングすることを実施してビットストリームで通知することができる。
【0168】
上記のダイナミック参照リスト(DRL)は動的に管理されて、候補動きベクトル予測要素とみなされるインデックスが付された動きベクトルの集合を入れるために用いることができる。
【0169】
いくつかの実現例では、MVDの既定の画素解像度を用いることができる。たとえば、1/8画素の動きベクトル精度(又は正確度)を用いることができる。上述されている様々なMV予測モードのMVDを様々な仕方で構成してシグナリングすることができる。いくつかの実現例では、参照フレームリスト0又はリスト1中の上記の1つ以上の動きベクトル差分をシグナリングするために様々なシンタックス要素を用いることができる。
【0170】
たとえば、“mv_joint”と称されるシンタックス要素は、それに関連する動きベクトル差分のどの成分がゼロ以外かを示すことができる。MVDについて、すべてのゼロ以外の成分がまとめられてこのシンタックス要素がシグナリングされる。たとえば、mv_jointは、
水平方向か垂直方向かのいずれかでゼロ以外のMVDがないことを示すことができる0、
水平方向にのみゼロ以外のMVDがあることを示すことができる1、
垂直方向にのみゼロ以外のMVDがあることを示すことができる2、
水平方向及び垂直方向にゼロ以外のMVDがあることを示すことができる3
という値を持つ。
【0171】
MVDの“mv_joint”シンタックス要素が、ゼロ以外のMVD成分がないことをシグナリングする場合、これ以上のMVD情報をシグナリングしなくてもよい。ただし、“mv_joint”シンタックスが、1つ又は2つのゼロ以外の成分があるとシグナリングする場合、後述されているようにゼロ以外のMVD成分の各々について追加のシンタックス要素をさらにシグナリングすることができる。
【0172】
一例では、対応する動きベクトル差分成分が正であるのか負であるのかをさらに示すために“mv_sign”と称されるシンタックス要素を用いてもよい。
【0173】
別の例では、対応するゼロ以外のMVD成分のクラスの既定の集合から動きベクトル差分のクラスを指定するために“mv_class”と称されるシンタックス要素を用いてもよい。たとえば、動きベクトル差分の既定のクラスを、動きベクトル差分の切れ目がなく連続する大きさ空間を重ならない範囲に分割するために用いてもよく、各範囲はMVDクラスに対応する。従って、シグナリングされたMVDクラスは対応するMVD成分の大きさ範囲を示す。以下の表4で示されている実現例では、高いクラスは大きい大きさの範囲を持つ動きベクトル差分に対応する。表4では、記号(n,m]は、n個の画素よりも大きくかつm個の画素以下である動きベクトル差分の範囲を表わすために用いられる。
【表4】
【0174】
他の例では、ゼロ以外の動きベクトル差分成分と、これに対応してシグナリングされるMVクラス大きさ範囲の起点大きさとの間のオフセットの整数部分を示すために“mv_bit”と称されるシンタックス要素をさらに用いてもよい。従って、mv_bitはMVDの大きさ(magnitude)又は幅(amplitude)を示すといえる。各MVDクラスの全範囲をシグナリングするために“my_bit”に必要なビット数がMVクラスの機能に応じて変化することができる。この例において、表4の実現例のMV_CLASS 0及びMV_CLASS 1では、0である起点MVDを起点とする1又は2である整数画素オフセットを示すために1ビットしか要さないといえ、表4の実現例の上位の方の各MV_CLASSが直下のMV_CLASSよりも“mv_bit”を段階的に1ビット多く要するといえる。
【0175】
他の例では、対応するゼロ以外のMVD成分の動きベクトル差分の第1の2端数部ビットを示すために“mv_fr”と称されるシンタックス要素をさらに用いることができる一方で、対応するゼロ以外のMVD成分の動きベクトル差分の第3の端数部ビット(高解像度ビット)を示すために“mv_hp”と称されるシンタックス要素を用いることができる。2ビット“mv_fr”によって必然的に1/4画素MVD解像度が実現される一方で、“mv_hp”ビットによって1/8画素解像度をさらに実現することができる。他の実現例では、1より多い“mv_hp”ビットを用いて1/8画素よりも精細なMVD画素解像度を実現することができる。いくつかの実現例では、1/8画素以上のMVD解像度に対応可能であるか否かを示すために様々なレベルの1つ以上で、さらに別のフラグをシグナリングすることができる。MVD解像度が特定のcoding unitに適用されない場合、対応する非対応のMVD解像度の上記のシンタックス要素をシグナリングしなくてもよい。
【0176】
上記のいくつかの実現例では、端数の解像度はMVDの別のクラスとは無関係であってもよい。言い換えると、動きベクトル差分の大きさに関係なく、ゼロ以外のMVD成分の端数のMVDをシグナリングするために用いられる“mv_fr”及び“mv_hp”の既定のビット数を用いて動きベクトル解像度を同様に選択することを実現することができる。
【0177】
一方で、他の実現例では、様々なMVD大きさクラスで動きベクトル差分の解像度の差異を設けることができる。特に、上位の方のMVDクラスの大きいMVD大きさの高解像度MVDによって圧縮効率の統計的に優れた改善が実現されない場合がある。従って、上位の方のMVD大きさクラスに対応する大きいMVD大きさの範囲の解像度(整数画素解像度又は端数画素解像度)を下げてもMVDを符号化することができる。同様に、ほとんどの場合に大きいMVD値の解像度(整数画素解像度又は端数画素解像度)を下げてもMVDを符号化することができる。このようなMVDクラスに依存したりMVD大きさに依存したりするMVD解像度は多くの場合に適応可能MVD解像度、大きさ依存適応可能MVD解像度や大きさ依存MVD解像度と称される場合がある。さらに、用語「解像度」は「画素解像度」と称される場合がある。優れた総合圧縮効率を実現する以下の実現例によって説明されているように様々なもために適応可能MVD解像度を実施することができる。特に、大きい大きさ又は高いクラスのMVDのMVD解像度を、小さい大きさ又は低いクラスのMVDのMVD解像度と同様のレベルで適応型ではない仕方で処理しても、大きい大きさ又は高いクラスのMVDを用いてブロックのインタ予測残差符号化効率が大幅には向上しない場合があるという統計的考察により、MVDの正確度を下げようとして生じるシグナリングビット数の減少分が、このようにMVDの正確度を下げた結果としてインタ予測残差を符号化するために必要なビットの増加分を超える場合がある。言い換えると、大きい大きさ又は高いクラスのMVDの高いMVD解像度を用いても、低いMVD解像度を用いる場合よりも大きい符号化ゲインが発生しない場合がある。
【0178】
いくつかの通常の実現例では、MVDクラスを上げても、MVDの画素解像度すなわち精度は下がる場合があったり上がらない状態のままになる場合があったりする。MVDの画素解像度が下がるのはMVDが粗大である(すなわち、所定のMVDレベルから次までの段差が大きい)ことに対応する。いくつかの実現例では、MVD画素解像度とMVDクラスとの間の関係の指定、既定や事前設定を行なうことができるので、符号化ビットストリームでシグナリングすることを要さなくてもよい。
【0179】
いくつかの実現例では、表3のMVクラスの各々を異なるMVD画素解像度に関連づけることができる。
【0180】
いくつかの実現例では、各MVDクラスを1つの可能な解像度に関連づけることができる。他の実現例では、1つ以上のMVDクラスを2つ以上の適宜選択可能なMVD画素解像度に関連づけることができる。従って、このようなMVDクラスをともなう現在のMVD成分のビットストリームの信号の後に、現在のMVD成分向けに選択された適宜選択可能な画素解像度を示すためのさらに別のシグナリングを行なうことができる。
【0181】
いくつかの実現例では、適応させて可能にしたMVD画素解像度は1/64pel(画素)、1/32pel、1/16pel、1/8pel、1-4pel、1/2pel、1pel、2pel、4pel…(解像度が下がる順序)を含むことができるが、これらに限定されない。従って、昇順に並ぶMVDクラスの各々を、昇順でない並び方のこれらのMVD画素解像度の1つに関連づけることができる。いくつかの実現例では、MVDクラスを上記の2つ以上の解像度に関連づけることができ、高い方の解像度は前のMVDクラスの低い方の解像度以下であってもよい。たとえば、表4のMV_CLASS_3が適宜選択可能な1pel及び2pelの解像度に関連する場合、表4のMV_CLASS_4が関連することができる最高解像度は2pelになる。他の実現例では、所定のMVクラスの最高許容解像度が前の(低い)MVクラスの最低許容解像度を超えることができる。ただし、昇順に並ぶMVクラスの許容解像度の平均を上昇しないものに限ることができる。
【0182】
いくつかの実現例では、1/8pelを超える端数画素解像度が許容される場合、これに対応して“mv_fr”及び“mv_hp”シグナリングを合計3以上の端数部ビットに拡張することができる。
【0183】
いくつかの実現例では、閾値MVDクラス以下のMVDクラスの端数画素解像度のみを許容することができる。たとえば、MVD-CLASS 0の端数画素解像度のみを許容し、表4のその他すべてのMVクラスの端数画素解像度を許容しなくてもよい。同様に、表4の他のMVクラスのいずれか以下のMVDクラスの端数画素解像度のみを許容することができる。閾値MVDクラスを超える他のMVDクラスについて、MVDの整数画素解像度のみが許容される。このようにする場合、閾値MVDクラス以上のMVDクラスとともにシグナリングされるMVDの、“mv-fr”及び/又は“mv-hp”ビットの1つ以上などの端数解像度シグナリング物をシグナリングせずに済む。1画素未満の解像度を持つMVDクラスについて、“mv-bit”シグナリングのビット数をさらに削減することができる。たとえば、表4のMV_CLASS_5では、MVD画素オフセットの範囲は(32,64]であるので、解像度が1pelの場合には範囲全体をシグナリングするために5ビットが必要である。これに対して、MV_CLASS_5が2pelのMVD解像度(1画素の解像度よりも低い解像度)に関連づけられる場合、5ビットではなく4ビットが“mv-ビット”に必要であるといえ、MV-CLASS_5のような“mv_class”のシグナリングの後に、“mv-fr”と“mv-hp”とののいずれもシグナリングする必要はない。
【0184】
いくつかの実現例では、閾値整数画素値未満の整数値を持つMVDの端数画素解像度のみを許容することができる。一例では、5画素未満のMVDの端数画素解像度のみを許容してもよい。この例に対応すれば、表4のMV_CLASS_0及びMV_CLASS_1の端数解像度を許容し、その他すべてのMVクラスの端数解像度を許容しなくてもよい。別の例では、7画素未満のMVDの端数画素解像度のみを許容してもよい。この例に対応すれば、表4のMV_CLASS_0及びMV_CLASS_1(範囲が5画素未満である)の端数解像度を許容し、MV_CLASS_3以上(範囲が5画素を超える)の端数解像度を許容しなくてもよい。画素範囲が5画素を含むMV_CLASS_2に属するMVDについては、“mv-bit”値に応じてMVDの端数画素解像度を許容してもよいし許容してもよい。“m-bit”値が1又は2としてシグナリングされる(MV_CLASS_2の画素範囲の開始部分として計算される、シグナリングされるMVDの整数部分が5又は6であり、“m-bit”によって示されるオフセットが1又は2であるようにシグナリングされる)場合、端数画素解像度を許容してもよい。上記以外の場合であって、“mv-bit”値が3又は4としてシグナリングされる場合(シグナリングされるMVDの整数部分が7又は8であるようにシグナリングされる)、端数画素解像度を許容しなくてもよい。
【0185】
他の実現例では、閾値MVクラス以上のMVクラスについてMVD値を1つのみ許容することができる。たとえば、このような閾値MVクラスはMV_CLASS 2であってもよい。従って、MV_CLASS_2以上に対して、1つのMVD値を持ち、端数画素解像度を用いないことのみを許容してもよい。これらのMVクラスの単一の許容MVD値を既定してもよい。いくつかの例では、許容単一値は表4のこれらのMVクラスの、それぞれの範囲の大きい方の最後の値であってもよい。たとえば、MV_CLASS_2からMV_CLASS_10がMV_CLASS 2である閾値クラス以上であるといえ、これらのクラスの単一の許容MVD値を8、16、32、64、128、256、512、1024及び2048としてそれぞれ既定してもよい。他の例では、許容単一値は表4のこのようなMVクラスのそれぞれの範囲の中央の値であってもよい。たとえば、MV_CLASS_2からMV_CLASS_10がクラス閾値よりも高くてもよく、これらのクラスの単一の許容MVD値を3、6、12、24、48、96、192、384、768及び1536としてそれぞれ既定してもよい。範囲内の他のいずれの値もそれぞれのMVDクラスの単一の許容解像度として定めてもよい。
【0186】
上記の実現例では、シグナリングされた“mv_class”が既定のMVDクラス閾値以上であればMVD値を決定するために“mv_class”をシグナリングするだけで十分である。その後、MVDの大きさ及び方向が“mv_class”及び“mv_sign”を用いて決定される。
【0187】
従って、1つのみの参照フレーム(参照フレームリスト0かリスト1かのいずれかから得られる参照フレームであり、両方から得られる参照フレームではない)のMVDがシグナリングされるか、2つの参照フレームのMVDが一緒にシグナリングされる場合、MVDの精度(すなわち解像度)は表3の動きベクトル差分の関連するクラス及び/又はMVDの大きさに依存することができる。
【0188】
いくつかの他の実現例では、MVD大きさを増加させても、MVDの画素解像度すなわち精度は下がる場合があったり上がらない状態のままになる場合があったりする。たとえば、画素解像度がMVD大きさの整数部分に依存してもよい。いくつかの実現例では、MVD大きさが幅閾値以下の場合にだけ端数画素解像度を許容することができる。デコーダでは、最初にMVD大きさの整数部分をビットストリームから抽出することができる。その後に画素解像度を決定することができ、その後、なんらかの端数MVDがビットストリームに存在し、解析される必要があるか否かに関して判定することができる(たとえば、抽出された特定のMVD整数大きさの端数画素解像度が許容されない場合、抽出を必要とするビットストリームに端数MVDビットを含ませなくてもよい)。MVDクラス依存適応可能MVD画素解像度に関する上記の実現例はMVD大きさ依存適応可能MVD画素解像度にあてはまる。特定の例では、大きさ閾値を超えるか含むMVDクラスに対して既定の値を1だけ持つことを許容してもよい。
【0189】
現在の符号化ブロックについて、シングルフレームインタ予測モードか合成インタ予測モードかのいずれかのモード中にあり、かつインタ予測の1つ以上の動きベクトルが1つ以上のMVDに基づくか否かに無関係である場合に、参照フレームに対する現在の符号化ブロックの動きベクトルが決定された後、予測要素ブロックを参照フレームから生成することができる(エンコーダとデコーダとのいずれの参照フレームからでも生成することができる)。いくつかの実現例では、対応する予測フレーム中の予測要素ブロックを対応する動きベクトルに基づいて予測フレーム中のサンプルの補間により生成すなわち導出することができる。一例では、いくつかの場面では、現在の符号化ブロックの参照フレームに対応する動きベクトルが端数の動きベクトルであってもよい。特に、1つ以上の動きベクトル参照リスト中で複数の参照動きベクトルの1つであるものとして示される動きベクトルが水平次元と垂直次元とのいずれか一方又は両方で端数の動きベクトルであってもよい。別の例では、MVDが水平次元と垂直次元とのいずれか一方又は両方で端数のMVDであってもよい。このような場面では、対応する参照フレーム中で動きベクトルによって示される予測要素ブロックが参照フレーム中の特定のサンプルブロックと直接一致しなくてもよいが、さらに言えば、サンプルブロック間で補間することを要することになる。
【0190】
このような補間をたとえば補間フィルタと称されるフィルタを用いることによって実施することができる。特定の現在の符号化ブロックに適用される補間フィルタを既定の補間フィルタや予め構成された補間フィルタの集合から選択することができる。補間フィルタリングを2つの次元(水平次元と垂直次元)の各々で個別に実施することができる。従って、水平次元か垂直次元かのいずれかに適用することができる一次元フィルタとして補間フィルタを実施することができる。いくつかの実現例では、これらの補間フィルタのいくつかが既定の有限インパルス応答(finite impulse response:FIR)フィルタを含むことができる。たとえば、既定の補間フィルタや予め構成された補間フィルタが6タップFIRフィルタ(REGULAR)、6タップFIRフィルタ(SMOOTH)、8タップFIRフィルタ(SHARP)及び2タップBILINEARフィルタなどを含んでもよい(ただし、これらに限定されない)。
【0191】
いくつかの実現例では、デュアルフィルタモードを有効にする場合、水平次元及び垂直次元の補間フィルタが実施状態で独立することができる。デュアルフィルタモードを有効にするか否かを様々なレベル(たとえば、シーケンスヘッダ、ピクチャヘッダ、フレームヘッダ、スライスヘッダ、符号化ツリーレベル、マクロブロックレベル、ブロックレベル)でシグナリングすることができる。デュアルフィルタモードでは、補間フィルタが2つの次元の各々で用いられることも上記の様々なレベルで個別にシグナリングすることができる。上記以外の場合にであって、デュアルフィルタモードを有効にしない場合、符号化ブロックの水平次元と垂直次元との両方で使用/共有するために補間フィルタを1つのだけ選択することをシグナリングすることができる。用いられる補間フィルタも上記の様々なレベルでシグナリングすることができる。デュアルフィルタモードの場合の選択とシングルフィルタモードの場合の選択とに利用可能な補間フィルタの2つの集合を個別に指定することができる。これらの集合はフィルタの同じ集合であってもフィルタの異なる集合であってもよい。
【0192】
動きベクトル差分(MVD)と参照動きベクトル(MV)とがMVDの大きさ及び/又は画素解像度に応じて符号化ブロックの実際のMVを導出するために用いられる場合、特定のタイプの補間フィルタが予測要素ブロックを生成するために用いられるときに他のタイプの補間フィルタよりも優れた符号化ゲインを実現するのを容易にすることができることが統計的検討によって示されている。従って、符号化ゲインの低下を無視し得る低下に維持しつつシグナリング効率を改善するために、特定のMVD大きさ又は画素解像度の値又は値範囲に対して補間フィルタの集合を候補補間フィルタとして既定する場合に補間フィルタの小さい集合を既定することができる。
【0193】
同様に、ブロックの実際のMVの大きさ及び/又は画素解像度に応じて、特定のタイプの補間フィルタが予測要素ブロックを生成するために用いられるときに他のタイプの補間フィルタよりも優れた符号化ゲインを実現するのを容易にすることができることも統計的検討によって示されている。従って、符号化ゲインの低下を無視し得る低下に維持しつつシグナリング効率を改善するために、特定のMV大きさ又は画素解像度の値又は値範囲に対して補間フィルタの集合を候補補間フィルタとして既定する場合に補間フィルタの小さい集合を既定することができる。実際のMVは映像ストリームで直接シグナリングされるMVであってもよいし、上述のDRL中の参照動きベクトルとしてシグナリングされてもよいし、DRL中の参照動きベクトルとMVDの参照動きベクトルとの組合せであってもよい。
【0194】
いくつかの実現例では、MV大きさ又はMVDの大きさを1つ以上の補間フィルタの選択の際に基づくものとして用いることができる。たとえば、MV又はMVDの大きさの1つ以上の値又は値範囲を既定することができる。MV又はMVDの大きさの値又は値範囲の各々を候補補間フィルタの全体の集合(full set)中の補間フィルタの既定のサブセット(subset)に予め関連づけることができる。従って、MV又はMVDの大きさの値又は値範囲と補間フィルタのサブセットとの対応づけを既定することができるので、エンコーダ及びデコーダに認識されることが可能である。その後、エンコーダによって符号化プロセスの際に特定のMV又はMVDの大きさの値又は値範囲に対応する補間フィルタのサブセットを決定することができ、また、このサブセットを対応するMV又はMVDの大きさの値又は値範囲に基づいてデコーダによって、ビットストリームでさらになんらかのシグナリングを行なうという手段をとらずに導出することもできる。
【0195】
同様に、1つ以上の補間フィルタの選択にMV画素解像度又はMVD画素解像度を用いることができる。たとえば、MV又はMVDの画素解像度の1つ以上の値又は値範囲を既定することができる。MV又はMVDの画素解像度の値又は値範囲の各々を関連づける(候補補間フィルタの全体の集合中の補間フィルタの既定のサブセット)ことができる。従って、MV又はMVDの画素解像度の値又は値範囲と補間フィルタのサブセットとの対応づけを既定することができるので、エンコーダ及びデコーダに認識されることが可能である。その後、エンコーダによって符号化プロセスの際に特定のMV又はMVDの画素解像度の値又は値範囲に対応する補間フィルタのサブセットを決定することができ、また、このサブセットを対応するMV又はMVDの画素解像度の値又は値範囲に基づいてデコーダによって、ビットストリームでさらになんらかのシグナリングを行なうという手段をとらずに導出することもできる。
【0196】
異なるMV又はMVDの大きさ又は画素解像度についての上記の補間フィルタのサブセットの各々中の補間フィルタの個数を変更することができる。いくつかの実現例では、上記の補間フィルタの特定のサブセットが2つ以上の候補補間フィルタを含むことができる。この場面では、対応するMV又はMVDの大きさ又は画素解像度の値又は値範囲に対して、エンコーダによって様々なレベル(たとえば、ブロックレベル、スライスレベル、フレームレベル、ピクチャレベル、シーケンスレベルなど)で補間フィルタのサブセットから特定のフィルタをさらに選択する(たとえば、優れた符号化ゲインを実現するフィルタを選択することによって行なう)ことができ、エンコーダはMV又はMVDの大きさ又は画素解像度の値又は値範囲によって既定される補間フィルタのサブセットから選択された特定のフィルタを示すビットストリーム中の対応するシグナリング(補間フィルタ選択インジケータと称される)を含むことができる。補間フィルタのサブセットが含むフィルタの個数が候補補間フィルタの全体の集合と比較して少ない可能性があるので、サブセット中から選択された特定のフィルタをシグナリングするために要するビット数は少なく、この結果、シグナリング効率が改善される。
【0197】
他の実現例では、上記の解釈フィルタの特定のサブセットがデフォルトの補間フィルタを1つだけ含むことができる。この場面では、デフォルトの既定の補間フィルタに対応するMVD大きさの値又は値範囲が直接対応づけられる。従って、選択された特定の既定の補間フィルタについてさらにシグナリングするものをビットストリームに含ませる必要がない。既定のデフォルトの補間フィルタをMVDミニガイドの値又は値範囲から直接特定することができる。
【0198】
いくつかの実現例では、MV又はMVDの大きさ又は画素解像度の閾値レベルを既定して上記の様々な大きさ又は画素解像度の値範囲を定めることができる。いくつかの特定の実現例では、1つの閾値レベルを既定して2つの範囲に入るMV又はMVDの大きさ又は画素解像度を定めることができ、一方は閾値レベルを超え、他方は閾値レベルを超えず、各々は補間フィルタの既定のサブセットに対応する。
【0199】
一例では、MV又はMVDの大きさの閾値レベルを既定してもよい。閾値レベルを超えるMV又はMVDの大きさを持つブロックには候補補間フィルタとして補間フィルタの第1の既定のサブセットを用いてもよい一方で、閾値レベルを超えないMV又はMVDの大きさを持つブロックには候補補間フィルタとして補間フィルタの第2の既定のサブセットを用いてもよい。フィルタのサブセット中から選択された特定の補間フィルタをビットストリームでさらにシグナリングすることができる。特定の例では、閾値レベルを超えるMV又はMVDの大きさに対応する補間フィルタの第1のサブセットが1つのデフォルトの補間フィルタを含んでもよい一方で、閾値レベルを超えないMV又はMVDの大きさに対応する補間フィルタの第2のサブセットが候補補間フィルタの全体の集合(又は全体の集合よりも小さい集合)を含んでもよい。このような実現例では、MV又はMVDの大きさが閾値レベルを超える場合には選択された補間フィルタをさらにシグナリングする必要がない。
【0200】
別の例では、MV又はMVDの画素解像度閾値レベルを既定してもよい。閾値レベル未満のMV又はMVDの画素解像度を持つブロックには候補補間フィルタとして補間フィルタの第1の既定のサブセットを用いてもよい一方で、閾値レベル未満ではないMV又はMVDの画素解像度を持つブロックには候補補間フィルタとして補間フィルタの第2の既定のサブセットを用いてもよい。フィルタのサブセットを用いて選択された特定の補間フィルタをビットストリームでさらにシグナリングすることができる。特定の例では、閾値レベル未満のMV又はMVDの画素解像度に対応する補間フィルタの第1のサブセットが1つのデフォルトの補間フィルタを含んでもよい一方で、閾値レベル未満ではないMV又はMVDの画素解像度に対応する補間フィルタの第2のサブセットが候補補間フィルタの全体の集合(又は全体の集合よりも小さい集合)を含んでもよい。このような実現例では、MV又はMVDの画素解像度が閾値レベル未満である場合には選択された補間フィルタをさらにシグナリングする必要がない。
【0201】
いくつかの実現例では、MVD大きさレベルを表4に関連して上述されているMVクラスインデックスによって表わすことができる。従って、表4に典型的に示されている様々なMVクラスを、MV閾値クラスの集合を用いて定めてさらに2つのクラス範囲に入れることができる。各MVクラス範囲は補間フィルタのデフォルトの既定のサブセットに対応することができる。特定の例では、1つのMVクラス閾値を既定して2つのMVクラス範囲を設けてもよい。特に、閾値MVクラスをMV_CLASS_0として設定してもよい。これの代わりに、閾値MVクラスをMV_CLASS_1として設定しても他のMVクラスとして設定してもよい。例としてMVクラス閾値MV_CLASS_1をとり、MV_CLASS_1を超えるMVクラスのクラス範囲(MV_CLASS_2からMV_CLASS_10を含む)を補間フィルタの既定のデフォルトの第1のサブセットに関連づけてもよい一方で、MVクラスMV_CLASS_0及びMV_CLASS_1を補間フィルタの第2の既定のデフォルトのサブセットに関連づけてもよい。たとえば、MV_CLASS_2からMV_CLASS_10に対応する補間フィルタの第1のサブセット)が1つのデフォルトの補間フィルタを含んでもよい。たとえば、MV_CLASS_0及びMV_CLASS_1に対応する補間フィルタの第2のサブセットが候補補間フィルタの全体の集合(又は全体の集合よりも小さい集合)を含んでもよい。
【0202】
いくつかの実現例では、MVD画素解像度レベルを様々な既定の範囲に分割することができ、各々は補間フィルタの既定のサブセットに対応する。上述されている適応型MVD実現例では、特定のブロックのMVD画素解像度が、1/64、1/32、1/16、1/8、1/4、1/2、1、2、4、…を含む(ただし、これらに限定されない)候補画素解像度の全体の集合の1つであってもよい。画素解像度範囲のあらゆるタイプの分割を既定することができるが(n個のいくつかの特定の実現例)、利用可能なMVD画素解像度を2つの範囲に分割することができ、第1の範囲は1画素未満のMVD画素解像度であり(低い画素解像度は大きい画素値に対応し、従って、第1の範囲は1画素、2画素、4画素、…の解像度を含む)、第2の範囲は1画素を超えるMVD画素解像度である(上記のすべての端数画素解像度を含む)。第1の範囲を補間フィルタの第1のデフォルトのサブセットに関連づけることができる一方で、第2の範囲を補間フィルタの第2のデフォルトのサブセットに関連づけることができる。第1のサブセットはたとえば1つのデフォルトの補間フィルタを含んでもよい一方で、第2のサブセットはたとえば候補補間フィルタの全体の集合(又は全体の集合よりも小さい集合)を含んでもよい。
【0203】
いくつかの特定の実現例では、符号化ブロックの端数MVDが許容されない場合、補間フィルタのサブセットのいずれもが候補補間フィルタの全体の集合でなくてもよい。言い換えると、このような実現例では候補補間フィルタの全体の集合ではなく補間フィルタのサブセットのみが許容される。特に、端数MVDが許容されない場合には補間フィルタのサブセットを1つだけ選択に用いることができる。補間フィルタの当該1つのサブセットは許容される候補補間フィルタの全体の集合の一部であってもよい。たとえば、補間フィルタのサブセットはREGULARフィルタ及びSMOOTHフィルタを含んでもよい。他の実現例では、補間フィルタの1つのサブセットが1つのデフォルトの補間フィルタを含むことができる。言い換えると、端数MVDが許容されないMVD実現例では、1つのデフォルトの補間フィルタを既定することができる。このような実現例では、一切の端数MVDが適応型MVD実現例で許容されない場合、選択された補間フィルタをビットストリームでシグナリングすることを要さなくてもよい。1つのデフォルトの補間フィルタはたとえばREGULARフィルタ、SMOOTHフィルタ、SHARPフィルタ又はBILINEARフィルタのうちの1つであってもよい。
【0204】
他の実現例では、上述されているように、MVD幅と適応可能MVD画素解像度との対応関係又は対応づけ(表4のMVクラスインデックスによって表わされている)を既定することができる。このような場面では、補間フィルタの異なるサブセットに対応づけるための異なる範囲へのMVクラスの既定の分割が、MVD画素解像度を異なる画素解像度範囲に分割することに相当するか、矛盾なく関係し合うといえる。
【0205】
上記の実現例は、大きいMVD大きさすなわち低いMVD画素解像度では、利用可能な候補補間フィルタの全体の集合を選択に用いることが、高いシグナリングオーバーヘッドを要しつつ、候補補間フィルタの小さい集合を用いることと比較して大きい符号化ゲインをもたらさず、1つのデフォルトの補間フィルタを用いることと比較した場合でさえ大きい符号化ゲインをもたらさないことを示す統計的検討を認識した上でのものである。
【0206】
上記の様々な実現例では、候補補間フィルタの全体の集合は6タップFIRフィルタ(REGULAR)、6タップFIRフィルタ(SMOOTH)、8タップFIRフィルタ(SHARP)及び2タップBILINEARフィルタなどの1つ以上を含むことができる(ただし、これらに限定されない)。補間フィルタのサブセットは補間フィルタの全体の集合中のフィルタのあらゆる組合せであってもよい。補間フィルタのサブセットの特定の例がREGULARフィルタ及びSMOOTHフィルタを含むことができる。フィルタのサブセットが1つのデフォルトの補間フィルタを含む場合、このようなデフォルトの補間フィルタは候補補間フィルタの全体の集合中のいずれかのフィルタであってもよい。特に、1つのデフォルトのフィルタをREGULARフィルタとSMOOTHフィルタとの一方として既定することができる。
【0207】
上記の実現例のいくつかでは、選択された補間フィルタ(たとえば、補間フィルタのサブセット又は補間フィルタの全体の集合から選択)のシグナリングをMV又はMVDの大きさ又は画素解像度に依存するコンテキストに従ってエントロピ符号化することができる。特定の例では、エントロピ符号化コンテキストを、適応可能MVD解像度が適用されるか否か及び/又はMVDのMVD画素解像度又はMVクラスに基づいて決定することができる。たとえば、適応可能MVD解像度が適用される場合、MVD画素解像度又はMVクラスを、補間フィルタの複数のサブセットに関連する複数の範囲に分割することができる。選択された補間フィルタの各サブセットを用いたシグナリングをコンテキストの特定の集合を用いて符号化することができる。従って、各MVD画素解像度範囲又はMVクラス範囲又は補間フィルタのサブセットが符号化コンテキストの集合に対応することになる。符号化効率を最大化するために符号化コンテキストのこのような集合を個別に決定することができる。
【0208】
いくつかの実現例では、このようなMVD画素解像度範囲又はMVクラス範囲を複数の閾値によって定めることができる。一実現例では、1つの閾値によって定められる2つの範囲を既定することができる。この閾値(MVD画素解像度閾値かMVクラスインデックス閾値かのいずれか)が2つの範囲と補間フィルタの対応する既定のサブセットとを決定するために用いられる。補間フィルタの第1のサブセット中のシグナリングをコンテキストの第1の集合に従って符号化することができる一方で、補間フィルタの第2のサブセットを用いたシグナリングをコンテキストの第2の集合に従って符号化することができる。各サブセット中のフィルタの個数が異なり、各サブセット中の選択されたフィルタの統計性も多くの符号化ブロックで異なる場合があるので、このような実現例によってさらに大きい符号化ゲインを実現することができる。
【0209】
図18は補間フィルタを選択してシグナリングする上記の実現例の基礎をなす原理にしたがう方法の例のフローチャート1800を示す。方法の例のフローは1801を起点とする。S1810では、映像ストリームを受け取る。S1820では、動きベクトル(MV)に従って参照フレームによって映像ブロックがインタ予測されると決定する。S1830では、映像ストリームから、映像ブロックのMVD(MV差分)と参照MVとからMVが導出されると決定する。S1840では、MVDの解像度又は大きさに従って補間フィルタを選択する。S1850では、MVと補間フィルタとに従って参照フレームから映像ブロックのインタ予測ブロックを生成する。S1899で方法の例が停止する。
【0210】
本開示の実施形態と実現例では、所望通りに任意のステップ及び/又は動作を任意の総数や順序で組み合せたり配置したりしてもよい。ステップ及び/又は動作の2つ以上を並列に実行してもよい。本開示の実施形態と実現例とを個別に用いたり任意の順序で組み合せたりしてもよい。さらに、方法(又は実施形態)、エンコーダ及びデコーダの各々を処理回路(たとえば、1つ以上のプロセッサや1つ以上の集積回路)によって実施してもよい。一例では、非一時的コンピュータ可読媒体に記憶されているプログラムを1つ以上のプロセッサが実行する。本開示の実施形態をlumaブロック又はchromaブロックに適用してもよい。用語「ブロック」は予測ブロック、符号化ブロック又はcoding unit(すなわちCU)と解釈される場合がある。本開示における用語「ブロック」は変換ブロックを指すためにも用いられる場合がある。以下の事物について、ブロックサイズを説明する際には、ブロック幅若しくは高さ、又は幅及び高さの最大値、又は幅及び高さの最小値、又は面積寸法(幅×高さ)、又はブロックのアスペクト比(幅:高さ若しくは高さ:幅)を指す場合がある。
【0211】
コンピュータ可読指示を用い、1つ以上のコンピュータ可読媒体に物理的に記憶されるコンピュータソフトウェアとして上述の手法を実施することができる。たとえば、図19は開示されている保護対象の特定の実施形態を実行することに適するコンピュータシステム(1900)を示す。
【0212】
コンピュータソフトウェアは任意の適切なマシン語すなわちコンピュータ言語を用いて符号化することができ、このコンピュータ言語は指示を備えるコードを生成するためのアセンブリ、コンパイル、リンク、又は同様の機構によって処理される場合があり、この指示は1つ以上のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによって、直接実行したり、解釈、マイクロコードの実行などを通じて実行したりすることができる。
【0213】
指示は、たとえば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、モノのインタネットデバイスなどを含む様々なタイプのコンピュータ又はその構成要素で実行することができる。
【0214】
コンピュータシステム(1900)について図19に示されている構成要素は当然一例であり、本開示の実施形態を実施するコンピュータソフトウェアの使用又は機能の範囲に関してなんら限定を示唆することを意図するものではない。また、構成要素の構成について、コンピュータシステム(1900)の典型的な実施形態で示されている構成要素のいずれか1つ又はこれらの組合せに関して何かしら依拠したり必要としたりするようにも当然解釈されない。
【0215】
コンピュータシステム(1900)は特定のヒューマンインタフェイス入力装置を含んでもよい。このようなヒューマンインタフェイス入力装置は、たとえば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、音声入力(音声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を通じて1人以上の人間のユーザによる入力に応答するものであってもよい。ヒューマンインタフェイス装置を用いることで、音声(発話、音楽、周囲音など)、画像(スキャン画像、静止画像カメラから取得された写真画像など)、映像(二次元映像、立体映像を含む三次元映像など)など、人間による意識的な入力に必ずしも直接関連しないなんらかの媒体を取り込むこともできる。
【0216】
入力ヒューマンインタフェイス装置は、キーボード(1901)、マウス(1902)、トラックパッド(1903)、タッチ画面(1910)、データグローブ(図示せず)、ジョイスティック(1905)、マイク(1906)、スキャナ(1907)、カメラ(1908)の1つ以上(示されているものから1つずつだけ)を含んでもよい。
【0217】
コンピュータシステム(1900)はなんらかのヒューマンインタフェイス出力装置も含んでもよい。このようなヒューマンインタフェイス出力装置は、たとえば、触覚出力、音、光及び嗅覚/味覚を通じて1人以上の人間のユーザの感覚を刺激してもよい。このようなヒューマンインタフェイス出力装置は触覚出力デバイス(たとえば、タッチ画面(1910)、データグローブ(図示せず)やジョイスティック(1905)による触覚フィードバックただし、入力デバイスを担わない触覚フィードバックデバイスも存在することができる)、音声出力デバイス(スピーカ(1909)、ヘッドホン(図示せず)など)、視覚出力装置(CRT画面、LCD画面、プラズマ画面、OLED画面を含む画面(1910)など画面毎にタッチ画面入力機能を備えたり備えなかったりする画面毎に触覚フィードバック機能を備えたり備えなかったりするこれらの画面のいくつかが立体映像出力装置、バーチャルリアリティグラス(図示せず)、ホログラフィディスプレイや発煙タンク(図示せず)などの手段によって二次元視覚的出力又は3次元以上の出力を出力する機能を備えてもよい)及びプリンタ(図示せず)を含んでもよい。
【0218】
コンピュータシステム(1900)は、CD/DVD又はそれに類する媒体(1921)をともなうCD/DVD ROM/RW(1920)を含む光媒体、サムドライブ(1922)、リムーバブルハードドライブやソリッドステートドライブ(1923)、テープやフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの専用のROM/ASIC/PLDベースのデバイスなど、人間による取り扱いが可能な記憶デバイス及びその関連媒体を含むこともできる。
【0219】
ここで開示されている保護対象に関連して用いられている用語「コンピュータ可読媒体」が伝送媒体、搬送波又はその他一時的な信号を含まないことも当業者は当然理解する。
【0220】
コンピュータシステム(1900)は1つ以上の通信ネットワーク(1955)に対するインタフェイス(1954)も含むことができる。ネットワークはたとえば、無線ネットワーク、有線ネットワーク、光学ネットワークであることが可能である。さらに、ネットワークはローカル、広域、大都市圏、車両用及び産業用、リアルタイム、遅延耐性などのネットワークであることが可能である。ネットワークの例には、Ethernetなどのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラネットワーク、ケーブルテレビ、衛星テレビ及び地上波テレビを含むテレビの有線又は無線広域デジタルネットワーク、CAN busを含む車両用及び産業用などが含まれる。なんらかのネットワークには一般的になんらかの汎用データポートやペリフェラルバス(1949)に取り付けられる外部ネットワークインタフェイスアダプタが必要であり(たとえば、コンピュータシステム(1900)のUSBポートなど)、その他のものとしては、一般的には、後述されているようにシステムバスに取り付けられることによってコンピュータシステム(1900)のコアに組み込まれるものがある(たとえば、PCコンピュータシステムに組み込まれるEthernetインタフェイスや、スマートフォンコンピュータシステムに組み込まれるセルラネットワークインタフェイス)。これらのネットワークのいずれを用いても、コンピュータシステム(1900)は相手方と通信することができる。このような通信は一方向、受信専用(たとえば、テレビ放送)、一方向送信専用(たとえば、CANbusから特定のCANbusデバイス)又は双方向、たとえば、ローカル若しくは広域デジタルネットワークを用いた他のコンピュータシステムに対する双方向の通信であることが可能である。上述のこのようなネットワーク及びネットワークインタフェイスの各々にいくつかのプロトコル及びプロトコルスタックを用いることができる。
【0221】
上記のヒューマンインタフェイス装置、人間による取り扱いが可能な記憶デバイス及びネットワークインタフェイスをコンピュータシステム(1900)のコア(1940)に取り付けることができる。
【0222】
コア(1940)は1つ以上の中央処理装置(CPU)(1941)、グラフィックスプロセッシングユニット(GPU)(1942)、フィールドプログラマブルゲートエリア(FPGA)(1943)の形態の専用のプログラム可能な処理ユニット、特定のタスクに用いるハードウェアアクセラレータ(1944)、グラフィックスアダプタ(1950)などを含むことができる。これらのデバイスは、読出し専用メモリ(ROM)(1945)、ランダムアクセスメモリ(1946)、内蔵されてユーザによる取り扱いが不能なハードディスク、SSDなどの内蔵大容量ストレージ(1947)とともに、システムバス(1948)を通じて接続されてもよい。いくつかのコンピュータシステムでは、システムバス(1948)はCPU、GPUなどを追加することによって拡張を可能にする1つ以上の物理的なプラグの形態をとり、手作業可能なものであることが可能である。周辺デバイスをコアのシステムバス(1948)に直接取り付けるか、ペリフェラルバス(1949)を通じて取り付けるかすることができる。一例では、画面(1910)をグラフィックスアダプタ(1950)に接続することができる。ペリフェラルバスのアーキテクチャにはPCI、USBなどが含まれる。
【0223】
CPU(1941)、GPU(1942)、FPGA(1943)及びアクセラレータ(1944)は、組み合さって上記のコンピュータコードを形成することができるいくつかの指示を実行することができる。このコンピュータコードをROM(1945)に記憶したりRAM(1946)に記憶したりすることができる。変化していくデータもRAM(1946)に記憶することができる一方で、変化しないデータをたとえば内蔵大容量ストレージ(1947)に記憶することができる。1つ以上のCPU(1941)、GPU(1942)、大容量ストレージ(1947)、ROM(1945)、RAM(1946)などに密接に関連づけることができるキャッシュメモリを用いることにより、メモリデバイスのいずれにも高速記憶及び読み出しを行なうことを可能にすることができる。
【0224】
コンピュータ可読媒体には様々なコンピュータ実施動作を実行するためのコンピュータコードを搭載することができる。媒体及びコンピュータコードは本開示のために特別に設計及び構成されたものであることが可能であるし、コンピュータソフトウェア技術の当業者によく知られ、当業者が入手可能な種類のものであることが可能である。
【0225】
限定を課さない例として、アーキテクチャ(1900)を有するコンピュータシステム、特にコア(1940)は、プロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)が1つ以上の有形のコンピュータ可読媒体中で実施されるソフトウェアを実行する結果として機能を発揮することができる。このようなコンピュータ可読媒体は上記で紹介したユーザによる取り扱いが可能な大容量ストレージに関連する媒体であることが可能であるだけでなく、コア内蔵型大容量ストレージ(1947)やROM(1945)など、非一時的な特性を持つコア(1940)の特定のストレージであることも可能である。本開示の様々な実施形態を実施するソフトウェアをこのようなデバイスに記憶してコア(1940)によって実行することができる。コンピュータ可読媒体は個々の要求に応じて1つ以上のメモリデバイスやチップを含むことができる。ソフトウェアによって、コア(1940)、特にコア(1940)内のプロセッサ(CPU、GPU、FPGAなどを含む)に、本出願で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行させることができる(RAM(1946)に記憶されるデータ構造を決めることと、ソフトウェアによって定められたプロセスに従ってこのようなデータ構造を修正することとを含む)。これに加えて、又はこれに代わるものとして、本コンピュータシステムは結線によるロジックの結果として機能を発揮したり、回路において別の仕方で実施して機能を発揮したりすることができ(たとえばアクセラレータ(1944))、これは、本出願で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに動作したり、ソフトウェアと協働したりすることができる。必要に応じて、「ソフトウェア」と記載されている場合にはロジックを包含する場合があり、逆も可能である。必要に応じて、「コンピュータ可読媒体」と記載されている場合には、実行されるソフトウェアを記憶する回路(集積回路(IC)など)や、実行されるロジックを実施する回路や、これらの両方を包含する場合がある。本開示にはハードウェアとソフトウェアとの任意の適切な組合せが含まれる。
【0226】
本開示ではいくつかの典型的な実施形態を説明してきたが、変形例、置換例及び様々な代替均等例が存在し、これらは本開示の範囲に含まれる。従って、当業者であれば、本出願で明示的に示されていたり説明されていたりしなくても、本開示の原理を実施し、従ってその精神及び範囲内にある多数のシステム及び方法を想起することができることが分かる。
付記A:頭字語
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:Groups of Picture
TU:Transform Unit
PU:Prediction Unit
CTU:Coding Tree Unit
CTB:Coding Tree Block
PB:Prediction Block
HRD:Hypothetical Reference Decoder
SNR:Signal Noise Ratio
CPU:Central Processing Unit
GPU:Graphics Processing Unit
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 communication
LTE:Long-Term Evolution
CANBus:Controller Area Network Bus
USB:Universal Serial Bus
PCI:Peripheral Component Interconnect
FPGA:Field Programmable Gate Area
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-Partition
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
MVD:Motion Vector difference
CfL:Chroma from Luma
SDT:Semi Decoupled Tree
SDP:Semi Decoupled Partitioning
SST:Semi Separate Tree
SB:Super Block
IBC(すなわちIntraBC):Intra Block Copy
CDF:Cumulative Density Function
SCC:Screen Content Coding
GBI:Generalized Bi-prediction
BCW:Bi-prediction with CU-level Weight
CIIP:Combined intra-inter prediction
POC:Picture Order Count
RPS:Reference Picture Set
DPB:Decoded Picture Buffer
MMVD:Merge Mode with Motion Vector Difference
【符号の説明】
【0227】
R01~R70 参照サンプル
S11~S44 サンプル
101 点
102 矢印
103 矢印
104 正方形ブロック
201 現在のブロック
202~206 サンプル
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 シンボル
530 電子装置
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 インタデコーダ
902~908 分割パターン
1002~1008 Tタイプパターン
1010 パターン
1102 垂直二分分割
1104 水平二分分割
1106 垂直三分分割
1108 水平三分分割
1200 ベースブロック
1202~1208 分割部
1302及び1304 三分パターン
1410 分割パターン
1420 ツリー構造
1402~1408 分割部
1502 正方形符号化ブロック
1504及び1506 分割方式
1602 インタ符号化ブロック
1604 分割方式
1800 フローチャート
1900 コンピュータシステム
1901 キーボード
1902 マウス
1903 トラックパッド
1905 ジョイスティック
1906 マイク
1907 スキャナ
1908 カメラ
1909 音声出力デバイス
1910 タッチ画面
1920 CD/DVD ROM/RW
1921 媒体
1922 サムドライブ
1923 ソリッドステートドライブ
1940 コア
1941 CPU
1942 GPU
1943 FPGA
1944 ハードウェアアクセラレータ
1945 ROM
1946 RAM
1947 大容量ストレージ
1948 システムバス
1949 ペリフェラルバス
1950 グラフィックスアダプタ
1954 インタフェイス
1955 通信ネットワーク
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
【国際調査報告】