JP7303894B2 - エンコーダ、デコーダ、及び対応するインター予測方法 - Google Patents

エンコーダ、デコーダ、及び対応するインター予測方法 Download PDF

Info

Publication number
JP7303894B2
JP7303894B2 JP2021552986A JP2021552986A JP7303894B2 JP 7303894 B2 JP7303894 B2 JP 7303894B2 JP 2021552986 A JP2021552986 A JP 2021552986A JP 2021552986 A JP2021552986 A JP 2021552986A JP 7303894 B2 JP7303894 B2 JP 7303894B2
Authority
JP
Japan
Prior art keywords
sample
block
prediction
backward
optical flow
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021552986A
Other languages
English (en)
Other versions
JP2022524357A (ja
Inventor
セードゥラマン,スリイラム
コテチャ,セイガー
ラジ ア,ジーヴァ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2022524357A publication Critical patent/JP2022524357A/ja
Application granted granted Critical
Publication of JP7303894B2 publication Critical patent/JP7303894B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Analysis (AREA)
  • Analogue/Digital Conversion (AREA)

Description

本出願は、2019年3月8日に出願されたインド仮特許出願第IN201931009184号に対する優先権を主張するものであり、その内容をその全体にてここに援用する。
本出願の実施形態は、概してピクチャ処理の分野に関し、より具体的にはインター予測に関する。
映像コーディング(映像符号化及び復号)は、例えば、放送デジタルTV、インターネット及びモバイルネットワーク上での映像伝送、例えばビデオチャットなどのリアルタイム会話アプリケーション、ビデオ会議、DVD及びBlu-rayディスク、ビデオコンテンツ収集・編集システム、並びにセキュリティ用途のビデオカメラといった、広範囲のデジタル映像アプリケーションで使用されている。
比較的短い映像であってもそれを描写するために必要とされる映像データの量はかなりになり得るものであり、それが、限られた帯域幅容量を持つ通信ネットワークを介してデータをストリーミングする又はその他の方法で通信するときに困難をもたらし得る。従って、映像データは一般に、今日の遠隔通信ネットワークを介して通信される前に圧縮される。映像のサイズはまた、メモリリソースが限られ得るために、映像がストレージ装置に格納されるときにも問題となり得る。映像圧縮装置は、しばしば、伝送又は記憶に先立って、ソースにてソフトウェア及び/又はハードウェアを用いて映像データを符号化し、それにより、デジタル映像画像を表すのに必要なデータの量を減少させる。そして、圧縮されたデータが、送り先で、映像データを復号する映像解凍装置によって受信される。限られたネットワークリソースと、増加の一途をたどるいっそう高い映像品質の要求とに伴い、ピクチャ品質の犠牲を殆ど乃至は全く払わずに圧縮比を向上させる改良された圧縮及び解凍技術が望ましい。
本出願の実施形態は、独立請求項に従った符号化及び復号のための装置及び方法を提供する。
本出願の第1の態様において、双方向オプティカルフロー予測方法は、現在ブロックについて当初動きベクトルペアを取得し、当該当初動きベクトルペアは、前方動きベクトルと後方動きベクトルとを有し、前記前方動きベクトルに従った前方予測ブロックと、前記後方動きベクトルに従った後方予測ブロックとを取得し、前記現在ブロック内の現在サンプルについての勾配パラメータを、前記現在サンプルに対応する前方予測サンプル及び後方予測サンプルに基づいて計算し、前記前方予測サンプルは前記前方予測ブロック内にあり、前記後方予測サンプルは前記後方予測ブロック内にあり、前記勾配パラメータに基づいて、前記現在サンプルについての少なくとも2つのサンプルオプティカルフローパラメータを取得し、当該サンプルオプティカルフローパラメータは、第1パラメータ及び第2パラメータを有し、前記現在ブロック内のサンプルのサンプルオプティカルフローパラメータに基づいて、ブロックオプティカルフローパラメータを取得し、当該ブロックオプティカルフローパラメータのうち1つは、前記第1パラメータの値と前記第2パラメータの符号関数の値とを乗算することを含む演算によって取得され、前記符号関数は、少なくとも3つのサブインターバルを有する区分関数であり、前記前方予測ブロック、前記後方予測ブロック、前記ブロックオプティカルフローパラメータ、及び前記サンプルオプティカルフローパラメータに基づいて、前記現在ブロックの予測値を取得する、ことを有する。
実現可能な一実装において、前記符号関数は、
Figure 0007303894000001

であり、Tは非負の実数である。
実現可能な一実装において、Tは0であり、対応して、前記符号関数は、
Figure 0007303894000002

である。
実現可能な一実装において、前記当初動きベクトルペアは、前記現在ブロックの少なくとも1つの空間隣接ブロック及び/又は時間隣接ブロックの動き情報に従って取得される。
実現可能な一実装において、前記現在ブロックは、コーディングユニット又は該コーディングユニットのサブブロックである。
実現可能な一実装において、勾配パラメータは、前方水平勾配、後方水平勾配、前方垂直勾配、及び後方垂直勾配を有する。
実現可能な一実装において、前記前方水平勾配は、前記前方予測サンプルに隣接する右サンプルと左サンプルとの差である。
実現可能な一実装において、前記後方水平勾配は、前記後方予測サンプルに隣接する右サンプルと左サンプルとの差である。
実現可能な一実装において、前記前方垂直勾配は、前記前方予測サンプルに隣接する下サンプルと上サンプルとの差である。
実現可能な一実装において、前記後方垂直勾配は、前記後方予測サンプルに隣接する下サンプルと上サンプルとの差である。
実現可能な一実装において、前記サンプルオプティカルフローパラメータは、サンプル差、水平平均勾配、及び垂直平均勾配を有する。
実現可能な一実装において、前記第1パラメータは、前記サンプル差、前記水平平均勾配、又は前記垂直平均勾配である。
実現可能な一実装において、前記第2パラメータは、前記サンプル差、前記水平平均勾配、又は前記垂直平均勾配であり、前記第2パラメータは前記第1パラメータではない。
本出願の第2の態様において、双方向オプティカルフロー予測装置は、現在ブロックについて当初動きベクトルペアを取得するように構成された取得モジュールであり、前記当初動きベクトルペアは、前方動きベクトルと後方動きベクトルとを有する、取得モジュールと、前記前方動きベクトルに従った前方予測ブロックと、前記後方動きベクトルに従った後方予測ブロックとを取得するように構成されたパッチングモジュールと、前記現在ブロック内の現在サンプルについての勾配パラメータを、前記現在サンプルに対応する前方予測サンプル及び後方予測サンプルに基づいて計算するように構成された勾配モジュールであり、前記前方予測サンプルは前記前方予測ブロック内にあり、前記後方予測サンプルは前記後方予測ブロック内にある、勾配モジュールと、前記勾配パラメータに基づいて、前記現在サンプルについての少なくとも2つのサンプルオプティカルフローパラメータを取得するように構成された計算モジュールであり、前記サンプルオプティカルフローパラメータは、第1パラメータ及び第2パラメータを有する、計算モジュールと、前記現在ブロック内のサンプルのサンプルオプティカルフローパラメータに基づいて、ブロックオプティカルフローパラメータを取得するように構成された訓練モジュールであり、前記ブロックオプティカルフローパラメータのうち1つは、前記第1パラメータの値と前記第2パラメータの符号関数の値とを乗算することを含む演算によって取得され、前記符号関数は、少なくとも3つのサブインターバルを有する区分関数である、訓練モジュールと、前記前方予測ブロック、前記後方予測ブロック、前記ブロックオプティカルフローパラメータ、及び前記サンプルオプティカルフローパラメータに基づいて、前記現在ブロックの予測値を取得するように構成された予測モジュールと、を有する。
実現可能な一実装において、前記符号関数は、
Figure 0007303894000003
であり、Tは非負の実数である。
実現可能な一実装において、Tは0であり、対応して、前記符号関数は、
Figure 0007303894000004
である。
実現可能な一実装において、前記当初動きベクトルペアは、前記現在ブロックの少なくとも1つの空間隣接ブロック及び/又は時間隣接ブロックの動き情報に従って取得される。
実現可能な一実装において、前記現在ブロックは、コーディングユニット又は該コーディングユニットのサブブロックである。
実現可能な一実装において、勾配パラメータは、前方水平勾配、後方水平勾配、前方垂直勾配、及び後方垂直勾配を有する。
実現可能な一実装において、前記前方水平勾配は、前記前方予測サンプルに隣接する右サンプルと左サンプルとの差である。
実現可能な一実装において、前記後方水平勾配は、前記後方予測サンプルに隣接する右サンプルと左サンプルとの差である。
実現可能な一実装において、前記前方垂直勾配は、前記前方予測サンプルに隣接する下サンプルと上サンプルとの差である。
実現可能な一実装において、前記後方垂直勾配は、前記後方予測サンプルに隣接する下サンプルと上サンプルとの差である。
実現可能な一実装において、前記サンプルオプティカルフローパラメータは、サンプル差、水平平均勾配、及び垂直平均勾配を有する。
実現可能な一実装において、前記第1パラメータは、前記サンプル差、前記水平平均勾配、又は前記垂直平均勾配である。
実現可能な一実装において、前記第2パラメータは、前記サンプル差、前記水平平均勾配、又は前記垂直平均勾配であり、前記第2パラメータは前記第1パラメータではない。
本出願の第3の態様において、双方向オプティカルフロー予測装置は、1つ以上のプロセッサと、前記プロセッサに結合され、前記プロセッサによる実行のためのプログラミングを格納する非一時的なコンピュータ読み取り可能記憶媒体と、を有し、前記プログラミングは、前記プロセッサによって実行されるときに、本出願の第1の態様の実装のうちのいずれか1つに従った方法を実行するように当該装置を構成する。
本出願の第4の態様において、コンピュータプログラムプロダクトは、本出願の第1の態様の実装のうちのいずれか1つに従った方法を実行するためのプログラムコードを有する。
本出願の第5の態様において、デコーダは、1つ以上のプロセッサと、前記プロセッサに結合され、前記プロセッサによる実行のためのプログラミングを格納する非一時的なコンピュータ読み取り可能記憶媒体と、を有し、前記プログラミングは、前記プロセッサによって実行されるときに、本出願の第1の態様の実装のうちのいずれか1つに従った方法を実行するように当該デコーダを構成する。
本出願の第6の態様において、エンコーダは、1つ以上のプロセッサと、前記プロセッサに結合され、前記プロセッサによる実行のためのプログラミングを格納する非一時的なコンピュータ読み取り可能記憶媒体と、を有し、前記プログラミングは、前記プロセッサによって実行されるときに、本出願の第1の態様の実装のうちのいずれか1つに従った方法を実行するように当該エンコーダを構成する。
本出願の第7の態様において、ビットストリームは、本出願の第1の態様の実装のうちのいずれか1つに従って生成される。
上述の目的及び他の目的が、独立請求項に係る事項によって達成される。更なる実装形態が、従属請求項、明細書及び図面から明らかである。
特定の実施形態が、添付の独立請求項にて要点をまとめられ、他の実施形態が従属請求項にて要点をまとめられる。
1つ以上の実施形態の詳細が、添付の図面及び以下の説明に記載される。他の特徴、目的、及び利点が、明細書、図面、及び特許請求の範囲から明らかになる。
以下、添付の図及び図面を参照して、出願の実施形態をより詳細に説明する。
出願の実施形態を実装するように構成された映像コーディングシステムの一例を示すブロック図である。 出願の実施形態を実装するように構成された映像コーディングシステムの他の一例を示すブロック図である。 出願の実施形態を実装するように構成されたビデオエンコーダの一例を示すブロック図である。 出願の実施形態を実装するように構成されたビデオデコーダの一構成例を示すブロック図である。 符号化装置又は復号装置の一例を示すブロック図である。 符号化装置又は復号装置の他の一例を示すブロック図である。 三値出力関数の一例を示している。 五値出力関数の一例を示している。 本出願の双方向オプティカルフロー予測プロセスの一例を示すブロック図である。 本出願の双方向オプティカルフロー予測プロセスの他の一例を示すブロック図である。 本出願の双方向オプティカルフロー予測装置の一例を示すブロック図である。 本出願の双方向オプティカルフロー予測装置の他の一例を示すブロック図である。 本出願に従ったインター予測のための装置の一例を示すブロック図である。 本出願に従ったインター予測のための装置の他の一例を示すブロック図である。
以下において、明示的に別段の定めがない限り、同じ参照符号は、同じ機構又は少なくとも機能的に等価な機構を指す。
以下の説明では、開示の一部を形成するものであるとともに、出願の実施形態の特定の態様又は本出願の実施形態が使用され得る特定の態様を例示によって示すものである添付図面を参照する。理解されることには、出願の実施形態は、他の態様で使用されることができ、また、図に示されない構造的又は論理的な変更を含むことができる。従って、以下の詳細な説明は、限定的な意味で解釈されるべきでなく、本出願の範囲は、添付の特許請求の範囲によって定められる。
例えば、理解されることには、記載される方法に関する開示は、その方法を実行するように構成される対応する装置又はシステムにも当てはまり得るものであり、その逆もまた然りである。例えば、1つ又は複数の特定の方法ステップが記載される場合、対応する装置は、たとえそのような1つ又は複数のユニットが明示的に記載されたり図に示されたりしていなくても、記載された1つ又は複数の方法ステップを実行するための例えば機能ユニットといった1つ又は複数のユニット(例えば、該1つ又は複数のステップを実行する1つのユニット、又は各々がそれら複数のステップのうちの1つ以上を実行する複数のユニット)を含み得る。その一方で、例えば、特定の装置が、例えば機能ユニットといった1つ又は複数のユニットに基づいて記載される場合、対応する方法は、たとえそのような1つ又は複数のステップが明示的に記載されたり図に示されたりしていなくても、該1つ又は複数のユニットの機能を実行するためのステップ(例えば、該1つ又は複数のユニットの機能を実行する1つのステップ、又は各々がそれら複数のユニットのうちの1つ以上の機能を実行する複数のステップ)を含み得る。さらに、理解されることには、ここに記載される様々な例示的な実施形態及び/又は態様の特徴は、具体的に別段の断りがない限り、互いに組み合わされてもよい。
映像コーディングは、典型的に、映像又は映像シーケンスを形成するものである一連のピクチャの処理を指す。“ピクチャ”という用語の代わりに、“フレーム”又は“画像”という用語が、映像コーディングの分野における同義語として使用されることがある。映像コーディング(又は、一般に、コーディング)は、映像符号化及び映像復号という2つの部分を有する。映像符号化は、ソース側で実行され、典型的に、(より効率的な記憶及び/又は伝送のために)映像ピクチャを表現するのに必要なデータ量を削減するように、元の映像ピクチャを(例えば圧縮によって)処理することを有する。映像復号は、デスティネーション側で実行され、典型的に、映像ピクチャを再構成するためにエンコーダに対して逆の処理を有する。映像ピクチャ(又は、一般に、ピクチャ)の“コーディング”を参照する実施形態は、映像ピクチャ又はそれぞれの映像シーケンスの“符号化”又は“復号”に関係するように理解されるものとする。符号化部分と復号部分との組み合わせは、CODEC(Coding and Decoding)とも呼ばれている。
可逆映像コーディングの場合、元の映像ピクチャを再構成することができ、すなわち、再構成された映像ピクチャは、(記憶又は伝送の間に伝送損失又は他のデータ損失がないと仮定して)元の映像ピクチャと同じ品質を有する。非可逆映像コーディングの場合には、映像ピクチャを表現するデータの量を減らすために、例えば量子化によって、更なる圧縮が行われ、デコーダで映像ピクチャを完全に再構成することはできず、すなわち、再構成された映像ピクチャの品質が、元の映像ピクチャの品質と比較して低い又は悪いものとなる。
幾つかの映像コーディング標準は、“非可逆ハイブリッド映像コーデック”のグループに属する(すなわち、サンプルドメインにおける空間及び時間予測と、変換ドメインにおいて量子化を適用する2D変換コーディングとを組み合わせる)。映像シーケンスの各ピクチャは典型的に一組の重なり合わないブロックに分割され、コーディングは典型的にブロックレベルで実行される。換言すれば、エンコーダで、映像は典型的にブロック(映像ブロック)レベルで、例えば、空間(イントラピクチャ)予測及び/又は時間(インターピクチャ)予測を用いて予測ブロックを生成し、予測ブロックを現在ブロック(現在処理されている/処理対象のブロック)から減算して残差ブロックを取得し、残差ブロックを変換し且つ変換ドメインで残差ブロックを量子化して、伝送されるデータの量を削減すること(圧縮)によって、処理すなわち符号化され、一方、デコーダでは、表現用に現在ブロックを再構成するために、符号化又は圧縮されたブロックに、エンコーダに対して逆の処理が適用される。さらに、エンコーダはデコーダ処理ループを複製しており、それにより、後続ブロックを処理すなわちコーディングするために両者が同じ予測(例えば、イントラ予測及びインター予測)及び/又は再構成を生成することになる。
映像コーディングシステム10の以下の実施形態にて、ビデオエンコーダ20及びビデオデコーダ30を図1-図3に基づいて説明する。
図1Aは、本出願の技術を利用し得るコーディングシステム10の一例、例えば映像コーディングシステム10(又は略してコーディングシステム10)、を示す概略ブロック図である。映像コーディングシステム10のビデオエンコーダ20(又は略してエンコーダ20)及びビデオデコーダ30(又は略してデコーダ30)は、本出願に記載される様々な例に従った技術を実行するように構成され得る装置の例を表す。
図1Aに示すように、コーディングシステム10は、符号化ピクチャデータ21を、例えば符号化ピクチャデータ13を復号するデスティネーション装置14に、提供するように構成されたソース装置12を有している。
ソース装置12は、エンコーダ20を有しており、付加的に、すなわち、オプションで、ピクチャ源16、例えばピクチャプリプロセッサ18といったプリプロセッサ(又は前処理ユニット)18、及び通信インタフェース若しくは通信ユニット22を有してもよい。
ピクチャ源16は、例えば実世界ピクチャをキャプチャするためのカメラといった任意の種類のピクチャキャプチャ装置、及び/又は、例えばコンピュータアニメーションピクチャを生成するためのコンピュータグラフィックスプロセッサといった任意の種類のピクチャ生成装置、又は、実世界ピクチャ、コンピュータ生成ピクチャ(例えば、スクリーンコンテンツ、仮想現実(VR)ピクチャ)及び/又はそれらの任意の組み合わせ(例えば、拡張現実(AR)ピクチャ)を取得及び/又は提供するための任意の種類の他の装置を有することができ、あるいはそれであることができる。ピクチャ源は、上述のピクチャのうちのいずれかを格納する任意の種類のメモリ又はストレージとし得る。
プリプロセッサ18、及び前処理ユニット18によって実行される処理とは区別して、ピクチャ又はピクチャデータ17をロー(raw)ピクチャ又はローピクチャデータ17としても参照され得る。
プリプロセッサ18は、(ロー)ピクチャデータ17を受け取り、ピクチャデータ17上で前処理を行って、前処理済みピクチャ19又は前処理済みピクチャデータ19を得るように構成される。プリプロセッサ18によって実行される前処理は、例えば、トリミング、カラーフォーマット変換(例えば、RGBからYCbCrへ)、カラー補正、又はノイズ除去を有し得る。理解され得ることには、前処理ユニット18はオプションコンポーネントとし得る。
ビデオエンコーダ20は、前処理済みピクチャデータ19を受け取り、符号化ピクチャデータ21を提供するように構成される(更なる詳細については、例えば図2に基づいて後述する)。ソース装置12の通信インタフェース22は、符号化ピクチャデータ21を受け取り、符号化ピクチャデータ21(又はその更に処理した任意のバージョン)を、記憶又は直接的な再構成のために、通信チャネル13上で、例えばデスティネーション装置14又は任意の他の装置といった他の装置に送信するように構成され得る。
デスティネーション装置14は、デコーダ30(例えば、ビデオデコーダ30)を有しており、付加的に、すなわち、オプションで、通信インタフェース若しくは通信ユニット28、ポストプロセッサ32(又は後処理ユニット32)、及び表示装置34を有してもよい。
デスティネーション装置14の通信インタフェース28は、符号化ピクチャデータ21(又はその更に処理した任意のバージョン)を、例えば、ソース装置12から直接的に、あるいは例えば符号化ピクチャデータストレージ装置などのストレージ装置といった任意の他のソースから、受信して、符号化ピクチャデータ21をデコーダ30に提供するように構成される。
通信インタフェース22及び通信インタフェース28は、ソース装置12とデスティネーション装置14との間の、例えば直接的な有線若しくは無線接続といった直接的な通信リンクを介して、あるいは、例えば、有線若しくは無線ネットワーク又はこれらの任意の組み合わせ、又は任意の種類の私的及び公的ネットワーク、又はこれらの任意の種類の組み合わせといった任意の種類のネットワークを介して、符号化ピクチャデータ21又は符号化データ13を送信又は受信するように構成され得る。
通信インタフェース22は、例えば、符号化ピクチャデータ21を例えばパケットといった適切なフォーマットにパッケージ化し、且つ/或いは任意の種類の伝送符号化又は通信リンク若しくは通信ネットワーク上での伝送のための処理を用いて符号化ピクチャデータを処理するように構成され得る。
通信インタフェース28は、通信インタフェース22に対応する物を形成し、例えば、伝送されたデータを受信し、任意の種類の対応する伝送復号若しくは処理及び/又は脱パッケージ化を用いて伝送データを処理して、符号化ピクチャデータ21を得るように構成され得る。
通信インタフェース22及び通信インタフェース28はどちらも、ソース装置12からデスティネーション装置14を指す図1Aの通信チャネル13の矢印によって示される単方向通信インタフェースとして構成されてもよいし、あるいは双方向通信インタフェースとして構成されてもよく、例えば、通信リンク及び/又は例えば符号化ピクチャデータ伝送といったデータ伝送に関係する他の情報を受信確認及び交換するために接続をセットアップするためなどで、メッセージを送受信するように構成され得る。
デコーダ30は、符号化ピクチャデータ21を受け取り、復号ピクチャデータ31又は復号ピクチャ31を提供するように構成される(更なる詳細については、例えば図3又は図5に基づいて後述する)。
デスティネーション装置14のポストプロセッサ32は、例えば復号ピクチャ31といった復号ピクチャデータ31(再構成された映像データとも呼ばれる)を後処理して、例えば後処理済みピクチャ33といった後処理済みのピクチャデータ33を得るように構成される。後処理ユニット32によって実行される後処理は、例えば、カラーフォーマット変換(例えば、YCbCrからRGBへ)、カラー補正、トリミング、若しくは再サンプリング、又は、例えば表示装置34による表示のために復号ピクチャデータ31を準備するためなどの任意の他の処理を有し得る。
デスティネーション装置14の表示装置34は、ピクチャを例えばユーザ又はビューアに表示するために、後処理済みピクチャデータ33を受け取るように構成される。表示装置34は、例えば一体化された又は外付けのディスプレイ又はモニタといった、再構成ピクチャを表現するための任意の種類のディスプレイである又はそれを有するとし得る。ディスプレイは、例えば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、液晶・オン・シリコン(LCoS)、デジタルライトプロセッサ(DLP)、又は任意の種類の他のディスプレイを有し得る。
図1Aは、ソース装置12及びデスティネーション装置14を別々の装置として描いているが、装置の実施形態はまた、ソース装置12又は対応する機能と、デスティネーション装置14又は対応する機能との、両方又は両方の機能を有してもよい。そのような実施形態では、ソース装置12又は対応する機能と、デスティネーション装置14又は対応する機能とが、同一のハードウェア及び/又はソフトウェアを用いて、又は別々のハードウェア及び/又はソフトウェアによって、又はこれらの任意の組み合わせにて実装され得る。
説明に基づいて当業者に明らかなになるように、図1Aに示したようなソース装置12及び/又はデスティネーション装置14内の複数の異なるユニット又は機能の存在及び(正確な)機能分割は、実際の装置及び用途に応じて変わり得る。
エンコーダ20(例えば、ビデオエンコーダ20)若しくはデコーダ30(例えば、ビデオデコーダ30)、又はエンコーダ20とデコーダ30との両方は、例えば、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ハードウェア、映像コーディング専用、又はこれらの任意の組み合わせなどの、図1Bに示すような処理回路によって実装され得る。エンコーダ20は、図2のエンコーダ20及び/又はここに記載されるいずれかの他のエンコーダシステム若しくはサブシステムに関して説明されるような様々なモジュールを具体化するように、処理回路46によって実装され得る。デコーダ30は、図3のデコーダ30及び/又はここに記載されるいずれかの他のデコーダシステム若しくはサブシステムに関して説明されるような様々なモジュールを具体化するように、処理回路46によって実装され得る。処理回路は、後述する様々な演算を実行するように構成され得る。図5に示すように、当該技術が部分的にソフトウェアで実装される場合、装置が、好適な非一時的なコンピュータ読み取り可能記憶媒体にソフトウェアの命令を格納し、それらの命令を、1つ以上のプロセッサを用いてハードウェアにて実行することで、この開示の技術を実行することができる。ビデオエンコーダ20及びビデオデコーダ30のいずれかが、例えば図1Bに示すように、単一の装置内の結合されたエンコーダ/デコーダ(CODEC)の部分として一体化されてもよい。
ソース装置12及びデスティネーション装置14は、例えば、ノートブック若しくはラップトップコンピュータ、携帯電話、スマートフォン、タブレット若しくはタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビジョン、ディスプレイ装置、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミング装置(例えばコンテンツサービスサーバ又はコンテンツ配信サーバなど)、放送受信器装置、放送送信器装置など、又はこれらに類するものといった、任意の種類のハンドヘルド装置又は固定装置を含め、広範囲の装置うちのいずれかを有することができ、また、オペレーティングシステムを使用しなくてもよいし、あるいは任意の種類のオペレーティングシステムを使用してもよい。一部のケースにおいて、ソース装置12及びデスティネーション装置14は無線通信向けに装備されてもよい。従って、ソース装置12及びデスティネーション装置14は無線通信装置であってもよい。
一部のケースにおいて、図1Aに示した映像コーディングシステム10は、単に一例に過ぎず、本出願の技術は、必ずしも符号化装置と復号装置との間で如何なるデータ通信も含まない映像コーディング設定(例えば、映像符号化又は映像復号)に適用されてもよい。他の例において、データがローカルメモリから取り出されてネットワーク上でストリーミングされるなどする。映像符号化装置が、データを符号化してメモリに格納することができ、且つ/或いは映像復号装置が、メモリからデータを取り出して復号することができる。一部の例において、符号化及び復号は、互いに通信せずに単にデータをメモリにエンコードする及び/又はメモリからデータを取り出して復号する装置によって実行される。
説明の便宜のため、出願の実施形態は、ここでは、例えば、ハイエフィシェンシビデオコーディング(HEVC)、又はITU-Tビデオコーディングエキスパートグループ(VCEG)とISO/IECモーションピクチャエキスパートグループ(MPEG)とのジョイントコラボレーションチーム・オン・ビデオコーディング(JCT-VC)によって開発された次世代映像コーディング標準であるバーサタイルビデオコーディング(VVC)のリファレンスソフトウェアを参照して説明される。当業者が理解することには、出願の実施形態はHEVC又はVVCに限定されるものではない。
エンコーダ及び符号化方法
図2は、本出願の技術を実装するように構成されたビデオエンコーダ20の一例の概略ブロック図を示している。図2の例において、ビデオエンコーダ20は、入力201(又は入力インタフェース201)、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループフィルタユニット220、復号ピクチャバッファ(decoded picture buffer;DPB)230、モード選択ユニット260、エントロピー符号化ユニット270、及び出力272(又は出力インタフェース272)を有している。モード選択ユニット260は、インター予測ユニット244、イントラ予測ユニット254、及び分割ユニット262を含み得る。インター予測ユニット244は、動き推定ユニット及び動き補償ユニット(図示せず)を含み得る。図2に示すビデオエンコーダ20は、ハイブリッドビデオエンコーダ、又はハイブリッドビデオコーデックに従ったビデオエンコーダとしても参照され得る。
残差計算ユニット204、変換処理ユニット206、量子化ユニット208、モード選択ユニット260は、エンコーダ20の前方信号経路を形成するとして参照され得るものであるのに対し、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ(DPB)230、インター予測ユニット244、及びイントラ予測ユニット254は、ビデオエンコーダ20の後方信号経路を形成するとして参照され得るものであり、ビデオエンコーダ20の後方信号経路は、デコーダ(図3のビデオデコーダ30を参照)の信号経路に一致する。逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループフィルタ220、復号ピクチャバッファ(DPB)230、インター予測ユニット244、及びイントラ予測ユニット254はまた、ビデオエンコーダ20の“内蔵デコーダ”を形成するとしても参照される。
ピクチャ&ピクチャ分割(ピクチャ&ブロック)
エンコーダ20は、例えば入力201を介して、例えば映像又は映像シーケンスを形成する一連のピクチャのうちのピクチャといった、ピクチャ17(又はピクチャデータ17)を受信するように構成され得る。受信されるピクチャ又はピクチャデータはまた、前処理済みピクチャ19(又は前処理済みピクチャデータ19)であってもよい。単純にするため、以下の説明はピクチャ17を参照する。ピクチャ17はまた、現在ピクチャ又はコーディング対象のピクチャとしても参照され得る(特に、映像コーディングでは、現在ピクチャを、例えば同一の映像シーケンスすなわち現在ピクチャをも含む映像シーケンスのうち先行して符号化及び/又は復号されたピクチャといった他のピクチャから区別するため)。
(デジタル)ピクチャは、強度値を有するサンプルの二次元アレイ又はマトリクスとみなされ、あるいはそうみなされてもよい。アレイ内のサンプルは、ピクセル(ピクチャエレメントの短縮形)又はペルとしても参照され得る。アレイ又はピクチャの水平及び垂直方向(又は軸)のサンプルの数が、ピクチャのサイズ及び/又は解像度を定める。色の表現のため、典型的に3つの色成分が使用され、すなわち、ピクチャは、3つのサンプルアレイで表現され、あるいはそれらを含み得る。RBGフォーマット又は色空間では、ピクチャは、対応する赤、緑及び青のサンプルアレイを有する。しかしながら、映像コーディングにおいて、各ピクセルは典型的に、例えば、Yによって示されるルミナンス成分(代わりにLが使用されることもある)と、Cb及びCrによって示される2つのクロミナンス成分とを有するものであるYCbCrといった、ルミナンス及びクロミナンスのフォーマット又は色空間で表現される。ルミナンス(又は略してルマ)成分Yは輝度又は(例えば、グレースケールピクチャにおいてのような)グレーレベル強度を表し、2つのクロミナンス(又は略してクロマ)成分Cb及びCrは色度又は色情報成分を表す。従って、YCbCrフォーマットのピクチャは、ルミナンスサンプル値(Y)のルミナンスサンプルアレイと、クロミナンス値(Cb及びCr)の2つのクロミナンスサンプルアレイとを有する。RGBフォーマットのピクチャはYCbCrフォーマットに変換される(converted又はtransformed)ことができ、その逆もまた然りであり、このプロセスは、カラー変換(transformation又はconversion)としても知られている。ピクチャがモノクロである場合、そのピクチャはルミナンスサンプルアレイのみを有し得る。従って、ピクチャは、例えば、モノクロフォーマットにおいてはルマサンプルのアレイであることができ、あるいは4:2:0、4:2:2、及び4:4:4カラーフォーマットにおいてはルマサンプルのアレイとクロマサンプルの2つの対応するアレイとであることができる。
ビデオエンコーダ20の実施形態は、ピクチャ17を複数の(典型的には重なり合わない)ピクチャブロック203に分割するように構成されたピクチャ分割ユニット(図2には示さず)を有し得る。これらのブロックは、ルートブロック、マクロブロック(H.264/AVC)、又はコーディングツリーブロック(CTB)若しくはコーディングツリーユニット(CTU)(H.265/HEVC及びVVC)として参照されることもある。ピクチャ分割ユニットは、映像シーケンスの全てのピクチャ及びブロックサイズを定める対応するグリッドに対して同じブロックサイズを使用して、又はピクチャ間で、又はピクチャのサブセット若しくはグループ間でブロックサイズを変更して、各ピクチャを対応するブロックに分割するように構成され得る。
更なる実施形態において、ビデオエンコーダは、例えばピクチャ17を形成する1つの、幾つかの、又は全てのブロックといった、ピクチャ17のブロック203を直接受信するように構成され得る。ピクチャブロック203は、現在ピクチャブロック又はコーディング対象のピクチャブロックとして参照されることもある。
ピクチャ17と同様に、ピクチャブロック203もやはり、強度値(サンプル値)を有するサンプルの二次元アレイ又はマトリクスとみなされ、あるいはそうみなされてもよいが、ピクチャ17よりも小さい寸法のものである。換言すれば、ブロック203は、例えば、1つのサンプルアレイ(例えば、モノクロピクチャ17の場合のルマアレイ、又はカラーピクチャの場合のルマアレイ若しくはクロマアレイ)、又は3つのサンプルアレイ(例えば、カラーピクチャ17の場合のルマアレイ及び2つのクロマアレイ)、又は適用されるカラーフォーマットに応じた何らかの他の数及び/又は種類のアレイを有し得る。ブロック203の水平及び垂直方向(又は軸)のサンプルの数が、ブロック203のサイズを定める。従って、ブロックは、例えば、サンプルのM×N(M列×N行)アレイ、又は変換係数のM×Nアレイとし得る。
図2に示すビデオエンコーダ20の実施形態は、ブロック毎にピクチャ17を符号化するように構成されることができ、例えば、符号化及び予測がブロック203毎に実行される。
図2に示すビデオエンコーダ20の実施形態は更に、スライス(映像スライスとしても参照される)を使用することによってピクチャを分割及び/又は符号化するように構成されることができ、ピクチャが、1つ以上のスライス(典型的に重なり合わない)に分割され又は1つ以上のスライス(典型的に重なり合わない)を用いて符号化され得るとともに、各スライスが、1つ以上のブロック(例えば、CTU)又はブロックの1つ以上のグループ(例えば、タイル(H.265/HEVC及びVVC)又はブリック(VVC))を有し得る。
図2に示すビデオエンコーダ20の実施形態は更に、スライス/タイルグループ(映像タイルグループとしても参照される)及び/又はタイル(映像タイルとしても参照される)を使用することによってピクチャを分割及び/又は符号化するように構成されることができ、ピクチャが、1つ以上のスライス/タイルグループ(典型的に重なり合わない)に分割され又は1つ以上のスライス/タイルグループ(典型的に重なり合わない)を用いて符号化され得るとともに、各スライス/タイルグループが、例えば、1つ以上のブロック(例えば、CTU)又は1つ以上のタイルを有することができ、各タイルは、例えば、矩形の形状のものとし得るとともに、例えば完全なるブロック又は部分的なブロックといった、1つ以上のブロック(例えば、CTU)を有し得る。
残差計算
残差計算ユニット204は、ピクチャブロック203及び予測ブロック265(予測ブロック265に関する更なる詳細については後に提供する)に基づいて、例えば、予測ブロック265のサンプル値をピクチャブロック203のサンプル値からサンプル毎(ピクセル毎)に差し引くことにより、残差ブロック205(残差205としても参照される)を計算して、サンプルドメインにおける残差ブロック205を得るように構成され得る。
変換
変換処理ユニット206は、残差ブロック205のサンプル値に対して例えば離散コサイン変換(DCT)又は離散サイン変換(DST)といった変換を適用して、変換ドメインにおける変換係数207を得るように構成され得る。変換係数207は、変換残差係数として参照されることもあり、変換ドメインでの残差ブロック205を表し得る。
変換処理ユニット206は、例えばH.265/HEVCに対して規定された変換など、DCT/DSTの整数近似を適用するように構成されてもよい。直交DCT変換と比較して、そのような整数近似は、典型的に、ある特定の係数によってスケーリングされる。順変換及び逆変換によって処理される残差ブロックのノルムを保存するために、変換プロセスの一部として追加のスケーリング係数が適用される。スケーリング係数は、典型的に、スケーリング係数はシフト演算のために2のべき乗であること、変換係数のビット深度、精度と実装コストとの間のトレードオフなどのような、特定の制約に基づいて選択される。特定のスケーリング係数が、例えば逆変換処理ユニット212による逆変換に関して(及び、ビデオデコーダ30における例えば逆変換処理ユニット312による対応する逆変換に関して)指定され、また、それに従って、エンコーダ20における例えば変換処理ユニット206による順変換に関する対応するスケーリング係数が指定され得る。
ビデオエンコーダ20(それぞれ変換処理ユニット206)の実施形態は、エントロピー符号化ユニット270を介して、例えば1つ以上の変換のタイプといった変換パラメータを、例えば直接又は符号化若しくは圧縮して出力するように構成されることができ、その結果、例えば、ビデオデコーダ30が復号のために変換パラメータを受信して使用し得る。
量子化
量子化ユニット208は、例えばスカラー量子化又はベクトル量子化を適用することによって、変換係数207を量子化して、量子化された係数209を得るように構成され得る。量子化された係数209は、量子化された変換係数209又は量子化された残差係数209として参照されることもある。
量子化プロセスは、変換係数207の一部又は全てに関連するビット深度を減少させ得る。例えば、nはmより大きいとして、nビットの変換係数が量子化の間にmビットの変換係数に丸められ得る。量子化の程度は、量子化パラメータ(QP)を調節することによって変更され得る。例えば、スカラー量子化の場合、より細かい又はより粗い量子化を達成するために、異なるスケーリングが適用され得る。より小さい量子化ステップサイズは、より細かい量子化に対応し、より大きい量子化ステップサイズは、より粗い量子化に対応する。適用可能な量子化ステップサイズは、量子化パラメータ(QP)によって指し示され得る。量子化パラメータは、例えば、予め定められた一組の適用可能な量子化ステップサイズに対するインデックスとし得る。例えば、小さい量子化パラメータが細かい量子化(小さい量子化ステップサイズ)に対応することができるとともに、大きい量子化パラメータが粗い量子化(大きい量子化ステップサイズ)に対応するとすることができ、その逆もまた然りである。量子化は、量子化ステップサイズによる除算を含むことができ、例えば逆量子化ユニット210による、対応する且つ/或いは逆の、量子化解除は、量子化ステップサイズによる乗算を含むことができる。例えばHEVCといった一部の標準に従った実施形態は、量子化パラメータを用いて量子化ステップサイズを決定するように構成され得る。一般に、量子化ステップサイズは、除算を含む式の固定小数点近似を用いて、量子化パラメータに基づいて計算され得る。残差ブロックのノルムを復元するために追加のスケーリング係数を量子化及び量子化解除に対して導入してもよく、量子化ステップサイズ及び量子化パラメータについての式の固定小数点近似に使用されるスケーリングに起因して、残差ブロックのノルムが変更され得る。一実装例において、逆変換及び量子化解除のスケーリングを組み合わせてもよい。あるいは、カスタマイズされた量子化テーブルを使用し、それをエンコーダからデコーダへ例えばビットストリーム内でシグナリングしてもよい。量子化は、非可逆演算であり、量子化ステップサイズを大きくするのに伴って損失が増加する。
ビデオエンコーダ20の実施形態(それぞれ量子化ユニット208)は、エントロピー符号化ユニット270を介して、量子化パラメータ(QP)を、例えば直接又は符号化して出力するように構成されることができ、その結果、例えば、ビデオデコーダ30が復号のために量子化パラメータを受信して適用し得る。
逆量子化
逆量子化ユニット210は、例えば、量子化ユニット208と同じ量子化ステップサイズに基づいて又はそれを用いて、量子化ユニット208によって適用された量子化スキームの逆を適用することによって、量子化された係数に対して量子化ユニット208の逆量子化を適用して、量子化解除された係数211を得るように構成される。量子化解除された係数211は、量子化解除された残差係数211として参照されることもあり、変換係数207に対応するが、典型的には量子化による損失のために変換係数と同じではない。
逆変換
逆変換処理ユニット212は、例えば、逆の離散コサイン変換(DCT)、逆の離散サイン変換(DST)、又は他の逆変換といった、変換処理ユニット206によって適用された変換の逆変換を適用して、サンプルドメインにおける再構成残差ブロック213(又は対応する量子化解除された係数213)を得るように構成される。再構成残差ブロック213は、変換ブロック213として参照されることもある。
再構成
再構成ユニット214(例えば、加算器(adder又はsummer)214)は、例えば再構成残差ブロック213のサンプル値と予測ブロック265のサンプル値とをサンプル毎に足し合わせることによって、変換ブロック213(すなわち、再構成残差ブロック213)を予測ブロック265に足し合わせて、サンプルドメインにおける再構成ブロック215を得るように構成される。
フィルタリング
ループフィルタユニット220(又は略して“ループフィルタ”220)は、再構成ブロック215をフィルタリングして、フィルタリングされたブロック221を得るように構成され、又は一般に、再構成サンプルをフィルタリングして、フィルタリングされたサンプル値を得るように構成される。ループフィルタユニットは、例えば、ピクセル遷移を平滑化するように構成され、又はその他の方法で映像品質を向上させるように構成される。ループフィルタユニット220は、例えば、デブロッキングフィルタ、サンプル適応オフセット(sample-adaptive offset;SAO)フィルタ、又は例えば適応ループフィルタ(adaptive loop filter;ALF)、ノイズ抑制フィルタ(noise suppression filter;NSF)若しくはこれらの任意の組み合わせといった1つ以上の他のフィルタなどの、1つ以上のループフィルタを有し得る。一例において、ループフィルタユニット220は、デブロッキングフィルタ、SAOフィルタ、及びALFフィルタを有し得る。フィルタリングプロセスの順序は、デブロッキングフィルタ、SAO及びALFとし得る。他の一例では、クロマスケーリング付きルママッピング(luma mapping with chroma scaling;LMCS)と呼ばれるプロセス(すなわち、適応インループリシェイパ)が追加される。このプロセスは、デブロッキングの前に実行される。他の一例において、デブロッキングフィルタプロセスは、例えば、アフィンサブブロックエッジ、ATMVPサブブロックエッジ、サブブロック変換(sub-block transform;SBT)エッジ、及びイントラサブパーティション(intra sub-partition;ISP)エッジといった、内部のサブブロックエッジにも適用され得る。ループフィルタユニット220は、図2ではインループフィルタとして示されているが、他の構成では、ループフィルタユニット220は、ポストループフィルタとして実装されてもよい。フィルタリングされたブロック221は、フィルタリングされた再構成ブロック221として参照されることもある。
ビデオエンコーダ20の実施形態(それぞれループフィルタユニット220)は、エントロピー符号化ユニット270を介して、ループフィルタパラメータ(例えば、SAOフィルタパラメータ又はALFフィルタパラメータ又はLMCSパラメータなど)を、例えば直接又は符号化して出力するように構成されることができ、その結果、例えば、デコーダ30が復号のために同じループフィルタパラメータ又はそれぞれのループフィルタを受信して適用使用し得る。
復号ピクチャバッファ
復号ピクチャバッファ(DPB)230は、ビデオエンコーダ20によって映像データを符号化するための参照ピクチャ又は一般に参照ピクチャデータを格納するメモリとし得る。DPB230は、例えば、同期DRAM(SDRAM)を含めたダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、又は他のタイプのメモリデバイスなどの、多様なメモリデバイスのうちのいずれかによって形成され得る。復号ピクチャバッファ(DPB)230は、フィルタリングされた1つ以上のブロック221を格納するように構成され得る。復号ピクチャバッファ230は更に、同じ現在ピクチャの又は例えば先行再構成ピクチャなどの異なるピクチャの、先行して再構成されてフィルタリングされたブロック221といった、他の先行したフィルタリングされたブロックを格納するように構成されてもよく、また、例えばインター予測のために、完全な先行した再構成すなわち復号されたピクチャ(並びに対応する参照ブロック及びサンプル)、及び/又は部分的に再構成された現在ピクチャ(並びに対応する参照ブロック及びサンプル)を提供し得る。復号ピクチャバッファ(DPB)230はまた、例えば再構成ブロック215がループフィルタユニット220によってフィルタリングされない場合に、1つ以上のフィルタリングされていない再構成ブロック215、又は一般に、フィルタリングされていない再構成サンプルを格納するように構成されてもよく、あるいは、再構成ブロック又は再構成サンプルの任意の他の更に処理されたバージョンを格納するように構成されてもよい。
モード選択(分割&予測)
モード選択ユニット260は、分割ユニット262、インター予測ユニット244、及びイントラ予測ユニット254を有し、例えば元のブロック203(現在ピクチャ17の現在ブロック203)といった、元のピクチャデータと、例えば復号ピクチャバッファ230又は他のバッファ(例えば、ラインバッファ、図示せず)からの、例えば同一(現在)ピクチャの及び/又は1つ若しくは複数の先行復号ピクチャからのフィルタリングされた及び/又はフィルタリングされていない再構成サンプル若しくはブロックといった、再構成ピクチャデータと、を受信又は取得するように構成される。再構成ピクチャデータは、予測ブロック265又は予測子265を得るために、例えばインター予測又はイントラ予測である予測のための参照ピクチャデータとして使用される。
モード選択ユニット260は、現在ブロック予測モードについての分割(分割なしを含む)及び予測モード(例えば、イントラ又はインター予測モード)を決定又は選択し、対応する予測ブロック265を生成するように構成されることができ、該予測ブロック265が、残差ブロック205の計算のため及び再構成ブロック215の再構成のために使用される。
モード選択ユニット260の実施形態は、最良の一致若しくは換言して最小の残差(最小の残差は、伝送又は記憶のためにより良い圧縮を意味する)又は最小のシグナリングオーバヘッド(最小のシグナリングオーバヘッドは、伝送又は記憶のためにより良い圧縮を意味する)を提供するものである、あるいは両方を考慮するかバランスさせるかするものである分割及び予測モードを(例えば、モード選択ユニット260によってサポートされているもの又はモード選択ユニット260に利用可能なものから)選択するように構成され得る。モード選択ユニット260は、レート歪み最適化(rate distortion optimization;RDO)に基づいて分割及び予測モードを決定するように、すなわち、最小のレート歪みを提供する予測モードを選択するように構成されてもよい。この文脈における“最良”、“最小”、“最適”のような用語は、必ずしも全体的な“最良”、“最小”、“最適”などを意味するわけではなく、値が閾値又は他の制約を上回るか下回るかして、“準最適な選択”ではあるが複雑さ及び処理時間を減少させることにつながる可能性があるといったような、終了基準又は選択基準の達成をも意味し得る。
換言すれば、分割ユニット262は、映像シーケンスからのピクチャを一連のコーディングツリーユニット(CTU)へと分割するように構成されることができ、CTU203は更に、例えば、四分木分割(QT)、二分木分割(BT)若しくは三分木分割(TT)、又はこれらの任意の組み合わせを繰り返し用いて、より小さいブロックパーティション又はサブブロック(これらもやはりブロックを形成する)へと分割されることができ、また、分割ユニット262は、例えば、ブロックパーティション又はサブブロックの各々について予測を実行するように構成されることができ、モード選択は、分割されるブロック203のツリー構造の選択を有し、予測モードは、ブロックパーティション又はサブブロックの各々に適用される。
以下、ビデオエンコーダ20の一例によって行われる分割(例えば、分割ユニット260による)及び予測処理(インター予測ユニット244及びイントラ予測ユニット254による)を更に詳細に説明する。
分割
分割ユニット262は、映像シーケンスからのピクチャを一連のコーディングツリーユニット(CTU)に分割するように構成されることができ、また、分割ユニット262は、コーディングツリーユニット203を、例えば正方形又は長方形のいっそう小さいサイズのブロックといった、より小さいパーティションに分割する(又はスプリットする)ことができる。3つのサンプルアレイを持つピクチャでは、CTUは、ルマサンプルのN×Nブロックを対応する2つのクロマサンプルのブロックと共に備えて構成される。CTUでのルマブロックの最大許容サイズは、開発中のバーサタイルビデオコーディング(VVC)では128×128であるように指定されているが、将来的には、例えば256×256など、128×128ではない値であるように指定されるかもしれない。ピクチャのこれらCTUが、スライス/タイルグループ、タイル又はブリックとしてクラスタ化/グループ化され得る。タイルはピクチャの長方形領域をカバーし、タイルは1つ以上のブリックへと分けられ得る。ブリックは、タイル内のある数のCTU行で構成される。複数のブリックへと分割されないタイルは、ブリックとして参照されることがある。しかし、ブリックは、タイルのうちの真のサブセットであり、タイルとして参照されることはない。VVCでは、ラスタスキャンスライス/タイルグループモードと矩形スライスモードという、タイルグループの2つのモードがサポートされている。ラスタスキャンタイルグループモードにおいて、スライス/タイルグループは、ピクチャのタイルラスタスキャンにおける一連のタイルを含む。矩形スライスモードでは、スライスは、ピクチャの矩形領域を集団で形成する、ピクチャのある数のブリックを含む。矩形スライス内のブリックは、スライスのブリックラスタスキャンの順である。より小さいこれらのブロック(これらはサブブロックとして参照されることもある)が、さらに小さいパーティションへと更に分割されてもよい。これは、ツリー分割又は階層ツリー分割とも呼ばれ、例えばルートツリーレベル0(階層レベル0、深さ0)にあるルートブロックを再帰的に分割することができ、例えば、ツリーレベル1(階層レベル1、深さ1)にあるノードといった次の下位ツリーレベルの2つ以上のブロックに分割され、これらのブロックが再び、例えばツリーレベル2(階層レベル2、深さ2)といった次の下位レベルの2つ以上のブロックに分割される等々、例えば最大ツリー深さ又は最小ブロックサイズに到達するといった終了基準が満たされるなどによって分割が終了するまで続けられ得る。それ以上分割されないブロックは、ツリーのリーフブロック又はリーフノードとも呼ばれる。2つのパーティションへの分割を用いるツリーは二分木(BT)と呼ばれ、3つのパーティションへの分割を用いるツリーは三分木(TT)と呼ばれ、そして、4つのパーティションへの分割を用いるツリーは四分木(QT)と呼ばれる。
例えば、コーディングツリーユニット(CTU)は、3つのサンプルアレイを有するピクチャの、ルマサンプルのCTB、2つの対応するクロマサンプルのCTB、又はモノクロピクチャの若しくは3つの別々のカラープレーンを用いてコーディングされるピクチャのサンプルのCTBと、サンプルをコーディングするのに使用される構文構造、であるとすることができ、あるいはそれらを有することができる。対応して、コーディングツリーブロック(CTB)は、何らかの値NでのサンプルのN×Nブロックとすることができ、ある成分を複数のCTBへと分けることが分割である。コーディングユニット(CU)は、3つのサンプルアレイを有するピクチャの、ルマサンプルのコーディングブロック、2つの対応するクロマサンプルのコーディングブロック、又はモノクロピクチャの若しくは3つの別々のカラープレーンを用いてコーディングされるピクチャのサンプルのコーディングブロックと、サンプルをコーディングするのに使用される構文構造、であるとすることができ、あるいはそれらを有することができる。対応して、コーディングブロック(CB)は、何らかの値M及びNでのサンプルのM×Nブロックとすることができ、CTBを複数のコーディングブロックへと分けることが分割である。
実施形態において、例えばHEVCによれば、コーディングツリーユニット(CTU)は、コーディングツリーと表記される四分木構造を用いることによってCUにスプリットされ得る。ピクチャ領域をインターピクチャ(時間)予測を用いてコーディングするか、それともイントラピクチャ(空間)予測を用いてコーディングするかの決定が、リーフCUレベルで為される。各リーフCUが更に、PUスプリットタイプに従って、1つ、2つ、又は4つのPUにスプリットされ得る。1つのPU内では、同じ予測プロセスが適用され、関連情報がPUベースでデコーダに伝送される。PUスプリット型に基づいて予測プロセスを適用することによって残差ブロックを得た後に、リーフCUが、CUに対するコーディングツリーと同様の別の四分木構造に従って変換ユニット(TU)に分割され得る。
実施形態において、例えばバーサタイルビデオコーディング(VVC)と称される現在開発中の最新の映像コーディング標準によれば、二分割及び三分割セグメンテーション構造を用いるコンバインド四分木ネスト化マルチタイプツリーが、例えば、コーディングツリーユニットを分割するために使用される。コーディングツリーユニット内のコーディングツリー構造において、CUは正方形又は長方形のいずれかの形状を持つことができる。例えば、コーディングツリーユニット(CTU)は先ず四分木によって分割される。次いで、四分木リーフノードが更にマルチタイプツリー構造によって分割され得る。マルチタイプツリー構造には、垂直二分割(SPLIT_BT_VER)、水平二分割(SPLIT_BT_HOR)、垂直三分割(SPLIT_TT_VER)、水平三分割(SPLIT_TT_HOR)という4つのスプリットタイプが存在する。マルチタイプツリーリーフノードはコーディングユニット(CU)と呼ばれ、CUが最大変換長に対して大きすぎない限り、このセグメンテーションが、更なる分割なしで予測及び変換処理に使用される。これが意味することは、ほとんどのケースで、ネスト化マルチタイプツリーコーディングブロック構造を持つ四分木においてCU、PU、及びTUは同じブロックサイズを持つということである。例外が、サポートされる最大変換長がCUの色成分の幅又は高さよりも小さいときに発生する。VVCは、ネスト化マルチタイプツリーコーディングツリー構造を有する四分木におけるパーティションスプリット情報の、独特なシグナリング機構を開発している。そのシグナリング機構において、コーディングツリーユニット(CTU)は四分木のルートとして扱われ、先ず四分木構造によって分割される。次いで、各四分木ツリーリーフノード(それを許すのに十分な大きさである場合)が更にマルチタイプツリー構造によって分割される。マルチタイプツリー構造では、ノードが更に分割されるかを指し示すために第1のフラグ(mtt_split_cu_flag)がシグナリングされ、ノードが更に分割される場合、スプリット方向を指し示すために第2のフラグ(mtt_split_cu_vertical_flag)がシグナリングされ、そして、スプリットが二分割であるのか三分割であるのかを指し示すために第3のフラグ(mtt_split_cu_binary_flag)がシグナリングされる。mtt_split_cu_vertical_flag及びmtt_split_cu_binary_flagの値に基づき、CUのマルチタイプツリースプリットモード(MttSplitMode)が、予め定められたルール又はテーブルに基づいてデコーダによって導出され得る。なお、例えばVVCハードウェアデコーダにおける64×64ルマブロック及び32×32クロマパイプライン設計といった、ある特定の設計では、図6に示すように、ルマコーディングブロックの幅又は高さのいずれかが64よりも大きい場合にTTスプリットが禁止される。TTスプリットはまた、クロマコーディングブロックの幅又は高さのいずれかが32よりも大きい場合にも禁止される。このパイプライン設計は、ピクチャを、ピクチャ内の重なり合わないユニットとして画成される仮想パイプラインデータユニット(Virtual pipeline data unit;VPDU)へと分けることになる。ハードウェアデコーダにて、連続したVPDUが複数のパイプライン段によって同時に処理される。VPDUサイズは、ほとんどのパイプライン段におけるバッファサイズにおおよそ比例し、それ故に、VPDUサイズを小さく保つことが重要である。ほとんどのハードウェアデコーダでは、VPDUサイズは最大の変換ブロック(TB)サイズに設定され得る。しかしながら、VVCでは、三分木(TT)及び二分木(BT)パーティションが、VPDUサイズの増大につながり得る。
さらに、留意すべきことには、ツリーノードブロックの一部が下又は右のピクチャ境界を越える場合、そのツリーノードブロックは、コーディングされる全CUの全てのサンプルがピクチャ境界の内側に位置するまでスプリットされることを強いられる。
一例として、イントラサブパーティション(Intra Sub-Partitions;ISP)ツールは、ルマイントラ予測ブロックを、ブロックサイズに応じて、垂直方向又は水平方向に2つ又は4つのサブパーティションへと分け得る。
一例において、ビデオエンコーダ20のモード選択ユニット260は、ここに記載される分割技術の任意の組み合わせを実行するように構成されてもよい。
上述のように、ビデオエンコーダ20は、(例えば、所定の)予測モードのセットから最良又は最適な予測モードを決定又は選択するように構成される。予測モードのセットは、例えば、複数のイントラ予測モード及び/又は複数のインター予測モードを有し得る。
イントラ予測
イントラ予測モードのセットは、例えばHEVCで規定されるように、35個の異なるイントラ予測モード、例えば、DC(又は平均)モード及びプレーナモードのような非方向モード、又は方向モード、を有することができ、あるいは、VVC向けに規定されるように、67個の異なるイントラ予測モード、例えば、DC(又は平均)モード及びプレーナモードのような非方向モード、又は方向モード、を有することができる。一例として、幾つかの従来の角度イントラ予測モードが、例えばVVCで規定されるように、非正方形ブロック向けの広角イントラ予測モードに適応的に置き換えられる。他の一例として、DC予測での除算演算を回避するために、非正方形ブロックについての平均を計算するのに、長辺側のみが使用される。また、プレーナモードのイントラ予測の結果が、位置依存イントラ予測組み合わせ(position dependent intra prediction combination;PDPC)法によって更に修正され得る。
イントラ予測ユニット254は、同じ現在ピクチャの隣接ブロックの再構成サンプルを用いて、イントラ予測モードのセットのうちのあるイントラ予測モードに従ってイントラ予測ブロック265を生成するように構成される。
イントラ予測ユニット254(又は、一般に、モード選択ユニット260)は更に、イントラ予測パラメータ(又は、一般に、そのブロックに対して選択されたイントラ予測モードを指し示す情報)を、符号化ピクチャデータ21に含める構文要素266の形態で、エントロピー符号化ユニット270に出力するように構成され、その結果、例えば、ビデオデコーダ30が復号のために予測パラメータを受信して使用し得る。
インター予測
インター予測モード(又は取り得るインター予測モード)のセットは、利用可能な参照ピクチャ(すなわち、先行する少なくとも部分的に復号されたピクチャ、例えば、DBP230に格納されている)、及び他のインター予測パラメータ、例えば、最良一致の参照ブロックを探索するために使用されるのが、参照ピクチャのうち、参照ピクチャ全体であるのか、それとも、例えば現在ブロックの領域の周りのサーチウィンドウ領域といった一部のみであるのか、及び/又は、例えば、例えば二分の一/半ペル、四分の一ペル、及び/又は1/16ペル補間といったピクセル補間が適用されるか否か、に依存する。
上の予測モードに加えて、スキップモード、直接モード、及び/又は他のインター予測モードが適用されてもよい。
例えば、拡張マージ予測では、そのようなモードのマージ候補リストが、次の5種類の候補を順に含めることによって構築される:空間隣接CUからの空間MVP、コロケートCUからの時間MVP、FIFOテーブルからの履歴ベースMVP、ペア平均MVP、及びゼロMV。また、マージモードのMVの精度を高めるために、バイラテラルマッチングベースのデコーダ側動きベクトル精緻化(decoder side motion vector refinement;DMVR)が適用されてもよい。動きベクトル差を使用するマージモードに由来するものであるMVD付きマージモード(Merge mode with MVD;MMVD)では、スキップフラグ及びマージフラグを送った直後に、CUに対してMMVDモードが使用されるのかを指定するために、MMVDフラグがシグナリングされる。また、CUレベルの適応動きベクトルレゾリューション(adaptive motion vector resolution;AMVR)スキームが適用されてもよい。AMVRは、CUのMVDが異なるか精度でコーディングされることを可能にする。現在CUに対する予測モードに応じて、現在CUのMVDが適応的に選択され得る。CUがマージモードでコーディングされるとき、コンバインドイントラ/インター予測(combined inter/intra prediction;CIIP)モードが現在CUに適用されてもよい。CIIP予測を得るために、インター予測信号及びイントラ予測信号の加重平均が行われる。アフィン運動補償予測では、ブロックのアフィン動きフィールドが、2つの制御点(4パラメータ)又は3つの制御点(6パラメータ)の動きベクトルの動き情報によって記述される。サブブロックベース時間動きベクトル予測(subblock-based temporal motion vector prediction;SbTMVP)は、HEVCにおける時間動きベクトル予測(temporal motion vector prediction;TMVP)と同様であるが、現在CU内のサブCUの動きベクトルを予測するものである。以前はBIOと呼ばれていた双方向オプティカルフロー(bi-directional optical flow;BDOF)は、特に乗算の数及び乗数のサイズに関して遥かに少ない計算のみを必要とするいっそう単純なバージョンである。三角パーティションモードでは、そのようなモードにおいて、対角スプリット又は逆対角スプリットのいずれかを用いてCUが2つの三角形パーティションに等分される。その他にも、双予測モードは、2つの予測信号の加重平均を可能にするために、単純平均を超えるものに拡張されている。
インター予測ユニット244は、動き推定(ME)ユニット及び動き補償(MC)ユニット(どちらも図2には示さず)を含み得る。動き推定ユニットは、動き推定のために、ピクチャブロック203(現在ピクチャ17の現在ピクチャブロック203)と、復号ピクチャ231、又は例えば1つ又は複数の他の/異なる先行復号ピクチャ231の再構成ブロックといった少なくとも1つ又は複数の先行再構成ブロックと、を受信又は取得するように構成され得る。例えば、映像シーケンスは現在ピクチャと先行復号ピクチャ231とを有することができ、すなわち換言すれば、現在ピクチャ及び先行復号ピクチャ231は、映像シーケンスを形成する一連のピクチャの一部であることができ、あるいはそれを形成することができる。
エンコーダ20は、例えば、複数の他のピクチャの中の同一ピクチャ又は複数の異なるピクチャの複数の参照ブロックから参照ブロックを選択し、参照ピクチャ(又は参照ピクチャインデックス)及び/又は参照ブロックの位置(x,y座標)と現在ブロックの位置との間のオフセット(空間オフセット)を、インター予測パラメータとして、動き推定ユニットに提供するように構成され得る。このオフセットは、動きベクトル(MV)とも呼ばれる。
動き補償ユニットは、インター予測パラメータを例えば受信するなどして取得し、インター予測パラメータに基づいて又はそれを用いてインター予測を実行して、インター予測ブロック265を得るように構成される。動き補償ユニットによって実行される動き補償は、動き推定によって決定された動き/ブロックベクトルに基づいて、予測ブロックをフェッチ又は生成することを含むことができ、場合により、サブピクセル精度への補間を実行する。補間フィルタリングは、既知のピクセルサンプルから追加のピクセルサンプルを生成することができ、それ故に、ピクチャブロックを符号化するのに使用され得る候補予測ブロックの数を増やせる可能性がある。現在ピクチャブロックのPUに関する動きベクトルを受信すると、動き補償ユニットは、動きベクトルが指す予測ブロックを参照ピクチャリストのうちの1つ内で位置特定し得る。
動き補償ユニットはまた、映像スライスのピクチャブロックを復号する際にビデオデコーダ30によって使用される、ブロック及び映像スライスに関連する構文要素を生成し得る。スライス及びそれぞれの構文要素に加えて、又はこれらの代わりとして、タイルグループ及び/又はタイル並びにそれぞれの構文要素が生成されるか使用されるかしてもよい。
エントロピーコーディング
エントロピー符号化ユニット270は、例えば、量子化された係数209、インター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ、及び/又は他の構文要素に対して、エントロピー符号化アルゴリズム若しくはスキーム(例えば、可変長コーディング(variable length coding;VLC)スキーム、コンテキスト適応VLCスキーム(context adaptive VLC;CAVLC)、算術コーディングスキーム、二値化、コンテキスト適応バイナリ算術コーディング(context adaptive binary arithmetic coding;CABAC)、構文スベースコンテキスト適応バイナリ算術コーディング(syntax-based context-adaptive binary arithmetic coding;SBAC)、確率インターバルパーティショニングエントロピー(probability interval partitioning entropy;PIPE)コーディング、又は他のエントロピー符号化方法若しくは技術)又はバイパス(圧縮なし)を適用して、出力272を用いて出力され得る符号化ピクチャデータ21を例えば符号化ビットストリーム21の形態で得るように構成され、その結果、例えば、ビデオデコーダ30が復号のためにこれらのパラメータを受信して使用し得る。符号化ビットストリーム21は、ビデオデコーダ30に送信されてもよいし、あるいは、後の送信又はビデオデコーダ30による取り出しのためにメモリに格納されてもよい。
映像ストリームを符号化するために、ビデオエンコーダ20が他の構成バリエーションが使用されてもよい。例えば、非変換ベースのエンコーダ20は、特定のブロック又はフレームに対して、変換処理ユニット206を用いずに直接的に残差信号を量子化することができる。他の一実装において、エンコーダ20は、単一のユニットへと組み合わされた量子化ユニット208及び逆量子化ユニット210を有することができる。
デコーダ及び復号方法
図3は、この本出願の技術を実装するように構成されたビデオデコーダ30の一例を示している。ビデオデコーダ30は、例えばエンコーダ20によって符号化された、符号化ピクチャデータ21(例えば、符号化ビットストリーム21)を受信して、復号ピクチャ331を得るように構成される。符号化ピクチャデータ又はビットストリームは、例えば、符号化映像スライス(及び/又はタイルグループ若しくはタイル)のピクチャブロックを表すデータ及び付随する構文要素といった、符号化ピクチャデータを復号するための情報を有する。
図3の例において、デコーダ30は、エントロピー復号ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構成ユニット314(例えば、加算器314)、ループフィルタ320、復号ピクチャバッファ(DBP)330、モード適用ユニット360、インター予測ユニット344、及びイントラ予測ユニット354を有している。インター予測ユニット344は、動き補償ユニットとすることができ、あるいはそれを含むことができる。ビデオデコーダ30は、一部の例において、図2からのビデオエンコーダ100に関して説明した符号化パスに対して概して逆の復号パスを実行し得る。
エンコーダ20に関して説明したように、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループフィルタ220、復号ピクチャバッファ(DPB)230、インター予測ユニット344、及びイントラ予測ユニット354はまた、ビデオエンコーダ20の“内蔵デコーダ”を形成するとしても参照される。従って、逆量子化ユニット310は、機能において逆量子化ユニット110に同じであるとすることができ、逆変換処理ユニット312は、機能において逆変換処理ユニット212に同じであるとすることができ、再構成ユニット314は、機能において再構成ユニット214に同じであるとすることができ、ループフィルタ320は、機能においてループフィルタ220に同じであるとすることができ、復号ピクチャバッファ330は、機能において復号ピクチャバッファ230に同じであるとすることができる。従って、ビデオエンコーダ20のそれぞれのユニット及び機能についての説明は、対応して、ビデオデコーダ30のそれぞれのユニット及び機能に当てはまる。
エントロピー復号
エントロピー復号ユニット304は、ビットストリーム21(又は、一般に、符号化ピクチャデータ21)を構文解析し、例えば、符号化ピクチャデータ21に対してエントロピー復号を実行して、例えば、量子化された係数309、及び/又は復号されたコーディングパラメータ(図3には示さず)、例えば、インター予測パラメータ(例えば、参照ピクチャインデックス及び動きベクトル)、イントラ予測パラメータ(例えば、イントラ予測モード又はインデックス)、変換パラメータ、量子化パラメータ、ループフィルタパラメータ、及び/又は他の構文要素のうちのいずれか又は全て、を得るように構成される。エントロピー復号ユニット304は、エンコーダ20のエントロピー符号化ユニット270に関して説明した符号化スキームに対応する復号アルゴリズム又はスキームを適用するように構成され得る。エントロピー復号ユニット304は更に、インター予測パラメータ、イントラ予測パラメータ及び/又は他の構文要素をモード適用ユニット360に提供するとともに、他のパラメータをデコーダ30の他のユニットに提供するように構成され得る。ビデオデコーダ30は、映像スライスレベル及び/又は映像ブロックレベルで構文要素を受信し得る。スライス及びそれぞれの構文要素に加えて、又はこれらの代わりとして、タイルグループ及び/又はタイル並びにそれぞれの構文要素が受信及び/又は使用されてもよい。
逆量子化
逆量子化ユニット310は、符号化ピクチャデータ21から量子化パラメータ(QP)(又は、一般に、逆量子化に関する情報)及び量子化された係数を受け取り(例えばエントロピー復号ユニット304により、例えば構文解析及び/又は復号することによって)、復号した量子化された係数309に対して量子化パラメータに基づいて逆量子化を適用して、変換係数311としても参照され得るものである量子化解除された係数311を得るように構成され得る。逆量子化プロセスは、量子化の程度、及び同様に、適用されるべき逆量子化の程度を決定するために、映像スライス(又はタイル若しくはタイルグループ)内の各映像ブロックに対してビデオエンコーダ20によって決定された量子化パラメータを使用することを含み得る。
逆変換
逆変換処理ユニット312は、変換係数311とも称される量子化解除された係数311を受け取り、そして、サンプルドメインにおける再構成残差ブロック213を得るために、量子化解除された係数311に変換を適用するように構成され得る。再構成残差ブロック213は、変換ブロック313として参照されることもある。この変換は、例えば逆DCT、逆DST、逆整数変換、又は概念的に類似した逆変換プロセスといった、逆変換とし得る。逆変換処理ユニット312は更に、符号化ピクチャデータ21から変換パラメータ又は対応する情報を受け取り(例えばエントロピー復号ユニット304により、例えば構文解析及び/又は復号することによって)、量子化解除された係数311に適用すべき変換を決定するように構成され得る。
再構成
再構成ユニット314(例えば、加算器(adder又はsummer)314)は、例えば再構成残差ブロック313のサンプル値と予測ブロック365のサンプル値とを足し合わせることによって、再構成残差ブロック313を予測ブロック365に足し合わせて、サンプルドメインにおける再構成ブロック315を得るように構成され得る。
フィルタリング
ループフィルタユニット320(コーディングループ内又はコーディングループ後のいずれか)は、例えば、ピクセル遷移を平滑化するために、又はその他の方法で映像品質を向上させるために、再構成ブロック315をフィルタリングして、フィルタリングされたブロック321を得るように構成される。ループフィルタユニット320は、例えば、デブロッキングフィルタ、サンプル適応オフセット(sample-adaptive offset;SAO)フィルタ、又は例えば適応ループフィルタ(adaptive loop filter;ALF)、ノイズ抑制フィルタ(noise suppression filter;NSF)若しくはこれらの任意の組み合わせといった1つ以上の他のフィルタなどの、1つ以上のループフィルタを有し得る。一例において、ループフィルタユニット220は、デブロッキングフィルタ、SAOフィルタ、及びALFフィルタを有し得る。フィルタリングプロセスの順序は、デブロッキングフィルタ、SAO及びALFとし得る。他の一例では、クロマスケーリング付きルママッピング(luma mapping with chroma scaling;LMCS)と呼ばれるプロセス(すなわち、適応インループリシェイパ)が追加される。このプロセスは、デブロッキングの前に実行される。他の一例において、デブロッキングフィルタプロセスは、例えば、アフィンサブブロックエッジ、ATMVPサブブロックエッジ、サブブロック変換(sub-block transform;SBT)エッジ、及びイントラサブパーティション(intra sub-partition;ISP)エッジといった、内部のサブブロックエッジにも適用され得る。ループフィルタユニット320は、図3ではインループフィルタとして示されているが、他の構成では、ループフィルタユニット320は、ポストループフィルタとして実装されてもよい。
復号ピクチャバッファ
そして、ピクチャの復号映像ブロック321は、他のピクチャの後の動き補償のための参照ピクチャとして及び/又はそれぞれの表示の出力のために復号ピクチャ331を格納するものである復号ピクチャバッファ330に格納される。
デコーダ30は、復号ピクチャ311を、ユーザへの提示又は表示のために例えば出力312を介して出力するように構成される。
予測
機能において、インター予測ユニット344はインター予測ユニット244(特に、動き補償ユニット)に同じであるとすることができ、イントラ予測ユニット354はイントラ予測ユニット254と同じであるとすることができ、符号化ピクチャデータ21から受信した(例えばエントロピー復号ユニット304により、構文解析及び/又は復号することによって)分割及び/又は予測パラメータ若しくはそれぞれの情報に基づいて、スプリット若しくは分割の決定及び予測を実行する。モード適用ユニット360は、再構成ピクチャ、ブロック又はそれぞれのサンプル(フィルタリングされた又はフィルタリングされていない)に基づいてブロック毎に予測(イントラ予測又はインター予測)を実行して、予測ブロック365を得るように構成され得る。
映像スライスがイントラコーディング(I)スライスとしてコーディングされるとき、モード適用ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モードと、現在ピクチャの先行復号ブロックからのデータとに基づいて、現在映像スライスのピクチャブロックについての予測ブロック365を生成するように構成される。映像ピクチャが、インターコーディング(すなわち、B又はP)スライスとしてコーディングされるとき、モード適用ユニット360のインター予測ユニット344(例えば、動き補償ユニット)は、エントロピー復号ユニット304から受信した動きベクトル及び他の構文要素に基づいて、現在映像スライスの映像ブロックについての予測ブロック365を生成するように構成される。インター予測では、参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つから予測ブロックが生成され得る。ビデオデコーダ30は、DPB330に格納された参照ピクチャに基づいて、デフォルトの構築技術を使用して、リスト0及びリスト1なる参照フレームリストを構築し得る。スライス(例えば、映像スライス)に加えて又は代えてタイルグループ(例えば、映像タイルグループ)及び/又はタイル(例えば、映像タイル)を使用する実施形態に対しても、又はそのような実施形態によっても、同じ又は同様のものを適用することができ、例えば、I、P又はBタイルグループ及び/又はタイルを用いて映像がコーディングされ得る。
モード適用ユニット360は、動きベクトル又は関連情報と他の構文要素とを構文解析することによって、現在映像スライスの映像ブロックについての予測情報を決定するように構成され、該予測情報を使用して、復号している現在映像ブロックについての予測ブロックを生成する。例えば、モード適用ユニット360は、受け取った構文要素の一部を用いて、映像スライスの映像ブロックをコーディングするのに使用された予測モード(例えば、イントラ予測又はインター予測)、インター予測スライスタイプ(例えば、Bスライス、Pスライス、又はGPBスライス)、スライスに関する参照ピクチャリストのうちの1つ以上の構築情報、スライスの各インター符号化映像ブロックについての動きベクトル、スライスの各インターコーディング映像ブロックについてのインター予測ステータス、及び現在映像スライス内の映像ブロックを復号するための他の情報を決定する。スライス(例えば、映像スライス)に加えて又は代えてタイルグループ(例えば、映像タイルグループ)及び/又はタイル(例えば、映像タイル)を使用する実施形態に対しても、又はそのような実施形態によっても、同じ又は同様のものを適用することができ、例えば、I、P又はBタイルグループ及び/又はタイルを用いて映像がコーディングされ得る。
図3に示すビデオデコーダ30の実施形態は、スライス(映像スライスとしても参照される)を使用することによってピクチャを分割及び/又は復号するように構成されることができ、ピクチャが、1つ以上のスライス(典型的に重なり合わない)に分割され又は1つ以上のスライス(典型的に重なり合わない)を用いて復号され得るとともに、各スライスが、1つ以上のブロック(例えば、CTU)又は1つ以上のグループのブロック(例えば、タイル(H.265/HEVC及びVVC)又はブリック(VVC))を有し得る。
図3に示すビデオデコーダ30の実施形態は更に、スライス/タイルグループ(映像タイルグループとしても参照される)及び/又はタイル(映像タイルとしても参照される)を使用することによってピクチャを分割及び/又は復号するように構成されることができ、ピクチャが、1つ以上のスライス/タイルグループ(典型的に重なり合わない)に分割され又は1つ以上のスライス/タイルグループ(典型的に重なり合わない)を用いて復号され得るとともに、各スライス/タイルグループが、例えば、1つ以上のブロック(例えば、CTU)又は1つ以上のタイルを有することができ、各タイルは、例えば、矩形の形状のものとし得るとともに、例えば完全なるブロック又は部分的なブロックといった、1つ以上のブロック(例えば、CTU)を有し得る。
符号化ピクチャデータ21を復号するために、ビデオデコーダ30の他のバリエーションが使用されてもよい。例えば、デコーダ30は、ループフィルタリングユニット320を用いずに出力映像ストリームを生成することができる。例えば、非変換ベースのデコーダ30は、特定のブロック又はフレームに対して、逆変換処理ユニット312を用いずに直接的に残差信号を逆量子化することができる。他の一実装において、ビデオデコーダ30は、単一のユニットへと組み合わされた逆量子化ユニット310及び逆変換処理ユニット312を有することができる。
理解されるべきことには、エンコーダ20及びデコーダ30において、現在ステップの処理結果が更に処理されてから次ステップに出力されてもよい。例えば、補間フィルタリング、動きベクトル導出、又はループフィルタリングの後に、その補間フィルタリング、動きベクトル導出、又はループフィルタリングの処理結果に対して、例えばクリップ又はシフトなどの更なる操作が実行されてもよい。
なお、現在ブロックの導出される動きベクトル(以下に限られないが、アフィンモードの制御点動きベクトル、アフィン、プレーナ、ATMVPモードにおけるサブブロック動きベクトル、時間動きベクトルなどを含む)に対して、更なる操作が適用されてもよい。例えば、動きベクトルの値は、その表現ビットに従った予め定められた範囲に制約される。動きベクトルの表現ビットがbitDepthである場合、範囲は、-2^(bitDepth-1)~2^(bitDepth-1)-1であり、ここで“^”は指数を意味する。例えば、bitDepthが16に等しく設定される場合、範囲は、-32768~32767であり、bitDepthが18に等しく設定される場合には、範囲は、-131072~131071である。例えば、導出される動きベクトル(例えば、1つの8×8ブロック内の4つの4×4サブブロックのMV)の値は、それら4つの4×4サブブロックのMVの整数部の間の最大の差が、例えば1ピクセル以下など、Nピクセル以下であるように制約される。ここでは、bitDepthに従って動きベクトルを制約する2つの方法を提供する。
図4は、開示の一実施形態に従った映像コーディング装置400の概略図である。映像コーディング装置400は、ここに記載される開示実施形態を実装するのに適している。一実施形態において、映像コーディング装置400は、例えば図1Aのビデオデコーダ30などのデコーダ又は例えば図1Aのビデオエンコーダ20などのエンコーダとし得る。
映像コーディング装置400は、データを受信するための入口ポート410(又は入力ポート410)及び受信器ユニット(Rx)420と、データを処理するプロセッサ、論理ユニット、又は中央演算処理ユニット(CPU)430と、データを送信するための送信器ユニット(Tx)440及び出口ポート450(又は出力ポート450)と、データを格納するためのメモリ460とを含んでいる。映像コーディング装置400はまた、光信号又は電気信号の出口又は入口のために、入口ポート410、受信器ユニット420、送信器ユニット440、及び出口ポート450に結合された、光-電気(OE)コンポーネント及び電気-光(EO)コンポーネントを有し得る。
プロセッサ430は、ハードウェア及びソフトウェアによって実装される。プロセッサ430は、1つ以上の、CPUチップ、コア(例えば、マルチコアプロセッサとして)、FPGA、ASIC、及びDSPとして実装され得る。プロセッサ430は、入口ポート410、受信器ユニット420、送信器ユニット440、出口ポート450、及びメモリ460と連通している。プロセッサ430は、コーディングモジュール470を有する。コーディングモジュール470は、上述の開示実施形態を実装する。例えば、コーディングモジュール470は、様々なコーディング演算を実装し、処理し、準備し、又は提供する。コーディングモジュール470を含むことは、それ故に、映像コーディング装置400の機能への実質的な改良を提供し、異なる状態への映像コーディング装置400の変換を実現する。あるいは、コーディングモジュール470は、メモリ460に格納されてプロセッサ430によって実行される命令として実装される。
メモリ460は、1つ以上のディスク、テープドライブ、及びソリッドステートドライブを有することができ、また、オーバーフローデータ記憶デバイスとして使用されて、プログラムが実行のために選択されるときにそのようなプログラムを格納するとともに、プログラム実行中に読み出される命令及びデータを格納し得る。メモリ460は、例えば、揮発性及び/又は不揮発性とすることができ、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、三値連想メモリ(ternary content-addressable memory、TCAM)、及び/又はスタティックランダムアクセスメモリ(SRAM)とし得る。
図5は、例示的な一実施形態に従った、図1からのソース装置12及びデスティネーション装置14のいずれか又は双方として使用され得る装置500の簡略ブロック図である。
装置500内のプロセッサ502は、中央演算処理ユニットとし得る。あるいは、プロセッサ502は、現存の又は今後開発される情報を操作又は処理することが可能な任意の他のタイプのデバイス又は複数のデバイスであってもよい。開示される実装は、例えばプロセッサ502といった、図示のような単一のプロセッサで実施され得るものの、2つ以上のプロセッサを使用して速度及び効率における利点を達成してもよい。
装置500内のメモリ504は、一実装において、読み出し専用メモリ(ROM)デバイス又はランダムアクセスメモリ(RAM)デバイスとし得る。何らかの他の好適タイプの記憶デバイスがメモリ504として使用されてもよい。メモリ504は、バス512を用いてプロセッサ502によってアクセスされるコード及びデータ506を含むことができる。メモリ504は更に、オペレーティングシステム508及びアプリケーションプログラム510を含むことができ、アプリケーションプログラム510は、ここに記載される方法をプロセッサ502が実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム510はアプリケーション1乃至Nを含むことができ、それらは更に、ここに記載される方法を実行する映像コーディングアプリケーションを含む。
装置500はまた、例えばディスプレイ518などの1つ以上の出力装置を含むことができる。ディスプレイ518は、一例において、タッチ入力をセンシングするように動作可能なタッチ感知素子とディスプレイを組み合わせたタッチ感知ディスプレイとし得る。ディスプレイ518は、バス512を介してプロセッサ502に結合され得る。
ここでは単一のバスとして描かれているが、装置500のバス512は複数のバスで構成されてもよい。さらに、二次ストレージ514が、装置500の他のコンポーネントに直接的に結合されてもよいし、あるいは、ネットワークを介してアクセスされてもよく、また、例えばメモリカードなどの単一の集積ユニット、又は例えば複数のメモリカードなどの複数のユニットを有することができる。装置500は、従って、広範な多様な構成で実装されることができる。
この出願の現行ソリューションで実装され得る一部の技術は、以下のように導入される。なお、それらの技術の説明は、文書JVET-P2001-v14及びJVET-P2002-v2を参照しており、これらは、ウェブサイトhttp://phenix.int-evry.fr/jvet/からダウンロードすることができる。特定の実装は、JVET-P2001-v14及びJVET-P2002-v2によって導入された技術に基づく様々な異形を有してもよく、それは本出願によって限定されることではない。
双予測オプティカルフロー精緻化
双予測オプティカルフロー精緻化は、双予測のために一般的にシグナリングされる情報以外の情報をビットストリーム内で明示的にシグナリングすることなく、双予測の正確さを向上させるプロセスである。
双予測では、2つの動きベクトルに従って2つのインター予測が取得され、その後、加重平均を適用することによって、それらの予測が結合される。2つの参照パッチ(Prediction1、Prediction2)における量子化ノイズが相殺され、それにより、片予測と比較してコーディング効率を向上させるので、結合された予測は、低減された残差エネルギーをもたらすことができる。双予測における重み付けた結合は、式:
Bi-prediction=Prediction1*W1+Prediction2*W2+K
によって行われることができ、ここで、W1及びW2は、シグナリングされるか予め定められるかし得る重み係数である。Kは、これもシグナリングされるか予め定められるかし得る付加係数である。一例として、双予測は、W1及びW2を0.5に設定し、Kを0に設定して、
Bi-prediction=(Prediction1+Prediction2)/2
を用いて取得され得る。
オプティカルフロー精緻化の目標は、双予測の正確さを向上させることである。オプティカルフローは、2つの連続したフレーム間でオブジェクト又はカメラの動きによって生じる画像オブジェクトの見かけの動きのパターンである。オプティカルフロー精緻化プロセスは、オプティカルフロー方程式を適用することにより、双予測の正確さを向上させる。
第1のフレーム内のピクセルI(x,y,t)を考える(x及びyは空間座標に対応し、tは時間次元に対応する)。それが、dt時間後に撮影される次のフレームでは距離(v,v)だけ移動する。これらのピクセルは同じであり、強度は変化しないので、オプティカルフロー方程式は:
Figure 0007303894000005
によって与えられ、I(x,y,t)は、(x,y,t)の座標にあるピクセルの強度(サンプル値)を規定する。
小さい変位と、テイラー級数展開における高次項が無視できることとを仮定すると、オプティカルフロー方程式は:
Figure 0007303894000006
とも記述され得る。
ここで、∂I/∂x及び∂I/∂yは、位置(x,y)における水平方向及び垂直方向の空間サンプル勾配であり、∂I/∂tは、(x,y)における時間偏微分係数である。
オプティカルフロー精緻化は、双予測の品質を向上させるために、上の原理を利用する。
オプティカルフロー精緻化の実装は、典型的に以下のステップを含む:
1. サンプル勾配を計算する;
2. 第1予測と第2予測との間の差を計算する;
3. オプティカルフロー方程式を用いて得られた2つの参照パッチ間の誤差Δ:
Figure 0007303894000007

を最小化するピクセル又はピクセルのグループの変位を計算し、ここで、I(0)は、第1予測におけるサンプル値に対応し、I(1)は、第2予測におけるサンプル値であり、v及びvは、-x方向及び-y方向に計算される変位であり、そして、∂I(0)/∂x及び∂I(0)/∂yは、x方向及びy方向における勾配である。τ及びτは、そこで第1予測及び第2予測が得られた参照ピクチャまでの距離を表す。一部のアプローチは二乗誤差の和を最小化し、一部のアプローチは絶対誤差の和を最小化する。この最小化問題を解くために、所与の位置(x,y)の周りのサンプルのパッチが利用される;
4. 例えば以下:
Figure 0007303894000008

など、オプティカルフロー方程式の具体的な実装を使用する。ここで、predBIOは、オプティカルフロー精緻化プロセスの出力である修正予測を規定する。
サンプル勾配は、次式:
Figure 0007303894000009
によって取得され得る。
一部の実施形態では、各ピクセルについて変位を推定することの複雑さを減らすために、ピクセルのグループについて変位が推定される。一部の例において、4×4ルマサンプルのブロックについての改善された双予測を計算するために、その中心にあるサンプルの4×4ブロックを有する8×8ルマサンプルのブロックのサンプル値を用いて変位が推定される。
オプティカルフロー精緻化プロセスの入力は、2つの参照ピクチャからの予測サンプルであり、オプティカルフロー精緻化の出力は、オプティカルフロー方程式に従って計算される結合予測(predBIO)である。
一部の実施形態において、より高次のビット深さ項が関与する乗算を排除するために、オプティカルフロー(v,v)は、以下の式を用いて決定される。推定に使用されるサンプル(すなわち、i及びjスパン)は、オプティカルフローが推定されるサンプルの現在サンプル又は現在ブロックの近傍にある各リファレンスからの予測サンプルのセットである。一例において、4×4サンプルの現在ブロックに対して、その中心にあるサンプルの4×4ブロックを有する各リファレンスにおける予測サンプルの6×6ブロックが使用される。
Figure 0007303894000010
一具体例にて、双方向オプティカルフロー予測プロセスが導入される。
このプロセスへの入力は以下である:
- 現在コーディングブロックの幅及び高さを規定する2つの変数nCbW及びnCbH、
- 2つの(nCbW+2)×(nCbH+2)ルマ予測サンプルアレイpredSamplesL0及びpredSamplesL1、
- 予測リスト利用フラグpredFlagL0及びpredFlagL1、
- 参照インデックスrefIdxL0及びrefIdxL1、
- xIdx=0..(nCbW>>2)-1、yIdx=0..(nCbH>>2)-1での、双方向オプティカルフロー利用フラグbdofUtilizationFlag[xIdx][yIdx]。
このプロセスの出力は、ルマ予測サンプル値の(nCbW)×(nCbH)アレイpbSamplesである。
変数bitDepth、shift1、shift2、shift3、shift4、offset4、及びmvRefineThresが、次のように導出される:
- 変数bitDepthは、BitDepthYに等しく設定される。
- 変数shift1は、Max(2,14-bitDepth)に等しく設定される。
- 変数shift2は、Max(8,bitDepth-4)に等しく設定される。
- 変数shift3は、Max(5,bitDepth-7)に等しく設定される。
- 変数shift4は、Max(3,15-bitDepth)に等しく設定され、変数offset4は、1<<(shift4-1)に等しく設定される。
- 変数mvRefineThresは、Max(2,1<<(13-bitDepth))に等しく設定される。
xIdx=0..(nCbW>>2)-1、且つyIdx=0..(nCbH>>2)-1に対し、以下が適用される:
- 変数xSbは、(xIdx<<2)+1に等しく設定され、ySbは、(yIdx<<2)+1に等しく設定される。
- bdofUtilizationFlag[xSbIdx][yIdx]がFALSEに等しい場合、x=xSb-1..xSb+2、y=ySb-1..ySb+2に対し、現在サブブロックの予測サンプル値が、次のように導出される:
pbSamples[x][y]=Clip3(0,(2bitDepth)-1,(predSamplesL0[x+1][y+1]+offset2+predSamplesL1[x+1][y+1])>>shift2)
- それ以外の場合(bdofUtilizationFlag[xSbIdx][yIdx]がTRUEに等しい)、現在サブブロックの予測サンプル値が、次のように導出される:
- x=xSb-1..xSb+4、y=ySb-1..ySb+4に対し、以下の順序付けられたステップが適用される:
1. 予測サンプルアレイ内の対応するサンプル位置(x,y)の各々に対する位置(hx,vy)が、以下のように導出される:
hx=Clip3(1,nCbW,x)
vy=Clip3(1,nCbH,y)
2. 変数gradientHL0[x][y]、gradientVL0[x][y]、gradientHL1[x][y]及びgradientVL1[x][y]が、次のように導出される:
gradientHL0[x][y]=(predSamplesL0[hx+1][vy]-predSampleL0[hx-1][vy])>>shift1
gradientVL0[x][y]=(predSampleL0[hx][vy+1]-predSampleL0[hx][vy-1])>>shift1
gradientHL1[x][y]=(predSamplesL1[hx+1][vy]-predSampleL1[hx-1][vy])>>shift1
gradientVL1[x][y]=(predSampleL1[hx][vy+1]-predSampleL1[hx][vy-1])>>shift1
3. 変数temp[x][y]、tempH[x][y]及びtempV[x][y]が、次のように導出される:
diff[x][y]=(predSamplesL0[hx][vy]>>shift2)-(predSamplesL1[hx][vy]>>shift2))
tempH[x][y]=(gradientHL0[x][y]+gradientHL1[x][y])>>shift3
tempV[x][y]=(gradientVL0[x][y]+gradientVL1[x][y])>>shift3
- 変数sGx2、sGy2、sGxGy、sGxdI及びsGydIが、次のように導出される:
i,j=-1..4で、sGx2=ΣiΣj(tempH[xSb+i][ySb+j]*tempH[xSb+i][ySb+j])
i,j=-1..4で、sGy2=ΣiΣj(tempV[xSb+i][ySb+j]*tempV[xSb+i][ySb+j])
i,j=-1..4で、sGxGy=ΣiΣj(tempH[xSb+i][ySb+j]*tempV[xSb+i][ySb+j])
i,j=-1..4で、sGxdI=ΣiΣj(-tempH[xSb+i][ySb+j]*diff[xSb+i][ySb+j])
i,j=-1..4で、sGydI=ΣiΣj(-tempV[xSb+i][ySb+j]*diff[xSb+i][ySb+j])
- 現在サブブロックの水平及び垂直動きオフセットが:
vx=sGx2>0? Clip3(-mvRefineThres,mvRefineThres,-(sGxdI<<3)>>Floor(Log2(sGx2))):0
vy=sGy2>0? Clip3(-mvRefineThres,mvRefineThres,((sGydI<<3)-((vx*sGxGym)<<12+vx*sGxGys)>>1)>>Floor(Log2(sGx2))):0
として導出される
- x=xSb-1..xSb+2、y=ySb-1..ySb+2に対し、現在サブブロックの予測サンプル値が、次のように導出される:
bdofOffset=Round((vx*(gradientHL1[x+1][y+1]-gradientHL0[x+1][y+1]))>>1)+Round((vy*(gradientVL1[x+1][y+1]-gradientVL0[x+1][y+1]))>>1)
pbSamples[x][y]=Clip3(0,(2bitDepth)-1,(predSamplesL0[x+1][y+1]+offset4+predSamplesL1[x+1][y+1]+bdofOffset)>>shift4)
オプティカルフローを推定するための伝統的な方法は、オプティカルフロー方程式を用いて、2つの予測パッチ間の誤差Δを二乗した値の和を最小化しようとするものである。これらの方法は、サンプル勾配の和のために二乗した値を計算し、サンプル差にサンプル勾配の和を乗算することを必要とする。これらの乗算は、積の項のビット深度を増加させ、双予測オプティカルフローに基づく精緻化のために計算上の複雑さ及び積算器を増加させる。オプティカルフロー推定法の代替法は、以下により、如何なる乗算の必要性も排除する:
(a)二乗値の和に代えて、2つのリファレンスにおける勾配の和の絶対値の和を使用する;
(b)サンプル差の乗算をサンプルの勾配の和で置き換え、サンプルの差の乗算をサンプルの勾配の和の符号で置き換える;後者は、サンプルの勾配の和の符号に基づいて累積値にサンプル差の値を加算又は減算することにより、乗算なしで行われることができる。
しかしながら、この方法は、二乗誤差の和を最小化していた方法と比較すると、圧縮効率の低下を被る。従って、このような方法によって提供される計算上の単純化を維持しながら、この圧縮効率の低下を抑制することができる方法に対するニーズが存在する。
本出願の実施形態は、水平サンプル勾配の和及び垂直サンプル勾配の和の符号を計算する方法を改良する。従来のsign(x)評価は、正の値のxに対して1という値を返し、負の値のxに対して-1という値を返し、xが0のときに0という値を返す。本出願では、サンプル勾配の和のビット深度に依存する所定の閾値Tが使用される。Tより大きい値のxに対して1という値を返し、-Tより小さい値のxに対して-1という値を返し、それ以外の場合に0という値を返すように、sign(x)が修正される。このような変更があっても、オプティカルフロー推定法は乗算フリーであり続ける。
本出願の代替実施形態は、先ず、水平勾配の和及び垂直勾配の和を、(例えば、値を所定数のビット位置だけ右にシフトさせることによって)減少されたビット深度値に量子化し得る。続いて、所定の閾値も、それに従って、sign(x)出力値を得る前に量子化され得る。
特定の実施形態において、本出願は、sign(x)を、3よりも多いレベルを有する出力で置き換え得る。一例において、出力レベルの数は5である。所定の第2の閾値T’を用いて、T’よりも大きい勾配の和に対する出力値が2となり、-T’よりも小さい勾配の和に対する出力値が-2となるようにする。サンプル差に対して1ビットの算術左シフトを用いることにより、なおも乗算を回避することができる。
出願の実施形態は、-TとTとの間に入るサンプル勾配値を持つサンプルに関連するサンプル差を抑圧することによってコーディング効率を向上させる。乗算フリーの方法の低い計算複雑さの側面が維持される。
本出願の第1の例示的実施形態によれば、現在コーディングブロックの双予測のためのステップは、以下のステップを含む。
ステップ0:現在コーディングブロックについて動きベクトルのペアを取得する;
一部の実現可能な実装において、2つの動きベクトルが入力として取得される。当初の動きベクトルを、ビットストリーム内の指示情報に基づいて決定することができる。例えば、候補動きベクトルのリスト内の位置を指し示すインデックスがビットストリーム内でシグナリングされ得る。他の一例において、動きベクトル予測子インデックス及び動きベクトル差分値をビットストリーム内でシグナリングすることができる。他の一例において、これらの動きベクトルは、ビットストリーム内で指し示される動きベクトルの当初ペアから始めて、動きベクトル精緻化を用いて、精緻化動きベクトルとして導出されることができる。他の一例において、取得された動きベクトルペアにおける所与の動きベクトルが関連付けられた参照ピクチャを指し示す参照ピクチャインジケーションを、ビットストリームから得ることができる。
ステップ1:動きベクトルのペアを用いて、2つの参照ピクチャから中間ビット深度にて第1の予測サンプルのブロックを取得する;
一部の実現可能な実装において、取得された動きベクトルペア及びKタップ補間フィルタに従って、各参照フレームにおいて第1の片方向予測が取得される。より具体的には、この予測は、動きベクトルが整数サンプル位置に対応する場合、再構成参照サンプル値を得る。動きベクトルが非ゼロの水平成分とゼロの垂直成分とを持つ場合、それは、水平Kタップ補間を行って予測サンプル値を得る。動きベクトルが非ゼロの垂直成分とゼロの水平成分とを持つ場合、それは、垂直Kタップ補間を行って予測サンプル値を得る。動きベクトルが水平成分及び垂直成分の両方に対して非ゼロの値を持つ場合、2D分離可能なKタップ補間が実行され、最初に水平補間を行い、続いて垂直補間を行って、予測サンプル値を得る。
ステップ2:各リファレンスにおける対応する第1の予測サンプルの間のサンプル差、各リファレンスにおける水平サンプル勾配、及び各リファレンスにおける垂直サンプル勾配を用い、オプティカルフロー方程式を使用して、オプティカルフローを計算する;
このオプティカルフロー計算は、2つのリファレンスにわたる水平サンプル勾配の和又は2つのリファレンスにわたる垂直サンプル勾配の和のいずれかを入力としてとり、N個の取り得る値のうちの1つを出力として返す関数を使用し、ここで、Nは3以上の正の奇数である。関数の戻り値は、入力値の符号と、第1の所定の閾値Tに対する入力の絶対値の比較とに基づく。
一部の実現可能な実装において、各リファレンスについてステップ1で取得された第1の予測サンプルのセットを用いて、所与の現在コーディングユニット内の各サブブロックについてオプティカルフローが推定される。
一例において、参照される第1のリファレンスについての予測サンプルがI(0)として表され、参照される第2のリファレンスについての予測サンプルがI(1)として表されると仮定して、各リファレンスにおける水平及び垂直サンプル勾配(以下では、第1のリファレンスではGx0、Gy0、そして、第2のリファレンスではGx1、Gy1と表して参照する)が、現在符号化サブブロック内の一組の位置について計算される。位置(x,y)における水平サンプル勾配は、この位置の右側のサンプル値とこの位置の左側のサンプル値との間の差をとることによって計算される。位置(x,y)における垂直サンプル勾配は、この位置の下のサンプル値とこの位置の上のサンプル値との間の差をとることによって計算される。すると、オプティカルフローは、次のように推定される:
Figure 0007303894000011
関数f(x)は、水平勾配の和又は垂直勾配の和を入力としてとり、N個の取り得る値のうちの1つをとる出力を生成する。ここで、Nは、3以上の正の奇整数値である。出力値は、入力値及び第1の所定の閾値Tに依存する。一例において、Nは値3をとる。出力値は、-1、0、及び1なる3つの取り得る値のうちの1つである。これは、次のように決定される:
Figure 0007303894000012
あるいは、これは:
Figure 0007303894000013
のように記述されることができる。
図6に、入力値(これは、水平方向又は垂直方向における2つのリファレンス間の対応するサンプル勾配の和である)と、第1の所定の閾値Tに基づく3つの取り得る値のうちの1つをとる出力値との関係を示している。この出力は、入力のダイナミックレンジの、第1の所定の閾値Tに基づく3つの部分への、一種の量子化又は分割であって、関数が、各パーティションに対して、取り得る出力値のうちの1つをとるようにするもの、として見ることができる。
第1の所定の閾値Tは、サンプル勾配の和のビット深度を用いて決定される。一部の例において、サンプル勾配の和は、予測サンプルのサンプルビット深度に依存する値をとる。他の一例において、サンプル勾配の和は、サンプルビット深度及び所望のビット深度に基づいて、該所望のビット深度にあるように調節される(例えば、ビットセットを通じて右シフト又は左シフトされる)。一例において、入力ビット深度が10ビットである場合、Tは3なる値をとる。
s3及びs4の式は、和の各項についての乗算を示しているが、理解されることには、非ゼロの出力値の場合に、所与の(i,j)の組み合わせについてのサンプル差を積算器に条件付きで加算又は減算することによって、この総和を乗算なしで実装することができる。具体的には、出力値が1であるときにはサンプル差が加算され、出力値が-1であるときにはサンプル差が減算される。
他の一例において、f(x)は、図7に示すように、N=5の取り得る値、すなわち、-2、-1、0、1、2、のうちの1つをとることができる出力を生成してもよい。図中の第2の所定の閾値T’は、入力のダイナミックレンジと、所望の出力レベルの数とに依存する。
一例において、入力のダイナミックレンジは4等分に分割される。換言すれば、入力が符号付きの10ビット値である場合、ダイナミックレンジは-512と511との間とすることができる。これが、(-512から-257)、(-256から-1)、(0,255)、及び(256,512)という範囲に分割される。従って、第2の所定の閾値T’は、この例では256である。範囲(-512から-257)内の入力に対する出力値は-2である。範囲(-256から-1)は、(-256から-T-1)と(-Tから-1)とにスプリットされる。範囲(-256から-T-1)内の入力に対する出力値は-1である。範囲(0,255)は、範囲(0からT)と範囲(T+1から255)とにスプリットされる。範囲(-TからT)内の入力に対する出力値は0である。範囲(T+1から255)内の入力に対する出力値は1である。範囲(256から511)内の入力に対する出力値は2である。従って、出力値は、-2、-1、0、1、及び2なる5つの取り得る値をとることができる。
ステップ3:各リファレンスにおける第1の予測サンプルと、計算されたオプティカルフローと、各リファレンスにおける水平及び垂直サンプル勾配値とを用いて、現在コーディングブロックについての最終的なインター双方向予測サンプルを取得する。
図8は、本出願の処理を例示している。ブロック810は、ステップ0に対応し、現在コーディングブロックについての参照ピクチャのペアに関してMVペアが取得される。ブロック820は、ステップ1に対応し、取得されたMVペアと、リファレンスのペアの再構成参照ルマサンプルとを用いて、各リファレンスにおいて第1の予測が取得される。ブロック830は、ステップ2に対応し、各リファレンスにおいて取得された第1の予測に基づいてオプティカルフローが計算される。オプティカルフロー計算は、サンプル差と、水平方向と垂直方向におけるサンプル勾配の和とに依存する。オプティカルフロー計算は関数を使用し、この関数は、水平方向又は垂直方向におけるサンプル勾配の和をとり、入力値の符号と、出力値を生成するための第1の所定の閾値とに依存する出力値を生成する。出力値は、N個の取り得る値のうちの1つをとることができ、ここで、Nは、3以上の値をとる小さい正の奇整数である。ブロック840は、ステップ3に対応し、第1の予測サンプルと、計算されたオプティカルフローとに基づいて、現在コーディングブロックについての双予測サンプルが取得される。
図9は、本出願の別の処理を例示している。
S901:現在ブロックについての双予測の当初動きベクトルペアを取得する。
当初動きベクトルペアは、例えばマージモード、アドバンスト動きベクトル予測(AMVP)モード、アフィンモードなどの伝統的な双予測法によって取得され得る。一般に、当初動きベクトルペアは、現在ブロックの少なくとも1つの空間隣接ブロック及び/又は時間隣接ブロックの動き情報に従って取得される。現在ブロックは、コーディングユニット、又はコーディングユニットのサブブロックとし得る。
S902:当初動きベクトルペアを用いて前方予測ブロック及び後方予測ブロックを取得する。
理解可能なことには、現在ブロック内の全てのサンプルについて、そのサンプルに対応する前方予測サンプル及び後方予測サンプルが、それぞれ、前方予測ブロック及び後方予測ブロック内で決定される。
S903:現在ブロック内のサンプルについての勾配パラメータを、対応する前方予測サンプル及び後方予測サンプルに基づいて計算する。
例えば、勾配パラメータは、前方水平勾配、後方水平勾配、後方水平勾配、及び後方水平勾配を有し得る。サンプルがpbSamples[x][y]であり、前方予測サンプルがpreSamplesL0[x][y]であり、後方予測サンプルがpreSamplesL1[x][y]であると仮定する。前方水平勾配:
gradientHL0[x][y]=predSamplesL0[x+1][y]-predSamplesL0[x-1][y];
前方垂直勾配:
gradientVL0[x][y]=predSamplesL0[x][y+1]-predSamplesL0[x][y-1];
後方水平勾配:
gradientHL1[x][y]=predSamplesL1[x+1][y]-predSamplesL1[x-1][y];
後方垂直勾配:
gradientVL1[x][y]=predSamplesL1[x][y+1]-predSamplesL1[x][y-1]。
S904:勾配パラメータに基づいて、サンプルについてのサンプルオプティカルフローパラメータを取得する。
例えば、サンプルオプティカルフローパラメータは、サンプル差、水平平均勾配、及び垂直平均勾配を有し得る。
サンプル差:
diff[x][y]=predSamplesL0[x][y]-predSamplesL1[x][y];
水平方向の平均勾配:
TempH[x][y]=(gradientHL0[x][y]+gradientHL1[x][y])/2;
垂直平均勾配:
TempV[x][y]=(gradientVL0[x][y]+gradientVL1[x][y])/2。
S905:現在ブロック内のサンプルについてのサンプルオプティカルフローパラメータのうちの少なくとも一部に基づいて、ブロックオプティカルフローパラメータを取得する;
ブロックオプティカルフローパラメータのうち少なくとも1つは、第1のサンプルオプティカルフローパラメータと第2のサンプルオプティカルフローパラメータの符号関数の出力値との間の乗算によって取得される。
一例において、符号関数は、
Figure 0007303894000014

