JP7293361B2 - 予測コーディングのための補間フィルタ処理の方法および装置 - Google Patents

予測コーディングのための補間フィルタ処理の方法および装置 Download PDF

Info

Publication number
JP7293361B2
JP7293361B2 JP2021536190A JP2021536190A JP7293361B2 JP 7293361 B2 JP7293361 B2 JP 7293361B2 JP 2021536190 A JP2021536190 A JP 2021536190A JP 2021536190 A JP2021536190 A JP 2021536190A JP 7293361 B2 JP7293361 B2 JP 7293361B2
Authority
JP
Japan
Prior art keywords
filter
prediction
video
unit
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021536190A
Other languages
English (en)
Other versions
JP2022514922A (ja
Inventor
ヴァシリー・アレクセーヴィチ・ルフィツキー
ジアンレ・チェン
アレクセイ・コンスタンチノヴィチ・フィリッポフ
Original Assignee
ホアウェイ・テクノロジーズ・カンパニー・リミテッド
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 ホアウェイ・テクノロジーズ・カンパニー・リミテッド filed Critical ホアウェイ・テクノロジーズ・カンパニー・リミテッド
Publication of JP2022514922A publication Critical patent/JP2022514922A/ja
Priority to JP2023094163A priority Critical patent/JP2023118725A/ja
Application granted granted Critical
Publication of JP7293361B2 publication Critical patent/JP7293361B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • 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/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/117Filters, e.g. for pre-processing or post-processing
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/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
    • 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
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • 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/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes

Description

本出願(開示)の実施形態は、一般に、ピクチャ処理の分野に関し、より詳細には、画像および/またはビデオコーディングおよび復号に関し、特にイントラ/インター予測のための方法および装置に関する。
ビデオコーディング(ビデオ符号化およびビデオ復号)は、幅広いデジタルビデオ適用例、たとえば、ブロードキャストデジタルTV、インターネットおよびモバイルネットワークを介したビデオ送信、ビデオチャット、ビデオ会議などの、リアルタイム会話型適用例、DVDおよびBlu-ray(登録商標)ディスク、ビデオコンテンツ収集および編集システム、ならびにセキュリティ適用例のカムコーダにおいて使用される。
比較的短いビデオを描写するのに必要とされるビデオデータの量でさえ相当であり得、そのことは、帯域幅容量が限定された通信ネットワークを越えてデータがストリーミングされるかまたは別の方法で通信されることになるときに、困難をもたらすことがある。したがって、ビデオデータは、一般に、現代の電気通信ネットワークを越えて通信される前に圧縮される。メモリリソースが限定されることがあるので、ビデオが記憶デバイス上に記憶されるときにビデオのサイズも問題となり得る。ビデオ圧縮デバイスは、しばしば、送信または記憶の前に、ソースにおいてソフトウェアおよび/またはハードウェアを使用してビデオデータをコーディングし、それによって、デジタルビデオ画像を表現するのに必要とされるデータの数量を減らす。圧縮されたデータは、次いで、ビデオデータを復号するビデオ復元デバイスによって宛先において受信される。ネットワークリソースが限定され、かつより高いビデオ品質の需要が絶えず増大すると、ピクチャ品質における犠牲をほとんど伴わずに圧縮率を改善する、改善された圧縮および復元技法が望ましい。
本出願の実施形態は、独立請求項および従属請求項に従って符号化および復号するための装置および方法を提供する。
上記および他の目的は、独立請求項および従属請求項の主題によって達成される。さらなる実装形態が、従属請求項、説明、および図から明らかである。
本発明の実施形態は、独立請求項の特徴によって定義され、本実施形態のさらに有利な実装形態は、従属請求項の特徴によって定義される。
本開示の一態様によれば、ビデオフレームのイントラまたはインター予測処理のための方法が提供され、方法は、参照サンプルを取得するステップと、サブピクセルオフセットの値を取得するステップと、予測サンプル値を取得するためにサブピクセル4タップ補間フィルタを使用して参照サンプルをフィルタ処理するステップとを備え、サブピクセル4タップ補間フィルタのフィルタ係数は、
Figure 0007293361000001
を満たし、pは、サブピクセルオフセットの値の分数部分であり、c0、c1、c2、およびc3は、サブピクセル4タップ補間フィルタのフィルタ係数である。
例示的な一実装形態では、参照サンプルは、参照サンプルのアレイに対応するref[x]として参照されてよく、
ref[x]=p[-1-refIdx+x][-1-refIdx](ただし、x=0..nTbW+refIdx+1)
であり、「p」は、サンプル値を含むx-y 2次元アレイp[x][y]を指す。使用される参照サンプルの個数は、少なくとも1個であってよい。別の例では、参照サンプルの個数は4個であってよい。
例示的な一実装形態では、取得されるサブピクセルオフセット値は、
(y+1+refIdx)*intraPredAngle
として参照されてよく、「IntraPredAngle」はイントラ予測角度の値である。
例示的な一実装形態では、予測サンプル値「predSamples[x][y]」は、
Figure 0007293361000002
によって取得されてよく、fT[i]はフィルタ係数を指す。これらの係数は、それぞれ、fGおよびfCとして参照される、インター予測のためのルーマまたはクロマフィルタ係数であってよい。
フィルタ係数がルーマであるのかそれともクロマであるのかという選択は、たとえば、
fT[j]=filterFlag ? fG[iFact][j] : fC[iFact][j]
のように、フラグ「filterFlag」の使用および設定によって実施されてよく、
iFact=((y+1+refIdx)*intraPredAngle)&31
である。
値「31」は、サブピクセルオフセット値の分数部分を指し、「31」とは異なる他の値を取ることがある。フィルタ係数fG(ルーマ)および/またはfC(クロマ)の値は、4タップフィルタのフィルタ係数に対する上記の分析的表現を使用して、分析的にオンザフライで取得され得る。したがって、フィルタ係数はサブピクセルオフセット値に従って規定される。
したがって、フィルタ係数は、LUTからのフィルタ係数のそれぞれの値にアクセスすることなく取得され、むしろ、計算によって取得される。
代替として、フィルタ係数は上記の式を使用して計算されてよく、値はLUTの中に記憶されてよい。
本開示の一態様によれば、サブピクセル4タップ補間フィルタのフィルタ係数は、次のような表、すなわち、
Figure 0007293361000003
Figure 0007293361000004
の中で規定される。
本開示の一態様によれば、ビデオフレームのイントラまたはインター予測処理のための方法が提供され、方法は、参照サンプルを取得するステップと、サブピクセルオフセットの値を取得するステップと、予測サンプル値を取得するためにサブピクセル4タップ補間フィルタを使用して参照サンプルをフィルタ処理するステップとを備え、サブピクセル4タップ補間フィルタのフィルタ係数は、次のように、すなわち、
Figure 0007293361000005
のように規定され、pは、サブピクセルオフセットの値の分数部分であり、c0、c1、c2、およびc3は、フィルタ係数である。
例示的な一実装形態では、フィルタ係数の値はLUTの中に記憶され得る。このことは、サブピクセル補間フィルタ処理のためにフィルタ係数のそれぞれの値がLUTからフェッチされることになることを意味する。
図23は、イントラ/インター予測処理のフローチャートを示す。ステップ2301において、参照サンプルが取得される。参照サンプルは、1つまたは複数の参照サンプルを含んでよい。ステップ2302において、サブピクセルオフセット値が、次いで、取得される。ステップ2303において、参照サンプルは、次いで、フィルタ係数{ci}(ただし、i=0、...3)を有するサブピクセル補間フィルタを使用してフィルタ処理される。これは、4タップフィルタおよび/または4ポイントフィルタと呼ばれる。
フィルタ係数は、サブピクセルオフセット値の所与の分数部分pを用いた分析的表現から取得され得る。フィルタ係数はまた、p値を参照してLUTから取得され得る。
本開示の一態様によれば、pのビットは0に設定される。
本開示の一態様によれば、pが1だけインクリメントされ、その後、インクリメントされたpの下位ビットが0に設定されてから、前記pが使用されてフィルタ係数を取得する。
本開示の一態様によれば、フィルタ係数を取得することは、
Figure 0007293361000006
に従ってフィルタ係数を計算するステップを備える。このことは、以前のフィルタ係数ciからフィルタ係数ci+1を計算するという利点をもたらし得る。このことは、フィルタ係数を計算するための時間をさらに短縮し得る。
本開示の一態様によれば、ビデオコーディングの方法が提供され、方法は、サブピクセル4タップ補間フィルタを使用してビデオフレームの参照サンプルをフィルタ処理するステップを備える、ビデオフレームのブロックのイントラ予測処理を備え、サブピクセル4タップ補間フィルタはフィルタの結合であり、フィルタのうちの少なくとも1つのフィルタ係数は、
Figure 0007293361000007
を満たし、pは、サブピクセルオフセットの分数サンプル位置であり、c0、c1、c2、およびc3は、フィルタ係数である。
図24は、ビデオコーディングのフローチャートを示す。ステップ2401において、サブピクセル4タップ補間フィルタを使用してブロックの参照サンプルをフィルタ処理するステップによって、イントラ予測処理が実行される。
本開示の一態様によれば、サブピクセル4タップ補間フィルタは、2つの位相に依存する線形フィルタと低域フィルタとの並列結合である平滑化フィルタである。
本開示の一態様によれば、サブピクセル4タップ補間フィルタは、1つの位相に依存する線形フィルタと強度変動高域フィルタとの並列結合であるシャープ化フィルタである。
本開示の一態様によれば、強度変動高域フィルタは、位相に依存しない高域有限インパルス応答FIRフィルタであり、その出力が、位相に依存する強度パラメータで乗算される。
本開示の前の態様のうちのいずれか1つによれば、pの下位ビットは0に設定される。
本開示の一態様によれば、pが1だけインクリメントされ、その後、インクリメントされた値の下位ビットが0に設定されてから、この値が使用されて補間フィルタ係数を導出する。
本開示の一態様によれば、強度変動高域フィルタの出力に対してクリッピング動作が実行される。
本開示の一態様によれば、ビデオフレームのイントラまたはインター予測処理のための装置が提供され、装置は、参照サンプルを取得するように構成された参照サンプル取得ユニットと、サブピクセルオフセットの値を取得するように構成されたサブピクセルオフセット値取得ユニットと、予測サンプル値を取得するために参照サンプルをフィルタ処理するように構成されたサブピクセル4タップ補間フィルタとを含み、サブピクセル4タップ補間フィルタのフィルタ係数は、
Figure 0007293361000008
を満たし、pは、サブピクセルオフセットの値の分数部分であり、c0、c1、c2、およびc3は、サブピクセル4タップ補間フィルタのフィルタ係数である。
本開示の一態様によれば、サブピクセル4タップ補間フィルタのフィルタ係数は、次のような表、すなわち、
Figure 0007293361000009
Figure 0007293361000010
の中で規定される。
本開示の一態様によれば、ビデオフレームのイントラまたはインター予測処理のための装置が提供され、装置は、参照サンプルを取得するように構成された参照サンプル取得ユニットと、サブピクセルオフセットの値を取得するように構成されたサブピクセルオフセット値取得ユニットと、予測サンプル値を取得するために参照サンプルをフィルタ処理するように構成されたサブピクセル4タップ補間フィルタとを備え、サブピクセル4タップ補間フィルタのフィルタ係数は、次のように、すなわち、
Figure 0007293361000011
のように規定され、pは、サブピクセルオフセットの値の分数部分であり、c0、c1、c2、およびc3は、フィルタ係数である。
図25は、参照サンプル取得ユニット2510、サブピクセルオフセット値取得ユニット2520、およびサブピクセル補間フィルタ2530を備える、イントラ/インター処理モジュール2500の概略図を示す。
本開示の一態様によれば、ビデオコーディングのための装置が提供され、装置は、ビデオフレームのブロックをイントラ予測するように構成されたイントラ予測処理ユニットと、ビデオフレームの参照サンプルをフィルタ処理するように構成されたサブピクセル4タップ補間フィルタとを備え、サブピクセル4タップ補間フィルタはフィルタの結合であり、フィルタのうちの少なくとも1つのフィルタ係数は、
Figure 0007293361000012
を満たし、pは、サブピクセルオフセットの分数サンプル位置であり、c0、c1、c2、およびc3は、フィルタ係数である。
図26は、イントラ予測処理ユニット2610およびサブピクセル補間フィルタ2620を備える、ビデオコーディングモジュール2600の概略図を示す。
本開示の一態様によれば、本開示の前の態様のうちのいずれか1つによる方法を実行するための処理回路構成を備えるエンコーダ(20)が提供される。
本開示の一態様によれば、本開示の前の態様のうちのいずれか1つによる方法を実行するための処理回路構成を備えるデコーダ(30)が提供される。
本開示の一態様によれば、本開示の前の態様のうちのいずれか1つによる方法を実行するためのプログラムコードを備えるコンピュータプログラム製品が提供される。
本開示の一態様によれば、1つまたは複数のプロセッサと、プロセッサに結合されプロセッサによる実行のためのプログラミングを記憶する非一時的コンピュータ可読記憶媒体とを備える、デコーダが提供され、プログラミングは、プロセッサによって実行されたとき、本開示の前の態様のうちのいずれか1つによる方法を実行するようにデコーダを構成する。
本開示の一態様によれば、1つまたは複数のプロセッサと、プロセッサに結合されプロセッサによる実行のためのプログラミングを記憶する非一時的コンピュータ可読記憶媒体とを備える、エンコーダが提供され、プログラミングは、プロセッサによって実行されたとき、本開示の前の態様のうちのいずれか1つによる方法を実行するようにエンコーダを構成する。
前の態様のうちのいずれによる本開示も、ビデオフレームのイントラ/インター予測を高速に実行するという利点をもたらし得る。なぜなら、補間フィルタのフィルタ係数が分析的に取得され、すなわち、前記係数がオンザフライで計算されるからである。このことは、メモリから係数を読み取るためのアクセス時間を必要とする、係数をルックアップテーブル(LUT:look-up table)の中に記憶することを回避する。
したがって、予測は、より効率的になり、必要とされるメモリに対してより少ない需要しか求めない。このことはまた、予測の低コスト実装を可能にする。その上、分析的なフィルタ係数{ci}が分数サンプル位置pにおいて線形であり、かつ2での除算演算を伴うので、それぞれの演算は、高速な低レベルビット演算を採用することによって効率的に実行され得る。ビット演算を実行するための、またフィルタ係数を計算するための、それぞれの時間は、LUTからの記憶された係数にアクセスするための時間よりも短い。したがって、レイテンシが低減される。
その上、フィルタ係数の特定の分析構造は、フィルタユニットの低複雑度実装という利点をもたらし得る。加えて、異なるサブピクセル位置に対するフィルタ応答(すなわち、周波数応答)は、大きさおよび位相に関して一致し、特に高周波における応答の中のアーテファクトを回避する。フィルタ係数の線形性は、ハードウェアを再使用するという利点をもたらし得る。
1つまたは複数の実施形態の詳細が、添付図面および以下の説明において記載される。他の特徴、目的、および利点は、説明、図面、および請求項から明らかとなろう。
本発明は、ハードウェアおよび/またはソフトウェアで実装され得る。
明快のために、本開示の範囲内の新たな実施形態を作成するために、上記の実施形態のうちのいずれか1つが、上記の他の実施形態のうちのいずれか1つまたは複数と組み合わせられてよい。
これらおよび他の特徴は、添付図面および特許請求の範囲とともに理解される以下の発明を実施するための形態から、より明瞭に理解されよう。
以下では、本発明の実施形態が、添付の図面(figure)および図面(drawing)を参照しながらより詳細に説明される。
本発明の実施形態を実施するように構成されたビデオコーディングシステムの一例を示すブロック図である。 本発明の実施形態を実施するように構成されたビデオコーディングシステムの別の例を示すブロック図である。 本発明の実施形態を実施するように構成されたビデオエンコーダの一例を示すブロック図である。 本発明の実施形態を実施するように構成されたビデオデコーダの例示的な構造を示すブロック図である。 符号化装置または復号装置の一例を示すブロック図である。 符号化装置または復号装置の別の例を示すブロック図である。 HEVCにおける角度イントラ予測方向および関連するイントラ予測モードを示す図である。 JEMにおける角度イントラ予測方向および関連するイントラ予測モードを示す図である。 VTM-3.0およびVVC仕様書ドラフトv.3における角度イントラ予測方向および関連するイントラ予測モードを示す図である。 参照サンプルのセットが補間フィルタに入力される、平滑化のためのフィルタ結合の一例を示す図である。 クリッピング動作を含む、シャープ化補間フィルタ処理のためのフィルタの例示的な結合を示す図である。 クリッピング動作の代替位置を伴う、シャープ化補間フィルタ処理のためのフィルタの例示的な結合を示す図である。 調整可能な強度のフィルタを使用する、シャープ化補間フィルタ処理のためのフィルタの例示的な結合を示す図である。 調整可能な強度のフィルタを使用する、シャープ化補間フィルタ処理のためのフィルタの別の例示的な結合を示す図である。 補間フィルタ係数のLUTベース表現と分析的表現との様々な組合せを示す図である。 補間フィルタ係数のLUTベース表現と分析的表現との様々な組合せを示す図である。 補間フィルタ係数のLUTベース表現と分析的表現との様々な組合せを示す図である。 補間フィルタ係数のLUTベース表現と分析的表現との様々な組合せを示す図である。 補間フィルタ係数のLUTベース表現と分析的表現との様々な組合せを示す図である。 補間フィルタ係数のLUTベース表現と分析的表現との様々な組合せを示す図である。 補間フィルタ係数のLUTベース表現と分析的表現との様々な組合せを示す図である。 補間フィルタ係数のLUTベース表現と分析的表現との様々な組合せを示す図である。 補間フィルタ係数のLUTベース表現と分析的表現との様々な組合せを示す図である。 係数計算方法の例示的な実装形態を示す図である。 イントラ/インター予測処理のフローチャートである。 ビデオコーディングのフローチャートである。 参照サンプル取得ユニット、サブピクセルオフセット値取得ユニット、およびサブピクセル補間フィルタを含む、イントラ/インター予測処理モジュールのブロック図である。 インター予測処理ユニットおよびサブピクセル補間フィルタを含む、ビデオコーディングモジュールのブロック図である。
以下では、同一の参照符号は、別段に明示的に指定されない場合、同一のまたは少なくとも機能的に均等な特徴を指す。
以下の説明では、本開示の一部を形成し、かつ本発明の実施形態の特定の態様または本発明の実施形態が使用され得る特定の態様を例として示す、添付の図への参照が行われる。本発明の実施形態が、他の態様において使用されてよく、図の中に示されない構造的または論理的な変更を備えてよいことが理解される。したがって、以下の発明を実施するための形態は限定的な意味で理解されるべきでなく、本発明の範囲は添付の請求項によって定義される。
たとえば、説明する方法に関する開示が、本方法を実行するように構成された対応するデバイスまたはシステムに対しても当てはまり得ることが理解され、逆も同様である。たとえば、1つまたは複数の特定の方法ステップが説明される場合、対応するデバイスは、説明する1つまたは複数の方法ステップを実行するための1つまたは複数のユニット(たとえば、1つもしくは複数のステップを実行する1つのユニット、または複数のステップのうちの1つもしくは複数を各々が実行する複数のユニット)、たとえば、機能ユニットを、そのような1つまたは複数のユニットが明示的に説明されないかまたは図に示されないとしても含むことがある。一方、たとえば、1つまたは複数のユニット、たとえば、機能ユニットに基づいて、特定の装置が説明される場合、そのような1つまたは複数のステップが明示的に説明されないかまたは図に示されないとしても、対応する方法は、1つまたは複数のユニットの機能を実行するための1つのステップ(たとえば、1つもしくは複数のユニットの機能を実行する1つのステップ、または複数のユニットのうちの1つもしくは複数の機能を各々が実行する複数のステップ)を含んでよい。さらに、別段に特に記載されていない限り、本明細書で説明する様々な例示的な実施形態および/または態様の特徴が互いに組み合わせられてよいことが理解される。
ビデオコーディングとは、通常、ビデオまたはビデオシーケンスを形成する、ピクチャのシーケンスの処理を指す。「ピクチャ」という用語の代わりに、ビデオコーディングの分野では「フレーム」または「画像」という用語が同義語として使用され得る。ビデオコーディング(または、一般にコーディング)は、2つの部分、ビデオ符号化およびビデオ復号を備える。ビデオ符号化は、ソース側において実行され、通常、ビデオピクチャを表現するのに必要とされるデータの量を(より効率的な記憶および/または送信のために)低減するために、(たとえば、圧縮によって)元のビデオピクチャを処理することを備える。ビデオ復号は、宛先側において実行され、通常、ビデオピクチャを再構成するための、エンコーダと比較して逆の処理を備える。ビデオピクチャ(または、一般にピクチャ)の「コーディング」に言及する実施形態は、ビデオピクチャまたはそれぞれのビデオシーケンスの「符号化」または「復号」に関係すると理解されるものとする。符号化部分と復号部分との組合せは、コーデック(コーディングおよび復号)とも呼ばれる。
可逆的ビデオコーディングの場合には、元のビデオピクチャは再構成され得、すなわち、(記憶または送信の間に伝送損失または他のデータ損失がないと想定すると)再構成ビデオピクチャは元のビデオピクチャと同じ品質を有する。不可逆的ビデオコーディングの場合には、ビデオピクチャを表現するデータの量を低減するために、たとえば、量子化によって、さらなる圧縮が実行され、ビデオピクチャは、デコーダにおいて完全に再構成され得るとは限らず、すなわち、再構成ビデオピクチャの品質は元のビデオピクチャの品質と比較して低く、すなわち悪い。
いくつかのビデオコーディング規格は、「不可逆的ハイブリッドビデオコーデック」のグループに属する(すなわち、サンプル領域における空間予測および時間予測と、変換領域において量子化を適用するための2D変換コーディングとを組み合わせる)。ビデオシーケンスの各ピクチャは、通常、重複しないブロックのセットに区分され、コーディングは、通常、ブロックレベルにおいて実行される。言い換えれば、エンコーダにおいて、ビデオは、通常、たとえば、予測ブロックを生成するために空間(ピクチャ内)予測および/または時間(ピクチャ間)予測を使用すること、現在ブロック(現在処理される/処理されるべきブロック)から予測ブロックを減算して残差ブロックを取得すること、残差ブロックを変換すること、ならびに送信されるべきデータの量を低減(圧縮)するために変換領域において残差ブロックを量子化することによって、ブロック(ビデオブロック)レベルにおいて処理すなわち符号化され、その一方で、デコーダにおいて、表現のために現在ブロックを再構成するために、エンコーダと比較して逆の処理が符号化または圧縮されたブロックに適用される。さらに、エンコーダは、後続のブロックを処理すなわちコーディングするために、その両方が同一の予測(たとえば、イントラ予測およびインター予測)および/または再構成を生成するように、デコーダ処理ループを複製する。
以下では、ビデオコーディングシステム10、ビデオエンコーダ20、およびビデオデコーダ30の実施形態が、図1~図3に基づいて説明される。
図1Aは、この本出願の技法を利用し得る例示的なコーディングシステム10、たとえば、ビデオコーディングシステム10(または、ショートコーディングシステム10)を示す概略ブロック図である。ビデオコーディングシステム10のビデオエンコーダ20(または、ショートエンコーダ20)およびビデオデコーダ30(または、ショートデコーダ30)は、本出願で説明する様々な例による技法を実行するように構成され得るデバイスの例を表す。
図1Aに示すように、コーディングシステム10は、たとえば、符号化ピクチャデータ13を復号するための宛先デバイス14に、符号化ピクチャデータ21を提供するように構成された、ソースデバイス12を備える。
ソースデバイス12は、エンコーダ20を備え、追加として、すなわち随意に、ピクチャソース16、プリプロセッサ(または、前処理ユニット)18、たとえば、ピクチャプリプロセッサ18、および通信インターフェースまたは通信ユニット22を備えてよい。
ピクチャソース16は、任意の種類のピクチャキャプチャデバイス、たとえば、実世界ピクチャをキャプチャするためのカメラ、ならびに/あるいは任意の種類のピクチャ生成デバイス、たとえば、コンピュータアニメーション化されたピクチャを生成するためのコンピュータグラフィックスプロセッサ、または実世界ピクチャ、コンピュータ生成されたピクチャ(たとえば、スクリーンコンテンツ、仮想現実(VR)ピクチャ)、および/もしくはそれらの任意の組合せ(たとえば、拡張現実(AR)ピクチャ)を取得および/もしくは提供するための任意の種類の他のデバイスを備えてよく、またはそれらであってもよい。ピクチャソースは、上述のピクチャのうちのいずれかを記憶する任意の種類のメモリまたはストレージであってよい。
プリプロセッサ18、および前処理ユニット18によって実行される処理と対比して、ピクチャまたはピクチャデータ17は、未加工ピクチャまたは未加工ピクチャデータ17と呼ばれることもある。
プリプロセッサ18は、(未加工)ピクチャデータ17を受信し、ピクチャデータ17に対して前処理を実行して、前処理済みのピクチャ19または前処理済みのピクチャデータ19を取得するように構成される。プリプロセッサ18によって実行される前処理は、たとえば、トリミング、(たとえば、RGBからYCbCrへの)カラーフォーマット変換、色補正、またはノイズ除去を備えてよい。前処理ユニット18が随意の構成要素であってよいことが理解され得る。
ビデオエンコーダ20は、前処理済みのピクチャデータ19を受信し、符号化ピクチャデータ21を提供するように構成される(さらなる詳細が、たとえば図2に基づいて、以下で説明される)。
ソースデバイス12の通信インターフェース22は、符号化ピクチャデータ21を受信し、記憶または直接の再構成のために、通信チャネル13を介して別のデバイス、たとえば、宛先デバイス14または任意の他のデバイスへ、符号化ピクチャデータ21(または、それらのさらに処理された任意のバージョン)を送信するように構成され得る。
宛先デバイス14は、デコーダ30(たとえば、ビデオデコーダ30)を備え、追加として、すなわち随意に、通信インターフェースまたは通信ユニット28、ポストプロセッサ32(または、後処理ユニット32)、およびディスプレイデバイス34を備えてよい。
宛先デバイス14の通信インターフェース28は、たとえば、ソースデバイス12から直接、または任意の他のソース、たとえば、記憶デバイス、たとえば、符号化ピクチャデータ記憶デバイスから、符号化ピクチャデータ21(または、それらのさらに処理された任意のバージョン)を受信し、符号化ピクチャデータ21をデコーダ30に提供するように構成される。
通信インターフェース22および通信インターフェース28は、ソースデバイス12と宛先デバイス14との間の直接通信リンク、たとえば、直接有線接続または直接ワイヤレス接続を介して、あるいは任意の種類のネットワーク、たとえば、有線ネットワークもしくはワイヤレスネットワークもしくはそれらの任意の組合せ、または任意の種類のプライベートネットワークおよびパブリックネットワーク、またはそれらの任意の種類の組合せを介して、符号化ピクチャデータ21または符号化データ13を送信または受信するように構成され得る。
通信インターフェース22は、たとえば、適切なフォーマット、たとえば、パケットの中に、符号化ピクチャデータ21をパッケージ化し、かつ/または通信リンクもしくは通信ネットワークを介した送信のために任意の種類の送信符号化もしくは送信処理を使用して符号化ピクチャデータを処理するように構成され得る。
通信インターフェース22の相対物を形成する通信インターフェース28は、たとえば、送信されたデータを受信し、任意の種類の対応する送信復号もしくは送信処理および/またはデパッケージングを使用して送信データを処理して符号化ピクチャデータ21を取得するように構成され得る。
通信インターフェース22と通信インターフェース28の両方が、ソースデバイス12から宛先デバイス14を指し示す、図1Aの中の通信チャネル13に対する矢印によって示されるような単方向の通信インターフェース、または双方向の通信インターフェースとして構成されてよく、たとえば、通信リンクおよび/またはデータ送信、たとえば、符号化ピクチャデータ送信に関係する、任意の他の情報を認識応答および交換するために、たとえば、接続をセットアップするためのメッセージを送るとともに受信するように構成されてよい。
デコーダ30は、符号化ピクチャデータ21を受信し、復号ピクチャデータ31または復号ピクチャ31を提供するように構成される(さらなる詳細は、たとえば、図3または図5に基づいて、以下で説明される)。
宛先デバイス14のポストプロセッサ32は、復号ピクチャデータ31(再構成ピクチャデータとも呼ばれる)、たとえば、復号ピクチャ31を後処理して、後処理されたピクチャデータ33、たとえば、後処理されたピクチャ33を取得するように構成される。後処理ユニット32によって実行される後処理は、たとえば、ディスプレイデバイス34による、たとえば、表示用の復号ピクチャデータ31を準備するための、たとえば、(たとえば、YCbCrからRGBへの)カラーフォーマット変換、色補正、トリミング、もしくはリサンプリング、または任意の他の処理を備えてよい。
宛先デバイス14のディスプレイデバイス34は、たとえば、ユーザまたは見ている人に、ピクチャを表示するための、後処理されたピクチャデータ33を受信するように構成される。ディスプレイデバイス34は、再構成ピクチャを表現するための任意の種類のディスプレイ、たとえば、統合型または外部のディスプレイまたはモニタであってよく、またはそれを備えてもよい。ディスプレイは、たとえば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、液晶オンシリコン(LCoS)、デジタル光プロセッサ(DLP)、または任意の種類の他のディスプレイを備えてよい。
図1Aはソースデバイス12および宛先デバイス14を別個のデバイスとして示すが、デバイスの実施形態はまた、ソースデバイス12または対応する機能と宛先デバイス14または対応する機能の、両方または両方の機能を備えてよい。そのような実施形態では、ソースデバイス12または対応する機能および宛先デバイス14または対応する機能は、同じハードウェアおよび/またはソフトウェアを使用して、あるいは別個のハードウェアおよび/もしくはソフトウェアまたはそれらの任意の組合せによって、実施され得る。
説明に基づいて当業者にとって明らかとなるように、異なるユニットの機能または図1Aに示すようなソースデバイス12内および/もしくは宛先デバイス14内の機能の存在および(正確な)分割は、実際のデバイスおよび適用例に応じて変わることがある。
エンコーダ20(たとえば、ビデオエンコーダ20)もしくはデコーダ30(たとえば、ビデオデコーダ30)、またはエンコーダ20とデコーダ30の両方は、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、個別論理、ハードウェア、ビデオコーディング専用、またはそれらの任意の組合せなどの、図1Bに示すような処理回路構成を介して実装され得る。エンコーダ20は、図2のエンコーダ20に関して説明するような様々なモジュールおよび/または本明細書で説明する任意の他のエンコーダシステムもしくはサブシステムを具現するために、処理回路構成46を介して実装され得る。デコーダ30は、図3のデコーダ30に関して説明するような様々なモジュールおよび/または本明細書で説明する任意の他のデコーダシステムもしくはサブシステムを具現するために、処理回路構成46を介して実装され得る。処理回路構成は、後で説明するような様々な動作を実行するように構成され得る。図5に示すように、技法が部分的にソフトウェアで実施される場合、デバイスは、ソフトウェアのための命令を好適な非一時的コンピュータ可読記憶媒体の中に記憶してよく、本開示の技法を実行するために1つまたは複数のプロセッサを使用してハードウェアで命令を実行してよい。ビデオエンコーダ20およびビデオデコーダ30のいずれも、たとえば、図1Bに示すように、組み合わせられたエンコーダ/デコーダ(コーデック)の一部として単一のデバイスの中に統合され得る。
ソースデバイス12および宛先デバイス14は、任意の種類のハンドヘルドまたは固定のデバイス、たとえば、ノートブックまたはラップトップコンピュータ、モバイルフォン、スマートフォン、タブレットまたはタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビジョン、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーム機、(コンテンツサービスサーバまたはコンテンツ配信サーバなどの)ビデオストリーミングデバイス、ブロードキャスト受信機デバイス、ブロードキャスト送信機デバイスなどを含む、幅広いデバイスのうちのいずれかを備えてよく、オペレーティングシステムを使用しなくてよく、または任意の種類のオペレーティングシステムを使用してもよい。場合によっては、ソースデバイス12および宛先デバイス14はワイヤレス通信のために装備されてよい。したがって、ソースデバイス12および宛先デバイス14はワイヤレス通信デバイスであってよい。
場合によっては、図1Aに示すビデオコーディングシステム10は一例にすぎず、本出願の技法は、必ずしも符号化デバイスと復号デバイスとの間の任意のデータ通信を含むとは限らない、ビデオコーディング設定(たとえば、ビデオ符号化またはビデオ復号)に適用されてよい。他の例では、データは、ローカルメモリから取り出される、ネットワークを介してストリーミングされるなどである。ビデオ符号化デバイスは、データを符号化するとともにメモリに記憶してよく、かつ/またはビデオ復号デバイスは、データをメモリから取り出すとともに復号してよい。いくつかの例では、互いに通信しないが、単にデータをメモリに符号化し、かつ/またはデータをメモリから取り出すとともに復号するデバイスによって、符号化および復号が実行される。
説明の便宜上、たとえば、高効率ビデオコーディング(HEVC:High-Efficiency Video Coding)への、または多用途ビデオコーディング(VVC:Versatile Video Coding)、すなわち、ITU-Tビデオコーディングエキスパートグループ(VCEG:Video Coding Experts Group)とISO/IECモーションピクチャエキスパートグループ(MPEG:Motion Picture Experts Group)とのビデオコーディング共同研究部会(JCT-VC:Joint Collaboration Team on Video Coding)によって策定された次世代ビデオコーディング規格の参照ソフトウェアへの参照によって、本発明の実施形態が本明細書で説明される。本発明の実施形態がHEVCまたはVVCに限定されないことを、当業者は理解されよう。
エンコーダおよび符号化方法
図2は、本出願の技法を実施するように構成される例示的なビデオエンコーダ20の概略ブロック図を示す。図2の例では、ビデオエンコーダ20は、入力部201(または、入力インターフェース201)、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210および逆変換処理ユニット212、再構成ユニット214、ループフィルタユニット220、復号ピクチャバッファ(DPB:Decoded Picture Buffer)230、モード選択ユニット260、エントロピー符号化ユニット270、ならびに出力部272(または、出力インターフェース272)を備える。モード選択ユニット260は、インター予測ユニット244、イントラ予測ユニット254、および区分ユニット262を含んでよい。インター予測ユニット244は、動き推定ユニットおよび動き補償ユニット(図示せず)を含んでよい。図2に示すようなビデオエンコーダ20は、ハイブリッドビデオエンコーダ、すなわちハイブリッドビデオコーデックによるビデオエンコーダと呼ばれることもある。
残差計算ユニット204、変換処理ユニット206、量子化ユニット208、モード選択ユニット260は、エンコーダ20の順方向信号経路を形成するものとして参照されてよく、その一方で、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ(DPB)230、インター予測ユニット244、およびイントラ予測ユニット254は、ビデオエンコーダ20の逆方向信号経路を形成するものとして参照されてよく、ビデオエンコーダ20の逆方向信号経路はデコーダの信号経路に対応する(図3の中のビデオデコーダ30を参照)。逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループフィルタ220、復号ピクチャバッファ(DPB)230、インター予測ユニット244、およびイントラ予測ユニット254はまた、ビデオエンコーダ20の「ビルトインデコーダ」を形成することが参照される。
ピクチャおよびピクチャ区分(ピクチャおよびブロック)
エンコーダ20は、ピクチャ17(または、ピクチャデータ17)、たとえば、ビデオまたはビデオシーケンスを形成するピクチャのシーケンスのピクチャを、たとえば、入力部201を介して受信するように構成され得る。受信されるピクチャまたはピクチャデータはまた、前処理済みのピクチャ19(または、前処理済みのピクチャデータ19)であってよい。簡単のために、以下の説明はピクチャ17を参照する。ピクチャ17は、現在ピクチャ、または(同じビデオシーケンス、すなわち、やはり現在ピクチャを備えるビデオシーケンスの、他のピクチャ、たとえば、前に符号化および/または復号されたピクチャから、現在ピクチャを区別するために、ビデオコーディングでは特に)コーディングされるべきピクチャと呼ばれることもある。
(デジタル)ピクチャは、強度値を有するサンプルの2次元のアレイまたは行列であるか、またはそのように見なされ得る。アレイの中のサンプルは、ピクセル(短い形式のピクチャ要素)またはペルと呼ばれることもある。アレイまたはピクチャの水平および垂直の方向(または、軸)におけるサンプルの個数は、ピクチャのサイズおよび/または解像度を規定する。色の表現のために、通常、3つの色成分が採用され、すなわち、ピクチャは、3つのサンプルアレイが表されてよく、またはそれらを含んでよい。RBGフォーマットまたは色空間の中で、ピクチャは、対応する赤色、緑色、および青色のサンプルアレイを備える。しかしながら、ビデオコーディングでは、各ピクセルは、通常、ルミナンスおよびクロミナンスのフォーマットまたは色空間、たとえば、YCbCrで表され、YCbCrは、Y(時々、代わりにLも使用される)によって示されるルミナンス成分、ならびにCbおよびCrによって示される2つのクロミナンス成分を備える。ルミナンス(または、ショートルーマ)成分Yは、輝度または(たとえば、グレースケールピクチャにおけるような)グレーレベル強度を表し、2つのクロミナンス(または、ショートクロマ)成分CbおよびCrは、色度または色情報成分を表す。したがって、YCbCrフォーマットをなすピクチャは、ルミナンスサンプル値(Y)のルミナンスサンプルアレイ、およびクロミナンス値(CbおよびCr)の2つのクロミナンスサンプルアレイを備える。RGBフォーマットをなすピクチャは、YCbCrフォーマットに変換(convert)または変換(transform)されてよく、逆も同様であり、そのプロセスは色変換(color transformation)または色変換(color conversion)とも呼ばれる。ピクチャがモノクロである場合、ピクチャはルミナンスサンプルアレイのみを備えてよい。したがって、ピクチャは、たとえば、モノクロフォーマットでのルーマサンプルのアレイ、または4:2:0、4:2:2、および4:4:4カラーフォーマットでの、ルーマサンプルのアレイおよびクロマサンプルの2つの対応するアレイであってよい。
ビデオエンコーダ20の実施形態は、ピクチャ17を複数の(通常は重複しない)ピクチャブロック203に区分するように構成されたピクチャ区分ユニット(図2に示さず)を備えてよい。これらのブロックは、ルートブロック、マクロブロック(H.264/AVC)、またはコーディングツリーブロック(CTB:Coding Tree Block)もしくはコーディングツリーユニット(CTU:Coding Tree Unit)(H.265/HEVCおよびVVC)と呼ばれることもある。ピクチャ区分ユニットは、ビデオシーケンスのすべてのピクチャに対して同じブロックサイズを、かつブロックサイズを規定する対応するグリッドを使用するか、あるいはピクチャまたはピクチャのサブセットもしくはグループの間でブロックサイズを変更し、各ピクチャを対応するブロックに区分するように構成され得る。
さらなる実施形態では、ビデオエンコーダは、ピクチャ17のブロック203、たとえば、ピクチャ17を形成する1つの、複数の、または全部のブロックを、直接受信するように構成され得る。ピクチャブロック203は、現在ピクチャブロック、またはコーディングされるべきピクチャブロックと呼ばれることもある。
ピクチャ17のように、ピクチャブロック203は再び、強度値(サンプル値)を有するサンプルの、ただしピクチャ17よりも寸法が小さい、2次元のアレイまたは行列であるか、またはそのように見なされ得る。言い換えれば、ブロック203は、たとえば、1つのサンプルアレイ(たとえば、モノクロピクチャ17の場合にはルーマアレイ、またはカラーピクチャの場合にはルーマアレイもしくはクロマアレイ)、または3つのサンプルアレイ(たとえば、カラーピクチャ17の場合にはルーマアレイおよび2つのクロマアレイ)、あるいは適用されるカラーフォーマットに応じて任意の他の個数および/または種類のアレイを備えてよい。ブロック203の水平および垂直の方向(または、軸)におけるサンプルの個数は、ブロック203のサイズを規定する。したがって、ブロックは、たとえば、サンプルのM×N(M列×N行)アレイ、または変換係数のM×Nアレイであってよい。
図2に示すようなビデオエンコーダ20の実施形態は、ピクチャ17をブロックごとに符号化するように構成されてよく、たとえば、符号化および予測がブロック203単位で実行される。
残差計算
残差計算ユニット204は、たとえば、サンプルごとに(ピクセルごとに)ピクチャブロック203のサンプル値から予測ブロック265のサンプル値を減算することによって、ピクチャブロック203および予測ブロック265(予測ブロック265についてのさらなる詳細は後で提供される)に基づいて残差ブロック205(残差205とも呼ばれる)を計算して、サンプル領域における残差ブロック205を取得するように構成され得る。
変換
変換処理ユニット206は、残差ブロック205のサンプル値に対して変換、たとえば、離散コサイン変換(DCT)または離散サイン変換(DST)を適用して、変換領域における変換係数207を取得するように構成され得る。変換係数207は、変換残差係数と呼ばれることもあり、変換領域における残差ブロック205を表してよい。
変換処理ユニット206は、H.265/HEVCに対して指定された変換などのDCT/DSTの整数近似を適用するように構成され得る。直交DCT変換と比較して、そのような整数近似は、通常、いくつかの係数によってスケーリングされる。順変換および逆変換によって処理される残差ブロックのノルムを保存するために、変換プロセスの一部として追加のスケーリング係数が適用される。スケーリング係数は、通常、シフト演算のためにスケーリング係数が2のべき乗であること、変換係数のビット深度、確度と実装コストとの間のトレードオフなどのような、いくつかの制約に基づいて選ばれる。たとえば、逆変換処理ユニット212による、たとえば、逆変換(および、たとえば、ビデオデコーダ30における逆変換処理ユニット312による、対応する逆変換)に対して、特定のスケーリング係数が指定され、エンコーダ20における、たとえば、変換処理ユニット206による、順変換のための対応するスケーリング係数が、それに応じて指定され得る。
ビデオエンコーダ20の実施形態(それぞれ、変換処理ユニット206)は、たとえば、直接、またはエントロピー符号化ユニット270を介して符号化もしくは圧縮された、変換パラメータ、たとえば、1つまたは複数の変換のタイプを出力するように構成されてよく、その結果、たとえば、ビデオデコーダ30は、復号のために変換パラメータを受信および使用し得る。
量子化
量子化ユニット208は、たとえば、スカラー量子化またはベクトル量子化を適用することによって、変換係数207を量子化して量子化係数209を取得するように構成され得る。量子化係数209は、量子化変換係数209または量子化残差係数209と呼ばれることもある。
量子化プロセスは、変換係数207の一部または全部に関連するビット深度を低減し得る。たとえば、nビットの変換係数は、量子化の間にmビットの変換係数に切り捨てられてよく、ただし、nはmよりも大きい。量子化の程度は、量子化パラメータ(QP:Quantization Parameter)を調整することによって修正され得る。たとえば、スカラー量子化の場合、より細かいかまたはより粗い量子化を達成するために、様々なスケーリングが適用され得る。より小さい量子化ステップサイズは、より細かい量子化に対応し、その一方で、より大きい量子化ステップサイズは、より粗い量子化に対応する。適用可能な量子化ステップサイズは、量子化パラメータ(QP)によって示され得る。量子化パラメータは、たとえば、適用可能な量子化ステップサイズの既定のセットへのインデックスであってよい。たとえば、小さい量子化パラメータは、細かい量子化(小さい量子化ステップサイズ)に対応してよく、大きい量子化パラメータは、粗い量子化(大きい量子化ステップサイズ)に対応してよく、またはその逆も同様である。量子化は、量子化ステップサイズによる除算を含んでよく、たとえば、逆量子化ユニット210による、対応する逆量子化および/または逆の逆量子化は、量子化ステップサイズによる乗算を含んでよい。いくつかの規格、たとえば、HEVCによる実施形態は、量子化ステップサイズを決定するために量子化パラメータを使用するように構成され得る。概して、量子化ステップサイズは、除算を含む式の固定小数点近似を使用して、量子化パラメータに基づいて計算され得る。量子化ステップサイズおよび量子化パラメータに対する式の固定小数点近似において使用されるスケーリングのために修正されることがある、残差ブロックのノルムを復元するために、量子化および逆量子化に対して追加のスケーリング係数が導入されてよい。1つの例示的な実装形態では、逆変換および逆量子化のスケーリングが組み合わせられることがある。代替として、カスタマイズされた量子化テーブルが使用されてよく、たとえば、ビットストリームの中で、エンコーダからデコーダにシグナリングされてよい。量子化は不可逆的演算であり、増大する量子化ステップサイズとともに損失が増大する。
ビデオエンコーダ20の実施形態(それぞれ、量子化ユニット208)は、たとえば、直接、またはエントロピー符号化ユニット270を介して符号化された、量子化パラメータ(QP)を出力するように構成されてよく、その結果、たとえば、ビデオデコーダ30は、復号のために量子化パラメータを受信および適用し得る。
逆量子化
逆量子化ユニット210は、たとえば、量子化ユニット208と同じ量子化ステップサイズに基づいて、またはそれを使用して、量子化ユニット208によって適用される量子化方式の逆を適用することによって、量子化係数に対して量子化ユニット208の逆量子化を適用して逆量子化係数211を取得するように構成される。逆量子化係数211は、逆量子化残差係数211と呼ばれることもあり、- 量子化による損失に起因して通常は変換係数と同一でないが、- 変換係数207に対応し得る。
逆変換
逆変換処理ユニット212は、変換処理ユニット206によって適用される変換の逆変換、たとえば、逆離散コサイン変換(DCT)もしくは逆離散サイン変換(DST)、または他の逆変換を適用して、サンプル領域における再構成残差ブロック213(または、対応する逆量子化係数213)を取得するように構成される。再構成残差ブロック213は、変換ブロック213と呼ばれることもある。
再構成
再構成ユニット214(たとえば、加算回路(adder)または加算器(summer)214)は、たとえば、再構成残差ブロック213のサンプル値と予測ブロック265のサンプル値とを- サンプルごとに- 加算することによって、変換ブロック213(すなわち、再構成残差ブロック213)を予測ブロック265に加算してサンプル領域における再構成ブロック215を取得するように構成される。
フィルタ処理
ループフィルタユニット220(または、ショート「ループフィルタ」220)は、再構成ブロック215をフィルタ処理してフィルタ処理済みのブロック221を取得するように、または概して、再構成サンプルをフィルタ処理してフィルタ処理済みのサンプルを取得するように構成される。ループフィルタユニットは、たとえば、ピクセル遷移を平滑化するか、またはビデオ品質を別の方法で改善するように構成される。ループフィルタユニット220は、デブロッキングフィルタ、サンプル適応型オフセット(SAO:Sample-Adaptive Offset)フィルタ、または1つもしくは複数の他のフィルタ、たとえば、双方向フィルタ、適応型ループフィルタ(ALF:Adaptive Loop Filter)、シャープ化フィルタ、平滑化フィルタ、または協調フィルタ、あるいはそれらの任意の組合せなどの、1つまたは複数のループフィルタを備えてよい。ループフィルタユニット220はループ内フィルタであるものとして図2に示されるが、他の構成では、ループフィルタユニット220は、ループ後フィルタとして実装されてよい。フィルタ処理済みのブロック221は、フィルタ処理済みの再構成ブロック221と呼ばれることもある。
ビデオエンコーダ20の実施形態(それぞれ、ループフィルタユニット220)は、たとえば、直接、またはエントロピー符号化ユニット270を介して符号化された、(サンプル適応型オフセット情報などの)ループフィルタパラメータを出力するように構成されてよく、その結果、たとえば、デコーダ30は、復号のために同じループフィルタパラメータまたはそれぞれのループフィルタを受信および適用し得る。
復号ピクチャバッファ
復号ピクチャバッファ(DPB)230は、ビデオエンコーダ20によってビデオデータを符号化するための、参照ピクチャまたは概して参照ピクチャデータを記憶するメモリであってよい。DPB230は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM)、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのうちのいずれかによって形成され得る。復号ピクチャバッファ(DPB)230は、1つまたは複数のフィルタ処理済みのブロック221を記憶するように構成され得る。復号ピクチャバッファ230は、以前にフィルタ処理された他のブロック、たとえば、同じ現在ピクチャの、または異なるピクチャの、以前に再構成およびフィルタ処理されたブロック221、たとえば、以前に再構成されたピクチャを記憶するようにさらに構成されてよく、たとえば、インター予測のために、以前に再構成すなわち復号された全体的なピクチャ(ならびに、対応する参照ブロックおよびサンプル)、および/または部分的に再構成された現在ピクチャ(ならびに、対応する参照ブロックおよびサンプル)を提供し得る。たとえば、再構成ブロック215が、ループフィルタユニット220によってフィルタ処理されていないか、または再構成ブロックもしくはサンプルのさらに処理された任意の他のバージョンである場合、復号ピクチャバッファ(DPB)230はまた、1つまたは複数のフィルタ処理されていない再構成ブロック215、または概して、フィルタ処理されていない再構成サンプルを、記憶するように構成されてもよい。
モード選択(区分および予測)
モード選択ユニット260は、区分ユニット262、インター予測ユニット244、およびイントラ予測ユニット254を備え、元のピクチャデータ、たとえば、元のブロック203(現在ピクチャ17の現在ブロック203)、ならびに同じ(現在の)ピクチャの、かつ/あるいは1つまたは複数の以前に復号されたピクチャからの、たとえば、復号ピクチャバッファ230または他のバッファ(たとえば、図示しないラインバッファ)からの、再構成ピクチャデータ、たとえば、フィルタ処理された再構成済みのサンプルもしくはブロック、および/またはフィルタ処理されていない再構成済みのサンプルもしくはブロックを、受信または取得するように構成される。再構成ピクチャデータは、予測ブロック265または予測子265を取得するために、予測、たとえば、インター予測またはイントラ予測のための、参照ピクチャデータとして使用される。
モード選択ユニット260は、(区分を含まない)現在のブロック予測モードに対する区分、および予測モード(たとえば、イントラまたはインター予測モード)を決定または選択し、残差ブロック205の計算のために、かつ再構成ブロック215の再構成のために使用される、対応する予測ブロック265を生成するように構成され得る。
モード選択ユニット260の実施形態は、最良の整合すなわち言い換えれば最小残差(最小残差とは、送信または記憶のためのより良好な圧縮を意味する)、または最小シグナリングオーバーヘッド(最小シグナリングオーバーヘッドとは、送信または記憶のためのより良好な圧縮を意味する)を与えるか、あるいはその両方を考慮するかまたはその両方のバランスをとる、区分および予測モードを(たとえば、モード選択ユニット260によってサポートされるか、またはモード選択ユニット260にとって利用可能なものから)選択するように構成され得る。モード選択ユニット260は、レートひずみ最適化(RDO:Rate Distortion Optimization)に基づいて区分および予測モードを決定するように、すなわち、最小のレートひずみをもたらす予測モードを選択するように構成され得る。このコンテキストにおける「最良の」、「最小の」、「最適な」などのような用語は、必ずしも全体的な「最良の」、「最小の」、「最適な」などを指すとは限らず、しきい値または他の制約を上回るかまたは下回る値のような、終結基準または選択基準の充足を指してもよく、潜在的に「準最適な選択」につながるが、計算量および処理時間を低減する。
言い換えれば、区分ユニット262は、たとえば、4分木区分(QT)、バイナリ区分(BT)、もしくはトリプルツリー区分(TT)、またはそれらの任意の組合せを反復的に使用して、ブロック203をより小さいブロック区分または(再びブロックを形成する)サブブロックに区分し、たとえば、ブロック区分またはサブブロックの各々に対して予測を実行するように構成されてよく、モード選択は、区分されるブロック203のツリー構造の選択を備え、予測モードは、ブロック区分またはサブブロックの各々に適用される。
以下では、例示的なビデオエンコーダ20によって実行される(たとえば、区分ユニット260による)区分および(インター予測ユニット244およびイントラ予測ユニット254による)予測処理が、より詳細に説明される。
区分
区分ユニット262は、現在ブロック203をより小さい区分、たとえば、正方形または長方形のサイズのより小さいブロックに、区分(すなわち分割)し得る。これらのより小さいブロック(サブブロックと呼ばれることもある)は、一層小さい区分にさらに区分され得る。このことはまた、ツリー区分または階層的ツリー区分と呼ばれ、たとえば、ルートツリーレベル0(階層レベル0、深度0)における、ルートブロックは、再帰的に区分されてよく、たとえば、次に低いツリーレベルの2つ以上のブロック、たとえば、ツリーレベル1(階層レベル1、深度1)におけるノードに区分されてよく、これらのブロックは再び、たとえば、終結基準が充足されており、たとえば、最大ツリー深度または最小ブロックサイズに到達したので、区分が終結されるまで、次に低いレベルの2つ以上のブロック、たとえば、ツリーレベル2(階層レベル2、深度2)などに区分されてよい。それ以上区分されないブロックは、ツリーのリーフブロックまたはリーフノードとも呼ばれる。2つの区分への区分を使用するツリーは2分木(BT)と呼ばれ、3つの区分への区分を使用するツリーは3分木(TT)と呼ばれ、4つの区分への区分を使用するツリーは4分木(QT)と呼ばれる。
前に述べたように、本明細書で使用する「ブロック」という用語は、ピクチャの一部分、特に正方形または長方形の部分であってよい。たとえば、HEVCおよびVVCを参照すると、ブロックは、コーディングツリーユニット(CTU)、コーディングユニット(CU:coding unit)、予測ユニット(PU:prediction unit)、および変換ユニット(TU:transform unit)、ならびに/または対応するブロック、たとえば、コーディングツリーブロック(CTB)、コーディングブロック(CB:coding block)、変換ブロック(TB:transform block)、もしくは予測ブロック(PB:prediction block)であってよく、またはそれらに相当し得る。
たとえば、コーディングツリーユニット(CTU)は、3つのサンプルアレイを有するピクチャのルーマサンプルのCTB、クロマサンプルの2つの対応するCTB、またはモノクロピクチャもしくは3つの別個の色平面を使用してコーディングされるピクチャのサンプルのCTB、およびサンプルをコーディングするために使用されるシンタックス構造であってよく、またはそれらを備えてもよい。それに対応して、コーディングツリーブロック(CTB)は、CTBへの成分の分割が区分であるような、Nのいくつかの値に対する、サンプルのN×Nブロックであってよい。コーディングユニット(CU)は、3つのサンプルアレイを有するピクチャのルーマサンプルのコーディングブロック、クロマサンプルの2つの対応するコーディングブロック、またはモノクロピクチャもしくは3つの別個の色平面を使用してコーディングされるピクチャのサンプルのコーディングブロック、およびサンプルをコーディングするために使用されるシンタックス構造であってよく、またはそれらを備えてもよい。それに対応して、コーディングブロック(CB)は、コーディングブロックへのCTBの分割が区分であるような、MおよびNのいくつかの値に対する、サンプルのM×Nブロックであってよい。
たとえば、HEVCによる実施形態では、コーディングツリーユニット(CTU)は、コーディングツリーとして示される4分木構造を使用することによってCUに分割され得る。ピクチャエリアを、(時間的な)インターピクチャ予測を使用してコーディングすべきか、それとも(空間的な)イントラピクチャ予測を使用してコーディングすべきかという決定は、CUレベルにおいて行われる。各CUは、PU分割タイプに従って1つ、2つ、または4つのPUにさらに分割され得る。1つのPUの内側では、同じ予測プロセスが適用され、関連する情報がPU単位でデコーダへ送信される。PU分割タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後、CUは、CU用のコーディングツリーと類似の別の4分木構造に従って変換ユニット(TU)に区分され得る。
実施形態では、たとえば、多用途ビデオコーディング(VVC)と呼ばれる現在策定中の最新のビデオコーディング規格によれば、コーディングブロックを区分するために4分木および2分木(QTBT:Quad-tree and binary tree)区分が使用される。QTBTブロック構造の中で、CUは、正方形または長方形のいずれかの形状を有することができる。たとえば、コーディングツリーユニット(CTU)は、4分木構造によって最初に区分される。4分木リーフノードは、2分木または3元(またはトリプル)ツリー構造によってさらに区分される。ツリーリーフノードを区分することは、コーディングユニット(CU)と呼ばれ、そのセグメント化は、それ以上の区分を伴わずに予測処理および変換処理のために使用される。このことは、CU、PU、およびTUがQTBTコーディングブロック構造の中で同じブロックサイズを有することを意味する。並行して、複数の区分、たとえば、QTBTブロック構造と一緒に使用されるためにトリプルツリー区分も提案された。
一例では、ビデオエンコーダ20のモード選択ユニット260は、本明細書で説明する区分技法の任意の組合せを実行するように構成され得る。
上記で説明したように、ビデオエンコーダ20は、(事前決定された)予測モードのセットから、最良のまたは最適な予測モードを決定または選択するように構成される。予測モードのセットは、たとえば、イントラ予測モードおよび/またはインター予測モードを備えてよい。
イントラ予測
イントラ予測モードのセットは、たとえば、HEVCにおいて規定されるように、35個の異なるイントラ予測モード、たとえば、DC(または、平均)モードおよび平面モードのような全方向性モード、もしくは方向性モードを備えてよく、または、たとえば、VVCのために規定されるように、67個の異なるイントラ予測モード、たとえば、DC(または、平均)モードおよび平面モードのような全方向性モード、もしくは方向性モードを備えてよい。
イントラ予測ユニット254は、イントラ予測モードのセットのイントラ予測モードに従ってイントラ予測ブロック265を生成するために、同じ現在ピクチャの隣接ブロックの再構成されたサンプルを使用するように構成される。
イントラ予測ユニット254(または概して、モード選択ユニット260)は、符号化ピクチャデータ21の中に含めるためのシンタックス要素266の形式でイントラ予測パラメータ(または概して、ブロック用の選択されたイントラ予測モードを示す情報)をエントロピー符号化ユニット270に出力するようにさらに構成され、その結果、たとえば、ビデオデコーダ30は、復号のために予測パラメータを受信および使用し得る。
インター予測
インター予測モードのセット(または、可能なインター予測モード)は、利用可能な参照ピクチャ(すなわち、たとえば、DBP230の中に記憶されている、少なくとも部分的に復号された、以前のピクチャ)、ならびに他のインター予測パラメータ、たとえば、最良に整合する参照ブロックを求めて探索するために参照ピクチャ全体が使用されるのか、それとも一部のみ、たとえば、参照ピクチャの現在ブロックのエリアの周囲の探索ウィンドウエリアが使用されるのか、ならびに/または、たとえば、ピクセル補間、たとえば、ハーフペル補間/セミペル補間および/もしくはクォーターペル補間が適用されるか否かに依存する。
上記の予測モードに加えて、スキップモードおよび/またはダイレクトモードが適用されてよい。
インター予測ユニット244は、動き推定(ME:Motion Estimation)ユニットおよび動き補償(MC:Motion Compensation)ユニット(両方とも図2に示さず)を含んでよい。動き推定ユニットは、動き推定のために、ピクチャブロック203(現在ピクチャ17の現在ピクチャブロック203)および復号ピクチャ231、または少なくとも1つもしくは複数の以前に再構成されたブロック、たとえば、他の/異なる1つもしくは複数の以前に復号されたピクチャ231の再構成ブロックを、受信または取得するように構成され得る。たとえば、ビデオシーケンスは、現在ピクチャおよび以前に復号されたピクチャ231を備えてよく、すなわち言い換えれば、現在ピクチャおよび以前に復号されたピクチャ231は、ビデオシーケンスを形成するピクチャのシーケンスの一部であってよく、またはそれらを形成し得る。
エンコーダ20は、たとえば、複数の他のピクチャのうちの同じかまたは異なるピクチャの複数の参照ブロックから参照ブロックを選択し、参照ピクチャ(または、参照ピクチャインデックス)、および/または参照ブロックの位置(x、y座標)と現在ブロックの位置との間のオフセット(空間オフセット)を、インター予測パラメータとして動き推定ユニットに提供するように構成され得る。このオフセットは動きベクトル(MV:Motion Vector)とも呼ばれる。
動き補償ユニットは、インター予測パラメータを取得、たとえば受信し、インター予測パラメータに基づいて、またはインター予測パラメータを使用して、インター予測を実行してインター予測ブロック265を取得するように構成される。動き補償ユニットによって実行される動き補償は、動き推定によって決定された動き/ブロックベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度への補間を実行することを伴ってよい。補間フィルタ処理は、知られているピクセルサンプルから追加のピクセルサンプルを生成してよく、したがって、ピクチャブロックをコーディングするために使用され得る候補予測ブロックの個数を潜在的に増大させる。現在ピクチャブロックのPUに対する動きベクトルを受信すると、動き補償ユニットは、参照ピクチャリストのうちの1つの中で動きベクトルが指し示す先の予測ブロックの位置を特定し得る。
動き補償ユニットはまた、ビデオスライスのピクチャブロックを復号する際のビデオデコーダ30による使用のために、ブロックおよびビデオスライスに関連するシンタックス要素を生成し得る。
エントロピーコーディング
エントロピー符号化ユニット270は、量子化係数209、インター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ、および/または他のシンタックス要素に対して、たとえば、エントロピー符号化アルゴリズムまたはエントロピー符号化方式(たとえば、可変長コーディング(VLC:Variable Length Coding)方式、コンテキスト適応型VLC方式(CAVLC:Context Adaptive VLC)、算術コーディング方式、2値化方式、コンテキスト適応型バイナリ算術コーディング(CABAC:Context Adaptive Binary Arithmetic Coding)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:Syntax-Based Context-Adaptive Binary Arithmetic Coding)、確率区間区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コーディング、または別のエントロピー符号化方法または技法)、あるいはバイパス(圧縮なし)を適用して、たとえば、符号化ビットストリーム21の形式で、出力部272を介して出力され得る符号化ピクチャデータ21を取得するように構成され、その結果、たとえば、ビデオデコーダ30は、復号のためにパラメータを受信および使用し得る。符号化ビットストリーム21は、ビデオデコーダ30へ送信されてよく、または後でビデオデコーダ30によって送信するかもしくは取り出すためにメモリの中に記憶されてもよい。
ビデオエンコーダ20の他の構造的変形が、ビデオストリームを符号化するために使用され得る。たとえば、非変換ベースのエンコーダ20が、いくつかのブロックまたはフレームに対して変換処理ユニット206を用いずに残差信号を直接量子化することができる。別の実装形態では、エンコーダ20は、単一のユニットの中に組み合わせられた量子化ユニット208および逆量子化ユニット210を有することができる。
デコーダおよび復号方法
図3は、この本出願の技法を実施するように構成されるビデオデコーダ30の一例を示す。ビデオデコーダ30は、たとえば、エンコーダ20によって符号化された、符号化ピクチャデータ21(たとえば、符号化ビットストリーム21)を受信して、復号ピクチャ331を取得するように構成される。符号化ピクチャデータまたはビットストリームは、符号化ピクチャデータを復号するための情報、たとえば、符号化ビデオスライスのピクチャブロックを表すデータ、および関連するシンタックス要素を備える。
図3の例では、デコーダ30は、エントロピー復号ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構成ユニット314(たとえば、加算器314)、ループフィルタ320、復号ピクチャバッファ(DBP)330、インター予測ユニット344、およびイントラ予測ユニット354を備える。インター予測ユニット344は、動き補償ユニットであってよく、または動き補償ユニットを含んでもよい。ビデオデコーダ30は、いくつかの例では、図2からのビデオエンコーダ100に関して説明した符号化パスとは概して相反の復号パスを実行し得る。
エンコーダ20に関して説明したように、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループフィルタ220、復号ピクチャバッファ(DPB)230、インター予測ユニット344、およびイントラ予測ユニット354はまた、ビデオエンコーダ20の「ビルトインデコーダ」を形成するものとして参照される。したがって、逆量子化ユニット310は逆量子化ユニット110と機能が同一であってよく、逆変換処理ユニット312は逆変換処理ユニット212と機能が同一であってよく、再構成ユニット314は再構成ユニット214と機能が同一であってよく、ループフィルタ320はループフィルタ220と機能が同一であってよく、復号ピクチャバッファ330は復号ピクチャバッファ230と機能が同一であってよい。したがって、ビデオ20エンコーダのそれぞれのユニットおよび機能に対して提供された説明は、それに対応してビデオデコーダ30のそれぞれのユニットおよび機能に適用される。
エントロピー復号
エントロピー復号ユニット304は、ビットストリーム21(または概して、符号化ピクチャデータ21)を構文解析し、たとえば、符号化ピクチャデータ21へのエントロピー復号を実行して、たとえば、量子化係数309および/または復号されたコーディングパラメータ(図3に示さず)、たとえば、インター予測パラメータ(たとえば、参照ピクチャインデックスおよび動きベクトル)、イントラ予測パラメータ(たとえば、イントラ予測モードまたはインデックス)、変換パラメータ、量子化パラメータ、ループフィルタパラメータ、および/または他のシンタックス要素のうちのいずれかまたはすべてを取得するように構成される。エントロピー復号ユニット304は、エンコーダ20のエントロピー符号化ユニット270に関して説明したような符号化方式に対応する復号アルゴリズムまたは復号方式を適用するように構成され得る。エントロピー復号ユニット304は、モード選択ユニット360にインター予測パラメータ、イントラ予測パラメータ、および/または他のシンタックス要素を、またデコーダ30の他のユニットに他のパラメータを提供するように、さらに構成され得る。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルにおいてシンタックス要素を受信し得る。
逆量子化
逆量子化ユニット310は、(たとえば、エントロピー復号ユニット304によって、たとえば、構文解析および/または復号することによって)符号化ピクチャデータ21から量子化パラメータ(QP)(または概して、逆量子化に関係する情報)および量子化係数を受信し、量子化パラメータに基づいて、復号された量子化係数309に対して逆量子化を適用して、変換係数311と呼ばれることもある逆量子化係数311を取得するように構成され得る。逆量子化プロセスは、量子化の程度、および同様に、適用されるべき逆量子化の程度を決定するために、ビデオスライスの中のビデオブロックごとの、ビデオエンコーダ20によって決定された量子化パラメータの使用を含んでよい。
逆変換
逆変換処理ユニット312は、変換係数311とも呼ばれる逆量子化係数311を受信し、サンプル領域における再構成残差ブロック213を取得するために逆量子化係数311に変換を適用するように構成され得る。再構成残差ブロック213は、変換ブロック313と呼ばれることもある。変換は、逆変換、たとえば、逆DCT変換、逆DST変換、逆整数変換、または概念的に類似の逆変換プロセスであってよい。逆変換処理ユニット312は、逆量子化係数311に適用されるべき変換を決定するために、(たとえば、エントロピー復号ユニット304によって、たとえば、構文解析および/または復号することによって)符号化ピクチャデータ21から変換パラメータまたは対応する情報を受信するようにさらに構成され得る。
再構成
再構成ユニット314(たとえば、加算回路(adder)または加算器(summer)314)は、たとえば、再構成残差ブロック313のサンプル値と予測ブロック365のサンプル値とを加算することによって、予測ブロック365に再構成残差ブロック313を加算して、サンプル領域における再構成ブロック315を取得するように構成され得る。
フィルタ処理
(コーディングループの中またはコーディングループの後のいずれかの)ループフィルタユニット320は、たとえば、ピクセル遷移を平滑化するか、またはビデオ品質を別の方法で改善するために、再構成ブロック315をフィルタ処理してフィルタ処理済みのブロック321を取得するように構成される。ループフィルタユニット320は、デブロッキングフィルタ、サンプル適応型オフセット(SAO)フィルタ、または1つもしくは複数の他のフィルタ、たとえば、双方向フィルタ、適応型ループフィルタ(ALF)、シャープ化フィルタ、平滑化フィルタ、または協調フィルタ、あるいはそれらの任意の組合せなどの、1つまたは複数のループフィルタを備えてよい。ループフィルタユニット320はループ内フィルタであるものとして図3に示されるが、他の構成では、ループフィルタユニット320は、ループ後フィルタとして実装されてよい。
復号ピクチャバッファ
ピクチャの復号されたビデオブロック321は、次いで、他のピクチャに対する後続の動き補償のための、かつ/または出力されるそれぞれ表示用の、参照ピクチャとして復号ピクチャ331を記憶する、復号ピクチャバッファ330の中に記憶される。
デコーダ30は、ユーザへの提示または鑑賞のために、たとえば、出力部312を介して復号ピクチャ311を出力するように構成される。
予測
インター予測ユニット344は、インター予測ユニット244と(詳細には、動き補償ユニットと)同一であってよく、イントラ予測ユニット354は、機能がインター予測ユニット254と同一であってよく、区分および/もしくは予測パラメータ、または符号化ピクチャデータ21から(たとえば、エントロピー復号ユニット304によって、たとえば、構文解析および/または復号することによって)受信されたそれぞれの情報に基づいて、分割または区分決定および予測を実行する。モード選択ユニット360は、(フィルタ処理されているかまたはフィルタ処理されていない)再構成されたピクチャ、ブロック、またはそれぞれのサンプルに基づいて、ブロックごとに予測(イントラ予測またはインター予測)を実行して、予測ブロック365を取得するように構成され得る。
イントラコーディング(I)スライスとしてビデオスライスがコーディングされるとき、モード選択ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モード、および現在ピクチャの以前に復号されたブロックからのデータに基づいて、現在ビデオスライスのピクチャブロックに対する予測ブロック365を生成するように構成される。インターコーディング(すなわち、BまたはP)スライスとしてビデオピクチャがコーディングされるとき、モード選択ユニット360のインター予測ユニット344(たとえば、動き補償ユニット)は、動きベクトル、およびエントロピー復号ユニット304から受信された他のシンタックス要素に基づいて、現在ビデオスライスのビデオブロックに対する予測ブロック365を作り出すように構成される。インター予測の場合、予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから作り出されてよい。ビデオデコーダ30は、DPB330の中に記憶された参照ピクチャに基づいてデフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト0およびリスト1を構成し得る。
モード選択ユニット360は、動きベクトルおよび他のシンタックス要素を構文解析することによって、現在ビデオスライスのビデオブロックに対する予測情報を決定し、予測情報を使用して、復号されている現在ビデオブロックに対する予測ブロックを作り出すように構成される。たとえば、モード選択ユニット360は、受信されたシンタックス要素のうちのいくつかを使用して、ビデオスライスのビデオブロックをコーディングするために使用された予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)、スライス用の参照ピクチャリストのうちの1つまたは複数に対する構成情報、スライスのインター符号化ビデオブロックごとの動きベクトル、スライスのインターコーディングビデオブロックごとのインター予測ステータス、および現在ビデオスライスの中のビデオブロックを復号するための他の情報を決定する。
ビデオデコーダ30の他の変形が、符号化ピクチャデータ21を復号するために使用され得る。たとえば、デコーダ30は、ループフィルタ処理ユニット320を用いずに出力ビデオストリームを作り出すことができる。たとえば、非変換ベースのデコーダ30が、いくつかのブロックまたはフレームに対して逆変換処理ユニット312を用いずに残差信号を直接逆量子化することができる。別の実装形態では、ビデオデコーダ30は、単一のユニットの中に組み合わせられた逆量子化ユニット310および逆変換処理ユニット312を有することができる。
エンコーダ20およびデコーダ30において、現在のステップの処理結果がさらに処理されてよく、次いで、次のステップに出力されてよいことを理解されたい。たとえば、補間フィルタ処理、動きベクトル導出、またはループフィルタ処理の後、補間フィルタ処理、動きベクトル導出、またはループフィルタ処理の処理結果に対して、クリップまたはシフトなどのさらなる演算が実行されてよい。
現在ブロックの導出された動きベクトル(限定はしないが、アフィンモードの制御点動きベクトル、アフィンモード、平面モード、ATMVPモードにおけるサブブロック動きベクトル、時間動きベクトルなどを含む)に、さらなる演算が適用され得ることに留意されたい。たとえば、動きベクトルの値は、その表現ビットに従って既定の範囲に制約される。動きベクトルの表現ビットがbitDepthである場合、範囲は-2^(bitDepth-1)~2^(bitDepth-1)-1であり、ただし、「^」は累乗を意味する。たとえば、bitDepthが16に等しく設定される場合、範囲は-32768~32767であり、bitDepthが18に等しく設定される場合、範囲は-131072~131071である。たとえば、導出される動きベクトル(たとえば、1つの8×8ブロック内の4つの4×4サブブロックのMV)の値は、4つの4×4サブブロックMVの整数部分の間の最大差分が、1ピクセル以下などの、Nピクセル以下となるように制約される。ここで、bitDepthに従って動きベクトルを制約するための2つの方法を提供する。
方法1:フローイング(flowing)演算によってオーバーフローMSB(最上位ビット)を除去する。
ux=(mvx+2bitDepth)%2bitDepth (1)
mvx=(ux>=2bitDepth-1) ? (ux-2bitDepth) : ux (2)
uy=(mvy+2bitDepth)%2bitDepth (3)
mvy=(uy>=2bitDepth-1) ? (uy-2bitDepth) : uy (4)
ただし、mvxは、画像ブロックまたはサブブロックの動きベクトルの水平成分であり、mvyは、画像ブロックまたはサブブロックの動きベクトルの垂直成分であり、uxおよびuyは中間値を示す。
たとえば、mvxの値が-32769である場合、式(1)および式(2)を適用した後、得られる値は32767である。コンピュータシステムでは、10進数は2の補数として記憶される。-32769の2の補数は1,0111,1111,1111,1111(17ビット)であり、次いで、MSBが廃棄され、そのため、得られる2の補数は0111,1111,1111,1111(10進数は32767)であり、それは式(1)および式(2)を適用することによる出力と同じである。
ux=(mvpx+mvdx+2bitDepth)%2bitDepth (5)
mvx=(ux>=2bitDepth-1) ? (ux-2bitDepth) : ux (6)
uy=(mvpy+mvdy+2bitDepth)%2bitDepth (7)
mvy=(uy>=2bitDepth-1) ? (uy-2bitDepth) : uy (8)
式(5)~式(8)に示すように、その演算はmvpおよびmvdの総計の間に適用され得る。
方法2:値をクリップ(clip)することによってオーバーフローMSBを除去する。
vx=Clip3(-2bitDepth-1,2bitDepth-1-1,vx)
vy=Clip3(-2bitDepth-1,2bitDepth-1-1,vy)
ただし、vxは、画像ブロックまたはサブブロックの動きベクトルの水平成分であり、vyは、画像ブロックまたはサブブロックの動きベクトルの垂直成分であり、x、y、およびzは、それぞれ、MVクリッピングプロセスの3つの入力値に相当し、関数Clip3の定義は以下の通りである。
Figure 0007293361000013
図4は、本開示の一実施形態によるビデオコーディングデバイス400の概略図である。ビデオコーディングデバイス400は、本明細書で説明するような開示する実施形態を実施するのに適している。一実施形態では、ビデオコーディングデバイス400は、図1Aのビデオデコーダ30などのデコーダ、または図1Aのビデオエンコーダ20などのエンコーダであってよい。
ビデオコーディングデバイス400は、データを受信するための入口ポート410(または、入力ポート410)および受信機ユニット(Rx)420、データを処理するためのプロセッサ、論理ユニット、または中央処理ユニット(CPU)430、データを送信するための送信機ユニット(Tx)440および出口ポート450(または、出力ポート450)、ならびにデータを記憶するためのメモリ460を備える。ビデオコーディングデバイス400はまた、光信号または電気信号の出口または入口のために入口ポート410、受信機ユニット420、送信機ユニット440、および出口ポート450に結合された、光電気(OE:Optical-to-Electrical)構成要素および電気光(EO:Electrical-to-Optical)構成要素を備えてよい。
プロセッサ430は、ハードウェアおよびソフトウェアによって実装される。プロセッサ430は、1つまたは複数のCPUチップ、コア(たとえば、マルチコアプロセッサ)、FPGA、ASIC、およびDSPとして実装され得る。プロセッサ430は、入口ポート410、受信機ユニット420、送信機ユニット440、出口ポート450、およびメモリ460と通信している。プロセッサ430は、コーディングモジュール470を備える。コーディングモジュール470は、上記で説明した開示する実施形態を実施する。たとえば、コーディングモジュール470は、様々なコーディング動作を実施、処理、準備、または提供する。したがって、コーディングモジュール470を含むことは、ビデオコーディングデバイス400の機能性に大幅な改善をもたらし、異なる状態へのビデオコーディングデバイス400の変形をもたらす。代替として、コーディングモジュール470は、メモリ460の中に記憶されプロセッサ430によって実行される命令として実装される。
メモリ460は、1つまたは複数のディスク、テープドライブ、およびソリッドステートドライブを備えてよく、実行のためにそのようなプログラムが選択されるときにプログラムを記憶するための、かつプログラム実行中に読み取られる命令およびデータを記憶するための、オーバーフローデータ記憶デバイスとして使用されてよい。メモリ460は、たとえば、揮発性および/または不揮発性であってよく、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、3値連想メモリ(TCAM:Ternary Content-Addressable Memory)、および/またはスタティックランダムアクセスメモリ(SRAM)であってよい。
図5は、例示的な実施形態による図1からのソースデバイス12および宛先デバイス14のうちのどちらか一方または両方として使用され得る装置500の簡略化されたブロック図である。
装置500の中のプロセッサ502は中央処理ユニットであり得る。代替として、プロセッサ502は、現存するかまたは今後開発される、情報を操作または処理することが可能な任意の他のタイプのデバイスまたは複数のデバイスであり得る。開示する実装形態は図示のように単一のプロセッサ、たとえば、プロセッサ502を用いて実践され得るが、速度および効率における利点は、2つ以上のプロセッサを使用して達成され得る。
装置500の中のメモリ504は、一実装形態では読取り専用メモリ(ROM)デバイスまたはランダムアクセスメモリ(RAM)デバイスであり得る。任意の他の好適なタイプの記憶デバイスが、メモリ504として使用され得る。メモリ504は、バス512を使用してプロセッサ502によってアクセスされるコードおよびデータ506を含むことができる。メモリ504は、オペレーティングシステム508およびアプリケーションプログラム510をさらに含むことができ、アプリケーションプログラム510は、ここで説明する方法をプロセッサ502が実行することを可能にする少なくとも1つのプログラムを含む。たとえば、アプリケーションプログラム510は、アプリケーション1~Nを含むことができ、アプリケーション1~Nは、ここで説明する方法を実行するビデオコーディングアプリケーションをさらに含む。
装置500はまた、ディスプレイ518などの1つまたは複数の出力デバイスを含むことができる。ディスプレイ518は、一例では、ディスプレイを、タッチ入力を感知するように動作可能なタッチ感応性要素と組み合わせる、タッチ感応性ディスプレイであってよい。ディスプレイ518は、バス512を介してプロセッサ502に結合され得る。
ここでは単一のバスとして示されるが、装置500のバス512は複数のバスからなり得る。さらに、2次ストレージ514が、装置500の他の構成要素に直接結合され得るか、またはネットワークを介してアクセスされ得、メモリカードなどの単一の統合ユニット、または複数のメモリカードなどの複数のユニットを備えることができる。したがって、装置500は多種多様な構成で実装され得る。
図6は、HEVC UIP方式において使用される複数のイントラ予測モードの概略図を示す。ルミナンスブロックの場合、イントラ予測モードは、3つの全方向性モードおよび33個の方向性モードを含み得る、36個までのイントラ予測モードを備えてよい。全方向性モードは、平面予測モード、平均(DC)予測モード、およびルーマからクロマへの(LM)予測モードを備えてよい。平面予測モードは、ブロックの境界から導出された水平勾配および垂直勾配を有するブロック偏角面を想定することによって、予測を実行し得る。DC予測モードは、ブロック境界の平均値に整合する値を有する平坦なブロック面を想定することによって、予測を実行し得る。LM予測モードは、ブロックに対するクロマ値がブロックに対するルーマ値に整合することを想定することによって、予測を実行し得る。
図7は、たとえば、VVCのために提案されるような、67個のイントラ予測モードの一例を示し、67個のイントラ予測モードの複数のイントラ予測モードは、平面モード(インデックス0)、dcモード(インデックス1)、およびインデックス2~66を有する角度モードを備え、図7の中の左下角度モードはインデックス2を指し、インデックスの番号付けは、インデックス66が図7の最も右上の角度モードとなるまでインクリメントされる。
図8に示すように、第2のバージョンをはじめとして、VVCは、(破線として示される)広角度モードを含む、傾斜したイントラ予測方向に対応するいくつかのモードを有する。これらのモードのうちのいずれかに対して、ブロック内のサンプルを予測するために、ブロック側部内の対応する位置が分数である場合、隣接する参照サンプルのセットの補間が実行されるべきである。HEVCおよびVVCは、隣接する2つの参照サンプルの間で線形補間を使用する。JEMは、より精巧な4タップ補間フィルタを使用する。フィルタ係数は、幅値または高さ値に応じて、ガウシアンフィルタまたは立方体フィルタのいずれかとなるように選択される。幅を使用すべきかそれとも高さを使用すべきかについての決定は、主要参照側部選択についての決定と調和され、すなわち、イントラ予測モードが対角モード以上であるとき、参照サンプルの上側部が主要参照側部となるように選択され、使用される補間フィルタを決定するために幅値が選択される。そうでない場合、ブロックの左側部から主要側部参照が選択され、高さがフィルタ選択プロセスを制御する。詳細には、選択された側部長が8サンプル以下である場合、立方体補間4タップが適用される。そうでない場合、補間フィルタは4タップガウシアンフィルタである。
インター予測と同様に、ブロック内のサンプルが分数勾配の方向性モードに従って予測されるとき、イントラ予測は補間フィルタ処理を必要とすることがある。この目的のために線形フィルタが使用される場合、予測されるべきブロックの中のサンプルが参照サンプル内の分数(サブペル)位置の中に入る場合はフィルタ係数が容易に計算され得る。そのため、線形フィルタは、その係数を記憶するためのLUT(ルックアップテーブル)を必要としない。とはいえ、直接の計算ではなくLUTが使用され得る。しかしながら、予測モジュールは、タップの長い(たとえば、4または8タップ)補間フィルタを使用する場合、インター予測モジュールにおいて行われるように、補間フィルタの係数を保持するためにLUTを必要とすることがあり、ここで、ルーマ用の8タップDCT-IFおよびクロマ用の4タップDCT-IFが、それぞれ、Table 1(表5)およびTable 2(表6)に示すように作表される。
Figure 0007293361000014
Figure 0007293361000015
係数の特定のセットが、Table 3(表7)に示すように規定され得る。
Figure 0007293361000016
次のようにサブピクセルオフセットおよびフィルタタイプに従って規定された係数と畳み込むことによって、イントラ予測されるサンプルが計算される。
Figure 0007293361000017
この式では、「>>」はビットごとの右シフト演算を示す。
係数のセット{ci}は、ルックアップテーブル(LUT)からフェッチされる。Table 3(表7)は、バージョン3の仕様書ドラフト(JVET-L1001「Versatile Video Coding (Draft 3)」)の中に記載されている、VVCの現在の設計に従って記憶される値の一例を与える。平滑化(fG)補間フィルタとシャープ化(fC)補間フィルタとの間での選択は、MDIS(モード依存イントラ平滑化)条件を使用して実行される。そのため、fCまたはfGのいずれかが、ブロックの予測サンプルを生成するために使用され得る。
シャープ化フィルタが選択される場合、予測サンプルs(x)は、値の許容範囲にさらにクリップされ、すなわち、SPSを使用して規定されるか、または選択された成分のビット深度から導出されるかのいずれかである。
いくつかの使用事例に対して、LUT処理は追加のメモリを必要とし、したがって、エネルギー消費ならびにダイサイズを増大させるので、補間フィルタ用の明示的なLUTを保持することを回避することが有益であり得る。1番目のものは、モバイル用途にとって重大である。2番目のものは、価格に悪影響を及ぼす。
述べた使用事例の場合、補間フィルタの係数を分析的に規定することが妥当である。LUTからのフェッチを実行するのではなく、フィルタ係数は入力分数サンプル位置pから計算され得る。
本開示の一実施形態によれば、ビデオフレームのイントラまたはインター予測処理のための方法が提供され、方法は、参照サンプルを取得するステップと、サブピクセルオフセットの値を取得するステップと、予測サンプル値を取得するためにサブピクセル4タップ補間フィルタを使用して参照サンプルをフィルタ処理するステップとを備え、サブピクセル4タップ補間フィルタのフィルタ係数は、
Figure 0007293361000018
を満たし、pは、サブピクセルオフセットの値の分数部分であり、c0、c1、c2、およびc3は、サブピクセル4タップ補間フィルタのフィルタ係数である。
例示的な一実装形態では、参照サンプルは、参照サンプルのアレイに対応するref[x]として参照されてよく、
ref[x]=p[-1-refIdx+x][-1-refIdx](ただし、x=0..nTbW+refIdx+1)
であり、「p」は、サンプル値を含むx-y 2次元アレイp[x][y]を指す。使用される参照サンプルの個数は、少なくとも1個であってよい。別の例では、参照サンプルの個数は4個であってよい。
例示的な一実装形態では、取得されるサブピクセルオフセット値は、
(y+1+refIdx)*intraPredAngle
として参照されてよく、「IntraPredAngle」はイントラ予測角度の値である。
例示的な一実装形態では、予測サンプル値「predSamples[x][y]」は、
Figure 0007293361000019
によって取得されてよく、fT[i]はフィルタ係数を指す。これらの係数は、それぞれ、fGおよびfCとして参照される、インター予測のためのルーマまたはクロマフィルタ係数であってよい。
フィルタ係数がルーマであるのかそれともクロマであるのかという選択は、たとえば、
fT[j]=filterFlag ? fG[iFact][j] : fC[iFact][j]
のようにフラグ「filterFlag」の使用および設定によって実施されてよく、
iFact=((y+1+refIdx)*intraPredAngle)&31
である。
値「31」は、サブピクセルオフセット値の分数部分を指し、「31」とは異なる他の値を取ることがある。フィルタ係数fG(ルーマ)および/またはfC(クロマ)の値は、4タップフィルタのフィルタ係数に対する上記の分析的表現を使用して、分析的にオンザフライで取得され得る。したがって、フィルタ係数はサブピクセルオフセット値に従って規定される。
したがって、フィルタ係数は、LUTからのフィルタ係数のそれぞれの値にアクセスすることなく取得され、むしろ、計算によって取得される。
代替として、フィルタ係数は上記の式を使用して計算されてよく、値はLUTの中に記憶されてよい。
本開示の一実施形態によれば、サブピクセル4タップ補間フィルタのフィルタ係数は、次のような表、すなわち、
Figure 0007293361000020
Figure 0007293361000021
の中で規定される。
本開示の一実施形態によれば、ビデオフレームのイントラまたはインター予測処理のための方法が提供され、方法は、参照サンプルを取得するステップと、サブピクセルオフセットの値を取得するステップと、予測サンプル値を取得するためにサブピクセル4タップ補間フィルタを使用して参照サンプルをフィルタ処理するステップとを備え、サブピクセル4タップ補間フィルタのフィルタ係数は、次のように、すなわち、
Figure 0007293361000022
のように規定され、pは、サブピクセルオフセットの値の分数部分であり、c0、c1、c2、およびc3は、フィルタ係数である。
例示的な一実装形態では、フィルタ係数の値はLUTの中に記憶され得る。このことは、サブピクセル補間フィルタ処理のためにフィルタ係数のそれぞれの値がLUTからフェッチされることになることを意味する。
図23は、イントラ/インター予測処理のフローチャートを示す。ステップ2301において、参照サンプルが取得される。参照サンプルは、1つまたは複数の参照サンプルを含んでよい。ステップ2302において、サブピクセルオフセット値が、次いで、取得される。ステップ2303において、参照サンプルは、次いで、フィルタ係数{ci}(ただし、i=0、...3)を有するサブピクセル補間フィルタを使用してフィルタ処理される。これは、4タップフィルタおよび/または4ポイントフィルタと呼ばれる。
フィルタ係数は、サブピクセルオフセット値の所与の分数部分pを用いた分析的表現から取得され得る。フィルタ係数はまた、p値を参照してLUTから取得され得る。
本開示の一実施形態によれば、pのビットは0に設定される。
本開示の一実施形態によれば、pが1だけインクリメントされ、その後、インクリメントされたpの下位ビットが0に設定されてから、前記pが使用されてフィルタ係数を取得する。
本開示の一実施形態によれば、フィルタ係数を取得することは、
Figure 0007293361000023
に従ってフィルタ係数を計算するステップを備える。このことは、以前のフィルタ係数ciからフィルタ係数ci+1を計算するという利点をもたらし得る。このことは、フィルタ係数を計算するための時間をさらに短縮し得る。
提案する発明は、両方の手法がフィルタ係数を導出することを可能にし、すなわち、LUTは計算をフェッチし、かつ提案する式に従って計算を導く。
補間フィルタの機能のうちの1つは、その位相シフトの、分数サンプル位置pに対する線形依存関係からなる。本発明の実施形態は、分数サンプル位置pについて簡単な演算を使用してフィルタ係数の値を得るために、この依存関係を利用する。
線形依存関係は、平滑化補間フィルタ係数fGを導出するために使用される。シャープ化補間フィルタ係数fCの導出は、pに基づく線形表現の絶対値を取ることに基づく。
本開示の一実施形態によれば、ビデオコーディングの方法が提供され、方法は、サブピクセル4タップ補間フィルタを使用してビデオフレームの参照サンプルをフィルタ処理するステップを備える、ビデオフレームのブロックのイントラ予測処理を備え、サブピクセル4タップ補間フィルタはフィルタの結合であり、フィルタのうちの少なくとも1つのフィルタ係数は、
Figure 0007293361000024
を満たし、pは、サブピクセルオフセットの分数サンプル位置であり、c0、c1、c2、およびc3は、フィルタ係数である。
図24は、ビデオコーディングのフローチャートを示す。ステップ2410において、サブピクセル4タップ補間フィルタを使用してブロックの参照サンプルをフィルタ処理するステップによって、イントラ予測処理が実行される。
本開示の一実施形態によれば、サブピクセル4タップ補間フィルタは、2つの位相に依存する線形フィルタと低域フィルタとの並列結合である平滑化フィルタである。
本開示の一実施形態によれば、サブピクセル4タップ補間フィルタは、1つの位相に依存する線形フィルタと強度変動高域フィルタとの並列結合であるシャープ化フィルタである。
本開示の一実施形態によれば、強度変動高域フィルタは、位相に依存しない高域有限インパルス応答FIRフィルタであり、その出力が、位相に依存する強度パラメータで乗算される。
本開示の前の実施形態のうちのいずれか1つによれば、pの下位ビットは0に設定される。
本開示の一実施形態によれば、pが1だけインクリメントされ、その後、インクリメントされた値の下位ビットが0に設定されてから、この値が使用されて補間フィルタ係数を導出する。
本開示の一実施形態によれば、強度変動高域フィルタの出力に対してクリッピング動作が実行される。
本発明の実施形態は、2つ以上のFIR(有限インパルス応答)フィルタの結合としてフィルタ係数を表現する。この結合は以下のオプションを備えてよい。
- 連続結合、すなわち、係数の畳み込み。
- 並列結合、すなわち、係数の重み付き和。
これらのフィルタの各々は、分数サンプル位置pの関数である位相パラメータPに依存することもしないこともある。結合に属するフィルタの係数は、位相パラメータPからの簡単な表現を有する。
一実施形態では、図9において、参照サンプルのセットが補間フィルタに入力される。
一実施形態では、平滑化補間フィルタの場合、位相パラメータPの値は分数サンプル位置pの値と同じである。図9において、ブロックF1およびF2は線形補間フィルタを表す。これらのフィルタの各々に対する係数は、位相パラメータpから次のように表現される。
Figure 0007293361000025
一例では、ここでは、またさらには、丸めを伴うかまたは伴わずに除算演算が規定され得、すなわち、
Figure 0007293361000026
または、
Figure 0007293361000027
であり、「a」は除算指名者であり、「n」は分母の2つのパラメータのべき乗である。
ブロックF3は、定数係数
c0=16
c1=16
を有する2タップ低域フィルタを表す。
一例では、フィルタF1..F3は正規化されておらず、F3はF1よりもDC利得が大きく、F3はF2よりもDC利得が大きい。
フィルタF1..F3の出力は合計および正規化される。正規化(ブロック「>>」)は、たとえば、右シフトすることによって、または上記で説明したような丸めを伴う除算によって、実行され得る。
この結合(等価な4タップフィルタ)に対して得られる式は、次のように表現される。
Figure 0007293361000028
この実施形態は、LUTベースの実装を可能にする。この実装形態によれば、係数値はまた、LUTを使用して規定され得る。このLUTの中に記憶される値は、(丸めありと丸めなしの両方の事例に対して)Table 4(表10)を使用して規定される。
Figure 0007293361000029
Table 4(表10)から、係数が[0,31]という範囲内にあることが注目され得る。この事実は、少なくとも中期的な観点では最も頻繁に使用される、また使用されることになる、8ビットおよび10ビットのピクチャに対して、16ビット乗算器を使用するという可能性からなる本発明の技術的利点の説明となる。本発明の典型的な実装形態は、4つの並列な乗算演算を備えることになり、乗算のオペランドは、フィルタ係数に対して最大で6、またサンプルに対して10というビット深度を有する。乗算の結果は16ビット値を超えないことになり、したがって、提案された係数を実装の観点から好意的にさせる。
インター予測モードでは、ブロック動き補償が実行される。動き補償は、イントラ補間フィルタ処理と類似の補間フィルタ処理のステップを備えることがある。本発明の別の有益な特性は、補間フィルタの係数が、イントラ予測モードとインター予測モードの両方に対して同じ精度を有する(すなわち、係数の値のビット深度が同じである)ことである。イントラ予測事例において補間フィルタ係数の精度がより高い場合、そのことはビデオコーデックの計算量に悪影響を及ぼすことがある。その理由とは、イントラ予測が以前のブロックの再構成サンプルを必要とするので、イントラ予測が本質的に連続的であることである。対照的に、インター予測は並行して実行され得る。したがって、補間の精度がイントラ予測に対してインター予測よりも高い場合、そのことは、イントラ予測パイプラインとインター予測パイプラインとの間の実装ミスバランス(misbalance)を深めることがある。精度のこの整合は、そのような否定的結論を避けることを可能にする。
提案する発明の別の利点は、係数の多様性の低減にある。Table 4(表10)の隣接する行のペアが同一であることを考慮すると、本発明の実際的な実装形態は、32行ではなく16行(「丸めなし」事例での偶数値のpに対応する行、および「丸めあり」事例での奇数値のpに対応する行)しか有しないLUTから、フェッチすることになる。
本発明の技術的効果は、本発明が少なくとも以下のタイプの実装形態、すなわち、
- 算出が上記で説明した分析的な式に基づく、pの値を使用してフィルタ係数を算出するLUTなしの実装形態、および
- pの値に基づくインデックス値を使用してLUTからフィルタ係数をフェッチするLUTベースの実装形態
を可能にすることである。
pの値の精度は、係数の値を算出するときに低減される。詳細には、係数の値は、ハードウェアで簡単に実装可能である1だけの右シフトとして実装され得る、2での整数除算、すなわち、
Figure 0007293361000030
の結果に基づいて導出される。LUTベースの実装形態の場合、この精度低減は、LUTを記憶するために必要とされるメモリの低減をもたらす。ハードウェアでは、このことはまた、LUTのアドレスバスのワイヤの本数を減らすことになる。
本開示の一実施形態によれば、ビデオフレームのイントラまたはインター予測処理のための装置が提供され、装置は、参照サンプルを取得するように構成された参照サンプル取得ユニットと、サブピクセルオフセットの値を取得するように構成されたサブピクセルオフセット値取得ユニットと、予測サンプル値を取得するために参照サンプルをフィルタ処理するように構成されたサブピクセル4タップ補間フィルタとを含み、サブピクセル4タップ補間フィルタのフィルタ係数は、
Figure 0007293361000031
を満たし、pは、サブピクセルオフセットの値の分数部分であり、c0、c1、c2、およびc3は、サブピクセル4タップ補間フィルタのフィルタ係数である。
本開示の一実施形態によれば、サブピクセル4タップ補間フィルタのフィルタ係数は、次のような表、すなわち、
Figure 0007293361000032
Figure 0007293361000033
の中で規定される。
本開示の一実施形態によれば、ビデオフレームのイントラまたはインター予測処理のための装置が提供され、装置は、参照サンプルを取得するように構成された参照サンプル取得ユニットと、サブピクセルオフセットの値を取得するように構成されたサブピクセルオフセット値取得ユニットと、予測サンプル値を取得するために参照サンプルをフィルタ処理するように構成されたサブピクセル4タップ補間フィルタとを備え、サブピクセル4タップ補間フィルタのフィルタ係数は、次のように、すなわち、
Figure 0007293361000034
のように規定され、pは、サブピクセルオフセットの値の分数部分であり、c0、c1、c2、およびc3は、フィルタ係数である。
図25は、参照サンプル取得ユニット2510、サブピクセルオフセット値取得ユニット2520、およびサブピクセル補間フィルタ2530を備える、イントラ/インター処理モジュール2500の概略図を示す。
本開示の一実施形態によれば、ビデオコーディングのための装置が提供され、装置は、ビデオフレームのブロックをイントラ予測するように構成されたイントラ予測処理ユニットと、ビデオフレームの参照サンプルをフィルタ処理するように構成されたサブピクセル4タップ補間フィルタとを備え、サブピクセル4タップ補間フィルタはフィルタの結合であり、フィルタのうちの少なくとも1つのフィルタ係数は、
Figure 0007293361000035
を満たし、pは、サブピクセルオフセットの分数サンプル位置であり、c0、c1、c2、およびc3は、フィルタ係数である。
図26は、イントラ予測処理ユニット2610およびサブピクセル補間フィルタ2620を備える、ビデオコーディングモジュール2600の概略図を示す。
本開示の一実施形態によれば、本開示の前の実施形態のうちのいずれか1つによる方法を実行するための処理回路構成を備えるエンコーダ(20)が提供される。
本開示の一実施形態によれば、本開示の前の実施形態のうちのいずれか1つによる方法を実行するための処理回路構成を備えるデコーダ(30)が提供される。
本開示の一実施形態によれば、本開示の前の実施形態のうちのいずれか1つによる方法を実行するためのプログラムコードを備えるコンピュータプログラム製品が提供される。
本開示の一実施形態によれば、1つまたは複数のプロセッサと、プロセッサに結合されプロセッサによる実行のためのプログラミングを記憶する非一時的コンピュータ可読記憶媒体とを備える、デコーダが提供され、プログラミングは、プロセッサによって実行されたとき、本開示の前の実施形態のうちのいずれか1つによる方法を実行するようにデコーダを構成する。
本開示の一実施形態によれば、1つまたは複数のプロセッサと、プロセッサに結合されプロセッサによる実行のためのプログラミングを記憶する非一時的コンピュータ可読記憶媒体とを備える、エンコーダが提供され、プログラミングは、プロセッサによって実行されたとき、本開示の前の実施形態のうちのいずれか1つによる方法を実行するようにエンコーダを構成する。
前の実施形態のうちのいずれによる本開示も、ビデオフレームのイントラ/インター予測を高速に実行するという利点をもたらし得る。なぜなら、補間フィルタのフィルタ係数が分析的に取得され、すなわち、前記係数がオンザフライで計算されるからである。このことは、メモリから係数を読み取るためのアクセス時間を必要とする、係数をルックアップテーブル(LUT)の中に記憶することを回避する。
したがって、予測は、より効率的になり、必要とされるメモリに対してより少ない需要しか求めない。このことはまた、予測の低コスト実装を可能にする。その上、分析的なフィルタ係数{ci}が分数サンプル位置pにおいて線形であり、かつ2での除算演算を伴うので、それぞれの演算は、高速な低レベルビット演算を採用することによって効率的に実行され得る。ビット演算を実行するための、またフィルタ係数を計算するための、それぞれの時間は、LUTからの記憶された係数にアクセスするための時間よりも短い。したがって、レイテンシが低減される。
その上、フィルタ係数の特定の分析構造は、フィルタユニットの低複雑度実装という利点をもたらし得る。加えて、異なるサブピクセル位置に対するフィルタ応答(すなわち、周波数応答)は、大きさおよび位相に関して一致し、特に高周波における応答の中のアーテファクトを回避する。フィルタ係数の線形性は、ハードウェアを再使用するという利点をもたらし得る。
一実施形態では、シャープ化補間フィルタの場合、強度パラメータSが次のように規定される。
Figure 0007293361000036
この強度パラメータSは、ハーフペル位置(p=16)において最大値を有するように規定される。整数位置に近いサブピクセル位置に対して、強度パラメータSはより小さい値を有する。フィルタの例示的な結合が図10に示される。この図の中のブロックF1は、その係数が次のように規定される線形フィルタを表す。
c0=64-(p<<1)
c1=p<<1
ブロックF2は、以下の係数を有する高域フィルタを表す。
c0=-1
c1=1
c2=1
c3=-1
ブロックF2の出力は、強度パラメータSで乗算されつつある。乗算の結果は、線形フィルタF1の出力とともにさらに合計され、得られた合計が正規化される。
この結合(等価な4タップフィルタ)に対して得られる式は、次のように表現される。
c0=-S
c1=64-(p<<1)+S
c2=(p<<1)+S
c3=-S
この式に対して、LUTベースの実装形態も可能である。Table 5(表13)は係数の値を与える。
Figure 0007293361000037
フィルタF2が負の係数を有するとき、正規化された結果は、SPSの中でシグナリングされるか、またはサンプルのビット深度から導出されるかのいずれかであり得る、許容値の範囲に適合するようにさらにクリップされる。
代替実施形態は、クリッピング動作の代替位置を指定することである(図11を参照)。この代替設計は、線形フィルタF1がその入力値のうちのいずれよりも低いかまたは高い出力値を有しなくてよいことに基づく。
一実施形態では、クリッピングブロックは以下のステップを使用して動作する。
ステップ1は、最小しきい値処理または最大しきい値処理を実行すべきと決定することである。
ステップ2は、ステップ1の結果に依存する。詳細には、最小しきい値処理または最大しきい値処理のいずれかが実行される。
クリッピングブロックへの入力が負である場合に最小しきい値処理が適用される。そうでない場合、最大しきい値処理が適用される。ステップ2の(またクリッピングブロックの)出力vcは、次のように規定され得る。
Figure 0007293361000038
入力値vに対して、最小しきい値処理の出力vcminは次のように計算される。
Figure 0007293361000039
最大しきい値処理の出力は次のように計算される。
Figure 0007293361000040
pmaxは、サンプルの許容値の範囲の最大値である。
値refxおよびrefx-1は、線形フィルタF1の入力である、図11に示す入力参照サンプルである。
一実施形態では、乗算演算の後にクリッピングが実行される場合、vcは次のように計算される。
Figure 0007293361000041
いくつかの実施形態では、図9の中のフィルタF3、図10および図11の中のフィルタF2は、位相パラメータPに依存しなくてよい。これらのフィルタの出力が予測サンプルの入力行ごとに同じであってよく、したがって、補間プロセスを開始する前に、たとえば、参照サンプルフィルタ処理プロセスの段階において、このステップが実行され得るので、これらの実施形態は実装を簡略化する。この手法は並列性を高め、したがって、方向性フィルタ処理のレイテンシを低減する。
別の代替実施形態(図12を参照)は、フィルタ出力の乗算器だけでなく、調整可能な強度のフィルタを使用する。図12Aは、高域フィルタF2の出力に対してクリッピングが実行される事例を示す。図12Bは、F1とF2との結合の正規化された出力部の出力に対してクリッピングが実行される事例を示す。調整可能な強度のフィルタの例は、次のようなもの、すなわち、双方向フィルタ、逆変換フィルタなどであり得る。
別の実施形態はpの低減された解像度を使用し、すなわち、32エントリのうちの16エントリのみが使用される。このことは、たとえば、pの最下位ビットを0に設定することによって達成される。
図13~図21に示すように、イントラ予測とインター予測の両方に対して、補間フィルタ係数のLUTベース表現と分析的表現との様々な組合せが可能である。たとえば、図14は、イントラ予測事例において使用される平滑化補間フィルタのための係数が算出されるのに対して、イントラ予測とインター予測の両方に対する他の補間フィルタのための係数がLUTの中に記憶される、使用事例を示す。加えて、ビデオコーディング仕様は、様々な実装形態を可能にするために、補間フィルタ係数のLUTベース表現と分析的表現の両方を含むことができる。両方の表現が記載される場合、LUTベース表現および分析的表現は同一の係数を提供すべきである。
図22は、図1に示す係数計算方法の実装形態を表す。
c0=-S
c1=64-(p<<1)+S
c2=(p<<1)+S
c3=-S
という式において、強度パラメータSは次のように規定される。
Figure 0007293361000042
この実装形態は、強度パラメータSを導出するための異なる方法に対応する(図22の中の「q」の得られた値として示す)。分数サンプル位置pの値は、入力1ビット信号SELによって制御されるデマルチプレクサDEMUXの中に転送され、SELは、pの5番目の最下位ビット(インデックス付けが0から開始する場合、4というインデックスを有する)の値に設定される。このビットが「1」に等しい場合、SEL信号は、pの値が16よりも大きいことを示し、以下の値が計算されるべきである。
q=-(not(31 xor p))
ここで、「not」および「xor」は、それぞれ、ビットごとのNOT演算およびXOR演算である。この表現は、q=(32-p)と同等であり、C/C++プログラミング言語では
q=-(~(0x1F^p))
として書くことができる。
そうでない場合(すなわち、デマルチプレクサDEMUXの入力信号SELが「0」に等しい場合)、いかなる計算もバイパスされ、信号qのように信号pがマルチプレクサMUXに転送される。マルチプレクサMUXの出力信号rは、次のようにtの値を算出するモジュールに渡される。
t=((r<<1)+r)>>3
ここで、「<<」および「>>」は、それぞれ、左シフト演算および右シフト演算である。
事実上、tのこの値が強度パラメータSである。線形フィルタの係数のうちの1つと並行して、図22に示すステップを実行することによって、さらなる最適化が可能である。
z=(64-(p<<1))
zとSの両方の値が算出されるとすぐに、それらが互いに加算されてc1=z+Sを取得することができる。
本発明の実施形態は主にビデオコーディングに基づいて説明されているが、コーディングシステム10、エンコーダ20、およびデコーダ30(かつそれに対応して、システム10)の実施形態、ならびに本明細書で説明する他の実施形態がまた、静止画処理または静止画コーディング、すなわち、ビデオコーディングにおけるような先行するかまたは連続する任意のピクチャから独立した個々のピクチャの処理またはコーディングのために構成され得ることに留意されたい。概して、ピクチャ処理コーディングが単一のピクチャ17に限定される場合には、インター予測ユニット244(エンコーダ)および344(デコーダ)だけは利用可能でなくてよい。ビデオエンコーダ20およびビデオデコーダ30のすべての他の機能性(ツールまたは技術とも呼ばれる)は、静止画処理、たとえば、残差計算204/304、変換206、量子化208、逆量子化210/310、(逆)変換212/312、区分262/362、イントラ予測254/354および/またはループフィルタ処理220、320、ならびにエントロピーコーディング270およびエントロピー復号304のために等しく使用され得る。
たとえば、エンコーダ20およびデコーダ30の実施形態、ならびに、たとえば、エンコーダ20およびデコーダ30を参照しながら、本明細書で説明する機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実施され得る。ソフトウェアで実施される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されてよく、または通信媒体を介して送信されてよく、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、データ記憶媒体などの有形媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体に相当する、コンピュータ可読記憶媒体を含んでよい。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に、相当し得る。データ記憶媒体は、本開示で説明する技法の実施のための命令、コード、および/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であってよい。コンピュータプログラム製品は、コンピュータ可読媒体を含んでよい。
例として、かつ限定的でなく、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROM、または他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気記憶デバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得るとともにコンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、任意の接続が適切にコンピュータ可読媒体と呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義の中に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体が、接続、搬送波、信号、または他の一時的媒体を含まず、代わりに非一時的な有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびBlu-ray(登録商標)ディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記のものの組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の均等な集積論理回路構成もしくは個別論理回路構成などの、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造または本明細書で説明する技法の実装にとって好適な任意の他の構造のうちのいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明する機能性は、符号化および復号するために構成された専用のハードウェア内および/またはソフトウェアモジュール内で提供され得るか、または組み合わせられたコーデックの中に組み込まれ得る。また、技法は1つまたは複数の回路または論理要素の中に完全に実装され得る。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実施され得る。様々な構成要素、モジュール、またはユニットは、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために本開示で説明されるが、必ずしも様々なハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、コーデックハードウェアユニットの中で組み合わせられてよく、あるいは好適なソフトウェアおよび/またはファームウェアとともに、上記で説明したような1つまたは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてよい。
要約すると、本開示は、ビデオ符号化および復号のためのイントラまたはインター予測に関する。その目的のために、装置および方法は、参照サンプルおよびサブピクセルオフセット値を取得する。予測サンプル値を取得するために、サブピクセル4タップ補間フィルタが、参照サンプルをフィルタ処理するために使用される。
Figure 0007293361000043
のように、サブピクセル4タップ補間フィルタのフィルタ係数は、サブピクセルオフセットの値に従って規定され、pは、サブピクセルオフセットの値の分数部分である。
以下の節では追加の実施形態が要約される。
第1節:ビデオコーディング技術のイントラまたはインター予測プロセスのための方法であって、方法は、
参照サンプル(すなわち、少なくとも1つの参照サンプルであって、一例では、参照サンプルの数量は4個であってよい)を取得するステップと、
サブピクセルオフセットの値を取得するステップと、
予測サンプル値を取得するためにサブピクセル補間フィルタを使用して参照サンプルをフィルタ処理するステップとを備え、サブピクセル補間フィルタのフィルタ係数は、サブピクセルオフセットの値に従って取得される。
第2節:サブピクセル補間フィルタのフィルタ係数が、サブピクセルオフセットの値の分数部分に従って取得される、第1節の方法。
第3節:サブピクセル補間フィルタが、等価な4タップフィルタである、第1節または第2節の方法。
第4節:サブピクセル補間フィルタのフィルタ係数が、
Figure 0007293361000044
に従って取得され、pが、サブピクセルオフセットの値の分数部分である、第3節の方法。
第5節:サブピクセル補間フィルタのフィルタ係数が、
c0=-S
c1=64-(p<<1)+S
c2=(p<<1)+S
c3=-S
に従って取得され、強度パラメータSが、次のように、すなわち、
Figure 0007293361000045
のように規定され、pが、サブピクセルオフセットの値の分数部分である、第3節の方法。
第6節:サブピクセルオフセットpのビット(たとえば、最下位ビット、または下位ビット)が0に設定される、第1節~第5節のうちのいずれか1つの方法。
第7節:サブピクセルオフセットpの値が1だけインクリメントされ、その後、インクリメントされた値の下位ビットが0に設定されてから、この値が使用されてフィルタ係数を導出する、第1節~第5節のうちのいずれか1つの方法。
第8節:ビデオコーディングの方法であって、方法は、参照サンプルに適用されるサブピクセル補間フィルタ処理を備える、ブロックのイントラ予測処理を備え、
サブピクセル補間フィルタはフィルタの結合であり、フィルタのうちの少なくとも1つは、サブピクセルオフセットに従って決定される。
第9節:補間フィルタが、2つの位相に依存する線形フィルタと低域フィルタとの並列結合である平滑化フィルタである、第8節の方法。
第10節:補間フィルタが、1つの位相に依存する線形フィルタと強度変動高域フィルタとの並列結合であるシャープ化フィルタである、第8節の方法。
第11節:強度変動高域フィルタが、位相に依存しない高域FIRフィルタであり、その出力が、位相に依存する強度パラメータで乗算される、第10節の方法。
第12節:フィルタの結合が、
Figure 0007293361000046
という式に従って指定された係数を有する等価な4タップフィルタであり、pが分数サンプル位置pである、第9節の方法。
第13節:フィルタの結合が、
c0=-S
c1=64-(p<<1)+S
c2=(p<<1)+S
c3=-S
という式に従って指定された係数を有する等価な4タップフィルタであり、強度パラメータSが、次のように、すなわち、
Figure 0007293361000047
のように規定される、第11節の方法。
第14節:分数サンプル位置pの下位ビットが0に設定される、前の節のうちのいずれか1つの方法。
第15節:分数サンプル位置pが1だけインクリメントされ、その後、インクリメントされた値の下位ビットが0に設定されてから、この値が使用されて補間フィルタ係数を導出する、第8節~第13節のうちのいずれか1つの方法。
第16節:強度変動高域フィルタの出力に対してクリッピング動作が実行される、第10節または第11節の方法。
第17節:第1節~第16節のうちのいずれか1つによる方法を実行するための処理回路構成を備えるエンコーダ(20)。
第18節:第1節~第16節のうちのいずれか1つによる方法を実行するための処理回路構成を備えるデコーダ(30)。
第19節:第1節~第16節のうちのいずれか1つによる方法を実行するためのプログラムコードを備えるコンピュータプログラム製品。
第20節:デコーダであって、
1つまたは複数のプロセッサと、
プロセッサに結合されプロセッサによる実行のためのプログラミングを記憶する非一時的コンピュータ可読記憶媒体とを備え、プログラミングは、プロセッサによって実行されたとき、第1節~第16節のうちのいずれか1つによる方法を実行するようにデコーダを構成する。
第21節:エンコーダであって、
1つまたは複数のプロセッサと、
プロセッサに結合されプロセッサによる実行のためのプログラミングを記憶する非一時的コンピュータ可読記憶媒体とを備え、プログラミングは、プロセッサによって実行されたとき、第1節~第16節のうちのいずれか1つによる方法を実行するようにエンコーダを構成する。
第22節:ビデオコーディング技術のイントラまたはインター予測プロセスのための方法であって、方法は、
参照サンプル(すなわち、少なくとも1つの参照サンプルであって、一例では、参照サンプルの数量は4個であってよい)を取得するステップと、
分数サンプル位置を取得するステップと、
予測サンプル値を取得するためにサブピクセル補間フィルタを使用して参照サンプルをフィルタ処理するステップとを備え、サブピクセル補間フィルタのフィルタ係数は、
c0=-S
c1=64-(p<<1)+S
c2=(p<<1)+S
c3=-S
に従って取得され、Sは強度パラメータであり、pは分数サンプル位置であり、c0、c1、c2、c3はフィルタ係数である。
第23節:方法が、
分数サンプル位置pのN番目の最下位ビットを取ることによってSEL信号の値を取得するステップであって、Nが正の整数である、ステップと、
qという中間値を取得するステップであって、SEL信号が0であるとき、qが分数サンプル位置pの値に等しく設定され、またはSEL信号が0でないとき、qが-(not(31 xor p))に設定される、ステップと、
1つの加算演算およびシフト演算、すなわち、
S=((q<<1)+q)>>3
を使用して強度パラメータSを取得するステップとをさらに備える、第22節の方法。
第24節:Nが5に等しい、第23節の方法。
第25節:サブピクセル補間フィルタが、等価な4タップフィルタである、第22節~第24節のうちのいずれか1つの方法。
第26節:強度パラメータSが、線形フィルタzの係数と並行して計算され、線形フィルタzの係数が、サブピクセル補間フィルタのフィルタ係数c1を取得するために使用され、
z=64-(p<<1)
である、第22節~第25節のうちのいずれか1つの方法。
第27節:分数サンプル位置pのビット(たとえば、最下位ビット、または下位ビット)が0に設定される、第22節~第25節のうちのいずれか1つの方法。
第28節:分数サンプル位置pが1だけインクリメントされ、その後、インクリメントされた値の下位ビットが0に設定されてから、この値が使用されてフィルタ係数を導出する、第22節~第26節のうちのいずれか1つの方法。
第29節:ビデオコーディングの方法であって、方法は、参照サンプルに適用されるサブピクセル補間フィルタ処理を備える、ブロックのイントラ予測処理を備え、
サブピクセル補間フィルタはフィルタの結合であり、フィルタのうちの少なくとも1つは、分数サンプル位置に従って決定される。
第29節:補間フィルタが、2つの位相に依存する線形フィルタと低域フィルタとの並列結合である平滑化フィルタである、第28節の方法。
第30節:補間フィルタが、1つの位相に依存する線形フィルタと強度変動高域フィルタとの並列結合であるシャープ化フィルタである、第29節の方法。
第31節:強度変動高域フィルタが、位相に依存しない高域FIRフィルタであり、その出力が、位相に依存する強度パラメータで乗算される、第30節の方法。
第32節:第22節~第31節のうちのいずれか1つによる方法を実行するための処理回路構成を備えるエンコーダ(20)。
第33節:第22節~第31節のうちのいずれか1つによる方法を実行するための処理回路構成を備えるデコーダ(30)。
第34節:第22節~第31節のうちのいずれか1つによる方法を実行するためのプログラムコードを備えるコンピュータプログラム製品。
第35節:デコーダであって、
1つまたは複数のプロセッサと、
プロセッサに結合されプロセッサによる実行のためのプログラミングを記憶する非一時的コンピュータ可読記憶媒体とを備え、プログラミングは、プロセッサによって実行されたとき、第22節~第31節のうちのいずれか1つによる方法を実行するようにデコーダを構成する。
第36節:エンコーダであって、
1つまたは複数のプロセッサと、
プロセッサに結合されプロセッサによる実行のためのプログラミングを記憶する非一時的コンピュータ可読記憶媒体とを備え、プログラミングは、プロセッサによって実行されたとき、第22節~第31節のうちのいずれか1つによる方法を実行するようにエンコーダを構成する。
図1A
10 ビデオコーディングシステム
12 ソースデバイス
13 通信チャネル
14 宛先デバイス
16 ピクチャソース
17 ピクチャデータ
18 プリプロセッサ
19 前処理済みのピクチャデータ
20 ビデオエンコーダ
21 符号化ピクチャデータ
22 通信インターフェース
28 通信インターフェース
30 ビデオデコーダ
31 復号ピクチャデータ
32 ポストプロセッサ
33 後処理されたピクチャデータ
34 ディスプレイデバイス
図1B
40 ビデオコーディングシステム
41 イメージングデバイス
42 アンテナ
43 プロセッサ
44 メモリストア
45 ディスプレイデバイス
46 処理回路構成
20 ビデオエンコーダ
30 ビデオデコーダ
図2
17 ピクチャ(データ)
19 前処理済みのピクチャ(データ)
20 ビデオエンコーダ
21 符号化ピクチャデータ
201 入力部(インターフェース)
204 残差計算[ユニットまたはステップ]
206 変換処理ユニット
208 量子化ユニット
210 逆量子化ユニット
212 逆変換処理ユニット
214 再構成ユニット
220 ループフィルタユニット
230 復号ピクチャバッファ(DPB)
260 モード選択ユニット
270 エントロピー符号化ユニット
272 出力部(インターフェース)
244 インター予測ユニット
254 イントラ予測ユニット
262 区分ユニット
203 ピクチャブロック
205 残差ブロック
213 再構成残差ブロック
215 再構成ブロック
221 フィルタ処理済みのブロック
231 復号ピクチャ
265 予測ブロック
266 シンタックス要素
207 変換係数
209 量子化係数
211 逆量子化係数
図3
21 符号化ピクチャデータ
30 ビデオデコーダ
304 エントロピー復号ユニット
309 量子化係数
310 逆量子化ユニット
311 逆量子化係数
312 逆変換処理ユニット
313 再構成残差ブロック
314 再構成ユニット
315 再構成ブロック
320 ループフィルタ
321 フィルタ処理済みのブロック
330 復号ピクチャバッファDBP
331 復号ピクチャ
360 モード適用ユニット
365 予測ブロック
366 シンタックス要素
344 インター予測ユニット
354 イントラ予測ユニット
図4
400 ビデオコーディングデバイス
410 入口ポート/入力ポート
420 受信機ユニットRx
430 プロセッサ
440 送信機ユニットTx
450 出口ポート/出力ポート
460 メモリ
470 コーディングモジュール
図5
500 ソースデバイスまたは宛先デバイス
502 プロセッサ
504 メモリ
506 コードおよびデータ
508 オペレーティングシステム
510 アプリケーションプログラム
512 バス
518 ディスプレイ
図23
2300 イントラ/インター予測処理方法のフローチャート
図24
2400 ビデオコーディング方法のフローチャート
図25
2500 イントラ/インター処理モジュール
2510 参照サンプル取得ユニット
2520 サブピクセルオフセット値取得ユニット
2530 サブピクセル補間フィルタ
図26
2600 ビデオコーディングモジュール
2610 イントラ予測処理ユニット
2620 サブピクセル補間フィルタ

