JP6761033B2 - 前フレーム残差を用いた動きベクトル予測 - Google Patents

前フレーム残差を用いた動きベクトル予測 Download PDF

Info

Publication number
JP6761033B2
JP6761033B2 JP2018519395A JP2018519395A JP6761033B2 JP 6761033 B2 JP6761033 B2 JP 6761033B2 JP 2018519395 A JP2018519395 A JP 2018519395A JP 2018519395 A JP2018519395 A JP 2018519395A JP 6761033 B2 JP6761033 B2 JP 6761033B2
Authority
JP
Japan
Prior art keywords
value
mask
frame
pixel
block
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
JP2018519395A
Other languages
English (en)
Other versions
JP2018536339A (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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2018536339A publication Critical patent/JP2018536339A/ja
Application granted granted Critical
Publication of JP6761033B2 publication Critical patent/JP6761033B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/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/124Quantisation
    • 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/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/537Motion estimation other than block-based
    • H04N19/543Motion estimation other than block-based using regions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]

Landscapes

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

Description

本開示は、一般に、前フレーム残差を使用する動きベクトル予測を用いてビデオストリームデータなどのビジュアルデータを符号化および復号化することに関する。
デジタルビデオストリームは、典型的には、一連のフレームまたは静止画像を使用して映像を表現する。各フレームは、色、輝度、または画素の他の属性の値を記述する情報を含み得る多数のブロックを含む。ビデオストリーム内のデータ量は大きく、ビデオの送信および記憶は、かなりのコンピューティングリソースまたは通信リソースを使用する。ビデオデータに含まれる大量のデータにより、送信および記憶のために高性能圧縮が必要とされる。これは、多くの場合、動きベクトルを用いたインター予測を含む。
本開示は、一般に、前フレーム残差を使用する動きベクトル予測を用いてビデオストリームデータなどのビジュアルデータを符号化および復号化することに関する。
本開示の一態様によるビデオ信号を符号化または復号化する方法は、現フレーム(current frame)以外の少なくとも2つのフレームの画素値間の差である残差から現フレーム内の現ブロック(current block)に対するマスクを生成するステップと、マスクを用いたインター予測によって現ブロックを符号化または復号化するステップとを含む。ビデオ信号は、ビデオシーケンスを形成するフレームを含み、フレームは画素からなるブロックを有する。
本明細書に記載の装置の一態様は、ビデオ信号を符号化または復号化する装置であり、ビデオ信号は、ビデオシーケンスを形成するフレームを含み、フレームは、画素からなるブロックを有する。装置は、プロセッサと、命令を格納しかつ含む非一時メモリとを備え、命令は、プロセッサに、現フレーム以外の少なくとも2つのフレームの画素値間の差である残差からビデオシーケンスにおける現フレーム内の現ブロックに対するマスクを生成するステップと、マスクを用いたインター予測によって現ブロックを符号化または復号化するステップとを含む方法を行わせる。
本明細書に記載の装置の別の態様は、ビデオ信号の現ブロックを符号化または復号化するためのマスクを生成する装置であり、ビデオ信号は、ビデオシーケンスを形成するフレームを含み、フレームはブロックを有し、ブロックは画素から形成される。装置は、プロセッサと、命令を格納しかつ含む非一時メモリとを備え、命令は、プロセッサに、第2のフレーム内の画素値から第1のフレーム内の画素値を減算することにより残差を算出するステップであって、第1のフレームおよび第2のフレームの各々はビデオシーケンス内の現フレームの前に位置する、残差を算出するステップと、残差内の個々の画素位置に対する画素値に閾値を適用して、画素を含む閾値残差を生成するステップであって、閾値残差内の各画素は、第1の値または第1の値とは異なる第2の値のうちの1つを有する、閾値残差を生成するステップと、第1の値を有する画素を含む閾値残差の第1の領域または第2の値を有する画素を含む閾値残差の第2の領域のうちの少なくとも1つを拡張して、第1の値を有する画素位置の第1の連続部分または第2の値を有する画素位置の第2の連続部分を有するマスクを形成するステップであって、第1の連続部分と第2の連続部分との間の境界は、マスクの2つのエッジの間に延在し、マスクは、現ブロックと同じ画素次元(pixel dimensions)を有する、マスクを形成するステップとを含む方法を行わせる。
本開示のこれらおよび他の態様は、以下の詳細な説明、添付の特許請求の範囲および添付の図面においてさらに詳細に記載される。
本明細書の記載は、以下に記載される添付の図面を参照し、いくつかの図面に亘って同様の参照番号が同様の構成を参照している。
図1は、ビデオ符号化および復号化システムの概略図である。 図2は、送信局または受信局を具体化することができるコンピューティングデバイスの一例のブロック図である。 図3は、符号化され、続いて復号化されるビデオストリームの図である。 図4は、本明細書の教示の一態様によるビデオ圧縮システムのブロック図である。 図5は、本明細書の教示の別の態様によるビデオ圧縮解除システムのブロック図である。 図6は、本開示の一実施形態による前のフレーム残差を用いた動きベクトル予測によってブロックを符号化または復号化する処理のフローチャート図である。 図7は、本開示の一実施形態による前フレーム残差を用いてマスクを生成する処理のフローチャート図である。 図8A〜図8Cは、図7の処理を説明するための図である。
ビデオストリームは、ビデオストリームを送信または格納するのに必要な帯域幅を低減するために、様々な技術によって圧縮され得る。ビデオストリームは、圧縮を含むビットストリームに符号化され、その後、復号化器に送信され、復号化器はビデオストリームを復号化または圧縮解除して、視聴または後処理するために準備する。ビデオストリームの符号化は、ビデオ品質とビットストリームサイズとの間のトレードオフを行うパラメータを含むことができ、復号化されたビデオストリームの知覚される品質を高めるようにすると、ビットストリームを送信または格納するのに必要なビット数が増加する。
優れた圧縮性能を達成する1つの技法は、空間的補償予測および/または動き補償予測によってビデオ信号の空間的および時間的相関を利用する。インター予測は、例えば、動きベクトルを使用して、符号化されるべき現ブロックに似ている、以前に符号化され復号化されたブロックを識別する。動きベクトルおよび2つのブロック間の差を符号化することによって、復号化器は現ブロックを再作成することができる。しかしながら、オブジェクトは画像内の正規ブロック境界(regular block boundaries)にはほとんど収まらない。これは、符号化の効率につながる。
対照的に、本明細書の教示は、オブジェクトをフレーム内によりよくマッチングするように(例えば、正方形の)ブロックを必要としないインター予測子(inter−predictor)の生成および使用を説明する。これは、先行フレームの残差を使用して2つの異なる動きベクトルがブロックに適用されることを可能にするブロックに関する断崖マスク(cliff mask)を作成することによって実施することができる。さらなる詳細は、本明細書の教示が使用され得る環境の最初の説明の後に記載される。
図1は、ビデオ符号化及び復号化システム100の概略図である。送信局102は、例えば、図2に記載されているようなハードウェアの内部構成を有するコンピュータとすることができる。しかしながら、送信局102の他の適切な実施形態も可能である。例えば、送信局102の処理を複数の装置に分散させることができる。
ネットワーク104は、ビデオストリームの符号化および復号化のために、送信局102および受信局106を接続することができる。具体的には、ビデオストリームを送信局102で符号化することができ、符号化されたビデオストリームを受信局106で復号化することができる。ネットワーク104は、例えばインターネットであってもよい。ネットワーク104は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、仮想プライベートネットワーク(VPN)、携帯電話ネットワーク、または送信局102から、この例では、受信局106にビデオストリームを転送する任意の他の手段とすることができる。
受信局106は、一例では、図2に記載されたようなハードウェアの内部構成を有するコンピュータとすることができる。しかしながら、受信局106の他の適切な実施形態も可能である。例えば、受信局106の処理を複数の装置に分散させることができる。
ビデオ符号化および復号化システム100の他の実施形態も可能である。例えば、実施形態はネットワーク104を省略することができる。別の実施形態では、ビデオストリームを符号化し、後で受信局106またはメモリを有する任意の他の装置に送信するために格納することができる。一実施形態では、受信局106は、符号化されたビデオストリームを(例えば、ネットワーク104、コンピュータバス、および/または何らかの通信経路を介して)受信し、後の復号化のためにビデオストリームを記憶する。一実施形態では、ネットワーク104を介して符号化されたビデオを伝送するためにリアルタイム転送プロトコル(RTP:real−time transport protocol)が使用される。別の実施形態では、ハイパーテキスト転送プロトコル(HTTP:Hypertext Transfer Protocol)などのRTP以外の転送プロトコルが使用されてもよい。別の実施形態では、ハイパーテキスト転送プロトコル(HTTP)ベースのビデオストリーミングプロトコル等のRTP以外の転送プロトコルが使用されてもよい。
ビデオ会議システムで使用される場合、例えば、送信局102および/または受信局106は、以下に説明するように、ビデオストリームを符号化および復号化する能力を含むことができる。例えば、受信局106は、ビデオ会議サーバ(例えば、送信局102)から符号化されたビデオビットストリームを受信して復号化および視聴し、さらにそのビデオビットストリームを他の参加者による復号化および視聴のために符号化してビデオ会議サーバに送信するビデオ会議参加者とし得る。
図2は、送信局または受信局を実施することができるコンピューティングデバイス200の一例のブロック図である。例えば、コンピューティングデバイス200は、図1の送信局102および受信局106の一方または両方を実施することができる。コンピューティングデバイス200は、複数のコンピューティングデバイスを含むコンピューティングシステムの形態、または例えば、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、デスクトップコンピュータなどの単一のコンピューティングデバイスの形態とすることができる。
コンピューティングデバイス200内のCPU202は、中央処理装置とすることができる。代替的に、CPU202は、現在存在するか、または今後開発される情報を操作または処理することができる任意の他のタイプのデバイスまたは複数のデバイスであってもよい。開示された実施態様は、図示のような単一のプロセッサ、例えばCPU202で実施することができるが、複数のプロセッサを使用して速度と効率の利点を達成することができる。
コンピューティングデバイス200内のメモリ204は、実施形態では読み出し専用メモリ(ROM)デバイスまたはランダムアクセスメモリ(RAM)デバイスであってもよい。任意の他の適切なタイプの記憶装置をメモリ204として使用することができる。メモリ204は、CPU202がバス212を使用してアクセスするコードおよびデータ206を含むことができる。メモリ204は、オペレーティングシステム208およびアプリケーションプログラム210をさらに含むことができ、アプリケーションプログラム210は、本明細書に記載された方法をCPU202が実行するのを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム210は、アプリケーション1〜Nを含むことができ、アプリケーション1〜Nは、本明細書で説明する方法を実行するビデオ符号化アプリケーションをさらに含む。コンピューティングデバイス200はまた、例えば、モバイルコンピューティングデバイスと共に使用されるメモリカードとすることができる二次ストレージ214を含むことができる。ビデオ通信セッションは、かなりの量の情報を含み得るので、それらは、二次ストレージ214に全体的または部分的に記憶され、処理のために必要に応じてメモリ204にロードされる。
コンピューティングデバイス200は、ディスプレイ218などの1つまたは複数の出力デバイスを含むこともできる。ディスプレイ218は、一例では、ディスプレイを、タッチ入力を感知するように動作可能なタッチセンシティブエレメントと組み合わせたタッチセンシティブディスプレイであってもよい。ディスプレイ218は、バス212を介してCPU202に接続することができる。ユーザがコンピューティングデバイス200をプログラムするかまたは他の方法で使用することを可能にする他の出力デバイスが、ディスプレイ218に加えて、またはディスプレイ218に代えて設けられてもよい。出力デバイスがディスプレイであるか、またはディスプレイを含む場合、ディスプレイは、液晶ディスプレイ(LCD)、陰極線管(CRT)ディスプレイ、または有機LED(OLED)などの発光ダイオード(LED)ディスプレイを含む様々な方法で実施することができる。
コンピューティングデバイス200は、コンピューティングデバイス220を操作するユーザの画像等の画像を検出することができる、例えば、カメラなどの撮像デバイス220、または現在または将来開発される任意の他の撮像デバイス220を含か、または撮像デバイス220と通信することができる。撮像デバイス220は、コンピューティングデバイス200を操作するユーザの方に向けられるように配置することができる。一例では、撮像デバイス220の位置および光軸は、視野が、ディスプレイ218に直接隣接する領域であって、その領域からディスプレイ218が視認可能な領域を含むように構成することができる。
コンピューティングデバイス200は、コンピューティングデバイス200の近くの音を感知することができる、例えば、マイクロホンなどの音声感知デバイス222、または現在または今後開発される任意の他の音声感知デバイスを含むか、または音声感知デバイス222と通信することができる。音声感知デバイス222は、コンピューティングデバイス200を操作するユーザの方に向けられ、かつユーザがコンピューティングデバイス200を操作している間にユーザによって発せられた例えば音声、他の発話を受信するように構成することができる。
図2は、コンピューティングデバイス200のCPU202およびメモリ204が単一のユニットに統合されていることを示しているが、他の構成を利用することもできる。CPU202の動作は、直接的にまたはローカルエリアネットワークまたは他のネットワークを介して接続することができる複数のマシン(各マシンは1つまたは複数のプロセッサを有する)にわたって分散させることができる。メモリ204は、ネットワークベースのメモリのような複数のマシンに分散するか、またはコンピューティングデバイス200の動作を実行する複数のマシンにおけるメモリとすることができる。本明細書では単一のバスとして示されているが、コンピューティングデバイス200のバス212は、複数のバスから構成することができる。さらに、二次ストレージ214は、コンピューティングデバイス200の他の構成要素に直接接続されるか、またはネットワークを介してアクセスされ、かつメモリカードなどの単一の統合されたユニットまたは複数のメモリカードなどの複数のユニットを含むことができる。従って、コンピューティングデバイス200は、多種多様な構成で実施することができる。
図3は、符号化され、続いて復号化されるビデオストリーム300の一例の図である。ビデオストリーム300は、ビデオシーケンス302を含む。次のステージでは、ビデオシーケンス302はいくつかの隣接フレーム304を含む。3つのフレームが隣接フレーム304として示されているが、ビデオシーケンス302は任意の数の隣接フレーム304を含むことができる。隣接フレーム304はさらに、個々のフレーム、例えばフレーム306に細分することができる。次のステージでは、フレーム306は、一連のプレーンまたはセグメント308に分割することができる。セグメント308は、例えば、並列処理を可能にするフレームのサブセットとすることができる。セグメント308は、ビデオデータを別々の色に分離することができるフレームのサブセットとすることができる。例えば、カラービデオデータのフレーム306は、輝度平面および2つの色度平面を含むことができる。セグメント308は、異なる解像度でサンプリングすることができる。
フレーム306がセグメント308に分割されているか否かにかかわらず、フレーム306は、さらに、ブロック310に細分され、ブロック310は、フレーム306内の例えば16×16画素に対応するデータを含むことができる。ブロック310は、画素データの1つまたは複数のプレーンからのデータを含むように配列することができる。ブロック310は、4x4画素、8x8画素、16x8画素、8x16画素、16x16画素またはそれ以上の大きさ等の任意の他の適切なサイズであってもよい。特記しない限り、ブロックおよびマクロブロックという用語は、本明細書では互換的に使用される。フレーム306は、以下により詳細に説明するように、本明細書の教示に従って区画されてもよい。
図4は、実施形態による符号化器400のブロック図である。符号化器400は、例えばメモリ204などのメモリに格納されたコンピュータソフトウェアプログラムを提供するなどして、上述のように送信局10内で実施することができる。コンピュータソフトウェアプログラムは、CPU202等のプロセッサよる実行時に、送信局102に図4で説明した方法でビデオデータを符号化させる機械命令を含むことができる。符号化器400は、例えば、送信局102に含まれる専用のハードウェアとして実施することもできる。符号化器400は、ビデオストリーム300を入力として使用してフォワードパス(実線の接続線で示す)において様々な機能を実行して、符号化または圧縮されたビットストリーム420を生成するイントラ予測/インター予測ステージ402、変換ステージ404、量子化ステージ406、およびエントロピー符号化ステージ408を有する。符号化器400は、将来のブロックの符号化のためのフレームを再構成する再構成パス(点線の接続線で示す)をも含む。図4において、符号化器400は、再構成パスにおいて様々な機能を実行する逆量子化ステージ410、逆変換ステージ412、再構成ステージ414、およびループフィルタリングステージ416を有する。符号化器400の他の構成的な変形例を使用してビデオストリーム300を符号化することができる。
ビデオストリーム300が符号化のために提示されると、フレーム306はブロックの単位で処理される。イントラ予測/インター予測ステージ402において、ブロックは、イントラフレーム予測(イントラ予測とも称する)またはインターフレーム予測(ここではインター予測またはインター−予測とも呼ばれる)を用いて符号化することができる。いずれの場合でも、予測ブロックを形成することができる。イントラ予測の場合、予測ブロックが、以前に符号化され、かつ再構成された現フレーム内のサンプルから形成され得る。インター予測の場合、予測ブロックは、以下により詳細に説明するように、1つまたは複数の以前に構築された参照フレーム内のサンプルから形成され得る。
次に、引き続き図4を参照して、イントラ予測/インター予測ステージ402において予測ブロックが現ブロックから減算され、残差ブロック(残差とも呼ばれる)が生成される。変換ステージ404は、ブロックベースの変換を使用して、残差を、例えば周波数領域の変換係数に変換する。このようなブロックベースの変換には、例えば、離散コサイン変換(DCT:Discrete Cosine Transform)および非対称離散サイン変換(ADST:Asymmetric Discrete Sine Transform)が含まれる。他のブロックベースの変換も可能である。さらに、異なる変換の組み合わせを単一の残差に適用することができる。変換の適用の一例では、DCTは残差ブロックを周波数係数に変換し、ここで、変換係数値は空間周波数に基づいている。行列の左上の最低周波数(DC)係数、および行列の右下の最高周波数係数。予測ブロックのサイズ、したがって結果の残差ブロックは、変換ブロックのサイズと異なる可能性があることは注目に値する。例えば、予測ブロックは、別々の変換が適用されるより小さいブロックに分割されてもよい。
量子化ステージ406は、変換係数を量子化値または量子化レベルを使用して量子化変換係数と呼ばれる離散量子値に変換する。例えば、変換係数は、量子化値で除算され、切り捨てられてもよい。次に、量子化された変換係数は、エントロピー符号化ステージ408によってエントロピー符号化される。エントロピー符号化は、トークンおよびバイナリツリーを含む任意の数の技術を使用して実行されてもよい。例えば、使用される予測のタイプ、変換タイプ、動きベクトルおよび量子化値を含み得る、ブロックを復号化するために使用される他の情報とともに、エントロピー符号化された係数は、圧縮されたビットストリーム420に出力される。圧縮されたビットストリーム420は、符号化されたビデオストリームまたは符号化されたビデオビットストリームとも呼ばれ、これらの用語は本明細書では互換的に使用される。
符号化器400および復号化器500(以下に説明する)の両方が、圧縮されたビットストリーム420を復号化するために同じ参照フレームを使用することを確実にするために、図4における再構成パス(点線の接続線で示す)が使用される。再構成パスは、逆量子化ステージ410で量子化された変換係数を逆量子化すること、および逆変換ステージ412で逆量子化された変換係数を逆変換して微分残差ブロック(微分残差)を生成することを含む以下により詳細に説明される復号化プロセス中に行われる機能と同様の機能を実行する。再構成ステージ414において、イントラ予測/インター予測ステージ402で予測された予測ブロックを微分残差に加えて、再構成されたブロックが作成される。ブロック化アーチファクトなどの歪みを低減するために、ループフィルタリングステージ416が再構成されたブロックに適用される。
符号化器400の他の変形例を使用して圧縮されたビットストリーム420を符号化することができる。例えば、非変換ベースの符号化器400は、あるブロックまたはフレームに関して変換ステージ404を使用せずに残差信号を直接量子化することができる。別の実施形態では、符号化器400は、量子化ステージ406と逆量子化ステージ410とを組み合わせて単一のステージにすることができる。
図5は、別の実施形態による復号化器500のブロック図である。復号化器500は、例えば、メモリ204に格納されたコンピュータソフトウェアプログラムを提供することによって、受信局106で実施することができる。コンピュータソフトウェアプログラムは、CPU202などのプロセッサによる実行時に、受信局106に、図5において説明した方法でビデオデータを復号化させる機械命令を含む。復号化器500は、例えば、送信局102または受信局106に含まれるハードウェアで実施することもできる。
復号化器500は、上述の符号化器400の再構成パスと同様に、一例では、様々な機能を実行して圧縮されたビットストリーム420から出力ビデオストリーム516を生成するためのエントロピー復号化ステージ502、逆量子化ステージ504、逆変換ステージ506、イントラ予測/インター予測ステージ508、再構成ステージ510、ループフィルタリングステージ512、およびデブロッキングフィルタリングステージ514を含む。圧縮されたビットストリーム420を復号化するために復号化器500の他の構造的な変形例を使用することができる。
圧縮されたビットストリーム420が復号化のために提示されると、圧縮されたビットストリーム420内のデータ要素が、エントロピー復号化ステージ502によって復号化されて、一組の量子化変換係数が生成される。逆量子化ステージ504は、(例えば、量子化された変換係数に量子化値を乗算することにより)量子化された変換係数を逆量子化し、逆変換ステージ506は、選択された変換タイプを使用して逆量子化された変換係数を逆変換して、符号化器400における逆変換ステージ412によって生成されたものと同一である微分残差を生成する。圧縮されたビットストリーム420から復号化されたヘッダ情報を使用して、復号化器500は、イントラ予測/インター予測ステージ508を用いて、例えばイントラ予測/インター予測ステージ402において符号化器400で生成されたのと同じ予測ブロックを作成する。再構成ステージ510において、予測ブロックを微分残差に加えて再構成ブロックが作成される。ループフィルタリングステージ512は、ブロッキングアーチファクトを低減するために再構成されたブロックに適用される。再構成されたブロックに他のフィルタリングを適用することができる。この例では、ブロッキング歪を低減するためにデブロッキングフィルタリングステージ514が再構成ブロックに適用され、その結果が出力ビデオストリーム516として出力される。出力ビデオストリーム516は、復号化されたビデオストリームとも呼ばれ、用語は本明細書では互換的に使用される。
復号化器500の他の変形例を使用して、圧縮されたビットストリーム420を復号化することができる。例えば、復号化器500は、デブロッキングフィルタリングステージ514を使用せずに出力ビデオストリーム516を生成することができる。
上記で簡潔に説明したように、ブロックは、前のフレーム残差を使用した動きベクトル予測によって符号化または復号化されてもよい。一般的に、2つのフレーム(例えば、現フレームの前の最後の2つのフレーム)の画素間で算出された残差からブロックのマスクが生成され、その後、そのマスクを使用したインター予測によってブロックが符号化または復号化される。このように、2つの異なる動きベクトルをブロックに適用することができるマスクを使用して、画像内のオブジェクトをよりよくマッチングさせ、ビデオ圧縮を改善することができる。
図6は、本開示の一実施形態による、前のフレーム残差を使用した動きベクトル予測によってブロックを符号化または復号化するプロセス600のフローチャート図である。この方法またはプロセス600は、ビデオストリームの符号化または復号化を支援するコンピューティングデバイス200などのシステムにおいて実施することができる。プロセス600は、例えば、送信局102または受信局106などのコンピューティングデバイスによって実行されるソフトウェアプログラムとして実施することができる。ソフトウェアプログラムは、メモリ204などのメモリに格納され、CPU202のようなプロセッサによる実行時に、コンピューティングデバイスにプロセス600を実行させる機械可読命令を含むことができる。プロセス600は、ハードウェアの全体または一部を使用して実施することもできる。上述したように、いくつかのコンピューティングデバイスは、複数のメモリおよび複数のプロセッサを有してもよく、プロセス600のステップまたは動作は、この場合、異なるプロセッサおよび異なるメモリを使用して分散されてもよい。本明細書で単数の「プロセッサ」および「メモリ」という用語を使用することは、1つのプロセッサまたは1つのメモリのみを有するのみならず、必ずしもすべの記載されたステップではないが、いくつかのステップの実行にそれぞれ使用されてもよい複数のプロセッサまたは複数のメモリを有するコンピューティングデバイスを含む。
説明を簡単にするために、プロセス600は、一連のステップまたは動作として示され説明されている。しかしながら、本開示によるステップおよび動作は、様々な順序でおよび/または同時に進行することができる。さらに、本開示に従うステップまたは動作は、本明細書に提示および記載されていない他のステップまたは動作と共に進行することができる。さらに、開示された主題に従って方法を実施するために、図示された全てのステップまたは動作が必要とされるわけではない。プロセス600は、入力信号の各フレームに対して繰り返されてもよい。
プロセス600が符号化プロセスである場合、入力信号は、例えばビデオストリーム300とすることができる。入力信号は、プロセス600を実行するコンピューティングデバイスによって任意の数の方法で受信される。例えば、入力信号は、撮像デバイス220によって取り込まれるか、またはバス212に接続された入力を介して別のデバイスから受信される。入力信号は、別の実施形態では、二次ストレージ214から取得することができる。他の受信方法および他の入力信号のソースも可能である。例えば、プロセス600が復号化プロセスである場合、入力信号は、圧縮されたビットストリーム420などの符号化されたビットストリームであってもよい。
602において、入力信号を使用して、現フレーム以外の2つのフレームの画素値間の差である残差からビデオシーケンス内の現フレーム内の現ブロックに対するマスクが生成される。一般に、マスクは、2つのフレーム(例えば、現フレームの前の2つのフレーム)間の残差を算出し、残差を閾値処理し、閾値処理された残差をクリーニングアップすることによって生成することができる。1つの小さなタップぼかし(tap blur)を任意にマスクに追加することができる。
より詳細には、図7は、本開示の一実施形態による前のフレーム残差を使用してマスクを生成するためのプロセス700のフローチャート図である。図8A〜図8Cは、図7のプロセス700を説明するために使用される図である。
方法またはプロセス700は、ビデオストリームの符号化または復号化を支援するコンピューティングデバイス200などのシステムで実施することができる。プロセス700は、例えば、送信局102または受信局106などのコンピューティングデバイスによって実行されるソフトウェアプログラムとして実施することができる。ソフトウェアプログラムは、メモリ204などのメモリに格納され、CPU202のようなプロセッサによる実行時に、コンピューティングデバイスにプロセス700を実行させる機械可読命令を含むことができる。プロセス700は、ハードウェアの全体または一部を使用して実施することもできる。上述したように、いくつかのコンピューティングデバイスは、複数のメモリおよび複数のプロセッサを有することができ、プロセス700のステップまたは動作は、この場合、異なるプロセッサおよび異なるメモリを使用して分散することができる。
説明を簡単にするために、プロセス700は、一連のステップまたは動作として示され、説明される。しかしながら、本開示によるステップおよび動作は、様々な順序でおよび/または同時に進行することができる。さらに、本開示に従うステップまたは動作は、本明細書に提示および記載されていない他のステップまたは動作と共に進行することができる。さらに、開示された主題に従って方法を実施するために、図示された全てのステップまたは動作が必要とされるわけではない。プロセス700は、入力信号の各ブロックまたは各フレームに対して繰り返されてもよい。
プロセス700において、マスクを生成することは、702において2つのフレーム間の残差を算出することを含む。より詳細には、残差は、第1のフレーム内の画素値を第2のフレーム内の画素値から減算することによって算出される。第1および第2のフレームは、入力信号によって形成されたビデオシーケンス内の現フレームの前に配置され得る。第1および第2のフレームは、隣接フレームであってもよいが、より望ましくは、ビデオシーケンス内の1つまたは複数のフレーム分および定義された時間量だけ分離される。定義された時間量は、例では200ミリ秒であるが、他の値も可能である。画素値は、例えば、第1及び第2フレーム内の画素位置の一部又は全部の輝度成分又は彩度成分を表し得る。
一実施形態では、第2のフレーム内の画素の画素値は、第1のフレーム内の同配置された(collocated)画素の画素値から減算されるか、またはその逆である。同配置された画素は、異なるフレーム内の同じ画素座標を有する。一実施態様では、第2のフレーム内の画素および第1のフレーム内の同配置された画素は、現ブロックの画素と同配置される。代替的に、第2のフレーム内の画素および第1のフレーム内の同配置された画素は、現ブロックの画素に対して動きベクトルだけシフトされる。ある場合には、第1のフレームまたは第2のフレームの一方の画素は、現フレームと同配置され、他方の画素は、現ブロックに対して動きベクトルだけシフトされる。望ましくは、画素値は、図4に関して説明したような符号化器の符号化およびそれに続く復号化処理から得られた再構成画素値である。
符号化処理においてマスクが生成される場合、様々な技術を用いて2つのフレームを選択することができる。1つの特に単純な実施形態では、現フレームの前の最後の2つの隣接フレームが使用される。別の実施態様では、現フレームの前の最後のフレームが、最後のフレームに対する参照フレームとして最も識別されたフレームと共に選択されてもよい。他の実施形態では、マスク生成プロセスのための残差を提供するように他のフレームを選択することができる。
復号化プロセスにおいてマスクが生成された場合、以下により詳細に説明するように、符号化されたビットストリーム内のヘッダ情報から2つのフレームを識別することができる。
残差は、フレームの全体またはフレームの一部のみを表すことができる。即ち、残差は、フレームの全次元に対して、またはフレームのブロックのようなフレームの一部のみに対して算出することができる。一例が図8Aに示されている。その図では、第1のフレーム802のすべての画素値が、第2のフレーム804の同配置された画素値から減算される。結果は、残差フレーム(または残差)806である。図8Aから分かるように、ボール、月などのような丸いオブジェクト808は、第1のフレーム802内の第1の位置から第2のフレーム804内の第2の位置へと移動している。残差806は、第1のフレーム802と第2のフレーム804の画素値の間の差である三日月形状810を示す。この場合、残差は、フレームの全領域を用いて算出される。しかしながら、この算出またはプロセス700の後続のステップは、フレームの一部、例えばブロック単位で実行されてもよい。
プロセス700でマスクを生成することは、704において、702で生成された残差に閾値を適用することも含む。より詳細には、プロセス700は、残差内の個々の画素位置に関する画素値に閾値を適用して、閾値残差を生成することを含む。閾値残差は、閾値が適用される残差と同じ次元または残差の一部を有する画素を含む。特定の実施形態では、閾値残差内の各画素は、第1の値または第1の値と異なる第2の値のうちの1つを有する。閾値は、正の値または負の値であるか、または値の範囲を定義してもよい。
一実施形態では、閾値を適用することは、残差内の個々の画素位置の画素値を閾値と比較することを含む。次に、画素値が閾値未満である場合、第1の値が、閾値残差内の同じ画素位置に割り当てられる。あるいは、画素値が閾値よりも大きい場合、第2の値が閾値残差内の同じ画素位置に割り当てられる。例えば、第1の値はゼロであってもよく、第2の値は256の最大画素値であってもよい。一実施形態では、第1の値が0の値である場合、第2の値は1の値である。オブジェクトを表す画素の値における背景の変化または最小の変化の捕捉を最小化しつつ、2つのフレーム間のオブジェクトのエッジの相対的な動きの変化を捕捉する限り、閾値は、任意の特定の値である必要はない。1つの値は、例えば75であり、他の値も可能である。閾値残差の2つの境界に亘る非島状残差が閾値化の結果でなければ、閾値残差はマスクとして有用ではない。値が調整されるか、または、残差の一部が他のものと同様に予測に有用なマスクを生成しないという決定がなされてもよい。
図8Bを参照すると、例えば、図8Aからの残差806の一部であるブロック812が示されている。ブロック812において、エッジ領域およびハッチングされた領域は、第1のフレーム802と第2のフレーム804との間の丸いオブジェクト808(例えば、そのエッジ)の動きを表す。ブロック812に閾値を適用すると、エッジ領域およびハッチングされた領域には1の値が割り当てられ、他の領域にはの値が割り当てられる。例えば、±75の範囲内の値を有するブロック812内の画素に対応する新たなブロック(即ち、閾値残差)内の画素位置には、1の値が割り当てられ、その範囲外の画素に対応する閾値残差内の他の画素位置には、0の値が割り当てられる。2つの境界に亘る非島状残差が見られるので、ブロック812は有用なマスクを生成し得る。
再び図7を参照する。図7を参照すると、マスクを生成するためのプロセス700はまた、閾値残差を修正することを含むことができる。706において、例えば、閾値残差に対する成長関数(growth function)および/またはシュリンク関数(shrink function)を使用して、704において残差に閾値を適用することによって生じた閾値残差が修正される。即ち、閾値残差が清浄化される(cleaned up)。一例では、修正は、閾値残差内の右および下のみに成長ステップを再帰的に適用することを含む。そのような実施形態では、上または左のいずれかの近隣が設定されている場合(即ち、1の値を有している場合)、現在の画素が設定される(即ち、1の値に変換される)。再帰的成長の速度は、より大きな「チャンク(chunk)」または閾値残差の一部において作業することによって改善され得る。例えば、4×4画素グループの底部に任意の画素が設定される場合、そのグループ内のすべての画素が設定される。あるいは、再帰的成長関数を適用して、閾値残差内の他の値を有する領域を成長させることができる。一般に、閾値残差を修正することは、領域に隣接する画素の値に基づいて2つの値のうちの第1の値を有する最小数の連続画素によって定義される領域を拡張する成長関数を適用することを含む。
上述した706のこの修正プロセスは、別々の値を有する2つのほぼ連続した領域をもたらす。しかしながら、ある値の連続画素が、別の値の個々の画素または画素のグループによって破壊され得る領域が存在する可能性がある。706において閾値残差を修正することは、これらの不連続を低減するための追加のステップを含み得る。一例では、閾値残差を修正することは、2つの値の第2の値を有する画素によって包囲された第1の値を有する最大数の連続画素によって定義される領域を除去するために、または第1の値を有する画素によって包囲された第2の値を有する最大数の連続画素によって定義される領域を除去するためにシュリンク関数を適用することを含む。その領域を除去することによって、このことは、第1および第2の値がブロックまたはフレーム内の重複しない連続領域を形成するように値を変更することを意味する。
閾値残差を修正することにより得られるマスクの一例を図8Cに示す。マスク814は、図8Bのブロック812を閾値処理すること、および断崖マスクからラインの一方の側の画素の全てが第1の値を有し、ラインの他方の側の画素の全てが第2の値を有するように得られた閾値残差を成長関数及びシュリンク関数を用いて修正することにより生成される。断崖マスクを使用することができるが(例えば、白および黒のみ)、図7のプロセス700に従うマスクを生成する際のオプションの最終ステップは、マスク内の境界にぼかしを適用することを含む。ぼかしの値については、以下に詳細に説明する。この時点で、ぼかしは、領域間の滑らかな遷移を形成する境界についての値をもたらすことに留意されたい。ぼかしは、様々な補間技術に従って形成された1つの小さなタップぼかしであってもよい。プロセス700は、マスクが生成されると終了する。
マスクが生成されると、マスクは現ブロックの符号化または復号化に使用することができる。再び図6を参照すると、マスクを使用して現ブロックを符号化または復号化する1つの実施形態は、604で第1の予測ブロック部分をインター予測すること、606で第2の予測ブロック部分をインター予測すること、608でそれらの部分を使用して予測ブロックを生成すること、610で予測ブロックを使用して現ブロックを符号化または復号化することを含む。
プロセス600が符号化プロセスである場合、604で第1の予測ブロック部分をインター予測することは、マスクを使用して現ブロックの画素位置の第1の連続部分内の画素値に関する参照フレーム内の第1の動き検索を実行することを含む。即ち、マスクの第1の連続部分と同配置された現ブロック内の画素値に対して最良の一致をもたらす第1の動きベクトルが見つけ出される。最良一致は、第1の予測ブロック部分を定義する。同様に、606で第2の予測ブロック部分をインター予測することは、マスクを使用して現ブロックの画素位置の第2の連続部分内の画素値に関する参照フレーム内の第2の動き検索を実行することを含む。即ち、マスクの第2の連続部分と同配置された現ブロック内の画素値に対して最良の一致をもたらす第2の動きベクトルが見つけ出される。最良一致は、第2の予測ブロック部分を定義する。1つの参照フレームの使用が記載されているが、検索は2つ以上の参照フレームに対して実行され、最良の一致は同じ参照フレーム内にある必要はない。
プロセス600が符号化プロセスであるときに608において部分を使用して予測ブロックを生成することは、マスクを使用して第1の動き検索の結果を第2の動き検索の結果と合成することによって予測ブロックを生成することを含むことができる。この合成は、最良一致の画素値を単一の予測ブロックに合成することによって達成され得る。例えば、予測ブロックは、第1の予測ブロック部分に対応する値を有するマスクの第1の連続部分と実質的に一致する第1の部分内の位置における画素と、第2の予測ブロック部分に対応する値を有するマスクの第2の連続部分と実質的に一致する第2の部分内の位置における画素とを有する。予測ブロックの第1の部分と第2の部分との間の境界における画素値は、ぼかしに従った画素値の合成である。たとえば、ぼかしは、境界において0.75,0.50、および0.25の1と0の間の値を持つことができる。この場合、2つの部分の間の境界領域における画素は、第1の部分の同配置された画素の画素値の75%と第2の部分の同配置された画素値の25%とを合成した第1の部分に隣接する第1の組の画素と、第1の部分の同配置された画素の画素値の25%と第2の部分の同配置された画素の画素値の75%とを合成した値を有する第2の部分に隣接する第2の組の画素と、第1の部分の同配置された画素の画素値の50%と第2の部分の同配置された画素の画素値の50%とを合成した値を有する第1の境界領域と第2の境界領域との間の第3の組の画素とを含む。これは簡単な例であり、ぼかしマスクを適用して2つの組の画素を合成して予測ブロックを生成するための他の技術は、本開示に基づく当業者の技術の範囲内である。
604および606のインター予測における使用のためにマスクを修正することができることは注目すべきである。即ち、例えばマスクを回転させることができる。これにより、各検索に関して選択された画素が現ブロックから変更される。したがって、動き検索を実行することは、回転されたマスクを使用して参照フレーム内で第1および第2の動き検索を実行すること、即ち、回転されたマスクの別々の連続部分の各々と同配置された現フレームから画素に関する最良一致を見つけ出すことを含む。次に、608において部分の最良一致を合成するために同様に、マスクを回転させて使用して予測ブロックを生成する。
マスクは、動きベクトルによってマスクをシフトすることによって、604および606のインター予測に使用するように修正することもできる。即ち、マスクのサイズに対応する現フレームの一部(フレームの全部であっても一部であっても)を符号化する利点は、マスクの別々の連続部分間の境界を調整することから得られる利点であり得る。例えば、現フレームの前に前フレーム(例えば、最後の)における動きベクトルのうちの1つだけマスクの境界内でマスクの一方の側への連続部分のサイズが増大し、マスクの反対側の連続部分のサイズが減少するように画素値を調整することによって境界を調整することができる。例えば、境界を移動させ、したがってマスクをシフトするために使用される動きベクトルは、予測されている現ブロックと同配置された最後のフレームのブロックの動きベクトルとすることができる。
610において予測ブロックを使用して現ブロックを符号化することは、現ブロックに関する残差を生成し、残差を現ブロックの復号化に必要な情報とともに符号化されたビットストリームに符号化することを含む。例えば、符号化プロセスは、図4に関して記載されたように、変換ステージ404、量子化ステージ406、およびエントロピー符号化ステージ408を使用して残差を処理することを含むことができる。現ブロックを復号化するために必要な情報は、現ブロックがマスクを用いて符号化されたことを示すモードインジケータ(時にはフラグと呼ばれる)、符号化器においてマスクを生成するためにどのフレームが使用されたかについてのインジケータ(フレームID等の)、動き検索の結果として見つけ出された動きベクトル、参照フレームの識別、およびマスクに対する任意の変更についてのインジケータを含む。例えば、マスクが符号化プロセスで使用するために回転された場合、ビットストリームはそのような指示を含むことになる。その情報は、フレーム、スライス、セグメント、またはブロックヘッダーに含まれていてもよく、すべての情報が同じヘッダで送信される必要はない。さらに、すべての情報が送信される必要はない。例えば、マスクが生成された後にマスクに変化がない場合(例えば、回転されない場合)、修正のインジケータを送る必要はない。さらに、過去の2つのフレームがこのマスクモードにおける符号化で常に使用される場合、ビットストリーム内で使用される2つのフレームを識別する必要はない。他の修正も可能である。
この説明および図4の符号化プロセスの説明から理解されるようには、単一のマスクの生成は、ブロックの最も効率的な符号化をもたらさないことがある。したがって、最も低い符号化コスト(例えば、符号化するビットの数)で現ブロックを符号化のためのマスクおよび動きベクトルを見つけ出すために、図6の処理は、異なるマスク(または回転された同じマスク)を使用してインター予測を実行する1つまたは複数のレート歪みループに組み込まれ得る。
プロセス600が復号化プロセスである場合、602におけるフレーム残差からマスクを生成することは、図7に従って実行される。一実施態様によれば、残差を算出するために使用されるフレームは、マスクモードが使用されるとき、(例えば、情報を含むヘッダをエントロピー復号化することによって)符号化されたビットストリームから得られる。あるいは、フレームは、マスクモードの使用によって知ることができる。例えば、現フレームに対して前の2つの隣接フレームが常に使用される場合、フレームの識別を復号化器に別個に知らせる必要はない。
604において第1の予測ブロック部分をインター予測するための第1の動きベクトルおよび606において第2の予測ブロック部分をインター予測するための第2の動きベクトルは、ビットストリーム内のヘッダから取得することができる。604において第1の予測ブロック部分をインター予測することは、第1の動きベクトルを使用して第1の参照ブロックを生成し、マスクを第1の参照ブロックに適用して、第1のマスクされた参照ブロック(即ち、第1の予測ブロック部分)を生成することを含む。同様に、606において第2の予測ブロック部分をインター予測することは、第2の動きベクトルを使用して第2の参照ブロックを生成し、マスクを第2の参照ブロックに適用して、第2のマスクされた参照ブロック(即ち、第2の予測ブロック部分)を生成することを含む。608において、符号化プロセスに関して上述したのと同様の方法で部分を使用して予測ブロックが生成される。
610において予測ブロックを使用して現ブロックを復号化することは、現ブロックの残差をビットストリームから復号化し、予測ブロックを残差に加算することを含む。例えば、復号化プロセスは、図5に関して説明したように、エントロピー復号化ステージ502、逆量子化ステージ504、および逆変換ステージ506を使用して残差を処理することを含むことができる。次に、現ブロックは、図5に関して説明したように、再構成ステージ510で再構成することができる。
画素予測は、ビットストリーム内で符号化されたデータの量を低減するために使用される。1つの技術は、動きベクトルを使用して、前に符号化されたフレームから画素のブロックをコピーすることである。実際には、オブジェクトは多くの場合規則的なブロック境界に収まらない。本明細書の教示では、予測子(例えば、予測ブロック)がオブジェクトのエッジ形状により良く追従し、よってビデオ圧縮を改善する。
上述の符号化および復号化の態様は、符号化および復号化技術のいくつかの例を示す。しかしながら、符号化および復号化は、特許請求の範囲で使用されるそれらの用語として圧縮、圧縮解除、変換、または任意の他の処理またはデータの変更を意味し得ることを理解されたい。
「例」という語は、本明細書では、例、事例、または実例としての役割を意味するものとして使用される。本明細書において「例」と記載された任意の態様または設計は、必ずしも他の態様または設計に対して好ましいまたは有利であるとして解釈されるべきではない。むしろ、「例」という言葉の使用は、具体的な方法で概念を提示することを意図している。本出願で使用される場合、用語「または」は、排他的な「または」ではなく、包括的な「または」を意味することが意図される。即ち、他に明記されていない限り、または文脈から明らかでない限り、「XはAまたはBを含む」とは、任意の自然な包含的置換(natural inclusive permutations)を意味することを意図する。即ち、「XはAまたはBを含む」は、以下の場合、XがAを含む場合、XがBを含む場合、またはXがAおよびBの両方を含む場合のいずれにおいても満足される。さらに、本出願および添付の特許請求の範囲で使用される冠詞「a」および「an」は、他に明記されない限り、または単数形に向けられる文脈から明らかでない限り、「1つまたは複数」を意味すると一般に解釈されるべきである。さらに、「実施形態」または「一実施形態」という用語の使用は、そのように記載されない限り、同じ実施形態または実施を意味することを意図するものではない。
送信局102および/または受信局106(ならびに、符号化器400および復号化器500が含む、それに記憶され、かつ/またはそれによって実行されるアルゴリズム、方法、命令など)の実施形態は、ハードウェア、ソフトウェア、またはそれらの任意の組み合わせにおいて実現することができる。ハードウェアは、例えば、コンピュータ、知的財産(IP)コア、特定用途向け集積回路(ASIC:application−specific integrated circuits)、プログラマブル論理アレイ、光プロセッサ、プログラマブル論理コントローラ、マイクロコード、マイクロコントローラ、サーバ、マイクロプロセッサ、デジタル信号プロセッサ、または他の適切な回路を含むことができる。特許請求の範囲において、「プロセッサ」という用語は、前述のハードウェアのいずれかを単独でまたは組み合わせて含むものとして理解されるべきである。用語「信号」および「データ」は互換的に使用される。さらに、送信局102および受信局106の一部は、必ずしも同じ方法で実施される必要はない。
さらに、一態様では、例えば、送信局102または受信局106は、実行時に、本明細書に記載された個々の方法、アルゴリズム、および/または命令をのうちのいずれかを実行するコンピュータプログラムを備えた汎用コンピュータまたは汎用プロセッサを使用して実施することができる。加えて、または代替的に、例えば、本明細書に記載された方法、アルゴリズム、または命令のいずれかを実行するための他のハードウェアを含むことができる専用コンピュータ/プロセッサを利用することができる。
送信局102および受信局106は、例えば、ビデオ会議システム内のコンピュータ上で実施することができる。あるいは、送信局102はサーバ上で実施することができ、受信局106はサーバとは別のハンドヘルド通信デバイスのようなデバイス上で実施することができる。この場合、送信局102は、符号化器400を使用してコンテンツを符号化されたビデオ信号に符号化し、符号化されたビデオ信号を通信デバイスに送信することができる。通信デバイスは、復号化器500を使用して符号化されたビデオ信号を復号化することができる。あるいは、通信デバイスは、通信デバイス上に局所的に格納されたコンテンツ、例えば、送信局102によって送信されなかったコンテンツを復号化することができる。他の適切な送信および受信の実施方式が利用可能である。例えば、受信局106は、ポータブル通信デバイスではなく、一般に固定のパーソナルコンピュータであってもよく、かつ/または符号化器400を含むデバイスは、復号化器500を含んでもよい。
さらに、本発明の実施形態の全部または一部は、例えば有形のコンピュータ使用可能またはコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品の形態を取ることができる。コンピュータ使用可能またはコンピュータ可読媒体は、例えば、任意のプロセッサによって使用されるプログラムを有形に包含、格納、通信、または輸送することができる任意のデバイスであり得る。媒体は、例えば、電子、磁気、光学、電磁気、または半導体デバイスであり得る。他の適切な媒体も利用可能である。
上述した実施形態、実施及び態様は、本発明の理解を容易にするために記載されており、本発明を限定するものではない。本発明は、添付の特許請求の範囲内に含まれる様々な改変および均等の構成を包含することを意図しており、その範囲は、法律で許容されるようなすべての改変および均等の構造を包含するように最も広い解釈が与えられる。