である。
他の一例において、Tは0であり、従って、符号関数は、
Figure 0007303894000015

である。
一例において、符号関数は、
Figure 0007303894000016

である。
また、この例において、理解可能であることには、2の乗算は、1ビットの左シフト演算で置き換えられることができ、それ故に乗算を回避することもできる。
例えば、現在ブロックが4×4ブロックであり、現在ブロックの左上サンプルの座標が(xSb,ySb)であると仮定すると、ブロックオプティカルフローパラメータは:
i,j=-1..4で、sGx2=ΣiΣjAbs(tempH[xSb+i][ySb+j])
i,j=-1..4で、sGy2=ΣiΣjAbs(tempV[xSb+i][ySb+j])
i,j=-1..4で、sGxGy=ΣiΣj(Sign(tempV[xSb+i][ySb+j])*tempH[xSb+i][ySb+j])
sGxGym=sGxGy>>12
sGxGys=sGxGy&((1<<12)-1)
i,j=-1..4で、sGxdI=ΣiΣj(-Sign(tempH[xSb+i][ySb+j])*diff[xSb+i][ySb+j])
i,j=-1..4で、sGydI=ΣiΣj(-Sign(tempV[xSb+i][ySb+j])*diff[xSb+i][ySb+j])
を有し得る。
S906:前方予測ブロック、後方予測ブロック、ブロックオプティカルフローパラメータ、及びサンプルオプティカルフローパラメータに基づいて、現在ブロックの予測値を取得する。
図9に示した実施形態によれば、別の具体例が導入される。
このプロセスへの入力は以下である:
- 現在コーディングブロックの幅及び高さを規定する2つの変数nCbW及びnCbH、
- 2つの(nCbW+2)×(nCbH+2)ルマ予測サンプルアレイpredSamplesL0及びpredSamplesL1、
- 予測リスト利用フラグpredFlagL0及びpredFlagL1、
- 参照インデックスrefIdxL0及びrefIdxL1、
- 双方向オプティカルフロー利用フラグsbBdofFlag。
このプロセスの出力は、ルマ予測サンプル値の(nCbW)×(nCbH)アレイpbSamplesである。
変数shift1、shift2、shift3、shift4、offset4、及びmvRefineThresが、次のように導出される:
- 変数shift1は6に等しく設定される。
- 変数shift2は4に等しく設定される。
- 変数shift3は1に等しく設定される。
- 変数shift4は、Max(3,15-BitDepth)に等しく設定され、変数offset4は、1<<(shift4-1)に等しく設定される。
- 変数mvRefineThresは、1<<5に等しく設定される。
xIdx=0..(nCbW>>2)-1、且つyIdx=0..(nCbH>>2)-1に対し、以下が適用される:
- 変数xSbは、(xIdx<<2)+1に等しく設定され、ySbは、(yIdx<<2)+1に等しく設定される。
- sbBdofFlagがFALSEに等しい場合、x=xSb-1..xSb+2、y=ySb-1..ySb+2に対し、現在サブブロックの予測サンプル値が、次のように導出される:
pbSamples[x][y]=Clip3(0,(2BitDepth)-1,(predSamplesL0[x+1][y+1]+offset4+predSamplesL1[x+1][y+1])>>shift4)
- それ以外の場合(sbBdofFlagがTRUEに等しい)、現在サブブロックの予測サンプル値が、次のように導出される:
- x=xSb-1..xSb+4、y=ySb-1..ySb+4に対し、以下の順序付けられたステップが適用される:
4. 予測サンプルアレイ内の対応するサンプル位置(x,y)の各々に対する位置(hx,vy)が、以下のように導出される:
hx=Clip3(1,nCbW,x)
vy=Clip3(1,nCbH,y)
5. 変数gradientHL0[x][y]、gradientVL0[x][y]、gradientHL1[x][y]及びgradientVL1[x][y]が、次のように導出される:
gradientHL0[x][y]=(predSamplesL0[hx+1][vy]>>shift1)-(predSamplesL0[hx-1][vy])>>shift1)
gradientVL0[x][y]=(predSamplesL0[hx][vy+1]>>shift1)-(predSamplesL0[hx][vy-1])>>shift1)
gradientHL1[x][y]=(predSamplesL1[hx+1][vy]>>shift1)-(predSamplesL1[hx-1][vy])>>shift1)
gradientVL1[x][y]=(predSamplesL1[hx][vy+1]>>shift1)-(predSamplesL1[hx][vy-1])>>shift1)
6. 変数diff[x][y]、tempH[x][y]及びtempV[x][y]が、次のように導出される:
diff[x][y]=(predSamplesL0[hx][vy]>>shift2)-(predSamplesL1[hx][vy]>>shift2))
tempH[x][y]=(gradientHL0[x][y]+gradientHL1[x][y])>>shift3
tempV[x][y]=(gradientVL0[x][y]+gradientVL1[x][y])>>shift3
- 変数sGx2、sGy2、sGxGy、sGxdI及びsGydIが、次のように導出される:
i,j=-1..4で、sGx2=ΣiΣjAbs(tempH[xSb+i][ySb+j])
i,j=-1..4で、sGy2=ΣiΣjAbs(tempV[xSb+i][ySb+j])
i,j=-1..4で、sGxGy=ΣiΣj(Sign(tempV[xSb+i][ySb+j])*tempH[xSb+i][ySb+j])
sGxGym=sGxGy>>12
sGxGys=sGxGy&((1<<12)-1)
i,j=-1..4で、sGxdI=ΣiΣj(-Sign(tempH[xSb+i][ySb+j])*diff[xSb+i][ySb+j])
i,j=-1..4で、sGydI=ΣiΣj
(-Sign(tempV[xSb+i][ySb+j])*diff[xSb+i][ySb+j])
- 現在サブブロックの水平及び垂直動きオフセットが:
vx=sGx2>0?Clip3(-mvRefineThres+1,mvRefineThres-1,-(sGxdI<<2)>>Floor(Log2(sGx2))):0
vy=sGy2>0?Clip3(-mvRefineThres+1,mvRefineThres-1,((sGydI<<2)-((vx*sGxGym)<<12+vx*sGxGys)>>1)>>Floor(Log2(sGy2))):0
として導出される
- x=xSb-1..xSb+2、y=ySb-1..ySb+2に対し、現在サブブロックの予測サンプル値が、次のように導出される:
bdofOffset=vx*(gradientHL0[x+1][y+1]-gradientHL1[x+1][y+1])+vy*(gradientVL0[x+1][y+1]-gradientVL1[x+1][y+1])
pbSamples[x][y]=Clip3(0,(2BitDepth)-1,(predSamplesL0[x+1][y+1]+offset4+predSamplesL1[x+1][y+1]+bdofOffset)>>shift4)
他の一実施形態において、図10は、本出願の装置を例示している。双方向オプティカルフロー予測装置1000は、現在ブロックについて当初動きベクトルペアを取得するように構成された取得モジュール1001であり、当初動きベクトルペアは、前方動きベクトルと後方動きベクトルとを有する、取得モジュール1001と、前方動きベクトルに従った前方予測ブロックと、後方動きベクトルに従った後方予測ブロックとを取得するように構成されたパッチングモジュール1002と、現在ブロック内の現在サンプルについての勾配パラメータを、現在サンプルに対応する前方予測サンプル及び後方予測サンプルに基づいて計算するように構成された勾配モジュール1003であり、前方予測サンプルは前方予測ブロック内にあり、後方予測サンプルは後方予測ブロック内にある、勾配モジュール1003と、勾配パラメータに基づいて、現在サンプルについての少なくとも2つのサンプルオプティカルフローパラメータを取得するように構成された計算モジュール1004であり、サンプルオプティカルフローパラメータは、第1パラメータ及び第2パラメータを有する、計算モジュール1004と、現在ブロック内のサンプルのサンプルオプティカルフローパラメータに基づいて、ブロックオプティカルフローパラメータを取得するように構成された訓練モジュール1005であり、ブロックオプティカルフローパラメータのうち1つは、第1パラメータの値と第2パラメータの符号関数の値とを乗算することを含む演算によって取得され、符号関数は、少なくとも3つのサブインターバルを有する区分関数である、訓練モジュール1005と、前方予測ブロック、後方予測ブロック、ブロックオプティカルフローパラメータ、及びサンプルオプティカルフローパラメータに基づいて、現在ブロックの予測値を取得するように構成された予測モジュール1006と、を有する。
実現可能な一実装において、符号関数は、
Figure 0007303894000017