Claims (6)

  1. ビデオフレームのイントラ予測またはインター予測処理のための方法であって、
    参照サンプルを取得するステップと、
    サブピクセルオフセットの値を取得するステップと、
    予測サンプル値を取得するために4タップ補間フィルタを使用して前記参照サンプルをフィルタ処理するステップと
    を備え、
    前記4タップ補間フィルタのフィルタ係数が、次のように、すなわち、
    Figure 0007293361000048
    Figure 0007293361000049
    のように規定され、
    pが、前記サブピクセルオフセットの前記値の分数部分であり、c0、c1、c2、およびc3が、前記フィルタ係数である、
    方法。
  2. ビデオフレームのイントラ予測またはインター予測処理のための装置であって、
    参照サンプルを取得するように構成された参照サンプル取得ユニットと、
    サブピクセルオフセットの値を取得するように構成されたサブピクセルオフセット値取得ユニットと、
    予測サンプル値を取得するために前記参照サンプルをフィルタ処理するように構成された4タップ補間フィルタと
    を備え、
    前記4タップ補間フィルタのフィルタ係数が、次のように、すなわち、
    Figure 0007293361000050
    Figure 0007293361000051
    のように規定され、
    pが、前記サブピクセルオフセットの前記値の分数部分であり、c0、c1、c2、およびc3が、前記フィルタ係数である、
    装置。
  3. デコーダであって、
    1つまたは複数のプロセッサと、
    前記プロセッサに結合され前記プロセッサによる実行のためのプログラミングを記憶する非一時的コンピュータ可読記憶媒体と
    を備え、
    前記プログラミングが、前記プロセッサによって実行されたとき、請求項1に記載の方法を実行するように前記デコーダを構成する、
    デコーダ。
  4. エンコーダであって、
    1つまたは複数のプロセッサと、
    前記プロセッサに結合され前記プロセッサによる実行のためのプログラミングを記憶する非一時的コンピュータ可読記憶媒体と
    を備え、
    前記プログラミングが、前記プロセッサによって実行されたとき、請求項1に記載の方法を実行するように前記エンコーダを構成する、
    エンコーダ。
  5. プログラムがその上に記録されたコンピュータ可読記憶媒体であって、前記プログラムが、請求項1に記載の方法をコンピュータに実行させる、コンピュータ可読記憶媒体。
  6. 請求項1に記載の方法をコンピュータに実行させるように構成された、媒体上に記憶されるコンピュータプログラム。
