(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-08
(45)【発行日】2025-01-17
(54)【発明の名称】ビデオ処理方法、ビデオ処理装置および符号ストリーム生成方法
(51)【国際特許分類】
H04N 19/52 20140101AFI20250109BHJP
【FI】
H04N19/52
(21)【出願番号】P 2023121689
(22)【出願日】2023-07-26
(62)【分割の表示】P 2021537058の分割
【原出願日】2019-12-31
【審査請求日】2023-07-26
(31)【優先権主張番号】PCT/CN2019/070306
(32)【優先日】2019-01-03
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】513068816
【氏名又は名称】エスゼット ディージェイアイ テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】SZ DJI TECHNOLOGY CO.,LTD
【住所又は居所原語表記】6F,HKUST SZ IER Bldg.NO.9 Yuexing 1st Rd.Hi-Tech Park(South),Nanshan District Shenzhen,Guangdong 518057 China
(74)【代理人】
【識別番号】110002000
【氏名又は名称】弁理士法人栄光事務所
(72)【発明者】
【氏名】ジョン シャオジェン
(72)【発明者】
【氏名】ワン ソホン
(72)【発明者】
【氏名】マ スウェイ
(72)【発明者】
【氏名】ワン シャンシェ
【審査官】田中 崇大
(56)【参考文献】
【文献】国際公開第2018/231700(WO,A1)
【文献】特許第7328337(JP,B2)
【文献】特表2022-508074(JP,A)
【文献】CHEN, Jianle et al.,Algorithm description for Versatile Video Coding and Test Model 3 (VTM 3),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting: Macao, CN, 3-12 Oct. 2018,JVET-L1002 (version 2),ITU-T,2018年12月24日,P1,18,19,27-29
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/52
(57)【特許請求の範囲】
【請求項1】
ビデオ処理方法であって、
現在ブロックの目標参照フレームリストを決定することと、
前記現在ブロックの目標参照フレームリストに基づいて前記現在ブロックの時間動きベクトルを決定することと、
前記時間動きベクトルに基づいて前記現在ブロックのサブブロックの動き情報を決定することと、
前記現在ブロックのサブブロックの動き情報に基づいて前記現在ブロックに対してフレーム間予測を行うことと、を含み、
前記現在ブロックの時間動きベクトルを決定することが、
前記現在ブロック
の空間
左隣接ブロックの動きベクトルを決定することと、
前記現在ブロックの第1の参照フレームリストL0を走査し、前記第1の参照フレームリストL0中の前記空間
左隣接ブロックの参照フレームと
、前記現在ブロックのコロケーテッドフレームとが同じである場合、前記空間
左隣接ブロックの動きベクトルを前記時間動きベクトルに決定することと、
前記第1の参照フレームリストL0中の前記空間
左隣接ブロックの参照フレームと
、前記現在ブロックのコロケーテッドフレームとが異なる場合、
前記現在ブロックの第2の参照フレームリストL1を走査し、前記第2の参照フレームリストL1中の前記空間左隣接ブロックの参照フレームと、前記現在ブロックのコロケーテッドフレームとが同じである場合、前記空間左隣接ブロックの前記動きベクトルを前記時間動きベクトルに決定することと、
前記第2の参照フレームリストL1中の前記空間左隣接ブロックの前記参照フレームと、前記現在ブロックのコロケーテッドフレームとが異なる場合、前記時間動きベクトルを0ベクトルに決定することと、を含む、ビデオ処理方法。
【請求項2】
前記時間動きベクトルに基づいて前記現在ブロックのサブブロックの動き情報を決定することが、
前記時間動きベクトルに基づいて、前記現在ブロックの、参照フレームにおける対応ブロックを決定することと、
前記現在ブロックの、前記参照フレームにおける対応ブロックに基づいて、前記現在ブロックのサブブロックの動き情報を決定することと、
を含む、請求項1に記載の方法。
【請求項3】
前記現在ブロックの参照フレームリストに基づいて目標参照フレームリストを決定することが、
前記現在ブロックが所在する現在フレームに低遅延符号化モードを採用しており、かつ、前記現在フレームのコロケーテッドフレームが前記第2の参照フレームリスト
L1中の第1のフレームである場合、前記第2の参照フレームリスト
L1を前記目標参照フレームリストに決定することと、
前記現在ブロックが所在する現在フレームに低遅延符号化モードを採用していないか、または、前記現在フレームのコロケーテッドフレームが前記第2の参照フレームリスト
L1中の第1のフレームではない場合、前記第1の参照フレームリストを前記目標参照フレームリストに決定することと、
の少なくとも1つを含む、請求項1または請求項2に記載の方法。
【請求項4】
前記現在ブロックの目標参照フレームリストに基づいて前記現在ブロックの時間動きベクトルを決定することが、
前記現在ブロックの動きベクトル候補リストの中から1つ目の候補動きベクトルを選び取ることと、
前記目標参照フレームリストの中から前記1つ目の候補動きベクトルの参照フレームを探索することと、
前記1つ目の候補動きベクトルの参照フレームと前記現在ブロックのコロケーテッドフレームとが同じである場合に、前記1つ目の候補動きベクトルを前記時間動きベクトルに決定することと、
を含む、請求項1から請求項3のいずれか一項に記載の方法。
【請求項5】
前記現在ブロックの目標参照フレームリストに基づいて前記現在ブロックの時間動きベクトルを決定することが、
前記1つ目の候補動きベクトルの参照フレームと前記現在ブロックのコロケーテッドフレームとが異なる場合に、前記時間動きベクトルを0ベクトルに決定することをさらに含む、請求項4に記載の方法。
【請求項6】
前記現在ブロックに対してフレーム間予測を行うことが、
前記現在ブロックの予測ブロックを決定することと、
前記現在ブロックの初期ブロックと予測ブロックとに基づいて前記現在ブロックの残差ブロックを計算することと、
を含む、請求項1から請求項
5のいずれか一項に記載の方法。
【請求項7】
前記現在ブロックに対してフレーム間予測を行うことが、
前記現在ブロックの予測ブロックと残差ブロックとを決定することと、
前記現在ブロックの予測ブロックと残差ブロックとに基づいて前記現在ブロックの再構成ブロックを計算することと、
を含む、請求項1から請求項
5のいずれか一項に記載の方法。
【請求項8】
前記現在ブロックのサブブロックの動き情報に基づいて前記現在ブロックに対してフレーム間予測を行うことが、
前記現在ブロックのサブブロックを単位とし、前記現在ブロックのサブブロックの動き情報に基づいてフレーム間予測を行うことを含む、請求項1から請求項
7のいずれか一項に記載の方法。
【請求項9】
符号ストリーム生成方法であって、
現在ブロックの目標参照フレームリストを決定することと、
前記現在ブロックの目標参照フレームリストに基づいて前記現在ブロックの時間動きベクトルを決定することと、
前記時間動きベクトルに基づいて前記現在ブロックのサブブロックの動き情報を決定することと、
前記現在ブロックのサブブロックの動き情報に基づいて前記現在ブロックに対してフレーム間予測を行うことと、を含み、
前記現在ブロックの時間動きベクトルを決定することが、
前記現在ブロック
の空間
左隣接ブロックの動きベクトルを決定することと、
前記現在ブロックの第1の参照フレームリストL0を走査し、前記第1の参照フレームリストL0内の前記空間
左隣接ブロックの参照フレームと
、前記現在ブロックのコロケーテッドフレームとが同じである場合、前記空間
左隣接ブロックの動きベクトルを前記時間動きベクトルに決定することと、
前記第1の参照フレームリストL0内の前記空間
左隣接ブロックの参照フレームと
、前記現在ブロックのコロケーテッドフレームとが異なる場合、
前記現在ブロックの第2の参照フレームリストL1を走査し、前記第2の参照フレームリストL1内の前記空間左隣接ブロックの参照フレームと、前記現在ブロックのコロケーテッドフレームとが同じである場合、前記空間左隣接ブロックの前記動きベクトルを前記時間動きベクトルに決定することと、
前記第2の参照フレームリストL1内の前記空間左隣接ブロックの前記参照フレームと、前記現在ブロックのコロケーテッドフレームとが異なる場合、前記時間動きベクトルを0ベクトルに決定することと、
前記現在ブロックを符号化して符号ストリームを生成することと、を含み、前記符号ストリームは、動き情報のインデックスを含む、符号ストリーム生成方法。
【請求項10】
ビデオ処理装置であって、
コードを記憶するためのメモリと、
プロセッサであって、前記メモリに記憶されたコードを実行することで、
現在ブロックの目標参照フレームリストを決定することと、
前記現在ブロックの目標参照フレームリストに基づいて前記現在ブロックの時間動きベクトルを決定し、
前記時間動きベクトルに基づいて前記現在ブロックのサブブロックの動き情報を決定し、
前記現在ブロックのサブブロックの動き情報に基づいて前記現在ブロックに対してフレーム間予測を行う、操作を実行するためのプロセッサと、を含み、
前記現在ブロックの時間動きベクトルを決定することが、
前記現在ブロック
の空間
左隣接ブロックの動きベクトルを決定することと、
前記現在ブロックの第1の参照フレームリストL0を走査し、前記第1の参照フレームリストL0内の前記空間
左隣接ブロックの参照フレームと
、前記現在ブロックのコロケーテッドフレームとが同じである場合、前記空間
左隣接ブロックの動きベクトルを前記時間動きベクトルに決定することと、
前記第1の参照フレームリストL0内の前記空間
左隣接ブロックの参照フレームと
、前記現在ブロックのコロケーテッドフレームとが異なる場合、
前記現在ブロックの第2の参照フレームリストL1を走査し、前記第2の参照フレームリストL1内の前記空間左隣接ブロックの参照フレームと、前記現在ブロックのコロケーテッドフレームとが同じである場合、前記空間左隣接ブロックの前記動きベクトルを前記時間動きベクトルに決定することと、
前記第2の参照フレームリストL1内の前記空間左隣接ブロックの前記参照フレームと、前記現在ブロックのコロケーテッドフレームとが異なる場合、前記時間動きベクトルを0ベクトルに決定することと、を含む、ビデオ処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
著作権に関する声明
本特許文書が開示する内容は、著作権保護を受ける資料を含む。この著作権は著作権所有者が所有する。著作権所有者は、いかなる人が、特許商標局の公式記録および書類の中に存在するこの特許文書もしくはこの特許開示を複製することにも反対しない。
【0002】
本願はビデオ符号化復号の分野に関し、かつ、より具体的には、ビデオ処理方法、ビデオ処理装置および符号ストリーム生成方法に関する。
【背景技術】
【0003】
ビデオ符号化プロセスはフレーム間予測プロセスを含む。フレーム間予測のモードはmergeモードと非mergeモードとを含む。mergeモードでは通常、まず、mergeモードの動きベクトル候補リストを構築するとともに、mergeモードの動きベクトル候補リストの中から現在ブロックの動きベクトルを選び取らなければならない。現在ブロックは、現在符号化ユニット(coding unit,CU)と称してもよい。
【0004】
符号化技術が発展するのに伴い、フレーム間予測方式に代替/高度時間動きベクトル予測(alternative/advanced temporal motion vector prediction,ATMVP)技術が導入されている。ATMVP技術では、現在ブロックが複数のサブブロックに区分され、サブブロックの動き情報を計算する。ATMVP技術は、サブブロックレベルの動きベクトル予測を導入することで、ビデオの全体的符号化性能を向上させることを目的とする。
【0005】
ATMVP技術を利用して現在ブロックのサブブロックの動き情報を探すプロセスは比較的複雑であり、いくつかの冗長な操作が存在しており、このプロセスには改良の余地が依然としてある。
【発明の概要】
【課題を解決するための手段】
【0006】
本願は、符号化復号操作を簡略化することができるビデオ処理方法、ビデオ処理装置および符号ストリーム生成方法を提供する。
【0007】
第1の態様では、現在ブロックの時間動きベクトルを決定することと、前記時間動きベクトルに基づいて前記現在ブロックのサブブロックの動き情報を決定することと、前記現在ブロックのサブブロックの動き情報に基づいて前記現在ブロックに対してフレーム間予測を行うことと、を含み、前記現在ブロックの時間動きベクトルを決定することが、前記現在ブロックの1つの特定位置の空間隣接ブロックの動きベクトルを決定することと、前記空間隣接ブロックの参照フレームと前記現在ブロックのコロケーテッドフレームとが同じである場合、前記空間隣接ブロックの動きベクトルを前記時間動きベクトルに決定することと、前記空間隣接ブロックの参照フレームと前記現在ブロックのコロケーテッドフレームとが異なる場合、前記時間動きベクトルを0ベクトルに決定することと、を含む、ビデオ処理方法を提供する。
【0008】
第2の態様では、コードを記憶するためのメモリと、プロセッサであって、前記メモリに記憶されたコードを実行することで、現在ブロックの時間動きベクトルを決定し、前記時間動きベクトルに基づいて前記現在ブロックのサブブロックの動き情報を決定し、前記現在ブロックのサブブロックの動き情報に基づいて前記現在ブロックに対してフレーム間予測を行う操作を実行するためのプロセッサと、を含み、前記現在ブロックの時間動きベクトルを決定することが、前記現在ブロックの1つの特定位置の空間隣接ブロックの動きベクトルを決定することと、前記空間隣接ブロックの参照フレームと前記現在ブロックのコロケーテッドフレームとが同じである場合、前記空間隣接ブロックの動きベクトルを前記時間動きベクトルに決定することと、前記空間隣接ブロックの参照フレームと前記現在ブロックのコロケーテッドフレームとが異なる場合、前記時間動きベクトルを0ベクトルに決定することと、を含む、ビデオ処理装置を提供する。
【0009】
第3の態様では、第1の態様における方法を実行するための指令を記憶したコンピュータ読取可能記憶媒体を提供する。
【0010】
第4の態様では、第1の態様における方法を実行するための指令を含むコンピュータプログラム製品を提供する。
【0011】
第5の態様では、現在ブロックの時間動きベクトルを決定することと、前記時間動きベクトルに基づいて前記現在ブロックのサブブロックの動き情報を決定することと、前記現在ブロックのサブブロックの動き情報に基づいて前記現在ブロックに対してフレーム間予測を行うことと、を含み、前記現在ブロックの時間動きベクトルを決定することが、前記現在ブロックの1つの特定位置の空間隣接ブロックの動きベクトルを決定することと、前記空間隣接ブロックの参照フレームと前記現在ブロックのコロケーテッドフレームとが同じである場合、前記空間隣接ブロックの動きベクトルを前記時間動きベクトルに決定することと、前記空間隣接ブロックの参照フレームと前記現在ブロックのコロケーテッドフレームとが異なる場合、前記時間動きベクトルを0ベクトルに決定することと、前記現在ブロックを符号化して符号ストリームを生成することと、を含み、前記符号ストリームは、動き情報のインデックスを含む、符号ストリーム生成方法を提供する。
【0012】
双方向予測プロセスにおいて走査しなければならない参照フレームリストの数を制限することによって、符号化復号操作を簡略化することができる。
【図面の簡単な説明】
【0013】
【
図1】affine merge candidate listを構成するフローチャートである。
【
図2】現在ブロックの周辺ブロックの概略図である。
【
図3】ATMVPの実現プロセスのフローチャートである。
【
図4】現在ブロックのサブブロックの動き情報の取得方式の例を示す図である。
【
図5】本願の実施例が提供するビデオ処理方法のフローの概略図である。
【
図6】本願の実施例が提供するビデオ処理装置の構造概略図である。
【発明を実施するための形態】
【0014】
本願は、H.264、高効率ビデオ符号化(high efficiency video coding,HEVC)、多用途ビデオ符号化(versatile video coding,VVC)、音声・ビデオ符号化規格(audio video coding standard,AVS)、AVS+、AVS2、およびAVS3など、複数種のビデオ符号化規格に応用することができる。
【0015】
ビデオ符号化プロセスは、予測、変換、量子化、エントロピー符号化、ループフィルタリング等の部分を主に含む。予測は主流のビデオ符号化技術の重要な構成部分である。予測はフレーム内予測とフレーム間予測とに分けることができる。フレーム間予測は動き補償の方式によって実現することができる。以下、動き補償プロセスについて、例を挙げて説明する。
【0016】
例えば、1フレームの画像に対して、まず、それを1つまたは複数の符号化領域に区分することができる。この符号化領域は符号化ツリーユニット(coding tree unit,CTU)とも称することができる。CTUのサイズは例えば64×64であってよく、128×128であってもよい(単位はピクセル。以降の類似する記述についてはいずれも単位を省略する)。各々のCTUは、方形または矩形の画像ブロックに区分することができる。この画像ブロックは符号化ユニット(coding unit,CU)とも称することができ、以降、符号化すべき現在CUを現在ブロックと称する。
【0017】
現在ブロックに対してフレーム間予測を行う際には、参照フレーム(時間領域近傍の再構成されたフレームであってよい)から、現在ブロックの予測ブロックとして現在ブロックの相似ブロックを探すことができる。現在ブロックと相似ブロックとの間の相対的変位を動きベクトル(motion vector,MV)と称する。参照フレームの中で現在ブロックの予測ブロックとして相似ブロックを探すプロセスが、すなわち動き補償である。
【0018】
フレーム間予測モードはmergeモードと非mergeモードとを含む。mergeモードでは、画像ブロックの動きベクトル(motion vector,MV)が、すなわち画像ブロックの動きベクトル予測(motion vector prediction,MVP)である。従って、mergeモードについては、符合ストリームの中でMVPのインデックスおよび参照フレームのインデックスを伝送すればよい。これに対し非mergeモードは、符合ストリームの中でMVPと参照フレームのインデックスとを伝送しなければならないだけでなく、符合ストリームの中で動きベクトル差分(motion vector difference,MVD)も伝送しなければならない。
【0019】
従来の動きベクトルが採用しているのは簡単な平行移動モデルであり、つまり、現在ブロックの動きベクトルが表すのは、現在ブロックと参照ブロックとの間の相対的変位である。このようなタイプの動きベクトルは、スケーリング、回転、透視など、ビデオ中の、より複雑な動き状況を正確に記述するのが困難である。より複雑な動き状況を記述できるように、関連する符号化復号規格にアフィンモデル(affineモデル)が導入された。アフィンモデルは、現在ブロックの2つまたは3つの制御点(control point,CP)の動きベクトルを利用して現在ブロックのアフィン動き場を記述する。この2つの制御点は、例えば、現在ブロックの左上角および右上角であってよく、この3つの制御点は、例えば、現在ブロックの左上角、右上角および左下角であってよい。
【0020】
アフィンモデルと、先に言及したmergeモードとを結合させて、affine mergeモードを形成する。普通、mergeモードの動きベクトル候補リスト(merge candidate list)に記録されるのは画像ブロックのMVPであり、affine mergeモードの動きベクトル候補リスト(affine merge candidate list)に記録されるのは制御点動きベクトル予測(control point motion vector prediction,CPMVP)である。普通のmergeモードと同様に、affine mergeモードは符合ストリームにMVDを加える必要がなく、CPMVPをそのまま現在ブロックのCPMVとする。
【0021】
現在ブロックのaffine merge candidate listの構成は、affine mergeモードの重要なプロセスの1つである。
図1に、affine merge candidate list(アフィンマージ候補リスト)の1つの可能な構成方式を示している。
【0022】
ステップS110では、現在ブロックのaffine merge candidate listにATMVPを挿入する。
【0023】
ATMVPに含まれるのは、現在ブロックのサブブロックの動き情報である。換言すれば、ATMVP技術を採用する場合、affine merge candidate listが現在ブロックのサブブロックの動き情報に挿入され、affine mergeモードがサブブロックというレベルで動き補償を行うことができるようにすることにより、ビデオの全体的符号化性能を向上させる。
図3を参照しながらステップS110の実施形態について後で詳しく記述するが、ここでは差し当たり詳述しない。
【0024】
前記動き情報は、動きベクトル、動きベクトル差分、参照フレームインデックス値、フレーム間予測の参照方向、画像ブロックにフレーム内符号化またはフレーム間符号化を採用する情報、画像ブロックの区分モード、のうち1種または複数種の情報の組み合わせを含む。
【0025】
ステップS120では、affine merge candidate listに、継承するaffine candidatesを挿入する。
【0026】
例えば、
図2に示すように、A1→B1→B0→A0→B2の順に現在ブロックの周辺ブロックを走査し、affine mergeモードの周辺ブロックのCPMVを現在ブロックのaffine candidatesとして採用し、現在ブロックのaffine merge candidate listに挿入することができる。
【0027】
ステップS130では、affine merge candidate listの中のaffine candidatesの数が所定値よりも小さいかどうか判断する。
【0028】
affine merge candidate listの中のaffine candidatesの数が所定値に達している場合、
図1のフローを終了し、affine merge candidate listの中のaffine candidatesの数が所定値よりも小さい場合、ステップS140を引き続き実行する。
【0029】
ステップS140は、affine merge candidate listに、構成するaffine candidatesを挿入する。
【0030】
例えば、現在ブロックの周辺ブロックの動き情報を組み合わせることで、新たなaffine candidatesを構成するとともに、構成して生成したaffine candidatesをaffine merge candidate listに挿入することができる。
【0031】
ステップS150では、affine merge candidate listの中のaffine candidatesの数が所定値よりも小さいかどうか判断する。
【0032】
affine merge candidate listの中のaffine candidatesの数が所定値に達している場合、
図1のフローを終了し、affine merge candidate listの中のaffine candidatesの数が所定値よりも小さい場合、ステップS160を引き続き実行する。
【0033】
ステップS160では、affine merge candidate listに0ベクトルを挿入する。
【0034】
換言すれば、0ベクトルを使用してaffine merge candidate listを充填(padding)して、所定値に達するようにする。
【0035】
以下、
図3を参照しながら、
図1中のステップS110の実施形態について、詳しく例を挙げて説明する。いくつかの例においては、以下で説明する、現在ブロックのaffine merge candidate listにATMVPを挿入する方法が、上記の
図1に示す実施例に限定されなくてもよい。
【0036】
図3に示すように、ATVMP技術の実施形態、すなわち現在ブロックのサブブロックの動き情報の取得方式は、ステップS310およびS320という2つのステップに大まかに分けることができる。
【0037】
ステップS310においては、現在ブロックの、参照フレームにおける対応ブロック(corresponding block)を決定する。
【0038】
現在のATMVP技術においては、現在フレーム(現在ブロックが所在するフレーム)の、動き情報を取得するためのフレームは、コロケーテッドフレーム(co-located picture)と称される。現在フレームのコロケーテッドフレームはslice(スライス)の初期化時に設定される。前方予測を例にすると、第1の参照フレームリストは前方参照フレームリストであってよく、第1の組の参照フレームを含んだ参照フレームリストであってもよい。前記第1の組の参照フレームに、時間的順序が現在フレームの前および現在フレームの後である参照フレームが含まれている。sliceの初期化時に、通常は、現在ブロックの第1の参照フレームリスト中の第1のフレームを現在フレームのコロケーテッドフレームに設定する。
【0039】
現在ブロックの、参照フレームにおける対応ブロックは、1つの時間動きベクトル(temp MV)によって決定される。従って、現在ブロックの、参照フレームにおける対応ブロックを得るため、まず、この時間動きベクトルを導出しなければならない。次に、それぞれ前方予測および双方向予測を例にして、時間動きベクトルの導出プロセスについて説明する。
【0040】
前方予測については、現在ブロックの参照フレームリスト(参照リストまたは参照画像リストと称することもできる)の個数は1である。現在ブロックの参照フレームリストは、第1の参照フレームリスト(reference list 0)と称することができる。1つの場面では、この第1の参照フレームリストは前方参照フレームリストであってよい。現在フレームのコロケーテッドフレームは通常、第1の参照フレームリスト中の第1のフレームに設定される。
【0041】
時間動きベクトルを導出するプロセスにおいて、1つの実施形態は次の通りである:まず、現在ブロックの動きベクトル候補リスト(この動きベクトル候補リストは、空間領域の4つの隣接する位置の画像ブロックの動きベクトルに基づいて構築することができる)を走査し、この動きベクトル候補リスト中の1つ目の候補動きベクトルを、初期の時間動きベクトルとする。その後、現在ブロックの第1の参照フレームリストを走査し、この1つ目の候補動きベクトルの参照フレームが現在フレームのコロケーテッドフレームと同じであれば、この1つ目の候補動きベクトルを時間動きベクトルとすることができ、この1つ目の候補動きベクトルの参照フレームが現在フレームのコロケーテッドフレームと異なっていれば、時間動きベクトルを0ベクトルに設定し、走査を停止することができる。
【0042】
この実施形態では、動きベクトル候補リストを構築することで、リスト中の1つ目の候補動きベクトルを得なければならない。別の実施形態では、現在ブロックの、ある1つの空間隣接ブロックの動きベクトルを、初期の時間動きベクトルとして直接取ることができる。この空間隣接ブロックの動きベクトルの参照フレームが現在フレームのコロケーテッドフレームと同じであれば、それを時間動きベクトルとすることができ、そうでない場合、時間動きベクトルを0ベクトルに設定し、走査を停止することができる。ここで、空間隣接ブロックは、現在ブロック周辺の符号化されたブロックのうちいずれか1つであってよい。例えば、現在ブロックの左側ブロックに固定されるか、または、現在ブロックの上方ブロックに固定されるか、または、現在ブロックの左上ブロックに固定されてもよい。
【0043】
双方向予測については、現在ブロックの参照フレームリストの個数は2であり、すなわち、第1の参照フレームリスト(reference list 0)と第2の参照フレームリスト(reference list 1)とを含む。そのうち、1つの場面では、第1の参照フレームリストは前方参照フレームリストであってよく、第2の参照フレームリストは後方参照フレームリストであってよい。
【0044】
時間動きベクトルを導出するプロセスにおいて、1つの実施形態は次の通りである:まず、現在の動きベクトル候補リストを走査し、この動きベクトル候補リスト中の1つ目の候補動きベクトルを、初期の時間動きベクトルとする。その後、まず、現在ブロックの、現在の参照方向における1つの参照フレームリスト(第1の参照フレームリストであってよく、第2の参照フレームリストであってもよい)を走査し、この1つ目の候補動きベクトルの参照フレームが現在フレームのコロケーテッドフレームと同じであれば、この1つ目の候補動きベクトルを時間動きベクトルとすることができ、この1つ目の候補動きベクトルの参照フレームが現在フレームのコロケーテッドフレームと異なっていれば、現在ブロックの、別の参照方向における参照フレームリストを引き続き走査する。同様に、1つ目の候補動きベクトルの、この別の参照フレームリストにおける参照フレームが、現在フレームのコロケーテッドフレームと同じであれば、この1つ目の候補動きベクトルを時間動きベクトルとすることができ、この1つ目の候補動きベクトルの参照フレームが現在フレームのコロケーテッドフレームと異なっていれば、時間動きベクトルを0ベクトルに設定し、走査を停止することができる。なお、他のいくつかの場面で、第1の参照フレームリストおよび第2の参照フレームリストがいずれも、時間的順序が現在フレームの前および現在フレームの後である参照フレームを含んでいてよく、前記双方向予測は、第1の参照フレームリストおよび第2の参照フレームリストから、参照方向が異なる参照フレームを選択していることを指す。
【0045】
この実施形態では、双方向予測においてATMVPのtemp MVを導出するには、依然として動きベクトル候補リストを構築する必要がある。別の実施形態では、現在ブロックの、ある1つの空間隣接ブロックの動きベクトルを、初期の時間動きベクトルとして直接取ることができる。双方向予測については、まず、現在ブロックの、現在の参照方向における1つの参照フレームリスト(第1の参照フレームリストであってよく、第2の参照フレームリストであってもよい)を走査し、この空間隣接ブロックの動きベクトルの、この参照方向における参照フレームが、現在フレームのコロケーテッドフレームと同じであれば、それを時間動きベクトルとすることができる。任意には、この空間隣接ブロックの動きベクトルの、この参照方向における参照フレームが、現在フレームのコロケーテッドフレームと異なっていれば、現在ブロックの、別の参照方向における参照フレームリストを引き続き走査する。同様に、この空間隣接ブロックの動きベクトルの、この別の参照フレームリストにおける参照フレームが、現在フレームのコロケーテッドフレームと同じであれば、この空間隣接ブロックの動きベクトルを時間動きベクトルとすることができ、この空間隣接ブロックの動きベクトルの参照フレームが現在フレームのコロケーテッドフレームと異なっていれば、時間動きベクトルを0ベクトルに設定し、走査を停止することができる。ここで、空間隣接ブロックは、現在ブロック周辺の符号化されたブロックのうちいずれか1つであってよい。例えば、現在ブロックの左側ブロックに固定されるか、または、現在ブロックの上方ブロックに固定されるか、または、現在ブロックの左上ブロックに固定されてもよい。
【0046】
双方向予測については、第1の参照フレームリストおよび第2の参照フレームリストの走査順序は、以下の規則により決定することができる。
【0047】
現在フレームに採用されているのが低遅延(low delay)符号化モードであり、かつ、現在フレームのコロケーテッドフレームが第2の参照フレームリスト中の第1のフレームに設定されている場合には、まず、第2の参照フレームリストを走査し、そうでない場合、まず、第1の参照フレームリストを走査する。
【0048】
ここで、現在フレームに低遅延(low delay)符号化モードを採用すれば、現在フレームの参照フレームの、ビデオシーケンスにおける再生順序がいずれも現在フレームの前にあることを表すことができ、現在フレームのコロケーテッドフレームが第2の参照フレームリスト中の第1のフレームに設定されていれば、現在フレームの第1の参照フレームリストの1つ目のsliceの量子化ステップサイズが第2の参照フレームリストの1つ目のsliceの量子化ステップサイズよりも小さいことを表すことができる。
【0049】
時間動きベクトルを導出した後、この時間動きベクトルを利用して参照フレームの中で現在ブロックの対応ブロックを探し出すことができる。
【0050】
ステップS320においては、現在ブロックの対応ブロックに基づいて、現在ブロックのサブブロックの動き情報を取得する。
【0051】
図4に示すように、現在ブロックを複数のサブブロックに区分し、その後、サブブロックの、対応ブロックにおける動き情報を決定することができる。注意するに値するのは、個々のサブブロックについては、対応ブロックの動き情報は、その所在する最小動き情報記憶ユニットにより決定することができるという点である。
【0052】
前記動き情報は、動きベクトル、動きベクトル差分、参照フレームインデックス値、フレーム間予測の参照方向、画像ブロックにフレーム内符号化またはフレーム間符号化を採用する情報、画像ブロックの区分モード、のうち1種または複数種の情報の組み合わせを含む。
【0053】
図3に描かれたATMVPの実現プロセスから、双方向予測については、最も悪い状況は、時間動きベクトルを導出するプロセスにおいて、2つの参照フレームリストに対していずれも走査を行っても、条件に適合する時間動きベクトルが依然として導出されていないというものであり、このような状況においては、2つの参照フレームリストに対する走査は冗長であることが分かる。
【0054】
また、双方向予測において、現在フレームの符号化モードが低遅延モード(low delay B)またはランダムアクセスモード(random access)であれば、第1の参照フレームリストと第2の参照フレームリストとにおける参照フレームにある程度の重畳があり得るため、時間動きベクトルを取得するプロセスにおいて、2つの参照フレームリストに対する走査プロセスに冗長な操作が存在し得る。
【0055】
従って、関連技術が双方向予測に対して提供する時間動きベクトル導出案は比較的複雑であり、改善の余地がある。
【0056】
次に、
図5を参照しながら、本願の実施例について詳述する。
【0057】
図5は、本願の実施例が提供するビデオ処理方法の概略的フローチャートである。
図5の方法は符号化側に応用可能であり、復号側にも応用可能である。
【0058】
ステップS510では、第1の参照フレームリストと第2の参照フレームリストとを含む現在ブロックの参照フレームリストを取得する。
【0059】
現在ブロックは現在CUとも称することができる。現在ブロックの参照フレームリストは第1の参照フレームリストと第2の参照フレームリストとを含み、現在ブロックが実行しようとするのはフレーム間の双方向予測であることを表す。
【0060】
任意には、前記第1の参照フレームリストは前方参照フレームリストであってよく、第1の組の参照フレームを含んだ参照フレームリストであってもよい。前記第1の組の参照フレームに、時間的順序が現在フレームの前および現在フレームの後である参照フレームが含まれている。
【0061】
任意には、前記第2の参照フレームリストは後方参照フレームリストであってよく、第2の組の参照フレームを含んだ参照フレームリストであってもよい。前記第2の組の参照フレームに、時間的順序が現在フレームの前および現在フレームの後である参照フレームが含まれている。
【0062】
注意を要するのは、いくつかの場面で、第1の参照フレームリストおよび第2の参照フレームリストがいずれも、時間的順序が現在フレームの前および現在フレームの後である参照フレームを含んでいてよく、前記双方向予測は、第1の参照フレームリストおよび第2の参照フレームリストから、参照方向が異なる参照フレームを選択していることを指すことができるという点である。
【0063】
ステップS520では、現在ブロックの参照フレームリストに基づいて目標参照フレームリストを決定する。
【0064】
目標参照フレームリストは、第1の参照フレームリストと第2の参照フレームリストとの一方である。この目標参照フレームリストはランダムに選び取ってよく、一定の規則に基づいて選び取ってもよい。例えば、次のような規則に基づいて選び取ってよい。つまり、現在ブロックが所在する現在フレームに低遅延符号化モードを採用しており、かつ、現在フレームのコロケーテッドフレームが第2の参照フレームリスト中の第1のフレームである場合、第2の参照フレームリストを目標参照フレームリストに決定するか、現在ブロックが所在する現在フレームに低遅延符号化モードを採用していないか、または、現在フレームのコロケーテッドフレームが第2の参照フレームリスト中の第1のフレームではない場合、第1の参照フレームリストを目標参照フレームリストに決定するかの少なくとも1つである。
【0065】
ステップS530では、現在ブロックの目標参照フレームリストに基づいて現在ブロックの時間動きベクトルを決定する。
【0066】
双方向予測プロセスにおいては、本願の実施例は、第1の参照フレームリストと第2の参照フレームリストとのうち一方の参照フレームリストに基づいて現在ブロックの時間動きベクトルを決定する。換言すれば、目標参照フレームリストから時間動きベクトルを導出することができるか否かにかかわらず、目標参照フレームリストを走査し終えた後、直ちに走査を停止する。換言すれば、目標参照フレームリストのみに基づいて現在ブロックの時間動きベクトルを決定することができる。
【0067】
例を挙げて説明すると、まず、現在の動きベクトル候補リスト(この動きベクトル候補リストは、空間領域の4つの隣接する位置の画像ブロックの動きベクトルに基づいて構築することができる)から、1つ目の候補動きベクトルを選び取ることができ、目標参照フレームリストから、1つ目の候補動きベクトルの参照フレームを探索し、1つ目の候補動きベクトルの参照フレームと現在ブロックのコロケーテッドフレームとが同じである場合に、1つ目の候補動きベクトルを時間動きベクトルに決定することができ、1つ目の候補動きベクトルの参照フレームと現在ブロックのコロケーテッドフレームとが異なる場合にも走査を停止し、
図3の実施例において描かれたように現在ブロックの別の参照フレームリストを引き続き走査しない。このような状況で、0ベクトルを現在ブロックの時間動きベクトルとすることができる。
【0068】
ステップS540では、時間動きベクトルに基づいて現在ブロックのサブブロックの動き情報を決定する。
【0069】
例えば、時間動きベクトルに基づいて、現在ブロックの、参照フレームにおける対応ブロックを決定することができる。その後、現在ブロックの、参照フレームにおける対応ブロックに基づいて現在ブロックのサブブロックの動き情報を決定することができる。前記動き情報は、動きベクトル、動きベクトル差分、参照フレームインデックス値、フレーム間予測の参照方向、画像ブロックにフレーム内符号化またはフレーム間符号化を採用する情報、画像ブロックの区分モードのうち1種または複数種の情報の組み合わせを含む。ステップS540は、上記のうちステップS320を参照して実現することができ、ここでは再び詳述しない。
【0070】
ステップS550では、現在ブロックのサブブロックの動き情報に基づいて現在ブロックに対してフレーム間予測を行う。
【0071】
一例として、ステップS550は、現在ブロックのサブブロックを単位とし、現在ブロックのサブブロックの動き情報に基づいてフレーム間予測を行うことを含むことができる。
【0072】
例えば、
図1に示すように、現在ブロックのサブブロックの動き情報をATMVPとして現在ブロックのaffine merge candidates listに挿入し、その後、
図1中のステップS120~ステップS160のように、完全なaffine merge candidates listを構成することができる。続いて、このaffine merge candidates listの中の候補動きベクトルを利用し、現在ブロックに対してフレーム間予測を行うことで、最も優れた候補動きベクトルを決定することができる。ステップS550の詳細な実施形態は関連技術を参照して実行することができ、本願の実施例は、これを限定しない。
【0073】
本願の実施例は、双方向予測プロセスにおいて走査しなければならない参照フレームリストの数を制限することによって、符号化復号側の操作を簡略化することができる。
【0074】
理解可能なのは、
図5の方法をそれぞれ符号化側と復号側とに応用するとき、ステップS550で記述された、現在ブロックに対するフレーム間予測プロセスに違いがあり得るという点である。例えば、
図5の方法を符号化側に応用するとき、現在ブロックに対してフレーム間予測を行うことが、現在ブロックの予測ブロックを決定することと、現在ブロックの初期ブロックおよび予測ブロックに基づいて現在ブロックの残差ブロックを計算することと、を含んでいてよい。また、
図5の方法を復号側に応用するとき、現在ブロックに対してフレーム間予測を行うことが、現在ブロックの予測ブロックおよび残差ブロックを決定することと、現在ブロックの予測ブロックおよび残差ブロックに基づいて現在ブロックの再構成ブロックを計算することと、を含んでいてよい。
【0075】
以上、
図1~
図5を参照しながら、本願の方法の実施例について詳述した。以下、
図6を参照しながら、本願の装置の実施例について詳述する。方法の実施例の記述と装置の実施例の記述とは互いに対応しており、従って、詳述されていない部分については先の方法の実施例を参照可能であることを理解しなければならない。
【0076】
図6は、本願の実施例が提供するビデオ処理装置の概略的構造図である。
図6の装置60は、メモリ62とプロセッサ64とを備える。
【0077】
メモリ62はコードを記憶するために用いることができる。
【0078】
プロセッサ64は、前記メモリに記憶されたコードを実行することで、以下の操作を実行するために用いることができる:第1の参照フレームリストと第2の参照フレームリストとを含む現在ブロックの参照フレームリストを取得し、前記現在ブロックの参照フレームリストに基づいて、前記第1の参照フレームリストと前記第2の参照フレームリストとの一方である目標参照フレームリストを決定し、前記現在ブロックの目標参照フレームリストに基づいて前記現在ブロックの時間動きベクトルを決定し、前記時間動きベクトルに基づいて前記現在ブロックのサブブロックの動き情報を決定し、前記現在ブロックのサブブロックの動き情報に基づいて前記現在ブロックに対してフレーム間予測を行う。
【0079】
任意には、前記時間動きベクトルに基づいて前記現在ブロックのサブブロックの動き情報を決定することが、前記時間動きベクトルに基づいて、前記現在ブロックの、参照フレームにおける対応ブロックを決定することと、前記現在ブロックの、前記参照フレームにおける対応ブロックに基づいて、前記現在ブロックのサブブロックの動き情報を決定することと、を含む。
【0080】
任意には、前記現在ブロックの参照フレームリストに基づいて目標参照フレームリストを決定することが、前記現在ブロックが所在する現在フレームに低遅延符号化モードを採用しており、かつ、前記現在フレームのコロケーテッドフレームが前記第2の参照フレームリスト中の第1のフレームである場合、前記第2の参照フレームリストを前記目標参照フレームリストに決定することと、前記現在ブロックが所在する現在フレームに低遅延符号化モードを採用していないか、または、前記現在フレームのコロケーテッドフレームが前記第2の参照フレームリスト中の第1のフレームではない場合、前記第1の参照フレームリストを前記目標参照フレームリストに決定することと、の少なくとも1つを含む。
【0081】
任意には、前記第1の参照フレームリストは前方参照フレームリストであってよく、第1の組の参照フレームを含んだ参照フレームリストであってもよい。前記第1の組の参照フレームに、時間的順序が現在フレームの前および現在フレームの後である参照フレームが含まれている。
【0082】
任意には、前記第2の参照フレームリストは後方参照フレームリストであってよく、第2の組の参照フレームを含んだ参照フレームリストであってもよい。前記第2の組の参照フレームに、時間的順序が現在フレームの前および現在フレームの後である参照フレームが含まれている。
【0083】
注意を要するのは、いくつかの場面で、第1の参照フレームリストおよび第2の参照フレームリストがいずれも、時間的順序が現在フレームの前および現在フレームの後である参照フレームを含んでいてよく、前記双方向予測は、第1の参照フレームリストおよび第2の参照フレームリストから、参照方向が異なる参照フレームを選択していることを指すことができるという点である。
【0084】
任意には、前記現在ブロックの目標参照フレームリストに基づいて前記現在ブロックの時間動きベクトルを決定することが、前記現在の動きベクトル候補リストの中から1つ目の候補動きベクトルを選び取ることと、前記目標参照フレームリストの中から前記1つ目の候補動きベクトルの参照フレームを探索することと、前記1つ目の候補動きベクトルの参照フレームと前記現在ブロックのコロケーテッドフレームとが同じである場合に、前記1つ目の候補動きベクトルを前記時間動きベクトルに決定することと、を含む。
【0085】
任意には、前記現在ブロックの目標参照フレームリストに基づいて前記現在ブロックの時間動きベクトルを決定することが、前記1つ目の候補動きベクトルの参照フレームと前記現在ブロックのコロケーテッドフレームとが異なる場合に、前記時間動きベクトルを0ベクトルに決定することをさらに含む。
【0086】
任意には、前記現在ブロックに対してフレーム間予測を行うことが、前記現在ブロックの予測ブロックを決定することと、前記現在ブロックの初期ブロックと予測ブロックとに基づいて前記現在ブロックの残差ブロックを計算することと、を含む。
【0087】
任意には、前記現在ブロックに対してフレーム間予測を行うことが、前記現在ブロックの予測ブロックと残差ブロックとを決定することと、前記現在ブロックの予測ブロックと残差ブロックとに基づいて前記現在ブロックの再構成ブロックを計算することと、を含む。
【0088】
任意には、前記現在ブロックのサブブロックの動き情報に基づいて前記現在ブロックに対してフレーム間予測を行うことが、前記現在ブロックのサブブロックを単位とし、前記現在ブロックのサブブロックの動き情報に基づいてフレーム間予測を行うことを含むことができる。
【0089】
上記の実施例において、ソフトウェア、ハードウェア、ファームウェアもしくは他の任意の組み合わせによって、すべてまたは部分的に実現することができる。ソフトウェアを使用して実現する場合、コンピュータプログラム製品の形ですべてまたは部分的に実現することができる。前記コンピュータプログラム製品は1つまたは複数のコンピュータ指令を含む。前記コンピュータプログラム指令をコンピュータにロードして実行する際に、本発明の実施例に記載されたフローまたは機能をすべてまたは部分的に生成する。前記コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、もしくは他のプログラマブル装置であってよい。前記コンピュータ指令はコンピュータ読取可能記憶媒体に記憶するか、もしくは、1つのコンピュータ読取可能記憶媒体から別のコンピュータ読取可能記憶媒体に伝送することができる。例えば、前記コンピュータ指令は、1つのウェブサイト、コンピュータ、サーバまたはデータセンタから、有線(例えば同軸ケーブル、光ファイバ、デジタル加入者線(digital subscriber line,DSL))または無線(例えば赤外線、無線、マイクロ波等)の方式によって、別のウェブサイト、コンピュータ、サーバまたはデータセンタへ伝送することができる。前記コンピュータ読取可能記憶媒体は、コンピュータがアクセス可能な何らかの使用可能媒体であるか、もしくは、1つまたは複数の使用可能媒体を含むサーバ、データセンタ等のデータ記憶デバイスであってよい。前記使用可能媒体は、磁性媒体(例えば、フロッピーディスク、ハードディスク、磁気テープ)、光媒体(例えばデジタルビデオディスク(digital video disc,DVD))、もしくは半導体媒体(例えばソリッドステートディスク(solid state disk,SSD))等であってよい。
【0090】
当業者は、ここで開示された実施例で記述された各例のユニットおよびアルゴリズムステップを組み合わせれば、電子ハードウェア、もしくはコンピュータソフトウェアと電子ハードウェアの結合により実現することができることを想到可能である。これらの機能を、最終的にハードウェアとソフトウェアのいずれにより実行するかは、技術的解決策の特定の応用および設計制約条件に応じて決まる。当業者は、個々の特定の応用に対して異なる方法を使用して、記述された機能を実現することができるが、このような実現は、本願の範囲から逸脱すると見なされてはならない。
【0091】
本願が提供するいくつかの実施例では、開示されたシステム、装置および方法は、他の方式によって実現可能であることを理解しなければならない。例えば、上述の装置の実施例は概略的なものであるに過ぎず、例えば、前記ユニットの区分は論理機能的区分であるに過ぎず、実際に実現する際には別の区分方式があってよく、例えば、複数のユニットまたはアセンブリは結合させるか、もしくは、別のシステムに一体化してよい。もしくは、いくつかの特徴は、無視するかまたは実行しなくてもよい。別の点については、表示または検討される相互間の結合または直接的な結合または通信接続は、いくつかのインターフェイス、装置またはユニットを介した間接的な結合または通信接続であってよく、電気的、機械的または他の形式であってよい。
【0092】
上記の、分離部品として説明したユニットは、物理的に分離されたものであってもなくてもよく、ユニットとして表示される部品は物理ユニットであってもなくてもよく、すなわち、1つの場所に位置するか、もしくは、複数のネットワークユニット上に分布していてもよい。実際のニーズに応じて、そのうちの一部もしくはすべてのユニットを選択することにより、本実施例の解決策の目的を実現することができる。
【0093】
また、本願の個々の実施例における各機能ユニットは、1つの処理ユニットに一体化することができ、個々のユニットが単独で物理的に存在していてもよく、2つまたは2つ以上のユニットが1つのユニットに一体化されてもよい。
【0094】
上記は、本願の具体的な実施形態であるに過ぎないが、本願の保護範囲はこれに限定されない。いかなる当業者も、本願が開示する技術の範囲内で変更または置き換えを容易に想到可能であり、いずれも本願の保護範囲に含まれていなければならない。従って、本願の保護範囲は、前記特許請求の範囲の保護範囲に準じなければならない。