であり、Tは非負の実数である。
実現可能な一実装において、Tは0であり、対応して、符号関数は、
Figure 0007303894000018

である。
実現可能な一実装において、当初動きベクトルペアは、現在ブロックの少なくとも1つの空間隣接ブロック及び/又は時間隣接ブロックの動き情報に従って取得される。
実現可能な一実装において、現在ブロックは、コーディングユニット又は該コーディングユニットのサブブロックである。
実現可能な一実装において、勾配パラメータは、前方水平勾配、後方水平勾配、前方垂直勾配、及び後方垂直勾配を有する。
実現可能な一実装において、前方水平勾配は、前方予測サンプルに隣接する右サンプルと左サンプルとの差である。
実現可能な一実装において、後方水平勾配は、後方予測サンプルに隣接する右サンプルと左サンプルとの差である。
実現可能な一実装において、前方垂直勾配は、前方予測サンプルに隣接する下サンプルと上サンプルとの差である。
実現可能な一実装において、後方垂直勾配は、後方予測サンプルに隣接する下サンプルと上サンプルとの差である。
実現可能な一実装において、サンプルオプティカルフローパラメータは、サンプル差、水平平均勾配、及び垂直平均勾配を有する。
実現可能な一実装において、第1パラメータは、サンプル差、水平平均勾配、又は垂直平均勾配である。
実現可能な一実装において、第2パラメータは、サンプル差、水平平均勾配、又は垂直平均勾配であり、第2パラメータは第1パラメータではない。
他の一実施形態において、図11は、本出願の他の装置を例示している。双方向オプティカルフロー予測装置1100は、1つ以上のプロセッサ1101と、プロセッサに結合され、プロセッサによる実行のためのプログラミングを格納する非一時的なコンピュータ読み取り可能記憶媒体1102と、を有し、プログラミングは、プロセッサによって実行されるときに、図9にて例示した方法のうちのいずれか1つを実行するように当該装置を構成する。
本出願の他の一実施形態において、コンピュータプログラムプロダクトは、図9にて例示した方法のうちのいずれか1つを実行するためのプログラムコードを有する。
以下は、上述の実施形態に示される符号化方法及ぶ復号方法の用途、並びにそれらを使用するシステムの説明である。
図12は、コンテンツ配信サービスを実現するためのコンテンツ供給システム3100を示すブロック図である。このコンテンツ供給システム3100は、キャプチャ装置3102、端末装置3106を含んでおり、オプションでディスプレイ3126を含む。キャプチャ装置3102は、通信リンク3104上で端末装置3106と通信する。該通信リンクは、上述の通信チャネル13を含み得る。通信リンク3104は、以下に限られないが、WIFI、イーサネット、ケーブル、無線(3G/4G/5G)、USB、若しくはこれらの任意の種類の組み合わせ、又はこれらに類するものを含む。
キャプチャ装置3102は、データを生成し、上述の実施形態に示される符号化方法によってデータを符号化し得る。あるいは、キャプチャ装置3102は、ストリーミングサーバ(図には示さず)にデータを配信してもよく、サーバが、データを符号化して、符号化データを端末装置3106に送信する。キャプチャ装置3102は、以下に限られないが、カメラ、スマートフォン若しくはパッド、コンピュータ若しくはラップトップ、ビデオ会議システム、PDA、車載装置、若しくはこれらのいずれかの組み合わせ、又はこれらに類するものを含む。例えば、キャプチャ装置3102は、上述のソース装置12を含み得る。データが映像を含む場合、キャプチャ装置3102に含まれるビデオエンコーダ20が実際に映像符号化処理を実行し得る。データが音声(すなわち、音)を含む場合、キャプチャ装置3102に含まれるオーディオエンコーダが実際に音声符号化処理を実行し得る。一部の実際的なシナリオでは、キャプチャ装置3102は、符号化された映像及び音声データを、それらを一緒に多重化することによって配信する。例えばビデオ会議システムにおいてといった他の実際的なシナリオでは、符号化された音声データと符号化された映像データとを多重化しない。キャプチャ装置3102は、符号化された音声データと符号化された映像データとを別々に端末装置3106に配信する。
コンテンツ供給システム3100において、端末装置310は、符号化データを受信して再生する。端末装置3106は、例えばスマートフォン若しくはパッド3108、コンピュータ若しくはラップトップ3110、ネットワークビデオレコーダ(NVR)/デジタルビデオレコーダ(DVR)3112、TV3114、セットトップボックス(STB)3116、ビデオ会議システム3118、ビデオ監視システム3120、携帯情報端末(PDA)3122、車載装置3124、若しくはこれらのうちのいずれかの組み合わせ、又は上述の符号化データを復号することが可能なこれらに類するものなど、データ受信及び復元能力を有する装置とし得る。例えば、端末装置3106は、上述のデスティネーション装置14を含み得る。符号化データが映像を含む場合、端末装置に含まれるビデオデコーダ30が優先されて映像復号を実行する。符号化データが音声を含む場合、端末装置に含まれるオーディオデコーダが優先されて音声復号処理を実行する。
例えばスマートフォン若しくはパッド3108、コンピュータ若しくはラップトップ3110、ネットワークビデオレコーダ(NVR)/デジタルビデオレコーダ(DVR)3112、TV3114、携帯情報端末(PDA)3122、又は車載装置3124など、自身のディスプレイを備えた端末装置では、当該端末装置が、復号したデータをそのディスプレイに送ることができる。例えば、STB3116、ビデオ会議システム3118、又はビデオ監視システム3120など、ディスプレイを備えない端末装置では、その中に外付けディスプレイ3126が接触されて、復号データを受信して示す。
このシステム内の各装置が符号化又は復号を行うとき、上述の実施形態に示したようなピクチャ符号化装置又はピクチャ復号装置が使用され得る。
図13は、端末装置3106の一例の構成を示す図である。端末装置3106がキャプチャ装置3102からストリームを受信した後、プロトコル手順ユニット3202が、ストリームの伝送プロトコルを解析する。プロトコルは、以下に限られないが、リアルタイムストリーミングプロトコル(RTSP)、ハイパーテキスト転送プロトコル(HTTP)、HTTPライブストリーミングプロトコル(HLS)、MPEG-DASH、リアルタイムトランスポートプロトコル(RTP)、リアルタイムメッセージングプロトコル(RTMP)、若しくはこれらの任意の種類の組み合わせ、又はこれらに類するものを含む。
プロトコル手順ユニット3202がストリームを処理した後、ストリームファイルが生成される。ファイルは、逆多重化ユニット3204に出力される。逆多重化ユニット3204は、多重化されたデータを符号化音声データと符号化映像データとに分離することができる。上述のように、例えばビデオ会議システムにおいてといった一部の実際的なシナリオでは、符号化音声データと符号化映像データとが多重化されない。この状況では、符号化データは、逆多重化ユニット3204を介することなくビデオデコーダ3206及びオーディオデコーダ3208に伝送される。
逆多重化処理を介して、映像エレメンタリストリーム(ES)、音声ES、及びオプションとして字幕が生成される。上述の実施形態で説明したようなビデオデコーダ30を含むものであるビデオデコーダ3206が、上述の実施形態で示したような復号方法によって映像ESを復号して映像フレームを生成し、このデータを同期ユニット3212に送る。オーディオデコーダ3208が、音声ESを復号して音声フレームを生成し、このデータを同期ユニット3212に送る。あるいは、映像フレームは、同期ユニット3212に送られる前に、バッファ(図13には示さず)に格納されてもよい。同様に、音声フレームは、同期ユニット3212に送られる前に、バッファ(図13には示さず)に格納されてもよい。
同期ユニット3212は、映像フレーム及び音声フレームを同期させ、映像/音声を映像/音声ディスプレイ3214に供給する。例えば、同期ユニット3212は、映像情報及び音声情報の提示を同期させる。情報は、コーディングされたオーディオ・ビジュアルデータの提示に関するタイムスタンプと、データストリーム自体の送達に関するタイムスタンプとを用いて、構文内のコードとなり得る。
字幕がストリームに含まれる場合、字幕デコーダ3210が、字幕を復号し、それを映像フレーム及び音声フレームと同期させ、映像/音声/字幕を映像/音声/字幕ディスプレイ3216に供給する。
本出願は、上述のシステムに限定されるものではなく、上述の実施形態におけるピクチャ符号化装置又はピクチャ復号装置はいずれも、例えば自動車システムといった他のシステムに組み込まれてもよい。
数学演算子
この出願で使用される数学演算子は、Cプログラミング言語で使用されるものと同様である。しかし、整数除算及び算術シフト演算の結果をいっそう正確に定義し、例えば指数化及び実数値除算などの更なる演算を定義する。番号付ける及びカウントすることの慣習は一般に0から始まり、例えば、“1番目(the first)”は0番(0-th)、“2番目(the second)”は1番(1-th)、等々である。
算術演算子
以下の算術演算子は、次のように定義される:
Figure 0007303894000019
論理演算子
以下の論理演算子は次のように定義される:
x&&y x及びyのブール論理“and”
x||y x及びyのブール論理“or”
! ブール論理“not”
x? y:z xがTRUEである又は0に等しくない場合、yの値の方を評価し、そうでない場合、zの値の方を評価する。
関係演算子
以下の関係演算子は次のように定義される:
> より大きい
>= 以上
< より小さい
<= 以下
== 等しい
!= 等しくない。
関係演算子が、値“na”(非該当)が割り当てられた構文要素又は変数に適用される場合、値“na”は、その構文要素又は変数に関する独特な値として扱われる。値“na”は、他の値とは等しくないとみなされる。
ビット単位演算子
以下のビット単位演算子は次のように定義される:
& ビット単位の“and”。整数の引数について演算するとき、整数値の2の補数表現について演算する。別の引数よりも少ないビットを含むバイナリ引数について演算するとき、短い方の引数が、0に等しい上位ビットを付加することによって延ばされる。
| ビット単位の“or”。整数の引数について演算するとき、整数値の2の補数表現について演算する。別の引数よりも少ないビットを含むバイナリ引数について演算するとき、短い方の引数が、0に等しい上位ビットを付加することによって延ばされる。
^ ビット単位の“排他的or”。整数の引数について演算するとき、整数値の2の補数表現について演算する。別の引数よりも少ないビットを含むバイナリ引数について演算するとき、短い方の引数が、0に等しい上位ビットを付加することによって延ばされる。
x>>y xの2の補数の整数表現の、バイナリでy桁の算術右シフト。この関数は、負でない整数値のyに対してのみ定義される。右シフトの結果として最上位ビット(MSB)にシフトされたビットは、シフト演算前のxのMSBに等しい値を持つ。
x<<y xの2の補数の整数表現の、バイナリでy桁の算術左シフト。この関数は、負でない整数値のyに対してのみ定義される。左シフトの結果として最下位ビット(LSB)にシフトされたビットは、0に等しい値を持つ。
割当て演算子
以下の算術演算子は次のように定義される:
= 割当て演算子
++ インクリメント、すなわち、x++は、x=x+1と等価である;アレイインデックスで使用される場合、インクリメント演算前の変数の値の方を評価する。
-- デクリメント、すなわち、x--は、x=x-1と等価である;アレイインデックスで使用される場合、デクリメント演算前の変数の値の方を評価する。
+= 指定量分のインクリメント、すなわち、x+=3は、x=x+3と等価であり、x+=(-3)は、x=x+(-3)と等価である。
-= 指定量分のデクリメント、すなわち、x-=3は、x=x-3と等価であり、x-=(-3)は、x=x-(-3)と等価である。
範囲表記
値の範囲を規定するために以下の表記が使用される:
x=y..z xは、yから始まってzまでの整数値を、y、zを含めてとり、x、y、及びzは整数であり、且つzはyより大きい。
数学関数
以下の数学関数が定義される:
Figure 0007303894000020
Figure 0007303894000021
演算優先順位の序列
式の中で優先順位の序列が括弧を用いて明示的に示されない場合、次の規則が適用される:
- より高い優先順位の演算が、任意のより低い優先順位の演算の前に評価される。
- 同じ優先順位の演算が、左から右に順に評価される。
下の表は、最高から最低までの演算の優先順位を規定しており、表中の高い位置ほど高い優先順位を指し示す。
Cプログラミング言語でも使用される演算子については、この明細書で使用される優先順位の序列は、Cプログラミング言語で使用されるものと同じである。
Figure 0007303894000022
論理演算のテキスト記述
テキストにおいて、次の形式で数学的に記述される論理演算のステートメント:
if(condition 0)
statement 0
else if(condition 1)
statement 1
...
else /* 残りの条件についての情報の言及 */
Statement n
は、以下のように記述され得る:
...以下のとおりである/...以下が適用される:
- If condition 0, statement 0
- Otherwise, if condition 1, statement 1
- ...
- Otherwise (残りの条件についての情報の言及), statement n。
テキスト内の各“If...otherwise, if...otherwise, ...”ステートメントが直後に“If...”が続く“...以下のとおりである”又は“...以下が適用される”を用いて導入される。“If...otherwise, if...otherwise, ...”の最後の条件は、常に“Otherwise, ...”である。インターリーブされる“If...otherwise, if...otherwise, ...”ステートメントは、“...以下のとおりである”又は“...以下が適用される”を終わりとなる“Otherwise, ...”と合わせることによって識別される。
テキストにおいて、次の形式で数学的に記述される論理演算のステートメント:
if(condition 0a && condition 0b)
statement 0
else if(condition 1a || condition 1b)
statement 1
...
else
statement n
は、以下のように記述され得る:
...以下のとおりである/...以下が適用される:
- If 以下の条件の全てがtrueである, statement 0:
- condition 0a
- condition 0b
- Otherwise, if 以下の条件のうち1つ以上がtrueである, statement 1:
- condition 1a
- condition 1b
- ...
- Otherwise, statement n。
テキストにおいて、次の形式で数学的に記述される論理演算のステートメント:
if(condition 0)
statement 0
if(condition 1)
statement 1
は、以下のように記述され得る:
Condition 0である場合, statement 0
Condition 1である場合, statement 1。
例えばエンコーダ20及びデコーダ30の実施形態、並びに、例えばエンコーダ20及びデコーダ30を参照してここに記載された機能は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの任意の組み合わせで実装され得る。ソフトウェアで実装される場合、機能は、1つ以上の命令又はコードとして、コンピュータ読み取り可能媒体に記憶され、又は通信媒体上で伝送され、そして、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ読み取り可能媒体は、例えばデータ記憶媒体などの有形媒体に対応するコンピュータ読み取り可能記憶媒体、又は、例えば通信プロトコルに従って1つの場所から別の場所へのコンピュータプログラムの転送を支援する任意の媒体を含む通信媒体を含み得る。斯くして、コンピュータ読み取り可能媒体は、一般に、(1)非一時的である有形のコンピュータ読み取り可能記憶媒体、又は(2)例えば信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、この開示に記載された技術の実装のための命令、コード及び/又はデータ構造を取り出すために1つ以上のコンピュータ又は1つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体とし得る。コンピュータプログラムプロダクトがコンピュータ読み取り可能媒体を含み得る。
例として、限定することなく、そのようなコンピュータ読み取り可能記憶媒体は、RAM、ROM、EEPROM、CD-ROM若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶装置、フラッシュメモリ、又は、命令若しくはデータ構造の形態で所望のプログラムコードを格納するために使用され且つコンピュータによってアクセスされ得る任意の他の媒体を有することができる。また、任意の接続が適切にコンピュータ読み取り可能媒体と呼ばれる。例えば、命令が、ウェブサイト、サーバ、又は他のリモートソースから、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、又は例えば赤外線、無線、及びマイクロ波などの無線技術を用いて伝送される場合、その同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、又は例えば赤外線、無線、及びマイクロ波などの無線技術は、媒体の定義に含まれる。しかしながら、理解されるべきことには、コンピュータ読み取り可能記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的媒体を含まず、代わりに非一時的で有形の記憶媒体に向けられる。ディスク(disk及びdisc)は、ここで使用されるとき、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピーディスク及びBlu-rayディスクを含み、diskは、通常、磁気的にデータを再生し、discはレーザを用いて光学的にデータを再生する。上述のものの組み合わせも、コンピュータ読み取り可能媒体の範囲内に含まれるべきである。
命令は、例えば1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、又は他の同等の集積論理回路若しくはディスクリート論理回路などの、1つ以上のプロセッサによって実行され得る。従って、用語“プロセッサ”は、ここで使用されるとき、上述の構造のいずれか、又はここに記載された技術の実装に適した任意の他の構造を指し得る。さらに、一部の態様において、ここに記載された機能は、符号化及び復号のために構成された専用のハードウェア及び/又はソフトウェアモジュール内で提供されてもよいし、あるいは、組み合わされたコーデックに組み込まれてもよい。また、これらの技術は、1つ以上の回路又は論理素子にて完全に実装されてもよい。
この開示の技術は、無線ハンドセット、集積回路(IC)、又は一組のIC(例えば、チップセット)を含め、広範で多様なデバイス又は装置にて実装され得る。この開示においては、開示された技術を実行するように構成されたデバイスの機能的側面を強調するために、様々なコンポーネント、モジュール、又はユニットが説明されているが、必ずしも、複数の異なるハードウェアユニットによる実現を必要とするわけではない。むしろ、上述のように、様々なユニットが、コーデックハードウェアユニットに組み合わされてもよいし、あるいは、上述の1つ以上のプロセッサを含め、好適なソフトウェア及び/又はファームウェアと併せられた相互動作ハードウェアユニットの集合によって提供されてもよい。