JP2021536190A 2018-12-21 2019-12-20 予測コーディングのための補間フィルタ処理の方法および装置 Active JP7293361B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023094163A JP2023118725A (ja) 2018-12-21 2023-06-07 予測コーディングのための補間フィルタ処理の方法および装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862784319P 2018-12-21 2018-12-21
US62/784,319 2018-12-21
PCT/RU2019/050251 WO2020130887A1 (en) 2018-12-21 2019-12-20 Method and apparatus of interpolation filtering for predictive coding

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023094163A Division JP2023118725A (ja) 2018-12-21 2023-06-07 予測コーディングのための補間フィルタ処理の方法および装置

Publications (2)

Publication Number Publication Date
JP2022514922A JP2022514922A (ja) 2022-02-16
JP7293361B2 true JP7293361B2 (ja) 2023-06-19

Family

ID=71102388

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2021536190A Active JP7293361B2 (ja) 2018-12-21 2019-12-20 予測コーディングのための補間フィルタ処理の方法および装置
JP2023094163A Pending JP2023118725A (ja) 2018-12-21 2023-06-07 予測コーディングのための補間フィルタ処理の方法および装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023094163A Pending JP2023118725A (ja) 2018-12-21 2023-06-07 予測コーディングのための補間フィルタ処理の方法および装置

