JP7261275B2 - 低減されたメモリアクセスを用いてfrucモードでビデオデータを符号化又は復号する方法及び装置 - Google Patents

低減されたメモリアクセスを用いてfrucモードでビデオデータを符号化又は復号する方法及び装置 Download PDF

Info

Publication number
JP7261275B2
JP7261275B2 JP2021146342A JP2021146342A JP7261275B2 JP 7261275 B2 JP7261275 B2 JP 7261275B2 JP 2021146342 A JP2021146342 A JP 2021146342A JP 2021146342 A JP2021146342 A JP 2021146342A JP 7261275 B2 JP7261275 B2 JP 7261275B2
Authority
JP
Japan
Prior art keywords
motion vector
pixel values
refinement
list
pixels
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
JP2021146342A
Other languages
English (en)
Other versions
JP2022008349A (ja
Inventor
ギローム ラロシュ,
パトリス オンノ,
ジョナサン タケ,
クリストフ ジスケ,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Publication of JP2022008349A publication Critical patent/JP2022008349A/ja
Application granted granted Critical
Publication of JP7261275B2 publication Critical patent/JP7261275B2/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence

Landscapes

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

Description

本開示は、ビデオデータを符号化または復号するための方法およびデバイスに関する。より詳細には、本発明がフレームレートアップコンバージョンモード(Frame-Rate Up Comversion)又はFRUCモードとして参照される、デコーダ側動きベクトル導出モードを使用する特定の符号化モードによる符号化に関する。
ビデオデータの予測符号化は、フレームのピクセルのブロックへの分割に基づく。画素の各ブロックについて、予測ブロックが利用可能なデータ内で探索される。予測ブロックは、INTER符号化モードにおいては、現在のブロックとは異なる参照フレームにおけるブロックとなり、INTRA符号化モードにおいては現在のフレーム内の隣接画素から生成される。予測ブロックを決定する異なる方法に従って、異なる符号化モードが定義される。符号化の結果は、予測ブロックと、符号化されるブロックと予測ブロックとの間の差からなる残差ブロックとの指示である。
INTER符号化モードに関して、予測ブロックの指示は、符号化しようとしているブロックの位置に対する予測ブロックの参照画像内の位置を与える動きベクトルである。動きベクトルは、それ自体、動きベクトル予測子(motion vector predictor)に基づいて予測的に符号化される。HEVC (High Efficiency Video Coding)規格は、動きベクトルの予測符号化のためのいくつかの既知の符号化モード、すなわち、AMVP(Advanced Motion Vector Prediction)モード、マージ導出プロセスを定義する。これらのモードは、動きベクトル予測子の候補リストの構築と、エンコードに使用されるこのリスト内の動きベクトル予測子のインデックスのシグナリングとに基づく。典型的には、残差動きベクトルもシグナリングされる。
最近、FRUCと呼ばれる、動きベクトル予測に関する新しい符号化モードが導入された。これは、シグナリングを全く伴わない動きベクトル予測子のデコーダ側導出プロセスを定義する。導出プロセスの結果は、デコーダによるインデックスまたは残差動きベクトルの送信なしに、動きベクトル予測子として使用される。
FRUCモードの符号化および復号の現在の実施は、多くのメモリアクセスを生成し、既知の符号化モードと比較して、デコーダによって考慮されなければならないメモリアクセスの最悪の場合を著しく増加させる。
本発明は、前述の問題のうちの1つまたは複数に対処するように考案された。本発明はデコーダ側動きベクトル導出方法を使用して動き情報が予測される符号化モードを使用する場合に、メモリアクセスの必要性を低減する符号化および復号の改善に関する。
本発明が提供する、複数のブロックに分割されて符号化された画像で構成されるビデオデータをデコードするデコード方法は、
デコード対象のブロックに関する動きベクトルであって、前記デコード方法における精緻化対象の動きベクトルを決定することと、
前記決定された動きベクトルによって参照されるサブサンプル位置の画素を補間するための画素値群であって、所定範囲内の複数の画素における画素値群である第1の画素値群から、バイリニア補間を用いて、2次元配列の第2の画素値群を生成することと、
前記第2の画素値群の少なくとも一部の画素値を用いて、前記決定された動きベクトルの位置を精緻化する第1の精緻化を実行して、精緻化された第1の位置を決定することと、
前記第2の画素値群の少なくとも一部の画素値を用いて前記第1の位置を更に精緻化する第2の精緻化を実行して、サブサンプル精度の精緻化動きベクトルを決定することと、
前記第2の精緻化が実行されると、前記精緻化動きベクトルを用いて前記デコード対象のブロックをデコードすることと
を有し、
前記デコード方法は、少なくとも、前記バイリニア補間を用いて生成された前記第2の画素値群以外の画素値が前記第2の精緻化に必要となる場合は、前記第2の画素値群以外の画素値を使用しないように、前記第2の精緻化を抑制することを更に含み、
前記デコード対象のブロックは、所定のブロックのサブブロックである
ことを特徴とする。
また、本発明が提供する、複数のブロックに分割されるフレームで構成されるビデオデータをエンコードして符号化データを生成するエンコード方法は、
エンコード対象のブロックに関する動きベクトルであって、少なくとも前記符号化データをデコードするデコード方法において精緻化される精緻化対象の動きベクトルを決定することと、
前記決定された動きベクトルによって参照されるサブサンプル位置の画素を補間するための画素値群であって、所定範囲内の複数の画素における画素値群である第1の画素値群から、バイリニア補間を用いて、2次元配列の第2の画素値群を生成することと、
前記第2の画素値群の少なくとも一部の画素値を用いて、前記決定された動きベクトルの位置を精緻化する第1の精緻化を実行して、精緻化された第1の位置を決定することと、
前記第2の画素値群の少なくとも一部の画素値を用いて前記第1の位置を更に精緻化する第2の精緻化を実行して、サブサンプル精度の精緻化動きベクトルを決定することと、
前記第2の精緻化が実行されると、前記精緻化動きベクトルを用いて前記エンコード対象のブロックをエンコードすることと
を有し、
前記エンコード方法は、少なくとも、前記バイリニア補間を用いて生成された前記第2の画素値群以外の画素値が前記第2の精緻化に必要となる場合は、前記第2の画素値群以外の画素値を使用しないように、前記第2の精緻化を抑制することを更に含み、
前記エンコード対象のブロックは、所定のブロックのサブブロックである
ことを特徴とする。
本発明の第1の態様が提供する、画素のブロックに分割されたフレームで構成されるビデオデータをデコードする方法は、画素のブロックについて、
デコーダ側の動きベクトル導出方法によって動き情報が得られる符号化モードを使用して動きベクトル予測子の動きベクトルリストを導出することと、
ここで、前記導出は、動きベクトルの可能な位置を定義するテンプレートに基づくものである;
ここで、画素のブロックのサイズが、4×4、4×8、または8×4画素の場合、画素単位のテンプレートサイズは画素単位のブロックサイズ以下である、
を含むことを特徴とする。
実施形態では、前記テンプレートは、前記ブロックの左に位置する、前記画素のブロックと同じサイズを有する画素のブロックによって構成される。
実施形態では、前記テンプレートは、前記ブロックの上に位置する、前記画素のブロックと同じサイズを有する画素のブロックによって構成される。
本発明の他の態様が提供する、画素のブロックに分割されたフレームで構成されるビデオデータをデコードする方法は、画素のブロックについて、
デコーダ側の動きベクトル導出方法によって動き情報が得られるモードを使用して動きベクトル予測子の動きベクトルリストを導出することと、
ここで、前記導出は、動きベクトルの可能な位置を定義するテンプレートに基づくものである;
前記方法は更に、
前記リスト内のいくつかの動きベクトルを除去して、動きベクトルの数を所定の数に制限すること
を含むことを特徴とする。
実施形態では、前記除去される動きベクトルは、前記リスト内の第1の動きベクトルである。
実施形態では、前記除去される動きベクトルは、前記リスト内の最後のものである。
実施形態では、前記動きベクトルリストは、3の所定の数に制限される。
本発明の他の態様が提供する、各々が画素のブロックに分割されるフレームで構成されるビデオデータを復号する方法は、画素のブロックについて
デコーダ側の動きベクトル導出方法によって動き情報が得られるモードを使用して動きベクトル予測子の動きベクトルリストを導出することと、
ここで、前記導出は動きベクトルの可能な位置を定義するテンプレートに基づくものである;
ブロックレベルで候補の第1のリストを導出し、サブブロックレベルで候補の第2のリストを導出することとを含む動きベクトルリストの導出と、
動きベクトルマージ候補の評価、ATMVP動きベクトル候補の評価、片側予測子の評価、および、隣接予測子の評価を含む候補の前記第1のリストの導出と、
ここで、片側予測子は、動きベクトルマージ候補の評価の前に最初に評価される
を含むことを特徴とする。
本発明の他の態様が提供する、各々が画素のブロックに分割されるフレームで構成されるビデオデータを復号する方法は、画素のブロックについて
デコーダ側の動きベクトル導出方法によって動き情報が得られるモードを使用して動きベクトル予測子の動きベクトルリストを導出することと、
ここで、前記導出は、動きベクトルの可能な位置を定義するテンプレートに基づくものである;
ブロックレベルで候補の第1のリストを導出することと、サブブロックレベルで候補の第2のリストを導出することとを含む、動きベクトル・リストの導出と、
ATMVP候補の評価およびスケーリングされた時間的予測因子の評価を含む候補の前記第1のリストの導出と、
ここで、ATMVP候補の評価は、スケーリングされた時間的予測子の評価の前に行われる;
を含むことを特徴とする。
本発明の他の態様が提供する、各々が画素のブロックに分割されるフレームで構成されるビデオデータを復号する方法は、画素のブロックについて
デコーダ側の動きベクトル導出方法によって動き情報が得られるモードを使用して動きベクトル予測子の動きベクトルリストを導出することと、
ここで、前記導出は、動きベクトルの可能な位置を定義するテンプレートに基づくものである;
左、上、右上、右下および左上の画素のブロックからの予測子を含む空間予測子の評価、ATMVP予測子の評価、および時間予測子の評価を含む候補の動きベクトルリストの導出と、
ここで、左空間予測子の評価は、左上空間予測子の評価の後に行われる;
を含むことを特徴とする。
本発明の他の態様が提供する、各々が画素のブロックに分割されるフレームで構成されるビデオデータを復号する方法は、画素のブロックについて
デコーダ側の動きベクトル導出方法によって動き情報が得られる符号化モードを使用して動きベクトル予測子の動きベクトルリストを導出することと、
ここで、前記導出は、動きベクトルの可能な位置を定義するテンプレートに基づくものである;
左、上、右上、右下および左上の画素のブロックからの予測子を含む空間予測子の評価、ATMVP予測子の評価、および時間予測子の評価を含む候補の動きベクトルリストの導出と、
ここで、ATMVP予測子の評価は、前記空間予測子の評価の前の最初に行われる;
を含むことを特徴とする。
本発明の他の態様が提供する、各々が画素のブロックに分割されるフレームで構成されるビデオデータを復号する方法は、画素のブロックについて、
デコーダ側の動きベクトル導出方法によって動き情報が得られるモードを使用して動きベクトル予測子の動きベクトルリストを導出することと、
ここで前記導出は、動きベクトルの可能な位置を定義するテンプレートに基づくものである;
左、上、右上、右下および左上の画素のブロックからの予測子を含む空間予測子の評価、ATMVP予測子の評価、および時間予測子の評価を含む候補の動きベクトルリストの導出と、
予測子の評価は、以下の順序で行われる、
最初に左上の空間予測子、次にATMVP予測子、次に左下の空間予測子、次に右上の空間予測子、次に上の空間予測子、次に左の空間予測子、次に時間予測子である;
を含むことを特徴とする。
本発明の他の態様が提供する、各々が画素のブロックに分割されるフレームで構成されるビデオデータを復号する方法は、画素のブロックについて
デコーダ側の動きベクトル導出方法によって動き情報が得られるモードを使用して動きベクトル予測子の動きベクトルリストを導出することと、
ここで、前記導出は、動きベクトルの可能な位置を定義するテンプレートに基づくものである;
ブロックレベルで候補の第1のリストを導出することと、サブブロックレベルで候補の第2のリストを導出するステップとを含む動きベクトルリストの導出と、
ここで、候補の第2のリストは、ブロックのサイズが4×4、4×8、または8×3画素であるとき、前記第1のリスト内の最良の候補のみを含む;
を含むことを特徴とする。
実施形態では、前記最良の候補は、レート歪みコストを最小化する候補である。
本発明の他の態様が提供する、各々が画素のブロックに分割されるフレームで構成されるビデオデータを復号する方法は、画素のブロックについて、
デコーダ側の動きベクトル導出方法によって動き情報が得られるモードを使用して動きベクトル予測子の動きベクトルリストを導出することと、
ここで、前記導出は、動きベクトルの可能な位置を定義するテンプレートに基づくものである;
前記リスト内の動きベクトル予測子を評価して、最良の候補を得ることと、
前記最良の候補に基づいてサブ画素解像度で精緻化ベクトル予測子を評価することと、
ここで、前記精緻化ベクトル予測子の評価は、前記最良の候補のテンプレートにおいて画素値を使用するように制限する;
を含むことを特徴とする。
実施形態では、前記最良の候補は、レート歪みコストを最小化する候補である。
本発明の他の態様が提供する、プログラマブル装置のためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、前記プログラマブル装置にロードされ、前記プログラマブル装置によって実行されるときに、本発明による方法を実施するための一連の命令を含むことを特徴とするコンピュータプログラム製品。
本発明の他の態様は、本発明による方法を実施するためのコンピュータプログラムの命令を記憶するコンピュータ可読記憶媒体を提供する。
本発明による方法の少なくとも一部は、コンピュータで実施することができる。したがって、本発明は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、または本明細書ではすべて一般に“回路”、“モジュール”、もしくは“システム”と呼ばれることがあるソフトウェアおよびハードウェアの態様を組み合わせた実施形態の形態をとることができる。さらに、本発明は、媒体に具現化されるコンピュータ利用可能なプログラムコードを有する任意の有形の表現媒体に具現化されたコンピュータプログラム製品の形成をとることができる。
本発明はソフトウェアにて実施できるので、本発明は、任意の適切なキャリア媒体上のプログラマブル装置に提供するためのコンピュータ可読コードとして実施することができる。有形の非一時的キャリア媒体は、フロッピー(登録商標)ディスク、CD-ROM、ハードディスクドライブ、磁気テープ装置、またはソリッドステートメモリデバイスなどの記憶媒体を含むことができる。一時的なキャリア媒体は、電気信号、電子信号、光信号、音響信号、磁気信号、または電磁信号、例えばマイクロ波またはRF信号などの信号を含むことができる。
本発明の実施形態が、単なる例として、以下の図面を参照して説明される。
HEVCエンコーダアーキテクチャを示す図。 デコーダの原理を示す図。 マージモードの動きベクトル導出プロセスのフローチャート。 マージ候補のリストの生成プロセスにおける新しいATMVPモーション候補の包含を示す図。 FRUCマージモードにおけるテンプレートマッチングおよびバイラテラルマッチングを示す図。 FRUCマージ情報の復号を示す図。 マージモードおよびマージFRUCモードのエンコーダ評価を示す図。 JEMの符号化単位およびサブ符号化単位レベルにおけるマージFRUCモード導出を示す図。 符号化単位レベルに対する動きベクトルリスト導出を示す図。 サブ符号化単位レベルのための動きベクトル・リスト導出を示す図。 JEMテンプレートマッチング方法のための現ブロックの周辺のテンプレートを示す図。 画素の1/4ペルグリッド内の1つのブロックに対するメモリアクセスを示す図。 動きベクトル精緻化を示す図。 画素の1/4画素グリッドにおける動きベクトル精緻化に使用される画素を示す図。 本発明の一実施形態で使用される例示的なテンプレートを示す図。 本発明の一実施形態における動きベクトルリストの刈り込み処理を示す図。 本発明の一実施形態における符号化単位レベルの動きベクトルリスト導出を示す図。 本発明の一実施形態におけるサブ符号化単位レベルのための動きベクトルリスト導出を示す図。 本発明の一実施形態におけるマージモード候補の導出を示す図。 本発明の一実施形態におけるマージモード候補の導出を示す図。 本発明の一実施形態における、符号化単位およびサブ符号化単位レベルでのマージFRUCモード導出を示す図。 本発明の一実施形態のための画素のグリッドにおける動きベクトル精緻化のために使用される画素を示す図。 本発明の一実施形態に関する図22の例と比較して、1/4ピクセル解像度のグリッドにおける動きベクトル精緻化に使用される画素を示す図。 本発明の1以上の実施形態を実施するためのコンピューティングデバイスの概略ブロック図である。
図1は、HEVCエンコーダアーキテクチャを示す。ビデオエンコーダでは、オリジナルシーケンス101が、符号化単位(coding unit)と呼ばれる、画素のブロック102に分割される。次に、符号化モードが各ブロックに影響を及ぼされる。HEVCで典型的に使用される符号化モードには、空間予測に基づくモード、すなわちINTRAモード103と、時間予測に基づくモード、すなわち、動き推定104および動き補償105に基づくINTERモードの2つのファミリがある。INTRA符号化単位は、一般に、INTRA予測と呼ばれるプロセスによって、その因果境界における符号化された画素から予測される。
時間的予測は最初に、動き推定ステップ104において、符号化単位に最も近い参照領域を参照フレーム116と呼ばれる、以前のまたは将来のフレームにおいて見つけることからなる。この参照領域は、予測ブロックを構成する。次に、この符号化単位は、予測ブロックを使用して予測され、動き補償ステップ105において残差を計算される。
空間的および時間的予測の両方の場合において、残差は、オリジナルの予測子ブロックから符号化単位を減算することによって計算される。
INTRA予測では、予測方向が符号化される。時間予測では、少なくとも1つの動きベクトルが符号化される。しかしながら、動きベクトル符号化に関連するビットレートコストをさらに低減するために、動きベクトルは直接符号化されない。実際、動きが均一であると仮定すると、動きベクトルを、この動きベクトルとその周囲の動きベクトルとの間の差としてエンコードすることは特に興味深い。例えば、H.264/AVC符号化規格では、動きベクトルが現在のブロックの上および左に位置する3つのブロック間で計算された中央ベクトル(median vector)に関して符号化される。中央ベクトルと現在のブロック動きベクトルとの間で計算された差分(残差動きベクトルとも呼ばれる)のみが、ビットストリームに符号化される。これは、モジュール“Mv予測および符号化”117で処理される。各符号化ベクトルの値は、動きベクトルフィールド118に記憶される。予測に使用される隣接する動きベクトルは、動きベクトルフィールド118から抽出される。
次に、モジュール106において、レート歪み性能を最適化するモードが選択される。冗長性をさらに低減するために、モジュール107内にて、変換、典型的にはDCTが残差ブロックに適用され、そして、モジュール108にて量子化がその係数に適用される。次に、量子化された係数ブロックは、モジュール109において、エントロピー符号化され、その結果がビットストリーム110に挿入される。
次に、エンコーダはモジュール111~116において、将来の動き推定のために、符号化されたフレームのデコードを実行する。これらのステップは、エンコーダおよびデコーダが同じ参照フレームを有することを可能にする。符号化されたフレームを再構成するため、モジュール111にて残差は逆量子化され、モジュール112において逆変換されて、ピクセル領域において“再構成された(reconstructed)”残差を提供する。符号化モード(INTERまたはINTRA)に従って、この残差はINTER予測器114又はINTRA予測器113に加えられる。
次に、この第1の再構成は、モジュール115において、1つまたは複数の種類のポストフィルタリングによってフィルタリングされる。これらのポストフィルタは、符号化及び復号されるループに統合される。エンコーダおよびデコーダ側で同じ参照フレームを使用するために、それらをエンコーダおよびデコーダ側で再構成されたフレームに適用する必要があることを意味する。このポストフィルタリングの目的は、圧縮アーチファクトを除去することである。
図2には、デコーダの原理が示されている。ビデオストリーム201は、まずモジュール202においてエントロピー復号される。次に、残差データは、モジュール203において逆量子化され、モジュール204において逆変換されて、画素値が得られる。モードデータは、また、モードの機能としてエントロピー復号され、INTRAAタイプ復号またはINTERタイプ復号が実行される。INTRAモードの場合は、ビットストリーム205にて特定されるINTRA予測モードの機能としてINTRA予測子が決定される。モードがINTERの場合は、動き情報がビットストリーム202から抽出される。これは、参照フレームインデックスと動きベクトル残差とから構成される。動きベクトル予測子は、動きベクトル210を得るため、動きベクトル残差に加えられる。次に、動きベクトルを使用して、参照フレーム206内の参照領域の位置が突き止められる。なお、動きベクトルフィールドデータ211は、次に復号される動きベクトルの予測に用いるために、復号された動きベクトルで更新される。デコードされたフレームのこの第1の再構成は、エンコーダ側で使用されるのと全く同じポストフィルタでポストフィルタリング207される。デコーダの出力は、圧縮解除されたビデオ209となる。
HEVC規格は3つの異なるINTERモード、すなわち、インターモード、マージモード(Merge mode)、およびマージスキップモード(Merge Skip mode)を使用する。これらのモード間の主な違いは、ビットストリームにおけるデータシグナリングである。動きベクトル符号化の場合、現在のHEVC規格は、その先行技術と比較して、動きベクトル予測のための競合ベースのスキームを含む。インターモードまたはマージモードのそれぞれについて最良の動きベクトル予測子または最良の動き情報を見つけるために、いくつかの候補が符号器側で率歪み基準と競合していることを意味する。最良の予測子または動き情報の最良の候補に対応するインデックスが、ビットストリームに挿入される。デコーダは予測子または候補の同じセットを導出することができ、デコードされたインデックスに従って最良のものを使用することになる。
予測子および候補の導出の設計は、複雑さに大きな影響を与えることなく最良の符号化効率を達成するために非常に重要である。HEVCでは、2つの動きベクトル導出が使用される。1つはインターモード(Advanced Motion Vector Prediction(AMVP))のためのものであり、1つはマージモード(Merge derivation process)のためのものである。
既に述べたように、マージモードの候補(“古典的(classical)”またはスキップ)は、方向、リスト、参照フレーム・インデックス、および動きベクトルの全て動き情報を表す。いくつかの候補が、以下に記載されるマージ導出プロセスによって生成され、それぞれがインデックスを有する。現在のHEVC設計では、両方のマージモードの最大候補は5に等しい。
図3は、マージモードの動きベクトル導出プロセスのフローチャートである。導出の第1のステップでは、7つのブロック位置301~307が考慮される。モジュール308は、空間動きベクトルの利用可能性をチェックし、最大5つの動きベクトルを選択する。このモジュールでは、予測子が存在する場合、およびこのブロックがイントラ符号化されていない場合、予測子が利用可能である。これら5つの動きベクトルの選択およびチェックは、以下の条件で説明される。
“左”A1動きベクトル301が利用可能であり、それが存在し、それがイントラ符号化されていないことを意味する場合、“左”ブロックの動きベクトルが選択され、空間候補のリスト310内の第1の候補として使用される。A1動きベクトルは、現在の符号化単位のすぐ左側のブロックの動きベクトルである。
“上”B1動きベクトル302が利用可能である場合、“上”ブロックの候補動きベクトルは、それが存在する場合、刈り込み(pruning)モジュール309にて、A1と比較される。B1がA1に等しい場合、B1は空間候補のリスト310に追加されず、そうでない場合、B1は追加される。B1動きベクトルは、現在の符号化単位の直上のブロックの動きベクトルである。刈り込みモジュール309によって適用される一般的な原理は、以前に選択された候補に対して任意の新しい候補をチェックし、以前に選択された候補と同じ値を有する新しい候補の選択を防止することである。
“右上”B0動きベクトル303が利用可能であり、リスト内でまだ選択されていない場合、それも空間候補リスト310に追加される。B0動きベクトルは、現在の符号化単位の上のブロックのすぐ左側のブロックの動きベクトルである。
“左下”A0動きベクトル304が利用可能であり(308)、リスト内でまだ選択されていない場合、それも空間候補リスト310に追加される。A0動きベクトルは、現在の符号化単位の左側のブロックの直下のブロックの動きベクトルである。
空間候補リスト310がこの段階で4つの候補を含まない場合、“左上”B2動きベクトル305の可用性がテストされ、それが利用可能であり、リスト内でまだ選択されていない場合は、それも空間候補リスト310に追加される。B2動きベクトルは、現在の符号化単位の左側のブロックの直上のブロックの動きベクトルである。
この段階の終わりに、空間候補リスト310は、0から4までの空間候補を含むことになる。
時間的候補については、2つの位置が使用できる。H306で参照される位置は、一緒に並んだ(collocated)ブロックの右下の位置に対応し、中心307で参照される位置は一緒に並んだブロックに対応する。Collocatedは、時間フレームにおける同じ位置のブロックを意味する。これらの位置が図3に示さる。
AMVPとして、まず、H位置306におけるブロックの利用可能性がモジュール311によってチェックされる。利用可能でない場合、中心位置307のブロックがモジュール311によってチェックされる。これらの位置の少なくとも1つの動きベクトルが利用可能である場合、この時間動きベクトルは、必要であれば、空間候補の直後にマージ候補リストに挿入される時間候補313を作成するために、必要であれば、リストL0およびL1の両方について、スケールモジュール312によって、インデックス0を有する参照フレームにスケーリングすることができる。
候補の数(Nb_Cand)が、ステップ314のテストにて、候補の最大数(Max_Cand)よりも厳密に劣っている場合、結合候補は、モジュール315によって生成され、そうでない場合はマージ候補の最終リスト318が構築される。モジュール315は、Bフレームのための現在のフレームの場合にのみ使用され、現在のマージリスト内の利用可能な候補に基づいて、いくつかの候補を生成する。この生成は、1つの候補からのリストL0の動きベクトルを2番目の動きベクトル候補のリストL1の動きベクトルと結合することにある。
候補の数(Nb_Cand)が、ステップ316のテストにて、依然として候補の最大数(Max_Cand)より厳密に劣っている場合、候補のマージリスト318内の候補の最大数に達するように、モジュール317にて、ゼロ動き候補が生成される。
このプロセスの最後にて、マージ候補318の最終リストが構築され、Max_Cand個の候補を含む。
マージモードは、予測単位(prediction unit:PU)に対応する画素のブロックに適用される。さらに、(インターモードにおけるような)マージモードにおける予測単位は、符号化単位サイズ(2N×2N)に等しくすることができる。さらに、マージスキップ予測単位は常にサイズ2N×2Nを有する。この場合、予測単位は符号化単位に等しい。マージモード予測単位の場合、エンコーダ側で、1つの候補が選択され、そのインデックスがビットストリームに挿入される。HEVCでは、このインデックスは、第1のビットのみがCABACコンテキストに依存する、単項最大コード(unary max code)で符号化される(CABACはエントロピー符号化方法である“コンテキスト適応2進算術符号化(Context-Adaptive Binary Arithmetic Coding)”を表す)。この第1のビットは、確率に従って2値化されることを意味する。他のビットは、等確率で2値化される。この単項maxの最大値は、スライスヘッダ内の送信値に依存する。しかし、この最大値は5を超えることはできない。単項コード(unary code)は、より大きい数の場合よりも、より小さい数の場合に、より少ないビットとなる。
HEVC規格を定義した標準化グループITU-T VCEG(Q6/16)とISO/IEC MPEG(JTC 1/SC 29/WG 1 1)の両方は、Joint Video Exploration Team(JVET)として知られる共同コラボレーションとして、HEVCの後継向けの将来のビデオコーディングテクノロジーを研究している。JEM(Joint Exploration Model)は、HEVCツールと、このJVETグループによって選択された新しい追加ツールとを含む。特に、このソフトウェアは、動き情報を効率的に符号化するために、デコーダ側アルゴリズムにおいて動き情報導出を含む。追加ツールのリストは、JVET-F1001として参照される文書に記載されている。
符号化効率を高めるために、図3に示す候補の古典的なマージモード導出に、追加の候補が追加された。主な変更は、Advanced Temporal Motion Vector Prediction(ATMVP)予測子を含めることである。Advanced Temporal Motion Vector Prediction法は、各符号化単位が、一緒に並んだ(collocated)参照ピクチャにおける現在の符号化単位よりも小さい複数のブロックから複数の組の動き情報をフェッチすることを可能にする。空間-時間動きベクトル予測(STMVP)法では、サブ符号化単位(sub-coding unit)の動きベクトルが、時間動きベクトル予測子および空間隣接動きベクトルを使用することによって再帰的に導出される。さらなる詳細は、文献JVET-F1001に見出すことができる。
図4は、図3に示されたマージ候補のリストの生成プロセスにおける、新しいATMVPモーション候補の包含を示している。以下では、その差のみを記載する。ATMVP候補には、ステップ419で生成された予測単位レベル候補420と、ステップ421で生成されたサブ符号化単位レベル候補422の2種類がある。両タイプの候補420および422は、空間予測子(spatial predictors)423のリストに追加される。左上の空間候補405は、それが存在し、他の空間候補と比較して重複候補でない場合、リストの最後に追加される。次に、古典的時間予測子がこのリストに追加され、リスト内の候補の数がその最大値に達していない場合にはマージモードの古典的導出が処理される。さらに、マージモードの候補の最大数(Max_Cand)は、HEVC規格と比較して、JEMと呼ばれる例示的な実装では5から7に増加されている。
デコーダ側での動きベクトル導出は、文書JVET-F1001ではパターン一致動きベクトル導出(Pattern matched motion vector derivation:PMMVD)として示されている。JEMにおけるPMMVDモードは、フレームレートアップコンバージョン(FRUC)技術に基づく特別なマージモードである。このモードでは、ブロックの動き情報はシグナリングされず、デコーダ側で導出される。
JEMの現在のバージョンでは、テンプレートマッチングとバイラテラルマッチングの2つのタイプの検索が可能である。図5は、これら2つの方法を示している。バイラテラルマッチング501の原理は、現在の符号化単位の動き軌跡に沿った2つのブロック間の最良のマッチングを見つけることである。
テンプレートマッチング502の原理は、現在のブロックの周りの再構成された画素と、評価された動きベクトルによって指し示されるブロックの周りの隣接する画素との間のマッチングコストを計算することによって、現在の符号化単位の動き情報を導出することである。テンプレートは、現在のブロックの周りの隣接画素のパターン、および予測ブロックの周りの隣接画素の対応するパターンに対応する。
両マッチングタイプ(テンプレートまたはバイラテラル)について、計算された異なるマッチングコストが比較されて、最良のマッチングコストが見つけられる。最良の一致を得る動きベクトルまたは動きベクトルの対が、導出された動き情報として選択される。さらなる詳細は、JVET-F1001に見出すことができる。
両マッチング方法は、動き情報全体、動きベクトル、参照フレーム、予測のタイプを導出する可能性を提供する。JEMにおいて“FRUC”と記されている、デコーダ側における動き情報導出は、全てのHEVCインターモード、すなわちAMVP、マージ及びマージスキップに対して適用される。
AMVPの場合、すべての動き情報、すなわち、uniまたはbi予測、参照フレームインデックス、予測子インデックス動きベクトル、および残差動きベクトルがシグナリングされ、FRUC法が適用されて、予測子のリストである場合、第1の予測子に設定される新しい予測子が決定される。従って、それはインデックス0を有する。
マージおよびマージスキップモードの場合、FRUCフラグがCUに対してシグナリングされる。FRUCが偽である場合、マージインデックスがシグナリングされ、通常のマージモードが使用される。FRUCフラグが真であるとき、追加のFRUCモードフラグは、どの方法(双方向マッチングまたはテンプレートマッチング)がブロックの動き情報を導出するために使用されるべきかを示すためにシグナリングされる。なお、バイラテラルマッチングは、Bフレームのみに適用され、Pフレームには適用されない。
マージおよびマージスキップモードの場合、動きベクトルフィールドが、現在のブロックに対して定義される。これは、ベクトルが、現符号化単位よりも小さいサブ符号化単位に対して定義されることを意味する。さらに、古典的なマージに関しては、各リストに対する1つの動きベクトルがブロックに対する動き情報を形成することができる。
図6は、ブロックのマージモードのためのFRUCフラグのシグナリングを示すフローチャートである。ブロックは、HEVC表現による符号化単位または予測単位とすることができる。
第1のステップ601にて、符号化単位がスキップモードに従って符号化されているかどうかを知るために、スキップフラグが復号される。ステップ602のテストで、このフラグが偽であった場合、マージフラグがステップ603にて復号され、ステップ605にてテストされる。符号化単位がスキップまたはマージモードに従って符号化されいるとき、マージFRUCフラグがステップ904にて復号される。符号化単位がスキップまたはマージモードに従って符号化されていない場合、ステップ606において、古典的なAMVPインターモードのイントラ予測情報が復号される。ステップ607でのテストで、現在の符号化単位のFRUCフラグが真であり、現在のスライスがBスライスである場合、マッチングモードフラグがステップ608で復号される。なお、FRUCにおけるバイラテラルマッチングは、Bスライスに対してのみ利用可能であることに留意されたい。スライスがBスライスでなく、FRUCが選択されている場合、モードは必然的にテンプレートマッチングであり、マッチングモードフラグは存在しない。符号化単位がFRUCでない場合、ステップ609にて、古典的マージインデックスが復号される。
FRUCマージモードは、エンコーダ側にて、古典的マージモード(および他の可能なマージ)と競合する。図7は、JEMにおける現在の符号化モード評価方法を示す。まず、ステップ701において、HEVCの古典的マージモードが評価される。候補リストは最初に、ステップ702において、元のブロックとリストの各候補との間の単純なSAD(絶対差の和)で評価される。次に、ステップ704~708によって示される、制限された候補のリストの各候補の実レート歪み(rate distortion:RD)コストが評価される。その評価では、ステップ705でのレート歪みと、ステップ706での残差のないレート歪みとが評価される。最後に、ステップ709において、最良のマージ候補が決定され、この最良のマージ候補は、残差を有しても有しなくてもよい。
次に、ステップ710~716において、FRUCマージモードが評価される。ステップ710にて、各マッチング方法、すなわち、双方向マッチングおよびテンプレートマッチングについて、ステップ711において、現在のブロックの動きベクトルフィールドが得られ、ステップ712および713において、残差の有る場合と無い場合のフルレート歪みコスト評価が計算される。残差の有無にかかわらず、最良の動きベクトル716が、ステップ715において、これらのレート歪みコストに基づいて決定される。最後に、古典的マージモードとFRUCマージモードとの間の最良のモードが、他のモードの可能な評価の前に、ステップ717において決定される。
図8は、エンコーダ側でのFRUCマージ評価方法を示す。ステップ801にて、各マッチングタイプ、すなわちテンプレートマッチングタイプおよびバイラテラルタイプについて、モジュール81により符号化単位レベルが評価され、続いてモジュール82によってサブ符号化単位レベルが評価される。目標は、現在の符号化単位803内の各サブ符号化単位の動き情報を見つけることである。
モジュール81は、符号化単位レベル評価を処理する。ステップ811において、動き情報のリストが導出される。ステップ812において、このリストの各動き情報について、歪みコストが計算され、互いに比較される。テンプレートの最良の動きベクトル、またはバイラテラル813のための最良の組はコストを最小化するものである。次に、動きベクトル精緻化(refinement)ステップ814が適用され、得られた動きベクトルの精度を改善する。FRUC法では、テンプレートマッチング推定のために、古典的離散コサイン変換補間フィルタ(DCTIF)補間フィルタの代わりにバイリニア補間が使用される。これにより、従来のDCTIFのブロック周辺の7画素ではなく、ブロック周辺のメモリアクセスが1画素に削減されます。実際、バイリニア補間フィルタは、一方向のサブ画素値を得るために2画素のみしか必要としない。
動きベクトル精緻化の後、ステップ815において、現在の符号化単位のためのより良好な動きベクトルが得られる。この動きベクトルは、サブ符号化単位レベル評価に使用される。
ステップ802にて、現在の符号化単位は、いくつかのサブ符号化単位に再分割される。サブ符号化単位は、4分木構造における符号化単位の分割深さに依存する正方形ブロックである。その最小サイズは4×4である。
各サブCU(サブ符号化単位)について、サブCUレベル評価モジュール82は、最良の動きベクトルを評価する。ステップ821において、ステップ815においてCUレベルで得られた最良の動きベクトルを含む動きベクトルリストが導出される。ステップ822にて、各動きベクトルに対する歪みコストが評価される。しかし、そのコストは動きベクトルフィールドの発散を回避するため、符号化単位レベルで得られた最良の動きベクトルと現在の動きベクトルとの間の距離を表すコストも含む。最良の動きベクトル823は、最小コストに基づいて得られる。次に、このベクトル823は、ステップ814でCUレベルで行われたのと同じ方法で、MV精緻化処理824により精緻化される。
プロセスの終わりで、1つのマッチングタイプについて、各サブCUについての動き情報が得られる。エンコーダ側では、両方のマッチングタイプ間の最良のRDコストが比較され、最良のものが選択される。デコーダ側では、この情報はビットストリームからデコードされる(図6のステップ608)。
FRUCマージモードまたはAMVPについて、動きベクトルのリストは、サブ符号化単位レベルのためのリストと、符号化単位レベルとで異なる。図9は、図8の符号化単位レベルステップ811の動きベクトル導出プロセスを示す。
このプロセスは、各リストL0またはL1に対して独立して実施することができる。プロセスは、参照フレームのインデックス901と、符号化モードがAMVPであるかどうかを示すフラグ902に対応するいくつかの入力を受け取る。次に、テストステップ903において、現在のモードがAVMVPまたはマージモードであるかどうかがチェックされる。それがAMVPである場合、ステップ904において、AMVP予測子がリストに追加される。これらの予測子は、AMVP処理で得られた左、上、および時間的予測子である。このステップは、リスト内に最大3つの予測子を追加することになる。
次に、ステップ905において、動きベクトルマージ候補が生成される。これらの候補は、ステップ906で追加されたATMVP候補を除いて、FRUCのリストに追加される。これらのステップにより、7つまでの新しい予測子を追加することができる。
次に、ステップ907において、片側予測子(unilateral predictors)がリストに追加される。片側予測子は、各参照フレームに対する4×4ブロックレベルでの動き補間に基づいて生成される。さらなる詳細は、JVET-F1001に見出すことができる。このプロセスは、4×4ブロックレベルで補間されたすべての動きの中で、いくつかの予測子しか必要としない。ブロックの高さ(H)または幅(W)が4より大きい場合、2つの予測子を追加することができる。したがって、HおよびWの両方が4より大きいサイズH×Wのブロックについては、2×2=4個の予測子を追加することができる。Hが4に等しく、Wが4より大きい場合、予測子の数は1×2=2個の予測子である。4×4ブロックの場合は、1つの予測子のみが追加される。
最終的に、ステップ908にて、いくつかの隣接する予測子が追加される。そして、さらに、最大2つの予測子が追加される。
リストに追加された各予測子について、この予測子が重複予測子ではないことがチェックされる。その結果、リスト909は、異なる値を有する予測子のみを含むことになる。
プロセスの終了でのリスト909内の予測子の最大数は、以下の表に要約される。
Figure 0007261275000001
図10は、図8のステップ821に対応するFRUCのサブ符号化単位レベルの動きベクトルリスト構成を示している。この処理は、リストL0およびL1ごとに実行される。
まず、ステップ1002において、符号化単位レベルで得られた最良の動きベクトル101を、リストの最初の位置に追加する。
2度目に、ステップ1004のように、いくつかの隣接する動きベクトルが、参照フレームの同じインデックス、及び、同じリストL0またはL1とを有する場合、いくつかの隣接する動きベクトルが追加される。このプロセスでは、最大4つの動きベクトルが加算される。このステップは、符号化単位レベルでの最良の動きベクトルに対応する参照フレームのインデックス1003を必要とする。
次に、ステップ1005にて、リストの各参照フレームからのすべての時間動きベクトルが、符号化単位レベルで得られた最良の動きベクトルの参照フレームにスケーリングされ、リストに追加される。リストが16個の参照フレームを含むことができると考える場合、16個の追加の予測子がこのリストに追加できることになる。
最終的には、ステップ1006において、ATMP予測子がリストに追加できる。2つのタイプのATMVP予測子が追加される。しかし、4×4サブ符号化単位については、各タイプについて1つのベクトル、すなわち2つの予測子のみが追加されるという制約が存在する。より大きなサブ符号化単位の場合、4つの予測子を追加することができる。
符号化単位レベルと同様に、リストに追加される各予測子は、重複予測子ではない。その結果、リスト1007は、異なる値を有する予測子のみを含むことになる。なお、この処理はAMVPには適用されない。
プロセスの終了でのリスト1007内の予測子の最大数は、以下の表に要約される。
Figure 0007261275000002
最悪ケースの復号においては、4×4ブロックについてテストされる動きベクトルの最大数は、2つの異なるリストが存在し得るので、符号化単位レベルにおける予測子の最大数にサブ符号化単位レベルにおける予測子の最大数を加えたものに、2を乗じたものに対応する。これは、レート歪み基準に従ってテストされる同数のブロック位置に対応する最大52個の予測子をもたらす。
これは、復号のために2つのブロック位置のみがアクセスされるHEVCにおけるブロックの復号と比較して非常に多い。
テンプレートFRUCマッチングモードの場合、テンプレートは、図11の灰色で示されるように、レート歪みコストを推定するために使用されるブロックまで4行、その左の4列から構成される。FRUC動きベクトルリストの動きベクトル予測子のレート歪みを評価するために、評価された動きベクトル予測子によって参照されるブロックの対応するテンプレートにアクセスする必要がある。
図12は、4×4ブロックのハードウェア実装に必要なブロックメモリアクセスのいくつかの例を示している。
ダイヤグラム121は、FRUCテンプレートを評価するためにアクセスされる必要があるピクセルを示す。評価された動きベクトルによって参照されるブロック125を考慮すると、テンプレートマッチングは、グレーで示される左及び上のブロックにアクセスする必要がある。白色で示された左上のブロック内の画素もアクセスされるが、これはいくつかの実施形態では、2つのより小さいブロックメモリサイズよりも、より高いブロックメモリサイズに1回だけアクセスする方が複雑ではないからである。さらに、サブ画素位置および動きベクトル精緻化を計算解除できるようにするためには、このブロックの周りの1以上の画素(破線ピクセルとして示されている)にアクセスして、バイリニア補間の画素を生成する必要がある。したがって、4×4ブロックのベクトル位置については、動きベクトル精緻化を評価する必要があることを考慮することによって、(4+4+2)×(4+4+2)=100画素にアクセスする必要がある。または、動きベクトルリスト推定のためのアクセスのみを考慮する場合は、(4+4+1)×(4+4+1)=81画素となる。したがって、現在のブロックの1つの画素当たり、評価のために、1つのベクトルにつき100/(4×4)=6.25画素に対してアクセスされ(動きベクトルの精緻化も考慮する場合)、81/(4×4)~=5画素が、図8のステップ812における動きベクトルリスト評価のために、現在のブロックの1つの画素に対してアクセスされる。
しかし、ダイヤグラム122に示されるように、実際に必要とされるより少ない数のピクセルまたはピクセルにアクセスすることが可能であり、ここでは、評価のために厳密に必要とされるピクセルのみが考慮される。しかし、これは、そのようなバッファを設計するために、非常に特殊なハードウェア実装を必要とする。
別の可能性は、ダイヤグラム123に示すように、テンプレートのみにアクセスすることである。その場合、上ブロックおよび左ブロックは、2つの別個のメモリアクセスで独立してアクセスされる。その場合、5×5×2=50画素が、動きベクトルリスト評価のためにアクセスされる必要がある。そして、追加の動きベクトル精緻化を考慮する場合には、6×6×2=72画素となる。
バイラテラルFRUCマッチングモードの場合、テンプレートは、動きベクトルによって参照されるブロックである。したがって、リスト内の1つのベクトル予測子について、2つのブロック位置が、図12のダイヤグラム123によって示されるように考慮される。したがって、動きベクトルリスト評価のみを考慮した場合が、5×5×2=50画素がアクセスされる必要があり、追加の動きベクトル精緻化を考慮する場合には、6×6×2=72画素となる。
従来の動き補償における、双方向予測では、各リストの1つに対して、2つのブロックの位置にアクセスする必要がある。DCTIFは、バイリニアよりも長いフィルタであるので、ダイヤグラム124に示すように、より多くの画素にアクセスする必要がある。4×4ブロックの場合、(4+7)×(4+7)×2=242画素が4×4ブロックに対してアクセスされる必要がある。
以下の表は、マッチングモードごとのFRUCマージモード、および4×4ブロックの従来のマージモードの最悪の場合の複雑さについてアクセスされるメモリに関するいくつかの数値を示す。報告されているように、FRUCマージモードは、従来の動き補償と比較して、デコーダ側で必要とされる最悪の場合のメモリアクセスを大幅に増加させる。
Figure 0007261275000003
図8のステップ814および824の動きベクトル精緻化は、識別された最良の予測子(813または823)の周りの追加の探索によって、動きベクトル予測子の精度を向上させる。
図13は、この動きベクトル精緻化を示している。
この方法は、リスト(812または822)内で識別された最良の動きベクトル予測子1301を入力として取る。
ステップ1302にて、ダイヤモンド探索が1/4画素位置に対応する解像度で適用される。このダイヤモンド探索は、最良のベクトル動きを中心とする1/4画素解像度で図ダイヤグラム131によって示されている。このステップの結果、1/4画素解像度の新しい最良された動きベクトル1303が得られる。
このダイヤモンド探索の最良の動きベクトル位置1303は、ステップ1304にて、解像度1/4画素のクロス探索の中心となる。このクロスサーチは、最良ベクトル動き1303を中心とする、1/4画素解像度における、ダイアグラム132によって示されている。このステップの結果、1/4画素解像度の、新しい最良された動きベクトル1305が得られる。
この探索ステップ1304で得られた新たな最良の動きベクトル位置1305は、ステップ1306における解像度1/8画素解像度でのクロス探索の中心となる。このステップの結果、1/8画素解像度の新しい最良された動きベクトル1307が得られる。ダイヤグラム133は、1/8解像度において、これらの3つの探索ステップにおける、テストされたすべての位置と共に示している。
図14は、1/4のサブ画素グリッドにおける4×4ブロックを表している。
ブロック141のこの図では、オレンジ色の画素142が画素解像度での画素位置を表している。赤色画素143は、バッファ内の画素である。青色画素144は、動きベクトルによって参照されるブロックの補間画素を表す。グレー位置145は、精緻化された動きベクトルの全ての潜在的な位置を表している。
サブ画素位置として動きベクトルによって参照される補間ブロックとして、補間のためにバッファに入れられる画素のブロックのサイズは、画素解像度で(4+1)×(4+1)=25画素のブロックとなる。動きベクトル精緻化(ステップ814または824)の場合、可能なサブ画素位置はグレーで表される。
ビデオデコーダのハードウェア設計は、最悪の場合の複雑さを考慮しなければならない。そうしないと、この最悪の場合が発生したときに、時間通りに復号することができなくなるからである。FRUC方では、メモリアクセスの最悪ケースを著しく増加させる。ただし、4×4、4×8または8×4ブロックの使用を防止するという、メモリアクセスの最悪のケースを減らす簡単な方法は、コーディング効率が大幅に低下させる。
本発明の目的は、符号化効率の劣化を低減しながら、メモリアクセスに関する最悪の場合の複雑さを低減することである。この問題を解決するためのいくつかの実施形態を以下に説明する。
図15に示す本発明の第1の実施形態では、メモリアクセスを低減するため、テンプレート形状が縮小される。白色ピクセルは考慮されるピクセルのブロックを表し、グレーピクセルはFRUCマージモードのテンプレートマッチングを評価するために使用されるテンプレートを表す。ダイヤグラム151は、従来技術を示し、ダイヤグラム152~156は、第1の実施形態の異なる変形例または異なる場合を示す。
ダイヤグラム151は、4×4ブロックの従来技術のテンプレートを示し、上の4×4ブロックと、左の4×4ブロックがテンプレートを構成するために使用される。
この実施形態では、ブロックがダイヤグラム152に示すように4×4ブロックであるときの、上ブロックのみがテンプレートを構成するように選択される。上の4×4ブロックが存在しない場合、同様に左ブロックでテンプレートを構成することができる。この実施形態では、テンプレートサイズは現在のブロックのサイズを超えない。さらに、テンプレートのためのメモリに1つの4×4ブロックだけを記憶する必要があるので、4×4ブロックのメモリアクセス最悪ケースは、図12のダイヤグラム121によって示される場合の81画素のバッファから、この実施形態の場合の(4+1)×(4+1)=25画素に大幅に低減される。
この実施形態が4×4ブロックに対して許容される場合、8×4および4×8ブロックが最悪の場合となる。4×4ブロックに使用されるのと同じアイデアを使用して、ダイヤグラム154に示されるようなテンプレートが、ダイヤグラム153に示されるテンプレートの代わりに、4×8ブロックに使用されてもよい。同様に、ダイヤグラム156に示すようなテンプレートを、ダイヤグラム155に示すテンプレートの代わりに8×4ブロックに使用することができる。テンプレートは、ダイヤグラム154によって示されるように、4×8ブロックについては左テンプレートに縮小され、8×4ブロックについてはダイヤグラム156によって示されるように、上ブロックに縮小される。4×4ブロックの場合と同様に、テンプレートサイズは現在のブロックのサイズを超えない。4×4ブロックについては、4×8ブロックまで、または8×4ブロックまでのテンプレートが存在しない場合、他のテンプレート、それぞれ上および左の4×4ブロックに切り替えることが可能である。
この実施形態は、テンプレートが現在のブロックのサイズを超えることができない制限と考えることができる。
本実施形態のメモリワーストケースの結果は以下の表にまとめられる。
Figure 0007261275000004
したがって、この実施形態では、最悪の場合のメモリアクセスは2.5だけ低減される。全ての4×4、8×4、及び4×8ブロックが回避され、同じ最悪の場合の低減につながる明らかな解決策と比較して、提案された実施形態は、より良好な符号化効率を与える。
メモリアクセスを制限するために、本発明の別の実施形態で採用される解決策は、図8のステップ811および821での、予測子リスト内で生成される予測子の数を制限することである。
一実施形態では、ステップ811によって生成された符号化単位レベルおよびステップ821によって生成されたサブ符号化単位レベルにおけるリスト内の予測子の数が、従来技術で使用された候補の最大数よりも少ない数Nに制限される。予測子リストは、通常通りに生成され、制限は生成されたリスト内のいくつかの予測子を除去することによって得られる。リスト内の実際に除去された予測子は、モードまたはマッチングタイプに従って変化する。
図16に提案するプロセスを示す。最初に、従来技術のように、ステップ1601にて、FRUC動きベクトルリストが導出される。
ステップ1602のテストでモードがAMVPである場合、ステップ1605にて、リストのN個の第1の動きベクトルが保持され、続く動きベクトルが除去される。
モードがAMVPではなく、ステップ1603のテストで、FRUCマッチングタイプがテンプレートマッチングである場合は、ステップ1604にて、リストのN個の最後の動きベクトルが保持され、最初の動きベクトルは除去される。
それ以外の場合、ステップ1605にて、リストのN個の第1の動きベクトルが保持され、その次の動きベクトルが除去される。
なお、この実施形態は、適合させることができることに留意されたい。特に、テストステップ1603または1602のうちの1つを省略することができる。代替実施形態では、各テストの存在を、符号化単位レベルまたはサブ符号化単位レベルプロセスに依存して行われる。例えば、テスト1602はCUレベルでのみで適用され、テスト1603はサブCuベルでのみで適用される。
この実施形態は、マージモード候補の古典的な派生に対して相補性を提供するので、効率的である。これは、テンプレートマッチングFRUCモードにとって特に興味深い。AMVPの場合、第1の予測子はAMVP動きベクトル予測子リストの予測子であるため、第1の予測子を保持することは重要である。そして、AMVPモードにおけるFRUCの現在の使用は、最も確率の高い予測子の一種の決定となる。これは、FRUCマージモードでは異なる。したがって、一実施形態では、古典的なAMVPモードと競合するAMVP FRUCモードが存在する場合であって、AMVPモードが選択されている場合はリストの最後のN個の予測子が保持され、AMVP FRUCモードでは最初のN個の動きベクトル予測子が保持される。
この実施形態では同じプロセスを使用して、ハードウェア実装にとって興味深い可能性がある動きベクトルリストを導出することができるが、これは動きベクトルのリストが非常に長い場合にはあまり効率的ではない可能性がある。別の実施形態では、N個の第1の動きベクトルが常に保持される。動きベクトルリスト導出処理は、いくつかのパラメータに応じて変更し、N個のベクトルに限定されたベクトルリストを直接生成するようにしてもよい。例えば、これらのパラメータは、図16の制限プロセスで使用されるパラメータとして、モードおよびマッチングタイプでとすることができる。
図17および図18は、そのような実施形態を示す。
図9に示す対応するプロセスと比較して、図17に示す符号化単位レベルでのベクトルリスト導出方法は、リストへのベクトルの挿入順序を変更する。片側予測子が評価され、したがって、ステップ1707に、最初に挿入される。次に、マージ予測子がステップ1705および1706に挿入される。
図10に示された対応するプロセスと比較して、図18に示されたサブ符号化単位レベルにおけるベクトルリスト導出方法はまた、リストにおけるベクトルの挿入の順序を変更する。2つのタイプのATMVP予測子は、ステップ1805におけるスケーリングされた時間的予測子の挿入の前、および、ステップ1804において挿入された隣接予測子の前に、ステップ1806に挿入される。
別のおよび/または追加の実施形態では、スケーリングされた動きベクトル時間予測子が逆の順序で生成される。実際、それらは、最高のインデックスを有する参照フレームから最低の最小フレームインデックスに加えられる。N個の第1の予測子のみがメモリに保持される場合、最も低い参照フレームインデックスを有するスケーリングされた時間的予測子を使用することが好ましい。実際、一般に、最も低い参照フレームインデックスは最も近い参照フレームを表し、その結果、動きは、より関連性があるはずである。代替実施形態では、スケーリングされた時間予測子が最も近い参照フレームから最も遠い参照フレームに追加される。
この実施形態が適用される場合、および符号化単位およびサブ符号化単位レベルについて、ab4×4ブロック、N=3個の予測子の以下の表に記載されるように、最悪の場合を大幅に低減する。
Figure 0007261275000005
テンプレートおよびバイラテラルマッチングの両方の最悪の場合が低減されることに注目する価値がある。
好ましい実施形態では、各予測子セットに対する予測子の数が3に等しいNに設定される。
追加の一実施形態では、リスト内の予測子の数がサイズNに達しない場合、いくつかの仮想予測子が追加される。いくつかの既知の仮想予測子はオフセット予測子である。オフセット予測子は、オフセット値を、別の予測子の水平及び/又は垂直ベクトル成分に、一般的にはリスト内の第1の予測子に加算することによって得られる。
一実施形態では、マージおよびマージFRUCのための動きベクトルリストが異なる順序で生成される。マージ候補リストは、HEVCにおいて最良の符号化効率を得るように設定されている。したがって、リストの最初の位置に最も確からしい予測子が設定されるように動きベクトル候補を順序付けることが考えられる。マージFRUCモードは、動き情報が非常に予測可能である場合に、ほとんどが選択される。したがって、マージリストの第1の予測子は一般に、HEVCを用いて選択される。マージFRUCモードがイネーブルである場合、第1のマージ候補はあまり選択されない。したがって、マージFRUCが最も確率の高いモードを頻繁に見つけることができることを考慮に入れた、古典的なマージ導出のための異なる順序を有する特定のリストを有することは興味深い可能性がある。なお、この実施形態は、符号化効率を改善するが、必ずしも最悪の場合の問題ではないことに留意されたい。この実施形態は、固定された動きベクトルリストサイズを必要としない。
図19は、この実施形態を示し、図4に示す動きベクトル導出プロセスの変形例に対応する。その場合、左予測子1901の評価は、左下1905の後に評価される位置に移る。したがって、その評価は、時間予測子の直前の空間リストの終わりに追加される。
図20は、この実施形態の別の可能性を示す。その場合、図4に示す動きベクトル導出処理と比較すると、ATMVP候補2019及び2021の評価が、導出処理において最初に発生するよう移される。その結果、図9のステップ906におけるマージFRUCモードの導出には存在しない、これらの予測子が、リスト内の第1の位置を有する。したがって、それらは第1の位置で選択される機会がより多くなる。したがって、FRUCマージリストに存在しないこれらの候補は、マージFRUCに対してより良好な相補性を有し、より低いビットでそれらのインデックスを符号化する。
別の代替実施形態では、時間的に前に評価されたすべての候補が逆の順序で評価される。空間予測子の典型的な評価は、左上、符号化単位レベルでのATMVP、ATMVPサブ符号化単位レベル、左下、右上、上および左になる。もちろん、この実施形態は、AMVP FRUCモードが存在する場合に適合させることができる。
サブ符号化単位導出プロセスのための新しい動きベクトルリストの使用は、最悪の場合のブロック位置のメモリアクセスを生成する。したがって、サブ符号化単位レベルで動き情報の新しいリストを構築しないことが好ましい。
図21は、図8に関連する、この実施形態を示している。この場合、図8のモジュール821に対応するモジュール2121は、動きベクトルリストの第1の位置に、符号化単位レベルで得られた最良の動きベクトルを含めるだけである。しかし、符号化単位レベルの場合と比較して、新しい動きベクトルは導出されない。したがって、各サブ符号化単位について、符号化単位レベルでの最良の動きベクトルのみが評価される。この実施形態の利点は、メモリアクセスの著しい最悪の場合の低減に対する符号化効率の影響が小さいことである。実際、ステップ2121は、ステップ821と比較して新しいメモリアクセスを必要としない。
この実施形態が前の実施形態と組み合わされ、符号化単位レベルで得られた最良の動きベクトルが動きベクトル精緻化によって変更された場合、予測子の数を増加させず、予測子の数をNに制限し続けるために、1つの予測子を除去する必要がある。実際に、MV精緻化2114または814は、リスト2111と比較して新しいベクトルを生成することができ、したがって、同じ量のベクトルを有するために1つを除去する必要がある。
一実施形態では、この制約が典型的には4×4、4×8、および8×4ブロックの小さなブロックサイズ(CUサイズ)に対してのみ適用され、最悪の場合におけるメモリアクセスを低減し、他の符号化単位サイズに対する符号化効率を低減しない。
以下の表は、各マッチングモードに対するFRUCマージモードの最悪の場合の複雑さと、この実施形態がイネーブルされるときの4×4ブロックに対する従来のマージモードとに対してアクセスされるメモリに関するいくつかの数値を与える。
Figure 0007261275000006
図14に示すような動きベクトルの最良候補の精緻化は、追加のメモリアクセスを生成する。さらなる実施形態では、動きベクトル精緻化の潜在的な位置がバッファ内に既にあるピクセルに制限する。
図22は、この実施形態を示す。この図は図14に基づくものである。図14と比較すると、この実施形態では、動きベクトル精緻化の潜在的な位置がバッファ225内の画素に制限される。これは、最良の動きベクトル815のテンプレートに対してアクセスされる画素位置よりも新しい画素位置にアクセスすることが許可されていないことを意味する。もちろん、実施形態によれば、バッファは、異なる画素を含むことができる。したがって、この実施形態においては、動きベクトルは初期動きベクトル位置のバイリニア補間に必要な画素のみを使用するように制限される。
動きベクトル位置がバッファの外側にあることを識別するために、以下の条件を使用することができる。
if((mvCandX>>mvRes != mvCurCenterX>>mvRes) OR ((mvCandY>>mvRes != mvCurCenterX>>mvRes))
ここで、(mvCandX, mvCandY)はテストされた動きベクトル位置であり、(mvCurCenterX, mvCurCenterY)は、初期ブロックの動きベクトル、または以前の精緻化ステップの初期位置である。">>" は右シフト演算子である。そして、mvResは、現在のサブピクセル解像度のビット数を表す。例えば、現解像度が1/16th pelである場合、mvResは4に等しい。
さらに、バッファ内のフルピクセル位置を点探索位置を考慮する必要がある。したがって、第1の条件は以下のようになる。
if(((mvCandX>>mvRes != mvCurCenterX>>mvRes) AND (mvCandX % 16 !=0))
OR ((mvCandY>>mvRes != mvCurCenterX>>mvRes) AND (mvCandY % 16 !=0)))
ここで、“%”はモジュロ演算子である。
値16は、最高サブピクセル解像度が16thサブ画素でない場合に変更することができる。
mvCurCenterXまたはmvCurCenterYがフルピクセル解像度である特定の場合には、mvCurCenterX % 16 は0に等しいか、またはmvCurCenterY % 16の場合には追加のバッファが左または右にあるかどうか、mvCurCenterY % 16のときには、上又は下にあるかどうかを決定することが必要である。実際、前の条件がフルピクセル解像度のブロックで使用される場合、精緻化は不可能である。
したがって、mvCurCenterX % 16が0に等しいとき、テストされた位置が右の線ではなく左の線のみを必要とするかどうかをチェックするために、以下の条件が追加される。
((mvCandX>>mvRes)-(mvCurCenterX>>mvRes)) < 0
図23は、この実施形態で使用される異なる例示的な検索図を示す。
ダイヤグラム231は、図22の例についてダイヤグラム131によって示されたダイヤモンド探索パターン位置と比較して、この実施形態で制限されたダイヤモンド探索パターン位置を示す。
この実施形態の利点は、図8のステップ814および824の実行において新しいメモリアクセスが必要とされないことである。
この制約は、テストされる位置の数を減らすので、符号化効率をわずかに低下させる。劣化を低減するために、回避された位置を置き換えるために、いくつかの位置を追加することができる。
これらの位置を生成する1つの可能な方法は、2で割った逆オフセットを中心位置に加算することである。新しいmvCandXのこの値を得るための1つの可能な公式は、以下の通りである。
mvCandX = mvCurCenterX - (mvCandX - mvCurCenterX)/2;
ダイヤグラム232は、この実施形態のダイヤモンド探索の結果を示す。ダイヤグラム231と比較して、2つの新しい画素位置が加算される。
位置を生成するための1つの可能な方法は、ダイヤモンドの内側の4分の1ピクセル位置のすべての位置、または可能なメモリバッファ234の内側の4分の1ピクセル位置のすべての位置を加算することである。その場合、動きベクトル精緻化1302、1304、および1306の3つのステップは、これらの実施形態によって置き換えることができる。コーナーに表されたフルピクセル位置も、ダイヤグラム234に示すようにテストされることに注意されたい。
位置を生成するための別の可能な方法は、ダイヤグラム231と比較して、ダイヤグラム235に表される追加の位置を生成する。
位置を生成するためのさらに別の可能な方法は、ダイヤグラム236に示すように、ポイントされたブロックがバッファの外側にあるときに、mvCandXまたはmvCandYをバッファの最大フルピクセル位置に等しく設定することである。
追加の実施形態では、動きベクトル精緻化がリストの各動きベクトル予測子に適用され、最良のものが選択される。実際、この実施形態では、動きベクトル精緻化プロセスのために新しい画素にアクセスする必要はない。この追加の実施形態は、現在の動きベクトルFRUC導出よりも良好な符号化効率を与える。
一実施形態では、動きベクトルリ精緻化が動きベクトルを有する他の符号化モードに適用され、MV精緻化に対する制約が適用される。この実施形態は、例えばバイラテラルマッチングが使用される場合、新しいメモリ・アクセスなしに符号化効率を改善する。
記載された実施形態の全ての可能な組み合わせが可能である。
以下の表は、提案されている最悪ケースの削減方法がすべて有効にされている場合の、各マッチングモードに対するFRUCマージモードの最悪ケースのメモリ・アクセスの複雑さ、および4×4ブロックに対する従来のマージモードの最悪ケースのメモリ・アクセスの複雑さに関するいくつかの数値を示している。
Figure 0007261275000007
全てのこれらの実施形態がN=3個の予測子のみでイネーブルされるとき、最悪の場合は、古典的な動き補償のための現在の最悪の場合の2倍未満である。
図24は、本発明の1つまたは複数の実施形態を実施するためのコンピューティングデバイス2400の概略ブロック図である。コンピューティングデバイス2400は、マイクロコンピュータ、ワークステーション、または軽量ポータブルデバイスなどの装置とすることができる。コンピューティングデバイス2400は、以下のものが接続された通信バスを備える:
・CPUと呼ばれるマイクロプロセッサのような中央処理装置2401;
・RAMで示されるランダムアクセスメモリ2402;これは本発明の実施形態の方法の実行可能コード、ならびに本発明の実施形態による画像の少なくとも一部を符号化または復号する方法を実施するために必要な変数およびパラメータを記録するように適合されたレジスタを格納するためのものであり、そのメモリ容量は例えば、拡張ポートに接続されたオプショナルなRAMによって拡張することができる。
・ROMで示される読み出し専用メモリ2403;これは本発明の実施形態を実施するためのコンピュータプログラムを記憶するものである。
・ネットワークインタフェース2404;これは、典型的には処理されるデジタルデータが送信または受信される通信ネットワークに接続されるものである。ネットワークインタフェース2404は単一のネットワークインタフェースであってもよく、または異なるネットワークインタフェース(例えば、有線および無線インターフェース、または異なる種類の有線または無線インターフェース)のセットから構成されてもよい。データパケットは、CPU2401で実行されるソフトウェアアプリケーションの制御下で、送信のためにネットワークインターフェースに書き込まれるか、または受信のためにネットワークインターフェースから読み出される。
・ ユーザインターフェース2405;これはユーザからの入力を受信するために、またはユーザに情報を表示するために使用される。
・HDで示されるハードディスク2406;これは、大容量記憶装置として提供されてもよい。
・I/Oモジュール2407;これはビデオソースまたはディスプレイのような外部デバイスから/へデータを受信/送信するために使用されてもよい。
実行可能コードは読み出し専用メモリ2403、ハードディスク2406、または例えばディスクのようなリムーバブルデジタル媒体のいずれかに格納されてもよい。変形例によれば、プログラムの実行可能なコードはハードディスク2406のような通信装置2400の記憶手段の1つに記憶されてから実行されるために、ネットワークインタフェース2404を介して通信ネットワークの手段によって受信されることができる。
中央処理ユニット2401は本発明の実施形態によるプログラムの命令またはソフトウェアコードの一部の実行を制御し、指示するように適合され、命令は、前述の記憶手段のうちの1つに記憶される。CPU2401は、電源投入後、例えばプログラムROM2403やハードディスク(HD)2406からロードされたソフトウェアアプリケーションに関するメインRAMメモリ2402からの指示を実行することができる。このようなソフトウェアアプリケーションは、CPU2401によって実行されると、図Xに示すフローチャートのステップを実行する。
図Xに示すアルゴリズムの任意のステップはPC(“パーソナルコンピュータ”)、DSP(“デジタルシグナルプロセッサ”)、またはマイクロコントローラなどのプログラマブルコンピューティングマシンによる命令、またはプログラムのセットの実行によってソフトウェアで実施することができ、あるいは、FPGA(“フィールドプログラマブルゲートアレイ”)またはASIC(“特定用途向け集積回路”)などのマシンまたは専用コンポーネントによってハードウェアで実施することができる。
以上、特定の実施形態を参照して本発明を説明したが、本発明は特定の実施形態に限定されるものではなく、本発明の範囲内にある修正は当業者には明らかであろう。
多くのさらなる修正および変形は単に例として与えられ、添付の特許請求の範囲によってのみ決定される本発明の範囲を限定することを意図しない、前述の例示的な実施形態を参照することにより、当業者に示唆されるのであろう。特に、異なる実施形態からの異なる特徴は、適宜、交換されてもよい。
特許請求の範囲において、単語“備える(comprising)”は他の要素又はステップを排除するものではなく、不定冠詞“a”又は“an”は複数を排除するものではない。異なる特徴が相互に異なる従属請求項に記載されているという単なる事実は、これらの特徴の組み合わせが有利に使用されることができないことを示すものではない。

Claims (6)

  1. 複数のブロックに分割されて符号化された画像で構成されるビデオデータをデコードするデコード方法であって、
    コーディングユニットに関する動きベクトルであって、前記デコード方法における精緻化対象の動きベクトルを決定することと、
    前記決定された動きベクトルによって参照されるサブサンプル位置の画素を補間するための画素値群であって、所定範囲内の複数の画素における画素値群である第1の画素値群から、バイリニア補間を用いて、2次元配列の第2の画素値群を生成することと、
    前記第2の画素値群の少なくとも一部の画素値を用いて、前記決定された動きベクトルの位置を精緻化する第1の精緻化を実行して、1の位置を決定することと、
    前記第2の画素値群の少なくとも一部の画素値を用いて前記第1の位置を更に精緻化する第2の精緻化を実行して、サブサンプル精度の精緻化動きベクトルを決定することと、
    前記第2の精緻化が実行されると、前記精緻化動きベクトルを用いて前記コーディングユニットサブブロックをデコードすることと
    を有し、
    前記デコード方法は、少なくとも、前記バイリニア補間を用いて生成された前記第2の画素値群以外の画素値が前記第2の精緻化に必要となる場合は、前記第2の画素値群以外の画素値を使用しないように、前記第2の精緻化を抑制することを更に含
    とを特徴とするデコード方法。
  2. 複数のブロックに分割されるフレームで構成されるビデオデータをエンコードして符号化データを生成するエンコード方法であって、
    コーディングユニットに関する動きベクトルであって、少なくとも前記符号化データをデコードするデコード方法において精緻化される精緻化対象の動きベクトルを決定することと、
    前記決定された動きベクトルによって参照されるサブサンプル位置の画素を補間するための画素値群であって、所定範囲内の複数の画素における画素値群である第1の画素値群から、バイリニア補間を用いて、2次元配列の第2の画素値群を生成することと、
    前記第2の画素値群の少なくとも一部の画素値を用いて、前記決定された動きベクトルの位置を精緻化する第1の精緻化を実行して、1の位置を決定することと、
    前記第2の画素値群の少なくとも一部の画素値を用いて前記第1の位置を更に精緻化する第2の精緻化を実行して、サブサンプル精度の精緻化動きベクトルを決定することと、
    前記第2の精緻化が実行されると、前記精緻化動きベクトルを用いて前記コーディングユニットサブブロックをエンコードすることと
    を有し、
    前記エンコード方法は、少なくとも、前記バイリニア補間を用いて生成された前記第2の画素値群以外の画素値が前記第2の精緻化に必要となる場合は、前記第2の画素値群以外の画素値を使用しないように、前記第2の精緻化を抑制することを更に含
    とを特徴とするエンコード方法。
  3. 複数のブロックに分割されて符号化された画像で構成されるビデオデータをデコードするデコード装置であって、
    コーディングユニットに関する動きベクトルであって、前記デコード装置における精緻化対象の動きベクトルを決定する対象ベクトル決定手段と、
    前記決定された動きベクトルによって参照されるサブサンプル位置の画素を補間するための画素値群であって、所定範囲内の複数の画素における画素値群である第1の画素値群から、バイリニア補間を用いて、2次元配列の第2の画素値群を生成する生成手段と、
    前記第2の画素値群の少なくとも一部の画素値を用いて、前記決定された動きベクトルの位置を精緻化する第1の精緻化を実行して、1の位置を決定する第1の決定手段と、
    前記第2の画素値群の少なくとも一部の画素値を用いて前記第1の位置を更に精緻化する第2の精緻化を実行して、サブサンプル精度の精緻化動きベクトルを決定する第2の決定手段と、
    前記第2の精緻化が実行されると、前記精緻化動きベクトルを用いて前記コーディングユニットサブブロックをデコードするデコード手段と、
    少なくとも、前記バイリニア補間を用いて生成された前記第2の画素値群以外の画素値が前記第2の精緻化に必要となる場合は、前記第2の画素値群以外の画素値を使用しないように、前記第2の精緻化を抑制する抑制手段と
    を有することを特徴とするコード装置。
  4. 複数のブロックに分割されるフレームで構成されるビデオデータをエンコードして符号化データを生成するエンコード装置であって、
    コーディングユニットに関する動きベクトルであって、少なくとも前記符号化データをデコードするデコード装置において精緻化される精緻化対象の動きベクトルを決定する対象ベクトル決定手段と、
    前記決定された動きベクトルによって参照されるサブサンプル位置の画素を補間するための画素値群であって、所定範囲内の複数の画素における画素値群である第1の画素値群から、バイリニア補間を用いて、2次元配列の第2の画素値群を生成する生成手段と、
    前記第2の画素値群の少なくとも一部の画素値を用いて、前記決定された動きベクトルの位置を精緻化する第1の精緻化を実行して、1の位置を決定する第1の決定手段と、
    前記第2の画素値群の少なくとも一部の画素値を用いて前記第1の位置を更に精緻化する第2の精緻化を実行して、サブサンプル精度の精緻化動きベクトルを決定する第2の決定手段と、
    前記第2の精緻化が実行されると、前記精緻化動きベクトルを用いて前記コーディングユニットサブブロックをエンコードするエンコード手段と、
    少なくとも、前記バイリニア補間を用いて生成された前記第2の画素値群以外の画素値が前記第2の精緻化に必要となる場合は、前記第2の画素値群以外の画素値を使用しないように、前記第2の精緻化を抑制する抑制手段と
    を有することを特徴とするエンコード装置。
  5. コンピュータを、請求項3に記載のデコード装置の各手段として機能させることを特徴とするプログラム。
  6. コンピュータを、請求項4に記載のエンコード装置の各手段として機能させることを特徴とするプログラム。
JP2021146342A 2017-06-30 2021-09-08 低減されたメモリアクセスを用いてfrucモードでビデオデータを符号化又は復号する方法及び装置 Active JP7261275B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB1710567.7A GB2563943B (en) 2017-06-30 2017-06-30 Method and apparatus for encoding or decoding video data in FRUC mode with reduced memory accesses
GB1710567.7 2017-06-30
PCT/EP2018/066786 WO2019002136A1 (en) 2017-06-30 2018-06-22 METHOD AND APPARATUS FOR ENCODING OR DECODING FRUC-MODE VIDEO DATA WITH REDUCED MEMORY ACCESS
JP2019562548A JP6945654B2 (ja) 2017-06-30 2018-06-22 低減されたメモリアクセスを用いてfrucモードでビデオデータを符号化又は復号する方法及び装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2019562548A Division JP6945654B2 (ja) 2017-06-30 2018-06-22 低減されたメモリアクセスを用いてfrucモードでビデオデータを符号化又は復号する方法及び装置

Publications (2)

Publication Number Publication Date
JP2022008349A JP2022008349A (ja) 2022-01-13
JP7261275B2 true JP7261275B2 (ja) 2023-04-19

Family

ID=59592613

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019562548A Active JP6945654B2 (ja) 2017-06-30 2018-06-22 低減されたメモリアクセスを用いてfrucモードでビデオデータを符号化又は復号する方法及び装置
JP2021146342A Active JP7261275B2 (ja) 2017-06-30 2021-09-08 低減されたメモリアクセスを用いてfrucモードでビデオデータを符号化又は復号する方法及び装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2019562548A Active JP6945654B2 (ja) 2017-06-30 2018-06-22 低減されたメモリアクセスを用いてfrucモードでビデオデータを符号化又は復号する方法及び装置

Country Status (8)

Country Link
US (6) US11202076B2 (ja)
EP (2) EP3646596A1 (ja)
JP (2) JP6945654B2 (ja)
KR (2) KR102434319B1 (ja)
CN (6) CN115002480B (ja)
GB (1) GB2563943B (ja)
MA (1) MA50940A (ja)
WO (1) WO2019002136A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2563943B (en) * 2017-06-30 2021-02-24 Canon Kk Method and apparatus for encoding or decoding video data in FRUC mode with reduced memory accesses
GB2564133B (en) * 2017-07-04 2021-03-17 Canon Kk Method and apparatus for encoding or decoding video data with sub-pixel motion vector refinement
SG11202007843YA (en) * 2018-03-19 2020-10-29 Qualcomm Inc Improvements to advanced temporal motion vector prediction
US10911768B2 (en) * 2018-07-11 2021-02-02 Tencent America LLC Constraint for template matching in decoder side motion derivation and refinement
WO2020103940A1 (en) 2018-11-22 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Coordination method for sub-block based inter prediction
US11196988B2 (en) * 2018-12-17 2021-12-07 Apple Inc. Reference picture management and list construction
EP3997877A4 (en) 2019-08-13 2023-05-24 Beijing Bytedance Network Technology Co., Ltd. MOTION ACCURACY IN SUBBLOCK-BASED INTERPREDICTION
WO2021052506A1 (en) 2019-09-22 2021-03-25 Beijing Bytedance Network Technology Co., Ltd. Transform unit based combined inter intra prediction
US11936899B2 (en) * 2021-03-12 2024-03-19 Lemon Inc. Methods and systems for motion candidate derivation
US11671616B2 (en) 2021-03-12 2023-06-06 Lemon Inc. Motion candidate derivation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6945654B2 (ja) 2017-06-30 2021-10-06 キヤノン株式会社 低減されたメモリアクセスを用いてfrucモードでビデオデータを符号化又は復号する方法及び装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1152621A1 (en) * 2000-05-05 2001-11-07 STMicroelectronics S.r.l. Motion estimation process and system.
US7400680B2 (en) * 2003-09-30 2008-07-15 Intel Corporation Rectangular-shape motion search
JP4590337B2 (ja) 2005-10-27 2010-12-01 キヤノン株式会社 動画像符号化装置及び動画像符号化方法
JP2007129370A (ja) 2005-11-01 2007-05-24 Matsushita Electric Ind Co Ltd 動きベクトル検出装置及び方法
CN102131091B (zh) * 2010-01-15 2013-01-23 联发科技股份有限公司 解码端运动向量导出方法
US20110176611A1 (en) * 2010-01-15 2011-07-21 Yu-Wen Huang Methods for decoder-side motion vector derivation
US9100657B1 (en) * 2011-12-07 2015-08-04 Google Inc. Encoding time management in parallel real-time video encoding
US10075728B2 (en) * 2012-10-01 2018-09-11 Inria Institut National De Recherche En Informatique Et En Automatique Method and device for motion information prediction refinement
US9438925B2 (en) * 2013-12-31 2016-09-06 Vixs Systems, Inc. Video encoder with block merging and methods for use therewith
CN106105196A (zh) * 2014-04-28 2016-11-09 松下电器(美国)知识产权公司 编码方法、解码方法、编码装置以及解码装置
US10757437B2 (en) * 2014-07-17 2020-08-25 Apple Inc. Motion estimation in block processing pipelines
AU2016316309B2 (en) * 2015-09-02 2019-01-24 Hfi Innovation Inc. Method and apparatus of decoder side motion derivation for video coding
WO2017157281A1 (en) * 2016-03-16 2017-09-21 Mediatek Inc. Method and apparatus of pattern-based motion vector derivation for video coding
US10951912B2 (en) * 2016-10-05 2021-03-16 Qualcomm Incorporated Systems and methods for adaptive selection of weights for video coding
GB2564133B (en) * 2017-07-04 2021-03-17 Canon Kk Method and apparatus for encoding or decoding video data with sub-pixel motion vector refinement
SG11202011320SA (en) * 2018-07-02 2020-12-30 Huawei Tech Co Ltd An error surface based sub-pixel accurate refinement method for decoder side motion vector refinement

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6945654B2 (ja) 2017-06-30 2021-10-06 キヤノン株式会社 低減されたメモリアクセスを用いてfrucモードでビデオデータを符号化又は復号する方法及び装置

Also Published As

Publication number Publication date
GB2563943A (en) 2019-01-02
JP2022008349A (ja) 2022-01-13
KR102536704B1 (ko) 2023-05-26
CN115002479B (zh) 2024-03-12
CN115002480A (zh) 2022-09-02
US11979580B2 (en) 2024-05-07
US11979578B2 (en) 2024-05-07
US11979581B2 (en) 2024-05-07
US11202076B2 (en) 2021-12-14
US20230262228A1 (en) 2023-08-17
GB201710567D0 (en) 2017-08-16
CN115002478B (zh) 2024-03-12
US11595659B2 (en) 2023-02-28
US20230188723A1 (en) 2023-06-15
US11979579B2 (en) 2024-05-07
CN115002481B (zh) 2024-03-12
US20230179773A1 (en) 2023-06-08
CN115002481A (zh) 2022-09-02
GB2563943B (en) 2021-02-24
US20230188724A1 (en) 2023-06-15
CN115002480B (zh) 2024-03-12
EP4422177A2 (en) 2024-08-28
MA50940A (fr) 2020-05-06
KR102434319B1 (ko) 2022-08-22
WO2019002136A1 (en) 2019-01-03
US20200221097A1 (en) 2020-07-09
EP3646596A1 (en) 2020-05-06
CN111133759B (zh) 2022-06-24
KR20220119755A (ko) 2022-08-30
CN115037946A (zh) 2022-09-09
CN115002478A (zh) 2022-09-02
US20220141467A1 (en) 2022-05-05
KR20200031078A (ko) 2020-03-23
CN115002479A (zh) 2022-09-02
CN111133759A (zh) 2020-05-08
JP2020522913A (ja) 2020-07-30
CN115037946B (zh) 2024-03-12
JP6945654B2 (ja) 2021-10-06

Similar Documents

Publication Publication Date Title
JP7261275B2 (ja) 低減されたメモリアクセスを用いてfrucモードでビデオデータを符号化又は復号する方法及び装置
JP6279699B2 (ja) マージ候補ブロック誘導方法及びこのような方法を用いる装置
JP7542118B2 (ja) 低減されたメモリアクセスを用いてfrucモードでビデオデータを符号化又は復号する方法及び装置
WO2015052273A1 (en) Method and apparatus for displacement vector component prediction in video coding and decoding

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210908

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221031

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221128

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: 20230310

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230407

R151 Written notification of patent or utility model registration

Ref document number: 7261275

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151