Claims (10)

  1. 双方向オプティカルフロー予測方法であって、
    現在ブロックについて当初動きベクトルペアを取得し、当該当初動きベクトルペアは、前方動きベクトルと後方動きベクトルとを有し、
    前記前方動きベクトルに従った前方予測ブロックと、前記後方動きベクトルに従った後方予測ブロックとを取得し、
    前記現在ブロック内の現在サンプルについての、前方水平勾配、後方水平勾配、前方垂直勾配、及び後方垂直勾配を有する勾配パラメータを、前記現在サンプルに対応する前方予測サンプル及び後方予測サンプルに基づいて計算し、前記前方予測サンプルは前記前方予測ブロック内にあり、前記後方予測サンプルは前記後方予測ブロック内にあり、前記前方予測サンプルはpredSamplesL0[x][y]によって表され、前記後方予測サンプルはpredSamplesL1[x][y]によって表され、前記前方水平勾配はgradientHL0[x][y]によって表され、前記後方水平勾配はgradientHL1[x][y]によって表され、前記前方垂直勾配はgradientVL0[x][y]によって表され、前記後方垂直勾配はgradientVL1[x][y]によって表され、
    前記勾配パラメータに基づいて、前記現在サンプルについての少なくとも2つのサンプルオプティカルフローパラメータを取得し、当該サンプルオプティカルフローパラメータは、第1パラメータ及び第2パラメータを有し、
    前記現在ブロック内のサンプルのサンプルオプティカルフローパラメータに基づいて、ブロックオプティカルフローパラメータを取得し、当該ブロックオプティカルフローパラメータのうち1つは、前記第1パラメータの値と前記第2パラメータの符号関数の値とを乗算することを含む演算によって取得され、前記符号関数は、少なくとも3つのサブインターバルを有する区分関数であり、
    前記前方予測ブロック、前記後方予測ブロック、前記ブロックオプティカルフローパラメータ、及び前記サンプルオプティカルフローパラメータに基づいて、前記現在ブロックの予測値を取得する、
    ことを有し、
    前記サンプルオプティカルフローパラメータは、サンプル差、水平平均勾配、及び垂直平均勾配を有し、
    前記サンプル差は、diff[x][y] = predSamplesL0[x][y] - predSamplesL1[x][y]によって表され、
    前記水平平均勾配は、TempH[x][y] = (gradientHL0[x][y] + gradientHL1[x][y])/2によって表され、
    前記垂直平均勾配は、TempV[x][y] = (gradientVL0[x][y] + gradientVL1[x][y])/2によって表され、
    前記第1パラメータは前記水平平均勾配であり、前記第2パラメータは前記垂直平均勾配であり、
    前記符号関数は、
    Figure 0007303894000023

    であり、Tは非負の実数である、
    方法。
  2. Tは0であり、対応して、前記符号関数は、
    Figure 0007303894000024

    である、請求項に記載の方法。
  3. 前記現在ブロックは、コーディングユニット又は該コーディングユニットのサブブロックである、請求項1又は2に記載の方法。
  4. 前記前方水平勾配は、前記前方予測サンプルに隣接する右サンプルと左サンプルとの差であり、
    前記後方水平勾配は、前記後方予測サンプルに隣接する右サンプルと左サンプルとの差であり、
    前記前方垂直勾配は、前記前方予測サンプルに隣接する下サンプルと上サンプルとの差であり、
    前記後方垂直勾配は、前記後方予測サンプルに隣接する下サンプルと上サンプルとの差である、
    請求項1乃至3のいずれか一項に記載の方法。
  5. 双方向オプティカルフロー予測装置であって、
    現在ブロックについて当初動きベクトルペアを取得するように構成された取得モジュールであり、前記当初動きベクトルペアは、前方動きベクトルと後方動きベクトルとを有する、取得モジュールと、
    前記前方動きベクトルに従った前方予測ブロックと、前記後方動きベクトルに従った後方予測ブロックとを取得するように構成されたパッチングモジュールと、
    前記現在ブロック内の現在サンプルについての、前方水平勾配、後方水平勾配、前方垂直勾配、及び後方垂直勾配を有する勾配パラメータを、前記現在サンプルに対応する前方予測サンプル及び後方予測サンプルに基づいて計算するように構成された勾配モジュールであり、前記前方予測サンプルは前記前方予測ブロック内にあり、前記後方予測サンプルは前記後方予測ブロック内にあり、前記前方予測サンプルはpredSamplesL0[x][y]によって表され、前記後方予測サンプルはpredSamplesL1[x][y]によって表され、前記前方水平勾配はgradientHL0[x][y]によって表され、前記後方水平勾配はgradientHL1[x][y]によって表され、前記前方垂直勾配はgradientVL0[x][y]によって表され、前記後方垂直勾配はgradientVL1[x][y]によって表される、勾配モジュールと、
    前記勾配パラメータに基づいて、前記現在サンプルについての少なくとも2つのサンプルオプティカルフローパラメータを取得するように構成された計算モジュールであり、前記サンプルオプティカルフローパラメータは、第1パラメータ及び第2パラメータを有する、計算モジュールと、
    前記現在ブロック内のサンプルのサンプルオプティカルフローパラメータに基づいて、ブロックオプティカルフローパラメータを取得するように構成された訓練モジュールであり、前記ブロックオプティカルフローパラメータのうち1つは、前記第1パラメータの値と前記第2パラメータの符号関数の値とを乗算することを含む演算によって取得され、前記符号関数は、少なくとも3つのサブインターバルを有する区分関数である、訓練モジュールと、
    前記前方予測ブロック、前記後方予測ブロック、前記ブロックオプティカルフローパラメータ、及び前記サンプルオプティカルフローパラメータに基づいて、前記現在ブロックの予測値を取得するように構成された予測モジュールと、
    を有し、
    前記サンプルオプティカルフローパラメータは、サンプル差、水平平均勾配、及び垂直平均勾配を有し、
    前記サンプル差は、diff[x][y] = predSamplesL0[x][y] - predSamplesL1[x][y]によって表され、
    前記水平平均勾配は、TempH[x][y] = (gradientHL0[x][y] + gradientHL1[x][y])/2によって表され、
    前記垂直平均勾配は、TempV[x][y] = (gradientVL0[x][y] + gradientVL1[x][y])/2によって表され、
    前記第1パラメータは前記水平平均勾配であり、前記第2パラメータは前記垂直平均勾配であり、
    前記符号関数は、
    Figure 0007303894000025

    であり、Tは非負の実数である、
    装置。
  6. Tは0であり、対応して、前記符号関数は、
    Figure 0007303894000026

    である、請求項に記載の装置。
  7. 前記現在ブロックは、コーディングユニット又は該コーディングユニットのサブブロックである、請求項5又は6に記載の装置。
  8. 前記前方水平勾配は、前記前方予測サンプルに隣接する右サンプルと左サンプルとの差であり、
    前記後方水平勾配は、前記後方予測サンプルに隣接する右サンプルと左サンプルとの差であり、
    前記前方垂直勾配は、前記前方予測サンプルに隣接する下サンプルと上サンプルとの差であり、
    前記後方垂直勾配は、前記後方予測サンプルに隣接する下サンプルと上サンプルとの差である、
    請求項乃至のいずれか一項に記載の装置。
  9. 双方向オプティカルフロー予測装置であって、
    1つ以上のプロセッサと、
    前記プロセッサに結合され、前記プロセッサによる実行のためのプログラミングを格納する非一時的なコンピュータ読み取り可能記憶媒体と、
    を有し、
    前記プログラミングは、前記プロセッサによって実行されるときに、請求項1乃至のいずれか一項に記載の方法を実行するように当該装置を構成する、
    装置。
  10. 請求項1乃至のいずれか一項に記載の方法を実行するためのプログラムコードを有するコンピュータプログラム。
