Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7229982B2 - ビデオシーケンスの画像をエンコードする方法及びシステム - Google Patents
[go: Go Back, main page]

JP7229982B2 - ビデオシーケンスの画像をエンコードする方法及びシステム - Google Patents

ビデオシーケンスの画像をエンコードする方法及びシステム Download PDF

Info

Publication number
JP7229982B2
JP7229982B2 JP2020196810A JP2020196810A JP7229982B2 JP 7229982 B2 JP7229982 B2 JP 7229982B2 JP 2020196810 A JP2020196810 A JP 2020196810A JP 2020196810 A JP2020196810 A JP 2020196810A JP 7229982 B2 JP7229982 B2 JP 7229982B2
Authority
JP
Japan
Prior art keywords
pixels
block
encoding
blocks
motion vector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020196810A
Other languages
English (en)
Other versions
JP2021103876A (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 JP2021103876A publication Critical patent/JP2021103876A/ja
Application granted granted Critical
Publication of JP7229982B2 publication Critical patent/JP7229982B2/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
    • 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/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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
    • 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/527Global motion vector estimation
    • 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/567Motion estimation based on 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/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/57Motion estimation characterised by a search window with variable size or shape

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は、ビデオコーディングの分野に関する。特に、本発明は、ビデオシーケンスの画像をエンコードする方法及びシステムに関する。
ビデオフレームのシーケンスをエンコードする際には、ビデオフレームのそれぞれをピクセルのブロックに分割し、そのフレームをブロック毎にエンコードするのが一般的なプラクティスである。これらのブロックは、H.264/MPEG-4 AVCではマクロブロックとして知られており、H.265/HEVCではコーディングユニットとして知られている。ブロックは、Iブロックと時に呼ばれるイントラブロック、又は、P若しくはBブロックと時に呼ばれるインターブロックとしてエンコードされてよい。
ブロックがイントラコードされる場合、ピクセル値は、例えば、同じフレームにおける、隣接するブロックのエッジから推定することにより、現在のフレームのみのピクセル値を参照してエンコードされる。これは、リファレンスフレームにおける、マッチングのとれたピクセルのブロックを参照してエンコードされる、インターコードされたブロックとは対照的である。具体的には、ピクセルのブロックをインターコードすることは、リファレンスフレームにおける、マッチングのとれたピクセルのブロックを指し示す動きベクトルをエンコードすることと、ピクセルのブロックとマッチングのとれたピクセルのブロックとの間の残りをエンコードすることと、を含む。ピクセルのブロックの動きベクトルをエンコードすることをより効率的にするために、これは通常、隣接するピクセルのブロックの動きベクトルに対して、例えば、同じフレームにおける、以前にエンコードされた隣接するブロックの動きベクトルに対して、エンコードされる。
イントラフレームと呼ばれるいくつかのフレームでは、ピクセルのブロックのすべてがイントラコードされる。インターフレームと呼ばれる他のフレームでは、ピクセルのブロックのいくつかがイントラコードされ、他がインターコードされる。インターフレームでは、ピクセルのブロックを、イントラコードされたブロック又はインターコードされたブロックとしてエンコードするかについての決定が、ブロック毎に基づいて行われる。この決定は通常、イントラコーディング及びインターコーディングのどちらであれば、エンコードする代償が最も低いか、に基づいて行われる。ブロックをイントラコードする代償は、予め定められた値を単位として与えられてよい。一方、ブロックをインターコードする代償は、動きベクトル及び残りをエンコードする、組み合わせた代償として判定される。
ピクセルのブロックをイントラコード又はインターコードするかを、ブロック毎に基づいて決定するこのアプローチには、いくつかの欠点がある。具体的には、ブロックレベルでは最適に見えるような決定は、いくつかのシチュエーションにおいて、フレームレベルでは最適なものとして次点の場合があり、ついには、フレームをエンコードする代償が不必要に高いものとなる場合がある。
そのようなシチュエーションの一例として、対象が、以前にエンコードされたフレームから、かなりの距離を動いた、多数のピクセルのブロックに広がる場合がある。対象内のピクセルのブロックに対して、モーションの検索では、かなりの長さを有する、以前にエンコードされたフレームから、対象のモーションに相当する、候補となる動きベクトルが見つかる可能性が高い。長い動きベクトルは、エンコードに対する代償が大きいため、いずれの単一のピクセルのブロックに対して長い動きベクトルを使用することに対しては、よい決定とならない場合がある。特にこれは、より高い圧縮レベルの場合にあてはまる。なぜなら、残りは、理論的に、高圧縮レベルに対してより少なくなるが、動きベクトルをエンコードする代償は、圧縮レベルに関わらず、同じままであるためである。その代わりに、既存のブロック毎での方法では、対象内のブロックを、より短い動きベクトルを伴う、イントラコードされたブロックとして、又は、インターコードされたブロックとしてエンコードすることが決定される。しかし、フレームレベルでのよりよい決定を行うには、動きベクトルは、互いに対してエンコードされる、ということを念頭において、長い動きベクトルをエンコードする追加的代償が必要となることが多かった。したがって、改善の余地がある。
上記を鑑み、したがって、本発明の目的は、ビデオシーケンスにおける、以前にエンコードされた画像から、かなりの距離を動いた対象を描く画像をエンコードする合計ビットの代償を減らすことである。
本発明の第1の態様によると、上記の目的は、ビデオシーケンスの画像をエンコードする方法により達成される。この方法は、
ビデオシーケンスにおけるモーションを解析し、そのビデオシーケンスにおける、以前にエンコードされた画像から、閾値より長い距離ベクトルを伴って動いたその画像における、コヒーレントな領域を特定することと、
その画像におけるピクセルのブロックを、ピクセルのブロックのそれぞれに対してエンコードすることであって、
ブロックマッチングを行い、リファレンスイメージにおける、マッチングのとれたピクセルのブロックを指し示す動きベクトルを見いだし、ピクセルのブロックとマッチングのとれたピクセルのブロックとの間の残りを計算することと、
動きベクトルをエンコードする代償と、残りをエンコードする代償と、を計算することであって、
そのコヒーレントな領域における、ピクセルのブロックの少なくとも1つに対して、動きベクトルをエンコードする代償は、その画像における、隣接するピクセルのブロックの動きベクトルに対する動きベクトルをエンコードする代償として計算される代わりに、そのコヒーレントな領域の距離ベクトルに対する動きベクトルをエンコードする代償として計算される、代償を計算することと、
動きベクトルをエンコードする代償と、残りをエンコードする代償と、を組み合わせた場合に、その組み合わせた代償が、そのピクセルのブロックをイントラコードする代償未満の場合は、ピクセルのブロックを、インターコードされたブロックとしてエンコードすることと、により、ピクセルのブロックをエンコードすることと、
を含む。
このアプローチにより、ピクセルのブロックをイントラコードするか、又は、インターコードするかについての決定が、ブロックレベルにて行われる。依然として、動きベクトルをエンコードする代償が、コヒーレントな領域における、ピクセルのブロックの少なくとも1つに対して計算される方法を変えることにより、そのコヒーレントな領域における、ブロックの1つ又はそれ以上に対する長い動きベクトルをエンコードする追加的代償を担うよう、エンコーダを「だます」ことができる。そのようにして、コヒーレントな領域をエンコードする実際の合計ビットの代償が減らされてよい。
より詳細には、動きベクトルをエンコードする代償は通常、その画像における、隣接するピクセルのブロックの動きベクトルに関して評価される。代償を計算するこの方法は、動きベクトルをエンコードする実際のビットの代償に相当する。したがって、エンコーダは通常、画像における、隣接するピクセルのブロックの動きベクトルに類似する動きベクトルをエンコードする代償が低いことを考慮する。
しかし、コヒーレントな領域における、ピクセルのブロックの少なくとも1つに対して、動きベクトルをエンコードする代償は、その代わりに、そのコヒーレントな領域の距離ベクトルに関して評価される。このようにして、コヒーレントな領域における、ピクセルのブロックの少なくとも1つに対して、エンコーダは、そのコヒーレントな領域の距離ベクトルに類似する動きベクトルをエンコードする代償が低いことを信じることとなる。結果として、エンコーダは、そのコヒーレントな領域の距離ベクトルに等しい又はこれに近い動きベクトルを伴うピクセルのブロックの少なくとも1つをインターコードするという決定を行う可能性が、より高い。実際には、しかし、ピクセルのブロックの少なくとも1つの動きベクトルをエンコードする実際のビットの代償は依然として、隣接するピクセルのブロックの動きベクトルに対して、動きベクトルをエンコードする代償となる。このようにして、エンコーダは、したがって、コヒーレントな領域における、ピクセルのブロックの少なくとも1つに対して、長くて代償が大きい動きベクトルをエンコードする追加的代償を担うよう「だまされ」る。コヒーレントな領域における他のピクセルのブロックの動きベクトルが続いて、ピクセルのブロックの少なくとも1つの、長くて代償が大きい動きベクトルに対して、低い代償にてエンコードされてよい。したがって、ついには、コヒーレントな領域をエンコードする実際の合計ビットの代償が減らされてよい。
画像における、コヒーレントな領域とは、その画像における、隣接するピクセルの領域を意味する。特定されたコヒーレントな領域は、ほぼ同じ量を同じ方向に動いた、その画像におけるエリアに相当する。コヒーレントな領域は、例えば、ビデオに描かれた移動物体に相当してよい。コヒーレントな領域はまた、例えば、画像が、カメラをパンすること及び/又はチルトすることより撮像された場合の、画像全体に相当してよい。
ビデオシーケンスにおける、以前にエンコードされた画像とは、エンコードする順序における、現在の画像より前の、ビデオシーケンスにおける画像を意味する。これは、Pタイプのコーディングの場合では、ビデオシーケンスにおける前の画像であり得、Bタイプのコーディングの場合では、ビデオシーケンスにおける将来の画像であり得る。
コヒーレントな領域の距離ベクトルとは、一般的に、ビデオシーケンスにおける、以前にエンコードされた画像から、その画像における、そのコヒーレントな領域の動きの量及び方向を示すベクトルを意味する。距離ベクトルは、コヒーレントな領域における、ピクセルの動きの平均量及び方向に相当してよい。距離ベクトルは、画像における、コヒーレントな領域の位置から、以前にエンコードされた画像における、そのコヒーレントな領域の位置までを指し示す。
リファレンスイメージとは、一般的に、ビデオシーケンスの現在の画像がエンコードされていることに関する画像を意味する。リファレンスイメージは、ビデオシーケンスにおける、以前にエンコードされた画像に相当してよい。具体的には、リファレンスイメージは、ビデオシーケンスにおける、以前にエンコードされた画像から計算されてよい。例えば、リファレンスイメージは、ビデオコーディングにおける一般的なプラクティスとして、以前にエンコードされた画像を最初にエンコードし、続いて、それを再度、デコードすることにより計算されてよい。
動きベクトルを、別のベクトルに対してエンコードするとは、一般的に、その動きベクトルと、その別のベクトルと、の間の差がエンコードされることを意味する。動きベクトルを、別のベクトルに対してエンコードする代償は、したがって、その動きベクトルと、その別のベクトルと、の間の差をエンコードする代償として計算されてよい。
動きベクトルをエンコードする代償が、距離ベクトルに対して計算される、コヒーレントな領域における、ピクセルのブロックの少なくとも1つは、エンコードされるコヒーレントな領域における、最初のピクセルのブロックを含んでよい。より詳細には、コヒーレントな領域における、ピクセルのブロックは、所定の順序にてエンコードされてよい。ここでは、コヒーレントな領域における、ピクセルのブロックの少なくとも1つは、所定の順序にしたがって最初にエンコードされる、コヒーレントな領域における、ピクセルのブロックを含んでよい。例えば、ピクセルのブロックは、ラスタースキャン順にエンコードされてよい。ラスタースキャン順に最初に現れる、コヒーレントな領域におけるピクセルのブロックは、ピクセルのブロックの少なくとも1つに含まれる。このようにして、コヒーレントな領域の距離ベクトルに相当する長い動きベクトルをエンコードする追加的代償は、そのコヒーレントな領域における、最初にエンコードされたピクセルのブロックに対して、すでに使われている。コヒーレントな領域における、後にエンコードされたピクセルのブロックの動きベクトルが続いて、その長い動きベクトルに対して、低い代償にてエンコードされてよい。
いくつかの場合では、コヒーレントな領域における、ピクセルのブロックのその少なくとも1つは、所定の順序にしたがって最初にエンコードされた、そのコヒーレントな領域における、ピクセルのブロックのみを含む。これは、長い動きベクトルをエンコードする追加的代償のみが一度使われる、という点において好適である。これは、H.265/HEVC標準での場合のように、インターコードされたブロックの動きベクトルが、その画像における、その、以前にエンコードされた隣接するピクセルのブロックのいずれの1つに対してエンコードされる場合に、十分となり得る。
他の場合では、画像における、隣接するピクセルのブロックの動きベクトルは、その画像における、多数(通常は奇数)の、以前にエンコードされた隣接するピクセルのブロックの動きベクトルのメジアンに相当する。
これは、例えば、H.264/MPEG-4 AVC標準での場合である。ここでは、インターコードされたブロックの動きベクトルは、その画像における、3つの、以前にエンコードされた隣接するピクセルのブロックの動きベクトルのメジアンに対してエンコードされている。それらの他の場合では、コヒーレントな領域における、ピクセルのブロックの少なくとも1つは、好ましくは、ピクセルのブロックを、2つ又はそれ以上含む。
より一般的には、コヒーレントな領域における、ピクセルのブロックのその少なくとも1つは、その領域内の、以前にエンコードされた隣接するピクセルのブロックを所定の数未満だけ有する、そのコヒーレントな領域における、ピクセルのブロックのすべてを含んでよい。この要件により、長い動きベクトルをエンコードする追加的代償があるブロックの数が最低限に維持され、同時にこれは、コヒーレントな領域内の残りのブロックすべての動きベクトルが、以前にエンコードされた長い動きベクトルに対して、低い代償にてエンコードされることを可能にする。
上記の、H.265/HEVCの場合について、追加的代償は、その領域において、以前にエンコードされた隣接するブロックがなければ、その領域におけるブロックに対してのみ使われる。その場合には、所定の数は、したがって、1に等しい。H.264/MPEG-4 AVCの場合について、3つを超える隣接するブロックの動きベクトルのメジアンが計算され、追加的代償が、その領域における、以前にエンコードされた、2つの隣接するブロックより少ないブロックに対して使われる。その場合には、所定の数は、したがって、2に等しい。
好ましくは、領域に対する、エンコードする代償を最適にするため、コヒーレントな領域における、ピクセルのブロックの少なくとも1つは、その領域内の、以前にエンコードされた隣接するピクセルのブロックを所定の数未満だけ有する、そのコヒーレントな領域における、ピクセルのブロックのみを含む。
いくつかの場合では、コヒーレントな領域における、ピクセルのブロックの少なくとも1つは、そのコヒーレントな領域における、ピクセルのブロックのすべてを含んでよい。このアプローチは、どのエンコーディング標準が採用されるかに関わらずに使用されてよい。
ブロックマッチングを行うことは、動きベクトル検索ウィンドウを使用し、リファレンスイメージにおける、マッチングのとれたピクセルのブロックを指し示す動きベクトルを見いだすことを含んでよい。検索ウィンドウは、隣接するピクセルのブロックの動きベクトルの周囲にその中心が置かれてよい。つまり、検索ウィンドウは、隣接するブロックの動きベクトルが指し示す、リファレンスイメージにおける、ピクセルのブロックにその中心を有する。検索ウィンドウのそのようなポジショニングは通常、画像における、ピクセルのブロックに対して使用される。しかし、コヒーレントな領域における、ピクセルのブロックの少なくとも1つに対して、検索ウィンドウは、その代わりに、そのコヒーレントな領域の距離ベクトルの周囲にその中心が置かれてよい。そのようにして、ブロックマッチングにより、コヒーレントな領域における、ピクセルのブロックの少なくとも1つに対する距離ベクトルに相当する動きベクトルを見いだす可能性が、より高まる。
検索ウィンドウの上記のポジショニングはまた、動きベクトルをエンコードする代償の計算を実施するために、都合よく使用されてもよい。具体的には、ピクセルのブロックの動きベクトルをエンコードする代償は、動きベクトル検索ウィンドウの中心がその周囲に置かれているベクトルに対する動きベクトルをエンコードする代償として計算されてよい。コヒーレントな領域における、ピクセルのブロックの少なくとも1つに対して、検索ウィンドウは、そのコヒーレントな領域の距離ベクトルの周囲にその中心が置かれている。したがって、それらのブロックに対して、動きベクトルをエンコードする代償は、そのコヒーレントな領域の距離ベクトルに対して計算される。これは、検索ウィンドウが、画像における、隣接するピクセルのブロックの動きベクトルの周囲にその中心が置かれている、その画像における他のピクセルのブロックとは対照的であり、動きベクトルをエンコードする代償は、その結果として、隣接するピクセルのブロックの動きベクトルに対して計算される。
ビデオシーケンスは、移動可能な視野を有するカメラにより撮像されてよい。ここでは、ビデオシーケンスにおけるモーションを解析することは、視野の動きに関わる、カメラからの入力に基づく。例えば、カメラは、パン及びチルト機能を持つカメラであってよい。視野全体のモーションは、画像におけるグローバルなモーションを導くため、その画像におけるコヒーレントな領域は、その場合には、画像全体として特定されてよく、距離ベクトルは、以前にエンコードされた画像から、その画像におけるグローバルなモーションの量及び方向に相当する。視野のモーションが既知となると、そのグローバルなモーションが生じてよい。
ビデオシーケンスにおけるモーションを解析することは、対象検出アルゴリズムを使用して、ビデオシーケンスにおける対象及びそれらのモーションを検出することを含んでよい。例えば、ディープラーニング技術に基づく対象検出アルゴリズムが、この目的に使用されてよい。
画像におけるコヒーレントな領域のサイズは、そのコヒーレントな領域の距離ベクトルの長さに依存する閾値より大きくともよい。このようにして、コヒーレントな領域における、ピクセルのブロックの少なくとも1つに対して、長い動きベクトルをエンコードするために使われる追加的代償が、そのコヒーレントな領域における残りのピクセルのブロックに対しての、エンコードする代償を低くすることにより得たものに対して、均衡してよい。距離ベクトルの長さと共に、エンコードする追加的代償が増えると、この方法の効果を得るために、より長い距離ベクトルに対して、コヒーレントな領域をより大きくしなければならない場合がある。領域サイズ閾値がしたがって、距離ベクトルの長さに応じて増える。
この方法は、画像に含まれるコヒーレントな領域が1つを超える場合に、さらに拡張する。具体的には、この方法は、
ビデオシーケンスにおけるモーションを解析し、そのビデオシーケンスにおける、以前にエンコードされた画像から、閾値より長い第2の距離ベクトルを伴って動いたその画像における、第2のコヒーレントな領域を特定することをさらに含んでよく、
その第2のコヒーレントな領域における、ピクセルのブロックの少なくとも1つに対して、動きベクトルをエンコードする代償は、その画像における、隣接するピクセルのブロックの動きベクトルに対する動きベクトルをエンコードする代償として計算される代わりに、第2のコヒーレントな領域の第2の距離ベクトルに対する動きベクトルをエンコードする代償として計算される。
第2の態様によると、ビデオシーケンスの画像をエンコードするシステムが提供される。このシステムは、
ビデオシーケンスにおけるモーションを解析し、そのビデオシーケンスにおける、以前にエンコードされた画像から、閾値より長い距離ベクトルを伴って動いたその画像における、コヒーレントな領域を特定するよう構成されているアナライザと、
その画像におけるピクセルのブロックを、ピクセルのブロックのそれぞれに対してエンコードするよう構成されているエンコーダであって、
ブロックマッチングを行い、リファレンスイメージにおける、マッチングのとれたピクセルのブロックを指し示す動きベクトルを見いだし、ピクセルのブロックとマッチングのとれたピクセルのブロックとの間の残りを計算することと、
動きベクトルをエンコードする代償と、残りをエンコードする代償と、を計算することであって、
そのコヒーレントな領域における、ピクセルのブロックの少なくとも1つに対して、動きベクトルをエンコードする代償は、その画像における、隣接するピクセルのブロックの動きベクトルに対する動きベクトルをエンコードする代償として計算される代わりに、そのコヒーレントな領域の距離ベクトルに対する動きベクトルをエンコードする代償として計算される、代償を計算することと、
動きベクトルをエンコードする代償と、残りをエンコードする代償と、を合わせた場合に、その代償が、そのピクセルのブロックをイントラコードする代償未満の場合は、ピクセルのブロックを、インターコードされたブロックとしてエンコードすることと、により、ピクセルのブロックをエンコードするよう構成されているエンコーダと、
を含む。
第3の態様によると、プロセッサにより実行されると、そのプロセッサに、第1の態様に係る方法を実施させるコンピュータコード命令を保存している、非一時的コンピュータ可読媒体が提供される。
第2及び第3の態様は一般に、第1の態様と同じ特徴及び利点を有してよい。本発明は更に、特に明白に言及していない限り、すべての可能な特徴の組み合わせに関連することに留意されたい。
本発明の、上記及び更なる目的、特徴、並びに利点は、添付図面を参照しての、本発明の実施形態の、以下に記載する例示的且つ非限定の詳細説明を通して良好に理解される。ここでは、同様のコンポーネントには同じ参照番号が用いられる。
図1は、実施形態に係る、ビデオシーケンスの画像をエンコードするシステムを模式的に示す。 図2は、実施形態に係る、ビデオシーケンスの画像をエンコードする方法のフローチャートである。 図3及び図4はそれぞれ、図1に示すシステムのアナライザにより、ビデオシーケンスの画像において特定されたコヒーレントな領域と、関連付けられた距離ベクトルと、を模式的に示す。 図3及び図4はそれぞれ、図1に示すシステムのアナライザにより、ビデオシーケンスの画像において特定されたコヒーレントな領域と、関連付けられた距離ベクトルと、を模式的に示す。 図5は、画像における第1の形状のコヒーレントな領域の内側と外側のピクセルのブロックを模式的に示す。 図6は、画像における、第2の形状のコヒーレントな領域の内側と外側のピクセルのブロックを模式的に示す。 図7は、実施形態に係る、画像におけるピクセルのブロックの動きベクトルに対する、通常の代償の計算を模式的に示す。 図8は、実施形態に係る、画像におけるピクセルのブロックの動きベクトルに対する、変更した代償の計算を模式的に示す。 図9は、実施形態に係る、ビデオシーケンスの画像をエンコードする方法のフローチャートである。 図10及び図11は、実施形態に係る、ブロックマッチングと、動きベクトルの代償の計算と、を行うことに関係して使用される動きベクトル検索ウィンドウを示す。 図10及び図11は、実施形態に係る、ブロックマッチングと、動きベクトルの代償の計算と、を行うことに関係して使用される動きベクトル検索ウィンドウを示す。
本発明を、添付図面を参照して以下に更に詳細に説明する。ここでは、本発明の実施形態を示す。
図1は、ビデオシーケンス106をエンコードするシステム100を示す。このシステムは、アナライザ102と、エンコーダ104と、を含む。システム100は、ビデオシーケンス106を撮像するビデオカメラに実装されてよい。ビデオカメラは、パン-チルト-ズームカメラなどの、移動可能な視野を有するビデオカメラであってよい。
エンコーダ104は、ビデオシーケンス106を受け取り、それをエンコードし、エンコードされたビデオシーケンス110を出力するよう構成されている。エンコーダ104の一般的な目的は、ビデオシーケンス106をできるだけ効率よく、すなわち、ビデオの品質を犠牲にすることなく、ビットをできるだけ少なく使用してエンコードすることである。
この目的を達成するために、エンコーダ104は、アナライザ102から入力108をさらに受け取る。入力108は、ビデオシーケンス108における画像のそれぞれに対して、その画像におけるコヒーレントな領域の1つ又はそれ以上と、それらのコヒーレントな領域のそれぞれに対する距離ベクトルと、を示してよい。距離ベクトルは、ビデオシーケンス106における、以前にエンコードされた画像から、コヒーレントな領域がどれほど遠くに、どの方向に動いたかを示す。閾値距離は、その閾値距離より長い距離ベクトルに関連付けられたコヒーレントな領域のみが、エンコーダ104に転送される入力108に含まれるように設定されてよい。さらに、サイズ閾値は、コヒーレントな領域がそのサイズ閾値より大きい場合に、そのコヒーレントな領域のみが入力108に含まれるように設定されてよい。サイズ閾値は、所定の関係にしたがって、コヒーレントな領域の距離ベクトルの長さに依存してよい。典型的には、サイズ閾値は、距離ベクトルの長さが伸びるにしたがって増える。
追加的な入力108を使用することにより、エンコーダ104は、そのようなコヒーレントな領域がある画像を、より効率的にエンコードし得る。これを、図2のフローチャートを参照してより詳細に説明する。このフローチャートは、ビデオシーケンス106における画像をエンコードする際の、システム100の作動を例示する。
ステップS102では、アナライザ102が、ビデオシーケンス106におけるモーションを解析する。特に、アナライザ102は、ビデオシーケンス106の画像における対象を検出し、その対象が、フレーム間をどのように動くかを解析してよい。この目的のために、アナライザ102は、いずれの既知の対象検出アルゴリズム又は対象追跡アルゴリズムを実装してよい。例えば、アナライザ102は、そのような対象検出及び/又は対象追跡アルゴリズムを実装するディープラーニングネットワークを含んでよい。このプロセスをさらに例示するために、図3は、ビデオシーケンス106の、3つの連続する画像106-1、106-2、及び106-3を示す。それらのそれぞれでは、アナライザ102が、対象302を検出している。検出された対象302はそれぞれ、3つの画像106-1、106-2、及び106-3において、302-1、302-2、及び302-3とする。対象302は、その画像におけるコヒーレントな領域として見られてよい。ここでは、ピクセルが、2つの連続する画像間を、ほぼ同じ量にて同じ方向に動いている。対象302が検出されると、アナライザ102は、画像106-1、106-2、及び106-3間のその動きを見いだしてよい。具体的には、アナライザ102は、対象302が、以前にエンコードされた画像から、どれほど遠くに、どの方向に動いたかを見いだしてよい。この例では、以前にエンコードされた画像が、そのビデオシーケンスにおける前の画像に相当することが想定される。これは、Pタイプのコーディングの場合にあたる。Bタイプのコーディングについては、以前にエンコードされた画像は、その代わりに、そのビデオシーケンスにおける将来のフレームである。例えば、アナライザ102は、以前にエンコードされた画像106-1における対象302-1の位置と、現在の画像106-2における対象302-2の位置と、の間の差を計算してよい。その差は、距離ベクトル304-2を単位として表されてよい。この計算の目的のために、対象302-1及び302-2の中心が、対象の位置として使用されてよい。ここに示すように、距離ベクトル304-2は、以前にエンコードされた画像106-1における、そのコヒーレントな領域の位置に戻ってこれを指し示す。例示の目的のために、以前にエンコードされた画像106-1における対象302-1の位置を、点線を使用して、画像106-2に示す。同様にして、距離ベクトル304-3が、そのシーケンスにおける画像106-3に対して計算されてよい。
ビデオシーケンス106が、移動可能な視野を有するビデオカメラにより撮像された場合、アナライザ102は、追加的に、又は、代替的に、ビデオカメラの動きに基づいて、ビデオシーケンス106におけるモーションを解析してよい。この目的のために、アナライザ102は、カメラの視野の動きに関する入力112をカメラから受け取ってよい。入力112は、例えば、カメラのパン及びチルトの動きに関係してよい。視野の動きは、ビデオシーケンス106の画像におけるグローバルなモーションを導く。アナライザ102は、入力112により表されるカメラの動きから、画像におけるグローバルなモーションを計算し、距離ベクトルを単位としてそれを表してよい。これにより、この場合では、アナライザ102は、画像全体を、ほぼ同じ量のモーションを同じ方向に有するコヒーレントな領域として特定してよい。
これを、図4にさらに示す。これは、ビデオシーケンス106の3つの連続する画像106-4、106-5、及び106-6を示す。この例では、カメラの視野が右方向にパンされていることが想定される。これは、画像106-4、106-5、及び106-6における、左へのグローバルなモーションを導く。画像のそれぞれに対して、画像全体は、したがって、2つの画像間を同じように動くコヒーレントな領域として見られてよい。アナライザ102は、そのコヒーレントな領域のグローバルなモーションを、距離ベクトル404-1、404-2、及び404-3を単位として表してよい。図3の例と同様に、距離ベクトル404-1、404-2、及び404-3は、以前にエンコードされた画像におけるコヒーレントな領域の位置と、現在の画像におけるその位置と、の間の差として計算されてよい。したがって、距離ベクトルは、以前にエンコードされた画像におけるコヒーレントな領域の位置に戻って、これを指し示す。
アナライザ102が、画像におけるコヒーレントな領域の1つ又はそれ以上と、それらに関連付けられた距離ベクトルと、を特定すると、アナライザ102はその情報を、エンコーダ104への入力108として提供してよい。
エンコーダ104は続いて、画像のエンコードに進んでよい。一般的に、エンコーダ104は、画像を、イントラコードされた画像、若しくは、時に知られているIフレームとして、又は、インターコードされた画像、若しくは、時に知られているP又はBフレームとして、エンコードしてよい。画像をイントラコード又はインターコードするかは、写真のグループ(group-of-picture又はGOP)構造により規定されてよい。これは、ビデオシーケンス106における、イントラコード及びインターコードされた画像の順序を規定する。この場合では、画像がインターコードされることが想定される。
エンコーダ104は、ブロック毎に画像をエンコードする。特に、画像は、8×8ピクセル、16×16ピクセル、32×32ピクセルのブロックなどの、特定のサイズのピクセルのブロックに分割され、順次エンコードされてよい。そのようなピクセルのブロックは、マクロブロック又はコーディングユニットとして当業者に知られている。エンコーダ104は、これらのピクセルのブロックを、所定の順序にてエンコードしてよい。所定の順序は、典型的には、ラスタースキャン方向に相当する。
ステップS104では、エンコーダ104は、したがって、エンコードする画像において、別のピクセルのブロックがあるか否かをチェックする。これがある場合、エンコーダ104は、処理される次のブロックに関して、ステップS106、S107、S108a又はS108b、S110、及びS112を実施する。そうでなければ、この方法は終了し、システム100は、ビデオシーケンス106における次の画像を解析してエンコードする。
画像をインターコードする場合、いくつかのブロックがイントラコードされてよく、一方、他がインターコードされる。具体的には、より詳細に後述するように、エンコーダ104は、ブロックのそれぞれに対して、それがイントラコードされるべきか、又は、インターコードされるべきかを決定する。その決定は、ブロックをエンコードする代償を最小限にするよう行われ、例えば、そのブロックをエンコードすることに必要なビット数にて表される。つまり、エンコーダ104は、ステップS106、S107、S108a又はS108b、及びS110にて、ピクセルのブロックをインターコードする代償を計算し、ステップS112にて、ピクセルのブロックをインターコードするか、又は、イントラコードするか、に関する決定を行う。
ステップS106にて、エンコーダ104は、ブロックマッチング手順を始める。これは、リファレンスフレームにおいて、「ベスト」マッチングのとれたピクセルのブロックを見いだすことを目的とする。リファレンスフレームは、典型的には、ビデオシーケンス106における、以前にエンコードされた画像の、エンコードされ、続いてデコードされたバージョンに相当する。具体的には、エンコーダ104は、ベストマッチとなる、リファレンスイメージにおけるピクセルのブロックを見いだすために、現在処理されている画像におけるピクセルのブロックを、リファレンスイメージにおける、複数の候補となるピクセルのブロックとマッチさせてよい。リファレンスフレームにおける候補となるピクセルのブロックは、リファレンスフレームにおける検索ウィンドウに含まれてよい。リファレンスフレームにおける候補となるピクセルのブロックのそれぞれに対して、エンコーダ104は、動きベクトル及び残り、すなわち、ブロック間のピクセル毎の差、を計算してよい。
2つのブロック間の良好なマッチをなすものが何であるかを評価するために、エンコーダ104は、典型的には、代償関数を使用する。代償関数を最小限にする、リファレンスイメージにおける、候補となるピクセルのブロックが、ベストマッチとして選択される。エンコーダ104は、候補となるピクセルのブロックの、動きベクトルをエンコードする代償と、残りをエンコードする代償と、の組み合わせである代償関数を使用してよい。この発明に関するコンセプトによると、変更した代償の計算及び通常の代償の計算と以下に呼ぶ、動きベクトルをエンコードする代償を計算する2つの異なるアプローチが、画像における異なるピクセルのブロックに使用される。
ステップS107では、エンコーダ104は、ステップS106にて見いだした動きベクトルをエンコードする代償を計算することに、変更した代償の計算又は通常の代償の計算を使用すべきかをチェックする。画像におけるピクセルのブロックの大半に対して、通常の代償の計算が適用される。しかし、コヒーレントな領域のそれぞれ内のピクセルのブロックの少なくとも1つに対して、変更した代償の計算が使用される。
このチェックを行うために、エンコーダ104は、ブロックが、通常の代償の計算又は変更した代償の計算にしたがうべきである場合のための、一式のルールを有してよい。これらのルールは、各種の実施形態のグループに対して異なってよい。これらのルールはまた、通常の代償の計算がどのように行われるかに関連してもよい。
第1の実施形態のグループでは、エンコーダ104は、ステップS107にて、現在処理されているブロックが、エンコードされるコヒーレントな領域内の最初のブロックであるか否かをチェックする。この原理を、図5に例示する。これは、エンコードされる画像506を模式的に示す。画像506は、複数のピクセルのブロック501を含む。さらに、影付きエリアにより示すように、その画像における、コヒーレントな領域502がある。ブロック501のいくつかは、コヒーレントな領域502の外側にある。一方、他は、コヒーレントな領域502内にある。一般的に、ブロックにおけるピクセルのすべてが、コヒーレントな領域502内にある場合は、ピクセルのブロックは、コヒーレントな領域502内にあるとされてよい。代替的に、ブロックにおけるピクセルの大半が、コヒーレントな領域502内にある場合は、ピクセルのブロックは、コヒーレントな領域502内にあるとされてよい。画像506のピクセルのブロック501は、矢印504が示すような所定の順序にてエンコードされてよい。この場合では、ブロック501は、ラスタースキャン方向にエンコードされる。ブロックをこの順序にてエンコードする際には、ピクセルのブロック501aは、エンコードされるコヒーレントな領域502内の最初のブロックとなる。したがって、この例では、エンコーダ104は、ピクセルのブロック501aに対しては、変更した代償の計算を使用する。一方、他のピクセルのブロックのすべてに対しては、通常の代償の計算を使用する。この例では、コヒーレントな領域を1つのみ示す。しかし、画像内にあるコヒーレントな領域が、1つを超える場合、エンコーダ104は、それら領域のそれぞれ内の最初のエンコードされたブロックには、変更した代償の計算を適用し、その画像における他のピクセルのブロックのすべてには、通常の代償の計算を適用する、ということが理解されるであろう。
第2の実施形態のグループでは、エンコーダ104は、ステップS107にて、現在処理されているブロックが、コヒーレントな領域内にあるか否か、そして、そのコヒーレントな領域内に、いずれの以前にエンコードされた隣接するピクセルのブロックがないかをチェックする。一般的に、ピクセルのブロックは、画像において、隣接するピクセルのブロックを最多で9つ有してよい。それらブロックのいくつかは、コヒーレントな領域内にあってよく、いくつかは、コヒーレントな領域の外側にあってよい。さらに、隣接するブロックのいくつかは、すでにエンコードされていてよい。一方、他は、これからエンコードされる。
図5に戻ってこれを参照する。ピクセルのブロック501aは、隣接するピクセルのブロックを9つ有する。これらの内の4つ(上の3つと左の1つ)は、ブロック501aの前にエンコードされる。しかし、これらの以前にエンコードされたブロックはどれも、コヒーレントな領域内にない。したがって、ピクセルのブロック501aは、領域502内にて、いずれの以前にエンコードされた隣接するピクセルのブロックを有しない。エンコーダ104は、したがって、ピクセルのブロック501aに、変更した代償の計算を適用する。しかし、ブロック501bについては、シチュエーションが異なる。ブロック501bもまた、以前にエンコードされた隣接するピクセルのブロック(上の3つと左の1つ)を4つ有する。これらの内の1つ、すなわちブロック501aは、コヒーレントな領域502内にある。したがって、エンコーダ104は、ブロック501bには、変更した代償の計算を適用しない。画像506におけるブロックのそれぞれに対して、この実践が実施される場合、この場合では、変更した代償の計算のみが、ピクセルのブロック501aに適用されることもまた明らかとなる。
しかし、コヒーレントな領域の形状によっては、第1及び第2の実施形態のグループは、常に同じ結果となるものではない。そのような一例を、図6に示す。これは、複数のピクセルのブロック601と、コヒーレントな領域602と、を有する画像606を示す。この場合では、第1の実施形態のグループでは、ピクセルのブロック601aにのみ、変更した代償の計算が適用される。なぜならこれは、コヒーレントな領域602内の、最初のエンコードされたブロックだからである。しかし、第2の実施形態のグループではまた、ブロック601aに加えて、ピクセルのブロック601bにも、変更した代償の計算が適用される。なぜならこれは、コヒーレントな領域602内に、以前にエンコードされた隣接するブロックを有しないからである。第2の実施形態のグループは、したがって、コヒーレントな領域の形状に関して言えば、よりフレキシブルである。
第3の実施形態のグループでは、エンコーダ104は、ステップS107にて、現在処理されているブロックがコヒーレントな領域内にあるか否か、そして、そのコヒーレントな領域内にある、以前にエンコードされた隣接するピクセルのブロックが、2つより少ないか否か、をチェックする。このルールを満たすブロックに対して、エンコーダ104は、変更した代償の計算を適用する。一方、残りのブロックには、通常の代償の計算が適用される。このルールが、図5の例に適用される場合、ブロック501a、501b、及び501cはすべて、このルールを満たすということが明らかとなる。なぜならこれらは、その領域内に、以前にエンコードされた隣接するブロックを持たないか、持ったとしても1つのみであるからである。図6の例では、ブロック601a及び601bがこのルールを満たし、したがって、変更した代償の計算が適用される。
第4の実施形態のグループでは、エンコーダ104は、ステップS107にて、現在処理されているブロックが、コヒーレントな領域502内にあるか否かをチェックする。このルールを満たすブロックに対して、エンコーダ104は、変更した代償の計算を適用する。コヒーレントな領域の外側のブロックに対して、エンコーダ104は、通常の代償の計算を適用する。第4の実施形態のグループでは、エンコーダ104は、したがって、コヒーレントな領域502内のブロックのすべてに、変更した代償の計算を適用する。
後述するように、これらの異なる実施形態のグループは、異なるシチュエーションにおいて好適である。例えば、第2の実施形態のグループは、典型的には、エンコーダ104が、ピクセルのブロックを、H.265/HEVCコーディングを使用してインターコードするよう構成されている場合に適用される。なぜなら、H.265/HEVCコーディングは、典型的には、その、以前にエンコードされた隣接するブロックのいずれの1つの動きベクトルに関して、ブロックの動きベクトルをコードするからである。したがって、領域におけるブロックのそれぞれが、変更した代償の計算が適用された、その領域における、以前にエンコードされた隣接するブロックを1つ有していれば十分である。同様に、第3の実施形態のグループは、典型的には、エンコーダ104が、ピクセルのブロックを、H.264/MPEG-4 AVCコーディングを使用してインターコードするよう構成されている場合に適用される。なぜなら、H.264/MPEG-4 AVCコーディングは、典型的には、その、以前にエンコードされた隣接するブロックの内の3つの動きベクトルのメジアンに関して、動きベクトルをコードするからである。したがって、領域におけるブロックのそれぞれが、変更した代償の計算が適用された、その領域における、以前にエンコードされた隣接するブロックを2つ有していれば十分である。第4の実施形態のグループは、これが、エンコーダ104により使用されるエンコーディング標準に関わらずに適用されてよい、という点において好適である。これは、変更した代償の計算が適用されるブロックの選択は、エンコーダ104がどのようにして、以前にエンコードされた隣接するブロックの動きベクトルを選択するか、について関連しないからである。第1の実施形態のグループは、どのブロックが、変更した代償の計算を使用して処理されるべきかを決定することに関して言えば、第2の実施形態のグループの簡易版として見られてよい。
エンコーダ104が、ステップS107にて、変更した代償の計算を、現在処理されているピクセルのブロックに適用しない、とした場合には、エンコーダ104は、ステップS108aに進み、リファレンスイメージにおける、候補となるピクセルのブロックのそれぞれの動きベクトルをエンコードする代償を、通常の方法にて計算する。より詳細には、動きベクトルをエンコードする代償は、その画像における、隣接するピクセルのブロックの動きベクトルに対する、動きベクトルをエンコードする代償として計算される。具体的には、隣接するピクセルのブロックは、以前にエンコードされた隣接するピクセルのブロックであってよい。
この手順を、図7にさらに示す。これは、図5の例から続くものである。ステップS107では、エンコーダ104は、ピクセルのブロック501dの、候補となる動きベクトル708aに、通常の代償の計算を適用すべきであることを、(3つの実施形態のグループのそれぞれにおいて)決定した。代償の計算を行うために、動きベクトル708aは、以前にエンコードされた隣接するピクセルのブロックの動きベクトル710と比較され、それら2つのベクトル間の差をエンコードする代償が計算される。例えば、差をエンコードする代償は、差の長さに等しく(又は、比例して)設定されてよく、この例では、1つのブロックの長さに等しく設定されてよい。これにより、エンコーダ104は、ブロック501dの候補となる動きベクトル708aをエンコードする代償は1に等しい、という結論に至ってよい。候補となる動きベクトル708b又は708cに対して、動きベクトルをエンコードする代償は、その代わりに、それぞれ、2及び3に等しいものであった(マンハッタン(Manhattan)タイプの距離計算が使用されることを想定して)。したがって、通常の代償の計算が適用される場合、エンコーダ104は、隣接するブロックのそれらに類似する動きベクトルをエンコードする代償が低い、ということを見いだす。
画像における、隣接するピクセルのブロックの動きベクトルをどのように選択するかは、各種の実施形態のグループにおいて異なる。
第2の実施形態のグループでは、以前にエンコードされた隣接するピクセルのブロックのいずれの1つの動きベクトルが選択されてよい。特に、現在処理されているピクセルのブロックの動きベクトルに最も類似する、隣接する動きベクトルが選択されてよい。このアプローチは、典型的には、エンコーダ104が、H.265/HEVC標準にしたがってインターコーディングを行うよう構成される場合に使用される。
第3の実施形態のグループでは、隣接するピクセルのブロックの動きベクトルは、その代わりに、多数の、以前にエンコードされた隣接するピクセルのブロックの動きベクトルのメジアンに相当する。動きベクトルのメジアンは、動きベクトルにおける要素のそれぞれに対するメジアンを計算することにより計算される。メジアンの計算を簡素にするために、奇数の、以前にエンコードされた隣接するブロックの動きベクトルのメジアンが選ばれてよい。典型的には、この奇数は、3に等しくともよい。例えば、ブロックがラスタースキャン方向にエンコードされる場合、上、右上、及び左に隣接するブロックの動きベクトルのメジアンが使用されてよい。隣接するピクセルのブロックの動きベクトルを選択するこの方法は、典型的には、エンコーダ104が、H.264/MPEG-4 AVC標準にしたがってインターコーディングを行うよう構成される場合に使用される。
第1の実施形態のグループでは、以前にエンコードされた隣接するブロックの動きベクトルは、第2及び第3の実施形態のグループのいずれの1つの様式にて選択されてよい。好ましくは、しかし、これは、第2の実施形態のグループでのように選択される。
第4の実施形態のグループは、以前にエンコードされた隣接するブロックの動きベクトルがどのように選択されるかに関して、フレキシブルである。例えば、以前にエンコードされた隣接するピクセルのブロックの動きベクトルは、第2の実施形態のグループでのように(H.265/HEVCエンコーディングでのように)、又は、第3の実施形態のグループでのように(H.264でのように)、若しくは、使用されるエンコーディング標準により規定されるように、選択されてよい。
エンコーダ104が、その代わりに、ステップS107にて、変更した代償の計算を、現在処理されているピクセルのブロックに適用する、とする場合には、エンコーダ104は、ステップS108bに進み、ステップS106にて見いだした、候補となる動きベクトルのそれぞれをエンコードする代償を、変更された様式にて計算する。より詳細には、以前にエンコードされた隣接するブロックの動きベクトルに対して、ブロックの動きベクトルをエンコードする代償を計算する代わりに、コヒーレントな領域の距離ベクトルに対して、代償が評価される。
これを、図8にさらに示す。これは、図5及び図7の例から続くものである。ステップS107にて、エンコーダ104は、ブロック501aの、候補となる動きベクトル808に対して、変更した代償の計算を使用することを、(4つの実施形態のグループのそれぞれにおいて)決定した。代償の計算を行うために、エンコーダ104は、ステップS106にて、ブロック510aに対して計算された、候補となる動きベクトル808を、コヒーレントな領域502の距離ベクトル504と比較し、これら2つのベクトル間の差をエンコードする代償を計算する。通常の代償の計算について説明したものと同様に、差をエンコードする代償は、差の長さに等しく(又は、比例して)設定されてよく、この例では、1つのブロックの長さに等しく設定されてよい。したがって、変更した代償の計算が適用される場合、エンコーダ104は、距離ベクトル504に類似する動きベクトルをエンコードする代償が低い、ということを見いだす。
図8の例を一歩さらに進むと、ブロック501bに対する代償の計算がどのように行われるか、が考慮され得る。第1及び第2の実施形態のグループでは、エンコーダ104は、ブロック501bに対して、通常の代償の計算を使用する。エンコーダ104は、したがって、以前にエンコードされた隣接するブロックの動きベクトルに対する、ブロック501bの動きベクトルをエンコードする代償を計算する。具体的には、エンコーダ104は、ブロック501aの動きベクトルに対する、ブロック501bの動きベクトルに対する代償を計算してよい。エンコーダ104は、ブロック501aに対して、変更した代償の計算を使用したため、エンコーダ104は、距離ベクトル504に類似する動きベクトルを使用して、ブロック501aをエンコードした可能性が高い。したがって、この場合でも、通常の代償の計算により、距離ベクトル504に類似する動きベクトルに対して、低い代償がアサインされる。そのコヒーレントな領域における後続のブロックについても、同様である。ブロック501bに対して、変更した代償の計算及び通常の代償の計算により、したがって、ブロック501bに対しても、本質的に同じ結果となる。これは、ブロック501bと、そのコヒーレントな領域内の後続のブロックと、に、変更した代償の計算を適用する必要がない理由を説明する。
これは、第3の実施形態のグループでは異なる。その場合には、エンコーダ104は、ブロック501bに対しても、変更した代償の計算を適用する。したがって、動きベクトルに対する代償は、ブロック501bに対する距離ベクトル504に対して計算される。これにより、距離ベクトル504に類似する動きベクトルに対して、低い代償が計算される。この場合では、通常の代償の計算は、以前にエンコードされた隣接するブロックの動きベクトルの選択が異なることにより、異なる結果をもたらす。より具体的には、第3の実施形態のグループでは、エンコーダ104は、典型的には、現在のブロックの動きベクトルを、3つの、以前にエンコードされた隣接するブロックの動きベクトルのメジアンと比較する。例えば、メジアンは、ブロック501bの、上、右上、及び左に隣接するブロックの動きベクトルから計算されてよい。これらのブロックの1つのみ、すなわち、ブロック501a、が、距離ベクトル504に類似する動きベクトルを有するため、結果としてのメジアンの動きベクトルは、距離ベクトル504とはまったく異なる可能性が最も高い。結果として、通常の代償の計算により、距離ベクトル504に類似する動きベクトルをエンコードする代償が高くなる。
さらに、第4の実施形態のグループでは、エンコーダ104は、コヒーレントな領域502内のブロックのすべてに、変更した代償の計算を適用する。これにより、コヒーレントな領域502における、ピクセルのブロックのそれぞれに対する距離ベクトル504に類似する動きベクトルに対して、低い代償が計算される。
ステップS110にて、エンコーダ104は、現在処理されているピクセルのブロックと、そのリファレンスイメージにおける、候補となるピクセルのブロックのそれぞれと、の間の残りをエンコードする代償を計算する。例えば、エンコーダ104は、残りのサイズを定量化する測定値を計算してよい。例えば、絶対差の合計、差を二乗したものの合計、又は、いずれの同様の測定値を使用して、残りを定量化してよい。
ステップS11にて、エンコーダ104は続いて、現在処理されているピクセルのブロックに対してマッチングのとれたブロックを見いだすことにより、ブロックマッチング手順を完了してよい。より詳細には、マッチングのとれたピクセルのブロックは、動きベクトル及び残りをエンコードする、組み合わせた代償を最小限にする、リファレンスイメージにおける、候補となるピクセルのブロックである。例えば、エンコーダ104は、動きベクトルをエンコードする代償と、残りをエンコードする代償と、の加重した合計を形成することにより、代償を組み合わせてよい。合計の加重値は、予め定められてよい。上記の実施形態のグループのいずれを使用することにより、コヒーレントな領域502内のブロックに対してマッチングのとれたピクセルのブロックが、そのコヒーレントな領域の距離ベクトル504に類似する動きベクトルに関連付けられる可能性が高くなる。
ステップS112にて、エンコーダ104はさらに進み、現在処理されているピクセルのブロックをインターコードするか、又は、イントラコードするか、を判定する。エンコーダ104は、この決定を、ピクセルのブロックをインターコード又はイントラコードする代償が低いか、に基づいて行う。インターコードする代償が低い場合、エンコーダ104はそのブロックをインターコードし、そうでなければ、そのブロックはイントラコードされる。ブロックをインターコードする代償は、ステップS111にて判定された、マッチングのとれたピクセルのブロックの動きベクトル及び残りをエンコードする、組み合わせた代償である。エンコーダ104は、ブロックをイントラコードする代償をさらに計算してよい。イントラコードする代償は、履歴データから判定されるような、ブロックをイントラコードする平均代償に相当してよい、予め定められた値を単位として与えられてよい。
エンコーダ104が、ブロックをインターコードするという決定に至った場合、エンコーダ104はさらに進み、マッチングのとれたピクセルのブロックに相当する動きベクトル及び残りをエンコードする。動きベクトルをエンコードする際には、エンコーダ104は、それを、その画像における、隣接するピクセルのブロックの動きベクトルに対してエンコードする。特に、これは、ブロックの動きベクトルに、通常の代償の計算(ステップS108a)又は変更した代償の計算(S108b)が適用されたか否かに関わらない。画像における、隣接するピクセルのブロックの動きベクトルが、異なる実施形態のグループに対してどのように計算されるか、に関して、上記が参照される。
図7及び図8の例に戻る。エンコーダ104が、ブロック501dからブロック501aをエンコードすることから進むと、その画像におけるモーションの量に大きな変化があることに留意されたい。エンコーダ104が、ブロック501aを処理する際に、通常の代償の計算を適用していた場合、候補となる動きベクトル108をエンコードする代償が、非常に高くなる、ということを見いだす可能性が高い。結果として、エンコーダ104は、候補となる動きベクトル108を使用してブロック501aをインターコードすることをしないであろう。しかし、上記の実施形態のいずれを使用して、変更した代償の計算がその代わりに、ブロック501aを処理する際に使用される。結果として、エンコーダ104は、その代わりに、候補となる動きベクトル108をエンコードする代償が低い、ということを見いだす。なぜなら、それが、距離ベクトル504に近いからである。エンコーダ104は、したがって、ブロック501aを、距離ベクトルに類似する、候補となる動きベクトルを使用してインターコードするようになる。この決定は、エンコーダ104に、ブロック501aに対して、追加ビットの代償を担わせる。なぜなら、実際には、動きベクトル108をエンコードする代償が大きいためである。しかし、この追加ビットの代償を担うことには価値があってよい。なぜなら、エンコーダ104は、コヒーレントな領域502内の後続のブロックの少なくともいくつかをエンコードする際に、ビットを節約するからである。これは、動きベクトルをエンコードすることが、前のブロックの動きベクトルに関して行われるからである。図7及び図8の例では、ビットの節約はすでに、第2の実施形態のグループでの次のブロック501bにて始まっている。一方、第3の実施形態のグループでは、追加ビットの代償は、コヒーレントな領域502における最初の行にあるブロックのそれぞれに対して発生しており、ビットの節約は、コヒーレントな領域502における次の行にあるブロックを処理する際に始まる。
上述するように、ステップS106にて始まるブロックマッチングでは、リファレンスイメージにおける、マッチングのとれたブロックを検索する際に、動きベクトル検索ウィンドウが使用されてよい。現在処理されているピクセルのブロックの位置に関する検索ウィンドウのポジショニングは、動きベクトルをエンコードする代償の計算を実施するために使用されてよい。この実施は、上記の第1、第2、第3、及び第4の実施形態のグループのいずれか1つに適用されてよい。このことについて、図9のフローチャートを参照してさらに説明する。
図9のアプローチを使用するため、変更した代償の計算が、現在処理されているピクセルのブロックに使用されるべきか否かをチェックするステップS107が、ステップS106にて始まるブロックマッチングを実施する前に行われる。具体的には、エンコーダ104は、ステップS107でのチェックの結果を使用して、動きベクトル検索ウィンドウを、現在処理されているブロックの位置に関してどこに配置するかを決定する。ステップS107でのチェックを、第1、第2、第3、及び第4の実施形態のグループに対してどのように行うかについては、上述されている。
通常の代償の計算が使用されるべきブロックに対して、エンコーダ104は、ステップS106aにて、以前にエンコードされた隣接するピクセルのブロックの動きベクトルの周囲にその中心が置かれている、リファレンスイメージにおける検索ウィンドウを使用して、ブロックマッチングを行う。特に、エンコーダ104は、現在処理されている画像におけるピクセルのブロックを、そのリファレンスイメージにおける検索ウィンドウ内の、候補となるピクセルのブロックとマッチさせてよい。これを、図10にさらに示す。これは、ブロック501dに関してブロックマッチングを行う際に、エンコーダ104が使用する検索ウィンドウ1000を示す。以前にエンコードされた隣接するブロックの動きベクトル710は、検索ウィンドウの中心を、ブロック501dの位置に関連付ける。以前にエンコードされた隣接するピクセルのブロックの動きベクトルを、第1、第2、第3、及び第4の実施形態のグループに対してどのように選択するか、については上述されている。
変更した代償の計算が使用されるべきブロックに対して、エンコーダ104は、その代わりに、距離ベクトルの周囲にその中心が置かれている、リファレンスイメージにおける検索ウィンドウを使用して、ブロックマッチングを行う。これを、図11にさらに示す。これは、ブロック501aに関してブロックマッチングを行う際に、エンコーダ104が使用する検索ウィンドウ1100を示す。距離ベクトル504は、検索ウィンドウの中心を、ブロック501dの位置に関連付ける。そのような検索ウィンドウを使用することにより、距離ベクトルに類似する動きベクトルを、エンコーダ104が見いだす機会が増す。
エンコーダ104は続いて進み、ステップS108にて、ステップS106a及びS106bのいずれかにて見いだされた、候補となる動きベクトルの、動きベクトルをエンコードする代償を計算する。具体的には、エンコーダ104は、検索ウィンドウの中心がその周囲に置かれているベクトルに対して、候補となる動きベクトルのそれぞれをエンコードする代償を計算する。したがって、通常の代償の計算が適用されるべきブロックに対して、エンコーダ104は、隣接するピクセルのブロックの動きベクトルに対する代償を計算する(図2のステップS108aを参照されたい)。変更した代償の計算が適用されるべきブロックに対して、エンコーダ104は、その代わりに、距離ベクトルに対する代償を計算する(図2のステップS108bを参照されたい)。
上記から理解されるように、アナライザ102及びエンコーダ104は、したがって、ビデオシーケンスの画像をエンコードする方法を実施するよう構成されている。アナライザ102及びエンコーダ104はそれぞれ、ハードウェアにて、ソフトウェアにて、又は、それらの組み合わせにて実装されてよい。
ハードウェアの実装では、アナライザ102及びエンコーダ104のそれぞれは、その機能を提供する専門の、具体的に設計された回路に相当してよい。この回路は、1つ又はそれ以上の特定用途向け集積回路、若しくは、1つ又はそれ以上のフィールドプログラマブルゲートアレイなどの、1つ又はそれ以上の集積回路の形態であってよい。例示を目的として、エンコーダ104は、したがって、使用時に、動きベクトルをエンコードする代償を計算する回路を含んでよい。
ソフトウェアの実装では、回路は、その代わりに、不揮発性メモリなどの、(非一時的)コンピュータ可読媒体上に保存されたコンピュータコード命令と関連して、アナライザ102及びエンコーダ104に、ここに開示するいずれの方法を実施させるマイクロプロセッサなどの、プロセッサの形態であってよい。不揮発性メモリの例として、読み取り専用メモリ、フラッシュメモリ、強誘電性ランダムアクセスメモリ(random access memory又はRAM)、磁気コンピュータストレージデバイス、光学ディスク、などが挙げられる。ソフトウェアの場合では、アナライザ102及びエンコーダ104のそれぞれは、したがって、プロセッサにより実行されると、システム100に、アナライザ102及びエンコーダ104のそれぞれの機能を実施させる、コンピュータ可読媒体上に保存されたコンピュータコード命令の部位に相当してよい。
ハードウェアの実装及びソフトウェアの実装の組み合わせもまた可能であるということが理解されるであろう。これは、アナライザ102及び104のいくつかの機能がハードウェアにて実装され、その他がソフトウェアにて実装されるということを意味する。
当業者であれば、上記の実施形態を多くの方法にて変更でき、上記の実施形態に示すような、本発明の利点を依然として使用できることが理解されるであろう。例えば、上記の実施形態が、画像における1つのコヒーレントな領域を主に示す一方で、この方法は、画像において、コヒーレントな領域が1つを超える場合にも、自然に拡張する。さらに、H.264及びH.265標準を使用して、コーディングに適用可能な、隣接するピクセルのブロックの動きベクトルを選択する、2つの異なる方法をそれぞれ説明した。しかし、他の最新のコーデック標準は、どのピクセルのブロックの動きベクトルがエンコードされるかに関して、動きベクトルの候補を選択する他の方法を使用し得る、ということが理解される。これは、特定の隣接するピクセルのブロックの動きベクトルを指し示すことにより、又は、絶対動きベクトルを計算することにより、同じピクセルのブロックにて、リファレンスイメージにおける動きベクトルに基づいて、動きベクトルの候補を選択することを含む。例示したそれら以外の最新のコーデック標準が使用される場合、動きベクトルの候補を選択するアプローチは、使用されるコーデック標準に規定されるように実施される、ということが理解される。本発明は従って、ここに示す実施形態に限定されるべきではなく、特許請求の範囲によってのみ定義されるべきである。更に、当業者が理解するように、ここに示す実施形態は組み合わせることも可能である。

Claims (15)

  1. ビデオシーケンスの画像(506)をエンコードする方法であって、
    前記ビデオシーケンス(106)におけるモーションを解析(S102)し、前記ビデオシーケンス(106)における、以前にエンコードされた画像から、閾値より長い距離ベクトル(504)を伴って動いた前記画像(506)における、コヒーレントな領域(502)を特定することと、
    前記画像におけるピクセルのブロックを、ピクセルのブロック(501a、501d)のそれぞれに対してエンコードすることであって、
    ブロックマッチング(S106、S111、S106a、S106b)を行い、リファレンスイメージにおける、マッチングのとれたピクセルのブロックを指し示す動きベクトル(708a、808)を見いだし、前記ピクセルのブロック(501a、501d)と前記マッチングのとれたピクセルのブロックとの間の残りを計算することと、
    前記動きベクトル(708a、808)をエンコードする代償(S108a、S10
    8b、S108)と、前記残りをエンコードする代償(S110)と、を計算することであって、
    前記コヒーレントな領域(502)における、前記ピクセルのブロックの少なくとも1つ(501a、501b、501c)に対して、前記動きベクトル(808)をエンコードする前記代償は、前記画像における、隣接するピクセルのブロック(501d)の動きベクトル(708a)に対する前記動きベクトルをエンコードする代償として計算される代わりに、前記コヒーレントな領域(502)の前記距離ベクトル(504)に対する前記動きベクトル(808)をエンコードする代償として計算される、代償を計算することと、
    前記動きベクトルをエンコードする前記代償と、前記残りをエンコードする前記代償と、を組み合わせた場合に、その組み合わせた代償が、前記ピクセルのブロックをイントラコードする代償未満の場合は、前記ピクセルのブロック(501a、501d)を、インターコードされたブロックとしてエンコード(S112)し、前記動きベクトル(808)を前記画像における隣接するピクセルのブロック(501d)の動きベクトル(708a)に対してエンコードすることと、により、ピクセルのブロックをエンコードすることと、
    を含む方法。
  2. 前記コヒーレントな領域(502)における、前記ピクセルのブロックの少なくとも1つ(501a、501b、501c)に対して、前記動きベクトル(808)をエンコードする前記代償を計算することにおいて、
    前記コヒーレントな領域(502)における、前記ピクセルのブロック(501a、501b、501c)は、所定の順序(504)にてエンコードされ、
    前記コヒーレントな領域における、前記ピクセルのブロックの少なくとも1つ(501a、501b、501c)は、前記所定の順序にしたがって最初にエンコードされた、前記コヒーレントな領域における、前記ピクセルのブロック(501a)を含む、
    請求項1に記載の方法。
  3. 前記コヒーレントな領域(502)における、前記ピクセルのブロックの少なくとも1つ(501a、501b、501c)に対して、前記動きベクトル(808)をエンコードする前記代償を計算することにおいて、
    前記コヒーレントな領域における、前記ピクセルのブロックの少なくとも1つ(501a、501b、501c)は、前記所定の順序(504)にしたがって最初にエンコードされた、前記コヒーレントな領域(502)における、前記ピクセルのブロック(501a)のみを含む、請求項2に記載の方法。
  4. 前記コヒーレントな領域(502)における、前記ピクセルのブロックの少なくとも1つ(501a、501b、501c)に対して、前記動きベクトル(808)をエンコードする前記代償を計算することにおいて、
    前記コヒーレントな領域(502)における、前記ピクセルのブロックの少なくとも1つ(501a、501b、501c)は、前記領域内の、以前にエンコードされた隣接するピクセルのブロックを所定の数未満だけ有する、前記コヒーレントな領域における、前記ピクセルのブロック(501a、501b、501c)のすべてを含む、請求項1から請求項3のいずれか一項に記載の方法。
  5. 前記コヒーレントな領域(502)における、前記ピクセルのブロックの少なくとも1つ(501a、501b、501c)に対して、前記動きベクトル(808)をエンコードする前記代償を計算することにおいて、
    前記コヒーレントな領域(502)における、前記ピクセルのブロックの少なくとも1つは、前記領域内の、以前にエンコードされた隣接するピクセルのブロックを所定の数未満だけ有する、前記コヒーレントな領域における、前記ピクセルのブロック(501a、501b、501c)のみを含む、請求項4に記載の方法。
  6. 前記コヒーレントな領域(502)における、前記ピクセルのブロックの少なくとも1つ(501a、501b、501c)に対して、前記動きベクトル(808)をエンコードする前記代償を計算することにおいて、
    前記コヒーレントな領域(502)における、前記ピクセルのブロックの少なくとも1つは、前記コヒーレントな領域(502)における、前記ピクセルのブロックのすべてを含む、請求項1、請求項2、又は請求項4のいずれか一項に記載の方法。
  7. 前記画像(506)における、隣接するピクセルのブロックの動きベクトル(708a)は、前記画像(506)における、以前にエンコードされた隣接するピクセルのブロックの動きベクトルのメジアンに相当する、請求項1から請求項6のいずれか一項に記載の方法。
  8. 前記ブロックマッチング(S106)を行うことは、動きベクトル検索ウィンドウ(1000、1100)を使用し、前記リファレンスイメージにおける、マッチングのとれたピクセルのブロックを指し示す前記動きベクトルを見いだすこと含み、
    前記コヒーレントな領域(502)における、前記ピクセルのブロックの少なくとも1つ(501a、501b、501c)に対して、前記検索ウィンドウ(1100)は、隣接するピクセルのブロックの前記動きベクトル(708a)の周囲にその中心が置かれている代わりに、前記コヒーレントな領域の距離ベクトル(504)の周囲にその中心が置かれている、
    請求項1から請求項7のいずれか一項に記載の方法。
  9. 前記ピクセルのブロック(501a、501d)の前記動きベクトル(708a、808)をエンコードする前記代償は、前記動きベクトル検索ウィンドウ(1000、1100)の中心がその周囲に置かれているベクトル(710、504)に対する前記動きベクトル(708a、808)をエンコードする代償として計算される、請求項8に記載の方法。
  10. 前記ビデオシーケンス(106)は、移動可能な視野を有するカメラにより撮像され、
    前記ビデオシーケンス(106)におけるモーションを前記解析(S102)することは、前記視野の動きに関わる前記カメラからの入力(112)に基づく、
    請求項1から請求項9のいずれか一項に記載の方法。
  11. 前記ビデオシーケンスにおけるモーションを前記解析(S102)することは、対象検出アルゴリズムを使用して、前記ビデオシーケンス(106)における対象及びそれらのモーションを検出することを含む、請求項1から請求項9のいずれか一項に記載の方法。
  12. 前記画像(506)における、前記コヒーレントな領域(502)のサイズは、前記コヒーレントな領域(502)の前記距離ベクトル(504)の長さに依存する閾値より大きい、請求項1から請求項11のいずれか一項に記載の方法。
  13. 前記ビデオシーケンス(106)におけるモーションを解析し、前記ビデオシーケンスにおける、以前にエンコードされた画像から、閾値より長い第2の距離ベクトルを伴って動いた前記画像における、第2のコヒーレントな領域を特定することをさらに含み、
    前記第2のコヒーレントな領域における、ピクセルのブロックの少なくとも1つに対して、前記動きベクトルをエンコードする前記代償は、前記画像における、隣接するピクセルのブロックの動きベクトルに対する前記動きベクトルをエンコードする代償として計算される代わりに、前記第2のコヒーレントな領域の前記第2の距離ベクトルに対する前記動きベクトルをエンコードする代償として計算される、
    請求項1から請求項12のいずれか一項に記載の方法。
  14. ビデオシーケンスの(106)画像(506)をエンコードするシステム(100)であって、
    前記ビデオシーケンス(106)におけるモーションを解析し、前記ビデオシーケンス(106)における、以前にエンコードされた画像から、閾値より長い距離ベクトル(504)を伴って動いた前記画像(506)における、コヒーレントな領域(502)を特定するよう構成されているアナライザ(102)と、
    前記画像におけるピクセルのブロックを、ピクセルのブロックのそれぞれに対してエンコードするよう構成されているエンコーダ(104)であって、
    ブロックマッチングを行い、リファレンスイメージにおける、マッチングのとれたピクセルのブロックを指し示す動きベクトル(708a、808)を見いだし、前記ピクセルのブロック(501a、501d)と前記マッチングのとれたピクセルのブロックとの間の残りを計算することと、
    前記動きベクトル(708a、808)をエンコードする代償と、前記残りをエンコードする代償と、を計算することであって、
    前記コヒーレントな領域(502)における、前記ピクセルのブロックの少なくとも1つ(501a、501b、501c)に対して、前記動きベクトル(808)をエンコードする前記代償は、前記画像における、隣接するピクセルのブロックの動きベクトル(708a)に対する前記動きベクトルをエンコードする代償として計算される代わりに、前記コヒーレントな領域の前記距離ベクトル(504)に対する前記動きベクトルをエンコードする代償として計算される、代償を計算することと、
    前記動きベクトル(708a、808)をエンコードする前記代償と、前記残りをエンコードする前記代償と、を合わせた場合に、その合わせた代償が、前記ピクセルのブロック(501a、501d)をイントラコードする代償未満の場合は、前記ピクセルのブロック(501a、501d)を、インターコードされたブロックとしてエンコードし、前記動きベクトル(808)を前記画像における隣接するピクセルのブロック(501d)の動きベクトル(708a)に対してエンコードすることと、により、ピクセルのブロックをエンコードするよう構成されているエンコーダ(104)と、
    を含む、システム(100)。
  15. プロセッサにより実行されると、前記プロセッサに、請求項1から請求項13のいずれか一項に記載の方法を実施させるコンピュータコード命令を保存している、非一時的コンピュータ可読媒体。
JP2020196810A 2019-12-03 2020-11-27 ビデオシーケンスの画像をエンコードする方法及びシステム Active JP7229982B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP19213109.2A EP3833028B1 (en) 2019-12-03 2019-12-03 Method and system for calculating a cost of encoding a motion vector
EP19213109 2019-12-03

Publications (2)

Publication Number Publication Date
JP2021103876A JP2021103876A (ja) 2021-07-15
JP7229982B2 true JP7229982B2 (ja) 2023-02-28

Family

ID=68766575

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020196810A Active JP7229982B2 (ja) 2019-12-03 2020-11-27 ビデオシーケンスの画像をエンコードする方法及びシステム

Country Status (6)

Country Link
US (1) US11303903B2 (ja)
EP (1) EP3833028B1 (ja)
JP (1) JP7229982B2 (ja)
KR (1) KR102446097B1 (ja)
CN (1) CN112911293B (ja)
TW (1) TWI801764B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117939163B (zh) * 2024-03-22 2024-07-19 广东工业大学 一种基于双流特征提取的压缩感知视频重构方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007036889A (ja) 2005-07-28 2007-02-08 Sanyo Electric Co Ltd 符号化方法
JP2010515398A (ja) 2007-01-03 2010-05-06 サムスン エレクトロニクス カンパニー リミテッド 全域動きベクトルを使用して動きベクトルを推定するための方法、装置、エンコーダ、デコーダ及びデコーディング方法
JP2010183180A (ja) 2009-02-03 2010-08-19 Sanyo Electric Co Ltd 画像処理装置、およびそれを搭載した撮像装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05304662A (ja) * 1992-04-24 1993-11-16 Seiko Epson Corp 画像符号化伝送装置
US7321626B2 (en) * 2002-03-08 2008-01-22 Sharp Laboratories Of America, Inc. System and method for predictive motion estimation using a global motion predictor
JP4047879B2 (ja) * 2005-08-23 2008-02-13 松下電器産業株式会社 動きベクトル検出装置および動きベクトル検出方法
US8107748B2 (en) 2005-09-16 2012-01-31 Sony Corporation Adaptive motion search range
EP2403247A1 (en) * 2010-06-30 2012-01-04 British Telecommunications public limited company Transmission of visual tag motions in a video signal
JP6019797B2 (ja) * 2012-06-22 2016-11-02 富士通株式会社 動画像符号化装置、動画像符号化方法、及びプログラム
US9621917B2 (en) * 2014-03-10 2017-04-11 Euclid Discoveries, Llc Continuous block tracking for temporal prediction in video encoding
US10123036B2 (en) 2014-06-27 2018-11-06 Microsoft Technology Licensing, Llc Motion vector selection for video encoding
WO2017131908A1 (en) * 2016-01-29 2017-08-03 Google Inc. Dynamic reference motion vector coding mode
EP3220642B1 (en) * 2016-03-15 2018-03-07 Axis AB Method, apparatus and system for encoding a video stream by defining areas within a second image frame with image data common to a first image frame
EP3370419B1 (en) 2017-03-02 2019-02-13 Axis AB A video encoder and a method in a video encoder
EP3396952B1 (en) 2017-04-25 2019-04-17 Axis AB Method and image processing unit for forming a video stream
JP6914722B2 (ja) * 2017-05-11 2021-08-04 キヤノン株式会社 動画像符号化装置、動画像符号化方法及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007036889A (ja) 2005-07-28 2007-02-08 Sanyo Electric Co Ltd 符号化方法
JP2010515398A (ja) 2007-01-03 2010-05-06 サムスン エレクトロニクス カンパニー リミテッド 全域動きベクトルを使用して動きベクトルを推定するための方法、装置、エンコーダ、デコーダ及びデコーディング方法
JP2010183180A (ja) 2009-02-03 2010-08-19 Sanyo Electric Co Ltd 画像処理装置、およびそれを搭載した撮像装置

Also Published As

Publication number Publication date
KR20210069564A (ko) 2021-06-11
TWI801764B (zh) 2023-05-11
CN112911293B (zh) 2022-08-26
TW202126047A (zh) 2021-07-01
KR102446097B1 (ko) 2022-09-22
US20210168373A1 (en) 2021-06-03
CN112911293A (zh) 2021-06-04
JP2021103876A (ja) 2021-07-15
EP3833028A1 (en) 2021-06-09
US11303903B2 (en) 2022-04-12
EP3833028B1 (en) 2022-02-09

Similar Documents

Publication Publication Date Title
US8204114B2 (en) Direction detection algorithms for H.264/AVC intra prediction
US9621917B2 (en) Continuous block tracking for temporal prediction in video encoding
US8018994B2 (en) Selecting encoding types and predictive modes for encoding video data
KR100924048B1 (ko) 비디오 부호화에서 화면내 방향성 예측모드 고속 결정방법
CN101326832A (zh) 用于视频编码的可缩放运动估计
US10735738B2 (en) Refinement of a low-pel resolution motion estimation vector
JP4246723B2 (ja) フレーム内予測符号化制御方法、フレーム内予測符号化制御装置、フレーム内予測符号化制御プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
Liu et al. H. 264/AVC video error concealment algorithm by employing motion vector recovery under cloud computing environment
JP2005348280A (ja) 画像符号化方法、画像符号化装置、画像符号化プログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP4235162B2 (ja) 画像符号化装置,画像符号化方法,画像符号化プログラムおよびコンピュータ読み取り可能な記録媒体
KR100408294B1 (ko) 저전송율 동영상 부호화에 적합한 움직임 추정 방법
US20060193386A1 (en) Method for fast mode decision of variable block size coding
JP7229982B2 (ja) ビデオシーケンスの画像をエンコードする方法及びシステム
US20100239019A1 (en) Post processing of motion vectors using sad for low bit rate video compression
KR101769575B1 (ko) 움직임 탐색시 효율적인 움직임 벡터 추출 방법 및 그 장치
KR101677696B1 (ko) 움직임 탐색시 효율적인 움직임 벡터 추출 방법 및 그 장치
JP4516088B2 (ja) 動き探索方法、動き探索装置、動き探索プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP4688170B2 (ja) 動画像符号化装置
Pientka et al. Deep video coding with gradient-descent optimized motion compensation and Lanczos filtering
US9948932B2 (en) Image processing apparatus and control method of image processing apparatus
KR101708905B1 (ko) 움직임 탐색시 효율적인 움직임 벡터 추출 방법 및 그 장치
KR101867885B1 (ko) 움직임 탐색시 효율적인 움직임 벡터 추출 방법 및 그 장치
KR101737606B1 (ko) 움직임 탐색시 효율적인 움직임 벡터 추출 방법 및 그 장치
KR100413002B1 (ko) 동영상 부호화기의 확산누적배열을 이용한 블록정합 장치및 그 방법
KR20180068910A (ko) 움직임 탐색시 효율적인 움직임 벡터 추출 방법 및 그 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220502

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220502

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221109

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230215

R150 Certificate of patent or registration of utility model

Ref document number: 7229982

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150