Claims (19)

  1. コンピューティングデバイスを使用してビデオ信号を符号化または復号化する方法であって、前記ビデオ信号はビデオシーケンスを形成するフレームを含み、前記フレームは画素からなるブロックを有し、前記方法は、
    前記ビデオシーケンスにおける現フレーム内の現ブロックに対するマスクを生成するステップであって、
    現フレーム以外の前記ビデオシーケンスにおける少なくとも2つのフレームの画素値間の差である残差を計算するステップと、
    前記残差内の個々の画素位置に対する画素値に閾値を適用して、画素を含む閾値残差を生成するステップであって、前記閾値残差内の各画素は、第1の値または前記第1の値とは異なる第2の値のうちの1つを有するものである、前記閾値残差を生成するステップと、
    前記閾値残差を修正してマスクを生成するステップであって、第1の値を有する画素からなる閾値残差の第1の領域または第2の値を有する画素からなる閾値残差の第2の領域のうちの少なくとも1つを拡張して、前記第1の値を有する画素位置の第1の連続部分と前記第2の値を有する画素位置の第2の連続部分とを有するマスクを形成することを含み、前記第1の連続部分および前記第2の連続部分は重なり合っておらず、前記第1の連続部分と前記第2の連続部分との間の境界は前記マスクの1つのエッジから他のエッジにまで亘るものである、前記閾値残差を修正してマスクを生成するステップと
    を含む、前記現ブロックに対するマスクを生成するステップと、
    前記マスクを用いたインター予測によって前記現ブロックを符号化または復号化するステップと
    を含み、前記インター予測は、それぞれの動きベクトルを使用して、画素位置の前記第1の連続部分をインター予測することと、画素位置の前記第2の連続部分をインター予測することとを含む、方法。
  2. 前記マスクを生成するステップは、第2のフレーム内の画素値から第1のフレーム内の画素値を減算することによって残差を算出することを含み、前記第1のフレームおよび前記第2のフレームは、ビデオシーケンス内の現フレームの前に位置し、かつ複数のフレームおよび定義された時間分だけ離間されている、請求項1に記載の方法。
  3. 前記マスクを使用して、前記現ブロックの画素位置の前記第1の連続部分内の画素値に関して参照フレーム内で第1の動き検索を実行するステップと、
    前記マスクを使用して、前記現ブロックの画素位置の前記第2の連続部分内の画素値に関して前記参照フレーム内で第2の動き検索を実行するステップと、
    前記マスクを使用して、前記第1の動き検索の結果と前記第2の動き検索の結果とを合成して予測ブロックを生成するステップと
    をさらに含む、請求項1または2に記載の方法。
  4. 前記閾値の適用は、
    前記残差内の個々の画素位置の画素値を前記閾値と比較するステップと、
    前記画素値が前記閾値よりも小さい場合、前記第1の値を前記閾値残差内の同じ画素位置に割り当てるステップと、
    前記画素値が前記閾値よりも大きい場合、前記第2の値を前記閾値残差内の同じ画素位置に割り当てるステップと
    を含む、請求項1乃至3のいずれか1項に記載の方法。
  5. 前記閾値残差の修正は、
    領域に隣接する画素の値に基づいて、前記第1の値を有する最小数の連続画素によって定義される領域を拡張する成長関数を適用するステップと、
    前記第2の値を有する画素によって包囲された前記第1の値を有する最大数の連続画素によって定義される領域を除去するシュリンク関数を適用するステップと
    のうちの少なくとも一方を含む、請求項1乃至4のいずれか1項に記載の方法。
  6. 前記少なくとも2つのフレームは第1のフレームと第2のフレームとを含み、前記方法は、前記第2のフレーム内の画素の画素値を、前記第1のフレーム内の同配置された画素の画素値から減算することによって前記残差を算出するステップをさらに含み、前記現ブロックを符号化または復号化する前に、前記マスクの境界は動きベクトルによってシフトされる、請求項1乃至5のいずれか1項に記載の方法。
  7. 前記マスクを回転させるステップと、
    回転された前記マスクを使用して参照フレーム内で第1の動き検索を実行するステップと、
    回転された前記マスクを使用して前記参照フレーム内で第2の動き検索を実行するステップと、
    前記マスクを使用して前記第1の動き検索によって見つけ出されたブロックと前記第2の動き検索によって見つけ出されたブロックとを合成して前記現ブロックを符号化するための予測ブロックを生成するステップと
    をさらに含む、請求項1乃至6のいずれか1項に記載の方法。
  8. 前記方法は、
    第1の動きベクトルと、第2の動きベクトルと、前記現ブロックを符号化するためにマスクモードが使用されたことを示すインジケータとを含む符号化されたビットストリームを受信するステップと、
    前記マスクを生成した後、
    前記第1の動きベクトルから結果として生じる第1の参照ブロックに前記マスクを適用して第1のマスクされた参照ブロックを生成するステップと、
    前記第2の動きベクトルから結果として生じる第2の参照ブロックに前記マスクを適用して第2のマスクされた参照ブロックを生成するステップと、
    前記第1のマスクされた参照ブロックと前記第2のマスクされた参照ブロックとを合成して予測ブロックを生成するステップと
    をさらに含み、前記マスクを用いたインター予測による前記現ブロックの復号化は、前記予測ブロックを使用して前記現ブロックを復号化することを含む、請求項1乃至7のいずれか1項に記載の方法。
  9. ビデオ信号を符号化または復号化する装置であって、前記ビデオ信号はビデオシーケンスを形成するフレームを含み、前記フレームはブロックを有し、前記ブロックは画素から形成され、
    前記装置は、
    現フレーム以外の前記ビデオシーケンスにおける少なくとも2つのフレームの画素値間の差である残差を計算すること、
    前記残差内の個々の画素位置に対する画素値に閾値を適用して画素を含む閾値残差を生成することであって、前記閾値残差内の各画素は、第1の値または前記第1の値とは異なる第2の値のうちの1つを有する、前記閾値残差を生成すること、
    前記第1の値を有する画素からなる閾値残差の第1の領域または前記第2の値を有する画素からなる閾値残差の第2の領域のうちの少なくとも1つを拡張して、前記第1の値を有する画素位置の第1の連続部分と前記第2の値を有する画素位置の第2の連続部分とを有するマスクを生成すること
    によって、前記ビデオシーケンスにおける現フレーム内の現ブロックに対するマスクを生成するように構成され、前記第1の連続部分および前記第2の連続部分は重なり合っておらず、前記第1の連続部分と前記第2の連続部分との間の境界は前記マスクの1つのエッジから他のエッジにまで亘っており、
    前記装置はまた、前記マスクを用いたインター予測によって前記現ブロックを符号化または復号するように構成され、前記インター予測は、それぞれの動きベクトルを使用して、画素位置の前記第1の連続部分をインター予測することと、画素位置の前記第2の連続部分をインター予測することとを含む、装置。
  10. 前記装置は、
    前記ビデオシーケンスにおける第1のフレーム内の画素値と第2のフレーム内の画素値との差として残差を計算することと、
    前記残差内の個々の画素位置の画素値を閾値と比較することと、
    前記画素値が前記閾値よりも小さい場合、閾値残差内の同じ画素位置に前記第1の値を割り当てることと、
    前記画素値が前記閾値よりも大きい場合、前記閾値残差内の同じ画素位置に前記第2の値を割り当てることと
    によって前記マスクを生成するようにさらに構成されている、請求項9に記載の装置。
  11. 前記装置は、
    前記マスクを使用する前に、前記第1の連続部分と前記第2の連続部分との間の境界に関する画素の値を修正することによって前記マスクを修正し、かつ、
    画素位置の前記第1の連続部分と一致する画素位置の前記第1の連続部分に関連する第1の動きベクトルから結果として生じる第1のブロックの画素と、画素位置の前記第2の連続部分と一致する画素位置の前記第2の連続部分に関連する第2の動きベクトルから結果として生じる第2のブロックの画素と、前記第1の連続部分と前記第2の連続部分の間の境界に関する画素と一致する前記第1のブロックおよび前記第2のブロックの画素の合成された値とを含む予測ブロックを生成する
    ようにさらに構成されている、請求項10に記載の装置。
  12. 前記装置は、前記現ブロックがマスクを使用して符号化されたことを示す、前記現フレームの前記現ブロックに関連する符号化されたビットストリーム内の第1の信号を読み出すようにさらに構成され、ここで、前記マスクの生成は、前記ビデオシーケンスにおける第1のフレームの画素値と第2のフレームの画素値との間の差である残差を使用して前記マスクを生成することを含み、
    前記装置はまた、
    第1の動きベクトルを使用して参照フレーム内に第1の予測ブロックを生成し、
    第2の動きベクトルを使用して参照フレーム内に第2の予測ブロックを生成し、
    前記マスクを使用して前記第1の予測ブロックと前記第2の予測ブロックとを合成して、前記現ブロックの合成された予測ブロックを生成し、かつ、
    前記合成された予測ブロックを使用して現ブロックを復号することによって現ブロックを復号する
    ようにさらに構成されている、請求項10または請求項11に記載の装置。
  13. 前記装置は、
    前記現ブロックに関連する符号化されたビットストリーム内の前記第1のフレームおよび前記第2のフレームを示す第2の信号を少なくとも読み出し、
    符号化されたビットストリームから前記第1の動きベクトルを示す第3の信号を読み出し、かつ、
    符号化されたビットストリームから前記第2の動きベクトルを示す第4の信号を読み出す
    ようにさらに構成されている、請求項12に記載の装置。
  14. ビデオ信号の現ブロックを符号化または復号するためのマスクを生成する装置であって、前記ビデオ信号はビデオシーケンスを形成するフレームを含み、前記フレームは画素からなるブロックを有し、
    前記装置は、第2のフレーム内の画素値から第1のフレーム内の画素値を減算することによって残差を計算するように構成され、前記第1のフレームおよび前記第2のフレームの各々は前記ビデオシーケンス内の現フレームの前に配置されており、
    前記装置はまた、前記残差内の個々の画素位置に対する画素値に閾値を適用して画素を含む閾値残差を生成するように構成され、前記閾値残差内の各画素は、第1の値または前記第1の値とは異なる第2の値のうちの1つを有し、
    前記装置はまた、第1の値を有する画素からなる閾値残差の第1の領域または第2の値を有する画素からなる閾値残差の第2の領域のうちの少なくとも1つを拡張して、前記第1の値を有する画素位置の第1の連続部分と前記第2の値を有する画素位置の第2の連続部分とを有するマスクを形成するように構成され、前記第1の連続部分と前記第2の連続部分とは重なり合っておらず、前記第1の連続部分と前記第2の連続部分との間の境界は前記マスクの1つのエッジから他のエッジにまで亘っており、前記マスクは前記現ブロックと同じ画素次元を有する、装置。
  15. 前記装置は、前記境界に関する画素にぼかしを適用するようにさらに構成され、前記ぼかしは、前記第1の値と前記第2の値との間の値を有する画素の領域を形成する、請求項14に記載の装置。
  16. 前記装置は、前記第1の領域または前記第2の領域のうちの少なくとも1つを拡張した後、前記第2の値を有する画素によって包囲された前記第1の値を有する最大数の連続画素によって形成された領域を除去するためにシュリンク関数を適用して前記マスクを形成するようにさらに構成されている、請求項14または請求項15に記載の装置。
  17. 前記装置は、
    前記残差内の個々の画素位置の画素値を前記閾値と比較することと、
    前記画素値が前記閾値よりも小さい場合、前記第1の値を前記閾値残差内の同じ画素位置に割り当てることと、
    前記画素値が前記閾値よりも大きい場合、前記第2の値を前記閾値残差内の同じ画素位置に割り当てることと
    によって前記閾値を適用するようにさらに構成されている、請求項14乃至16のいずれか1項に記載の装置。
  18. 請求項1乃至8のいずれか1項に記載の方法を実行するように構成された装置。
  19. プロセッサと、命令を格納した非一時的メモリとを備え、前記命令は、前記プロセッサに請求項1乃至8のいずれか1項に記載の方法を実行させるかあるいは請求項9乃至17のいずれか1項に記載の装置を実行に移させる、請求項18に記載の装置。
