JP2024041558A - 動画像復号装置および動画像符号化装置 - Google Patents

動画像復号装置および動画像符号化装置 Download PDF

Info

Publication number
JP2024041558A
JP2024041558A JP2022146436A JP2022146436A JP2024041558A JP 2024041558 A JP2024041558 A JP 2024041558A JP 2022146436 A JP2022146436 A JP 2022146436A JP 2022146436 A JP2022146436 A JP 2022146436A JP 2024041558 A JP2024041558 A JP 2024041558A
Authority
JP
Japan
Prior art keywords
oob
prediction
unit
picture
isoob
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
JP2022146436A
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.)
Sharp Corp
Original Assignee
Sharp Corp
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 Sharp Corp filed Critical Sharp Corp
Priority to JP2022146436A priority Critical patent/JP2024041558A/ja
Priority to US18/104,793 priority patent/US20240098272A1/en
Priority to AU2023200531A priority patent/AU2023200531A1/en
Priority to EP23154690.4A priority patent/EP4340364A1/en
Priority to CN202310128572.7A priority patent/CN117714713A/zh
Priority to KR1020230019325A priority patent/KR20240037137A/ko
Publication of JP2024041558A publication Critical patent/JP2024041558A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/172Methods 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 picture, frame or field
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/182Methods 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 pixel
    • 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/55Motion estimation with spatial constraints, e.g. at image or region borders
    • 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/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】符号化効率を向上させることができる動画像符号化・復号装置を提供する。【解決手段】動画像復号装置は、参照ブロックの座標をピクチャの座標と比較することで、参照ブロックがOOB処理の対象であるか否かを判定するOOB判定部と、参照ブロックに含まれる画素の座標をピクチャの座標と比較することで、各画素の利用可否を表すマスクデータ導出するOOBマスク導出部を備え、前記OOB判定部は、上記参照ブロックが含まれる参照ピクチャに適用される処理の有無を用いて上記参照ブロックがOOB処理対象であるか否かを判定することを特徴とする。【選択図】図4

Description