JP2021552986A 2019-03-08 2020-02-28 エンコーダ、デコーダ、及び対応するインター予測方法 Active JP7303894B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN201931009184 2019-03-08
IN201931009184 2019-03-08
PCT/CN2020/077121 WO2020181997A1 (en) 2019-03-08 2020-02-28 An encoder, a decoder and corresponding methods for inter prediction

Publications (2)

Publication Number Publication Date
JP2022524357A JP2022524357A (ja) 2022-05-02
JP7303894B2 true JP7303894B2 (ja) 2023-07-05

Family

ID=72427687

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021552986A Active JP7303894B2 (ja) 2019-03-08 2020-02-28 エンコーダ、デコーダ、及び対応するインター予測方法

Country Status (11)

Country Link
US (2) US11968387B2 (ja)
EP (1) EP3915262A4 (ja)
JP (1) JP7303894B2 (ja)
KR (2) KR102616680B1 (ja)
CN (1) CN113508592A (ja)
AU (1) AU2020234595A1 (ja)
BR (1) BR112021016896A2 (ja)
CA (1) CA3131311A1 (ja)
MX (1) MX2021010504A (ja)
WO (1) WO2020181997A1 (ja)
ZA (1) ZA202107479B (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020223552A1 (en) * 2019-04-30 2020-11-05 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus of prediction refinement with optical flow
US11523109B2 (en) * 2019-05-02 2022-12-06 Tencent America LLC Method and apparatus for improvements of affine prof
CN114073090A (zh) * 2019-07-01 2022-02-18 交互数字Vc控股法国公司 仿射运动补偿的双向光流细化
KR20220061240A (ko) * 2019-09-20 2022-05-12 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) 시프트 동작들에 대한 양방향 광학 흐름 단순화를 이용한 비디오 인코딩 및/또는 디코딩 방법들 및 관련 장치
KR20230070535A (ko) * 2019-10-09 2023-05-23 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 광 흐름에 의한 예측 개선, 양방향 광 흐름 및 디코더 측 움직임 벡터 개선을 위한 방법들 및 장치들
WO2023085759A1 (ko) * 2021-11-09 2023-05-19 삼성전자 주식회사 Ai를 이용하는 영상 부호화 장치 및 영상 복호화 장치, 및 이들에 의한 영상의 부호화 및 복호화 방법
CN117915097A (zh) * 2022-10-12 2024-04-19 维沃移动通信有限公司 帧内预测方法、装置及设备
CN116127671B (zh) * 2023-04-17 2023-06-23 四川奥凸环保科技有限公司 一种供水管网参数优化方法、系统、设备和存储介质
CN118101970B (zh) * 2024-04-17 2024-07-26 哈尔滨师范大学 基于深度学习的冰雪项目场地监控图像高效通信方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019010156A1 (en) 2017-07-03 2019-01-10 Vid Scale, Inc. MOTION COMPENSATION PREDICTION BASED ON A BIDIRECTIONAL OPTICAL FLOW
WO2020054591A1 (ja) 2018-09-14 2020-03-19 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法、および復号方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI463878B (zh) 2009-02-19 2014-12-01 Sony Corp Image processing apparatus and method
CN107925775A (zh) * 2015-09-02 2018-04-17 联发科技股份有限公司 基于双向预测光流技术的视频编解码的运动补偿方法及装置
US10375413B2 (en) 2015-09-28 2019-08-06 Qualcomm Incorporated Bi-directional optical flow for video coding
KR102469145B1 (ko) * 2015-10-13 2022-11-21 삼성전자주식회사 영상을 부호화 또는 복호화하는 방법 및 장치
EP3586513A4 (en) * 2017-03-16 2020-12-09 MediaTek Inc METHOD AND APPARATUS FOR REFINING MOTION BASED ON A BIDIRECTIONAL OPTICAL FLOW FOR VIDEO CODING
CN116866584A (zh) * 2017-05-17 2023-10-10 株式会社Kt 对视频解码和编码的方法以及存储压缩视频数据的装置
WO2018230493A1 (ja) * 2017-06-14 2018-12-20 シャープ株式会社 動画像復号装置、動画像符号化装置、予測画像生成装置及び動きベクトル導出装置
KR102427789B1 (ko) * 2017-10-10 2022-08-02 한국전자통신연구원 인터 예측 정보를 사용하는 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019010156A1 (en) 2017-07-03 2019-01-10 Vid Scale, Inc. MOTION COMPENSATION PREDICTION BASED ON A BIDIRECTIONAL OPTICAL FLOW
JP2020526964A (ja) 2017-07-03 2020-08-31 ヴィド スケール インコーポレイテッド 双方向オプティカルフローに基づいた動き補償予測
WO2020054591A1 (ja) 2018-09-14 2020-03-19 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法、および復号方法
US20210218970A1 (en) 2018-09-14 2021-07-15 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Guillaume Laroche, et al.,Non-CE2.3 On SAO Edge offset classification,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 11th Meeting: Ljubljana, SI, 10-18 July 2018,JVET-K0202-v1,2018年07月10日,pp.1-3,庁内DB(送付可)
Li Jingya, et al.,CE9-related: Simplification of BIO,Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting: Macao, CN, 03-12 Oct. 2018,JVET-L0123-v2,2018年10月05日,pp.1-6,庁内DB(送付可)