JP2018519395A 2016-01-29 2016-12-20 前フレーム残差を用いた動きベクトル予測 Active JP6761033B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/010,594 US10469841B2 (en) 2016-01-29 2016-01-29 Motion vector prediction using prior frame residual
US15/010,594 2016-01-29
PCT/US2016/067792 WO2017131900A1 (en) 2016-01-29 2016-12-20 Motion vector prediction using prior frame residual

Publications (2)

Publication Number Publication Date
JP2018536339A JP2018536339A (ja) 2018-12-06
JP6761033B2 true JP6761033B2 (ja) 2020-09-23

Family

ID=57796999

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018519395A Active JP6761033B2 (ja) 2016-01-29 2016-12-20 前フレーム残差を用いた動きベクトル予測

Country Status (9)

Country Link
US (1) US10469841B2 (ja)
JP (1) JP6761033B2 (ja)
KR (1) KR102097281B1 (ja)
CN (1) CN107071440B (ja)
AU (1) AU2016389089B2 (ja)
CA (1) CA3001731C (ja)
DE (2) DE202016008178U1 (ja)
GB (1) GB2546886B (ja)
WO (1) WO2017131900A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10306258B2 (en) 2016-01-29 2019-05-28 Google Llc Last frame motion vector partitioning
US10469841B2 (en) 2016-01-29 2019-11-05 Google Llc Motion vector prediction using prior frame residual
US10462482B2 (en) * 2017-01-31 2019-10-29 Google Llc Multi-reference compound prediction of a block using a mask mode
CN110741640B (zh) * 2017-08-22 2024-03-29 谷歌有限责任公司 用于视频代码化中的运动补偿预测的光流估计
WO2020103944A1 (en) 2018-11-22 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Sub-block based motion candidate selection and signaling
WO2020215227A1 (en) * 2019-04-23 2020-10-29 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method and system for non-false motion detection
CN114208184A (zh) 2019-08-13 2022-03-18 北京字节跳动网络技术有限公司 基于子块的帧间预测中的运动精度
CN114424553A (zh) 2019-09-22 2022-04-29 北京字节跳动网络技术有限公司 基于子块的帧间预测的缩放方法
CN117480778A (zh) * 2021-06-15 2024-01-30 Oppo广东移动通信有限公司 残差编码和视频编码方法、装置、设备和系统

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62104283A (ja) 1985-10-31 1987-05-14 Kokusai Denshin Denwa Co Ltd <Kdd> 動画像伝送における差分復号信号の雑音低減装置
IT1232109B (it) 1989-06-21 1992-01-23 Cselt Centro Studi Lab Telecom Procedimento e dispositivo di riconoscimento del contorno di immagini in movimento
JP3037383B2 (ja) 1990-09-03 2000-04-24 キヤノン株式会社 画像処理システム及びその方法
DE69126585T2 (de) 1990-09-20 1998-01-02 Nec Corp Verfahren und Gerät zur Kodierung von bewegten Bildsignalen
GB2266023B (en) 1992-03-31 1995-09-06 Sony Broadcast & Communication Motion dependent video signal processing
FR2751772B1 (fr) * 1996-07-26 1998-10-16 Bev Bureau Etude Vision Soc Procede et dispositif fonctionnant en temps reel, pour le reperage et la localisation d'une zone en mouvement relatif dans une scene, ainsi que pour la determination de la vitesse et la direction du deplacement
US6614847B1 (en) 1996-10-25 2003-09-02 Texas Instruments Incorporated Content-based video compression
US6404813B1 (en) 1997-03-27 2002-06-11 At&T Corp. Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
US5969772A (en) 1997-10-30 1999-10-19 Nec Corporation Detection of moving objects in video data by block matching to derive a region motion vector
US20020015513A1 (en) * 1998-07-15 2002-02-07 Sony Corporation Motion vector detecting method, record medium on which motion vector calculating program has been recorded, motion detecting apparatus, motion detecting method, picture encoding apparatus, picture encoding method, motion vector calculating method, record medium on which motion vector calculating program has been recorded
US7085424B2 (en) * 2000-06-06 2006-08-01 Kobushiki Kaisha Office Noa Method and system for compressing motion image information
US7277486B2 (en) * 2002-05-03 2007-10-02 Microsoft Corporation Parameterization for fading compensation
JP4506308B2 (ja) * 2004-07-02 2010-07-21 三菱電機株式会社 画像処理装置及び該画像処理装置を用いた画像監視システム
US7756348B2 (en) * 2006-10-30 2010-07-13 Hewlett-Packard Development Company, L.P. Method for decomposing a video sequence frame
KR20080107965A (ko) 2007-06-08 2008-12-11 삼성전자주식회사 객체 경계 기반 파티션을 이용한 영상의 부호화, 복호화방법 및 장치
KR101555327B1 (ko) 2007-10-12 2015-09-23 톰슨 라이센싱 기하학적으로 분할된 쌍방 예측 모드 분할들을 비디오 인코딩 및 디코딩하기 위한 방법 및 장치
EP2081386A1 (en) * 2008-01-18 2009-07-22 Panasonic Corporation High precision edge prediction for intracoding
KR100939917B1 (ko) * 2008-03-07 2010-02-03 에스케이 텔레콤주식회사 움직임 예측을 통한 부호화 시스템 및 움직임 예측을 통한부호화 방법
US20090320081A1 (en) 2008-06-24 2009-12-24 Chui Charles K Providing and Displaying Video at Multiple Resolution and Quality Levels
US8675736B2 (en) 2009-05-14 2014-03-18 Qualcomm Incorporated Motion vector processing
EP2280550A1 (en) * 2009-06-25 2011-02-02 Thomson Licensing Mask generation for motion compensation
US8520975B2 (en) 2009-10-30 2013-08-27 Adobe Systems Incorporated Methods and apparatus for chatter reduction in video object segmentation using optical flow assisted gaussholding
US9473792B2 (en) * 2009-11-06 2016-10-18 Texas Instruments Incorporated Method and system to improve the performance of a video encoder
KR20110061468A (ko) * 2009-12-01 2011-06-09 (주)휴맥스 고해상도 영상의 부호화/복호화 방법 및 이를 수행하는 장치
KR101484280B1 (ko) * 2009-12-08 2015-01-20 삼성전자주식회사 임의적인 파티션을 이용한 움직임 예측에 따른 비디오 부호화 방법 및 장치, 임의적인 파티션을 이용한 움직임 보상에 따른 비디오 복호화 방법 및 장치
WO2011096770A2 (ko) * 2010-02-02 2011-08-11 (주)휴맥스 영상 부호화/복호화 장치 및 방법
US8879632B2 (en) 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
JP5368631B2 (ja) * 2010-04-08 2013-12-18 株式会社東芝 画像符号化方法、装置、及びプログラム
WO2011130186A2 (en) 2010-04-12 2011-10-20 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
PL2559246T3 (pl) 2010-04-13 2017-02-28 Ge Video Compression Llc Łączenie obszarów próbek
EP2569942A1 (en) * 2010-05-11 2013-03-20 Telefonaktiebolaget LM Ericsson (publ) Video signal compression coding
JP5541364B2 (ja) 2010-09-30 2014-07-09 富士通株式会社 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置、画像復号プログラム、及び画像符号化プログラム
KR101952103B1 (ko) 2010-10-08 2019-02-27 지이 비디오 컴프레션, 엘엘씨 블록 분할 및 블록 병합을 지원하는 픽처 코딩
US20120147961A1 (en) 2010-12-09 2012-06-14 Qualcomm Incorporated Use of motion vectors in evaluating geometric partitioning modes
US10027982B2 (en) * 2011-10-19 2018-07-17 Microsoft Technology Licensing, Llc Segmented-block coding
EP2597872A3 (en) 2011-11-23 2013-12-25 Humax Co., Ltd. Methods for encoding/decoding of video using common merging candidate set of asymmetric partitions
WO2013163197A1 (en) 2012-04-24 2013-10-31 Lyrical Labs Video Compression Technology, LLC Macroblock partitioning and motion estimation using object analysis for video compression
US20130287109A1 (en) 2012-04-29 2013-10-31 Qualcomm Incorporated Inter-layer prediction through texture segmentation for video coding
US20130329800A1 (en) * 2012-06-07 2013-12-12 Samsung Electronics Co., Ltd. Method of performing prediction for multiview video processing
US9549182B2 (en) * 2012-07-11 2017-01-17 Qualcomm Incorporated Repositioning of prediction residual blocks in video coding
US9076062B2 (en) * 2012-09-17 2015-07-07 Gravity Jack, Inc. Feature searching along a path of increasing similarity
US9819965B2 (en) 2012-11-13 2017-11-14 Intel Corporation Content adaptive transform coding for next generation video
KR20150143585A (ko) 2013-04-23 2015-12-23 퀄컴 인코포레이티드 비디오 코딩에서 예측 잔차 블록들의 재배치
GB2520002B (en) * 2013-11-04 2018-04-25 British Broadcasting Corp An improved compression algorithm for video compression codecs
US9986236B1 (en) * 2013-11-19 2018-05-29 Google Llc Method and apparatus for encoding a block using a partitioned block and weighted prediction values
TWI536811B (zh) 2013-12-27 2016-06-01 財團法人工業技術研究院 影像處理方法與系統、解碼方法、編碼器與解碼器
KR102457810B1 (ko) * 2014-03-19 2022-10-21 삼성전자주식회사 3d 영상에 관련된 블록의 파티션 경계에서 필터링 수행 방법
US10554965B2 (en) * 2014-08-18 2020-02-04 Google Llc Motion-compensated partitioning
JP6443869B2 (ja) * 2014-11-14 2018-12-26 ホアウェイ・テクノロジーズ・カンパニー・リミテッド デジタル画像を処理するためのシステムおよび方法
US9613288B2 (en) * 2014-11-14 2017-04-04 Adobe Systems Incorporated Automatically identifying and healing spots in images
US9838710B2 (en) * 2014-12-23 2017-12-05 Intel Corporation Motion estimation for arbitrary shapes
US10469841B2 (en) 2016-01-29 2019-11-05 Google Llc Motion vector prediction using prior frame residual

