JP2024015289A - オプティカルフローベースの予測精緻化の計算 - Google Patents

オプティカルフローベースの予測精緻化の計算 Download PDF

Info

Publication number
JP2024015289A
JP2024015289A JP2023207339A JP2023207339A JP2024015289A JP 2024015289 A JP2024015289 A JP 2024015289A JP 2023207339 A JP2023207339 A JP 2023207339A JP 2023207339 A JP2023207339 A JP 2023207339A JP 2024015289 A JP2024015289 A JP 2024015289A
Authority
JP
Japan
Prior art keywords
block
motion
prediction
video
motion vector
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.)
Pending
Application number
JP2023207339A
Other languages
English (en)
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.)
Beijing ByteDance Network Technology Co Ltd
ByteDance Inc
Original Assignee
Beijing ByteDance Network Technology Co Ltd
ByteDance Inc
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 Beijing ByteDance Network Technology Co Ltd, ByteDance Inc filed Critical Beijing ByteDance Network Technology Co Ltd
Publication of JP2024015289A publication Critical patent/JP2024015289A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • G06T7/231Analysis of motion using block-matching using full search
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/269Analysis of motion using gradient-based methods
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/186Methods 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 a colour or a chrominance component
    • 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/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows

Abstract

【課題】 オプティカルフローベースの予測精緻化に関する映像処理方法を提供する。【解決手段】 映像処理の方法は、x及びyは分数であるとして、オプティカルフローに基づく方法を用いて符号化される映像ブロック内の位置(x,y)における第1の動き変位Vx(x,y)及び位置(x,y)における第2の動き変位Vy(x,y)を決定し、Vx(x,y)及びVy(x,y)は、少なくとも位置(x,y)と映像ブロックの基本映像ブロックの中心位置とに基づいて決定され、第1の動き変位及び第2の動き変位を用いて、映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を実行することを含む。【選択図】 図28D

Description

