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

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

▶ 鴻穎創新有限公司の特許一覧

特表2024-546498ビデオデータをデコードする装置および方法
<>
  • 特表-ビデオデータをデコードする装置および方法 図1
  • 特表-ビデオデータをデコードする装置および方法 図2
  • 特表-ビデオデータをデコードする装置および方法 図3
  • 特表-ビデオデータをデコードする装置および方法 図4
  • 特表-ビデオデータをデコードする装置および方法 図5A
  • 特表-ビデオデータをデコードする装置および方法 図5B
  • 特表-ビデオデータをデコードする装置および方法 図5C
  • 特表-ビデオデータをデコードする装置および方法 図6
  • 特表-ビデオデータをデコードする装置および方法 図7
  • 特表-ビデオデータをデコードする装置および方法 図8
  • 特表-ビデオデータをデコードする装置および方法 図9A
  • 特表-ビデオデータをデコードする装置および方法 図9B
  • 特表-ビデオデータをデコードする装置および方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-24
(54)【発明の名称】ビデオデータをデコードする装置および方法
(51)【国際特許分類】
   H04N 19/52 20140101AFI20241217BHJP
   H04N 19/105 20140101ALI20241217BHJP
   H04N 19/139 20140101ALI20241217BHJP
【FI】
H04N19/52
H04N19/105
H04N19/139
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024535855
(86)(22)【出願日】2022-12-15
(85)【翻訳文提出日】2024-06-14
(86)【国際出願番号】 CN2022139281
(87)【国際公開番号】W WO2023109899
(87)【国際公開日】2023-06-22
(31)【優先権主張番号】63/265,442
(32)【優先日】2021-12-15
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/265,777
(32)【優先日】2021-12-20
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.3GPP
(71)【出願人】
【識別番号】518446879
【氏名又は名称】鴻穎創新有限公司
【氏名又は名称原語表記】FG INNOVATION COMPANY LIMITED
【住所又は居所原語表記】Flat 2623,26/F Tuen Mun Central Square,22 Hoi Wing Road,Tuen Mun,New Territories,The Hong Kong Special Administrative Region of the People’s Republic of China
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】ヤン,ユチァオ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159NN11
5C159RC12
5C159RC16
5C159RC38
5C159TA30
5C159TB08
5C159TC12
(57)【要約】
電子装置によるビデオデータのデコード方法が提供される。電子装置は、ビデオデータを受信し、ビデオデータに従って画像フレームからブロックユニットを決定する。さらに、電子装置は、ブロックユニットに隣接しない少なくとも1つの非隣接位置を含む複数の候補位置を決定し、候補位置から複数の動き候補を決定する。電子装置は、さらに、動き候補に基づいて、ビデオデータに含まれる1つ以上のコロケーティッドフレーム(コロケーティッドブロック)のうちの1つにそれぞれ含まれる複数のコロケーティッドブロックを選択し、コロケーティッドブロックのそれぞれについて第1のコスト値を決定する。次に、電子装置は、動き候補及び第1のコスト値に基づいて、少なくとも1つのサブブロックベースの時間動きベクトル予測(SbTMVP)候補を決定し、少なくとも1つのSbTMVP候補に基づいて、ブロックユニットを再構成する。
【特許請求の範囲】
【請求項1】
電子装置によってビデオデータをデコードする方法であって、
前記ビデオデータを受信するステップ、
前記ビデオデータに従って、画像フレームからブロックユニットを決定するステップ、
前記ブロックユニットに隣接しない少なくとも1つの非隣接位置を含む複数の候補位置を決定するステップ、
前記複数の候補位置から複数の動き候補を決定するステップ、
前記複数の動き候補に基づいて、前記ビデオデータに含まれる1つまたは複数のコロケーティッド(collocated)フレームの1つにそれぞれ含まれる複数のコロケーティッドブロックを選択するステップ、
前記複数のコロケーティッドブロックのそれぞれについて、第1のコスト値を決定するステップ、
前記複数の動き候補および前記複数の第1のコスト値に基づいて、少なくとも1つのサブブロックベースの時間動きベクトル予測(SbTMVP)候補を決定するステップ、および、
前記少なくとも1つのSbTMVP候補に基づいて前記ブロックユニットを再構築するステップ、を含む方法。
【請求項2】
前記複数の候補位置は、前記ブロックユニットに隣接する複数の隣接位置のうちの少なくとも1つをさらに含む、請求項1に記載の方法。
【請求項3】
前記画像フレームから、前記複数の候補位置に基づいて、前記ブロックユニットに隣接(neighboring)する複数の近傍ブロックを決定するステップであって、前記複数の近傍ブロックの少なくとも1つは、前記少なくとも1つの非隣接位置の1つをカバーする、ステップ、
前記画像フレームから、前記ブロックユニットに隣接するテンプレート領域と、前記複数の近傍ブロックのうちの1つにそれぞれ隣接する複数の近傍領域とを決定するステップ、
前記テンプレート領域と前記複数の近傍領域のそれぞれに基づいて、第2のコスト値を決定するステップ、
前記複数の第2のコスト値に基づいて複数の候補ブロックを選択するステップ、および
前記複数の候補ブロックから前記複数の動き候補を決定するステップ、
をさらに含む、請求項1に記載の方法。
【請求項4】
前記複数の動き候補の各々は、前記複数の候補位置のうちの1つをカバーする候補ブロックの動きベクトル、リスト情報、およびフレーム情報を示し、
特定の候補ブロックの前記フレーム情報内のフレームインデックスが、少なくとも1つの所定の値の1つに等しい場合、前記特定の候補ブロックのリスト情報が示す基準リストから選択された前記特定の候補ブロックの基準フレームは、前記1つ以上のコロケーティッドフレームに含まれる、請求項1に記載の方法。
【請求項5】
前記複数のコロケーティッドブロックのうちの1つが、前記動きベクトルおよび前記複数の候補位置のうちの対応する1つに基づいて、前記特定の候補ブロックの前記基準フレームから選択される、請求項4に記載の方法。
【請求項6】
前記特定の候補ブロックの前記フレーム情報内の前記フレームインデックスが少なくとも1つの所定の値と異なる場合、前記特定の候補ブロックの前記基準フレームが前記1つまたは複数のコロケーティッドフレームから除外される、請求項4に記載の方法。
【請求項7】
前記複数の動き候補の各々は、前記複数の候補位置のうちの1つをカバーする候補ブロックの動きベクトル、リスト情報、およびフレーム情報を示し、
前記特定の候補ブロックが双予測ブロックである場合、前記特定の候補ブロックの少なくとも1つの基準フレームは、前記特定の候補ブロックの2つの基準リストから決定され、
前記特定の候補ブロックの前記フレーム情報に含まれる2つのフレームインデックスのうちの1つが、少なくとも1つの所定の値のうちの1つに等しい場合、前記少なくとも1つの基準フレームは、前記1つまたは複数のコロケーティッドフレームに含まれる、請求項1に記載の方法。
【請求項8】
前記少なくとも1つのSbTMVP候補を候補リストに追加するステップ、
予測インデックスに基づいて前記候補リストから予測候補を選択するステップ、および、
予測モードに基づいて前記ブロックユニットを再構成するステップ、
をさらに含む、請求項1に記載の方法。
【請求項9】
前記複数のコロケーティッドブロックは、複数のコロケーティッドフレームから選択される、請求項1に記載の方法。
【請求項10】
前記画像フレームから、前記ブロックユニットに隣接するテンプレート領域を決定し、前記1つまたは複数のコロケーティッドフレームから、前記複数のコロケーティッドブロックのうちの1つにそれぞれ隣接する複数のコロケーティッド領域を決定するステップ、および、
前記テンプレート領域と前記複数のコロケーティッド領域の各々との間の前記第1のコスト値を決定するステップ、
をさらに含む、請求項1に記載の方法。
【請求項11】
ビデオデータをデコードするための電子装置であって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに結合され、前記少なくとも1つのプロセッサによって実行されるとき、前記電子装置に、
前記ビデオデータを受信し、
前記ビデオデータに従って、画像フレームからブロックユニットを決定し、
前記ブロックユニットに隣接していない少なくとも1つの非隣接位置を含む複数の候補位置を決定し、
前記複数の候補位置から複数の動き候補を決定し、
前記複数の動き候補に基づいて、前記ビデオデータに含まれる1つまたは複数のコロケーティッドフレームの1つにそれぞれ含まれる複数のコロケーティッドブロックを選択し、
前記複数のコロケーティッドブロックのそれぞれについて、第1のコスト値を決定し、
前記複数の動き候補および前記複数の第1のコスト値に基づいて、少なくとも1つのサブブロックベースの時間動きベクトル予測(SbTMVP)候補を決定し、
前記少なくとも1つのSbTMVP候補に基づいて前記ブロックユニットを再構築する、ことを実行させる複数のコンピュータ実行可能命令を記憶する少なくとも1つの記憶デバイスと、を備える、電子装置。
【請求項12】
前記複数の候補位置は、前記ブロックユニットに隣接する複数の隣接位置のうちの少なくとも1つをさらに含む、請求項10に記載の電子装置。
【請求項13】
前記複数のコンピュータ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記電子装置にさらに、
前記画像フレームから、前記複数の候補位置に基づいて、前記ブロックユニットに隣接する複数の近傍ブロックを決定し、
前記画像フレームから、前記ブロックユニットに隣接するテンプレート領域と、前記複数の近傍ブロックのうちの1つにそれぞれ隣接する複数の近傍領域とを決定し、
前記テンプレート領域と前記複数の近傍領域のそれぞれに基づいて、第2のコスト値を決定し、
前記複数の第2のコスト値に基づいて複数の候補ブロックを選択し、
前記複数の候補ブロックから前記複数の動き候補を決定する、ことを実行させ、
前記複数の近傍ブロックのうちの少なくとも1つは、前記少なくとも1つの非隣接位置のうちの1つをカバーする、請求項10に記載の電子装置。
【請求項14】
前記複数の動き候補の各々は、前記複数の候補位置のうちの1つをカバーする候補ブロックの動きベクトル、リスト情報、およびフレーム情報を示し、
特定の候補ブロックの前記フレーム情報内のフレームインデックスが、少なくとも1つの所定の値の1つに等しい場合、前記特定の候補ブロックのリスト情報が示す基準リストから選択された前記特定の1つの候補ブロックの基準フレームは、前記1つ以上のコロケーティッドフレームに含まれる、請求項10に記載の電子装置
【請求項15】
前記複数のコロケーティッドブロックのうちの1つは、前記動きベクトルおよび前記複数の候補位置のうちの対応する1つに基づいて、前記特定の候補ブロックの前記基準フレームから選択される、請求項14に記載の電子装置。
【請求項16】
前記特定の候補ブロックの前記フレーム情報における前記フレームインデックスが少なくとも1つの所定の値と異なる場合に、前記特定の候補ブロックの前記基準フレームが前記1つまたは複数のコロケーティッドフレームから除外される、請求項14に記載の電子装置。
【請求項17】
前記複数の動き候補の各々は、前記複数の候補位置のうちの1つをカバーする候補ブロックの動きベクトル、リスト情報、およびフレーム情報を示し、
特定の候補ブロックが双予測ブロックである場合、前記候補ブロックの特定の1つの少なくとも1つの基準フレームは、前記特定の候補ブロックの2つの基準リストから決定され、
前記特定の候補ブロックの前記フレーム情報に含まれる2つのフレームインデックスのうちの1つが、少なくとも1つの所定の値のうちの1つに等しい場合、前記少なくとも1つの基準フレームは、前記1つまたは複数のコロケーティッドフレームに含まれる、請求項10に記載の電子装置
【請求項18】
前記複数のコンピュータ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記電子装置にさらに、
前記少なくとも1つのSbTMVP候補を候補リストに追加し、
予測インデックスに基づいて前記候補リストから予測候補を選択し、
予測モードに基づいて前記ブロックユニットを再構成することを実行させる、請求項10に記載の電子装置。
【請求項19】
前記複数のコロケーティッドブロックは、複数のコロケーティッドフレームから選択される、請求項10に記載の電子装置。
【請求項20】
前記複数のコンピュータ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記電子装置にさらに、
前記画像フレームから、前記ブロックユニットに隣接するテンプレート領域を決定し、前記1つまたは複数のコロケーティッドフレームから、前記複数のコロケーティッドブロックのうちの1つにそれぞれ隣接する複数のコロケーティッド領域を決定し、
前記テンプレート領域と前記複数のコロケーティッド領域の各々との間の前記第1のコスト値を決定することを実行させる、請求項10に記載の電子装置。
【発明の詳細な説明】
【発明の詳細な説明】
【0001】
〔技術分野〕
本開示は、「TEMPORAL-BASED PREDICTION TOOLS」と題する、2021年12月15日に出願された米国仮特許出願シリアル番号63/265442、および「SUBBLOCK TMVP IMPROVEMENT BASED ON TEMPLATE MATCHING」と題する、2021年12月20日に出願された米国仮特許出願シリアル番号63/265777の利益および優先権を主張し、これらの内容は、参照により本開示に完全に組み込まれる。
【0002】
本開示は、一般にビデオデコーディングに関するものであり、より具体的には、テンプレート予測を使用する技術に関するものである。
【0003】
〔背景技術〕
サブブロックベースの時間動きベクトル予測(SbTMVP)は、ビデオコーディングのためのコーディングツールである。従来のビデオコーディング方法において、エンコーダとデコーダは、画像フレーム内の候補ブロックに対して、コロケーティッドフレーム内のコロケーティッドブロックを決定し、候補ブロックを予測するための複数のSbTMVP候補のうちの1つを生成することができる。
【0004】
エンコーダ及びデコーダは、コロケーティッドブロックを複数のコロケーティッドサブブロックに分割し、コロケーティッドブロックの動き情報を用いて、コロケーティッドブロック内のコロケーティッドサブブロックに対する複数の第1のサブブロックベクトルVs1を決定してもよい。次に、エンコーダおよびデコーダは、候補ブロックを複数のターゲットサブブロックに分割し、コロケーティッドサブブロックの第1のサブブロックベクトルVs1に基づいて、ブロックユニット内のターゲットサブブロックのための複数の第2のサブブロックベクトルVs2を導出してもよい。第2のサブブロックベクトルVs2の各々は、第1のサブブロックベクトルVs1の対応する1つと、画像フレームとブロックユニットの基準フレームとの間の基準距離と、コロケーティッドフレームとコロケーティッドブロックのコロケーティッド基準フレームとの間のコロケーティッド距離とに基づいて導出され得る。
【0005】
しかし、候補ブロックのSbTMVP候補は、収集順序に基づいて配置されているだけであるため、SbTMVP候補を用いて候補ブロックを予測する場合、選択されたSbTMVP候補を決定するためのインデックスをシグナリングするためのコーディング効率が十分に高くならない可能性がある。したがって、エンコーダとデコーダは、候補ブロックをより正確に予測または再構成するために、新たなSbTMVPを必要とする場合がある。
〔概要〕
【0006】
本開示は、テンプレート予測を用いて画像フレーム内のブロックユニットを予測する装置及び方法に向けられている。
【0007】
本開示の第1の態様では、ビデオデータをデコードする方法と、その方法を実行するための電子装置が提供される。本方法は、ビデオデータを受信するステップ、前記ビデオデータに従って画像フレームからブロックユニットを決定するステップ、ブロックユニットに隣接しない少なくとも1つの非隣接位置を含む複数の候補位置を決定するステップ、前記複数の候補位置から複数の動き候補を決定するステップ、前記複数の動き候補に基づいて、前記ビデオデータに含まれる1つまたは複数のコロケーティッドフレームのうちの1つにそれぞれ含まれる複数のコロケーティッドブロックを選択するステップ、前記複数のコロケーティッドブロックのそれぞれについて第1のコスト値を決定するステップ、複数の動き候補および複数の第1のコスト値に基づいて、少なくとも1つのサブブロックベースの時間動きベクトル予測(SbTMVP)候補を決定するステップ、および、前記少なくとも1つのSbTMVP候補に基づいて、ブロックユニットを再構成するステップ、を含む。
【0008】
第1の態様の別の実施形態において、前記複数の候補位置は、ブロックユニットに隣接する複数の隣接位置のうちの少なくとも1つをさらに含む。
【0009】
第1の態様の実施形態は、前記画像フレームから、前記複数の候補位置に基づいて、前記ブロックユニットに隣接する複数の近傍ブロックを決定するステップであって、前記複数の近傍ブロックのうちの少なくとも1つが、前記少なくとも1つの非隣接位置のうちの1つをカバーするステップ、前記画像フレームから、前記ブロックユニットに隣接するテンプレート領域と、複数の近傍ブロックのうちの1つにそれぞれ隣接する複数の隣接領域とを決定するステップと、前記テンプレート領域と前記複数の近傍領域のそれぞれとに基づいて第2のコスト値を決定するステップと、前記複数の第2のコスト値に基づいて複数の候補ブロックを選択するステップと、前記複数の候補ブロックから前記複数の動き候補を決定するステップと、をさらに含む。
【0010】
第1の態様の別の実施形態では、複数の動き候補の各々は、前記複数の候補位置のうちの1つをカバーする候補ブロックの動きベクトル、リスト情報、およびフレーム情報を示し、特定の候補ブロックのフレーム情報におけるフレームインデックスが少なくとも1つの所定の値のうちの1つに等しい場合、特定の候補ブロックのリスト情報によって示される基準リストから選択される候補ブロックのうちの特定の1つの基準フレームが、1つまたは複数のコロケーティッドフレームに含まれる。
【0011】
第1の態様の別の実施形態では、複数のコロケーティッドブロックのうちの1つが、動きベクトルと複数の候補位置のうちの対応する1つとに基づいて、特定の候補ブロックの基準フレームから選択される。
【0012】
第1の態様の別の実施形態では、特定の候補ブロックのフレーム情報のフレームインデックスが少なくとも1つの所定の値と異なる場合、特定の候補ブロックの基準フレームは、1つまたは複数のコロケーティッドフレームから除外される。
【0013】
第1の態様の別の実施形態では、複数の動き候補の各々は、複数の候補位置のうちの1つをカバーする候補ブロックの動きベクトル、リスト情報、およびフレーム情報を示し、候補ブロックのうちの特定の1つの少なくとも1つの基準フレームは、特定の候補ブロックが双予測ブロックである場合、特定の候補ブロックの2つの基準リストから決定され、特定の候補ブロックのフレーム情報内の2つのフレームインデックスのうちの1つが少なくとも1つの所定の値のうちの1つに等しい場合、前記少なくとも1つの基準フレームは、前記1つまたは複数のコロケーティッドフレームに含まれる。
【0014】
第1の態様の実施形態は、前記少なくとも1つのSbTMVP候補を候補リストに追加するステップと、予測インデックスに基づいて候補リストから予測候補を選択するステップと、前記予測モードに基づいて前記ブロックユニットを再構成するステップと、をさらに含む。
【0015】
第1の態様の別の実施形態では、前記複数のコロケーティッドブロックは、複数のコロケーティッドフレームから選択される。
【0016】
第1の態様の実施形態は、前記画像フレームから、前記ブロックユニットに隣接するテンプレート領域を決定し、1つ以上のコロケーティッドフレームから、複数のコロケーティッドブロックの内の1つにそれぞれ隣接する複数のコロケーティッド領域を決定するステップ、前記テンプレート領域と前記複数のコロケーティッド領域の各々との間の前記第1のコスト値を決定するステップと、をさらに含む。
【0017】
〔図面の簡単な説明〕
本開示の態様は、以下の詳細な開示および対応する図から最もよく理解される。様々な特徴は縮尺通りに描かれておらず、様々な特徴の寸法は、議論を明確にするために任意に増減される場合がある。
図1図1は、本開示の実施形態に従ってビデオデータをエンコードおよびデコードするように構成されたシステムのブロック図である。
図2図2は、本開示の実施形態による、図1に図示された第2の電子装置のデコーダモジュールのブロック図である。
図3図3は、本開示の実施形態による、電子装置によってビデオデータをデコードする方法のフローチャートを示す。
図4図4は、本開示の一実施形態によるブロックと複数の候補位置の例示的な実施態を示す説明図である。
図5図5A図5B、および図5Cは、本開示の一実施形態によるテンプレート領域および異なる近傍領域の例示的な実施態を示す図である。
図6図6は、本開示の一実施形態による、ブロックユニット及びテンプレート領域を有する画像フレーム、並びに、コロケーティッドブロック及びコロケーティッド領域を有するコロケーティッドフレームの例示的な実施態を示す説明図である。
図7図7は、本開示の一実施形態による、ブロックユニット及びテンプレート領域を有する画像フレーム、並びに、コロケーティッドブロック、シフトブロック及びコロケーティッド領域を有するコロケーティッドフレームの例示的な実施態を示す説明図である。
図8図8は、本開示の実施形態による、電子装置によってビデオデータをデコードする方法のフローチャートを示す。
図9図9Aおよび図9Bは、本開示の実施形態によるテンプレート領域および基準領域の例示的な実施態を示す図である。
図10図10は、本開示の実施形態による、図1に示される第1の電子装置のエンコーダモジュールのブロック図である。
【発明を実施するための形態】
【0018】
以下の開示は、本開示における実施に関連する具体的な情報を含む。図および対応する詳細な開示は、例示的な実施形態に向けられている。しかしながら、本開示はこれらの例示的な実施形態に限定されるものではない。本開示の他の変形例および例示的な実施態は、当業者に生じるであろう。
【0019】
特に断りのない限り、図中の同様の要素または対応する要素は、同様の基準指定子または対応する基準指定子で示すことができる。本開示における図および図示は、一般に縮尺通りではなく、実際の相対寸法に対応することを意図していない。
【0020】
一貫性と理解を容易にする目的で、例示的な図では、同様の特徴が基準指定子によって(いくつかの例示的な実施態では図示されていないが)特定されている。しかしながら、異なる実施形態における特徴は、他の点で異なる可能性があり、図に例示されているものに狭く限定されないものとする。
【0021】
本開示では、「1つの実施形態において」または「いくつかの実施形態において」という表現を用いているが、これは、1つまたは複数の同じまたは異なる実施形態を指す場合がある。「結合」という用語は、直接的であるか間接的であるかを問わず、介在する構成要素を介して接続されていることを意味し、必ずしも物理的な接続に限定されない。comprising」という用語は、「を含むが、必ずしもこれに限定されない」ことを意味し、具体的には、そのように記述された組合せ、グループ、シリーズ、および同等のものにおけるオープンエンドの包含またはメンバーシップを示す。
【0022】
説明および非限定を目的として、機能エンティティ、技術、プロトコル、および規格などの具体的な詳細は、開示される技術の理解を提供するために記載される。周知の方法、技術、システム、およびアーキテクチャの詳細な開示は、不必要な詳細によって本開示を不明瞭にしないために省略する。
【0023】
当業者であれば、本開示に記載される開示されたコード機能(複数可)またはアルゴリズム(複数可)は、ハードウェア、ソフトウェア、またはソフトウェアとハードウェアの組み合わせによって実装され得ることを認識するであろう。開示された機能は、ソフトウェア、ハードウェア、ファームウェア、またはそれらの組み合わせであるモジュールに対応してもよい。
【0024】
ソフトウェア実装は、メモリまたは他のタイプの記憶装置などのコンピュータ可読媒体上に記憶されたコンピュータ実行可能命令を有するプログラムを含むことができる。例えば、通信処理能力を有する1つまたは複数のマイクロプロセッサまたは汎用コンピュータは、実行可能命令でプログラムされ、開示された機能(複数可)またはアルゴリズム(複数可)を実行することができる。
【0025】
マイクロプロセッサまたは汎用コンピュータは、特定用途向け集積回路(ASIC)、プログラマブルロジックアレイ、および/または1つまたは複数のデジタル信号プロセッサ(DSP)を使用して形成することができる。開示された実装のいくつかは、コンピュータハードウェア上にインストールされ実行されるソフトウェアを指向しているが、ファームウェアとして、またはハードウェアとして、またはハードウェアとソフトウェアの組み合わせとして実装される代替的な実装は、本開示の範囲内にある。コンピュータ可読媒体には、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROM)、電気的消去可能プログラマブルリードオンリーメモリ(EEPROM)、フラッシュメモリ、コンパクトディスクリードオンリーメモリ(CD ROM)、磁気カセット、磁気テープ、磁気ディスクストレージ、またはコンピュータ可読命令を記憶することができる任意の他の等価媒体が含まれるが、これらに限定されない。
【0026】
図1は、本開示の実施形態に従ってビデオデータをエンコードおよびデコードするように構成されたシステム100のブロック図を示す。システム100は、第1の電子装置110、第2の電子装置120、および通信媒体130を含む。
【0027】
第1の電子装置110は、ビデオデータをエンコードし、エンコードされたビデオデータを通信媒体130に送信するように構成された任意のデバイスを含むソースデバイスであってもよい。第2の電子装置120は、通信媒体130を介してエンコードされたビデオデータを受信し、エンコードされたビデオデータをデコードするように構成された任意のデバイスを含む宛先デバイスであってもよい。
【0028】
第1の電子装置110は、通信媒体130を介して第2の電子装置120と有線または無線で通信することができる。第1の電子装置110は、ソースモジュール112、エンコーダモジュール114、および第1のインターフェース116を含んでもよい。第2の電子装置120は、ディスプレイモジュール122、デコーダモジュール124、および第2のインターフェース126を含んでもよい。第1の電子装置110はビデオエンコーダであってもよく、第2の電子装置120はビデオデコーダであってもよい。
【0029】
第1の電子装置110及び/又は第2の電子装置120は、携帯電話、タブレット、デスクトップ、ノートブック、又は他の電子装置であってもよい。図1は、第1の電子装置110及び第2の電子装置120の一例を示す。第1の電子装置110及び第2の電子装置120は、図示されているよりも多い又は少ない構成要素を含んでいてもよく、或いは、図示されている様々な構成要素の異なる構成を有していてもよい。
【0030】
ソースモジュール112は、新しいビデオをキャプチャするビデオキャプチャデバイス、以前にキャプチャされたビデオを保存するビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するビデオフィードインターフェースを含んでもよい。ソースモジュール112は、ソースビデオとしてコンピュータグラフィックスベースのデータを生成してもよいし、ソースビデオとしてライブビデオ、アーカイブビデオ、およびコンピュータ生成ビデオの組み合わせを生成してもよい。ビデオキャプチャデバイスは、電荷結合素子(CCD)イメージセンサ、相補型金属酸化膜半導体(CMOS)イメージセンサ、またはカメラであってもよい。
【0031】
エンコーダモジュール114およびデコーダモジュール124はそれぞれ、1つまたは複数のマイクロプロセッサ、中央処理装置(CPU)、グラフィック処理装置(GPU)、システムオンチップ(SoC)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組み合わせなど、さまざまな適切なエンコーダ/デコーダ回路のいずれかとして実装することができる。部分的にソフトウェアで実装される場合、デバイスは、ソフトウェアの命令を有するプログラムを適切な非一過性のコンピュータ読み取り可能媒体に格納し、開示された方法を実行するために1つまたは複数のプロセッサを使用してハードウェアで命令を実行することができる。エンコーダモジュール114およびデコーダモジュール124の各々は、それらのいずれかは、デバイス内の複合エンコーダ/デコーダ(CODEC)の一部として統合される1つまたは複数のエンコーダまたはデコーダに含まれてもよい。
【0032】
第1のインターフェース116および第2のインターフェース126は、カスタマイズされたプロトコル、または、これらに限定されないが、イーサネット、IEEE802.11またはIEEE802.15シリーズ、ワイヤレスUSBを含む既存の標準または事実上の標準、または、Global System for Mobile Communications(GSM)、Code-Division Multiple Access 2000(CDMA2000)、Time Division Synchronous Code Division Multiple Access(TD-SCDMA)、Worldwide Interoperability for Microwave Access(WiMAX)、Third Generation Partnership Project Long-Term Evolution(3GPP-LTE)、またはTime-Division LTE(TD-LTE)を含むテレコミュニケーション標準(ただし、に限定されない)に従ってもよい。第1のインターフェース116および第2のインターフェース126はそれぞれ、通信媒体130を介して準拠ビデオビットストリームを送信および/または記憶し、通信媒体130を介して準拠ビデオビットストリームを受信するように構成された任意のデバイスを含み得る。
【0033】
第1のインターフェース116および第2のインターフェース126は、準拠ビデオビットストリームをストレージデバイスに格納すること、またはストレージデバイスから受信することを可能にするコンピュータシステムインターフェースを含むことができる。例えば、第1のインターフェース116および第2のインターフェース126は、PCI(Peripheral Component Interconnect)およびPCIe(Peripheral Component Interconnect Express)バスプロトコル、独自のバスプロトコル、USB(Universal Serial Bus)プロトコル、I2C(Inter-Integrated Circuit)プロトコル、またはピアデバイスを相互接続するために使用され得る任意の他の論理的および物理的構造をサポートするチップセットを含み得る。
【0034】
ディスプレイモジュール122は、液晶ディスプレイ(LCD)技術、プラズマディスプレイ技術、有機発光ダイオード(OLED)ディスプレイ技術、または発光ポリマーディスプレイ(LPD)技術を使用するディスプレイを含んでもよく、他の実装で使用される他のディスプレイ技術をともに含んでもよい。ディスプレイモジュール122は、高精細ディスプレイまたは超高精細ディスプレイを含んでもよい。
【0035】
図2は、本開示の実施形態による、図1に示された第2の電子装置120のデコーダモジュール124のブロック図である。デコーダモジュール124は、エントロピーデコーダ(例えば、エントロピーデコードユニット2241)と、予測プロセッサ(例えば、予測プロセスユニット2242)と、逆量子化/逆変換プロセッサ(例えば、逆量子化/逆変換ユニット2243)と、加算器(例えば、加算器2244)と、フィルタ(例えば、フィルタリングユニット2245)と、デコードピクチャバッファ(例えば、デコードピクチャバッファ2246)とを含む。予測プロセスユニット2242はさらに、イントラ予測プロセスユニット(例えばイントラ予測ユニット22421)およびインター予測プロセスユニット(例えばインター予測ユニット22422)を含む。デコーダモジュール124は、ビットストリームを受信し、ビットストリームをデコードして、デコードされたビデオを出力する。
【0036】
エントロピーデコードユニット2241は、図1の第2のインターフェース126から複数のシンタックス要素を含むビットストリームを受信し、ビットストリームに対して解析動作を実行して、ビットストリームからシンタックス要素を抽出してもよい。解析動作の一部として、エントロピーデコードユニット2241は、ビットストリームをエントロピーデコードして、量子化された変換係数、量子化パラメータ、変換データ、動きベクトル、イントラモード、パーティション情報、および他のシンタックス情報を生成してもよい。
【0037】
エントロピーデコードユニット2241は、量子化された変換係数を生成するために、コンテキスト適応可変長コーディング(CAVLC)、コンテキスト適応バイナリ算術コーディング(CABAC)、シンタックスベースのコンテキスト適応バイナリ算術コーディング(SBAC)、確率区間分割エントロピー(PIPE)コーディング、または別のエントロピーコーディング技法を実行してもよい。エントロピーデコードユニット2241は、量子化された変換係数、量子化パラメータ、および変換データを逆量子化/逆変換ユニット2243に提供し、動きベクトル、イントラモード、パーティション情報、および他のシンタックス情報を予測プロセスユニット2242に提供してもよい。
【0038】
予測プロセスユニット2242は、動きベクトル、イントラモード、パーティション情報などのシンタックス要素、およびその他のシンタックス情報をエントロピーデコードユニット2241から受信してもよい。予測プロセスユニット2242は、パーティション情報を含むシンタックス要素を受信し、パーティション情報に従って画像フレームを分割してもよい。
【0039】
画像フレームの各々は、パーティション情報に従って少なくとも1つの画像ブロックに分割されてもよい。少なくとも1つの画像ブロックは、複数のルミナンスサンプルを再構成するためのルミナンスブロックと、複数のクロミナンスサンプルを再構成するための少なくとも1つのクロミナンスブロックとを含んでよい。ルミナンスブロックおよび少なくとも1つのクロミナンスブロックは、マクロブロック、コーディングツリーユニット(CTU)、コーディングブロック(CB)、その下位分割、および/または別の等価なコードユニットを生成するためにさらに分割されてもよい。
【0040】
デコード処理中、予測プロセスユニット2242は、画像フレームの特定の1つの現在の画像ブロックに対するイントラモードまたは動きベクトルを含む予測データを受信してもよい。現在の画像ブロックは、特定の画像フレームのルミナンスブロックまたはクロミナンスブロックの1つであってもよい。
【0041】
イントラ予測ユニット22421は、予測ブロックを生成するために、イントラモードに関連するシンタックス要素に基づいて、現在のブロックユニットと同じフレーム内の1つまたは複数の近傍ブロックに対する現在のブロックユニットのイントラ予測エンコードを実行してもよい。イントラモードは、現在のフレーム内の近傍ブロックから選択された参照サンプルの位置を指定することができる。イントラ予測ユニット22421は、クロマ成分が予測プロセスユニット2242によって再構成されるとき、現在のブロックユニットの複数のルーマ成分に基づいて、現在のブロックユニットの複数のクロマ成分を再構成してもよい。
【0042】
イントラ予測ユニット22421は、予測プロセスユニット2242によって現在のブロックのルーマ成分が再構成されるとき、現在のブロックユニットの複数のルーマ成分に基づいて、現在のブロックユニットの複数のクロマ成分を再構成してもよい。
【0043】
インター予測ユニット22422は、予測されたブロックを生成するために、動きベクトルに関連するシンタックス要素に基づいて、1つまたは複数の参照画像ブロック内の1つまたは複数のブロックに対する現在のブロックユニットの相対的なインター予測エンコードを実行してもよい。動きベクトルは、参照画像ブロック内の参照ブロックユニットに対する現在の画像ブロック内の現在のブロックユニットの変位を示してもよい。参照ブロックユニットは、現在のブロックユニットと密接に一致するように決定されたブロックである。インター予測ユニット22422は、デコードピクチャバッファ2246に格納された参照画像ブロックを受信し、受信した参照画像ブロックに基づいて現在のブロックユニットを再構成してもよい。
【0044】
逆量子化/逆変換ユニット2243は、逆量子化および逆変換を適用して、画素領域において残留ブロックを再構成してもよい。逆量子化/逆変換ユニット2243は、残留量子化された変換係数に逆量子化を適用して残留変換係数を生成し、残留変換係数に逆変換を適用して画素ドメイン内の残留ブロックを生成してもよい。
【0045】
逆変換は、離散コサイン変換(DCT)、離散サイン変換(DST)、適応多重変換(AMT)、モード依存非分離二次変換(MDNSST)、ハイパーキューブ・ギブンス変換(HyGT)、信号依存変換、カルフネン・ロエベ変換(KLT)、ウェーブレット変換、整数変換、サブバンド変換、または概念的に類似の変換などの変換プロセスによって逆適用されてもよい。逆変換は、残留情報を周波数領域などの変換領域から画素領域に戻すことができる。逆量子化の程度は、量子化パラメータを調整することによって変更することができる。
【0046】
加算器2244は、再構成された残留ブロックを予測プロセスユニット2242から供給された予測ブロックに加算し、再構成ブロックを生成する。
【0047】
フィルタリングユニット2245は、再構成されたブロックからブロッキングアーティファクトを除去するために、デブロッキングフィルタ、サンプル適応オフセット(SAO)フィルタ、バイラテラルフィルタ、および/または適応ループフィルタ(ALF)を含んでもよい。デブロッキングフィルタ、SAOフィルタ、バイラテラルフィルタ、およびALFに加えて、追加のフィルタ(ループ内またはポストループ)を使用することもできる。このようなフィルタは、簡潔にするために明示的に図示されていないが、加算器2244の出力をフィルタリングしてもよい。フィルタリングユニット2245が特定の画像フレームの再構成されたブロックに対するフィルタリング処理を実行した後、フィルタリングユニット2245は、デコードされたビデオをディスプレイモジュール122または他のビデオ受信ユニットに出力してもよい。
【0048】
デコードピクチャバッファ2246は、(インターコーディングモードにおいて)ビットストリームをデコードする際に予測プロセスユニット2242によって使用される参照ブロックを記憶する参照ピクチャメモリであってよい。デコードピクチャバッファ2246は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成されてもよい。デコードピクチャバッファ2246は、デコーダモジュール124の他の構成要素とオンチップであってもよいし、それらの構成要素に対してオフチップであってもよい。
【0049】
図3は、本開示の実施形態による、電子装置によってビデオデータをデコードするための方法300のフローチャートを示す。ビデオデータのデコードを実行する様々な方法が存在するため、方法300は例示に過ぎない。
【0050】
方法300は、図1および図2に図示された構成を使用して実行されてもよく、これらの図の様々な要素は、方法300に関して参照される。図3に図示された各ブロックは、実行される1つまたは複数のプロセス、方法、またはサブルーチンを表すことができる。
【0051】
図3のブロックの順序は例示であり、変更してもよい。本開示から逸脱することなく、追加のブロックを追加してもよいし、より少ないブロックを利用してもよい。
【0052】
ブロック310において、デコーダモジュール124はビデオデータを受信する。デコーダモジュール124が受信するビデオデータは、ビットストリームであってもよい。
【0053】
図1および図2を参照すると、第2の電子装置120は、第2のインターフェース126を介して、第1の電子装置110などのエンコーダ、または他のビデオプロバイダからビットストリームを受信してもよい。第2のインターフェース126は、ビットストリームをデコーダモジュール124に提供してもよい。
【0054】
エントロピーデコードユニット2241は、ビットストリームをデコードして、複数の画像フレームに対する複数の予測指示および複数のパーティション指示を決定してもよい。次に、デコーダモジュール124は、予測指示およびパーティション指示に基づいて、複数の画像フレームをさらに再構成してもよい。予測指示およびパーティション指示は、複数のフラグおよび複数のインデックスを含んでもよい。
【0055】
ブロック320において、デコーダモジュール124は、ビデオデータに従って画像フレームからブロックユニットを決定する。
【0056】
図1および図2を参照すると、デコーダモジュール124は、ビットストリームに基づいて画像フレームを決定し、画像フレームを分割して、ビットストリーム内のパーティション指示に従ってブロックユニットを決定してもよい。例えば、デコーダモジュール124は、画像フレームを分割して複数のCTUを生成し、CTUのうちの1つをさらに分割して、任意のビデオエンコード規格に基づくパーティション指示に従ってブロックユニットを決定してもよい。
【0057】
ブロック330において、デコーダモジュール124は、ブロックユニットに隣接しない少なくとも1つの非隣接位置を含む複数の候補位置を決定する。
【0058】
候補位置は、ブロックユニットに隣接する複数の近傍位置であってもよい。近傍位置は、ブロックユニットに隣接する複数の隣接位置またはブロックユニットに隣接しない複数の非隣接位置のうちの少なくとも1つから選択されてもよい。したがって、いくつかの実施形態において、候補位置は、隣接位置または非隣接位置の少なくとも一方を含んでもよい。いくつかの実施形態では、候補位置は、隣接位置の少なくとも1つおよび非隣接位置の少なくとも1つを含んでもよい。いくつかの実施形態において、候補位置は、非隣接位置の少なくとも1つを含み、隣接位置を除外してもよい。いくつかの実施形態において、候補位置は、非隣接位置を除外し、隣接位置の少なくとも1つを含んでもよい。
【0059】
図4は、本開示の一実施形態によるブロックおよび複数の候補位置の例示的な実装の説明図である。図1および図2を参照すると、デコーダモジュール124は、現在のブロック400に隣接する複数の隣接位置401~405と、ブロックユニット400に隣接しない複数の非隣接位置406~423とを決定してもよい。隣接位置401~405のそれぞれは、ブロックユニット400の4つの角のうちの1つに隣接していてもよい。さらに、ブロックユニット400と非隣接位置406~423のうちの1つとの間の距離は、ブロックユニット400のブロック高さH、ブロック幅W、または対角線長さDのうちの1つに基づいてもよい。例えば、ブロックユニット400の左上位置と非隣接位置408との間の水平距離および垂直距離は、それぞれブロックユニット400のW+1およびH+1に等しくてもよく、ブロックユニット400と非隣接位置411との間の距離は、ブロックユニット400のブロック高さHの2倍に1を加算して生成される距離値に等しくてもよい。
【0060】
ブロック340において、デコーダモジュール124は、複数の候補位置から複数の動き候補を決定する。
【0061】
図1および図2を参照すると、デコーダモジュール124は、候補位置に基づいて、ブロックユニットに隣接する複数の近傍ブロックを決定してもよい。近傍ブロックの各々は、候補位置の少なくとも1つをカバーしてもよい。候補位置の各々は近傍ブロックの対応する1つの左上位置に位置する。さらに、近傍ブロックのサイズは、ブロックユニットのサイズ(すなわち、ブロックの高さH、ブロックの幅W、または対角線の長さD)と同一であってもよい。
【0062】
隣接位置のうちの1つに基づいて決定された近傍ブロックは、隣接位置のうちの幾つかが互いに隣接しているので、隣接位置のうちの1つ以上をカバーしてもよい。非隣接位置の1つに基づいて決定された近傍ブロックは、非隣接位置の1つをカバーしてもよい。さらに、非隣接位置間の距離がブロックユニットのサイズ以上である場合があるので、非隣接位置の1つに基づいて決定された近傍ブロックは、非隣接位置の1つのみをカバーしてもよい。
【0063】
デコーダモジュール124は、画像フレームからブロックユニットに隣接するテンプレート領域を決定してもよい。テンプレート領域は、複数の隣接領域のうちの少なくとも1つを含んでもよい。第1の隣接領域は、ブロックユニットの上側に位置する隣接領域であってもよく、第2の隣接領域は、ブロックユニットの左側に位置する隣接領域であってもよく、第3の隣接領域は、ブロックユニットの左上側に位置する隣接領域であってもよい。隣接領域は、ブロックユニットを再構成する前に再構成されてもよい。第1の隣接領域の高さは、垂直方向に沿った第1の隣接領域の再構成されたサンプルの数Rに等しくてもよく、第1の隣接領域の幅は、ブロックユニットの幅に等しくてもよい。第2の隣接領域の高さはブロックユニットの高さに等しく、第2の隣接領域の幅は水平方向に沿って第2の隣接領域の再構成されたサンプルの数Sに等しくてもよい。さらに、第3の隣接領域の高さは、垂直方向に沿った第1の隣接領域の再構成されたサンプルの数Rに等しく、第3の隣接領域の幅は、水平方向に沿った第2の隣接領域の再構成されたサンプルの数Sに等しくてもよい。1つの実施形態において、数RおよびSは正の整数であってよい。さらに、数RおよびSは、互いに等しくても異なっていてもよい。さらに、数RおよびSは、1以上であってもよい。ある実施形態では、数RとSは1に等しくてもよい。
【0064】
デコーダモジュール124は、ブロックユニットに隣接するテンプレート領域を決定してもよい。デコーダモジュール124は、動き候補を決定するためのテンプレート領域として、隣接領域を使用してもよい。さらに、デコーダモジュール124は、動き候補を決定するためのテンプレート領域として、隣接領域のうちの2つを使用してもよい。例えば、デコーダモジュール124は、動き候補を決定するためのテンプレート領域として、第1および第2の隣接領域のみを使用してもよい。さらに、デコーダモジュール124は、動き候補を決定するためのテンプレート領域として、隣接領域のうちの1つのみを使用してもよい。
【0065】
デコーダモジュール124は、画像フレームから複数の近傍領域を決定してもよい。近傍領域の各々は、隣接ブロックの対応する1つに隣接していてもよい。近傍領域の各々は、近傍ブロックの対応する1つの複数の隣接領域のうちの少なくとも1つを含んでよい。近傍ブロックの特定の1つの第1の隣接領域は、特定の近傍ブロックの上側に位置する隣接領域であってもよく、特定の近傍ブロックの第2の隣接領域は、特定の近傍ブロックの左側に位置する隣接領域であってもよく、特定の近傍ブロックの第3の隣接領域は、特定の近傍ブロックの左上側に位置する隣接領域であってもよい。近傍ブロックの隣接領域は、ブロックユニットを再構成する前に再構成されてもよい。
【0066】
図5A図5B、および図5Cを参照すると、本開示の実施形態によるテンプレート領域および異なる近傍領域の例示的な実施態の説明図である。図5Aは、本開示の実施形態による、ブロックユニット500、非隣接位置508をカバーする近傍ブロック530、および近傍領域5300の例示的な実施態の説明図である。近傍ブロック530のサイズは、ブロックユニット500のサイズと同一であってもよい。近傍ブロック530は、ブロックユニット500の上側かつ左側に位置し、ブロックユニット500をカバーしていないので、近傍ブロック530内の複数のサンプルは、ブロックユニット500の前に再構成された複数の再構成サンプルであってもよい。さらに、近傍領域5300内の複数のサンプルも、ブロックユニット500の前に再構成された複数の再構成サンプルであってもよい。
【0067】
図5Bは、本開示の実施形態による、ブロックユニット500、隣接位置502をカバーする近傍ブロック540、および近傍領域5400の例示的な実施形態の説明図である。近傍ブロック540のサイズは、ブロックユニット500のサイズと同一であってもよい。しかしながら、近傍位置502はブロックユニット500の右上のコーナーに隣接して位置するので、近傍ブロック540内のサンプルのいくつかは、ブロックユニット500の前に再構成された複数の再構成サンプルであってもよく、近傍ブロック540内の他のサンプルは、再構成されていない複数のサンプルであってもよい。したがって、デコーダモジュール124は、ブロックユニット500によってカバーされる領域を除外するために、図5Aのテンプレート領域5000よりも小さい近傍領域5400を決定することができる。したがって、近傍領域5400は、ブロックユニット500の上側に位置し、ブロックユニット500をカバーしないので、近傍領域5400の複数のサンプルは、ブロックユニット500の前に再構成された複数の再構成サンプルでもあり得る。
【0068】
デコーダモジュール124は、ブロックユニットの動き候補を選択するために、コスト関数を用いて、テンプレート領域および複数の近傍領域のそれぞれに基づいて、近傍コスト値を決定してもよい。図5Aにおいて、デコーダモジュール124は、コスト関数によって、近傍ブロック530の近傍領域5300とブロックユニット500のテンプレート領域5000とを直接比較してもよい。例えば、デコーダモジュール124は、近傍ブロック530の近傍領域5300内の複数の近傍サンプルと、ブロックユニット500のテンプレート領域5000内の再構成サンプルとを比較して、近傍コスト値のうちの1つを生成してもよい。しかしながら、近傍領域5400はテンプレート領域5000よりも小さい場合があるので、デコーダモジュール124は、コスト関数によって近傍ブロック540の近傍領域5400とブロックユニット500のテンプレート領域5000とを直接比較しなくてもよい。図5Cは、本開示の実施形態によるブロックユニット500および2次領域5001の例示的な実施形態の説明図である。2次領域5001は、近傍領域5400のサイズおよび形状に基づいて決定されてもよい。2次領域5001のサイズおよび形状は、近傍領域5400のサイズおよび形状と同一であってもよい。したがって、デコーダモジュール124は、コスト関数によって、近傍ブロック540の近傍領域5400とブロックユニット500のテンプレート領域5001とを直接比較してもよい。
【0069】
コスト関数は、絶対差の和(SAD)、絶対変換差の和(SATD)、平均絶対差(MAD)、平均二乗差(MSD)、および構造的類似度(SSIM)を含むがこれらに限定されない、テンプレートマッチングコスト関数であってもよい。本開示から逸脱することなく、任意のコスト関数を使用できることに留意すべきである。
【0070】
デコーダモジュール124は、近傍領域によって計算された近傍コスト値に基づいて、複数の候補ブロックを選択してもよい。しかし、近傍領域のサイズは互いに同一であっても異なっていてもよいので、近傍コスト値を互いに直接比較することは不公平である場合がある。デコーダモジュール124は、近傍領域のサイズに基づいて、近傍ブロックのそれぞれについて平均化されたコスト値を決定してもよい。例えば、近傍ブロック530の平均化されたコスト値は、近傍領域5300の近傍コスト値を8で割ることによって計算されてもよく、近傍ブロック540の平均化されたコスト値は、近傍領域5400の近傍コスト値を5で割ることによって計算されてもよい。このように、デコーダモジュール124は、平均化されたコスト値を互いに比較して、候補ブロックを決定するための近傍位置のいくつかを選択してもよい。
【0071】
選択された近傍位置の数が3に等しい場合、3つの最も低い平均化されたコスト値を有する3つの近傍ブロックに対応する3つの近傍位置が選択され、動き候補は、3つの近傍位置をカバーする3つの候補ブロックの動き情報を含んでもよい。選択された近傍位置の数が1に等しい場合、最も低い平均化されたコスト値を有する1つの近傍ブロックに対応する1つの近傍位置が選択されてもよく、動き候補は、1つの近傍位置をカバーする1つの候補ブロックの動き情報を含んでもよい。このように、選択された近傍位置の数がYに等しい場合、Y個の最も低い平均化コスト値に基づいてY個の近傍位置が選択され、Y個の候補ブロックが決定されてもよい。数Yは正の整数であってもよい。
【0072】
候補ブロックは、ブロックユニットを再構成する前に再構成された再構成ブロックであってもよい。候補ブロックの1つが動き情報を有していないとき、動き候補は、対応する1つの選択された近傍位置に基づいて決定されなくてもよい。例えば、候補ブロックの1つがイントラ予測ブロックである場合、候補ブロックの1つは、動き候補に追加されるべき動き情報を有していない。さらに、動き候補は、ブロックユニットを再構成する前に再構成された複数の以前のブロックの複数の前以前の動き情報を記憶するFIFO(first-in-first-out)テーブルから決定された履歴ベースの候補をさらに含んでもよい。
【0073】
ブロック350において、デコーダモジュール124は、複数の動き候補に基づいて、1つまたは複数のコロケーティッドフレームのうちの1つにそれぞれ含まれる複数のコロケーティッドブロックを選択する。
【0074】
複数の動き候補の各々は、複数の候補位置のうちの1つをカバーする候補ブロックの動きベクトル、リスト情報、およびフレーム情報を示してもよい。さらに、候補ブロックのうちの特定の1つの候補ブロックの動きベクトル、リスト情報、およびフレーム情報は、特定の候補ブロックを再構成するために、特定の候補ブロックを予測するために使用されてもよい。
【0075】
特定の候補ブロックのリスト情報は、インター予測指示または複数のリスト予測フラグの少なくとも1つを含んでもよい。インター予測指示は、第1の基準リストList0を有する第1の単一予測、第2の基準リストList1を有する第2の単一予測、および第1の基準リストList0および第2の基準リストList1を含む双予測のうちのいずれが特定の候補ブロックに使用されるかを示してもよい。さらに、リスト予測フラグは、第1の基準リストList0が特定の候補ブロックに使用されるかどうかを決定するために使用される第1のリスト予測フラグと、第2の基準リストList1が特定の候補ブロックに使用されるかどうかを決定するために使用される第2のリスト予測フラグとを含んでもよい。いくつかの実施形態では、特定の候補ブロックのリスト情報は、特定の候補ブロックの基準リストを決定するためのインター予測表示と複数のリスト予測フラグの両方を含んでもよい。さらに、特定の候補ブロックのリスト情報は、特定の候補ブロックの基準リストを決定するためのインター予測表示のみを含んでもよい。さらに、特定の候補ブロックのリスト情報は、特定の候補ブロックの基準リストを決定するための複数のリスト予測フラグのみを含んでもよい。
【0076】
フレーム情報は、少なくとも1つのフレームインデックスを含んでもよい。特定の候補ブロックが双予測ブロックである場合、特定の候補ブロックのフレーム情報は、基準リストの対応する1つにそれぞれ含まれる2つの基準フレームを示すための2つのフレームインデックスを含んでもよい。さらに、特定の候補ブロックが単一予測ブロックであるとき、特定の候補ブロックのフレーム情報は、基準リストの対応する1つに含まれる1つの基準フレームを示すための1つのフレームインデックスのみを含むことができる。別の実施形態において、特定の候補ブロックが単一予測ブロックであるとき、特定の候補ブロックのフレーム情報はまた、2つのフレームインデックスを含み得る。2つのフレームインデックスのうちの1つは、基準リストのうちの対応する1つに含まれる1つの基準フレームを示すために使用されてもよく、2つのフレームインデックスのうちの他の1つは、基準リストのうちの他の1つが特定の候補ブロックに使用されないことを示すための所定のフレーム値に等しくてもよい。
【0077】
図1および図2を参照すると、デコーダモジュール124は、少なくとも1つの所定の値に基づいて、1つまたは複数のコロケーティッドフレームを決定してもよい。特定の候補ブロックのフレーム情報内のフレームインデックスのうちの1つが、少なくとも1つの所定の値のうちの1つに等しい場合、特定の候補ブロックのリスト情報によって示される基準リストのうちの対応する1つから選択される特定の候補ブロックの基準フレームが、1つ以上のコロケーティッドフレームに含まれてもよい。例えば、少なくとも1つの所定の値は、ゼロを含んでよい。いくつかの実施形態では、特定の候補ブロックは、第2の基準リストList1に基づいて予測される単一予測ブロックであってもよい。第2の基準リストList1に対応する特定の候補ブロックの第2のフレームインデックスがゼロに等しい場合、第2のフレームインデックスに基づいて第2の基準リストList1から選択された特定の候補ブロックの基準フレームは、1つ以上のコロケーティッドフレームに含まれてもよい。しかしながら、第2の基準リストList1から選択された特定の候補ブロックの基準フレームは、特定の候補ブロックのフレーム情報内の第2のフレームインデックスが少なくとも1つの所定の値と異なる場合、1つ以上のコロケーティッドフレームから除外されてもよい。このように、特定の候補ブロックの基準フレームは、フレーム情報に基づいて、1つ以上のコロケーティッドフレームに追加されたり、1つ以上のコロケーティッドフレームから除外されたりしてもよい。
【0078】
いくつかの実施形態では、特定の候補ブロックは、第1の基準リストList0と第2の基準リストList1に基づいて予測される双予測ブロックであってもよい。さらに、第1の基準リストList0内の複数の参照候補のうちのいくつかは、第2の基準リストList1内の複数の参照候補のうちのいくつかと同一であってもよい。したがって、第1のフレームインデックスに基づいて第1の基準リストList0から選択された特定の候補ブロックの第1の基準フレームは、第2のフレームインデックスに基づいて第2の基準リストList1から選択された特定の候補ブロックの第2の基準フレームと同一であってもよい。したがって、2つの基準リストから決定される特定の候補ブロックの基準フレームの数は、特定の候補ブロックが双予測ブロックである場合、1または2に等しくてもよい。
【0079】
第1の基準リストList0に対応する特定の候補ブロックの第1フレームインデックスが0に等しい場合、第1フレームインデックスに基づいて第1の基準リストList0から選択された特定の候補ブロックの第1基準フレームは、1つ以上のコロケーティッドフレームに含まれてもよい。さらに、第2の基準リストList1に対応する特定の候補ブロックの第2のフレームインデックスがゼロに等しい場合、第2のフレームインデックスに基づいて第2の基準リストList1から選択された特定の候補ブロックの第2の基準フレームも、1つ以上のコロケーティッドフレームに含まれてもよい。しかしながら、特定の候補ブロックのフレーム情報内のフレームインデックスが少なくとも1つの所定の値と異なる場合、特定の候補ブロックの基準フレームは、1つ以上のコロケーティッドフレームから除外されてもよい。したがって、1つ以上のコロケーティッドフレームに追加される特定の候補ブロックの基準フレームの数は、特定の候補ブロックが双予測ブロックである場合、0、1、または2に等しくてもよい。
【0080】
いくつかの実施形態において、デコーダモジュール124は、特定の動き候補のフレーム情報によって選択された基準フレームが1つまたは複数のコロケーティッドフレームに含まれる場合に、特定の候補ブロックに対応する動き候補の特定の1つを使用して、動きブロックを決定してもよい。デコーダモジュール124は、特定の動き候補の動きベクトルに基づいて、特定の動き候補が示す基準フレームから動きブロックを選択してもよい。基準フレームにおける特定の動き候補の動きブロックは、ブロックユニットからの特定の動き候補の動きベクトルによって示される。このように、動き候補におけるフレームインデックスのうちの1つが、前記少なくとも1つの所定の値のうちの1つに等しいとき、デコーダモジュール124は、フレームインデックスのうちの1つに対する動きブロックを決定してもよい。動きブロックの数は、前記少なくとも1つの所定の値のうちの1つに等しい動き候補のフレームインデックスの数に等しくてもよい。動きブロックの各々は、コロケーティッドブロックとみなすことができる。したがって、コロケーティッドブロックの各々は、動きベクトルの対応する1つと候補位置の対応する1つに基づいて、候補ブロックの対応する1つの基準フレームから選択されてもよい。
【0081】
いくつかの実施形態では、デコーダモジュール124は、動き候補の動きベクトルを直接使用して、1つ以上のコロケーティッドフレームの各々における動きブロックを決定してもよい。1つまたは複数のコロケーティッドフレームは、前記少なくとも1つの所定の値に基づいて、第1の基準リストList0および第2の基準リストList1から直接選択されてもよい。動き候補の特定の1つによって選択された動きブロックは、ブロックユニットからの特定の動き候補の動きベクトルによって、1つ以上のコロケーティッドフレームの各々において示される。したがって、特定の動き候補は、異なるコロケーティッドフレームにそれぞれ含まれる複数の動きブロックを生成するために使用されてもよい。
【0082】
いくつかの実施形態では、特定の動き候補における動きベクトルに基づいて生成された動きブロックの数は1より大きい可能性があるため、デコーダモジュール124は、同じ動きベクトルに基づいて異なるコロケーティッドフレームにおいて生成された動きブロックの各々について、動きコスト値を決定してもよい。動きコスト値は、テンプレートマッチングコスト関数によって決定されてもよい。デコーダモジュール124は、同じ動きベクトルに基づいて生成された動きブロックのそれぞれについて動き領域を決定し、動き領域をブロックユニットのテンプレート領域と比較してもよい。次に、デコーダモジュール124は、同じ動きベクトルに基づいて異なるコロケーティッドフレームで生成された動きブロックの動きコスト値を互いに比較して、特定の動き候補の動きベクトルの動きブロックのうちの1つを含む1つ以上のコロケーティッドフレームのうちの1つだけを選択してもよい。このように、特定の動き候補の動きブロックのうちの1つを、他の動き候補の他のコロケーティッドブロックとさらに比較するためのコロケーティッドブロックとして設定してもよい。したがって、コロケーティッドブロックの数は、少なくとも1つの所定の値の内の1つに等しいフレームインデックスの数に等しくてもよい。
【0083】
いくつかの実施形態では、同じ動きベクトルに基づいて異なるコロケーティッドフレームにおいて生成された動きブロックは、互いに比較されなくてもよい。デコーダモジュール124は、全ての動き候補に基づいて、1つ以上のコロケーティッドフレーム内の全ての動きブロックを生成し、全ての動きブロックをコロケーティッドブロックとして設定してもよい。したがって、コロケーティッドブロックを決定するための動きベクトルの数は少なくとも1つの所定の値のうちの1つに等しいフレームのインデックスの数に等しくてもよいので、コロケーティッドブロックの数は、少なくとも1つの所定の値のうちの1つに等しいフレームのインデックスの数と1つ以上のコロケーティッドフレームの数とを乗算することによって生成される量に等しくてもよい。
【0084】
図3に戻り、ブロック360において、デコーダモジュール124は、複数のコロケーティッドブロックユニットの各々について第1のコスト値を決定する。
【0085】
図1および図2を参照すると、デコーダモジュール124は、1つまたは複数のコロケーティッドフレームから、複数のコロケーティッドブロックのうちの1つにそれぞれ隣接する複数のコロケーティッド領域を決定してもよい。コロケーティッド領域の各々は、コロケーティッドブロックの対応する1つの複数の隣接領域のうちの少なくとも1つを含んでもよい。コロケーティッドブロックの特定の1つの第1の隣接領域は、コロケーティッド近傍ブロックの上側に位置する上隣接領域であってもよく、特定のコロケーティッドブロックの第2の隣接領域は、特定のコロケーティッドブロックの左側に位置する左隣接領域であってもよい、また、特定のコロケーティッドブロックの第3の隣接領域は、特定のコロケーティッドブロックの左上に位置する左上隣接領域であってもよい。1つまたは複数のコロケーティッドフレームのそれぞれはブロックユニットの再構築前に再構築されるので、コロケーティッドブロックの隣接領域はブロックユニットの再構築前に再構築されてもよい。
【0086】
図6は、本開示の一実施形態による、ブロックユニット600及びテンプレート領域6000を有する画像フレーム60、並びに、コロケーティッドブロック650~660及びコロケーティッド領域6500~6600を有するコロケーティッドフレーム65~66の例示的な実施態の説明図である。コロケーティッドブロック650および660のサイズは、ブロックユニット600のサイズと同一であってもよく、コロケーティッド領域6500および6600のサイズは、テンプレート領域6000のサイズと同一であってもよい。さらに、コロケーティッドブロック650および660ならびにコロケーティッド領域6500および6600内の複数のサンプルもまた、ブロックユニット600の前に再構成された再構成サンプルであってよい。
【0087】
デコーダモジュール124は、コスト関数を使用することによって、テンプレート領域および複数のコロケーティッド領域の各々に基づいて、コロケーティッドコスト値を決定してもよい。図6において、デコーダモジュール124は、コスト関数によって、コロケーティッドブロック650のコロケーティッド領域6500およびコロケーティッドブロック660のコロケーティッド領域6600を、ブロックユニット600のテンプレート領域6000と直接比較してもよい。例えば、デコーダモジュール124は、近傍ブロック650のコロケーティッド領域6500内の複数のコロケーティッドサンプルを、ブロックユニット600のテンプレート領域6000内の再構成されたサンプルと比較して、コロケーティッドコスト値のうちの1つを生成してもよい。
【0088】
コスト関数は、SAD、SAT)、MAD、MSD、およびSSIMを含むテンプレートマッチングコスト関数であってもよいが、これらに限定されない。本開示から逸脱することがなければ、任意のコスト関数を使用できることに留意すべきである。
【0089】
コロケーティッドコスト値、近傍コスト値、平均化されたコスト値、及び動きコスト値を互いに区別するために、コロケーティッドコスト値は第1のコスト値とみなされてもよく、近傍コスト値は複数の第2のコスト値とみなされてもよく、平均化されたコスト値は複数の第3のコスト値とみなされてもよく、動きコスト値は複数の第4のコスト値とみなされてもよい。第2のコスト値および第3のコスト値は、方法300のいくつかの実施形態においてのみ動き候補を決定するために使用され得るので、方法300において第2のコスト値および第3のコスト値を使用しなくてもよい。第4のコスト値は、方法300のいくつかの実施形態において、コロケーティッドブロックを決定するために使用されてもよいので、方法300において第4のコスト値を使用しなくてもよい。いくつかの実施形態では、第2のコスト値、第3のコスト値、および第4のコスト値のすべてが、動き候補の決定およびコロケーティッドブロックの決定のために方法300において使用されてもよい。
【0090】
ブロック370において、デコーダモジュール124は、複数の動き候補および複数の第1のコスト値に基づいて、少なくとも1つのサブブロックベースの時間動きベクトル予測(SbTMVP)候補を決定する。
【0091】
デコーダモジュール124は、コロケーティッド領域によって計算された第1のコスト値に基づいて、コロケーティッドブロックのうちの少なくとも1つを選択してもよい。選択された少なくとも1つのコロケーティッドブロックの数が4に等しい場合、第1のコスト値のうち最も低いものを4つ有する4つのコロケーティッドブロックが選択されてもよく、デコーダモジュール124は、4つのコロケーティッドブロックの動き情報を4つのコロケーティッド候補として決定してもよい。選択された少なくとも1つのコロケーティッドブロックの数が1に等しいとき、最も低いコロケーティッドコスト値を有するコロケーティッドブロックが選択されてよく、デコーダモジュール124は、選択されたコロケーティッドブロックの動き情報をコロケーティッド候補として決定してよい。このように、選択された少なくとも1つのコロケーティッドブロックの数がYに等しいとき、Y個のコロケーティッドブロックが、Y個のコロケーティッド候補を決定するために、コロケーティッドコスト値のうちのY個の最も低いコロケーティッドコスト値に基づいて選択されてもよい。数Yは正の整数であってもよい。少なくとも1つのコロケーティッド候補の各々は、少なくとも1つのコロケーティッドブロックの対応する1つについての動き情報、リスト情報、およびフレーム情報を示してよい。
【0092】
少なくとも1つのSbTMVP候補の各々は、少なくとも1つのコロケーティッド候補の対応する1つに基づいて決定されてもよい。デコーダモジュール124は、選択された少なくとも1つのコロケーティッドブロックの特定の1つの基準フレームと、特定の選択されたコロケーティッドブロックを含むコロケーティッドフレームの特定の1つとの間のコロケーティッド距離を決定してもよい。特定の選択されたコロケーティッドブロックの基準フレームは、特定の選択されたコロケーティッドブロックの動き情報(例えば、コロケーティッド候補)によって示されてもよい。さらに、デコーダモジュール124は、ブロックユニットの基準フレームと画像フレームとの間の基準距離を決定してもよい。次に、少なくとも1つのSbTMVP候補の特定の1つの動き情報は、コロケーティッド距離の対応する1つ、基準距離の対応する1つ、およびコロケーティッド候補の対応する1つの動き情報に基づいて決定されてもよい。いくつかの実施形態は、ブロックユニットの基準フレームは、少なくとも1つのSbTMVP候補の対応する1つを決定するための1つ以上のコロケーティッドブロックの対応する1つであってもよい。
【0093】
図3に戻ると、ブロック380で、デコーダモジュール124は、少なくとも1つのSbTMVP候補を含む候補リストに基づいてブロックユニットを再構成する。
【0094】
図1および図2を参照すると、デコーダモジュール124は、予測インデックスに基づいて、候補リストから予測候補を選択してもよい。予測インデックスは、候補リストからブロックユニットの予測候補を示すことができる。したがって、デコーダモジュール124は、候補リストから選択された予測候補に基づいて、ブロックユニットの予測ブロックを生成することができる。いくつかの実施形態では、候補リストは、複数のマージ候補を含むマージリストであってもよく、少なくとも1つのSbTMVP候補は、マージ候補に含まれてもよい。いくつかの実施形態では、候補リストは、複数のサブブロックマージ候補を含むサブブロックマージリストであってもよく、少なくとも1つのSbTMVP候補は、サブブロックマージ候補に含まれてもよい。いくつかの実施形態では、予測インデックスは、候補リストがSbTMVP候補のみを含む場合に、SbTMVP候補のうちの選択された1つを決定するためのインデックスSbTMVP_idxであってもよい。
【0095】
デコーダモジュール124はさらに、複数の残留成分を予測ブロックに追加して、ブロックユニットを再構成してもよい。前記残留成分は、ビットストリームから決定されてもよい。デコーダモジュール124は、画像フレームおよびビデオデータを再構成するために、画像フレーム内の他のすべてのブロックユニットを再構成してもよい。
【0096】
方法300に類似する別の方法M1は、図1および図2に示される構成を使用して実行されてもよく、これらの図の様々な要素は、方法300に関して参照される。
【0097】
方法M1において、デコーダモジュール124は、方法300に基づいてビデオデータをデコードしてもよい。さらに、ブロック370において、コロケーティッドブロックのうちの少なくとも1つを選択した後、デコーダモジュール124は、選択された少なくとも1つのコロケーティッドブロックのうちの1つにそれぞれ隣接する複数のシフトブロックをさらに決定する。いくつかの実施形態では、シフトブロックの各々は、図4における複数の隣接位置および複数の非隣接位置を含む複数の近傍位置に基づいて選択されてもよい。いくつかの実施形態では、シフトブロックの各々は、4つの方向位置(例えば、上側位置、下側位置、左側位置、および右側位置)を含む複数の近傍位置に基づいて選択されてもよい。いくつかの実施形態では、シフトブロックの各々は、8つの方向位置(例えば、上側位置、下側位置、左側位置、右側位置、左上側位置、右上側位置、左下側位置、右下側位置)を含む複数の近傍位置に基づいて選択されてもよい。
【0098】
図7は、本開示の一実施形態による、ブロックユニット700およびテンプレート領域7000を有する画像フレーム70と、コロケーティッドブロック770、シフトブロック771~774およびコロケーティッド領域7700~7740を有するコロケーティッドフレーム77との例示的な実施態の説明図である。コロケーティッドブロック770およびシフトブロック771~774のサイズは、ブロックユニット700のサイズと同一であってもよく、コロケーティッド領域7700~7740のサイズは、テンプレート領域7000のサイズと同一であってもよい。さらに、コロケーティッドブロック770、シフトブロック771~774、およびコロケーティッド領域7700~7740内の複数のサンプルも、ブロックユニット700の前に再構成された再構成サンプルであってもよい。
【0099】
デコーダモジュール124は、コスト関数を使用することによって、テンプレート領域および複数のコロケーティッド領域の各々に基づいて、シフトコスト値を決定してもよい。図7において、デコーダモジュール124は、コスト関数によって、ブロックユニット700のテンプレート領域7000と、コロケーティッド領域7700~7740のそれぞれを直接比較してもよい。例えば、デコーダモジュール124は、シフトコスト値のうちの1つを生成するために、シフトブロック740のコロケーティッド領域7740内の複数のコロケーティッドサンプルと、ブロックユニット700のテンプレート領域7000内の再構成サンプルとを比較してもよい。シフトブロックのコロケーティッド領域に基づいて決定されたシフトコスト値の1つが、コロケーティッドブロックのコロケーティッド領域に基づいて決定されたシフトコスト値よりも小さい場合、シフトブロックの対応する1つは、コロケーティッド候補を決定するためのコロケーティッドブロックを置き換えてもよい。このように、コロケーティッド候補は、シフトブロックの対応する1つの動きベクトル、リスト情報、およびフレーム情報を示すことができる。
【0100】
図8は、本開示の実施形態による、電子装置によってビデオデータをデコードするための方法800のフローチャートを示す。ビデオデータのデコードを実行する様々な方法が存在するため、方法800は例示に過ぎない。
【0101】
方法800は、図1および図2に図示された構成を使用して実行されてもよく、これらの図の様々な要素は、方法300に関して参照される。図8に示された各ブロックは、実行される1つまたは複数のプロセス、方法、またはサブルーチンを表すことができる。
【0102】
図8のブロックの順序は例示であり、変更してもよい。本開示から逸脱することなく、追加のブロックを追加してもよいし、より少ないブロックを利用してもよい。
【0103】
ブロック810において、デコーダモジュール124はビデオデータを受信する。デコーダモジュール124が受信するビデオデータは、ビットストリームであってもよい。
【0104】
図1および図2を参照すると、第2の電子装置120は、第2のインターフェース126を介して、第1の電子装置110などのエンコーダ、または他のビデオプロバイダからビットストリームを受信してもよい。第2のインターフェース126は、ビットストリームをデコーダモジュール124に提供してもよい。
【0105】
エントロピーデコードユニット2241は、ビットストリームをデコードして、複数の画像フレームに対する複数の予測指示および複数のパーティション指示を決定してもよい。次に、デコーダモジュール124は、予測指示およびパーティション指示に基づいて、複数の画像フレームをさらに再構成してもよい。予測指示およびパーティション指示は、複数のフラグおよび複数のインデックスを含んでもよい。
【0106】
ブロック820において、デコーダモジュール124は、ビデオデータに従って画像フレームからブロックユニットを決定する。
【0107】
図1および図2を参照すると、デコーダモジュール124は、ビットストリームに基づいて画像フレームを決定し、ビットストリーム内のパーティション指示に従って、画像フレームを分割して、ブロックユニットを決定してもよい。例えば、デコーダモジュール124は、画像フレームを分割して複数のCTUを生成し、任意のビデオコーディング規格に基づくパーティション指示に従って、CTUのうちの1つをさらに分割して、ブロックユニットを決定してもよい。
【0108】
ブロック830において、デコーダモジュール124は、ブロックユニットに隣接する複数の隣接位置およびブロックユニットに隣接しない複数の非隣接位置から選択される複数の候補位置を決定する。
【0109】
候補位置は、ブロックユニットに隣接する複数の近傍位置であってもよい。近傍位置は、ブロックユニットに隣接する複数の隣接位置またはブロックユニットに隣接しない複数の非隣接位置のうちの少なくとも1つから選択され得る。したがって、いくつかの実施形態において、候補位置は、隣接位置または非隣接位置の少なくとも一方を含んでもよい。いくつかの実施形態では、候補位置は、隣接位置の少なくとも1つと非隣接位置の少なくとも1つを含んでもよい。いくつかの実施形態において、候補位置は、非隣接位置の少なくとも1つを含み、隣接位置を除外してもよい。いくつかの実施形態において、候補位置は、非隣接位置を除外し、隣接位置の少なくとも1つを含んでもよい。
【0110】
図1図2および図4を参照すると、デコーダモジュール124は、現在のブロック400に隣接する複数の隣接位置401~405と、ブロックユニット400に隣接しない複数の非隣接位置406~423とを決定してもよい。隣接位置401~405のそれぞれは、ブロックユニット400の4つの角のうちの1つに隣接していてもよい。さらに、ブロックユニット400と非隣接位置406~423のうちの1つとの間の距離は、ブロックユニット400のブロック高さH、ブロック幅W、または対角線長さDのうちの1つに基づいてもよい。例えば、ブロックユニット400の左上位置と非隣接位置408との間の水平距離および垂直距離は、それぞれブロックユニット400のW+1およびH+1に等しくてもよく、ブロックユニット400と非隣接位置411との間の距離は、ブロックユニット400のブロック高さHの2倍に1を加算して生成される距離値に等しくてもよい。
【0111】
ブロック840において、デコーダモジュール124は、複数の候補位置から複数の動き候補を決定する。
【0112】
図1および図2を参照すると、デコーダモジュール124は、候補位置に基づいて、ブロックユニットに隣接する複数の近傍ブロックを決定してもよい。近傍ブロックの各々は、候補位置の少なくとも1つをカバーしてもよい。候補位置の各々は、近傍ブロックの対応する1つの左上側の位置に配置されてもよい。さらに、近傍ブロックのサイズは、ブロックユニットのサイズ(すなわち、ブロックの高さH、ブロックの幅W、または対角線の長さD)と同一であってもよい。
【0113】
隣接位置のうちの1つに基づいて決定された近傍ブロックは、隣接位置のうちの幾つかが互いに隣接しているので、隣接位置のうちの1つ以上をカバーしてもよい。非隣接位置の1つに基づいて決定された近傍ブロックは、非隣接位置の1つをカバーしてもよい。さらに、非隣接位置間の距離がブロックユニットのサイズ以上である場合があるので、非隣接位置の1つに基づいて決定された近傍ブロックは、非隣接位置の1つのみをカバーしてもよい。
【0114】
デコーダモジュール124は、画像フレームからブロックユニットに隣接するテンプレート領域を決定してもよい。テンプレート領域は、複数の隣接領域のうちの少なくとも1つを含んでもよい。第1の隣接領域は、ブロックユニットの上側に位置する隣接領域であってもよく、第2の隣接領域は、ブロックユニットの左側に位置する隣接領域であってもよく、第3の隣接領域は、ブロックユニットの左上側に位置する隣接領域であってもよい。隣接領域は、ブロックユニットを再構成する前に再構成されてもよい。第1の隣接領域の高さは、垂直方向に沿った第1の隣接領域の再構成されたサンプルの数Rに等しくてもよく、第1の隣接領域の幅は、ブロックユニットの幅に等しくてもよい。第2の隣接領域の高さはブロックユニットの高さに等しく、第2の隣接領域の幅は水平方向に沿って第2の隣接領域の再構成されたサンプルの数Sに等しくてもよい。さらに、第3の隣接領域の高さは、垂直方向に沿った第1の隣接領域の再構成されたサンプルの数Rに等しく、第3の隣接領域の幅は、水平方向に沿った第2の隣接領域の再構成されたサンプルの数Sに等しくてもよい。1つの実施形態において、数RおよびSは正の整数であってよい。さらに、数RおよびSは、互いに等しくても異なっていてもよい。さらに、数RおよびSは、1以上であってもよい。ある実施形態では、数RとSは1に等しくてもよい。
【0115】
デコーダモジュール124は、ブロックユニットに隣接するテンプレート領域を決定してもよい。デコーダモジュール124は、動き候補を決定するためのテンプレート領域として、隣接領域を使用してもよい。さらに、デコーダモジュール124は、動き候補を決定するためのテンプレート領域として、隣接領域のうちの2つを使用してもよい。例えば、デコーダモジュール124は、動き候補を決定するためのテンプレート領域として、第1および第2の隣接領域のみを使用してもよい。さらに、デコーダモジュール124は、動き候補を決定するためのテンプレート領域として、隣接領域のうちの1つのみを使用してもよい。
【0116】
デコーダモジュール124は、画像フレームから複数の近傍領域を決定してもよい。近傍領域の各々は、近傍ブロックの対応する1つに隣接していてもよい。近傍領域の各々は、近傍ブロックの対応する1つの複数の隣接領域のうちの少なくとも1つを含んでよい。近傍ブロックの特定の1つの第1の隣接領域は、特定の近傍ブロックの上側に位置する隣接領域であってもよく、特定の近傍ブロックの第2の隣接領域は、特定の近傍ブロックの左側に位置する隣接領域であってもよく、特定の近傍ブロックの第3の隣接領域は、特定の近傍ブロックの左上側に位置する隣接領域であってもよい。近傍ブロックの隣接領域は、ブロックユニットを再構成する前に再構成されてもよい。
【0117】
図5Aを参照すると、近傍ブロック530のサイズは、ブロックユニット500のサイズと同一であってもよい。近傍ブロック530は、ブロックユニット500の上側かつ左側に位置し、ブロックユニット500を覆っていないので、近傍ブロック530内の複数のサンプルは、ブロックユニット500の前に再構成された複数の再構成サンプルであってもよい。さらに、近傍領域5300内の複数のサンプルも、ブロックユニット500の前に再構成された複数の再構成サンプルであってもよい。
【0118】
図5Bを参照すると、近傍ブロック540のサイズは、ブロックユニット500のサイズと同一であってもよい。しかしながら、近傍位置502はブロックユニット500の右上隅に隣接して位置するので、近傍ブロック540内のサンプルのいくつかは、ブロックユニット500の前に再構成された複数の再構成サンプルであってもよく、近傍ブロック540内の他のサンプルは、再構成されていない複数のサンプルであってもよい。したがって、デコーダモジュール124は、ブロックユニット500によってカバーされる領域を除外するために、図5Aのテンプレート領域5000よりも小さい近傍領域5400を決定してもよい。したがって、近傍領域5400は、ブロックユニット500の上側に位置し、ブロックユニット500を覆わないので、近傍領域5400の複数のサンプルは、ブロックユニット500の前に再構成された複数の再構成サンプルでもあってもよい。
【0119】
デコーダモジュール124は、ブロックユニットの動き候補を選択するために、コスト関数を用いて、テンプレート領域と複数の近傍領域のそれぞれとに基づいて、近傍コスト値を決定してもよい。図5Aにおいて、デコーダモジュール124は、コスト関数によって、近傍ブロック530の近傍領域5300とブロックユニット500のテンプレート領域5000とを直接比較してもよい。例えば、デコーダモジュール124は、近傍ブロック530の近傍領域5300内の複数の隣接サンプルと、ブロックユニット500のテンプレート領域5000内の再構成サンプルとを比較して、近傍コスト値のうちの1つを生成してもよい。しかしながら、近傍領域5400はテンプレート領域5000よりも小さい場合があるので、デコーダモジュール124は、コスト関数によって近傍ブロック540の近傍領域5400とブロックユニット500のテンプレート領域5000とを直接比較しなくてもよい。図5Cを参照すると、2次領域5001は、近傍領域5400のサイズおよび形状に基づいて決定されてもよい。2次領域5001のサイズおよび形状は、近傍領域5400のサイズおよび形状と同一であってもよい。したがって、デコーダモジュール124は、コスト関数によって、近傍ブロック540の近傍領域5400とブロックユニット500のテンプレート領域5001とを直接比較してもよい。
【0120】
コスト関数は、絶対差の和(SAD)、絶対変換差の和(SATD)、平均絶対差(MAD)、平均二乗差(MSD)、および構造的類似度(SSIM)を含むテンプレートマッチングコスト関数であってもよいが、これらに限定されない。本開示から逸脱することなく、任意のコスト関数を使用できることに留意すべきである。
【0121】
デコーダモジュール124は、近傍領域によって計算された近傍コスト値に基づいて、複数の候補ブロックを選択してもよい。しかし、近傍領域のサイズは互いに同一であっても異なっていてもよいので、近傍コスト値を互いに直接比較するのは不公平な場合がある。デコーダモジュール124は、近傍領域のサイズに基づいて、近傍ブロックのそれぞれについて平均化コスト値を決定してもよい。例えば、近傍ブロック530の平均化コスト値は、近傍領域5300の近傍コスト値を8で割ることによって計算されてもよく、近傍ブロック540の平均化コスト値は、近傍領域5400の近傍コスト値を5で割ることによって計算されてもよい。このように、デコーダモジュール124は、平均化コスト値を互いに比較して、候補ブロックを決定するための近傍位置のいくつかを選択してもよい。
【0122】
選択された近傍位置の数が3に等しい場合、3つの平均化コスト値が最も低い3つの近傍ブロックに対応する3つの近傍位置が選択され、動き候補は、3つの近傍位置をカバーする3つの候補ブロックの動き情報を含んでもよい。選択された近傍位置の数が1に等しい場合、最も低い平均化コスト値を有する1つの近傍ブロックに対応する1つの近傍位置が選択されてもよく、動き候補は、1つの近傍位置をカバーする1つの候補ブロックの動き情報を含んでもよい。このように、選択された近傍位置の数がYに等しい場合、Y個の最も低い平均化コスト値に基づいてY個の近傍位置が選択され、Y個の候補ブロックが決定されてもよい。数Yは正の整数であってもよい。
【0123】
候補ブロックは、ブロックユニットを再構成する前に再構成されたブロックであってもよい。候補ブロックの1つが動き情報を有していないとき、動き候補は、対応する1つの選択された近傍位置に基づいて決定されなくてもよい。例えば、候補ブロックの1つがイントラ予測ブロックである場合、候補ブロックの1つは、動き候補に追加されるべき動き情報を有していない。さらに、動き候補は、ブロックユニットを再構成する前に再構成された複数の以前のブロックの複数の以前の動き情報を記憶するFIFO(first-in-first-out)テーブルから決定された履歴ベースの候補をさらに含んでもよい。
【0124】
図8に戻ると、ブロック850において、デコーダモジュール124は、複数の動き候補に基づいて、それぞれが1つまたは複数のコロケーティッドフレームのうちの1つに含まれる複数のコロケーティッドブロックを決定する。
【0125】
複数の動き候補の各々は、複数の候補位置のうちの1つをカバーする候補ブロックの動きベクトル、リスト情報、およびフレーム情報を示してもよい。さらに、候補ブロックのうちの特定の1つの候補ブロックの動きベクトル、リスト情報、およびフレーム情報は、特定の候補ブロックを再構成するために、特定の候補ブロックを予測するために使用されてもよい。
【0126】
特定の候補ブロックのリスト情報は、インター予測指示または複数のリスト予測フラグの少なくとも1つを含んでもよい。インター予測指示は、第1の基準リストList0を有する第1の単一予測、第2の基準リストList1を有する第2の単一予測、および第1の基準リストList0および第2の基準リストList1を含む双予測のうちのいずれが特定の候補ブロックに使用されるかを示すことができる。さらに、リスト予測フラグは、第1の基準リストList0が特定の候補ブロックに使用されるかどうかを決定するために使用される第1のリスト予測フラグと、第2の基準リストList1が特定の候補ブロックに使用されるかどうかを決定するために使用される第2のリスト予測フラグとを含んでもよい。いくつかの実施形態では、特定の候補ブロックのリスト情報は、特定の候補ブロックの基準リストを決定するためのインター予測表示と複数のリスト予測フラグの両方を含んでもよい。さらに、特定の候補ブロックのリスト情報は、特定の候補ブロックの基準リストを決定するためのインター予測表示のみを含んでもよい。さらに、特定の候補ブロックのリスト情報は、特定の候補ブロックの基準リストを決定するための複数のリスト予測フラグのみを含んでもよい。
【0127】
フレーム情報は、少なくとも1つのフレームインデックスを含んでもよい。特定の候補ブロックが双予測ブロックである場合、特定の候補ブロックのフレーム情報は、基準リストの対応する1つにそれぞれ含まれる2つの基準フレームを示すための2つのフレームインデックスを含んでもよい。さらに、特定の候補ブロックが単一予測ブロックであるとき、特定の候補ブロックのフレーム情報は、基準リストの対応する1つに含まれる1つの基準フレームを示すための1つのフレームインデックスのみを含んでもよい。別の実施形態において、特定の候補ブロックが単一予測ブロックであるとき、特定の候補ブロックのフレーム情報はまた、2つのフレームインデックスを含んでもよい。2つのフレームインデックスのうちの1つは、基準リストのうちの対応する1つに含まれる1つの基準フレームを示すために使用されてもよく、2つのフレームインデックスのうちの他の1つは、基準リストのうちの他の1つが特定の候補ブロックに使用されないことを示すための所定のフレーム値に等しくてもよい。
【0128】
図1および図2を参照すると、デコーダモジュール124は、少なくとも1つの所定の値に基づいて、1つまたは複数のコロケーティッドフレームを決定してもよい。特定の候補ブロックのフレーム情報内のフレームインデックスのうちの1つが、少なくとも1つの所定の値のうちの1つに等しい場合、特定の候補ブロックのリスト情報によって示される基準リストに対応するものから選択される特定の候補ブロックの基準フレームは、1つ以上のコロケーティッドフレームに含まれてもよい。例えば、前記少なくとも1つの所定の値は、ゼロを含んでもよい。いくつかの実施形態では、特定の候補ブロックは、第2の基準リストList1に基づいて予測される単一予測ブロックであってもよい。第2の基準リストList1に対応する特定の候補ブロックの第2のフレームインデックスがゼロに等しい場合、第2のフレームインデックスに基づいて第2の基準リストList1から選択された特定の候補ブロックの基準フレームは、1つ以上のコロケーティッドフレームに含まれてもよい。しかしながら、第2の基準リストList1から選択された特定の候補ブロックの基準フレームは、特定の候補ブロックのフレーム情報内の第2のフレームインデックスが少なくとも1つの所定の値と異なる場合、1つ以上のコロケーティッドフレームから除外されてもよい。このように、特定の候補ブロックの基準フレームは、フレーム情報に基づいて、1つ以上のコロケーティッドフレームに追加されたり、1つ以上のコロケーティッドフレームから除外されたりしてもよい。
【0129】
いくつかの実施形態では、特定の候補ブロックは、第1の基準リストList0と第2の基準リストList1に基づいて予測される双予測ブロックであってもよい。さらに、第1の基準リストList0内の複数の参照候補のうちのいくつかは、第2の基準リストList1内の複数の参照候補のうちのいくつかと同一であってもよい。したがって、第1のフレームインデックスに基づいて第1の基準リストList0から選択された特定の候補ブロックの第1の基準フレームは、第2のフレームインデックスに基づいて第2の基準リストList1から選択された特定の候補ブロックの第2の基準フレームと同一であってもよい。したがって、2つの基準リストから決定される特定の候補ブロックの基準フレームの数は、特定の候補ブロックが双予測ブロックである場合、1または2に等しくてもよい。
【0130】
第1の基準リストList0に対応する特定の候補ブロックの第1フレームインデックスが0に等しい場合、第1フレームインデックスに基づいて第1の基準リストList0から選択された特定の候補ブロックの第1基準フレームは、1つ以上のコロケーティッドフレームに含まれてもよい。さらに、第2の基準リストList1に対応する特定の候補ブロックの第2のフレームインデックスがゼロに等しい場合、第2のフレームインデックスに基づいて第2の基準リストList1から選択された特定の候補ブロックの第2の基準フレームも、1つ以上のコロケーティッドフレームに含まれてもよい。しかしながら、特定の候補ブロックのフレーム情報内のフレームインデックスが前記少なくとも1つの所定の値と異なる場合、特定の候補ブロックの基準フレームは、1つ以上のコロケーティッドフレームから除外されてもよい。したがって、1つ以上のコロケーティッドフレームに追加される特定の候補ブロックの基準フレームの数は、特定の候補ブロックが双予測ブロックである場合、0、1、または2に等しくてもよい。
【0131】
いくつかの実施形態において、デコーダモジュール124は、特定の動き候補のフレーム情報によって選択された基準フレームが1つまたは複数のコロケーティッドフレームに含まれる場合に、特定の候補ブロックに対応する動き候補の特定の1つを使用して、動きブロックを決定してもよい。デコーダモジュール124は、特定の動き候補の動きベクトルに基づいて、特定の動き候補が示す基準フレームから動きブロックを選択してもよい。基準フレームにおける特定の動き候補の動きブロックは、ブロックユニットからの特定の動き候補の動きベクトルによって示される。このように、動き候補におけるフレームインデックスのうちの1つが、前記少なくとも1つの所定の値のうちの1つに等しいとき、デコーダモジュール124は、フレームインデックスのうちの1つに対する動きブロックを決定してもよい。動きブロックの数は、前記少なくとも1つの所定の値のうちの1つに等しい動き候補のフレームインデックスの数に等しくてもよい。動きブロックの各々は、コロケーティッドブロックとみなすことができる。したがって、コロケーティッドブロックの各々は、動きベクトルの対応する1つおよび候補位置の対応する1つに基づいて、候補ブロックの対応する1つの基準フレームから選択されてもよい。
【0132】
いくつかの実施形態では、デコーダモジュール124は、動き候補の動きベクトルを直接使用して、1つ以上のコロケーティッドフレームの各々における動きブロックを決定してもよい。1つまたは複数のコロケーティッドフレームは、前記少なくとも1つの所定の値に基づいて、第1の基準リストList0および第2の基準リストList1から直接選択されてもよい。動き候補の特定の1つによって選択された動きブロックは、ブロックユニットからの特定の動き候補の動きベクトルによって、1つ以上のコロケーティッドフレームの各々において示される。したがって、特定の動き候補は、異なるコロケーティッドフレームにそれぞれ含まれる複数の動きブロックを生成するために使用されてもよい。
【0133】
いくつかの実施形態では、特定の動き候補における動きベクトルに基づいて生成された動きブロックの数は1より大きい可能性があるため、デコーダモジュール124は、同じ動きベクトルに基づいて異なるコロケーティッドフレームにおいて生成された動きブロックの各々について、動きコスト値を決定してもよい。動きコスト値は、テンプレートマッチングコスト関数によって決定されてもよい。デコーダモジュール124は、同じ動きベクトルに基づいて生成された動きブロックのそれぞれについて動き領域を決定し、動き領域をブロックユニットのテンプレート領域と比較してもよい。次に、デコーダモジュール124は、同じ動きベクトルに基づいて異なるコロケーティッドフレームで生成された動きブロックの動きコスト値を互いに比較して、特定の動き候補の動きベクトルの動きブロックのうちの1つを含む1つ以上のコロケーティッドフレームのうちの1つだけを選択してもよい。このように、特定の動き候補の動きブロックのうちの1つを、他の動き候補の他のコロケーティッドブロックとさらに比較するためのコロケーティッドブロックとして設定してもよい。したがって、コロケーティッドブロックの数は、前記少なくとも1つの所定の値の1つに等しいフレームインデックスの数に等しくてもよい。
【0134】
いくつかの実施形態では、同じ動きベクトルに基づいて異なるコロケーティッドフレームにおいて生成された動きブロックは、互いに比較されなくてもよい。デコーダモジュール124は、全ての動き候補に基づいて、1つ以上のコロケーティッドフレーム内の全ての動きブロックを生成し、全ての動きブロックをコロケーティッドブロックとして設定してもよい。したがって、コロケーティッドブロックを決定するための動きベクトルの数が前記少なくとも1つの所定の値のうちの1つに等しいフレームのインデックスの数と等しいので、コロケーティッドブロックの数は、前記少なくとも1つの所定の値のうちの1つと1つ以上のコロケーティッドフレームの数とを乗算することによって生成される量に等しくてもよい。
【0135】
図8に戻り、ブロック860において、デコーダモジュール124は、複数のコロケーティッドブロックの動き情報に基づいて、複数のサブブロックベースの時間動きベクトル予測(SbTMVP)候補を導出する。
【0136】
図1および図2を参照すると、デコーダモジュール124は、コロケーティッドブロックが動き情報を有するか否かを判定してもよい。コロケーティッドブロックがイントラ予測によって予測または再構成される場合、コロケーティッドブロックは、動き情報を含まないイントラ予測モードのみを含んでもよい。コロケーティッドブロックがインター予測によって予測または再構成される場合、デコーダモジュール124は、コロケーティッドブロックの動き情報を受信してもよい。
【0137】
コロケーティッドブロックの各々の動き情報は、コロケーティッドブロックの対応する1つのベクトル情報、リスト情報、及びフレーム情報を含んでもよい。さらに、コロケーティッドブロックの特定の1つのベクトル情報、リスト情報、およびフレーム情報は、特定のコロケーティッドブロックを再構成するために、特定のコロケーティッドブロックを予測するために使用されてもよい。
【0138】
デコーダモジュール124は、コロケーティッドブロックの動き情報を使用して、各々がコロケーティッドブロックの1つに対応するSbTMVP候補を決定してもよい。いくつかの実施形態では、デコーダモジュール124は、ブロックユニットのSbTMVP候補のすべてを含む初期SbTMVPリストを決定してもよい。ブロックユニットがSbTMVP候補に基づいて予測されるとき、ブロックユニットは複数のサブブロックユニットに分割されてもよい。したがって、コロケーティッドブロックのそれぞれも、複数のコロケーティッドサブブロックに分割されてもよい。デコーダモジュール124は、画像フレームを再構成する前に、コロケーティッドフレームが再構成されるので、コロケーティッドブロックの動き情報を使用して、コロケーティッドサブブロックのための複数の第1のサブブロックベクトルVs1を決定してもよい。次に、デコーダモジュール124は、複数の第1のサブブロックベクトルVs1に基づいて、サブブロックユニットのための複数の第2のサブブロックベクトルVs2を導出してもよい。例えば、デコーダモジュール124は、特定の1つのコロケーティッドブロックの動き情報を使用して、特定のコロケーティッドブロック内のM個のコロケーティッドサブブロックに対するM個の第1のサブブロックベクトルVs1を決定してもよい。次に、デコーダモジュール124は、M個の第1のサブブロックベクトルVs1に基づいて、ブロックユニット内のM個のサブブロックユニットのためのM個の第2のサブブロックベクトルVs2を導出してもよい。M個の第2のサブブロックベクトルVs2の各々は、M個の第1のサブブロックベクトルVs1のうちの対応する1つと、画像フレームとブロックユニットの基準フレームとの間の基準距離と、コロケーティッドフレームとコロケーティッドブロックのコロケーティッド基準フレームとの間のコロケーティッド距離とに基づいて導出されてもよい。
【0139】
さらに、コロケーティッドサブブロックの特定の1つがユニ予測ブロックに含まれるとき、デコーダモジュール124は、特定のコロケーティッドサブブロックに対応するサブブロックユニットの特定の1つのための1つの第2のサブブロックベクトルを導出してもよい。さらに、特定のコロケーティッドサブブロックが双予測ブロックに含まれる場合、デコーダモジュール124は、特定のコロケーティッドサブブロックに対応する特定のサブブロックユニットのための2つの第2のサブブロックベクトルを導出してもよい。いくつかの実施形態では、特定のコロケーティッドブロック内のコロケーティッドサブブロックのうちのいくつかは、単一予測ブロックであってもよく、特定のコロケーティッドブロック内のコロケーティッドサブブロックのうちの他のものは、双予測ブロックであってもよい。したがって、デコーダモジュール124が特定のコロケーティッドブロック内のM個のコロケーティッドサブブロックを決定するとき、デコーダモジュール124は、M個のコロケーティッドサブブロックの動き情報を使用して、特定のコロケーティッドブロック内のM個のコロケーティッドサブブロックの(M+X)個の第1のサブブロックベクトルVs1を決定してもよい。次に、デコーダモジュール124は、(M+X)個の第1のサブブロックベクトルVs1に基づいて、ブロックユニット内のM個のサブブロックユニットのための(M+X)個の第2のサブブロックベクトルVs2を導出してもよい。数Xは、特定のコロケーティッドブロック内の双予測コロケーティッドサブブロックの数に等しくてもよい。数Xは、0~Mの範囲内であってもよい。したがって、第2のサブブロックベクトルVs2の数は、M~2Mの範囲内であってもよい。
【0140】
コロケーティッドサブブロックのM個の第1のサブブロックベクトルVs1は、差分エンコードユニットから受信され、互いに異なってもよいので、サブブロックユニットのM個の第2のサブブロックベクトルVs2は、互いに異なってもよい。したがって、デコーダモジュール124が、SbTMVP候補のうちの1つを決定するために、コロケーティッドブロックのうちの特定の1つから決定されたM個の第2のサブブロックベクトルVs2を使用するとき、特定のコロケーティッドブロックに対応するM個の第2のサブブロックベクトルVs2が互いに異なることがあるので、デコーダモジュール124は、互いに隣接しない複数の参照サブブロックを決定してもよい。いくつかの実施形態では、SbTMVP候補の各々は、コロケーティッドブロックの対応する1つに対するM個の第1のサブブロックベクトルVs1を示してもよい。いくつかの実施形態では、SbTMVP候補の各々は、ブロックユニットのためのコロケーティッドブロックの1つに対応するM個の第2のサブブロックベクトルVs2を示してもよい。いくつかの実施形態では、SbTMVP候補の各々は、ブロックユニットのためのコロケーティッドブロックの1つに対応する参照サブブロックを示してもよい。
【0141】
図8に戻り、ブロック870において、デコーダモジュール124は、複数のSbTMVP候補の各々に基づいて第1のコスト値を決定する。
【0142】
図1及び図2を参照すると、デコーダモジュール124は、画像フレームからブロックユニットに隣接するテンプレート領域を決定してもよい。テンプレート領域は、複数の隣接領域のうちの少なくとも1つを含んでもよい。第1の隣接領域は、ブロックユニットの上側に位置する隣接領域であってもよく、第2の隣接領域は、ブロックユニットの左側に位置する隣接領域であってもよく、第3の隣接領域は、ブロックユニットの左上側に位置する隣接領域であってもよい。隣接領域は、ブロックユニットを再構成する前に再構成されてもよい。
【0143】
デコーダモジュール124は、さらに、コロケーティッドブロックのうちの1つに対応する参照サブブロックに対して生成された複数の参照サブ領域を含む基準領域を決定してもよい。コロケーティッドブロックのうちの特定の1つに対応する参照サブブロックは互いに隣接していなくてもよいので、特定のコロケーティッドブロックに対応する参照サブ領域は、M個の第2のサブブロックベクトルVs2の一部に基づいて決定されてもよい。M個の第2のサブブロックベクトルVs2の一部は、ブロックユニットの上部境界に位置するサブブロックユニットに属していてもよいし、ブロックユニットの左側境界に位置するサブブロックユニットに属していてもよい。
【0144】
図9Aおよび図9Bは、本開示の実施形態によるテンプレート領域および基準領域の例示的な実施態の説明図である。図9Aは、本開示の実施形態によるブロックユニット900及びテンプレート領域900の例示的な実施態の説明図である。ブロックユニットに隣接するテンプレート領域9000は、画像フレームにおいて決定される。テンプレート領域9000は、ブロックユニット900を再構成する前に再構成されてもよい。
【0145】
図9Bは、本開示の実施形態による複数の参照サブブロック901~916および基準領域の例示的な実施態の説明図である。基準領域は、複数の参照サブ領域9011、9051、9091、9131、9132、9142、9152、および9162を含んでもよい。参照サブ領域9011、9051、9091、および9131は、参照サブブロック901、905、909、および913の左側にそれぞれ配置されてもよい。参照サブ領域9132、9142、9152、および9162は、それぞれ、参照サブブロック913~916の上側に位置してもよい。参照サブブロック901、905、909、および913は、ブロックユニット900の左境界に位置するサブブロックユニット、および左境界に位置するサブブロックユニットの第2のサブブロックベクトルVs2に基づいて決定されてもよい。参照サブブロック913~916は、ブロックユニット900の上部境界に位置するサブブロックユニットおよび上部境界に位置するサブブロックユニットの第2のサブブロックベクトルVs2に基づいて決定されてもよい。
【0146】
デコーダモジュール124は、コスト関数を用いて、テンプレート領域と複数の基準領域の各々とに基づいて参照コスト値を決定してもよい。デコーダモジュール124は、コスト関数によって、ブロックユニット900のテンプレート領域9000と、コロケーティッドブロックのうちの1つにそれぞれ対応する基準領域とを直接比較してもよい。例えば、デコーダモジュール124は、参照コスト値のうちの1つを生成するために、コロケーティッドブロックのうちの特定の1つに対応する基準領域のうちの特定の1つにおける再構成されたサンプルを、ブロックユニット900のテンプレート領域9000における再構成されたサンプルと比較してもよい。
【0147】
コスト関数は、SAD、SAT)、MAD、MSD、およびSSIMを含むテンプレートマッチングコスト関数であってもよいが、これらに限定されない。本開示から逸脱することなければ、任意のコスト関数を使用できることに留意すべきである。
【0148】
参照コスト値、近傍コスト値、平均化コスト値、および動きコスト値を互いに区別するために、参照コスト値を第1のコスト値とし、近傍コスト値を複数の第2のコスト値とし、平均化コスト値を複数の第3のコスト値とし、動きコスト値を複数の第4のコスト値としてもよい。第2のコスト値および第3のコスト値は、方法800のいくつかの実施形態においてのみ動き候補を決定するために使用され得るので、方法800において第2のコスト値および第3のコスト値を使用することは不要であり得る。第4のコスト値は、方法800のいくつかの実施形態において、コロケーティッドブロックを決定するために使用され得るので、方法800において第4のコスト値を使用することは不要であり得る。いくつかの実施形態では、第2のコスト値、第3のコスト値、および第4のコスト値のすべてが、動き候補の決定およびコロケーティッドブロックの決定のために方法800において使用されてもよい。
【0149】
ブロック880において、デコーダモジュール124は、第1のコスト値に基づいて複数のSbTMVP候補の配置を決定し、配置に基づいて調整SbTMVPリストを生成する。
【0150】
図1および図2を参照すると、デコーダモジュール124は、第1のコスト値に基づいてSbTMVP候補の配置を決定し、配置に基づいてSbTMVP候補を並び替えてもよい。いくつかの実施形態では、SbTMVP候補は、第1のコスト値の昇順または降順に並び替えてもよい。
【0151】
第1のコスト値に基づいて配置が決定される前に、SbTMVP候補は任意のルールに基づいて並べてもよい。例えば、隣接位置と非隣接位置の順序に基づいてSbTMVP候補を並べてもよい。
【0152】
SbTMVP候補は、参照コスト値の昇順に並び替えてもよい。このように、SbTMVP候補の特定の1つの参照コスト値が、他のSbTMVP候補の参照コスト値よりも小さい場合、特定のSbTMVP候補は、配置に基づいて、第1のSbTMVP候補となるように前進させられてもよい。言い換えれば、特定のSbTMVP候補の参照コスト値がSbTMVP候補の参照コスト値の最小値である場合に、特定のSbTMVP候補を第1のSbTMVP候補に繰り上げてもよい。さらに、特定のSbTMVP候補の参照コスト値がSbTMVP候補の参照コスト値の最大である場合、特定のSbTMVP候補をSbTMVP候補の最後の1つに移動させてもよい。例えば、SbTMVP候補の数が6に等しい場合、SbTMVP候補は、6つの参照コスト値(CV1、CV2、CV3、CV4、CV5、CV6)を有する6つのSbTMVP候補SC1、SC2、SC3、SC4、SC5、SC6を含んでもよい。また、6つの参照コスト値の値順が、CV4>CV2>CV5>CV1>CV6>CV3である場合、SbTMVP候補の配置を、6つのSbTMVP候補SC1、SC2、SC3、SC4、SC5、SC6の元の並び順から、6つのSbTMVP候補SC3、SC6、SC1、SC5、SC2、SC4の新たな並び順に変更してもよい。
【0153】
配置はさらに、ダイバーシティ参照に基づいてSbTMVP候補の新しい順序を調整することによって決定されてもよい。デコーダモジュール124は、新しい順序でSbTMVP候補の順序の2つの隣接するものから選択された参照コスト値の2つの間の差分値を決定してもよい。差分値がダイバーシティ閾値以下である場合、SbTMVP候補の2つの隣接するもののうちの最後の1つを後方に移動してもよい。例えば、6つの参照コスト値の値順は、CV4>CV2>CV5>CV1>CV6>CV3であり、参照コスト値CV1とCV6の2つの差はダイバーシティ閾値以下である。したがって、SbTMVP候補SC1は後方に移動してもよい。したがって、SbTMVP候補の配置は、6つのSbTMVP候補の新しい順序SC3、SC6、SC1、SC5、SC2、SC4のから、6つのSbTMVP候補の最終的な順序SC3、SC6、SC5、SC1、SC2、SC4にさらに変更してもよい。いくつかの実施形態では、ダイバーシティ基準に基づいてSbTMVP候補の新しい順序を調整することによって配置を決定しなくてもよいため、配置はSbTMVP候補の新しい順序と同一であってもよい。
【0154】
デコーダモジュール124は、SbTMVP候補から最小の参照コスト値を持つK個のSbTMVP候補を選択し、選択したSbTMVP候補を調整SbTMVPリストに追加してもよい。正の整数である数Kは、調整SbTMVPリスト内のSbTMVP候補の数に等しく、SbTMVP候補の総量より少なくてもよい。言い換えると、デコーダモジュール124は、SbTMVP候補を参照コスト値の昇順に並べ替えて配置を生成するときに、その配置に基づいて並べられた1番目からK番目のSbTMVP候補を選択してもよい。いくつかの実施形態では、最初のコスト値の順序が最初のSbTMVPリストにおけるSbTMVP候補の元の順序と異なる場合、調整SbTMVPリストは最初のSbTMVPリストと異なってもよい。いくつかの実施形態では、K個の選択されたSbTMVP候補の数が初期SbTMVPリスト内のSbTMVP候補の数と異なる場合、調整SbTMVPリストは初期のSbTMVPリストと異なってもよい。いくつかの実施形態では、最初のコスト値の順序が初期SbTMVPリスト内のSbTMVP候補の元の順序と同じであり、K個の選択されたSbTMVP候補の数が初期のSbTMVPリスト内のSbTMVP候補の数と等しい場合、調整SbTMVPリストは初期のSbTMVPリストと同一であってもよい。
【0155】
調整SbTMVPリスト中のSbTMVP候補の各々は、SbTMVPインデックスを持ってもよい。したがって、調整SbTMVPリスト内のSbTMVP候補の数はKに等しいため、調整SbTMVPリストのSbTMVPインデックスは0からK-1のインデックス範囲内であってもよい。
【0156】
SbTMVP候補は、複数の分割基準に基づいて複数の候補グループに分割することができる。例えば、SbTMVP候補は、近傍位置タイプ、ブロックユニットのブロックサイズ、または少なくとも1つの所定の数に基づいて、複数の候補グループに分割することができる。近傍位置タイプに基づいてSbTMVP候補を分割する場合、非隣接位置に基づいて生成されたSbTMVP候補を候補グループの1つに含め、隣接位置に基づいて生成されたSbTMVP候補を候補グループの他の1つに含め、サブブロック動きベクトルがゼロのSbTMVP候補を候補グループの他の1つに含めてもよい。例えば、SbTMVP候補の数は10に等しくてもよい。隣接位置に基づいて生成された2つのSbTMVP候補と、非隣接位置に基づいて生成された7つのSbTMVP候補と、サブブロック動きベクトルがゼロの1つのSbTMVP候補とがあってもよい。したがって、SbTMVP候補は、2つのSbTMVP候補を有する第1の候補グループ、7つのSbTMVP候補を有する第2の候補グループ、および1つのSbTMVP候補を有する第3の候補グループを含む3つの候補グループに分割されてもよい。
【0157】
さらに、SbTMVP候補がブロックユニットのブロックサイズに基づいて分割される場合、デコーダモジュール124は、ブロックユニットのブロックサイズに基づいて候補グループのグループサイズを決定してもよい。例えば、ブロックサイズが8×8である場合、グループサイズは3に等しくてもよく、ブロックサイズが16×16である場合、グループサイズは5に等しくてもよい。このように、デコーダモジュール124は、ルックアップテーブルからのブロックサイズに基づいてグループサイズを決定してもよい。さらに、候補グループのグループサイズは互いに等しくてもよい。いくつかの実施形態では、ブロックサイズは、ブロックユニットの幅であってもよい。いくつかの実施形態では、ブロックサイズはブロックユニットの高さであってもよい。いくつかの実施形態では、ブロックサイズは、ブロックユニットの幅にブロックユニットの高さを乗算することによって生成されるサイズ値であってもよい。いくつかの実施形態では、ブロックサイズは、ブロックユニットの幅をブロックユニットの高さで割ることによって生成されるサイズ値であってもよい。いくつかの実施形態では、ブロックサイズは、ブロックユニットの高さをブロックユニットの幅で割ることによって生成されるサイズ値であってもよい。いくつかの実施形態では、ブロックサイズは、ブロックユニットの幅および/またはブロックユニットの高さに基づいて計算されてもよい。
【0158】
SbTMVP候補が前記少なくとも1つの所定の数に基づいて分割される場合、デコーダモジュール124は、前記少なくとも1つの所定の数に基づいて候補グループのグループサイズを決定してもよい。候補グループのグループサイズが互いに等しい場合、前記少なくとも1つの所定の数は1に等しくてもよい。候補グループのグループサイズのいくつかが互いに異なる場合、前記少なくとも1つの所定の数は1より大きくてもよい。したがって、デコーダモジュール124は、SbTMVP候補を、それぞれが同じまたは異なるグループサイズを有する複数の候補グループに分割してもよい。さらに、前記少なくとも1つの所定の数1に等しい場合、SbTMVP候補の数が前記所定の数で割り切れない場合があるため、最後の候補グループのグループサイズは、他の候補グループのグループサイズと異なってもよい。いくつかの実施形態では、SbTMVP候補の数は5に等しくてもよい。SbTMVP候補を分割するための所定の数は、3に等しくてもよい。第1の候補グループのSbTMVP候補は、それぞれ対応するインデックス0、1、2を有する候補SbTMVP0、SbTMVP1、SbTMVP2としてもよく、第2の候補グループのSbTMVP候補は、それぞれ対応するインデックス3、4を有する候補SbTMVP3、SbTMVP4としてもよい。
【0159】
いくつかの実施形態では、候補グループのグループサイズは互いに異なっていてもよい。したがって、候補グループの数がxに等しい場合、グループサイズはN1、N2、N3、...、Nxに等しくてもよい。例えば、SbTMVP候補を2つの候補グループに分割してもよい。第1の候補グループには、0から(N1-1)までのインデックスを持つ最初のN1個のSbTMVP候補を含めてもよく、第2の候補グループには、N1から(N1+N2-1)までのインデックスを持つN2個のSbTMVP候補を含めてもよい。いくつかの実施形態では、SbTMVP候補の数は15に等しくてもよい。SbTMVP候補を分割するための所定の数は、4、5、および6に等しくてもよい。したがって、SbTMVP候補は、それぞれ異なるグループサイズを持つ3つの候補グループに分割されてもよい。第1のサブグループには、0から3までのインデックスを持つ4つのSbTMVP候補が含まれ、第2のサブグループには、4から8までのインデックスを持つ5つのSbTMVP候補が含まれてもよい。第3のサブグループは、9から14までのインデックスを有する6つのSbTMVP候補を含んでもよい。
【0160】
SbTMVP候補は、デコーダモジュール124がSbTMVP候補のうちの1つを選択するためにいくつのSbTMVP候補を収集するかを導出するために使用される収集インデックスに基づいて収集されてもよい。例えば、収集インデックスが、選択されたSbTMVP候補がp番目の候補グループに含まれることを示す場合、デコーダモジュール124によって収集されるSbTMVP候補の数は、N1、N2、...、Npの合計よりも大きくてもよい。言い換えれば、デコーダモジュール124は、P個のSbTMVP候補のみを収集してもよく、P個のSbTMVP候補の量は、第1のp番目の候補グループに分配するのに十分であってもよい。いくつかの実施形態では、収集インデックスは、候補グループのどれが選択されたSbTMVP候補を含むかを示す候補グループインデックスであってもよい。いくつかの実施形態では、選択されたSbTMVP候補を直接示す予測インデックスを、収集されたSbTMVP候補の数を導出するための収集インデックスとして使用してもよい。例えば、SbTMVP候補の数は15に等しく、SbTMVP候補を分割するための前記所定の数は4、5、6に等しくてもよい。解析された予測インデックスが5に等しい場合、選択されたSbTMVP候補は第2の候補グループに含まれてもよい。このように、デコーダモジュール124は、収集されたSbTMVP候補が9個になると、SbTMVP候補の収集を停止してもよい。
【0161】
いくつかの実施形態では、候補グループの各々に含まれるSbTMVP候補は、候補グループの対応する1つに含まれるSbTMVP候補の参照コスト値の昇順に並び替えてもよい。このように、候補グループのうちの特定の1つに含まれるSbTMVP候補のうちの特定の1つのSbTMVP候補の参照コスト値が、特定の候補グループに含まれる他のSbTMVP候補の参照コスト値よりも小さい場合、特定のSbTMVP候補は、配置に基づいて、特定の候補グループ内の第1のSbTMVP候補となるように前進させてもよい。言い換えれば、特定候補グループ内の特定SbTMVP候補の参照コスト値が特定候補グループの参照コスト値の最小値である場合に、特定SbTMVP候補を特定候補グループ内の第1のSbTMVP候補に繰り上げてもよい。
【0162】
図8に戻り、ブロック890において、デコーダモジュール124は、調整SbTMVPリストに基づいてブロックユニットを再構成する。
【0163】
図1および図2を参照すると、デコーダモジュール124は、予測インデックスに基づいて、調整SbTMVPリストから配置に基づいて並べられたSbTMVP候補のうちの1つを選択してもよい。予測インデックスは、調整SbTMVPリストの配列に基づいて並べられたSbTMVP候補から、ブロックユニットの予測候補を示してもよい。いくつかの実施形態では、予測インデックスは、SbTMVP候補のうち選択された1つを決定するためのインデックスSbTMVP_idxであってもよい。
【0164】
調整SbTMVPリストにおけるSbTMVPインデックスのインデックス値は、0からK-1のインデックス範囲内であってもよい。したがって、SbTMVPインデックスのインデックス値がK-1より大きくない場合があるため、配列によって並べられたSbTMVP候補のうちK番目以降に並べられたSbTMVP候補は、予測候補の選択から除外してもよい。
【0165】
いくつかの実施形態では、調整SbTMVPリスト内の配置に基づいて並べられたSbTMVP候補は、候補リストに追加されてもよい。デコーダモジュール124は、予測インデックスに基づいて、配置に基づいて並べられたSbTMVP候補を含む複数のモード候補のうちの1つを選択してもよい。予測インデックスは、ブロックユニットの予測候補を示してよい。例えば、候補リストはサブブロックマージリストであってもよく、予測インデックスはサブブロックマージインデックスであってもよい。さらに、候補リストはマージリストであってもよく、予測インデックスはマージインデックスであってもよい。
【0166】
デコーダモジュール124は、ビットストリーム内のインデックスに基づいてSbTMVP候補のうちの選択された1つを決定し、選択されたSbTMVP候補に基づいて予測候補を決定してもよい。次に、デコーダモジュール124は、選択されたSbTMVP候補に基づいて、ブロックユニットの予測ブロックを生成してもよい。
【0167】
デコーダモジュール124は、さらに、複数の残留成分を予測ブロックに追加して、ブロックユニットを再構成してもよい。残留成分は、ビットストリームから決定してもよい。デコーダモジュール124は、画像フレームおよびビデオデータを再構成するために、画像フレーム内の他のすべてのブロックユニットを再構成してもよい。
【0168】
方法300と方法800とを組み合わせることによって生成される別の方法M2は、図1および図2に示される構成を使用して実行されてもよく、これらの図の様々な要素は、方法300および方法800に関して参照される。
【0169】
方法M2において、デコーダモジュール124は、方法300のブロック310~360に基づいてビデオデータをデコードしてもよい。次に、デコーダモジュール124は、コロケーティッドブロックのコロケーティッドコスト値に基づいて、コロケーティッドブロックの一部を選択してもよい。例えば、コロケーティッドブロックの前記部分の数がYに等しいとき、Y個のコロケーティッドブロックが、Y個のコロケーティッド候補を決定するために、コロケーティッドコスト値のうちのY個の最も低いものに基づいて選択されてもよい。数Yは正の整数であってもよい。
【0170】
方法M2において、Y個のコロケーティッドブロックが選択された後、デコーダモジュール124は、方法800のブロック860~890に基づいてビデオデータをデコードしてもよい。このように、デコーダモジュール124は、ブロックユニットを再構成するためのY個のコロケーティッドブロックの動き情報に基づいて、SbTMVP候補を導出してもよい。
【0171】
図10は、本開示の実施形態による、図1に示される第1の電子装置110のエンコーダモジュール114のブロック図を示す。エンコーダモジュール114は、予測プロセッサ(例えば、予測プロセスユニット10141)、少なくとも第1の加算器(例えば、第1の加算器10142)および第2の加算器(例えば、第2の加算器10145)、変換/量子化プロセッサ(例えば、変換/量子化ユニット10143)、逆量子化/逆変換プロセッサ(例えば逆量子化/逆変換ユニット10144)、フィルタ(例えばフィルタリングユニット10146)、デコードピクチャバッファ(例えばデコードピクチャバッファ10147)、エントロピーエンコーダ(例えばエントロピーエンコードユニット10148)を含んでもよい。エンコーダモジュール114の予測プロセスユニット10141は、パーティションプロセッサ(例えば、パーティションユニット101411)、イントラ予測プロセッサ(例えば、イントラ予測ユニット101412)、およびインター予測プロセッサ(例えば、インター予測ユニット101413)をさらに含んでもよい。
【0172】
エンコーダモジュール114は、ソースビデオを受信し、ソースビデオをエンコードしてビットストリームを出力してもよい。エンコーダモジュール114は、複数の画像フレームを含むソースビデオを受信し、コード構造に従って画像フレームを分割してもよい。画像フレームの各々は、少なくとも1つの画像ブロックに分割してもよい。
【0173】
前記少なくとも1つの画像ブロックは、複数のルミナンスサンプルを有するルミナンスブロックと、複数のクロミナンスサンプルを有する少なくとも1つのクロミナンスブロックとを含んでもよい。ルミナンスブロックおよび少なくとも1つのクロミナンスブロックは、マクロブロック、コーディングツリーユニット(CTU)、コーディングブロック(CB)、そのサブ分割、および/または別の等価なコーディングユニットを生成するためにさらに分割されてもよい。
【0174】
エンコーダモジュール114は、ソースビデオの追加のサブ分割を実行してもよい。開示された実施形態は、ソースビデオがコーディングの前および/またはコーディングの間にどのように分割されるかに関係なく、一般にビデオコーディングに適用可能であることに留意されたい。
【0175】
コーディング処理中、予測プロセスユニット10141は、画像フレームの特定の1つの現在の画像ブロックを受信してもよい。現在の画像ブロックは、特定の画像フレームのルミナンスブロックまたは1つのクロミナンスブロックであってもよい。
【0176】
パーティションユニット101411は、現在の画像ブロックを複数のブロックユニットに分割してもよい。イントラ予測ユニット101412は、空間予測を提供するために、現在のブロックユニットと同じフレーム内の1つまたは複数の近傍ブロックに対する現在のブロックユニットのイントラ予測コーディングを実行してもよい。インター予測ユニット101413は、時間予測を提供するために、1つまたは複数の参照画像ブロック内の1つまたは複数のブロックに対する現在のブロックユニットのインター予測コーディングを実行してもよい。
【0177】
予測プロセスユニット10141は、コスト関数などのモード選択方法に基づいて、イントラ予測ユニット101412およびインター予測ユニット101413によって生成されたーディング結果の一方を選択してもよい。モード選択方法は、RDO(Rate-Distortion Optimization)処理であってもよい。
【0178】
予測プロセスユニット10141は、選択されたコーディング結果を決定し、選択されたコーディング結果に対応する予測されたブロックを、残留ブロックを生成するための第1の加算器10142と、エンコードされたブロックユニットを再構成するための第2の加算器10145に提供してもよい。予測プロセスユニット10141はさらに、動きベクトル、イントラモードインジケータ、パーティション情報、および他のシンタックス情報などのシンタックス要素をエントロピーエンコードユニット10148に提供してもよい。
【0179】
イントラ予測ユニット101412は、現在のブロックユニットをイントラ予測してもよい。イントラ予測ユニット101412は、現在のブロックユニットをエンコードするために、現在のブロックユニットに隣接する再構成サンプルに向けられたイントラ予測モードを決定してもよい。
【0180】
イントラ予測ユニット101412は、様々なイントラ予測モードを使用して現在のブロックユニットをエンコードしてもよい。予測プロセスユニット10141のイントラ予測ユニット101412は、選択されたモードから適切なイントラ予測モードを選択してもよい。イントラ予測ユニット101412は、クロス成分予測モードを使用して現在のブロックユニットをエンコードし、現在のブロックユニットのルーマ成分に基づいて、現在のブロックユニットの2つのクロマ成分のうちの1つを予測してもよい。イントラ予測ユニット101412は、現在のブロックユニットの2つのクロマ成分のうちの第2のクロマ成分に基づいて、現在のブロックユニットの2つのクロマ成分のうちの第1のクロマ成分を予測してもよい。
【0181】
インター予測ユニット101413は、イントラ予測ユニット101412によって実行されるイントラ予測の代替として、現在のブロックユニットをインター予測してもよい。インター予測ユニット101413は、動きベクトルを生成するために、現在のブロックユニットの動きを推定する動き推定を行ってもよい。
【0182】
動きベクトルは、参照画像ブロック内の参照ブロックユニットに対する、現在の画像ブロック内の現在のブロックユニットの変位を示してもよい。インター予測ユニット101413は、デコードピクチャバッファ10147に格納された少なくとも1つの参照画像ブロックを受信し、受信した参照画像ブロックに基づいて動きを推定して動きベクトルを生成してもよい。
【0183】
第1の加算器10142は、予測プロセスユニット10141によって決定された予測ブロックを元の現在のブロックユニットから減算することによって、残留ブロックを生成してもよい。第1の加算器10142は、この減算を実行するコンポーネントを表してもよい。
【0184】
変換/量子化ユニット10143は、残留変換係数を生成するために残留ブロックに変換を適用し、さらにビットレートを低減するために残留変換係数を量子化してもよい。変換は、DCT、DST、AMT、MDNSST、HyGT、信号依存変換、KLT、ウェーブレット変換、整数変換、サブバンド変換、または概念的に類似の変換のうちの1つであってよい。
【0185】
変換は、残留情報を画素値ドメインから周波数ドメインなどの変換ドメインに変換してもよい。量子化の程度は、量子化パラメータを調整することによって変更することができる。
【0186】
変換/量子化ユニット10143は、量子化された変換係数を含む行列のスキャンを実行してもよい。あるいは、エントロピーエンコードユニット10148がスキャンを実行してもよい。
【0187】
エントロピーエンコードユニット10148は、予測プロセスユニット10141および変換/量子化ユニット10143から、量子化パラメータ、変換データ、動きベクトル、イントラモード、パーティション情報、および他のシンタックス情報を含む複数のシンタックス要素を受信してもよい。エントロピーエンコードユニット10148は、シンタックス要素をビットストリームにエンコードしてもよい。
【0188】
エントロピーエンコードユニット10148は、CAVLC、CABAC、SBAC、PIPEコーディング、または別のエントロピーコーディング技法を実行することによって、量子化された変換係数をエントロピーエンコードし、エンコードされたビットストリームを生成してもよい。エンコードされたビットストリームは、別のデバイス(すなわち、図1の第2の電子装置120)に送信されるか、または後の送信または検索のためにアーカイブされてもよい。
【0189】
逆量子化/逆変換ユニット10144は、後に参照ブロックとして使用するために、画素領域で残留ブロックを再構成するために逆量子化および逆変換を適用してもよい。第2の加算器10145は、デコードピクチャバッファ10147に格納するための再構成ブロックを生成するために、再構成された残留ブロックを予測プロセスユニット10141から提供された予測ブロックに追加してもよい。
【0190】
フィルタリングユニット10146は、再構成されたブロックからブロッキングアーチファクトを除去するために、デブロッキングフィルタ、SAOフィルタ、バイラテラルフィルタ、および/またはALFを含んでもよい。デブロッキングフィルタ、SAOフィルタ、バイラテラルフィルタ、およびALFに加えて、追加のフィルタ(ループ内またはポストループ)を使用してもよい。このようなフィルタは、簡潔にするために図示されておらず、第2の加算器10145の出力をフィルタリングしてもよい。
【0191】
デコードピクチャバッファ10147は、イントラコーディングモードまたはインターコーディングモードなどで、エンコーダモジュール114がビデオをエンコードするために使用する参照ブロックを記憶する参照ピクチャメモリであってもよい。デコードピクチャバッファ10147は、DRAM(例えば、SDRAMを含む)、MRAM、RRAM、または他のタイプのメモリデバイスなどの様々なメモリデバイスを含んでよい。デコードピクチャバッファ10147は、エンコーダモジュール114の他の構成要素とオンチップであってもよいし、それらの構成要素に対してオフチップであってもよい。
【0192】
ビデオデータをデコード/エンコードする方法300は、第1の電子装置110によって実行されてもよい。エンコーダモジュール114は、ビデオデータを受信してもよい。エンコーダモジュール114が受信するビデオデータは、ビデオであってもよい。エンコーダモジュール114は、ビデオデータに従って、画像からブロックユニットを決定してもよい。エンコーダモジュール114は、画像フレームを分割して複数のCTUを生成し、CTUのうちの1つをさらに分割して、任意のビデオコーディング規格に基づく複数のパーティション方式のうちの1つに従ってブロックユニットを決定してもよい。
【0193】
図1図3、および図10を参照すると、エンコーダモジュール114は、ブロックユニットに隣接していない少なくとも1つの非隣接位置を含む複数の候補位置を決定してもよい。候補位置は、ブロックユニットに隣接する複数の近傍位置であってもよい。近傍位置は、ブロックユニットに隣接する複数の隣接位置、またはブロックユニットに隣接しない複数の非隣接位置のうちの少なくとも1つから選択されてもよい。
【0194】
図1図3、および図10を参照すると、エンコーダモジュール114は、複数の候補位置から複数の動き候補を決定してもよい。エンコーダモジュール114は、候補位置に基づいて、ブロックユニットに隣接する複数の近傍ブロックを決定してもよい。近傍ブロックの各々は、候補位置の少なくとも1つをカバーしてもよい。エンコーダモジュール114は、画像フレームからブロックユニットに隣接するテンプレート領域を決定し、画像フレームから複数の近傍領域を決定してもよい。近傍領域のそれぞれは、近傍ブロックの対応する1つに隣接していてもよい。エンコーダモジュール114は、ブロックユニットの動き候補を選択するためのコスト関数を用いて、テンプレート領域と複数の近傍領域のそれぞれとに基づいて、近傍コスト値を決定してもよい。エンコーダモジュール114は、近傍領域によって計算された近傍コスト値に基づいて、複数の候補ブロックを選択してもよい。候補ブロックは、ブロックユニットを再構成する前に再構成された再構成ブロックであってもよい。候補ブロックのうちの1つが動き情報を有していない場合には、選択された近傍位置のうちの対応する1つに基づいて動き候補が決定されなくてもよい。さらに、動き候補は、ブロックユニットを再構成する前に再構成された複数の前のブロックの複数の前の動き情報を記憶するFIFO(first-in-first-out)テーブルから決定される履歴ベースの候補をさらに含んでもよい。
【0195】
図1図3、および図10を参照すると、エンコーダモジュール114は、複数の動き候補に基づいて、1つまたは複数のコロケーティッドフレームのうちの1つにそれぞれ含まれる複数のコロケーティッドブロックを選択してもよい。複数の動き候補の各々は、複数の候補位置のうちの1つをカバーする候補ブロックの動きベクトル、リスト情報、およびフレーム情報を示してよい。エンコーダモジュール114は、少なくとも1つの所定の値に基づいて、1つ以上のコロケーティッドフレームを決定してもよい。候補ブロックのうちの特定の1つのフレーム情報における複数のフレームインデックスのうちの1つが、前記少なくとも1つの所定の値のうちの1つに等しいとき、特定の候補ブロックのリスト情報によって示される基準リストのうちの対応する1つから選択される特定の候補ブロックの基準フレームが、1つ以上のコロケーティッドフレームに含まれてもよい。エンコーダモジュール114は、特定の動き候補のフレーム情報によって選択された基準フレームが1つまたは複数のコロケーティッドフレームに含まれる場合に、特定の候補ブロックに対応する動き候補の特定の1つを使用して、動きブロックを決定してもよい。各動きブロックは、コロケーティッドブロックとみなされてもよい。いくつかの実施形態において、エンコーダモジュール114は、同じ動きベクトルに基づいて、異なるコロケーティッドフレームにおいて生成された動きブロックの各々に対する動きコスト値を決定してもよい。そして、エンコーダモジュール114は、動きブロックの動きコスト値を比較して、コロケーティッドブロックを選択してもよい。
【0196】
図1図3、および図10を参照すると、エンコーダモジュール114は、複数のコロケーティッドブロックユニットのそれぞれについて、コロケーティッドコスト値を決定してもよい。エンコーダモジュール114は、1つ以上のコロケーティッドフレームから、複数のコロケーティッドブロックのうちの1つにそれぞれ隣接する複数のコロケーティッド領域を決定してもよい。コロケーティッド領域の各々は、コロケーティッドブロックの対応する1つの複数の隣接領域のうちの少なくとも1つを含んでもよい。エンコーダモジュール114は、コスト関数を用いて、テンプレート領域および複数のコロケーティッド領域のそれぞれに基づいて、コロケーティッドコスト値を決定してもよい。
【0197】
図1図3、および図10を参照すると、エンコーダモジュール114は、複数の動き候補および複数の第1のコスト値に基づいて、少なくとも1つのサブブロックベースの時間動きベクトル予測(SbTMVP)候補を決定する。エンコーダモジュール114は、コロケーティッド領域によって計算された第1のコスト値に基づいて、コロケーティッドブロックのうちの少なくとも1つを選択してもよい。少なくとも1つのSbTMVP候補の各々は、少なくとも1つのコロケーティッド候補の対応する1つに基づいて決定されてもよい。
【0198】
図1図3、および図10を参照すると、エンコーダモジュール114は、ブロックユニットを予測するためのコスト関数などのモード選択方法に基づいて、少なくとも1つのSbTMVP候補を含む候補リスト内の複数のモード候補のうちの1つを選択してもよい。エンコーダモジュール114は、複数の予測ブロックを生成するために、候補リスト内の少なくとも1つのSbTMVP候補に基づいてブロックユニットを予測してもよい。次に、エンコーダモジュール114は、予測されたブロックの各々に含まれる複数の予測されたサンプルを、ブロックユニット内の複数の色成分とさらに比較してもよい。このように、エンコーダモジュール114は、予測されたブロックの各々についてブロックコスト値を決定し、候補リスト内のモード候補からブロックコスト値に基づいてブロックユニットの予測候補を選択してもよい。モード選択方法は、レート歪み最適化(RDO)処理であってもよい。次に、エンコーダモジュール114は、ブロックユニットの色成分と、予測モードに基づいて生成された予測サンプルとを比較することにより、複数の残留成分を決定してもよい。さらに、残留成分および予測インデックスは、デコーダデバイスがビデオデータを再構成するためのビットストリームにエンコードされてもよい。予測インデックスは、候補リスト内のモード候補のうちの選択された1つを示してもよい。いくつかの実施形態では、予測インデックスは、候補リストがSbTMVP候補のみを含む場合、SbTMVP候補の選択された1つを決定するためのインデックスSbTMVP_idxであってもよい。
【0199】
図1図3、および図10を参照すると、エンコーダモジュール114は、複数の再構成サンプルを含む再構成ブロックを生成するために、候補リスト内の予測候補に基づいてブロックユニットをさらに再構成してもよい。ブロックユニットの再構成されたサンプルは、ビデオデータ内の複数の後続ブロックを予測するための参照として使用されてもよい。
【0200】
したがって、エンコーダモジュール114はまた、ビデオデータをビットストリームにエンコードするためのブロックユニットを予測および再構成するために方法300を使用してもよい。エンコーダモジュール114およびデコーダモジュール124は、同じ方法300を使用してもよいので、エンコーダモジュール114およびデコーダモジュール124は、ビットストリーム内のビット数を減少させるために同じ並び替えリストを生成してもよい。
【0201】
ビデオデータをデコード/エンコードするための方法300と同様の方法M1は、第1の電子装置110によって実行されてもよい。方法M1において、エンコーダモジュール114は、方法300に基づいてビデオデータをエンコードしてもよい。さらに、ブロック370において、コロケーティッドブロックのうちの少なくとも1つを選択した後、エンコーダモジュール114は、選択された少なくとも1つのコロケーティッドブロックのうちの1つに隣接する複数のシフトブロックの各々をさらに決定する。いくつかの実施形態では、シフトブロックの各々は、図4における複数の隣接位置および複数の非隣接位置を含む複数の近傍位置に基づいて選択されてもよい。
【0202】
図1図3、および図10を参照すると、エンコーダモジュール114は、コスト関数を使用することによって、テンプレート領域および複数のコロケーティッド領域の各々に基づいて、シフトコスト値を決定してもよい。図7において、エンコーダモジュール114は、コスト関数によって、ブロックユニット700のテンプレート領域7000と、コロケーティッド領域7700~7740のそれぞれを直接比較してもよい。シフトブロックのコロケーティッド領域に基づいて決定されたシフトコスト値の1つが、コロケーティッドブロックのコロケーティッド領域に基づいて決定されたシフトコスト値よりも小さい場合、シフトブロックの対応する1つは、コロケーティッド候補を決定するためのコロケーティッドブロックを置き換えてもよい。
【0203】
ビデオデータをデコード/エンコードする方法800は、第1の電子装置110によって実行されてもよい。エンコーダモジュール114は、ビデオデータを受信してもよい。エンコーダモジュール114が受信するビデオデータは、ビデオであってもよい。エンコーダモジュール114は、ビデオデータに従って、画像からブロックユニットを決定してもよい。エンコーダモジュール114は、画像フレームを分割して複数のCTUを生成し、CTUのうちの1つをさらに分割して、任意のビデオコーディング規格に基づく複数の分割方式のうちの1つに従ってブロックユニットを決定してもよい。
【0204】
図1図8、および図10を参照すると、エンコーダモジュール114は、ブロックユニットに隣接する複数の隣接位置、およびブロックユニットに隣接しない複数の非隣接位置から選択される複数の候補位置を決定してもよい。候補位置は、ブロックユニットに隣接する複数の近傍位置であってもよい。近傍位置は、ブロックユニットに隣接する複数の隣接位置またはブロックユニットに隣接しない複数の非隣接位置の少なくとも一方から選択されてもよい。
【0205】
図1図8、および図10を参照すると、エンコーダモジュール114は、複数の候補位置から複数の動き候補を決定してもよい。エンコーダモジュール114は、候補位置に基づいて、ブロックユニットに隣接する複数の近傍ブロックを決定してもよい。近傍ブロックの各々は、候補位置の少なくとも1つをカバーしてもよい。エンコーダモジュール114は、画像フレームからブロックユニットに隣接するテンプレート領域を決定し、画像フレームから複数の近傍領域を決定してもよい。近傍領域のそれぞれは、近傍ブロックの対応する1つに隣接していてもよい。エンコーダモジュール114は、ブロックユニットの動き候補を選択するためにコスト関数を用いて、テンプレート領域と複数の近傍領域のそれぞれとに基づいて、近傍コスト値を決定してもよい。エンコーダモジュール114は、近傍領域によって計算された近傍コスト値に基づいて、複数の候補ブロックを選択してもよい。候補ブロックは、ブロックユニットを再構成する前に再構成された再構成ブロックであってもよい。候補ブロックのうちの1つが動き情報を有していない場合には、選択された近傍位置のうちの対応する1つに基づいて動き候補が決定されなくてもよい。さらに、動き候補は、ブロックユニットを再構成する以前に再構成された複数の前のブロックの複数の以前の動き情報を記憶するFIFO(first-in-first-out)テーブルから決定された履歴ベースの候補をさらに含んでもよい。
【0206】
図1図8、および図10を参照すると、エンコーダモジュール114は、複数の動き候補に基づいて、それぞれが1つまたは複数のコロケーティッドフレームのうちの1つに含まれる複数のコロケーティッドブロックを決定してもよい。複数の動き候補の各々は、複数の候補位置のうちの1つをカバーする候補ブロックの動きベクトル、リスト情報、およびフレーム情報を示してもよい。エンコーダモジュール114は、少なくとも1つの所定の値に基づいて、1つ以上のコロケーティッドフレームを決定してもよい。候補ブロックのうちの特定の1つのフレーム情報の複数のフレームインデックスのうちの1つが、前記少なくとも1つの所定の値のうちの1つに等しいとき、特定の候補ブロックのリスト情報によって示される基準リストのうちの対応する1つから選択される特定の候補ブロックの基準フレームが、1つ以上のコロケーティッドフレームに含まれてもよい。エンコーダモジュール114は、特定の動き候補のフレーム情報によって選択された基準フレームが1つまたは複数のコロケーティッドフレームに含まれるとき、特定の候補ブロックに対応する動き候補の特定の1つを使用して、動きブロックを決定してもよい。各動きブロックは、コロケーティッドブロックとみなされてもよい。いくつかの実施形態において、エンコーダモジュール114は、同じ動きベクトルに基づいて、異なるコロケーティッドフレームにおいて生成された動きブロックの各々に対する動きコスト値を決定してもよい。そして、エンコーダモジュール114は、動きブロックの動きコスト値を比較して、コロケーティッドブロックを選択してもよい。
【0207】
図1図8、および図10を参照すると、エンコーダモジュール114は、複数のコロケーティッドブロックの動き情報に基づいて、複数のサブブロックベースの時間動きベクトル予測(SbTMVP)候補を導出してもよい。エンコーダモジュール114は、コロケーティッドブロックが動き情報を有するか否かを判定してもよい。エンコーダモジュール114は、コロケーティッドブロックの動き情報を使用して、コロケーティッドブロックの1つにそれぞれ対応するSbTMVP候補を決定してもよい。ブロックユニットがSbTMVP候補に基づいて予測されるとき、ブロックユニットは複数のサブブロックユニットに分割されてもよい。したがって、コロケーティッドブロックのそれぞれも、複数のコロケーティッドサブブロックに分割されてもよい。エンコーダモジュール114は、画像フレームを再構成する前に、コロケーティッドフレームが再構成されるので、コロケーティッドブロックの動き情報を使用して、コロケーティッドサブブロックのための複数の第1のサブブロックベクトルVs1を決定してもよい。次に、エンコーダモジュール114は、複数の第1のサブブロックベクトルVs1に基づいて、サブブロックユニットのための複数の第2のサブブロックベクトルVs2を導出してもよい。さらに、コロケーティッドサブブロックの特定の1つがユニ予測ブロックに含まれるとき、エンコーダモジュール114は、特定のコロケーティッドサブブロックに対応するサブブロックユニットの特定の1つに対して1つの第2のサブブロックベクトルを導出してもよい。さらに、特定のコロケーティッドサブブロックが双予測ブロックに含まれる場合、エンコーダモジュール114は、特定のコロケーティッドサブブロックに対応する特定のサブブロックユニットのための2つの第2のサブブロックベクトルを導出してもよい。
【0208】
図1図8、および図10を参照すると、エンコーダモジュール114は、複数のSbTMVP候補の各々に基づいて参照コスト値を決定してもよい。エンコーダモジュール114は、コロケーティッドブロックのうちの1つに対応する参照サブブロックに対してそれぞれ生成された複数の参照サブ領域を含む基準領域を決定してもよい。コロケーティッドブロックの特定の1つに対応する参照サブブロックは互いに隣接していない場合があるため、特定のコロケーティッドブロックに対応する参照サブ領域は、M個の第2のサブブロックベクトルVs2の一部に基づいて決定されてもよい。M個の第2のサブブロックベクトルVs2の一部は、ブロックユニットの上部境界に位置するサブブロックユニットまたはブロックユニットの左側境界に位置するサブブロックユニットに属してもよい。エンコーダモジュール114は、コスト関数を用いて、テンプレート領域と複数の基準領域のそれぞれとに基づいて参照コスト値を決定してもよい。
【0209】
図1図8、および図10を参照すると、エンコーダモジュール114は、第1のコスト値に基づいて複数のSbTMVP候補の配置を決定し、その配置に基づいて調整SbTMVPリストを生成する。エンコーダモジュール114は、参照コスト値に基づいてSbTMVP候補の配置を決定し、その配置に基づいてSbTMVP候補を並び替えてもよい。配置はさらに、多様性の基準に基づいてSbTMVP候補の新しい順序を調整することによって決定されてもよい。いくつかの実施形態では、SbTMVP候補は、複数の分割基準に基づいて複数の候補グループに分割してもよい。例えば、SbTMVP候補は、近傍位置タイプ、ブロックユニットのブロックサイズ、または少なくとも1つの所定の数に基づいて、複数の候補グループに分割してもよい。さらに、エンコーダモジュール114は、P個のSbTMVP候補のみを収集してもよく、P個のSbTMVP候補の量は、第1のp番目の候補グループに分配するのに十分であってもよい。
【0210】
図1図8、および図10を参照すると、エンコーダモジュール114は、ブロックユニットを予測するために、コスト関数などのモード選択方法に基づいて、少なくとも1つのSbTMVP候補を含む候補リスト内の複数のモード候補のうちの1つを選択してもよい。エンコーダモジュール114は、複数の予測ブロックを生成するために、候補リスト内の少なくとも1つのSbTMVP候補に基づいてブロックユニットを予測してもよい。次に、エンコーダモジュール114は、予測されたブロックの各々に含まれる複数の予測されたサンプルを、ブロックユニット内の複数の色成分とさらに比較してもよい。このように、エンコーダモジュール114は、予測されたブロックの各々についてブロックコスト値を決定し、候補リスト内のモード候補からブロックコスト値に基づいてブロックユニットの予測候補を選択してもよい。モード選択方法は、レート歪み最適化(RDO)処理であってもよい。次に、エンコーダモジュール114は、ブロックユニットの色成分と、予測モードに基づいて生成された予測サンプルとを比較することにより、複数の残留成分を決定してもよい。さらに、残留成分および予測インデックスは、デコーダデバイスがビデオデータを再構成するためのビットストリームにエンコードされてもよい。予測インデックスは、候補リスト内のモード候補のうちの選択された1つを示してもよい。いくつかの実施形態では、予測インデックスは、候補リストがSbTMVP候補のみを含む場合に、SbTMVP候補のうちの選択された1つを決定するためのインデックスSbTMVP_idxであってもよい。
【0211】
図1図8、および図10を参照すると、エンコーダモジュール114は、候補リスト内の予測候補に基づいてブロックユニットをさらに再構成し、複数の再構成サンプルを含む再構成ブロックを生成してもよい。ブロックユニットの再構成されたサンプルは、ビデオデータ内の複数の後続ブロックを予測するための参照として使用されてもよい。
【0212】
したがって、エンコーダモジュール114は、また、方法800を使用して、ビデオデータをビットストリームにエンコードするためにブロックユニットを予測および再構成してもよい。エンコーダモジュール114およびデコーダモジュール124は、同じ方法800を使用してもよいので、エンコーダモジュール114およびデコーダモジュール124は、ビットストリーム内のビット数を減らすために同じ並び替えリストを生成してもよい。
【0213】
ビデオデータをエンコード/デコードする方法である方法300および方法800を組み合わせることによって生成される方法M2は、第1の電子装置110によって実行されてもよい。方法M2において、エンコーダモジュール114は、方法300のブロック310~360に基づいてビデオデータをエンコードしてもよい。次に、エンコーダモジュール114は、コロケーティッドブロックのコロケーティッドコスト値に基づいて、コロケーティッドブロックの一部を選択してもよい。コロケーティッドブロックの一部が選択された後、エンコーダモジュール114は、方法800のブロック860~890に基づいてビデオデータをエンコードしてもよい。このように、エンコーダモジュール114は、ブロックユニットを再構成するために、コロケーティッドブロックの部分の動き情報に基づいてSbTMVP候補を導出してもよい。
【0214】
開示された実施形態は、あらゆる点で例示的なものであり、制限的なものではないと考えられる。また、本開示は、特定の開示された実施形態に限定されるものではなく、本開示の範囲から逸脱することなく、多くの再配置、修正、および置換が可能であることを理解されたい。
【図面の簡単な説明】
【0215】
本開示の態様は、以下の詳細な開示および対応する図から最もよく理解される。様々な特徴は縮尺通りに描かれておらず、様々な特徴の寸法は、議論を明確にするために任意に増減される場合がある。
図1図1は、本開示の実施形態に従ってビデオデータをエンコードおよびデコードするように構成されたシステムのブロック図である。
図2図2は、本開示の実施形態による、図1に図示された第2の電子装置のデコーダモジュールのブロック図である。
図3図3は、本開示の実施形態による、電子装置によってビデオデータをデコードする方法のフローチャートを示す。
図4図4は、本開示の一実施形態によるブロックと複数の候補位置の例示的な実施態を示す説明図である。
図5図5A図5B、および図5Cは、本開示の一実施形態によるテンプレート領域および異なる隣接領域の例示的な実施態を示す図である。
図6図6は、本開示の一実施形態による、ブロックユニット及びテンプレート領域を有する画像フレーム、並びに、コロケーティッドブロック及びコロケーティッド領域を有するコロケーティッドフレームの例示的な実施態を示す説明図である。
図7図7は、本開示の一実施形態による、ブロックユニット及びテンプレート領域を有する画像フレーム、並びに、コロケーティッドブロック、シフトブロック及びコロケーティッド領域を有するコロケーティッドフレームの例示的な実施態を示す説明図である。
図8図8は、本開示の実施形態による、電子装置によってビデオデータをデコードする方法のフローチャートを示す。
図9図9Aおよび図9Bは、本開示の実施形態によるテンプレート領域および基準領域の例示的な実施態を示す図である。
図10図10は、本開示の実施形態による、図1に示される第1の電子装置のエンコーダモジュールのブロック図である。
図1
図2
図3
図4
図5A
図5B
図5C
図6
図7
図8
図9A
図9B
図10
【国際調査報告】