Also Published As

Publication number Publication date
CN107071440B (zh) 2020-04-28
CA3001731C (en) 2020-11-24
GB201621550D0 (en) 2017-02-01
JP2018536339A (ja) 2018-12-06
AU2016389089B2 (en) 2020-01-02
US20170223357A1 (en) 2017-08-03
US10469841B2 (en) 2019-11-05
DE202016008178U1 (de) 2017-05-24
CN107071440A (zh) 2017-08-18
KR20180054715A (ko) 2018-05-24
GB2546886B (en) 2019-10-09
KR102097281B1 (ko) 2020-04-06
GB2546886A (en) 2017-08-02
WO2017131900A1 (en) 2017-08-03
DE102016124926A1 (de) 2017-08-03
CA3001731A1 (en) 2017-08-03
AU2016389089A1 (en) 2018-04-19

Similar Documents

Publication Publication Date Title
JP6761033B2 (ja) 前フレーム残差を用いた動きベクトル予測
US10798408B2 (en) Last frame motion vector partitioning
CN113287306B (zh) 用于从比特流中解码编码的视频块的方法、装置和解码器
JP6767488B2 (ja) 参照フレームのバッファ追跡を通じた動きベクトル参照の選択
CN110169068B (zh) Dc系数符号代码化方案
US10506240B2 (en) Smart reordering in recursive block partitioning for advanced intra prediction in video coding
CN110741641B (zh) 用于视频压缩的方法和装置
WO2014026097A1 (en) Two-step quantization and coding method and apparatus
WO2017180201A1 (en) Adaptive directional loop filter
US20170164007A1 (en) Mixed boolean-token ans coefficient coding
JP2022514505A (ja) ビットレート削減のためのビデオストリーム適応フィルタリング
CN109906610B (zh) 使用滤波和子空间投影的视频编译的恢复

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180427

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190625

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191028

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20200115

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200330

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200526

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200903

R150 Certificate of patent or registration of utility model

Ref document number: 6761033

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250