Country Status (12)

Country Link
US (2) US11877013B2 (ja)
EP (2) EP3891980B1 (ja)
JP (2) JP7293361B2 (ja)
KR (1) KR20210100183A (ja)
CN (2) CN113556566B (ja)
AU (2) AU2019401811B2 (ja)
BR (1) BR112021000657A2 (ja)
CA (1) CA3124104A1 (ja)
IL (1) IL284189A (ja)
MX (1) MX2021007537A (ja)
SG (1) SG11202106487VA (ja)
WO (1) WO2020130887A1 (ja)

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8811484B2 (en) * 2008-07-07 2014-08-19 Qualcomm Incorporated Video encoding by filter selection
US10045046B2 (en) * 2010-12-10 2018-08-07 Qualcomm Incorporated Adaptive support for interpolating values of sub-pixels for video coding
KR101956284B1 (ko) * 2011-06-30 2019-03-08 엘지전자 주식회사 보간 방법 및 이를 이용한 예측 방법
CN104604225B (zh) 2012-09-10 2018-01-26 太阳专利托管公司 图像编码方法、图像解码方法、图像编码装置、图像解码装置及图像编码解码装置
KR102257542B1 (ko) * 2012-10-01 2021-05-31 지이 비디오 컴프레션, 엘엘씨 향상 레이어에서 변환 계수 블록들의 서브블록-기반 코딩을 이용한 스케일러블 비디오 코딩
US9948939B2 (en) * 2012-12-07 2018-04-17 Qualcomm Incorporated Advanced residual prediction in scalable and multi-view video coding
US9451254B2 (en) * 2013-07-19 2016-09-20 Qualcomm Incorporated Disabling intra prediction filtering
US10462480B2 (en) * 2014-12-31 2019-10-29 Microsoft Technology Licensing, Llc Computationally efficient motion estimation
WO2016195453A1 (ko) * 2015-06-05 2016-12-08 한양대학교 산학협력단 영상 부호화 및 복호화 방법과 영상 복호화 장치
CA3005417A1 (en) * 2015-11-17 2017-05-26 Huawei Technologies Co., Ltd. Method and apparatus for video coding
US10194170B2 (en) * 2015-11-20 2019-01-29 Mediatek Inc. Method and apparatus for video coding using filter coefficients determined based on pixel projection phase
US10390015B2 (en) * 2016-08-26 2019-08-20 Qualcomm Incorporated Unification of parameters derivation procedures for local illumination compensation and cross-component linear model prediction
US10341659B2 (en) * 2016-10-05 2019-07-02 Qualcomm Incorporated Systems and methods of switching interpolation filters
US10904565B2 (en) * 2017-06-23 2021-01-26 Qualcomm Incorporated Memory-bandwidth-efficient design for bi-directional optical flow (BIO)
WO2019160860A1 (en) * 2018-02-14 2019-08-22 Futurewei Technologies, Inc. Adaptive interpolation filter
JP7250917B2 (ja) * 2018-10-06 2023-04-03 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 補間フィルタを使用するイントラ予測のための方法および装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FILIPPOV, Alexey et al.,Non-CE3: LUT-free interpolation filters for intra prediction,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 13th Meeting: Marrakech, MA, 9-18 Jan. 2019, [JVET-M0158-v2],JVET-M0158 (version 3),ITU-T,2019年01月15日,<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/13_Marrakech/wg11/JVET-M0158-v3.zip>: JVET-M0158-v3.docx: pp.1-9
VAN DER AUWERA, Geert et al.,CE3-related: On MDIS and intra interpolation filter switching,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 11th Meeting: Ljubljana, SI, 10-18 July 2018, [JVET-K0064-v2],JVET-K0064 (version 2),ITU-T,2018年07月13日,<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/11_Ljubljana/wg11/JVET-K0064-v2.zip>: JVET-K0064_v2.docx: pp.1-7

