(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-15
(45)【発行日】2023-09-26
(54)【発明の名称】インター予測のためのエンコーダ、デコーダ、および対応する方法
(51)【国際特許分類】
H04N 19/56 20140101AFI20230919BHJP
H04N 19/567 20140101ALI20230919BHJP
【FI】
H04N19/56
H04N19/567
(21)【出願番号】P 2021530209
(86)(22)【出願日】2019-12-20
(86)【国際出願番号】 CN2019126977
(87)【国際公開番号】W WO2020173196
(87)【国際公開日】2020-09-03
【審査請求日】2021-06-24
(32)【優先日】2019-02-28
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133569
【氏名又は名称】野村 進
(72)【発明者】
【氏名】セミフ・エセンリク
(72)【発明者】
【氏名】ハン・ガオ
(72)【発明者】
【氏名】アナンド・メヘル・コトラ
(72)【発明者】
【氏名】ビャオ・ワン
(72)【発明者】
【氏名】ジエンレ・チェン
【審査官】久保 光宏
(56)【参考文献】
【文献】特開2011-61302(JP,A)
【文献】特開2005-260392(JP,A)
【文献】国際公開第2018/097693(WO,A2)
【文献】国際公開第2018/163858(WO,A1)
【文献】特表2019-536376(JP,A)
【文献】米国特許出願公開第2010/0290530(US,A1)
【文献】大脇 吉則(外4名),「二乗誤差を判定基準とするブロックマッチングの高速化」,映像情報メディア学会技術報告,日本,(社)映像情報メディア学会,1999年12月16日,Vol.23, No.79,第7~12頁,ISSN: 1342-6893.
【文献】大久保 榮 監修,「インプレス標準教科書シリーズ H.265/HEVC教科書」,初版,日本,株式会社インプレスジャパン,2013年10月21日,第245~248頁,ISBN: 978-4-8443-3468-2.
【文献】佐藤 章浩(外4名),「ニュートン補間法によるベクトル予測を用いた動きベクトル検出処理の高速化手法」,情報処理学会研究報告,日本,社団法人 情報処理学会,2005年03月04日,Vol.2005, No.18,第243~250頁,ISSN: 0919-6072.
【文献】Xu Chen, et al.,"DMVR extension based on template matching",Document: JVET-J0057, [online],JVET-J0057 (version 4),Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2018年04月10日,Pages 1-3,[令和5年2月6日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=3466> and <URL: https://jvet-experts.org/doc_end_user/documents/10_San%20Diego/wg11/JVET-J0057-v4.zip>.
【文献】Steffen Kamp, et al.,"Decoder-Side Motion Vector Derivation for Block-Based Video Coding",IEEE Transactions on Circuits and Systems for Video Technology,2013年01月08日,Vol.22, No.12,Pages 1732-1745,<DOI: 10.1109/TCSVT.2012.2221528>, ISSN: 1051-8215.
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
学術文献等データベース(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
インター予測方法であって、
現在のブロックに対する初期動きベクトルを取得するステップと、
前記初期動きベクトルに従って探索空間位置を決定するステップと、
最小整合コストを有する目標探索空間位置を選択するために、検査順序に従って前記探索空間位置の整合コストを検査するステップであって、前記整合コストが、複数の以前に復号されたブロックのピクセル間の絶対差分和に基づき測定されるステップと、
前記初期動きベクトルおよび前記目標探索空間位置に基づいて前記現在のブロックの改良動きベクトルを決定するステップと
を備え、
中心探索空間位置が前記検査順序に従って最初に検査され、前記中心探索空間位置が前記初期動きベクトルによって指し示され
、
前記中心探索空間位置が座標系の(0,0)として設定され、水平の右方が正の水平方向として設定され、垂直の下方が正の垂直方向として設定され、(a,b)で表される座標位置において、前記aは水平方向座標値であり、前記bは垂直方向座標値であり、
探索空間位置(-2,-2)の前に探索空間位置(0,0)を検査し、探索空間位置(-1,-2)の前に探索空間位置(-2,-2)を検査し、探索空間位置(0,-2)の前に探索空間位置(-1,-2)を検査し、探索空間位置(1,-2)の前に探索空間位置(0,-2)を検査し、探索空間位置(2,-2)の前に探索空間位置(1,-2)を検査し、探索空間位置(-2,-1)の前に探索空間位置(2,-2)を検査し、探索空間位置(-1,-1)の前に探索空間位置(-2,-1)を検査し、探索空間位置(0,-1)の前に探索空間位置(-1,-1)を検査し、探索空間位置(1,-1)の前に探索空間位置(0,-1)を検査し、探索空間位置(2,-1)の前に探索空間位置(1,-1)を検査し、探索空間位置(-2,0)の前に探索空間位置(2,-1)を検査し、探索空間位置(-1,0)の前に探索空間位置(-2,0)を検査し、探索空間位置(1,0)の前に探索空間位置(-1,0)を検査し、探索空間位置(2,0)の前に探索空間位置(1,0)を検査し、探索空間位置(-2,1)の前に探索空間位置(2,0)を検査し、探索空間位置(-1,1)の前に探索空間位置(-2,1)を検査し、探索空間位置(0,1)の前に探索空間位置(-1,1)を検査し、探索空間位置(1,1)の前に探索空間位置(0,1)を検査し、探索空間位置(2,1)の前に探索空間位置(1,1)を検査し、探索空間位置(-2,2)の前に探索空間位置(2,1)を検査し、探索空間位置(-1,2)の前に探索空間位置(-2,2)を検査し、探索空間位置(0,2)の前に探索空間位置(-1,2)を検査し、探索空間位置(1,2)の前に探索空間位置(0,2)を検査し、探索空間位置(2,2)の前に探索空間位置(1,2)を検査する、
インター予測方法。
【請求項2】
探索空間位置が前記中心探索空間位置および隣接探索空間位置を備え、前記初期動きベクトルに従って探索空間位置を決定するステップが、
前記初期動きベクトルに従って前記中心探索空間位置を決定するステップと、
1つまたは複数の事前設定済みのオフセットおよび前記中心探索空間位置に従って前記隣接探索空間位置を決定するステップと
を備える、
請求項1に記載の方法。
【請求項3】
探索空間が前記探索空間位置から構成され、前記探索空間のパターンが5×5の探索空間位置正方形である、請求項2に記載の方法。
【請求項4】
最小整合コストを有する目標探索空間位置を選択するために、前記検査順序に従って前記探索空間位置の整合コストを検査するステップが、
前記検査順序に従って前記探索空間位置の各々の整合コストを順に検査するステップと、
前記探索空間位置のうちの前記最小整合コストを有する探索空間位置を前記目標探索空間位置として選択するステップと
を備える、
請求項1に記載の方法。
【請求項5】
前記検査順序に従って前記探索空間位置の各々の前記整合コストを順に検査するステップが、
前記探索空間位置のうちの1つの整合コストを一時的最小整合コストと比較するステップと、
前記探索空間位置のうちの前記1つの前記整合コストが前記一時的最小整合コストよりも小さいとき、前記探索空間位置のうちの前記1つの前記整合コストを前記一時的最小整合コストとして設定するステップと、
前記探索空間位置のうちの最後の1つが検査された後、前記一時的最小整合コストを前記最小整合コストとして設定するステップと
を備える、
請求項4に記載の方法。
【請求項6】
インター予測装置であって、
現在のブロックに対する初期動きベクトルを取得するように構成された、取得モジュールと、
前記初期動きベクトルに従って探索空間位置を決定するように構成された、設定モジュールと、
最小整合コストを有する目標探索空間位置を選択するために、検査順序に従って前記探索空間位置の整合コストを検査するように構成された、計算モジュールであって、前記整合コストが、複数の以前に復号されたブロックのピクセル間の絶対差分和に基づき測定される計算モジュールと、
前記初期動きベクトルおよび前記目標探索空間位置に基づいて前記現在のブロックの改良動きベクトルを決定するように構成された、予測モジュールと
を備え、
中心探索空間位置が前記検査順序に従って最初に検査され、前記中心探索空間位置が前記初期動きベクトルによって指し示され
、
前記中心探索空間位置が座標系の(0,0)として設定され、水平の右方が正の水平方向として設定され、垂直の下方が正の垂直方向として設定され、(a,b)で表される座標位置において、前記aは水平方向座標値であり、前記bは垂直方向座標値であり、
探索空間位置(-2,-2)の前に探索空間位置(0,0)を検査し、探索空間位置(-1,-2)の前に探索空間位置(-2,-2)を検査し、探索空間位置(0,-2)の前に探索空間位置(-1,-2)を検査し、探索空間位置(1,-2)の前に探索空間位置(0,-2)を検査し、探索空間位置(2,-2)の前に探索空間位置(1,-2)を検査し、探索空間位置(-2,-1)の前に探索空間位置(2,-2)を検査し、探索空間位置(-1,-1)の前に探索空間位置(-2,-1)を検査し、探索空間位置(0,-1)の前に探索空間位置(-1,-1)を検査し、探索空間位置(1,-1)の前に探索空間位置(0,-1)を検査し、探索空間位置(2,-1)の前に探索空間位置(1,-1)を検査し、探索空間位置(-2,0)の前に探索空間位置(2,-1)を検査し、探索空間位置(-1,0)の前に探索空間位置(-2,0)を検査し、探索空間位置(1,0)の前に探索空間位置(-1,0)を検査し、探索空間位置(2,0)の前に探索空間位置(1,0)を検査し、探索空間位置(-2,1)の前に探索空間位置(2,0)を検査し、探索空間位置(-1,1)の前に探索空間位置(-2,1)を検査し、探索空間位置(0,1)の前に探索空間位置(-1,1)を検査し、探索空間位置(1,1)の前に探索空間位置(0,1)を検査し、探索空間位置(2,1)の前に探索空間位置(1,1)を検査し、探索空間位置(-2,2)の前に探索空間位置(2,1)を検査し、探索空間位置(-1,2)の前に探索空間位置(-2,2)を検査し、探索空間位置(0,2)の前に探索空間位置(-1,2)を検査し、探索空間位置(1,2)の前に探索空間位置(0,2)を検査し、探索空間位置(2,2)の前に探索空間位置(1,2)を検査する、
インター予測装置。
【請求項7】
探索空間位置が前記中心探索空間位置および隣接探索空間位置を備え、前記設定モジュールが、
前記初期動きベクトルに従って前記中心探索空間位置を決定し、
1つまたは複数の事前設定済みのオフセットおよび前記中心探索空間位置に従って前記隣接探索空間位置を決定するように構成される、
請求項
6に記載の装置。
【請求項8】
探索空間が前記探索空間位置から構成され、前記探索空間のパターンが5×5の探索空間位置正方形である、請求項
7に記載の装置。
【請求項9】
前記計算モジュールが、
前記検査順序に従って前記探索空間位置の各々の整合コストを順に検査し、
前記探索空間位置のうちの前記最小整合コストを有する探索空間位置を前記目標探索空間位置として選択するように構成される、
請求項
6に記載の装置。
【請求項10】
前記計算モジュールが、
前記探索空間位置のうちの1つの整合コストを一時的最小整合コストと比較し、
前記探索空間位置のうちの前記1つの前記整合コストが前記一時的最小整合コストよりも小さいとき、前記探索空間位置のうちの前記1つの前記整合コストを前記一時的最小整合コストとして設定し、
前記探索空間位置のうちの最後の1つが検査された後、前記一時的最小整合コストを前記最小整合コストとして設定するように構成される、
請求項
9に記載の装置。
【請求項11】
請求項1から
5のいずれか一項に記載の方法を実行するための処理回路構成を備えるエンコーダ。
【請求項12】
請求項1から
5のいずれか一項に記載の方法を実行するための処理回路構成を備えるデコーダ。
【請求項13】
請求項1から
5のいずれか一項に記載の方法を実行するためのプログラムコードを備えるコンピュータプログラム製品。
【請求項14】
デコーダであって、
1つまたは複数のプロセッサと、
前記プロセッサに結合され前記プロセッサによる実行のためのプログラミングを記憶する非一時的コンピュータ可読記憶媒体と
を備え、
前記プログラミングが、前記プロセッサによって実行されたとき、請求項1から
5のいずれか一項に記載の方法を実行するように前記デコーダを構成する、
デコーダ。
【請求項15】
エンコーダであって、
1つまたは複数のプロセッサと、
前記プロセッサに結合され前記プロセッサによる実行のためのプログラミングを記憶する非一時的コンピュータ可読記憶媒体と
を備え、
前記プログラミングが、前記プロセッサによって実行されたとき、請求項1から
5のいずれか一項に記載の方法を実行するように前記エンコーダを構成する、
エンコーダ。
【請求項16】
ビットストリームの形式のビデオデータを記憶するように構成された非一時的メモリストレージと、
請求項1から
5のいずれか一項に記載の方法を実行するように構成されたビデオデコーダと
を備えるビデオデータ復号デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、それらの内容全体が参照により本明細書に組み込まれる、2019年1月13日に出願された米国仮特許出願第62/791,869号、および2019年2月28日に出願された米国仮特許出願第62/812,190号の優先権を主張する。
【0002】
本出願の実施形態は、一般に、ピクチャ処理の分野に関し、より詳細には、インター予測に関する。
【背景技術】
【0003】
ビデオコーディング(ビデオ符号化およびビデオ復号)は、幅広いデジタルビデオ適用例、たとえば、ブロードキャストデジタルTV、インターネットおよびモバイルネットワークを介したビデオ送信、ビデオチャット、ビデオ会議などの、リアルタイム会話型適用例、DVDおよびBlu-ray(登録商標)ディスク、ビデオコンテンツ収集および編集システム、ならびにセキュリティ適用例のカムコーダにおいて使用される。
【0004】
比較的短いビデオを描写するのに必要とされるビデオデータの量でさえ相当であり得、そのことは、帯域幅容量が限定された通信ネットワークを越えてデータがストリーミングされるかまたは別の方法で通信されることになるときに、困難をもたらすことがある。したがって、ビデオデータは、一般に、現代の電気通信ネットワークを越えて通信される前に圧縮される。メモリリソースが限定されることがあるので、ビデオが記憶デバイス上に記憶されるときにビデオのサイズも問題となり得る。ビデオ圧縮デバイスは、しばしば、送信または記憶の前に、ソースにおいてソフトウェアおよび/またはハードウェアを使用してビデオデータをコーディングし、それによって、デジタルビデオ画像を表現するのに必要とされるデータの数量を減らす。圧縮されたデータは、次いで、ビデオデータを復号するビデオ復元デバイスによって宛先において受信される。ネットワークリソースが限定され、かつより高いビデオ品質の需要が絶えず増大すると、ピクチャ品質における犠牲をほとんど伴わずに圧縮率を改善する、改善された圧縮および復元技法が望ましい。
【発明の概要】
【課題を解決するための手段】
【0005】
動きベクトル改良用の探索空間を構成するための方式が提供され、探索空間の中の探索空間位置の整合コストを検査するためのいくつかの検査順序が本出願に示される。
【0006】
本出願の実施形態は、独立請求項による符号化および復号のための装置および方法を提供する。
【0007】
本出願の第1の態様では、インター予測方法は、現在のブロックに対する初期動きベクトルを取得することと、初期動きベクトルに従って探索空間位置を決定することと、最小整合コストを有する目標探索空間位置を選択するために、検査順序に従って探索空間位置の整合コストを検査することと、初期動きベクトルおよび目標探索空間位置に基づいて現在のブロックの改良動きベクトルを決定することとを備え、中心探索空間位置が検査順序に従って最初に検査され、中心探索空間位置が初期動きベクトルによって指し示される。
【0008】
実現可能な実装形態では、探索空間位置は、中心探索位置および隣接探索空間位置を備え、初期動きベクトルに従って探索空間位置を決定することは、初期動きベクトルに従って中心探索空間位置を決定することと、1つまたは複数の事前設定済みのオフセットおよび中心探索空間位置に従って隣接探索空間位置を決定することとを備える。
【0009】
実現可能な実装形態では、探索空間は、探索空間位置から構成され、探索空間のパターンは、5×5の探索空間位置正方形である。
【0010】
実現可能な実装形態では、最小整合コストを有する目標探索空間位置を選択するために、検査順序に従って探索空間位置の整合コストを検査することは、検査順序に従って探索空間位置の各々の整合コストを順に検査することと、探索空間位置のうちの最小整合コストを有する探索空間位置を目標探索空間位置として選択することとを備える。
【0011】
実現可能な実装形態では、検査順序に従って探索空間位置の各々の整合コストを順に検査することは、探索空間位置のうちの1つの整合コストを一時的最小整合コストと比較することと、
探索空間位置のうちの1つの整合コストが一時的最小整合コストよりも小さいとき、探索空間位置のうちの1つの整合コストを一時的最小整合コストとして設定することと、
探索空間位置のうちの最後の1つが検査された後、一時的最小整合コストを最小整合コストとして設定することとを備える。
【0012】
実現可能な実装形態では、中心探索空間位置が座標系の(0,0)として設定され、水平の右方が正の水平方向として設定され、垂直の下方が正の垂直方向として設定される。
【0013】
実現可能な実装形態では、検査順序は、(0,0)、(-2,-2)、(-1,-2)、(0,-2)、(1,-2)、(2,-2)、(-2,-1)、(-1,-1)、(0,-1)、(1,-1)、(2,-1)、(-2,0)、(-1,0)、(1,0)、(2,0)、(-2,1)、(-1,1)、(0,1)、(1,1)、(2,1)、(-2,2)、(-1,2)、(0,2)、(1,2)、(2,2)である。
【0014】
実現可能な実装形態では、検査順序は、(0,0)、(-1,0)、(0,1)、(1,0)、(0,-1)、(-1,-1)、(-1,1)、(1,1)、(1,-1)、(-2,0)、(-2,1)、(-2,2)、(-1,2)、(0,2)、(1,2)、(2,2)、(2,1)、(2,0)、(2,-1)、(2,-2)、(1,-2)、(0,-2)、(-1,-2)、(-2,-2)、(-2,-1)である。
【0015】
実現可能な実装形態では、検査順序は、(0,0)、(-1,0)、(0,1)、(1,0)、(0,-1)、(-1,-1)、(-1,1)、(1,1)、(1,-1)、(-2,0)、(0,2)、(2,0)、(0,-2)、(-2,-1)、(-2,1)、(-2,2)、(-1,2)、(1,2)、(2,2)、(2,1)、(2,-1)、(2,-2)、(1,-2)、(-1,-2)、(-2,-2)である。
【0016】
実現可能な実装形態では、検査順序は、(0,0)、(-1,0)、(0,1)、(1,0)、(0,-1)、(-1,-1)、(-1,1)、(1,1)、(1,-1)、(-2,0)、(0,2)、(2,0)、(0,-2)、(-2,-2)、(-2,2)、(2,2)、(2,-2)、(-2,-1)、(-2,1)、(-1,2)、(1,2)、(2,1)、(2,-1)、(1,-2)、(-1,-2)である。
【0017】
本出願の第2の態様では、インター予測装置は、現在のブロックに対する初期動きベクトルを取得するように構成された、取得モジュールと、初期動きベクトルに従って探索空間位置を決定するように構成された、設定モジュールと、最小整合コストを有する目標探索空間位置を選択するために、検査順序に従って探索空間位置の整合コストを検査するように構成された、計算モジュールと、初期動きベクトルおよび目標探索空間位置に基づいて現在のブロックの改良動きベクトルを決定するように構成された、予測モジュールとを備え、中心探索空間位置が検査順序に従って最初に検査され、中心探索空間位置が初期動きベクトルによって指し示される。
【0018】
実現可能な実装形態では、探索空間位置は、中心探索位置および隣接探索空間位置を備え、設定モジュールは、初期動きベクトルに従って中心探索空間位置を決定し、1つまたは複数の事前設定済みのオフセットおよび中心探索空間位置に従って隣接探索空間位置を決定するように構成される。
【0019】
実現可能な実装形態では、探索空間は、探索空間位置から構成され、探索空間のパターンは、5×5の探索空間位置正方形である。
【0020】
実現可能な実装形態では、計算モジュールは、検査順序に従って探索空間位置の各々の整合コストを順に検査し、探索空間位置のうちの最小整合コストを有する探索空間位置を目標探索空間位置として選択するように構成される。
【0021】
実現可能な実装形態では、計算モジュールは、探索空間位置のうちの1つの整合コストを一時的最小整合コストと比較し、探索空間位置のうちの1つの整合コストが一時的最小整合コストよりも小さいとき、探索空間位置のうちの1つの整合コストを一時的最小整合コストとして設定し、
探索空間位置のうちの最後の1つが検査された後、一時的最小整合コストを最小整合コストとして設定するように構成される。
【0022】
実現可能な実装形態では、中心探索空間位置が座標系の(0,0)として設定され、水平の右方が正の水平方向として設定され、垂直の下方が正の垂直方向として設定される。
【0023】
実現可能な実装形態では、検査順序は、(0,0)、(-2,-2)、(-1,-2)、(0,-2)、(1,-2)、(2,-2)、(-2,-1)、(-1,-1)、(0,-1)、(1,-1)、(2,-1)、(-2,0)、(-1,0)、(1,0)、(2,0)、(-2,1)、(-1,1)、(0,1)、(1,1)、(2,1)、(-2,2)、(-1,2)、(0,2)、(1,2)、(2,2)である。
【0024】
実現可能な実装形態では、検査順序は、(0,0)、(-1,0)、(0,1)、(1,0)、(0,-1)、(-1,-1)、(-1,1)、(1,1)、(1,-1)、(-2,0)、(-2,1)、(-2,2)、(-1,2)、(0,2)、(1,2)、(2,2)、(2,1)、(2,0)、(2,-1)、(2,-2)、(1,-2)、(0,-2)、(-1,-2)、(-2,-2)、(-2,-1)である。
【0025】
実現可能な実装形態では、検査順序は、(0,0)、(-1,0)、(0,1)、(1,0)、(0,-1)、(-1,-1)、(-1,1)、(1,1)、(1,-1)、(-2,0)、(0,2)、(2,0)、(0,-2)、(-2,-1)、(-2,1)、(-2,2)、(-1,2)、(1,2)、(2,2)、(2,1)、(2,-1)、(2,-2)、(1,-2)、(-1,-2)、(-2,-2)である。
【0026】
実現可能な実装形態では、検査順序は、(0,0)、(-1,0)、(0,1)、(1,0)、(0,-1)、(-1,-1)、(-1,1)、(1,1)、(1,-1)、(-2,0)、(0,2)、(2,0)、(0,-2)、(-2,-2)、(-2,2)、(2,2)、(2,-2)、(-2,-1)、(-2,1)、(-1,2)、(1,2)、(2,1)、(2,-1)、(1,-2)、(-1,-2)である。
【0027】
本出願の第3の態様では、ビデオピクチャ(またはフレーム)の現在のブロックのインター予測において使用されるべき動きベクトルを決定するための方法であって、方法は、初期動きベクトルを取得することと、初期動きベクトルに従って点の少なくとも2つのグループ(一例では、点の1つのグループが1つの点だけを備えてよい)を取得することと、点の少なくとも2つのグループおよびコスト関数に従って現在のブロックに対する動きベクトルを取得することとを備える。
【0028】
実現可能な実装形態では、点の少なくとも2つのグループは、正方形の内側にあるすべての点を備え、正方形は、初期動きベクトルに対応する点を中心とする。
【0029】
実現可能な実装形態では、点の少なくとも2つのグループは、正方形の内側にあるすべての点を備え、正方形の隅角は、座標(-2,-2)、(2,2)、(-2,2)、および(2,-2)によって決定される。
【0030】
実現可能な実装形態では、点の少なくとも2つのグループの中の、点の第1のグループは、初期動きベクトルによって指し示される中心点を備える。
【0031】
実現可能な実装形態では、点の少なくとも2つのグループの中の、点の第2のグループは、中心点の左、上、右、および下のネイバー(neighbor)である4つの点を備え、中心点は初期動きベクトルによって指し示される。
【0032】
実現可能な実装形態では、点の少なくとも2つのグループの中の、点の第3のグループは、中心点から1ピクセルサンプルだけ離れており、かつ第2のグループの中に備えられない、4つの点を備える。
【0033】
実現可能な実装形態では、点の少なくとも2つのグループの中の、点の第4のグループは、少なくとも1つの座標軸において中心点から2ピクセルサンプルだけ離れている点を備える。
【0034】
実現可能な実装形態では、点の少なくとも2つのグループがコスト関数を用いて処理されるとき、点の少なくとも2つのグループは順序正しく処理される。
【0035】
実現可能な実装形態では、点の少なくとも2つのグループの中の、点の第4のグループは、一方の座標軸において中心点から2ピクセルサンプルだけ離れており、かつ他方の座標軸において中心点から0ピクセルサンプルだけ離れている、点を備える。
【0036】
実現可能な実装形態では、点の少なくとも2つのグループの中の、点の第5のグループは、少なくとも1つの座標軸において中心点から2ピクセルサンプルだけ離れており、かつ点の第4のグループの中に含まれない、点を備える。
【0037】
実現可能な実装形態では、点の少なくとも2つのグループの中の、点の第5のグループは、-x座標軸と-y座標軸の両方において中心点から2ピクセルサンプルだけ離れている点を備える。
【0038】
実現可能な実装形態では、点の少なくとも2つのグループの中の、点の第6のグループは、少なくとも1つの座標軸において中心点から2ピクセルサンプルだけ離れており、かつ点の第4または第5のグループの中に含まれない、点を備える。
【0039】
実現可能な実装形態では、点の少なくとも2つのグループの中の、点の第4のグループは、一方の座標軸のみにおいて中心点から2ピクセルサンプルだけ離れており、かつ他方の座標軸において中心点から0ピクセルサンプルだけ離れている、点を備える。
【0040】
実現可能な実装形態では、点の少なくとも2つのグループの中の、点の1つのグループが、少なくとも2つの点を備えるとき、グループの点は既定の規則に従って順序付けられる。
【0041】
実現可能な実装形態では、点の少なくとも2つのグループの中の、点の1つのグループが、少なくとも2つの点を備えるとき、点のグループのうちの一番左の点は、点のグループのうちの最初の点として選択される。
【0042】
実現可能な実装形態では、点の少なくとも2つのグループの中の、点の1つのグループが、少なくとも2つの点を備えるとき、かつ点のグループの一番左の点である2つ以上の点があるとき、グループの一番左にあり垂直方向(-y方向)において0により近い座標変位を有する点が、点のグループのうちの最初の点として選択される。
【0043】
実現可能な実装形態では、点の少なくとも2つのグループの中の、点の1つのグループが、少なくとも2つの点を備えるとき、かつ点のグループの中の一番左の2つ以上の点があるとき、かつ点が-y方向において同じ変位を有する場合、上方向における一番左の点が、点のグループの最初の点として選択される。
【0044】
実現可能な実装形態では、点の少なくとも2つのグループの中の、点の1つのグループが、少なくとも2つの点を備えるとき、かつ点のグループの中の最初の点が決定された後、同じグループの中の残りの点は、中心点の周囲の点の時計回りまたは反時計回りでの走査に基づいて順序付けられる。
【0045】
実現可能な実装形態では、初期動きベクトルは、ビットストリームの中でシグナリングされるインデックスを使用して導出される動きベクトルに相当する。
【0046】
実現可能な実装形態では、初期動きベクトルおよび取得される動きベクトルは、ビットストリームの中にコーディングされない。
【0047】
本出願の第4の態様では、コンピュータプログラム製品は、コンピュータ上またはプロセッサ上で実行されたとき、第1または第3の態様による方法を実行するためのプログラムコードを備える。
【0048】
本出願の第5の態様では、デコーダは、1つまたは複数のプロセッサと、プロセッサに結合されプロセッサによる実行のためのプログラミングを記憶する非一時的コンピュータ可読記憶媒体とを備え、プログラミングは、プロセッサによって実行されたとき、第1または第3の態様による方法を実行するようにデコーダを構成する。
【0049】
本出願の第6の態様では、エンコーダは、1つまたは複数のプロセッサと、プロセッサに結合されプロセッサによる実行のためのプログラミングを記憶する非一時的コンピュータ可読記憶媒体とを備え、プログラミングは、プロセッサによって実行されたとき、第1または第3の態様による方法を実行するようにエンコーダを構成する。
【0050】
本出願の第7の態様では、非一時的コンピュータ可読媒体は、コンピュータデバイスによって実行されたとき、第1または第3の態様の方法をコンピュータデバイスに実行させる、プログラムコードを搬送する。
【0051】
上記および他の目的は、独立請求項の主題によって達成される。さらなる実装形態が、従属請求項、説明、および図から明らかである。
【0052】
特定の実施形態は、従属請求項における他の実施形態とともに、添付の独立請求項において概説される。
【0053】
1つまたは複数の実施形態の詳細が、添付図面および以下の説明において記載される。他の特徴、目的、および利点は、説明、図面、および請求項から明らかとなろう。
【0054】
以下では、本出願の実施形態が、添付の図面(figure)および図面(drawing)を参照しながらより詳細に説明される。
【図面の簡単な説明】
【0055】
【
図1A】本出願の実施形態を実施するように構成されたビデオコーディングシステムの一例を示すブロック図である。
【
図1B】本出願の実施形態を実施するように構成されたビデオコーディングシステムの別の例を示すブロック図である。
【
図2】本出願の実施形態を実施するように構成されたビデオエンコーダの一例を示すブロック図である。
【
図3】本出願の実施形態を実施するように構成されたビデオデコーダの例示的な構造を示すブロック図である。
【
図4】符号化装置または復号装置の一例を示すブロック図である。
【
図5】符号化装置または復号装置の別の例を示すブロック図である。
【
図15】本出願の実施形態を実施するように構成された予測装置の一例を示すブロック図である。
【
図16】符号化装置または復号装置の一例を示すブロック図である。
【
図17】コンテンツ配信サービスを実現するコンテンツ供給システム3100の例示的な構造を示すブロック図である。
【
図18】端末デバイスの一例の構造を示すブロック図である。
【発明を実施するための形態】
【0056】
以下では、同一の参照符号は、別段に明示的に指定されない場合、同一のまたは少なくとも機能的に均等な特徴を指す。
【0057】
以下の説明では、本開示の一部を形成し、かつ本出願の実施形態の特定の態様または本出願の実施形態が使用され得る特定の態様を例として示す、添付の図への参照が行われる。本出願の実施形態が、他の態様において使用されてよく、図の中に示されない構造的または論理的な変更を備えてよいことが理解される。したがって、以下の発明を実施するための形態は限定的な意味で理解されるべきでなく、本出願の範囲は添付の請求項によって定義される。
【0058】
たとえば、説明する方法に関する開示が、本方法を実行するように構成された対応するデバイスまたはシステムに対しても当てはまり得ることが理解され、逆も同様である。たとえば、1つまたは複数の特定の方法ステップが説明される場合、そのような1つまたは複数のユニットが明示的に説明されないかまたは図に示されないとしても、対応するデバイスは、説明する1つまたは複数の方法ステップを実行するための1つまたは複数のユニット(たとえば、1つもしくは複数のステップを実行する1つのユニット、または複数のステップのうちの1つもしくは複数を各々が実行する複数のユニット)、たとえば、機能ユニットを含んでよい。一方、たとえば、1つまたは複数のユニット、たとえば、機能ユニットに基づいて、特定の装置が説明される場合、そのような1つまたは複数のステップが明示的に説明されないかまたは図に示されないとしても、対応する方法は、1つまたは複数のユニットの機能を実行するための1つのステップ(たとえば、1つもしくは複数のユニットの機能を実行する1つのステップ、または複数のユニットのうちの1つもしくは複数の機能を各々が実行する複数のステップ)を含んでよい。さらに、別段に特に記載されていない限り、本明細書で説明する様々な例示的な実施形態および/または態様の特徴が互いに組み合わせられてよいことが理解される。
【0059】
ビデオコーディングとは、通常、ビデオまたはビデオシーケンスを形成する、ピクチャのシーケンスの処理を指す。「ピクチャ」という用語の代わりに、ビデオコーディングの分野では「フレーム」または「画像」という用語が同義語として使用され得る。ビデオコーディング(または、一般にコーディング)は、2つの部分、ビデオ符号化およびビデオ復号を備える。ビデオ符号化は、ソース側において実行され、通常、ビデオピクチャを表現するのに必要とされるデータの量を(より効率的な記憶および/または送信のために)低減するために、(たとえば、圧縮によって)元のビデオピクチャを処理することを備える。ビデオ復号は、宛先側において実行され、通常、ビデオピクチャを再構成するための、エンコーダと比較して逆の処理を備える。ビデオピクチャ(または、一般にピクチャ)の「コーディング」に言及する実施形態は、ビデオピクチャまたはそれぞれのビデオシーケンスの「符号化」または「復号」に関係すると理解されるものとする。符号化部分と復号部分との組合せは、コーデック(コーディングおよび復号)とも呼ばれる。
【0060】
可逆的ビデオコーディングの場合には、元のビデオピクチャは再構成され得、すなわち、(記憶または送信の間に伝送損失または他のデータ損失がないと想定すると)再構成ビデオピクチャは元のビデオピクチャと同じ品質を有する。不可逆的ビデオコーディングの場合には、ビデオピクチャを表現するデータの量を低減するために、たとえば、量子化によって、さらなる圧縮が実行され、ビデオピクチャは、デコーダにおいて完全に再構成され得るとは限らず、すなわち、再構成ビデオピクチャの品質は元のビデオピクチャの品質と比較して低く、すなわち悪い。
【0061】
いくつかのビデオコーディング規格は、「不可逆的ハイブリッドビデオコーデック」のグループに属する(すなわち、サンプル領域における空間予測および時間予測と、変換領域において量子化を適用するための2D変換コーディングとを組み合わせる)。ビデオシーケンスの各ピクチャは、通常、重複しないブロックのセットに区分され、コーディングは、通常、ブロックレベルにおいて実行される。言い換えれば、エンコーダにおいて、ビデオは、通常、たとえば、予測ブロックを生成するために空間(ピクチャ内)予測および/または時間(ピクチャ間)予測を使用すること、現在のブロック(現在処理される/処理されるべきブロック)から予測ブロックを減算して残差ブロックを取得すること、残差ブロックを変換すること、ならびに送信されるべきデータの量を低減(圧縮)するために変換領域において残差ブロックを量子化することによって、ブロック(ビデオブロック)レベルにおいて処理すなわち符号化され、その一方で、デコーダにおいて、表現のために現在のブロックを再構成するために、エンコーダと比較して逆の処理が符号化または圧縮されたブロックに適用される。さらに、エンコーダは、後続のブロックを処理すなわちコーディングするために、その両方が同一の予測(たとえば、イントラ予測およびインター予測)および/または再構成を生成するように、デコーダ処理ループを複製する。
【0062】
以下では、ビデオコーディングシステム10、ビデオエンコーダ20、およびビデオデコーダ30の実施形態が、
図1~
図3に基づいて説明される。
【0063】
図1Aは、この本出願の技法を利用し得る例示的なコーディングシステム10、たとえば、ビデオコーディングシステム10(または、ショートコーディングシステム10)を示す概略ブロック図である。ビデオコーディングシステム10のビデオエンコーダ20(または、ショートエンコーダ20)およびビデオデコーダ30(または、ショートデコーダ30)は、本出願で説明する様々な例による技法を実行するように構成され得るデバイスの例を表す。
【0064】
図1Aに示すように、コーディングシステム10は、たとえば、符号化ピクチャデータ13を復号するための宛先デバイス14に、符号化ピクチャデータ21を提供するように構成された、ソースデバイス12を備える。
【0065】
ソースデバイス12は、エンコーダ20を備え、追加として、すなわち随意に、ピクチャソース16、プリプロセッサ(または、前処理ユニット)18、たとえば、ピクチャプリプロセッサ18、および通信インターフェースまたは通信ユニット22を備えてよい。
【0066】
ピクチャソース16は、任意の種類のピクチャキャプチャデバイス、たとえば、実世界ピクチャをキャプチャするためのカメラ、ならびに/あるいは任意の種類のピクチャ生成デバイス、たとえば、コンピュータアニメーション化されたピクチャを生成するためのコンピュータグラフィックスプロセッサ、または実世界ピクチャ、コンピュータ生成されたピクチャ(たとえば、スクリーンコンテンツ、仮想現実(VR)ピクチャ)、および/もしくはそれらの任意の組合せ(たとえば、拡張現実(AR)ピクチャ)を取得および/もしくは提供するための任意の種類の他のデバイスを備えてよく、またはそれらであってもよい。ピクチャソースは、上述のピクチャのうちのいずれかを記憶する任意の種類のメモリまたはストレージであってよい。
【0067】
プリプロセッサ18、および前処理ユニット18によって実行される処理と対比して、ピクチャまたはピクチャデータ17は、未加工ピクチャまたは未加工ピクチャデータ17と呼ばれることもある。
【0068】
プリプロセッサ18は、(未加工)ピクチャデータ17を受信し、ピクチャデータ17に対して前処理を実行して、前処理済みのピクチャ19または前処理済みのピクチャデータ19を取得するように構成される。プリプロセッサ18によって実行される前処理は、たとえば、トリミング、(たとえば、RGBからYCbCrへの)カラーフォーマット変換、色補正、またはノイズ除去を備えてよい。前処理ユニット18が随意の構成要素であってよいことが理解され得る。
【0069】
ビデオエンコーダ20は、前処理済みのピクチャデータ19を受信し、符号化ピクチャデータ21を提供するように構成される(さらなる詳細が、たとえば
図2に基づいて、以下で説明される)。
【0070】
ソースデバイス12の通信インターフェース22は、符号化ピクチャデータ21を受信し、記憶または直接の再構成のために、通信チャネル13を介して別のデバイス、たとえば、宛先デバイス14または任意の他のデバイスへ、符号化ピクチャデータ21(または、それらのさらに処理された任意のバージョン)を送信するように構成され得る。
【0071】
宛先デバイス14は、デコーダ30(たとえば、ビデオデコーダ30)を備え、追加として、すなわち随意に、通信インターフェースまたは通信ユニット28、ポストプロセッサ32(または、後処理ユニット32)、およびディスプレイデバイス34を備えてよい。
【0072】
宛先デバイス14の通信インターフェース28は、たとえば、ソースデバイス12から直接、または任意の他のソース、たとえば、記憶デバイス、たとえば、符号化ピクチャデータ記憶デバイスから、符号化ピクチャデータ21(または、それらのさらに処理された任意のバージョン)を受信し、符号化ピクチャデータ21をデコーダ30に提供するように構成される。
【0073】
通信インターフェース22および通信インターフェース28は、ソースデバイス12と宛先デバイス14との間の直接通信リンク、たとえば、直接有線接続または直接ワイヤレス接続を介して、あるいは任意の種類のネットワーク、たとえば、有線ネットワークもしくはワイヤレスネットワークもしくはそれらの任意の組合せ、または任意の種類のプライベートネットワークおよびパブリックネットワーク、またはそれらの任意の種類の組合せを介して、符号化ピクチャデータ21または符号化データ13を送信または受信するように構成され得る。
【0074】
通信インターフェース22は、たとえば、適切なフォーマット、たとえば、パケットの中に、符号化ピクチャデータ21をパッケージ化し、かつ/または通信リンクもしくは通信ネットワークを介した送信のために任意の種類の送信符号化もしくは送信処理を使用して符号化ピクチャデータを処理するように構成され得る。
【0075】
通信インターフェース22の相対物を形成する通信インターフェース28は、たとえば、送信されたデータを受信し、任意の種類の対応する送信復号もしくは送信処理および/またはデパッケージングを使用して送信データを処理して符号化ピクチャデータ21を取得するように構成され得る。
【0076】
通信インターフェース22と通信インターフェース28の両方が、ソースデバイス12から宛先デバイス14を指し示す、
図1Aの中の通信チャネル13に対する矢印によって示されるような単方向の通信インターフェース、または双方向の通信インターフェースとして構成されてよく、たとえば、通信リンクおよび/またはデータ送信、たとえば、符号化ピクチャデータ送信に関係する、任意の他の情報を認識応答および交換するために、たとえば、接続をセットアップするためのメッセージを送るとともに受信するように構成されてよい。
【0077】
デコーダ30は、符号化ピクチャデータ21を受信し、復号ピクチャデータ31または復号ピクチャ31を提供するように構成される(さらなる詳細は、たとえば、
図3または
図5に基づいて、以下で説明される)。
【0078】
宛先デバイス14のポストプロセッサ32は、復号ピクチャデータ31(再構成ピクチャデータとも呼ばれる)、たとえば、復号ピクチャ31を後処理して、後処理されたピクチャデータ33、たとえば、後処理されたピクチャ33を取得するように構成される。後処理ユニット32によって実行される後処理は、たとえば、ディスプレイデバイス34による、たとえば、表示用の復号ピクチャデータ31を準備するための、たとえば、(たとえば、YCbCrからRGBへの)カラーフォーマット変換、色補正、トリミング、もしくはリサンプリング、または任意の他の処理を備えてよい。
【0079】
宛先デバイス14のディスプレイデバイス34は、たとえば、ユーザまたは見ている人に、ピクチャを表示するための、後処理されたピクチャデータ33を受信するように構成される。ディスプレイデバイス34は、再構成ピクチャを表現するための任意の種類のディスプレイ、たとえば、統合型または外部のディスプレイまたはモニタであってよく、またはそれを備えてもよい。ディスプレイは、たとえば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、液晶オンシリコン(LCoS)、デジタル光プロセッサ(DLP)、または任意の種類の他のディスプレイを備えてよい。
【0080】
図1Aはソースデバイス12および宛先デバイス14を別個のデバイスとして示すが、デバイスの実施形態はまた、ソースデバイス12または対応する機能と宛先デバイス14または対応する機能の、両方または両方の機能を備えてよい。そのような実施形態では、ソースデバイス12または対応する機能および宛先デバイス14または対応する機能は、同じハードウェアおよび/またはソフトウェアを使用して、あるいは別個のハードウェアおよび/もしくはソフトウェアまたはそれらの任意の組合せによって、実施され得る。
【0081】
説明に基づいて当業者にとって明らかとなるように、異なるユニットの機能または
図1Aに示すようなソースデバイス12内および/もしくは宛先デバイス14内の機能の存在および(正確な)分割は、実際のデバイスおよび適用例に応じて変わることがある。
【0082】
エンコーダ20(たとえば、ビデオエンコーダ20)もしくはデコーダ30(たとえば、ビデオデコーダ30)、またはエンコーダ20とデコーダ30の両方は、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、個別論理、ハードウェア、ビデオコーディング専用、またはそれらの任意の組合せなどの、
図1Bに示すような処理回路構成を介して実装され得る。エンコーダ20は、
図2のエンコーダ20に関して説明するような様々なモジュールおよび/または本明細書で説明する任意の他のエンコーダシステムもしくはサブシステムを具現するために、処理回路構成46を介して実装され得る。デコーダ30は、
図3のデコーダ30に関して説明するような様々なモジュールおよび/または本明細書で説明する任意の他のデコーダシステムもしくはサブシステムを具現するために、処理回路構成46を介して実装され得る。処理回路構成は、後で説明するような様々な動作を実行するように構成され得る。
図5に示すように、技法が部分的にソフトウェアで実施される場合、デバイスは、ソフトウェアのための命令を好適な非一時的コンピュータ可読記憶媒体の中に記憶してよく、本開示の技法を実行するために1つまたは複数のプロセッサを使用してハードウェアで命令を実行してよい。ビデオエンコーダ20およびビデオデコーダ30のいずれも、たとえば、
図1Bに示すように、組み合わせられたエンコーダ/デコーダ(コーデック)の一部として単一のデバイスの中に統合され得る。
【0083】
ソースデバイス12および宛先デバイス14は、任意の種類のハンドヘルドまたは固定のデバイス、たとえば、ノートブックまたはラップトップコンピュータ、モバイルフォン、スマートフォン、タブレットまたはタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビジョン、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーム機、(コンテンツサービスサーバまたはコンテンツ配信サーバなどの)ビデオストリーミングデバイス、ブロードキャスト受信機デバイス、ブロードキャスト送信機デバイスなどを含む、幅広いデバイスのうちのいずれかを備えてよく、オペレーティングシステムを使用しなくてよく、または任意の種類のオペレーティングシステムを使用してもよい。場合によっては、ソースデバイス12および宛先デバイス14はワイヤレス通信のために装備されてよい。したがって、ソースデバイス12および宛先デバイス14はワイヤレス通信デバイスであってよい。
【0084】
場合によっては、
図1Aに示すビデオコーディングシステム10は一例にすぎず、本出願の技法は、必ずしも符号化デバイスと復号デバイスとの間の任意のデータ通信を含むとは限らない、ビデオコーディング設定(たとえば、ビデオ符号化またはビデオ復号)に適用されてよい。他の例では、データは、ローカルメモリから取り出される、ネットワークを介してストリーミングされるなどである。ビデオ符号化デバイスは、データを符号化するとともにメモリに記憶してよく、かつ/またはビデオ復号デバイスは、データをメモリから取り出すとともに復号してよい。いくつかの例では、互いに通信しないが、単にデータをメモリに符号化し、かつ/またはデータをメモリから取り出すとともに復号するデバイスによって、符号化および復号が実行される。
【0085】
説明の便宜上、たとえば、高効率ビデオコーディング(HEVC:High-Efficiency Video Coding)への、または多用途ビデオコーディング(VVC:Versatile Video Coding)、すなわち、ITU-Tビデオコーディングエキスパートグループ(VCEG:Video Coding Experts Group)とISO/IECモーションピクチャエキスパートグループ(MPEG:Motion Picture Experts Group)とのビデオコーディング共同研究部会(JCT-VC:Joint Collaboration Team on Video Coding)によって策定された次世代ビデオコーディング規格の参照ソフトウェアへの参照によって、本出願の実施形態が本明細書で説明される。本出願の実施形態がHEVCまたはVVCに限定されないことを、当業者は理解されよう。
【0086】
エンコーダおよび符号化方法
図2は、本出願の技法を実施するように構成される例示的なビデオエンコーダ20の概略ブロック図を示す。
図2の例では、ビデオエンコーダ20は、入力部201(または、入力インターフェース201)、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210および逆変換処理ユニット212、再構成ユニット214、ループフィルタユニット220、復号ピクチャバッファ(DPB:Decoded Picture Buffer)230、モード選択ユニット260、エントロピー符号化ユニット270、ならびに出力部272(または、出力インターフェース272)を備える。モード選択ユニット260は、インター予測ユニット244、イントラ予測ユニット254、および区分ユニット262を含んでよい。インター予測ユニット244は、動き推定ユニットおよび動き補償ユニット(図示せず)を含んでよい。
図2に示すようなビデオエンコーダ20は、ハイブリッドビデオエンコーダ、すなわちハイブリッドビデオコーデックによるビデオエンコーダと呼ばれることもある。
【0087】
残差計算ユニット204、変換処理ユニット206、量子化ユニット208、モード選択ユニット260は、エンコーダ20の順方向信号経路を形成するものとして参照されてよく、その一方で、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ(DPB)230、インター予測ユニット244、およびイントラ予測ユニット254は、ビデオエンコーダ20の逆方向信号経路を形成するものとして参照されてよく、ビデオエンコーダ20の逆方向信号経路はデコーダの信号経路に対応する(
図3の中のビデオデコーダ30を参照)。逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループフィルタ220、復号ピクチャバッファ(DPB)230、インター予測ユニット244、およびイントラ予測ユニット254はまた、ビデオエンコーダ20の「ビルトインデコーダ」を形成することが参照される。
【0088】
ピクチャおよびピクチャ区分(ピクチャおよびブロック)
エンコーダ20は、ピクチャ17(または、ピクチャデータ17)、たとえば、ビデオまたはビデオシーケンスを形成するピクチャのシーケンスのピクチャを、たとえば、入力部201を介して受信するように構成され得る。受信されるピクチャまたはピクチャデータはまた、前処理済みのピクチャ19(または、前処理済みのピクチャデータ19)であってよい。簡単のために、以下の説明はピクチャ17を参照する。ピクチャ17は、現在のピクチャ、または(同じビデオシーケンス、すなわち、やはり現在のピクチャを備えるビデオシーケンスの、他のピクチャ、たとえば、前に符号化および/または復号されたピクチャから、現在のピクチャを区別するために、ビデオコーディングでは特に)コーディングされるべきピクチャと呼ばれることもある。
【0089】
(デジタル)ピクチャは、強度値を有するサンプルの2次元のアレイまたは行列であるか、またはそのように見なされることがある。アレイの中のサンプルは、ピクセル(短い形式のピクチャ要素)またはペルと呼ばれることもある。アレイまたはピクチャの水平および垂直の方向(または、軸)におけるサンプルの個数は、ピクチャのサイズおよび/または解像度を規定する。色の表現のために、通常、3つの色成分が採用され、すなわち、ピクチャは、3つのサンプルアレイが表されてよく、またはそれらを含んでよい。RBGフォーマットまたは色空間の中で、ピクチャは、対応する赤色、緑色、および青色のサンプルアレイを備える。しかしながら、ビデオコーディングでは、各ピクセルは、通常、ルミナンスおよびクロミナンスのフォーマットまたは色空間、たとえば、YCbCrで表され、YCbCrは、Y(時々、代わりにLも使用される)によって示されるルミナンス成分、ならびにCbおよびCrによって示される2つのクロミナンス成分を備える。ルミナンス(または、ショートルーマ)成分Yは、輝度または(たとえば、グレースケールピクチャにおけるような)グレーレベル強度を表し、2つのクロミナンス(または、ショートクロマ)成分CbおよびCrは、色度または色情報成分を表す。したがって、YCbCrフォーマットをなすピクチャは、ルミナンスサンプル値(Y)のルミナンスサンプルアレイ、およびクロミナンス値(CbおよびCr)の2つのクロミナンスサンプルアレイを備える。RGBフォーマットをなすピクチャは、YCbCrフォーマットに変換(convert)または変換(transform)されてよく、逆も同様であり、そのプロセスは色変換(color transformation)または色変換(color conversion)とも呼ばれる。ピクチャがモノクロである場合、ピクチャはルミナンスサンプルアレイのみを備えてよい。したがって、ピクチャは、たとえば、モノクロフォーマットでのルーマサンプルのアレイ、または4:2:0、4:2:2、および4:4:4カラーフォーマットでの、ルーマサンプルのアレイおよびクロマサンプルの2つの対応するアレイであってよい。
【0090】
ビデオエンコーダ20の実施形態は、ピクチャ17を複数の(通常は重複しない)ピクチャブロック203に区分するように構成されたピクチャ区分ユニット(
図2に示さず)を備えてよい。これらのブロックは、ルートブロック、マクロブロック(H.264/AVC)、またはコーディングツリーブロック(CTB:Coding Tree Block)もしくはコーディングツリーユニット(CTU:Coding Tree Unit)(H.265/HEVCおよびVVC)と呼ばれることもある。ピクチャ区分ユニットは、ビデオシーケンスのすべてのピクチャに対して同じブロックサイズを、かつブロックサイズを規定する対応するグリッドを使用するか、あるいはピクチャまたはピクチャのサブセットもしくはグループの間でブロックサイズを変更し、各ピクチャを対応するブロックに区分するように構成され得る。
【0091】
さらなる実施形態では、ビデオエンコーダは、ピクチャ17のブロック203、たとえば、ピクチャ17を形成する1つの、複数の、または全部のブロックを、直接受信するように構成され得る。ピクチャブロック203は、現在のピクチャブロック、またはコーディングされるべきピクチャブロックと呼ばれることもある。
【0092】
ピクチャ17のように、ピクチャブロック203は再び、強度値(サンプル値)を有するサンプルの、ただしピクチャ17よりも寸法が小さい、2次元のアレイまたは行列であるか、またはそのように見なされることがある。言い換えれば、ブロック203は、たとえば、1つのサンプルアレイ(たとえば、モノクロピクチャ17の場合にはルーマアレイ、またはカラーピクチャの場合にはルーマアレイもしくはクロマアレイ)、または3つのサンプルアレイ(たとえば、カラーピクチャ17の場合にはルーマアレイおよび2つのクロマアレイ)、あるいは適用されるカラーフォーマットに応じて任意の他の個数および/または種類のアレイを備えてよい。ブロック203の水平および垂直の方向(または、軸)におけるサンプルの個数は、ブロック203のサイズを規定する。したがって、ブロックは、たとえば、サンプルのM×N(M列×N行)アレイ、または変換係数のM×Nアレイであってよい。
【0093】
図2に示すようなビデオエンコーダ20の実施形態は、ピクチャ17をブロックごとに符号化するように構成されてよく、たとえば、符号化および予測がブロック203単位で実行される。
【0094】
図2に示すようなビデオエンコーダ20の実施形態は、スライス(ビデオスライスとも呼ばれる)を使用することによってピクチャを区分および/または符号化するようにさらに構成されてよく、ピクチャは、(通常は重複しない)1つまたは複数のスライスに区分され得るか、またはそうしたスライスを使用して符号化され得、各スライスは、1つもしくは複数のブロック(たとえば、CTU)、またはブロックの1つもしくは複数のグループ(たとえば、タイル(H.265/HEVCおよびVVC)またはブリック(VVC))を備えてよい。
【0095】
図2に示すようなビデオエンコーダ20の実施形態は、スライス/タイルグループ(ビデオタイルグループとも呼ばれる)および/またはタイル(ビデオタイルとも呼ばれる)を使用することによってピクチャを区分および/または符号化するようにさらに構成されてよく、ピクチャは、(通常は重複しない)1つまたは複数のスライス/タイルグループに区分され得るか、またはそうしたスライス/タイルグループを使用して符号化され得、各スライス/タイルグループは、たとえば、1つもしくは複数のブロック(たとえば、CTU)または1つもしくは複数のタイルを備えてよく、各タイルは、たとえば、長方形形状であってよく、1つまたは複数のブロック(たとえば、CTU)、たとえば、全体的または断片的なブロックを備えてよい。
【0096】
残差計算
残差計算ユニット204は、たとえば、サンプルごとに(ピクセルごとに)ピクチャブロック203のサンプル値から予測ブロック265のサンプル値を減算することによって、ピクチャブロック203および予測ブロック265(予測ブロック265についてのさらなる詳細は後で提供される)に基づいて残差ブロック205(残差205とも呼ばれる)を計算して、サンプル領域における残差ブロック205を取得するように構成され得る。
【0097】
変換
変換処理ユニット206は、残差ブロック205のサンプル値に対して変換、たとえば、離散コサイン変換(DCT)または離散サイン変換(DST)を適用して、変換領域における変換係数207を取得するように構成され得る。変換係数207は、変換残差係数と呼ばれることもあり、変換領域における残差ブロック205を表してよい。
【0098】
変換処理ユニット206は、H.265/HEVCに対して指定された変換などのDCT/DSTの整数近似を適用するように構成され得る。直交DCT変換と比較して、そのような整数近似は、通常、いくつかの係数によってスケーリングされる。順変換および逆変換によって処理される残差ブロックのノルムを保存するために、変換プロセスの一部として追加のスケーリング係数が適用される。スケーリング係数は、通常、シフト演算のためにスケーリング係数が2のべき乗であること、変換係数のビット深度、確度と実装コストとの間のトレードオフなどのような、いくつかの制約に基づいて選ばれる。たとえば、逆変換処理ユニット212による、たとえば、逆変換(および、たとえば、ビデオデコーダ30における逆変換処理ユニット312による、対応する逆変換)に対して、特定のスケーリング係数が指定され、エンコーダ20における、たとえば、変換処理ユニット206による、順変換のための対応するスケーリング係数が、それに応じて指定され得る。
【0099】
ビデオエンコーダ20の実施形態(それぞれ、変換処理ユニット206)は、たとえば、直接、またはエントロピー符号化ユニット270を介して符号化もしくは圧縮された、変換パラメータ、たとえば、1つまたは複数の変換のタイプを出力するように構成されてよく、その結果、たとえば、ビデオデコーダ30は、復号のために変換パラメータを受信および使用し得る。
【0100】
量子化
量子化ユニット208は、たとえば、スカラー量子化またはベクトル量子化を適用することによって、変換係数207を量子化して量子化係数209を取得するように構成され得る。量子化係数209は、量子化変換係数209または量子化残差係数209と呼ばれることもある。
【0101】
量子化プロセスは、変換係数207の一部または全部に関連するビット深度を低減し得る。たとえば、nビットの変換係数は、量子化の間にmビットの変換係数に切り捨てられてよく、ただし、nはmよりも大きい。量子化の程度は、量子化パラメータ(QP:Quantization Parameter)を調整することによって修正され得る。たとえば、スカラー量子化の場合、より細かいかまたはより粗い量子化を達成するために、様々なスケーリングが適用され得る。より小さい量子化ステップサイズは、より細かい量子化に対応し、その一方で、より大きい量子化ステップサイズは、より粗い量子化に対応する。適用可能な量子化ステップサイズは、量子化パラメータ(QP)によって示され得る。量子化パラメータは、たとえば、適用可能な量子化ステップサイズの既定のセットへのインデックスであってよい。たとえば、小さい量子化パラメータは、細かい量子化(小さい量子化ステップサイズ)に対応してよく、大きい量子化パラメータは、粗い量子化(大きい量子化ステップサイズ)に対応してよく、またはその逆も同様である。量子化は、量子化ステップサイズによる除算を含んでよく、たとえば、逆量子化ユニット210による、対応する逆量子化および/または逆の逆量子化は、量子化ステップサイズによる乗算を含んでよい。いくつかの規格、たとえば、HEVCによる実施形態は、量子化ステップサイズを決定するために量子化パラメータを使用するように構成され得る。概して、量子化ステップサイズは、除算を含む式の固定小数点近似を使用して、量子化パラメータに基づいて計算され得る。量子化ステップサイズおよび量子化パラメータに対する式の固定小数点近似において使用されるスケーリングのために修正されることがある、残差ブロックのノルムを復元するために、量子化および逆量子化に対して追加のスケーリング係数が導入されてよい。1つの例示的な実装形態では、逆変換および逆量子化のスケーリングが組み合わせられることがある。代替として、カスタマイズされた量子化テーブルが使用されてよく、たとえば、ビットストリームの中で、エンコーダからデコーダにシグナリングされてよい。量子化は不可逆的演算であり、増大する量子化ステップサイズとともに損失が増大する。
【0102】
ビデオエンコーダ20の実施形態(それぞれ、量子化ユニット208)は、たとえば、直接、またはエントロピー符号化ユニット270を介して符号化された、量子化パラメータ(QP)を出力するように構成されてよく、その結果、たとえば、ビデオデコーダ30は、復号のために量子化パラメータを受信および適用し得る。
【0103】
逆量子化
逆量子化ユニット210は、たとえば、量子化ユニット208と同じ量子化ステップサイズに基づいて、またはそれを使用して、量子化ユニット208によって適用される量子化方式の逆を適用することによって、量子化係数に対して量子化ユニット208の逆量子化を適用して逆量子化係数211を取得するように構成される。逆量子化係数211は、逆量子化残差係数211と呼ばれることもあり、- 量子化による損失に起因して通常は変換係数と同一でないが、- 変換係数207に対応し得る。
【0104】
逆変換
逆変換処理ユニット212は、変換処理ユニット206によって適用される変換の逆変換、たとえば、逆離散コサイン変換(DCT)もしくは逆離散サイン変換(DST)、または他の逆変換を適用して、サンプル領域における再構成残差ブロック213(または、対応する逆量子化係数213)を取得するように構成される。再構成残差ブロック213は、変換ブロック213と呼ばれることもある。
【0105】
再構成
再構成ユニット214(たとえば、加算回路(adder)または加算器(summer)214)は、たとえば、再構成残差ブロック213のサンプル値と予測ブロック265のサンプル値とを- サンプルごとに- 加算することによって、変換ブロック213(すなわち、再構成残差ブロック213)を予測ブロック265に加算してサンプル領域における再構成ブロック215を取得するように構成される。
【0106】
フィルタ処理
ループフィルタユニット220(または、ショート「ループフィルタ」220)は、再構成ブロック215をフィルタ処理してフィルタ処理済みのブロック221を取得するように、または概して、再構成サンプルをフィルタ処理してフィルタ処理済みのサンプル値を取得するように構成される。ループフィルタユニットは、たとえば、ピクセル遷移を平滑化するか、またはビデオ品質を別の方法で改善するように構成される。ループフィルタユニット220は、デブロッキングフィルタ、サンプル適応型オフセット(SAO:sample-adaptive offset)フィルタ、または1つもしくは複数の他のフィルタ、たとえば、適応型ループフィルタ(ALF:adaptive loop filter)、ノイズ抑圧フィルタ(NSF:noise suppression filter)、あるいはそれらの任意の組合せなどの、1つまたは複数のループフィルタを備えてよい。一例では、ループフィルタユニット220は、デブロッキングフィルタ、SAOフィルタ、およびALFフィルタを備えてよい。フィルタ処理プロセスの順序は、デブロッキングフィルタ、SAO、およびALFであってよい。別の例では、クロマスケーリング付きルーママッピング(LMCS:luma mapping with chroma scaling)(すなわち、適応型ループ内再成型器)と呼ばれるプロセスが追加される。このプロセスはデブロッキングの前に実行される。別の例では、デブロッキングフィルタプロセスはまた、内部のサブブロックエッジ、たとえば、アフィンサブブロックエッジ、ATMVPサブブロックエッジ、サブブロック変換(SBT:sub-block transform)エッジ、およびイントラ下位区分(ISP:intra sub-partition)エッジに適用されてよい。ループフィルタユニット220はループ内フィルタであるものとして
図2に示されるが、他の構成では、ループフィルタユニット220は、ループ後フィルタとして実装されてよい。フィルタ処理済みのブロック221は、フィルタ処理済みの再構成ブロック221と呼ばれることもある。
【0107】
ビデオエンコーダ20の実施形態(それぞれ、ループフィルタユニット220)は、たとえば、直接、またはエントロピー符号化ユニット270を介して符号化された、(SAOフィルタパラメータまたはALFフィルタパラメータまたはLMCSパラメータなどの)ループフィルタパラメータを出力するように構成されてよく、その結果、たとえば、デコーダ30は、復号のために同じループフィルタパラメータまたはそれぞれのループフィルタを受信および適用し得る。
【0108】
復号ピクチャバッファ
復号ピクチャバッファ(DPB)230は、ビデオエンコーダ20によってビデオデータを符号化するための、参照ピクチャまたは概して参照ピクチャデータを記憶するメモリであってよい。DPB230は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM)、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのうちのいずれかによって形成され得る。復号ピクチャバッファ(DPB)230は、1つまたは複数のフィルタ処理済みのブロック221を記憶するように構成され得る。復号ピクチャバッファ230は、以前にフィルタ処理された他のブロック、たとえば、同じ現在のピクチャの、または異なるピクチャの、以前に再構成およびフィルタ処理されたブロック221、たとえば、以前に再構成されたピクチャを記憶するようにさらに構成されてよく、たとえば、インター予測のために、以前に再構成すなわち復号された全体的なピクチャ(ならびに、対応する参照ブロックおよびサンプル)、および/または部分的に再構成された現在のピクチャ(ならびに、対応する参照ブロックおよびサンプル)を提供し得る。たとえば、再構成ブロック215が、ループフィルタユニット220によってフィルタ処理されていないか、または再構成ブロックもしくはサンプルのさらに処理された任意の他のバージョンである場合、復号ピクチャバッファ(DPB)230はまた、1つまたは複数のフィルタ処理されていない再構成ブロック215、または概して、フィルタ処理されていない再構成サンプルを、記憶するように構成されてもよい。
【0109】
モード選択(区分および予測)
モード選択ユニット260は、区分ユニット262、インター予測ユニット244、およびイントラ予測ユニット254を備え、元のピクチャデータ、たとえば、元のブロック203(現在のピクチャ17の現在のブロック203)、ならびに同じ(現在の)ピクチャの、かつ/あるいは1つまたは複数の以前に復号されたピクチャからの、たとえば、復号ピクチャバッファ230または他のバッファ(たとえば、図示しないラインバッファ)からの、再構成ピクチャデータ、たとえば、フィルタ処理された再構成済みのサンプルもしくはブロック、および/またはフィルタ処理されていない再構成済みのサンプルもしくはブロックを、受信または取得するように構成される。再構成ピクチャデータは、予測ブロック265または予測子265を取得するために、予測、たとえば、インター予測またはイントラ予測のための、参照ピクチャデータとして使用される。
【0110】
モード選択ユニット260は、(区分を含まない)現在のブロック予測モードに対する区分、および予測モード(たとえば、イントラまたはインター予測モード)を決定または選択し、残差ブロック205の計算のために、かつ再構成ブロック215の再構成のために使用される、対応する予測ブロック265を生成するように構成され得る。
【0111】
モード選択ユニット260の実施形態は、最良の整合すなわち言い換えれば最小残差(最小残差とは、送信または記憶のためのより良好な圧縮を意味する)、または最小シグナリングオーバーヘッド(最小シグナリングオーバーヘッドとは、送信または記憶のためのより良好な圧縮を意味する)を与えるか、あるいはその両方を考慮するかまたはその両方のバランスをとる、区分および予測モードを(たとえば、モード選択ユニット260によってサポートされるか、またはモード選択ユニット260にとって利用可能なものから)選択するように構成され得る。モード選択ユニット260は、レートひずみ最適化(RDO:Rate Distortion Optimization)に基づいて区分および予測モードを決定するように、すなわち、最小のレートひずみをもたらす予測モードを選択するように構成され得る。このコンテキストにおける「最良の」、「最小の」、「最適な」などのような用語は、必ずしも全体的な「最良の」、「最小の」、「最適な」などを指すとは限らず、しきい値または他の制約を上回るかまたは下回る値のような、終結基準または選択基準の充足を指してもよく、潜在的に「準最適な選択」につながるが、計算量および処理時間を低減する。
【0112】
言い換えれば、区分ユニット262は、ビデオシーケンスからのピクチャをコーディングツリーユニット(CTU)のシーケンスに区分することであって、CTU203が、たとえば、4分木区分(QT)、バイナリ区分(BT)、もしくはトリプルツリー区分(TT)、またはそれらの任意の組合せを反復的に使用して、より小さいブロック区分または(再びブロックを形成する)サブブロックにさらに区分されてよいことと、たとえば、ブロック区分またはサブブロックの各々に対して予測を実行することとを行うように構成されてよく、モード選択は、区分されるブロック203のツリー構造の選択を備え、予測モードは、ブロック区分またはサブブロックの各々に適用される。
【0113】
以下では、例示的なビデオエンコーダ20によって実行される(たとえば、区分ユニット260による)区分および(インター予測ユニット244およびイントラ予測ユニット254による)予測処理が、より詳細に説明される。
【0114】
区分
区分ユニット262は、ビデオシーケンスからのピクチャをコーディングツリーユニット(CTU)のシーケンスに区分するように構成されてよく、区分ユニット262は、コーディングツリーユニット(CTU)203をより小さい区分、たとえば、正方形または長方形のサイズのより小さいブロックに、区分(すなわち分割)し得る。3つのサンプルアレイを有するピクチャの場合、CTUは、クロマサンプルの2つの対応するブロックと一緒に、ルーマサンプルのN×Nブロックから構成される。CTUの中のルーマブロックの最大許容サイズは、策定中の多用途ビデオコーディング(VVC)では128×128となるように指定されるが、将来において128×128ではない値、たとえば、256×256となるように指定されることがある。ピクチャのCTUは、スライス/タイルグループ、タイル、またはブリックとして、クラスタ化/グループ化されてよい。タイルはピクチャの長方形領域をカバーし、タイルは1つまたは複数のブリックに分割されることがある。ブリックは、タイル内のいくつかのCTU行から構成される。複数のブリックに区分されないタイルは、ブリックと呼ばれることがある。しかしながら、ブリックは、タイルの真のサブセットであり、タイルとは呼ばれない。VVCにおいてサポートされる、タイルグループの2つのモード、すなわち、ラスタ走査スライス/タイルグループモード、および長方形スライスモードがある。ラスタ走査タイルグループモードでは、スライス/タイルグループは、ピクチャのタイルラスタ走査の際にタイルのシーケンスを含む。長方形スライスモードでは、スライスは、ピクチャの長方形領域を集合的に形成する、ピクチャのいくつかのブリックを含む。長方形スライス内のブリックは、スライスのブリックラスタ走査の順序をなす。これらのより小さいブロック(サブブロックと呼ばれることもある)は、一層小さい区分にさらに区分され得る。このことはまた、ツリー区分または階層的ツリー区分と呼ばれ、たとえば、ルートツリーレベル0(階層レベル0、深度0)における、ルートブロックは、再帰的に区分されてよく、たとえば、次に低いツリーレベルの2つ以上のブロック、たとえば、ツリーレベル1(階層レベル1、深度1)におけるノードに区分されてよく、これらのブロックは再び、たとえば、終結基準が充足されており
、たとえば、最大ツリー深度または最小ブロックサイズに到達したので、区分が終結されるまで、次に低いレベルの2つ以上のブロック、たとえば、ツリーレベル2(階層レベル2、深度2)などに区分されてよい。それ以上区分されないブロックは、ツリーのリーフブロックまたはリーフノードとも呼ばれる。2つの区分への区分を使用するツリーは2分木(BT:Binary-Tree)と呼ばれ、3つの区分への区分を使用するツリーは3分木(TT:Ternary-Tree)と呼ばれ、4つの区分への区分を使用するツリーは4分木(QT:Quad-Tree)と呼ばれる。
【0115】
たとえば、コーディングツリーユニット(CTU)は、3つのサンプルアレイを有するピクチャのルーマサンプルのCTB、クロマサンプルの2つの対応するCTB、またはモノクロピクチャもしくは3つの別個の色平面を使用してコーディングされるピクチャのサンプルのCTB、およびサンプルをコーディングするために使用されるシンタックス構造であってよく、またはそれらを備えてもよい。それに対応して、コーディングツリーブロック(CTB)は、CTBへの成分の分割が区分であるような、Nのいくつかの値に対する、サンプルのN×Nブロックであってよい。コーディングユニット(CU)は、3つのサンプルアレイを有するピクチャのルーマサンプルのコーディングブロック、クロマサンプルの2つの対応するコーディングブロック、またはモノクロピクチャもしくは3つの別個の色平面を使用してコーディングされるピクチャのサンプルのコーディングブロック、およびサンプルをコーディングするために使用されるシンタックス構造であってよく、またはそれらを備えてもよい。それに対応して、コーディングブロック(CB)は、コーディングブロックへのCTBの分割が区分であるような、MおよびNのいくつかの値に対する、サンプルのM×Nブロックであってよい。
【0116】
たとえば、HEVCによる実施形態では、コーディングツリーユニット(CTU)は、コーディングツリーとして示される4分木構造を使用することによってCUに分割され得る。ピクチャエリアを、(時間的な)インターピクチャ予測を使用してコーディングすべきか、それとも(空間的な)イントラピクチャ予測を使用してコーディングすべきかという決定は、リーフCUレベルにおいて行われる。各リーフCUは、PU分割タイプに従って1つ、2つ、または4つのPUにさらに分割され得る。1つのPUの内側では、同じ予測プロセスが適用され、関連する情報がPU単位でデコーダへ送信される。PU分割タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後、リーフCUは、CU用のコーディングツリーと類似の別の4分木構造に従って変換ユニット(TU)に区分され得る。
【0117】
たとえば、多用途ビデオコーディング(VVC)と呼ばれる、現在策定中の最新のビデオコーディング規格による実施形態では、組合せ型4分木ネスト式マルチタイプツリーは、たとえば、コーディングツリーユニットを区分するために使用される、バイナリおよび3元分割セグメント化構造を使用する。コーディングツリーユニット内のコーディングツリー構造の中で、CUは、正方形または長方形のいずれかの形状を有することができる。たとえば、コーディングツリーユニット(CTU)は、4分木によって最初に区分される。次いで、4分木リーフノードは、マルチタイプツリー構造によってさらに区分されることがある。マルチタイプツリー構造において、4つの分割タイプ、すなわち、垂直バイナリ分割(SPLIT_BT_VER)、水平バイナリ分割(SPLIT_BT_HOR)、垂直3元分割(SPLIT_TT_VER)、および水平3元分割(SPLIT_TT_HOR)がある。マルチタイプツリーリーフノードは、コーディングユニット(CU)と呼ばれ、最大変換長に対してCUが大きすぎない限り、このセグメント化は、それ以上の区分を伴わずに予測処理および変換処理のために使用される。このことは、たいていの場合、CU、PU、およびTUが、ネスト式マルチタイプツリーコーディングブロック構造を有する4分木の中で、同じブロックサイズを有することを意味する。サポートされる最大変換長がCUの色成分の幅または高さよりも小さいとき、例外が発生する。VVCは、ネスト式マルチタイプツリーコーディングツリー構造を有する4分木における区分分割情報の、固有のシグナリングメカニズムを策定する。シグナリングメカニズムにおいて、コーディングツリーユニット(CTU)は、4分木のルートとして扱われ、4分木構造によって最初に区分される。各4分木リーフノードが(そのことを許容するのに十分大きいとき)、次いで、マルチタイプツリー構造によってさらに区分される。マルチタイプツリー構造では、ノードがさらに区分されるかどうかを示すために第1のフラグ(mtt_split_cu_flag)がシグナリングされ、ノードがさらに区分されるとき、分割方向を示すために第2のフラグ(mtt_split_cu_vertical_flag)がシグナリングされ、次いで、分割がバイナリ分割であるのかそれとも3元分割であるのかを示すために第3のフラグ(mtt_split_cu_binary_flag)がシグナリングされる。mtt_split_cu_vertical_flagおよびmtt_split_cu_binary_flagの値に基づいて、既定の規則またはテーブルに基づいてデコーダによってCUのマルチタイプツリー分割モード(MttSplitMode)が導出され得る。いくつかの設計、たとえば、VVCハードウェアデコーダにおける64×64ルーマブロックおよび32×32クロマパイプライン化設計の場合、
図6に示すように、ルーマコーディングブロックの幅または高さのいずれかが64よりも大きいとき、TT分割が禁止されることに留意されたい。TT分割は、クロマコーディングブロックの幅または高さのいずれかが32よりも大きいときにも禁止される。パイプライン化設計は、ピクチャを分割して、ピクチャの中の重複しないユニットとして規定される仮想パイプラインデータ単位(VPDU:Virtual pipeline data unit)にする。ハードウェアデコーダにおいて、連続したVPDUが、複数のパイプラインステージによって同時に処理される。VPDUサイズは、大部分のパイプラインステージの中のバッファサイズにほぼ比例し、そのため、VPDUサイズを小さく保つことが重要である。大部分のハードウェアデコーダにおいて、VPDUサイズは、最大変換ブロック(TB)サイズに設定されることがある。しかしながら、VVCでは、3分木(TT)および2分木(BT)区分は、VPDUサイズの増大につながることがある。
【0118】
加えて、ツリーノードブロックの一部分が下または右のピクチャ境界を越えるとき、すべてのコード化CUのすべてのサンプルがピクチャ境界の内側に位置するまで、ツリーノードブロックが分割されるように強要されることに留意されたい。
【0119】
一例として、イントラ下位区分(ISP)ツールは、ブロックサイズに応じて、ルーマイントラ予測ブロックを2つまたは4つの下位区分に垂直または水平に分割し得る。
【0120】
一例では、ビデオエンコーダ20のモード選択ユニット260は、本明細書で説明する区分技法の任意の組合せを実行するように構成され得る。
【0121】
上記で説明したように、ビデオエンコーダ20は、(たとえば、事前決定された)予測モードのセットから、最良のまたは最適な予測モードを決定または選択するように構成される。予測モードのセットは、たとえば、イントラ予測モードおよび/またはインター予測モードを備えてよい。
【0122】
イントラ予測
イントラ予測モードのセットは、たとえば、HEVCにおいて規定されるように、35個の異なるイントラ予測モード、たとえば、DC(または、平均)モードおよび平面モードのような全方向性モード、もしくは方向性モードを備えてよく、または、たとえば、VVCのために規定されるように、67個の異なるイントラ予測モード、たとえば、DC(または、平均)モードおよび平面モードのような全方向性モード、もしくは方向性モードを備えてよい。一例として、たとえば、VVCにおいて規定されるように、非正方形ブロックに対して、いくつかの従来の角度イントラ予測モードは、広角度イントラ予測モードと適応的に置き換えられる。別の例として、DC予測のための除算演算を回避するために、長い方の側部だけが、非正方形ブロックに対して平均を算出するために使用される。そして、平面モードのイントラ予測の結果は、位置依存イントラ予測組合せ(PDPC:position dependent intra prediction combination)法によって、さらに修正され得る。
【0123】
イントラ予測ユニット254は、イントラ予測モードのセットのイントラ予測モードに従ってイントラ予測ブロック265を生成するために、同じ現在のピクチャの隣接ブロックの再構成されたサンプルを使用するように構成される。
【0124】
イントラ予測ユニット254(または概して、モード選択ユニット260)は、符号化ピクチャデータ21の中に含めるためのシンタックス要素266の形式でイントラ予測パラメータ(または概して、ブロック用の選択されたイントラ予測モードを示す情報)をエントロピー符号化ユニット270に出力するようにさらに構成され、その結果、たとえば、ビデオデコーダ30は、復号のために予測パラメータを受信および使用し得る。
【0125】
インター予測
インター予測モードのセット(または、可能なインター予測モード)は、利用可能な参照ピクチャ(すなわち、たとえば、DBP230の中に記憶されている、少なくとも部分的に復号された、以前のピクチャ)、ならびに他のインター予測パラメータ、たとえば、最良に整合する参照ブロックを求めて探索するために参照ピクチャ全体が使用されるのか、それとも一部のみ、たとえば、参照ピクチャの現在のブロックのエリアの周囲の探索ウィンドウエリアが使用されるのか、ならびに/または、たとえば、ピクセル補間、たとえば、ハーフペル補間/セミペル補間、クォーターペル補間および/もしくは1/16ペル補間が適用されるか否かに依存する。
【0126】
上記の予測モードに加えて、スキップモード、ダイレクトモード、および/または他のインター予測モードが適用されてよい。
【0127】
たとえば、拡張されたマージ予測、そのようなモードのマージ候補リストは、以下の5つのタイプの候補、すなわち、空間的な隣接CUからの空間的なMVP、コロケートCUからの時間的なMVP、FIFOテーブルからの履歴ベースのMVP、ペアワイズ平均MVP、およびゼロMVを、順に含めることによって構成される。そして、マージモードのMVの確度を向上させるために、双方向マッチングベースのデコーダ側動きベクトル改良(DMVR:decoder side motion vector refinement)が適用され得る。動きベクトル差分を伴うマージモードから来る、MVDを伴うマージモード(MMVD:merge mode with MVD)。CUに対してMMVDモードが使用されるかどうかを指定するために、スキップフラグおよびマージフラグを送った直後にMMVDフラグがシグナリングされる。そして、CUレベルの適応型動きベクトル解像度(AMVR:adaptive motion vector resolution)方式が適用され得る。AMVRにより、CUのMVDが異なる精度でコーディングされることが可能になる。現在のCU用の予測モードに応じて、現在のCUのMVDが適応的に選択され得る。CUがマージモードでコーディングされるとき、組合せ型インター/イントラ予測(CIIP:combined inter/intra prediction)モードが現在のCUに適用され得る。CIIP予測を取得するために、インター予測信号とイントラ予測信号との重み付き平均化が実行される。アフィン動き補償予測、ブロックのアフィン動きフィールドは、2つの制御点の動き情報(4パラメータ)または3つの制御点動きベクトル(6パラメータ)によって記述される。サブブロックベースの時間的な動きベクトル予測(SbTMVP:subblock-based temporal motion vector prediction)は、HEVCにおける時間的な動きベクトル予測(TMVP:temporal motion vector prediction)と類似であるが、現在のCU内のサブCUの動きベクトルを予測する。以前にBIOと呼ばれた双方向オプティカルフロー(BDOF:bi-directional optical flow)は、特に乗算の回数および乗算器のサイズの観点から、ずっと少ない計算しか必要としない、より単純なバージョンである。三角区分モード、そのようなモードでは、CUは、対角分割または逆対角分割のいずれかを使用して、2つの三角形状の区分に均等に分割される。さらに、双予測モードは、2つの予測信号の重み付き平均化を可能にするために、単純な平均化を越えて拡張される。
【0128】
インター予測ユニット244は、動き推定(ME:Motion Estimation)ユニットおよび動き補償(MC:Motion Compensation)ユニット(両方とも
図2に示さず)を含んでよい。動き推定ユニットは、動き推定のために、ピクチャブロック203(現在のピクチャ17の現在のピクチャブロック203)および復号ピクチャ231、または少なくとも1つもしくは複数の以前に再構成されたブロック、たとえば、他の/異なる1つもしくは複数の以前に復号されたピクチャ231の再構成ブロックを、受信または取得するように構成され得る。たとえば、ビデオシーケンスは、現在のピクチャおよび以前に復号されたピクチャ231を備えてよく、すなわち言い換えれば、現在のピクチャおよび以前に復号されたピクチャ231は、ビデオシーケンスを形成するピクチャのシーケンスの一部であってよく、またはそれらを形成し得る。
【0129】
エンコーダ20は、たとえば、複数の他のピクチャのうちの同じかまたは異なるピクチャの複数の参照ブロックから参照ブロックを選択し、参照ピクチャ(または、参照ピクチャインデックス)、および/または参照ブロックの位置(x、y座標)と現在のブロックの位置との間のオフセット(空間オフセット)を、インター予測パラメータとして動き推定ユニットに提供するように構成され得る。このオフセットは動きベクトル(MV:Motion Vector)とも呼ばれる。
【0130】
動き補償ユニットは、インター予測パラメータを取得、たとえば受信し、インター予測パラメータに基づいて、またはインター予測パラメータを使用して、インター予測を実行してインター予測ブロック265を取得するように構成される。動き補償ユニットによって実行される動き補償は、動き推定によって決定された動き/ブロックベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度への補間を実行することを伴ってよい。補間フィルタ処理は、知られているピクセルサンプルから追加のピクセルサンプルを生成してよく、したがって、ピクチャブロックをコーディングするために使用され得る候補予測ブロックの個数を潜在的に増大させる。現在のピクチャブロックのPUに対する動きベクトルを受信すると、動き補償ユニットは、参照ピクチャリストのうちの1つの中で動きベクトルが指し示す先の予測ブロックの位置を特定し得る。
【0131】
動き補償ユニットはまた、ビデオスライスのピクチャブロックを復号する際のビデオデコーダ30による使用のために、ブロックおよびビデオスライスに関連するシンタックス要素を生成し得る。スライスおよびそれぞれのシンタックス要素に加えて、またはそれらの代替として、タイルグループおよび/またはタイルならびにそれぞれのシンタックス要素が生成または使用されてよい。
【0132】
エントロピーコーディング
エントロピー符号化ユニット270は、量子化係数209、インター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ、および/または他のシンタックス要素に対して、たとえば、エントロピー符号化アルゴリズムまたはエントロピー符号化方式(たとえば、可変長コーディング(VLC)方式、コンテキスト適応型VLC方式(CAVLC)、算術コーディング方式、2値化方式、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率区間区分エントロピー(PIPE)コーディング、または別のエントロピー符号化方法または技法)、あるいはバイパス(圧縮なし)を適用して、たとえば、符号化ビットストリーム21の形式で、出力部272を介して出力され得る符号化ピクチャデータ21を取得するように構成され、その結果、たとえば、ビデオデコーダ30は、復号のためにパラメータを受信および使用し得る。符号化ビットストリーム21は、ビデオデコーダ30へ送信されてよく、または後でビデオデコーダ30によって送信するかまたは取り出すためにメモリの中に記憶されてもよい。
【0133】
ビデオエンコーダ20の他の構造的変形が、ビデオストリームを符号化するために使用され得る。たとえば、非変換ベースのエンコーダ20が、いくつかのブロックまたはフレームに対して変換処理ユニット206を用いずに残差信号を直接量子化することができる。別の実装形態では、エンコーダ20は、単一のユニットの中に組み合わせられた量子化ユニット208および逆量子化ユニット210を有することができる。
【0134】
デコーダおよび復号方法
図3は、この本出願の技法を実施するように構成されるビデオデコーダ30の一例を示す。ビデオデコーダ30は、たとえば、エンコーダ20によって符号化された、符号化ピクチャデータ21(たとえば、符号化ビットストリーム21)を受信して、復号ピクチャ331を取得するように構成される。符号化ピクチャデータまたはビットストリームは、符号化ピクチャデータを復号するための情報、たとえば、符号化ビデオスライス(および/または、タイルグループもしくはタイル)のピクチャブロックを表すデータ、および関連するシンタックス要素を備える。
【0135】
図3の例では、デコーダ30は、エントロピー復号ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構成ユニット314(たとえば、加算器314)、ループフィルタ320、復号ピクチャバッファ(DBP)330、モード適用ユニット360、インター予測ユニット344、およびイントラ予測ユニット354を備える。インター予測ユニット344は、動き補償ユニットであってよく、または動き補償ユニットを含んでもよい。ビデオデコーダ30は、いくつかの例では、
図2からのビデオエンコーダ100に関して説明した符号化パスとは概して相反の復号パスを実行し得る。
【0136】
エンコーダ20に関して説明したように、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループフィルタ220、復号ピクチャバッファ(DPB)230、インター予測ユニット344、およびイントラ予測ユニット354はまた、ビデオエンコーダ20の「ビルトインデコーダ」を形成するものとして参照される。したがって、逆量子化ユニット310は逆量子化ユニット110と機能が同一であってよく、逆変換処理ユニット312は逆変換処理ユニット212と機能が同一であってよく、再構成ユニット314は再構成ユニット214と機能が同一であってよく、ループフィルタ320はループフィルタ220と機能が同一であってよく、復号ピクチャバッファ330は復号ピクチャバッファ230と機能が同一であってよい。したがって、ビデオ20エンコーダのそれぞれのユニットおよび機能に対して提供された説明は、それに対応してビデオデコーダ30のそれぞれのユニットおよび機能に適用される。
【0137】
エントロピー復号
エントロピー復号ユニット304は、ビットストリーム21(または概して、符号化ピクチャデータ21)を構文解析し、たとえば、符号化ピクチャデータ21へのエントロピー復号を実行して、たとえば、量子化係数309および/または復号されたコーディングパラメータ(
図3に示さず)、たとえば、インター予測パラメータ(たとえば、参照ピクチャインデックスおよび動きベクトル)、イントラ予測パラメータ(たとえば、イントラ予測モードまたはインデックス)、変換パラメータ、量子化パラメータ、ループフィルタパラメータ、および/または他のシンタックス要素のうちのいずれかまたはすべてを取得するように構成される。エントロピー復号ユニット304は、エンコーダ20のエントロピー符号化ユニット270に関して説明したような符号化方式に対応する復号アルゴリズムまたは復号方式を適用するように構成され得る。エントロピー復号ユニット304は、モード適用ユニット360にインター予測パラメータ、イントラ予測パラメータ、および/または他のシンタックス要素を、またデコーダ30の他のユニットに他のパラメータを提供するように、さらに構成され得る。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルにおいてシンタックス要素を受信し得る。スライスおよびそれぞれのシンタックス要素に加えて、またはそれらの代替として、タイルグループおよび/またはタイルならびにそれぞれのシンタックス要素が受信および/または使用され得る。
【0138】
逆量子化
逆量子化ユニット310は、(たとえば、エントロピー復号ユニット304によって、たとえば、構文解析および/または復号することによって)符号化ピクチャデータ21から量子化パラメータ(QP)(または概して、逆量子化に関係する情報)および量子化係数を受信し、量子化パラメータに基づいて、復号された量子化係数309に対して逆量子化を適用して、変換係数311と呼ばれることもある逆量子化係数311を取得するように構成され得る。逆量子化プロセスは、量子化の程度、および同様に、適用されるべき逆量子化の程度を決定するために、ビデオスライス(または、タイルもしくはタイルグループ)の中のビデオブロックごとの、ビデオエンコーダ20によって決定された量子化パラメータの使用を含んでよい。
【0139】
逆変換
逆変換処理ユニット312は、変換係数311とも呼ばれる逆量子化係数311を受信し、サンプル領域における再構成残差ブロック213を取得するために逆量子化係数311に変換を適用するように構成され得る。再構成残差ブロック213は、変換ブロック313と呼ばれることもある。変換は、逆変換、たとえば、逆DCT変換、逆DST変換、逆整数変換、または概念的に類似の逆変換プロセスであってよい。逆変換処理ユニット312は、逆量子化係数311に適用されるべき変換を決定するために、(たとえば、エントロピー復号ユニット304によって、たとえば、構文解析および/または復号することによって)符号化ピクチャデータ21から変換パラメータまたは対応する情報を受信するようにさらに構成され得る。
【0140】
再構成
再構成ユニット314(たとえば、加算回路(adder)または加算器(summer)314)は、たとえば、再構成残差ブロック313のサンプル値と予測ブロック365のサンプル値とを加算することによって、予測ブロック365に再構成残差ブロック313を加算して、サンプル領域における再構成ブロック315を取得するように構成され得る。
【0141】
フィルタ処理
(コーディングループの中またはコーディングループの後のいずれかの)ループフィルタユニット320は、たとえば、ピクセル遷移を平滑化するか、またはビデオ品質を別の方法で改善するために、再構成ブロック315をフィルタ処理してフィルタ処理済みのブロック321を取得するように構成される。ループフィルタユニット320は、デブロッキングフィルタ、サンプル適応型オフセット(SAO)フィルタ、または1つもしくは複数の他のフィルタ、たとえば、適応型ループフィルタ(ALF)、ノイズ抑圧フィルタ(NSF)、あるいはそれらの任意の組合せなどの、1つまたは複数のループフィルタを備えてよい。一例では、ループフィルタユニット220は、デブロッキングフィルタ、SAOフィルタ、およびALFフィルタを備えてよい。フィルタ処理プロセスの順序は、デブロッキングフィルタ、SAO、およびALFであってよい。別の例では、クロマスケーリング付きルーママッピング(LMCS)(すなわち、適応型ループ内再成型器)と呼ばれるプロセスが追加される。このプロセスはデブロッキングの前に実行される。別の例では、デブロッキングフィルタプロセスはまた、内部のサブブロックエッジ、たとえば、アフィンサブブロックエッジ、ATMVPサブブロックエッジ、サブブロック変換(SBT)エッジ、およびイントラ下位区分(ISP)エッジに適用されてよい。ループフィルタユニット320はループ内フィルタであるものとして
図3に示されるが、他の構成では、ループフィルタユニット320はループ後フィルタとして実装されてもよい。
【0142】
復号ピクチャバッファ
ピクチャの復号されたビデオブロック321は、次いで、他のピクチャに対する後続の動き補償のための、かつ/または出力されるそれぞれ表示用の、参照ピクチャとして復号ピクチャ331を記憶する、復号ピクチャバッファ330の中に記憶される。
【0143】
デコーダ30は、ユーザへの提示または鑑賞のために、たとえば、出力部312を介して復号ピクチャ311を出力するように構成される。
【0144】
予測
インター予測ユニット344は、インター予測ユニット244と(詳細には、動き補償ユニットと)同一であってよく、イントラ予測ユニット354は、機能がインター予測ユニット254と同一であってよく、区分および/もしくは予測パラメータ、または符号化ピクチャデータ21から(たとえば、エントロピー復号ユニット304によって、たとえば、構文解析および/または復号することによって)受信されたそれぞれの情報に基づいて、分割または区分決定および予測を実行する。モード適用ユニット360は、(フィルタ処理されているかまたはフィルタ処理されていない)再構成されたピクチャ、ブロック、またはそれぞれのサンプルに基づいて、ブロックごとに予測(イントラ予測またはインター予測)を実行して、予測ブロック365を取得するように構成され得る。
【0145】
イントラコーディングされた(I)スライスとしてビデオスライスがコーディングされるとき、モード適用ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モード、および現在のピクチャの以前に復号されたブロックからのデータに基づいて、現在のビデオスライスのピクチャブロックに対する予測ブロック365を生成するように構成される。インターコーディングされた(すなわち、BまたはP)スライスとしてビデオピクチャがコーディングされるとき、モード適用ユニット360のインター予測ユニット344(たとえば、動き補償ユニット)は、動きベクトル、およびエントロピー復号ユニット304から受信された他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックに対する予測ブロック365を作り出すように構成される。インター予測の場合、予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから作り出されてよい。ビデオデコーダ30は、DPB330の中に記憶された参照ピクチャに基づいてデフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト0およびリスト1を構築し得る。スライス(たとえば、ビデオスライス)に加えて、またはその代替として、タイルグループ(たとえば、ビデオタイルグループ)および/またはタイル(たとえば、ビデオタイル)を使用する実施形態に対して、またはそうした実施形態によって、同じかまたは類似のことが適用されてよく、たとえば、ビデオは、I、P、またはBタイルグループおよび/またはタイルを使用してコーディングされてよい。
【0146】
モード適用ユニット360は、動きベクトルまたは関連する情報および他のシンタックス要素を構文解析することによって、現在のビデオスライスのビデオブロックに対する予測情報を決定し、予測情報を使用して、復号されている現在のビデオブロックに対する予測ブロックを作り出すように構成される。たとえば、モード適用ユニット360は、受信されたシンタックス要素のうちのいくつかを使用して、ビデオスライスのビデオブロックをコーディングするために使用された予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)、スライス用の参照ピクチャリストのうちの1つまたは複数に対する構成情報、スライスのインター符号化ビデオブロックごとの動きベクトル、スライスのインターコード化ビデオブロックごとのインター予測ステータス、および現在のビデオスライスの中のビデオブロックを復号するための他の情報を決定する。スライス(たとえば、ビデオスライス)に加えて、またはその代替として、タイルグループ(たとえば、ビデオタイルグループ)および/またはタイル(たとえば、ビデオタイル)を使用する実施形態に対して、またはそうした実施形態によって、同じかまたは類似のことが適用されてよく、たとえば、ビデオは、I、P、またはBタイルグループおよび/またはタイルを使用してコーディングされてよい。
【0147】
図3に示すようなビデオデコーダ30の実施形態は、スライス(ビデオスライスとも呼ばれる)を使用することによってピクチャを区分および/または復号するように構成されてよく、ピクチャは、(通常は重複しない)1つまたは複数のスライスに区分され得るか、またはそうしたスライスを使用して復号され得、各スライスは、1つもしくは複数のブロック(たとえば、CTU)、またはブロックの1つもしくは複数のグループ(たとえば、タイル(H.265/HEVCおよびVVC)またはブリック(VVC))を備えてよい。
【0148】
図3に示すようなビデオデコーダ30の実施形態は、スライス/タイルグループ(ビデオタイルグループとも呼ばれる)および/またはタイル(ビデオタイルとも呼ばれる)を使用することによってピクチャを区分および/または復号するように構成されてよく、ピクチャは、(通常は重複しない)1つまたは複数のスライス/タイルグループに区分され得るか、またはそうしたスライス/タイルグループを使用して復号され得、各スライス/タイルグループは、たとえば、1つもしくは複数のブロック(たとえば、CTU)または1つもしくは複数のタイルを備えてよく、各タイルは、たとえば、長方形形状であってよく、1つまたは複数のブロック(たとえば、CTU)、たとえば、全体的または断片的なブロックを備えてよい。
【0149】
ビデオデコーダ30の他の変形が、符号化ピクチャデータ21を復号するために使用され得る。たとえば、デコーダ30は、ループフィルタ処理ユニット320を用いずに出力ビデオストリームを作り出すことができる。たとえば、非変換ベースのデコーダ30が、いくつかのブロックまたはフレームに対して逆変換処理ユニット312を用いずに残差信号を直接逆量子化することができる。別の実装形態では、ビデオデコーダ30は、単一のユニットの中に組み合わせられた逆量子化ユニット310および逆変換処理ユニット312を有することができる。
【0150】
エンコーダ20およびデコーダ30において、現在のステップの処理結果がさらに処理されてよく、次いで、次のステップに出力されてよいことを理解されたい。たとえば、補間フィルタ処理、動きベクトル導出、またはループフィルタ処理の後、補間フィルタ処理、動きベクトル導出、またはループフィルタ処理の処理結果に対して、クリップまたはシフトなどのさらなる演算が実行されてよい。
【0151】
現在のブロックの導出された動きベクトル(限定はしないが、アフィンモードの制御点動きベクトル、アフィンモード、平面モード、ATMVPモードにおけるサブブロック動きベクトル、時間動きベクトルなどを含む)に、さらなる演算が適用され得ることに留意されたい。たとえば、動きベクトルの値は、その表現ビットに従って既定の範囲に制約される。動きベクトルの表現ビットがbitDepthである場合、範囲は-2^(bitDepth-1)~2^(bitDepth-1)-1であり、ただし、「^」は累乗を意味する。たとえば、bitDepthが16に等しく設定される場合、範囲は-32768~32767であり、bitDepthが18に等しく設定される場合、範囲は-131072~131071である。たとえば、導出される動きベクトル(たとえば、1つの8×8ブロック内の4つの4×4サブブロックのMV)の値は、4つの4×4サブブロックMVの整数部分の間の最大差分が、1ピクセル以下などの、Nピクセル以下となるように制約される。ここで、bitDepthに従って動きベクトルを制約するための2つの方法を提供する。
【0152】
図4は、本開示の一実施形態によるビデオコーディングデバイス400の概略図である。ビデオコーディングデバイス400は、本明細書で説明するような開示する実施形態を実施するのに適している。一実施形態では、ビデオコーディングデバイス400は、
図1Aのビデオデコーダ30などのデコーダ、または
図1Aのビデオエンコーダ20などのエンコーダであってよい。
【0153】
ビデオコーディングデバイス400は、データを受信するための入口ポート410(または、入力ポート410)および受信機ユニット(Rx)420、データを処理するためのプロセッサ、論理ユニット、または中央処理ユニット(CPU)430、データを送信するための送信機ユニット(Tx)440および出口ポート450(または、出力ポート450)、ならびにデータを記憶するためのメモリ460を備える。ビデオコーディングデバイス400はまた、光信号または電気信号の出口または入口のために入口ポート410、受信機ユニット420、送信機ユニット440、および出口ポート450に結合された、光電気(OE:optical-to-electrical)構成要素および電気光(EO:electrical-to-optical)構成要素を備えてよい。
【0154】
プロセッサ430は、ハードウェアおよびソフトウェアによって実装される。プロセッサ430は、1つまたは複数のCPUチップ、コア(たとえば、マルチコアプロセッサ)、FPGA、ASIC、およびDSPとして実装され得る。プロセッサ430は、入口ポート410、受信機ユニット420、送信機ユニット440、出口ポート450、およびメモリ460と通信している。プロセッサ430は、コーディングモジュール470を備える。コーディングモジュール470は、上記で説明した開示する実施形態を実施する。たとえば、コーディングモジュール470は、様々なコーディング動作を実施、処理、準備、または提供する。したがって、コーディングモジュール470を含むことは、ビデオコーディングデバイス400の機能性に大幅な改善をもたらし、異なる状態へのビデオコーディングデバイス400の変形をもたらす。代替として、コーディングモジュール470は、メモリ460の中に記憶されプロセッサ430によって実行される命令として実装される。
【0155】
メモリ460は、1つまたは複数のディスク、テープドライブ、およびソリッドステートドライブを備えてよく、実行のためにそのようなプログラムが選択されるときにプログラムを記憶するための、かつプログラム実行中に読み取られる命令およびデータを記憶するための、オーバーフローデータ記憶デバイスとして使用されてよい。メモリ460は、たとえば、揮発性および/または不揮発性であってよく、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、3値連想メモリ(TCAM:Ternary Content-Addressable Memory)、および/またはスタティックランダムアクセスメモリ(SRAM)であってよい。
【0156】
図5は、例示的な実施形態による
図1からのソースデバイス12および宛先デバイス14のうちのどちらか一方または両方として使用され得る装置500の簡略化されたブロック図である。
【0157】
装置500の中のプロセッサ502は中央処理ユニットであり得る。代替として、プロセッサ502は、現存するかまたは今後開発される、情報を操作または処理することが可能な任意の他のタイプのデバイスまたは複数のデバイスであり得る。開示する実装形態は図示のように単一のプロセッサ、たとえば、プロセッサ502を用いて実践され得るが、速度および効率における利点は、2つ以上のプロセッサを使用して達成され得る。
【0158】
装置500の中のメモリ504は、一実装形態では読取り専用メモリ(ROM)デバイスまたはランダムアクセスメモリ(RAM)デバイスであり得る。任意の他の好適なタイプの記憶デバイスが、メモリ504として使用され得る。メモリ504は、バス512を使用してプロセッサ502によってアクセスされるコードおよびデータ506を含むことができる。メモリ504は、オペレーティングシステム508およびアプリケーションプログラム510をさらに含むことができ、アプリケーションプログラム510は、ここで説明する方法をプロセッサ502が実行することを可能にする少なくとも1つのプログラムを含む。たとえば、アプリケーションプログラム510は、アプリケーション1~Nを含むことができ、アプリケーション1~Nは、ここで説明する方法を実行するビデオコーディングアプリケーションをさらに含む。
【0159】
装置500はまた、ディスプレイ518などの1つまたは複数の出力デバイスを含むことができる。ディスプレイ518は、一例では、ディスプレイを、タッチ入力を感知するように動作可能なタッチ感応性要素と組み合わせる、タッチ感応性ディスプレイであってよい。ディスプレイ518は、バス512を介してプロセッサ502に結合され得る。
【0160】
ここでは単一のバスとして示されるが、装置500のバス512は複数のバスからなり得る。さらに、2次ストレージ514が、装置500の他の構成要素に直接結合され得るか、またはネットワークを介してアクセスされ得、メモリカードなどの単一の統合ユニット、または複数のメモリカードなどの複数のユニットを備えることができる。したがって、装置500は多種多様な構成で実装され得る。
【0161】
現在のハイブリッドビデオコーデックは、予測コーディングを採用する。ビデオシーケンスのピクチャは、ピクセルのブロックに再分割され、これらのブロックは、次いで、コーディングされる。ピクセルごとにブロックをコーディングするのではなく、ブロック全体が、ブロックの空間的または時間的な近傍の中の、前に符号化されたピクセルを使用して予測される。エンコーダは、ブロックとその予測との間の差分のみをさらに処理する。さらなる処理は、通常、変換領域における係数へのブロックピクセルの変換を含む。係数は、次いで、(たとえば、量子化によって)さらに圧縮されてよく、(たとえば、エントロピーコーディングによって)さらに凝縮されてビットストリームを形成し得る。ビットストリームは、符号化されたビデオをデコーダが復号することを可能にする、任意のシグナリング情報をさらに含むことができる。たとえば、シグナリングは、入力ピクチャのサイズ、フレームレート、量子化ステップ表示、ピクチャのブロックに適用された予測などの、エンコーダ設定に関係する設定を含んでよい。
【0162】
ブロックとその予測との間の差分は、ブロックの残差と呼ばれる。より詳細には、ブロックの各ピクセルは残差を有し、残差とは、そのピクセルの強度レベルとその予測される強度レベルとの間の差分である。ピクセルの強度レベルは、ピクセル値、またはピクセルの値と呼ばれる。ブロックのすべてのピクセルの残差は、ブロックの残差と総称される。言い換えれば、ブロックは、ブロックのすべてのピクセルの残差を備えるセットまたは行列である、残差を有する。
【0163】
時間予測は、ビデオの、フレームとも呼ばれるピクチャの間の時間的な相関を活用する。時間予測は、異なるビデオフレームの間(インター)の依存関係を使用する予測であるのでインター予測とも呼ばれる。したがって、現在のブロックとも呼ばれる、復号されるべきブロックは、参照ピクチャと呼ばれる、以前に復号された1つまたは複数のピクチャから予測される。1つまたは複数の参照ピクチャは、ビデオシーケンスの表示順序において、必ずしも現在のブロックが位置する現在のピクチャに先行するピクチャであるとは限らない。エンコーダは、表示順序とは異なるコーディング順序でピクチャを符号化し得る。現在のブロックの予測として、参照ピクチャの中の(予測子と呼ばれる)コロケートブロックが決定され得る。コロケートブロックは、現在のピクチャの中の現在のブロックと同じ位置上で参照ピクチャの中に位置し得る。そのような予測は、静止したピクチャ領域、すなわち、あるピクチャから別のピクチャへの移動を伴わないピクチャ領域にとって正確である。
【0164】
エンコーダでは、移動を考慮に入れる予測子、すなわち、動き補償された予測子を取得するために、動き推定が通常は採用される。現在のブロックは、動きベクトルによって示される位置において参照ピクチャの中に位置するブロックによって予測される。動きベクトルは、コロケートブロックの位置から現在のブロックの位置までを指し示す(または、符号規約に応じてその逆も同様である)。現在のブロックの、エンコーダと同じ予測をデコーダが決定することを可能にするために、動きベクトルはビットストリームの中でシグナリングされてよい。ブロックの各々に対する動きベクトルをシグナリングすることによって引き起こされるシグナリングオーバーヘッドをさらに低減するために、動きベクトル自体が推定され得る。動きベクトル推定は、空間領域および/または時間領域において現在のブロックのネイバーであるブロックの、動きベクトルに基づいて実行され得る。
【0165】
現在のブロックの予測は、1つの参照ピクチャを使用して、または2つ以上の参照ピクチャから取得された予測を重み付けることによって、算出され得る。隣接するピクチャは現在のピクチャと類似である可能性が最も高いので、参照ピクチャは、隣接するピクチャ、すなわち、表示順序において現在のピクチャの直前または直後のピクチャであってよい。参照ピクチャはまた、表示順序において現在のピクチャに先行または後続するとともに、ビットストリーム(復号順序)において現在のピクチャに先行する、任意のピクチャであってよい。このことは、たとえば、ビデオコンテンツの中での閉塞および/または非線形移動の場合に、利点をもたらし得る。参照ピクチャは、ビットストリームの中でシグナリングされてよい。
【0166】
インター予測の特別なモードは、現在のブロックの予測を生成する際に2つの参照ピクチャが使用される、いわゆる双予測である。詳細には、それぞれの2つの参照ピクチャの中で決定される2つの予測が組み合わせられて、現在のブロックの予測信号になる。双予測は、単予測、すなわち、単一の参照ピクチャしか使用しない予測よりも正確な、現在のブロックの予測をもたらすことができる。より正確な予測は、現在のブロックのピクセルと、より効率的に符号化され得る予測との間のより小さい差分に(すなわち、より小さい残差に)、すなわち、より少ないコーディングビットにつながる。
【0167】
より正確な動き推定を提供するために、参照ピクチャの解像度は、たとえば、ピクセル間でサンプルを補間することによって、拡張され得る。最も近いピクセルの重み付き平均化によって、分数ピクセル補間が実行され得る。たとえば、ハーフピクセル解像度の場合には、双線形補間が使用され得る。他の分数ピクセルは、たとえば、予測中のピクセルに最も近いそれぞれのピクセル間の距離の逆数によって重み付けられた、最も近いピクセルの平均として計算され得る。
【0168】
動きベクトルは、たとえば、現在のブロックと参照ピクチャの中の候補動きベクトルによって指し示される対応する予測ブロックとの間の類似度を計算することによって、推定され得る。計算量を低減するために、候補動きベクトルの個数は、候補動きベクトルをいくつかの探索空間に限定することによって低減され得る。探索空間は、たとえば、現在の画像の中の現在のブロックの位置に対応する参照ピクチャの中の位置を取り囲む、ピクセルの個数および/または位置によって規定され得る。代替として、候補動きベクトルは、隣接ブロックの動きベクトルから形成された、候補動きベクトルのリストによって規定され得る。
【0169】
動きベクトルは、通常、エンコーダ側において少なくとも部分的に決定され、コード化ビットストリーム内でデコーダにシグナリングされる。動きベクトルは、デコーダにおいても導出され得る。そのような場合、現在のブロックは、デコーダにおいて利用可能でなく、現在のブロックと参照ピクチャの中で候補動きベクトルが指し示す先のブロックのうちのいずれかとの間の、類似度を計算するために使用され得ない。したがって、現在のブロックではなく、以前に復号されたブロックのピクセルから構成され得るテンプレートが使用され得る。たとえば、現在のブロックに隣接する、以前に復号されたピクセルが使用され得る。そのような動き推定は、シグナリングを低減するという利点をもたらし、動きベクトルは、エンコーダとデコーダの両方において同様の方法で導出され、したがって、シグナリングが必要とされない。一方、そのような動き推定の確度はより低い場合がある。
【0170】
確度とシグナリングオーバーヘッドとの間のトレードオフを与えるために、動きベクトル推定は、2つのステップ、すなわち、動きベクトル導出および動きベクトル改良に分割され得る。たとえば、動きベクトル導出は、候補のリストからの動きベクトルの選択を含んでよい。選択された動きベクトルは、たとえば、探索空間内での探索によって、さらに改良され得る。探索空間の中での探索は、候補動きベクトルごとに、すなわち、候補動きベクトルが指し示す先のブロックの候補位置ごとに、コスト関数を計算することに基づく。
【0171】
文書JVET-D0029:Decoder-Side Motion Vector Refinement Based on Bilateral Template Matching、X.Chen、J.An、J.Zheng(その文書は、http://phenix.it-sudparis.eu/jvet/siteにおいて見つけられ得る)は、整数ピクセル解像度での最初の動きベクトルが見つけられ、最初の動きベクトルの周囲の探索空間の中でハーフピクセル解像度を用いた探索によってさらに改良される、動きベクトル改良を示す。ここで、ピクセル解像度(たとえば、整数または半整数)は、探索空間の解像度、すなわち、プロセスに入力される改良されていない動きベクトルへの、探索される点の変位を表す。その結果、改良ステージの探索座標は、必ずしも画像平面上の実際のピクセル座標と一致するとは限らない。
【0172】
動きベクトル改良は、エンコーダからの支援を伴わずにデコーダにおいて実行され得る。エンコーダの中のデコーダループは、対応する参照ピクチャを取得するために、同じ改良を採用し得る。改良は、テンプレートを決定すること、探索空間を決定すること、およびテンプレートに最良に整合する参照ピクチャ部分の位置を探索空間の中に見つけることによって実行され得る。最良の整合部分位置が最良の動きベクトルを決定し、そうした動きベクトルが、次いで、現在のブロックの予測子を取得するために使用され、すなわち、現在のブロックが再構成される。
【0173】
一実施形態では、
図6に示すように、インター予測方法は以下のことを備える。
【0174】
S601:現在のブロックに対する初期動きベクトルを取得する。
【0175】
正確な動きベクトルの最初の推定値または近似値として見られ得る、初期動きベクトルMV0が取得される。たとえば、MV0は、候補動きベクトルのリストから選択され得る。リストは、現在のブロックに隣接する少なくとも1つのブロックの動きベクトルを含んでよい。代替として、MV0は、エンコーダ側において、整合するブロックによって取得されてよく、ビットストリーム内でデコーダ側にシグナリングされてよい。それに対応して、デコーダ側において、初期動きベクトルMV0はビットストリームから取得され得る。たとえば、候補のリストへのインデックスがビットストリームから抽出され、そのインデックスによって識別される動きベクトル候補が初期動きベクトルMV0として提供される。
【0176】
代替として、MV0の座標がビットストリームから直接抽出される。本出願が初期動きベクトルMV0を取得するいかなる特定の方法にも限定されないことに留意されたい。たとえば、MV0は、エンコーダおよびデコーダにおいて、同様の方法でテンプレートマッチングによって決定されてよい。そして代替として、動きベクトルは、空間領域または時間領域において、現在のブロックの隣接ブロックの動きベクトルに応じて予測されてよい。
【0177】
初期動きベクトルMV0は、現在のブロックのインター予測において使用されるべき最終の動きベクトルMV0''の初期推定値である。それは、改良プロセスのための入力を構成し、改良プロセスの終了において最終の動きベクトルMV0''が出力される。
【0178】
S602:初期動きベクトルに従って探索空間位置を決定する。
【0179】
探索空間位置が中心探索位置および隣接探索空間位置を備え、中心探索空間位置が初期動きベクトルによって指し示されることを想定する。実現可能な実装形態では、ステップS602は、初期動きベクトルに従って中心探索空間位置を決定することと、1つまたは複数の事前設定済みのオフセットおよび中心探索空間位置に従って隣接探索空間位置を決定することとを備える。
【0180】
実現可能な実装形態では、探索空間は、探索空間位置から構成され、探索空間のパターンは、5×5の探索空間位置正方形である。
【0181】
一例として、探索空間は初期動きベクトルMV0に従って構成され、1つまたは複数の候補動きベクトルは初期動きベクトルに関係する。次いで、(探索空間位置の座標に対応する)動きベクトルMV0''が、初期動きベクトルMV0および1つまたは複数の候補動きベクトルからの整合コストに従って選択される。(S603)探索空間のいくつかの候補動きベクトルについて、本出願の異なる実施形態におけるステージの各々において決定されるそれぞれの部分的な探索空間のすべての候補動きベクトル用であってよく、コストが探索空間構成の一部として探索空間構成中に計算され得ることに留意されたい。
【0182】
実現可能な実装形態では、現在のブロックに対する候補動きベクトルは、現在のピクチャの中の現在のブロックの左上のピクセルから、参照ピクチャの中の候補予測ブロックのそれぞれの左上のピクセルまでを指し示す。候補予測ブロックの左上のピクセルは、そのように参照ピクチャの中の探索空間を表す。ブロックの左上のピクセルは、ブロックの位置と見なされる。ブロックの任意の他のピクセルがブロックの位置と見なされ得ることに留意されたく、同じ位置規約がすべてのブロックに適用されることが理解される。たとえば、動きベクトルは、現在のブロックの中心ピクセルからそれぞれの候補ブロックの中心ピクセルまで及ぶものとして、同等に規定されてよい。
【0183】
初期動きベクトルを含むすべての候補動きベクトルが、探索空間位置である、参照ピクチャの中のピクセルを指し示すことに留意されたい。そして、初期動きベクトルによって指し示されるピクセルと、他の候補動きベクトルによって指し示されるピクセルとの間の座標位置関係は、初期動きベクトルと他の候補動きベクトルとの間の1つまたは複数の動きベクトルオフセットによって表されてよい。
【0184】
1つまたは複数の動きベクトルオフセットは事前決定されてよい。そのことは、中心探索位置と隣接探索空間位置との間のロケーション関係が事前決定されてよいことを意味する。
【0185】
S603:最小整合コストを有する目標探索空間位置を選択するために、検査順序に従って探索空間位置の整合コストを検査する。
【0186】
実現可能な実装形態では、検査順序に従って探索空間位置の各々の整合コストを順に検査し、探索空間位置のうちの最小整合コストを有する探索空間位置を目標探索空間位置として選択する。
【0187】
整合コストはコスト関数によって測定されてよく、コスト関数は、たとえば、動きベクトル候補によって指し示されるロケーションの中の、テンプレートとテンプレートに対応する参照ピクチャエリアとの間の絶対差分和であってよい。すべての候補動きベクトルに対して絶対差分和(SAD:sum of absolute differences)を計算した後、SADが最も小さい候補が選択される。SADが一例にすぎないことに留意されたい。コスト関数は、SAD(絶対差分和)、MRSAD(平均除去絶対差分和)、SSE (2乗誤差和)、または類似度を表すための任意の他のコスト関数であり得る。探索空間位置の整合コストの間の比較に基づいて最良の動きベクトルが選択される。
【0188】
実現可能な実装形態では、探索空間位置のうちの1つの整合コストを一時的最小整合コストと比較し、探索空間位置のうちの1つの整合コストが一時的最小整合コストよりも小さいとき、探索空間位置のうちの1つの整合コストを一時的最小整合コストとして設定し、探索空間位置のうちの最後の1つが検査された後、一時的最小整合コストを最小整合コストとして設定する。
【0189】
一実施形態では、探索空間は、
図7に示すような正方形パターンであってよい。一例として、初期動きベクトルによって指し示されるピクセルは、座標系の(0,0)と見なされる。そして座標系において、水平の右方が正の水平方向と見なされ、垂直の下方が正の垂直方向と見なされる。
【0190】
探索空間は、25個の探索空間位置を備えてよい。そして、座標(-2,-2)、(2,2)、(-2,2)、および(2,-2)を有するピクセルは、正方形パターンの隅角である。
【0191】
25個の探索空間位置は、検査順序を規定するための1つまたは複数のグループに分割される。そして、様々な実施形態によれば、探索空間位置を1つまたは複数のグループに分割するステップは必要でない場合があり、そうしたステップは、ある種類の検査順序の設計が決定されることを明瞭に表すためにすぎないことに留意されたい。
【0192】
第1の特定の実施形態では、25個の探索空間位置が2つのグループに分割される。
グループI:(0,0)。
グループII:すべての他の探索空間位置。
【0193】
図8に示すように、各探索空間位置の数は、検査順序に従って各探索空間位置の順序を表し、より小さい数を用いてマークされた位置は、より大きい数を用いてマークされた位置よりも前に検査される。「1」としてマークされた位置(0,0)が最初に検査され、次いで、グループIIの中の他の探索空間位置が、水平検査順序に従って(ラインごとに左から右へ)検査される。したがって、検査順序は、(0,0)、(-2,-2)、(-1,-2)、(0,-2)、(1,-2)、(2,-2)、(-2,-1)、(-1,-1)、(0,-1)、(1,-1)、(2,-1)、(-2,0)、(-1,0)、(1,0)、(2,0)、(-2,1)、(-1,1)、(0,1)、(1,1)、(2,1)、(-2,2)、(-1,2)、(0,2)、(1,2)、(2,2)である。グループIIの中の探索空間位置がまた、垂直検査順序(列ごとに上から下へ)、ジグザグの検査順序などのような、他の検査順序に従って検査される場合があることに留意されたい。
【0194】
現在の実施形態では、探索空間の中心位置が最初に検査され、次いで、他の探索空間位置が、事前設定済みの検査順序に基づいて検査される。そのことはまた、非正方形パターンの探索空間に基づいて実施され得る。一例として、それは21個の探索空間位置を有する十字形パターンであってよく、
図9として示される検査順序に対応する。別の例として、それは17個の探索空間位置を有する英国国旗パターンであってよく、
図10として示される検査順序に対応する。
【0195】
第2の特定の実施形態では、グループIIは、より多くのグループにさらに分割され得、たとえば、25個の探索空間位置が4つのグループに分割される。
グループI:(0,0)。
グループII:(-1,0)、(0,1)、(1,0)、(0,-1)(垂直方向または水平方向における中心位置の隣接する位置)。
グループIII:(-1,-1)、(-1,1)、(1,1)、(1,-1)(位置は、中心位置から1ピクセルサンプルだけ離れており、第2のグループの中に備えられない)。
グループIV:すべての他の探索空間位置。
【0196】
グループI、I、III、およびIVが、順に検査される。同じグループ内の検査順序が限定されず、たとえば、グループIIの場合、検査順序が、(-1,0)、(0,1)、(1,0)、(0,-1)、または(-1,0)、(1,0)、(0,1)、(0,-1)であってよいことに留意されたい。グループIVの中の探索空間位置がまた、(時計回りまたは反時計回りのような)異なる検査順序に従って、かつ(探索空間の左上のピクセル、またはグループIVの中の他の位置のような)異なる開始検査点とともに、検査される場合があることにも留意されたい。
図7の一例として、検査順序は、(0,0)、(-1,0)、(0,1)、(1,0)、(0,-1)、(-1,-1)、(-1,1)、(1,1)、(1,-1)、(-2,0)、(-2,1)、(-2,2)、(-1,2)、(0,2)、(1,2)、(2,2)、(2,1)、(2,0)、(2,-1)、(2,-2)、(1,-2)、(0,-2)、(-1,-2)、(-2,-2)、(-2,-1)である。
【0197】
そのことはまた、他のパターンの探索空間に基づいて実施され得る。一例として、それは13個の探索空間位置を有する菱形パターンであってよく、
図11として示される検査順序に対応する。
【0198】
第3の特定の実施形態では、グループIVは、より多くのグループさらに分割され得、たとえば、25個の探索空間位置が5つのグループに分割される。
グループI:(0,0)。
グループII:(-1,0)、(0,1)、(1,0)、(0,-1)(垂直方向または水平方向における中心位置の隣接する位置)。
グループIII:(-1,-1)、(-1,1)、(1,1)、(1,-1)(位置は、中心位置から1ピクセルサンプルだけ離れており、第2のグループの中に備えられない)。
グループIV:(-2,0)、(0,2)、(2,0)、(0,-2)(位置は、垂直方向/水平方向において中心位置から2ピクセルサンプルだけ離れており、他方の水平方向/垂直方向において中心位置から0ピクセルサンプルだけ離れている)。
グループV:すべての他の探索空間位置。
【0199】
図12に示すように、一例として、検査順序は、(0,0)、(-1,0)、(0,1)、(1,0)、(0,-1)、(-1,-1)、(-1,1)、(1,1)、(1,-1)、(-2,0)、(0,2)、(2,0)、(0,-2)、(-2,-1)、(-2,1)、(-2,2)、(-1,2)、(1,2)、(2,2)、(2,1)、(2,-1)、(2,-2)、(1,-2)、(-1,-2)、(-2,-2)である。
【0200】
第4の特定の実施形態では、グループVは、より多くのグループにさらに分割され得、たとえば、25個の探索空間位置が6つのグループに分割される。
グループI:(0,0)。
グループII:(-1,0)、(0,1)、(1,0)、(0,-1)(垂直方向または水平方向における中心位置の隣接する位置)。
グループIII:(-1,-1)、(-1,1)、(1,1)、(1,-1)(位置は、中心位置から1ピクセルサンプルだけ離れており、第2のグループの中に備えられない)。
グループIV:(-2,0)、(0,2)、(2,0)、(0,-2)(位置は、垂直方向/水平方向において中心位置から2ピクセルサンプルだけ離れており、他方の水平方向/垂直方向において中心位置から0ピクセルサンプルだけ離れている)。
グループV:(-2,-2)、(-2,2)、(2,2)、(2,-2)(位置は、垂直方向と水平方向の両方において中心位置から2ピクセルサンプルだけ離れている)。
グループVI:すべての他の探索空間位置。
【0201】
図13に示すように、一例として、検査順序は、(0,0)、(-1,0)、(0,1)、(1,0)、(0,-1)、(-1,-1)、(-1,1)、(1,1)、(1,-1)、(-2,0)、(0,2)、(2,0)、(0,-2)、(-2,-2)、(-2,2)、(2,2)、(2,-2)、(-2,-1)、(-2,1)、(-1,2)、(1,2)、(2,1)、(2,-1)、(1,-2)、(-1,-2)である。
【0202】
第5の特定の実施形態では、25個の探索空間位置は分割されない。それらは、事前設定済みの検査順序、たとえば、水平の検査順序に従って検査される。
図14に示すように、一例として、検査順序は、(-2,-2)、(-1,-2)、(0,-2)、(1,-2)、(2,-2)、(-2,-1)、(-1,-1)、(0,-1)、(1,-1)、(2,-1)、(-2,0)、(-1,0)、(0,0)、(1,0)、(2,0)、(-2,1)、(-1,1)、(0,1)、(1,1)、(2,1)、(-2,2)、(-1,2)、(0,2)、(1,2)、(2,2)である。
【0203】
S604:初期動きベクトルおよび目標探索空間位置に基づいて現在のブロックの改良動きベクトルを決定する。
【0204】
改良動きベクトルMV0''は、目標探索空間位置を指し示す動きベクトルである。そして、目標探索空間位置と中心探索空間位置との間のオフセットが最初に導出され得、次いで、改良動きベクトルMV0''も、初期動きベクトルとオフセットとを加算することによって導出され得る。
【0205】
図15は、本出願のインター予測装置1500を示す。
【0206】
インター予測装置1500は、現在のブロックに対する初期動きベクトルを取得するように構成された、取得モジュール1501と、初期動きベクトルに従って探索空間位置を決定するように構成された、設定モジュール1502と、最小整合コストを有する目標探索空間位置を選択するために、検査順序に従って探索空間位置の整合コストを検査するように構成された、計算モジュール1503と、初期動きベクトルおよび目標探索空間位置に基づいて現在のブロックの改良動きベクトルを決定するように構成された、予測モジュール1504とを備え、中心探索空間位置が検査順序に従って最初に検査され、中心探索空間位置が初期動きベクトルによって指し示される。
【0207】
実現可能な実装形態では、探索空間位置は、中心探索位置および隣接探索空間位置を備え、設定モジュール1502は、初期動きベクトルに従って中心探索空間位置を決定し、1つまたは複数の事前設定済みのオフセットおよび中心探索空間位置に従って隣接探索空間位置を決定するように構成される。
【0208】
実現可能な実装形態では、探索空間は、探索空間位置から構成され、探索空間のパターンは、5×5の探索空間位置正方形である。
【0209】
実現可能な実装形態では、計算モジュール1503は、検査順序に従って探索空間位置の各々の整合コストを順に検査し、探索空間位置のうちの最小整合コストを有する探索空間位置を目標探索空間位置として選択するように構成される。
【0210】
実現可能な実装形態では、計算モジュール1503は、探索空間位置のうちの1つの整合コストを一時的最小整合コストと比較し、探索空間位置のうちの1つの整合コストが一時的最小整合コストよりも小さいとき、探索空間位置のうちの1つの整合コストを一時的最小整合コストとして設定し、探索空間位置のうちの最後の1つが検査された後、一時的最小整合コストを最小整合コストとして設定するように構成される。
【0211】
実現可能な実装形態では、中心探索空間位置が座標系の(0,0)として設定され、水平の右方が正の水平方向として設定され、垂直の下方が正の垂直方向として設定される。
【0212】
実現可能な実装形態では、検査順序は、(0,0)、(-2,-2)、(-1,-2)、(0,-2)、(1,-2)、(2,-2)、(-2,-1)、(-1,-1)、(0,-1)、(1,-1)、(2,-1)、(-2,0)、(-1,0)、(1,0)、(2,0)、(-2,1)、(-1,1)、(0,1)、(1,1)、(2,1)、(-2,2)、(-1,2)、(0,2)、(1,2)、(2,2)である。
【0213】
実現可能な実装形態では、検査順序は、(0,0)、(-1,0)、(0,1)、(1,0)、(0,-1)、(-1,-1)、(-1,1)、(1,1)、(1,-1)、(-2,0)、(-2,1)、(-2,2)、(-1,2)、(0,2)、(1,2)、(2,2)、(2,1)、(2,0)、(2,-1)、(2,-2)、(1,-2)、(0,-2)、(-1,-2)、(-2,-2)、(-2,-1)である。
【0214】
実現可能な実装形態では、検査順序は、(0,0)、(-1,0)、(0,1)、(1,0)、(0,-1)、(-1,-1)、(-1,1)、(1,1)、(1,-1)、(-2,0)、(0,2)、(2,0)、(0,-2)、(-2,-1)、(-2,1)、(-2,2)、(-1,2)、(1,2)、(2,2)、(2,1)、(2,-1)、(2,-2)、(1,-2)、(-1,-2)、(-2,-2)である。
【0215】
実現可能な実装形態では、検査順序は、(0,0)、(-1,0)、(0,1)、(1,0)、(0,-1)、(-1,-1)、(-1,1)、(1,1)、(1,-1)、(-2,0)、(0,2)、(2,0)、(0,-2)、(-2,-2)、(-2,2)、(2,2)、(2,-2)、(-2,-1)、(-2,1)、(-1,2)、(1,2)、(2,1)、(2,-1)、(1,-2)、(-1,-2)である。
【0216】
図16は、本出願のインター予測装置1600を示し、装置1600はデコーダまたはエンコーダであってよい。装置1600は、1つまたは複数のプロセッサ1601と、プロセッサに結合されプロセッサによる実行のためのプログラミングを記憶する非一時的コンピュータ可読記憶媒体1602とを備え、プログラミングは、プロセッサによって実行されたとき、
図6における方法を実行するようにデコーダを構成する。
【0217】
別の実施形態では、コンピュータプログラム製品は、コンピュータ上またはプロセッサ上で実行されたとき、
図6における方法を実行するためのプログラムコードを備える。
【0218】
別の実施形態では、非一時的コンピュータ可読媒体は、コンピュータデバイスによって実行されたとき、
図6における方法をコンピュータデバイスに実行させるプログラムコードを搬送する。
【0219】
以下のことは、符号化方法、ならびに上述の実施形態に示すような復号方法、およびそれらを使用するシステムの、適用例の説明である。
【0220】
図17は、コンテンツ配信サービスを実現するためのコンテンツ供給システム3100を示すブロック図である。このコンテンツ供給システム3100は、キャプチャデバイス3102、端末デバイス3106を含み、ディスプレイ3126を随意に含む。キャプチャデバイス3102は、通信リンク3104を介して端末デバイス3106と通信する。通信リンクは、上記で説明した通信チャネル13を含んでよい。通信リンク3104は、限定はしないが、WIFI、Ethernet(登録商標)、ケーブル、ワイヤレス(3G/4G/5G)、USB、またはそれらの任意の種類の組合せなどを含む。
【0221】
キャプチャデバイス3102は、データを生成し、上記の実施形態で示すような符号化方法によってデータを符号化し得る。代替として、キャプチャデバイス3102は、ストリーミングサーバ(図に示さず)にデータを配信してよく、サーバは、データを符号化し、符号化データを端末デバイス3106へ送信する。キャプチャデバイス3102は、限定はしないが、カメラ、スマートフォンもしくはパッド、コンピュータもしくはラップトップ、ビデオ会議システム、PDA、車両搭載型デバイス、またはそれらのうちのいずれかの組合せなどを含む。たとえば、キャプチャデバイス3102は、上記で説明したようなソースデバイス12を含んでよい。データがビデオを含むとき、キャプチャデバイス3102の中に含まれるビデオエンコーダ20が、実際にビデオ符号化処理を実行し得る。データがオーディオ(すなわち、音声)を含むとき、キャプチャデバイス3102の中に含まれるオーディオエンコーダが、実際にオーディオ符号化処理を実行し得る。いくつかの実際的なシナリオに対して、キャプチャデバイス3102は、符号化されたビデオおよびオーディオデータを、それらを一緒に多重化することによって配信する。他の実際的なシナリオに対して、たとえば、ビデオ会議システムでは、符号化オーディオデータおよび符号化ビデオデータは多重化されない。キャプチャデバイス3102は、符号化オーディオデータおよび符号化ビデオデータを端末デバイス3106に別々に配信する。
【0222】
コンテンツ供給システム3100において、端末デバイス310は、符号化データを受信および再生する。端末デバイス3106は、上述の符号化データを復号することが可能な、スマートフォンもしくはパッド3108、コンピュータもしくはラップトップ3110、ネットワークビデオレコーダ(NVR)/デジタルビデオレコーダ(DVR)3112、TV3114、セットトップボックス(STB)3116、ビデオ会議システム3118、ビデオ監視システム3120、携帯情報端末(PDA)3122、車両搭載型デバイス3124、またはそれらのうちのいずれかの組合せなどの、データ受信および復元能力を有するデバイスであり得る。たとえば、端末デバイス3106は、上記で説明したような宛先デバイス14を含んでよい。符号化データがビデオを含むとき、端末デバイスの中に含まれるビデオデコーダ30は、ビデオ復号を実行するように優先させられる。符号化データがオーディオを含むとき、端末デバイスの中に含まれるオーディオデコーダは、オーディオ復号処理を実行するように優先させられる。
【0223】
そのディスプレイを有する端末デバイス、たとえば、スマートフォンもしくはパッド3108、コンピュータもしくはラップトップ3110、ネットワークビデオレコーダ(NVR)/デジタルビデオレコーダ(DVR)3112、TV3114、携帯情報端末(PDA)3122、または車両搭載型デバイス3124の場合、端末デバイスは、そのディスプレイに復号データを供給することができる。ディスプレイが装備されない端末デバイス、たとえば、STB3116、ビデオ会議システム3118、またはビデオ監視システム3120の場合、復号データを受信および表示するために外部ディスプレイ3126がそこに接触される。
【0224】
このシステムの中の各デバイスが符号化または復号を実行するとき、上述の実施形態に示すようにピクチャ符号化デバイスまたはピクチャ復号デバイスが使用され得る。
【0225】
図18は、端末デバイス3106の一例の構造を示す図である。端末デバイス3106がキャプチャデバイス3102からストリームを受信した後、プロトコル進行ユニット3202がストリームの伝送プロトコルを分析する。プロトコルは、限定はしないが、リアルタイムストリーミングプロトコル(RTSP)、ハイパーテキスト転送プロトコル(HTTP)、HTTPライブストリーミングプロトコル(HLS)、MPEG-DASH、リアルタイムトランスポートプロトコル(RTP)、リアルタイムメッセージングプロトコル(RTMP)、またはそれらの任意の種類の組合せなどを含む。
【0226】
プロトコル進行ユニット3202がストリームを処理した後、ストリームファイルが生成される。ファイルは多重化解除ユニット3204に出力される。多重化解除ユニット3204は、多重化されたデータを符号化オーディオデータおよび符号化ビデオデータに分離することができる。上記で説明したように、いくつかの実際的なシナリオに対して、たとえば、ビデオ会議システムでは、符号化オーディオデータおよび符号化ビデオデータは多重化されない。この状況では、符号化データは、多重化解除ユニット3204を通すことなくビデオデコーダ3206およびオーディオデコーダ3208へ送信される。
【0227】
多重化解除処理を介して、ビデオエレメンタリストリーム(ES:Elementary Stream)、オーディオES、および随意にサブタイトルが生成される。上述の実施形態で説明したようなビデオデコーダ30を含むビデオデコーダ3206は、上述の実施形態で示すような復号方法によってビデオESを復号してビデオフレームを生成し、このデータを同期ユニット3212に供給する。オーディオデコーダ3208は、オーディオESを復号してオーディオフレームを生成し、このデータを同期ユニット3212に供給する。代替として、ビデオフレームは、それを同期ユニット3212に供給する前にバッファ(
図18に示さず)の中に記憶し得る。同様に、オーディオフレームは、それを同期ユニット3212に供給する前にバッファ(
図20に示さず)の中に記憶し得る。
【0228】
同期ユニット3212は、ビデオフレームとオーディオフレームとを同期させ、ビデオ/オーディオをビデオ/オーディオディスプレイ3214に供給する。たとえば、同期ユニット3212は、ビデオの提示とオーディオ情報とを同期させる。情報は、コーディングされたオーディオおよびビジュアルデータの提示に関係するタイムスタンプ、ならびにデータストリーム自体の配信に関係するタイムスタンプを使用して、シンタックスの中でコーディングし得る。
【0229】
ストリームの中にサブタイトルが含まれる場合、サブタイトルデコーダ3210が、サブタイトルを復号し、それをビデオフレームおよびオーディオフレームと同期させ、ビデオ/オーディオ/サブタイトルをビデオ/オーディオ/サブタイトルディスプレイ3216に供給する。
【0230】
本出願は上述のシステムに限定されず、上述の実施形態におけるピクチャ符号化デバイスまたはピクチャ復号デバイスのいずれかは、他のシステム、たとえば、自動車システムの中に組み込まれ得る。
【0231】
数学演算子
本出願において使用される数学演算子は、Cプログラミング言語において使用されるものと類似である。しかしながら、整数除算および算術シフト演算の結果がより精密に定義され、累乗および実数値除算などの追加の演算が定義される。番号付け規約および計数規約は、概して、0から始まり、たとえば、「第1」が0番目と等価であり「第2」が1番目と等価などである。
【0232】
算術演算子
以下の算術演算子は以下のように定義される。
【0233】
【0234】
論理演算子
以下の論理演算子は以下のように定義される。
x && y xとyとの、ブール論理の「論理積」。
x || y xとyとの、ブール論理の「論理和」。
! ブール論理の「否定」。
x ? y : z xがTRUE、すなわち0に等しくない場合、yの値を求め、そうでない場合、zの値を求める。
【0235】
関係演算子
以下の関係演算子は以下のように定義される。
> よりも大きい。
>= 以上。
< よりも小さい。
<= 以下。
== 等しい。
!= 等しくない。
【0236】
値「na」(適用不可)が割り当てられているシンタックス要素または変数に関係演算子が適用されるとき、値「na」は、そのシンタックス要素または変数に対する特異な値として扱われる。値「na」は、いかなる他の値にも等しくないものと見なされる。
【0237】
ビット単位演算子
以下のビット単位演算子は以下のように定義される。
& ビット単位の「論理積」。整数の引数に対して演算するとき、整数値の2の補数表現に対して演算する。別の引数よりも少ないビットを含む2進数の引数に対して演算するとき、短い方の引数は、0に等しいさらなる有効ビットを追加することによって拡張される。
| ビット単位の「論理和」。整数の引数に対して演算するとき、整数値の2の補数表現に対して演算する。別の引数よりも少ないビットを含む2進数の引数に対して演算するとき、短い方の引数は、0に等しいさらなる有効ビットを追加することによって拡張される。
^ ビット単位の「排他的論理和」。整数の引数に対して演算するとき、整数値の2の補数表現に対して演算する。別の引数よりも少ないビットを含む2進数の引数に対して演算するとき、短い方の引数は、0に等しいさらなる有効ビットを追加することによって拡張される。
x >> y xの2の補数整数表現の、2進数のy桁だけの算術右シフト。この関数は、yの非負の整数値のみに対して定義される。右シフトの結果として最上位ビット(MSB)の中にシフトされるビットは、そのシフト演算の前のxのMSBに等しい値を有する。
x << y xの2の補数整数表現の、2進数のy桁だけの算術左シフト。この関数は、yの非負の整数値のみに対して定義される。左シフトの結果として最下位ビット(LSB)の中にシフトされるビットは、0に等しい値を有する。
【0238】
割当て演算子
以下の算術演算子は以下のように定義される。
= 割当て演算子。
++ インクリメント、すなわち、x++はx = x + 1と等価であり、アレイインデックスにおいて使用されるとき、インクリメント演算の前の変数の値を評価する。
-- デクリメント、すなわち、x--はx = x - 1と等価であり、アレイインデックスにおいて使用されるとき、デクリメント演算の前の変数の値を評価する。
+= 指定された量だけのインクリメント、すなわち、x += 3はx = x + 3と等価でありx += (-3)はx = x + (-3)と等価である。
-= 指定された量だけのデクリメント、すなわち、x -= 3はx = x - 3と等価であり、x -= (-3)はx = x - (-3)と等価である。
【0239】
範囲表記法
値の範囲を指定するために以下の表記法が使用される。
x=y..z xは、yから始まりzまでの(両端値を含む)整数値をとり、x、y、およびzは整数であり、zはyよりも大きい。
【0240】
数学関数
以下の数学関数が定義される。
【0241】
【0242】
Asin(x) -1.0~1.0(両端値を含む)という範囲の中にある引数xに対して演算し、ラジアンの単位での-π÷2~π÷2(両端値を含む)という範囲の中の出力値を有する、三角法の逆正弦関数。
Atan(x) 引数xに対して演算し、ラジアンの単位での-π÷2~π÷2(両端値を含む)という範囲の中の出力値を有する、三角法の逆正接関数。
【0243】
【0244】
Ceil(x) x以上の最小の整数。
Clip1Y( x ) = Clip3( 0, ( 1 << BitDepthY ) - 1, x )
Clip1C( x ) = Clip3( 0, ( 1 << BitDepthC ) - 1, x )
【0245】
【0246】
Cos(x) ラジアンの単位での引数xに対して演算する、三角法の余弦関数。
Floor(x) x以下の最大の整数。
【0247】
【0248】
Ln(x) xの自然対数(eを底とする対数、ただし、eは自然対数の底定数、2.718 281 828...である)。
Log2(x) 2を底とするxの対数。
Log10(x) 10を底とするxの対数。
【0249】
【数5】
Round( x ) = Sign( x ) * Floor( Abs( x ) + 0.5 )
【0250】
【0251】
Sin(x) ラジアンの単位での引数xに対して演算する、三角法の正弦関数。
【0252】
【0253】
Swap( x, y ) = ( y, x )
Tan(x) ラジアンの単位での引数xに対して演算する、三角法の正接関数。
【0254】
演算順位の順序
式における順位の順序が丸括弧の使用によって明示的には示されないとき、以下の規則が適用される。
- より高い順位の演算は、より低い順位の任意の演算の前に評価される。
- 同じ順位の演算は、左から右へ連続的に評価される。
【0255】
以下のTable(表1)は、最高から最低までの演算の順位を指定し、表の中のより高い位置がより高い順位を示す。
【0256】
Cプログラミング言語においても使用される演算子に対して、本明細書において使用される順位の順序は、Cプログラミング言語において使用されるのと同じである。
【0257】
【0258】
論理演算のテキスト記述
テキストの中で、以下の形式で数学的に記述されることになるような論理演算のステートメント、すなわち、
if(条件0)
ステートメント0
else if(条件1)
ステートメント1
...
else /* 残りの条件における報知的な言及 */
ステートメントn
は、以下のようにして説明され得る。
...以下のように/...以下が適用される
- 条件0の場合、ステートメント0
- そうではなく、条件1の場合、ステートメント1
- ...
- 他の場合(残りの条件における報知的な言及)、ステートメントn
【0259】
テキストの中の各「...の場合、そうではなく...の場合、他の場合...」というステートメントは、「...以下のように」または「...以下が適用される」およびその直後に来る「...の場合」とともに始められる。「...の場合、そうではなく...の場合、他の場合...」の最後の条件は、常に「他の場合...」である。交互に配置された「...の場合、そうではなく...の場合、他の場合...」というステートメントは、「...以下のように」または「...以下が適用される」を、終わりに来る「他の場合...」に整合させることによって識別され得る。
【0260】
テキストの中で、以下の形式で数学的に記述されることになるような論理演算のステートメント、すなわち、
if(条件0a && 条件0b)
ステートメント0
else if(条件1a || 条件1b)
ステートメント1
...
else
ステートメントn
は、以下のようにして説明され得る。
...以下のように/...以下が適用される
- 次の条件のすべてが真である場合、ステートメント0:
- 条件0a
- 条件0b
- そうではなく、以下の条件のうちの1つまたは複数が真である場合、ステートメント1:
- 条件1a
- 条件1b
- ...
- 他の場合、ステートメントn
【0261】
テキストの中で、以下の形式で数学的に記述されることになるような論理演算のステートメント、すなわち、
if(条件0)
ステートメント0
if(条件1)
ステートメント1
は、以下のようにして説明され得る。
条件0のとき、ステートメント0
条件1のとき、ステートメント1
【0262】
たとえば、エンコーダ20およびデコーダ30の実施形態、ならびに、たとえば、エンコーダ20およびデコーダ30を参照しながら本明細書で説明する関数は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されてよく、または通信媒体を介して送信されてもよく、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に相当するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含んでよい。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に相当し得る。データ記憶媒体は、本開示で説明する技法の実施のための命令、コード、および/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であってよい。コンピュータプログラム製品がコンピュータ可読媒体を含んでよい。
【0263】
例として、かつ非限定的に、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、フラッシュメモリ、または命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用され得るとともに、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、任意の接続が、コンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義の中に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体が、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびBlu-ray(登録商標)ディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記のものの組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【0264】
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の均等な集積論理回路構成もしくは個別論理回路構成などの、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造または本明細書で説明する技法を実施するのに適している任意の他の構造のうちのいずれかを指してよい。加えて、いくつかの態様では、本明細書で説明する機能は、符号化および復号するために構成された専用のハードウェアおよび/もしくはソフトウェアモジュール内で提供され得るか、または組み合わせられたコーデックの中に組み込まれ得る。また、技法は、1つまたは複数の回路または論理要素の中で完全に実施され得る。
【0265】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置の中で実施され得る。様々な構成要素、モジュール、またはユニットは、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために本開示で説明されるが、異なるハードウェアユニットによる実現を必ずしも必要とするとは限らない。むしろ、上記で説明したように、様々なユニットが、コーデックハードウェアユニットの中で組み合わせられてよく、あるいは上記で説明したような1つまたは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって、好適なソフトウェアおよび/またはファームウェアとともに提供されてよい。
【符号の説明】
【0266】
10 ビデオコーディングシステム
12 ソースデバイス
13 通信チャネル
14 宛先デバイス
16 ピクチャソース
17 ピクチャ、ピクチャデータ、未加工ピクチャ、未加工ピクチャデータ
18 プリプロセッサ、前処理ユニット
19 前処理済みのピクチャ、前処理済みのピクチャデータ
20 ビデオエンコーダ
21 符号化ピクチャデータ
22 通信インターフェース、通信ユニット
28 通信インターフェース、通信ユニット
30 ビデオデコーダ
31 復号ピクチャ、復号ピクチャデータ
32 ポストプロセッサ、後処理ユニット
33 後処理されたピクチャ、後処理されたピクチャデータ
34 ディスプレイデバイス
46 処理回路構成
201 入力部、入力インターフェース
203 ピクチャブロック、コーディングツリーユニット(CTU)
204 残差計算ユニット
205 残差ブロック、残差
206 変換処理ユニット
207 変換係数
208 量子化ユニット
209 量子化係数、量子化変換係数、量子化残差係数
210 逆量子化ユニット
211 逆量子化係数、逆量子化残差係数
212 逆変換処理ユニット
213 再構成残差ブロック、対応する逆量子化係数、変換ブロック
214 再構成ユニット
215 再構成ブロック
220 ループフィルタユニット
221 フィルタ処理済みのブロック、フィルタ処理済みの再構成ブロック
230 復号ピクチャバッファ
231 復号ピクチャ
244 インター予測ユニット
254 イントラ予測ユニット
260 モード選択ユニット
262 区分ユニット
265 予測ブロック、予測子
266 シンタックス要素
270 エントロピー符号化ユニット
272 出力部、出力インターフェース
304 エントロピー復号ユニット
309 量子化係数
310 逆量子化ユニット
311 変換係数、逆量子化係数
312 逆変換処理ユニット
313 再構成残差ブロック、変換ブロック
314 再構成ユニット
315 再構成ブロック
320 ループフィルタユニット
321 フィルタ処理済みのブロック
330 復号ピクチャバッファ
331 復号ピクチャ
344 インター予測ユニット
354 イントラ予測ユニット
360 モード適用ユニット
365 予測ブロック
400 ビデオコーディングデバイス
410 入口ポート、入力ポート
420 受信機ユニット
430 プロセッサ、論理ユニット、中央処理ユニット
440 送信機ユニット
450 出口ポート、出力ポート
460 メモリ
470 コーディングモジュール
500 装置
502 プロセッサ
504 メモリ
506 コードおよびデータ
508 オペレーティングシステム
510 アプリケーションプログラム
512 バス
514 2次ストレージ
518 ディスプレイ
1500 インター予測装置
1502 設定モジュール
1503 計算モジュール
1504 予測モジュール
1600 インター予測装置
1601 プロセッサ
1602 非一時的コンピュータ可読記憶媒体
3100 コンテンツ供給システム
3102 キャプチャデバイス
3104 通信リンク
3106 端末デバイス
3108 スマートフォン/パッド
3110 コンピュータ/ラップトップ
3112 ネットワークビデオレコーダ/デジタルビデオレコーダ
3114 TV
3116 セットトップボックス
3118 ビデオ会議システム
3120 ビデオ監視システム
3122 携帯情報端末
3124 車両搭載型デバイス
3126 ディスプレイ
3202 プロトコル進行ユニット
3204 多重化解除ユニット
3206 ビデオデコーダ
3208 オーディオデコーダ
3210 サブタイトルデコーダ
3212 同期ユニット
3214 ビデオ/オーディオディスプレイ
3216 ビデオ/オーディオ/サブタイトルディスプレイ