(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-03
(45)【発行日】2022-10-12
(54)【発明の名称】動画を復号する方法、装置、及びコンピュータプログラム
(51)【国際特許分類】
H04N 19/105 20140101AFI20221004BHJP
H04N 19/159 20140101ALI20221004BHJP
H04N 19/176 20140101ALI20221004BHJP
H04N 19/593 20140101ALI20221004BHJP
【FI】
H04N19/105
H04N19/159
H04N19/176
H04N19/593
(21)【出願番号】P 2020563419
(86)(22)【出願日】2019-09-11
(86)【国際出願番号】 US2019050564
(87)【国際公開番号】W WO2020060820
(87)【国際公開日】2020-03-26
【審査請求日】2020-11-09
(32)【優先日】2018-09-21
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-05-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】シュイ,シアオジョォン
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】鉢呂 健
(56)【参考文献】
【文献】特表2016-539542(JP,A)
【文献】特表2016-534660(JP,A)
【文献】特表2017-525267(JP,A)
【文献】ZHOU, Minhua,SCCE1: Cross-verification of test1.2 results,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 18th Meeting: Sapporo, JP, 30 June - 9 July 2014, [JCTVC-R0211],JCTVC-R0211 (version 1),ITU-T,2014年06月21日,<URL: http://phenix.it-sudparis.eu/jct/doc_end_user/documents/18_Sapporo/wg11/JCTVC-R0211-v1.zip>: JCTVC-R0211.doc: pp. 1-9
【文献】XU, Xiaozhong et al.,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 13th Meeting: Marrakesh, MA, 9-18 Jan. 2019, [JVET-M0407-v3],JVET-M0407 (version 3),ITU-T,2019年01月17日,<URL: http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/13_Marrakech/wg11/JVET-M0407-v3.zip>: JVET-M0407-CE8.1.2a-CE8.1.2d-v3.docx: pp. 1-8
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
復号器が実行する動画の復号方法であって、
前記復号器が、
画像の再構築ブロックの再構築サンプルをメモリに記憶するステップであって、前記再構築ブロックの前記再構築サンプルは、符号化されたビデオビットストリームに従って再構築される、ステップと、
前記画像の現在のブロックにおける現在のサブブロックが、前記再構築ブロックにおける参照サブブロックに基づいて、イントラブロックコピー(IBC)を使用して再構築される場合、前記現在のサブブロックの為の参照サブブロックを特定するステップと、
前記参照サブブロックが特定されたのち、
前記現在のブロックにおける前記現在のサブブロックの位置
と前記再構築ブロックにおける前記参照サブブロックの位置との間の関係に基づいて、前記メモリに記憶された前記参照サブブロックの前記再構築サンプルが上書きされていると示すかどうかを判定するステップと、
前記メモリに記憶された前記参照サブブロックの前記再構築サンプルが上書きされていないと示すと判定した場合、前記参照サブブロックの前記再構築サンプルに基づいて、出力する前記現在のサブブロックの再構築サンプルを生成するステップと、
前記現在のサブブロックの生成した前記再構築サンプルで、前記メモリに記憶された前記再構築ブロックにおけ
るサブブロック
のうち、前記現在のブロックにおける前記現在のサブブロックと同位置のサブブロックの前記再構築サンプルを上書きするステップと
を含む方法。
【請求項2】
前記現在のブロックが、1つ以上のオーバーラップしない区画を含み、前記オーバーラップしない区画に、前記現在のサブブロックの位置する現在の区画が含まれ、
前記再構築ブロックが、前記現在のブロックの前記1つ以上の区画とそれぞれ同位置の1つ以上のオーバーラップしない区画を含み、
前記判定するステップが、
前記参照サブブロックを含む、前記再構築ブロックにおける区画が、再構築されていない前記現在のブロックにおける前記1つ以上の区画のうちの1つと同位置である場合、前記メモリに記憶された前記参照サブブロックの前記再構築サンプルが上書きされていないと示すと判定すること
を含む、請求項1に記載の方法。
【請求項3】
前記判定するステップが、前記現在のブロックにおける前記1つ以上のオーバーラップしない区画の復号順に基づいて実行される、請求項2に記載の方法。
【請求項4】
前記現在のブロックが、128×128ルマサンプルのサイズを有し、
前記現在のブロックの前記1つ以上のオーバーラップしない区画が、64×64ルマサンプルのサイズをそれぞれ有する4つの区画を含む、請求項2に記載の方法。
【請求項5】
前記現在のブロックの前記1つ以上のオーバーラップしない区画が、前記現在のブロックのサイズである1つの区画のみを含む、請求項2に記載の方法。
【請求項6】
前記現在のブロックの前記1つ以上のオーバーラップしない区画のそれぞれが、前記IBCで使用される最大参照サブブロックサイズ以上のサイズを有する、請求項2に記載の方法。
【請求項7】
前記現在のブロックが、左上、右上、左下、及び右下の区画を含み、
前記再構築ブロックが、左上、右上、左下、及び右下の区画を含み、
前記判定するステップが、
前記現在のサブブロックが前記現在のブロックの前記左上の区画に位置し、かつ前記参照サブブロックが前記再構築ブロックの前記右上の区画、前記左下の区画、及び前記右下の区画のうちの1つに位置している場合、前記メモリに記憶された前記参照サブブロックの前記再構築サンプルが上書きされていないと示すと判定すること
を含む、請求項1に記載の方法。
【請求項8】
前記判定するステップが、
前記現在のサブブロックが前記現在のブロックの前記左上の区画、前記右上の区画、及び前記左下の区画のうちの1つに位置し、かつ前記参照サブブロックが前記再構築ブロックの前記右下の区画に位置している場合、前記メモリに記憶された前記参照サブブロックの前記再構築サンプルが上書きされていないと示すと判定すること
をさらに含む、請求項7に記載の方法。
【請求項9】
前記判定するステップが、
前記現在のサブブロックが前記現在のブロックの前記右上の区画に位置し、前記参照サブブロックが前記再構築ブロックの前記左下の区画に位置し、かつ前記現在のブロックの前記左下の区画で再構築サンプルが生成されていない場合、前記メモリに記憶された前記参照サブブロックの前記再構築サンプルが上書きされていないと示すと判定することと、
前記現在のサブブロックが前記現在のブロックの前記左下の区画に位置し、前記参照サブブロックが前記再構築ブロックの前記右上の区画に位置し、かつ前記現在のブロックの前記右上の区画で再構築サンプルが生成されていない場合、前記メモリに記憶された前記参照サブブロックの前記再構築サンプルが上書きされていないと示すと判定することと
をさらに含む、請求項7に記載の方法。
【請求項10】
前記判定するステップが、
前記現在のサブブロックが前記現在のブロックの前記左上の区画に位置し、かつ前記参照サブブロックが前記再構築ブロックの前記右下の区画に位置
している場合にのみ、前記メモリに記憶された前記参照サブブロックの前記再構築サンプルが上書きされていないと示すと判定すること
をさらに含む、請求項7に記載の方法。
【請求項11】
前記メモリに記憶された前記参照サブブロックの前記再構築サンプルが上書きされていると示すと判定した場合、前記参照サブブロックを使用せずに、前記現在のサブブロックの前記再構築サンプルを生成するステップ
をさらに含む、請求項1に記載の方法。
【請求項12】
命令を格納した1つ以上のメモリと、
前記1つ以上のメモリに結合された処理回路と、
を含み、
前記命令は、前記処理回路によって実行されるときに、前記処理回路に、
画像の再構築ブロックの再構築サンプルを参照サンプルメモリに記憶するステップであって、前記再構築ブロックの前記再構築サンプルは、符号化されたビデオビットストリームに従って再構築される、ステップと、
前記画像の現在のブロックにおける現在のサブブロックが、前記再構築ブロックにおける参照サブブロックに基づいて、イントラブロックコピー(IBC)を使用して再構築される場合、前記現在のサブブロックの為の参照サブブロックを特定するステップと、
前記参照サブブロックが特定されたのち、
前記現在のブロックにおける前記現在のサブブロックの位置
と前記再構築ブロックにおける前記参照サブブロックの位置との間の関係に基づいて、前記メモリに記憶された前記参照サブブロックの前記再構築サンプルが上書きされていると示すかどうかを判定するステップと、
前記メモリに記憶された前記参照サブブロックの前記再構築サンプルが上書きされていないと示すと判定した場合、前記参照サブブロックの前記再構築サンプルに基づいて、出力する前記現在のサブブロックの再構築サンプルを生成するステップと、
前記現在のサブブロックの生成した前記再構築サンプルで、前記メモリに記憶された前記再構築ブロックにおけ
るサブブロック
のうち、前記現在のブロックにおける前記現在のサブブロックと同位置のサブブロックの前記再構築サンプルを上書きするステップと、
を実行させる、装置。
【請求項13】
前記現在のブロックが、1つ以上のオーバーラップしない区画を含み、前記オーバーラップしない区画に、前記現在のサブブロックの位置する現在の区画が含まれ、
前記再構築ブロックが、前記現在のブロックの前記1つ以上の区画とそれぞれ同位置の1つ以上のオーバーラップしない区画を含み、
前記判定するステップが、
前記参照サブブロックを含む、前記再構築ブロックにおける区画が、再構築されていない前記現在のブロックにおける前記1つ以上の区画のうちの1つと同位置である場合、前記メモリに記憶された前記参照サブブロックの前記再構築サンプルが上書きされていないと示すと判定すること
を含む、請求項12に記載の装置。
【請求項14】
前記現在のブロックが、128×128ルマサンプルのサイズを有し、
前記現在のブロックの前記1つ以上のオーバーラップしない区画が、64×64ルマサンプルのサイズをそれぞれ有する4つの区画を含む、請求項13に記載の装置。
【請求項15】
前記現在のブロックが、左上、右上、左下、及び右下の区画を含み、
前記再構築ブロックが、左上、右上、左下、及び右下の区画を含み、
前記判定するステップが、
前記現在のサブブロックが前記現在のブロックの前記左上の区画に位置し、かつ前記参照サブブロックが前記再構築ブロックの前記右上の区画、前記左下の区画、及び前記右下の区画のうちの1つに位置している場合、前記メモリに記憶された前記参照サブブロックの前記再構築サンプルが上書きされていないと示すと判定すること
を含む、請求項12に記載の装置。
【請求項16】
前記判定するステップが、
前記現在のサブブロックが前記現在のブロックの前記左上の区画、前記右上の区画、及び前記左下の区画のうちの1つに位置し、かつ前記参照サブブロックが前記再構築ブロックの前記右下の区画に位置している場合、前記メモリに記憶された前記参照サブブロックの前記再構築サンプルが上書きされていないと示すと判定すること
を含む、請求項15に記載の装置。
【請求項17】
コンピュータに請求項1乃至11のいずれか一項に記載の方法を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本開示は、2019年5月22日に出願された米国特許出願第16/419,235号「METHOD AND
APPARATUS FOR VIDEO CODING」に対する優先権の利益を主張し、この特許出願は、2018年9月21日に出願された米国仮特許出願第62/735,002号「Reference
search range optimization for intra picture block compensation」の優先権の利益を主張し、これらの内容の全体が、参照することによって本願に組み込まれる。
【0002】
本開示は、一般に動画符号化に関する実施形態について説明する。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示の背景を一般的に示すためのものである。本発明に記載されている発明者による研究については、研究がこの背景技術の項で説明されている範囲において、出願時には先行技術としてみなされない可能性のある本明細書の態様と同様に、明示的にも黙示的にも本開示に対する先行技術とは認められない。
【0004】
映像の符号化及び復号は、動き補償を伴うインター画像予測を使用して実行することができる。圧縮されていないデジタル映像は、一連の画像を含むことができ、各画像は、例えば、1920×1080のルミナンスサンプルと、関連するクロミナンスサンプルの空間次元を有する。一連の画像は、例えば、1秒毎に60画像、又は60Hzの固定又は可変の画像レート(非公式にはフレームレートとしても知られている)を有することができる。圧縮されていない映像は、かなりのビットレート要件を有する。例えば、サンプル当り8ビットの1080p60
4:2:0の映像(60Hzのフレームレートで1920×1080ルミナンスサンプル解像度)は、1.5ギガビット/秒近い帯域幅を必要とする。このような映像は1時間分で、600ギガバイトを超える記憶空間を必要とする。
【0005】
映像の符号化及び復号は、圧縮によって入力映像信号の冗長性を低減することを1つの目的とすることができる。圧縮は、前述した帯域幅又は記憶空間要件を、場合によっては100倍以上低減するのに役立てることができる。可逆圧縮及び非可逆圧縮の両方、並びにこれらの組合せが使用されてもよい。可逆圧縮とは、圧縮された原信号から、原信号の完全なコピーを再構築できる技術のことをいう。非可逆圧縮を使用すると、再構築された信号は原信号と同一にならない場合があるが、原信号と再構築された信号との間の歪みは、再構築された信号が意図した用途に充分に役立つほど小さくなる。映像に関しては、非可逆圧縮が広く使用されている。歪み量は用途に応じて許容され、例えば、いくつかの消費者ストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高次の歪みを許容し得る。達成可能な圧縮比は、可能な/許容可能な歪みが高次になるほど高い圧縮比が得られるということを反映し得る。
【0006】
動き補償は、非可逆圧縮技術であってもよく、以前に再構築された画像、又はその一部(参照画像)からのサンプルデータのブロックが、動きベクトル(以後MVとする)によって示される方向に空間的にシフトされた後に、新しく再構築された画像又は画像部分の予測に使用される技術に関連していてもよい。場合によっては、参照画像は、現在再構築中の画像と同じであってもよい。MVは、X及びYの2つの次元、又は3つの次元を有することができ、第3の次元は、使用中の参照画像を示す(第3の次元は間接的に時間次元であってもよい)。
【0007】
いくつかの映像圧縮技術では、サンプルデータのいくつかの領域に適用可能なMVは、他のMV、例えば、再構築中の領域と空間的に隣接する、サンプルデータの別の領域に関するMVから予測でき、復号順においてそのMVを優先する。そのようにしてMVの符号化に必要なデータの量を実質的に削減することができ、これによって冗長性を除去して圧縮率を高める。MV予測は、例えば、カメラから得られた入力映像信号(自然映像として知られる)を符号化するときは、1つのMVを適用できる領域よりも大きい領域は同様の方向に移動する、という統計学的な尤度が存在するために効率的に作動でき、したがって場合によっては、隣接する領域のMVから導出した同様の動きベクトルを使用して予測することができる。その結果、所与の領域のために見出されたMVが、周囲のMVから予測されたMVと同様又は同じになり、エントロピー符号化の後に、MVを直接符号化する際に使用されるよりも小さいビット数で表現できるようになる。いくつかの事例では、MV予測は、源信号(すなわちサンプルストリーム)から導出した信号(すなわちMV)の可逆圧縮の例であってもよい。他の事例では、例えば、いくつかの周囲MVから予測子を計算するときの丸め誤差により、MV予測自体は非可逆であってもよい。
【0008】
H.265/HEVC(ITU-T Rec. H.265,“High Efficiency Video Coding”,December
2016)において、さまざまなMV予測機構が説明されている。H.265が提示する多くのMV予測機構の中から、本明細書では、以後「空間マージ」と呼ばれる技術について説明する。
【0009】
図1を参照すると、現在のブロック(101)は、動き探索工程中に符号器によって同じサイズの以前のブロックから予測可能なことが見出された、空間的にシフトされたサンプルを含む。そのMVを直接符号化するのではなく、MVは、A0、A1、及びB0、B1、B2(それぞれ102~106)で示す5つの周囲サンプルのうちのいずれか1つに関連付けられたMVを使用して、1つ以上の参照画像に関連付けられたメタデータから、例えば、(復号順において)最後の参照画像から導出することができる。H.265において、MV予測は、隣接するブロックが使用している同じ参照画像からの予測子を使用することができる。
【発明の概要】
【0010】
本開示の態様は、動画を符号化/復号する方法及び装置を提供する。いくつかの例では、装置は、画像の再構築ブロックの再構築サンプルをメモリに記憶する処理回路を備える。再構築ブロックの再構築サンプルは、符号化されたビデオビットストリームに従って再構築される。画像の現在のブロックにおける現在のサブブロックが、再構築ブロックにおける参照サブブロックに基づいて、イントラブロックコピー(IBC)を使用して再構築される場合、処理回路は、現在のサブブロックの位置に基づいて、メモリに記憶された参照サブブロックの再構築サンプルが上書きされていると示すかどうかを判定し、メモリに記憶された参照サブブロックの再構築サンプルが上書きされていないと示すと判定された場合、参照サブブロックの再構築サンプルに基づいて、出力する現在のサブブロックの再構築サンプルを生成し、生成した現在のサブブロックの再構築サンプルで、メモリに記憶された再構築ブロックにおける同位置の(collocated)サブブロックの再構築サンプルを上書きする。
【0011】
いくつかの実施形態では、現在のブロックは、1つ以上のオーバーラップしない区画を含み、前記オーバーラップしない区画に、前記現在のサブブロックの位置する現在の区画が含まれ、再構築ブロックは、現在のブロックの1つ以上の区画とそれぞれ同位置の1つ以上のオーバーラップしない区画を含む。いくつかの実施形態では、処理回路は、参照サブブロックを含む再構築ブロックにおける区画が、再構築されていない現在のブロックにおける区画のうちの1つと同位置である場合、メモリに記憶された参照サブブロックの再構築サンプルが上書きされていないと示すと判定する。
【0012】
いくつかの実施形態では、現在のブロックは128×128ルマサンプルのサイズを有し、現在のブロックの上記1つ以上のオーバーラップしない区画が、64×64ルマサンプルのサイズをそれぞれ有する4つの区画を含む。
【0013】
いくつかの実施形態では、現在のブロックの上記1つ以上のオーバーラップしない区画が、現在のブロックのサイズである1つの区画のみを含む。いくつかの実施形態では、現在のブロックの上記1つ以上のオーバーラップしない区画のそれぞれが、IBCで使用される最大参照サブブロックサイズ以上のサイズを有する。
【0014】
いくつかの実施形態では、現在のブロックは、左上、右上、左下、及び右下の区画を含み、再構築ブロックは、左上、右上、左下、及び右下の区画を含む。いくつかの実施形態では、処理回路は、現在のサブブロックが現在のブロックの左上の区画に位置し、かつ参照サブブロックが再構築ブロック内の右上、左下、及び右下の区画のうちの1つに位置している場合、メモリに記憶された参照サブブロックの再構築サンプルが上書きされていないと示すと判定する。いくつかの実施形態では、処理回路は、現在のサブブロックが現在のブロックの左上、右上、及び左下の区画のうちの1つに位置し、かつ参照サブブロックが再構築ブロックの右下の区画に位置している場合、メモリに記憶された参照サブブロックの再構築サンプルが上書きされていないと示すと判定する。
【0015】
本開示の態様は、映像を復号するためにコンピュータによって実行されると、コンピュータに映像を復号する方法を実行させる命令を記憶する、非一時的なコンピュータ可読媒体をさらに提供する。
【0016】
本開示の主題のさらなる特徴、性質、及びさまざまな利点は、以下の詳細な説明、及び添付の図面でより明らかになるであろう。
【図面の簡単な説明】
【0017】
【
図1】一例における、現在のブロック、及びその周囲の空間マージ候補の概略図である。
【
図2】実施形態による、通信システム(200)の簡素化されたブロック図の概略図である。
【
図3】実施形態による、通信システム(300)の簡素化されたブロック図の概略図である。
【
図4】実施形態による、復号器の簡素化されたブロック図の概略図である。
【
図5】実施形態による、符号器の簡素化されたブロック図の概略図である。
【
図6】別の実施形態による、符号器のブロック図を示す。
【
図7】別の実施形態による、復号器のブロック図を示す。
【
図8】実施形態による、イントラブロックコピー(IBC)を使用して符号化される、現画像内の現在のブロックの概略図である。
【
図9】実施形態による、IBCを使用する、現画像内の現在のブロック、及び隣接するブロックの概略図である。
【
図10A】一実施形態による、IBCを使用して符号化される現在のサブブロックの位置に基づいて、隣接するブロック内の再構築サンプルが、どのように上書きされたことを示すかについての概略図である。
【
図10B】別の実施形態による、IBCを使用して符号化される現在のサブブロックの位置に基づいて、隣接するブロック内の再構築サンプルが、どのように上書きされていることが示されるかについての概略図である。
【
図11】実施形態による、IBCを使用する現画像における、現在のブロック、第1の参照ブロック、及び現在のブロックと第1の参照ブロックとの間にある第2の参照ブロックの概略図である。
【
図12】本開示の実施形態による、復号工程(1300)を概説したフローチャートを示す。
【
図13】本開示の実施形態による、符号化工程(1400)を概説したフローチャートを示す。
【
図14】実施形態による、コンピュータシステムの概略図である。
【発明を実施するための形態】
【0018】
図2は、本開示の実施形態による、通信システム(200)の簡素化されたブロック図を示す。通信システム(200)は、例えば、ネットワーク(250)を介して、互いに通信できる複数の端末装置を含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続された、第1の対の端末装置(210)及び(220)を含む。
図2の例では、第1の対の端末装置(210)及び(220)は、データの一方向伝送を行う。例えば、端末装置(210)は、ネットワーク(250)を介してもう一方の端末装置(220)に伝送するために、映像データ(例えば、端末装置(210)によって捕捉された映像のストリーム)を符号化してもよい。符号化された映像データは、1つ以上の符号化されたビデオビットストリームの形態で伝送することができる。端末装置(220)は、ネットワーク(250)から符号化された映像データを受信し、映像を回復するために符号化された映像データを復号し、回復された映像データに従って映像を表示してもよい。一方向のデータ伝送は、メディア供給用途などにおいて一般的であろう。
【0019】
別の例では、通信システム(200)は、例えば、ビデオ会議中に生じる場合がある、符号化された映像データの双方向伝送を行う、第2の対の端末装置(230)及び(240)を含む。例では、データの双方向伝送の場合は、端末装置(230)及び(240)の各端末装置は、ネットワーク(250)を介して、端末装置(230)及び(240)のうちの他方の端末装置に伝送するために、映像データ(例えば、端末装置によって捕捉された映像のストリーム)を符号化してもよい。端末装置(230)及び(240)の各端末装置は、端末装置(230)及び(240)のうちの他方の端末装置によって伝送された、符号化された映像データを受信してもよく、かつ映像を回復するために符号化された映像データを復号してもよく、回復された映像データに従って、アクセス可能な表示装置で映像を表示してもよい。
【0020】
図2の例では、端末装置(210)、(220)、(230)、及び(240)は、サーバ、パソコン、及びスマートフォンとして示されてもよいが、本開示の原理はそのように限定されなくてもよい。本開示の実施形態は、ノートパソコン、タブレットコンピュータ、メディアプレーヤ、及び/又は専用のビデオ会議機器にも適用される。ネットワーク(250)は、符号化された映像データを端末装置(210)、(220)、(230)及び(240)間に伝達する、有線(wired)及び/又は無線通信ネットワークなどを含む任意の数のネットワークを表す。通信ネットワーク(250)は、回線交換チャネル及び/又はパケット交換チャネルでデータを交換してもよい。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク、及び/又はインターネットを含む。本考察の目的のために、ネットワーク(250)のアーキテクチャ及びトポロジは、以下で説明されない限り、本開示の運用には無関係な場合がある。
【0021】
図3は、開示される主題の適用例として、ストリーミング環境における映像符号器及び映像復号器の配置を示す。開示される主題は、例えば、ビデオ会議や、デジタルテレビや、CD、DVD、メモリスティックなどのデジタル媒体への圧縮映像の記憶などを含む、他の映像使用用途に等しく適用することができる。
【0022】
ストリーミングシステムは捕捉サブシステム(313)を含んでもよく、捕捉サブシステム(313)は、例えば、圧縮されていない映像のストリーム(302)を作成する、デジタルカメラなどの映像ソース(301)を含むことができる。例では、映像のストリーム(302)は、デジタルカメラによって取得されたサンプルを含む。符号化された映像データ(304)(又は符号化されたビデオビットストリーム)と比較してデータ量が大きいことを強調するために太線で示されている映像のストリーム(302)は、映像ソース(301)に結合された映像符号器(303)を備える電子機器(320)で処理することができる。以下でより詳細に説明するように、映像符号器(303)は、開示される主題の態様を可能にする、又は実施するために、ハードウェア、ソフトウェア、又はこれらの組合せを含むことができる。映像のストリーム(302)と比較してデータ量が小さいことを強調するために細線で示されている符号化された映像データ(304)(又は符号化されたビデオビットストリーム(304))は、後で使用するためにストリーミングサーバ(305)に記憶することができる。
図3のクライアントサブシステム(306)及び(308)などの1つ以上のストリーミングクライアントサブシステムは、符号化された映像データ(304)のコピー(307)及び(309)を検索するために、ストリーミングサーバ(305)にアクセスすることができる。クライアントサブシステム(306)は、例えば、電子機器(330)内に、映像復号器(310)を含むことができる。映像復号器(310)は、着信した符号化された映像データのコピー(307)を復号して、表示装置(312)(例えば、表示スクリーン)、又は他の表示装置(図示せず)に表示できる、発信する映像のストリーム(311)を生成する。一部のストリーミングシステムでは、符号化された映像データ(304)、(307)、及び(309)(例えば、ビデオビットストリーム)は、いくつかの映像符号化/圧縮標準に従って符号化することができる。このような標準の例は、ITU-T勧告H.265を含む。例では、開発中の映像符号化標準は、汎用映像符号化(Versatile
Video Coding、VVC)として非公式に知られている。開示される主題は、VVCに関連して使用され得る。
【0023】
電子機器(320)及び(330)は、他の構成要素(図示せず)を含んでもよいことに留意されたい。例えば、電子機器(320)は、映像復号器(図示せず)を含むことができ、電子機器(330)は、同様に映像符号器(図示せず)を含むことができる。
【0024】
図4は、本開示の実施形態による、映像復号器(410)のブロック図を示す。映像復号器(410)は、電子機器(430)に含まれていてもよい。電子機器(430)は、受信機(431)(例えば、受信回路)を備えることができる。映像復号器(410)は、
図3の例における映像復号器(310)の代わりに使用することができる。
【0025】
受信機(431)は、映像復号器(410)によって復号される1つ以上の符号化された映像シーケンスを受信してもよく、同一又は別の実施形態では、1つの符号化された映像シーケンスを同時に受信してもよく、符号化された映像シーケンスそれぞれの復号は、他の符号化された映像シーケンスから独立している。符号化された映像シーケンスは、チャネル(401)から受信されてもよく、チャネル(401)は、符号化された映像データを記憶する記憶装置と連結する、ハードウェア/ソフトウェアであってもよい。受信機(431)は、符号化された音声データ及び/又は補助データストリームなどの他のデータとともに符号化された映像データを受信してもよく、これはそれぞれが使用するエンティティ(図示せず)に転送されてもよい。受信機(431)は、符号化された映像シーケンスを他のデータから分離してもよい。ネットワークのジッタに対抗するために、受信機(431)とエントロピー復号器/構文解析器(420)(以下「構文解析器(420)」とする)との間にバッファメモリ(415)が結合されてもよい。いくつかの用途において、バッファメモリ(415)は、映像復号器(410)の一部である。他の用途では、映像復号器(410)の外部にあってもよい(図示せず)。さらに他の用途では、例えば、ネットワークのジッタに対抗するために、映像復号器(410)の外部にバッファメモリ(図示せず)があってもよく、さらに、例えば、プレイアウトタイミングに対処するために、映像復号器(410)の内部に別のバッファメモリ(415)があってもよい。受信機(431)が、帯域幅及び制御性が充分な記憶装置/転送装置から、又はアイソシンクロナス(isosynchronous)ネットワークからデータを受信しているときは、バッファメモリ(415)は必要でない場合がある、あるいは小さくすることができる。バッファメモリ(415)は、インターネットなどのベストエフォートのパケットネットワークで使用するために必要とされる場合があり、比較的大型で、好適には適応可能なサイズにすることができ、少なくとも部分的に、映像復号器(410)の外部にあるオペレーティングシステム又は類似の要素(図示せず)で実施されてもよい。
【0026】
映像復号器(410)は、符号化された映像シーケンスからシンボル(421)を再構築するために、構文解析器(420)を備えてもよい。このようなシンボルの分類は、映像復号器(410)の動作を管理するのに使用される情報、及び表示装置(412)(例えば、表示スクリーン)などの表示装置を制御するための潜在的な情報を含み、
図4に示されていたように、表示装置は電子機器(430)の一体部品ではないが、電子機器(430)に結合することができる。(1つ以上の)表示装置のための制御情報は、補助強化情報(Supplemental
Enhancement Information、SEIメッセージ)、又は映像有用性情報(Video Usability Information、VUI)パラメータ集合フラグメント(図示せず)の形式にされてもよい。構文解析器(420)は、受信した符号化された映像シーケンスを、構文解析/エントロピー復号してもよい。符号化された映像シーケンスの符号は、映像符号化技術又は標準に従っていてもよく、可変長符号、ハフマン符号、文脈依存又は非文脈依存の算術符号などを含む、さまざまな原理に従っていてもよい。構文解析器(420)は、符号化された映像シーケンスから、グループに対応する少なくとも1つのパラメータに基づいて、映像復号器内の、画素のサブグループの少なくとも1つに対する、一群のサブグループパラメータを抽出してもよい。サブグループは、画像のグループ(GOP)、画像、タイル、スライス、マクロブロック、符号化ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。また、構文解析器(420)は、符号化された映像シーケンスから、変換係数、量子化器パラメータ値、動きベクトルなどの情報を抽出してもよい。
【0027】
構文解析器(420)は、シンボル(421)を生成するために、バッファメモリ(415)から受信した映像シーケンスにエントロピー復号/構文解析動作を実行してもよい。
【0028】
シンボル(421)の再構築は、符号化された映像又はその部分の種別(例えば、インター画像及びイントラ画像、インターブロック及びイントラブロック)、並びに他の要素に応じて、複数の異なるユニットを含むことができる。どのユニットがどのように含まれるかについては、構文解析器(420)によって符号化された映像シーケンスから構文解析された、サブグループ制御情報によって制御することができる。構文解析器(420)と、以下の複数のユニットとの間のこのようなサブグループ制御情報の流れは、明確にするために図示されていない。
【0029】
すでに述べた機能ブロック以外に、映像復号器(410)は、以下で説明するように、概念的にいくつかの機能ユニットに再分割することができる。商業的な制約の下で運用される実際の実施では、このようなユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合することができる。しかしながら、開示する主題を説明する目的のためには、以下の機能ユニットに概念的に再分割するのが適切である。
【0030】
第1のユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、量子化変換係数、並びに制御情報を受信し、これには、構文解析器(420)からの(1つ以上の)シンボル(421)として、使用する変換、ブロックサイズ、量子化因子、量子化スケーリング行列などが含まれている。スケーラ/逆変換ユニット(451)は、サンプル値を含むブロックを出力でき、これを集約装置(455)に入力することができる。
【0031】
場合によっては、スケーラ/逆変換(451)の出力サンプルは、イントラ符号化されたブロックに関係することができ、つまり、以前に再構築された画像からの予測情報を使用していないブロックは、現画像の以前に再構築された部分からの予測情報を使用することができる。このような予測情報は、イントラ画像予測ユニット(452)によって提供することができる。場合によっては、イントラ画像予測ユニット(452)は、現画像バッファ(458)から取り出した、周囲のすでに再構築された情報を使用して、再構築中のブロックと同じサイズ及び形状のブロックを生成する。現画像バッファ(458)は、例えば、部分的に再構築された現画像及び/又は完全に再構築された現画像をバッファリングする。集約装置(455)は、場合により、イントラ予測ユニット(452)が生成した予測情報をサンプル毎に、スケーラ/逆変換ユニット(451)によって提供された出力サンプル情報に追加する。
【0032】
他の事例では、スケーラ/逆変換ユニット(451)の出力サンプルはインター符号化され、かつ潜在的には動き補償されたブロックに関係することができる。このような事例では、動き補償予測ユニット(453)が、予測に使用するサンプルを取り出すために、参照画像メモリ(457)にアクセスすることができる。ブロックに関連するシンボル(421)に従って、取り出されたサンプルを動き補償した後に、これらのサンプルは、出力サンプル情報を生成するように、集約装置(455)によってスケーラ/逆変換ユニット(451)の出力(この場合は残差サンプル又は残差信号と呼ばれる)に追加することができる。動き補償予測ユニット(453)が予測サンプルを取り出す参照画像メモリ(457)内のアドレスは、動きベクトルによって制御することができ、シンボル(421)の形態で動き補償予測ユニット(453)に使用可能で、例えば、X、Y、及び参照画像成分を有することができる。また動き補償は、サブサンプルの正確な動きベクトルが使用されているときに参照画像メモリ(457)から取り出されたサンプル値の補間、動きベクトル予測機構などを含むことができる。
【0033】
集約装置(455)の出力サンプルは、ループフィルタユニット(456)のさまざまなループフィルタリング技術にかけることができる。映像圧縮技術は、符号化された映像シーケンス(符号化されたビデオビットストリームとも呼ばれる)に含められて構文解析器(420)からのシンボル(421)としてループフィルタユニット(456)に使用可能にされるパラメータによって制御されるインループフィルタ技術を含むことができるが、さらに、符号化された画像又は符号化された映像シーケンスの以前の(復号順で)部分の復号中に取得されたメタ情報にも応答し、同様に以前に再構築されてループフィルタリングされたサンプル値にも応答することができる。
【0034】
ループフィルタユニット(456)の出力は、表示装置(412)に出力でき、かつ以後のインター画像予測に使用するために参照画像メモリ(457)に記憶できる、サンプルストリームであってもよい。
【0035】
いくつかの符号化された画像は、いったん完全に再構築されると、以後の予測用の参照画像として使用することができる。例えば、現画像に対応する、符号化された画像が完全に再構築され、符号化された画像が(例えば、構文解析器(420)によって)参照画像として特定されていると、現画像バッファ(458)が参照画像メモリ(457)の一部になることができ、後続の符号化された画像の再構築を開始する前に、新しい現画像バッファを再配分することができる。
【0036】
映像復号器(410)は、ITU-T Rec. H.265などの一定の標準における所定の映像圧縮技術に従って、復号動作を実行してもよい。符号化された映像シーケンスが、映像圧縮技術又は標準の構文と、映像圧縮技術又は標準に記録されたプロファイルとの両方を遵守しているという意味において、符号化された映像シーケンスは、使用される映像圧縮技術又は標準によって指定された構文に従っているといえる。具体的には、プロファイルは、映像圧縮技術又は標準で使用可能なすべてのツールから、そのプロファイル下で使用できるツールとして、いくつかのツールだけを選択することができる。遵守のためにさらに必要なことは、符号化された映像シーケンスの複雑性が、映像圧縮技術又は標準の水準によって規定される範囲内にあることであろう。場合によっては、水準によって最大画像サイズ、最大フレームレート、最大再構築サンプルレート(例えば、メガサンプル/秒で測定される)、最大参照画像サイズなどが制限される。水準によって設定される制限は、場合によっては、仮想参照復号器(Hypothetical
Reference Decoder、HRD)仕様、及び符号化された映像シーケンスで信号送信(シグナリング)されるHRDバッファ管理のメタデータによってさらに制限される可能性がある。
【0037】
実施形態では、受信機(431)は、符号化された映像とともに追加(冗長)データを受信してもよい。追加データは、(1つ以上の)符号化された映像シーケンスの一部として含められてもよい。追加データは、映像復号器(410)によって、データを適切に復号するため、かつ/又は元の映像データをより正確に再構築するために使用されてもよい。追加データは、例えば、時間的、空間的、又は信号雑音比(SNR)強化層、冗長スライス、冗長画像、順方向誤り訂正コードなどの形態であってもよい。
【0038】
図5は、本開示の実施形態による、映像符号器(503)のブロック図を示す。映像符号器(503)は、電子機器(520)に含まれている。電子機器(520)は、送信機(540)(例えば、送信回路)を備える。映像符号器(503)は、
図3の例における映像符号器(303)の代わりに使用することができる。
【0039】
映像符号器(503)は、映像符号器(503)によって符号化される(1つ以上の)映像を捕捉し得る映像ソース(501)(
図5の例では、電子機器(520)の一部ではない)から、映像サンプルを受信してもよい。別の例では、映像ソース(501)は電子機器(520)の一部である。
【0040】
映像ソース(501)は、映像符号器(503)によって符号化されるソース映像シーケンスを、任意の適切なビット深度(8ビット、10ビット、12ビット~など)、任意の色空間(BT.
601 Y CrCB、RGBなど)、及び任意の適切なサンプリング構造(Y CrCb 4:2:0、Y CrCb 4:4:4など)にすることが可能なデジタル映像サンプルストリームの形態で提供し得る。メディア供給システムでは、映像ソース(501)は、以前に準備した映像を記憶している記憶装置であってもよい。ビデオ会議システムでは、映像ソース(501)は、ローカル画像情報を映像シーケンスとして捕捉するカメラであってもよい。映像データは、シーケンスで見たときに動きを伝える複数の個別の画像として提供されてもよい。画像自体は画素の空間的配列として編成されてもよく、各画素は、使用時のサンプリング構造、色空間などに応じて1つ以上のサンプルを含むことができる。当業者であれば、画素とサンプルとの関係を容易に理解できるであろう。以下、サンプルを中心に説明する。
【0041】
実施形態によれば、映像符号器(503)は、リアルタイムで、又は用途によって必要とされる他の時間制約下で、ソース映像シーケンスの画像を符号化し圧縮して、符号化された映像シーケンス(543)にし得る。適切な符号化速度にすることが、コントローラ(550)の1つの機能である。いくつかの実施形態では、コントローラ(550)は、後述するように他の機能ユニットを制御し、かつ他の機能ユニットに機能的に結合される。明確にするために、結合については図示しない。コントローラ(550)によって設定されたパラメータは、レート制御関連パラメータ(画像スキップ、量子化、レート-歪み最適化技術のラムダ値など)、画像サイズ、画像のグループ(GOP)のレイアウト、最大動きベクトル検索範囲などを含むことができる。コントローラ(550)は、いくつかのシステム設計用に最適化された映像符号器(503)に関連する、他の適切な機能を有するように構成することができる。
【0042】
いくつかの実施形態では、映像符号器(503)は、符号化ループで動作するように構成される。過度に単純化した説明になるが、例において、符号化ループは、ソース符号器(530)(例えば、符号化される入力画像及び(1つ以上の)参照画像に基づいて、シンボルストリームなどのシンボルの生成に関与する)と、映像符号器(503)に組み込まれた(ローカル)復号器(533)を含むことができる。復号器(533)は、(リモート)復号器が生成するのと同様の方法でサンプルデータを生成するために、シンボルを再構築する(シンボル及び符号化されたビデオビットストリーム間の圧縮は、本開示の主題で考慮される映像圧縮技術においていずれも可逆であるため)。再構築サンプルストリーム(サンプルデータ)は、参照画像メモリ(534)に入力される。シンボルストリームの復号が、復号器の位置(ローカル又はリモート)とは無関係に、結果としてビットパーフェクト(bit-exact)になると、参照画像メモリ(534)のコンテンツもまた、ローカル符号器とリモート符号器との間でビットパーフェクトになる。言い換えれば、符号器の予測部は、復号中に予測を使用しているときに復号器が「見る」ものとまったく同じサンプル値を参照画像サンプルとして「見る」。参照画像共時性のこの基本原理(及び、例えばチャネルエラーのために共時性を維持できない場合は、結果として生じるドリフト)は、一部の関連技術にも同様に用いられている。
【0043】
「ローカル」復号器(533)の動作は、映像復号器(410)などの「リモート」復号器と同じであってもよく、これについては、
図4に関連してすでに詳細に上述した。しかしながら、一時的に
図4も参照すると、シンボルが使用可能であり、かつエントロピー符号器(545)及び構文解析器(420)によって、シンボルを符号化された映像シーケンスに可逆的に符号化/復号できるので、バッファメモリ(415)を含む映像復号器(410)のエントロピー復号部、及び構文解析器(420)は、ローカル復号器(533)で完全に実施されなくてもよい。
【0044】
この時点で気付くことには、復号器内に存在する、構文解析/エントロピー復号を除く復号器技術が、対応する符号器内にもほぼ同一の機能的形態で存在することが当然必要になる。このため、開示される主題は復号器の動作に重点を置いている。符号器技術の説明は、包括的に述べられている復号器技術の逆なので、省略することができる。いくつかの領域においてのみ、より詳細な説明が必要とされ以下で説明される。
【0045】
いくつかの例では、動作中に、ソース符号器(530)は、動き補償された予測符号化を実行してもよく、「参照画像」として指定された映像シーケンスから、1つ以上の以前に符号化された画像に関して入力画像を予測的に符号化する。この方法では、符号化エンジン(532)は、入力画像の画素ブロックと、入力画像に対する(1つ以上の)予測参照として選択され得る(1つ以上の)参照画像の画素ブロックとの差を符号化する。
【0046】
ローカル映像復号器(533)は、ソース符号器(530)によって生成されたシンボルに基づいて、参照画像として指定され得る画像の符号化された映像データを復号してもよい。符号化エンジン(532)の動作は、好適には非可逆の工程であってもよい。符号化された映像データが、映像復号器(
図5には図示せず)で復号されうるとき、再構築された映像シーケンスは、通常はいくらかの誤差を伴う、ソース映像シーケンスの複製でありうる。ローカル映像復号器(533)は、映像復号器によって参照画像に対して実行されうる復号工程を複製してもよく、かつ再構築された参照画像が参照画像キャッシュ(534)に記憶されるようにし得る。このようにして、映像符号器(503)は、遠端の映像復号器(伝送エラーのない)によって取得される、再構築された参照画像と共通のコンテンツを有する、再構築された参照画像のコピーを局所的に記憶しうる。
【0047】
予測器(535)は、符号化エンジン(532)用の予測検索を実行してもよい。つまり、予測器(535)は、符号化される新しい画像に対して、参照画像メモリ(534)からサンプルデータ(候補参照画素ブロックとしての)、又は参照画像動きベクトル、ブロック形状などのいくつかのメタデータを検索してもよく、これは新しい画像の適切な予測参照として機能する。予測器(535)は、適切な予測参照を見つけるために、サンプルブロック×画素ブロック(sample
block-by-pixel block)を基準として動作してもよい。場合によっては、予測器(535)によって取得された検索結果によって決定されるように、入力画像は、参照画像メモリ(534)に記憶された複数の参照画像から引き出された予測参照を有してもよい。
【0048】
コントローラ(550)は、例えば、映像データの符号化に使用される、パラメータ及びサブグループパラメータの設定を含む、ソース符号器(530)の符号化動作を管理してもよい。
【0049】
前述した全機能ユニットの出力は、エントロピー符号器(545)でエントロピー符号化されてもよい。エントロピー符号器(545)は、さまざまな機能ユニットによって生成されると、ハフマン符号化、可変長符号化、算術符号化などの技術でシンボルを可逆圧縮することによって、シンボルを符号化された映像シーケンスに変換する。
【0050】
送信機(540)は、通信チャネル(560)を介した送信に備えるために、エントロピー符号器(545)によって生成された際に、(1つ以上の)符号化された映像シーケンスをバッファリングしてもよく、これは、符号化された映像データを記憶する記憶装置に対するハードウェア/ソフトウェアリンクであってもよい。送信機(540)は、映像符号器(503)の符号化された映像データを、送信される他のデータ、例えば、符号化された音声データ及び/又は補助データストリーム(ソースは図示せず)とマージしてもよい。
【0051】
コントローラ(550)は、映像符号器(503)の動作を管理してもよい。符号化中に、コントローラ(550)は、符号化された画像のそれぞれにいくつかの符号化画像種別を割り当ててもよく、これは、各画像に適用され得る符号化技術に影響を及ぼしうる。例えば、画像は、以下の画像種別のうちの1つに割り当てられることが多い。
【0052】
イントラ画像(Iピクチャ)は、予測のソースとしてシーケンス内の他の画像を使用せずに符号化及び復号され得るものである。いくつかの映像コーデックは、例えば、即時復号リフレッシュ(Independent
Decoder Refresh、「IDR」)ピクチャを含む、異なる種類のイントラ画像を許容する。当業者には、このようなIピクチャの変形、並びにその各用途及び特徴が知られている。
【0053】
予測画像(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトル及び参照指標を使用して、イントラ予測又はインター予測を用いて符号化及び復号され得るものである。
【0054】
双方向予測画像(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトル及び参照指標を使用して、イントラ予測又はインター予測を用いて符号化及び復号され得るものである。同様に多重予測画像は、1つのブロックを再構築するために、2つよりも多い参照画像、及び関連するメタデータを使用することができる。
【0055】
ソース画像は、通常は空間的に複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、又は16×16サンプルのブロック)に再分割されて、ブロック毎に符号化されうる。ブロックは、ブロックの各画像に適用された符号割り当てによって決定される際に、他の(すでに符号化された)ブロックを参照して予測的に符号化されてもよい。例えば、Iピクチャのブロックは、非予測的に符号化されてもよく、あるいは同じ画像のすでに符号化されたブロックを参照して、予測的に符号化されてもよい(空間予測又はイントラ予測)。Pピクチャの画素ブロックは、1つの以前に符号化された参照画像を参照して、空間予測によって、又は時間予測によって、予測的に符号化されてもよい。Bピクチャのブロックは、1つ又は2つの以前に符号化された参照画像を参照して、空間予測によって、又は時間予測によって、予測的に符号化されてもよい。
【0056】
映像符号器(503)は、ITU-T Rec. H.265などの所定の映像符号化技術又は標準に従って、符号化動作を実行してもよい。その動作において、映像符号器(503)はさまざまな圧縮動作を実行してもよく、これには入力映像シーケンスで時間的及び空間的冗長性を利用する予測符号化動作が含まれる。したがって符号化された映像データは、使用される映像符号化技術又は標準によって指定された構文に従っていてもよい。
【0057】
実施形態では、送信機(540)は、符号化された映像とともに追加データを送信してもよい。ソース符号器(530)は、符号化された映像シーケンスの一部としてこのようなデータを含めてもよい。追加データは、時間/空間/SNR強化層、冗長画像及びスライス、SEIメッセージ、VUIパラメータ集合フラグメントなどの他の形式の冗長データを含んでもよい。
【0058】
映像は、時間シーケンスにおいて、複数のソース画像(映像)として捕捉されてもよい。イントラ画像予測(イントラ予測と略されることが多い)は、所与の画像内で空間相関を使用し、インター画像予測は、画像間の(時間その他の)相関を使用する。例では、現画像と呼ばれる符号化/復号中の特定の画像が、ブロックに分割される。現画像内のブロックが、映像内の予め符号化されてまだバッファリングされている参照画像の参照ブロックと類似しているときは、現画像のブロックは、動きベクトルと呼ばれるベクトルによって符号化することができる。動きベクトルは、参照画像内の参照ブロックを指し、参照画像を特定する第3の次元を有することができ、場合によっては、複数の参照画像が使用される。
【0059】
いくつかの実施形態では、インター画像予測に双方向予測技術を使用することができる。双方向予測技術によれば2つの参照画像が使用され、映像内の現画像に対していずれも復号順が先になる(ただし表示順ではそれぞれ過去及び未来になってもよい)、第1の参照画像及び第2の参照画像などが使用される。現画像内のブロックは、第1の参照画像内の第1の参照ブロックを指す第1の動きベクトル、及び第2の参照画像内の第2の参照ブロックを指す第2の動きベクトルによって符号化することができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組合せによって予測することができる。
【0060】
また、符号化効率を向上させるために、インター画像予測にマージモード技術を使用することができる。
【0061】
本開示のいくつかの実施形態によれば、インター画像予測及びイントラ画像予測などの予測は、ブロックのユニット内で実行される。例えば、HEVC標準によれば、映像シーケンス内の画像は、圧縮するために符号ツリーユニット(CTU)に分割され、画像内のCTUは、64×64画素、32×32画素、又は16×16画素などの同じサイズを有する。一般に、CTUは、3つの符号化ツリーブロック(CTB)を含み、これは、1つのルマCTB、及び2つのクロマCTBである。各CTUは、再帰的に4分木分割して、1つ又は複数の符号化ユニット(CU)にすることができる。例えば、64×64画素のCTUは、1つの64×64画素の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画素などの画素の値(例えば、ルマ値)の行列を含む。
【0062】
図6は、本開示の別の実施形態による、映像符号器(603)の図を示す。映像符号器(603)は、映像シーケンスの現在の映像内にあるサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを符号化して、符号化された映像シーケンスの一部である符号化された画像にするように構成される。例では、映像符号器(603)は、
図3の例における映像符号器(303)の代わりに使用される。
【0063】
HEVCの例では、映像符号器(603)は、8×8サンプルの予測ブロックなど、処理ブロックのサンプル値の行列を受信する。映像符号器(603)は、例えばレート-歪み最適化を使用して、処理ブロックが、イントラモード、インターモード、又は双方向予測モードを使用して最良に符号化されるかどうかを判定する。処理ブロックがイントラモードで符号化されるときは、映像符号器(603)は、処理ブロックを符号化して符号化された画像にするためにイントラ予測技術を使用してもよく、処理ブロックがインターモード又は双方向予測モードで符号化されるときは、映像符号器(603)は、処理ブロックを符号化して符号化された画像にするためにインター予測又は双方向予測技術をそれぞれ使用してもよい。いくつかの映像符号化技術では、マージモードが、インター画像予測下位モードであってもよく、ここで動きベクトルは1つ以上の動きベクトル予測子から得られ、予測子の外部にある符号化された動きベクトル成分は利用しない。いくつかの他の映像符号化技術では、対象ブロックに適用できる動きベクトル成分が存在し得る。例では、映像符号器(603)は、処理ブロックのモードを決定するために、モード決定モジュール(図示せず)などの他の要素を含む。
【0064】
図6の例では、映像符号器(603)は、
図6に示すように互いに結合された、インター符号器(630)と、イントラ符号器(622)と、残差計算器(623)と、スイッチ(626)と、残差符号器(624)と、統括コントローラ(621)と、エントロピー符号器(625)とを備える。
【0065】
インター符号器(630)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、ブロックを参照画像内の1つ以上の参照ブロック(例えば、以前及び以後の画像内のブロック)と比較し、インター予測情報(例えば、インター符号化技術、動きベクトル、マージモード情報による冗長情報の記述)を生成し、任意の適切な技術を使用して、インター予測情報に基づいてインター予測結果(例えば、予測されたブロック)を計算するように構成される。いくつかの例では、参照画像は、符号化された映像情報に基づいて復号された、復号された参照画像である。
【0066】
イントラ符号器(622)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、場合によってはブロックを、同じ画像内ですでに符号化されているブロックと比較し、変換後の量子化された係数、及び場合によっては、さらにイントラ予測情報(例えば、1つ以上のイントラ符号化技術によるイントラ予測方向情報)を生成するように構成される。例では、イントラ符号器(622)は、同じ画像内のイントラ予測情報及び参照ブロックに基づいて、イントラ予測結果(例えば、予測されたブロック)をさらに計算する。
【0067】
統括コントローラ(621)は、統括制御データを決定し、統括制御データに基づいて映像符号器(603)の他の要素を制御するように構成される。例では、統括コントローラ(621)は、ブロックのモードを決定し、モードに基づいてスイッチ(626)に制御信号を供給する。例えば、モードがイントラモードのときは、統括コントローラ(621)は、残差計算器(623)によって使用されるようイントラモード結果を選択するようにスイッチ(626)を制御し、かつイントラ予測情報を選択してビットストリーム内にイントラ予測情報を含めるようにエントロピー符号器(625)を制御し、モードがインターモードのときは、統括コントローラ(621)は、残差計算器(623)によって使用されるようインター予測結果を選択するようにスイッチ(626)を制御し、かつインター予測情報を選択してビットストリーム内にインター予測情報を含めるようにエントロピー符号器(625)を制御する。
【0068】
残差計算器(623)は、受信したブロックと、イントラ符号器(622)又はインター符号器(630)から選択された予測結果との間の差(残差データ)を計算するように構成される。残差符号器(624)は、残差データを符号化して変換係数を生成するために、残差データに基づいて動作するように構成される。例では、残差符号器(624)は、残差データを空間領域から周波数領域に変換して、変換係数を生成するように構成される。変換係数は、その後、量子化変換係数を取得するために量子化処理される。さまざまな実施形態において、映像符号器(603)は残差復号器(628)をさらに備える。残差復号器(628)は、逆変換を実行して、復号された残差データを生成するように構成される。復号された残差データは、イントラ符号器(622)及びインター符号器(630)が適宜使用することができる。例えば、インター符号器(630)は、復号された残差データ及びインター予測情報に基づいて復号されたブロックを生成でき、イントラ符号器(622)は、復号された残差データ及びイントラ予測情報に基づいて復号されたブロックを生成することができる。復号されたブロックは復号された画像を生成するように適宜処理され、復号された画像はメモリ回路(図示せず)にバッファリングして、いくつかの例において参照画像として使用することができる。
【0069】
エントロピー符号器(625)は、ビットストリームを、符号化されたブロックを含むようフォーマットするように構成される。エントロピー符号器(625)は、HEVC標準などの適切な標準に従って、さまざまな情報を含めるように構成される。例えば、エントロピー符号器(625)は、統括制御データ、選択した予測情報(例えば、イントラ予測情報又はインター予測情報)、残差データその他の適切な情報をビットストリーム内に含めるように構成される。開示されている主題によれば、インターモード、又は双方向予測モードのいずれかのマージ下位モードでブロックを符号化するときは、残差情報がないことに留意されたい。
【0070】
図7は、本開示の別の実施形態による、映像復号器(710)の図を示す。映像復号器(710)は、符号化された映像シーケンスの一部である、符号化された画像を受信して、再構築された画像を生成するために、符号化された画像を復号するように構成される。例では、映像復号器(710)は、
図3の例における映像復号器(310)の代わりに使用される。
【0071】
図7の例では、映像復号器(710)は、
図7に示すように互いに結合された、エントロピー復号器(771)と、インター復号器(780)と、残差復号器(773)と、再構築モジュール(774)と、イントラ復号器(772)とを含む。
【0072】
エントロピー復号器(771)は、符号化された画像から、符号化された画像が作成される構文要素を表す、いくつかのシンボルを再構築するように構成することができる。このようなシンボルは、例えば、ブロックが符号化されるモード(例えば、イントラモード、インターモード、双方向予測モード、マージサブモード又は別のサブモードのインターモード及び双方向予測モード)、イントラ復号器(772)又はインター復号器(780)のそれぞれによる予測に使用されるいくつかのサンプル又はメタデータを特定できる、予測情報(例えば、イントラ予測情報又はインター予測情報)、量子化変換係数などの形式の残差情報を含むことができる。例では、予測モードがインターモード又は双方向予測モードのときは、インター復号器(780)にインター予測情報が提供され、予測種別がイントラ予測種別のときは、イントラ復号器(772)にイントラ予測情報が提供される。残差情報は逆量子化でき、残差復号器(773)に提供される。
【0073】
インター復号器(780)は、インター予測情報を受信して、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0074】
イントラ復号器(772)は、イントラ予測情報を受信して、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0075】
残差復号器(773)は、非量子化変換係数を抽出して、非量子化変換係数を処理して残差を周波数領域から空間領域に変換するために、逆量子化を実行するように構成される。残差復号器(773)は、(量子化器パラメータ(QP)を含めるために)いくつかの制御情報をさらに必要とする場合があり、その情報は、エントロピー復号器(771)によって提供されてもよい(これについては低容量の制御情報のみの場合があるため、データ経路は図示していない)。
【0076】
再構築モジュール(774)は、再構築ブロックを形成するために、空間領域において、残差復号器(773)の出力としての残差と、(場合により、インター又はイントラ予測モジュールによる出力としての)予測結果とを結合するように構成され、再構築されたブロックは再構築された画像の一部になり、次に再構築された映像の一部になり得る。視覚品質を向上させるために、非ブロック化動作などの他の適切な動作を実行できることに留意されたい。
【0077】
映像符号器(303)、(503)、及び(603)、並びに映像復号器(310)、(410)、及び(710)は、任意の適切な技術を使用して実施できることに留意されたい。実施形態では、映像符号器(303)、(503)、及び(603)、並びに映像復号器(310)、(410)、及び(710)は、1つ以上の集積回路を使用して実施することができる。別の実施形態では、映像符号器(303)、(503)、及び(503)、並びに映像復号器(310)、(410)、及び(710)は、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実施することができる。
【0078】
図8は、実施形態による、イントラブロックコピー(IBC)を使用して符号化される、現画像(800)内の現在のブロック(810)の概略図である。
【0079】
いくつかの例では、ブロックは異なる画像からの参照ブロックを使用して符号化されてもよく、これは動き補償とも呼ばれる。いくつかの例では、ブロックは、同じ画像内にある以前に再構築された領域からの参照ブロックを使用して符号化されてもよく、これはイントラ画像ブロック補償、現画像参照(CPR)、又はイントラブロックコピー(IBC)とも呼ばれる。現在のブロックと参照ブロックとの間のオフセットを示す変位ベクトルは、ブロックベクトル(又は略してBV)と呼ばれる。任意の値(正又は負、x次元でもy次元でも)をとれる動き補償の動きベクトルとは異なり、参照ブロックがすでに再構築されていてその再構築サンプルが使用可能なことを保証するために、ブロックベクトルに制約が課される。いくつかの実施形態では、並列処理の制約を考慮して、タイル境界、又は波面はしご形境界(wavefront
ladder shape boundary)を越えるいくつかの参照領域がさらに除外される。
【0080】
ブロックベクトルの符号化は、明示的であっても暗示的であってもよい。明示モードでは、インター符号化におけるAMVPモードと同様の方法で、ブロックベクトルとその予測子との差を信号送信(シグナリング)することができる。暗示モードでは、ブロックベクトルは、マージモードの動きベクトルと同様の方法で予測子から回復することができる。ブロックベクトルの分解能は、いくつかの実施では、整数位置に設定される、あるいはいくつかの例では、分数位置に設定される。
【0081】
ブロックレベルにおけるIBCの使用は、ブロックレベルフラグを使用して信号送信することができる。いくつかの例では、このフラグは、現在のブロックがマージモードで符号化されないときに信号送信することができる。いくつかの例では、このフラグは、参照インデックスの手法によって信号送信することができる。これは、現在復号されている画像を参照画像として扱うことによって行われる。HEVCスクリーンコンテンツ符号化(HEVC
SCC)では、このような参照画像はリストの最後の位置に置かれる。この特別な参照画像も、他の時間的な参照画像と一緒に、復号済み画像バッファ(DPB)でさらに管理される。
【0082】
IBCの実施には、反転イントラブロックコピー(参照ブロックが、現在のブロックの予測に使用される前に水平又は垂直に反転される)、又はラインに基づくイントラブロックコピー(M×Nの符号化ブロック内部の各補償ユニットがM×1又は1×Nライン)などのいくつかの変形がある。
【0083】
IBCを使用する例が
図8に示されており、ここでは現画像(800)は、3行5列で構成された15のブロックを含む。いくつかの例では、各ブロックは符号化ツリーユニット(CTU)に対応する。現在のブロック(810)は、現画像(800)内の参照サブブロック(832)を指すブロックベクトル(822)を有する、サブブロック(812)(例えば、CTU内の符号化ブロック)を含む。
【0084】
現画像の再構築サンプルは、専用のメモリに記憶することができる。実施費用を考えると、参照ブロックの再構築サンプルが使用可能になっている参照領域は、フレーム全体ほど大きくなくてもよく、専用のメモリのメモリサイズに依存する。したがって、IBCを使用する現在のサブブロックの場合、いくつかの例では、IBC参照サブブロックは、画像全体ではなく、いくつかの隣接する領域のみに制限されてもよい。
【0085】
いくつかの例では、後のイントラブロックコピー参照用に以前に符号化されたCUの参照サンプルを記憶する専用のメモリは、参照サンプルメモリと呼ばれる。一例ではメモリサイズは、例えば、最大で1つの以前に符号化されたCTU、又は1つの左CTUを記憶する、1つのCTUである。別の例では、メモリサイズは、例えば、2つの以前に符号化されたCTU、又は2つの左CTU、あるいは1つの現在のCTUと1つの左CTUとを合わせた、2つのCTUである。いくつかの実施形態では、各CTUは、対応するクロマサンプルと併せて、128×128ルマサンプルを記憶するためのメモリサイズを必要とする。参照ブロックが、記憶され再構築された領域の外にあるときは、その参照ブロックをIBCに使用することはできない。
【0086】
いくつかの実施形態では、新しいCTU(すなわち現在のCTU)を開始すると、参照サンプルメモリが、現在のCTU全体の再構築サンプルを記憶するための空間を割り当てる。いくつかの実施形態では、メモリサイズは1つのCTUであり、現在のCTUに割り当てられた空間は、以前に符号化されたCTUからの再構築サンプルを記憶するために、まだ部分的に使用することができるので、現在のCTUに対する空間の割り当ては、現在のCTUの開始時点では完了されない。したがって、以前に符号化されたCTUからの再構築サンプルを記憶する参照サンプルメモリの一部(又は位置)は、現在のCTU内の現在の符号化ブロックの再構築サンプルによってこの部分が更新されるまで、現在のCTU内の現在の符号化ブロックを予測するために、IBCモードで使用することができる。その後、この部分のデータは、現在のCTUからの再構築サンプルを提供するためのIBC参照になお使用することができるが、上書きされたばかりの、以前に符号化されたCTUからの再構築サンプルを提供するために使用することはできない。
【0087】
いくつかの実施形態では、現在のCTUは、1つ以上の予め定義された格子パターンに基づいて、いくつかの区画に分割される。64×64区画、32×32区画などとなる。現在のCTU内の現在の符号化ブロックの位置が、予め定義された区画の1つの範囲内にある場合は、参照サンプルメモリに記憶されている、対応する区画全体に対する再構築サンプルは現在のCTUからの再構築サンプルで更新され、参照サンプルメモリ内のその区画にある、以前に符号化されたCTUからの古い再構築サンプルは、IBC参照目的で使用することはできないことを示す。いくつかの例では、区画のサイズは少なくとも、最大限可能なIBCコードブロックサイズと同じ大きさである。例えば、IBC用の最大参照ブロックサイズが64×64の場合、CTUは64×64区画と同じくらい小さく分割することができる。
【0088】
いくつかの代替実施形態では、以前に符号化されたCTU内の参照ブロック、及び現在のCTU内のその同位置のブロックが、参照サンプルメモリ内で同じ位置を共有するときは、現在のCTU内のこの同位置のブロックが符号化されるときに、現在のCTUからのデータでメモリの位置が更新される。現在のCTUの符号化工程中に、IBCモードの符号化ブロックに対しては、以前に符号化されたCTU内のその参照ブロックが見出され、その参照サンプルは参照サンプルメモリに記憶される。この参照ブロックの場合、現在のCTU内にあるその同位置のブロック内のサンプルが1つも符号化されていない場合は、参照サンプルメモリ内の位置は、現在のCTUからのデータで更新されておらず、以前に符号化されたCTUからの参照サンプルを含むこの参照ブロックは、なおIBCに使用することができる。あるいは、実施形態によれば、現在のCTU内にある同位置のブロックの少なくとも1つのサンプルが再構築されている場合は、以前に符号化されたCTU内のこの参照ブロックは上書きされたものとして示すことができ、IBC参照に使用することはできない。
【0089】
いくつかの実施形態では、メモリサイズは2つのCTUである。新しいCTU(すなわち現在のCTU)を開始するときに、最後に符号化されたCTUの再構築サンプルはそのまま残されてもよく、現在のCTUに割り振られた空間は、最後に符号化されたCTUの前に符号化された、以前に符号化されたCTUからの再構築サンプルを記憶するために部分的に使用することができる。したがって、符号化順、ブロックの区画構造、及びメモリ内の再構築サンプルの可用性に応じて、IBCモードで使用される参照サンプルの許容可能な領域を、現在のCTUの再構築部分、最後に符号化されたCTU全体、及び/又は現在のブロックの再構築サンプルによって上書きされていないものとして示すことができる、以前に符号化されたCTUの一部まで拡張することができる。
【0090】
別の実施形態では、メモリサイズは2つのCTUである。新しいCTU(すなわち現在のCTU)を開始するときに、最後に符号化されたCTUからの再構築サンプルは、そのまま残しておいてもよい。したがって、符号化順、ブロックの区画構造、及びメモリ内の再構築サンプルの可用性に応じて、IBCモードで使用される参照サンプルの許容可能な領域を、現在のCTUの再構築部分、及び最後に符号化されたCTU全体まで拡張することができる。
【0091】
いくつかの例では、IBC参照サブブロックのサイズは、一定のインター符号化ブロックと同じ大きさにすることができる。参照サンプルメモリをより効率的に使用するために、IBC参照サブブロックのサイズは、幅又は高さエッジのいずれかが64ルマサンプルを超えないように制限でき、色のフォーマットに応じて、対応するサイズ制約がクロマサンプルに適用される。例えば、4:2:0のフォーマットでは、IBCモードにおけるクロマブロックのサイズは、それぞれの側で32サンプルを超えないように制限することができる。いくつかの実施形態では、それぞれの側で32ルマサンプルなどの下限を使用することができる。
【0092】
以下の制限のない例では、さまざまな実施形態を示す目的で、最大IBC参照サブブロックサイズが、64×64ルマサンプルに設定されている。したがって、128×128ルマサンプルのCTUサイズでは、ルマサンプルに対して、128×128、128×64、64×128、128×32、32×128などのサブブロックはイントラブロックコピーモードを使用することはできない。クロマサンプルの場合、色のフォーマットに応じて、ルマサンプルに対する制約と同様に、クロマサンプルに対する対応サイズを適用する。
【0093】
図9は、実施形態による、IBCを使用する、現画像内の現在のブロック(CTU、910)、及び隣接するブロック(CTU、960)の概略図である。
【0094】
いくつかの実施形態では、異なるCTUからの2つのサブブロックは、これら2つのサブブロックが、各CTUの左上隅に対して同じサイズかつ同じ位置オフセット値を有するときは、同位置のサブブロックと呼ばれる。
図9は、現在のブロック(すなわちCTU)(910)内の現在のサブブロック(912)、及びその可能な参照サブブロックのうちの3つ(962、964、及び966)を、左側にある、各ブロックベクトル(922、924、及び926)によって特定可能な、以前に符号化されたブロック(960)内に示す。この例では、参照サンプルメモリサイズが1つのCTUの場合、参照サブブロック(966)は、現在のブロック(910)内にあるその同位置のサブブロック(936)がまだ再構築されていない(白色の領域)ために、メモリから見出すことができる。したがって、参照サンプルメモリのその位置は、まだ以前に符号化されたブロック(960)からの参照サンプルを記憶している。対照的に、参照サブブロック(962)は、現在のブロック(910)内のその同位置のサブブロック(932)の再構築が完了している(灰色の領域)ために使用できない。参照サブブロック(962)に対する参照サンプルメモリの位置は、現在のブロック(910)内のサブブロック(932)からの再構築サンプルで上書きされている。同様に、参照サブブロック(964)は、現在のブロック(910)内にあるその同位置のサブブロック(934)の一部が再構築されているために、有効な参照サブブロックになれず、したがってメモリのその部分は、現在のブロック(910)内のデータで部分的に上書きされている。
【0095】
CTU間でメモリ空間を共有しながら、記憶されている再構築サンプルを効率的に使用するために、符号器又は復号器は、区画構造、符号化順、及び/又は現在のブロック内にある現在のサブブロックの位置に基づいて、以前に符号化されたブロックからの参照サブブロックが上書きされている(あるいは上書きされていると考えられる)かどうかを判定することができる。
【0096】
例えば、以前に符号化されたブロック内の参照サブブロック、及び現在のブロック内にあるその同位置のサブブロックが、参照サンプルメモリ内で同じ位置を共有する場合、現在のブロック内にあるこの同位置のサブブロックの任意の部分が符号化されるときに、メモリのその位置は、現在のブロック内のデータで更新されている(例えば、上書きされている、あるいは上書きされたと考えられる)として示されることができる。現在のブロックの符号化工程中に、IBCモードのサブブロックに対しては、以前に符号化されたブロック内のその参照サブブロックが見出され、その参照サンプルは参照サンプルメモリに記憶される。この参照サブブロックについては、現在のブロック内にあるその同位置のサブブロック内のサンプルが符号化されていない場合は、参照サンプルメモリ内のその位置は現在のブロックからのデータで更新されておらず、以前に符号化されたブロックからの参照サンプルを含むこの参照サブブロックは、IBC参照に使用することができる。そうではなく、現在のブロック内にある同位置のサブブロックの少なくとも1つのサンプルが符号化されているときは、参照サンプルメモリ内の対応する位置は、現在のブロック内のデータによって更新されており、この参照サブブロックをIBC参照に使用することはできない。
【0097】
上述した一般的な解決策は、現在のブロックの符号化及び/又は復号工程中に、異なる位置の可用性を確認することに基づく。このような可用性確認工程は、いくつかの例では、簡素化して、いくつかの事前設定した位置の可用性確認のみにすることができる。いくつかの例では、以前に符号化されたブロックからの64×64ルマブロックの可用性の判定は、現在のブロックにおけるその同位置の64×64ブロックの任意の部分が、符号化されているかどうかに基づいていてもよい。この場合、現在のブロックにおける各64×64ブロックの左上位置のみが、確認を必要とされ得る。他の実施形態では、他の位置が確認されてもよい。提案した方法/解決策は、32×32ブロックに基づく評価など、より小さいブロックサイズに拡張することができる。
【0098】
以下の2つの分割シナリオに基づいて、異なる区画構造用の異なる判定要因についてさらに説明する。異なる区画構造に基づいて、このような可用性判定は、余分な参照サンプルメモリを使用せずに可用性参照範囲を増やしてIBC性能を向上させるために、個別のサンプルを無制限に、又は制限付きで確認して行われてもよい。
【0099】
第1のシナリオでは、現在のCTUにおける4つの64×64ルマ区画(4:2:0フォーマットの32×32クロマ区画)のそれぞれが、完全に符号化ブロック(サブブロックとも呼ばれる)内に含まれ、あるいは現在のCTU内の各符号化ブロックが、4つの64×64ルマ区画(4:2:0フォーマットの32×32クロマ区画)のうちの1つの中に完全に含まれる。
【0100】
第1のシナリオによれば、128×128 CTUレベルでは、このブロックはそのまま(128×128)として符号化できる、又は4つの64×64ブロックに分割されてさらに分割される可能性がある、あるいは2つの128×64ブロックに分割されてさらに分割される可能性がある、あるいは2つの64×128ブロックに分割されてさらに分割される可能性がある。
【0101】
いくつかの変形では、64ルマサンプルよりも大きい、いずれかのエッジ(幅又は高さ)を有するブロックに対する三分木分割は許可されておらず、あるいは、結果として得られるブロックは、4つの64×64区画のうちの1つには含まれない、又は4つの64×64区画のうちの1つを完全に含む。
【0102】
一例では、符号化ブロックのサイズが128×128であり、かつ最大IBCブロックサイズが64×64の場合、この128×128ブロックはIBCモードでは符号化されない。
【0103】
一例では、符号化ブロックが4つの64×64ブロックの場合、参照サンプルの可用性は、
図10Aを参照して説明することができる。
【0104】
図10Aは、一実施形態による、IBCを使用して符号化される現在のサブブロックの位置に基づいて、隣接するブロック内の再構築サンプルが、どのように上書きされたことを示すかについての概略図である。
【0105】
図10Aでは、現在のブロック(1010)は、4つの64×64区画(1012、1014、1016、及び1018)を含む現在のCTUに対応する。以前に符号化されたブロック(1060)は、4つの64×64区画(1062、1064、1066、及び1068)を含む左CTUに対応する。現在のブロック(1010)内の符号化ブロックを処理する符号化順は、左上区画(1012)から開始して、次に右上区画(1014)、次に左下区画(1016)、そして最後に右下区画(1018)となる。縦縞を有する64×64区画は、現在の符号化ブロックが配置される場所である(現在の符号化ブロックは、サイズが64×64よりも小さくてもよい)。陰影のついた灰色のブロックは、再構築ブロックである。「X」印がついたブロックは、対応する位置にある現在のブロックからの再構築サンプルで上書きする必要がある、又は上書きされているため、IBC参照には使用できない。
【0106】
したがって、現在の符号化ブロックが、現在のブロック(1010)の左上の64×64区画(1012)の範囲内にある場合は、現在のCTU内のすでに再構築されたサンプルに加えて、左CTU(ブロック1060)の右上、左下、及び右下の64×64区画(1064、1066、及び1068)内の再構築サンプルを、IBCモードを使用して参照することができる。区画(1062)は、上書きされていて使用できないものとして示されている。
【0107】
実施形態では、現在の符号化ブロックが、現在のブロック(1010)の右上の64×64区画(1014)の範囲内にある場合は、現在のCTU内のすでに再構築されたサンプルに加えて、左CTU(ブロック1060)の左下及び右下の64×64区画(1066及び1068)内の再構築サンプルを、IBCモードを使用して参照することができる。区画(1062及び1064)は、上書きされていて使用できないものとして示されている。
【0108】
実施形態では、現在の符号化ブロックが、現在のブロック(1010)の左下の64×64区画(1016)の範囲内にある場合は、現在のCTU内のすでに再構築されたサンプルに加えて、左CTU(ブロック1060)の右下の64×64区画内の参照サンプルを、IBCモードを使用して参照することができる。区画(1062、1064、及び1066)は、上書きされていて使用できないものとして示されている。
【0109】
実施形態では、現在の符号化ブロックが、現在のブロック(1010)の右下の64×64区画(1018)の範囲内にある場合は、現在のCTU内のすでに再構築されたサンプルのみを、IBCモードを使用して参照することができる。区画(1062、1064、1066、及び1068)は、上書きされていて使用できないものとして示されている。
【0110】
上述した前提は、別個のルマ/クロマ符号化ツリー(並列木)が使用されるときなど、CTUが、第1のレベル(128×128レベルで任意の分割がある場合)で四分木に分割される事例で機能する。
【0111】
一例では、符号化ブロックが2つの128×64ブロックの場合は、次のレベルで水平二分木分割を適用することは許可されない。さもなければ、結果として得られた128×32ブロックは2つの64×64区画に含まれ、これは第1のシナリオの前提に反することになってしまう。したがって、各128×64ブロックは、そのまま符号化される、又は2つの64×64ブロックに分割され、あるいは四分木によって4つの64×16ブロックに分割されてもよい。
【0112】
一例では、符号化ブロックが2つの64×128ブロックの場合は、次のレベルで垂直二分木分割を適用することは許可されない。さもなければ、結果として得られた32×128ブロックは2つの64×64区画に含まれ、これは第1のシナリオの前提に反することになってしまう。したがって、各64×128ブロックは、そのまま符号化される、又は2つの64×64ブロックに分割され、あるいは四分木によって4つの16×64ブロックに分割されてもよい。
【0113】
いくつかの例では、VVC標準は、四分木、二分木、及び三分木を使用した柔軟なブロック分割戦略が可能である。並列木が使用されないときなど、第1のレベルの分割が四分木でない場合は、(三分木分割ではなく)やはり二分木分割であってもよい。2つの128×64ブロック、又は2つの64×128ブロックを有するなど、CTUから第1のレベルで垂直二分木分割が適用される場合は、
図10Aにおける4つの64×64区画の第2及び第3の符号化順が異なる場合がある。
【0114】
図10Bは、別の実施形態による、IBCを使用して符号化される現在のサブブロックの位置に基づいて、隣接するブロック内の再構築サンプルが、どのように上書きされたものとして示されるかについての概略図である。
図10Bでは、CTUから128×128レベルで垂直二分木分割が適用されるときの、右上の64×64区画、及び左下の64×64区画の参照サンプルの可用性が示されている。CTUから128×128レベルで水平二分木分割が適用されるときは、右上の64×64ブロック、及び左下の64×64ブロックの参照サンプルの符号化順及び可用性は、
図10Aと同じである。
【0115】
したがって、実施形態によれば、現在の符号化ブロックが、現在のブロック(1010)の左上の64×64区画(1012)の範囲内にある場合は、現在のCTU内のすでに再構築されたサンプルに加えて、左CTU(ブロック1060)の右上、左下、及び右下の64×64区画(1064、1066、及び1068)内の再構築サンプルを、IBCモードを使用して参照することができる。区画(1062)は、上書きされていて使用できないものとして示されている。
【0116】
実施形態によれば、現在の符号化ブロックが、現在のブロック(1010)の左下の64×64区画(1016)の範囲内にある場合は、現在のCTU内のすでに再構築されたサンプルに加えて、左CTU(ブロック1060)の右上及び右下の64×64区画(1064及び1068)内の再構築サンプルを、IBCモードを使用して参照することができる。区画(1062及び1066)は、上書きされていて使用できないものとして示されている。
【0117】
現在の符号化ブロックが、現在のブロック(1010)の右上の64×64区画(1016)の範囲内にある場合は、現在のCTU内のすでに再構築されたサンプルに加えて、左CTU(ブロック1060)の右下の64×64区画内の参照サンプルを、IBCモードを使用して参照することができる。区画(1062、1064、及び1066)は、上書きされていて使用できないものとして示されている。
【0118】
実施形態によれば、現在の符号化ブロックが、現在のブロック(1010)の右下の64×64区画(1018)の範囲内にある場合は、現在のCTU内のすでに再構築されたサンプルのみを、IBCモードを使用して参照することができる。区画(1062、1064、1066、及び1068)は、上書きされていて使用できないものとして示されている。
【0119】
図10A及び
図10Bを参照して考察するために、2つの例示的な解決策を以下に概説する。
【0120】
第1の例示的な解決策は、可能なときは参照サンプルメモリを完全に再使用することである。より詳細には、現在のブロック(例えば、CTU)に対する現在のサブブロック(例えば、符号化ブロック)の位置に応じて、以下の項目を適用することができる。
・現在のサブブロックが、現在のブロックの左上の64×64区画の範囲内にある場合は、現在のブロック内のすでに再構築されたサンプルに加えて、左ブロックの右上、左下、及び右下の64×64区画内の再構築サンプルを、IBCモードを使用してさらに参照することができる。
・現在のサブブロックが、現在のブロックの右上の64×64区画の範囲内にある場合は、現在のブロック内のすでに再構築されたサンプルに加えて、左ブロックの右下の64×64区画内の再構築サンプルを、IBCモードを使用してさらに参照することができる。また、現在のブロックに対するルマ位置(0,64)がまだ再構築されていない場合は、現在のサブブロックは、IBCモードを使用して、左ブロックの左下の64×64区画にある再構築サンプルをさらに参照することができる。
・現在のサブブロックが、現在のブロックの左下の64×64区画の範囲内にある場合は、現在のブロック内のすでに再構築されたサンプルに加えて、左ブロックの右下の64×64区画内の再構築サンプルを、IBCモードを使用してさらに参照することができる。現在のブロックに対するルマ位置(64,0)がまだ再構築されていない場合は、現在のサブブロックは、IBCモードを使用して、左ブロックの右上の64×64区画にある再構築サンプルをさらに参照することができる。
・現在のブロックが、現在のブロックの右下の64×64区画の範囲内にある場合は、現在のブロック内のすでに再構築されたサンプルのみを、IBCモードを使用して参照することができる。
【0121】
以下の表Iは、第1の例示的な解決策の場合の、左ブロックからの再構築サンプルの可用性についてまとめたものである。UL、UR、LL、及びLRはそれぞれ、左上、右上、左下、及び右下を指す。「X」印は、使用不可を意味し、「Y」印は使用可を意味する。
【0122】
【0123】
第2の例示的な解決策は、採用されたブロック分割戦略とは無関係に、工程を簡素化するためのものである。より詳細には、現在のブロック(例えば、CTU)に対する現在のサブブロック(例えば、符号化ブロック)の位置に応じて、以下の項目を適用することができる。
・現在のサブブロックが、現在のブロックの左上の64×64区画の範囲内にある場合は、現在のブロック内のすでに再構築されたサンプルに加えて、左ブロックの右上、左下、及び右下の64×64区画内の再構築サンプルを、IBCモードを使用してさらに参照することができる。
・現在のサブブロックが、現在のブロックの右上の64×64区画の範囲内にある場合は、現在のブロック内のすでに再構築されたサンプルに加えて、左ブロックの右下の64×64区画内の再構築サンプルを、IBCモードを使用してさらに参照することができる。
・現在のサブブロックが、現在のブロックの左下の64×64区画の範囲内にある場合は、現在のブロック内のすでに再構築されたサンプルに加えて、左ブロックの右下の64×64区画内の再構築サンプルを、IBCモードを使用してさらに参照することができる。
・現在のブロックが、現在のブロックの右下の64×64区画の範囲内にある場合は、現在のブロック内のすでに再構築されたサンプルのみを、IBCモードを使用して参照することができる。
【0124】
以下の表IIは、第2の例示的な解決策の場合の、左ブロックからの再構築サンプルの可用性についてまとめたものである。UL、UR、LL、及びLRはそれぞれ、左上、右上、左下、及び右下を指す。「X」印は、使用不可を意味し、「Y」印は使用可を意味する。
【0125】
【0126】
第2のシナリオでは、CTUルート(128×128ルマサンプル)において、四分木及び二分木分割のみが許容される。その後、64×128、128×64、又は64×64ブロックのそれぞれのいずれの側にも、二分木分割又は三分木分割を適用することができる。
【0127】
第2のシナリオによれば、CPRモードの現在のサブブロックが、左上64×64区画の範囲内に入る場合は、右下64×64区画内の符号化ブロックの前に、左上64×64区画内の全符号化ユニットが符号化されることのみが保証される。この場合、現在のブロックの左上64×64区画にある符号化ユニットの処理中に、左ブロックの右下64×64区画はまだ更新されていない。この参照領域(左ブロックの右下64×64区画)の再構築サンプルは、CPR参照に使用することができる。
【0128】
現在のブロックの他の3つの64×64区画にある符号化ブロックの場合、左ブロックの参照サンプルを含む完全な64×64区画が、対応する64×64区画内での符号化ユニットの処理中に更新されないという保証はない。いくつかの例では、特別な動作は提案されない。
【0129】
第2のシナリオでは、2つの例示的な解決策が以下の通り概説される。
【0130】
第3の例示的な解決策では、現在のサブブロックが現在のブロックの左上64×64区画の内部にある場合は、CPRモードの参照として、左ブロックの右下64×64区画を使用することが許可される。現在のブロックの他の3つの64×64区画の内部にあるサブブロックの場合は、現在のブロック内の再構築サンプルを参照することのみが可能である。
【0131】
以下の表IIIは、第3の例示的な解決策の場合の、左ブロックからの再構築サンプルの可用性についてまとめたものである。UL、UR、LL、及びLRはそれぞれ、左上、右上、左下、及び右下を指す。「X」印は、使用不可を意味し、「Y」印は使用可を意味する。
【0132】
【0133】
第3の例示的な解決策をさらに改善するために、現在のブロック内の各サブブロックに対して、現在のブロック内の各64×64区画の左上隅の可用性を確認することによって、左ブロックの各64×64区画の可用性を評価することができる。例えば、現在のサブブロックが、現在のブロックの右上64×64区画にあるときに、現在のブロック内の左下64×64区画の左上隅がまだ再構築されていない場合は、現在のブロックの左下及び右下の64×64区画の前に、現在のブロックの左上及び右上の64×64区画が処理されることを意味する。したがって、左ブロックの左下及び右下64×64区画内の参照サンプルを記憶する参照サンプルメモリ位置は、まだ更新されていない。これらは、CPRモードにおける現在のサブブロックの参照として使用することができる。右上64×64区画の左上隅に対する同様の確認が適用される。
【0134】
したがって、第4の例示的な解決策は、可能なときは参照サンプルメモリをより完全に再使用できるようにする。より詳細には、現在のブロックに対する現在のサブブロックの位置に応じて、以下の項目を適用することができる。
・現在のサブブロックが、現在のブロックの左上の64×64区画の範囲内にある場合は、現在のブロック内のすでに再構築されたサンプルに加えて、左ブロックの右下の64×64区画内の再構築サンプルを、IBCモードを使用してさらに参照することができる。また、現在のブロックに対するルマ位置(0,64)がまだ再構築されていない場合は、現在のサブブロックは、IBCモードを使用して、左ブロックの左下の64×64区画にある再構築サンプルをさらに参照することができる。現在のブロックに対するルマ位置(64,0)がまだ再構築されていない場合は、現在のサブブロックは、IBCモードを使用して、左ブロックの右上の64×64区画にある再構築サンプルをさらに参照することができる。
・現在のサブブロックが、現在のブロックの右上の64×64区画の範囲内にある場合は、現在のブロック内のすでに再構築されたサンプルに加えて、現在のブロックに対するルマ位置(0,64)が再構築されていない場合は、現在のサブブロックは、左ブロックの左下の64×64区画、及び右下の64×64区画内の再構築サンプルを、IBCモードを使用してさらに参照することができる。
・現在のサブブロックが、現在のブロックの左下の64×64区画の範囲内にある場合は、現在のブロック内のすでに再構築されたサンプルに加えて、現在のブロックに対するルマ位置(64,0)が再構築されていない場合は、現在のサブブロックは、左ブロックの左上の64×64区画、及び右下の64×64区画内の再構築サンプルを、IBCモードを使用してさらに参照することができる。
・現在のブロックが、現在のブロックの右下の64×64区画の範囲内にある場合は、現在のブロック内のすでに再構築されたサンプルのみを、IBCモードを使用して参照することができる。
【0135】
以下の表IVは、第4の例示的な解決策の場合の、左ブロックからの再構築サンプルの可用性についてまとめたものである。UL、UR、LL、及びLRはそれぞれ、左上、右上、左下、及び右下を指す。「X」印は、使用不可を意味し、「Y」印は使用可を意味する。
【0136】
【0137】
上述した解決策では、左ブロックの再構築サンプルは、4つの64×64区画に分割される。64×64区画のそれぞれの区画は、CPRモードにおける現在のサブブロックの符号化に、この区画内の再構築サンプルを使用できるかどうかを判定するためのユニット全体とみなされる。前述した通りの提案した解決策は、例えば、参照サンプルメモリ内の各32×32区画を評価するための、より細密な分割設定にも適用可能である。
【0138】
さらに、(a)参照サブブロック内の全サンプルが左ブロックからのものかどうか、(b)参照サブブロック内の再構築サンプルがいずれも左ブロックからのものかどうかを判定することによって、IBCモードにおける現在のサブブロックに対する参照サブブロックが、左ブロックにあるかどうかの評価を行うことができる。
【0139】
上述した第4の解決策に基づくブロックベクトル制約の例は、以下に示す制限のない例として使用される。また、以下に示す例では、CTUは128×128のサイズを有し、参照サンプルメモリは、1つのCTUを記憶するサイズを有する。以下の例では、IBCモードに対するクロマ補間はない。
【0140】
この制限のない例では、以下のことが仮定される。
・現画像の左上ルマサンプルに対する、現在のルマ符号化ブロック(例えば、現在のサブブロック)の左上サンプルのルマ位置(xCb,yCb)
・変数cbWidthは、ルマサンプルにおける現在の符号化ブロックの幅を指定
・変数cbHeightは、ルマサンプルにおける現在の符号化ブロックの高さを指定
・変数ctuSizeは、ルマサンプルにおける符号化ツリーブロック(例えば、現在のブロック)のサイズ(幅又は高さ)を指定
・整数精度の、現在のルマ符号化ブロックに対するルマブロックベクトル(bVx,bVy)。
【0141】
したがって、現在のサブブロックの左上位置は(xCb,yCb)であり、現在のサブブロックの右下位置は(xCb+cbWidth―1,yCb+cbHeight-1)である。また、参照サブブロックの左上位置は(xCb+bVx,yCb+bVy)であり、参照サブブロックの右下位置は(xCb+bVx+cbWidth―1,yCb+bVy+cbHeight-1)である。
【0142】
この制限のない例では、有効なブロックベクトルは以下の条件を満たす。
・現在のサブブロックの前に参照サブブロック全体が再構築され、
・参照サブブロック全体が、現在のサブブロックと同じタイル/スライス内にあり、
・bVx+cbWidth+xCb<=0 or bVy+cbHeight+yCb<=0であり、
・(yCb+bVy)/ctuSize=yCb/ctuSizeであり、
・(yCb+bVy+cbHeight=1)/ctuSize=yCb/ctuSizeであり、
・(xCb+bVx)/ctuSize>=(xCb/ctuSize)―1であり、
・(xCb+bVx+cbWidth-1)/ctuSize<=xCb/ctuSizeである。
【0143】
(xCb+bVx)/ctuSizeが(xCb/ctuSize)―1と等しい場合は、参照サブブロックの少なくとも一部が左ブロック内にあることを意味し、以下の項目が当てはまる。
・条件(xCb%ctuSize>=64&&yCb%ctuSize>=64)は真ではなく、
・xCb%ctuSize<64&&yCb%ctuSize<64であれば、
・位置((xCb/ctuSize)+64,(yCb/ctuSize))が使用不可(つまり、この位置にあるサンプルが再構築されていない)であり、かつ位置((xCb/ctuSize),(yCb/ctuSize)+64)が使用不可の場合は、(xCb+bVx)%ctuSize>64又は(yCb+bVy)%ctuSize>64のいずれかが真であり、
・位置((xCb/ctuSize)+64,(yCb/ctuSize))が使用不可の場合は、(xCb+bVx)%ctuSize>64が真であり、
・(位置((xCb/ctuSize),(yCb/ctuSize)+64)が使用不可であれば)(yCb+bVy)%ctuSize>64が真であり、
・xCb%ctuSize>=64&&xCb%ctuSize<64であれば、
・位置((xCb/ctuSize),(yCb/ctuSize)+64)は使用不可であり、かつ(yCb+bVy)%ctuSize>64が真であり、
・xCb%ctuSize<64&&xCb%ctuSize>=64であれば、
・位置((xCb/ctuSize)+64,(yCb/ctuSize))が使用不可であり、かつ(xCb+bVx)%ctuSize>64が真である。
【0144】
上述した通りの提案した解決策は、参照サンプルメモリの他の構成にも拡張することができる。また、いくつかの処理順及び(例えば、左から右まで、又は上から下までの)区画サイズに関して、どの再構築サンプルが使用可能かの判定について上述しているが、判定は、他の実施形態の他の処理順、及び/又は区画サイズに従って変更できることに留意されたい。
【0145】
図11は、実施形態による、IBCを使用する現画像における、現在のブロック(CTU、1110)、第1の参照ブロック(CTU、1160)、及び現在のブロック(CTU、1110)と第1の参照ブロック(CTU、1160)との間にある第2の参照ブロック(CTU、1140)の概略図である。
図11は、現在のブロック(すなわちCTU)(1110)内の現在のサブブロック(1112)と、ブロックベクトル(1126)によって特定可能な、第1の参照ブロック(1160)内にある第1の可能な参照サブブロック(1166)と、ブロックベクトル(1122)によって特定可能な、第2の参照ブロック(1140)内にある第2の可能な参照サブブロック(1142)とを示す。現在のブロック(1110)の再構築サンプルを生成するとき、ブロック(1140)の再構築サンプルを記憶するメモリ空間がそのまま残っているので、IBCモードにおける現在のサブブロック(1112)に対する参照サブブロックの判定に対して、第2の参照ブロック(1140)の全再構築サンプルが使用可能になり得る。しかしながら、第1の参照ブロック(1160)の再構築サンプルを記憶するメモリ空間は、現在のブロック(1110)の再構築サンプルを記憶するために割り振られ、第1の参照ブロック(1160)内の参照サブブロックの可用性は、
図9~
図11を参照して上述したものと同様の方法で、現在のブロック(1110)内の同位置のブロックが再構築されているかどうかに依存する。
【0146】
図12は、本開示の実施形態による、復号工程(1200)を概説したフローチャートを示す。工程(1200)は、IBCモードを使用して符号化された画像のブロック(すなわち現在のブロック)の再構成に使用することができる。いくつかの実施形態では、工程(1200)の前又は後に1つ以上の動作が実行され、
図12に示されている動作のいくつかは、並べ替えたり省略したりしてもよい。
【0147】
さまざまな実施形態において、工程(1200)は、端末装置(210)、(220)、(230)、及び(240)内の処理回路、映像復号器(310)、(410)、又は(710)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、工程(1200)はソフトウェア命令によって実施され、したがって処理回路がソフトウェア命令を実行すると、処理回路は工程(1200)を実行する。工程は、(S1201)から開始して、(S1210)に進む。
【0148】
(S1210)において、画像の再構築ブロックの再構築サンプルがメモリに記憶される。再構築ブロックの再構築サンプルは、符号化されたビデオビットストリームに従って再構築される。いくつかの例では、再構築ブロックは、
図9のブロック(960)、又は
図11のブロック(1160)に対応する。いくつかの例では、再構築ブロックの再構築サンプルは、
図3、
図4、及び
図7に示すシステム又は復号器を使用して生成することができる。
【0149】
(S1220)において、画像の現在のブロック内の現在のサブブロックが、再構築ブロック内の参照サブブロックに基づいて、イントラブロックコピー(IBC)を使用して再構築されるかどうかが判定される。現在のサブブロックが、IBCを使用して再構築されると判定された場合は、工程は(S1230)に進む。そうでない場合、現在のサブブロックは別の工程を使用して再構築でき、IBCモードを使用して符号化するために、工程は(S1299)に進んで終了する。
【0150】
(S1230)において、現在のサブブロックの位置に基づいて、メモリに記憶されている参照サブブロックの再構築サンプルが、上書きされている(あるいは上書きされていることが示されている)かどうかが判定される。いくつかの例では、メモリに記憶されている参照サブブロックの再構築サンプルは、例えば、
図9~
図11を参照して上述したように上書きされていると判定される。メモリに記憶されている参照サブブロックの再構築サンプルが、上書きされていることを示すと判定されたときは、工程は(S1240)に進む。そうでない場合、現在のサブブロックは、参照サブブロックの再構築サンプルを使用することなく、あるいは別の工程によって再構築され、IBCモードを使用して符号化するために、工程は(S1299)に進んで終了する。いくつかの例では、再構築ブロックの再構築サンプルは、
図3、
図4、及び
図7に示すシステム又は復号器を使用して生成することができる。
【0151】
(S1240)において、メモリに記憶されている参照サブブロックの再構築サンプルが、上書きされていないことを示すと判定されたときは、参照サブブロックの再構築サンプルに基づいて、現在のサブブロックの再構築サンプルが出力用に生成される。(S1250)において、メモリに記憶された再構築ブロック内にある同位置のサブブロックの再構築サンプルが、生成された現在のサブブロックの再構築サンプルで上書きされる。いくつかの例では、再構築ブロックの再構築サンプルは、
図3、
図4、及び
図7に示すシステム又は復号器を使用して生成することができる。
【0152】
工程(S1250)の後、工程は(S1299)に進んで終了する。
【0153】
図13は、本開示の実施形態による、符号化工程(1300)を概説したフローチャートを示す。工程(1300)は、IBCモードを使用して、画像のブロック(すなわち現在のブロック)を符号化するために使用することができる。いくつかの実施形態では、工程(1300)の前又は後に1つ以上の動作が実行され、
図13に示されている動作のいくつかは、並べ替えたり省略したりしてもよい。
【0154】
さまざまな実施形態において、工程(1300)は、端末装置(210)、(220)、(230)、及び(240)内の処理回路、映像符号器(303)、(503)又は(603)などの機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、工程(1300)はソフトウェア命令によって実施され、したがって処理回路がソフトウェア命令を実行すると、処理回路は工程(1300)を実行する。工程は、(S1301)から開始して、(S1310)に進む。
【0155】
(S1310)において、画像の再構築ブロックの再構築サンプルがメモリに記憶される。再構築ブロックの再構築サンプルは、符号化された予測情報に従って再構築される。いくつかの例では、再構築ブロックは、
図9のブロック(960)、又は
図11のブロック(1160)に対応する。いくつかの例では、再構築ブロックの再構築サンプルは、
図3、
図5、及び
図6に示すシステム又は符号器を使用して生成することができる。
【0156】
(S1320)において、画像の現在のブロック内の現在のサブブロックが、再構築ブロック内の参照サブブロックに基づいて、イントラブロックコピー(IBC)を使用して符号化されるかどうかが判定される。現在のサブブロックが、IBCを使用して符号化されると判定された場合は、工程は(S1330)に進む。そうでない場合、現在のサブブロックは、本開示では完全には説明されていない工程を使用して符号化でき、IBCモードを使用して符号化するために、工程は(S1399)に進んで終了する。
【0157】
(S1330)において、少なくとも現在のサブブロックの位置に基づいて、上書きされていない(あるいは上書きされていると示されていない)、メモリに記憶された再構築サンプルの範囲が決定される。いくつかの例では、例えば、
図9~
図11を参照して上述したように、メモリに記憶された再構築サンプルの範囲が、上書きされているかいないかを判定することができる。いくつかの例では、再構築ブロックの再構築サンプルは、
図3、
図5、及び
図6に示すシステム又は符号器を使用して生成することができる。
【0158】
(S1340)において、上書きされていることが示されていない、再構築サンプルの範囲内の参照サブブロックが決定される。(S1350)において、参照サブブロックの再構築サンプルに基づいて、現在のサブブロックの再構築サンプルが生成される。(S1360)において、メモリに記憶された再構築ブロック内にある同位置のサブブロックの再構築サンプルが、生成された現在のサブブロックの再構築サンプルで上書きされる。いくつかの例では、再構築ブロックの再構築サンプルは、
図3、
図5、及び
図6に示すシステム又は符号器を使用して生成することができる。
【0159】
工程(S1360)の後、工程は(S1399)に進んで終了する。
【0160】
前述した技術は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実施でき、1つ以上のコンピュータ可読媒体に物理的に記憶される。例えば、
図14は、開示される主題のいくつかの実施形態の実施に適したコンピュータシステム(1400)を示す。
【0161】
コンピュータソフトウェアは、任意の適切な機械コード又はコンピュータ言語を使用して符号化でき、これは、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)などによって、直接、又は解釈、マイクロコードの実行などを介して実行できる命令を含むコードを作成するために、アセンブリ、コンパイル、リンクなどの機構に従ってもよい。
【0162】
命令は、パソコン、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、IoT(internet of
things)装置など、さまざまな種類のコンピュータ又はその構成要素で実行することができる。
【0163】
図14に示すコンピュータシステム1400の構成要素は本来例示的であって、本開示の実施形態を実施するコンピュータソフトウェアの使用又は機能の範囲に対して、限定を示唆することは意図されていない。構成要素の構成は、コンピュータシステム(1400)の例示的な実施形態に示されている構成要素のいずれか1つ、又は構成要素の組合せに関して、依存性を有するものとも要件を有するものとも解釈されてはならない。
【0164】
コンピュータシステム(1400)は、いくつかの人的インターフェース入力装置を備えてもよい。このような人的インターフェース入力装置は、例えば、触覚入力(キーを押す、スワイプする、データグローブを動かすなど)、音声入力(声、手をたたくなど)、視覚入力(身振りなど)、嗅覚入力(図示せず)による、1人以上のユーザによる入力に応答し得る。人的インターフェース装置は、音声(発話、音楽、周囲音など)、画像(走査画像、静止画カメラで取得される写真画像など)、映像(二次元映像、立体映像を含む三次元映像など)などの人による意識的な入力に必ずしも直接関与しない、いくつかの媒体の捕捉にさらに使用することができる。
【0165】
入力人的インターフェース装置は、キーボード(1401)、マウス(1402)、トラックパッド(1403)、タッチスクリーン(1410)、データグローブ(図示せず)、ジョイスティック(1405)、マイク(1406)、スキャナ(1407)、カメラ(1408)のうちの1つ以上を含んでもよい(それぞれ1つのみが図示されている)。
【0166】
コンピュータシステム(1400)は、いくつかの人的インターフェース出力装置を備えてもよい。このような人的インターフェース出力装置は、触覚出力、音声、光、及び臭い/味など、1人以上のユーザの感覚を刺激し得る。このような人的インターフェース出力装置は、触覚出力装置(例えば、タッチスクリーン(1410)、データグローブ(図示せず)、又はジョイスティック(1405)による触覚フィードバック、ただし入力装置として機能しない触覚フィードバック装置もあり得る)、音声出力装置(スピーカ(1409)、ヘッドホン(図示せず))、視覚出力装置(それぞれがタッチスクリーン入力能力を有するか又は有さず、それぞれが触覚フィードバック能力を有するか又は有さず、そのうちのいくつかは二次元映像出力、又は立体出力などの手段によって三次元を上回る出力を出力可能であってもよい、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1410)など、VRグラス(図示せず)、ホログラフィック表示、煙発生装置(smoke
tank(図示せず))、並びにプリンタ(図示せず))を含んでもよい。
【0167】
コンピュータシステム(1400)は、人的にアクセス可能な記憶装置、及びCD/DVDなどの媒体(1421)を含むCD/DVD
ROM/RW(1420)、USBメモリ(thumb-drive)(1422)、取り外し可能なハードドライブ又はソリッドステートドライブ(1423)、テープ及びフロッピーディスクなどのレガシー磁気媒体(図示せず)、セキュリティドングルなどの専門化されたROM/ASIC/PLDに基づく装置(図示せず)を含む光学媒体などの、その関連媒体をさらに含むことができる。
【0168】
ここで開示されている主題に関して使用される「コンピュータ可読媒体」という用語は、伝送媒体、搬送波その他の一時的な信号は含まないことを当業者にはさらに理解されたい。
【0169】
コンピュータシステム(1400)は、1つ以上の通信ネットワークに対するインターフェースをさらに備えることができる。ネットワークは、例えば、無線、有線、光であってもよい。ネットワークはさらに、ローカル、広域、メトロポリタン、車載及び産業用、リアルタイム、遅延耐性などであってもよい。ネットワークの例は、イーサネットなどのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含む移動体通信ネットワーク、ケーブルテレビ、衛星テレビ、及び地上波テレビを含む有線テレビ又は無線の広域デジタルネットワーク、車載及びCANBusを含む産業用ネットワークなどを含む。いくつかのネットワークは一般に、いくつかの汎用データポート又は周辺バス(1449)(例えば、コンピュータシステム(1400)のUSBポート)に取り付けられる外部ネットワークインターフェースアダプタを必要とし、他のネットワークは一般に、後述するようにシステムバスに取り付けることによって(例えば、イーサネットインターフェースをPCコンピュータシステムに、又は移動体通信ネットワークインターフェースをスマートフォンのコンピュータシステムに)、コンピュータシステム(1400)のコアに統合される。このような任意のネットワークを使用して、コンピュータシステム(1400)は他のエンティティと通信することができる。このような通信は、一方向通信、受信専用通信(例えば、テレビ放送)、一方向送信専用通信(例えば、CANbusからCANbusに送信する装置)、あるいは、例えば、ローカル又は広域デジタルネットワークを使用する、他のコンピュータシステムに対する双方向通信であってもよい。前述したように、いくつかのプロトコル及びプロトコルスタックをこのような各ネットワーク及び各ネットワークインターフェースに使用することができる。
【0170】
前述した人的インターフェース装置、人的にアクセス可能な記憶装置、及びネットワークインターフェースは、コンピュータシステム(1400)のコア(1440)に取り付けることができる。
【0171】
コア(1440)は、1つ以上の中央処理ユニット(CPU)(1441)、グラフィック処理ユニット(GPU)(1442)、FPGA(Field
Programmable Gate Areas)の形態の専門化されたプログラム可能処理ユニット(1443)、いくつかのタスク用のハードウェアアクセラレータ(1444)などを含むことができる。このような装置は、読出し専用メモリ(ROM)(1445)、ランダムアクセスメモリ(1446)、内部のユーザアクセスできないハードドライブ、SSDなど(1447)の内部大容量記憶装置とともに、システムバス(1448)を介して接続されてもよい。いくつかのコンピュータシステムでは、システムバス(1448)は、追加のCPU、GPUなどによる拡張が可能なように、1つ以上の物理プラグの形態でアクセスすることができる。周辺装置は、コアのシステムバス(1448)に直接取り付ける、又は周辺バス(1449)を介して取り付けることができる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0172】
CPU(1441)、GPU(1442)、FPGA(1443)、及びアクセラレータ(1444)は、前述したコンピュータコードを作成できるいくつかの命令を、組み合わせて実行することができる。コンピュータコードは、ROM(1445)又はRAM(1446)に記憶させることができる。過渡的なデータもRAM(1446)に記憶でき、これに反し永続的なデータは、例えば、内部大容量記憶装置(1447)に記憶することができる。キャッシュメモリを使用することによって、任意のメモリ装置に素早く記憶し検索することが可能になり、1つ以上のCPU(1441)、GPU(1442)、大容量記憶装置(1447)、ROM(1445)、RAM(1446)などに密接に関連付けることができる。
【0173】
コンピュータ可読媒体は、さまざまなコンピュータ実施動作を実行するためのコンピュータコードを有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計され構築されたものにすることができ、あるいはコンピュータソフトウェアの分野の当業者によく知られ、当業者が使用可能な種類のものであってもよい。
【0174】
例として、かつ制限する目的ではなく、アーキテクチャ(1400)、具体的にはコア(1440)を有するコンピュータシステムは、1つ以上の有形のコンピュータ可読媒体に具体化されたソフトウェアを実行する、(1つ以上の)プロセッサ(CPU、GPU、FPGA、アクセラレータなど)の結果としての機能性を提供することができる。このようなコンピュータ可読媒体は、先に紹介したようなユーザがアクセス可能な大容量記憶装置、並びにコア内部大容量記憶装置(1447)又はROM(1445)などの、非一時的な性質をもつ、コア(1440)のいくつかの記憶装置に関連する媒体であってもよい。本開示のさまざまな実施形態を実施するソフトウェアは、このような装置に記憶させて、コア(1440)によって実行することができる。コンピュータ可読媒体は、特定の需要に従って、1つ以上のメモリ装置又はチップを含むことができる。ソフトウェアは、コア(1440)及び具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(1446)に記憶されているデータ構造の定義、及びソフトウェアによって定義された工程に従ったこのようなデータ構造の変更を含む、本明細書で説明する特定の工程、又は特定の工程の特定の部分を実行させることができる。これに加えて、又はこれに代えて、コンピュータシステムは、回路(例えば、アクセラレータ(1444))に配線された、又は回路で具体化された論理の結果としての機能性を提供でき、本明細書で説明する特定の工程、又は特定の工程の特定の部分を実行するために、ソフトウェアの代わりに、又はソフトウェアとともに動作させることができる。ソフトウェアに対する言及は、必要に応じて論理を包含することができ、その逆もまた可能である。コンピュータ可読媒体に対する言及は、必要に応じて実行するソフトウェアを記憶する(集積回路(IC)などの)回路、実行する論理を具体化する回路、又はその両方を包含することができる。本開示は、ハードウェア及びソフトウェアの任意の適切な組合せを包含する。
付録:頭字語
JEM:共同調査モデル(joint exploration model)
VVC:汎用映像符号化(versatile video coding)
BMS:ベンチマークセット(benchmark set)
MV:動きベクトル(Motion Vector)
HEVC:高効率映像符号化(High Efficiency Video Coding)
SEI:付加拡張情報(Supplementary Enhancement Information)
VUI:映像有用性情報(Video Usability Information)
GOP:画像のグループ(Groups of Pictures)
TU:変換ユニット(Transform Unit)
PU:予測ユニット(Prediction Unit)
CTU:符号化ツリーユニット(Coding Tree Unit)
CTB:符号化ツリーブロック(Coding Tree Block)
PB:予測ブロック(Prediction Block)
HRD:仮想参照復号器(Hypothetical Reference Decoder)
SNR:信号雑音比(Signal Noise Ratio)
CPU:中央処理ユニット(Central Processing Unit)
GPU:グラフィックス処理ユニット(Graphics Processing Unit)
CRT:ブラウン管(Cathode Ray Tube)
LCD:液晶表示装置(Liquid-Crystal Display)
OLED:有機発光ダイオード(Organic Light-Emitting Diode)
CD:コンパクトディスク(Compact Disc)
DVD:デジタル映像ディスク(Digital Video Disc)
ROM:読出し専用メモリ(Read-Only Memory)
RAM:ランダムアクセスメモリ(Random Access Memory)
ASIC:特定用途向け集積回路(Application-Specific Integrated Circuit)
PLD:プログラム可能論理装置(Programmable Logic Device)
LAN:ローカルエリアネットワーク(Local Area Network)
GSM:汎欧州デジタル移動電話方式(Global System for Mobile communications)
LTE:ロングタームエボリューション(Long-Term Evolution)
CANBus:コントローラエリアネットワークバス(Controller Area Network Bus)
USB:ユニバーサルシリアルバス(Universal Serial Bus)
PCI:周辺機器内部接続(Peripheral Component Interconnect)
FPGA:フィールドプログラマブルゲートアレイ(Field Programmable Gate Area)
SSD:ソリッドステートドライブ(solid-state drive)
IC:集積回路(Integrated Circuit)
CU:符号化ユニット(Coding Unit)
IBC:イントラブロックコピー(Intra Block Copy)
CPR:現画像参照(Current Picture Referencing)
BV:ブロックベクトル(Block Vector)
AMVP:先進的動きベクトル予測(Advanced Motion Vector Prediction)
HEVC SCC:HEVC スクリーンコンテンツ符号化(Screen Content Coding)
DPB:復号済み画像バッファ(Decoded Picture Buffer)
【0175】
本開示は、いくつかの例示的な実施形態について説明してきたが、変更、置換、及びさまざまな代替的な等価物があり、これらは本開示の範囲内に含まれる。したがって当業者であれば、本明細書に明確に図示又は説明されていなくても、本開示の原理を具体化し、したがってその原理と範囲内に含まれる多くのシステム及び方法を考案できることは理解されよう。
【符号の説明】
【0176】
200 通信システム
210 端末装置
220 端末装置
230 端末装置
240 端末装置
250 ネットワーク
300 通信システム
301 映像ソース
302 映像のストリーム
303 映像符号器
304 映像データ、符号化されたビデオビットストリーム
305 ストリーミングサーバ
306 クライアントサブシステム
307 符号化された映像データのコピー
308 クライアントサブシステム
309 符号化された映像データのコピー
310 映像復号器
311 発信する映像のストリーム
312 表示装置
313 捕捉サブシステム
320 電子機器
330 電子機器
401 チャネル
410 映像復号器
412 表示装置
415 バッファメモリ
420 構文解析器
421 シンボル
430 電子機器
431 受信機
451 スケーラ/逆変換ユニット
452 イントラ画像予測ユニット
453 動き補償予測ユニット
455 集約装置
456 ループフィルタユニット
457 参照画像メモリ
458 現画像バッファ
501 映像ソース
503 映像符号器
520 電子機器
530 ソース符号器
532 符号化エンジン
533 ローカル復号器
534 参照画像メモリ
535 予測器
540 送信機
543 映像シーケンス
545 エントロピー符号器
550 コントローラ
560 通信チャネル
603 映像符号器
621 統括コントローラ
622 イントラ符号器
623 残差計算器
624 残差符号器
625 エントロピー符号器
626 スイッチ
628 残差復号器
630 インター符号器
710 映像復号器
771 エントロピー復号器
772 イントラ復号器
773 残差復号器
774 再構築モジュール
780 インター復号器
1400 コンピュータシステム
1401 キーボード
1402 マウス
1403 トラックパッド
1405 ジョイスティック
1406 マイク
1407 スキャナ
1408 カメラ
1409 音声出力装置
1410 タッチスクリーン
1420 CD/DVD ROM/RW
1421 媒体
1422 USBメモリ
1423 ソリッドステートドライブ
1440 コア
1441 中央処理ユニット(CPU)
1442 グラフィック処理ユニット(GPU)
1443 FPGA
1444 アクセラレータ
1445 読出し専用メモリ(ROM)
1446 ランダムアクセスメモリ(RAM)
1447 内部大容量記憶装置
1448 システムバス
1449 周辺バス
1450 グラフィックアダプタ
1454 ネットワークインタフェース