本発明の実施形態は、動画像復号装置および動画像符号化装置に関する。
動画像を効率的に伝送または記録するために、動画像を符号化することによって符号化データを生成する動画像符号化装置、および、当該符号化データを復号することによって復号画像を生成する動画像復号装置が用いられている。
具体的な動画像符号化方式としては、例えば、H.264/AVCやHEVC(High-Efficiency Video Coding)、Versatile Video Coding (VVC)方式などが挙げられる。
このような動画像符号化方式においては、動画像を構成する画像(ピクチャ)は、画像を分割することにより得られるスライス、スライスを分割することにより得られる符号化ツリーユニット(CTU:Coding Tree Unit)、符号化ツリーユニットを分割することで得られる符号化単位(符号化ユニット(Coding Unit:CU)と呼ばれることもある)、及び、符号化単位を分割することより得られる変換ユニット(TU:Transform Unit)からなる階層構造により管理され、CU毎に符号化/復号される。
また、このような動画像符号化方式においては、通常、入力画像を符号化/復号することによって得られる局所復号画像に基づいて予測画像が生成され、当該予測画像を入力画像(原画像)から減算して得られる予測誤差(「差分画像」または「残差画像」と呼ぶこともある)が符号化される。予測画像の生成方法としては、画面間予測(インター予測)、および、画面内予測(イントラ予測)が挙げられる。VVCでは、図8(a)のように、動きベクトルの座標をラップアラウンド(wrap-around)処理して、水平方向の座標系をピクチャの左端と右端を連続させて動き補償することができる。従って、360度パノラマ画像や360度画像のようにピクチャの左右端が空間的に連続する映像にラップアラウンド処理を適用すると、符号化効率を向上させることができる。また、VVCでは、図8(b)のようにピクチャ単位で解像度を変化させ動き補償する参照ピクチャリサンプリング(RPR: Reference Picture Resampling)処理が可能である。インターネット上での動画像配信のような伝送レートが変動するサービスにRPR処理を適用すると、画質を向上させることができる。
また、非特許文献1には、参照画像のピクチャ外の領域を含む双予測の一方の参照ブロックの一部あるいは全ての領域を、他方の参照ブロックの一部あるいは全ての領域で代替するOOB(Out-Of-Boundary)処理技術が開示されている。
"AHG12: Enhanced bi-directional motion compensation", Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29 25th Meeting, by teleconference, JVET-Y0125
非特許文献1に記載の方法では、参照ブロックがピクチャ外の領域を含む場合、ピクチャ外の領域を示すマスクを導出しつつ、双予測画像を導出する。従って計算量が多いという課題がある。
上記の課題を解決するために、本発明の一態様に係る動画像復号装置は、
参照ブロックの座標をピクチャの座標と比較することで、参照ブロックがOOB処理の対象であるかどうかを判定するOOB判定部と、参照ブロックに含まれる画素の座標とピクチャ境界もしくは領域境界の座標と比較することで、各画素の利用可否を表すマスクデータを導出するOOBマスク導出部を備え、前記OOB判定部は、上記参照ブロックが含まれる参照ピクチャに適用される処理の有無を用いて上記参照ブロックがOOB処理対象であるか否かを判定することを特徴とする。
本発明の一態様に係る動画像復号装置において、前記OOB判定部は、L0参照領域の有効領域とL1参照領域の有効領域を比べ、参照領域の有効領域が大きい参照ピクチャに対しOOB判定を無効とすることを特徴とする。
本発明の態様によれば、動画像符号化・復号処理においてOOB処理にかかる計算量を削減することができる。
本実施形態に係る画像伝送システムの構成を示す概略図である。 符号化ストリームのデータの階層構造を示す図である。 動画像復号装置の構成を示す概略図である。 インター予測画像生成部の構成を示す概略図である。 インター予測パラメータ導出部の構成を示す概略図である。 動画像復号装置の概略的動作を説明するフローチャートである。 動画像符号化装置の構成を示すブロック図である。 従来技術のラップアラウンド処理と参照ピクチャリサンプリング処理の例を示す図である。 OOB処理の概略的動作を説明するフローチャートである。 OOB判定の例を示す概略図である。
(第1の実施形態)
以下、図面を参照しながら本発明の実施形態について説明する。
図1は、本実施形態に係る画像伝送システム1の構成を示す概略図である。
画像伝送システム1は、対象画像を符号化した符号化ストリームを伝送し、伝送された符号化ストリームを復号し画像を表示するシステムである。画像伝送システム1は、動画像符号化装置(画像符号化装置)11、ネットワーク21、動画像復号装置(画像復号装置)31、及び動画像表示装置(画像表示装置)41を含んで構成される。
動画像符号化装置11には画像Tが入力される。
ネットワーク21は、動画像符号化装置11が生成した符号化ストリームTeを動画像復号装置31に伝送する。ネットワーク21は、インターネット(Internet)、広域ネットワーク(WAN:Wide Area Network)、小規模ネットワーク(LAN:Local Area Network)またはこれらの組み合わせである。ネットワーク21は、必ずしも双方向の通信網に限らず、地上デジタル放送、衛星放送等の放送波を伝送する一方向の通信網であっても良い。また、ネットワーク21は、DVD(Digital Versatile Disc:登録商標)、BD(Blue-ray Disc:登録商標)等の符号化ストリームTeを記録した記憶媒体で代替されても良い。
動画像復号装置31は、ネットワーク21が伝送した符号化ストリームTeのそれぞれを復号し、復号した1または複数の復号画像Tdを生成する。
動画像表示装置41は、動画像復号装置31が生成した1または複数の復号画像Tdの全部または一部を表示する。動画像表示装置41は、例えば、液晶ディスプレイ、有機EL(Electro-luminescence)ディスプレイ等の表示デバイスを備える。ディスプレイの形態としては、据え置き、モバイル、HMD等が挙げられる。また、動画像復号装置31が高い処理能力を有する場合には、画質の高い画像を表示し、より低い処理能力しか有しない場合には、高い処理能力、表示能力を必要としない画像を表示する。
<演算子>
本明細書で用いる演算子を以下に記載する。
>>は右ビットシフト、<<は左ビットシフト、&はビットワイズAND、|はビットワイズOR、|=はOR代入演算子であり、||は論理和を示す。
x?y:zは、xが真(0以外)の場合にy、xが偽(0)の場合にzをとる3項演算子である。
Clip3(a,b,c)は、cをa以上b以下の値にクリップする関数であり、c<aの場合にはaを返し、c>bの場合にはbを返し、その他の場合にはcを返す関数である(ただし、a<=b)。
ClipH(o, W, x)は、x<0の場合x、x>W-1の場合x-o、それ以外の場合xを返す関数である。
sign(a)はa>0の場合1、a==0の場合1、a<0の場合-1を返す関数である。
abs(a)はaの絶対値を返す関数である。
Int(a)はaの整数値を返す関数である。
floor(a)はa以下の最大の整数を返す関数である。
ceil(a)はa以上の最小の整数を返す関数である。
a/dはdによるaの除算(小数点以下切り捨て)を表す。
<符号化ストリームTeの構造>
本実施形態に係る動画像符号化装置11および動画像復号装置31の詳細な説明に先立って、動画像符号化装置11によって生成され、動画像復号装置31によって復号される符号化ストリームTeのデータ構造について説明する。
図2は、符号化ストリームTeにおけるデータの階層構造を示す図である。符号化ストリームTeは、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。図2の(a)~(f)は、それぞれ、シーケンスSEQを既定する符号化ビデオシーケンス、ピクチャPICTを規定する符号化ピクチャ、スライスSを規定する符号化スライス、スライスデータを規定する符号化スライスデータ、符号化スライスデータに含まれる符号化ツリーユニット、符号化ツリーユニットに含まれる符号化ユニットを示す図である。
(符号化ビデオシーケンス)
符号化ビデオシーケンスでは、処理対象のシーケンスSEQを復号するために動画像復号装置31が参照するデータの集合が規定されている。シーケンスSEQは、図2に示すように、ビデオパラメータセット(Video Parameter Set)、シーケンスパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、Adaptation Parameter Set(APS)、ピクチャPICT、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。
ビデオパラメータセットVPSは、複数のレイヤから構成されている動画像において、複数の動画像に共通する符号化パラメータの集合および動画像に含まれる複数のレイヤおよび個々のレイヤに関連する符号化パラメータの集合が規定されている。
シーケンスパラメータセットSPSでは、対象シーケンスを復号するために動画像復号装置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの幅や高さが規定される。なお、SPSは複数存在してもよい。その場合、PPSから複数のSPSの何れかを選択する。
ピクチャパラメータセットPPSでは、対象シーケンス内の各ピクチャを復号するために動画像復号装置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの復号に用いられる量子化幅の基準値(pic_init_qp_minus26)や重み付き予測の適用を示すフラグ(weighted_pred_flag)が含まれる。なお、PPSは複数存在してもよい。その場合、対象シーケンス内の各ピクチャから複数のPPSの何れかを選択する。
(符号化ピクチャ)
符号化ピクチャでは、処理対象のピクチャPICTを復号するために動画像復号装置31が参照するデータの集合が規定されている。ピクチャPICTは、図2に示すように、スライス0~スライスNS-1を含む(NSはピクチャPICTに含まれるスライスの総数)。
なお、以下、スライス0~スライスNS-1のそれぞれを区別する必要が無い場合、符号の添え字を省略して記述することがある。また、以下に説明する符号化ストリームTeに含まれるデータであって、添え字を付している他のデータについても同様である。
(符号化スライス)
符号化スライスでは、処理対象のスライスSを復号するために動画像復号装置31が参照するデータの集合が規定されている。スライスは、図2に示すように、スライスヘッダ、および、スライスデータを含んでいる。
スライスヘッダには、対象スライスの復号方法を決定するために動画像復号装置31が参照する符号化パラメータ群が含まれる。スライスタイプを指定するスライスタイプ指定情報(slice_type)は、スライスヘッダに含まれる符号化パラメータの一例である。
スライスタイプ指定情報により指定可能なスライスタイプとしては、(1)符号化の際にイントラ予測のみを用いるIスライス、(2)符号化の際に単方向予測、または、イントラ予測を用いるPスライス、(3)符号化の際に単方向予測、双方向予測、または、イントラ予測を用いるBスライスなどが挙げられる。なお、インター予測は、単予測、双予測に限定されず、より多くの参照ピクチャを用いて予測画像を生成してもよい。以下、P、Bスライスと呼ぶ場合には、インター予測を用いることができるブロックを含むスライスを指す。
なお、スライスヘッダは、ピクチャパラメータセットPPSへの参照(pic_parameter_set_id)を含んでいても良い。
(符号化スライスデータ)
符号化スライスデータでは、処理対象のスライスデータを復号するために動画像復号装置31が参照するデータの集合が規定されている。スライスデータは、図2(d)に示すように、CTUを含んでいる。CTUは、スライスを構成する固定サイズ(例えば64x64)のブロックであり、最大符号化単位(LCU:Largest Coding Unit)と呼ぶこともある。
(符号化ツリーユニット)
図2には、処理対象のCTUを復号するために動画像復号装置31が参照するデータの集合が規定されている。CTUは、再帰的な4分木分割(QT(Quad Tree)分割)、2分木分割(BT(Binary Tree)分割)あるいは3分木分割(TT(Ternary Tree)分割)により、符号化処理の基本的な単位である符号化ユニットCUに分割される。BT分割とTT分割を合わせてマルチツリー分割(MT(Multi Tree)分割)と呼ぶ。再帰的な4分木分割により得られる木構造のノードのことを符号化ノード(Coding Node)と称する。4分木、2分木、及び3分木の中間ノードは、符号化ノードであり、CTU自身も最上位の符号化ノードとして規定される。また、最下位の符号化ノードは符号化ユニットとして規定される。
(符号化ユニット)
図2は、処理対象の符号化ユニットを復号するために動画像復号装置31が参照するデータの集合が規定されている。具体的には、CUは、CUヘッダCUH、予測パラメータ、変換パラメータ、量子化変換係数等から構成される。CUヘッダでは予測モード等が規定される。
予測処理は、CU単位で行われる場合と、CUをさらに分割したサブCU単位で行われる場合がある。CUとサブCUのサイズが等しい場合には、CU中のサブCUは1つである。CUがサブCUのサイズよりも大きい場合、CUはサブCUに分割される。たとえばCUが8x8、サブCUが4x4の場合、CUは水平2分割、垂直2分割からなる、4つのサブCUに分割される。
予測の種類(予測モード)は、イントラ予測(MODE_INTRA)と、インター予測(MODE_INTER)、イントラブロックコピー(MODE_IBC)がある。イントラ予測は、同一ピクチャ内の予測であり、インター予測は、互いに異なるピクチャ間(例えば、表示時刻間、レイヤ画像間)で行われる予測処理を指す。
変換・量子化処理はCU単位で行われるが、量子化変換係数は4x4等のサブブロック単位でエントロピー符号化してもよい。
(予測パラメータ)
予測画像は、ブロックに付随する予測パラメータによって導出される。予測パラメータには、イントラ予測とインター予測の予測パラメータがある。
(インター予測の予測パラメータ)
インター予測の予測パラメータについて説明する。インター予測パラメータは、予測リスト利用フラグpredFlagL0とpredFlagL1、参照ピクチャインデックスrefIdxL0とrefIdxL1、動きベクトルmvL0とmvL1から構成される。predFlagL0、predFlagL1は、参照ピクチャリスト(L0リスト、L1リスト)が用いられるか否かを示すフラグであり、値が1の場合に対応する参照ピクチャリストが用いられる。なお、本明細書中「XXであるか否かを示すフラグ」と記す場合、フラグが0以外(たとえば1)をXXである場合、0をXXではない場合とし、論理否定、論理積などでは1を真、0を偽と扱う(以下同様)。但し、実際の装置や方法では真値、偽値として他の値を用いることもできる。
インター予測パラメータを導出するためのシンタックス要素には、例えば、マージフラグmerge_flag(general_merge_flag)、マージインデックスmerge_idx、merge_subblock_flag、regulare_merge_flag、ciip_flag、merge_gpm_partition_idx、merge_gpm_idx0、merge_gpm_idx1、inter_pred_idc、参照ピクチャインデックスrefIdxLX、mvp_LX_idx、差分ベクトルmvdLX、動きベクトル精度モードamvr_modeがある。merge_subblock_flagはサブブロック単位のインター予測を用いるかを示すフラグである。regulare_merge_flagは通常マージモードあるいはMMVDが使われるかを示すフラグである。ciip_flagはCIIP(combined inter-picture merge and intra-picture prediction)モードを用いるか否かを示すフラグである。merge_gpm_partition_idxはGPMモードの分割形状を示すインデックスである。merge_gpm_idx0、merge_gpm_idx1はGPMモードのマージインデックスを示すインデックスである。inter_pred_idcはAMVPモードで用いる参照ピクチャを選択するためのインター予測識別子である。mvp_LX_idxは動きベクトルを導出するための予測ベクトルインデックスである。
(参照ピクチャリスト)
参照ピクチャリストは、参照ピクチャメモリ306に記憶された参照ピクチャからなるリストである。個々のCUでは、参照ピクチャリストRefPicListX(X=0または1)中のどのピクチャを実際に参照するかをrefIdxLXで指定する。なお、LXは、L0予測とL1予測を区別しない場合に用いられる記述方法であり、以降では、LXをL0、L1に置き換えることでL0リストに対するパラメータとL1リストに対するパラメータを区別する。
(マージ予測とAMVP予測)
予測パラメータの復号(符号化)方法には、マージ予測(merge)モード(マージモード)とAMVP(Advanced Motion Vector Prediction、適応動きベクトル予測)モードがあり、general_merge_flagは、これらを識別するためのフラグである。マージモードは、動きベクトル差分の一部もしくは全てを省略する予測モードであり、予測リスト利用フラグpredFlagLX、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXを符号化データに含めずに、既に処理した近傍ブロックの予測パラメータ等から導出するモードである。AMVPモードは、inter_pred_idc、refIdxLX、mvLXを符号化データに含めるモードである。なお、mvLXは、予測ベクトルmvpLXを識別するmvp_LX_idxと差分ベクトルmvdLXとして符号化される。また動きベクトル差分を省略・簡素化する予測モードの総称を一般マージモード(general merge mode)と呼び、general_merge_flagにより一般マージモードとAMVP予測を選択してもよい。
general_merge_flagが1の場合、別途regular_merge_flagを伝送してもよい。regular_merge_flagが1である場合に、通常マージモードもしくはMMVDを選択し、それ以外の場合にCIIPモードもしくはGPMモードを選択してもよい。CIIPモードはインター予測画像とイントラ予測画像の重み付け和により予測画像を生成する。GPMモードは、対象CUを線分で分割される2つの非矩形の予測単位として、予測画像を生成する。
inter_pred_idcは、参照ピクチャの種類および数を示す値であり、PRED_L0、PRED_L1、PRED_BIの何れかの値をとる。PRED_L0、PRED_L1は、各々L0リスト、L1リストで管理された1枚の参照ピクチャを用いる単予測を示す。PRED_BIはL0リストとL1リストで管理された2枚の参照ピクチャを用いる双予測を示す。
merge_idxは、処理が完了したブロックから導出される予測パラメータ候補(マージ候補)のうち、いずれの予測パラメータを対象ブロックの予測パラメータとして用いるかを示すインデックスである。
(動きベクトル)
mvLXは、異なる2つのピクチャ上のブロック間のシフト量を示す。mvLXに関する予測ベクトル、差分ベクトルを、それぞれmvpLX、mvdLXと呼ぶ。
(インター予測識別子inter_pred_idcと予測リスト利用フラグpredFlagLX)
inter_pred_idcと、predFlagL0、predFlagL1の関係は以下のとおりであり、相互に変換可能である。
inter_pred_idc = (predFlagL1<<1)+predFlagL0
predFlagL0 = inter_pred_idc & 1
predFlagL1 = inter_pred_idc >> 1
なお、インター予測パラメータは、予測リスト利用フラグを用いても良いし、インター予測識別子を用いてもよい。また、予測リスト利用フラグを用いた判定は、インター予測識別子を用いた判定に置き替えてもよい。逆に、インター予測識別子を用いた判定は、予測リスト利用フラグを用いた判定に置き替えてもよい。
(双予測biPredの判定)
双予測であるかのフラグbiPredは、2つの予測リスト利用フラグがともに1であるかによって導出できる。例えば以下の式で導出できる。
biPred = (predFlagL0==1 && predFlagL1==1)
あるいは、biPredは、インター予測識別子が2つの予測リスト(参照ピクチャ)を使うことを示す値であるか否かによっても導出できる。例えば以下の式で導出できる。
biPred = (inter_pred_idc==PRED_BI) ? 1 : 0
(動画像復号装置の構成)
本実施形態に係る動画像復号装置31(図3)の構成について説明する。
動画像復号装置31は、エントロピー復号部301、パラメータ復号部(予測画像復号装置)302、ループフィルタ305、参照ピクチャメモリ306、予測パラメータメモリ307、予測画像生成部(予測画像生成装置)308、逆量子化・逆変換部311、及び加算部312、予測パラメータ導出部320を含んで構成される。なお、後述の動画像符号化装置11に合わせ、動画像復号装置31にループフィルタ305が含まれない構成もある。
パラメータ復号部302は、さらに、ヘッダ復号部3020、CT情報復号部3021、及びCU復号部3022(予測モード復号部)を備えており、CU復号部3022はさらにTU復号部3024を備えている。これらを総称して復号モジュールと呼んでもよい。ヘッダ復号部3020は、符号化データからVPS、SPS、PPS、APSなどのパラメータセット情報、スライスヘッダ(スライス情報)を復号する。CT情報復号部3021は、符号化データからCTを復号する。CU復号部3022は符号化データからCUを復号する。TU復号部3024は符号化データからCUを復号する。
TU復号部3024は、TUに予測誤差が含まれている場合、符号化データからQP更新情報と量子化変換係数を復号する。QP更新情報は、量子化パラメータQPの予測値である量子化パラメータ予測値qPpredからの差分値である。
予測画像生成部308は、インター予測画像生成部309(図4)及びイントラ予測画像生成部310を含んで構成される。
予測パラメータ導出部320は、インター予測パラメータ導出部303(図5)及びイントラ予測パラメータ導出部を含んで構成される。
また、以降では処理の単位としてCTU、CUを使用した例を記載するが、この例に限らず、サブCU単位で処理をしてもよい。あるいはCTU、CUをブロック、サブCUをサブブロックと読み替え、ブロックあるいはサブブロック単位の処理としてもよい。
エントロピー復号部301は、外部から入力された符号化ストリームTeに対してエントロピー復号を行って、個々の符号(シンタックス要素)を復号する。エントロピー符号化には、シンタックス要素の種類や周囲の状況に応じて適応的に選択したコンテキスト(確率モデル)を用いてシンタックス要素を可変長符号化する方式と、あらかじめ定められた表、あるいは計算式を用いてシンタックス要素を可変長符号化する方式がある。
エントロピー復号部301は、復号した符号をパラメータ復号部302に出力する。復号した符号とは、例えば、予測モードpredMode、general_merge_flag、merge_idx、inter_pred_idc、refIdxLX、mvp_LX_idx、mvdLX、amvr_mode等である。どの符号を復号するかの制御は、パラメータ復号部302の指示に基づいて行われる。
(基本フロー)
図6は、動画像復号装置31の概略的動作を説明するフローチャートである。
(S1100:パラメータセット情報復号)ヘッダ復号部3020は、符号化データからVPS、SPS、PPSなどのパラメータセット情報を復号する。
(S1200:スライス情報復号)ヘッダ復号部3020は、符号化データからスライスヘッダ(スライス情報)を復号する。
以下、動画像復号装置31は、対象ピクチャに含まれる各CTUについて、S1300からS5000の処理を繰り返すことにより各CTUの復号画像を導出する。
(S1300:CTU情報復号)CT情報復号部3021は、符号化データからCTUを復号する。
(S1400:CT情報復号)CT情報復号部3021は、符号化データからCTを復号する。
(S1500:CU復号)CU復号部3022はS1510、S1520を実施して、符号化データからCUを復号する。
(S1510:CU情報復号)CU復号部3022は、符号化データからCU情報、予測情報、TU分割フラグ、CU残差フラグ等を復号する。
(S1520:TU情報復号)TU復号部3024は、TUに予測誤差が含まれている場合に、符号化データから量子化予測誤差等を復号する。
(S2000:予測画像生成)予測画像生成部308は、対象CUに含まれる各ブロックについて、予測情報に基づいて予測画像を生成する。
(S3000:逆量子化・逆変換)逆量子化・逆変換部311は、対象CUに含まれる各TUについて、逆量子化・逆変換処理を実行する。
(S4000:復号画像生成)加算部312は、予測画像生成部308より供給される予測画像と、逆量子化・逆変換部311より供給される予測誤差とを加算することによって、対象CUの復号画像を生成する。
(S5000:ループフィルタ)ループフィルタ305は、復号画像にデブロッキングフィルタ、SAO、ALFなどのループフィルタをかけ、復号画像を生成する。
ループフィルタ305は、符号化ループ内に設けたフィルタで、ブロック歪やリンギング歪を除去し、画質を改善するフィルタである。ループフィルタ305は、加算部312が生成したCUの復号画像に対し、デブロッキングフィルタ、サンプル適応オフセット(SAO)、適応ループフィルタ(ALF)等のフィルタを施す。
参照ピクチャメモリ306は、加算部312が生成したCUの復号画像を、対象ピクチャ及び対象CU毎に予め定めた位置に記憶する。
予測パラメータメモリ307は、復号対象のCTUあるいはCU毎に予め定めた位置に予測パラメータを記憶する。具体的には、予測パラメータメモリ307は、パラメータ復号部302が復号したパラメータ及びエントロピー復号部301が分離した予測モードpredMode等を記憶する。
予測画像生成部308には、predMode、予測パラメータ等が入力される。また、予測画像生成部308は、参照ピクチャメモリ306から参照ピクチャを読み出す。予測画像生成部308は、predModeが示す予測モードで、予測パラメータと読み出した参照ピクチャ(参照ブロック)を用いてブロックもしくはサブブロックの予測画像を生成する。ここで、参照ブロックとは、参照ピクチャ上の画素の集合(通常矩形であるのでブロックと呼ぶ)であり、予測画像を生成するために参照する領域である。
(インター予測パラメータ導出部の構成)
図5に示すように、インター予測パラメータ導出部303は、パラメータ復号部302から入力されたシンタックス要素に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してインター予測パラメータを導出する。また、インター予測パラメータをインター予測画像生成部309、予測パラメータメモリ307に出力する。インター予測パラメータ導出部303及びその内部の要素であるAMVP予測パラメータ導出部3032、マージ予測パラメータ導出部3036、MMVD予測部30376、MV加算部3038は、動画像符号化装置、動画像復号装置で共通する手段であるので、これらを総称して動きベクトル導出部(動きベクトル導出装置)と称してもよい。
general_merge_flagが1、すなわち、マージ予測モードを示す場合、merge_idxを導出し、マージ予測パラメータ導出部3036に出力する。
general_merge_flagが0、すなわち、AMVP予測モードを示す場合、AMVP予測パラメータ導出部3032はinter_pred_idc、refIdxLXかmvp_LX_idxからmvpLXを導出する。
(MV加算部)
MV加算部3038では導出されたmvpLXとmvdLXを加算し、mvLXを導出する。
(マージ予測)
マージ予測パラメータ導出部3036は、予測パラメータ(predFlagLX、mvLX、refIdxLX)を含んで構成されるマージ候補を導出し、マージ候補リストを構成する。さらにマージ予測パラメータ導出部3036は、マージ候補リストに含まれるマージ候補のうち、merge_idxが示すマージ候補Nの動き情報(mvLXN[0], mvLXN[1])、predFlagLXN、refIdxLXNを対象ブロックのインター予測パラメータとして選択する。マージ予測パラメータ導出部3036は選択したマージ候補のインター予測パラメータを予測パラメータメモリ307に記憶するとともに、インター予測画像生成部309に出力する。
(インター予測画像生成部309)
predModeがインター予測を示す場合、インター予測画像生成部309は、インター予測パラメータ導出部303から入力されたインター予測パラメータと参照ピクチャを用いてインター予測によりブロックもしくはサブブロックの予測画像を生成する。
図4は、本実施形態に係る予測画像生成部308に含まれるインター予測画像生成部309の構成を示す概略図である。インター予測画像生成部309は、動き補償部(予測画像生成装置)3091、OOB処理部3092、合成部3095を含んで構成される。合成部3095は、重み予測部3094を含んで構成される。
(動き補償)
動き補償部3091(補間画像生成部3091)は、インター予測パラメータ導出部303から入力された、インター予測パラメータ(predFlagLX、refIdxLX、mvLX)に基づいて、参照ピクチャメモリ306から参照ブロックを読み出すことによって補間画像(動き補償画像)を生成する。参照ブロックは、refIdxLXで指定された参照ピクチャRefPicLX上で、対象ブロックの位置からmvLXシフトした位置のブロックである。ここで、mvLXが整数精度でない場合には、動き補償フィルタと呼ばれる小数位置の画素を生成するためのフィルタを施して、補間画像を生成する。
動き補償部3091は、bW*bHサイズのブロックの左上座標(xPb,yPb)、予測ブロック内座標(xL,yL)、動きベクトル(mvLX[0],mvLX[1])に対応する整数位置(xInt,yInt)および位相(xFrac,yFrac)を以下の式で導出する(MC-P1)。
xInt = xPb+(mvLX[0]>>(log2(MVPREC)))+xL
xFrac = mvLX[0]&(MVPREC-1)
yInt = yPb+(mvLX[1]>>(log2(MVPREC)))+yL
yFrac = mvLX[1]&(MVPREC-1)
ここで、MVPRECはmvLXの精度(1/MVPREC画素精度)、log2MVPREC=(log2(MVPREC))、x=0…bW-1、y=0…bH-1を示す。例えばMVPREC=16であってもよい。
なお、RPRを行うために、後述の(MC-P2)のように導出してよい。さらに、(MC-P1)、(MC-P2)で導出された(xInt,yInt)に対して、動き補償部3091は、ラップアラウンドのために位置を修正してもよい。
サブピクチャ境界をピクチャ境界とするフラグが有効である場合(sps_subpic_treated_as_pic_flag == 1)かつ、参照画像のサブピクチャの数が1より大きい場合(参照画像refPicLXのためのsps_num_subpics_minus1 > 0)
xInt = Clip3( SubpicLeftBoundaryPos, SubpicRightBoundaryPos, refWraparoundEnabledFlag ? ClipH( ( PpsRefWraparoundOffset ) * MinCbSizeY, picW, xInt ) : xInt )
yInt = Clip3( SubpicTopBoundaryPos, SubpicBotBoundaryPos, yInt )
ここで、SubpicLeftBoundaryPos、SubpicRightBoundaryPos、SubpicTopBoundaryPos、SubpicBottomBoundaryPosは、各々サブピクチャの左、右、上、下の境界位置。
上記以外の場合(サブピクチャ境界をピクチャ境界とするフラグが無効である場合(sps_subpic_treated_as_pic_flag == 0)もしくは、参照画像のサブピクチャの数が1の場合(参照画像refPicLXのためのsps_num_subpics_minus1 == 0)
xInt = Clip3( 0, picW - 1, refWraparoundEnabledFlag ? ClipH( ( PpsRefWraparoundOffset ) * MinCbSizeY, picW, xInt ) : xInt )
yInt = Clip3( 0, picH - 1, yInt )
ここで、refWraparoundEnabledFlag = pps_ref_wraparound_enabled_flag && !refPicIsScaled、PpsRefWraparoundOffset= pps_pic_width_in_luma_samples / MinCbSizeY - pps_pic_width_minus_wraparound_offset。MinCbSizeYは所定の定数もしくは変数(たとえば4)、pps_pic_width_minus_wraparound_offsetはラップアラウンドの位置を示す符号化データから復号されるオフセット。
動き補償部3091は、参照ピクチャrefImgに補間フィルタを用いて水平補間処理を行うことで、一時的画像temp[][]を導出する。以下のΣはk=0..NTAP-1のkに関する和、mcFilter[Frac][k]は位相Fracにおけるk番目の補間フィルタ係数であり、shift1は値のレンジを調整する正規化パラメータ、offset1=1<<(shift1-1)である。
temp[x][y] = (ΣmcFilter[xFrac][k]*refImg[xInt+k-NTAP/2+1][yInt]+offset1)>>shift1
続いて、動き補償部3091は、一時的画像temp[][]を垂直補間処理により、補間画像Pred[][]を導出する。以下のΣはk=0..NTAP-1のkに関する和、shift2は値のレンジを調整する正規化パラメータ、offset2=1<<(shift2-1)である。
Pred[x][y] = (ΣmcFilter[yFrac][k]*temp[x][y+k-NTAP/2+1]+offset2)>>shift2 (式MC-1)
(ピクチャ範囲外(OOB)処理)
OOB処理部3092はOOB判定部30921およびOOBマスク導出部30922を含む。OOB判定部30921は、インター予測パラメータ導出部303から入力された、インター予測パラメータ(predFlagLX、refIdxLX、mvLX等)に基づいて、双予測モードの各参照ブロックが参照ピクチャの有効範囲外(OOB: Out-Of-Boundary)の領域を含むかどうかを判定する。
なお、上記判定は、ピクチャもしくはサブピクチャの有効範囲外の領域を含むか否かを判定してもよい。また、スライス外の領域を含むか否かを用いて判定してもよい。
図9を参照して説明する。
OOB判定部30921が参照ブロックの一部の画素がピクチャ外(有効範囲外)である、すなわち、参照ブロックがOOBであると判定した場合(isOOB==true、S1002)、OOBマスク導出部30922は、参照ブロックのどの領域が有効範囲外であるかを示すマスクデータ(マスク値、OOBマスク)を導出する(S1004)。インター予測画像生成部309は、OOBである参照ブロックに対し、OOBマスクを適用して予測画像を生成する(S1006)。インター予測画像生成部309は、OOBではない参照ブロックに対し、通常の予測画像を生成する(S1008)。以下で詳細を説明する。
(OOB判定)
OOB判定部30921は、双予測において、2つ(第1および第2)の参照ブロックに対し、各参照ブロックの一部がピクチャ外(OOB)であるか否かを判定する。参照画像refLXに対応するLX参照ブロック(X=0または1)の領域は、ブロック左上座標(xRefLX,yRefLX)とブロックサイズ(幅および高さ:bW,bH)で表される。ピクチャの幅と高さをそれぞれpicW,picHとする。なお、以下では、mvLXの精度MVPRECに応じてmvLXを整数化した値を座標系に用いる。これらの値を用いて、OOB判定部30921は、次式によりLX参照ブロックがピクチャ外(有効範囲外)を含むか否かを表す真理値isOOB[X]を導出する。また有効範囲内の領域を有効領域と記す。
図10に一例を示す。図10は整数単位の図であり、動きベクトルmvLX'、参照画素位置(xRefLX',yRefLX')は動きベクトルmvLX、参照画素位置(xRefLX,yRefLX)を整数表現したパラメータである。図の例はX=0であるが、X=1の場合も同様である。
xRefLX = (xPb<<log2MVPREC) + mvLX[0] (DecideOOB1)
yRefLX = (yPb<<log2MVPREC) + mvLX[1]
picMinX = 0 - MVPREC/2
picMinY = 0 - MVPREC/2
picMaxX = ((picW-1)<<log2MVPREC) + MVPREC/2
picMaxY = ((picH-1)<<log2MVPREC) + MVPREC/2
isOOB[X] = (xRefLX < picMinX) || (yRefLX < picMinY) ||
(xRefLX + (bW<<log2MVPREC) - 1) >= picMaxX) ||
(yRefLX + (bH<<log2MVPREC) - 1) >= picMaxY)
log2MVPRECビット左シフト("<<log2MVPREC")をMVPRECとの乗算("*MVPREC")で処理してもよいし、後述の"*MVPREC"を"<<log2MVPREC"で処理してもよい。
あるいは、(DecideOOB1)におけるisOOB[X]の導出式は下式であってもよい。
isOOB[X] = (xRefLX <= picMinX) || (yRefLX <= picMinY) ||
(xRefLX + (bW<<log2MVPREC) - 1) >= picMaxX) ||
(yRefLX + (bH<<log2MVPREC) - 1) >= picMaxY)
あるいは、OOB判定部30921は、丸めのための項を省き、次のように簡略に判定してもよい。
picMaxX = (picW-1)<<log2MVPREC) (DecideOOB2)
picMaxY = (picH-1)<<log2MVPREC)
isOOB[X] = (xRefLX < 0) || (yRefLX < 0) ||
(xRefLX + (bW<<log2MVPREC) - 1) > picMaxX) ||
(yRefLX + (bH<<log2MVPREC) - 1) > pixMaxY)
また、OOB判定部30921は、小数単位の境界座標ではなく整数単位の座標で判定を行ってもよい。
xRefLX = xPb + (mvLX[0]>>log2MVPREC) (DecideOOB3)
yRefLX = yPb + (mvLX[1]>>log2MVPREC)
isOOB[X] = (xRefLX < 0) || (yRefLX < 0) ||
(xRefLX + bW - 1 >= picW-1) ||
(yRefLX + bH - 1 >= picH-1)
あるいは、(DecideOOB3)におけるisOOB[X]の導出式は下式であってもよい。
isOOB[X] = (xRefLX <= 0) || (yRefLX <= 0) ||
(xRefLX + bW - 1 >= picW-1) ||
(yRefLX + bH - 1 >= picH-1)
上記によれば、動きベクトルmvLX[]のMV精度による右シフトによって得られる整数座標を用いるため、小数精度で判定するよりも処理量を省略できるという効果を奏する。
OOB判定部30921は、ブロックサイズに応じてOOB処理を適用するか否かを切り替えてもよい。例えば、OOB判定部30921がisOOB[X]の導出に次式を用いて、幅および高さがともにBLKTHW1、BLKTHH1画素以上のブロックにのみisOOB=trueに設定して、OOB処理を適用してもよい。
isOOB[X] = (bW >= BLKTHW1 && bH >= BLKTHH1) &&
((xRefLX < picMinX) || (yRefLX < picMinY) ||
(xRefLX + bW*MVPREC - 1 >= picMaxX) ||
(yRefLX + bH*MVPREC - 1 >= picMaxY))
ここでOOB処理を適用するとは、isOOB[X]=trueとすることである。動き補償部3091(補間画像生成部3091)でいずれかの参照画像を重み付けせず優先して用いて、予測画像Pred[][]を導出することを意味する。
例えば、BLKTHW1=4,8,16,32、BLKTHH1=4,8,16,32等であってもよい。OOBを適用するブロックサイズの閾値は8x8,4x4,4x8,8x4,16x16などでもよい。
あるいは大きなブロックにおいてOOB処理を禁止してもよい。
isOOB[X] = (bW <= BLKTHW2 && bH <= BLKTHW2) &&
((xRefLX < picMinX) || (yRefLX < picMinY) ||
(xRefLX + bW*MVPREC - 1 >= picMaxX) ||
(yRefLX + bH*MVPREC - 1 >= picMaxY))
例えば、BLKTHW2=16,32,64、BLKTHH2=16,32,64等であってもよい。
または特定の範囲の大きさのブロックにのみOOB処理が適用されるようにしてもよい。
isOOB[X] = (bW > BLKTHW3 && bW <= BLKTHW4 && bH > BLKTHH3 && bH <= BLKTHH4) &&
((xRefLX < picMinX) || (yRefLX < picMinY) ||
(xRefLX + bW*MVPREC - 1 >= picMaxX) ||
(yRefLX + bH*MVPREC - 1 >= picMaxY))
例えば、(BLKTHW3, BLKTHW4)={(4,16),(8,32),(16,32),(32,64)}、(BLKTHH3,BLKHH4)={(4,16),(8,32),(16,32),(32,64)}、等であってもよい。
または面積の大小により判定してOOB処理が適用されるようにしてもよい。
isOOB[X] = (bW*bH >= BLKTHW5*BLKTHH5) &&
((xRefLX < picMinX) || (yRefLX < picMinY) ||
(xRefLX + bW*MVPREC - 1 >= picMaxX) ||
(yRefLX + bH*MVPREC - 1 >= picMaxY))
例えば、BLKTHW5=4,8,16,32、BLKTHH5=4,8,16,32等であってもよい。あるいはBLKTHW5*BLKTHH5の代わりにBLKTHS5を用いてもよい。例えば、BLKTHS5=32,64,128等であってもよい。
上記の例では(DecideOOB1)のOOB判定式をもとにブロックサイズを制限する条件を追加したが、(DecideOOB2)あるいは(DecideOOB3)のOOB判定式をもとにブロックサイズを制限する条件を追加してもよい。
上記の例では、isOOB[X]の導出式の条件の一部として(xRefLX<picMinX) || (yRefLX<picMinY)を用いたが、(xRefLX<=picMinX) || (yRefLX<=picMinY)を用いてもよい。
以上のように、OOB処理が適用されるブロックサイズを制限し、計算量を低減することができる。
OOB判定部30921は、isOOB[X]とisOOB[1-X](X=0,1)の両方が1となることを避ける構成であってもよい。つまり参照ブロックの双方において、インター予測画像生成部309がOOBマスクを用いた予測画像生成をすることを禁止する。これにより、参照ブロックの一方は必ずisOOB[X]=falseすなわちOOB処理の適用外となり、後段でOOBマスクの作成およびマスクの適用を省略できる。したがって、計算量の削減が可能となる。
<OOB判定省略構成の例1>
OOB判定部30921は、L0参照領域とL1参照領域の有効範囲の大きさに応じた判定によりisOOB[X](X=0,1)を導出してもよい。LX参照ブロックのうちピクチャに含まれる有効面積InsideAreaXがより大きい方をX=K(K=0,1)とする。有効面積が大きい参照ピクチャのOOB判定を無効(OOB判定有無フラグisOOB[K]=false)とし、有効面積が小さい他方(isOOB[!K]あるいはisOOB[1-K])のOOB判定を有効(isOOB[1-K]=true)とする。OOB判定部30921は、たとえば次式によりInsideAreaXを求める。なお、(false,true)の値として(0,1)を用いてもよいし、別の値(1,0)を用いてもよい。LX参照領域の有効範囲は、LX参照ブロックとピクチャの共通部分で導出してもよい。
xRefLX = (xPb<<log2MVPREC) + mvLX[0]
yRefLX = (yPb<<log2MVPREC) + mvLX[1]
InsideWidthX = (min(picMaxX, xRefLX + bW*MVPREC-1) - max(picMinX, xRefLX))
InsideHeightX = (min(picMaxY, yRefLX + bH*MVPREC-1) - max(picMinY, yRefLX))
InsideAreaX = (InsideWidthX>0 && InsideHeightX>0) ? InsideWidthX * InsideHeightX : 0
InsideWidthXまたはInsideHeightXの値が負になる場合は、参照ブロックはピクチャに共通部分はない(参照ブロックはピクチャに含まれない)ため、InsideAreaX=0としてもよい。
OOB判定部30921は、L0参照ブロックとL1参照ブロックに対してそれぞれInsideArea0とInsideArea1を導出し、下記のようにisOOB[X]を導出する。
if (InsideArea0 >= InsideArea1) {
isOOB[0] = false, isOOB[1] = true
} else {
isOOB[0] = true, isOOB[1] = false
}
また下記のように一方のisOOB[X]の判定値を先に導出し、他方isOOB[Y](Y=1-X)の判定値をisOOB[X]の判定値から導出してもよい。
isOOB[0] = (InsideArea0 >= InsideArea1) ? 0 : 1
isOOB[1] = 1 - isOOB[0]
上記条件式は、"InsideArea0 > InsideArea1"であってもよい。
上記構成によれば、有効領域が大きい方の参照ピクチャにおけるOOB判定を無効(フラグisOOB[K]=false)にし、OOB判定を省略(OOB処理を適用しない)できるため、予測画像生成における計算量の削減が可能となる。特に、有効領域が大きい場合には、OOB判定を無効としても画質の低下がほぼない。
<OOB判定省略構成の例2>
OOB判定部30921は、2つの参照画像に関する有効領域InsideAreaのサイズが等しい場合には両方ともOOB判定を無効としてもよい。具体的には、OOB判定を省略することを示す値(false)となるようにisOOB[X]を導出してもよい。
if (InsideArea0 > InsideArea1) {
isOOB[0] = false, isOOB[1] = true
} else if (InsideArea0 < InsideArea1) {
isOOB[0] = true, isOOB[1] = false
} else {
isOOB[0] = false, isOOB[1] = false
}
上記構成によれば、予測画像生成における計算量の削減が可能となる。
<OOB判定省略構成の例3>
OOB判定部30921は、LX参照領域の有効範囲(例えば、LX参照ブロックとピクチャの共通部分)の縦横の大きさを表すInsideWidthX, InsideHeightXの大小関係を用いて、OOB判定有無フラグisOOB[X]を導出してもよい。例えば、あるLX参照ブロックの有効領域の幅と高さの両方が他方のLY参照ブロック(Y=1-X)の幅と高さより大きい場合に、LX参照ブロックのOOB判定を無効(isOOB=false)としてもよい。
if (InsideWidth0 > InsideWidth1 && InsideHeight0 > InsideHeight1) {
isOOB[0] = false, isOOB[1] = true
} else {
isOOB[0] = true, isOOB[1] = false
}
または以下でもよい。
if (InsideWidth0 >= InsideWidth1 && InsideHeight0 > InsideHeight1) {
isOOB[0] = false, isOOB[1] = true
} else {
isOOB[0] = true, isOOB[1] = false
}
あるいは以下でもよい。
if (InsideWidth0 > InsideWidth1 && InsideHeight0 >= InsideHeight1) {
isOOB[0] = false, isOOB[1] = true
} else {
isOOB[0] = true, isOOB[1] = false
}
または、あるLX参照ブロックの有効領域の幅と高さの両方が他方のLY参照ブロック(Y=1-X)の幅と高さより大きい場合、LX参照ブロックのOOB判定を無効(isOOB=false)とし、2つの有効領域の幅もしくは高さが等しい場合に、OOB判定を両方とも無効としてもよい。
if (InsideWidth0 > InsideWidth1 && InsideHeight0 > InsideHeight1) {
isOOB[0] = false, isOOB[1] = true
} else if (InsideWidth0 < InsideWidth1 && InsideHeight0 < InsideHeight1) {
isOOB[0] = true, isOOB[1] = false
} else {
isOOB[0] = false, isOOB[1] = false
}
または、上記判定を幅もしくは高さのみを用いてOOB判定を行ってもよい。
if (InsideWidth0 > InsideWidth1) {
isOOB[0] = false, isOOB[1] = true
} else {
isOOB[0] = true, isOOB[1] = false
または、以下でもよい
if (InsideHeight0 > InsideHeight1) {
isOOB[0] = false, isOOB[1] = true
} else {
isOOB[0] = true, isOOB[1] = false
上記構成によれば、有効領域が大きい参照ブロック(もしくは両方の参照ブロック)のOOB判定を省略できるため、予測画像生成における計算量の削減が可能となる。さらに、面積を導出する必要がなくなり乗算の計算量を削減できる。
<まとめ>
以上まとめると、L0参照領域の有効領域と、L1参照領域の有効領域を比べ、参照領域が大きい方の参照ピクチャのOOB判定を無効としてもよい。また、参照領域が大きいか否かの判定を、L0とL1の有効領域の面積の比較により行ってもよい。また、参照領域が大きいか否かの判定を、L0とL1の有効領域の幅もしくは高さの比較により行ってもよい。
(OOBマスク導出処理)
OOBマスク導出部30922は、参照ブロックに対してOOBマスク(OOBMask[X])を導出する。OOBMask[X]はbWxbH画素の二値の画像(マスク)であり、OOBMask[X][px][py](px=0..bW-1,py=0..bH-1)の値は、0(false)であれば画素(px,py)がピクチャ内、1(true)であればピクチャ外であることを示す。なお、falseとtrueは0, 1に限定されず、別の値、例えば2進数でBitDepth以上の長さ0か1の列からなるビットマスク値"0000000000b","1111111111b"などであってもよい。また16進数の"000", "3FF"や、"000", "FFF"、"0000", "FFFF"を用いてもよい。OOBマスク導出部30922は、OOB判定部30921がOOB処理対象ではない(isOOB[X]==false)と判定したブロックに対しては、OOBMask[X]の全ての値をfalseとする。また、OOB判定部30921がOOB処理対象である(isOOB[X]==true)と判定したブロックに対しては、次式を用いてマスクを導出する。なお、不等号(">="または"<=")は等号を含まなく(">"または"<")ても構わない。
OOBMask[X][px][py] = ((xRefLX + px < picMinX) || (yRefLX + py < picMinY) ||
(xRefLX + px >= picMaxX) || (yRefLX + py >= picMaxY)) ? 1 : 0
ただしpx=0..bW-1,py=0..bH-1である。上記は(DecideOOB1)におけるisOOB[X]の判定式をもとにOOBMaskを導出した。これ以外にも、(DecideOOB2)、(DecideOOB3)におけるisOOB[X]の判定式をもとにOOBMaskを導出してもよい。さらに、(DecideOOB1)、(DecideOOB2)、(DecideOOB3)に有効範囲の制約を加えたisOOB[X]の判定式をもとにOOBMaskを導出してもよい。
OOBマスク導出部30922は、OOBMask[X]をNxM画素単位のマスクとして導出してもよい。すなわち、1つのマスク値をNxM画素のOOB判定に対応させる。このときOOBMask[X]の大きさは(bW/N)*(bH/M)である。各マスク値OOBMask[X][x][y](x=0..bW/N-1, y=0..bH/M-1)は、たとえば以下のように求められる。
OOBMask[X][px][py] = ((xRefLX + px*N + N/2 <= picMinX) ||
(yRefLX + py*M + M/2 <= picMinY) ||
(xRefLX + px*N + N/2 >= picMaxX) ||
(yRefLX + py*M + M/2 >= picMaxY)) ? 1 : 0
ここでpx=0..bW/N-1,py=0..bH/M-1である。N/2およびM/2の項は省略してもよい。上記は(DecideOOB1)におけるisOOB[X]の判定式をもとにOOBMaskを導出した。これ以外にも、(DecideOOB2)、(DecideOOB3)におけるisOOB[X]の判定式をもとにOOBMaskを導出してもよい。さらに、(DecideOOB1)、(DecideOOB2)、(DecideOOB3)に有効範囲の制約を加えたisOOB[X]の判定式をもとにOOBMaskを導出してもよい。
これによりNxM画素単位でマスクが同一の値になることから、マスクに必要なメモリを削減するとともに計算量を削減できる。
(OOB予測画像生成)
動き補償部3091(補間画像生成部3091)は、双予測の場合には、上記の(式MC-1)で導出したPred[][]を、L0リスト、L1リスト毎に補間画像PredL0[][]とPredL1[][]として設定する。そして、PredL0[][]とPredL1[][]から補間画像Pred[][]を生成する。双予測の参照ブロックがOOB処理の対象である場合、予測画像の生成に当該参照ブロックに対応するOOBMask[X]が用いられる。このときPred[][]は次のように導出される。
if (OOBMask[0][px][py] && !OOBMask[1][px][py]) { (式WP-1)
Pred[px][py] = (PredL1[px][py] + offset1)>> shift1
} else if (!OOBMask[0][px][py] && OOBMask[1][px][py]) {
Pred[px][py] = (PredL0[px][py] + offset1)>> shift1
} else {
Pred[px][py] = (PredL0[px][py] + PredL1[px][py] + offset2)>> shift2
}
ここでpx=0..bW-1,py=0..bH-1である。また、shift1=Max(2,14-bitDepth)、shift2=Max(3,15-bitDepth)、offset1=1<<(shift1-1)、offset2=1<<(shift2-1)である。なお、shift1は補間画像ビット深度(例えば14bit)を元のビット深度へ戻すためのシフト(例えば14-bitDepth)である。shift2は元のビットに戻すと同時に平均を兼ねた右シフト量、offset1、offset2はshift1、shift2だけ右シフトする際の丸め値である。
なお、CU単位の明示的重み付き双予測(BCW)あるいはイントラインター結合予測CIIP(combined inter-picture merge and intra-picture prediction)を用いるか否かに応じて上記処理を切り替えてもよい。bcwIndexはBCWの重みを示すインデクスである。ciip_flagはCIIPのオンオフを示すフラグである。bcwIdx==0もしくはCIIPフラグ(ciip_flag)が1の場合には上記(式WP-1)の処理を行う。それ以外の場合には、以下の処理を行う。
w1 = bcwWLut[bcwIdx]
w0 = (8 - w1)
ここでbcwWLut[k] = {4, 5, 3, 10, -2}
if (OOBMask[0][px][py] && !OOBMask[1][px][py]) {
Pred[px][py] = (PredL1[px][py] + offset1)>> shift1
} else if (!OOBMask[0][px][py] && OOBMask[1][px][py]) {
Pred[px][py] = (PredL0[px][py] + offset1)>> shift1
} else {
Pred[px][py] = ( w0 * PredL0[px][py] + w1 * PredL1[px][py] + offset3 )>>(shift1+3))
}
ここでoffset3=1<<(shift1+2)である。
ブロック単位でLX参照ピクチャを使うか否か示すフラグpredFlagLXと、OOBMaskによる処理を一つの分岐にまとめて以下のように処理すると処理量を軽減できる効果を奏する。
if ((predFlagL0 == 1 && predFlagL1 ==0) || (!OOBMask[0][px][py] && OOBMask[1][px][py])) { (式WP-2)
Pred[px][py] = (PredL0[px][py]*we0 + offset1)>> shift1
} else if ((predFlagL0 == 0 && predFlagL1 ==1) || OOBMask[0][px][py] && !OOBMask[1][px][py]) {
Pred[px][py] = (PredL1[px][py]*we1 + offset1)>> shift1
} else if ((bcwIdx ==0 || ciip_flag == 1) {
Pred[px][py] = (w0 * PredL0[px][py] + w1 * PredL1[px][py] + offset2)>>shift2
} else { // bcwIdx !=0 and ciip_flag == 0)
Pred[px][py] = (we0 * PredL0[px][py] + we1 * PredL1[px][py] + offset3)>>(shift1+3))
}
OOB判定部30921は、2枚の参照ピクチャ上の参照ブロックの重み付き和により予測画像を生成する重み付き予測では、ブロックにOOB処理を適用しなくてもよい。すなわち、重み付き予測が適用されているブロックはOOB判定有無フラグisOOB[X]をfalseとする。これにより、双方向の重み付き予測が適用される参照ブロックの一方が用いられないことによる歪の発生あるいは符号化効率の低下を防ぐことができる。このような重み付き予測には、BCW(Bi-prediction with CU-level Weight)予測とWP(Weighted prediction)予測がある。
BCW予測は、ブロック単位で重み係数(gbw0、gbw1)を選択し、双予測におけるL0補間画像およびL1補間画像に重みを乗算して予測画像を生成する。パラメータ復号部302は、符号化ユニットCUで重み係数を示すパラメータbcw_idxを符号化データから復号する。パラメータ符号化部111はbcw_idxを符号化する。マージ予測の場合には、参照ブロック(隣接ブロック)のbcwIdxを対象ブロックのbcwIdxに設定する。それ以外の場合には、対象ブロックのbcwIdxにbcw_idxを設定する。bcwIdx!=0であれば当該CUにBCW予測を適用する。OOB判定部30921は、BCW予測を適用する場合(bcwIdx!=0)、isOOB[X]をfalseとする。
WP予測は、スライス単位で参照ピクチャ毎の重み係数とオフセットを切り替え、CU単位で参照ピクチャインデックスをもとに重み係数とオフセットを選択し、L0補間画像およびL1補間画像に重みを乗算して予測画像を生成する。パラメータ復号部302は、PPSの符号化データから、BピクチャにWP予測を適用するか否かを示すpps_weighted_bipred_flagを復号する。pps_weighted_bipred_flag==1の場合、当該PPSのBピクチャにWP予測を適用する。OOB判定部30921は、明示的なWP予測を適用する場合(pps_weighted_bipred_flag==1)、isOOB[X]をfalseとする。なお、参照ピクチャを2枚使わない場合(predFlagLX(X=0,1)のいずれかが0)は、OOB処理を適用してもよい。
<省略構成>
上述の省略構成を利用する場合は、OOBMask[0]、OOBMask[1]ともに1となることはないので、動き補償部3091(補間画像生成部3091)は、以下の分岐処理により補間画像を導出することができる。
if (OOBMask[0][px][py]) {
Pred[px][py] = (PredL1[px][py] + offset1)>> shift1
} else if (OOBMask[1][px][py]) {
Pred[px][py] = (PredL0[px][py] + offset1)>> shift1
} else {
Pred[px][py] = (PredL0[px][py] + PredL1[px][py] + offset2)>> shift2
}
また、予めPredL0、PredL1、PredBIを算出しておいて、以下のマスク処理で最終的なPredを導出することが適当である。
まず、PredL0、PredL1、PredBIを算出する。
PredL0[px][py] = (PredL0[px][py] + offset1) >> shift1
PredL1[px][py] = (PredL1[px][py] + offset1) >> shift1
PredBI[px][py] = (PredL0[px][py] + PredL1[px][py] + offset2) >> shift2
次に、OOBMask[0][px][py]、OOBMask[1][px][py]の値として、2進数でBitDepth長の"1111111111b", "0000000000b"のビットマスクを用いる場合、以下の処理で最終的なPredを導出する。
Pred[px][py]=
(PredBI[px][py] & (!OOBMask[0][px][py] & !OOBMask[1][px][py])) +
(PredL0[px][py] & OOBMask[0][px][py]) +
(PredL1[px][py] & OOBMask[1][px][py])
なお、true=1, false=0の値である場合には、0, 1からビットマスク値"0000000000b", "1111111111b"を生成して以下の処理でもよい。ここで"+"は"|"でもよい(以下のマスク演算処理でも同様)
Pred[px][py]= (式excl-1)
(PredBI[px][py] & (0-((!OOBMask[0][px][py] & !OOBMask[1][px][py]) ? 1 : 0)))+
(PredL0[px][py] & (0-(OOBMask[0][px][py] ? 1 : 0))) +
(PredL1[px][py] & (0-(OOBMask[1][px][py] ? 1 : 0)))
上記の式は、画素値のビット深度以上のビット幅を持つマスクを作成するために、二値(0または1)のマスクを0(全てのビットが0,画素値が無効)または-1(全てのビットが1,画素値が有効)に変換する計算を含んでいる。予測画像の導出はこれに限らず、PredBI,PredL0,PredL1に対応する3項のうちOOBマスクにより無効となる項が0となる計算を用いればよい。たとえば画素値のビット深度を最大16ビットとするとき、次式を用いてもよい。
Pred[px][py]=
(PredBI[px][py] & ((!OOBMask[0][px][py] & !OOBMask[1][px][py])? 0xFFFF : 0))+
(PredL0[px][py] & (OOBMask[0][px][py] ? 0xFFFF : 0)) +
(PredL1[px][py] & (OOBMask[1][px][py] ? 0xFFFF : 0))
3項の結合に加算を用いず、下記のようにビットORを用いてもよい。
Pred[px][py]=
(PredBI[px][py] & ((!OOBMask[0][px][py] & !OOBMask[1][px][py])? 0xFFFF : 0)) |
(PredL0[px][py] & (OOBMask[0][px][py] ? 0xFFFF : 0)) |
(PredL1[px][py] & (OOBMask[1][px][py] ? 0xFFFF : 0))
あるいは乗算を用いてもよい。
Pred[px][py]=
(PredBI[px][py] * ((!OOBMask[0][px][py] & !OOBMask[1][px][py])? 1 : 0)) +
(PredL0[px][py] * (OOBMask[0][px][py] ? 1 : 0)) +
(PredL1[px][py] * (OOBMask[1][px][py] ? 1 : 0))
上記によれば排他処理を簡略化できる。排他処理により、(式excl-1)の演算よりも処理を簡略化できる。
動き補償部3091(補間画像生成部3091)は、isOOBの値を参照して予め処理を分けてもよい。たとえば以下のようにしてもよい。このようにすれば、isOOB[X]がfalseの場合に画素毎にOOBMask[X][px][py]を参照する必要がなく、計算量を削減できるという効果を奏する。
if (isOOB[0] && !isOOB[1]) {
if (OOBMask[0][px][py]) {
Pred[px][py] = (PredL1[px][py] + offset1)>> shift2
} else {
Pred[px][py] = (PredL0[px][py] + PredL1[px][py] + offset2)>> shift
}
} else if (!isOOB[0] && isOOB[1]) {
if (OOBMask[1][px][py]) {
Pred[px][py] = (PredL0[px][py] + offset1)>> shift2
} else {
Pred[px][py] = (PredL0[px][py] + PredL1[px][py] + offset2)>> shift
}
} else if (isOOB[0] && isOOB[1]) {
if (OOBMask[0][px][py] && !OOBMask[1][px][py]) {
Pred[px][py] = (PredL1[px][py] + offset1)>> shift2
} else if (!OOBMask[0][px][py] && OOBMask[1][px][py]) {
Pred[px][py] = (PredL0[px][py] + offset1)>> shift2
} else {
Pred[px][py] = (PredL0[px][py] + PredL1[px][py] + offset2)>> shift
}
} else {
Pred[px][py] = (PredL0[px][py] + PredL1[px][py] + offset2)>> shift
}
(重み予測)
重み予測部3094は、補間画像PredLXに重み係数を乗算することによりブロックの予測画像を生成する。
インター予測画像生成部309は生成したブロックの予測画像を加算部312に出力する。
(動画像符号化装置の構成)
次に、本実施形態に係る動画像符号化装置11の構成について説明する。図7は、本実施形態に係る動画像符号化装置11の構成を示すブロック図である。動画像符号化装置11は、予測画像生成部101、減算部102、変換・量子化部103、逆量子化・逆変換部105、加算部106、ループフィルタ107、予測パラメータメモリ(予測パラメータ記憶部、フレームメモリ)108、参照ピクチャメモリ(参照画像記憶部、フレームメモリ)109、符号化パラメータ決定部110、パラメータ符号化部111、予測パラメータ導出部120、エントロピー符号化部104を含んで構成される。
予測画像生成部101はCU毎に予測画像を生成する。予測画像生成部101は既に説明したインター予測画像生成部309とイントラ予測画像生成部を含んでおり、説明を省略する。
減算部102は、予測画像生成部101から入力されたブロックの予測画像の画素値を、画像Tの画素値から減算して予測誤差を生成する。減算部102は予測誤差を変換・量子化部103に出力する。
変換・量子化部103は、減算部102から入力された予測誤差に対し、周波数変換によって変換係数を算出し、量子化によって量子化変換係数を導出する。変換・量子化部103は、量子化変換係数をパラメータ符号化部111及び逆量子化・逆変換部105に出力する。
変換・量子化部103は、分離変換部(第1の変換部)と、非分離変換部(第2の変換部)と、スケーリング部と、を備えている。
分離変換部は、予測誤差に分離変換を適用する。スケーリング部は、変換係数に対して、量子化マトリックスによるスケーリングを行う。
逆量子化・逆変換部105は、動画像復号装置31における逆量子化・逆変換部311と同じであり、説明を省略する。算出した予測誤差は加算部106に出力される。
パラメータ符号化部111は、ヘッダ符号化部1110、CT情報符号化部1111、CU符号化部1112(予測モード符号化部)を備えている。CU符号化部1112はさらにTU符号化部1114を備えている。以下、各モジュールの概略動作を説明する。
ヘッダ符号化部1110はヘッダ情報、分割情報、予測情報、量子化変換係数等のパラメータの符号化処理を行う。
CT情報符号化部1111は、QT、MT(BT、TT)分割情報等を符号化する。
CU符号化部1112はCU情報、予測情報、分割情報等を符号化する。
TU符号化部1114は、TUに予測誤差が含まれている場合に、QP更新情報と量子化予測誤差を符号化する。
CT情報符号化部1111、CU符号化部1112は、インター予測パラメータ(predMode、general_merge_flag、merge_idx、inter_pred_idc、refIdxLX、mvp_LX_idx、mvdLX)、イントラ予測パラメータ、量子化変換係数等のシンタックス要素をパラメータ符号化部111に供給する。
エントロピー符号化部104には、パラメータ符号化部111から量子化変換係数と符号化パラメータ(分割情報、予測パラメータ)が入力される。エントロピー符号化部104はこれらをエントロピー符号化して符号化ストリームTeを生成し、出力する。
予測パラメータ導出部120は、インター予測パラメータ符号化部112、イントラ予測パラメータ符号化部を含む手段であり、符号化パラメータ決定部110から入力されたパラメータからイントラ予測パラメータ及びインター予測パラメータを導出する。導出されたイントラ予測パラメータ及びインター予測パラメータは、パラメータ符号化部111に出力される。
(インター予測パラメータ符号化部の構成)
インター予測パラメータ符号化部112は、パラメータ符号化制御部1121、インター予測パラメータ導出部303を含んで構成される。インター予測パラメータ導出部303は動画像復号装置と共通の構成である。パラメータ符号化制御部1121は、マージインデックス導出部11211とベクトル候補インデックス導出部11212を含む。
マージインデックス導出部11211は、マージ候補等を導出し、インター予測パラメータ導出部303に出力する。ベクトル候補インデックス導出部11212は予測ベクトル候補等を導出し、インター予測パラメータ導出部303とパラメータ符号化部111に出力する。
(イントラ予測パラメータ符号化部の構成)
イントラ予測パラメータ符号化部は、パラメータ符号化制御部とイントラ予測パラメータ導出部を備える。イントラ予測パラメータ導出部は動画像復号装置と共通の構成である。
ただし、動画像復号装置と異なり、インター予測パラメータ導出部303、イントラ予測パラメータ導出部への入力は符号化パラメータ決定部110、予測パラメータメモリ108であり、パラメータ符号化部111に出力する。
加算部106は、予測画像生成部101から入力された予測ブロックの画素値と逆量子化・逆変換部105から入力された予測誤差を画素毎に加算して復号画像を生成する。加算部106は生成した復号画像を参照ピクチャメモリ109に記憶する。
ループフィルタ107は加算部106が生成した復号画像に対し、デブロッキングフィルタ、SAO、ALFを施す。なお、ループフィルタ107は、必ずしも上記3種類のフィルタを含まなくてもよく、例えばデブロッキングフィルタのみの構成であってもよい。
予測パラメータメモリ108は、符号化パラメータ決定部110が生成した予測パラメータを、対象ピクチャ及びCU毎に予め定めた位置に記憶する。
参照ピクチャメモリ109は、ループフィルタ107が生成した復号画像を対象ピクチャ及びCU毎に予め定めた位置に記憶する。
符号化パラメータ決定部110は、符号化パラメータの複数のセットのうち、1つのセットを選択する。符号化パラメータとは、上述したQT、BTあるいはTT分割情報、予測パラメータ、あるいはこれらに関連して生成される符号化の対象となるパラメータである。予測画像生成部101は、これらの符号化パラメータを用いて予測画像を生成する。
符号化パラメータ決定部110は、複数のセットの各々について情報量の大きさと符号化誤差を示すRDコスト値を算出する。RDコスト値は、例えば、符号量と二乗誤差に係数λを乗じた値との和である。符号量は、量子化誤差と符号化パラメータをエントロピー符号化して得られる符号化ストリームTeの情報量である。二乗誤差は、減算部102において算出された予測誤差の二乗和である。係数λは、予め設定されたゼロよりも大きい実数である。符号化パラメータ決定部110は、算出したコスト値が最小となる符号化パラメータのセットを選択する。符号化パラメータ決定部110は決定した符号化パラメータをパラメータ符号化部111と予測パラメータ導出部120に出力する。
なお、上述した実施形態における動画像符号化装置11、動画像復号装置31の一部、例えば、エントロピー復号部301、パラメータ復号部302、ループフィルタ305、予測画像生成部308、逆量子化・逆変換部311、加算部312、予測パラメータ導出部320、予測画像生成部101、減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、ループフィルタ107、符号化パラメータ決定部110、パラメータ符号化部111、予測パラメータ導出部120をコンピュータで実現するようにしても良い。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、動画像符号化装置11、動画像復号装置31のいずれかに内蔵されたコンピュータシステムであって、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
また、上述した実施形態における動画像符号化装置11、動画像復号装置31の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現しても良い。動画像符号化装置11、動画像復号装置31の各機能ブロックは個別にプロセッサ化しても良いし、一部、または全部を集積してプロセッサ化しても良い。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現しても良い。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いても良い。
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
本発明の実施形態は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
本発明の実施形態は、画像データが符号化された符号化データを復号する動画像復号装置、および、画像データが符号化された符号化データを生成する動画像符号化装置に好適に適用することができる。また、動画像符号化装置によって生成され、動画像復号装置によって参照される符号化データのデータ構造に好適に適用することができる。
31 動画像復号装置
301 エントロピー復号部
302 パラメータ復号部
3022 CU復号部
3024 TU復号部
303 インター予測パラメータ導出部
305、107 ループフィルタ
306、109 参照ピクチャメモリ
307、108 予測パラメータメモリ
308、101 予測画像生成部
309 インター予測画像生成部
3092 OOB処理部
30921 OOB判定部
30922 OOBマスク導出部
311、105 逆量子化・逆変換部
312、106 加算部
320 予測パラメータ導出部
11 動画像符号化装置
102 減算部
103 変換・量子化部
104 エントロピー符号化部
110 符号化パラメータ決定部
111 パラメータ符号化部
112 インター予測パラメータ符号化部
120 予測パラメータ導出部

Claims (8)

  1. 参照ブロックの座標をピクチャの座標と比較することで、参照ブロックがOOB処理の対象であるか否かを判定するOOB判定部と、参照ブロックに含まれる画素の座標とピクチャ境界もしくは領域境界の座標と比較することで、各画素の利用可否を表すマスクデータを導出するOOBマスク導出部を備える動画像復号装置であって、
    前記OOB判定部は、上記参照ブロックが含まれる参照ピクチャに適用される処理の有無を用いて上記参照ブロックがOOB処理対象であるか否かを判定することを特徴とする動画像復号装置。
  2. 前記OOB判定部は、L0参照領域の有効領域とL1参照領域の有効領域を比べ、参照領域の有効領域が大きい参照ピクチャに対しOOB判定を無効とすることを特徴とする請求項1に記載の動画像復号装置。
  3. 前記OOB判定部は、L0参照領域とL1参照領域の有効領域の面積の比較により、上記有効領域の大きさを判定することを特徴とする請求項1に記載の動画像復号装置。
  4. 前記OOB判定部は、L0参照領域とL1参照領域の有効領域の幅もしくは高さの比較により、上記有効領域の大きさを判定することを特徴とする請求項1に記載の動画像復号装置。
  5. 上記OOB判定部は、ブロック単位の重み付き双予測(BCW:Bi-prediction with CU-level Weight)が適用されるブロックでは、OOB判定を無効とすることを特徴とする請求項1に記載の動画像復号装置。
  6. 上記OOBマスク導出部は、NxM画素(N,Mは正の整数)を単位としてマスクとして導出することを特徴とする請求項1に記載の動画像復号装置。
  7. 上記OOB判定部は、対象ブロックが所定のサイズ以下の場合はOOB判定を無効とすることを特徴とする請求項1に記載の動画像復号装置。
  8. 参照ブロックの座標をピクチャの座標と比較することで、参照ブロックがOOB処理の対象であるか否かを判定するOOB判定部と、参照ブロックに含まれる画素の座標をピクチャの座標と比較することで、各画素の利用可否を表すマスクデータを導出するOOBマスク導出部を備える動画像符号化装置であって、
    前記OOB判定部は、上記参照ブロックが含まれる参照ピクチャに適用される処理の有無を用いて上記参照ブロックがOOB処理対象であるか否かを判定することを特徴とする動画像符号化装置。
JP2022146436A 2022-09-14 2022-09-14 動画像復号装置および動画像符号化装置 Pending JP2024041558A (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2022146436A JP2024041558A (ja) 2022-09-14 2022-09-14 動画像復号装置および動画像符号化装置
US18/104,793 US20240098272A1 (en) 2022-09-14 2023-02-02 Video decoding apparatus and video coding apparatus
AU2023200531A AU2023200531A1 (en) 2022-09-14 2023-02-02 Video decoding apparatus and video coding apparatus
EP23154690.4A EP4340364A1 (en) 2022-09-14 2023-02-02 Video decoding apparatus and video coding apparatus with oob - out-of-boundary checks
CN202310128572.7A CN117714713A (zh) 2022-09-14 2023-02-03 运动图像解码装置以及运动图像编码装置
KR1020230019325A KR20240037137A (ko) 2022-09-14 2023-02-14 동화상 복호 장치 및 동화상 부호화 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022146436A JP2024041558A (ja) 2022-09-14 2022-09-14 動画像復号装置および動画像符号化装置

Publications (1)

Publication Number Publication Date
JP2024041558A true JP2024041558A (ja) 2024-03-27

Family

ID=85172791

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022146436A Pending JP2024041558A (ja) 2022-09-14 2022-09-14 動画像復号装置および動画像符号化装置

Country Status (6)

Country Link
US (1) US20240098272A1 (ja)
EP (1) EP4340364A1 (ja)
JP (1) JP2024041558A (ja)
KR (1) KR20240037137A (ja)
CN (1) CN117714713A (ja)
AU (1) AU2023200531A1 (ja)

Also Published As

Publication number Publication date
CN117714713A (zh) 2024-03-15
AU2023200531A1 (en) 2024-03-28
KR20240037137A (ko) 2024-03-21
US20240098272A1 (en) 2024-03-21
EP4340364A1 (en) 2024-03-20

Similar Documents

Publication Publication Date Title
JP7448349B2 (ja) 動画像復号装置
WO2020137920A1 (ja) 予測画像生成装置、動画像復号装置、動画像符号化装置および予測画像生成方法
JP2023011955A (ja) 動画像符号化装置、動画像復号装置
JP2022505578A (ja) サブブロックベースのモーション補償を用いたビデオ信号処理方法及び装置
JP2020088451A (ja) 動画像復号装置および動画像符号化装置
JP7475908B2 (ja) 予測画像生成装置、動画像復号装置及び動画像符号化装置
WO2022254899A1 (ja) 動画像復号装置および動画像符号化装置
JP2020096279A (ja) 予測画像生成装置、動画像復号装置および動画像符号化装置
JP2020088660A (ja) 動画像符号化装置、動画像復号装置
WO2021200658A1 (ja) 動画像復号装置及び動画像復号方法
WO2024009877A1 (ja) 動画像復号装置および動画像符号化装置
JP2024041558A (ja) 動画像復号装置および動画像符号化装置
CN115362686A (zh) 运动图像解码装置、运动图像编码装置、运动图像解码方法以及运动图像编码方法
WO2023100970A1 (ja) 動画像復号装置および動画像符号化装置
CN114586346A (zh) 使用非矩形融合模式协调加权预测的方法和装置
JP2020096329A (ja) 予測画像生成装置、動画像復号装置および動画像符号化装置
WO2023112648A1 (ja) 動画像復号装置および動画像符号化装置
JP2020088577A (ja) 予測画像生成装置、動画像復号装置、および動画像符号化装置
WO2020012448A2 (en) Shape dependent interpolation order
WO2019065537A1 (ja) 動き補償フィルタ装置、画像復号装置および動画像符号化装置
WO2023249006A1 (ja) 動画像復号装置
JP7465128B2 (ja) 動画像符号化装置及び動画像復号装置
JP7378968B2 (ja) 予測画像生成装置、動画像復号装置および動画像符号化装置
WO2023090198A1 (ja) 動画像符号化装置、動画像復号装置
WO2021235448A1 (ja) 動画像符号化装置及び動画像復号装置