Also Published As

Publication number Publication date
AU2019401811A1 (en) 2021-07-15
AU2024200360A1 (en) 2024-02-08
US11877013B2 (en) 2024-01-16
EP3891980A4 (en) 2022-06-22
US20210337238A1 (en) 2021-10-28
CN113556566A (zh) 2021-10-26
SG11202106487VA (en) 2021-07-29
JP2022514922A (ja) 2022-02-16
CA3124104A1 (en) 2020-06-25
IL284189A (en) 2021-08-31
KR20210100183A (ko) 2021-08-13
CN113170119A (zh) 2021-07-23
NZ777503A (en) 2023-10-27
EP3891980B1 (en) 2024-05-08
WO2020130887A1 (en) 2020-06-25
JP2023118725A (ja) 2023-08-25
EP3891980A1 (en) 2021-10-13
US20240146974A1 (en) 2024-05-02
BR112021000657A2 (pt) 2021-04-13
AU2019401811B2 (en) 2023-11-23
MX2021007537A (es) 2021-09-28
CN113556566B (zh) 2022-06-10
EP4358513A2 (en) 2024-04-24

Similar Documents

Publication Publication Date Title
JP7277586B2 (ja) モードおよびサイズに依存したブロックレベル制限の方法および装置
JP2023088997A (ja) 補間フィルタを使用するイントラ予測のための方法および装置
US20210321113A1 (en) Encoder, a decoder and corresponding methods using compact mv storage
US11800152B2 (en) Separate merge list for subblock merge candidates and intra-inter techniques harmonization for video coding
US20230074457A1 (en) Method and apparatus of subsample interpolation filtering
AU2020206492B2 (en) Encoder, decoder, non-transitionary computer-readable medium and method of video coding a block of a picture
US11849107B2 (en) Method and apparatus of quantizing coefficients for matrix-based intra prediction technique
WO2019204672A1 (en) Interpolation filter for an intra prediction apparatus and method for video coding
WO2021037053A1 (en) An encoder, a decoder and corresponding methods of cabac coding for the indices of geometric partition flag
CA3144809A1 (en) Clipping levels for non-linear adaptive loop filter
US11936860B2 (en) Method and apparatus of sharpening interpolation filtering for predictive coding
JP7293361B2 (ja) 予測コーディングのための補間フィルタ処理の方法および装置
RU2787217C1 (ru) Способ и устройство интерполяционной фильтрации для кодирования с предсказанием
WO2021068785A1 (en) An encoder, a decoder and corresponding methods of unifying interplolation filter of luma and chroma components

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210820

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210820

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230111

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230508

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230607

R150 Certificate of patent or registration of utility model

Ref document number: 7293361

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150