(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-11
(45)【発行日】2022-07-20
(54)【発明の名称】IBCとATMVPとの間でのインタラクション
(51)【国際特許分類】
H04N 19/52 20140101AFI20220712BHJP
【FI】
H04N19/52
(21)【出願番号】P 2020568474
(86)(22)【出願日】2019-06-04
(86)【国際出願番号】 IB2019054611
(87)【国際公開番号】W WO2019234606
(87)【国際公開日】2019-12-12
【審査請求日】2020-12-04
(31)【優先権主張番号】PCT/CN2018/089920
(32)【優先日】2018-06-05
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(73)【特許権者】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ザン,カイ
(72)【発明者】
【氏名】ザン,リー
(72)【発明者】
【氏名】リュウ,ホンビン
(72)【発明者】
【氏名】ワン,ユエ
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2017/195554(WO,A1)
【文献】国際公開第2016/057701(WO,A1)
【文献】国際公開第2016/048834(WO,A1)
【文献】米国特許出願公開第2019/0246143(US,A1)
【文献】Chen-Yen Lai et al.,CE8-related: Clarification on interaction between CPR and other inter coding tools,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M0175-v1,13th Meeting: Marrakech, MA,2019年01月,pp.1-3
【文献】Hyeongmun Jang, Junghak Nam, Seung-Hwan Kim, and Jayhyun Lim,Non-CE8: modification on SbTMVP process regarding with CPR,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M0335,13th Meeting: Marrakech, MA,2019年01月,pp.1-3
【文献】Xiaozhong Xu et al.,Non-CE8: Mismatch between text specification and reference software on ATMVP candidate derivation when CPR is enabled,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M0409-v2,13th Meeting: Marrakesh, MA,2019年01月,pp.1-4
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/52
(57)【特許請求の範囲】
【請求項1】
映像データを
コーディングする方法であって、
映像の現在映像ブロックと前記映像のビットストリーム表現との間での変換中に、前記現在映像ブロックが、サブブロックベース時間動きベクトル予測(subblock-based temporal motion vector prediction;SbTMVP)モードで
コーディングされることを決定し、
前記現在映像ブロックの空間的な隣接ブロックがイントラブロックコピー(IBC)モードで
コーディングされる
かを決定し、
前記空間的な隣接ブロックが前記IBCモードで
コーディングされることに応答して、前記空間的な隣接ブロックの動き情報が利用不可であると決定し、
前記空間的な隣接ブロックの前記動き情報を用いることなく、前記現在映像ブロックの同一位置のピクチャ内の少なくとも1つの対応する映像領域を特定する、
ことを有する方法。
【請求項2】
前記対応する映像領域が前記IBCモードで
コーディングされるかを決定し、
前記対応する映像領域が前記IBCモードで
コーディングされることに応答して、前記対応する映像領域の動き情報が利用不可であると決定し、
前記現在映像ブロックと前記ビットストリーム表現との間での前記変換を実行する、
ことを更に有する請求項1に記載の方法。
【請求項3】
前記IBCモードにおいて、予測は、ブロックベクトルによって決定されるのと同じスライスのサンプル値から導出される、請求項2に記載の方法。
【請求項4】
前記空間的な隣接ブロックが前記IBCモードで
コーディングされることに応答して、前記空間的な隣接ブロックを利用不可である又はイントラ
コーディングされるとして指定するインジケータが前記ビットストリーム表現内で提示されることを決定する、
ことを更に有する請求項1に記載の方法。
【請求項5】
前記対応する映像領域が前記IBCモードで
コーディングされることに応答して、前記対応する映像領域を利用不可である又はイントラ
コーディングされるとして指定するインジケータが前記ビットストリーム表現内で提示されることを決定する、
ことを更に有する請求項1に記載の方法。
【請求項6】
前記空間的な隣接ブロックを前記SbTMVPモードにおいてイントラ
コーディング技術を用いるものとして指定するインジケータを復号する、
ことを更に有する請求項1に記載の方法。
【請求項7】
前記対応する映像領域を前記SbTMVPモードにおいてイントラ
コーディング技術を用いるものとして指定するインジケータを復号する、
ことを更に有する請求項1に記載の方法。
【請求項8】
前記変換は、前記現在映像ブロックを前記ビットストリーム表現へと符号化することを含む、請求項1に記載の方法。
【請求項9】
前記変換は、前記ビットストリーム表現から前記現在映像ブロックを復号することを含む、請求項1に記載の方法。
【請求項10】
映像データを
コーディングする装置であって、プロセッサと、命令を有した非一時的なメモリとを有し、前記命令は、前記プロセッサによる実行時に、前記プロセッサに、
映像の現在映像ブロックと前記映像のビットストリーム表現との間での変換中に、前記現在映像ブロックが、サブブロックベース時間動きベクトル予測(subblock-based temporal motion vector prediction;SbTMVP)モードで
コーディングされることを決定し、
前記現在映像ブロックの空間的な隣接ブロックがイントラブロックコピー(IBC)モードで
コーディングされる
かを決定し、
前記空間的な隣接ブロックが前記IBCモードで
コーディングされることに応答して、前記空間的な隣接ブロックの動き情報が利用不可であると決定し、
前記空間的な隣接ブロックの前記動き情報を用いることなく、前記現在映像ブロックの同一位置のピクチャ内の少なくとも1つの対応する映像領域を特定する、
ことを行わせる、装置。
【請求項11】
命令を格納した非一時的なコンピュータ読み取り可能記憶媒体であって、前記命令は、プロセッサに、
映像の現在映像ブロックと前記映像のビットストリーム表現との間での変換中に、前記現在映像ブロックが、サブブロックベース時間動きベクトル予測(subblock-based temporal motion vector prediction;SbTMVP)モードで
コーディングされることを決定し、
前記現在映像ブロックの空間的な隣接ブロックがイントラブロックコピー(IBC)モードで
コーディングされる
かを決定し、
前記空間的な隣接ブロックが前記IBCモードで
コーディングされることに応答して、前記空間的な隣接ブロックの動き情報が利用不可であると決定し、
前記空間的な隣接ブロックの前記動き情報を用いることなく、前記現在映像ブロックの同一位置のピクチャ内の少なくとも1つの対応する映像領域を特定する、
ことを行わせる、コンピュータ読み取り可能記憶媒体。
【請求項12】
映像のビットストリーム表現を格納
する方法であって
、
映像の現在映像ブロック
について、前記現在映像ブロックが、サブブロックベース時間動きベクトル予測(subblock-based temporal motion vector prediction;SbTMVP)モードで
コーディングされることを決定し、
前記現在映像ブロックの空間的な隣接ブロックがイントラブロックコピー(IBC)
コーディングモードで
コーディングされる
かを決定し、
前記空間的な隣接ブロックが前記IBCモードで
コーディングされることに応答して、前記空間的な隣接ブロックの動き情報が利用不可であると決定し、
前記空間的な隣接ブロックの前記動き情報を用いることなく、前記現在映像ブロックの同一位置のピクチャ内の少なくとも1つの対応する映像領域を特定し、
前記現在映像ブロックか
らビットストリーム表現を生成
し、
前記ビットストリーム表現を非一時的なコンピュータ読み取り可能記録媒体に格納する、
ことを有する
方法。
【発明の詳細な説明】
【技術分野】
【0001】
パリ条約に基づく適用可能な特許法及び/又は規則の下で、この出願は、2018年6月5日に出願された国際特許出願第PCT/CN2018/089920号の優先権及び利益を適時に主張して行われる。米国の法律の下での全ての目的のために、国際特許出願第PCT/CN2018/089920号の開示全体を、この出願の開示の一部として援用する。
【0002】
この特許文献は概して映像符号化技術に関する。
【背景技術】
【0003】
動き補償は、映像内のカメラ及び/又は被写体の動きに対処することによって、先行フレーム及び/又は将来フレームを所与として映像内のフレームを予測するための、映像処理における技術である。動き補償は、映像圧縮のために映像データの符号化及び復号に使用されることができる。
【発明の概要】
【0004】
動き補償のためのイントラブロックコピーに関する装置、システム、及び方法が記述される。
【0005】
代表的な一態様において、開示される技術は、イントラブロックコピーを用いた映像符号化の方法を提供するために使用され得る。この方法は、現在ピクチャの現在ブロックが動き補償アルゴリズムを用いて符号化されるべきかを判定し、該判定に基づいて、現在ブロックにイントラブロックコピーを選択的に適用することによって現在ブロックを符号化することを含む。
【0006】
代表的な他の一態様において、開示される技術は、イントラブロックコピーを用いた映像符号化の他の方法を提供するために使用され得る。この方法は、現在ピクチャの現在ブロックがイントラブロックコピーを使用して符号化されるべきかを判定し、該判定に基づいて、現在ブロックに動き補償アルゴリズムを選択的に適用することによって現在ブロックを符号化することを含む。
【0007】
代表的な更なる他の一態様において、開示される技術は、イントラブロックコピーを用いた映像復号の方法を提供するために使用され得る。この方法は、現在ピクチャの現在ブロックが動き補償アルゴリズムを用いて復号されるべきかを判定し、該判定に基づいて、現在ブロックにイントラブロックコピーを選択的に適用することによって現在ブロックを復号することを含む。
【0008】
代表的な更なる他の一態様において、開示される技術は、イントラブロックコピーを用いた映像復号の他の方法を提供するために使用され得る。この方法は、現在ピクチャの現在ブロックがイントラブロックコピーを使用して復号されるべきかを判定し、該判定に基づいて、現在ブロックに動き補償アルゴリズムを選択的に適用することによって現在ブロックを復号することを含む。
【0009】
代表的な更なる他の一態様において、視覚情報を復号する方法が開示される。当該方法は、符号化された表現から、視覚情報の一部を表す復号対象ブロックが代替的時間動きベクトル予測(alternative temporal motion vector prediction;ATMVP)符号化技術を用いて符号化されていることを特定し、復号対象ブロックの空間的に隣接するブロックがイントラブロックコピー(Intra-Block Copy;IBC)符号化技術を用いて符号化されていることを特定し、空間的に隣接するブロックが、復号対象ブロックに関する時間ベクトルを導出するための動きベクトルを提供することができないと決定し、そして、ATMVP符号化技術に対応するATMVP復号技術を使用することによって、及び復号対象ブロックに関する時間ベクトルを導出するための動きベクトルを提供するのに空間的に隣接するブロックの使用を排除することによって、符号化された表現を復号することを含む。
【0010】
代表的な更なる他の一態様において、視覚情報を復号する他の方法が開示される。当該方法は、符号化された表現から、視覚情報の一部を表す復号対象ブロックがATMVP(alternative temporal motion vector prediction)符号化技術を用いて符号化されていることを特定し、参照ピクチャ内の同一位置のブロックがイントラブロックコピー(IBC)符号化技術を用いて符号化されていることを特定し、参照ピクチャ内の同一位置のブロックが、復号対象ブロックのサブブロックに関する動きベクトルを導出するために用いられることができないと決定し、そして、ATMVP符号化技術に対応するATMVP復号技術を使用することによって、及び復号対象ブロックのサブブロックに関する時間動きベクトル候補を提供するのに参照ピクチャ内の同一位置のブロックの使用を排除することによって、符号化された表現を復号することを含む。
【0011】
代表的な更なる他の一態様において、視覚情報処理の他の方法が開示される。当該方法は、視覚情報を、複数の符号化されたピクチャ、及び適用される1つ以上の符号化技術をシグナリングする複数のインジケータへと符号化することを含み、複数のインジケータは、イントラブロックコピー(IBC)技術インジケータ及びATMVP技術インジケータを含み、視覚情報に関連する第1のピクチャの第1のブロックが、IBC技術を用いて符号化され、視覚情報に関連する第2のピクチャの第2のブロックが、ATMVP技術を用いて符号化され、IBC技術は、第1のピクチャの第1のブロックを符号化するのに第1のピクチャの異なるブロックを使用し、ATMVP技術は、第2のピクチャを符号化するのに視覚情報に関連する第3のピクチャを使用する。
【0012】
代表的な更なる他の一態様において、上述の方法は、プロセッサ実行可能コードの形態で具体化され、コンピュータ読み取り可能プログラム媒体に格納される。
【0013】
代表的な更なる他の一態様において、上述の方法を実行するように構成された又は動作可能な装置が開示される。当該装置は、この方法を実装するようにプログラムされたプロセッサを含み得る。
【0014】
代表的な更なる他の一態様において、映像デコーダ装置が、ここに記載される方法を実装し得る。
【0015】
開示される技術の上記の及び他の態様及び特徴が、図面、明細書、及び特許請求の範囲にて更に詳細に記述される。
【図面の簡単な説明】
【0016】
【
図1】イントラブロックコピー技術の一例を示している。
【
図2】符号化ユニット(CU)に対してATMVP(alternative temporal motion vector prediction)アルゴリズムを用いる動き予測の一例を示している。
【
図3】開示される技術に従ったイントラブロックコピーを用いる映像符号化方法の一例のフローチャートを示している。
【
図4】開示される技術に従ったイントラブロックコピーを用いる映像符号化方法の他の一例のフローチャートを示している。
【
図5】開示される技術に従ったイントラブロックコピーを用いる映像復号方法の一例のフローチャートを示している。
【
図6】開示される技術に従ったイントラブロックコピーを用いる映像復号方法の他の一例のフローチャートを示している。
【
図7】ここに開示される技術の様々な部分を実装するのに利用されることができるコンピュータシステム又は他の制御装置に関するアーキテクチャの一例を示すブロック図である。
【
図8】ここに開示される技術の様々な部分を実装するのに利用されることができるモバイル装置の一実施形態例のブロック図を示している。
【
図9】視覚情報処理の方法の一例のフローチャートである。
【
図10】視覚情報処理の方法の一例のフローチャートである。
【発明を実施するための形態】
【0017】
セクションの見出しは、本明細書において、理解を容易にするために使用されており、各セクションで説明される技術及び実施形態の範囲をそのセクションだけに限るものではない。
【0018】
例えば映像、画像、三次元シーンなど、より高い解像度の視覚情報の需要が増していることにより、映像符号化方法及び技術は、現代技術において至るところに存在するものになっている。この出願にて説明される技術は、映像、画像、三次元シーンなどを含む様々な視覚情報に適用可能である。視覚情報のピクチャは、映像のフレーム、画像の一部、三次元シーン内のオブジェクト、三次元シーンの一部などとすることができる。ブロックは、この出願にて説明されるように、例えば符号化ユニット(CU)、最大符号化ユニット(LCU)、サンプル、予測ユニット(PU)などの、視覚情報のピクチャの一部とすることができる。視覚情報のサブブロックは、例えばサブCU、サンプルなどのPUとすることができる。PUは、ピクセル、ボクセル、又は視覚情報の最小の解像量とすることができる。映像コーデックは典型的に、デジタル映像を圧縮又は解凍する電子回路又はソフトウェアを含んでおり、より高い符号化効率を提供するために絶えず改良されている。或る映像コーデックは、未圧縮の映像を圧縮形式に変換し、又はその逆を行う。映像品質、映像を表現するのに使用されるデータ量(ビットレートによって決定される)、符号化及び復号アルゴリズムの複雑さ、データ損失及びエラーに対する感度、編集の容易さ、ランダムアクセス、及びエンドツーエンド遅延(レイテンシ)の間に複雑な関係が存在する。圧縮されたフォーマットは、通常、例えばHEVC(High Efficiency Video Coding)規格(H.265又はMPEG-H Part2としても知られている)、まとめられることになるVVC(Versatile Video Coding)規格、又は他の現在及び/又は将来の映像符号化標準といった、標準映像圧縮仕様に従う。
【0019】
開示される技術の実施形態は、ランタイム性能を改善するために、既存の映像符号化標準(例えば、HEVC、H.265)及び将来の規格に適用され得る。セクションの見出しは、本明細書において、説明の読み取りやすさを向上させるために使用され、説明又は実施形態(及び/又は実装)をそれぞれのセクションのみに何ら限るものではない。
【0020】
1. 参照ピクチャ及び参照ピクチャリストの例
HEVCには、短期と長期の2つのタイプの参照ピクチャが存在する。参照ピクチャは、もはや予測参照のために不要となったときに、“参照に不使用”とマークされ得る。参照ピクチャセット(reference picture set;RPS)又はバッファ記述と呼ばれる全く新しい参照ピクチャ管理のためのアプローチが、HEVCによって導入されている。
【0021】
ピクチャを“短期参照に使用”、“長期参照に使用”、、“参照に不使用”としてマークする処理は、RPSの概念を用いて行われている。RPSは、各スライスヘッダにてシグナリングされるピクチャインジケータのセットであり、一組の短期ピクチャと一組の長期ピクチャとで構成される。ピクチャの最初のスライスヘッダが復号された後に、DPB内のピクチャが、RPSによって指定される通りにマークされる。RPS内の短期ピクチャ部分で指し示されたDPB内のピクチャは、短期ピクチャとしてそのままにされる。RPS内の長期ピクチャ部分で指し示されたDPB内の短期ピクチャ又は長期ピクチャは、長期ピクチャに変換され又は長期ピクチャとしてそのままにされる。そして最後に、RPS内にインジケータがないDPB内のピクチャは、参照に不使用としてマークされる。従って、復号順で後のいずれかのピクチャの予測のために参照として使用されるかもしれない復号済みの全てのピクチャが、RPSに含められなければならない。
【0022】
RPSは、DPB内のピクチャを識別するために使用されるピクチャオーダーカウント(picture order count;POC)値のセットで構成される。POC情報をシグナリングすることのほかに、RPSはまた、ピクチャごとに1つのフラグをシグナリングする。各フラグは、対応するピクチャが現在ピクチャ用の参照に利用可能であるのか利用不可であるのかを指し示す。なお、参照ピクチャは、現在ピクチャには利用不可であるとしてシグナリングされるとしても、DPB内になおも保持され、後に参照用に利用可能にされて将来ピクチャを復号するのに使用され得る。
【0023】
POC情報及びこの可用性フラグから、表1に示すような参照ピクチャの5つのリストを作成することができる。RefPicSetStCurrBeforeなるリストは、現在ピクチャ用の参照に利用可能であって現在ピクチャのPOC値より低いPOC値を持つ短期ピクチャで構成される。RefPicSetStCurrAfterは、現在ピクチャのPOC値よりも高いPOC値を持つ利用可能な短期ピクチャで構成される。RefPicSetStFollは、現在ピクチャには利用不可にされるが、復号順で後のピクチャを復号するための参照ピクチャとして使用され得る全ての短期ピクチャを含むリストである。最後に、RefPicSetLtCurr及びRefPicSetLtFollなるリストは、現在ピクチャ用の参照に、それぞれ、利用可能な長期ピクチャ及び利用不可の長期ピクチャを含む。
【表1】
【0024】
1.1 短期参照ピクチャ及び長期参照ピクチャの例
一般的なシーケンスパラメータセットの構文を以下に示す。
【表2】
【0025】
一般的なスライスセグメントヘッダの構文を以下に示す。
【表3】
【0026】
上の構文の表で使用されるセマンティクスは、次のように定義される。
【0027】
num_short_term_ref_pic_setsは、SPSに含められるst_ref_pic_set()構文構造の数を指定する。num_short_term_ref_pic_setsの値は、両端を含めて0から64の範囲内とする。
【0028】
一部の実施形態において、現在ピクチャのスライスヘッダにて直接シグナリングされるst_ref_pic_set()構文構造が存在し得るので、デコーダは、st_ref_pic_set()構文構造に総数でnum_short_term_ref_pic_set+1のメモリを割り当ててもよい。現在ピクチャのスライスヘッダにて直接シグナリングされるst_ref_pic_set()構文構造は、num_short_term_ref_pic_setsに等しいインデックスを持つ。
【0029】
0に等しいlong_term_ref_pics_present_flagは、CVS内のいずれの符号化されたピクチャのインター予測にも長期参照ピクチャが使用されないことを指定する。1に等しいlong_term_ref_pics_present_flagは、CVS内の1つ以上の符号化されたピクチャのインター予測のために長期参照ピクチャが使用され得ることを指定する。
【0030】
num_long_term_ref_pics_spsは、SPSにて指定される候補長期参照ピクチャの数を指定する。num_long_term_ref_pics_spsの値は、両端を含めて0から32の範囲内とする。
【0031】
lt_ref_pic_poc_lsb_sps[i]は、SPSにて指定されるi番目の候補長期参照ピクチャのピクチャオーダーカウントモジュロMaxPicOrderCntLsbを指定する。lt_ref_pic_poc_lsb_sps[i]を表すために使用されるビット数は、log2_max_pic_order_cnt_lsb_minus4+4に等しい。
【0032】
0に等しいused_by_current_pic_lt_sps_flag[i]は、SPSにて指定されるi番目の候補長期参照ピクチャが、SPSにて指定される当該i番目の候補長期参照ピクチャを自身の長期参照ピクチャセット(RPS)内に含むピクチャによって、参照に使用されないことを指定する。
【0033】
1に等しいshort_term_ref_pic_set_sps_flagは、現在ピクチャの短期RPSが、スライスヘッダ内の構文要素short_term_ref_pic_set_idxによって特定されるアクティブSPS内のst_ref_pic_set()構文構造のうちの1つに基づいて導出されることを指定する。0に等しいshort_term_ref_pic_set_sps_flagは、現在のピクチャの短期RPSが、現在ピクチャのスライスヘッダに直接的に含められるst_ref_pic_set()構文構造に基づいて導出されることを指定する。num_short_term_ref_pic_setsが0に等しいとき、short_term_ref_pic_set_sps_flagの値は0に等しいとする。
【0034】
short_term_ref_pic_set_idxは、現在ピクチャの短期RPSの導出に使用されるst_ref_pic_set()構文構造の、アクティブSPSに含まれるst_ref_pic_set()構文構造のリストへの、インデックスを指定する。構文要素short_term_ref_pic_set_idxは、Ceil(Log2(num_short_term_ref_pic_sets))ビットによって表される。存在しない場合、short_term_ref_pic_set_idxの値は0に等しいと推定される。short_term_ref_pic_set_idxの値は、両端を含めて0からnum_short_term_ref_pic_sets-1の範囲内とする。
【0035】
一部の実施形態において、変数CurrRpsIdxは以下のように導出される。
― short_term_ref_pic_set_sps_flagが1に等しい場合、CurrRpsidxはshort_term_ref_pic_set_idxに等しく設定される。
― それ以外の場合、CurrRpsidxはnum_short_term_ref_pic_setsに等しく設定される。
【0036】
num_long_term_spsは、アクティブSPSにて指定される候補長期参照ピクチャに基づいて導出される現在ピクチャの長期RPS内のエントリの数を指定する。num_long_term_spsの値は、両端を含めて0からnum_long_term_ref_pics_spsの範囲内とする。存在しない場合、num_long_term_spsの値は0に等しいと推定される。
【0037】
num_long_term_picsは、スライスヘッダにて直接的にシグナリングされる現在ピクチャの長期RPS内のエントリの数を指定する。存在しない場合、num_long_term_picsの値は0に等しいと推定される。
【0038】
一部の実施形態において、num_layer_idが0に等しいとき、num_long_term_picsの値は、sps_max_dec_pic_buffering_minus1[TemporalId]-NumNegativePics[CurrRpsIdx]-NumPositivePics[CurrRpsIdx]-num_long_term_sps-TwoVersionsOfCurrDecPicFlag以下であるとする。
【0039】
lt_idx_sps[i]は、現在ピクチャの長期RPS内のi番目のエントリの、アクティブSPSにて指定される候補長期参照ピクチャのリストへの、インデックスを指定する。lt_idx_sps[i]を表すのに使用されるビット数は、Ceil(Log2(num_long_term_ref_pics_sps))に等しい。存在しない場合、lt_idx_sps[i]の値は0に等しいと推定される。lt_idx_sps[i]の値は、両端を含めて0からnum_long_term_ref_pics_sps-1の範囲内とする。
【0040】
poc_lsb_lt[i]は、現在ピクチャの長期RPS内のi番目のエントリのピクチャオーダーカウントモジュロMaxPicOrderCntLsbの値を指定する。poc_lsb_lt[i]構文要素の長さは、log2_max_pic_order_cnt_lsb_minus4+4ビットである。
【0041】
0に等しいused_by_current_pic_lt_flag[i]は、現在ピクチャの長期RPS内のi番目のエントリが現在ピクチャによって参照に使用されないことを指定する。
【0042】
一部の実施形態において、変数PocLsbLt[i]及びUsedByCurrPicLt[i]は、以下のように導出される:
― iがnum_long_term_spsよりも小さい場合、PocLsbLt[i]はlt_ref_pic_pic_lsb_sps[lt_idx_sps[i]]に等しく設定され、UsedByCurrPicLt[i]はused_by_curs_pic_pic_sps_flag[lt_idx_sps[i]]に等しく設定される。
― それ以外の場合、PocLsbLt[i]はpoc_lsb_lt[i]に等しく設定され、UsedByCurrPicLt[i]がused_by_current_pic_lt_flag[i]に等しく設定される。
【0043】
1に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在することを指定する。0に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在しないことを指定する。
【0044】
一部の実施形態において、prevTid0Picを、0に等しいTemporalIdを持った、RASL、RADL又はSLNRピクチャでない、復号順で前のピクチャとする。setOfPrevPocValsを、以下からなる集合とする:
― prevTid0PicのPicOrderCntVal、
― prevTid0PicのRPS内の各ピクチャのPicOrderCntVal、
― 復号順でprevTid0Picに続き且つ復号順で現在ピクチャに先行する各ピクチャのPicOrderCntVal。
【0045】
一部の実施形態において、setOfPrevPocVals内の値であって、それに関して値modulo MaxPicOrderCntLsbがPocLsbLt[i]に等しい値が、2つ以上存在する場合、delta_poc_msb_present_flag[i]は1に等しいとする。
【0046】
delta_poc_msb_cycle_lt[i]は、現在ピクチャの長期RPS内のi番目のエントリのピクチャオーダーカウント値の最上位ビットの値を決定するために使用される。delta_poc_msb_cycle_lt[i]が存在しない場合、それは0に等しいと推定される。
【0047】
一部の実施形態において、変数DeltaPocMsCycleLt[i]は以下のように導出される:
i=0且つi=num_long_term_spsである場合、DeltaPocMsbCycleLt[i]=delta_poc_msb_cycle_lt[i]、それ以外の場合、DeltaPocMsbCycleLt[i]=delta_poc_msb_cycle_lt[i]+DeltaPocMsbCycleLt[i-1]。
【0048】
1.2 短期参照ピクチャ及び長期参照ピクチャ間の動きベクトル予測(MVP)の例
一部の実施形態において、動きベクトル予測は、ターゲット参照ピクチャタイプと予測参照ピクチャタイプとが同じである場合にのみ許される。換言すれば、それらのタイプが異なる場合、動きベクトルの予測は許されない。
【0049】
先進動きベクトル予測(Advanced Motion Vector Prediction;AMVP)は、既存の実装を含む動きベクトル予測の一例である。既存のAMVP実装の関連部分を以下にて詳述する。
【0050】
動きベクトルmvLXA及び可用性フラグavalableFlagLXAは、以下の順序付けられたステップで導出される。
【0051】
(1)サンプル位置(xNbA0,yNbA0)が(xPb-1,yPb+nPbH)に等しく設定され、サンプル位置(xNbA1,yNbA1)が(xNbA0,yNbA0-1)に等しく設定される。
【0052】
(7)avallableFlagLXAが0に等しいとき、(xNbA0,yNbAk)から(xNbA0,yNbA0)まで、又はavallableFlagLXAが1に等しくなるまで、(xNbAk,yNbAk)に以下が適用される:
― avallableAkがTRUEに等しく、且つavallableFlagLXAが0に等しいとき、以下が適用される:
PredFlagLX[xNbAk][yNbAk]が1に等しく、且つLongTermRefPic(currentPic,currentPb,refIdxLX,RefPicListX)がLongTermRefPic(currentPic,currPb,RefIdxLX[xNbAk][yNbAk],RefPicListX)に等しい場合、availableFlagLXAが1に等しく設定され、以下の割り当てが行われる:
mvLXA=MvLX[xNbAk][yNbAk]
refIdxA=RefIdxLX[xNbAk][yNbAk]
refPicListA=RefPicListX
それ以外の場合で、PredFlagLY[xNbAk][yNbAk](Y=!X)が1に等しく、且つLongTermRefPic(currPic,currPb,refIdxLX,RefPicListX)がLongTermRefPic(currPic,currPb,RefIdxLY[xNbAk][yNbAk],RefPicListY)に等しいとき、availableFlagLXAが1に設定される。
【0053】
動きベクトルmvLXB及び可用性フラグavalabilableFlagLXBは、以下の順序付けられたステップで導出される。
【0054】
(1)サンプル位置(xNbB0、yNbB0)、(xNbB1、yNbB1)及び(xNbB2、yNbB2)が、それぞれ、(xPb+nPbW、yPb-1)、(xPb+nPbW-1、yPb-1)及び(xPb-1、yPb-1)に等しく設定される。
【0055】
(5)isScaledFlagLXが0に等しいとき、avalalableFlagLXBが0に等しく設定され、(xNbB0,yNbB0)から(xNbB2,yNbB2)まで、又はavalableFlagLXBが1に等しくなるまで、(xNbBk,yNbBk)以下が適用される:
― 節6.4.2に規定される予測ブロックの可用性導出プロセスが、ルマ(luma)位置(xCb,yCb)、現在ルマ符号化ブロックサイズnCbS、ルマ位置(xPb,yPb)、ルマ予測ブロック幅nPbW、ルマ予測ブロック高さnPbH、(xNbBk,yNbBk)に等しく設定されたルマ位置(xNbY,yNbY)、及びパーティションインデックスpartIdxを入力として呼び出され、その出力が予測ブロック可用性フラグavalalableBkに割り当てられる。
― avallableBkがTRUEに等しく、且つavallableFlagLXBが0に等しいとき、以下が適用される:
PredFlagLX[xNbBk][yNbBk]が1に等しく、且つLongTermRefPic(currentPic,currentPb,refIdxLX,RefPicListX)がLongTermRefPic(currPic,currPb,RefIdxLX[xNbBk][yNbBk],RefPicListX)に等しい場合、availableFlagLXBが1に等しく設定され、以下の割り当てが行われる:
mvLXB=MvLX[xNbBk][yNbBk]
refIdxB=RefIdxLX[xNbBk][yNbBk]
refPicListB=RefPicListX
それ以外の場合で、PredFlagLY[xNbBk][yNbBk](Y=!X)が1に等しく、且つLongTermRefPic(currPic,currPb,refIdxLX,RefPicListX)がLongTermRefPic(currPic,currPb,RefIdxLY[xNbBk][yNbBk],RefPicListY)に等しいとき、avalalableFlagLXBが1に等しく設定され、以下の割り当てが行われる:
mvLXB=MvLY[xNbBk][yNbBk]。
【0056】
時間動きベクトル予測(Temporal Motion Vector Prediction;TMVP)は、既存の実装を含む動きベクトル予測の他の一例である。既存のTMVP実装の関連部分を以下にて詳述する。
【0057】
変数mvLXCol及びavalableFlagLXColは、次のように導出される。
【0058】
LongTermRefPic(currentPic,currentPb,refIdxLX, LX)がLongTermRefPic(ColPic,colPb,refIdxCol,listCol)と等しくない場合、mvLXColの両方のコンポーネントが0に等しく設定され、avalableFlagLXColは0に等しく設定される。
【0059】
それ以外の場合、変数avallableFlagLXColは1に等しく設定され、refPicListCol[refIdxCol]は、ColPicによって指定される同一位置のピクチャ内の予測ブロックcolPbを含むスライスの参照ピクチャリストlistCol内の参照インデックスrefIdxColを持つピクチャであるように設定される。
【0060】
2. イントラブロックコピー(IBC)の実施形態例
イントラブロックコピー(IBC)は、動き補償の概念をフレーム間符号化からフレーム内符号化に拡張している。
図1に示すように、現在ブロックは、IBCが適用されるとき、同じピクチャ内の参照ブロックによって予測される。参照ブロック内のサンプルは、現在ブロックが符号化又は復号される前に既に再構成されていなければならない。IBCは、ほとんどのカメラキャプチャされたシーケンスに対してはそれほど効率的でないものの、スクリーンコンテンツに対して大きな符号化利得を示す。その理由は、スクリーンコンテンツピクチャには、例えばアイコン及びテキスト文字など、多くの重複パターンが存在するからである。IBCは、それらの重複パターン間の冗長性を効果的に除去することができる。
【0061】
HEVC‐SCCにおいて、インター符号化される符号化ユニット(CU)は、その参照ピクチャとして現在ピクチャを選択する場合に、IBCを適用することができる。この場合、MVはブロックベクトル(BV)に名称変更され、BVは常に整数ピクセル精度を持つ。メインプロファイルHEVCとの互換性を保つために、現在ピクチャは、復号ピクチャバッファ(Decoded Picture Buffer;DPB)において“長期”参照ピクチャとしてマークされる。なお、同様に、マルチビュー/3D映像符号化標準においても、ビュー間参照ピクチャが“長期”参照ピクチャとしてマークされる。
【0062】
2.1 IBCが有効にされるときのピクチャマーキングの実施形態
PPSにおけるIBCに関するセマンティクス
1に等しいpps_curre_pic_ref_enabled_flagは、PPSを参照するピクチャが、そのピクチャそれ自体のスライスの参照ピクチャリストに含まれ得ることを指定する。0に等しいpps_curre_pic_ref_enabled_flagは、PPSを参照するピクチャが、そのピクチャそれ自体のスライスの参照ピクチャリストに決して含まれないことを指定する。存在しない場合、pps_curren_pic_ref_enabled_flagの値は0に等しいと推定される。
【0063】
sps_curre_pic_ref_enabled_flagが0に等しいときに、pps_curre_pic_ref_enabled_flagの値が0に等しいことは、ビットストリーム適合の必要条件である。
【0064】
変数TwoVersionsOfCurrDecPicFlagは、次のように導出される:
TwoVersionsOfCurrDecPicFlag=pps_curre_pic_ref_enabled_flag && (sample_adaptive_offset_enabled_flag || !pps_deblocking_filter_disabled_flag || deblocking_filter_override_enabled_flag)。
【0065】
sps_max_dec_pic_buffering_minus1[TemporalId]が0に等しいとき、TwoVersionsOfCurrDecPicFlagの値は0に等しいとする。
【0066】
復号プロセス
インループフィルタプロセスの呼び出し後の現在の復号されたピクチャが、エンプティのピクチャ記憶バッファ内でDPBに格納され、DPBフルネスが1だけ増分され、このピクチャが、“短期参照に使用される”としてマークされる。
【0067】
TwoVersionsOfCurrDecPicFlagが1に等しいとき、節F.8.7[1]に規定されるようにインループフィルタプロセスの呼び出し前の現在の復号されたピクチャが、エンプティのピクチャ記憶バッファ内でDPBに格納され、DPBフルネスが1だけ増分され、このピクチャが、“長期参照に使用される”としてマークされる。
【0068】
3. JEM(Joint Exploration Model)例
一部の実施形態において、共同探索モデル(Joint Exploration Model;JEM)として知られる参照ソフトウェアを用いて、将来の映像符号化技術が探索される。JEMでは、サブブロックベースの予測が、例えばアフィン予測、代替的時間動きベクトル予測(alternative temporal motion vector prediction;ATMVP)、空間時間動きベクトル予測(spatial-temporal motion vector prediction;STMVP)、双方向オプティカルフロー(bi-directional optical flow;BIO)、フレームレートアップコンバージョン(Frame-Rate Up Conversion;FRUC)、局所適応動きベクトルレゾリューション(Locally Adaptive Motion Vector Resolution;LAMVR)、オーバーラップブロック運動補償(Overlapped Block Motion Compensation;OBMC)、局所照明補償(Local Illumination Compensation;LIC)、デコーダ側動きベクトル精緻化(Decoder-side Motion Vector Refinement;DMVR)などの、いくつかの符号化ツールに採用される。
【0069】
3.1 ATMVP(alternative temporal motion vector prediction)の例
ATMVP法では、時間動きベクトル予測(temporal motion vector prediction;TMVP)法が、現在CUよりも小さい複数のブロックから複数セットの動き情報(動きベクトル及び参照インデックスを含む)をフェッチすることによって修正されている。
【0070】
図2は、CU600に関するATMVP動き予測処理の一例を示している。ATMVP法は、CU600内の複数のサブCU601の動きベクトルを2ステップで予測する。第1ステップは、時間ベクトルを用いて参照ピクチャ650内の対応するブロック651を特定することである。参照ピクチャ650は、モーションソースピクチャとも呼ばれる。第2ステップは、現在CU600をサブCU601へと分割し、各サブCUに対応するブロックから、各サブCUの動きベクトル及び参照インデックスを取得することである。
【0071】
第1ステップにて、参照ピクチャ650及び対応するブロックが、現在CU600の空間的隣接ブロックの動き情報によって決定される。隣接ブロックの繰り返し走査処理を回避するために、現在CU600のマージ候補リスト内の最初のマージ候補が使用される。第1の利用可能な動きベクトル及びそれに関連する参照インデックスが、モーションソースピクチャへの時間ベクトル及びインデックスであるように設定される。斯くして、対応するブロックを、TMVPと比較して、より正確に特定することでき、対応するブロック(同一位置のブロックと呼ばれることもある)は常に現在CUに対して右下又は中央の位置にある。
【0072】
第2ステップにて、現在CUの座標に時間ベクトルを足し合わせることによって、サブCU651の対応するブロックが、モーションソースピクチャ650内の時間ベクトルによって特定される。各サブCUについて、対応するブロック(例えば、中心サンプルをカバーする最小動きグリッド)の動き情報を用いて、そのサブCUに関する動き情報が導出される。対応するN×Nブロックの動き情報が特定された後、それが、HEVCのTMVPと同様にして、現在サブCUの動きベクトル及び参照インデックスに変換され、ここで、動きスケーリング及び他の手順が適用される。例えば、デコーダは、低遅延条件(例えば、現在ピクチャの全ての参照ピクチャのPOCが、現在ピクチャのPOCよりも小さいこと)が満たされているかをチェックし、動きベクトルMVx(例えば、参照ピクチャリストXに対応する動きベクトル)を用いて、各サブCUに関する動きベクトルMVy(例えば、Xは0又は1に等しく、Yは1-Xに等しい)を予測し得る。
【0073】
4. 映像符号化におけるIBCの例示的な方法
図3は、イントラブロックコピーを用いる映像符号化に関する例示的な方法のフローチャートを示している。方法300は、ステップ310にて、現在ピクチャの現在ブロックが動き補償アルゴリズムを用いて符号化されるべきかを判定することを含む。方法300は、ステップ320にて、この判定に基づいて、現在ブロックにイントラブロックコピーを選択的に適用することによって現在ブロックを符号化することを含む。より一般的には、イントラブロックコピーを現在ブロックに適用するか否かは、現在ブロックが特定の動き補償アルゴリズムを用いて符号化されるべきかに基づく。
【0074】
図4は、イントラブロックコピーを用いる映像符号化に関する例示的な他の方法のフローチャートを示している。方法400は、ステップ410にて、現在ピクチャの現在ブロックがイントラブロックコピーを用いて符号化されるべきかを判定することを含む。方法400は、ステップ420にて、この判定に基づいて、現在ブロックに動き補償アルゴリズムを選択的に適用することによって現在ブロックを符号化することを含む。より一般的には、動き補償アルゴリズムを用いて現在ブロックを符号化するか否かは、現在ブロックがイントラブロックコピーを用いて符号化されるべきかに基づく。
【0075】
図5は、イントラブロックコピーを用いる映像復号に関する例示的な方法のフローチャートを示している。方法500は、ステップ510にて、現在ピクチャの現在ブロックが動き補償アルゴリズムを用いて復号されるべきかを判定することを含む。方法500は、ステップ520にて、この判定に基づいて、現在ブロックにイントラブロックコピーを選択的に適用することによって現在ブロックを復号することを含む。より一般的には、イントラブロックコピーを現在ブロックに適用するか否かは、現在ブロックが特定の動き補償アルゴリズムを用いて復号されるべきかに基づく。
【0076】
図6は、イントラブロックコピーを用いる映像復号に関する例示的な他の方法のフローチャートを示している。方法605は、ステップ610にて、現在ピクチャの現在ブロックがイントラブロックコピーを用いて復号されるべきかを判定することを含む。方法605は、ステップ620にて、この判定に基づいて、現在ブロックに動き補償アルゴリズムを選択的に適用することによって現在ブロックを復号することを含む。より一般的には、動き補償アルゴリズムを用いて現在ブロックを復号するか否かは、現在ブロックがイントラブロックコピーを用いて復号されるべきかに基づく。
【0077】
図3-
図6及び
図9-
図10に関して記述される方法300、400、500、605、900及び1000は更に、動き補償アルゴリズムがイントラブロックコピーと互換性があるかを判定するステップを含んでもよい。イントラブロックコピーと動き補償アルゴリズムとの互換性について、異なる特定の動き補償アルゴリズムに関して説明される以下の例にて説明する。
【0078】
例1. ATMVPの第1ステップで使用される時間ベクトルは、IBCで符号化された隣接ブロックから導出されることができないことが提案される。一例において、現在ピクチャをその参照ピクチャとする隣接ブロックは、ATMVPの第1ステップで“利用不可”又はイントラ符号化されるとしてマークされる。
【0079】
例2. サブCUの対応するブロックは、当該対応するブロックがATMVPの第2ステップにてIBCでコード化される場合に、“利用不可”又は“イントラ符号化される”としてマークされることが提案される。
【0080】
例3. あるいは、対応するブロックがATMVPの第2ステップにてIBCで符号化される場合に、サブCUの対応するブロックの動き情報がスケーリングなしで該サブCUにコピーされることが提案される。サブCUは、対応するブロックと同じMVでIBCを適用するが、参照ピクチャは現在のピクチャに変更される。
【0081】
例4. 2つ以上のATMVP候補が追加されてもよく、その場合、1つは上述の方法を用いて時間的隣接ブロックから導出されることができ、他の1つは、同一位置のサブCUがIBCで符号化される場合に、サブCU動き情報を導出する異なる方法で、少なくとも1つのサブCUを有する時間的隣接ブロックから導出される。
【0082】
以下に、この出願で記述される技術の一部の例を条項形式にてリストアップする。ブロックは、この出願で使用されるとき、ピクセル、ボクセル、サブピクセル、及び/又はサブボクセルの連続的な又は不連続な集合とし得る。例えば、ブロックは、4×4正方形や6×4長方形などの直線状、又は楕円などの曲線状とすることができる。
【0083】
視覚情報の一部は、この出願で使用されるとき、視覚情報のサブセットとすることができる。符号化された表現は、この出願で使用されるとき、この出願にて記述される技術のうちの1つを使用して符号化された視覚情報を表すビットストリームとし得る。インジケータは、この出願で使用されるとき、符号化された表現内のフラグ又はフィールドとすることができ、又は複数の別個のフラグ又はフィールドであってもよい。
【0084】
復号技術は、この出願で使用されるとき、デコーダによって適用されることができ、また、ハードウェア又はソフトウェアで実装されることができる。復号技術は、コーダが行った全てを逆順で元に戻し得る。符号化された表現に対して適切な復号技術が適用されるとき、結果として視覚情報を得ることができる。複数のブロックにおける冒頭ブロックは、この出願で使用されるとき、符号化された表現における第1のブロックの前に生じるブロックである。同一位置の参照ピクチャは、符号化/復号対象ブロックを符号化/復号する際に使用される参照ピクチャとし得る。
【0085】
1. 視覚情報を復号する方法(例えば、
図9に示す方法900)であって、符号化された表現から、前記視覚情報の一部を表す復号対象ブロックがATMVP(alternative temporal motion vector prediction)符号化技術を用いて符号化されていることを特定し(902)、前記復号対象ブロックの空間的に隣接するブロックがイントラブロックコピー(IBC)符号化技術を用いて符号化されていることを特定し(904)、前記空間的に隣接するブロックが、前記復号対象ブロックに関する時間ベクトルを導出するための動きベクトルを提供することができないと決定し(906)、前記ATMVP符号化技術に対応するATMVP復号技術を使用することによって、及び前記復号対象ブロックに関する前記時間ベクトルを導出するための前記動きベクトルを提供するのに前記空間的に隣接するブロックの使用を排除することによって、前記符号化された表現を復号する(908)、ことを有する方法。
【0086】
2. 視覚情報を復号する方法(例えば、
図10に示す方法1000)であって、符号化された表現から、前記視覚情報の一部を表す復号対象ブロックがATMVP(alternative temporal motion vector prediction)符号化技術を用いて符号化されていることを特定し(1002)、参照ピクチャ内の同一位置のブロックがイントラブロックコピー(IBC)符号化技術を用いて符号化されていることを特定し(1004)、前記参照ピクチャ内の前記同一位置のブロックが、前記復号対象ブロックのサブブロックに関する動きベクトルを導出するために用いられることができないと決定し(1006)、前記ATMVP符号化技術に対応するATMVP復号技術を使用することによって、及び前記復号対象ブロックの前記サブブロックに関する時間動きベクトル候補を提供するのに前記参照ピクチャ内の前記同一位置のブロックの使用を排除することによって、前記符号化された表現を復号する(1008)、ことを有する方法。
【0087】
3. 前記符号化された視覚情報から、第1のピクチャの符号化を表す複数のブロックを取得し、前記複数のブロックにおける冒頭ブロックを復号し、前記冒頭ブロックを復号した後に、該復号の結果に基づいて、前記複数のブロックのうちの残りにおける第1のブロックを復号化する、ことを有する条項1又は2に記載の方法。
【0088】
4. 当該方法は、前記符号化された視覚情報から、第2のピクチャの符号化を表す複数のブロックを取得し、前記第2のピクチャの符号化を表す前記複数のブロック内の復号対象ブロックに対して2ステッププロセスを実行することによって、前記ATMVP復号技術を使用して、前記視覚情報に関連する前記第2のピクチャの符号化を復号する、ことを有し、前記2ステッププロセスは、前記2ステッププロセスの第1ステップにて、前記符号化された視覚情報の復号された参照ピクチャ、前記復号対象ブロックに対応する前記参照ピクチャ内の復号された対応するブロック、及び前記空間的に隣接するブロックの動きベクトルを有する時間ベクトルを取得し、前記空間的に隣接するブロックは、前記復号対象ブロックに空間的に隣接するものであり、前記2ステッププロセスの第2ステップにて、前記復号対象ブロックを表す複数のサブブロックを取得し、前記複数のサブブロックの各サブブロックについて、前記視覚情報の参照ピクチャ内の対応するサブブロックを特定し、該対応するサブブロックの動きベクトルを取得し、該対応するサブブロックの該動きベクトルに基づいて、前記複数のサブブロックの各サブブロックに関する動きベクトルを導出し、前記サブブロックの前記動きベクト及び前記視覚情報の前記参照ピクチャ内の対応するサブブロックに基づいて、前記複数のサブブロックを復号する、ことを有する、条項1乃至3のいずれか一項に記載の方法。
【0089】
5. 前記空間的に隣接するブロックが前記IBC符号化技術を用いて符号化されていないと仮定する、ことを有する条項4に記載の方法。
【0090】
6. ATMVP復号技術の前記第1ステップでの使用で利用不可である又はイントラ符号化されるとして前記空間的に隣接するブロックを指定するインジケータを復号する、
ことを有する条項4又は5に記載の方法。
【0091】
7. ATMVP復号技術の前記第2ステップでの使用で利用不可である又はイントラ符号化されるとして前記対応するサブブロックを指定するインジケータを復号する、
ことを有する条項4乃至6のいずれか一項に記載の方法。
【0092】
8. ATMVP復号技術の前記第1ステップでイントラ符号化技術を用いるとして前記空間的に隣接するブロックを指定するインジケータを復号する、
ことを有する条項4又は5に記載の方法。
【0093】
9. ATMVP復号技術の前記第2ステップでイントラ符号化技術を用いるとして前記対応するサブブロックを指定するインジケータを復号する、
ことを有する条項4又は5に記載の方法。
【0094】
10. 前記復号対象ブロックの前記対応するブロックが前記IBC符号化技術を用いて符号化されている場合に、前記対応するサブブロックの動きベクトルを、前記対応するサブブロックの前記動きベクトルをスケーリングすることなく前記復号対象ブロックのサブブロックにコピーする、
ことを有する条項1乃至9のいずれか一項に記載の方法。
【0095】
11. 前記対応するブロックが前記IBC符号化技術を用いて符号化されていることを指し示した、前記対応するブロックに関連付けられたインジケータを復号し、前記第2のピクチャを前記参照ピクチャとして使用して前記復号対象ブロックを復号する、ことを有する条項4記載の方法。
【0096】
12. 前記対応するブロックが前記IBC符号化技術を用いて符号化されていることを指し示した、前記対応するサブブロックに関連付けられたインジケータを復号し、前記IBC復号技術を用いて符号化された前記対応するサブブロックを用いて前記サブブロックを復号する、ことを有する条項4乃至11のいずれか一項に記載の方法。
【0097】
13. 前記復号対象ブロックの前記対応するブロックが前記IBC復号技術を用いて符号化されている場合に、前記対応するサブブロックの動きベクトルを、前記対応するサブブロックの前記動きベクトルをスケーリングすることなく前記復号対象ブロックのサブブロックにコピーする、ことを有する条項1乃至9のいずれか一項に記載の方法。
【0098】
14. 前記参照ピクチャを、前記復号対象ブロックを含む前記第2のピクチャに変更する、ことを有する条項13に記載の方法。
【0099】
15. 前記復号対象ブロックの前記サブブロックの前記動きベクトルを、前記IBC符号化技術を用いて符号化された少なくとも1つの対応するサブブロックの動きベクトルに基づいて導出する、ことを有する条項4に記載の方法。
【0100】
条項1乃至15に記載の方法の更なる態様及びバリエーションは、先行するセクションに記載されている。これら復号方法は、例えば
図7及び
図8に関して説明されるものなどのハードウェアプラットフォームを含み得る映像デコーダによって実装され得る。
【0101】
16. 視覚情報を符号化する方法であって、前記視覚情報を、複数の符号化されたピクチャ、及び適用される1つ以上の符号化技術をシグナリングする複数のインジケータへと符号化し、前記複数のインジケータは、イントラブロックコピー(IBC)技術インジケータ及びATMVP技術インジケータを含み、前記視覚情報に関連する第1のピクチャの第1のブロックが、前記IBC技術を用いて符号化され、前記視覚情報に関連する第2のピクチャの第2のブロックが、前記ATMVP技術を用いて符号化され、前記IBC技術は、前記第1のピクチャの前記第1のブロックを符号化するのに前記第1のピクチャの異なるブロックを使用し、前記ATMVP技術は、前記第2のピクチャを符号化するのに前記視覚情報に関連する第3のピクチャを使用する、ことを有する方法。
【0102】
17. 前記第1のピクチャを複数のブロックへと分割し、前記複数のブロックにおける冒頭ブロックを符号化し、前記冒頭ブロックを符号化した後に、前記冒頭ブロックに基づいて前記複数のブロックの第1のブロックを符号化する、ことを有する条項16に記載の方法。
【0103】
18. 当該方法は、符号化対象ブロックを含む複数のブロックへと前記第2のピクチャを分割し、2ステッププロセスを実行することによって、前記ATMVP技術を使用して、前記視覚情報に関連する前記第2のピクチャを符号化する、ことを有し、前記2ステッププロセスは、前記2ステッププロセスの第1ステップにて、前記視覚情報の参照ピクチャ、前記符号化対象ブロックに対応する前記参照ピクチャ内の対応するブロック、及び空間的に隣接するブロックの動きベクトルを有する時間ベクトルを特定し、前記空間的に隣接するブロックは、前記符号化対象ブロックに空間的に隣接するものであり、記2ステッププロセスの第2ステップにて、前記符号化対象ブロックを複数のサブブロックへと分割し、前記複数のサブブロックの各サブブロックについて、前記視覚情報の参照ピクチャ内の対応するサブブロックを特定し、該対応するサブブロックの動きベクトルを取得し、該対応するサブブロックの該動きベクトルに基づいて、前記複数のサブブロックの各サブブロックに関する動きベクトルを導出し、前記サブブロックの前記動きベクト及び前記視覚情報の前記参照ピクチャ内の前記対応するサブブロックに基づいて、前記複数のサブブロックの前記サブブロックを符号化する、ことを有する、条項16又は17に記載の方法。
【0104】
19. 前記空間的に隣接するブロックが前記IBC技術を用いて符号化されないことを要求する、ことを有する条項18に記載の方法。
【0105】
20. 前記符号化対象ブロックの前記空間的に隣接するブロックが前記IBC技術を用いて符号化される場合に、ATMVP技術の前記第1ステップでの使用で利用不可である又はイントラ符号化されるとして前記空間的に隣接するブロックを指定するインジケータを符号化する、ことを有する条項18又は19に記載の方法。
【0106】
21. 前記視覚情報の前記参照ピクチャが前記IBC技術を用いて符号化される場合に、ATMVP技術の前記第2ステップでの使用で利用不可である又はイントラ符号化されるとして前記対応するサブブロックを指定するインジケータを符号化する、ことを有する条項18乃至20のいずれか一項に記載の方法。
【0107】
22. 前記符号化対象ブロックの前記空間的に隣接するブロックが前記IBC技術を用いて符号化される場合に、ATMVP技術の前記第1ステップでの使用でイントラ符号化されるとして前記空間的に隣接するブロックを指定するインジケータを符号化する、ことを有する条項18又は19に記載の方法。
【0108】
23. 前記視覚情報の前記参照ピクチャが前記IBC技術を用いて符号化される場合に、ATMVP技術の前記第2ステップでの使用でイントラ符号化されるとして前記対応するサブブロックを指定するインジケータを符号化する、ことを有する条項18乃至22のいずれか一項に記載の方法。
【0109】
24. 前記符号化対象ブロックの前記対応するブロックが前記IBC技術を用いて符号化される場合に、前記対応するサブブロックの動きベクトルを、前記対応するサブブロックの前記動きベクトルをスケーリングすることなく前記符号化対象ブロックのサブブロックにコピーする、ことを有する条項18に記載の方法。
【0110】
25. 前記参照ピクチャを、前記符号化対象ブロックを含む前記第2のピクチャに変更する、ことを有する条項24に記載の方法。
【0111】
26. 前記符号化対象ブロックの前記サブブロックの前記動きベクトルを、前記IBC技術を用いて符号化された少なくとも1つの対応するサブブロックの動きベクトルに基づいて導出する、ことを有する条項18乃至25のいずれか一項に記載の方法。
【0112】
条項16乃至26に記載の方法の更なる態様及びバリエーションは、先行するセクションに記載されている。これら符号化方法は、例えば
図7及び
図8に関して説明されるものなどのハードウェアプラットフォームを含み得る映像コーダによって実装され得る。
【0113】
27. 条項1乃至26のいずれか一項に記載の方法を実行するように構成されたプロセッサを有する映像処理装置。
【0114】
28. プロセッサ実行可能なコードを格納したコンピュータ読み取り可能媒体であって、前記コードは、実行時に、プロセッサに、条項1乃至26のいずれか一項に記載の方法を実行させる、コンピュータ読み取り可能媒体。
29. 前記対応する映像領域が前記IBCモードで符号化されるかを決定し、前記対応する映像領域が前記IBCモードで符号化されることに応答して、前記対応する映像領域の動き情報が利用不可であると決定し、前記現在映像ブロックと前記ビットストリーム表現との間での前記変換を実行する、ことを更に有する条項27に記載の装置。
30. 前記IBCモードにおいて、予測は、ブロックベクトルによって決定されるのと同じスライスのサンプル値から導出される、条項29に記載の装置。
31. 前記空間的な隣接ブロックが前記IBCモードで符号化されることに応答して、前記空間的な隣接ブロックを利用不可である又はイントラ符号化されるとして指定するインジケータが前記ビットストリーム表現内で提示されることを決定する、ことを更に有する条項27に記載の装置。
32. 前記対応する映像領域が前記IBCモードで符号化されることに応答して、前記対応する映像領域を利用不可である又はイントラ符号化されるとして指定するインジケータが前記ビットストリーム表現内で提示されることを決定する、ことを更に有する条項27に記載の装置。
33. 前記空間的な隣接ブロックを前記SbTMVPモードにおいてイントラ符号化技術を用いるものとして指定するインジケータを復号する、ことを更に有する条項27に記載の装置。
34. 前記対応する映像領域を前記SbTMVPモードにおいてイントラ符号化技術を用いるものとして指定するインジケータを復号する、ことを更に有する条項27に記載の装置。
35. 前記変換は、前記現在映像ブロックを前記ビットストリーム表現へと符号化することを含む、条項27に記載の装置。
36. 前記変換は、前記ビットストリーム表現から前記現在映像ブロックを復号することを含む、条項27に記載の装置。
【0115】
5. 開示された技術の実装例
図7は、(以下に限られないが)方法300、400、500、及び605を含め、ここに開示される技術の様々な部分を実装するのに利用されることができるコンピュータシステム又は他の制御装置700に関するアーキテクチャの一例を示すブロック図である。
図7において、コンピュータシステム700は、インターコネクト725を介して接続された1つ以上のプロセッサ705及びメモリ710を含んでいる。インターコネクト725は、適切なブリッジ、アダプタ、又はコントローラによって接続された、任意の1つ以上の別個の物理バス、ポイントツーポイント接続、又はこれらの両方を表し得る。従って、インターコネクト725は、例えば、システムバス、ペリフェラルコンポーネントインターコネクト(PCI)バス、ハイパートランスポート若しくは業界標準アーキテクチャ(ISA)バス、小型コンピュータシステムインタフェース(SCSI)バス、ユニバーサルシリアルバス(USB)、IIC(I2C)バス、又は“ファイアワイヤ”と呼ばれることもある電気電子技術者協会(IEEE)標準674バスを含み得る。
【0116】
(1つ以上の)プロセッサ705は、例えばホストコンピュータの全体的な動作を制御するための中央演算処理ユニット(CPU)を含み得る。特定の実施形態において、(1つ以上の)プロセッサ705は、メモリ710に格納されたソフトウェア又はファームウェアを実行することによってこれを遂行する。(1つ以上の)プロセッサ705は、1つ以上のプログラム可能な汎用又は専用のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、プログラマブルコントローラ、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、若しくはこれらに類するもの、又はこのようなデバイスの組み合わせであることができ、又はそれらを含むことができる。
【0117】
メモリ710は、コンピュータシステムのメインメモリであることができ、あるいはそれを含むことができる。メモリ710は、任意の好適形態のランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、若しくはこれらに類するもの、又はこのようなデバイスの組み合わせを表し得る。使用時、メモリ710は、とりわけ、プロセッサ705によって実行されるときにプロセッサ705に、ここに開示される技術の実施形態を実施するための動作を実行させる機械命令のセットを含み得る。
【0118】
インターコネクト725を介して(1つ以上の)プロセッサ705に、(オプションの)ネットワークアダプタ715も接続されている。ネットワークアダプタ715は、例えばストレージクライアントなどのリモート装置及び/又は他のストレージサーバと通信する能力をコンピュータシステム700に提供し、例えば、イーサネット(登録商標)アダプタ又はファイバチャネルアダプタとし得る。
【0119】
図8は、(以下に限られないが)方法300、400、500、及び605を含め、ここに開示される技術の様々な部分を実装するのに利用されることができるモバイル装置800の一実施形態例のブロック図を示している。モバイル装置800は、ラップトップ、スマートフォン、タブレット、ビデオカメラ、又は映像を処理することができる他の種類の装置とし得る。モバイル装置800は、データを処理するプロセッサ又はコントローラ801と、プロセッサ801と通信し、データを格納及び/又はバッファするメモリ802とを含んでいる。例えば、プロセッサ801は、中央演算処理ユニット(CPU)又はマイクロコントローラユニット(MCU)を含むことができる。一部の実装において、プロセッサ801はフィールドプログラマブルゲートアレイ(FPGA)を含むことができる。一部の実装において、モバイル装置800は、スマートフォン装置の様々な視覚データ及び/又は通信データの処理機能のために、グラフィックス処理ユニット(GPU)、映像処理ユニット(VPU)及び/又は無線通信ユニットを含み、あるいはそれらと通信する。例えば、メモリ802は、プロセッサ801によって実行されるときに、例えば、情報、コマンド、及び/又はデータを受信すること、情報及びデータを処理すること、並びに処理された情報/データを例えばアクチュエータ又は外部ディスプレイなどの別のデバイスに送信若しくは提供することなどの、様々な動作を実行するように、モバイル装置800を構成するプロセッサ実行可能コードを含んで保管することができる。
【0120】
モバイル装置800の様々な機能を支援するために、メモリ802は、プロセッサ801によって処理又は参照される例えば命令、ソフトウェア、値、画像、及び他のデータなどの、情報及びデータを格納することができる。例えば、種々のタイプのランダムアクセスメモリ(RAM)デバイス、読み出し専用メモリ(ROM)デバイス、フラッシュメモリデバイス、及び他の好適な記憶媒体を使用して、メモリ802の記憶機能を実装することができる。一部の実装において、モバイル装置800は、プロセッサ801及び/又はメモリ802を他のモジュール、ユニット又はデバイスにインタフェース接続する入力/出力(I/O)ユニット803を含む。例えば、I/Oユニット803は、例えばクラウド内の1つ以上のコンピュータとユーザ装置との間などで、典型的なデータ通信標準と互換性のある種々のタイプの無線インタフェースを利用するために、プロセッサ801及びメモリ802とインタフェースすることができる。一部の実装において、モバイル装置800は、I/Oユニット803を介して有線接続を用いて他の装置とインタフェースすることができる。モバイル装置800はまた、例えばデータストレージ及び/又はビジュアル若しくはオーディオディスプレイ装置804などの他の外部インタフェースとインタフェースして、プロセッサによって処理され、メモリに記憶され、又はディスプレイ装置804若しくは外部装置の出力ユニットに表示されることができるデータ及び情報を取り出して転送することができる。例えば、ディスプレイ装置804は、開示される技術に従って且つブロックが動き補償アルゴリズムを用いて符号化されるかに基づいてイントラブロックコピーを適用するブロック(CU、PU又はTU)を含む映像フレームを表示することができる。
【0121】
一部の実施形態において、映像デコーダ装置が、ここに記載されるイントラブロックコピーが映像復号に使用される映像復号方法を実装してもよい。この方法は、上述の方法300、400、500、及び605と同様とし得る。
【0122】
一部の実施形態において、映像復号のデコーダ側の方法が、現在ピクチャの現在ブロックが動き補償アルゴリズムを用いて復号されるべきか判定し、該判定に基づいて、現在ブロックにイントラブロックコピーを選択的に適用することによって現在ブロックを復号することにより、映像品質を改善するためにイントラブロックコピーを使用し得る。
【0123】
他の実施形態において、映像復号のデコーダ側の方法が、現在ピクチャの現在ブロックがイントラブロックコピーを用いて復号されるべきかを判定し、該判定に基づいて、現在ブロックに動き補償アルゴリズムを選択的に適用することによって現在ブロックを復号することにより、映像品質を改善するためにイントラブロックコピーを使用し得る。
【0124】
一部の実施形態において、映像復号方法は、
図7及び
図8に関して記述されたようなハードウェアプラットフォーム上に実装される復号装置を使用して実行され得る。
【0125】
以下は、VVC(Versatile Video Coding)という名称の映像符号化規格の基準ソフトウェアであるVTM-1.0にIBCを組み込むことによって測定された改善である。VTMはVVCテストモデルを表す。
【表4】
【0126】
上の表において、“Y”、“U”、“V”は、人の知覚を考慮に入れたカラー画像又は映像を符号化するYUVカラー符号化システムにおける色を表す。EncT、及びDecTは、それぞれ、IBCなしでの符号化、及び復号時間と比較した、IBCを使用しての符号化、及び復号時間の比を表している。具体的には、
EncT=TestEncodingTime/anchorEncodingTime
DecT=TestEncodingTime/anchorEncodingTime
である。
【0127】
例えばクラスA1、クラスA2などの種々のクラスは、種々の映像符号化技術の性能をテストする際に使用される標準映像シーケンスのグループを表す。“Y”、“U”、“V”の列の下の負のパーセンテージは、IBCがVTM-1.0に追加されるときのビットレート節減を表している。EncT及びDecTの列の下の100%を超えるパーセンテージは、IBCを用いる符号化/復号が、IBCを用いない符号化/復号よりどれだけ遅いかを示している。例えば、150%というパーセンテージは、IBCを用いる符号化/復号が、IBCを用いない符号化/復号よりも50%遅いことを意味する。100%より低いパーセンテージは、IBCを用いる符号化/復号が、IBCを用いない符号化/復号よりもどれだけ速いかを示している。上の表内で緑色にハイライトされているクラスF及びクラスSCCなる2つのクラスは、ビットレート節減が3%を超えることを示している。
【0128】
以上から理解されることには、ここでは、ここに開示される技術の特定の実施形態を説明目的で記述してきたが、本発明の範囲から逸脱することなく様々な変更が為され得る。従って、ここに開示される技術は、添付の特許請求の範囲による場合を除いて限定されるものではない。
【0129】
この特許文献に記載される事項及び機能動作の実装は、この明細書に開示される構成及びそれらの構成的等価物を含め、様々なシステム、デジタル電子回路、又はコンピュータソフトウェア、ファームウェア、若しくはハードウェアにて、又はこれらのうちの1つ以上の組み合わせにて実装されることができる。この明細書に記載される事項の実装は、1つ以上のコンピュータプログラムプロダクトとして、すなわち、データ処理装置による実行のための、又はデータ処理装置の動作を制御するための、有形で非一時的なコンピュータ読み取り可能媒体上にエンコードされたコンピュータプログラム命令の1つ以上のモジュールとして実装されることができる。コンピュータ読み取り可能媒体は、機械読み取り可能記憶装置、機械読み取り可能記憶基材、メモリ装置、機械読み取り可能な伝播信号をもたらす物質の組成物、又はこれらのうちの1つ以上の組み合わせとし得る。用語“データ処理ユニット”又は“データ処理装置”は、例えば、例としてプログラマブルプロセッサ、コンピュータ、又は複数のプロセッサ若しくはコンピュータを含め、データを処理する全ての装置、デバイス、及び機械を包含する。装置は、ハードウェアに加えて、問題としているコンピュータプログラムの実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はこれらのうちの1つ以上の組み合わせを構成するコード、を含むことができる。
【0130】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる)は、コンパイル又は解釈された言語を含め、任意の形態のプログラミング言語で書かれることができ、それは、スタンドアローンプログラムとして、又はコンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチン、若しくは他のユニットとして展開されることを含め、任意の形態で展開されることができる。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応するわけではない。プログラムは、他のプログラム若しくはデータを保持するファイルの部分(例えば、マークアップ言語文書に格納される1つ以上のスクリプト)、問題としているプログラムに専用の単一ファイル、又は複数の協調的なファイル(例えば、1つ以上のモジュール、サブプログラム、又はコードの一部を格納するファイル)に格納されることができる。コンピュータプログラムは、1つのコンピュータ上で実行されるように展開されることができ、あるいは、一箇所に置かれた、又は複数箇所にわたって分散されて通信ネットワークによって相互接続された、複数のコンピュータ上で実行されるように展開されることができる。
【0131】
この明細書に記載されるプロセス及び論理フローは、入力データ上で動作して出力を生成することによって機能を実行するように1つ以上のプログラマブルプロセッサが1つ以上のコンピュータプログラムを実行することによって実行されることができる。これらのプロセス及び論理フローはまた、FPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)といった特殊目的の論理回路によって実行することができ、また、装置もそのような特殊目的の論理回路として実装されることができる。
【0132】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用及び専用の両方のマイクロプロセッサ、及び任意の種類のデジタルコンピュータの1つ以上のプロセッサを含む。一般に、プロセッサは、読み出し専用メモリ若しくはランダムアクセスメモリ又はこれらの両方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行するプロセッサと、命令及びデータを記憶する1つ以上のメモリデバイスである。一般に、コンピュータはまた、例えば磁気ディスク、磁気光ディスク、又は光ディスクといった、データを記憶する1つ以上の大容量記憶装置を含むことになり、あるいは、それからデータを受信したり、それにデータを転送したり、これらの双方を行ったりするように動作的に結合されることになる。しかしながら、コンピュータは必ずしもそのような装置を有する必要はない。コンピュータプログラム命令及びデータを格納するのに適したコンピュータ読み取り可能媒体は、例として、例えばEPROM、EEPROM、及びフラッシュメモリデバイスといった半導体メモリデバイスを含め、あらゆる形態の不揮発性メモリ、媒体及びメモリデバイスを含む。プロセッサ及びメモリは、特殊目的の論理回路によって補われることができ、あるいはそれに組み込まれることができる。
【0133】
意図することには、例示的とは例を意味するとして、明細書は、図面と共に、単に例示的とみなされるものである。ここで使用されるとき、単数形の“a”、“an”及び“the”は、文脈が明らかに別のことを指し示していない限り、複数形も同様に含むことを意図している。さらに、“or”の使用は、文脈が明らかに別のことを指し示していない限り、“and/or”を含むことを意図している。
【0134】
この特許文献には数多くの詳細事項を含んでいるが、それらは、発明の範囲又は特許請求され得るものの範囲に対する限定として解釈されるべきでなく、むしろ、特定の発明の特定の実施形態に特有の特徴の説明と解釈されるべきである。この特許文献では別々の実施形態の文脈で記述されている複数の特定の機構が、単一の実施形態で組み合わせて実装されてもよい。逆に、単一の実施形態の文脈で記述されている様々な機構が、複数の実施形態で別々に実装されたり、又は任意の好適なサブコンビネーションで実装されたりしてもよい。また、複数の機構が、特定の組み合わせで動作するものとして上述され、さらには当初においてそのように特許請求されることがあるとしても、特許請求された組み合わせからの1つ以上の機構が、一部のケースで、その組み合わせから削除されてもよく、また、特許請求された組み合わせが、サブコンビネーション、又はサブコンビネーションのバリエーションに向けられてもよい。
【0135】
同様に、図面には特定の順序で動作が示されているが、これは、所望の結果を達成するために、そのような動作が図示した順序又は逐次的順序で実行されること、又は例示された全ての動作が実行されること、を必要とするものとして理解されるべきでない。また、この特許文献に記載される実施形態における様々なシステムコンポーネントの区別は、全ての実施形態においてそのような区別を必要とするものとして理解されるべきでない。
【0136】
ほんのわずかな実装及び例を記述したにすぎず、この特許文献に記載及び図示されたものに基づいて、他の実装、強化及び変更が行われ得る。