Also Published As

Publication number Publication date
CN113508592A (zh) 2021-10-15
KR20240000636A (ko) 2024-01-02
CA3131311A1 (en) 2020-09-17
BR112021016896A2 (pt) 2021-11-03
EP3915262A1 (en) 2021-12-01
EP3915262A4 (en) 2022-08-03
WO2020181997A1 (en) 2020-09-17
US11968387B2 (en) 2024-04-23
US20220014776A1 (en) 2022-01-13
AU2020234595A1 (en) 2021-09-09
ZA202107479B (en) 2024-05-30
KR102616680B1 (ko) 2023-12-20
KR20210122854A (ko) 2021-10-12
MX2021010504A (es) 2021-10-01
JP2022524357A (ja) 2022-05-02
US20240259583A1 (en) 2024-08-01

Similar Documents

Publication Publication Date Title
KR102431537B1 (ko) 루마 및 크로마 성분에 대한 ibc 전용 버퍼 및 디폴트 값 리프레싱을 사용하는 인코더, 디코더 및 대응하는 방법들
JP7239697B2 (ja) エンコーダ、デコーダ、インター予測のための対応する方法
JP7303894B2 (ja) エンコーダ、デコーダ、及び対応するインター予測方法
JP7471328B2 (ja) エンコーダ、デコーダ、および対応する方法
JP7521057B2 (ja) エンコーダ、デコーダ、及びデブロッキングフィルタの境界強度導出の対応する方法
KR102622148B1 (ko) 병합 모드를 위한 인코더, 디코더 및 대응 방법
JP7314281B2 (ja) イントラ・サブパーティション・コーディング・ツールによって引き起こされるサブパーティション境界のためのデブロッキングフィルタ
JP7414127B2 (ja) 拡張補間フィルタのメモリ帯域幅削減のためのアフィン動きモデル制限
JP7231759B2 (ja) オプティカルフローベースのビデオフレーム間予測
CN114556923B (zh) 编码器、解码器和使用插值滤波的对应方法
JP7436526B2 (ja) 非線形適応ループフィルタのためのクリッピングレベル
KR20220065880A (ko) 아핀 모션 보상에서 dct 기반 보간 필터 및 향상된 쌍선형 보간 필터의 사용
CN113228632A (zh) 用于局部亮度补偿的编码器、解码器、以及对应方法
RU2809192C2 (ru) Кодер, декодер и соответствующие способы межкадрового предсказания
RU2818228C2 (ru) Уровни ограничения для нелинейного адаптивного контурного фильтра
JP2022550989A (ja) エンコーダ、デコーダ、および、対応する方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211004

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230404

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230606

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230623

R150 Certificate of patent or registration of utility model

Ref document number: 7303894

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150