これは、2020年3月17日に出願された国際特許出願PCT/CN2020/079675号の国内移行出願である特願2021-555421の分割出願であり、当該国際特許出願は、2019年3月17日に出願された国際特許出願第PCT/CN2019/078411号、2019年3月18日に出願された国際特許出願第PCT/CN2019/078501号、2019年3月19日に出願された国際特許出願第PCT/CN2019/078719号、及び2019年3月27日に出願された国際特許出願第PCT/CN2019/079961号の優先権及び利益を主張するものである。上記出願の開示全体を、この出願の開示の一部として援用する。
この特許文書は、映像符号化及び復号に関連する。
映像圧縮の進歩にもかかわらず、デジタル映像は、依然として、インターネット及び他のデジタル通信ネットワークにおいて最大の帯域幅使用を占めている。映像を受信して表示することが可能な接続ユーザ装置の数が増えるにつれて、デジタル映像使用に対する帯域幅需要が増加し続けることが予期される。
映像の処理においてオプティカルフローに基づく予測の精緻化を使用するようにデジタルビデオエンコーダ、トランスコーダ及びデコーダによって実装されることができる様々な技術が提供される。
映像処理方法の第1の例は、映像ブロック内の位置(x,y)における精緻化予測サンプルP’(x,y)を、前記位置(x,y)で推定された第1方向における第1の勾配成分Gx(x,y)と、前記位置(x,y)で推定された第2方向における第2の勾配成分Gy(x,y)と、前記位置(x,y)について推定された第1の動き変位Vx(x,y)と、前記位置(x,y)について推定された第2の動き変位Vy(x,y)とで前記位置(x,y)における予測サンプルP(x,y)を修正することによって決定するステップであり、x及びyは整数である、ステップと、前記精緻化予測サンプルP’(x,y)及び残差サンプル値Res(x,y)に基づいて取得される前記位置(x,y)における再構成サンプル値Rec(x,y)を用いて、前記映像ブロックと前記映像ブロックのビットストリーム表現との間での変換を実行するステップと、を含む。
映像処理方法の第2の例は、映像ブロック内の位置(x,y)における精緻化予測サンプルP’(x,y)を、前記位置(x,y)で推定された第1方向における第1の勾配成分Gx(x,y)と、前記位置(x,y)で推定された第2方向における第2の勾配成分Gy(x,y)と、前記位置(x,y)について推定された第1の動き変位Vx(x,y)と、前記位置(x,y)について推定された第2の動き変位Vy(x,y)とで前記位置(x,y)における予測サンプルP(x,y)を修正することによって決定するステップであり、x及びyは整数である、ステップと、少なくとも前記精緻化予測サンプルP’(x,y)に基づく前記位置(x,y)における再構成サンプル値Rec(x,y)に基づく残差サンプル値Res(x,y)を含むよう、前記映像ブロックのビットストリーム表現を符号化するステップと、を含む。
映像処理方法の第3の例は、x及びyは分数であるとして、オプティカルフローに基づく方法を用いて符号化される映像ブロック内の位置(x,y)における第1の動き変位Vx(x,y)及び前記位置(x,y)における第2の動き変位Vy(x,y)を決定するステップであり、Vx(x,y)及びVy(x,y)は、少なくとも前記位置(x,y)と前記映像ブロックの基本映像ブロックの中心位置とに基づいて決定される、ステップと、前記第1の動き変位及び前記第2の動き変位を用いて、前記映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を実行するステップと、を含む。
映像処理方法の第4の例は、映像ブロック内の位置(x,y)で推定された、第1方向における第1の勾配成分Gx(x,y)と、前記映像ブロック内の前記位置(x,y)で推定された、第2方向における第2の勾配成分Gy(x,y)とを決定するステップであり、前記第1の勾配成分及び前記第2の勾配成分は、前記位置(x,y)における予測サンプルP(x,y)の最終予測サンプル値に基づくものであり、且つ前記x及びyは整数である、ステップと、前記勾配Gx(x,y)、Gy(x,y)を用いて精緻化されたものである予測サンプルP(x,y)の前記最終予測サンプル値に残差サンプル値Res(x,y)を加えたものに基づいて得られた、前記位置(x,y)における再構成サンプル値Rec(x,y)を用いて、前記映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を実行するステップと、を含む。
映像処理方法の第5の例は、映像ブロック内の位置(x,y)で推定された、第1方向における第1の勾配成分Gx(x,y)と、前記映像ブロック内の前記位置(x,y)で推定された、第2方向における第2の勾配成分Gy(x,y)とを決定するステップであり、前記第1の勾配成分及び前記第2の勾配成分は、前記位置(x,y)における予測サンプルP(x,y)の最終予測サンプル値に基づくものであり、且つ前記x及びyは整数である、ステップと、前記位置(x,y)における再構成サンプル値Rec(x,y)に基づく残差サンプル値Res(x,y)を含むよう、前記映像ブロックのビットストリーム表現を符号化するステップであり、前記再構成サンプル値Rec(x,y)は、前記勾配Gx(x,y)、Gy(x,y)を用いて精緻化されたものである予測サンプルP(x,y)の前記最終予測サンプル値に前記残差サンプル値Res(x,y)を加えたものに基づく、ステップと、を含む。
映像処理方法の第6の例は、映像ブロック内の位置(x,y)で推定された、第1方向における第1の勾配成分Gx(x,y)と、前記映像ブロック内の前記位置(x,y)で推定された、第2方向における第2の勾配成分Gy(x,y)とを決定するステップであり、前記第1の勾配成分及び前記第2の勾配成分は、前記位置(x,y)における予測サンプルP(x,y)の中間予測サンプル値に基づくものであり、前記予測サンプルP(x,y)の最終予測サンプル値は前記中間予測サンプル値に基づき、且つ前記x及びyは整数である、ステップと、予測サンプルP(x,y)の前記最終予測サンプル値と残差サンプル値Res(x,y)とに基づいて得られた、前記位置(x,y)における再構成サンプル値Rec(x,y)を用いて、前記映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を実行するステップと、を含む。
映像処理方法の第7の例は、映像ブロック内の位置(x,y)で推定された、第1方向における第1の勾配成分Gx(x,y)と、前記映像ブロック内の前記位置(x,y)で推定された、第2方向における第2の勾配成分Gy(x,y)とを決定するステップであり、前記第1の勾配成分及び前記第2の勾配成分は、前記位置(x,y)における予測サンプルP(x,y)の中間予測サンプル値に基づくものであり、前記予測サンプルP(x,y)の最終予測サンプル値は前記中間予測サンプル値に基づき、且つ前記x及びyは整数である、ステップと、前記位置(x,y)における再構成サンプル値Rec(x,y)に基づく残差サンプル値Res(x,y)を含むよう、前記映像ブロックのビットストリーム表現を符号化するステップであり、前記再構成サンプル値Rec(x,y)は、予測サンプルP(x,y)の前記最終予測サンプル値と前記残差サンプル値Res(x,y)とに基づく、ステップと、を含む。
映像処理方法の第8の例は、アフィン符号化映像ブロック内の位置(x,y)における精緻化予測サンプルP’(x,y)を、前記位置(x,y)で推定された第1方向における第1の勾配成分Gx(x,y)と、前記位置(x,y)で推定された第2方向における第2の勾配成分Gy(x,y)と、前記位置(x,y)について推定された第1の動き変位Vx(x,y)と、前記位置(x,y)について推定された第2の動き変位Vy(x,y)とで前記位置(x,y)における予測サンプルP(x,y)を修正することによって決定するステップであり、前記第1方向は前記第2方向に直交し、且つx及びyは整数である、ステップと、前記精緻化予測サンプルP’(x,y)及び残差サンプル値Res(x,y)に基づいて前記位置(x,y)における再構成サンプル値Rec(x,y)を決定するステップと、前記アフィン符号化映像ブロック内の前記位置(x,y)における精緻化再構成サンプル値Rec’(x,y)を決定するステップであり、Rec’(x,y)=Rec(x,y)+Gx(x,y)×Vx(x,y)+Gy(x,y)×Vy(x,y)である、ステップと、前記精緻化再構成サンプル値Rec’(x,y)を用いて、前記アフィン符号化映像ブロックと前記アフィン符号化映像ブロックのビットストリーム表現との間での変換を実行するステップと、を含む。
映像処理方法の第9の例は、アフィン符号化映像ブロック内の位置(x,y)における精緻化予測サンプルP’(x,y)を、前記位置(x,y)で推定された第1方向における第1の勾配成分Gx(x,y)と、前記位置(x,y)で推定された第2方向における第2の勾配成分Gy(x,y)と、前記位置(x,y)について推定された第1の動き変位Vx(x,y)と、前記位置(x,y)について推定された第2の動き変位Vy(x,y)とで前記位置(x,y)における予測サンプルP(x,y)を修正することによって決定するステップであり、前記第1方向は前記第2方向に直交し、且つx及びyは整数である、ステップと、前記精緻化予測サンプルP’(x,y)及び残差サンプル値Res(x,y)に基づいて前記位置(x,y)における再構成サンプル値Rec(x,y)を決定するステップと、前記アフィン符号化映像ブロック内の前記位置(x,y)における精緻化再構成サンプル値Rec’(x,y)を決定するステップであり、Rec’(x,y)=Rec(x,y)+Gx(x,y)×Vx(x,y)+Gy(x,y)×Vy(x,y)である、ステップと、前記残差サンプル値Res(x,y)を含むよう、前記アフィン符号化映像ブロックのビットストリーム表現を符号化するステップと、を含む。
映像処理方法の第10の例は、アフィンモードの映像ブロックについて、1/Nピクセル精度で動きベクトルを決定するステップと、前記映像ブロック内の位置(x,y)について推定された動き変位ベクトル(Vx(x,y),Vy(x,y))を決定するステップであり、当該動き変位ベクトルは1/Mピクセル精度で導出され、N及びMは正の整数であり、且つx及びyは整数である、ステップと、前記動きベクトル及び前記動き変位ベクトルを用いて、前記映像ブロックと前記映像ブロックのビットストリーム表現との間での変換を実行するステップと、を含む。
映像処理方法の第11の例は、映像ブロックについて又は前記映像ブロックのサブブロックについて二組の動きベクトルを決定するステップであり、前記二組の動きベクトルの各組が異なる動きベクトルピクセル精度を持ち、且つ前記二組の動きベクトルは、時間動きベクトル予測(TMVP)技術を用いて又はサブブロックベース時間動きベクトル予測(SbTMVP)技術を用いて決定される、ステップと、前記二組の動きベクトルに基づいて、前記映像ブロックと前記映像ブロックのビットストリーム表現との間での変換を実行する、ステップと、を含む。
映像処理方法の第12の例は、アフィン符号化モードを用いて符号化される映像ブロック上で、Kは1より大きい整数であるとして、K通りのサブブロックパターンを用いて前記映像ブロックを複数のパーティションに分割することによって、インタウィーブ予測技術を実行するステップと、前記K通りのサブブロックパターンのうちの最初のものを用いて動き補償を行うことによって、前記映像ブロックの予測サンプルを生成するステップであり、位置(x,y)における予測サンプルをP(x,y)と表記し、x及びyは整数である、ステップと、第Lパターンと表記する前記K通りのサブブロックパターンの残りのうちの少なくとも1つについて、最初のサブブロックパターンで導出された予測サンプルと、前記K通りのサブブロックパターンのうちの前記最初のものを用いて導出された動きベクトルと前記第Lパターンを用いて導出された動きベクトルとの間の差とに基づいて、前記位置(x,y)におけるオフセット値OL(x,y)を決定するステップと、OL(x,y)及びP(x,y)の関数として前記位置(x,y)についての最終予測サンプルを決定するステップと、前記最終予測サンプルを用いて、映像ブロックのビットストリーム表現と前記映像ブロックとの間での変換を実行するステップと、を含む。
映像処理方法の第13の例は、最終予測サンプルを用いて、映像ブロックのビットストリーム表現と前記映像ブロックとの間での変換を実行するステップを含み、前記最終予測サンプルは、精緻化中間予測サンプルから、(a)ルールに基づいて、インタウィーブ予測技術及びそれに続くオプティカルフローベースの予測精緻化技術を実行すること、又は(b)動き補償技術を実行すること、によって導出される。
映像処理方法の第14の例は、双予測が適用される場合に、最終予測サンプルを用いて、映像ブロックのビットストリーム表現と前記映像ブロックとの間での変換を実行するステップを含み、前記最終予測サンプルは、精緻化中間予測サンプルから、(a)インタウィーブ予測技術を無効にして、オプティカルフローベースの予測精緻化技術を実行すること、又は(b)動き補償技術を実行すること、によって導出される。
映像処理方法の第15の例は、予測サンプルを用いて、映像ブロックのビットストリーム表現と前記映像ブロックとの間での変換を実行するステップを含み、前記予測サンプルは、オプティカルフローベースの予測精緻化技術を実行することによって精緻化中間予測サンプルから導出され、前記オプティカルフローベースの予測精緻化技術を前記実行することは、前記映像ブロックについて第1方向において推定された第1組の動き変位Vx(x,y),又は前記映像ブロックについて第2方向において推定された第2組の動き変位Vy(x,y)のうちの一方のみに依存し、x及びyは整数であり、且つ前記第1方向は前記第2方向に直交する。
映像処理方法の第16の例は、映像ブロックについての精緻化動きベクトルを、前記映像ブロックの動きベクトルを精緻化することによって取得するステップであり、動き補償技術を実行する前に前記動きベクトルが精緻化され、前記精緻化動きベクトルは1/Nピクセル精度を持ち、前記動きベクトルは1/Mピクセル精度を持つ、ステップと、前記映像ブロック上でオプティカルフローベースの予測精緻化技術を実行することによって最終予測サンプルを取得するステップであり、前記精緻化動きベクトルと前記動きベクトルとの間の差に対して前記オプティカルフローベースの予測精緻化技術が適用される、ステップと、前記最終予測サンプルを用いて、前記映像ブロックのビットストリーム表現と前記映像ブロックとの間での変換を実行するステップと、を含む。
映像処理方法の第17の例は、映像ブロックに対してマルチステップデコーダ側動きベクトル精緻化プロセスを用いて、最終動きベクトルを決定するステップであり、当該最終動きベクトルは1/Nピクセル精度を持つ、ステップと、前記最終動きベクトルを用いて、現在ブロックとビットストリーム表現との間での変換を実行するステップと、を含む。
映像処理方法の第18の例は、映像ブロックの精緻化中間予測サンプルを、前記映像ブロックの中間予測サンプルに対してインタウィーブ予測技術及びオプティカルフローベースの予測精緻化技術を実行することによって取得するステップと、前記精緻化中間予測サンプルから最終予測サンプルを導出するステップと、前記最終予測サンプルを用いて、前記映像ブロックのビットストリーム表現と前記映像ブロックとの間での変換を実行するステップと、を含む。
映像処理方法の第19の例は、映像ブロックの精緻化中間予測サンプルを、前記映像ブロックの中間予測サンプルに対してインタウィーブ予測技術及び位相変分アフィンサブブロック動き補償(PAMC)技術を実行することによって取得するステップと、前記精緻化中間予測サンプルから最終予測サンプルを導出するステップと、前記最終予測サンプルを用いて、前記映像ブロックのビットストリーム表現と前記映像ブロックとの間での変換を実行するステップと、を含む。
映像処理方法の第20の例は、映像ブロックの精緻化中間予測サンプルを、前記映像ブロックの中間予測サンプルに対してオプティカルフローベースの予測精緻化技術及び位相変分アフィンサブブロック動き補償(PAMC)技術を実行することによって取得するステップと、前記精緻化中間予測サンプルから最終予測サンプルを導出するステップと、前記最終予測サンプルを用いて、前記映像ブロックのビットストリーム表現と前記映像ブロックとの間での変換を実行するステップと、を含む。
映像処理方法の第21の例は、映像ブロックと該映像ブロックのビットストリーム表現との間での変換において、前記映像ブロック内の位置(x,y)における精緻化予測サンプルP’(x,y)を、前記位置(x,y)で推定された第1方向及び/又は第2方向における勾配と、前記位置(x,y)について推定された第1の動き変位及び/又は第2の動き変位と、の関数として前記位置(x,y)における予測サンプルP(x,y)を修正することによって決定するステップと、前記精緻化予測サンプルP’(x,y)からの再構成サンプル値Rec(x,y)を用いて前記変換を実行するステップと、を含む。
映像処理方法の第22の例は、映像ブロックを符号化するオプティカルフローベースの方法に対応する映像ブロック内の位置(x,y)における第1の変位ベクトルVx(x,y)及び第2の変位ベクトルVy(x,y)を、隣接ブロック又は基本ブロックからの情報に基づいて決定するステップと、前記第1の変位ベクトル及び前記第2の変位ベクトルを用いて、前記映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を実行するステップと、を含む。
映像処理方法の第23の例は、映像ブロックと該映像ブロックのビットストリーム表現との間での変換において、前記映像ブロック内の位置(x,y)における精緻化予測サンプルP’(x,y)を、前記位置(x,y)における予測サンプルP(x,y)を修正することによって決定するステップであり、前記位置(x,y)での第1方向における勾配と第2方向における勾配とが、前記精緻化予測サンプルP’(x,y)及び前記位置(x,y)における残差サンプル値から決定される最終予測値に基づいて決定される、ステップと、前記第1方向における前記勾配及び前記第2方向における前記勾配を用いて前記変換を実行するステップと、を含む。
映像処理方法の第24の例は、アフィン符号化される映像ブロック内の位置(x,y)における再構成サンプルRec(x,y)を決定するステップと、前記位置(x,y)における第1及び第2の変位ベクトル並びに第1及び第2の勾配を用いてRec(x,y)を精緻化して、精緻化再構成サンプルRec’(x,y)を取得するステップと、前記精緻化再構成サンプルを用いて、前記映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を実行するステップと、を含む。
映像処理方法の第25の例は、アフィン符号化モードを用いて符号化される映像ブロックと該映像ブロックのビットストリーム表現との間での変換において、Kは1より大きい整数であるとして、K通りのサブブロックパターンを用いて前記映像ブロックを複数のパーティションに分割することによって、前記映像ブロックのインタウィーブ予測を実行するステップと、前記K通りのサブブロックパターンのうちの最初のものを用いて動き補償を実行して、前記映像ブロックの予測サンプルを生成するステップであり、位置(x,y)における予測サンプルをP(x,y)と表記する、ステップと、第Lパターンと表記する前記K通りのサブブロックパターンの残りのうちの少なくとも1つについて、P(x,y)と、前記K通りのサブブロックパターンのうちの前記最初のものを用いて導出された動きベクトルと前記第Lパターンを用いて導出された動きベクトルとの間の差とに基づいて、前記位置(x,y)におけるオフセット値OL(x,y)を決定するステップと、OL(x,y)及びP(x,y)の関数として前記位置(x,y)についての最終予測サンプルを決定するステップと、前記最終予測サンプルを用いて前記変換を実行するステップと、を含む。
更なる他の一態様例において、この特許文献に記載される方法のうちの1つを実装するように構成されたビデオエンコーダ装置が開示される。
更なる他の一態様例において、この特許文献に記載される方法のうちの1つを実装するように構成されたビデオデコーダ装置が開示される。
更なる他の一態様において、コンピュータ読み取り可能媒体が開示される。この特許文献に記載される方法のうちの1つを実装するためのプロセッサ実行可能コードが、当該コンピュータ読み取り可能媒体に格納される。従って、上記の方法及びこの特許文献に記載される方法のいずれかに記載の方法を実装するためのコードを有する非一時的なコンピュータ読み取り可能媒体である。
これら及び他の態様が本文書に詳細に記載される。
マージ候補リスト構築のための導出プロセスの一例を示している。 空間マージ候補の位置の例を示している。 空間マージ候補の冗長性検査に考慮される候補ペアの例を示している。 N×2N及び2N×Nパーティションの第2のPUの位置の例を示している。 時間マージ候補に対する動きベクトルスケーリングの説明図を示している。 時間マージ候補C0及びC1の候補位置の例を示している。 結合双予測マージ候補の一例を示している。 動きベクトル予測候補に関する導出プロセスをまとめたものである。 空間動きベクトル候補に対する動きベクトルスケーリングの説明図を示している。 符号化ユニットCUに対するアドバンスト時間動きベクトル予測子ATMVP動き予測の一例を示している。 4つのサブブロック(A-D)及びその隣接ブロック(a-d)を有する1つのCUの一例を示している。 OBMCが適用されるところのサブブロックの説明図の例である。 ICパラメータを導出するのに使用される隣接するサンプルの例を示している。 単純化されたアフィン動きモデルを示している。 サブブロックごとのアフィンMVFの一例を示している。 AF_INTERに関するMVPの一例を示している。 図17A-17Bは、AF_MERGEに関する候補を示している。 図17A-17Bは、AF_MERGEに関する候補を示している。 バイラテラルマッチングの一例を示している。 テンプレートマッチングの一例を示している。 フレームレートアップコンバージョンFRUCにおけるユニラテラル動き推定MEの一例を示している。 オプティカルフローの軌跡の一例を示している。 図22A-22Bは、ブロックの外側のアクセス位置の例、及び余分なメモリアクセス及び計算を回避するためにどのようにパディングが使用されるのかの一例を示している。 図22A-22Bは、ブロックの外側のアクセス位置の例、及び余分なメモリアクセス及び計算を回避するためにどのようにパディングが使用されるのかの一例を示している。 BIOで使用される補間サンプルの例を示している。 バイラテラルテンプレートマッチングに基づくDMVRの一例を示している。 サブブロックMV VSB及びピクセルΔv(i,j)(矢印として示される)の例を示している。 Vx(x,y)及び/又はVy(x,y)をどのように導出するかの一例を示している。 映像処理装置の一例を示している。 図28A-28Uは、映像処理の方法に関するフローチャート例である。 図28A-28Uは、映像処理の方法に関するフローチャート例である。 図28A-28Uは、映像処理の方法に関するフローチャート例である。 図28A-28Uは、映像処理の方法に関するフローチャート例である。 図28A-28Uは、映像処理の方法に関するフローチャート例である。 図28A-28Uは、映像処理の方法に関するフローチャート例である。 図28A-28Uは、映像処理の方法に関するフローチャート例である。 図28A-28Uは、映像処理の方法に関するフローチャート例である。 図28A-28Uは、映像処理の方法に関するフローチャート例である。 図28A-28Uは、映像処理の方法に関するフローチャート例である。 図28A-28Uは、映像処理の方法に関するフローチャート例である。 図28A-28Uは、映像処理の方法に関するフローチャート例である。 図28A-28Uは、映像処理の方法に関するフローチャート例である。 図28A-28Uは、映像処理の方法に関するフローチャート例である。 図28A-28Uは、映像処理の方法に関するフローチャート例である。 図28A-28Uは、映像処理の方法に関するフローチャート例である。 図28A-28Uは、映像処理の方法に関するフローチャート例である。 図28A-28Uは、映像処理の方法に関するフローチャート例である。 図28A-28Uは、映像処理の方法に関するフローチャート例である。 図28A-28Uは、映像処理の方法に関するフローチャート例である。 図28A-28Uは、映像処理の方法に関するフローチャート例である。 インタウィーブ予測におけるスプリットパターンの一例を示している。 位相変分水平フィルタリングの一例を示している。 一回の8タップ水平フィルタリングを適用した一例を示している。 不均一位相垂直フィルタリングの一例を示している。 ここに開示される様々な技術が実装され得る映像処理システムの一例を示すブロック図である。 本開示の一部の実施形態に従った映像符号化システムを示すブロック図である。 本開示の一部の実施形態に従ったエンコーダを示すブロック図である。 本開示の一部の実施形態に従ったデコーダを示すブロック図である。
本文書は、解凍又は復号されたデジタル映像又は画像の品質を向上させるために画像又は映像ビットストリームのデコーダによって使用されることができる様々な技術を提供する。簡潔さのため、用語“映像”は、ここでは、一連のピクチャ(伝統的に映像と呼ばれる)及び個々の画像の両方を含むように使用される。また、ビデオエンコーダも、更なる符号化のために使用される復号フレームを再構成するために、符号化のプロセスにおいてこれらの技術を実装し得る。
本文書では、理解を容易にするためにセクション見出しを使用するが、それらは実施形態及び技術を対応するセクションに限定するものではない。従って、1つのセクションからの実施形態を、他のセクションからの実施形態と組み合わせることができる。
1. 概要
この特許文献に記載されるこの技術は映像符号化技術に関する。具体的には、記載される技術は、映像符号化における動き補償に関連する。これは、HEVCのような既存の映像符号化標準に適用されてもよいし、成立される標準(バーサタイルビデオコーディング)に適用されてもよい。これは、将来の映像符号化標準又は映像コーデックにも適用可能である。
2. 背景
映像符号化標準は、主に、周知のITU-T及びISO/IEC標準の開発を通じて発展してきた。ITU-TがH.261及びH.263を作成し、ISO/IECがMPEG-1及びMPEG-4 Visualを作成し、そして、これら2つの組織が共同で、H.262/MPEG-2 Video及びH.264/MPEG-4 AVC(Advanced Video Coding)及びH.265/HEVC標準を作成した。H.262以来、映像符号化標準は、時間予測に加えて変換符号化が利用されるハイブリッド映像符号化構造に基づいている。HEVCの先の将来の映像符号化技術を探求するため、2015年にVCEGとMPEGが共同でJVET(Joint Video Exploration Team)を設立した。それ以来、数多くの新しい方法が、JVETによって採用され、共同探索モデルJEM(Joint Exploration Model)と名付けられたリファレンスソフトウェアに入れられてきた。2018年4月には、HEVCと比較して50%のビットレート低減を目指すVVC標準に取り組むべく、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)との間でJVET(Joint Video Expert Team)を発足させた。
VVCドラフトの最新版、すなわち、バーサタイルビデオコーディング(ドラフト2)は:
http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/11_Ljubljana/wg11/JVET-K1001-v7.zip
にて見つけることができる。
VTMと呼ばれるVVCの最新リファレンスソフトウェアは:
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-2.1
にて見つけることができる。
2.1 HEVC/H.265におけるインター予測
インター予測による各PUは、1つ又は2つの参照ピクチャリストに関する動きパラメータを有する。動きパラメータは、動きベクトル及び参照ピクチャインデックスを含む。2つの参照ピクチャリストのうちの1つの使用がまた、inter_pred_idcを用いて信号伝達され得る。動きベクトルは、予測子に対するデルタとして明示的に符号化され得る。
CUがスキップモードで符号化される場合、そのCUに1つのPUが関連付けられ、有意な残差係数は存在せず、符号化された動きベクトルデルタ又は参照ピクチャインデックスは存在しない。マージモードが規定されており、それによれば、現在PUに関する動きパラメータが、空間候補及び時間候補を含め、隣接するPUから取得される。マージモードは、スキップモードに対してだけでなく、任意のインター予測PUに適用されることができる。マージモードに代わるものは、動きパラメータの明示的な伝送であり、それにおいては、動きベクトル(より正確には、動きベクトル予測子と比較した動きベクトル差(MVD))、各参照ピクチャリストに関する対応する参照ピクチャインデックス、及び参照ピクチャリスト使用が、PUごとに明示的に信号伝達される。このようなモードを、この開示においては、アドバンスト動きベクトル予測(Advanced motion vector prediction;AMVP)と呼ぶ。
2つの参照ピクチャリストのうちの一方が使用されることを信号伝達が指し示すとき、そのPUは、1つのブロックのサンプルから生成される。これは、“片予測(uni-prediction)”と呼ばれている。片予測は、Pスライス及びBスライスの両方で利用可能である。
それら参照ピクチャリストの両方が使用されることを信号伝達が指し示すとき、そのPUは、2つのブロックのサンプルから生成される。これは、“双予測(bi-prediction)”と呼ばれている。双予測は、Bスライスでのみ利用可能である。
以下のテキストは、HEVCにて規定されるインター予測モードについての詳細を提供するものである。マージモードから説明を始めることとする。
2.1.1. マージモード
2.1.1.1. マージモードに関する候補の導出
マージモードを使用してPUが予測されるとき、マージ候補リスト内のエントリを指すインデックスがビットストリームから構文解析され、動き情報を取り出すために使用される。このリストの構築は、HEVC標準に規定されており、以下の一連のステップに従って要約され得る:
・ ステップ1:当初候補導出
- ステップ1.1:空間候補導出
- ステップ1.2:空間候補に関する冗長性検査
- ステップ1.3:時間候補導出
・ ステップ2:追加候補挿入
- ステップ2.1:双予測候補の作成
- ステップ2.2:ゼロ動き候補の挿入
図1にも、これらのステップを概略的に示す。空間マージ候補導出のために、5つの異なる位置にある候補の中から最大4つのマージ候補が選択される。時間マージ候補導出のために、2つの候補の中から最大1つのマージ候補が選択される。デコーダで各PUに対して一定数の候補が仮定されるので、ステップ1から得られた候補の数が、スライスヘッダ内で信号伝達されるマージ候補の最大数(MaxNumMergeCand)に達しない場合、追加候補が生成される。候補の数は一定であるので、最良のマージ候補のインデックスが、truncated unary binarization(TU)を用いて符号化される。CUのサイズが8に等しい場合、現在CUの全てのPUが、2N×2N予測ユニットのマージ候補リストと同じものである単一のマージ候補リストを共有する。
以下にて、上述のステップに関連する処理を詳述する。
2.1.1.2. 空間候補導出
空間マージ候補の導出では、図2に示す位置にある候補の中から最大4つのマージ候補が選択される。導出の順序はA、B、B、A、及びBである。位置Bは、位置A、B、B、AのうちのいずれかのPUが利用可能でない場合(例えば、それが別のスライス又はタイルに属するため)又はイントラ符号化される場合にのみ考慮される。位置Aの候補が追加された後、残りの候補の追加は、符号化効率が向上されるように、同じ動き情報を有する候補がリストから除外されることを保証する冗長性検査にかけられる。計算複雑性を低減させるために、前述の冗長性検査では、可能な全ての候補ペアが考慮されるわけではない。その代わりに、図3の矢印で結び付けられたペアのみが考慮され、冗長性検査に使用される対応する候補が同じ動き情報を持たない場合にのみ、候補がリストに追加される。重複動き情報の別の発生源は、2N×2Nとは異なる分割に関連する“第2のPU”である。一例として、図4は、それぞれ、N×2N及び2N×Nの場合の第2のPUを示している。現在PUがN×2Nに分割されるとき、Aにある候補はリスト構築に考慮されない。実際、この候補を追加することは、同じ動き情報を有する2つの予測ユニットにつながることになり、それは、符号化ユニット内に1つのみのPUを有することには冗長である。同様に、現在PUが2N×Nに分割されるとき、位置Bは考慮されない。
2.1.1.3. 時間候補導出
このステップでは、1つの候補のみがリストに追加される。特に、この時間マージ候補の導出では、所与の参照ピクチャリスト内で現在ピクチャとのPOC差が最小であるピクチャに属するコロケートPUに基づいて、スケーリングされた動きベクトルが導出される。コロケートPUの導出に使用される参照ピクチャリストは、スライスヘッダ内で明示的に信号伝達される。時間マージ候補に関するスケーリングされた動きベクトルは、図5に点線で示すようにして得られ、それは、POC距離tb及びtdを用いて、コロケートPU(col_PU)の動きベクトルからスケーリングされるものであり、ここで、tbは、現在ピクチャ(curr_pic)の参照ピクチャ(curr_ref)と現在ピクチャとの間のPOC差であると定義され、tdは、コロケートピクチャ(col_pic)の参照ピクチャ(col_ref)とコロケートピクチャとの間のPOC差であると定義される。時間マージ候補の参照ピクチャインデックスは、ゼロに等しく設定される。スケーリングプロセスの実際の具現化はHEVC仕様書に定められている。Bスライスでは、一方が参照ピクチャリスト0に関し、他方が参照ピクチャリスト1に関するものである2つの動きベクトルが得られ、これらが組み合わされて、双予測マージ候補をなす。
図5は、時間マージ候補に対する動きベクトルスケーリングの説明図を示している。
参照フレームに属するコロケートPU(Y)では、図6に示すように、時間候補に関する位置が、候補C及びCの間で選択される。位置CのPUが利用可能でない、又はイントラ符号化される、又は現在CTU行の外側にある場合、位置Cが使用される。それ以外の場合には、位置Cが時間マージ候補の導出に使用される。
図6は、時間マージ候補C及びCについての候補位置の例を示している。
2.1.1.4. 追加候補挿入
空間及び時間マージ候補の他に、結合双予測マージ候補及びゼロマージ候補という2つの更なるタイプのマージ候補が存在する。結合双予測マージ候補は、空間及び時間マージ候補を利用することによって生成される。結合双予測マージ候補はBスライスのみに使用される。結合双予測候補は、当初候補の第1の参照ピクチャリスト動きパラメータを別のものの第2の参照ピクチャリスト動きパラメータと組み合わせることによって生成される。これら2つのタプルが異なる動き仮説を提供する場合、それらは新たな双予測候補を形成する。一例として、図7は、mvL0とrefIdxL0、又はmvL1とrefIdxL1、を有するものである元のリスト(左側)内の2つの候補を用いて、最終的なリスト(右側)に追加される結合双予測マージ候補が作成される場合を示している。これらの追加マージ候補を生成するために考慮される組み合わせに関するルールが数多く存在する。
マージ候補リストの残りのエントリを埋め、それ故にMaxNumMergeCand容量に達するように、ゼロ動き候補が挿入される。これらの候補は、ゼロの空間変位と、ゼロから始まり、新たなゼロ動き候補がリストに追加される度に増加する参照ピクチャインデックスと、を有する。これらの候補によって使用される参照フレームの数は、片方向予測及び双方向予測でそれぞれ1及び2である。最後に、これらの候補に対して冗長性検査は行われない。
2.1.1.5 並列処理向けの動き推定領域
符号化プロセスを高速化するために、動き推定を並列に実行することができ、それにより、所与の領域内の全ての予測ユニットに対する動きベクトルが同時に導出される。空間的に近隣するものからのマージ候補の導出は、1つの予測ユニットが、隣接PUから動きパラメータをそれに関連する動き推定が完了するまで導出することができないので、並列処理を妨げてしまい得る。符号化効率と処理レイテンシとの間のトレードオフを緩和するために、HEVCは、そのサイズが“log2_parallege_merge_level_minus2”構文要素を用いてピクチャパラメータセット内で信号伝達される動き推定領域(motion estimation region;MER)を定義している。MERが規定される場合、同じ領域に入るマージ候補は利用不可とマークされ、それ故にリスト作成において考慮されない。
2.1.2 AMVP
AMVPは、隣接PUとの動きベクトルの空間-時間相関を利用し、それが動きパラメータの明示的伝送に使用される。各参照ピクチャリストに対して、先ず、左上の時間的に隣接するPU位置の利用可能性を検査し、冗長候補を除去し、そして、ゼロベクトルを追加して候補リストを一定長さにすることによって、動きベクトル候補リストが構築される。そして、エンコーダは、候補リストから最良の予測子を選択し、選択した候補を指し示す対応するインデックスを送信することができる。同様に、マージインデックス信号伝達では、最良の動きベクトル候補のインデックスがtruncated unaryを用いて符号化される。この場合に符号化される最大値は2である(図8を参照)。以下のセクションにて、動きベクトル予測候補の導出プロセスの詳細を提供する。
2.1.2.1 AMVP候補の導出
動きベクトル予測では、空間動きベクトル候補及び時間動きベクトル候補の2種類の動きベクトル候補が考慮される。空間動きベクトル候補導出では、図2で示したような5つの異なる位置にある各PUの動きベクトルに基づいて、最終的に2つの動きベクトル候補が導出される。
時間動きベクトル候補導出では、2つの異なるコロケート位置に基づいて導出されるものである2つの候補から、1つの動きベクトル候補が選択される。空間-時間候補の第1のリストが作成された後、リスト内の重複した動きベクトル候補が除去される。可能性ある候補の数が2よりも多い場合、関連する参照ピクチャリスト内でその参照ピクチャインデックスが1よりも大きい動きベクトル候補がリストから削除される。空間-時間動きベクトル候補の数が2より少ない場合、追加のゼロ動きベクトル候補がリストに追加される。
2.1.2.2. 空間動きベクトル候補
空間動きベクトル候補の導出においては、図2で示したような位置にあるPUから導出されるものである5つの可能性ある候補の中の最大2つの候補が考慮され、それらの位置は動きマージの位置と同じである。現在PUの左側についての導出の順序が、A、A、及びスケーリングされたA、スケーリングされたAとして定められる。現在PUの上側についての導出の順序が、B、B、B、スケーリングされたB、スケーリングされたB、スケーリングされたBとして定められる。従って、各側について、動きベクトル候補として使用され得る4つのケースが存在し、2つのケースは空間スケーリングを使用する必要がなく、2つのケースでは空間スケーリングが使用される。それら4つの異なるケースは、以下のようにまとめられる:
・ 空間スケーリングなし
- (1)同一参照ピクチャリスト、且つ同一参照ピクチャインデックス(同一POC)
- (2)異なる参照ピクチャリスト、しかし、同一参照ピクチャ(同一POC)
・ 空間スケーリング
- (3)同一参照ピクチャリスト、しかし、異なる参照ピクチャ(異なるPOC)
- (4)異なる参照ピクチャリスト、且つ異なる参照ピクチャ(異なるPOC)
空間スケーリングなしのケースが最初に検査され、空間スケーリングが続く。空間スケーリングは、参照ピクチャリストにかかわらず、隣接PUの参照ピクチャと現在PUの参照ピクチャとの間でPOCが異なる場合に考慮される。左候補の全てのPUが利用可能でない又はイントラ符号化される場合、左及び上のMV候補の並列導出を助けるために、上の動きベクトルに対するスケーリングが可能にされる。それ以外の場合には、上の動きベクトルに対して空間スケーリングは可能にされない。
図9は、空間動きベクトル候補に対する動きベクトルスケーリングの説明図を示している。
空間スケーリングプロセスでは、図9として示すように、隣接PUの動きベクトルが、時間スケーリングに関してと同様のやり方でスケーリングされる。主な違いは、参照ピクチャリスト及び現在PUのインデックスが入力として与えられることであり、実際のスケーリングプロセスは時間スケーリングのそれと同じである。
2.1.2.3. 時間動きベクトル候補
参照ピクチャインデックスの導出は別にして、時間マージ候補の導出のための全てのプロセスは、空間動きベクトル候補の導出に関してと同じである(図6を参照)。参照ピクチャインデックスがデコーダに信号伝達される。
2.2. JEMにおける新しいインター予測方法
2.2.1 サブCUベース動きベクトル予測
QTBTを用いるJEMでは、各CUが、各予測方向に対して最大1セットの動きパラメータを持つことができる。エンコーダにおいて、大きなCUを複数のサブCUに分割し、大きなCUの全てのサブCUに対して動き情報を導出することによって、2つのサブCUレベルの動きベクトル予測方法が考慮される。代替的時間動きベクトル予測(alternative temporal motion vector prediction;ATMVP)法は、各CUが、コロケート参照ピクチャ内の現在CUよりも小さい複数のブロックから複数セットの動き情報をフェッチすることを可能にする。空間-時間動きベクトル予測(spatial-temporal motion vector prediction;STMVP)法では、サブCUの動きベクトルが、時間動きベクトル予測子と空間隣接動きベクトルとを用いることによって再帰的に導出される。
サブCU動き予測のためにより正確な動きフィールドを保存するために、現行では参照フレームに対する動き圧縮が無効にされる。
2.2.1.1. 代替的時間動きベクトル予測
代替的時間動きベクトル予測(ATMVP)法では、動きベクトルの時間動きベクトル予測(temporal motion vector prediction;TMVP)が、現在CUよりも小さい複数のブロックから複数セットの動き情報(動きベクトル及び参照インデックスを含む)をフェッチすることによって修正される。図10に示すように、サブCUは、正方形のN×Nブロックである(Nはデフォルトで4に設定される)。
ATMVPは、CU内の複数のサブCUの動きベクトルを2ステップで予測する。第1ステップは、いわゆる時間ベクトルを用いて参照ピクチャ内の対応するブロックを特定することである。参照ピクチャ1050は、モーションソースピクチャとも呼ばれる。第2ステップは、図10に示すように、現在CU1000をサブCU1001へと分割し、各サブCUに対応するブロックから、各サブCUの動きベクトル及び参照インデックスを取得することである。
第1ステップにて、参照ピクチャ及び対応するブロックが、現在CUの空間隣接ブロックの動き情報によって決定される。隣接ブロックの繰り返し走査処理を回避するために、現在CUのマージ候補リスト内の最初のマージ候補が使用される。第1の利用可能な動きベクトル及びそれに関連する参照インデックスが、モーションソースピクチャへの時間ベクトル及びインデックスであるように設定される。斯くして、ATMVPでは、対応するブロックを、TMVPと比較して、より正確に特定することでき、対応するブロック(同一位置のブロックと呼ばれることもある)は常に現在CUに対して右下又は中央の位置にある。
第2ステップにて、現在CUの座標に時間ベクトルを足し合わせることによって、サブCUの対応するブロックが、モーションソースピクチャ内の時間ベクトルによって特定される。各サブCUについて、対応するブロック(中心サンプルをカバーする最小動きグリッド)の動き情報を用いて、そのサブCUに関する動き情報が導出される。対応するN×Nブロックの動き情報が特定された後、それが、HEVCのTMVPと同様にして、現在サブCUの動きベクトル及び参照インデックスに変換され、ここで、動きスケーリング及び他の手順が適用される。例えば、デコーダは、低遅延条件(すなわち、現在ピクチャの全ての参照ピクチャのPOCが、現在ピクチャのPOCよりも小さいこと)が満たされているかをチェックし、動きベクトルMVx(参照ピクチャリストXに対応する動きベクトル)を用いて、各サブCUに関する動きベクトルMV(Xは0又は1に等しく、Yは1-Xに等しい)を予測し得る。
2.2.1.2. 空間-時間動きベクトル予測
この方法では、サブCUの動きベクトルが、ラスタ走査順に従って再帰的に導出される。図11は、この概念を示している。4つの4×4のサブCU A、B、C、及びDを含む8×8のCUを考える。現在フレーム内の隣接する4×4のブロックを、a、b、c、及びdとラベル付ける。
サブCU Aに対する動き導出は、それの2つの空間的に隣接するものを特定することによって開始する。隣接する第1のものは、サブCU Aの上のN×Nブロック(ブロックc)である。このブロックcが利用可能でない又はイントラ符号化される場合、サブCU Aの上の他のN×Nブロックが検査される(ブロックcから始めて左から右へ)。隣接する第2のものは、サブCU Aの左のブロック(ブロックb)である。ブロックbが利用可能でない又はイントラ符号化される場合、サブCU Aの左の他のブロックが検査される(ブロックbから始めて上から下へ)。各リストについてこれら隣接ブロックから得られた動き情報が、所与のリストについての最初の参照フレームに対してスケーリングされる。次に、サブブロックAの時間動きベクトル予測子(temporal motion vector predictor;TMVP)が、HEVCで規定されるのと同じTMVP導出手順に従うことによって導出される。位置Dのコロケートブロックの動き情報が、然るべくフェッチされてスケーリングされる。最後に、動き情報を取り出してスケーリングした後に、全ての利用可能な動きベクトル(最大3つ)が、各参照リストについて別々に平均化される。平均化された動きベクトルが、現在サブCUの動きベクトルとして割り当てられる。
2.2.1.3. サブCU動き予測モード信号伝達
サブCUモードは、追加のマージ候補として有効にされ、これらのモードを信号伝達するのに追加の構文要素は必要とされない。ATMVPモード及びSTMVPモードを表すために、各CUのマージ候補リストに2つの追加マージ候補が加えられる。シーケンスパラメータセットがATMVP及びSTMVPが有効にされることを指し示す場合に、最大7つのマージ候補が使用される。これら追加マージ候補の符号化論理は、HMにおけるマージ候補に関してと同じであり、これは、Pスライス又はBスライス内の各CUについて、2つの追加マージ候補に対して2つの更なるRD検査が必要とされることを意味する。
JEMでは、マージインデックスの全てのビンが、CABACによってコンテキスト符号化される。一方、HEVCでは、最初のビンのみがコンテキスト符号化され、残りのビンはコンテキストバイパス符号化される。
2.2.2. 適応動きベクトル差レゾリューション
HEVCでは、スライスヘッダ内でuse_integer_mv_flagが0に等しい場合に、(動きベクトルとPUの予測動きベクトルとの間の)動きベクトル差(MVD)が、1/4ルマサンプルの単位で信号伝達される。JEMでは、局所適応動きベクトルレゾリューション(locally adaptive motion vector resolution;LAMVR)が導入されている。JEMにおいて、MVDは、1/4ルマサンプル、整数ルマサンプル、4ルマサンプルの単位で符号化されることができる。このMVD分解能は、符号化ユニット(CU)レベルで制御され、MVD分解能フラグが、少なくとも1つの非ゼロのMVD成分を持つ各CUに対して条件付きで信号伝達される。
少なくとも1つの非ゼロのMVD成分を持つCUに対して、そのCUで1/4ルマサンプルMV精度が使用されるかを指し示すために、第1のフラグが信号伝達される。1/4ルマサンプルMV精度が使用されないことを第1のフラグ(1に等しい)が指し示す場合、整数ルマサンプルMV精度又は4ルマサンプルMV精度が使用されるかを指し示すために、別のフラグが信号伝達される。
CUの第1のMVD分解能フラグがゼロである又はCUに対して符号化されない(CU内の全てのMVDがゼロであることを意味する)場合、1/4ルマサンプルMV分解能がそのCUに対して使用される。CUが整数ルマサンプルMV精度又は4ルマサンプルMV精度を使用する場合、そのCUに関するAMVP候補リスト内のMVPは、対応する精度に丸められる。
エンコーダで、CUレベルでのRD検査を用いて、CUに対してどのMVD分解能が使用されるべきかを決定する。すなわち、CUレベルRD検査が3回、MVD解像度ごとに実行される。エンコーダ速度を加速させるために、JEMでは以下の符号化スキームが適用される:
・ 通常の1/4ルマサンプルMVD分解能でのCUのRD検査において、現在CUの動き情報(整数ルマサンプル精度)が記憶される。記憶された動き情報(丸め後)が、整数ルマサンプル及び4ルマサンプルMVD分解能での同一CUについてのRD検査において、更に小さい範囲での動きベクトル精緻化の出発点として使用されることで、時間のかかる動き推定プロセスが3回も繰り返されないようにする。
・ 4ルマサンプルMVD分解能でのCUのRD検査が条件付きで呼び出される。あるCUに対して、整数ルマサンプルMVD分解能でのRDコストが1/4ルマサンプルMVD分解能でのそれよりも遥かに大きい場合、そのCUに対する4ルマサンプルMVD分解能のRD検査がスキップされる。
2.2.3 より高い動きベクトル記憶精度
HEVCにおいて、動きベクトル精度は1/4ペル(4:2:0映像の場合は1/4ルマサンプル及び1/8クロマサンプル)である。JEMでは、内部動きベクトル記憶及びマージ候補の精度が1/16ペルに上昇する。このいっそう高い動きベクトル精度(1/16ペル)が、スキップ/マージモードで符号化されるCUに対する動き補償インター予測で使用される。通常のAMVPモードで符号化されるCUでは、セクション0で記載したように、整数ペル又は1/4ペルのいずれかの動きが使用される。
HEVC動き補償補間フィルタと同じフィルタ長及び正規化係数を持つものであるSHVCアップサンプリング補間フィルタが、更なる分数ペル位置に対する動き補償補間フィルタとして使用される。クロマ成分動きベクトル精度はJEMにおいて1/32サンプルであり、1/32ペル分数位置の追加の補間フィルタは、2つの隣接する1/16ペル分数位置のフィルタの平均を用いることによって得られる。
2.2.4 オーバーラップブロック動き補償
以前、H.263で、オーバーラップブロック動き補償(Overlapped Block Motion Compensation;OBMC)が使用されてきた。JEMでは、H.263においてとは異なり、CUレベルの構文を用いて、OBMCをオン及びオフに切り換えることができる。OBMCがJEMで使用されるとき、OBMCは、CUの右境界及び下境界を除く全ての動き補償(MC)ブロック境界に対して実行される。さらに、これは、ルマ成分及びクロマ成分の両方に適用される。JEMにおいて、MCブロックは符号化ブロックに対応している。CUがサブCUモード(サブCUマージ、アフィン、及びFRUCモードを含む)で符号化される場合、そのCUの各サブブロックがMCブロックである。CU境界を一様なやり方で処理するために、図12に示すようにサブブロックサイズを4×4に等しく設定して、全てのMCブロック境界に対してサブブロックレベルでOBMCが実行される。
OBMCが現在サブブロックに適用される場合、現在動きベクトルの他に、利用可能であり且つ現在動きベクトルと同一ではない場合に、4つのつながった隣接サブブロックの動きベクトルも、現在サブブロックについての予測ブロックを導出するために使用される。複数の動きベクトルに基づくこれら複数の予測ブロックを組み合わせて、現在サブブロックの最終的な予測信号を生成する。
隣接サブブロックの動きベクトルに基づく予測ブロックは、Nは隣接する上、下、左及び右のサブブロックに関するインデックスを差し示すとして、Pと表記され、現在サブブロックの動きベクトルに基づく予測ブロックはPと表記される。Pが、現在サブブロックに対して同じ動き情報を含む隣接サブブロックの動き情報に基づく場合、OBMCはPからは実行されない。それ以外の場合には、Pの全てのサンプルがP内の同じサンプルに足し合わされ、すなわち、Pの4つの行/列がPに加算される。重み係数{1/4,1/8,1/16,1/32}がPに対して使用され、重み係数{3/4,7/8,15/16,31/32}がPに対して使用される。例外は、小さいMCブロック(すなわち、符号化ブロックの高さ又は幅が4に等しい場合、又はCUがサブCUモードで符号化される場合)であり、その場合には、Pのうち2つの行/列のみがPcに足し合わされる。この場合、重み係数{1/4,1/8}がPに対して使用され、重み係数{3/4,7/8}がPに対して使用される。垂直(水平)隣接サブブロックの動きベクトルに基づいて生成されるPでは、Pの同じ行(列)のサンプルが、同じ重み係数でPに足し合わされる。
JEMでは、256ルマサンプル以下のサイズのCUについて、その現在CUにOBMCが適用されるか否かを指し示すためにCUレベルのフラグが信号伝達される。256ルマサンプルよりも大きいサイズのCU又はAMVPモードで符号化されないCUについては、OBMCがデフォルトで適用される。エンコーダにおいて、OBMCがCUに適用されるとき、その影響が動き推定段階の間に考慮すされる。上隣接ブロック及び左隣接ブロックの動き情報を用いてOBMCによって形成される予測信号が、現在CUの原信号の上境界及び左境界を補償するために使用され、次いで、通常の動き推定プロセスが適用される。
2.2.5 局所照明補償
局所照明補償(Local Illumination Compensation;LIC)は、スケーリング係数aとオフセットbを用いた、照明変化に関する線形モデルに基づく。また、それは、インターモード符号化される符号化ユニット(CU)ごとに適応的に有効又は無効にされる。
図13は、ICパラメータを導出するのに使用される隣接サンプルの例を示している。
LICがCUに適用される場合、現在CUの隣接サンプル及びそれらの対応する参照サンプルを用いることによってパラメータa及びbを導出するために、最小二乗誤差法が採用される。より具体的には、図13に例示するように、CUのサブサンプリング(2:1サブサンプリング)された隣接サンプルと、参照ピクチャ内の対応するサンプル(現在CU又は現在サブCUの動き情報によって特定される)とが使用される。各予測方向について別々にICパラメータが導出されて適用される。
CUがマージモードで符号化される場合、マージモードにおける動き情報コピーと同様のやり方で、LICフラグが隣接ブロックからコピーされ、それ以外の場合には、CUについて、LICが適用されるか否かを指し示すために、LICフラグが信号伝達される。
LICがピクチャに対して有効にされる場合、CUにLICが適用されるか否かを決定するために追加のCUレベルのRDチェックが必要とされる。LICがCUに対して有効にされる場合、整数ピクセル動き探索及び分数ピクセル動き探索のために、それぞれ、絶対差の平均除去和(mean-removed sum of absolute difference;MR-SAD)及び絶対アダマール変換差の平均除去和(mean-removed sum of absolute Hadamard-transformed difference;MR-SATD)が、SAD及びSATDの代わりに使用される。
符号化の複雑さを低減させるために、JEMでは符号化スキームが適用される:
・ 現在ピクチャとその参照ピクチャとの間に明白な照明変化がないときにはピクチャ全体に対してLICが無効にされる。この状況を特定するために、現在ピクチャのヒストグラム及び現在ピクチャの全ての参照ピクチャのヒストグラムがエンコーダで計算される。現在ピクチャと現在ピクチャの全ての参照ピクチャとの間でヒストグラム差が所与の閾値より小さい場合、現在ピクチャに対してLICが無効にされ、それ以外の場合には、現在ピクチャに対してLICが有効にされる。
2.2.6 アフィン動き補償予測
HEVCでは、動き補償予測(motion compensation prediction;MCP)に並進動きモデルのみが適用されている。一方、現実世界では、例えばズームイン/アウト、回転、遠近動作、及び他の不規則な動きといった、多くの種類の動きが存在する。JEMでは、単純化されたアフィン変換動き補償予測が適用されている。図14に示すように、ブロックのアフィン動きフィールドが、2つの制御点動きベクトルによって記述される。
ブロックの動きベクトルフィールド(motion vector field;MVF)は、次式:
Figure 2024015289000002
によって記述される。
ここで、(v0x,v0y)は、左上角の制御点の動きベクトルであり、(v1x,v1y)は、右上角の制御点の動きベクトルである。
動き補償予測を更に単純化するために、サブブロックベースのアフィン変換予測が適用される。サブブロックサイズM×Nが、式2:
Figure 2024015289000003
においてのように導出され、ここで、MvPreは動きベクトル分数精度(JEMでは1/16)であり、(v2x,v2y)は、式1に従って計算される左下制御点の動きベクトルである。
式2によって導出された後に、M及びNは、必要な場合に、それぞれw及びhの除数にするために下方調整されるべきである。
各M×Nサブブロックの動きベクトルを導出するために、図15に示すように、各サブブロックの中心サンプルの動きベクトルが、式1に従って計算され、1/16分数精度に丸められる。次いで、セクション0で述べた動き補償補間フィルタが適用されて、導出された動きベクトルを有する各サブブロックの予測が生成される。
MCPの後、各サブブロックの高精度動きベクトルが丸められ、通常の動きベクトルと同じ精度で保存される。
JEMでは、AF_INTERモード及びAF_MERGEモードという2つのアフィン動きモードが存在する。AFFINE_INTERモード及びAFFINE_MERGEモードである。幅及び高さの両方が8よりも大きいCUに対して、AF_INTERモードを適用することができる。AF_INTERモードが使用されるかを指し示すために、CUレベルでのアフィンフラグがビットストリーム内で信号伝達される。このモードでは、動きベクトルペア{(v,v)|v={v,v,v},v={v,v}}を持つ候補リストが、隣接ブロックを用いて構築される。図16に示すように、vは、ブロックA、B又はCの動きベクトルから選択される。隣接ブロックからの動きベクトルは、参照リストと、隣接ブロックに対するリファレンスのPOC、現在CUに対するリファレンスのPOC、及び現在CUのPOCの間の関係と、に従ってスケーリングされる。そして、隣接ブロックD及びEからvを選択するアプローチは同様である。候補リストの数が2よりも少ない場合、そのリストは、AMVP候補の各々を複製することによって構成される動きベクトルペアによってパディングされる。候補リストが2より大きい場合、それらの候補が先ず、隣接する動きベクトルの一貫性(ペア候補の2つの動きベクトルの類似度)に従ってソートされ、最初の2つの候補のみが保持される。RDコスト検査を使用して、どの動きベクトルペア候補が現在CUの制御点動きベクトル予測(CPMVP)として選択されるかを決定する。そして、候補リスト内でのCPMVPの位置を指し示すインデックスが、ビットストリーム内で信号伝達される。現在アフィンCUのCPMVPが決定された後、アフィン動き推定が適用され、制御点動きベクトル(CPMV)が見出される。そして、CPMVとCPMVPとの差分がビットストリーム内で信号伝達される。
AF_MERGEモードにおいてCUが適用されるとき、それは、有効な隣接再構成ブロックからアフィンモードで符号化された最初のブロックを取得する。そして、候補ブロックの選択順序は、図17Aに示すように、左から、上、右上、左下、左上である。図17Bに示すように隣接左下ブロックがアフィンモードで符号化される場合、ブロックAを含むCUの左上角、右上角、及び左下角の動きベクトルv、v、及びvが導出される。そして、現在CUの左上の動きベクトルvが、v、v、及びvに従って算出される。次に、現在CUの右上の動きベクトルvが算出される。
現在CUのCPMV v及びvが、単純化されたアフィン動きモデルの式1に従って計算された後、現在CUのMVFが生成される。現在CUがAF_MERGEモードで符号化されるかを特定するために、少なくとも1つの隣接ブロックがアフィンモードで符号化されるときに、アフィンフラグがビットストリーム内で信号伝達される。
2.2.7 パターンマッチング動きベクトル導出
パターンマッチング動きベクトル導出(pattern matched motion vector derivation;PMMVD)モードは、フレームレートアップコンバージョン(Frame-Rate Up Conversion;FRUC)技術に基づく特別なマージモードである。このモードでは、ブロックの動き情報は信号伝達されずにデコーダ側で導出される。
マージフラグが真(true)である場合、CUについてFRUCフラグが信号伝達される。FRUCフラグが偽(false)である場合、マージインデックスが信号伝達され、通常のマージモードが使用される。FRUCフラグが真である場合、ブロックについての動き情報を導出するためにどの方法(バイラテラルマッチング又はテンプレートマッチング)が使用されるかを指し示すために、追加のFRUCモードフラグが信号伝達される。
エンコーダ側で、CUにFRUCマージモードを使用するかの決定は、通常のマージ候補に関して行われているようなRDコスト選択に基づく。すなわち、CUについて、2つのマッチングモード(バイラテラルマッチング及びテンプレートマッチング)がどちらも、RDコスト選択を用いることによって検査される。最小コストにつながる方の1つが更に、他のCUモードと比較される。FRUCマッチングモードが最も効率的なものである場合、そのCUに対してFRUCフラグが真に設定され、関係付けられたマッチングモードが使用される。
FRUCマージモードにおける動き導出プロセスは2つのステップを有する。先ず、CUレベルの動き探索が実行され、サブCUレベルの動き精緻化が続く。CUレベルでは、バイラテラルマッチング又はテンプレートマッチングに基づいて、CU全体に対して当初動きベクトルが導出される。最初にMV候補のリストが生成され、最小マッチングコストにつながる候補が、更なるCUレベル精緻化のための出発点として選択される。そして、出発点の周りでのバイラテラルマッチング又はテンプレートマッチングに基づく局所探索が実行され、最小マッチングコストをもたらすMVが、CU全体についてのMVとして採られる。続いて、導出されたCU動きベクトルを出発点として、サブCUレベルで動き情報が更に精緻化される。
例えば、W×HのCU動き情報導出の場合、以下の導出プロセスが実行される。第1段階にて、W×H CU全体についてのMVが導出される。第2段階にて、CUが更にM×MサブCUに分割される。Mの値は式(16)においてと同様に計算され、Dは、JEMではデフォルトで3に設定される予め定められた分割深さである。
Figure 2024015289000004
図18に示すように、バイラテラルマッチングは、2つの異なる参照ピクチャ内の現在CUの動き軌跡に沿った2つのブロック間で最も近い一致を見出すことによって現在CUの動き情報を導出するために使用される。連続した動き軌跡という仮定の下、2つの参照ブロックを指す動きベクトルMV0及びMV1は、現在ピクチャと2つの参照ピクチャとの間の時間距離、すなわち、TD0及びTD1に比例したものとなる。特別なケースとして、現在ピクチャが時間的に2つの参照ピクチャの間にあり、且つ現在ピクチャから2つの参照ピクチャまでの時間距離が同じである場合、バイラテラルマッチングはミラーに基づく双方向MVになる。
図19に示すように、テンプレートマッチングは、現在ピクチャ内のテンプレート(現在CUの上及び/又は左隣接ブロック)と参照ピクチャ内のブロック(テンプレートと同じサイズ)との間で最も近い一致を見出すことによって現在CUの動き情報を導出するために使用される。上述のFRUCマージモードを除き、テンプレートマッチングはAMVPモードにも適用される。JEMでは、HEVCで行われているように、AMVPは2つの候補を有する。テンプレートマッチング法を用いて、新たな候補が導出される。テンプレートマッチングによって新たに導出された候補が最初の既存のAMVP候補と異なる場合、それがAMVP候補リストの最初の部分に挿入され、リストサイズが2に設定される(2番目の既存のAMVP候補を削除することを意味する)。AMVPモードに適用される場合、CUレベル探索のみが適用される。
2.2.7.1 CUレベルMV候補セット
CUレベルで設定されるMV候補は:
(i)現在CUがAMVPモードにある場合、元のAMVP候補
(ii)全てのマージ候補
(iii)セクション0で紹介した、補間MVフィールド内の幾つかのMV
(iv)上及び左隣接動きベクトル
で構成される。
バイラテラルマッチングを使用する場合、マージ候補の妥当なMVの各々が、バイラテラルマッチングを仮定したMVペアを生成するための入力として用いられる。例えば、マージ候補の1つの妥当なMVが参照リストAにおける(MVa,refa)である。すると、それとペアにされたバイラテラルMVの参照ピクチャrefbが、refaとrefbとが時間的に現在ピクチャの異なる側にあるようにして、他方の参照リストB内で見出される。そのようなrefbが参照リストB内で得られない場合、refbは、リストB内の、refaとは異なり且つ現在ピクチャに対する時間距離が最小のリファレンスとして決定される。refbが決定された後、現在ピクチャとrefa及びrefbとの間の時間距離に基づいてMVaをスケーリングすることによって、MVbが導出される。
補間MVフィールドからの4つのMVもCUレベル候補リストに加えられる。より具体的には、現在CUの位置(0,0)、(W/2,0)、(0,H/2)及び(W/2,H/2)における補間MVが追加される。
FRUCがAMVPモードで適用される場合、元のAMVP候補もCUレベルMV候補セットに加えられる。
CUレベルでは、AMVP CUに対する最大15個のMVと、マージCUに対する最大13個のMVとが、候補リストに加えられる。
2.2.7.2 サブCUレベルMV候補セット
サブCUレベルで設定されるMV候補は:
(i)CUレベル探索から決定されるMV
(ii)上、左、左上、及び右上隣接MV
(iii)参照ピクチャからのコロケートMVをスケーリングしたもの
(iv)最大4つのATMVP候補
(v)最大4つのSTMVP候補
で構成される。
参照ピクチャからのスケーリングされたMVは、以下のように導出される。両方のリスト内の全ての参照ピクチャが検討される。参照ピクチャ内のサブCUのコロケート位置におけるMVが、出発CUレベルMVのリファレンスにスケーリングされる。
ATMVP及びSTMVP候補は、最初の4つの候補に限られる。
サブCUレベルでは、最大17個のMVが候補リストに加えられる。
2.2.7.3 補間MVフィールドの生成
フレームを符号化する前に、ピクチャ全体に対して、ユニラテラルMEに基づいて補間動きフィールドが生成される。そして、動きフィールドは、後に、CUレベル又はサブCUレベルMV候補として使用され得る。
先ず、両方の参照リスト内の各参照ピクチャの動きフィールドが、4×4ブロックレベルで検討される。各4×4ブロックについて、現在ピクチャ内の4×4ブロックとそのブロックとを通る(図20に示すように)そのブロックに関連する動きに、如何なる補間された動きも割り当てられていない場合、参照ブロックの動きが、時間距離TD0及びTD1に従って現在ピクチャにスケーリングされ(HEVCでのTMVPのMVスケーリングと同じやり方)、スケーリングされた動きが、現在フレーム内のブロックに割り当てられる。ある4×4ブロックに、スケーリングされたMVが割り当てられていない場合、そのブロックの動きは、補間動きフィールドにおいて利用可能でないとしてマークされる。
2.2.7.4 補間及びマッチングコスト
動きベクトルが分数サンプル位置を指すとき、動き補償補間が必要とされる。複雑さを低減させるため、バイラテラルマッチング及びテンプレートマッチングの両方で、通常の8タップHEVC補間の代わりにバイリニア補間が使用される。
マッチングコストの計算は、異なるステップで少し異なる。CUレベルで候補セットから候補を選択するとき、マッチングコストは、バイラテラルマッチング又はテンプレートマッチングの絶対和差(SAD)である。出発MVが決定された後、サブCUレベル探索におけるバイラテラルマッチングのマッチングコストCが、次のように計算され:
Figure 2024015289000005
ここで、wは、経験的に4に設定される重み係数であり、MV及びMVは、それぞれ、現在MV及び出発MVを指す。サブCUレベル探索におけるテンプレートマッチングのマッチングコストとして、SADが依然として使用される。
FRUCモードでは、MVは、ルマサンプルのみを使用して導出される。導出された動きがMCインター予測のためにルマ及びクロマの両方に使用されることになる。MVが決定された後、ルマに対しては8タップ補間フィルタを使用し、クロマに対しては4タップ補間フィルタを使用して、最終的なMCが実行される。
2.2.7.5 MV精緻化
MV精緻化は、バイラテラルマッチングコスト又はテンプレートマッチングコストの基準を用いたパターンベースのMV探索である。JEMでは、無制限中心バイアスダイヤモンド探索(unrestricted center-biased diamond search;UCBDS)と、CUレベル及びサブCUレベルでのMV精緻化のための適応クロス探索との、2つの探索パターンがサポートされている。CUレベル及びサブCUレベルの両方のMV精緻化で、MVは1/4ルマサンプルMV精度で直接探索され、これに1/8ルマサンプルMV精緻化が続く。CU及びサブCUステップのMV精緻化の探索範囲は、8ルマサンプルに等しく設定される。
2.2.7.6 テンプレートマッチングFRUCマージモードにおける予測方向の選択
バイラテラルマッチングマージモードでは、2つの異なる参照ピクチャ内の現在CUの動き軌跡に沿った2つのブロック間の最も近い一致に基づいてCUの動き情報が導出されるので、双予測が常に適用される。テンプレートマッチングマージモードには、そのような制限はない。テンプレートマッチングマージモードにおいて、エンコーダは、list0からの片予測、list1からの片予測、又はCUに対する双予測の中から選択することができる。この選択は、次のようにテンプレートマッチングのコストに基づく:
costBi<=factor*min(cost0,cost1)である場合、
双予測が使用される;
そうでなく、cost0<=cost1である場合、
list0からの片予測が使用される;
その他の場合、
list1からの片予測が使用される;
ここで、cost0はlist0テンプレートマッチングのSADであり、cost1はlist1テンプレートマッチングのSADであり、costBiは双予測テンプレートマッチングのSADである。factorの値は1.25に等しく、これは、この選択プロセスが双予測の方にバイアスされることを意味する。
インター予測方向選択は、CUレベルテンプレートマッチングプロセスにのみ適用される。
2.2.8 一般化双予測改良
JVET-L0646で提案される一般化Bi予測改良(GBi)がVTM--3.0に採用されている。
GBiはJVET-C0047で提案された。JVET-K0248はGBiでの利得-複雑性トレードオフを改善し、BMS2.1に採用された。BMS2.1 GBiは、双予測モードでL0からの予測子とL1からの予測子とに不均等な重みを適用する。インター予測モードでは、等しい重みペア(1/2,1/2)を含む複数の重みペアがレート歪み最適化(RDO)に基づいて評価され、選択された重みペアのGBiインデックスがデコーダに信号伝達される。マージモードでは、GBiインデックスは隣接CUから継承される。BMS2.1 GBiでは、双予測モードでの予測子生成が式(1)に示される。
GBi=(w*PL0+w*PL1+RoundingOffsetGBi)>>shiftNumGBi
であり、ここで、PGBiはGBiの最終予測子であり、w及びwは選択されたGBi重みペアであり、それぞれ、リスト0(L0)及びリスト1(L1)の予測子に適用される。RoundingOffsetGBi及びshiftNumGBiは、GBiにおける最終予測子を正規化するために用いられる。サポートされるw重みセットは{-1/4,3/8,1/2,5/8,5/4}であり、これら5つの重みは、1つの等しい重みペア及び4つの等しくない重みペアに対応する。混合利得、すなわち、wとwとの和は1.0に固定される。従って、対応するw重みセットは{5/4,5/8,1/2,3/8,-1/4}である。この重みペア選択はCUレベルにおいてである。
非低遅延ピクチャでは、重みセットサイズが5から3に縮小され、w1重みセットは{3/8,1/2,5/8}であり、w0重みセットは{5/8,1/2,3/8}である。非低遅延ピクチャに対する重みセットサイズ縮小は、BMS2.1 GBi及びこの寄稿における全てのGBiテストに適用される。
このJVET-L0646では、GBi性能を更に向上させるために、JVET-L0197とJVET-L0296とに基づく1つの組み合わせソリューションが提案されている。具体的には、BMS2.1の既存のGBi設計の上に以下の変更が適用される。
2.2.8.1 GBiエンコーダバグ修正
GBi符号化時間を短縮するために、現行エンコーダ設計では、エンコーダは、4/8に等しいGBi重みから推定された片予測動きベクトルを記憶し、それらを他のGBi重みの片予測探索のために再利用する。この高速な符号化方法は、並進動きモデル及びアフィン動きモデルの両方に適用される。VTM2.0では、6パラメータアフィンモデルが4パラメータアフィンモデルと共に採用された。BMS2.1エンコーダは、GBi重みが4/8に等しいときの片予測アフィンMVを記憶する場合に、4パラメータアフィンモデルと6パラメータアフィンモデルとを区別しない。従って、GBi重み4/8で符号化した後、4パラメータアフィンMVが6パラメータアフィンMVによって上書きされ得る。記憶された6パラメータアフィンMVが、他のGBi重みに対する4パラメータアフィンMEに使用されることができ、あるいは、格納された4パラメータアフィンMVが、6パラメータアフィンMEに使用されることができる。提案されるGBiエンコーダバグ修正は、4パラメータアフィンMVストレージと6パラメータアフィンMVストレージとを分離する。当該エンコーダは、GBi重みが4/8に等しい場合に、アフィンモデルタイプに基づいてそれらのアフィンMVを記憶し、他のGBi重みについては、アフィンモデルタイプに基づいて対応するアフィンMVを再利用する。
2.2.8.2
GBiエンコーダ高速化
GBiを有効にされるときに符号化時間を短縮するために、5つのエンコーダ高速化方法が提案されている。
(1)一部のGBi重みについてのアフィン動き推定を条件付きでスキップする。
BMS2.1では、4パラメータ及び6パラメータアフィンMEを含むアフィンMEが全てのGBi重みについて実行される。我々は、等しくないGBi重み(4/8に等しくない重み)についてのアフィンMEを条件付きでスキップすることを提案する。具体的には、アフィンMEは、4/8のGBi重みを評価した後にアフィンモードが現在の最良モードとして選択され且つそれがアフィンマージモードではない場合にのみ、他のGBi重みについて実行される。現在ピクチャが非低遅延ピクチャである場合、アフィンMEが実行されるとき、並進モデルの双予測MEが、等しくないGBi重みについてスキップされる。アフィンモードが現在の最良モードとして選択されない場合、又はアフィンマージが現在の最良モードとして選択される場合、アフィンMEは他の全てのGBi重みについてスキップされる。
(2)1ペル及び4ペルMVD精度での符号化において低遅延ピクチャに対するRDコスト検査のための重みの数を削減する。
低遅延ピクチャでは、1/4ペル、1ペル及び4ペルを含む全てのMVD精度でのRDコスト検査に関して5つの重みが存在する。エンコーダは先ず1/4ペルMVD精度でのRDコストを検査することになる。我々は、1ペル及び4ペルMVD精度でのRDコスト検査に関して、GBi重みの一部をスキップすることを提案する。我々は、1/4ペルMVD精度でのそれらのRDコストに従って、それらの等しくない重みを順序付ける。最小のRDコストを有する最初の2つの重みのみが、GBi重み4/8と共に、1ペル及び4ペルMVD精度での符号化において評価されることになる。従って、低遅延ピクチャに対して、多くて3つの重みが1ペル及び4ペルMVD精度について評価されることになる。
(3)L0参照ピクチャとL1参照ピクチャとが同じである場合に双予測探索を条件付きでスキップする。
RAにおける一部のピクチャでは、同じピクチャが両方の参照ピクチャリスト(list-0及びlist-1)内に発生することがある。例えば、CTCにおけるランダムアクセス符号化構成では、第1のグループオブピクチャ(GOP)に対する参照ピクチャ構造は次のようにリスト化される:
POC:16、TL:0、[L0:][L1:
POC:8、TL:1、[L0: 16] [L1:16
POC:4、TL:2、[L0:0 ] [L1: 16]
POC:2,TL:3,[L0:0 ] [L1: 8]
POC:1、TL:4、[L0:0 ] [L1: 4]
POC:3、TL:4、[L0:2 0] [L1:4 8]
POC:6,TL:3,[L0:4 0] [L1:8 16]
POC:5、TL:4、[L0:4 0] [L1:68]
POC:7、TL:4、[L0:6 4] [L1:8 16]
POC:12、TL:2、[L0: 0] [L1:16
POC:10、TL:3、[L0:8 0] [L1:12 16]
POC:9、TL:4、[L0:8 0] [L1:10 12]
POC:11、TL:4、[L0:10 8] [L1:12 16]
POC:14、TL:3、[L0:12 8] [L1:12 16]
POC:13、TL:4、[L0:12 8] [L1:14 16]
POC:15、TL:4、[L0:14 12] [L1:16 14
ピクチャ16、8、4、2、1、12、14、及び15が両方のリスト内で同じ参照ピクチャを持つことが分かる。これらのピクチャに対する双予測では、L0とL1とで参照ピクチャが同じであることが可能である。我々は、1)双予測における2つの参照ピクチャが同一であり、且つ2)時間層が1より大きく、且つ3)MVD精度が1/4ペルである場合に、等しくないGBi重みについての双予測MEをエンコーダがスキップすることを提案する。アフィン双予測MEでは、この高速スキップ法は4パラメータアフィンMEにのみ適用される。
(4)時間層及び参照ピクチャと現在ピクチャとの間のPOC距離に基づいて、等しくないGBi重みについてのRDコスト検査をスキップする。
我々は、時間層が4(RAにおける最も高い時間層)に等しい、又は参照ピクチャ(list-0又はlist-1のいずれか)と現在ピクチャとの間のPOC距離が1に等しく、符号化QPが32より大きい場合に、等しくないGBi重みについてのRDコスト評価をスキップすることを提案する。
(5)MEにおける等しくないGBi重みについて浮動小数点計算を固定小数点計算に変更する。
既存の双予測探索で、エンコーダは1つのリストのMVを固定し、もう1つのリストのMVを精緻化する。計算の複雑さを低減させるために、ターゲットがMEの前に修正される。例えば、list-1のMVが固定され、エンコーダがlist-0のMVを精緻化する場合、list-0のMV精緻化のターゲットが式(5)で修正される。Oは元の信号であり、Pはlist-1の予測信号である。wはlist-1に対するGBi重みである。
Figure 2024015289000006
ここで、項(1/(8-w))は浮動小数点精度にて格納され、それが計算の複雑さを増す。我々は、式(5)を式(6):
Figure 2024015289000007
として固定小数点に変更することを提案し、ここで、a1及びa2はスケーリング係数であり、
Figure 2024015289000008
として計算される。
2.2.8.3 GBiに対するCUサイズ制約
この方法では、小さいCUに対してGBiが無効にされる。インター予測モードにおいて、双予測が使用され且つCU領域が128ルマサンプルより小さい場合、如何なる信号伝達もなくGBiが無効にされる。
2.2.9 双方向オプティカルフロー
2.2.9.1 理論解析
BIOでは、現在ブロックの(各予測方向における)第1の予測を生成するために、先ず、動き補償が実行される。第1の予測を用いて、ブロック内の各サブブロック/ピクセルの空間勾配、時間勾配、及びオプティカルフローが導出され、次いで、それらを用いて、第2の予測、すなわち、サブブロック/ピクセルの最終予測が生成される。詳細は以下のとおりである。
双方向オプティカルフロー(BIO)は、双方向予測のためのブロックごとの動き補償に加えて実行されるサンプルごとの動き精緻化である。このサンプルレベルの動き精緻化は信号伝達を使用しない。
図21は、オプティカルフロー軌跡の一例を示している。
ブロック動き補償後のリファレンスk(k=0,1)からのルマ値をI(k)とし、∂I(k)/∂x、∂I(k)/∂yは、それぞれ、I(k)勾配の水平成分及び垂直成分である。オプティカルフローが妥当であると仮定すると、動きベクトルフィールド(v,v)は式:
Figure 2024015289000009
によって与えられる。
このオプティカルフローの式を各サンプルの動き軌跡に対するエルミート補間と組み合わせると、両端で関数値I(k)及び導関数∂I(k)/∂x、∂I(k)/∂yの両方に一致する固有の三次多項式が得られる。t=0におけるこの多項式の値がBIO予測:
Figure 2024015289000010
である。
ここで、τ及びτは、図21に示すように参照フレームまでの距離を表す。拒理τ及びτは、Ref0及びRef1に関するPOCに基づいて、τ=POC(現在)-POC(Ref0)、τ=POC(Ref1)-POC(現在)と計算される。両方の予測が同じ時間方向からのものである(両方とも過去から又は両方とも未来からのいずれかである)場合、符号が異なる(すなわち、τ・τ<0)。この場合、BIOは、予測が同一の時点からでなく(すなわち、τ≠τ)、両方の参照領域が非ゼロの動きを持ち(MVx,MVy,MVx,MVy≠0)、且つブロック動きベクトルが時間距離に比例する(MVx/MVx=MVy/MVy=-τ/τ)場合にのみ適用される。
動きベクトルフィールド(v,v)は、(図9の動き軌跡と参照フレーム面との交点である)点Aと点Bとの間での値の差Δを最小化することによって決定される。モデルは、Δに関する局所テイラー展開:
Figure 2024015289000011
の最初の1次項のみを使用する。
式(9)の全ての値は、これまでの表記から省略していたサンプル位置(i’,j’)に依存する。動きが局所的な周囲領域内で一貫していると仮定し、我々は、Mは2に等しいとして、現在予測している点(i,j)を中心とした(2M+1)×(2M+1)の正方形ウィンドウΩの内側でΔを最小化する:
Figure 2024015289000012
この最適化問題に対して、JEMは、最初に垂直方向、次に水平方向に最小化する単純化したアプローチを使用する。それは、
Figure 2024015289000013
を生じさせ、ここで、
Figure 2024015289000014
である。
ゼロ又は非常に小さい値による除算を回避するために、正規化パラメータr及びmが式(11)及び(12)に導入されている。
Figure 2024015289000015
ここで、dは映像サンプルのビット深度である。
BIOのためのメモリアクセスを通常の双予測動き補償と同じに保つために、全ての予測及び勾配値I(k)、∂I(k)/∂x、∂I(k)/∂yが、現在ブロックの内側の位置についてのみ計算される。式(13)において、予測ブロックの境界上の現在予測している点を中心とする(2M+1)×(2M+1)の正方形ウィンドウΩは、(図22Aに示すように)ブロックの外側の位置にアクセスする必要がある。JEMでは、ブロックの外側のI(k)、∂I(k)/∂x、∂I(k)/∂yの値は、ブロックの内側の最も近い利用可能な値に等しく設定される。例えば、これは、図22Bに示すように、パディングとして実装されることができる。
BIOを用いると、各サンプルに対して動きフィールドを精緻化することが可能である。計算の複雑さを低減させるために、JEMではBIOのブロックベース設計が使用される。その動き精緻化は、4×4ブロックに基づいて計算される。ブロックベースのBIOでは、4×4ブロック内の全てのサンプルの式(13)中のsの値が集約され、そして、sの集約値を用いて、その4×4ブロックについてのBIO動きベクトルオフセットが導出される。より具体的には、ブロックベースのBIO導出のために、次式:
Figure 2024015289000016
が使用され、ここで、bは、予測ブロックのk番目の4×4ブロックに属するサンプルの集合を表す。関連する動きベクトルオフセットを導出するために、式(11)及び(12)中のsが((s,b)>>4)によって置き換えられる。
一部のケースで、BIOのMV精緻化は、ノイズ又は不規則な動きのために信頼できないものであるかもしれない。従って、BIOでは、MV精緻化の大きさが閾値thBIOにクリップされる。この閾値は、現在ピクチャの参照ピクチャが全て一方向からであるかに基づいて決定される。現在ピクチャの全ての参照ピクチャが一方向からである場合、閾値の値は12×214-dに設定され、そうでない場合には、それは12×213-dに設定される。
BIOに関する勾配は、HEVC動き補償プロセス(2D分離可能FIR)と一貫した演算を使用して、動き補償補間と同時に計算される。この2D分離可能FIRの入力は、動き補償プロセスと同じ参照フレームサンプル、及びブロック動きベクトルの分数部に従った分数位置(fracX,fracY)である。水平勾配∂I/∂xの場合、先ず、デスケーリングシフトd-8をした分数位置fracYに対応するBIOfilterSを用いて信号が垂直に補間され、次いで、18-dだけデスケーリングシフトをした分数位置fracXに対応するBIOfilterGが水平方向に適用される。垂直勾配∂I/∂yの場合、先ず、デスケーリングシフトd-8をした分数位置fracYに対応するBIOfilterGを用いて垂直に勾配フィルタが適用され、次いで、18-dだけデスケーリングシフトをした分数位置fracXに対応するBIOfilterSを用いて水平方向に信号変位が行われる。勾配計算用の補間フィルタBIOfilterG及び信号変位用の補間フィルタBIOfilterFの長さは、合理的な複雑さを維持するためにいっそう短く(6タップ)される。表1は、BIOにおけるブロック動きベクトルの異なる分数位置に対する勾配計算に使用されるフィルタを示している。
表2は、BIOにおける予測信号生成に使用される補間フィルタを示している。
Figure 2024015289000017
Figure 2024015289000018
JEMでは、BIOは、2つの予測が異なる参照ピクチャからである場合に、全ての双予測ブロックに適用される。CUに対してLICが有効にされる場合には、BIOは無効にされる。
JEMでは、OBMCが通常のMCプロセス後にブロックに適用される。計算の複雑さを低減させるために、BIOはOBMCプロセス中には適用されない。これが意味することは、BIOは、自身のMVを使用するときのブロックに対するMCプロセスにおいてのみ適用され、OBMCプロセスにおいて隣接ブロックのMVが使用されるときのMCプロセスにおいては適用されない。
2.2.9.2 JVET-L0256で提案されているVTM-3.0におけるBIO
ステップ1:BIOが適用可能であるかを判定する(WおよびHは現在ブロックの幅及び高さである)。
以下の場合、BIOは適用可能でない:
・ アフィン符号化される
・ ATMVP符号化される
・ (iPOC-iPOC0)*(iPOC-iPOC1)>=0
・ H==4又は(W==4且つH==8)
・ 重み付け予測を用いる
・ GBi重みが(1,1)でない。
以下の場合、BIOは使用されない:
- 2つの参照ブロック(R0及びR1と表記)の間の合計SADが閾値よりも小さい。
Figure 2024015289000019
ステップ2:データ準備
W×Hブロックに対し、(W+2)×(H+2)サンプルが補間される。
内側のW×Hサンプルは、通常の動き補償においてと同様に8タップ補間フィルタで補間される。
サンプルの4辺の外側ライン(図23の黒丸)は、バイリニアフィルタで補間される。
各位置について、2つの参照ブロック(R0及びR1と表記される)上で勾配が計算される:
Gx0(x,y)=(R0(x+1,y)-R0(x-1,y))>>4
Gy0(x,y)=(R0(x,y+1)-R0(x,y-1))>>4
Gx1(x,y)=(R1(x+1,y)-R1(x-1,y))>>4
Gy1(x,y)=(R1(x,y+1)-R1(x,y-1))>>4。
各位置について、内部値が
T1=(R0(x,y)>>6)-(R1(x,y)>>6),T2=(Gx0(x,y)+Gx1(x,y))>>3,T3=(Gy0(x,y)+Gy1(x,y))>>3
B1(x,y)=T2*T2,B2(x,y)=T2*T3,B3(x,y)=-T1*T2,B5(x,y)=T3*T3,B6(x,y)=-T1*T3
として計算される。
ステップ3:各ブロックについての予測を計算する
2つの4×4参照ブロック間のSADが閾値より小さい場合、BIOは4×4ブロックに対してスキップされる。
Vx及びVyを計算する。
4×4ブロック内の各位置について最終予測値を計算する:
b(x,y)=(Vx(Gx0(x,y)-Gx1(x,y))+Vy(Gy0(x,y)-Gy1(x,y))+1)>>1
P(x,y)=(R0(x,y)+R1(x,y)+b(x,y)+offset)>>shift。
b(x,y)は補正項として知られている。
2.2.9.3 VTM-3.0におけるBIO
以下のセクション番号は、VVC標準文書の最新版におけるセクションを参照している。
8.3.4 インターブロックの復号プロセス
- predFlagL0及びpredFlagL1が1に等しく、DiffPicOrderCnt(currentPic、refPicList0[refIdx0])*DiffPicOrderCnt(currPic,refPicList1[refIdx1])<0であり、MotionModelIdc[xCb][yCb]が0に等しく、且つMergeModeList[merge_idx[xCb]][yCb]]がSbColに等しくない場合、bioAvailablegの値をTRUEに設定する。
- それ以外の場合、bioAvailableFlagの値をFALSEに設定する。
...(元の仕様書のテキストが続く)
- bioAvailableFlagがTRUEに等しい場合、以下が適用される:
- 変数ShiftがMax(2,14-bitDepth)に等しく設定される。
- 変数cuLevelAbsDiffThres及びsubCuLevelAbsDiffThresが、(1<<(bitDepth-8+shift))*cbWidth*cbHeight及び1<<(bitDepth-3+shift)に等しく設定される。変数cuLevelSumAbsoluteDiffが0に設定される。
- xSbIdx=0..(cbWidth>>2)-1及びySbIdx=0..(cbHeight>>2)-1に対し、変数subCuLevelSumAbsoluteDiff[xSbIdx][ySbIdx]及び現在サブブロックの双方向オプティカルフロー利用フラグbioUtilizationFlag[xSbIdx][ySbIdx]が、次のように導出される:
i,j=0..3で、subCuLevelSumAbsoluteDiff[xSbIdx][ySbIdx]=ΣiΣj
Abs(predSamplesL0L[(xSbIdx<<2)+1+i][(ySbIdx<<2)+1+j]-

predSamplesL1L[(xSbIdx<<2)+1+i][(ySbIdx<<2)+1+j])
bioUtilizationFlag[xSbIdx][ySbIdx]=
subCuLevelSumAbsoluteDiff[xSbIdx][ySbIdx]>=subCuLevelAbsDiffThres
cuLevelSumAbsoluteDiff+=subCuLevelSumAbsoluteDiff[xSbIdx][ySbIdx]
- cuLevelSumAbsoluteDiffがcuLevelAbsDiffThresより小さい場合、bioAvailableFlagをFALSEに設定する。
- bioAvailableFlagがTRUEに等しい場合、現在ルマ符号化サブブロック内の予測サンプルである、xL=0..sbWidth-1及びyL=0..sbHeight-1でのpredSamplesL[xL+xSb][yL+ySb]が、ルマ符号化サブブロック幅sbWidth、ルマ符号化サブブロック高さsbHeight、サンプルアレイpreSamplesL0L及びpreSamplesL1L、並びに変数predFlagL0、predFlagL1、refIdxL0、refIdxL1を用いて、節8.3.4.5に規定される双方向オプティカルフローサンプル予測プロセスを呼び出すことによって導出される。
8.3.4.3 分数サンプル補間プロセス
8.3.4.3.1 全般
このプロセスへのインプットは以下の通りである:
- 現在ピクチャの左上ルマサンプルに対して現在符号化サブブロックの左上サンプルを規定するルマ位置(xSb,ySb)、
- ルマサンプル内の現在符号化サブブロックの幅を規定する変数sbWidth、
- ルマサンプル内の現在符号化サブブロックの高さを規定する変数sbHeight、
- 1/16ルマサンプル単位で与えられるルマ動きベクトルmvLX、
- 1/32クロマサンプル単位で与えられるクロマ動きベクトルmvCLX、
- 選択された参照ピクチャサンプルアレイrefPicLXL並びにアレイrefPicLXCb及びrefPicLXCr、
- 双方向オプティカルフロー有効化フラグbioAvailableFlag。
このプロセスの出力は以下である:
- bioAvailableFlagがFALSEである場合の、予測ルマサンプル値の(sbWidth)×(sbHeight)アレイpredSamplesLXL、又はbioAvailableFlagがTRUEである場合の、予測ルマサンプル値の(sbWidth+2)×(sbHeight+2)アレイpredSamplesLXL、
- 予測クロマサンプル値の2つの(sbWidth/2)×(sbHeight/2)アレイpreSamplesLXCb及びpreSamplesLXCr。
(xIntL,yIntL)をフルサンプル単位で与えられるルマ位置とし、(xFracL,yFracL)を1/16サンプル単位で与えられるオフセットとする。これらの変数は、参照サンプルアレイrefPicLXL、refPicLXCb、及びrefPicLXCrの内側の分数サンプルの位置を規定するためにこの節でのみ使用される。
bioAvailableFlagがTRUEに等しい場合、予測ルマサンプルアレイpreSamplesLXLの内側の各ルマサンプル位置(xL=-1..sbWidth,yL=-1..sbHeight)について、対応する予測ルマサンプル値preSamplesLXL[xL][yL]が次のように導出される:
- 変数xIntL、yIntL、xFracL及びyFracLが、次のように導出される:
xIntL=xSb-1+(mvLX[0]>>4)+xL
yIntL=ySb-1+(mvLX[1]>>4)+yL
xFracL=mvLX[0]&15
yFracL=mvLX[1]&15
- bilinearFiltEnabledFlagの値が次のように導出される:
- xLが-1又はsbWidthに等しい場合、又はyLが-1又はsbHeightに等しい場合、bilinearFiltEnabledFlagの値をTRUEに設定する。
- それ以外の場合、bilinearFiltEnabledFlagの値をFALSEに設定する。
- (xIntL,yIntL)、(xFracL,yFracL)、refPicLXL、bilinearFiltEnabledFlagを入力として、第8.3.4.3.2項に規定されるプロセスを呼び出すことによって、予測ルマサンプル値predSamplesLXL[xL][yL]が導出される。
bioAvailableFlagがFALSEに等しい場合、予測ルマサンプルアレイpreSamplesLXLの内側の各ルマサンプル位置(xL=0..sbWidth-1,yL=0..sbHeight-1)について、対応する予測ルマサンプル値preSamplesLXL[xL][yL]が以下のように導出される:
- 変数xIntL、yIntL、xFracL及びyFracLが、次のように導出される:
xIntL=xSb+(mvLX[0]>>4)+xL
yIntL=ySb+(mvLX[1]>>4)+yL
xFracL=mvLX[0]&15
yFracL=mvLX[1]&15
- 変数bilinearFiltEnabledFlagがFALSEに設定される。
- (xIntL,yIntL)、(xFracL,yFracL)、refPicLXL、bilinearFiltEnabledFlagを入力として、第8.3.4.3.2項に規定されるプロセスを呼び出すことによって、予測ルマサンプル値predSamplesLXL[xL][yL]が導出される。
...(元の仕様書のテキストが続く)
8.3.4.5 双方向オプティカルフロー予測プロセス
このプロセスへの入力は以下である:
- 現在符号化ブロックの幅及び高さを規定する2つの変数nCbW及びnCbH、
- 2つの(nCbW+2)×(nCbH+2)ルマ予測サンプルアレイpredSamplesL0及びpredSamplesL1、
- 予測リスト利用フラグpredFlagL0及びpredFlagL1、
- 参照インデックスrefIdxL0及びrefIdxL1、
- xSbIdx=0..(nCbW>2)-1、ySbIdx=0...(nCbH>2)-1での、双方向オプティカルフロー利用フラグbioUtilizationFlag[xSbIdx][ySbIdx]。
このプロセスの出力は、ルマ予測サンプル値の(nCbW)×(nCbH)アレイpbSamplesである。
変数bitDepthが、BitDepthYに等しく設定される。
変数shift2が、Max(3,15-bitDepth)に等しく設定され、変数offset2が、1<<(shift2-1)に等しく設定される。
変数mvRefinesThresが、1<<(13-bitDepth)に等しく設定される。
xSbIdx=0..(nCbW>>2)-1及びySbIdx=0..(nCbH>>2)-1に対し、
- bioUtilizationFlag[xSbIdx][ySbIdx]がFALSEである場合、x=xSb..xSb+3、y=ySb..ySb+3に対して、現在予測ユニットの予測サンプル値が次のように導出される:
pbSamples[x][y]=Clip3(0,(1<<bitDepth)-1,
(predSamplesL0[x][y]+predSamplesL1[x][y]+offset2)>>shift2)
- それ以外の場合、現在予測ユニットの予測サンプル値は次のように導出される:
- 予測サンプルアレイpredSamplesL0及びpredSampleL1の左上サンプルに対して現在サブブロックの左上サンプルを規定する位置(xSb,ySb)が、次のように導出される:
xSb=(xSbIdx<<2)+1
ySb=(ySbIdx<<2)+1
- x=xSb-1..xSb+4、y=ySb-1..ySb+4に対して、以下が適用される:
- 予測サンプルアレイの内側の対応するサンプル(x,y)の各々についての位置(hx,vy)が、次のように導出される:
hx=Clip3(1,nCbW,x)
vy=Clip3(1,nCbH,y)
- 変数gradientHL0[x][y]、gradientVL0[x][y]、gradientHL1[x][y]及びgradientVL1[x][y]が、次のように導出される:
gradientHL0[x][y]=(predSamplesL0[hx+1][vy]-predSampleL0[hx-1][vy])>>4
gradientVL0[x][y]=(predSampleL0[hx][vy+1]-predSampleL0[hx][vy-1])>>4
gradientHL1[x][y]=(predSamplesL1[hx+1][vy]-predSampleL1[hx-1][vy])>>4
gradientVL1[x][y]=(predSampleL1[hx][vy+1]-predSampleL1[hx][vy1])>>4
- 変数temp、tempX、tempYが、次のように導出される:
temp[x][y]=(predSamplesL0[hx][vy]>>6)-(predSamplesL1[hx][vy]>>6)
tempX[x][y]=(gradientHL0[x][y]+gradientHL1[x][y])>>3
tempY[x][y]=(gradientVL0[x][y]+gradientVL1[x][y])>>3
- 変数sGx2、sGy2、sGxGy、sGxdI及びsGydIが、次のように導出される:
x,y=-1..4で、sGx2=ΣxΣy(tempX[xSb+x][ySb+y]*tempX[xSb+x][ySb+y])
x,y=-1..4で、sGy2=ΣxΣy(tempY[xSb+x][ySb+y]*tempY[xSb+x][ySb+y])
x,y=-1..4で、sGxGy=ΣxΣ(tempX[xSb+x][ySb+y]*tempY[xSb+x][ySb+y])
x,y=-1..4で、sGxdIΣxΣ(-tempX[xSb+x][ySb+y]*temp[xSb+x][ySb+y])
x,y=-1..4で、sGydI=ΣxΣy(-tempY[xSb+x][ySb+y]*temp[xSb+x][ySb+y])
- 現在サブブロックの水平及び垂直動き精緻化が、次のように導出される:
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(sGy2))):0
sGxGym=sGxGy>>12;
sGxGys=sGxGy&((1<<12)-1)
x=xSb-1..xSb+2、y=ySb-1..ySb+2に対し、以下が適用される:
sampleEnh=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,(1<<bitDepth)-1,(predSamplesL0[x+1][y+1]
+predSamplesL1[x+1][y+1]+sampleEnh+offset2)>>shift2)
2.2.10 デコーダ側動きベクトル精緻化(DMVR)
DMVRは、デコーダ側動きベクトル導出(Decoder-side Motion Vector Derivation;DMVD)の一種である。
双予測演算では、1つのブロック領域の予測のために、list0の動きベクトル(MV)とlist1のMVとを用いて形成される2つの予測ブロックが結合されて単一の予測信号を形成する。デコーダ側動きベクトル精緻化(decoder-side motion vector refinement;DMVR)法においては、双予測の二つの動きベクトルが、バイラテラルテンプレートマッチングプロセスによって更に精緻化される。精緻化されたMVを追加の動き情報の伝送なし得るために、バイラテラルテンプレートと参照ピクチャ内の再構成サンプルとの間で歪ベース探索を実行するよう、デコーダにおいてバイラテラルテンプレートマッチングが適用される。
DMVRにおいて、バイラテラルテンプレートは、図24に示すように、当初の、list0のMV0及びlist1のMV1からの、2つの予測ブロックの重み付けた結合(すなわち平均)として生成される。テンプレートマッチング演算は、生成されたテンプレートと参照ピクチャ内のサンプル領域(当初予測ブロック付近)との間のコスト指標を計算することからなる。2つの参照ピクチャの各々について、最小のテンプレートコストを生み出すMVが、元のMVを置き換えるためのそのリストの更新されたMVとみなされる。JEMでは、各リストに対して9つのMV候補が探索される。9つのMV候補は、元のMVと、元のMVに対して水平方向若しくは垂直方向のいずれか又は両方に1ルマサンプルのオフセットを有する8つの周囲のMVとを含む。最終的に、それら2つの新たなMV、すなわち、図24に示すMV0’及びMV1’が、最終的な双予測結果を生成するために使用される。絶対差の和(sum of absolute differences;SAD)がコスト指標として使用される。留意されたいことには、周囲の1つのMVによって生成される予測ブロックのコストを計算するとき、予測ブロックを得るために、実際には、実際のMVの代わりに(整数ペルに)丸められたMVが使用される。
DMVRは、追加の構文要素の伝送なしに、過去の参照ピクチャからの1つのMVと未来の参照ピクチャからのもう1つのMVとを用いる双予測のマージモードに適用される。JEMでは、CUに対してLIC、アフィン動き、FRUC、又はサブCUマージ候補が有効にされるとき、DMVRは適用されない。
2.2.11 JVET-N0236
この寄稿は、オプティカルフローを用いてサブブロックベースのアフィン動き補償予測を精緻化する方法を提案している。サブブロックベースのアフィン動き補償が実行された後、予測サンプルが、オプティカルフロー方程式によって導出された差を加えることによって精緻化され、これは、オプティカルフローを用いた予測精緻化(prediction refinement with optical flow;PROF)として参照されている。提案される方法は、メモリアクセス帯域幅を増加させることなく、ピクセルレベルの粒度でインター予測を達成することができる。
より細かい粒度での動き補償を達成するため、この寄稿は、オプティカルフローを用いてサブブロックベースのアフィン動き補償予測を精緻化する方法を提案している。サブブロックベースのアフィン動き補償が実行された後、ルマ予測サンプルが、オプティカルフロー方程式によって導出された差を加えることによって精緻化される。提案されるPROF(prediction refinement with optical flow)は、以下の4つのステップとして記述される。
ステップ1)サブブロックベースのアフィン動き補償を実行して、サブブロック予測I(i,j)を生成する。
ステップ2)各サンプル位置で3タップフィルタ[-1,0,1]を用いてサブブロック予測の空間勾配g(i,j)及びg(i,j)を計算する:
Figure 2024015289000020
サブブロック予測は、勾配計算のために、各側で1ピクセルずつ拡張される。メモリ帯域幅及び複雑さを低減させるために、拡張された境界上のピクセルは、参照ピクチャ内の最も近い整数ピクセル位置からコピーされる。従って、パディング領域のための追加の補間は回避される。
ステップ3)オプティカルフロー方程式によりルマ予測精緻化:
Figure 2024015289000021
を計算し、ここで、Δv(i,j)は、図25に示すように、v(i,j)によって表記されるサンプル位置(i,j)について計算されたピクセルMVと、ピクセル(i,j)が属するサブブロックのサブブロックMVとの間の差である。
アフィンモデルパラメータ及びサブブロック中心に対するピクセル位置はサブブロック間で変更されないので、Δv(i,j)を最初のサブブロックについて計算し、同じCU内の他のサブブロックに対して再利用することができる。x及びyを、ピクセル位置からサブブロックの中心までの水平オフセット及び垂直オフセットとして、Δv(x,y)を、次式:
Figure 2024015289000022
によって導出することができる。
4パラメータアフィンモデルでは、
Figure 2024015289000023
である。
6パラメータアフィンモデルでは、
Figure 2024015289000024
である。ここで、(v0x,v0y)、(v1x,v1y)、(v2x,v2y)は、左上、右上、左下の制御点動きベクトルであり、w及びhはCUの幅及び高さである。
ステップ4)最後に、ルマ予測精緻化をサブブロック予測I(i,j)に足し合わせる。最終予測I’が、次式:
Figure 2024015289000025
として生成される。
2.2.12 JVET-N0510
位相変分アフィンサブブロック動き補償(phase-variant affine subblock motion compensation;PAMC)
アフィンサブブロックにおけるアフィン動きモデルをより良く近似するために、位相変分MCがサブブロックに適用される。提案される方法では、アフィン符号化ブロックも4×4サブブロックに分割され、VTM4.0で行われるように各サブブロックについてサブブロックMVが導出される。各サブブロックのMCは2つのステージに分けられる。第1ステージは、(4+L-1)×(4+L-1)参照ブロックウィンドウを(4+L-1)行の水平フィルタリングでフィルタリングするものであり、ここで、Lは補間フィルタのフィルタータップ長である。しかしながら、並進MCとは異なり、提案される位相変分アフィンサブブロックMCでは、各サンプル行のフィルタ位相が異なる。各サンプル行について、MVxが次のように導出される:
MVx=(subblockMVx<<7+dMvVerX×(rowIdx-L/2-2))>>7 (式1)
各サンプル行のフィルタ位相はMVxから導出される。subblockMVxは、VTM4.0で行われるように導出されるサブブロックMVのMVのx成分である。rowIdxはサンプル行インデックスである。dMvVerXは、(cuBottomLeftCPMVx-cuTopLeftCPMVx)<<(7-log2LumaCbHeight)であり、ここで、cuBottomLeftCPMVxはCU左下制御点MVのx成分であり、cuTopLeftCPMVxはCU左上制御点MVのx成分であり、LumaCbHeightはルマ符号化ブロック(CB)の高さのlog2である。
水平フィルタリング後、4×(4+L-1)水平フィルタリングされたサンプルが生成される。図1は、提案される水平フィルタリングの概念を示している。灰色の点は参照ブロックウィンドウのサンプルであり、橙色の点は水平フィルタリングされたサンプルを表している。青い管状の8×1サンプルは、図30及び図31に示すように、一回の8タップ水平フィルタリングを適用することを表す。各サンプル行が4回の水平フィルタリングを必要とする。1つのサンプル行のフィルタ位相は同じである。しかしながら、異なる行のフィルタ位相は異なる。斜めにされた4×11サンプルが生成される。
第2ステージにて、4×(4+L-1)水平フィルタリングされたサンプル(図1の橙色のサンプル)が更に垂直フィルタリングされる。各サンプル列について、MVyが次のように導出される:
MVy=(subblockMVy<<7+dMvHorY×(columnIdx-2))>>7 (式2)
各サンプル行のフィルタ位相はMVyから導出される。subblockMVyは、VTM4.0で行われるように導出されるサブブロックMVのMVのy成分である。columnIdxはサンプル列インデックスである。dMvHorYは、(cuTopRightCPMVy-cuTopLeftCPMVy)<<(7-log2LumaCbWidth)であり、ここで、cuTopRightCPMVyはCU右上制御点MVのy成分であり、cuTopLeftCPMVyはCU左上制御点MVのy成分であり、log2LumaCbWidthはルマCBの幅のlog2である。
垂直フィルタリング後、4×4アフィンサブブロック予測サンプルが生成される。図32は、提案される垂直フィルタリングの概念を示している。明るい橙色の点は、第1ステージからの、水平フィルタリングされたサンプルである。赤色の点は、最終予測サンプルとして垂直フィルタリングされたサンプルである。
この提案において、使用される補間フィルタセットは、VTM4.0におけるものと同じである。唯一の違いは、1つのサンプル行に対する水平フィルタ位相が異なるとともに、1つのサンプル列に対する垂直フィルタ位相が異なることである。提案される方法における各アフィンサブブロックに対するフィルタリング演算の数に関しては、VTM4.0におけるそれと同じである。
3. 開示される技術的ソリューションによって解決される問題の例
1. BIOは双予測のみ考慮する
2. vx及びvyの導出は、隣接ブロックの動き情報を考慮しない
3. JVET-N0236ではアフィン予測にオプティカルフローが用いられるが、最適からは程遠い。
4. 実施形態及び技術の例
これらの問題に取り組むために、我々は、オプティカルフローを用いた精緻化予測サンプルの導出に関する異なる構成を提案する。加えて、我々は、現在サブブロック/ブロックの最終予測ブロックを得るために、隣接(例えば、隣の又は隣ではない)ブロックの情報(例えば再構成サンプル又は動き情報など)、及び/又は1つのサブブロック/ブロックの、及び該1つのサブブロック/ブロックの予測ブロックの勾配を用いることを提案する。
以下に列挙される技術及び実施形態は、一般的概念を説明するための例とみなされるべきである。これらの実施形態は狭義に解釈されるべきではない。さらに、これらの技術は、任意の好適なやり方で組み合わされることができる。
リスト0及びリスト1からの現在ピクチャの参照ピクチャを、それぞれ、Ref0及びRef1で表し、τ=POC(現在)-POC(Ref0)、τ=POC(Ref1)-POC(現在)と表し、また、Ref0及びRef1からの現在ブロックの参照ブロックを、それぞれ、refblk0、Refblk1で表す。現在ブロック内のサブブロックに対して、refblk1を指すrefblk0の対応する参照サブブロックのMVが、(v,v)によって表記される。Ref0及びRef1を参照する現在サブブロックのMVが、それぞれ、(mvL0,mvL0)及び(mvL1,mvL1)によって表記される。
以下の説明において、SatShift(x,n)は、
Figure 2024015289000026
として定義され、Shift(x,n)は、Shift(x,n)=(x+offset0)>>nとして定義される。
一例において、offset0及び/又はoffset1は、(1<<n)>>1又は(1<<(n-1)に設定される。他の一例において、offset0及び/又はoffset1は0に設定される。
他の一例において、offset0=offset1=((1<<n)>>1)-1又は((1<<(n-1)))-1である。
Clip3(min,max,x)は
Figure 2024015289000027
として定義される。
以下の説明において、2つの動きベクトル間での演算は、その演算が動きベクトルの2つの成分の両方に適用されることを意味する。例えば、MV3=MV1+MV2は、MV3=MV1+MV2及びMV3=MV1+MV2と等価である。あるいは、演算は、2つの動きベクトルの水平成分又は垂直成分にのみに適用されることもある。
以下の説明において、左隣接ブロック、左下隣接ブロック、上隣接ブロック、右上隣接ブロック、及び左上隣接ブロックは、図2に示すブロックA、A、B、B、及びBとして表記される。
1. ブロック内の位置(x,y)における予測サンプルP(x,y)をP’(x,y)=P(x,y)+Gx(x,y)×Vx(x,y)+Gy(x,y)×Vy(x,y)として精緻化できることが提案される。P’(x,y)が残差サンプルRes(x,y)と共に使用されて、再構成されたRec(x,y)を生成する。(Gx(x,y),Gy(x,y))は、それぞれ例えば水平方向及び垂直方向に沿ったものなどの、位置(x,y)における勾配を表す。(Vx(x,y),Vy(x,y))は、オンザフライで導出され得る位置(x,y)における動き変位を表す;
a. あるいは、重み付け関数が、予測サンプル、勾配、及び動き変位に適用され得る。例えば、P’(x,y)=α(x,y)×P(x,y)+β(x,y)×Gx(x,y)×Vx(x,y)+γ(x,y)×Gy(x,y)×Vy(x,y)であり、ここで、α(x,y)、β(x,y)及びγ(x,y)は、位置(x,y)における重み値であり、整数又は実数とし得る;
i. 例えば、P’(x,y)=(α(x,y)×P(x,y)+β(x,y)×Gx(x,y)×Vx(x,y)+γ(x,y)×Gy(x,y)×Vy(x,y)+offsetP)/(α(x,y)+β(x,y)+γ(x,y))である。一例において、offsetPは0に設定される。あるいは、除算がシフトによって置換されてもよい;
ii. 例えば、P’(x,y)=P(x,y)-Gx(x,y)×Vx(x,y)+Gy(x,y)×Vy(x,y);
iii. 例えば、P’(x,y)=P(x,y)-Gx(x,y)×Vx(x,y)-Gy(x,y)×Vy(x,y);
iv. 例えば、P’(x,y)=P(x,y)+Gx(x,y)×Vx(x,y)-Gy(x,y)×Vy(x,y);
v. 例えば、P’(x,y)=0.5×P(x,y)+0.25×Gx(x,y)×Vx(x,y)+0.25×Gy(x,y)×Vy(x,y);
vi. 例えば、P’(x,y)=0.5×P(x,y)+0.5×Gx(x,y)×Vx(x,y)+0.5×Gy(x,y)×Vy(x,y);
vii. 例えば、P’(x,y)=P(x,y)+0.5×Gx(x,y)×Vx(x,y)+0.5×Gy(x,y)×Vy(x,y);
b. あるいは、P’(x,y)=Shift(α(x,y)×P(x,y),n1)+Shift(β(x,y)×Gx(x,y)×Vx(x,y),n2)+Shift(γ(x,y)×Gy(x,y)×Vy(x,y),n3)であり、α(x,y)、β(x,y)及びγ(x,y)は、位置(x,y)における重み値であり、整数である。n1、n2、n3は、例えば1など、非不の整数である;
c. あるいは、P’(x,y)=SatShift(α(x,y)×P(x,y),n1)+SatShift(β(x,y)×Gx(x,y)×Vx(x,y),n2)+SatShift(γ(x,y)×Gy(x,y)×Vy(x,y),n3)であり、α(x,y)、β(x,y)及びγ(x,y)は、位置(x,y)における重み値であり、整数である。n1、n2、n3は、例えば1など、非不の整数である;
d. あるいは、P’(x,y)=Shift(α(x,y)×P(x,y)+β(x,y)×Gx(x,y)×Vx(x,y)+γ(x,y)×Gy(x,y)×Vy(x,y),n1)であり、α(x,y)、β(x,y)及びγ(x,y)は、位置(x,y)における重み値であり、整数である。n1は、例えば1など、非不の整数である;
e. あるいは、P’(x,y)=SatShift(α(x,y)×P(x,y)+β(x,y)×Gx(x,y)×Vx(x,y)+γ(x,y)×Gy(x,y)×Vy(x,y),n1)であり、α(x,y)、β(x,y)及びγ(x,y)は、位置(x,y)における重み値であり、整数である。n1は、例えば1など、非不の整数である;
f. あるいは、P’(x,y)=α(x,y)×P(x,y)+Shift(β(x,y)×Gx(x,y)×Vx(x,y),n2)+Shift(γ(x,y)×Gy(x,y)×Vy(x,y),n3)であり、α(x,y)、β(x,y)及びγ(x,y)は、位置(x,y)における重み値であり、整数である。n2、n3は、例えば1など、非不の整数である;
g. あるいは、P’(x,y)=α(x,y)×P(x,y)+SatShift(β(x,y)×Gx(x,y)×Vx(x,y),n2)+SatShift(γ(x,y)×Gy(x,y)×Vy(x,y),n3)であり、α(x,y)、β(x,y)及びγ(x,y)は、位置(x,y)における重み値であり、整数である。n2、n3は、例えば1など、非不の整数である;
h. あるいは、P’(x,y)=α(x,y)×P(x,y)+Shift(β(x,y)×Gx(x,y)×Vx(x,y)+γ(x,y)×Gy(x,y)×Vy(x,y),n3)であり、α(x,y)、β(x,y)及びγ(x,y)は、位置(x,y)における重み値であり、整数である。n3は、例えば1など、非不の整数である;
i. あるいは、P’(x,y)=α(x,y)×P(x,y)+SatShift(β(x,y)×Gx(x,y)×Vx(x,y)+γ(x,y)×Gy(x,y)×Vy(x,y),n3)であり、α(x,y)、β(x,y)及びγ(x,y)は、位置(x,y)における重み値であり、整数である。n3は、例えば1など、非不の整数である;
j. あるいは、P’(x,y)=f0(P(x,y))+f1(Gx(x,y)×Vx(x,y))+f2(Gy(x,y)×Vy(x,y))であり、f0、f1及びf2は3つの関数である;
k. 一例において、(Gx(x,y),Gy(x,y))はP(x1,y1)で計算され、x1は[x-Bx0,x+Bx1]の範囲に属し、y1は[y-By0,y+By1]の範囲に属し、Bx0、Bx1、By0、By1は整数である;
i. 例えば、Gx(x,y)=P(x+1,y)-P(x-1,y)、Gy(x,y)=P(x,y+1)-P(x,y-1);
(i)あるいは、Gx(x,y)=Shift(P(x+1,y)-P(x-1,y),n1)、Gy(x,y)=Shift(P(x,y+1)-P(x,y-1),n2)である。例えば、n1=n2=1である;
(ii)あるいは、Gx(x,y)=SatShift(P(x+1,y)-P(x-1,y),n1)、Gy(x,y)=SatShift(P(x,y+1)-P(x,y-1),n2)である。例えば、n1=n2=1である;
l. P(x,y)は片予測(1つのMVでのインター予測)の予測値とし得る;
m. P(x,y)は双予測(2つのMVでのインター予測)後の最終予測値とし得る;
i. 例えば、Vx(x,y)、Vy(x,y)は、BIO(双方向オプティカルフローBDOFとしても知られる)に規定される手法に従って導出され得る;
n. P(x,y)は多重仮説インター予測(3つ以上のMVでのインター予測)であってもよい;
o. P(x,y)はアフィン予測であってもよい;
p. P(x,y)はイントラ予測であってもよい;
q. P(x,y)はイントラブロックコピー(IBC)予測であってもよい;
r. P(x,y)は、三角予測モード(TPM)によって生成されてもよいし、ジオグラフィック予測モード(GPM)技術によって生成されてもよい;
s. P(x,y)はインター-イントラ結合予測であってもよい;
t. P(x,y)は、領域が同一の動きモデル及びパラメータを共有するものであるグローバルインター予測であってもよい;
u. P(x,y)は、パレット符号化モードによって生成されてもよい;
v. P(x,y)は、マルチビュー又は3Dビデオコーディングにおけるインタービュー予測であってもよい;
w. P(x,y)は、スケーラブルビデオコーディングにおける層間予測であってもよい;
x. P(x,y)は、精緻化される前にフィルタリングされてもよい;
y. P(x,y)は、再構成サンプル値を得るために残差サンプル値と加算されることになる最終予測であってもよい。一部の実施形態において、P(x,y)は、精緻化プロセスが適用されない場合の最終予測とし得る。一部の実施形態において、P’(x,y)は、精緻化プロセスが適用される場合の最終予測とし得る;
i. 一例において、双予測又は多重仮説予測が適用されるブロック(又はサブブロック)で、上の関数が一回、最終予測値に適用される;
ii. 一例において、双予測又は多重仮説予測が適用されるブロック(又はサブブロック)で、1つの予測方向又は参照ピクチャ又は動きベクトルに従った各予測ブロックに対して、予測ブロックを更新するために、上のプロセスが呼び出されるように、上の関数が複数回適用される。その後、更新された予測ブロックを用いて最終予測ブロックが生成され得る;
iii. あるいは、P(x,y)は、最終予測を導出するために使用されることになるものである中間予測であってもよい;
(i)例えば、P(x,y)は、現在ブロックが双予測でインター予測される場合に、1つの参照ピクチャリストからの予測とし得る;
(ii)例えば、P(x,y)は、現在ブロックがTPMで又はGPM技術でインター予測される場合に、1つの参照ピクチャリストからの予測とし得る;
(iii)例えば、P(x,y)は、現在ブロックが多重仮説でインター予測される場合に、1つの参照ピクチャからの予測とし得る;
(iv)例えば、P(x,y)は、現在ブロックがインター-イントラ結合予測される場合に、インター予測とし得る;
(v)例えば、P(x,y)は、現在ブロックが局所照明補償(LIC)を使用する場合に、LICが適用される前のインター予測とし得る;
(vi)例えば、P(x,y)は、現在ブロックがDMVR(又は他の種類のDMVD)を使用する場合に、DMVR(又は他の種類のDMVD)が適用される前のインター予測とし得る;
(vii)例えば、P(x,y)は、現在ブロックが重み付け予測又は一般化双予測(GBi)を使用する場合に、重み係数が乗算される前のインター予測とし得る;
z. G(x,y)と表記される勾配、例えばGx(x,y)又は/及びGy(x,y)は、再構成サンプル値を得るために残差サンプル値と加算されることになる最終予測上で導出されてもよい。一部の実施形態において、精緻化プロセスが適用されない場合、再構成サンプル値を得るために最終予測サンプル値が残差サンプル値に加算される;
i. 例えば、G(x,y)はP(x,y)上で導出され得る;
ii. あるいは、G(x,y)は、最終予測を導出するために使用されることになるものである中間予測上で導出され得る;
(i)例えば、G(x,y)は、現在ブロックが双予測でインター予測される場合に、1つの参照ピクチャリストからの予測上で導出され得る;
(ii)例えば、G(x,y)は、現在ブロックがTPMで又はGPM技術でインター予測される場合に、1つの参照ピクチャリストからの予測上で導出され得る;
(iii)例えば、G(x,y)は、現在ブロックが多重仮説でインター予測される場合に、1つの参照ピクチャからの予測上で導出され得る;
(iv)例えば、G(x,y)は、現在ブロックがインター-イントラ結合予測される場合に、インター予測上で導出され得る;
(v)例えば、G(x,y)は、現在ブロックが局所照明補償(LIC)を使用する場合に、LICが適用される前のインター予測上で導出され得る;
(vi)例えば、G(x,y)は、現在ブロックがDMVR(又は他の種類のDMVD)を使用する場合に、DMVR(又は他の種類のDMVD)が適用される前のインター予測上で導出され得る;
(vii)例えば、G(x,y)は、現在ブロックが重み付け予測又は一般化双予測(GBi)を使用する場合に、重み係数が乗算される前のインター予測上で導出され得る;
aa. あるいは、P’(x,y)は、最終予測サンプルを得るために、他の方法によって更に処理されてもよい;
bb. あるいは、ブロック内の位置(x,y)における再構成サンプルRec(x,y)が、Rec’(x,y)=Rec(x,y)+Gx(x,y)×Vx(x,y)+Gy(x,y)×Vy(x,y)として精緻化され得る。Rec’(x,y)は、再構成されたRec(x,y)を置き換えるために使用されることになる。(Gx(x,y),Gy(x,y))は、それぞれ例えば水平方向及び垂直方向に沿ったものなどの、位置(x,y)における勾配を表す。(Vx(x,y),Vy(x,y))は、オンザフライで導出され得る位置(x,y)における動き変位を表す;
i. 一例において、(Gx(x,y),Gy(x,y))は再構成サンプル上で導出される。
2. (例えば箇条書き1においてなどの)オプティカルフローベースの方法で利用されるVx(x,y)及び/又はVy(x,y)が空間又は時間隣接ブロックに依存し得ることが提案される;
a. あるいは、BIO(BDOFとしても知られる)のプロセスにおけるVx(x,y)及び/又はVy(x,y)が空間又は時間隣接ブロックに依存してもよい;
b. 一例において、空間又は時間隣接ブロックへの“依存”は、動き情報(例えば、MV)、符号化モード(例えば、インター符号化又はイントラ符号化)、隣接CU寸法、隣接CU位置などへの依存を含み得る;
c. 一例において、(Vx(x,y),Vy(x,y))はMVMixに等しいとし得る;
i. 一例において、MVMixはWc(x,y)×MVc+WN1(x,y)×MVN1+WN2(x,y)×MVN2+...+WNk(x,y)×MVNkに等しくてもよく、ここで、MVcは現在ブロックのMVであり、MVN1...MVNkはk個の空間又は時間隣接ブロック:N1...NkのMVである。Wc、WN1...WNkは、整数又は実数とし得る重み値である;
ii. あるいは、MVMixはShift(Wc(x,y)×MVc+WN1(x,y)×MVN1+WN2(x,y)×MVN2+...+WNk(x,y)×MVNk,n1)に等しくてもよく、ここで、MVcは現在ブロックのMVであり、MVN1...MVNkはk個の空間又は時間隣接ブロック:N1...NkのMVである。Wc、WN1...WNkは、整数である重み値である;
iii. あるいは、MVMixはSatShift(Wc(x,y)×MVc+WN1(x,y)×MVN1+WN2(x,y)×MVN2+...+WNk(x,y)×MVNk,n1)に等しくてもよく、ここで、MVcは現在ブロックのMVであり、MVN1...MVNkはk個の空間又は時間隣接ブロック:N1...NkのMVである。Wc、WN1...WNkは、整数である重み値である;
iv. 一例において、Wc(x,y)=0である;
v. 一例において、k=1である。そして、N1は空間隣接ブロックである;
(i)一例において、N1は、位置(x,y)に最も近い空間隣接ブロックである;
(ii)一例において、WN1(x,y)は、位置(x,y)がN1に近いほど大きい;
vi. 一例において、k=1である。そして、N1は時間隣接ブロックである;
(i)例えば、N1は、位置(x,y)についてのコロケートピクチャ内のコロケートブロックである;
一例において、異なる位置は異なる空間又は時間隣接ブロックを使用し得る;
vii. 図26は、Vx(x,y)及び/又はVy(x,y)をどのように導出するかの一例を示している。図中、各ブロックが基本ブロック(例えば4×4ブロック)を表す。現在ブロックが太線でマークされている;
(i)例えば、上境界又は左境界にないものである陰影付きの基本ブロック内の予測サンプルは、オプティカルフローで精緻化されない;
(ii)例えば、C00、C10、C20及びC30などの上境界にある基本ブロック内の予測サンプルは、オプティカルフローで精緻化されることになる;
a. 例えば、上境界にある基本ブロック内の予測サンプルについてのMVMixは、隣接する上隣接ブロックに依存して導出されることになる。例えば、C10内の予測サンプルについてのMVMixは、上隣接ブロックT1に依存して導出されることになる;
(iii)例えば、C00、C01、C02及びC03などの左境界にある基本ブロック内の予測サンプルは、オプティカルフローで精緻化されることになる;
a. 例えば、左境界にある基本ブロック内の予測サンプルについてのMVMixは、隣接する左隣接ブロックに依存して導出されることになる。例えば、C01内の予測サンプルについてのMVMixは、左隣接ブロックL1に依存して導出されることになる;
viii. 一例において、MVc及びMVN1...MVNkは同じ参照ピクチャにスケーリングされ得る;
(i)一例において、それらは、MVcが参照する参照ピクチャにスケーリングされる;
ix. 一例において、それがイントラ符号化されない場合にのみ、空間又は時間隣接ブロックNsを用いてMVMixを導出することができる;
x. 一例において、それがIBC符号化されない場合にのみ、空間又は時間隣接ブロックNsを用いてMVMixを導出することができる;
xi. 一例において、MVsがMVcと同じ参照ピクチャを参照する場合にのみ、空間又は時間隣接ブロックNsを用いてMVMixを導出することができる;
d. 一例において、(Vx(x,y),Vy(x,y))はf(MVMix,MVc)に等しいとしてもよく、ここで、fは関数であり、MVcは現在ブロックのMVである;
i. 例えば、(Vx(x,y),Vy(x,y))はMVMix-MVcに等しいとし得る;
ii. 例えば、(Vx(x,y),Vy(x,y))はMVc-MVMixに等しいとし得る;
iii. 例えば、(Vx(x,y),Vy(x,y))はp×MVMix+q×MVcに等しいとすることができ、ここで、p及びqは実数である。p及びqの一部の例は、p=q=0.5、又はp=1、q=-0.5、又はq=1、p=-0.5などである;
(i)あるいは、(Vx(x,y),Vy(x,y))はShift(p×MVMix+q×MVc,n)又はSatShift(p×MVMix+p×MVc,n)に等しいとしてもよく、ここでp,q及びnは整数である。n、p及びqの一部の例は、n=1、p=2、q=-1、又はn=1、p=q=1、又はn=1、p=-1、q=2などである;
e. 一例において、現在ブロックは片予測でインター予測され、MVcは参照ピクチャリスト0を参照し得る;
f. 一例において、現在ブロックは片予測でインター予測され、MVcは参照ピクチャリスト1を参照し得る;
g. 一例において、現在ブロックは双予測でインター予測され、MVcは参照ピクチャリスト0又は参照ピクチャリスト1を参照し得る;
i. 一例において、最終予測がオプティカルフローによって精緻化される。(Vx(x,y),Vy(x,y))は、例えば参照ピクチャリスト0又は参照ピクチャリスト1など、参照ピクチャリストの1つを参照するMVcで導出され得る;
ii. 一例において、参照リスト0からの予測がオプティカルフローによって精緻化される。(Vx(x,y),Vy(x,y))は、参照リスト0を参照するMVcで導出され得る;
iii. 一例において、参照リスト1からの予測がオプティカルフローによって精緻化される。(Vx(x,y),Vy(x,y))は、参照リスト1を参照するMVcで導出され得る;
iv. オプティカルフローによって精緻化された後の参照リスト0からの予測と、独立にオプティカルフローによって精緻化された後の参照リスト1からの予測とを組み合わせて(例えば、平均して、又は加重平均して)、最終予測を得ることができる;
h. 一例において、現在ブロックが双予測でインター予測され、BDOFが適用され、Vx(x,y),Vy(x,y)が、空間又は時間隣接ブロックに応じて修正される;
i. 例えば、BDOFプロセスにて導出される(Vx(x,y),Vy(x,y))が、V’(x,y)=(V’x(x,y),V’y(x,y))と表記され、開示される方法で導出される(Vx(x,y))、Vy(x,y))がV”(x,y)=(V”x(x,y),V”y(x,y))と表記されるとすると、最終的なV(x,y)=(Vx(x,y),Vy(x,y))は、以下のように導出されることができる:
(i)例えば、V(x,y)=V’(x,y)×W’(x,y)+V”(x,y)×W”(x,y)であり、ここで、W’(x,y)及びW”(x,y)は整数又は実数である。例えば、W’(x,y)=0、W”(x,y)=1、又はW’(x,y)=1、W”(x,y)=0、又はW’(x,y)=0.5、W”(x,y)=0.5である;
(ii)例えば、V(x,y)=Shift(V’(x,y)×W’(x,y)+V”(x,y)×W”(x,y),n1)であり、ここで、W’(x,y)及びW”(x,y)は整数である。n1は、例えば1など、非負の整数である;
(iii)例えば、V(x,y)=SatShift(V’(x,y)×W’(x,y)+V”(x,y)×W”(x,y),n1)であり、ここで、W’(x,y)及びW”(x,y)は整数である。n1は、例えば1など、非負の整数である;
ii. 例えば、空間又は時間隣接ブロックに応じてBDOFにて(Vx(x,y),Vy(x,y))を修正するかどうかは、位置(x,y)に依存し得る;
(i)例えば、上境界又は左境界にないものである図26の陰影付きの基本ブロック内の(Vx(x,y),Vy(x,y))は、空間又は時間隣接ブロックに応じて修正されない;
i. Vx(x,y)及び/又はVy(x,y)をクリップされてもよい;
j. あるいは、上述の方法における空間又は時間隣接ブロックが、現在ブロックの非隣接ブロックによって置き換えられてもよい;
k. あるいは、上述の方法における空間又は時間隣接ブロックが、現在サブブロックの非隣接サブブロックによって置き換えられてもよい;
l. あるいは、上述の方法における空間又は時間隣接ブロックが、現在サブブロックをカバーする現在ブロック/現在CTU/現在VPDU/現在領域の非隣接サブブロックによって置き換えられてもよい;
m. あるいは、上述の方法における空間又は時間隣接ブロックが、履歴ベースの動きベクトルにおけるエントリによって置き換えられてもよい。
3. JVET-N0236に開示されているオプティカルフローを用いたアフィン予測上での精緻化におけるVx(x,y)及び/又はVy(x,y)が、以下のように導出されてもよいことが提案される:
a. Vx(x,y)=a×(x-xc)+b×(y-yc)、Vy(x,y)=c×(x-xc)+d×(y-yc)であり、ここで、(x,y)は検討中の位置であり、(xc,yc)は、位置(x,y)をカバーする寸法w×h(例えば4×4又は8×8)の基本ブロックの中心位置であり、a、b、c及びdはアフィンパラメータである;
i. あるいは、Vx(x,y)=Shift(a×(x-xc)+b×(y-yc),n1),Vy(x,y)=Shift(c×(x-xc)+d×(y-yc),n1)であり、ただし、n1は整数である;
ii. あるいは、Vx(x,y)=SatShift(a×(x-xc)+b×(y-yc),n1),Vy(x,y)=SatShift(c×(x-xc)+d×(y-yc),n1)であり、ただし、n1は整数である;
iii. 例えば、位置(x,y)をカバーする基本ブロック(例えば、4×4又は8×8)の左上位置が(x0,y0)であるとすると、(xc,yc)=(x0+(w/2,y0+(h/2))である;
(i)あるいは、(xc,yc)=(x0+(w/2)-1,y0+(h/2)-1)である;
(ii)あるいは、(xc,yc)=(x0+(w/2),y0+(h/2)-1)である;
(iii)あるいは、(xc,yc)=(x0+(w/2)-1,y0+(h/2))である;
iv. 一例において、現在ブロックが4パラメータアフィンモードを適用する場合、c=-b且つd=aである;
v. 一例において、a、b、c及びdは、現在ブロックの幅(W)及び高さ(H)と共に、CPMVから導出されてもよい。例えば、
Figure 2024015289000028
であり、mv、mv、及びmvはCPMVである;
(i)a、b、c及びdはクリップされてもよい;
(ii)a、b、c及びdはシフトされてもよい;
vi. 一例において、a、b、c及びdは、PCT/CN2018/111176号に開示されるような隣接ブロックのストレージから導出されることができ、その文献をここに援用する;
vii. 一例において、a、b、c及びdは、PCT/CN2019/075867号に開示されるような履歴ベースのストレージから導出されることができ、その文献をここに援用する;
viii. あるいは、Vx(x,y)=-a×(x-xc)-b×(y-yc)、Vy(x,y)=-c×(x-xc)-d×(y-yc)である;
b. 一例において、Vx(x+1,y)=Vx(x,y)+a、且つVy(x+1,y)=Vy(x,y)+cである;
i. あるいは、Vx(x+1,y)=Shift(Vx(x,y)+a,n1)、Vy(x+1,y)=Shift(Vy(x,y)+c,n1)であり、ただし、n1は整数である;
ii. あるいは、Vx(x+1,y)=SatShift(Vx(x,y)+a,n1)、Vy(x+1,y)=SatShift(Vy(x,y)+c,n1)であり、ただし、n1は整数である;
iii. あるいは、Vx(x+1,y)=Vx(x,y)+Shift(a,n1)、Vy(x+1,y)=Vy(x,y)+Shift(c,n1)であり、ただし、n1は整数である;
iv. あるいは、Vx(x+1,y)=Vx(x,y)+SatShift(a,n1)、Vy(x+1,y)=Vy(x,y)+SatShift(c,n1)であり、ただし、n1は整数である;
c. 一例において、Vx(x,y+1)=Vx(x,y)+b、且つVy(x+1,y)=Vy(x,y)+dである;
i. あるいは、Vx(x,y+1)=Shift(Vx(x,y)+b,n1)、Vy(x,y+1)=Shift(Vy(x,y)+d,n1)であり、ただし、n1は整数である;
ii. あるいは、Vx(x,y+1)=SatShift(Vx(x,y)+b,n1)、Vy(x,y+1)=SatShift(Vy(x,y)+d,n1)であり、ただし、n1は整数である;
iii. あるいは、Vx(x,y+1)=Vx(x,y)+Shift(b,n1)、Vy(x,y+1)=Vy(x,y)+Shift(d,n1)であり、ただし、n1は整数である;
iv. あるいは、Vx(x,y+1)=Vx(x,y)+SatShift(b,n1)、Vy(x,y+1)=Vy(x,y)+SatShift(d,n1)であり、ただし、n1は整数である;
d. 一例において、現在ブロックが双予測でアフィン予測される場合、{a,b,c,d}は、参照ピクチャリスト0又は参照ピクチャリスト1を参照し得る;
i. 一例において、最終予測がオプティカルフローによって精緻化される。(Vx(x,y),Vy(x,y))は、例えば参照ピクチャリスト0又は参照ピクチャリスト1など、参照ピクチャリストの1つを参照する{a,b,c,d}で導出され得る;
ii. 一例において、参照リスト0からの予測がオプティカルフローによって精緻化される。(Vx(x,y),Vy(x,y))は、参照リスト0を参照する{a,b,c,d}で導出され得る;
iii. 一例において、参照リスト1からの予測がオプティカルフローによって精緻化される。(Vx(x,y),Vy(x,y))は、参照リスト1を参照する{a,b,c,d}で導出され得る;
iv. オプティカルフローによって精緻化(例えば、参照ピクチャリスト0を参照するa、b、c、及びdを用いて導出された第1の動き変位ベクトル(Vx(x,y),Vy(x、y)で精緻化)された後の参照リスト0からの予測と、独立にオプティカルフローによって精緻化(例えば、参照ピクチャリスト1を参照するa、b、c、及びdを用いて導出された第2の動き変位ベクトル(Vx(x,y),Vy(x、y)で精緻化)された後の参照リスト1からの予測とを組み合わせて(例えば、平均して、又は加重平均して)、最終予測を得ることができる;
e. Vx(x,y)、Vy(x,y)は、MVcとは異なる精度のものであってもよい;
i. 一例において、Vx(x,y)、Vy(x,y)は、1/8ペル精度のものとし得る;
ii. 一例において、Vx(x,y)、Vy(x,y)は、1/16ペル精度のものとし得る;
iii. 一例において、Vx(x,y)、Vy(x,y)は、1/32ペル精度のものとし得る;
iv. 一例において、Vx(x,y)、Vy(x,y)は、1/64ペル精度のものとし得る;
v. 一例において、Vx(x,y)、Vy(x,y)は、1/128ペル精度のものとし得る;
f. Vx(x,y)、Vy(x,y)は、フロートピクセル精度のものであってもよい。
4. オプティカルフローベースの方法において(例えば、JVET-N0236に開示されているオプティカルフローベースを用いたアフィン予測上での精緻化においてのように)G(x,y)と表記される勾配、例えばGx(x,y)又は/及びGy(x,y)が、再構成サンプル値を得るために残差サンプル値と加算されることになる最終予測上で導出されてもよいことが提案される;
i. あるいは、G(x,y)は、最終予測を導出するために使用されることになるものである中間予測上で導出されてもよい;
(i)例えば、G(x,y)は、現在ブロックが双予測でインター予測される場合に、1つの参照ピクチャリストからの予測上で導出され得る;
(ii)例えば、G(x,y)は、現在ブロックがアフィンモードと局所照明補償(LIC)との両方を使用するときに、LICが適用される前のインター予測上で導出され得る;
(iii)例えば、G(x,y)は、現在ブロックがアフィンモードと重み付け予測又は一般化双予測(GBi)又はCUレベル重み付け双予測(Bi-prediction with CU-level Weights;BCW)との両方を使用する場合に、重み係数が乗算される前のインター予測上で導出され得る;
(iv)例えば、G(x,y)は、現在ブロックがアフィンモードと局所照明補償(LIC)との両方を使用するときに、LICが適用されたインター予測上で導出されてもよい;
(v)例えば、G(x,y)は、現在ブロックがアフィンモードと重み付け予測又は一般化双予測(GBi)又はCUレベル重み付け双予測(Bi-prediction with CU-level Weights;BCW)との両方を使用する場合に、重み係数が乗算されたインター予測上で導出されてもよい。
5. アフィン符号化ブロック内の位置(x,y)における再構成サンプルRec(x,y)を、Rec’(x,y)=Rec(x,y)+Gx(x,y)×Vx(x,y)+Gy(x,y)×Vy(x,y)として精緻化できることが提案される。Rec’(x,y)は、再構成されたRec(x,y)を置き換えるために使用されることになる。(Gx(x,y),Gy(x,y))は、それぞれ例えば水平方向及び垂直方向に沿ったものなどの、位置(x,y)における勾配を表す。(Vx(x,y),Vy(x,y))は、JVET-N0236で提案されている方法又は本文書で開示される方法で導出され得る;
a. 一例において、(Gx(x,y),Gy(x,y))は、再構成サンプル上で導出される;
b. 一例において、Vx(x,y)及びVy(x,y)は、2×2ブロックレベルで導出され得る。
6. V(x,y)、すなわち、Vx(x,y)及びVy(x,y)は、サブブロックレベルで導出されることができ、オプティカルフローベースの精緻化がサブブロックレベルで実行され得る;
a. 一例において、Vx(x,y)及びVy(x,y)は、2×2ブロックレベルで導出され得る;
b. 一例において、Vx(x,y)及びVy(x,y)は、4×1ブロックレベルで導出され得る。
7. Vx(x,y)又はVy(x,y)のみがPROFにおいて使用され得る;
a. 一例において、Vx(x,y)がPROFにおいて使用され、Vy(x,y)はゼロであると仮定され得る;
b. 一例において、Vy(x,y)がPROFにおいて使用され、Vx(x,y)はゼロであると仮定され得る;
c.一例において、RPOFにおいてVx(x,y)が使用されるのか、それともVy(x,y)が使用されるのかは、アフィンパラメータに依存し得る;
i. 例えば、Vx(x,y)の絶対値の和がVy(x,y)の絶対値の和以上である場合、Vx(x,y)がPROFにおいて使用され、Vy(x,y)はゼロであると仮定され得る;
ii. 例えば、Vx(x,y)の絶対値の和がVy(x,y)の絶対値の和以下である場合、Vy(x,y)がPROFにおいて使用され、Vx(x,y)はゼロであると仮定され得る;
iii. 例えば、絶対水平勾配の和が絶対垂直勾配の和以上である場合、Vx(x,y)がPROFにおいて使用され、Vy(x,y)はゼロであると仮定され得る;
iv. 例えば、絶対水平勾配の和が絶対垂直勾配の和以下である場合、Vy(x,y)がPROFにおいて使用され、Vx(x,y)はゼロであると仮定され得る。
8. アフィンモードにおいて導出される動きベクトルは1/Nペル精度のものとすることができ、Vx(x,y)、Vy(x,y)は1/Mペル精度のものとすることができ、ただし、N及びMは正の整数である;
a. 一例において、Nは8に等しく、Mは16に等しい;
b. 一例において、Nは8に等しく、Mは32に等しい;
c. 一例において、Nは8に等しく、Mは64に等しい;
d. 一例において、Nは8に等しく、Mは128に等しい;
e. 一例において、Nは4に等しく、Mは8に等しい;
f. 一例において、Nは4に等しく、Mは16に等しい;
g. 一例において、Nは4に等しく、Mは32に等しい;
h. 一例において、Nは4に等しく、Mは64に等しい;
i. 一例において、Nは4に等しく、Mは128に等しい。
9. TMVP又は/及びSbTMVPにおいて、各ブロック又は/及び各サブブロックに対して、異なる精度の二組のMV(それぞれMV1及びMV2と表記される)が導出され得る;
a. 一例において、MV1は1/Nペル精度のものとすることができ、MV2は1/Mペル精度のもの1/N-pel精度のものとすることができ、ただし、N及びMは正の整数である;
b. 箇条書き8に記載したN及びMが採用され得る;
c. 一例において、Nは16に等しく、Mは32に等しい;
d. 一例において、Nは16に等しく、Mは64に等しい;
e. 一例において、Nは16に等しく、Mは128に等しい;
f. 各ブロック又は/及び各サブブロックでMV1をMVcとし且つMV2-MV1をV(x,y)として、オプティカルフローベースの精緻化が適用され得る。
10. 1/Mペル精度の動きベクトルMvに対し、それが、動き補償に使用される前に1/Nペル精度に丸められ(MvRと表記される)に丸められ、そして、Mvと丸めMVであるMvRとの間のデルタMVを用いてPROFを実行して、最終予測サンプルを生成し得る;
a. 一例において、Mは16であり、Nは1である;
b. 一例において、Mは8であり、Nは1である;
c. 一例において、Mは4であり、Nは1である;
d. 一例において、Mは16であり、Nは2である;
e. 一例において、Mは8であり、Nは2である;
f. 一例において、Mは4であり、Nは2である;
g. 一例において、Mvは、水平方向のみ又は垂直方向のみで1/Nペル精度に丸められてもよく、それに対応してPROFが水平方向又は垂直方向で実行され得る;
h. 一例において、双予測ブロックに対して、この方法は、X=0,1として、予測方向Xでのみ動きベクトルに適用され得る;
i. 一例において、双予測ブロックに対して、この方法は、両方の方向で動きベクトルに適用され得る;
j. 一例において、K1個の部分MV成分(すなわち、1つのMV成分が1つの水平又は垂直MVに対応する)が存在すると仮定して、この方法は、K1>=0、K2>=0、K2<=K1として、K2個の部分MV成分に適用され得る。
11. PCT/CN2019/072060号又はPCT/CN2018/109425号で提案される(BDOFに加えて)動きベクトル精緻化方法にて導出される動きベクトルは、1/N MVの精度のものとし得る。一実施形態例において、映像処理の方法は、現在映像ブロックに対してマルチステップデコーダ側動きベクトル精緻化処理を用いて、最終動きベクトルを決定し、該最終動きベクトルを用いて、現在ブロックとビットストリーム表現との間での変換を実行することを有する。一部の実施形態において、現在マクロブロックに対するマルチステップデコーダ側動きベクトル精緻化プロセスは、マルチステップ精緻化プロセスのi番目のステップにおける精緻化値に対して実行され、ここで、iは整数である。一部の実施形態において、マルチステップ精緻化プロセスは、i番目のステップの精緻化値を生成するために(i-1)番目のステップの精緻化値を使用することを含み、ここで、i=1乃至Nであり、Nは、マルチステップ精緻化プロセスにおいて実行される精緻化ステップの総数であり、Nは1より大きい;
a. 一例において、Nは32に等しい;
b. 一例において、Nは64に等しい;
c. 一例において、Nは128に等しい;
c. 精緻化されたMVを用いて動き補償を実行するとき、箇条書き10に記載した方法が適用され得る;
i. 一例において、精緻化されたMVは1/32ペル精度であり、それが先ず、動き補償に使用される前に1/16ペル精度に丸められ、そして、精緻化されたMVと丸められたMVとの間のデルタMVを用いてPROFを実行して最終予測サンプルを生成する;
ii. 一例において、精緻化されたMVは1/32ペル精度であり、それが先ず、動き補償に使用される前に1ペル精度に丸められ、そして、精緻化されたMVと丸められたMVとの間のデルタMVを用いてPROFを実行して最終予測サンプルを生成する;
iii. 一例において、精緻化されたMVは1/64ペル精度であり、それが先ず、動き補償に使用される前に1/16ペル精度に丸められ、そして、精緻化されたMVと丸められたMVとの間のデルタMVを用いてPROFを実行して最終予測サンプルを生成する;
iv. 一例において、精緻化されたMVは1/64ペル精度であり、それが先ず、動き補償に使用される前に1ペル精度に丸められ、そして、精緻化されたMVと丸められたMVとの間のデルタMVを用いてPROFを実行して最終予測サンプルを生成する。
12. JVET-N0236に記載される方法を含め、上の方法がある特定のタイプのブロックに適用され得ることが提案される;
a. 一例において、当該方法は8×4ブロック又はサブブロックにのみ適用される;
b. 一例において、当該方法は4×8ブロック又はサブブロックにのみ適用される;
c. 一例において、当該方法は4×4片予測ブロック又はサブブロックにのみ適用される;
d. 一例において、当該方法は8×4、4×8及び4×4片予測ブロック又はサブブロックにのみ適用される;
e. 一例において、当該方法は、4×4双予測ブロック又はサブブロック以外の取り得る全てのブロックに適用される;
f. 一例において、当該方法はルマブロックにのみ適用される;
g. 一例において、当該方法を適用するかどうかは、以下に依存し得る:
i. 色成分;
ii. ブロックサイズ;
iii. カラーフォーマット;
iv. ブロック位置;
v. 動きタイプ;
vi. 動きベクトルの大きさ;
vii. 符号化モード;
viii. ピクセル勾配の大きさ;
ix. 変換タイプ;
x. BIOが適用されるか;
ix. 双方向予測が適用されるか;
xii. DMVRが適用されるか;
13. PROFは、PCT/CN2019/071507号に記載されるインタウィーブ予測に適用されることができ、その文献をここに援用する。インタウィーブ予測では、所与のブロックの2つの異なるサブブロックパーティションから中間予測値が生成され、それら2つの異なるサブブロックパーティションは、少なくとも、1つのパーティション内のサブブロックの一部又は全てが、もう1つのパーティションでの一部又は全てのサブブロックとは異なるサイズを持つようにされる;
a. 一例において、アフィンモードで符号化されるブロックは、K通りのパターンでサブブロックに分割され得る。K=2の場合の例を図29に示す。最初のパターンにて、動き補償が実行され、各サブブロックの予測サンプル(P(x,y)と表記される)が生成される。第L(1<L<=K)パターンでは、動き補償は実行されず、代わりに、最初のパターンの予測サンプルと、最初のパターンで導出されたMV(MV1(x,y)と表記される)と第Lパターンで導出されたMV(MVL(x,y)と表記される)との間のMV差とに基づいて、PROFを用いて、各サンプルについてオフセット(OL(x,y)と表記される)が導出される。P(x,y)とOL(x,y)との関数として最終予測サンプルが生成される;
i. 一例において、Kは2に等しい;
(i)一例において、最終予測サンプルは:P(x,y)+((O1(x,y)+1)>>1)として生成され得る;
(ii)一例において、最終予測サンプルは、P(x,y)+(O1(x,y)>>>1)として生成され得る;
i. 一例において、最終予測サンプルは、P(x,y)+(O1(x,y)+...+OK(x,y)+K/2)/Kとして生成され得る;
iii. 一例において、最終予測サンプルは、P(x,y)+(O1(x,y)+...+OK(x,y))/Kとして生成され得る;
b. 一例において、OL(x,y)は、中間P(x,y)を用いて導出され得る;
i. 例えば、OL(x, y)は、水平及び垂直補間後であるがそれを入力サンプルと同じビット深度に変換する前に生成される中間P(x,y)を用いて導出され得る;
c. 一例において、OL(x,y)は、各予測方向に対して導出され得る;
d. 一例において、VL(x,y)、すなわち、第LパターンにおけるV(x,y)は、MVL(x,y)-MV1(x,y)として導出され得る;
e. 一例において、MV1(x,y)は1/NペルMV精度のものとすることができ、MVL(x,y)は1/MLペルMV精度のものとすることができる;
i. 一例において、Nは16に等しく、MLは32に等しい;
ii. 一例において、Nは16に等しく、MLは64に等しい;
iii. 一例において、Nは16に等しく、MLは128に等しい;
iv. 一例において、Nは8に等しく、MLは16に等しい;
v. 一例において、Nは8に等しく、MLは32に等しい;
vi. 一例において、Nは8に等しく、MLは64に等しい;
vii. 一例において、Nは8に等しく、MLは128に等しい;
viii. 一例において、Nは4に等しく、MLは8に等しい;
ix. 一例において、Nは4に等しく、MLは16に等しい;
x. 一例において、Nは4に等しく、MLは32に等しい;
xi. 一例において、Nは4に等しく、MLは64に等しい;
xii. 一例において、Nは4に等しく、MLは128に等しい;
xiii. MLは異なるLに対して異なってもよい
14. オプティカルフローベースの予測精緻化方法(略してPROF)は、インタウィーブ予測と組み合わされることができる;
a. 一例において、先ず、中間予測ブロックを生成するために、インタウィーブ予測を適用することができ、そして、PROFを更に適用して、それらの中間予測ブロックを精緻化することができる。精緻化された中間予測ブロックに従って最終予測ブロックを導出することができる;
b. 一例において、アフィンモードで符号化されるブロックは、K通りのパターンでサブブロックに分割され得る。各パターンについて、動き補償が実行され、各サブブロックの予測サンプルが生成され得る。次いで、各パターンに対してPROFが実行され、パターンの予測が更新され得る。最後に、各パターンの予測サンプルが融合されて(例えば、PCT/CN2018/089242号、PCT/CN2018/103770号、PCT/CN2018/104984号、PCT/CN2019/070058号、PCT/CN2019/071507号、PCT/CN2019/071576号のうちのいずれか1つ以上に記載されているように)、ブロックの最終予測が作成される。一実施形態例において、映像システムにおいてブロックベースの動き予測を改善する方法は:映像フレームからピクセルのセットを選択してブロックを形成し;第1パターンに従ってブロックを第1セットのサブブロックに分割し;第1セットのサブブロックに基づいて第1中間予測ブロックを生成し;第2パターンに従ってブロックを第2セットのサブブロックに分割し、第2セット内の少なくとも1つのサブブロックは、第1セット内のサブブロックとは異なるサイズを有し;第2セットのサブブロックに基づいて第2中間予測ブロックを生成し;そして、第1中間予測ブロック及び第2中間予測ブロックに基づいて予測ブロックを決定することを有する。一部の実施形態において、予測ブロックを決定することは、予測サンプルのうちの第1サブセットが第1中間予測ブロックの重み付けた組み合わせとして計算され、予測サンプルのうちの第2サブセットがサブブロックベースの予測からコピーされ、第1サブセット及び第2サブセットが分割パターンに基づく、という部分予測を用いることを含む;
c. 一例において、片予測の場合、PROF及びインタウィーブ予測が1つのブロックに適用され得る;
d. 一例において、双方向予測の場合、インタウィーブ予測が無効にされ得る一方で、PROFが有効にされ得る;
e. 一例において、PROF及びインタウィーブ予測の両方が1つのブロックに適用される場合(コムモード(comb-mode)と呼ぶ)、コムモードで符号化されない他のブロックを符号化するのに使用される補間フィルタとは異なるとし得る例えば6タップ又はバイリニア補間フィルタなどの、より短いタップフィルタが利用され得る;
f. 一例において、PROF及びインタウィーブ予測の両方が1つのブロックに適用される場合(コムモード(comb-mode)と呼ぶ)、アフィンサブブロックサイズは、8×4若しくは4×8又はその他に設定され得る。あるいは、さらに、コムモードに使用されるサブブロックサイズは、コムモードで符号化されない他のアフィン符号化ブロックを符号化するのに使用されるものとは異なり得る;
g. PROF及びインタウィーブ予測を適用すべきか、及び/又はどのように適用するかは、例えば予測方向、参照ピクチャ情報、色成分などの符号化された情報に従って決定され得る。
15. PROFはイントラ予測に適用されてもよい;
a. 一例において、アンギュラ予測にて、サブピクセル位置参照サンプルがPROFによって生成される。ここでは、隣接再構成サンプルが予測サンプルとみなされ、サブピクセル位置と整数ペル位置との間の差がV(x,y)とみなされる;
i. 一例において、上ライン又は/及び右上ラインのサブピクセル位置に対して、Vy(x,y)は常にゼロとし得る;
ii. 一例において、左ライン又は/及び左下ラインのサブピクセル位置に対して、Vy(x,y)は常にゼロとし得る;
iii. 一例において、サブピクセル位置は1/Nペル精度のものとし得る;
(i)例えば、Nは32に等しいとし得る;
(ii)例えば、Nは64に等しいとし得る;
(iii)例えば、Nは128に等しいとし得る;
iv. 一例において、サブピクセル位置はフロート精度のものとし得る。
16. 一例において、PROFとインタウィーブ予測とが組み合わされて適用され得る;
a. 例えば、先ずPROFが適用され、次いでインタウィーブ予測が適用される;
i. 先ず、2つの異なる分割パターンでの予測がPROFによって処理され、次いで、それらが重み付けて足し合わされて、最終予測(又は別の予測プロセスの前の中間予測)が得られる;
b. 例えば、先ずインタウィーブ予測が適用され、次いでPROFが適用される;
i. 2つの異なる分割パターンでの予測が重み付けて足し合わされて、中間予測が得られ、次いで、該中間予測にPROFが適用されて、最終予測(又は別の予測プロセスの前の中間予測)が得られる。
17. 一例において、PAMCとインタウィーブ予測とが組み合わされて適用され得る;
a. 例えば、先ずPAMCが適用され、次いでインタウィーブ予測が適用される;
i. 2つの異なる分割パターンでの予測がPAMCの補間方法で生成されることができ、次いで、それらが重み付けて足し合わされて、最終予測(又は別の予測プロセスの前の中間予測)が得られる;
b. 例えば、先ずインタウィーブ予測が適用され、次いでPAMCが適用される。
18. 一例において、PROFとPAMCとが組み合わされて適用され得る;
a. 例えば、先ずPAMCが適用され、次いでPROFが適用される;
i. PAMCの補間方法で予測が生成され、次いで、それらがPROFによって処理されて、最終予測(又は別の予測プロセスの前の中間予測)が得られ得る;
b. 例えば、先ずPROFが適用され、次いでPAMCが適用される。
図27は、映像処理装置2700のブロック図である。装置2700は、ここに記載される方法のうちの1つ以上を実装するために使用され得る。装置2700は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信器にて具現化され得る。装置2700は、1つ以上のプロセッサ2702、1つ以上のメモリ2704、及び映像処理ハードウェア2706を含み得る。(1つ以上の)プロセッサ2702は、本文書に記載される1つ以上の方法を実行するように構成され得る。(1つ以上の)メモリ2704は、ここに記載される方法及び技術を実行するのに使用されるデータ及びコードを格納するために使用され得る。映像処理ハードウェア2706は、本文書に記載される一部の技術をハードウェア回路にて実装するために使用されることができ、また、部分的に又は完全にプロセッサ2702(例えば、グラフィックスプロセッサコアGPU又は他の信号処理回路)の一部であってもよい。
図28Aは、映像処理方法の一例に関するフローチャートである。方法2800Aは、映像ブロックと該映像ブロックのビットストリーム表現との間での変換において、映像ブロック内の位置(x,y)における精緻化予測サンプルP’(x,y)を、位置(x,y)で推定された第1方向及び/又は第2方向における勾配と、位置(x,y)について推定された第1の動き変位及び/又は第2の動き変位と、の関数として位置(x,y)における予測サンプルP(x,y)を修正することによって決定(2802)し、精緻化予測サンプルP’(x,y)からの再構成サンプル値Rec(x,y)を用いて変換を実行(2804)することを含む。
図28Bは、映像処理方法の一例に関するフローチャートである。方法2800Bは、映像ブロック内の位置(x,y)における精緻化予測サンプルP’(x,y)を、位置(x,y)で推定された第1方向における第1の勾配成分Gx(x,y)と、位置(x,y)で推定された第2方向における第2の勾配成分Gy(x,y)と、位置(x,y)について推定された第1の動き変位Vx(x,y)と、位置(x,y)について推定された第2の動き変位Vy(x,y)とで位置(x,y)における予測サンプルP(x,y)を修正することによって決定(2812)し、x及びyは整数であり、精緻化予測サンプルP’(x,y)及び残差サンプル値Res(x,y)に基づいて取得される位置(x,y)における再構成サンプル値Rec(x,y)を用いて、映像ブロックと映像ブロックのビットストリーム表現との間での変換を実行(2814)することを含む。
図28Cは、映像処理方法の一例に関するフローチャートである。方法2800Cは、映像ブロック内の位置(x,y)における精緻化予測サンプルP’(x,y)を、位置(x,y)で推定された第1方向における第1の勾配成分Gx(x,y)と、位置(x,y)で推定された第2方向における第2の勾配成分Gy(x,y)と、位置(x,y)について推定された第1の動き変位Vx(x,y)と、位置(x,y)について推定された第2の動き変位Vy(x,y)とで位置(x,y)における予測サンプルP(x,y)を修正することによって決定(2822)し、x及びyは整数であり、少なくとも精緻化予測サンプルP’(x,y)に基づく位置(x,y)における再構成サンプル値Rec(x,y)に基づく残差サンプル値Res(x,y)を含むよう、映像ブロックのビットストリーム表現を符号化(2824)することを含む。
方法2800B及び/又は2800Cに関する一部の実施形態において、第1方向及び第2方向は互いに直交する。方法2800B及び/又は2800Cに関する一部の実施形態において、第1の動き変位は、第1方向に平行な方向を表し、第2の動き変位は、第2方向に平行な方向を表す。方法2800B及び/又は2800Cに関する一部の実施形態において、P’(x,y)=P(x,y)+Gx(x,y)×Vx(x,y)+Gy(x,y)×Vy(x,y)である。方法2800B及び/又は2800Cに関する一部の実施形態において、P’(x,y)=α(x,y)×P(x,y)+β(x,y)×Gx(x,y)×Vx(x,y)+γ(x,y)×Gy(x,y)×Vy(x,y)であり、α(x,y)、β(x,y)及びγ(x,y)は、位置(x,y)における重み付け値であり、α(x,y)、β(x,y)及びγ(x,y)は整数又は実数である。方法2800B及び/又は2800Cに関する一部の実施形態において、P’(x,y)=(α(x,y)×P(x,y)+β(x,y)×Gx(x,y)×Vx(x,y)+γ(x,y)×Gy(x,y)×Vy(x,y)+offsetP)/(α(x,y)+β(x,y)+γ(x,y))であり、α(x,y)、β(x,y)及びγ(x,y)は、位置(x,y)における重み付け値であり、α(x,y)、β(x,y)及びγ(x,y)は整数又は実数である。方法2800B及び/又は2800Cに関する一部の実施形態において、offsetPは0に等しい。方法2800B及び/又は2800Cに関する一部の実施形態において、P’(x,y)は、バイナリシフト演算を用いて取得される。
方法2800B及び/又は2800Cに関する一部の実施形態において、P’(x,y)=P(x,y)-Gx(x,y)×Vx(x,y)+Gy(x,y)×Vy(x,y)である。方法2800B及び/又は2800Cに関する一部の実施形態において、P’(x,y)=P(x,y)-Gx(x,y)×Vx(x,y)-Gy(x,y)×Vy(x,y)である。方法2800B及び/又は2800Cに関する一部の実施形態において、P’(x,y)=P(x,y)+Gx(x,y)×Vx(x,y)-Gy(x,y)×Vy(x,y)である。方法2800B及び/又は2800Cに関する一部の実施形態において、P’(x,y)=0.5×P(x,y)+0.25×Gx(x,y)×Vx(x,y)+0.25×Gy(x,y)×Vy(x,y)である。方法2800B及び/又は2800Cに関する一部の実施形態において、P’(x,y)=0.5×P(x,y)+0.5×Gx(x,y)×Vx(x,y)+0.5×Gy(x,y)×Vy(x,y)である。方法2800B及び/又は2800Cに関する一部の実施形態において、P’(x,y)=P(x,y)+0.5×Gx(x,y)×Vx(x,y)+0.5×Gy(x,y)×Vy(x,y)である。方法2800B及び/又は2800Cに関する一部の実施形態において、P’(x,y)=Shift(α(x,y)×P(x,y),n1)+Shift(β(x,y)×Gx(x,y)×Vx(x,y),n2)+Shift(γ(x,y)×Gy(x,y)×Vy(x,y),n3)であり、Shift()関数はバイナリシフト演算を指し、α(x,y)、β(x,y)及びγ(x,y)は、位置(x,y)における重み付け値であり、α(x,y)、β(x,y)及びγ(x,y)は整数であり、n1、n2、n3は非負の整数である。方法2800B及び/又は2800Cに関する一部の実施形態において、n1、n2、n3は1に等しい。
方法2800B及び/又は2800Cに関する一部の実施形態において、P’(x,y)=SatShift(α(x,y)×P(x,y),n1)+SatShift(β(x,y)×Gx(x,y)×Vx(x,y),n2)+SatShift(γ(x,y)×Gy(x,y)×Vy(x,y),n3)であり、SatShift()関数は飽和バイナリシフト演算を指し、α(x,y)、β(x,y)及びγ(x,y)は位置(x,y)における重み付け値であり、α(x,y)、β(x,y)及びγ(x,y)は整数であり、n1、n2、n3は非負の整数である。方法2800B及び/又は2800Cに関する一部の実施形態において、n1、n2、n3は1に等しい。方法2800B及び/又は2800Cに関する一部の実施形態において、P’(x,y)=Shift(α(x,y)×P(x,y)+β(x,y)×Gx(x,y)×Vx(x,y)+γ(x,y)×Gy(x,y)×Vy(x,y),n1)であり、Shift()関数はバイナリシフト演算を指し、α(x,y)、β(x,y)及びγ(x,y)は位置(x,y)における重み付け値であり、α(x,y)、β(x,y)及びγ(x,y)は整数であり、n1は非負の整数である。方法2800B及び/又は2800Cに関する一部の実施形態において、n1は1に等しい。
方法2800B及び/又は2800Cに関する一部の実施形態において、P’(x,y)=SatShift(α(x,y)×P(x,y)+β(x,y)×Gx(x,y)×Vx(x,y)+γ(x,y)×Gy(x,y)×Vy(x,y),n1)であり、SatShift()関数は飽和バイナリシフト演算を指し、α(x,y)、β(x,y)及びγ(x,y)は位置(x,y)における重み付け値であり、α(x,y)、β(x,y)及びγ(x,y)は整数であり、n1は非負の整数である。方法2800B及び/又は2800Cに関する一部の実施形態において、n1は1に等しい。方法2800B及び/又は2800Cに関する一部の実施形態において、P’(x,y)=α(x,y)×P(x,y)+Shift(β(x,y)×Gx(x,y)×Vx(x,y),n2)+Shift(γ(x,y)×Gy(x,y)×Vy(x,y),n3)であり、Shift()関数はバイナリシフト演算を指し、α(x,y)、β(x,y)及びγ(x,y)は位置(x,y)における重み付け値であり、α(x,y)、β(x,y)及びγ(x,y)は整数であり、n2及びn3は非負の整数である。方法2800B及び/又は2800Cに関する一部の実施形態において、n2及びn3は1に等しい。
方法2800B及び/又は2800Cに関する一部の実施形態において、P’(x,y)=α(x,y)×P(x,y)+SatShift(β(x,y)×Gx(x,y)×Vx(x,y),n2)+SatShift(γ(x,y)×Gy(x,y)×Vy(x,y),n3)であり、SatShift()関数は飽和バイナリシフト演算を指し、α(x,y)、β(x,y)及びγ(x,y)は位置(x,y)における重み付け値であり、α(x,y)、β(x,y)及びγ(x,y)は整数であり、n2及びn3は非負の整数である。方法2800B及び/又は2800Cに関する一部の実施形態において、n2及びn3は1に等しい。方法2800B及び/又は2800Cに関する一部の実施形態において、P’(x,y)=α(x,y)×P(x,y)+Shift(β(x,y)×Gx(x,y)×Vx(x,y)+γ(x,y)×Gy(x,y)×Vy(x,y),n3)であり、Shift()関数はバイナリシフト演算を指し、α(x,y)、β(x,y)及びγ(x,y)は位置(x,y)における重み付け値であり、α(x,y)、β(x,y)及びγ(x,y)は整数であり、n3は非負の整数である。方法2800B及び/又は2800Cに関する一部の実施形態において、n3は1に等しい。
方法2800B及び/又は2800Cに関する一部の実施形態において、P’(x,y)=α(x,y)×P(x,y)+SatShift(β(x,y)×Gx(x,y)×Vx(x,y)+γ(x,y)×Gy(x,y)×Vy(x,y),n3)であり、SatShift()関数は飽和バイナリシフト演算を指し、α(x,y)、β(x,y)及びγ(x,y)は位置(x,y)における重み付け値であり、α(x,y)、β(x,y)及びγ(x,y)は整数であり、n3は非負の整数である。方法2800B及び/又は2800Cに関する一部の実施形態において、n3は1に等しい。方法2800B及び/又は2800Cに関する一部の実施形態において、1-4、P’(x,y)=f0(P(x,y))+f1(Gx(x,y)×Vx(x,y))+f2(Gy(x,y)×Vy(x,y))であり、f0()、f1()、及びf2()は3つの関数である。方法2800B及び/又は2800Cに関する一部の実施形態において、第1の勾配成分Gx(x,y)及び第2の勾配成分Gy(x,y)は、第2の予測サンプルP(x1,y1)を用いて計算され、x1は[x-Bx0,x+Bx1]の第1範囲に属し、y1は[y-By0,y+By1]の第2範囲に属し、Bx0及びBy0は整数であり、Bx1及びBy1は整数である。
方法2800B及び/又は2800Cに関する一部の実施形態において、第1の勾配成分Gx(x,y)=P(x+1,y)-P(x-1,y)であり、第2の勾配成分Gy(x,y)=P(x,y+1)-P(x,y-1)である。方法2800B及び/又は2800Cに関する一部の実施形態において、第1の勾配成分Gx(x,y)=Shift(P(x+1,y)-P(x-1,y),n1)であり、第2の勾配成分Gy(x,y)=Shift(P(x,y+1)-P(x,y-1),n2)であり、Shift()関数はバイナリシフト演算を指す。方法2800B及び/又は2800Cに関する一部の実施形態において、第1の勾配成分Gx(x,y)=SatShift(P(x+1,y)-P(x-1,y),n1)であり、第2の勾配成分Gy(x,y)=SatShift(P(x,y+1)-P(x,y-1),n2)であり、SatShift()関数は飽和バイナリシフト演算を指す。方法2800B及び/又は2800Cに関する一部の実施形態において、n1及びn2は1に等しい。方法2800B及び/又は2800Cに関する一部の実施形態において、予測サンプルP(x,y)は、位置(x,y)にある片予測サンプルである。方法2800B及び/又は2800Cに関する一部の実施形態において、予測サンプルP(x,y)は、双予測の最終結果である。
方法2800B及び/又は2800Cに関する一部の実施形態において、Vx(x,y)及びVy(x,y)は、双方向オプティカルフロー(BIO)技術を用いて導出される。
方法2800B及び/又は2800Cに関する一部の実施形態において、前記予測サンプルP(x,y)は、以下のうちのいずれか1つを満たす:多重仮説インター予測技術の結果;アフィン予測技術の結果;イントラ予測技術の結果;イントラブロックコピー(IBC)予測技術の結果;三角予測モード(TPM)技術によって生成される;ジオグラフィック予測モード(GPM)技術によって生成される;インター-イントラ結合予測技術の結果;グローバルインター予測技術の結果であり、グローバルインター予測技術は、同じ動きモデル及びパラメータを共有する領域を含む;パレット符号化モードの結果;マルチビュー又は3Dビデオコーディングにおけるインタービュー予測の結果;スケーラブルビデオコーディングにおける層間予測の結果;精緻化予測サンプルP’(x,y)を決定する前のフィルタリング演算の結果。
方法2800B及び/又は2800Cに関する一部の実施形態において、予測サンプルP(x,y)は、精緻化プロセスが適用されない場合の最終予測サンプル値であり、再構成サンプル値Rec(x,y)は、予測サンプルP(x,y)に残差サンプル値Res(x,y)を足し合わせることによって取得される。方法2800B及び/又は2800Cに関する一部の実施形態において、予測サンプルP(x,y)から精緻化された精緻化予測サンプルP’(x,y)は、精緻化プロセスが適用される場合の最終予測サンプル値であり、再構成されたサンプル値Rec(x,y)は、精緻化予測サンプルP’(x,y)に残差サンプル値Res(x,y)を足し合わせることによって取得される。方法2800B及び/又は2800Cに関する一部の実施形態において、双予測技術又は多重仮説予測技術が映像ブロックに又は映像ブロックのサブブロックに適用され、第1の勾配成分、第2の勾配成分、第1の動き変位、及び第2の動き変位が、最終予測サンプル値に1回適用される。
方法2800B及び/又は2800Cに関する一部の実施形態において、双予測技術又は多重仮説予測技術が映像ブロックに又は映像ブロックのサブブロックに適用され、第1の勾配成分、第2の勾配成分、第1の動き変位、及び第2の動き変位が、映像ブロックの予測ブロックに複数回適用されて、複数セットの、第1の勾配成分、第2の勾配成分、第1の動き変位、及び第2の動き変位が取得され、精緻化予測サンプルP’(x,y)に基づいて各予測ブロックを更新することによって、更新予測ブロックが取得され、該更新予測ブロックを用いて、映像ブロックについての最終予測ブロックが生成される。方法2800B及び/又は2800Cに関する一部の実施形態において、第1のセットは、1つの位置で第1の予測ブロックに、第1の勾配成分、第2の勾配成分、第1の動き変位、又は第2の動き変位のうち少なくとも1つについて、第2のセットにおいて同じ1つの位置で第2の予測ブロックに適用される第1の勾配成分、第2の勾配成分、第1の動き変位、又は第2の動き変位のうちの対応する少なくとも1つとは異なるものを適用する。
方法2800B及び/又は2800Cに関する一部の実施形態において、予測サンプルP(x,y)は、それを用いて最終予測サンプル値が導出されることになる中間予測サンプル値である。方法2800B及び/又は2800Cに関する一部の実施形態において、映像ブロックが双予測技術を用いてインター予測されることに応答して、予測サンプルP(x,y)は、1つの参照ピクチャリストからの予測サンプルである。方法2800B及び/又は2800Cに関する一部の実施形態において、映像ブロックが三角予測モード(TPM)技術を用いてインター予測されることに応答して、予測サンプルP(x,y)は、1つの参照ピクチャリストからの予測サンプルである。方法2800B及び/又は2800Cに関する一部の実施形態において、映像ブロックがジオメトリック分割モード(GPM)技術を用いてインター予測されることに応答して、予測サンプルP(x,y)は、1つの参照ピクチャリストからの予測サンプルである。方法2800B及び/又は2800Cに関する一部の実施形態において、映像ブロックが多重仮説予測技術を用いてインター予測されることに応答して、予測サンプルP(x,y)は、1つの参照ピクチャリストからの予測サンプルである。
方法2800B及び/又は2800Cに関する一部の実施形態において、予測サンプルP(x,y)は、インター-インター結合予測される映像ブロックについてのインター予測サンプルである。方法2800B及び/又は2800Cに関する一部の実施形態において、予測サンプルP(x,y)は、局所照明補償(LIC)技術が映像ブロックに適用される前のインター予測サンプルであり、映像ブロックはLIC技術を使用する。方法2800B及び/又は2800Cに関する一部の実施形態において、予測サンプルP(x,y)は、デコーダ側動きベクトル精緻化(DMVR)技術又はデコーダ側動きベクトル導出(DMVD)技術が映像ブロックに適用される前のインター予測サンプルであり、映像ブロックはDMVR技術又はDMVD技術を使用する。方法2800B及び/又は2800Cに関する一部の実施形態において、予測サンプルP(x,y)は、重み係数が乗算される前のインター予測サンプルであり、映像ブロックは、重み付け予測技術又は一般化Bi予測(GBi)技術を使用する。
方法2800B及び/又は2800Cに関する一部の実施形態において、第1方向における第1の勾配成分及び/又は第2方向における第2の勾配成分は、最終予測サンプル値に対して導出され、精緻化プロセスが適用されない場合、最終予測サンプル値が残差サンプル値Res(x,y)に加算されて、再構成サンプル値Rec(x,y)が取得される。方法2800B及び/又は2800Cに関する一部の実施形態において、最終予測サンプル値は予測サンプルP(x,y)である。方法2800B及び/又は2800Cに関する一部の実施形態において、第1方向における第1の勾配成分及び/又は第2方向における第2の勾配成分は、それを用いて最終予測サンプル値が導出されることになる中間予測サンプル値に対して導出される。方法2800B及び/又は2800Cに関する一部の実施形態において、映像ブロックが双予測技術を用いてインター予測されることに応答して、第1方向における第1の勾配成分及び/又は第2方向における第2の勾配成分は、1つの参照ピクチャリストからの予測サンプルから導出される。
方法2800B及び/又は2800Cに関する一部の実施形態において、映像ブロックが三角予測モード(TPM)技術を用いてインター予測されることに応答して、第1方向における第1の勾配成分及び/又は第2方向における第2の勾配成分は、1つの参照ピクチャリストから導出される。方法2800B及び/又は2800Cに関する一部の実施形態において、映像ブロックがジオメトリック予測モード(GPM)技術を用いてインター予測されることに応答して、第1方向における第1の勾配成分及び/又は第2方向における第2の勾配成分は、1つの参照ピクチャリストから導出される。方法2800B及び/又は2800Cに関する一部の実施形態において、映像ブロックが多重仮説予測技術を用いてインター予測されることに応答して、第1方向における第1の勾配成分及び/又は第2方向における第2の勾配成分は、1つの参照ピクチャリストから導出される。方法2800B及び/又は2800Cに関する一部の実施形態において、第1方向における第1の勾配成分及び/又は第2方向における第2の勾配成分は、インター-インター結合予測される映像ブロックについてのインター予測サンプルから導出される。
方法2800B及び/又は2800Cに関する一部の実施形態において、第1方向における第1の勾配成分及び/又は第2方向における第2の勾配成分は、局所照明補償(LIC)技術が映像ブロックに適用される前のインター予測サンプルから導出され、映像ブロックはLIC技術を使用する。方法2800B及び/又は2800Cに関する一部の実施形態において、第1方向における第1の勾配成分及び/又は第2方向における第2の勾配成分は、デコーダ側動きベクトル精緻化(DMVR)技術又はデコーダ側動きベクトル導出(DMVD)技術が映像ブロックに適用される前のインター予測サンプルから導出され、映像ブロックはDMVR技術又はDMVD技術を使用する。方法2800B及び/又は2800Cに関する一部の実施形態において、第1方向における第1の勾配成分及び/又は第2方向における第2の勾配成分は、重み係数が乗算される前のインター予測サンプルから導出され、映像ブロックは、重み付け予測技術又は一般化Bi予測(GBi)技術を使用する。
方法2800B及び/又は2800Cに関する一部の実施形態において、精緻化予測サンプルP’(x,y)は、最終予測サンプル値を得るために更に修正される。方法2800B及び/又は2800Cに関する一部の実施形態において、第1方向における第1の勾配成分はGx(x,y)と表され、第2方向における第2の勾配成分はGy(x,y)と表され、第1の動き変位はVx(x,y)と表され、第2の動き変位はVy(x,y)と表され、位置(x,y)における再構成サンプル値Rec(x,y)が、精緻化再構成サンプル値Rec’(x,y)で置き換えられ、Rec’(x,y)=Rec(x,y)+Gx(x,y)×Vx(x,y)+Gy(x,y)×Vy(x,y)である。方法2800B及び/又は2800Cに関する一部の実施形態において、第1の勾配成分Gx(x,y)及び第2の勾配成分Gy(x,y)は、再構成サンプル値に基づいて導出される。
方法2800B及び/又は2800Cに関する一部の実施形態において、当該方法は更に、映像ブロック内の位置(x,y)における第1の動き変位Vx(x,y)及び位置(x,y)における第2の動き変位Vy(x,y)を、少なくとも映像ブロックの空間隣接映像ブロックからの情報、又は少なくとも映像ブロックに対して時間的に遅れずに位置する時間隣接映像ブロックからの情報に基づいて決定することを有する。方法2800B及び/又は2800Cに関する一部の実施形態において、空間隣接映像ブロックは、映像ブロックに隣接して位置し、時間隣接映像ブロックは、映像ブロックに時間的に遅れずに隣接して位置する。方法2800B及び/又は2800Cに関する一部の実施形態において、第1の動き変位Vx(x,y)及び第2の動き変位Vy(x,y)は、少なくとも映像ブロックの空間隣接映像ブロック、又は少なくとも映像ブロックに対して時間的に遅れずに位置する時間隣接映像ブロックに基づいて、双方向オプティカルフロー(BIO)技術を用いて決定される。
方法2800B及び/又は2800Cに関する一部の実施形態において、空間隣接映像ブロックからの又は時間隣接映像ブロックからの情報は、動き情報、符号化モード、隣接符号化ユニット(CU)寸法、又は隣接CU位置を含む。方法2800B及び/又は2800Cに関する一部の実施形態において、(Vx(x,y),Vy(x,y))は、Wc(x,y)×MVc+WN1(x,y)×MVN1+ WN2(x,y)×MVN2+...+WNk(x,y)×MVNkに等しいMVMixに等しく、ここで、MVcは、映像ブロックの動きベクトルであり、MVN1、...、MVNkは、k個の空間隣接映像ブロック又は時間隣接映像ブロックの動きベクトルであり、N1、...、Nkは、空間隣接映像ブロック又は時間隣接映像ブロックであり、Wc、WN1、...、WNkは、整数又は実数である重み値である。
方法2800B及び/又は2800Cに関する一部の実施形態において、(Vx(x,y),Vy(x,y))は、Shift(Wc(x,y)×MVc+WN1(x,y)×MVN1+WN2(x,y)×MVN2+...+WNk(x,y)×MVNk,n1)に等しいMVMixに等しく、ここで、Shift()関数はバイナリシフト演算を指し、MVcは、映像ブロックの動きベクトルであり、MVN1、...、MVNkは、k個の空間隣接映像ブロック又は時間隣接映像ブロックの動きベクトルであり、N1、...、Nkは、空間隣接映像ブロック又は時間隣接映像ブロックであり、Wc、WN1、...、WNkは、整数又は実数である重み値であり、n1は整数である。方法2800B及び/又は2800Cに関する一部の実施形態において、(Vx(x,y),Vy(x,y))は、SatShift(Wc(x,y)×MVc+WN1(x,y)×MVN1+WN2(x,y)×MVN2+...+WNk(x,y)×MVNk,n1)に等しいMVMixに等しく、ここで、SatShift()関数は飽和バイナリシフト演算を指し、MVcは、映像ブロックの動きベクトルであり、MVN1、...、MVNkは、k個の空間隣接映像ブロック又は時間隣接映像ブロックの動きベクトルであり、N1、...、Nkは、空間隣接映像ブロック又は時間隣接映像ブロックであり、Wc、WN1、...、WNkは、整数又は実数である重み値であり、n1は整数である。
方法2800B及び/又は2800Cに関する一部の実施形態において、Wc(x,y)はゼロに等しい。方法2800B及び/又は2800Cに関する一部の実施形態において、kは1に等しく、N1は空間隣接映像ブロックである。方法2800B及び/又は2800Cに関する一部の実施形態において、N1は、映像ブロック内の位置(x,y)に位置的に最も近い空間隣接映像ブロックである。方法2800B及び/又は2800Cに関する一部の実施形態において、WN1(x,y)は、N1が映像ブロック内の位置(x,y)に近づくにつれて値が増加する。方法2800B及び/又は2800Cに関する一部の実施形態において、kは1に等しく、N1は時間隣接映像ブロックである。方法2800B及び/又は2800Cに関する一部の実施形態において、N1は、映像ブロック内の位置(x,y)についてのコロケートピクチャ内のコロケート映像ブロックである。方法2800B及び/又は2800Cに関する一部の実施形態において、予測サンプルが映像ブロックの上境界又は左境界に位置しないことに応答して、基本映像ブロック内の予測サンプルは精緻化されない。
方法2800B及び/又は2800Cに関する一部の実施形態において、予測サンプルが映像ブロックの上境界に位置することに応答して、基本映像ブロック内の予測サンプルが精緻化される。方法2800B及び/又は2800Cに関する一部の実施形態において、(Vx(x,y),Vy(x,y))はMVMixに等しく、映像ブロックの上境界に位置する基本映像ブロックについてのMVMixが、映像ブロックの上に位置する隣接映像ブロックに基づいて導出される。方法2800B及び/又は2800Cに関する一部の実施形態において、予測サンプルが映像ブロックの左境界に位置することに応答して、基本映像ブロック内の予測サンプルが精緻化される。方法2800B及び/又は2800Cに関する一部の実施形態において、(Vx(x,y),Vy(x,y))はMVMixに等しく、映像ブロックの左境界に位置する基本映像ブロックについてのMVMixが、映像ブロックの左に位置する隣接映像ブロックに基づいて導出される。方法2800B及び/又は2800Cに関する一部の実施形態において、映像ブロック及び動きベクトルと、ある数の空間隣接映像ブロックの又はある数の時間隣接映像ブロックの動きベクトルとが、同一参照ピクチャにスケーリングされる。
方法2800B及び/又は2800Cに関する一部の実施形態において、上記同一参照ピクチャは、映像ブロックの動きベクトルによって参照される参照ピクチャである。方法2800B及び/又は2800Cに関する一部の実施形態において、空間隣接映像ブロック又は時間隣接映像ブロックがイントラ符号化されない場合にのみ、空間隣接映像ブロック又は時間隣接映像ブロックを用いて(Vx(x,y),Vy(x,y))が導出される。方法2800B及び/又は2800Cに関する一部の実施形態において、空間隣接映像ブロック又は時間隣接映像ブロックがイントラブロックコピー(IBC)予測符号化されない場合にのみ、空間隣接映像ブロック又は時間隣接映像ブロックを用いて(Vx(x,y),Vy(x,y))が導出される。方法2800B及び/又は2800Cに関する一部の実施形態において、空間隣接映像ブロック又は時間隣接映像ブロックの第1の動きベクトルが映像ブロックの第2の動きベクトルと同じ参照ピクチャを参照する場合にのみ、空間隣接映像ブロック又は時間隣接映像ブロックを用いて(Vx(x,y),Vy(x,y))が導出される。
方法2800B及び/又は2800Cに関する一部の実施形態において、(Vx(x,y),Vy(x,y))は、f(MVMix,MVc)に等しく、ここで、fは関数であり、MVcは映像ブロックの動きベクトルである。方法2800B及び/又は2800Cに関する一部の実施形態において、(Vx(x,y),Vy(x,y))は、MVMix-MVcに等しい。方法2800B及び/又は2800Cに関する一部の実施形態において、(Vx(x,y),Vy(x,y))は、MVc-MVMixに等しい。方法2800B及び/又は2800Cに関する一部の実施形態において、(Vx(x,y),Vy(x,y))は、p×MVMix+q×MVcに等しく、ここで、p及びqは実数である。方法2800B及び/又は2800Cに関する一部の実施形態において、(Vx(x,y),Vy(x,y))は、Shift(p×MVMix+q×MVc,n)又はSatShift(p×MVMix+p×MVc,n)に等しく、ここで、p、q及びnは整数であり、Shift()関数はバイナリシフト演算を指し、SatShift()関数は飽和バイナリシフト演算を指す。方法2800B及び/又は2800Cに関する一部の実施形態において、映像ブロックは、片予測でインター予測され、映像ブロックの動きベクトルは参照ピクチャリスト0を参照する。方法2800B及び/又は2800Cに関する一部の実施形態において、映像ブロックは、片予測でインター予測され、映像ブロックの動きベクトルは参照ピクチャリスト1を参照する。
方法2800B及び/又は2800Cに関する一部の実施形態において、映像ブロックは、双予測技術を用いてインター予測され、映像ブロックの動きベクトルは、参照ピクチャリスト0又は参照ピクチャリスト1を参照する。方法2800B及び/又は2800Cに関する一部の実施形態において、参照ピクチャリスト0又は参照ピクチャリスト1を参照する映像ブロックの動きベクトルから導出される第1の動き変位Vx(x,y)及び第2の動き変位Vy(x,y)に基づいて、最終予測サンプル値が精緻化される。方法2800B及び/又は2800Cに関する一部の実施形態において、参照ピクチャリスト0を参照する映像ブロックの動きベクトルから導出される第1の動き変位Vx(x,y)及び第2の動き変位Vy(x,y)に基づいて、参照ピクチャリスト0からの第1の予測サンプル値が精緻化される。方法2800B及び/又は2800Cに関する一部の実施形態において、参照ピクチャリスト1を参照する映像ブロックの動きベクトルから導出される第1の動き変位Vx(x,y)及び第2の動き変位Vy(x,y)に基づいて、参照ピクチャリスト1からの第2の予測サンプル値が精緻化される。
方法2800B及び/又は2800Cに関する一部の実施形態において、参照ピクチャリスト0から精緻化された第1の予測サンプル値及び参照ピクチャリスト1から精緻化された第2の予測サンプル値を用いて、最終予測サンプル値が導出される。方法2800B及び/又は2800Cに関する一部の実施形態において、最終予測サンプル値は、参照ピクチャリスト0から精緻化された第1の予測サンプル値と参照ピクチャリスト1から精緻化された第2の予測サンプル値との平均又は加重平均に等しい。方法2800B及び/又は2800Cに関する一部の実施形態において、映像ブロックは双予測技術を用いてインター予測され、双方向オプティカルフロー(BIO)技術が映像ブロックに適用され、第1の動き変位Vx(x,y)及び第2の動き変位Vy(x,y)が、空間隣接映像ブロック又は時間隣接映像ブロックに基づいて修正される。
方法2800B及び/又は2800Cに関する一部の実施形態において、第1の動き変位ベクトルV’(x,y)=(V’x(x,y),V’y(x,y))がBIO技術から導出され、BIO技術以外の方法を用いて導出された第2の動き変位ベクトルが、V”(x,y)=(V”x(x,y),V”y(x,y)と表記され、第3の動き変位ベクトルV(x,y)=(Vx(x,y),Vy(x,y))が、第1組の動き変位ベクトル及び第2組の動き変位ベクトルの関数として取得され、第3の動き変位ベクトルV(x,y)を用いて予測サンプルP(x,y)が精緻化される。方法2800B及び/又は2800Cに関する一部の実施形態において、第3組の動き変位ベクトルは、次式:V(x,y)=V’(x,y)×W’(x,y)+V”(x,y)×W”(x,y)を用いて取得され、ここで、W’(x,y)及びW”(x,y)は整数又は実数である)。方法2800B及び/又は2800Cに関する一部の実施形態において、第3組の動き変位ベクトルは、次式:V(x,y)=Shift(V’(x,y)×W’(x,y)+V”(x,y)×W”(x,y),n1)を用いて取得され、ここで、Shift()関数はバイナリシフト演算を指し、W’(x,y)及びW”(x,y)は整数であり、n1は非負の整数である。
方法2800B及び/又は2800Cに関する一部の実施形態において、第3組の動き変位ベクトルは、次式:V(x,y)=SatShift(V’(x,y)×W’(x,y)+V”(x,y)×W”(x,y),n1)を用いて取得され、ここで、SatShift()関数は飽和バイナリシフト演算を指し、W’(x,y)及びW”(x,y)は整数であり、n1は非負の整数である。方法2800B及び/又は2800Cに関する一部の実施形態において、第1の動き変位Vx(x,y)及び第2の動き変位Vy(x,y)は、空間隣接映像ブロック又は時間隣接映像ブロックに基づいて、及び位置(x,y)に基づいて修正される。方法2800B及び/又は2800Cに関する一部の実施形態において、映像ブロックの上境界又は映像ブロックの左境界に位置しない第1の動き変位Vx(x,y)及び第2の動き変位Vy(x,y)は修正されない。方法2800B及び/又は2800Cに関する一部の実施形態において、第1の動き変位Vx(x,y)及び第2の動き変位Vy(x,y)はクリップされる。
方法2800B及び/又は2800Cに関する一部の実施形態において、空間隣接映像ブロック又は時間隣接映像ブロックは、映像ブロックに隣接しない映像ブロックである。方法2800B及び/又は2800Cに関する一部の実施形態において、空間隣接映像ブロック又は時間隣接映像ブロックは、映像ブロックに隣接しないサブブロックである。方法2800B及び/又は2800Cに関する一部の実施形態において、空間隣接映像ブロック又は時間隣接映像ブロックは、映像ブロック、又は符号化ツリーユニット(CTU)、又は映像処理・配信ユニット(VPDU)、又はサブブロックをカバーする現在領域、のうちのいずれにも隣接しないサブブロックである。方法2800B及び/又は2800Cに関する一部の実施形態において、空間隣接映像ブロック又は時間隣接映像ブロックの動きベクトルは、履歴ベース動きベクトルにおけるエントリを含む。方法2800B及び/又は2800Cに関する一部の実施形態において、デコーダ側で第1の動き変位及び第2の動き変位を決定することは、映像ブロックのビットストリーム表現を構文解析することによって、第1の動き変位及び第2の動き変位に関連する情報の存在を決定することを含む。
方法2800B及び/又は2800Cに関する一部の実施形態において、第1の動き変位Vx(x,y)及び第2の動き変位Vy(x,y)は、映像ブロックのサブブロックレベルで導出される。方法2800B及び/又は2800Cに関する一部の実施形態において、第1の動き変位及び第2の動き変位は、2×2ブロックレベルで導出される。方法2800B及び/又は2800Cに関する一部の実施形態において、第1の動き変位及び第2の動き変位は、4×1ブロックレベルで導出される。方法2800B及び/又は2800Cに関する一部の実施形態において、映像ブロックは8×4映像ブロックである、又はサブブロックは8×4サブブロックである。方法2800B及び/又は2800Cに関する一部の実施形態において、映像ブロックは4×8映像ブロックである、又はサブブロックは4×8サブブロックである。方法2800B及び/又は2800Cに関する一部の実施形態において、映像ブロックは4×4片予測映像ブロックである、又はサブブロックは4×4片予測サブブロックである。方法2800B及び/又は2800Cに関する一部の実施形態において、映像ブロックは、8×4、4×8、及び4×4片予測映像ブロックである、又はサブブロックは、8×4、4×8、及び4×4片予測サブブロックである。
方法2800B及び/又は2800Cに関する一部の実施形態において、映像ブロックは4×4双予測映像ブロックを除外する、又はサブブロックは4×4双予測サブブロックを除外する。方法2800B及び/又は2800Cに関する一部の実施形態において、映像ブロックはルマ映像ブロックである。方法2800B及び/又は2800Cに関する一部の実施形態において、上記決定すること及び上記実行することは、映像ブロックの色成分、映像ブロックのブロックサイズ、映像ブロックのカラーフォーマット、映像ブロックのブロック位置、動きタイプ、動きベクトルの大きさ、符号化モード、ピクセル勾配の大きさ、変換タイプ、双方向オプティカルフロー(BIO)技術が適用されるかどうか、双予測技術が適用されるかどうか、及びデコーダ側動きベクトル精緻化(DMVR)法が適用されるかどうか、のうちのいずれか1つ以上に基づいて行われる。
図28Dは、映像処理方法の一例に関するフローチャートである。方法2800Dは、x及びyは分数であるとして、オプティカルフローに基づく方法を用いて符号化される映像ブロック内の位置(x,y)における第1の動き変位Vx(x,y)及び位置(x,y)における第2の動き変位Vy(x,y)を決定(2832)し、Vx(x,y)及びVy(x,y)は、少なくとも位置(x,y)と映像ブロックの基本映像ブロックの中心位置とに基づいて決定され、第1の動き変位及び第2の動き変位を用いて、映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を実行(2834)することを含む。
方法2800Dに関する一部の実施形態において、Vx(x,y)=a×(x-xc)+b×(y-yc)であり、Vy(x,y)=c×(x-xc)+d×(y-yc)であり、(xc,yc)は映像ブロックの基本映像ブロックの中心位置であり、a、b、c及びdはアフィンパラメータであり、基本映像ブロックは寸法w×hを持ち、且つ基本映像ブロックの位置は位置(x,y)を含む。方法2800Dに関する一部の実施形態において、Vx(x,y)=Shift(a×(x-xc)+b×(y-yc),n1)であり、Vy(x,y)=Shift(c×(x-xc)+d×(y-yc),n1)であり、(xc,yc)は映像ブロックの基本映像ブロックの中心位置であり、a、b、c及びdはアフィンパラメータであり、基本映像ブロックは寸法w×hを持ち、基本映像ブロックの位置は位置(x,y)を含み、Shift()関数は、バイナリシフト演算を指し、且つ
n1は整数である。方法2800Dに関する一部の実施形態において、Vx(x,y)=SatShift(a×(x-xc)+b×(y-yc),n1)であり、Vy(x,y)=SatShift(c×(x-xc)+d×(y-yc),n1)であり、(xc,yc)は映像ブロックの基本映像ブロックの中心位置であり、a、b、c及びdはアフィンパラメータであり、基本映像ブロックは寸法w×hを持ち、基本映像ブロックの位置は位置(x,y)を含み、SatShift()関数は、飽和バイナリシフト演算を指し、且つn1は整数である。
方法2800Dに関する一部の実施形態において、Vx(x,y)=-a×(x-xc)-b×(y-yc)であり、Vy(x,y)=-c×(x-xc)-d×(y-yc)であり、(xc,yc)は映像ブロックの基本映像ブロックの中心位置であり、a、b、c及びdはアフィンパラメータであり、基本映像ブロックは寸法w×hを持ち、且つ基本映像ブロックの位置は位置(x,y)を含む。方法2800Dに関する一部の実施形態において、(xc,yc)=(x0+(w/2),y0+(h/2))であり、基本映像ブロックの左上の位置が(x0,y0)である。方法2800Dに関する一部の実施形態において、(xc,yc)=(x0+(w/2)-1,y0+(h/2)-1)であり、基本映像ブロックの左上の位置が(x0,y0)である。方法2800Dに関する一部の実施形態において、(xc、yc)=(x0+(w/2),y0+(h/2)-1)であり、基本映像ブロックの左上の位置が(x0,y0)である。
方法2800Dに関する一部の実施形態において、(xc,yc)=(x0+(w/2)-1,y0+(h/2))であり、基本映像ブロックの左上の位置が(x0,y0)である。方法2800Dに関する一部の実施形態において、映像ブロックが4パラメータアフィンモードを用いて符号化されることに応答して、c=-b且つd=aである。方法2800Dに関する一部の実施形態において、a、b、c及びdは、制御点動きベクトル(CPMV)、映像ブロックの幅(W)、及び映像ブロックの高さ(H)から導出され得る。方法2800Dに関する一部の実施形態において、
Figure 2024015289000029
であり、mv、mv、及びmvはCPMVであり、上付き文字hを有する動きベクトル成分は、該動きベクトル成分が第1方向にあることを指し示し、上付き文字vを有する別の動きベクトル成分は、該別の動きベクトル成分が第2方向にあることを指し示し、第1方向は第2方向に直交し、Wは映像ブロックの幅を示し、且つHは映像ブロックの高さを示す。方法2800Dに関する一部の実施形態において、a、b、c及びdはクリップされる。方法2800Dに関する一部の実施形態において、a、b、c及びdはシフトされる。方法2800Dに関する一部の実施形態において、a、b、c及びdは、映像ブロックの隣接映像ブロックに関する記憶情報から取得され得る。
方法2800Dに関する一部の実施形態において、a、b、c及びdは、履歴ベースの記憶情報から取得され得る。方法2800Dに関する一部の実施形態において、Vx(x+1,y)=Vx(x,y)+aであり、且つVy(x+1,y)=Vy(x,y)+cである。方法2800Dに関する一部の実施形態において、Vx(x+1,y)=Shift(Vx(x,y)+a,n1)であり、Vy(x+1,y)=Shift(Vy(x,y)+c,n1)であり、Shift()関数はバイナリシフト演算を指し、且つn1は整数である。方法2800Dに関する一部の実施形態において、Vx(x+1,y)=SatShift(Vx(x,y)+a,n1)であり、Vy(x+1,y)=SatShift(Vy(x,y)+c,n1)であり、SatShift()関数は飽和バイナリシフト演算を指し、且つn1は整数である。方法2800Dに関する一部の実施形態において、Vx(x+1,y)=Vx(x,y)+Shift(a,n1)であり、Vy(x+1,y)=Vy(x,y)+Shift(c,n1)であり、Shift()関数はバイナリシフト演算を指し、且つn1は整数である。
方法2800Dに関する一部の実施形態において、Vx(x+1,y)=Vx(x,y)+SatShift(a,n1)であり、Vy(x+1,y)=Vy(x,y)+SatShift(c,n1)であり、SatShift()関数は飽和バイナリシフト演算を指し、且つn1は整数である。方法2800Dに関する一部の実施形態において、Vx(x,y+1)=Vx(x,y)+bであり、且つVy(x+1,y)=Vy(x,y)+dである。方法2800Dに関する一部の実施形態において、Vx(x,y+1)=Shift(Vx(x,y)+b,n1)であり、Vy(x,y+1)=Shift(Vy(x,y)+d,n1)であり、Shift()関数はバイナリシフト演算を指し、且つn1は整数である。方法2800Dに関する一部の実施形態において、Vx(x,y+1)=SatShift(Vx(x,y)+b,n1)であり、Vy(x,y+1)=SatShift(Vy(x,y)+d,n1)であり、SatShift()関数は飽和バイナリシフト演算を指し、且つn1は整数である。方法2800Dに関する一部の実施形態において、Vx(x,y+1)=Vx(x,y)+Shift(b,n1)であり、Vy(x,y+1)=Vy(x,y)+Shift(d,n1)であり、Shift()関数はバイナリシフト演算を指し、且つn1は整数である。
方法2800Dに関する一部の実施形態において、Vx(x,y+1)=Vx(x,y)+SatShift(b,n1)であり、Vy(x,y+1)=Vy(x,y)+SatShift(d,n1)であり、SatShift()関数は飽和バイナリシフト演算を指し、且つn1は整数である。方法2800Dに関する一部の実施形態において、映像ブロックが、双予測技術を用いてアフィン予測されることに応答して、a、b、c、及びdは、参照ピクチャリスト0又は参照ピクチャリスト1を参照する。方法2800Dに関する一部の実施形態において、最終予測サンプルが、第1の動き変位Vx(x,y)及び第2の動き変位Vy(x,y)で精緻化され、且つ第1の動き変位Vx(x,y)及び第2の動き変位Vy(x,y)は、参照ピクチャリスト0及び参照ピクチャリスト1のうちのいずれか一方を参照するa、b、c、及びdを用いて導出される。
方法2800Dに関する一部の実施形態において、第1の動き変位Vx(x,y)及び第2の動き変位Vy(x,y)に関する予測サンプルは、参照ピクチャリスト0からであり、且つ精緻化され、且つ第1の動き変位Vx(x,y)及び第2の動き変位Vy(x,y)は、参照ピクチャリスト0を参照するa、b、c、及びdを用いて導出される。方法2800Dに関する一部の実施形態において、第1の動き変位Vx(x,y)及び第2の動き変位Vy(x,y)に関する予測サンプルは、参照ピクチャリスト1からであり、且つ精緻化され、且つ第1の動き変位Vx(x,y)及び第2の動き変位Vy(x,y)は、参照ピクチャリスト1を参照するa、b、c、及びdを用いて導出される。方法2800Dに関する一部の実施形態において、参照ピクチャリスト0からの第1の予測サンプルが、参照ピクチャリスト0を参照するa、b、c、及びdを用いて導出された第1の動き変位ベクトル(Vx(x,y),Vy(x,y))で精緻化され、参照ピクチャリスト1からの第2の予測サンプルが、参照ピクチャリスト1を参照するa、b、c、及びdを用いて導出された第2の動き変位ベクトル(Vx(x,y),Vy(x,y))で精緻化され、且つ第1の予測サンプルと第2の予測サンプルとを組み合わせることによって最終予測サンプルが取得される。
方法2800Dに関する一部の実施形態において、動き変位ベクトル(Vx(x,y),Vy(x,y))は、映像ブロックの動きベクトルの第2動きベクトル精度とは異なる第1動きベクトル精度を持つ。方法2800Dに関する一部の実施形態において、第1動きベクトル精度は1/8ピクセル精度である。方法2800Dに関する一部の実施形態において、第1動きベクトル精度は1/16ピクセル精度である。方法2800Dに関する一部の実施形態において、第1動きベクトル精度は1/32ピクセル精度である。方法2800Dに関する一部の実施形態において、第1動きベクトル精度は1/64ピクセル精度である。方法2800Dに関する一部の実施形態において、第1動きベクトル精度は1/128ピクセル精度である。方法2800Dに関する一部の実施形態において、動き変位ベクトル(Vx(x,y),Vy(x,y))は、フロートピクセル精度技術に基づいて決定される。
図28Eは、映像処理方法の一例に関するフローチャートである。方法2800Eは、映像ブロック内の位置(x,y)で推定された、第1方向における第1の勾配成分Gx(x,y)と、映像ブロック内の位置(x,y)で推定された、第2方向における第2の勾配成分Gy(x,y)とを決定(2842)し、第1の勾配成分及び第2の勾配成分は、位置(x,y)における予測サンプルP(x,y)の最終予測サンプル値に基づくものであり、且つx及びyは整数であり、勾配Gx(x,y)、Gy(x,y)を用いて精緻化されたものである予測サンプルP(x,y)の最終予測サンプル値に残差サンプル値Res(x,y)を加えたものに基づいて得られた、位置(x,y)における再構成サンプル値Rec(x,y)を用いて、映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を実行(2844)することを含む。
図28Fは、映像処理方法の一例に関するフローチャートである。方法2800Fは、映像ブロック内の位置(x,y)で推定された、第1方向における第1の勾配成分Gx(x,y)と、映像ブロック内の位置(x,y)で推定された、第2方向における第2の勾配成分Gy(x,y)とを決定(2852)し、第1の勾配成分及び第2の勾配成分は、位置(x,y)における予測サンプルP(x,y)の最終予測サンプル値に基づくものであり、且つx及びyは整数であり、位置(x,y)における再構成サンプル値Rec(x,y)に基づく残差サンプル値Res(x,y)を含むよう、映像ブロックのビットストリーム表現を符号化(2854)し、再構成サンプル値Rec(x,y)は、勾配Gx(x,y)、Gy(x,y)を用いて精緻化されたものである予測サンプルP(x,y)の最終予測サンプル値に残差サンプル値Res(x,y)を加えたものに基づく、ことを含む。
図28Gは、映像処理方法の一例に関するフローチャートである。方法2800Gは、映像ブロック内の位置(x,y)で推定された、第1方向における第1の勾配成分Gx(x,y)と、映像ブロック内の位置(x,y)で推定された、第2方向における第2の勾配成分Gy(x,y)とを決定(2862)し、第1の勾配成分及び第2の勾配成分は、位置(x,y)における予測サンプルP(x,y)の中間予測サンプル値に基づくものであり、予測サンプルP(x,y)の最終予測サンプル値は中間予測サンプル値に基づき、且つx及びyは整数であり、予測サンプルP(x,y)の最終予測サンプル値と残差サンプル値Res(x,y)とに基づいて得られた、位置(x,y)における再構成サンプル値Rec(x,y)を用いて、映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を実行(2864)することを含む。
図28Hは、映像処理方法の一例に関するフローチャートである。方法2800Hは、映像ブロック内の位置(x,y)で推定された、第1方向における第1の勾配成分Gx(x,y)と、映像ブロック内の位置(x,y)で推定された、第2方向における第2の勾配成分Gy(x,y)とを決定(2872)し、第1の勾配成分及び第2の勾配成分は、位置(x,y)における予測サンプルP(x,y)の中間予測サンプル値に基づくものであり、予測サンプルP(x,y)の最終予測サンプル値は中間予測サンプル値に基づき、且つx及びyは整数であり、位置(x,y)における再構成サンプル値Rec(x,y)に基づく残差サンプル値Res(x,y)を含むよう、映像ブロックのビットストリーム表現を符号化(2874)し、再構成サンプル値Rec(x,y)は、予測サンプルP(x,y)の最終予測サンプル値と残差サンプル値Res(x,y)とに基づく、ことを含む。
方法2800G及び/又は2800Hに関する一部の実施形態において、映像ブロックが、双予測技術を用いてアフィン予測されることに応答して、第1の勾配成分及び/又は第2の勾配成分は、1つの参照ピクチャリストからの中間予測サンプル値に基づく。方法2800G及び/又は2800Hに関する一部の実施形態において、映像ブロックがアフィンモード及び局所照明補償(LIC)を使用するとき、第1の勾配成分及び/又は第2の勾配成分は、LICが適用される前のインター予測サンプル値に基づく。方法2800G及び/又は2800Hに関する一部の実施形態において、映像ブロックが、重み付け予測技術又はCUレベル重み付け双予測(BCW)技術のうちいずれか一方を用いたアフィンモードを使用するとき、第1の勾配成分及び/又は第2の勾配成分は、重み係数を乗じられる前のインター予測サンプル値に基づく。方法2800G及び/又は2800Hに関する一部の実施形態において、映像ブロックがアフィンモード及び局所照明補償(LIC)を使用するとき、第1の勾配成分及び/又は第2の勾配成分は、LICが適用されたインター予測サンプル値に基づく。方法2800G及び/又は2800Hに関する一部の実施形態において、映像ブロックが、重み付け予測技術又はCUレベル重み付け双予測(BCW)技術のうちいずれか一方を用いたアフィンモードを使用するとき、第1の勾配成分及び/又は第2の勾配成分は、重み係数を乗じられたインター予測サンプル値に基づく。
図28Iは、映像処理方法の一例に関するフローチャートである。方法2800Iは、アフィン符号化映像ブロック内の位置(x,y)における精緻化予測サンプルP’(x,y)を、位置(x,y)で推定された第1方向における第1の勾配成分Gx(x,y)と、位置(x,y)で推定された第2方向における第2の勾配成分Gy(x,y)と、位置(x,y)について推定された第1の動き変位Vx(x,y)と、位置(x,y)について推定された第2の動き変位Vy(x,y)とで位置(x,y)における予測サンプルP(x,y)を修正することによって決定(2822)し、第1方向は第2方向に直交し、且つx及びyは整数であり、精緻化予測サンプルP’(x,y)及び残差サンプル値Res(x,y)に基づいて位置(x,y)における再構成サンプル値Rec(x,y)を決定(2884)し、アフィン符号化映像ブロック内の位置(x,y)における精緻化再構成サンプル値Rec’(x,y)を決定(2886)し、Rec’(x,y)=Rec(x,y)+Gx(x,y)×Vx(x,y)+Gy(x,y)×Vy(x,y)であり、精緻化再構成サンプル値Rec’(x,y)を用いて、アフィン符号化映像ブロックとアフィン符号化映像ブロックのビットストリーム表現との間での変換を実行(2888)することを含む。
図28Jは、映像処理方法の一例に関するフローチャートである。方法2800Jは、アフィン符号化映像ブロック内の位置(x,y)における精緻化予測サンプルP’(x,y)を、位置(x,y)で推定された第1方向における第1の勾配成分Gx(x,y)と、位置(x,y)で推定された第2方向における第2の勾配成分Gy(x,y)と、位置(x,y)について推定された第1の動き変位Vx(x,y)と、位置(x,y)について推定された第2の動き変位Vy(x,y)とで位置(x,y)における予測サンプルP(x,y)を修正することによって決定(2892)し、第1方向は第2方向に直交し、且つx及びyは整数であり、精緻化予測サンプルP’(x,y)及び残差サンプル値Res(x,y)に基づいて位置(x,y)における再構成サンプル値Rec(x,y)を決定(2894)し、アフィン符号化映像ブロック内の位置(x,y)における精緻化再構成サンプル値Rec’(x,y)を決定(2896)し、Rec’(x,y)=Rec(x,y)+Gx(x,y)×Vx(x,y)+Gy(x,y)×Vy(x,y)であり、残差サンプル値Res(x,y)を含むよう、アフィン符号化映像ブロックのビットストリーム表現を符号化(2898)することを含む。
方法2800I及び/又は2800Jに関する一部の実施形態において、第1の勾配成分Gx(x,y)及び/又は第2の勾配成分Gy(x,y)は再構成サンプル値Rec(x,y)に基づく。方法2800I及び/又は2800Jに関する一部の実施形態において、第1の動き変位Vx(x,y)及び第2の動き変位Vy(x,y)は、アフィン符号化映像ブロックの2×2ブロックレベルで導出される。
図28Kは、映像処理方法の一例に関するフローチャートである。方法2800Kは、アフィンモードの映像ブロックについて、1/Nピクセル精度で動きベクトルを決定(28102)し、映像ブロック内の位置(x,y)について推定された動き変位ベクトル(Vx(x,y),Vy(x,y))を決定(28104)し、当該動き変位ベクトルは1/Mピクセル精度で導出され、N及びMは正の整数であり、且つx及びyは整数であり、動きベクトル及び動き変位ベクトルを用いて、映像ブロックと映像ブロックのビットストリーム表現との間での変換を実行(28106)することを含む。
方法2800Kに関する一部の実施形態において、Nは8に等しく且つMは16に等しい、又はNは8に等しく且つMは32に等しい、又はNは8に等しく且つMは64に等しい、又はNは8に等しく且つMは128に等しい、又はNは4に等しく且つMは8に等しい、又はNは4に等しく且つMは16に等しい、又はNは4に等しく且つMは32に等しい、又はNは4に等しく且つMは64に等しい、又はNは4に等しく且つMは128に等しい。
図28Lは、映像処理方法の一例に関するフローチャートである。方法2800Lは、映像ブロックについて又は映像ブロックのサブブロックについて二組の動きベクトルを決定(28112)し、二組の動きベクトルの各組が異なる動きベクトルピクセル精度を持ち、且つ二組の動きベクトルは、時間動きベクトル予測(TMVP)技術を用いて又はサブブロックベース時間動きベクトル予測(SbTMVP)技術を用いて決定され、二組の動きベクトルに基づいて、映像ブロックと映像ブロックのビットストリーム表現との間での変換を実行(28114)することを含む。
方法2800Lに関する一部の実施形態において、二組の動きベクトルは、第1組の動きベクトルと第2組の動きベクトルとを含み、第1組の動きベクトルは1/Nピクセル精度を持ち、第2組の動きベクトルは1/Mピクセル精度を持ち、且つN及びMは正の整数である。方法2800Lに関する一部の実施形態において、Nは8に等しく且つMは16に等しい、又はNは8に等しく且つMは32に等しい、又はNは8に等しく且つMは64に等しい、又はNは8に等しく且つMは128に等しい、又はNは4に等しく且つMは8に等しい、又はNは4に等しく且つMは16に等しい、又はNは4に等しく且つMは32に等しい、又はNは4に等しく且つMは64に等しい、又はNは4に等しく且つMは128に等しい、又はNは16に等しく且つMは32に等しい、又はNは16に等しく且つMは64に等しい、又はNは16に等しく且つMは128に等しい。方法2800Lに関する一部の実施形態において、オプティカルフローに基づく方法を適用することによって、二組の動きベクトルに精緻化が適用され、二組の動きベクトルは、第1組の動きベクトルと第2組の動きベクトルとを含み、第1組の動きベクトルを用いて、オプティカルフローに基づく方法における予測サンプルが取得され、且つ第1組の動きベクトルのうちの第1の動きベクトルから第2組の動きベクトルのうちの第2の動きベクトルを差し引くことによって、オプティカルフローに基づく方法における、映像ブロック内の位置について推定された動き変位が取得される。
方法2800Lに関する一部の実施形態において、オプティカルフローに基づく方法は、映像ブロック内の位置(x,y)における精緻化予測サンプルP’(x,y)を、位置(x,y)で推定された第1方向における第1の勾配成分Gx(x,y)と、位置(x,y)で推定された第2方向における第2の勾配成分Gy(x,y)と、位置(x,y)について推定された第1の動き変位Vx(x,y)と、位置(x,y)について推定された第2の動き変位Vy(x,y)とで位置(x,y)における予測サンプルP(x,y)を修正することによって決定する、ことによって適用され、x及びyは整数であり、且つ位置(x,y)における再構成サンプル値Rec(x,y)が、精緻化予測サンプルP’(x,y)及び残差サンプル値Res(x,y)に基づいて取得される。方法2800Lに関する一部の実施形態において、第1方向及び第2方向は互いに直交する。方法2800Lに関する一部の実施形態において、第1の動き変位は、第1方向に平行な方向を表し、第2の動き変位は、第2方向に平行な方向を表す。方法2800Lに関する一部の実施形態において、P’(x,y)=P(x,y)+Gx(x,y)×Vx(x,y)+Gy(x,y)×Vy(x,y)である。
方法2800C乃至2800Lのいずれか1つ以上に関する一部の実施形態において、映像ブロックは8×4映像ブロックである、又はサブブロックは8×4サブブロックである。方法2800C乃至2800Lのいずれか1つ以上に関する一部の実施形態において、映像ブロックは4×8映像ブロックである、又はサブブロックは4×8サブブロックである。方法2800C乃至2800Lのいずれか1つ以上に関する一部の実施形態において、映像ブロックは4×4片予測映像ブロックである、又はサブブロックは4×4片予測サブブロックである。方法2800C乃至2800Lのいずれか1つ以上に関する一部の実施形態において、映像ブロックは、8×4、4×8、及び4×4片予測映像ブロックである、又はサブブロックは、8×4、4×8、及び4×4片予測サブブロックである。方法2800C乃至2800Lのいずれか1つ以上に関する一部の実施形態において、映像ブロックは4×4双予測映像ブロックを除外する、又はサブブロックは4×4双予測サブブロックを除外する。方法2800C乃至2800Lのいずれか1つ以上に関する一部の実施形態において、映像ブロックはルマ映像ブロックである。方法2800C乃至2800Lのいずれか1つ以上に関する一部の実施形態において、上記決定すること及び上記実行することは、映像ブロックの色成分、映像ブロックのブロックサイズ、映像ブロックのカラーフォーマット、映像ブロックのブロック位置、動きタイプ、動きベクトルの大きさ、符号化モード、ピクセル勾配の大きさ、変換タイプ、双方向オプティカルフロー(BIO)技術が適用されるかどうか、双予測技術が適用されるかどうか、及びデコーダ側動きベクトル精緻化(DMVR)法が適用されるかどうか、のうちのいずれか1つ以上に基づいて行われる。
図28Mは、映像処理方法の一例に関するフローチャートである。方法2800Mは、アフィン符号化モードを用いて符号化される映像ブロック上で、Kは1より大きい整数であるとして、K通りのサブブロックパターンを用いて映像ブロックを複数のパーティションに分割することによって、インタウィーブ予測技術を実行(28122)し、K通りのサブブロックパターンのうちの最初のものを用いて動き補償を行うことによって、映像ブロックの予測サンプルを生成(28124)し、位置(x,y)における予測サンプルをP(x,y)と表記し、x及びyは整数であり、第Lパターンと表記するK通りのサブブロックパターンの残りのうちの少なくとも1つについて、最初のサブブロックパターンで導出された予測サンプルと、K通りのサブブロックパターンのうちの最初のものを用いて導出された動きベクトルと第Lパターンを用いて導出された動きベクトルとの間の差とに基づいて、位置(x,y)におけるオフセット値OL(x,y)を決定(28126)し、OL(x,y)及びP(x,y)の関数として位置(x,y)についての最終予測サンプルを決定(28128)し、最終予測サンプルを用いて、映像ブロックのビットストリーム表現と映像ブロックとの間での変換を実行(28130)することを含む。
方法2800Mに関する一部の実施形態において、K=2であり、L=1であり、最終予測サンプルは、P(x,y)+((O1(x,y)+1)>>1)を用いて決定され、ただし、>>はバイナリシフト演算を表す。方法2800Mに関する一部の実施形態において、K=2であり、L=1であり、最終予測サンプルは、P(x,y)+(O1(x,y)>>1)を用いて決定され、ただし、>>はバイナリシフト演算を表す。方法2800Mに関する一部の実施形態において、最終予測サンプルは、P(x,y)+(O1(x,y)+...+OK(x,y)+K/2)/Kを用いて決定される。方法2800Mに関する一部の実施形態において、最終予測サンプルは、P(x,y)+(O1(x,y)+...+OK(x,y))/Kを用いて決定される。方法2800Mに関する一部の実施形態において、OL(x,y)は、水平及び垂直補間を行った後、且つ予測サンプルを入力サンプルのビット深度に変換する前に、最初のサブブロックパターンで導出された予測サンプルから生成される。方法2800Mに関する一部の実施形態において、OL(x,y)は、各予測方向に対して生成される。方法2800Mに関する一部の実施形態において、第Lパターンでの位置(x,y)における動き変位が、第Lパターンからの位置(x,y)における第1の動きベクトルと、K通りのサブブロックパターンのうちの最初のものからの位置(x,y)における第2の動きベクトルとの間の差として導出される。
方法2800Mに関する一部の実施形態において、K通りのサブブロックパターンのうちの最初のものを用いて導出された動きベクトルは、1/Nピクセル精度を持ち、第Lパターンを用いて導出された動きベクトルは、1/MLピクセル精度を持ち、N及びMは整数である。方法2800Mに関する一部の実施形態において、N=16且つML=32である、又はN=16且つML=64である、又はN=16且つML=128である、又はN=8且つML=16である、又はN=8且つML=32である、又はN=8且つML=64である、又はN=8且つML=128である、又はN=4且つML=8である、又はN=4且つML=16である、又はN=4且つML=32である、又はN=4且つML=64である、又はN=4且つML=128である。方法2800Mに関する一部の実施形態において、MLが、K通りのサブブロックパターンの残りの各々に対して異なる。
図28Nは、映像処理方法の一例に関するフローチャートである。方法2800Nは、最終予測サンプルを用いて、映像ブロックのビットストリーム表現と映像ブロックとの間での変換を実行(28132)することを含み、最終予測サンプルは、精緻化中間予測サンプルから、(a)ルールに基づいて、インタウィーブ予測技術及びそれに続くオプティカルフローベースの予測精緻化技術を実行すること、又は(b)動き補償技術を実行すること、によって導出される。
方法2800Nに関する一部の実施形態において、映像ブロックは、K通りのサブブロックパターンを用いて映像ブロックを複数のパーティションに分割することによって、アフィン符号化モードを使用して符号化され、Kは、1より大きい整数であり、各サブブロックパターンについて、動き補償技術を実行することによって、各サブブロックに対して予測サンプルが生成され、予測サンプルが、オプティカルフローベースの予測精緻化技術を用いて精緻化されて、更新された予測サンプルが取得され、且つ各サブブロックパターンの精緻化された予測サンプルを組み合わせることによって、最終予測サンプルが生成される。方法2800Nに関する一部の実施形態において、映像ブロックは片予測映像ブロックであり、インタウィーブ予測技術及びオプティカルフローベースの予測精緻化技術が映像ブロックに適用される。方法2800Nに関する一部の実施形態において、インタウィーブ予測技術及び/又はオプティカルフローベースの予測精緻化技術で符号化される映像ブロックに、第1のタップフィルタが適用され、該第1のタップフィルタは、インタウィーブ予測技術及び/又はオプティカルフローベースの予測精緻化技術で符号化されない他の映像ブロックのために使用される補間フィルタに使用される第2のタップフィルタよりも短い。
方法2800Nに関する一部の実施形態において、映像ブロックに対するアフィンサブブロックサイズは8×4又は4×8である。方法2800Nに関する一部の実施形態において、インタウィーブ予測技術及び/又はオプティカルフローベースの予測精緻化技術で符号化される映像ブロックに対して、第1のサブブロックサイズが使用され、該第1のサブブロックサイズは、インタウィーブ予測技術及び/又はオプティカルフローベースの予測精緻化技術で符号化されない他の映像ブロックの第2のサブブロックサイズとは異なる。方法2800Nに関する一部の実施形態において、ルールは、映像ブロックの符号化情報に基づき、該符号化情報は、映像ブロックの予測方向、映像ブロックの参照ピクチャ情報、又は映像ブロックの色成分を含む、請求項82に記載の方法。
図28Oは、映像処理方法の一例に関するフローチャートである。方法2800Oは、双予測が適用される場合に、最終予測サンプルを用いて、映像ブロックのビットストリーム表現と前記映像ブロックとの間での変換を実行(28142)することを含み、前記最終予測サンプルは、精緻化中間予測サンプルから、(a)インタウィーブ予測技術を無効にして、オプティカルフローベースの予測精緻化技術を実行すること、又は(b)動き補償技術を実行すること、によって導出される。
図28Pは、映像処理方法の一例に関するフローチャートである。方法2800Pは、映像処理方法の第15の例は、予測サンプルを用いて、映像ブロックのビットストリーム表現と前記映像ブロックとの間での変換を実行(28152)することを含み、前記予測サンプルは、オプティカルフローベースの予測精緻化技術を実行することによって精緻化中間予測サンプルから導出され、前記オプティカルフローベースの予測精緻化技術を前記実行することは、前記映像ブロックについて第1方向において推定された第1組の動き変位Vx(x,y),又は前記映像ブロックについて第2方向において推定された第2組の動き変位Vy(x,y)のうちの一方のみに依存し、x及びyは整数であり、且つ前記第1方向は前記第2方向に直交する。
方法2800Pに関する一部の実施形態において、予測サンプルは、第1組の動き変位Vx(x,y)のみに基づき、第2組の動き変位Vy(x,y)はゼロである。方法2800Pに関する一部の実施形態において、予測サンプルは、第2組の動き変位Vy(x,y)のみに基づき、第1組の動き変位Vx(x,y)はゼロである。方法2800Pに関する一部の実施形態において、第1組の動き変位Vx(x,y)の絶対値の和が第2組の動き変位Vy(x,y)の絶対値の和以上であることに応答して、予測サンプルは、第1組の動き変位Vx(x,y)のみに基づく。方法2800Pに関する一部の実施形態において、第1組の動き変位Vx(x,y)の絶対値の和が第2組の動き変位Vy(x,y)の絶対値の和以下であることに応答して、予測サンプルは、第2組の動き変位Vy(x,y)のみに基づく。
方法2800Pに関する一部の実施形態において、第1方向における第1の勾配成分の絶対値の和が第2方向における第2の勾配成分の絶対値の和以上であることに応答して、予測サンプルは、第1組の動き変位Vx(x,y)のみに基づく。方法2800Pに関する一部の実施形態において、第1方向における第1の勾配成分の絶対値の和が第2方向における第2の勾配成分の絶対値の和以上であることに応答して、予測サンプルは、第2組の動き変位Vy(x,y)のみに基づく。
図28Qは、映像処理方法の一例に関するフローチャートである。方法2800Qは、映像ブロックについての精緻化動きベクトルを、映像ブロックの動きベクトルを精緻化することによって取得(28162)し、動き補償技術を実行する前に動きベクトルが精緻化され、精緻化動きベクトルは1/Nピクセル精度を持ち、動きベクトルは1/Mピクセル精度を持ち、映像ブロック上でオプティカルフローベースの予測精緻化技術を実行することによって最終予測サンプルを取得(28164)し、精緻化動きベクトルと動きベクトルとの間の差に対してオプティカルフローベースの予測精緻化技術が適用され、最終予測サンプルを用いて、映像ブロックのビットストリーム表現と映像ブロックとの間での変換を実行(28166)することを含む。
方法2800Qに関する一部の実施形態において、Mは16であり且つNは1である、又はMは8であり且つNは1である、又はMは4であり且つNは1である、又はMは16であり且つNは2である、又はMは8であり且つNは2である、又はMは4であり且つNは2である。方法2800Qに関する一部の実施形態において、動きベクトルは第1方向又は第2方向のいずれかにあり、第1方向は第2方向に直交し、オプティカルフローベースの予測精緻化技術は、第1方向又は第2方向のいずれかで実行される。方法2800Qに関する一部の実施形態において、映像ブロックは双予測映像ブロックであり、動きベクトルは第1方向又は第2方向で精緻化され、第1方向は第2方向に直交する。方法2800Qに関する一部の実施形態において、映像ブロックは双予測映像ブロックであり、動きベクトルは第1方向及び第2方向で精緻化され、第1方向は第2方向に直交する。方法2800Qに関する一部の実施形態において、オプティカルフローベースの予測精緻化技術は、動きベクトルの第1の数の部分動きベクトル成分に対して実行され、第1の数の部分動きベクトル成分は、動きベクトルの第2の数の部分動きベクトル成分よりも少ない又は等しい。
図28Rは、映像処理方法の一例に関するフローチャートである。方法2800Rは、映像ブロックに対してマルチステップデコーダ側動きベクトル精緻化プロセスを用いて、最終動きベクトルを決定(28172)し、当該最終動きベクトルは1/Nピクセル精度を持ち、最終動きベクトルを用いて、現在ブロックとビットストリーム表現との間での変換を実行(28174)することを含む。
方法2800Rに関する一部の実施形態において、Nは、32又は64又は128に等しい。方法2800Rに関する一部の実施形態において、最終動きベクトルは、映像ブロックについての動きベクトルを精緻化することによって得られる精緻化動きベクトルであり、動きベクトルは、動き補償技術を実行するのに先立って精緻化され、映像ブロック上でオプティカルフローベースの予測精緻化技術を実行することによって、最終予測サンプルが取得され、オプティカルフローベースの予測精緻化技術は、最終動きベクトルと動きベクトルとの間の差に適用される。方法2800Rに関する一部の実施形態において、オプティカルフローベースの予測精緻化技術は、映像ブロック内の位置(x,y)における精緻化予測サンプルP’(x,y)を、位置(x,y)で推定された第1方向における第1の勾配成分Gx(x,y)と、位置(x,y)で推定された第2方向における第2の勾配成分Gy(x,y)と、位置(x,y)について推定された第1の動き変位Vx(x,y)と、位置(x,y)について推定された第2の動き変位Vy(x,y)とで位置(x,y)における予測サンプルP(x,y)を修正することによって決定する、ことによって適用され、x及びyは整数であり、且つ位置(x,y)における最終予測サンプルRec(x,y)は、精緻化予測サンプルP’(x,y)及び残差サンプル値Res(x,y)に基づいて取得される。方法2800Rに関する一部の実施形態において、第1方向及び第2方向は互いに直交する。方法2800Rに関する一部の実施形態において、第1の動き変位は、第1方向に平行な方向を表し、第2の動き変位は、第2方向に平行な方向を表す、請求項104に記載の方法。
方法2800Rに関する一部の実施形態において、P’(x,y)=P(x,y)+Gx(x,y)×Vx(x,y)+Gy(x,y)×Vy(x,y)である。方法2800Rに関する一部の実施形態において、動き補償技術を実行するのに先立って、1/32ピクセル精度を持つ精緻化動きベクトルが1/16ピクセル精度に丸められる。方法2800Rに関する一部の実施形態において、動き補償技術を実行するのに先立って、1/32ピクセル精度を持つ精緻化動きベクトルが1ピクセル精度に丸められる。方法2800Rに関する一部の実施形態において、動き補償技術を実行するのに先立って、1/64ピクセル精度を持つ精緻化動きベクトルが1/16ピクセル精度に丸められる。方法2800Rに関する一部の実施形態において、動き補償技術を実行するのに先立って、1/64ピクセル精度を持つ精緻化動きベクトルが1ピクセル精度に丸められる。
図28Sは、映像処理方法の一例に関するフローチャートである。方法2800Sは、映像ブロックの精緻化中間予測サンプルを、映像ブロックの中間予測サンプルに対してインタウィーブ予測技術及びオプティカルフローベースの予測精緻化技術を実行することによって取得(28182)し、精緻化中間予測サンプルから最終予測サンプルを導出(28184)し、最終予測サンプルを用いて、映像ブロックのビットストリーム表現と映像ブロックとの間での変換を実行(28186)することを含む。
方法2800Sに関する一部の実施形態において、先ず、オプティカルフローベースの予測精緻化技術が実行され、次いで、インタウィーブ予測技術が実行される。方法2800Sに関する一部の実施形態において、先ず、オプティカルフローベースの予測精緻化技術を用いて、2つの異なるサブブロック分割パターンを有する精緻化中間予測サンプルが取得され、そして、精緻化中間予測サンプルが、インタウィーブ予測技術を用いて加重平均されて、最終予測サンプルが取得される。方法2800Sに関する一部の実施形態において、先ず、インタウィーブ予測技術が実行され、次いで、オプティカルフローベースの予測精緻化技術が実行される。方法2800Sに関する一部の実施形態において、先ず、2つの異なるサブブロック分割パターンを有する中間予測サンプルが、インタウィーブ予測技術を用いて加重平均されて、精緻化中間予測サンプルが取得され、そして、精緻化中間予測サンプルに対してオプティカルフローベースの予測精緻化技術が実行されて、最終予測サンプルが取得される。方法2800N乃至2800Sのいずれか1つ以上に関する一部の実施形態において、オプティカルフローベースの予測精緻化技術は、オプティカルフローを用いた予測精緻化(prediction refinement with optical flow;PROF)技術である。
図28Tは、映像処理方法の一例に関するフローチャートである。方法2800Tは、映像ブロックの精緻化中間予測サンプルを、映像ブロックの中間予測サンプルに対してインタウィーブ予測技術及び位相変分アフィンサブブロック動き補償(PAMC)技術を実行することによって取得(28192)し、精緻化中間予測サンプルから最終予測サンプルを導出(28194)し、最終予測サンプルを用いて、映像ブロックのビットストリーム表現と映像ブロックとの間での変換を実行(28196)することを含む。
方法2800Tに関する一部の実施形態において、先ず、PAMC技術が実行され、次いで、インタウィーブ予測技術が実行される。方法2800Tに関する一部の実施形態において、先ず、PAMC技術の補間法を用いて、2つの異なるサブブロック分割パターンを有する精緻化中間予測サンプルが取得され、そして、精緻化中間予測サンプルが、インタウィーブ予測技術を用いて加重平均されて、最終予測サンプルが取得される。方法2800Tに関する一部の実施形態において、先ず、インタウィーブ予測技術が実行され、次いで、PAMC技術が実行される。
図28Uは、映像処理方法の一例に関するフローチャートである。方法2800Uは、映像ブロックの精緻化中間予測サンプルを、映像ブロックの中間予測サンプルに対してオプティカルフローベースの予測精緻化技術及び位相変分アフィンサブブロック動き補償(PAMC)技術を実行することによって取得(28202)し、精緻化中間予測サンプルから最終予測サンプルを導出(28204)し、最終予測サンプルを用いて、映像ブロックのビットストリーム表現と映像ブロックとの間での変換を実行(28206)するこ
方法2800Uに関する一部の実施形態において、先ず、PAMC技術が実行され、次いで、オプティカルフローベースの予測精緻化技術が実行される。方法2800Uに関する一部の実施形態において、先ず、PAMC技術の補間法を用いて、2つの異なるサブブロック分割パターンを有する精緻化中間予測サンプルが取得され、そして、精緻化中間予測サンプルが、オプティカルフローベースの予測精緻化技術を用いて処置されて、最終予測サンプルが取得される。方法2800Uに関する一部の実施形態において、先ず、オプティカルフローベースの予測精緻化技術が実行され、次いで、PAMC技術が実行される。
本文書において、用語“映像処理”は、映像符号化(トランスコーディングを含む)、映像復号、映像圧縮又は映像解凍を指し得る。例えば、映像圧縮アルゴリズムが、映像のピクセル表現から対応するビットストリーム表現への変換又はその逆の変換の間に適用され得る。現在映像ブロックのビットストリーム表現は、例えば、構文によって規定されるように、ビットストリーム内でコロケートにある又は異なるところに広がったビットに対応し得る。例えば、マクロブロックは、変換され符号化された誤差残差値に関して符号化されることができ、また、ビットストリーム内のヘッダ及び他のフィールド内のビットを使用して符号化されることができる。
理解されることには、開示される方法及び技術は、本文書に開示された技術の使用を可能にすることによって、例えばスマートフォン、ラップトップ、デスクトップ、及び類似の装置などの映像処理装置に組み込まれたビデオエンコーダ及び/又はデコーダの実施形態に有益となる。
以下の項のリストは、本文書に開示される技術を使用する更なる機構及び実施形態を提供する。
1. 映像処理の方法であって、映像ブロックと該映像ブロックのビットストリーム表現との間での変換において、前記映像ブロック内の位置(x,y)における精緻化予測サンプルP’(x,y)を、前記位置(x,y)で推定された第1方向及び/又は第2方向における勾配と、前記位置(x,y)について推定された第1の動き変位及び/又は第2の動き変位と、の関数として前記位置(x,y)における予測サンプルP(x,y)を修正することによって決定するステップと、前記精緻化予測サンプルP’(x,y)からの再構成サンプル値Rec(x,y)を用いて前記変換を実行するステップと、を有する方法。
2. 前記第1方向及び前記第2方向が互いに直交する、項1に記載の方法。
3. 前記第1の動き変位は、前記第1方向に平行な方向においてであり、第2の動き変位は、前記第2方向に平行な方向においてである、項1又は2のいずれかに記載の方法。
4. 前記第1方向における前記勾配はGx(x,y)と表され、前記第2方向における前記勾配はGy(x,y)と表され、前記第1の動き変位はVx(x,y)と表され、前記第2の動き変位はVy(x,y)と表され、P’(x,y)=P(x,y)+Gx(x,y)×Vx(x,y)+Gy(x,y)×Vy(x,y)である、項1乃至3のいずれかに記載の方法。
5. 第1方向における前記勾配はGx(x,y)と表され、前記第2方向における前記勾配はGy(x,y)と表され、前記第1の動き変位はVx(x,y)と表され、前記第2の動き変位はVy(x,y)と表され、P’(x,y)=α(x,y)×P(x,y)+β(x,y)×Gx(x,y)×Vx(x,y)+γ(x,y)×Gy(x,y)×Vy(x,y)であり、ただし、α(x,y)、β(x,y)及びγ(x,y)は前記位置(x,y)における重み付け値であり且つ整数又は実数である、項1乃至3のいずれかに記載の方法。
6. 前記予測サンプルP(x,y)は、前記位置(x,y)における片予測サンプルである、項1乃至5のいずれかに記載の方法。
7. 前記予測サンプルP(x,y)は、前記位置(x,y)における双予測の最終結果である、項1乃至5のいずれかに記載の方法。
8. 前記予測サンプルP(x,y)は、以下のうちの1つを満たす、項1乃至5のいずれかに記載の方法:
・ 多重仮説インター予測(3つ以上のMVを用いるインター予測)の結果、
・ アフィン予測の結果、
・ イントラ予測の結果、
・ イントラブロックコピー(IBC)予測の結果、
・ 三角予測モード(TPM)によって生成される、
・ インター-イントラ結合予測の結果、
・ 領域が同じ動きモデル及びパラメータを共有するものであるグローバルインター予測の結果、
・ パレット符号化モードの結果、
・ マルチビュー又は3Dビデオコーディングにおけるインタービュー予測の結果、
・ スケーラブルビデオコーディングにおける層間予測の結果、
・ フィルタリング演算の結果。
前記位置(x,y)での予測の精度を向上させるための精緻化プロセスの結果。
9. 前記再構成サンプル値Rec(x,y)は、前記変換中に使用するのに先立って更に精緻化される、項1乃至8のいずれかに記載の方法。
セクション4に列挙された項目1は、方法1乃至9に関する実施形態の更なる例を提供する。
10. 映像処理の方法であって、映像ブロックを符号化するオプティカルフローベースの方法に対応する映像ブロック内の位置(x,y)における第1の変位ベクトルVx(x,y)及び第2の変位ベクトルVy(x,y)を、隣接ブロック又は基本ブロックからの情報に基づいて決定するステップと、前記第1の変位ベクトル及び前記第2の変位ベクトルを用いて、前記映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を実行するステップと、を有する方法。
11. 前記隣接ブロックは空間隣接ブロックである、項10に記載の方法。
12. 前記隣接ブロックは時間隣接ブロックである、項10に記載の方法。
13. 前記隣接ブロックは、符号化ユニット寸法、又は符号化モード、又は前記映像ブロックに隣接する取り得る候補ブロックの位置に基づいて選択される、項10乃至12のいずれかに記載の方法。
14. 前記第1の変位ベクトル及び前記第2の変位ベクトルは、複数の隣接ブロックについての動きベクトルの組み合わせを用いて計算される、項10乃至13のいずれかに記載の方法。
15. 前記基本ブロックは所定の寸法を持つ、項11乃至13のいずれかに記載の方法。
16. Vx(x,y)及びVy(x,y)は、Vx(x,y)=a×(x-xc)+b(y-yc)、Vy(x,y)=c×(x-xc)+d(y-yc)として決定され、ここで、(xc,yc)は、前記位置(x,y)をカバーする寸法w×hの前記基本ブロックの中心位置である、項10に記載の方法。
17. Vx(x,y)及びVy(x,y)は、Vx(x,y)=Shift(a×(x-xc)+b(y-yc),n1)、Vy(x,y)=Shift(c×(x-xc)+d(y-yc),n1として決定され、ここで、n1は整数であり、(xc,yc)は、前記位置(x,y)をカバーする寸法w×hの前記基本ブロックの中心位置である、項10に記載の方法。
18. Vx(x,y)及びVy(x,y)は、Vx(x+1,y)=Vx(x,y)+a及びVy(x+1,y)=Vy(x,y)+cとして決定され、パラメータa及びcは、前記隣接ブロックから又は履歴ベースの記憶装置からの情報に基づいて取得される、項10に記載の方法。
19. Vx(x,y)及びVy(x,y)の精度は、前記基本ブロックの動きベクトルの精度とは異なる、項10乃至18のいずれかに記載の方法。
セクション4の項目2は、項10乃至19の実施形態の更なる例を提供する。
20. 映像処理の方法であって、映像ブロックと該映像ブロックのビットストリーム表現との間での変換において、前記映像ブロック内の位置(x,y)における精緻化予測サンプルP’(x,y)を、前記位置(x,y)における予測サンプルP(x,y)を修正することによって決定するステップであり、前記位置(x,y)での第1方向における勾配と第2方向における勾配とが、前記精緻化予測サンプルP’(x,y)及び前記位置(x,y)における残差サンプル値から決定される最終予測値に基づいて決定される、ステップと、前記第1方向における前記勾配及び前記第2方向における前記勾配を用いて前記変換を実行するステップと、を有する方法。
21. 前記第1方向における前記勾配及び前記第2方向における前記勾配は、水平勾配及び垂直勾配に対応する、項20に記載の方法。
22. 前記第1方向における前記勾配及び前記第2方向における前記勾配は、中間予測の結果から導出される、項20乃至21のいずれかに記載の方法。
23. 前記第1方向における前記勾配及び前記第2方向における前記勾配は、アフィン予測される双予測映像ブロックである前記映像ブロックに対する1つの参照ピクチャリストから導出される、項20乃至21のいずれかに記載の方法。
セクション4の項目3及び4は、項20乃至23に記載された技術の更なる実施形態例を提供する。
24. 映像処理の方法であって、アフィン符号化される映像ブロック内の位置(x,y)における再構成サンプルRec(x,y)を決定するステップと、前記位置(x,y)における第1及び第2の変位ベクトル並びに第1及び第2の勾配を用いてRec(x,y)を精緻化して、精緻化再構成サンプルRec’(x,y)を取得するステップと、前記精緻化再構成サンプルを用いて、前記映像ブロックと現在映像ブロックのビットストリーム表現との間での変換を実行するステップと、を有する方法。
25. Rec’(x,y)=Rec(x,y)+Gx(x,y)×Vx(x,y)+Gy(x,y)×Vy(x,y)であり、Gx(x,y)及びGy(x,y)は、前記第1及び第2の勾配を表し、Vx(x,y)及びVy(x,y)は、前記位置(x,y)における前記第1及び第2の変位ベクトルを表す、項24に記載の方法。
26. Vx(x,y)及びVy(x,y)はサブブロックレベルで導出される、項25に記載の方法。
27. Vx(x,y)及びVy(x,y)は1/Mペル精度で導出され、Mは整数である、項25に記載の方法。
28. 当該方法は、前記映像ブロックが特定の寸法及び/又は特定の符号化モードを持つことの結果として適用される、項1乃至27のいずれかに記載の方法。
29. 前記特定の寸法は8×4である、項28に記載の方法。
30. 前記映像ブロックは4×4片予測映像ブロックである、項28に記載の方法。
セクション4の項目5乃至12は、項24乃至30に記載された実施形態の例を提供する。
31. 当該方法は、前記映像ブロックが、特定の色成分若しくは特定のカラーフォーマットを持つこと、又は映像ピクチャ内で特定の位置を持つこと、又は特定の変換タイプを使用することの結果として適用される、項1乃至27のいずれかに記載の方法。
32.前記変換は、前記ビットストリーム表現から前記現在ブロックを生成すること、又は前記現在ブロックから前記ビットストリーム表現を生成することを含む、項1乃至31のいずれかに記載の方法。
33. 映像処理の方法であって、 映像処理方法の第25の例は、アフィン符号化モードを用いて符号化される映像ブロックと該映像ブロックのビットストリーム表現との間での変換において、Kは1より大きい整数であるとして、K通りのサブブロックパターンを用いて前記映像ブロックを複数のパーティションに分割することによって、前記映像ブロックのインタウィーブ予測を実行するステップと、前記K通りのサブブロックパターンのうちの最初のものを用いて動き補償を実行して、前記映像ブロックの予測サンプルを生成するステップであり、位置(x,y)における予測サンプルをP(x,y)と表記する、ステップと、第Lパターンと表記する前記K通りのサブブロックパターンの残りのうちの少なくとも1つについて、P(x,y)と、前記K通りのサブブロックパターンのうちの前記最初のものを用いて導出された動きベクトルと前記第Lパターンを用いて導出された動きベクトルとの間の差とに基づいて、前記位置(x,y)におけるオフセット値OL(x,y)を決定するステップと、OL(x,y)及びP(x,y)の関数として前記位置(x,y)についての最終予測サンプルを決定するステップと、前記最終予測サンプルを用いて前記変換を実行するステップと、を有する方法。
34. K=2であり、L=1であり、前記最終予測サンプルは、P(x,y)+((O1(x,y)+1)>>1)を用いて決定され、ただし、>>はバイナリシフト演算を表す、項33に記載の方法。
35. K=2であり、L=1であり、前記最終予測サンプルは、P(x,y)+(O1(x,y)>>1)を用いて決定され、ただし、>>はバイナリシフト演算を表す、項33に記載の方法。
36. OL(x,y)は、水平及び垂直補間を実行した後にP(x,y)から生成される、項33乃至35のいずれかに記載の方法。
37. 前記最初のパターンに対する動き補償は1/Nピクセル精度を使用することができ、前記第Lパターンに対する動き補償は1/MLピクセル精度を使用することができ、N及びMは整数である、項33乃至35のいずれかに記載の方法。
38. N=16、且つML=32、64又は128である、項37に記載の方法。
39. N=8、且つML=16、32、64又は128である、項37に記載の方法。
40. N=4、且つML=8、16、32、64又は128である、項37に記載の方法。
41. 項1乃至40のいずれかに記載の方法を実装するように構成されたプロセッサを有するビデオエンコーダ又はリエンコーダ。
42. 項1乃至40のいずれかに記載の方法を実装するように構成されたプロセッサを有するビデオデコーダ。
43. 項1乃至40のいずれかに記載の方法を実装するためのコードを有したコンピュータ読み取り可能媒体。
図33は、ここに開示される様々な技術が実装され得る映像処理システム2100の一例を示すブロック図である。様々な実装は、システム2100のコンポーネントの一部又は全てを含み得る。システム2100は、映像コンテンツを受信する入力2102を含み得る。映像コンテンツは、例えば8ビット又は10ビットのマルチコンポーネント(多成分)ピクセル値といった、ロー(未加工)又は未圧縮のフォーマットで受信されてもよいし、あるいは圧縮又は符号化されたフォーマットで受信されてもよい。入力2102は、ネットワークインタフェース、周辺バスインタフェース、又はストレージインタフェースを表し得る。ネットワークインタフェースの例は、イーサネット(登録商標)、パッシブ光ネットワーク(PON)などの有線インタフェース、及びWi-Fi(登録商標)若しくはセルラーインタフェースなどの無線インタフェースを含む。
システム2100は、本文書に記載される様々なコーディング又は符号化方法を実装し得る符号化コンポーネント2104を含み得る。符号化コンポーネント2104は、入力2102から符号化コンポーネント2104の出力まで映像の平均ビットレートを低減させて、映像の符号化表現を生成し得る。符号化技術は、それ故に、映像圧縮技術又は映像トランスコーディング技術と呼ばれることがある。符号化コンポーネント2104の出力は、格納されるか、コンポーネント2106によって表されるように接続されて通信を介して伝送されるかし得る。入力2102で受信された映像の格納又は通信されるビットストリーム(又は符号化)表現は、ディスプレイインタフェース2110に送られるピクセル値又は表示可能映像を生成するためにコンポーネント2108によって使用され得る。ビットストリーム表現からユーザが見ることができる映像を生成するプロセスは、映像解凍と呼ばれることがある。また、特定の映像処理操作が“符号化”の操作又はツールとして参照されることがあるが、理解されることには、符号化のツール又は操作はエンコーダで使用され、符号化の結果を裏返す対応する復号のツール又は操作がデコーダで実行されることになる。
周辺バスインタフェース又はディスプレイインタフェースの例は、ユニバーサルシリアルバス(USB)又は高精細マルチメディアインタフェース(HDMI(登録商標))又はディスプレイポート(Displayport)などを含み得る。ストレージインタフェースの例は、SATA(serial advanced technology attachment)、PCI、IDEインタフェースなどを含む。本文書に記載される技術は、例えば携帯電話、ラップトップ、スマートフォン、又はデジタルデータ処理及び/又は映像表示を実行することが可能な他の装置などの、種々のエレクトロニクス装置にて具現化され得る。
開示される技術の一部の実施形態は、映像処理ツール又はモードを有効にする決定を行うことを含む。一例において、映像処理ツール又はモードが有効にされるとき、エンコーダは、映像のブロックの処理においてそのツール又はモードを使用又は実装することになるが、必ずしも、そのツール又はモードの使用に基づいて、結果として生じるビットストリームを変更するわけではない。すなわち、映像のブロックから映像のビットストリーム表現への変換は、映像処理ツール又はモードを、それが決定に基づいて有効にされるときに使用することになる。他の一例において、映像処理ツール又はモードが有効にされるとき、デコーダは、その映像処理ツール又はモードに基づいてビットストリームが変更されていることを知って、ビットストリームを処理することになる。すなわち、映像のビットストリーム表現から映像のブロックへの変換は、決定に基づいて有効にされていた映像処理ツール又はモードを用いて実行されることになる。
開示される技術の一部の実施形態は、映像処理ツール又はモードを無効にする決定を行うことを含む。一例において、映像処理ツール又はモードが無効にされるとき、エンコーダは、映像のブロックの映像のビットストリームへの変換においてそのツール又はモードを使用しないことになる。他の一例において、映像処理ツール又はモードが無効にされるとき、デコーダは、決定に基づいて無効にされていた映像処理ツール又はモードを用いてはビットストリームが変更されていないことを知って、ビットストリームを処理することになる。
図34は、この開示の技術を利用し得る映像符号化システム100の一例を示すブロック図である。図34に示すように、映像符号化システム100は、ソース装置110及びデスティネーション装置120を含み得る。ソース装置110は、符号化映像データを生成し、映像符号化装置として参照され得る。デスティネーション装置120は、ソース装置110によって生成された符号化映像データを復号することができ、映像復号装置として参照され得る。ソース装置110は、映像ソース112、ビデオエンコーダ114、及び入力/出力(I/O)インタフェース116を含み得る。
映像ソース112は、例えば、映像キャプチャ装置、映像コンテンツプロバイダから映像データを受信するインタフェース、及び/又は映像データを生成するコンピュータグラフィックスシステム、又はそのようなソースの組み合わせなどの、ソースを含み得る。映像データは、1つ以上のピクチャを有し得る。ビデオエンコーダ114は、映像ソース112からの映像データを符号化してビットストリームを生成する。ビットストリームは、映像データの符号化表現を形成する一連のビットを含み得る。ビットストリームは、符号化ピクチャ及び関連データを含み得る。符号化ピクチャはピクチャの符号化表現である。関連データは、シーケンスパラメータセット、ピクチャパラメータセット、及び他の構文構造を含み得る。I/Oインタフェース116は、変調器/復調器(モデム)及び/又は送信器を含み得る。符号化映像データは、I/Oインタフェース116を介し、ネットワーク130aを通じて直接、デスティネーション装置120に伝送され得る。符号化映像データはまた、デスティネーション装置120によるアクセスのためにストレージ媒体/サーバ130b上に格納されてもよい。
デスティネーション装置120は、I/Oインタフェース126、ビデオデコーダ124、及び表示装置122を含み得る。
I/Oインタフェース126は、受信器及び/又はモデムを含み得る。I/Oインタフェース126は、ソース装置110又はストレージ媒体/サーバ130bから符号化映像データを取得し得る。ビデオデコーダ124は符号化映像データを復号し得る。表示装置122は、復号映像データをユーザに表示し得る。表示装置122は、デスティネーション装置120と一体化されてもよいし、あるいは、外部表示装置とインタフェースするように構成されたデスティネーション装置120の外部にあってもよい。
ビデオエンコーダ114及びビデオデコーダ124は、例えばハイエフィシェンシビデオコーディング(HEVC)標準、バーサタイルビデオコーディング(VVC)標準、及び他の現行の及び/又は将来の標準などの、映像圧縮標準に従って動作し得る。
図35は、図34に示したシステム100内のビデオエンコーダ114とし得るものであるビデオエンコーダ200の一例を示すブロック図である。
ビデオエンコーダ200は、この開示の技術のうちのいずれか又は全てを実行するように構成され得る。図35の例において、ビデオエンコーダ200は、複数の機能コンポーネントを含んでいる。この開示に記載される技術は、ビデオエンコーダ200の様々なコンポーネントの間で共有され得る。一部の例において、プロセッサが、この開示に記載される技術のうちのいずれか又は全てを実行するように構成され得る。
ビデオエンコーダ200の機能コンポーネントは、分割ユニット201と、モード選択ユニット203、動き推定ユニット204、動き補償ユニット205、及びイントラ予測ユニット206を含み得る予測ユニット202と、残差生成ユニット207と、変換ユニット208と、量子化ユニット209と、逆量子化ユニット210と、逆変換ユニット211と、再構成ユニット212と、バッファ213と、エントロピー符号化ユニット214とを含み得る。
他の例において、ビデオエンコーダ200は、より多くの、より少ない、又は異なる機能コンポーネントを含んでもよい。一例において、予測ユニット202は、イントラブロックコピー(IBC)ユニットを含んでいてもよい。IBCユニットは、少なくとも1つの参照ピクチャが、現在映像ブロックが位置するところのピクチャである、というIBCモードで予測を実行し得る。
また、例えば動き推定ユニット204及び動き補償ユニット205などの一部のコンポーネントは、図35の例では説明の目的で別々に表されているが、高度に集積されることができる。
分割ユニット201は、ピクチャを1つ以上の映像ブロックに分割し得る。ビデオエンコーダ200及びビデオデコーダ300は、様々な映像ブロックサイズをサポートし得る。
モード選択ユニット203は、例えば誤差結果に基づいて、イントラ又はインターである複数の符号化モードのうちの1つを選択し、得られたイントラ又はインター符号化ブロックを、残差ブロックデータを生成する残差生成ユニット207と、参照ピクチャとしての使用のために符号化ブロックを再構成する再構成ユニット212とに提供し得る。一部の例において、モード選択ユニット203は、予測がインター予測信号及びイントラ予測信号に基づくものである組み合わせイントラ・インター予測(combination of intra and inter predication;CIIP)モードを選択してもよい。モード選択ユニット203はまた、インター予測の場合に、ブロックに対する動きベクトルの分解能(例えば、サブピクセル又は整数ピクセルの精度)を選択し得る。
現在映像ブロックに対してインター予測を実行するために、動き推定ユニット204が、バッファ213からの1つ以上の参照フレームを現在映像ブロックと比較することによって、現在映像ブロックについての動き情報を生成し得る。動き補償ユニット205が、現在映像ブロックに関連付けられたピクチャ以外の、バッファ213からのピクチャの動き情報及び復号サンプルに基づいて、現在映像ブロックについての予測映像ブロックを決定し得る。
動き推定ユニット204及び動き補償ユニット205は、例えば、現在映像ブロックがIスライス内にあるか、Pスライス内にあるか、それともBスライス内にあるかに応じて、現在映像ブロックに対して異なる演算を実行し得る。
一部の例において、動き推定ユニット204は、現在映像ブロックに対して片方向予測を実行することができ、動き推定ユニット204は、現在映像ブロックに対する参照映像ブロックについてリスト0又はリスト1の参照ピクチャを探索し得る。そして、動き推定ユニット204は、参照映像ブロックを含んだリスト0又はリスト1内の参照ピクチャを指し示す参照インデックスと、現在映像ブロックと参照映像ブロックとの間の空間変位を指し示す動きベクトルとを生成し得る。動き推定ユニット204は、現在映像ブロックの動き情報として、上記参照インデックスと、予測方向インジケータと、上記動きベクトルとを出力し得る。現在映像ブロックの動き情報によって示される参照映像ブロックに基づいて、動き補償ユニット205が現在ブロックの予測映像ブロックを生成し得る。
他の例において、動き推定ユニット204は、現在映像ブロックに対して双方向予測を実行することができ、動き推定ユニット204は、現在映像ブロックに対する参照映像ブロックについてリスト0内の参照ピクチャを探索し得るとともに、現在映像ブロックに対するもう1つの参照映像ブロックについてリスト1内の参照ピクチャも探索し得る。そして、動き推定ユニット204は、参照映像ブロックを含んだリスト0内の及びリスト1内の参照ピクチャを指し示す参照インデックスと、それら参照映像ブロックと現在映像ブロックとの間の空間変位を指し示す動きベクトルとを生成し得る。動き推定ユニット204は、現在映像ブロックの動き情報として、それら参照インデックスと、現在映像ブロックの上記動きベクトルとを出力し得る。現在映像ブロックの動き情報によって示される参照映像ブロックに基づいて、動き補償ユニット205が現在ブロックの予測映像ブロックを生成し得る。
一部の例において、動き推定ユニット204は、デコーダの復号処理のために、動き情報の完全なセットを出力し得る。
一部の例において、動き推定ユニット204は、現在映像についての動き情報の完全なセットを出力しなくてもよい。むしろ、動き推定ユニット204は、別の映像ブロックの動き情報を参照して現在映像ブロックの動き情報を信号伝達してもよい。例えば、動き推定ユニット204は、現在映像ブロックの動き情報が隣接映像ブロックの動き情報と十分に似ていると判定し得る。
一例において、動き推定ユニット204は、現在映像ブロックに関連付けられる構文構造内で、現在映像ブロックが別の映像ブロックと同じ動き情報を持つことをビデオデコーダ300に示す値を指し示し得る。
他の一例において、動き推定ユニット204は、現在映像ブロックに関連付けられる構文構造内で、別の映像ブロックと動きベクトル差(MVD)とを特定してもよい。動きベクトル差は、現在映像ブロックの動きベクトルと、指し示される映像ブロックの動きベクトルとの間の差を示す。ビデオデコーダ300は、指し示された映像ブロックの動きベクトルと動きベクトル差とを用いて、現在映像ブロックの動きベクトルを決定し得る。
上述のように、ビデオエンコーダ200は、動きベクトルを予測的に信号伝達し得る。ビデオエンコーダ200によって実装され得る予測的シグナリング技術の2つの例は、アドバンスト動きベクトル予測(AMVP)及びマージモードシグナリングを含む。
イントラ予測ユニット206は、現在映像ブロックに対してイントラ予測を実行し得る。イントラ予測ユニット206が現在映像ブロックに対してイントラ予測を実行するとき、イントラ予測ユニット206は、同じピクチャ内の他の映像ブロックの復号サンプルに基づいて、現在映像ブロックについての予測データを生成し得る。現在映像ブロックについての予測データは、予測映像ブロックと様々な構文要素とを含み得る。
残差生成ユニット207は、現在映像ブロックの(1つ以上の)予測映像ブロックを現在映像ブロックから差し引くことによって(例えば、マイナス符号によって示される)、現在映像ブロックについての残差データを生成し得る。現在映像ブロックの残差データは、現在映像ブロック内のサンプルの異なるサンプル成分に対応する残差映像ブロックを含み得る。
他の例では、例えばスキップモードにおいて、現在映像ブロックのために現在映像ブロックについての残差データが存在しないことがあり、残差生成ユニット207は減算演算を実行しないことがある。
変換処理ユニット208は、現在映像ブロックに関連する残差映像ブロックに1つ以上の変換を適用することによって、現在映像ブロックについての1つ以上の変換係数映像ブロックを生成し得る。
変換処理ユニット208が現在映像ブロックに関する変換係数映像ブロックを生成した後、量子化ユニット209が、現在映像ブロックに関する変換係数映像ブロックを、現在映像ブロックに関する1つ以上の量子化パラメータ(QP)値に基づいて量子化し得る。
逆量子化ユニット210及び逆変換ユニット211が、変換係数映像ブロックに、それぞれ、逆量子化及び逆変換を適用して、変換係数映像ブロックから残差映像ブロックを再構成し得る。再構成ユニット212が、再構成された残差映像ブロックを、予測ユニット202によって生成された1つ以上の予測映像ブロックからの対応するサンプルに足し合わせて、バッファ213に記憶される現在ブロックに関する再構成映像ブロックを生成し得る。
再構成ユニット212が映像ブロックを再構成した後、映像ブロック内の映像ブロッキングアーチファクトを低減させるために、ループフィルタリング演算が実行され得る。
エントロピー符号化ユニット214が、ビデオエンコーダ200の他の機能コンポーネントからデータを受信し得る。エントロピー符号化ユニット214がデータを受信すると、エントロピー符号化ユニット214は、1つ以上のエントロピー符号化演算を実行してエントロピー符号化データを生成し、そして、エントロピー符号化データを含むビットストリームを出力し得る。
図36は、図34に示したシステム100内のビデオデコーダ124とし得るものであるビデオデコーダ300の一例を示すブロック図である。
ビデオデコーダ300は、この開示の技術のうちのいずれか又は全てを実行するように構成され得る。図36の例において、ビデオデコーダ300は、複数の機能コンポーネントを含んでいる。この開示に記載される技術は、ビデオデコーダ300の様々なコンポーネントの間で共有され得る。一部の例において、プロセッサが、この開示に記載される技術のうちのいずれか又は全てを実行するように構成され得る。
図36の例において、ビデオデコーダ300は、エントロピー復号ユニット301、動き補償ユニット302、イントラ予測ユニット303、逆量子化ユニット304、逆変換ユニット305、再構成ユニット306、及びバッファ307を含んでいる。ビデオデコーダ300は、一部の例において、ビデオエンコーダ200(図35)に関して説明した符号化パスに対して概ね逆の復号パスを実行し得る。
エントロピー復号ユニット301が符号化ビットストリームを取り出し得る。符号化ビットストリームは、エントロピー符号化された映像データ(例えば、映像データの符号化ブロック)を含み得る。エントロピー復号ユニット301はエントロピー符号化映像データを復号することができ、エントロピー復号された映像データから、動き補償ユニット302が、動きベクトル、動きベクトル精度、参照ピクチャリストインデックス、及び他のモーション情報を含む動き情報を決定し得る。動き補償ユニット302は、例えば、AMVP及びマージモードを実行することによって、そのような情報を決定し得る。
動き補償ユニット302は、場合により補間フィルタに基づく補間を実行して、動き補償ブロックを生成し得る。サブピクセル精度で使用される補間フィルタに関する識別子が構文要素に含められ得る。
動き補償ユニット302は、映像ブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルに対する補間値を計算し得る。動き補償ユニット302は、ビデオエンコーダ200によって使用された補間フィルタを、受信した構文情報に従って決定し、その補間フィルタを用いて予測ブロックを生成し得る。
動き補償ユニット302は、構文情報の一部を用いて、符号化映像シーケンスのフレーム及び/又はスライスを符号化するのに使用されるブロックのサイズ、符号化映像シーケンスのピクチャの各マクロブロックがどのように分割されるかを記述するパーティション情報、各パーティションがどのように符号化されるかを指し示すモード、各インター符号化ブロックに関する1つ又は複数の参照フレーム(及び参照フレームリスト)、及び符号化映像シーケンスを復号するための他の情報を決定し得る。
イントラ予測ユニット303は、例えばビットストリーム内で受信した、イントラ予測モードを用いて、空間的に隣接するブロックから予測ブロックを形成し得る。逆量子化ユニット303が、ビットストリーム内で提供されてエントロピー復号ユニット301によって復号された量子化された映像ブロック係数を逆量子化する、すなわち、量子化解除する。逆変換ユニット303が逆変換を適用する。
再構成ユニット306が、残差ブロックを、動き補償ユニット302又はイントラ予測ユニット303によって生成された対応する予測ブロックと足し合わせて、復号ブロックを形成し得る。望まれる場合、ブロックアーチファクトを除去するために復号ブロックをフィルタリングするよう、デブロッキングフィルタも適用され得る。そして、復号映像ブロックがバッファ307に格納され、それが、後の動き補償/イントラ予測のための参照ブロックを提供し、また、表示装置上での提示のための復号映像を生成する。
この特許文献において、用語“サンプル(sample又はsamples)”は、映像ブロックの1つ以上のサンプルを指すことができる。以上から、理解されることには、ここに開示された技術の特定の実施形態を説明の目的でここに記述したが、発明の範囲から逸脱することなく様々な変更が為され得る。従って、ここに開示された技術は、添付の請求項による場合を除き、限定されるものではない。
開示される及びその他のソリューション、この文書に記述される例、実施形態、モジュール及び機能動作は、この文書に開示されている構造及びそれらに構造的に均等なものを含め、デジタル電子回路、又はコンピュータソフトウェア、ファームウェア、若しくはハードウェアにて、あるいはこれらのうちの1つ以上の組み合わせにて実施されることができる。開示される及びその他の実施形態は、1つ以上のコンピュータプログラムプロダクトとして実装されることができ、すなわち、データ処理装置による実行のための、又はデータ処理装置の動作を制御するための、コンピュータ読み取り可能媒体にエンコードされたコンピュータプログラム命令の1つ以上のモジュールとして実装されることができる。コンピュータ読み取り可能媒体は、機械読み取り可能記憶装置、機械読み取り可能記憶基板、メモリ装置、機械読み取り可能な伝搬信号を生じさせる物質の組成、又はそれらのうちの1つ以上の組み合わせとすることができる。用語“データ処理装置”は、例として、プログラマブルプロセッサ、コンピュータ、又は複数のプロセッサ若しくはコンピュータを含め、データを処理するあらゆる装置、デバイス、及び機械を包含する。装置は、ハードウェアに加えて、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はそれらのうちの1つ以上の組み合わせを構成するコードといった、問題としているコンピュータプログラムのための実行環境を作り出すコードを含むことができる。伝播される信号は、人工的に生成される信号であり、例えば、適切な受信器装置への伝送のために情報をエンコードするために生成される機械生成による電気信号、光信号、又は電磁信号である。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる)は、コンパイル型又はインタープリタ型の言語を含め、如何なる形態のプログラミング言語で記述されてもよく、また、スタンドアロンプログラムとして、又はコンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチン、若しくは他のユニットとして、を含め、如何なる形態で展開されてもよい。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応するわけではない。プログラムは、他のプログラム若しくはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1つ以上のスクリプト)に格納されてもよいし、問題としているプログラムに専用の単一ファイルに格納されてもよいし、あるいは、複数の連携ファイル(例えば、1つ以上のモジュール、サブプログラム、又はコードの部分を格納するファイル)に格納されてもよい。コンピュータプログラムは、1つのコンピュータ上で実行されるように展開されてもよいし、あるいは、一箇所に配置された、又は複数箇所に分散されて通信ネットワークによって相互接続された、複数のコンピュータ上で実行されるように展開されてもよい。
この文書に記載されるプロセス及び論理フローは、入力データについて演算して出力を生成することによって機能を実行するよう、1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行されることができる。これらのプロセス及び論理フローはまた、例えばFPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)といった専用の論理回路によって実行されることもでき、また、装置も、そのような専用の論理回路として実装されることができる。
コンピュータプログラムの実行に適したプロセッサは、例として、汎用及び専用の双方のマイクロプロセッサ、及び任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般に、プロセッサは、読み出し専用メモリ若しくはランダムアクセスメモリ又はこれらの両方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令及びデータを格納する1つ以上のメモリデバイスである。一般に、コンピュータはまた、例えば磁気ディスク、磁気光ディスク、又は光ディスクといった、データを格納するための1つ以上の大容量ストレージ装置を含み、あるいは、大容量ストレージ装置からデータを受信したり、それにデータを転送したりするように動作的に結合される。しかしながら、コンピュータは、そのような装置を有する必要はない。コンピュータプログラム命令及びデータを格納するのに適したコンピュータ読み取り可能媒体は、例として、例えばEPROM、EEPROM、及びフラッシュメモリデバイスといった半導体メモリデバイス、例えば内部ハードディスク又はリムーバブルディスクといった磁気ディスク;光磁気ディスク;並びにCD ROM及びDVD-ROMディスクを含め、あらゆる形態の不揮発性メモリ、媒体及びメモリデバイスを含む。プロセッサ及びメモリは、専用の論理回路によって補われたり、それに組み込まれたりしてもよい。
この特許文書は数多くの詳細が含んでいるが、それらは、いずれかの主題又は特許請求され得るものの範囲についての限定として解釈されるべきでなく、むしろ、特定の技術の特定の実施形態に特有とし得る機構の説明として解釈されるべきである。別々の実施形態の文脈でこの特許文書に記載されている特定の複数の機構が、単一の実施形態にて組み合わせて実装されることもできる。逆に、単一の実施形態の文脈で説明されている種々の機構が、複数の実施形態にて別々に、又は何らかの好適なサブコンビネーションで実装されることもできる。さらには、複数の機構が、特定の組み合わせにて作用するものとして上述され、さらには当初はそのように特許請求されていることがあり得るが、場合によって、特許請求されている組み合わせからの1以上の機構を組み合わせから除くこともでき、また、特許請求されている組み合わせをサブコンビネーション又はサブコンビネーションのバリエーションへと導いてもよい。
同様に、図面には処理が特定の順序で示されるが、このことは、所望の結果を達成するために、それらの動作が図示される特定の順序で若しくは順番に実行されること、又は図示される全ての処理が実行されることを要求するものとして理解されるべきでない。また、この特許文書に記載されている実施形態における種々のシステムコンポーネントの分離は、全ての実施形態においてそのような分離を必要とするものとして理解されるべきでない。
ほんの少しの実装及び例を記載したのみであり、この特許文書に記載及び図示されているものに基づいて、他の実装、拡張及び変形が行われ得る。

Claims (19)

  1. 映像データを処理する方法であって、
    映像のアフィン符号化映像ブロックについて、少なくとも1つの制御点動きベクトルを決定するステップと、
    前記少なくとも1つの制御点動きベクトルに基づいて、前記アフィン符号化映像ブロックの位置(x,y)を有するサブブロックについての動きベクトルを決定するステップと、
    前記少なくとも1つの制御点動きベクトルに基づいて、前記位置(x,y)について第1方向における第1の動き変位Vx(x,y)及び第2方向における第2の動き変位Vy(x,y)を決定するステップと、
    前記位置(x,y)について前記第1方向における第1の勾配成分Gx(x,y)及び前記第2方向における第2の勾配成分Gy(x,y)を決定するステップと、
    前記位置(x,y)について導出された予測サンプルP(x,y)を、前記第1の勾配成分Gx(x,y)、前記第2の勾配成分Gy(x,y)、前記第1の動き変位Vx(x,y)、及び前記第2の動き変位Vy(x,y)で修正することによって、前記位置(x,y)について精緻化予測サンプルP’(x,y)を決定するステップであり、前記予測サンプルP(x,y)は、前記サブブロックについての前記動きベクトルに基づいて導出される、ステップと、
    前記精緻化予測サンプルP’(x,y)を用いて、前記アフィン符号化映像ブロックと前記映像のビットストリームとの間で変換を実行するステップと、
    を有し、
    前記第1の動き変位Vx(x,y)及び前記第2の動き変位Vy(x,y)の精度が、前記サブブロックについての前記動きベクトルの精度と異なる、
    方法。
  2. 前記アフィン符号化映像ブロックの色成分はルマ成分である、請求項1に記載の方法。
  3. 前記第1の動き変位Vx(x,y)及び前記第2の動き変位Vy(x,y)の前記精度は1/32ピクセル精度である、請求項1又は2に記載の方法。
  4. 前記サブブロックについての前記動きベクトルの前記精度は1/16ピクセル精度である、請求項1乃至3のいずれか一項に記載の方法。
  5. Vx(x,y)及びVy(x,y)は、少なくとも前記位置(x,y)及び前記サブブロックの中心位置に基づいて決定される、請求項1乃至4のいずれか一項に記載の方法。
  6. Vx(x,y)及びVy(x,y)は、少なくとも前記位置(x,y)及び前記サブブロックのサイズに基づいて決定される、請求項1乃至4のいずれか一項に記載の方法。
  7. Vx(x,y)=a×(x-xc)+b×(y-yc)であり、
    Vy(x,y)=c×(x-xc)+d×(y-yc)であり、
    (xc,yc)は前記サブブロックの中心位置又はサイズに基づき、
    a、b、c及びdはアフィンパラメータである、
    請求項1乃至4のいずれか一項に記載の方法。
  8. 前記アフィン符号化映像ブロックが4パラメータアフィンモードを用いて符号化されることに応答して、c=-b且つd=aである、請求項7に記載の方法。
  9. a、b、c及びdは、前記制御点動きベクトル、前記アフィン符号化映像ブロックの幅(W)、及び前記アフィン符号化映像ブロックの高さ(H)から導出され得る、請求項7に記載の方法。
  10. Figure 2024015289000030
    であり、
    mv、mv、及びmvは前記制御点動きベクトルであり、
    上付き文字hを有する動きベクトル成分は、該動きベクトル成分が前記第1方向にあることを指し示し、
    上付き文字vを有する別の動きベクトル成分は、該別の動きベクトル成分が前記第2方向にあることを指し示し、
    前記第1方向は前記第2方向に直交する、
    請求項9に記載の方法。
  11. a、b、c及びdはシフトされる、請求項10に記載の方法。
  12. 当該方法はルマ成分に対して使用され、クロマ成分に対しては使用されない、請求項1乃至11のいずれか一項に記載の方法。
  13. 当該方法はアフィンモードに対して使用され、非アフィンモードに対しては使用されない、請求項1乃至12のいずれか一項に記載の方法。
  14. 前記アフィン符号化映像ブロックには、デコーダ側動きベクトル精緻化法及び/又は双方向オプティカルフロー法は適用されない、請求項1乃至13のいずれか一項に記載の方法。
  15. 前記変換は、前記アフィン符号化映像ブロックを前記ビットストリームへと符号化することを有する、請求項1乃至14のいずれか一項に記載の方法。
  16. 前記変換は、前記ビットストリームから前記アフィン符号化映像ブロックを復号することを有する、請求項1乃至14のいずれか一項に記載の方法。
  17. プロセッサと、命令を有する非一時的なメモリと、を有する映像データを処理する装置であって、前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
    映像のアフィン符号化映像ブロックについて、少なくとも1つの制御点動きベクトルを決定させ、
    前記少なくとも1つの制御点動きベクトルに基づいて、前記アフィン符号化映像ブロックの位置(x,y)を有するサブブロックについての動きベクトルを決定させ、
    前記少なくとも1つの制御点動きベクトルに基づいて、前記位置(x,y)について第1方向における第1の動き変位Vx(x,y)及び第2方向における第2の動き変位Vy(x,y)を決定させ、
    前記位置(x,y)について前記第1方向における第1の勾配成分Gx(x,y)及び前記第2方向における第2の勾配成分Gy(x,y)を決定させ、
    前記位置(x,y)について導出された予測サンプルP(x,y)を、前記第1の勾配成分Gx(x,y)、前記第2の勾配成分Gy(x,y)、前記第1の動き変位Vx(x,y)、及び前記第2の動き変位Vy(x,y)で修正することによって、前記位置(x,y)について精緻化予測サンプルP’(x,y)をさせ、前記予測サンプルP(x,y)は、前記サブブロックについての前記動きベクトルに基づいて導出され、
    前記精緻化予測サンプルP’(x,y)を用いて、前記アフィン符号化映像ブロックと前記映像のビットストリームとの間で変換を実行させ、
    前記第1の動き変位Vx(x,y)及び前記第2の動き変位Vy(x,y)の精度が、前記サブブロックについての前記動きベクトルの精度と異なる、
    装置。
  18. 命令を格納した非一時的なコンピュータ読み取り可能記憶媒体であって、前記命令は、プロセッサに、
    映像のアフィン符号化映像ブロックについて、少なくとも1つの制御点動きベクトルを決定させ、
    前記少なくとも1つの制御点動きベクトルに基づいて、前記アフィン符号化映像ブロックの位置(x,y)を有するサブブロックについての動きベクトルを決定させ、
    前記少なくとも1つの制御点動きベクトルに基づいて、前記位置(x,y)について第1方向における第1の動き変位Vx(x,y)及び第2方向における第2の動き変位Vy(x,y)を決定させ、
    前記位置(x,y)について前記第1方向における第1の勾配成分Gx(x,y)及び前記第2方向における第2の勾配成分Gy(x,y)を決定させ、
    前記位置(x,y)について導出された予測サンプルP(x,y)を、前記第1の勾配成分Gx(x,y)、前記第2の勾配成分Gy(x,y)、前記第1の動き変位Vx(x,y)、及び前記第2の動き変位Vy(x,y)で修正することによって、前記位置(x,y)について精緻化予測サンプルP’(x,y)をさせ、前記予測サンプルP(x,y)は、前記サブブロックについての前記動きベクトルに基づいて導出され、
    前記精緻化予測サンプルP’(x,y)を用いて、前記アフィン符号化映像ブロックと前記映像のビットストリームとの間で変換を実行させ、
    前記第1の動き変位Vx(x,y)及び前記第2の動き変位Vy(x,y)の精度が、前記サブブロックについての前記動きベクトルの精度と異なる、
    コンピュータ読み取り可能記憶媒体。
  19. 映像処理装置により実行される方法によって生成された映像のビットストリームを格納した非一時的なコンピュータ読み取り可能記録媒体であって、前記方法は、
    映像のアフィン符号化映像ブロックについて、少なくとも1つの制御点動きベクトルを決定するステップと、
    前記少なくとも1つの制御点動きベクトルに基づいて、前記アフィン符号化映像ブロックの位置(x,y)を有するサブブロックについての動きベクトルを決定するステップと、
    前記少なくとも1つの制御点動きベクトルに基づいて、前記位置(x,y)について第1方向における第1の動き変位Vx(x,y)及び第2方向における第2の動き変位Vy(x,y)を決定するステップと、
    前記位置(x,y)について前記第1方向における第1の勾配成分Gx(x,y)及び前記第2方向における第2の勾配成分Gy(x,y)を決定するステップと、
    前記位置(x,y)について導出された予測サンプルP(x,y)を、前記第1の勾配成分Gx(x,y)、前記第2の勾配成分Gy(x,y)、前記第1の動き変位Vx(x,y)、及び前記第2の動き変位Vy(x,y)で修正することによって、前記位置(x,y)について精緻化予測サンプルP’(x,y)を決定するステップであり、前記予測サンプルP(x,y)は、前記サブブロックについての前記動きベクトルに基づいて導出される、ステップと、
    前記精緻化予測サンプルP’(x,y)を用いて前記ビットストリームを生成するステップと、
    を有し、
    前記第1の動き変位Vx(x,y)及び前記第2の動き変位Vy(x,y)の精度が、前記サブブロックについての前記動きベクトルの精度と異なる、
    コンピュータ読み取り可能記録媒体。

JP2023207339A 2019-03-17 2023-12-08 オプティカルフローベースの予測精緻化の計算 Pending JP2024015289A (ja)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
CNPCT/CN2019/078411 2019-03-17
CN2019078411 2019-03-17
CN2019078501 2019-03-18
CNPCT/CN2019/078501 2019-03-18
CNPCT/CN2019/078719 2019-03-19
CN2019078719 2019-03-19
CNPCT/CN2019/079961 2019-03-27
CN2019079961 2019-03-27
JP2021555421A JP2022525876A (ja) 2019-03-17 2020-03-17 オプティカルフローベースの予測精緻化の計算
PCT/CN2020/079675 WO2020187199A1 (en) 2019-03-17 2020-03-17 Calculation of prediction refinement based on optical flow

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2021555421A Division JP2022525876A (ja) 2019-03-17 2020-03-17 オプティカルフローベースの予測精緻化の計算

Publications (1)

Publication Number Publication Date
JP2024015289A true JP2024015289A (ja) 2024-02-01

Family

ID=72518951

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2021555421A Pending JP2022525876A (ja) 2019-03-17 2020-03-17 オプティカルフローベースの予測精緻化の計算
JP2023207339A Pending JP2024015289A (ja) 2019-03-17 2023-12-08 オプティカルフローベースの予測精緻化の計算

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2021555421A Pending JP2022525876A (ja) 2019-03-17 2020-03-17 オプティカルフローベースの予測精緻化の計算

Country Status (6)

Country Link
US (2) US11343529B2 (ja)
EP (1) EP3925220A4 (ja)
JP (2) JP2022525876A (ja)
KR (1) KR102659481B1 (ja)
CN (3) CN113574869B (ja)
WO (2) WO2020187199A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10715818B2 (en) * 2016-08-04 2020-07-14 Intel Corporation Techniques for hardware video encoding
US11343525B2 (en) * 2019-03-19 2022-05-24 Tencent America LLC Method and apparatus for video coding by constraining sub-block motion vectors and determining adjustment values based on constrained sub-block motion vectors
CN113906738B (zh) 2019-05-21 2024-01-12 北京字节跳动网络技术有限公司 仿射模式的自适应运动矢量差分辨率
WO2020257484A1 (en) * 2019-06-21 2020-12-24 Vid Scale, Inc. Precision refinement for motion compensation with optical flow
CN113411608B (zh) * 2019-06-21 2022-05-31 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN114631321B (zh) 2019-10-18 2024-04-12 北京字节跳动网络技术有限公司 子图片与环路滤波之间的相互影响
CN115349254A (zh) * 2020-03-23 2022-11-15 抖音视界有限公司 控制编解码视频中不同级别的去块滤波
CN116491120A (zh) * 2020-10-14 2023-07-25 北京达佳互联信息技术有限公司 用于仿射运动补偿预测细化的方法和装置
US11949863B2 (en) * 2021-08-02 2024-04-02 Tencent America LLC Geometric partition mode with intra block copy
US20230119972A1 (en) * 2021-10-01 2023-04-20 Mediatek Inc. Methods and Apparatuses of High Throughput Video Encoder
CN114399539A (zh) * 2022-01-14 2022-04-26 合肥英睿系统技术有限公司 运动目标的检测方法、设备以及存储介质
US20230336737A1 (en) * 2022-04-18 2023-10-19 Tencent America LLC Sub-block based temporal motion vector predictor with an motion vector offset
WO2024012052A1 (en) * 2022-07-15 2024-01-18 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing
WO2024027784A1 (en) * 2022-08-05 2024-02-08 Mediatek Inc. Method and apparatus of subblock-based temporal motion vector prediction with reordering and refinement in video coding
WO2024054029A1 (ko) * 2022-09-06 2024-03-14 주식회사 케이티 영상 부호화/복호화 방법 및 비트스트림을 저장하는 기록 매체

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE602004002455T2 (de) * 2004-04-30 2007-01-11 Matsushita Electric Industrial Co., Ltd., Kadoma Bewegungsvektorschätzung durch adaptive zeitliche Vorhersage
US9615089B2 (en) * 2012-12-26 2017-04-04 Samsung Electronics Co., Ltd. Method of encoding and decoding multiview video sequence based on adaptive compensation of local illumination mismatch in inter-frame prediction
US9877025B2 (en) * 2013-07-12 2018-01-23 British Broadcasting Corporation Video encoding and decoding with prediction at higher precision
US10327002B2 (en) * 2014-06-19 2019-06-18 Qualcomm Incorporated Systems and methods for intra-block copy
WO2016008157A1 (en) * 2014-07-18 2016-01-21 Mediatek Singapore Pte. Ltd. Methods for motion compensation using high order motion model
CN104125470B (zh) * 2014-08-07 2017-06-06 成都瑞博慧窗信息技术有限公司 一种视频数据传输方法
WO2017034089A1 (ko) * 2015-08-23 2017-03-02 엘지전자(주) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
MX2018002209A (es) * 2015-09-01 2018-03-23 Ericsson Telefon Ab L M Mejora espacial de bloques de transformacion.
CN107925775A (zh) * 2015-09-02 2018-04-17 联发科技股份有限公司 基于双向预测光流技术的视频编解码的运动补偿方法及装置
CN114827601A (zh) * 2015-09-11 2022-07-29 株式会社Kt 对视频进行解码的方法和设备以及对视频进行编码的方法和设备
CN105338354B (zh) * 2015-09-29 2019-04-05 北京奇艺世纪科技有限公司 一种运动向量估计方法和装置
KR20180075483A (ko) * 2015-11-24 2018-07-04 삼성전자주식회사 픽셀의 기울기에 기초하여 인트라 또는 인터 예측 블록을 후처리하는 방법 및 장치
CN108781294B (zh) * 2016-02-05 2021-08-31 联发科技股份有限公司 视频数据的运动补偿方法及装置
WO2017195914A1 (ko) * 2016-05-11 2017-11-16 엘지전자 주식회사 비디오 코딩 시스템에서 인터 예측 방법 및 장치
US10560712B2 (en) * 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
EP3264768A1 (en) * 2016-06-30 2018-01-03 Thomson Licensing Method and apparatus for video coding with adaptive motion information refinement
WO2018113658A1 (en) * 2016-12-22 2018-06-28 Mediatek Inc. Method and apparatus of motion refinement for video coding
US10931969B2 (en) 2017-01-04 2021-02-23 Qualcomm Incorporated Motion vector reconstructions for bi-directional optical flow (BIO)
US20180199057A1 (en) * 2017-01-12 2018-07-12 Mediatek Inc. Method and Apparatus of Candidate Skipping for Predictor Refinement in Video Coding
US10701366B2 (en) * 2017-02-21 2020-06-30 Qualcomm Incorporated Deriving motion vector information at a video decoder
US10523964B2 (en) * 2017-03-13 2019-12-31 Qualcomm Incorporated Inter prediction refinement based on bi-directional optical flow (BIO)
US10701390B2 (en) * 2017-03-14 2020-06-30 Qualcomm Incorporated Affine motion information derivation
US10805630B2 (en) * 2017-04-28 2020-10-13 Qualcomm Incorporated Gradient based matching for motion search and derivation
CN107277316B (zh) 2017-06-12 2020-05-12 京东方科技集团股份有限公司 显示装置及其制造方法
US10602180B2 (en) * 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
US10904565B2 (en) 2017-06-23 2021-01-26 Qualcomm Incorporated Memory-bandwidth-efficient design for bi-directional optical flow (BIO)
CN110870314B (zh) 2017-06-26 2024-04-02 交互数字Vc控股公司 用于运动补偿的多个预测器候选
KR20240044549A (ko) 2017-07-03 2024-04-04 브이아이디 스케일, 인크. 양방향 광학 흐름에 기반한 모션 보상 예측
WO2019026807A1 (en) * 2017-08-03 2019-02-07 Sharp Kabushiki Kaisha SYSTEMS AND METHODS FOR PARTITIONING VIDEO BLOCKS IN INTER VIDEO PREDICTION WAFER
CN107623850B (zh) * 2017-09-26 2019-11-22 杭州电子科技大学 一种基于时空相关性的快速屏幕内容编码方法
US10986360B2 (en) * 2017-10-16 2021-04-20 Qualcomm Incorproated Various improvements to FRUC template matching
US11012715B2 (en) * 2018-02-08 2021-05-18 Qualcomm Incorporated Intra block copy for video coding
EP3861731A4 (en) 2018-11-05 2021-11-24 Beijing Bytedance Network Technology Co. Ltd. INTERPOLATION TO INTERPRDICTION WITH REFINEMENT
DK3922025T3 (da) 2019-02-07 2023-07-24 Vid Scale Inc Systemer, apparat og fremgangsmåder til inter-forudsigelsesforfinelse med optisk flow
US11089325B2 (en) * 2019-02-08 2021-08-10 Qualcomm Incorporated Constrained affine motion inheritance for video coding
US20200296405A1 (en) * 2019-03-14 2020-09-17 Qualcomm Incorporated Affine motion compensation refinement using optical flow

Also Published As

Publication number Publication date
CN117478876A (zh) 2024-01-30
US20220007050A1 (en) 2022-01-06
JP2022525876A (ja) 2022-05-20
KR20210137463A (ko) 2021-11-17
CN113597766B (zh) 2023-11-10
CN113574869A (zh) 2021-10-29
US20210392367A1 (en) 2021-12-16
US11343529B2 (en) 2022-05-24
EP3925220A4 (en) 2022-06-29
WO2020187199A1 (en) 2020-09-24
CN113574869B (zh) 2024-01-05
CN113597766A (zh) 2021-11-02
US11973973B2 (en) 2024-04-30
KR102659481B1 (ko) 2024-04-23
WO2020187198A1 (en) 2020-09-24
EP3925220A1 (en) 2021-12-22

Similar Documents

Publication Publication Date Title
KR102659481B1 (ko) 광학 흐름에 기초한 예측 정제의 계산
CN112868240B (zh) 并置的局部照明补偿和修改的帧间预测编解码
CN113424525B (zh) 解码器侧细化工具的尺寸选择性应用
CN113287317B (zh) 并置的局部照明补偿和修改的帧间编解码工具
WO2020147745A1 (en) Motion candidate lists that use local illumination compensation
CN110662041B (zh) 视频比特流处理的方法和装置,存储视频比特流的方法和非暂时性计算机可读记录介质
CN114128258B (zh) 视频编解码中的变换块尺寸的限制
JP2024008948A (ja) 動き候補リスト構築プロセスの条件付き実行
CN114450959A (zh) 视频编解码中的几何分割模式
KR102627821B1 (ko) 이웃 블록 정보를 사용한 모션 후보 리스트 구성
CN115918080A (zh) 视频编解码的仿射预测改进
WO2021036982A1 (en) Coded representation of history-based motion vector prediction tables

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231212