(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-02-18
(45)【発行日】2022-03-01
(54)【発明の名称】ビデオエンコーディング及びデコーディングのための方法、装置、コンピュータプログラム、及び非一時的なコンピュータ可読媒体
(51)【国際特許分類】
H04N 19/105 20140101AFI20220221BHJP
H04N 19/167 20140101ALI20220221BHJP
H04N 19/176 20140101ALI20220221BHJP
H04N 19/593 20140101ALI20220221BHJP
【FI】
H04N19/105
H04N19/167
H04N19/176
H04N19/593
(21)【出願番号】P 2021530179
(86)(22)【出願日】2020-01-13
(86)【国際出願番号】 US2020013355
(87)【国際公開番号】W WO2020146882
(87)【国際公開日】2020-07-16
【審査請求日】2021-05-27
(32)【優先日】2019-01-13
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-07-03
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】シュイ,シアオジョォン
(72)【発明者】
【氏名】リィウ,シャン
(72)【発明者】
【氏名】リ,シアン
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2020/060820(WO,A1)
【文献】米国特許出願公開第2018/0131963(US,A1)
【文献】Luong Pham Van et al.,CE8-related: Restrictions for the search area of the IBC blocks in CPR,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-L0404-v2,12th Meeting: Macao, CN,2018年10月,pp.1-6
【文献】Xiaozhong Xu, Xiang Li, Shan Liu, and Eric Chai,CE8: CPR reference memory reuse without increasing memory requirement (CE8.1.2a and CE8.1.2d),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M0407-v1,13th Meeting: Marrakesh, MA,2019年01月03日,pp.1-9
【文献】Xiaozhong Xu, Xiang Li, and Shan Liu,Non-CE8: IBC search range increase for small CTU size,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N0384-v2,14th Meeting: Geneva, CH,2019年03月,pp.1-4
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
デコーダが実行するビデオデコーディングの方法であって、
コーディングされたビデオビットストリームを受け取るステップと、
現在のブロックのための参照ブロックが前記現在のブロックのコーディングツリーユニット(CTU)とは異なったCTUに位置しているかどうかを決定するステップであり、前記参照ブロック及び前記現在のブロックは、前記コーディングされたビデオビットストリーム
に含まれている同じピクチャに位置している、ステップと、
前記参照ブロックが前記異なったCTUに位置しているとの決定に応答して、
前記現在のブロックのCTUと参照サンプルメモリとが同じサイズを有しているかどうかを決定するステップと、
前記現在のブロックと前記参照サンプルメモリとが同じサイズを有しているとの決定に応答して、
(i)前記異なったCTU内の第2エリアと同一位置にある前記現在のブロックの前記CTU内の第1エリアを決定するステップであり、前記第1エリ
アは、
前記参照ブロックの前記異なったCTU内の前記第2エリアの位置座標と同じである前記現在のブロックの前記CTU
内の位置座標を有する、ステップと、
(ii)前記第1エリアのデコーディング状態に基づいて、前記参照ブロックのための参照サンプルメモリのメモリ位置が利用可能であるかどうかを決定するステップと、
(iii)前記参照ブロックのための前記メモリ位置が利用可能であるとの決定に応答して、前記参照ブロックに対応する前記メモリ位置から、前記現在のブロックをデコーディングするための1つ以上のサンプルを読み出すステップと
を有する方法。
【請求項2】
前記第1エリアは、前記現在のブロックであり、
前記第2エリアは、前記参照ブロックである、
請求項1に記載の方法。
【請求項3】
前記第1エリア及び前記第2エリアの夫々は、2
M×2
Nであるサイズを有する、
請求項1に記載の方法。
【請求項4】
M=6かつN=6である、
請求項3に記載の方法。
【請求項5】
少なくとも部分的にデコーディングされている少なくとも1つのブロックを
前記第1エリアが含まないことを前記第1エリアの前記デコーディング状態が示すとの決定に応答して、前記参照ブロックに対応する前記メモリ位置は、利用可能であると決定される、
請求項1乃至4のうちいずれか一項に記載の方法。
【請求項6】
前記参照サンプルメモリと前記現在のブロックの前記CTUとはサイズが同じでないとの決定に応答して、前記現在のブロックの前記CTUのサイズが前記参照サンプルメモリのサイズよりも小さいかどうかを決定するステップと、
前記現在のブロックの前記CTUのサイズが前記参照サンプルメモリのサイズよりも小さいとの決定に応答して、前記参照ブロックの前記異なったCTUと前記現在のブロックの前記CTUとの間の距離が、((参照サンプルメモリサイズ/CTUサイズ)-1)×(CTU幅)と定義されたしきい値
よりも小さいかどうかを決定するステップと、
前記距離が前記しきい値
よりも小さいとの決定に応答して、前記参照ブロックに対応する前記メモリ位置から、前記現在のブロックをデコーディングするための1つ以上のサンプルを読み出すステップと
を更に有する、請求項1乃至5のうちいずれか一項に記載の方法。
【請求項7】
前記距離が前記しきい値
以上であるとの決定に応答して、
(i)前記異なったCTU内の第2エリアと同一位置にある前記現在のブロックの前記CTU内の第1エリアを決定するステップであり、前記第1エリアは、前記参照ブロックの前記異なったCTU内の前記第2エリアの位置座標と同じである前記現在のブロックの前記CTU内の位置座標を有する、ステップと、
(ii)前記第1エリアのデコーディング状態に基づいて、前記参照ブロックのための前記参照サンプルメモリのメモリ位置が利用可能であるかどうかを決定するステップと、
(iii)前記参照ブロックのための前記メモリ位置が利用可能であるとの決定に応答して、前記参照ブロックに対応する前記メモリ位置から、前記現在のブロックをデコーディングするための1つ以上のサンプルを読み出すステップと
を更に有する、請求項6に記載の方法。
【請求項8】
ビデオデコーディングのためのビデオデコーディング装置であって、
処理回路を有し、該処理回路は、
コーディングされたビデオビットストリームを受け取り、
現在のブロックのための参照ブロックが前記現在のブロックのコーディングツリーユニット(CTU)とは異なったCTUに位置しているかどうかを決定し、前記参照ブロック及び前記現在のブロックは、前記コーディングされたビデオビットストリーム
に含まれている同じピクチャに位置しており、
前記参照ブロックが前記異なったCTUに位置しているとの決定に応答して、
前記現在のブロックのCTUと参照サンプルメモリとが同じサイズを有しているかどうかを決定し、
前記現在のブロックと前記参照サンプルメモリとが同じサイズを有しているとの決定に応答して、
(i)前記異なったCTU内の第2エリアと同一位置にある前記現在のブロックの前記CTU内の第1エリアを決定し、前記第1エリ
アは、
前記参照ブロックの前記異なったCTU内の前記第2エリアの位置座標と同じである前記現在のブロックの前記CTU
内の位置座標を有し、
(ii)前記第1エリアのデコーディング状態に基づいて、前記参照ブロックのための参照サンプルメモリのメモリ位置が利用可能であるかどうかを決定し、
(iii)前記参照ブロックのための前記メモリ位置が利用可能であるとの決定に応答して、前記参照ブロックに対応する前記メモリ位置から、前記現在のブロックをデコーディングするための1つ以上のサンプルを読み出す
よう構成される、
ビデオデコーディング装置。
【請求項9】
前記第1エリアは、前記現在のブロックであり、
前記第2エリアは、前記参照ブロックである、
請求項8に記載のビデオデコーディング装置。
【請求項10】
前記第1エリア及び前記第2エリアの夫々は、2
M×2
Nであるサイズを有する、
請求項8に記載のビデオデコーディング装置。
【請求項11】
M=6かつN=6である、
請求項10に記載のビデオデコーディング装置。
【請求項12】
少なくとも部分的にデコーディングされている少なくとも1つのブロックを
前記第1エリアが含まないことを前記第1エリアの前記デコーディング状態が示すとの決定に応答して、前記参照ブロックに対応する前記メモリ位置は、利用可能であると決定される、
請求項8乃至11のうちいずれか一項に記載のビデオデコーディング装置。
【請求項13】
前記処理回路は、
前記参照サンプルメモリと前記現在のブロックの前記CTUとが同じサイズでないとの決定に応答して、前記現在のブロックの前記CTUのサイズが前記参照サンプルメモリのサイズよりも小さいかどうかを決定し、
前記現在のブロックの前記CTUのサイズが前記参照サンプルメモリのサイズよりも小さいとの決定に応答して、前記参照ブロックの前記異なったCTUと前記現在のブロックの前記CTUとの間の距離が、((参照サンプルメモリサイズ/CTUサイズ)-1)×(CTU幅)と定義されたしきい値
よりも小さいかどうかを決定し、
前記距離が前記しきい値
よりも小さいとの決定に応答して、前記参照ブロックに対応する前記メモリ位置から、前記現在のブロックをデコーディングするための1つ以上のサンプルを読み出す
よう更に構成される、
請求項8乃至12のうちいずれか一項に記載のビデオデコーディング装置。
【請求項14】
前記処理回路は、
前記距離が前記しきい値
以上であるとの決定に応答して、
(i)前記異なったCTU内の第2エリアと同一位置にある前記現在のブロックの前記CTU内の第1エリアを決定し、前記第1エリアは、前記参照ブロックの前記異なったCTU内の前記第2エリアの位置座標と同じである前記現在のブロックの前記CTU内の位置座標を有し、
(ii)前記第1エリアのデコーディング状態に基づいて、前記参照ブロックのための前記参照サンプルメモリのメモリ位置が利用可能であるかどうかを決定し、
(iii)前記参照ブロックのための前記メモリ位置が利用可能であるとの決定に応答して、前記参照ブロックに対応する前記メモリ位置から、前記現在のブロックをデコーディングするための1つ以上のサンプルを読み出す
よう更に構成される、
請求項13に記載のビデオデコーディング装置。
【請求項15】
ビデオデコーダのプロセッサによって実行される場合に、該プロセッサに、
コーディングされたビデオビットストリームを受け取るステップと、
現在のブロックのための参照ブロックが前記現在のブロックのコーディングツリーユニット(CTU)とは異なったCTUに位置しているかどうかを決定するステップであり、前記参照ブロック及び前記現在のブロックは、前記コーディングされたビデオビットストリーム
に含まれている同じピクチャに位置している、ステップと、
前記参照ブロックが前記異なったCTUに位置しているとの決定に応答して、
前記現在のブロックのCTUと参照サンプルメモリとが同じサイズを有しているかどうかを決定し、
前記現在のブロックと前記参照サンプルメモリとが同じサイズを有しているとの決定に応答して、
(i)前記異なったCTU内の第2エリアと同一位置にある前記現在のブロックの前記CTU内の第1エリアを決定するステップであり、前記第1エリ
アは、
前記参照ブロックの前記異なったCTU内の前記第2エリアの位置座標と同じである前記現在のブロックの前記CTU
内の位置座標を有する、ステップと、
(ii)前記第1エリアのデコーディング状態に基づいて、前記参照ブロックのための参照サンプルメモリのメモリ位置が利用可能であるかどうかを決定するステップと、
(iii)前記参照ブロックのための前記メモリ位置が利用可能であるとの決定に応答して、前記参照ブロックに対応する前記メモリ位置から、前記現在のブロックをデコーディングするための1つ以上のサンプルを読み出すステップと
を有する方法を実行させるコンピュータプログラム。
【請求項16】
前記第1エリアは、前記現在のブロックであり、
前記第2エリアは、前記参照ブロックである、
請求項15に記載のコンピュータプログラム。
【請求項17】
前記第1エリア及び前記第2エリアの夫々は、2
M×2
Nであるサイズを有する、
請求項15に記載のコンピュータプログラム。
【請求項18】
M=6かつN=6である、
請求項17に記載のコンピュータプログラム。
【請求項19】
少なくとも部分的にデコーディングされている少なくとも1つのブロックを
前記第1エリアが含まないことを前記第1エリアの前記デコーディング状態が示すとの決定に応答して、前記参照ブロックに対応する前記メモリ位置は、利用可能であると決定される、
請求項15乃至18のうちいずれか一項に記載のコンピュータプログラム。
【請求項20】
前記方法は、
前記参照サンプルメモリと前記現在のブロックの前記CTUとはサイズが同じでないとの決定に応答して、前記現在のブロックの前記CTUのサイズが前記参照サンプルメモリのサイズよりも小さいかどうかを決定するステップと、
前記現在のブロックの前記CTUのサイズが前記参照サンプルメモリのサイズよりも小さいとの決定に応答して、前記参照ブロックの前記異なったCTUと前記現在のブロックの前記CTUとの間の距離が、((参照サンプルメモリサイズ/CTUサイズ)-1)×(CTU幅)と定義されたしきい値
よりも小さいかどうかを決定するステップと、
前記距離が前記しきい値
よりも小さいとの決定に応答して、前記参照ブロックに対応する前記メモリ位置から、前記現在のブロックをデコーディングするための1つ以上のサンプルを読み出すステップと
を更に有する、
請求項15乃至19のうちいずれか一項に記載のコンピュータプログラム。
【請求項21】
前記方法は、
前記距離が前記しきい値
以上であるとの決定に応答して、
(i)前記異なったCTU内の第2エリアと同一位置にある前記現在のブロックの前記CTU内の第1エリアを決定するステップであり、前記第1エリアは、前記参照ブロックの前記異なったCTU内の前記第2エリアの位置座標と同じである前記現在のブロックの前記CTU内の位置座標を有する、ステップと、
(ii)前記第1エリアのデコーディング状態に基づいて、前記参照ブロックのための前記参照サンプルメモリのメモリ位置が利用可能であるかどうかを決定するステップと、
(iii)前記参照ブロックのための前記メモリ位置が利用可能であるとの決定に応答して、前記参照ブロックに対応する前記メモリ位置から、前記現在のブロックをデコーディングするための1つ以上のサンプルを読み出すステップと
を更に有する。
請求項20記載のコンピュータプログラム。
【請求項22】
請求項15乃至21のうちいずれか一項に記載のコンピュータプログラムを記憶している非一時的なコンピュータ可読媒体。
【請求項23】
エンコーダが実行するビデオエンコーディングの方法であって、
ビデオビットストリームをコーディングするステップと、
コーディングされた
前記ビデオビットストリームを受け取るステップと、
現在のブロックのための参照ブロックが前記現在のブロックのコーディングツリーユニット(CTU)とは異なったCTUに位置しているかどうかを決定するステップであり、前記参照ブロック及び前記現在のブロックは、前記コーディングされたビデオビットストリーム
に含まれている同じピクチャに位置している、ステップと、
前記参照ブロックが前記異なったCTUに位置しているとの決定に応答して、
前記現在のブロックのCTUと参照サンプルメモリとが同じサイズを有しているかどうかを決定するステップと、
前記現在のブロックと前記参照サンプルメモリとが同じサイズを有しているとの決定に応答して、
(i)前記異なったCTU内の第2エリアと同一位置にある前記現在のブロックの前記CTU内の第1エリアを決定するステップであり、前記第1エリ
アは、
前記参照ブロックの前記異なったCTU内の前記第2エリアの位置座標と同じである前記現在のブロックの前記CTU
内の位置座標を有する、ステップと、
(ii)前記第1エリアのデコーディング状態に基づいて、前記参照ブロックのための参照サンプルメモリのメモリ位置が利用可能であるかどうかを決定するステップと、
(iii)前記参照ブロックのための前記メモリ位置が利用可能であるとの決定に応答して、前記参照ブロックに対応する前記メモリ位置から、前記現在のブロックをデコーディングするための1つ以上のサンプルを読み出すステップと
を有する方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ビデオコーディングに概して関係がある実施形態について記載する。
【背景技術】
【0002】
本明細書中で与えられている背景の説明は、本開示の背景を一般的に提示することを目的とするものである。現在指名されている発明者の研究は、その研究がこの背景の項で説明されている範囲で、及び出願時に先行技術としてさもなければ適格でない可能性がある説明の側面は、本開示に対する先行技術として明示的にも暗黙的にも認められない。
【0003】
ビデオコーディング及びデコーディングは、動き補償を伴ったインターピクチャ予測を用いて実行可能である。圧縮されていないデジタルビデオは、ピクチャの連続を含むことができ、各ピクチャは、例えば、1920×1080のルミナンスサンプル及び関連するクロミナンスサンプルの空間寸法を有する。ピクチャの連続は、例えば、毎秒60ピクチャ、つまり60Hzの固定又は可変のピクチャレート(俗にフレームレートとして知られている。)を有することができる。圧縮されていないビデオは、有意なビットレート要件を有している。例えば、サンプル当たり8ビットでの1080p60 4:2:0ビデオ(60Hzのフレームレートでの1920×1080のルミナンスサンプル解像度)は、1.5Gビット/sに近いバンド幅を必要とする。そのようなビデオの1時間は、600Gバイト超の記憶空間を必要とする。
【0004】
ビデオコーディング及びデコーディングの1つの目的は、圧縮による入力ビデオ信号の冗長性の低減であることができる。圧縮は、いくつかの場合に2桁以上、上記のバンド幅又は記憶空間要件を減らすことを助けることができる。可逆及び不可逆圧縮の両方並びにそれらの組み合わせが用いられ得る。可逆圧縮は、原信号の厳密なコピーが圧縮された原信号から再構成可能である技術を指す。不可逆圧縮を使用する場合に、再構成された信号は、原信号と同じでない場合があるが、原信号と再構成された信号との間のひずみは、再構成された信号を、意図された用途にとって有用なものとするほど十分に小さい。ビデオの場合には、不可逆圧縮が広く用いられている。許容されるひずみの量は用途に依存し、例えば、特定の消費者ストリーミング用途のユーザは、テレビジョン配信用途のユーザよりも高いひずみを許容し得る。達成可能な圧縮比は、より高い許容可能な/受け入れ可能なひずみがより高い圧縮比をもたらし得ることを反映することができる。
【0005】
動き補償は不可逆圧縮技術であることができ、前に再構成されたピクチャ又はその部分(参照ピクチャ)からのサンプルデータのブロックが、動きベクトル(以降MV)によって示された方向において空間的にシフトされた後に、新たに再構成されるピクチャ又はピクチャ部分の予測のために使用される技術に関係があり得る。いくつかの場合に、参照ピクチャは、現在再構成中のピクチャと同じであることができる。MVは2つの次元X及びY、又は3つの次元を有することができ、3番目の次元は、使用中の参照ピクチャの指示である(後者は、間接的に、時間次元であることができる。)。
【0006】
いくつかのビデオ圧縮技術では、サンプルデータの特定のエリアに適用可能なMVは、他のMVから、例えば、再構成中のエリアに空間的に隣接するサンプルデータの他のエリアに関係があり、デコーディング順序においてそのMVに先行するものから、予測され得る。そうすることで、MVをコーディングするために必要なデータの量を大幅に減らすことができ、それによって、冗長性を取り除きかつ圧縮を高める。例えば、カメラから得られた入力ビデオ信号(ナチュラルビデオとして知られる。)をコーディングする場合に、単一のMVが適用可能であるエリアよりも大きいエリアが同様の方向に移動するという統計的可能性があり、従って、いくつかの場合には、隣接するエリアのMVから導出された同様の動きベクトルを用いて予測可能であるということで、MV予測は有効に働くことができる。その結果、所与のエリアについて求められるMVは、周囲のMVから予測されたMVと類似又は同じであり、エントロピコーディング後に、MVを直接コーディングする場合に使用されることになるビット数よりも少ないビットで表され得る。いくつかの場合に、MV予測は、原信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の例であることができる。他の場合には、MV予測自体は、例えば、いくつかの周囲のMVから予測子を計算するときの丸め誤差のために、不可逆であり得る。
【0007】
様々なMV予測メカニズムがH.265/HEVC(ITU-T Rec. H265,“High Efficiency Video Coding”,2016年12月)で説明されている。H.265が提案する多くのMV予測メカニズムの中から、本明細書では、以降「空間マージ」と呼ばれる技術が説明される。
【0008】
現在のブロックがイントラブロックコピーを用いてデコーディングされる場合に、メモリは、現在のブロックをデコーディングするためのサンプルを読み出すよう参照される。メモリのサイズは制約されるので、メモリの位置は、最近デコーディングされたブロックからのサンプルによりメモリがアップロードされる場合に、上書きされる。新しい方法に従って、イントラブロックコピーを実行するためにメモリを有効に利用することが必要とされる。
【発明の概要】
【0009】
本開示の例となる実施形態に従って、デコーダのためのビデオデコーディングの方法は、コーディングされたビデオビットストリームを受け取るステップを含む。方法は、現在のブロックのための参照ブロックが現在のブロックのコーディングツリーユニット(CTU)とは異なったCTUに位置しているかどうかを決定するステップを更に含み、参照ブロック及び現在のブロックは、コーディングされたビデオビットストリームに含まれる同じピクチャに位置している。方法は、参照ブロックが異なったCTUに位置しているとの決定に応答して、現在のブロックのCTU及び参照サンプルメモリが同じサイズを有しているかどうかを決定するステップを更に含む。方法は、現在のブロックのCTU及び参照サンプルメモリが同じサイズを有しているとの決定に応答して、(i)異なったCTU内の第2エリアと同一位置にある現在のブロックのCTU内の第1エリアを決定するステップであり、第1エリアは、参照ブロックの異なったCTU内の第2エリアの位置座標と同じである現在のブロックのCTU内の位置座標を有する、ステップと、(ii)第1エリアのデコーディング状態に基づいて、参照ブロックのための参照サンプルメモリのメモリ位置が利用可能であるかどうかを決定するステップと、(iii)参照ブロックのためのメモリ位置が利用可能であるとの決定に応答して、参照ブロックに対応するメモリ位置から、現在のブロックをデコーディングするための1つ以上のサンプルを読み出すステップとを更に含む。
【0010】
本開示の例となる実施形態に従って、ビデオデコーディングのためのビデオデコーダでは、処理回路を含む。処理回路は、コーディングされたビデオビットストリームを受け取るよう構成される。処理回路は、現在のブロックのための参照ブロックが現在のブロックのコーディングツリーユニット(CTU)とは異なったCTUに位置しているかどうかを決定するよう更に構成され、参照ブロック及び現在のブロックは、コーディングされたビデオビットストリームに含まれる同じピクチャに位置している。処理回路は、参照ブロックが異なったCTUに位置しているとの決定に応答して、現在のブロックのCTU及び参照サンプルメモリが同じサイズを有しているかどうかを決定するよう更に構成される。処理回路は、現在のブロックのCTU及び参照サンプルメモリが同じサイズを有しているとの決定に応答して、(i)異なったCTU内の第2エリアと同一位置にある現在のブロックのCTU内の第1エリアを決定し、第1エリアは、参照ブロックの異なったCTU内の第2エリアの位置座標と同じである現在のブロックのCTU内の位置座標を有し、(ii)第1エリアのデコーディング状態に基づいて、参照ブロックのための参照サンプルメモリのメモリ位置が利用可能であるかどうかを決定し、(iii)参照ブロックのためのメモリ位置が利用可能であるとの決定に応答して、参照ブロックに対応するメモリ位置から、現在のブロックをデコーディングするための1つ以上のサンプルを読み出すよう更に構成される。
【0011】
本開示の例となる実施形態に従って、ビデオデコーダのプロセッサによって実行される場合に、プロセッサに方法を実行させる命令を記憶している非一時的なコンピュータ可読媒体が提供される。方法は、コーディングされたビデオビットストリームを受け取るステップを含む。方法は、現在のブロックのための参照ブロックが現在のブロックのコーディングツリーユニット(CTU)とは異なったCTUに位置しているかどうかを決定するステップを更に含み、参照ブロック及び現在のブロックは、コーディングされたビデオビットストリームに含まれる同じピクチャに位置している。方法は、参照ブロックが異なったCTUに位置しているとの決定に応答して、現在のブロックのCTU及び参照サンプルメモリが同じサイズを有しているかどうかを決定するステップを更に含む。方法は、現在のブロックのCTU及び参照サンプルメモリが同じサイズを有しているとの決定に応答して、(i)異なったCTU内の第2エリアと同一位置にある現在のブロックのCTU内の第1エリアを決定するステップであり、第1エリアは、参照ブロックの異なったCTU内の第2エリアの位置座標と同じである現在のブロックのCTU内の位置座標を有する、ステップと、(ii)第1エリアのデコーディング状態に基づいて、参照ブロックのための参照サンプルメモリのメモリ位置が利用可能であるかどうかを決定するステップと、(iii)参照ブロックのためのメモリ位置が利用可能であるとの決定に応答して、参照ブロックに対応するメモリ位置から、現在のブロックをデコーディングするための1つ以上のサンプルを読み出すステップとを更に含む、
【0012】
開示されている対象の更なる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面から明らかになる。
【図面の簡単な説明】
【0013】
【
図1】実施形態に従う通信システム(100)の略ブロック図の概略図である。
【
図2】実施形態に従う通信システム(200)の略ブロック図の概略図である。
【
図3】実施形態に従うデコーダの略ブロック図の概略図である。
【
図4】実施形態に従うエンコーダの略ブロック図の概略図である。
【
図5】他の実施形態に従うエンコーダのブロック図を示す。
【
図6】他の実施形態に従うデコーダのブロック図を示す。
【
図7】一例における現在のブロック及びその周囲の空間マージ候補の概略図である。
【
図8】イントラピクチャブロック補償の概略図である。
【
図9】A~Dは、1コーディングツリーユニット(CTU)サイズ探索範囲によるイントラピクチャブロック補償の概略図である。
【
図10】A~Dは、参照サンプルメモリの概略図である。
【
図11】第1CTU内の参照ブロック及び第2CTU内の対応する同一位置ブロックの概略図である。
【
図12】第1CTUと第2CTUとの間に第3CTUがある場合の第1CTU内の参照ブロック及び第2CTU内の対応する同一位置ブロックの概略図である。
【
図13】エンコーダによって実行されるプロセスの実施形態を表す。
【
図14】エンコーダによって実行されるプロセスの実施形態を表す。
【
図15】実施形態に従うコンピュータシステムの概略図である。
【発明を実施するための形態】
【0014】
図1は、本開示の実施形態に従う通信システム(100)の略ブロック図を表す。通信システム(100)は、例えば、ネットワーク(150)を介して互いと通信することができる複数の端末デバイスを含む。例えば、通信システム(100)は、ネットワーク(150)を介して相互接続されている端末デバイス(110)及び(120)の第1対を含む。
図1の例では、端末デバイス(110)及び(120)の第1対は、データの一方向伝送を実行する。例えば、端末デバイス(110)は、ネットワーク(150)を介した他の端末デバイス(120)への伝送のためにビデオデータ(例えば、端末デバイス(110)によって捕捉されるビデオデータのストリーム)をコーディングしてよい。エンコーディングされたビデオデータは、1つ以上のコーディングされたビデオビットストリームの形で伝送可能である。端末デバイス(120)は、コーディングされたビデオデータをネットワーク(150)から受信し、コーディングされたビデオデータをデコーディングしてビデオピクチャを回復し、回復されたビデオデータに従ってビデオピクチャを表示してよい。一方向データ伝送は、メディアサービングアプリケーションなどにおいて一般的であり得る。
【0015】
他の例では、通信システム(100)は、例えば、ビデオ会議中に現れ得るコーディングされたビデオデータの双方向伝送を実行する端末デバイス(130)及び(140)の第2対を含む。データの双方向伝送のために、端末デバイス(130)及び(140)の各端末デバイスは、ネットワーク(150)を介した端末デバイス(130)及び(140)のうちの他方の端末デバイスへの伝送のためにビデオデータ(例えば、その端末デバイスによって捕捉されるビデオピクチャのストリーム)をコーディングしてよい。端末デバイス(130)及び(140)の各端末デバイスはまた、端末デバイス(130)及び(140)のうちの他方の端末デバイスによって送信されたコーディングされたビデオデータを受信してよく、コーディングされたビデオデータをデコーディングしてビデオピクチャを回復してよく、回復されたビデオデータに従って、アクセス可能な表示デバイスでビデオピクチャを表示してよい。
【0016】
図1の例では、端末デバイス(110)、(120)、(130)及び(140)は、サーバ、パーソナルコンピュータ、及びスマートフォンとして表され得るが、本開示の原理はそのように限定され得ない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレイヤー、及び/又は専用のビデオ会議装置により用途を見出す。ネットワーク(150)は、例えば、ワイヤライン(有線)及び/又はワイヤレス通信ネットワークを含む、端末デバイス(110)、(120)、(130)及び(140)の間でコーディングされたビデオデータを伝達する任意数のネットワークを表す。通信ネットワーク(150)は、回路交換及び/又はパケット交換チャネルにおいてデータを交換し得る。代表的なネットワークには、電気通信網、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットがある。本議論のために、ネットワーク(150)のアーキテクチャ及びトポロジは、以降で説明されない限りは本開示の動作に無関係であり得る。
【0017】
図2は、開示されている対象の応用例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を表す。開示されている対象は、例えば、ビデオ会議と、デジタルTVと、CD、DVD、メモリスティックなどを含むデジタル媒体上での圧縮されたビデオの記憶と、などを含む他のビデオ対応用途に同様に適用可能であることができる。
【0018】
ストリーミングシステムは、例えば、圧縮されていないビデオピクチャのストリーム(202)を生成するビデオソース(201)、例えば、デジタルカメラ、を含むことができる捕捉サブシステム(213)を含んでよい。例において、ビデオピクチャのストリーム(202)は、デジタルカメラによって撮影されるサンプルを含む。ビデオピクチャのストリーム(202)は、エンコーディングされたビデオデータ(204)(又はコーディングされたビデオビットストリーム)と比較して高いデータボリュームを強調するために太線で表されており、ビデオソース(201)へ結合されたビデオエンコーダ(203)を含む電子デバイス(220)によって処理され得る。ビデオエンコーダ(203)は、以下で更に詳細に記載されるように、開示されている対象の態様を可能に又は実装するためのハードウェア、ソフトウェア、又はそれらの組み合わせを含むことができる。エンコーディングされたビデオデータ(204)(又はエンコーディングされたビデオビットストリーム(204))は、ビデオピクチャのストリーム(202)と比較してより低いデータボリュームを強調するために細線で表されており、将来の使用のためにストリーミングサーバ(205)に記憶され得る。
図2のクライアントサブシステム(206)及び(208)などの1つ以上のストリーミングクライアントサブシステムは、エンコーディングされたビデオデータ(204)のコピー(207)及び(209)を読み出すためにストリーミングサーバ(205)にアクセスすることができる。クライアントサブシステム(206)は、例えば、電子デバイス(230)において、ビデオデコーダ(210)を含むことができる。ビデオデコーダ(210)は、エンコーディングされたビデオデータの入来するコピー(207)をデコーディングし、ディスプレイ(212)(例えば、表示スクリーン)又は他のレンダリングデバイス(図示せず。)でレンダリングされ得るビデオピクチャの送出ストリーム(211)を生成する。いくつかのストリーミングシステムにおいて、エンコーディングされたビデオデータ(204)、(207)、及び(209)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮規格に従ってエンコーディングされ得る。そのような規格の例には、ITU-T推奨H.265がある。例において、開発中のビデオコーディング規格は、バーサタイル・ビデオ・コーディング(Versatile Video Coding,VVC)として俗に知られている。開示されている対象は、VVCに関連して使用されてもよい。
【0019】
電子デバイス(220)及び(230)は、他のコンポーネント(図示せず。)を含むことができることが知られる。例えば、電子デバイス(220)は、ビデオデコーダ(図示せず。)を含むことができ、電子デバイス(230)は、ビデオエンコーダ(図示せず。)を同様に含むことができる。
【0020】
図3は、本開示の実施形態に従うビデオデコーダ(310)のブロック図を示す。ビデオデコーダ(310)は、電子デバイス(330)に含まれ得る。電子デバイス(330)は、受信器(331)(例えば、受信回路)を含むことができる。ビデオデコーダ(310)は、
図2のビデオデコーダ(210)の代わりに使用され得る。
【0021】
受信器(331)は、ビデオデコーダ(310)によってデコーディングされるべき1つ以上のコーディングされたビデオシーケンスを、同じ又は他の実施形態では、一度に1つのコーディングされたビデオシーケンスを受信してよい。ここで、夫々のコーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスから独立している。コーディングされたビデオシーケンスは、チャネル(301)から受信されてよく、チャネルは、エンコーディングされたビデオデータを記憶している記憶デバイスへのハードウェア/ソフトウェアリンクであってよい。受信器(331)は、エンコーディングされたビデオデータを他のデータ、例えば、コーディングされたオーディオデータ及び/又は補助的なデータストリームとともに受信してよく、それらは、それらの各々の使用エンティティ(図示せず。)へ転送されてよい。受信器(331)は、コーディングされたビデオシーケンスを他のデータから分離してよい。ネットワークジッタに対抗するために、バッファメモリ(315)が受信器(331)とエントロピデコーダ/パーサ(320)(以降「パーサ(320)」)との間に結合されてよい。特定の用途では、バッファメモリ(315)は、ビデオデコーダ(310)の部分である。他では、それは、ビデオデコーダ(310)の外にあることができる(図示せず。)。更に他では、例えば、ネットワークジッタに対抗するための、ビデオデコーダ(310)の外にあるバッファメモリ(図示せず。)と、加えて、例えば、再生タイミングを操作するための、ビデオデコーダ(310)内のもう1つのバッファメモリ(315)とが存在してもよい。受信器(331)が十分なバンド幅及び可制御性の記憶/転送デバイスから、又はアイソシンクロナス(isosynchronous)ネットワークからデータを受信しているときに、バッファメモリ(315)は必要とされなくてもよく、あるいは、小さくてよい。インターネットなどのベストエフォートのパケットネットワークでの使用のために、バッファメモリ(315)は必要とされる場合があり、比較的に大きくかつ有利なことには適応サイズであることができ、ビデオデコーダ(310)の外のオペレーティングシステム又は同様の要素(図示せず。)に少なくとも部分的に実装され得る。
【0022】
ビデオデコーダ(310)は、コーディングされたビデオシーケンスからシンボル(321)を再構成するためのパーサ(320)を含んでよい。それらのシンボルのカテゴリは、ビデオデコーダ(310)の動作を管理するために使用される情報と、潜在的に、電子デバイス(330)の必須部分でないが、
図3に示されたように、電子デバイス(330)へ結合され得るレンダーデバイス(312)(例えば、表示スクリーン)などのレンダリングデバイスを制御するための情報とを含む。レンダリングデバイスのための制御情報は、SEI(Supplementary Enhancement Information)メッセージ又はVUI(Video Usability Information)パラメータセットフラグメント(図示せず。)の形をとってよい。パーサ(320)は、受信されるコーディングされたビデオシーケンスをパース/エントロピデコーディングしてよい。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術又は規格に従うことができ、可変長コーディング、ハフマンコーディング、文脈依存による又はよらない算術コーディング、などを含む様々な原理に従うことができる。パーサ(320)は、コーディングされたビデオシーケンスから、ビデオデコーダにおけるピクセルのサブグループのうちの少なくとも1つについてのサブグループパラメータの組を、そのグループに対応する少なくとも1つのパラメータに基づいて抽出し得る。サブグループは、グループ・オブ・ピクチャ(Groups of Pictures,GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(Coding Units,CU)、ブロック、変換ユニット(Transform Units,TU)、予測ユニット(Prediction Units,PU)、などを含むことができる。パーサ(320)はまた、変換係数などのコーディングされたビデオシーケンス情報から、量子化パラメータ値、動きベクトル、なども抽出し得る。
【0023】
パーサ(320)は、シンボル(321)を生成するために、バッファメモリ(315)から受信されたビデオシーケンスに対してエントロピデコーディング/パーシング動作を実行してよい。
【0024】
シンボル(321)の再構成は、コーディングされたビデオピクチャ又はその部分(例えば、インター及びイントラピクチャ、インター及びイントラブロック)のタイプ及び他の因子に応じて多種多様なユニットを有することができる。どのユニットがどのように含まれるかは、コーディングされたビデオシーケンスからパーサ(320)によってパースされたサブグループ制御情報によって制御され得る。パーサ(320)と以下の複数のユニットとの間のそのようなサブグループ制御情報のフローは、明りょうさのために表されていない。
【0025】
既に述べられた機能ブロックを超えて、ビデオデコーダ(310)は、概念的に、以下で説明される多数の機能ユニットに細分され得る。商業上の制約の下で動作する実際の実施では、これらのユニットの多くが互いに密に相互作用し、少なくとも部分的に互いに組み込まれ得る。しかし、開示されている対象を説明することを目的として、以下での機能ユニットへの概念的細分は適切である。
【0026】
第1ユニットは、スケーラ/逆変換ユニット(351)である。スケーラ/逆変換ユニット(351)は、パーサ(320)からシンボル(321)として、量子化された変換係数とともに、使用するために変換するもの、ブロックサイズ、量子化係数、量子化スケーリングマトリクスなどを含む制御情報を受信する。スケーラ/逆変換ユニット(351)は、アグリゲータ(355)へ入力することができるサンプル値を含むブロックを出力することができる。
【0027】
いくつかの場合に、スケーラ/逆変換器(351)の出力サンプルは、イントラコーディングされたブロック、すなわち、前に再構成されたピクチャからの予測情報を使用しておらず、現在のピクチャの前に再構成された部分からの予測情報を使用することができるブロック、に関係することができる。そのような予測情報は、イントラピクチャ予測ユニット(352)によって供給され得る。いくつかの場合に、イントラピクチャ予測ユニット(352)は、現在ピクチャバッファ(358)からフェッチされた周囲の既に再構成された情報を用いて、再構成中のブロックと同じサイズ及び形状のブロックを生成する。現在ピクチャバッファ(358)は、例えば、部分的に再構成された現在のピクチャ及び/又は完全に再構成された現在のピクチャをバッファリングする。アグリゲータ(355)は、いくつかの場合に、サンプルごとに、イントラ予測ユニット(352)が生成した予測情報を、スケーラ/逆変換ユニット(351)によって供給される出力サンプル情報に加える。
【0028】
他の場合では、スケーラ/逆変換ユニット(351)の出力サンプルは、インターコーディングされた、そして潜在的に動き補償されたブロックに関係することができる。そのような場合に、動き補償予測ユニット(353)は、予測のために使用されるサンプルをフェッチするよう参照ピクチャメモリ(357)にアクセスすることができる。ブロックに関係するシンボル(321)に従って、フェッチされたサンプルを動き補償した後に、それらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(355)によって、スケーラ/逆変換ユニット(351)の出力(この場合に、残差サンプル又は残差信号と呼ばれる。)に加えられ得る。動き補償予測ユニット(353)が予測サンプルをフェッチする参照ピクチャメモリ(357)内のアドレスは、例えば、X、Y及び参照ピクチャコンポーネントを有することができるシンボル(321)の形で動き補償予測ユニット(353)が利用することができる動きベクトルによって制御され得る。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(357)からフェッチされるサンプル値の補間や、動きベクトル予測メカニズムなどを含むことができる。
【0029】
アグリゲータ(355)の出力サンプルは、ループフィルタユニット(356)において様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術は、インループフィルタ技術を含むことができる。この技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる。)に含まれており、パーサ(320)からのシンボル(321)としてループフィルタユニット(356)に利用可能にされたパラメータによって制御されるが、コーディングされたピクチャ又はコーディングされたビデオシーケンスの(デコーディング順序において)前の部分のデコーディング中に得られたメタ情報にも応答することができ、更には、前に構成されたループフィルタ処理されたサンプル値に応答することができる。
【0030】
ループフィルタユニット(356)の出力は、レンダーデバイス(312)へ出力され、更には、将来のインターピクチャ予測における使用のために参照ピクチャメモリ(357)に記憶され得るサンプルストリームであることができる。
【0031】
特定のコーディングされたピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用され得る。例えば、現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサ(320)によって)参照ピクチャとして識別されると、現在ピクチャバッファ(358)は、参照ピクチャメモリ(357)の部分になることができ、未使用の現在ピクチャバッファが、後続のコーディングされたピクチャの再構成を開始する前に再割当てされ得る。
【0032】
ビデオデコーダ(310)は、ITU-T推奨H.265などの規格における所定のビデオ圧縮技術に従ってデコーディング動作を実行してよい。コーディングされたビデオシーケンスは、そのコーディングされたビデオシーケンスが、ビデオ圧縮技術又は規格のシンタックス及びビデオ圧縮技術又は規格において文書化されているプロファイルの両方に従うという意味で、使用中のビデオ圧縮技術又は規格によって規定されたシンタックスに従い得る。具体的には、プロファイルは、ビデオ圧縮技術又は規格で利用可能な全てのツールからそのプロファイルの下での使用のために利用可能な最適なツールとして特定のツールを選択することができる。また、コーディングされたビデオシーケンスの複雑さは、ビデオ圧縮技術又は規格のレベルによって定義された境界内にあることが、順守のために必要である。いくつかの場合に、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、メガサンプル/秒で測定される。)、最大参照ピクチャサイズ、などを制限する。レベルによって設定される制限は、いくつかの場合に、ハイポセティカル・リファレンス・デコーダ(Hypothetical Reference Decoder,HRD)仕様及びコーディングされたビデオシーケンスにおいて通知されるHRDバッファ管理のためのメタデータを通じて更に制限され得る。
【0033】
実施形態において、受信器(331)は、エンコーディングされたビデオとともに、追加の(冗長な)データを受信してもよい。追加のデータは、コーディングされたビデオシーケンスの部分としても含まれてもよい。追加のデータは、ビデオデコーダ(310)によって、データを適切にデコーディングするために及び/又は原ビデオデータをより正確に再構成するために使用されてよい。追加のデータは、例えば、時間、空間、又は信号対雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正符号、などの形をとることができる。
【0034】
図4は、本開示の実施形態に従うビデオエンコーダ(403)のブロック図を示す。ビデオエンコーダ(403)は、電子デバイス(420)に含まれている。電子デバイス(420)は、送信器(440)(例えば、送信回路)を含む。ビデオエンコーダ(403)は、
図2の例におけるビデオエンコーダ(203)の代わりに使用され得る。
【0035】
ビデオエンコーダ(403)は、ビデオエンコーダ(403)によってコーディングされるべきビデオ画像を捕捉し得るビデオソース(401)(
図4の例では電子デバイス(420)の部分ではない。)からビデオサンプルを受信してよい。他の例では、ビデオソース(401)は、電子デバイス(420)の部分である。
【0036】
ビデオソース(401)は、任意の適切なビット深さ(例えば、8ビット、10ビット、12ビットなど)、任意の色空間(例えば、BT.601 YCrCB、RGBなど)、及び任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)であることができるデジタルビデオサンプルストリームの形で、ビデオエンコーダ(403)によってエンコーディングされるべきソースビデオシーケンスを供給してよい。メディアサービングシステムでは、ビデオソース(401)は、前に準備されたビデオを記憶している記憶デバイスであってよい。ビデオ会議システムでは、ビデオソース(401)は、ローカル画像情報をビデオシーケンスとして捕捉するカメラであってよい。ビデオデータは、順に見られる場合に動きを授ける複数の個別ピクチャとして供給されてもよい。ピクチャ自体は、ピクセルの空間アレイとして編成されてよく、各ピクセルは、使用中のサンプリング構造、色空間、などに依存する1つ以上のサンプルを有することができる。当業者であれば、ピクセルとサンプルとの間の関係を容易に理解することができる。本明細書は、以下、サンプルに焦点を当てる。
【0037】
実施形態に従って、ビデオエンコーダ(403)は、実時間において又は用途によって必要とされる任意の他の時間制約の下で、ソースビデオシーケンスのピクチャを、コーディングされたビデオシーケンス(443)へとコーディング及び圧縮してよい。適切なコーディング速度を強いることは、コントローラ(450)の一機能である。いくつかの実施形態において、コントローラ(450)は、以下で記載されるような他の機能ユニットを制御し、それらの他の機能ユニットへ機能的に結合される。結合は明りょうさのために表されていない。コントローラ(450)によってセットされるパラメータには、レート制御に関連したパラメータ(ピクチャスキップ、量子化器、レートひずみ最適化技術のラムダ値、など)、ピクチャサイズ、グループ・オブ・ピクチャ(GOP)レイアウト、最大動きベクトル探索範囲、などが含まれ得る。コントローラ(450)は、特定のシステム設計のために最適化されたビデオエンコーダ(403)に関係する他の適切な機能を有するよう構成され得る。
【0038】
いくつかの実施形態において、ビデオエンコーダ(403)は、コーディングループで動作するよう構成される。過度に単純化された記載として、例において、コーディングループは、ソースコーダ(430)(例えば、コーディングされるべき入力ピクチャと、参照ピクチャとに基づいて、シンボルストリームなどのシンボルを生成することに関与する。)と、ビデオエンコーダ(403)に埋め込まれた(ローカル)デコーダ(433)とを含むことができる。デコーダ(433)は、(遠隔の)デコーダも生成することになる(シンボルとコーディングされたビデオストリームとの間の如何なる圧縮も、開示されている対象で考えられているビデオ圧縮技術において可逆である)のと同様の方法でサンプルデータを生成するようにシンボルを再構成する。その再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(434)へ入力される。シンボルストリームのデコーディングは、デコーダの場所(ローカル又は遠隔)に依存しないビットパーフェクト(bit-exact)な結果をもたらすので、参照ピクチャメモリ(434)内のコンテンツも、ローカルのエンコーダと遠隔のエンコーダとの間でビットパーフェクトである。すなわち、エンコーダの予測部分は、デコーダがデコーディング中に予測を使用するときに“見る”ことになるのとまさに同じサンプル値を参照ピクチャサンプルとして“見る”。参照ピクチャのシンクロニシティ(及び、例えば、チャネルエラーのために、シンクロニシティが維持され得ない場合に、結果として生じるドリフト)のこの基本原理は、いくつかの関連技術でも使用されている。
【0039】
“ローカル”のデコーダ(433)の動作は、
図3とともに先に詳細に既に説明されている、ビデオデコーダ(310)などの“遠隔”のデコーダと同じであることができる。一時的に
図3も参照すると、しかしながら、シンボルが利用可能であり、エントロピコーダ(445)及びパーサ(320)によるコーディングされたビデオシーケンスへのシンボルのエンコーディング/デコーディングが可逆であることができるので、バッファメモリ(315)及びパーサ(320)を含むビデオデコーダ(310)のエントロピデコーディング部分は、ローカルのデコーダ(333)において完全には実施されなくてよい。
【0040】
この時点で行われ得る観察は、デコーダに存在するパーシング/エントロピデコーディングを除く如何なるデコーダ技術も、対応するエンコーダにおいて、実質的に同じ機能形態で、必ずしも存在する必要がないことである。この理由により、開示されている対象は、デコーダの動作に焦点を当てる。エンコーダ技術の説明は、それらが、包括的に記載されるデコーダ技術の逆であるということで、省略され得る。特定の範囲においてのみ、より詳細な説明が必要とされ、以下で与えられている。
【0041】
動作中、いくつかの例において、ソースコーダ(430)は、動き補償された予測コーディングを実行してよい。これは、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の前にコーディングされたピクチャを参照して予測的に入力ピクチャをコーディングする。このようにして、コーディングエンジン(432)は、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセルブロックと入力ピクチャのピクセルブロックとの間の差をコーディングする。
【0042】
ローカルのビデオデコーダ(433)は、ソースコーダ(430)によって生成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータをデコーディングしてよい。コーディングエンジン(432)の動作は、有利なことに、不可逆プロセスであってよい。コーディングされたビデオデータがビデオデコーダ(
図4には図示せず。)でデコーディングされ得るとき、再構成されたビデオシーケンスは、通常は、いくらかのエラーを伴ったソースビデオシーケンスの複製であり得る。ローカルのビデオデコーダ(433)は、参照ピクチャに対してビデオデコーダによって実行され得るデコーディングプロセスを再現し、再構成された参照ピクチャを参照ピクチャキャッシュ(434)に格納されるようにしてよい。このように、ビデオエンコーダ(403)は、(伝送エラーなしで)遠端のビデオデコーダによって取得されることになる再構成された参照ピクチャと共通の内容を有している再構成された参照ピクチャのコピーをローカルで記憶し得る。
【0043】
予測器(435)は、コーディングエンジン(432)の予測探索を実行してよい。すなわち、新しいピクチャがコーディングされるために、予測器(435)は、その新しいピクチャのための適切な予測基準となり得る参照ピクチャ動きベクトル、ブロック形状、などの特定のメタデータ又は(候補参照ピクセルブロックとしての)サンプルデータを参照ピクチャメモリ(534)から探してよい。予測器(435)は、適切な予測基準を見つけるためにサンプルブロック・バイ・ピクセルブロックベース(sample block-by-pixel block basis)で動作してよい。いくつかの場合に、予測器(435)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(434)に記憶されている複数の参照ピクチャから引き出された予測基準を有してよい。
【0044】
コントローラ(450)は、例えば、ビデオデータをエンコーディングするために使用されるパラメータ及びサブグループパラメータの設定を含め、ビデオコーダ(430)のコーディング動作を管理してよい。
【0045】
上記の全ての機能ユニットの出力は、エントロピコーダ(445)においてエントロピコーディングを受けてよい。エントロピコーダ(445)は、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従ってシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルを、コーディングされたビデオシーケンスへと変換する。
【0046】
送信器(440)は、エントロピコーダ(445)によって生成されたコーディングされたビデオシーケンスを、通信チャネル(460)を介した伝送のために準備するようにバッファリングしてよい。通信チャネル(460)は、エンコーディングされたビデオデータを記憶することになる記憶デバイスへのハードウェア/ソフトウェアリンクであってよい。送信器(440)は、ビデオコーダ(430)からのコーディングされたビデオデータを、送信されるべき他のデータ、例えば、コーディングされたオーディオデータ及び/又は補助的なデータストリーム(ソースは図示せず。)とマージしてもよい。
【0047】
コントローラ(450)は、ビデオエンコーダ(403)の動作を管理してよい。コーディング中、コントローラ(450)は、各々のピクチャに適用され得るコーディング技術に影響を及ぼす可能性がある特定のコーディングされたピクチャタイプを夫々のコーディングされたピクチャに割り当ててよい。例えば、ピクチャはしばしば、次のピクチャタイプのうちの1つとして割り当てられてよい。
【0048】
イントラピクチャ(Intra Picture)(Iピクチャ)は、予測のソースとしてシーケンス内の如何なる他のピクチャも使用せずにコーディング及びデコーディングされ得るピクチャであってよい。いくつかのビデオコーデックは、例えば、独立したデコーダリフレッシュ(Independent Decoder Refresh,IDR)ピクチャを含む種々のタイプのイントラピクチャを許容する。当業者であれば、Iピクチャのそのような変形並びにそれらの各々の応用及び特徴に気づく。
【0049】
予測ピクチャ(Predictive Picture)(Pピクチャ)は、各ブロックのサンプル値を予測するために多くても1つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測によりコーディング及びデコーディングされ得るピクチャであってよい。
【0050】
双方向予測ピクチャ(Bi-directionally Predictive Picture)(Bピクチャ)は、各ブロックのサンプル値を予測するために多くても2つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測によりコーディング及びデコーディングされ得るピクチャであってよい。同様に、多重予測ピクチャ(multiple-predictive picture(s))は、単一のブロックの再構成のために2つよりも多い参照ピクチャ及び関連するメタデータを使用することができる。
【0051】
ソースピクチャは、一般に、複数のサンプルブロック(例えば、夫々、4×4、8×8、4×8、又は16×16のサンプルのブロック)に空間的に細分され、ブロックごとにコーディングされてよい。ブロックは、ブロックの各々のピクチャに適用されているコーディング割り当てによって決定される他の(既にコーディングされた)ブロックを参照して予測的にコーディングされてよい。例えば、Iピクチャのブロックは、非予測的にコーディングされてよく、あるいは、それらは、同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、1つの前にコーディングされた参照ピクチャを参照して空間予測により又は時間予測により、予測的にコーディングされてよい。Bピクチャのブロックは、1つ又は2つの前にコーディングされた参照ピクチャを参照して空間予測により又は時間予測により、予測的にコーディングされてよい。
【0052】
ビデオエンコーダ(403)は、ITU-T推奨H.265のような所定のビデオコーディング技術又は規格に従ってコーディング動作を実行してよい。その動作中に、ビデオエンコーダ(403)は、入力ビデオシーケンスにおける時間及び空間冗長性を利用する予測コーディング動作を含む様々な圧縮動作を実行してよい。従って、コーディングされたビデオデータは、使用されているビデオコーディング技術又は規格によって定められているシンタックスに従い得る。
【0053】
実施形態において、送信器(440)は、エンコーディングされたビデオとともに追加のデータを送信してもよい。ソースコーダ(430)は、コーディングされたビデオシーケンスの部分としてそのようなデータを含めてよい。追加のデータは、時間/空間/SNRエンハンスメントレイヤ、冗長ピクチャ及びスライスなどの他の形式の冗長データ、SEIメッセージ又はVUIパラメータセットフラグメント、などを有してよい。
【0054】
ビデオは、時間シーケンスにおいて複数のソースピクチャ(ビデオピクチャ)として捕捉されてよい。イントラピクチャ予測(しばしばイントラ予測と省略される。)は、所与のピクチャにおける空間相関を利用し、インターピクチャ予測は、ピクチャ間の(時間又は他の)相関を利用する。例において、現在のピクチャと呼ばれる、エンコーディング/デコーディング中の特定のピクチャは、ブロックに分割される。現在のピクチャ内のあるブロックが、ビデオ内の前にコーディングされた依然としてバッファリングされている参照ピクチャ内の参照ブロックと類似している場合に、現在にピクチャ内のそのブロックは、動きベクトルと呼ばれるベクトルによってコーディングされ得る。動きベクトルは、参照ピクチャ内の参照ブロックを指し示し、複数の参照ピクチャが使用されている場合には、参照ピクチャを識別する第3の次元を有することができる。
【0055】
いくつかの実施形態において、双予測技術がインターピクチャ予測において使用され得る。双予測技術に従って、2つの参照ピクチャ、例えば、ビデオ内で現在のピクチャに対してデコーディング順序において両方とも先行する(しかし、表示順序では、夫々、過去及び将来にあってよい。)第1参照ピクチャ及び第2参照ピクチャが、使用される。現在のピクチャ内のあるブロックは、第1参照ピクチャ内の第1参照ブロックを指し示す第1動きベクトルと、第2参照ピクチャ内の第2参照ブロックを指し示す第2動きベクトルとによって、コーディングされ得る。そのブロックは、第1参照ブロック及び第2参照ブロックの組み合わせによって予測可能である。
【0056】
更に、マージモード技術が、コーディング効率を改善するためにインターピクチャ予測において使用され得る。
【0057】
本開示のいくつかの実施形態に従って、インターピクチャ予測及びイントラピクチャ予測などの予測は、ブロックのユニットにおいて実行される。例えば、HEVC規格に従って、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(CTU)に分割され、ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル、又は16×16ピクセルといった同じサイズを有する。一般に、CTUは、1つのルーマCTB及び2つのクロマCTBである3つのコーディングツリーブロック(CTB)を含む。各CTUは、1つ又は複数のコーディングユニット(CU)に再帰的に四分木分割され得る。例えば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、又は32×32ピクセルの4つのCU、又は16×16ピクセルの16個のCUに分割可能である。例において、各CUは、インター予測タイプ又はイントラ予測タイプなどのCUのための予測タイプを決定するよう解析される。CUは、時間及び/又は空間予測可能性に応じて1つ以上の予測ユニット(PU)に分割される。一般に、各PUは、1つのルーマ予測ブロック(PB)及び2つのクロマPBを含む。実施形態において、コーディング(エンコーディング/デコーディング)における予測動作は、予測ブロックの単位で実行される。予測ブロックの例としてルーマ予測ブロックを使用すると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセルなどのような、ピクセルの値(例えば、ルーマ値)の行列を含む。
【0058】
図5は、本開示の他の実施形態に従うビデオエンコーダ(503)の図を示す。ビデオエンコーダ(503)は、ビデオピクチャの連続に含まれる現在のビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受け取り、コーディングされたビデオシーケンスの部分であるコーディングされたピクチャへと処理ブロックをエンコーディングするよう構成される。例において、ビデオエンコーダ(503)は、
図2の例におけるビデオエンコーダ(203)の代わりに使用される。
【0059】
HEVCの例では、ビデオエンコーダ(503)は、8×8サンプルの予測ブロックなどのような処理ブロックのサンプル値の行列を受け取る。ビデオエンコーダ(503)は、例えば、レートひずみ最適化を用いて、処理ブロックがイントラモード、インターモード、又は双予測モードにより最も良くコーディングされるかどうかを決定する。処理ブロックがイントラモードでコーディングされるべきである場合に、ビデオエンコーダ(503)は、コーディングされたピクチャへと処理ブロックをエンコーディングするようイントラ予測技術を使用してよく、処理ブロックがインターモード又は双予測モードでコーディングされるべきである場合に、ビデオエンコーダ(503)は、コーディングされたピクチャへと処理ブロックをエンコーディングするようインター予測又は双予測技術を夫々使用してよい。特定のビデオコーディング技術において、マージモードは、予測子の外にあるコーディングされた動きベクトル成分の恩恵を受けずに1つ以上の動きベクトル予測子から動きベクトルが導出されるインターピクチャ予測サブモードであることができる。特定の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在することがある。例において、ビデオエンコーダ(503)は、処理ブロックのモードを決定するモード決定モジュール(図示せず。)などの他のコンポーネントを含む。
【0060】
図5の例では、ビデオエンコーダ(503)は、
図5に示されるように結合されているインターエンコーダ(530)、イントラエンコーダ(522)、残差計算部(523)、スイッチ(526)、残差エンコーダ(524)、汎用コントローラ(521)、及びエントロピエンコーダ(525)を含む。
【0061】
インターエンコーダ(530)は、現在のブロック(例えば、処理ブロック)のサンプルを受け取り、そのブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、前のピクチャ及び後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インターエンコーディング技術に従う残差情報の記述、動きベクトル、マージモード情報)を生成し、何らかの適切な技術を用いてインター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するよう構成される。いくつかの例において、参照ピクチャは、エンコーディングされたビデオ情報に基づいてデコーディングされているデコーディングされた参照ピクチャである。
【0062】
イントラエンコーダ(522)は、現在のブロック(例えば、処理ブロック)のサンプルを受け取り、いくつかの場合には、同じピクチャ内で既にコーディングされたブロックとそのブロックを比較し、変換後の量子化された係数を、更には、いくつかの場合には、イントラ予測情報(例えば、1つ以上のイントラエンコーディング技術に従うイントラ予測方向情報)を生成するよう構成される。例において、イントラエンコーダ(522)はまた、イントラ予測情報及び同じピクチャ内の参照ブロックに基づいてイントラ予測結果(例えば、予測ブロック)を計算する。
【0063】
汎用コントローラ(521)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(503)の他のコンポーネントを制御するよう構成される。例において、汎用コントローラ(521)は、ブロックのモードを決定し、モードに基づいて制御信号をスイッチ(526)へ供給する。例えば、モードがイントラモードである場合に、汎用コントローラ(521)は、残差計算部(523)による使用のためにイントラモード結果を選択するようスイッチ(526)を制御し、そして、イントラ予測情報を選択し、イントラ予測情報をビットストリームに含めるようエントロピエンコーダ(525)を制御する。モードがインターモードである場合に、汎用コントローラ(521)は、残差計算部(523)による使用のためにインター予測結果を選択するようスイッチ(526)を制御し、そして、インター予測情報を選択し、インター予測情報をビットストリームに含めるようエントロピエンコーダ(525)を制御する。
【0064】
残差計算部(523)は、受け取られたブロックと、イントラエンコーダ(522)又はインターエンコーダ(530)から選択された予測結果との間の差(残差データ)を計算するよう構成される。残差エンコーダ(524)は、変換係数を生成するよう残差データをエンコーディングするように残差データに基づいて動作するよう構成される。例において、残差エンコーダ(524)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するよう構成される。次いで、変換係数は、量子化された変換係数を取得するよう量子化処理を受ける。様々な実施形態において、ビデオエンコーダ(503)はまた、残差デコーダ(528)も含む。残差デコーダ(528)は、逆変換を実行し、デコーディングされた残差データを生成するよう構成される。デコーディングされた残差データは、イントラエンコーダ(522)及びインターエンコーダ(530)によって適切に使用され得る。例えば、インターエンコーダ(530)は、デコーディングされた残差データ及びインター予測情報に基づいて、デコーディングされたブロックを生成することができ、イントラエンコーダ(522)は、デコーディングされた残差データ及びイントラ予測情報に基づいて、デコーディングされたブロックを生成することができる。デコーディングされたブロックは、デコーディングされたピクチャを生成するよう適切に処理され、デコーディングされたピクチャは、メモリ回路(図示せず。)にバッファリングされ、いくつかの例では参照ピクチャとして使用され得る。
【0065】
エントロピエンコーダ(525)は、エンコーディングされたブロックを含めるようにビットストリームをフォーマット化するよう構成される。エントロピエンコーダ(525)は、HEVC規格などの適切な規格に従って様々な情報を含めるよう構成される。例において、エントロピエンコーダ(525)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及び他の適切な情報をビットストリームに含めるよう構成される。開示されている対象に従って、インターモード又は双予測モードのどちらか一方のマージサブモードでブロックをコーディングする場合に、残差情報はない点に留意されたい。
【0066】
図6は、本開示の他の実施形態に従うビデオデコーダ(610)の図を示す。ビデオデコーダ(610)は、コーディングされたビデオシーケンスの部分であるコーディングされたピクチャを受け取り、コーディングされたピクチャをデコーディングして、再構成されたピクチャを生成するよう構成される。例において、ビデオデコーダ(710)は、
図2の例におけるビデオデコーダ(210)の代わりに使用される。
【0067】
図6の例では、ビデオデコーダ(610)は、
図6に示されるように結合されているエントロピデコーダ(671)、インターデコーダ(680)、残差デコーダ(673)、再構成モジュール(674)、及びイントラデコーダ(672)を含む。
【0068】
エントロピデコーダ(671)は、コーディングされたピクチャから、コーディングされたピクチャが構成されるシンタックス要素を表す特定のシンボルを再構成するよう構成され得る。そのようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、又はマージサブモード若しくは他のサブモードにおけるインターモード若しくは双予測モード)、イントラデコーダ(672)又はインターデコーダ(680)による予測のために夫々使用される特定のサンプル又はメタデータを識別することができる予測情報(例えば、イントラ予測情報又はインター予測情報)、例えば、量子化された変換係数の形をとる残差情報、などを含むことができる。例において、予測モードがインター又は双予測モードである場合に、インター予測情報がインターデコーダ(680)へ供給され、予測タイプがイントラ予測タイプである場合に、イントラ予測情報がイントラデコーダ(672)へ供給される。残差情報は、逆量子化を受けることができ、残差デコーダ(673)へ供給される。
【0069】
インターデコーダ(680)は、インター予測情報を受け取り、インター予測情報に基づいてインター予測結果を生成するよう構成される。
【0070】
イントラデコーダ(672)は、イントラ予測情報を受け取り、イントラ予測情報に基づいて予測結果を生成するよう構成される。
【0071】
残差デコーダ(673)は、逆量子化された変換係数を取り出すように逆量子化を実行し、逆量子化された変換係数を処理して、残差を周波数領域から空間領域に変換するよう構成される。残差デコーダ(673)はまた、(量子化パラメータ(QP)を含めるための)特定の制御情報を要求してもよく、その情報は、エントロピデコーダ(671)によって供給されてよい(これは低容量の制御情報のみであるため、データパスは示されない。)。
【0072】
再構成モジュール(674)は、残差デコーダ(673)によって出力された残差と、(場合によっては、インター又はイントラ予測モジュールによって出力された)予測結果とを空間領域において組み合わせて、再構成されたブロックを形成するよう構成される。再構成されたブロックは、再構成されたピクチャの部分であってよく、次いで、再構成されたピクチャは、再構成されたビデオの部分であってよい。デブロッキング動作などのような他の適切な動作が、視覚品質を改善するために実行され得ることが知られる。
【0073】
ビデオエンコーダ(203)、(403)及び(503)並びにビデオデコーダ(210)、(310)及び(610)は、如何なる適切な技術によっても実装可能であることが知られる。実施形態において、ビデオエンコーダ(203)、(403)及び(503)並びにビデオデコーダ(210)、(310)及び(610)は、1つ以上の集積回路を用いて実装可能である。他の実施形態では、ビデオエンコーダ(203)、(403)及び(503)並びにビデオデコーダ(210)、(310)及び(610)は、ソフトウェア命令を実行する1つ以上のプロセッサを用いて実装可能である。
【0074】
マージ候補は、現在のブロックの空間隣接ブロック又は時間隣接ブロックのどちらか一方からの動き情報を確認することによって形成されてよい。
図7を参照すると、現在のブロック(701)は、空間的にシフトされている同じサイズの前のブロックから予測可能であるとエンコーダ/デコーダによって動き探索プロセス中に認められたサンプルを有する。その動きベクトルを直接にコーディングする代わりに、動きベクトルは、1つ以上の参照ピクチャと関連付けられたメタデータから、例えば、(デコーディング順序において)最も最近の参照ピクチャから、D、A、C、B、及びE(夫々、702から706)と表されている5つの周囲サンプルのうちのいずれか1つと関連付けられた動きベクトルを用いて導出され得る。ブロックA、B、C、D及びEは、空間マージ候補と呼ばれ得る。これらの候補は、順次にマージ候補リストに入れられてよい。プルーニング動作は、重複した候補がリストから除かれることを確かにするために実行されてよい。
【0075】
異なるピクチャからのブロックベースの補償は、動き補償と呼ばれ得る。ブロック補償はまた、同じピクチャ内の前に再構成されたエリアから行われてもよく、これは、イントラピクチャブロック補償、イントラブロックコピー(Intra Block Copy,IBC)、又は現在ピクチャ参照(Current Picture Referencing,CPR)と呼ばれ得る。例えば、現在のブロックと参照ブロックとの間のオフセットを示す変位ベクトルは、ブロックベクトルと呼ばれる。いくつかの実施形態に従って、ブロックベクトルは、既に再構成されており参照のために利用可能である参照ブロックを指し示す。また、並列処理を考えると、タイル/スライス境界又は波面ラダー形(wavefront ladder-shaped)境界を越える参照エリアも、ブロックベクトルによって参照されることから除かれてよい。これらの制約により、ブロックベクトルは、動き補償における動きベクトルと相違し得る。動きベクトルは、如何なる値であることもできる(x又はyのどちらか一方の方向において正又は負)。
【0076】
ブロックベクトルのコーディングは、明示的又は暗黙的のどちらか一方であってよい。インターコーディングにおいてAMVP(Advanced Motion Vector Prediction)と時々呼ばれる明示的なモードでは、ブロックベクトルとその予測子との間の差が通知される。暗黙的なモードでは、ブロックベクトルは、マージモードにおける動きベクトルと同様の方法で、ブロックベクトルの予測子から回復される。ブロックベクトルの分解能は、いくつかの実施形態において、整数位置に制限される。他の実施形態では、ブロックベクトルの分解能は、分数位置を指し示すことを認められ得る。
【0077】
ブロックレベルでのイントラブロックコピーの使用は、IBCフラグと呼ばれるブロックレベルフラグを用いて通知されてよい。一実施形態において、IBCフラグは、現在のブロックがマージモードでコーディングされない場合に通知される。IBCフラグはまた、現在のデコーディングされたピクチャを参照ピクチャとして扱うことによって実行される参照インデックスアプローチによって通知されてもよい。HEVCスクリーンコンテンツコーディング(Screen Content Coding,SCC)では、そのような参照ピクチャは、リストの最後の位置に置かれる。この特別な参照ピクチャも、DPBにおいて他の時間参照ピクチャとともにマージされてよい。IBCはまた、反転されたIBC(例えば、参照ブロックは、現在のブロックを予測するために使用される前に、水平方向又は垂直方向で反転される。)、又はラインベースのIBC(例えば、M×Nコーディングブロック内の各補償ユニットはM×1又は1×Nラインである。)などの変形を含んでもよい。
【0078】
図8は、イントラピクチャブロック補償(例えば、イントラブロックコピーモード)の実施形態を表す。
図8で、現在のピクチャ800は、既にコーディング/デコーディングされているブロック領域(すなわち、灰色の正方形)の組と、まだコーディング/デコーディングされるべきであるブロック領域(すなわち、白色の正方形)の組とを含む。まだコーディング/デコーディングされるべきであるブロック領域のうちの1つのブロック802は、前にコーディング/デコーディングされた他のブロック806を指し示すブロックベクトル804と関連付けられてよい。従って、ブロック806と関連付けられた如何なる動き情報も、ブロック802のコーディング/デコーディングのために使用されてよい。
【0079】
いくつかの実施形態においてCPRモードの探索範囲は、現在のCTU内にあるよう制約される。CPRモードのための参照サンプルを記憶するための有効なメモリ要件は、1CTサイズのサンプルである。現在の64×64領域内の再構成されたサンプルを記憶するために既存の参照サンプルメモリを考えると、更に3つの64×64サイズの参照サンプルメモリが必要である。本開示の実施形態は、CPRモードの有効探索範囲を左側CTUの一部に広げ、一方で、参照ピクセルを記憶する総メモリ要件は変更されないままである(1CTUサイズ、全部で4つの64×64参照サンプルメモリ)。
【0080】
図9A~9Dは、各4つの領域を有しているCTU900及び902の例を表す。CTU902はCTU900の左にあり、CTU902の4つの領域の夫々は、前にデコーディングされている。
図10A~10Dは、1つのCTUのサイズに対応するエントリ[1]~[4]を有する参照サンプルメモリの実施形態を表す。参照サンプルメモリは、将来のIBC参照のために、前にデコーディングされたCTUの参照サンプルを記憶してよい。例えば、CTU902がデコーディングされる場合に、参照サンプルメモリのエントリ[1]~[4]は、CTU902の4つの領域からのサンプルで満たされ、エントリ[1]は左上領域に対応し、エントリ[2]は右上領域に対応し、エントリ[3]は左下領域に対応し、エントリ[4]は右下領域に対応する。参照サンプルメモリのエントリが満たされる場合に、そのエントリは、次いで、将来のIBC参照のために利用可能なサンプルを含む。
【0081】
図9Aで、CTU900の左上領域は、デコーディング中の現在の領域である。CTU900の左上領域がデコーディングされる場合に、参照サンプルメモリのエントリ[1]は、
図10Aで表されるように、この領域からのサンプルにより上書きされる(例えば、上書きされたメモリ位置は対角クロスハッチングを有する。)。
図9Bで、CTU900の右上領域が、デコーディング中の次の現在の領域である。CTU900の右上領域がデコーディングされる場合に、参照サンプルメモリのエントリ[2]は、
図10Bで表されるように、この領域からのサンプルにより上書きされる。
図9Cで、CTU900の左下領域が、デコーディング中の次の現在の領域である。CTU900の左下領域がデコーディングされる場合に、参照サンプルメモリのエントリ[3]は、
図10Cで表されるように、この領域からのサンプルにより上書きされる。
図9Dで、CTU900の右下領域が、デコーディング中の次の現在の領域である。CTU900の右下領域がデコーディングされる場合に、参照サンプルメモリのエントリ[4]は、
図10Dで表されるように、この領域からのサンプルにより上書きされる。
【0082】
本開示の実施形態は、参照サンプルメモリのサイズが制約される場合などのような特定の参照エリア制約の下でIBC性能を改善する。いくつかの実施形態において、参照サンプルメモリのサイズは、128×128ルーマサンプル(及び対応するクロマサンプル)に制約される。例において、参照サンプルの1CTUサイズは、指定されたメモリサイズと考えられる。更なる例は、CTUサイズのための64×64ルーマサンプル(及び対応するクロマサンプル)及びメモリサイズのための128×128ルーマサンプル(及び対応するクロマサンプル)、などのような異なるメモリサイズ/CTUサイズ組み合わせを含む。
【0083】
図11は、例となるCTU1100及び1102を表す。
図11に表されるように、CTU1102はCTU1100の左にあり、前にデコーディングされた4つの領域を含む。CTU1100は、デコーディング中の現在のCTUであり、左上領域が既にデコーディングされている。CTU1100の右上領域は、デコーディング中の現在の領域であり、ブロック1104は、デコーディング中の右上領域の現在のブロックである。ブロック1104は、3つの参照ブロック1106A~1106Cを有してよい。
図11に表されるように、参照ブロック1106A~1106Cの夫々は、CTU1100の左にあるCTU1102に位置している。ブロック1106A~1106Cの夫々は、CTU1100において夫々、同一位置のブロック1108A~1108Cを有する。
【0084】
いくつかの実施形態に従って、同一位置のブロックとは、同じサイズを有するブロックの対を指し、一方のブロックは、前にコーディングされたCTU内にあり、他方のブロックは、現在のCTU内にある。例えば、メモリバッファサイズが1CTUである場合に、前のCTUは、現在のCTUの左に1CTU幅のルーマサンプルだけオフセットしたCTUを意味する。その上、これら2つのブロックは、それら自身のCTUの左上角に対して同じ位置オフセット値を夫々有している。この点で、同一位置のブロックの対は、ピクチャの左上角に対して同じy座標を有するが、x座標においてCTU幅が互いに異なっているような2つのブロックである(すなわち、2つの同一位置のブロックは、各々のCTU内の同じ位置座標を有している。)。例えば、
図11で、参照ブロック1106A及びその同一位置のブロック1108Aは、CTU1102及び1100において夫々同じx、y座標を有する。同様に、参照ブロック1106B及びその同一位置のブロック1108Bは、CTU1102及び1100において夫々同じx、y座標を有する。更に、参照ブロック1106C及びその同一位置のブロック1108Cは、CTU1102及び1100において夫々同じx、y座標を有する。
【0085】
図11では、参照サンプルメモリのサイズは1CTUであると仮定される。従って、参照ブロック1106Cは、現在のCTU内の対応する同一位置のブロック1108Cがまだデコーディングされていない(これは、同一位置のブロック1108Cが白色領域に位置していることによって実証される。)ので、参照サンプルメモリ内で見つけられ得る。従って、参照ブロック1106Cに対応する参照サンプルメモリ内の位置は、依然として、左側CTUからの参照サンプルを記憶している。
【0086】
参照ブロック1106Cと対照的に、参照ブロック1106Aは、CTU1100内の対応する同一位置のブロック1108Aが再構成されている(すなわち、デコーディングされている)(これは、同一位置のブロック1108Aが灰色領域に位置していることによって実証される。)ので、使用され得ない。従って、参照ブロック1106Aのための参照サンプルメモリ内の位置は、CTU1100からの参照サンプルにより更新されており、よって、もはや利用可能でない。同様に、参照ブロック1106Bは、CTU1100内の対応する同一位置のブロック1108Bが再構成されているので、デコーディングのために使用されるべき有効な参照ブロックではなく、従って、参照ブロック1106Bのための参照サンプルメモリ内の位置は、CTU1100内のデータにより更新されている。
【0087】
いくつかの実施形態に従って、前にデコーディングされたCTU内の参照ブロックは、現在のCTU内の、その参照ブロックの対応する同一位置のブロックがまだ再構成されていない場合に、IBC参照に使用するために利用可能である。いくつかの実施形態において、参照ブロックの左上角のサンプルの、現在のCTU内の同一位置のサンプルがチェックされる。現在のCTU内の同一位置のサンプルがまだ再構成されていない場合に、その参照ブロックの残りはIBC参照のために利用可能である。いくつかの実施形態において、メモリサイズが1CTUである場合に、前のデコーディングされたCTUを参照することは、現在のCTUの直ぐ左にあるCTUを参照することを意味する。
【0088】
メモリサイズがCTUよりも大きい(例えば、2CTUサイズの参照サンプルメモリが許される)場合に、前のコーディングされたCTUは、
図12に表されるように、現在のCTUの左側CTUの左にあるCTUを参照する。例えば、
図12で、CTU1200は、デコーディング中の現在のCTUであり、CTU1202及び1204は、CTU1200の左にある、前にデコーディングされた2つのCTUである。ブロック1204は、デコーディング中の現在のブロックであり、参照ブロック1206は、現在のブロック1204のための参照ブロックである。更に、ブロック1208は、ブロック1206と同一位置にある。しかし、この例では、ブロック1206及び1208の間のx座標オフセットは、CTU幅の2倍である。
【0089】
いくつかの実施形態に従って、次の条件が当てはまる:
式1:
(yCb+(mvL0[1]>>4))>>CtbLog2SizeY=yCb>>CtbLog2SizeY
式2:
(yCb+(mvL0[1]>>4)+cbHeight-1)>>CtbLog2SizeY=yCb>>CtbLog2SizeY
式3:
(xCb+(mvL0[0]>>4))>>CtbLog2SizeY>=(xCb>>CtbLog2SizeY)-1
式4:
(xCb+(mvL0[0]>>4)+cbWidth-1)>>CtbLog2SizeY>=(xCb>>CtbLog2SizeY)-1
【0090】
式1~4は、参照ブロックを見つけるために使用されてよい。式1及び2は、参照ブロックの上下が、同じCTU行内にあるべきことを意味する。式3及び4は、参照ブロックの左右が、現在又は左側のCTU内にあるべきことを意味する。上記の式で、xCb及びyCbは、夫々、現在のブロックのx及びy座標である。変数cbHeight及びcbWidthは、夫々、現在のブロックの高さ及び幅である。変数CtbLog2SizeYは、log2領域でのCTUサイズを指す。例えば、CtbLog2SizeY=7は、CTUサイズが128×128であることを意味する。変数mvL0[0]及びmvL0[1]は、夫々、ブロックベクトルmvL0のx及びy成分を指す。
【0091】
いくつかの実施形態に従って、現在のブロックの参照ブロックが現在のブロックの現在のCTUとは異なったCTU内にあると決定される場合に、参照サンプルメモリは、参照ブロックに対応するサンプルが利用可能であるかどうかを決定するよう確認される。いくつかの実施形態において、参照ブロックが現在のCTUとは異なったCTU内にあるかどうかを決定することは、次のように決定される:
式5:
(xCb+(mvL0[0]>>4))>>CtbLog2SizeY=(xCb>>CtbLog2SizeY)-1
【0092】
現在のブロックの参照ブロックが現在のブロックのCTUとは異なったCTU内にある場合に、参照ブロックのサンプルが参照メモリにおいて利用可能であるかどうかを決定することは、いくつかの実施形態に従って、入力として:
(i)現在のブロックのx及びy座標(xCb,yCb)、及び
(ii)隣接ルーマ位置((xCb+(mvL0[0]>>4)+(1<<CtbLog2SizeY),yCb+(mvL0[1]>>4)))
を使用して決定される。
【0093】
出力が偽である場合に、参照ブロックのサンプルは、利用であると決定される。例えば、現在の位置(xCb,yCb)での現在のブロックについて、入力(i)及び(ii)は、隣接ブロック(xNb,yNb)が現在のブロックに利用可能であるかどうかを決定するために使用される。利用可能とは、ブロックで既にデコーディングされており、(例えば、同じタイル内で)イントラ予測のために使用可能であることを意味する。
【0094】
いくつかの実施形態に従って、現在のブロックの参照ブロックが現在のブロックのCTUとは異なったCTU内にある場合に、2M×2Nの領域は、参照ブロックのサンプルが参照サンプルメモリにおいて利用可能であるかどうかを決定するために確認される。M及びNは正の整数であってよい。2M×2Nの領域が参照メモリにおいて利用可能であるかどうかを決定することは、いくつかの実施形態に従って、入力として:
(i)現在のブロックのx及びy座標(xCb,yCb)、及び
(ii)隣接ルーマ位置(((xCb+(mvL0[0]>>4)+(1<<CtbLog2SizeY))>>(CtbLog2SizeY-1))<<(CtbLog2SizeY-1),((yCb+(mvL0[1]>>4))>>(CtbLog2SizeY-1))<<(CtbLog2SizeY-1))
を使用して決定される。
【0095】
出力が偽である場合に、参照ブロックのサンプルは、利用であると決定される(例えば、隣接ブロックは、イントラブロックコピーの使用のために利用可能である。)。例えば、M及びMが8に等しい場合に、現在のCTU内の64×64領域のいずれかのサンプル(現在のサンプルと呼ばれる。)が再構成されているならば、その現在のサンプルの同一位置のサンプルが位置している参照サンプルメモリ内の対応する64×64領域は、IBC参照のために利用可能でない。そのようなものとして、参照サンプルメモリは、64×64ベースで更新されてよい。
【0096】
いくつかの実施形態において、ピクチャ内のCTUは、幅又は高さの差が2倍に又は半分にされる可変なサイズを有する。CTUサイズが半分に低減される場合に、1つCTUを前に記憶した参照サンプルメモリは、この場合に4つCTUを記憶する。従って、
図12に示されるような現在のCTUの左手にある2つのCTUの代わりに、現在のCTUの左側には4つのCTUが存在する。これらのシナリオ、つまり、4CTUの参照データ又は2CTUの参照データでは、最左のCTUを除いて、現在のCTUの左にある他のCTU内の全ての他の前にコーディングされたサンプルが、上記の実施形態における条件チェックを使用せずに完全に利用可能である。最左のCTUについては、上記の実施形態における条件チェックは、参照サンプルの利用可能性について同様であるが、x座標オフセットの調整は、最左のCTUに2つのCTUがある場合には2×CTU幅であり、最左のCTUに4つのCTUがある場合には4×CTU幅である。
【0097】
図13及び
図14は、再構成中のブロックのための予測ブロックを生成するために、イントラモードでコーディングされたブロックの再構成で使用されるプロセスの実施形態を表す。様々な実施形態において、プロセスは、端末デバイス(110)、(120)、(130)及び(140)の処理回路、ビデエンコーダ(203)の機能を実行する処理回路、ビデオデコーダ(210)の機能を実行する処理回路、ビデオデコーダ(310)の機能を実行する処理回路、イントラ予測モジュール(352)の機能を実行する処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、予測器(435)の機能を実行する処理回路、イントラエンコーダ(522)の機能を実行する処理回路、イントラデコーダ(672)の機能を実行する処理回路、などのような処理回路によって実行される。いくつかの実施形態において、プロセスは、ソフトウェア命令において実装され、よって、処理回路がソフトウェア命令を実行する場合に、処理回路はプロセスを実行する。
【0098】
プロセスは、一般的に、コーディングされたビデオビットストリームが受け取られるステップS1300から始まり得る。プロセスは、現在のブロックのための参照ブロックが現在のブロックの現在のCTUとは異なったCTU内にあるかどうかが決定されるステップS1302へ進む。参照ブロックが異なったCTU内にないと決定される場合には、プロセスはS1304へ進み、IBCが、参照ブロックを用いて現在のブロックに対して実行される。
【0099】
参照ブロックが異なったCTU内にあると決定される場合には、プロセスはステップS1302からステップS1306へ進み、現在のブロックのCTU及び参照サンプルメモリが同じサイズを有しているかどうかが決定される。現在のブロックのCTU及び参照サンプルメモリがサイズが同じでない場合には、プロセスはプロセスAへ進む。プロセスAについては、以下で更に詳細に説明される。現在のブロックのCTU及び参照サンプルメモリがサイズが同じである場合には、プロセスはステップS1308へ進み、第1エリアが現在のCTUについて決定される。例として、第1エリアは、参照ブロック、すなわち、2M×2N領域と同一位置にあるブロックであってよい。ここで、M及びNは正の整数である。
【0100】
プロセスはステップS1310へ進み、参照ブロックのためのメモリ位置が利用可能であるかどうかが決定される。例えば、現在のCTUに位置する第1エリアは、異なったCTU内の第2エリアと同一位置にあってよい。異なったCTUにおいて、第2エリアは参照ブロックを含む。第1エリアが少なくとも部分的に再構成されている場合に、参照サンプルメモリ内の参照ブロックのためのメモリ位置は利用不可能であると決定される。参照ブロックのための参照サンプルメモリ内のメモリ位置が利用不可能であると決定される場合に、プロセスはステップS1312へ進み、他の参照ブロックを選択するといったデフォルトのプロセスが実行される。他の方法では、参照ブロックのための参照サンプルメモリ内のメモリ位置が利用不可能であると決定される場合に、デフォルトのプロセスは、1<<(bit_depth-1)などの、現在のブロックのための参照ブロックを形成するための予め定義された値を置くことであることができる。ここで、bit_depthは、サンプルごとに使用されるビットの深さである。参照ブロックのための参照サンプルメモリ内のメモリ位置が利用可能である場合には、プロセスはステップS1310からステップS1314へ進み、現在のブロックをデコーディングするために、参照ブロックに対応するメモリ位置から、1つ以上のサンプルが読み出される。
プロセスAは、一般的に、現在のブロックのCTUのサイズが参照サンプルメモリのサイズよりも小さいかどうかが決定されるステップS1400から始まり得る。現在のブロックのCTUのサイズが参照サンプルメモリのサイズよりも小さくない場合に、プロセスは、参照サンプルメモリ内の参照ブロックに対するメモリ位置が利用可能であるかどうかを決定するようステップS1402へ進む。例えば、ステップS1308~S1312は、上述されたように、ステップS1402で繰り返されてよい。
【0101】
ステップS1400で、現在のブロックのCTUのサイズが参照サンプルメモリのサイズよりも小さいと決定される場合に、プロセスはステップS1404へ進み、参照ブロックが位置している異なったCTUと、現在のブロックが位置している現在のCTUとの間の距離がしきい値よりも短いかどうかが決定される。例として、参照ブロックと現在のブロックとの間の距離は、これらのブロックのX座標間の差に基づいて決定されてよい。例として、しきい値は、
((参照サンプルメモリサイズ/CTUサイズ)-1)×(CTU幅)
と定義されてよい。
【0102】
参照ブロックの異なったCTUと現在のブロックのCTUとの間の距離がしきい値よりも短い場合に、プロセスは、参照ブロックに対応するメモリ位置から、現在のブロックをデコーディングするための1つ以上のサンプルを読み出すよう、ステップS1406へ進む。この点で、異なったCTUの参照ブロックと現在のブロックとの間の距離がしきい値よりも短い場合に、
図13のステップS1308~S1312で説明されたメモリチェックは実行されない。異なったCTUの参照ブロックと現在のブロックとの間の距離がしきい値以上である場合には、プロセスはステップS1404からステップS1402へ戻る。
図14に表されるプロセスは、ステップS1402又はS1404の後に終了する。
【0103】
図14のシナリオは、参照サンプルメモリのサイズが現在のCTUのサイズよりも2倍大きい
図12において表されている。参照ブロックがCTU1202に位置している場合に、CTU1202と現在のCTUとの間の距離はしきい値よりも短くなる。従って、このシナリオでは、参照ブロックに対応する参照サンプルメモリ内のメモリ位置は利用可能であるから、参照サンプルメモリのメモリチェックは不要である。参照ブロックがCTU1204に位置している場合には、CTU1204と現在のCTUとの間の距離はしきい値以上である。従って、このシナリオでは、
図13のステップS1308~S1312で説明されたメモリチェックが、メモリ位置が利用可能であるかどうか決定するよう実行される。
【0104】
上記の技術は、コンピュータ読み出し可能な命令を使用しかつ1つ以上のコンピュータ可読媒体に物理的に記憶されているコンピュータソフトウェアとして実装可能である。例えば、
図15は、開示されている対象の特定の実施形態を実装することに適したコンピュータシステム(1400)を示す。
【0105】
コンピュータソフトウェアは、1つ以上の中央演算処理装置(CPU)、グラフィクス処理ユニット(GPU)などによって直接に又は解釈、マイクロコード実行などを通じて実行され得る命令を含むコードを生成するようにアセンブリ、コンパイル、リンキングなどのメカニズムに従い得る如何なる適切な機械コード又はコンピュータ言語によってもコーディング可能である。
【0106】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、モノのインターネット(Internet of Things)のためのデバイス、などを含む様々なタイプのコンピュータ又はその構成要素で実行可能である。
【0107】
コンピュータシステム(1400)に関して
図15に示される構成要素は、本質的に例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に関して如何なる制限も示唆することを意図しない。構成要素の構成は、コンピュータシステム(1400)の例となる実施形態において説明される構成要素のうちのいずれか1つ又は組み合わせに関して何らかの依存又は要件を有するものとして解釈されるべきではない。
【0108】
コンピュータシステム(1400)は、特定のヒューマンインターフェース入力デバイスを含んでよい。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーボード、スワイプ、データグロープ動作)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず。)を通じた一人以上のユーザによる入力に反応してよい。ヒューマンインターフェースデバイスはまた、音声(例えば、発話、音楽、周囲音)、画像(例えば、スキャンされた画像、静止画カメラから取得された写真画像)、映像(例えば、二次元映像、立体視映像を含む三次元映像)など、人による意識的な入力に必ずしも直接には関係しない特定のメディアを捕捉するためにも使用され得る。
【0109】
入力ヒューマンインターフェースデバイスは、キーボード(1401)、マウス(1402)、トラックパッド(1403)、タッチスクリーン(1410)、データグローブ(図示せず。)、ジョイスティック(1405)、マイク(1406)、スキャナ(1407)、カメラ(1408)のうちの1つ以上(夫々表されているもののうちの1つのみ)を含んでよい。
【0110】
コンピュータシステム(1400)は、特定のヒューマンインターフェース出力デバイスも含んでよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音響、光、及び匂い/味を通じて一人以上のユーザの感覚を刺激し得る。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1410)、データグローブ(図示せず。)、又はジョイスティック(1405)による触覚フィードバック、しかし、入力デバイスとして機能しない触覚フィードバックデバイスも存在し得る。)、音声出力デバイス(例えば、スピーカ(1409)、ヘッドホン(図示せず。))、視覚出力デバイス(例えば、夫々タッチスクリーン入力機能の有無によらず、夫々触覚フィードバック機能の有無によらず、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含み、それらのうちのいくつかは、立体視出力、仮想現実メガネ(図示せず。)、ホログラフィックディスプレイ及びスモークタンク(図示せず。)などの手段により二次元視覚出力又は三次元よりも多い次元の出力を出力可能なスクリーン(1410))、及びプリンタ(図示せず。)を含んでよい。
【0111】
コンピュータシステム(1400)は、人がアクセス可能な記憶デバイス及びそれらの関連する媒体、例えば、CD/DVD又は同様の媒体(1421)を伴ったCD/DVD ROM/RW(1420)、サムドライブ(1422)、リムーバブルハードディスク又はソリッドステートドライブ(1423)、レガシー磁気媒体、例えば、テープ及びフロッピー(登録商標)ディスク(図示せず。)、専用のROM/ASIC/PLDベースデバイス、例えば、セキュリティドングル(図示せず。)、なども含むことができる。
【0112】
当業者であれば、目下開示されている対象に関連して使用されている「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、又は他の一時的な信号を含まないことも理解するはずである。
【0113】
コンピュータシステム(1400)は、1つ以上の通信ネットワークへのインターフェースも含むことができる。ネットワークは、例えば、ワイヤレス、ワイヤライン、光であることができる。ネットワークは更に、ローカル、ワイドエリア、メトロポリタン、車両及び工業、実時間、遅延耐性、などであることができる。ネットワークの例には、イーサネット(登録商標)などのローカルエリアネットワーク、ワイヤレスLAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、及び地上放送TVを含むTVワイヤライン又はワイヤレス広域デジタルネットワーク、CANバスを含む車両及び工場ネットワーク、などがある。特定のネットワークは、一般に、特定の汎用デジタルポート又はペリフェラルバス(1449)(例えば、コンピュータシステム(1400)のUSBポートなど)に取り付けられた外付けネットワークインターフェースアダプタを必要とする。他は、一般に、後述されるようなシステムバスへの取り付け(例えば、PCコンピュータシステムへのイーサネットネットワーク、又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)によってコンピュータシステム(1400)のコアに組み込まれる。これらのネットワークのいずれかを使用して、コンピュータシステム(1400)は他のエンティティと通信することができる。そのような通信は、単方向の受信専用(例えば、ブロードキャストTV)又は単方向の送信専用(例えば、特定のCANバスデバイスへのCANバス)であることができ、あるいは、例えば、ローカル若しくは広域デジタルネットワークを使用して他のコンピュータシステムに対して双方向であることができる。特定のプロトコル又はプロトコルスタックが、上述されたようなネットワーク及びネットワークインターフェースの夫々で使用可能である。
【0114】
上記のヒューマンインターフェースデバイス、人がアクセス可能な記憶デバイス、及びネットワークインターフェースは、コンピュータシステム(1400)のコア(1440)へ取り付けられ得る。
【0115】
コア(1440)は、1つ以上の中央演算処理装置(CPU)(1441)、グラフィクス処理ユニット(GPU)(1442)、フィールドプログラマブルゲートアレイ(FPGA)(1443)の形をとる専用のプログラム可能処理ユニット、特定のタスクのためのハードウェアアクセラレータ(1444)、などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM)(1445)、ランダムアクセスメモリ(RAM)(1446)、内部のユーザアクセス不能ハードドライブなどの内蔵大容量記憶装置、SSD、など(1447)とともに、システムバス(1448)を通じて接続されてよい。いくつかのコンピュータシステムでは、システムバス(1448)は、追加のCPU、GPUなどによる拡張を可能にするように、1つ以上の物理プラグの形でアクセス可能であることができる。コアのシステムバス(1448)へ直接に又はペリフェラルバス(1449)を通じて、周辺機器が取り付けられ得る。ペリフェラルバスのためのアーキテクチャには、PCI、USBなどがある。
【0116】
CPU(1441)、GPU(1442)、FPGA(1443)、及びアクセラレータ(1444)は、組み合わせて上記のコンピュータコードを構成することができる特定の命令を実行可能である。そのコンピュータコードは、ROM(1445)又はRAM(1446)に記憶され得る。一時データもRAM(1446)に記憶可能であり、一方、永続性データは、例えば、内蔵大容量記憶装置(1447)に記憶可能である。メモリデバイスのいずれかへの高速な格納及び読み出しは、キャッシュメモリの使用により可能にされ得る。キャッシュメモリは、1つ以上のCPU(1441)、GPU(1442)、大容量記憶装置(1447)、ROM(1445)、RAM(1446)などと密接に関連し得る。
【0117】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードを有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構成されたものであることができ、あるいは、それらは、コンピュータソフトウェア技術で通常の知識を有する者によく知られており利用可能である種類のものであることができる。
【0118】
例として、限定としてではなく、アーキテクチャ(1400)、具体的にはコア(1440)を有するコンピュータシステムは、1つ以上の有形なコンピュータ可読媒体において具現されているソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ、などを含む。)の結果として機能を提供することができる。そのようなコンピュータ可読媒体は、コア内蔵大容量記憶装置(1447)又はROM(1445)などの、非一時的な性質であるコア(1440)の特定の記憶装置に加えて、先に紹介されたユーザアクセス可能な大容量記憶装置に関連した媒体であることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(1440)によって実行可能である。コンピュータ可読媒体には、特定のニーズに応じて、1つ以上のメモリデバイス又はチップが含まれ得る。ソフトウェアは、コア(1440)、及び、具体的には、その中のプロセッサ(CPU、GPU、FPGAなどを含む。)に、RAM(1446)に記憶されているデータ構造を定義し、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を変更することを含め、本明細書で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。追加的に、又は代替案として、コンピュータシステムは、本明細書で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行するようにソフトウェアの代わりに又はそれとともに動作することができる、回路内でハードウェアにより実現されるか又は別なふうに具現されるロジック(例えば、アクセラレータ(1444))の結果として、機能を提供することができる。ソフトウェアへの言及は、必要に応じて、ロジックを包含することができ、その逆も同様である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶している回路(例えば、集積回路(IC))、実行のためのロジックを具現する回路、又は両方を包含することができる。本開示は、ハードウェア及びソフトウェアの如何なる適切な組み合わせも包含する。
【0119】
付録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:Group(s) of Pictures
TU:Transform Unit(s)
PU:Prediction Unit(s)
CTU:Coding Tree Unit(s)
CTB:Coding Tree Block(s)
PB:Prediction Block(s)
HRD:Hypothetical Reference Decoder
SNR:Signal Noise Ratio
CPU:Central Processing Unit(s)
GPU:Graphics Processing Unit(s)
CRT:Cathode Ray Tube
LCD:Liquid-Crystal Display
OLED:Organic Light-Emitting Diode
CD:Compact Disc
DVD:Digital Video Disc
ROM:Read-Only Memory
RAM:Random Access Memory
ASIC:Application-Specific Integrated Circuit
PLD:Programmable Logic Device
LAN:Local Area Network
GSM:Global System for Mobile communications
LTE:Long Term Evolution
CANBus:Controller Area Network Bus
USB:Universal Serial Bus
PCT:Peripheral Component Interconnect
FPGA:Field Programmable Gate Areas
SSD:Solid-State Drive
IC:Integrated Circuit
CU:Coding Unit
【0120】
本開示は、いくつかの例となる実施形態について記載してきたが、本開示の範囲内にある代替、交換、及び様々な置換均等物が存在する。よって、明らかなように、当業者であれば、たとえ本明細書で明示的に図示又は説明されていないとしても、本開示の原理を具現し、よって、その精神及び範囲の中にある多数のシステム及び方法に想到可能である。
【0121】
(1)デコーダのためのビデオデコーディングの方法であって、
コーディングされたビデオビットストリームを受け取るステップと、
現在のブロックのための参照ブロックが前記現在のブロックのコーディングツリーユニット(CTU)とは異なったCTUに位置しているかどうかを決定するステップであり、前記参照ブロック及び前記現在のブロックは、前記コーディングされたビデオビットストリームに含まれる同じピクチャに位置している、ステップと、
前記参照ブロックが前記異なったCTUに位置しているとの決定に応答して、前記現在のブロックの前記CTU及び参照サンプルメモリが同じサイズを有しているかどうかを決定するステップと、
前記現在のブロックの前記CTU及び前記参照サンプルメモリが同じサイズを有しているとの決定に応答して、
(i)前記異なったCTU内の第2エリアと同一位置にある前記現在のブロックの前記CTU内の第1エリアを決定するステップであり、前記第1エリアは、前記参照ブロックの前記異なったCTU内の前記第2エリアの位置座標と同じである前記現在のブロックの前記CTU内の位置座標を有する、ステップと、
(ii)前記第1エリアのデコーディング状態に基づいて、前記参照ブロックのための前記参照サンプルメモリのメモリ位置が利用可能であるかどうかを決定するステップと、
(iii)前記参照ブロックのための前記メモリ位置が利用可能であるとの決定に応答して、前記参照ブロックに対応する前記メモリ位置から、前記現在のブロックをデコーディングするための1つ以上のサンプルを読み出すステップと
を有する方法。
【0122】
(2)前記第1エリアは、前記現在のブロックであり、前記第2エリアは、前記参照ブロックである、特徴(1)に従う方法。
【0123】
(3)前記第1エリア及び前記第2エリアの夫々は、2M×2Nであるサイズを有する、特徴(1)又は(2)のいずれか1つに従う方法。
【0124】
(4)M=6かつN=6である、特徴(3)に従う方法。
【0125】
(5)前記第1エリアが少なくとも部分的にデコーディングされている少なくとも1つのブロックを含まないことを前記第1エリアの前記デコーディング状態が示すとの決定に応答して、前記参照ブロックに対応する前記メモリ位置は、利用可能であると決定される、特徴(1)乃至(4)のうちいずれか1つに従う方法。
【0126】
(6)前記参照サンプルメモリ及び前記現在のブロックの前記CTUがサイズが同じでないとの決定に応答して、前記現在のブロックの前記CTUのサイズが前記参照サンプルメモリのサイズよりも小さいかどうかを決定するステップと、
前記現在のブロックの前記CTUのサイズが前記参照サンプルメモリのサイズよりも小さいとの決定に応答して、前記参照ブロックの前記異なったCTUと前記現在のブロックの前記CTUとの間の距離が、((参照サンプルメモリサイズ/CTUサイズ)-1)×(CTU幅)と定義されたしきい値よりも短いかどうかを決定するステップと、
前記距離が前記しきい値よりも短いとの決定に応答して、前記参照ブロックに対応する前記メモリ位置から、前記現在のブロックをデコーディングするための1つ以上のサンプルを読み出すステップと
を更に有する、特徴(1)乃至(5)のうちいずれか1つに従う方法。
【0127】
(7)前記距離が前記しきい値以上であるとの決定に応答して、
(i)前記異なったCTU内の第2エリアと同一位置にある前記現在のブロックの前記CTU内の第1エリアを決定するステップであり、前記第1エリアは、前記参照ブロックの前記異なったCTU内の前記第2エリアの位置座標と同じである前記現在のブロックの前記CTU内の位置座標を有する、ステップと、
(ii)前記第1エリアのデコーディング状態に基づいて、前記参照ブロックのための前記参照サンプルメモリのメモリ位置が利用可能であるかどうかを決定するステップと、
(iii)前記参照ブロックのための前記メモリ位置が利用可能であるとの決定に応答して、前記参照ブロックに対応する前記メモリ位置から、前記現在のブロックをデコーディングするための1つ以上のサンプルを読み出すステップと
を更に有する、特徴(6)に従う方法。
【0128】
(8)ビデオデコーディングのためのビデオデコーダであって、
処理回路を有し、該処理回路は、
コーディングされたビデオビットストリームを受け取り、
現在のブロックのための参照ブロックが前記現在のブロックのコーディングツリーユニット(CTU)とは異なったCTUに位置しているかどうかを決定し、前記参照ブロック及び前記現在のブロックは、前記コーディングされたビデオビットストリームに含まれる同じピクチャに位置しており、
前記参照ブロックが前記異なったCTUに位置しているとの決定に応答して、前記現在のブロックの前記CTU及び参照サンプルメモリが同じサイズを有しているかどうかを決定し、
前記現在のブロックの前記CTU及び前記参照サンプルメモリが同じサイズを有しているとの決定に応答して、
(i)前記異なったCTU内の第2エリアと同一位置にある前記現在のブロックの前記CTU内の第1エリアを決定し、前記第1エリアは、前記参照ブロックの前記異なったCTU内の前記第2エリアの位置座標と同じである前記現在のブロックの前記CTU内の位置座標を有し、
(ii)前記第1エリアのデコーディング状態に基づいて、前記参照ブロックのための前記参照サンプルメモリのメモリ位置が利用可能であるかどうかを決定し、
(iii)前記参照ブロックのための前記メモリ位置が利用可能であるとの決定に応答して、前記参照ブロックに対応する前記メモリ位置から、前記現在のブロックをデコーディングするための1つ以上のサンプルを読み出す
よう構成される、
ビデオデコーダ。
【0129】
(9)前記第1エリアは、前記現在のブロックであり、前記第2エリアは、前記参照ブロックである、特徴(8)に従うビデオデコーダ。
【0130】
(10)前記第1エリア及び前記第2エリアの夫々は、2M×2Nであるサイズを有する、特徴(8)又は(9)に従うビデオデコーダ。
【0131】
(11)M=6かつN=6である、特徴(10)に従うビデオデコーダ。
【0132】
(12)前記第1エリアが少なくとも部分的にデコーディングされている少なくとも1つのブロックを含まないことを前記第1エリアの前記デコーディング状態が示すとの決定に応答して、前記参照ブロックに対応する前記メモリ位置は、利用可能であると決定される、特徴(8)乃至(11)のうちいずれか1つに従うビデオデコーダ。
【0133】
(13)前記処理回路は、
前記参照サンプルメモリ及び前記現在のブロックの前記CTUがサイズが同じでないとの決定に応答して、前記現在のブロックの前記CTUのサイズが前記参照サンプルメモリのサイズよりも小さいかどうかを決定し、
前記現在のブロックの前記CTUのサイズが前記参照サンプルメモリのサイズよりも小さいとの決定に応答して、前記参照ブロックの前記異なったCTUと前記現在のブロックの前記CTUとの間の距離が、((参照サンプルメモリサイズ/CTUサイズ)-1)×(CTU幅)と定義されたしきい値よりも短いかどうかを決定し、
前記距離が前記しきい値よりも短いとの決定に応答して、前記参照ブロックに対応する前記メモリ位置から、前記現在のブロックをデコーディングするための1つ以上のサンプルを読み出す
よう更に構成される、
特徴(8)乃至(12)のうちいずれか1つに従うビデオデコーダ。
【0134】
(14)前記処理回路は、
前記距離が前記しきい値以上であるとの決定に応答して、
(i)前記異なったCTU内の第2エリアと同一位置にある前記現在のブロックの前記CTU内の第1エリアを決定し、前記第1エリアは、前記参照ブロックの前記異なったCTU内の前記第2エリアの位置座標と同じである前記現在のブロックの前記CTU内の位置座標を有し、
(ii)前記第1エリアのデコーディング状態に基づいて、前記参照ブロックのための前記参照サンプルメモリのメモリ位置が利用可能であるかどうかを決定し、
(iii)前記参照ブロックのための前記メモリ位置が利用可能であるとの決定に応答して、前記参照ブロックに対応する前記メモリ位置から、前記現在のブロックをデコーディングするための1つ以上のサンプルを読み出す
よう更に構成される、
特徴(13)に従うビデオデコーダ。
【0135】
(15)命令を記憶している非一時的なコンピュータ可読媒体であって、
前記命令は、ビデオデコーダのプロセッサによって実行される場合に、該プロセッサに、
コーディングされたビデオビットストリームを受け取るステップと、
現在のブロックのための参照ブロックが前記現在のブロックのコーディングツリーユニット(CTU)とは異なったCTUに位置しているかどうかを決定するステップであり、前記参照ブロック及び前記現在のブロックは、前記コーディングされたビデオビットストリームに含まれる同じピクチャに位置している、ステップと、
前記参照ブロックが前記異なったCTUに位置しているとの決定に応答して、前記現在のブロックの前記CTU及び参照サンプルメモリが同じサイズを有しているかどうかを決定するステップと、
前記現在のブロックの前記CTU及び前記参照サンプルメモリが同じサイズを有しているとの決定に応答して、
(i)前記異なったCTU内の第2エリアと同一位置にある前記現在のブロックの前記CTU内の第1エリアを決定するステップであり、前記第1エリアは、前記参照ブロックの前記異なったCTU内の前記第2エリアの位置座標と同じである前記現在のブロックの前記CTU内の位置座標を有する、ステップと、
(ii)前記第1エリアのデコーディング状態に基づいて、前記参照ブロックのための前記参照サンプルメモリのメモリ位置が利用可能であるかどうかを決定するステップと、
(iii)前記参照ブロックのための前記メモリ位置が利用可能であるとの決定に応答して、前記参照ブロックに対応する前記メモリ位置から、前記現在のブロックをデコーディングするための1つ以上のサンプルを読み出すステップと
を有する方法を実行させる、
非一時的なコンピュータ可読媒体。
【0136】
(16)前記第1エリアは、前記現在のブロックであり、前記第2エリアは、前記参照ブロックである、特徴(15)に従う非一時的なコンピュータ可読媒体。
【0137】
(17)前記第1エリア及び前記第2エリアの夫々は、2M×2Nであるサイズを有する、特徴(15)又は(16)に従う非一時的なコンピュータ可読媒体。
【0138】
(18)前記第1エリアが少なくとも部分的にデコーディングされている少なくとも1つのブロックを含まないことを前記第1エリアの前記デコーディング状態が示すとの決定に応答して、前記参照ブロックに対応する前記メモリ位置は、利用可能であると決定される、特徴(15)乃至(17)のうちいずれか1つに従う非一時的なコンピュータ可読媒体。
【0139】
(19)前記方法は、
前記参照サンプルメモリ及び前記現在のブロックの前記CTUがサイズが同じでないとの決定に応答して、前記現在のブロックの前記CTUのサイズが前記参照サンプルメモリのサイズよりも小さいかどうかを決定するステップと、
前記現在のブロックの前記CTUのサイズが前記参照サンプルメモリのサイズよりも小さいとの決定に応答して、前記参照ブロックの前記異なったCTUと前記現在のブロックの前記CTUとの間の距離が、((参照サンプルメモリサイズ/CTUサイズ)-1)×(CTU幅)と定義されたしきい値よりも短いかどうかを決定するステップと、
前記距離が前記しきい値よりもとの決定に応答して、前記参照ブロックに対応する前記メモリ位置から、前記現在のブロックをデコーディングするための1つ以上のサンプルを読み出すステップと
を更に有する、
特徴(15)乃至(18)のうちいずれか1つに従う非一時的なコンピュータ可読媒体。
【0140】
(20)前記方法は、
前記距離が前記しきい値以上であるとの決定に応答して、
(i)前記異なったCTU内の第2エリアと同一位置にある前記現在のブロックの前記CTU内の第1エリアを決定するステップであり、前記第1エリアは、前記参照ブロックの前記異なったCTU内の前記第2エリアの位置座標と同じである前記現在のブロックの前記CTU内の位置座標を有する、ステップと、
(ii)前記第1エリアのデコーディング状態に基づいて、前記参照ブロックのための前記参照サンプルメモリのメモリ位置が利用可能であるかどうかを決定するステップと、
(iii)前記参照ブロックのための前記メモリ位置が利用可能であるとの決定に応答して、前記参照ブロックに対応する前記メモリ位置から、前記現在のブロックをデコーディングするための1つ以上のサンプルを読み出すステップと
を更に有する。
特徴(19)に従う非一時的なコンピュータ可読媒体。
【0141】
[参照による援用]
本開示は、「REFERENCE SAMPLE MEMORY REUSE FOR INTRA PICTURE BLOCK COMPENSATION」と題されて2019年1月13日付けで出願された米国特許仮出願第62/791862の優先権の利益を主張して「METHOD AND APPARATUS FOR REFERENCE SAMPLE MEMORY REUSE FOR INTRA PICTURE BLOCK COMPENSATION」と題されて2019年7月3日付けで出願された米国特許出願第16/502822号の優先権の利益を主張するものである。これらの先願の全開示は、その全文を参照により本願に援用される。