JP2020039167A - 計算装置及び方法 - Google Patents

計算装置及び方法 Download PDF

Info

Publication number
JP2020039167A
JP2020039167A JP2019208035A JP2019208035A JP2020039167A JP 2020039167 A JP2020039167 A JP 2020039167A JP 2019208035 A JP2019208035 A JP 2019208035A JP 2019208035 A JP2019208035 A JP 2019208035A JP 2020039167 A JP2020039167 A JP 2020039167A
Authority
JP
Japan
Prior art keywords
block
current
prediction
intra
blocks
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.)
Granted
Application number
JP2019208035A
Other languages
English (en)
Other versions
JP6931690B2 (ja
Inventor
ジュウ,リーホワ
Lihua Zhu
ウー,ヨーンジュイン
Yongjun Wu
ジェイ. サリヴァン,ゲイリー
j sullivan Gary
ジェイ. サリヴァン,ゲイリー
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing 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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of JP2020039167A publication Critical patent/JP2020039167A/ja
Application granted granted Critical
Publication of JP6931690B2 publication Critical patent/JP6931690B2/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/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/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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/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/162User input
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

【課題】イントラブロックコピー予測を行うことである。【解決手段】イントラブロックコピー(BC)予測における革新技術並びにエンコーダ側の検索パターン及び分割のためのアプローチにおける革新技術。例えば、一部の革新技術は、イントラBC予測のための非対称パーティションの使用に関連している。その他の革新技術は、エンコーダがブロックベクトル推定時(イントラBC予測の場合)又は動き推定時に使用する検索パターン又はアプローチに関連している。さらに、その他の革新技術は、BV推定時の水平バイアス又は垂直バイアスを含むBV検索範囲の使用に関連している。【選択図】図10

Description

エンジニアは、圧縮(ソース符号化又はソースエンコーディングとも呼ばれる)を使用してデジタルビデオのビットレートを削減する。圧縮は、情報をより低いビットレートの形態に変換することによって、ビデオ情報の格納及び送信のコストを低減する。復元(デコーディングとも呼ばれる)は、圧縮された形態から元の情報のバージョンを再構成する。「コーデック」は、エンコーダ/デコーダシステムである。
この20年にわたり、ITU−T H.261、H.262(MPEG−2又はISO/IEC 13818−2)、H.263及びH.264(MPEG−4 AVC又はISO/IEC 14496−10)規格、MPEG−1(ISO/IEC 11172−2)及びMPEG−4 Visual(ISO/IEC 14496−2)規格、並びにSMPTE 421M(VC−1)規格を含むさまざまなビデオコーデック規格が採用されてきた。最近では、H.265/HEVC規格(ITU−T H.265又はISO/IEC 23008−2)が承認されている。H.265/HEVC規格の拡張(例えば、スケーラブルビデオ符号化/デコーディング用、サンプルビット深度又は彩度(chroma)サンプリングレートに関してより忠実度の高いビデオの符号化/デコーディング用、スクリーンキャプチャコンテンツ用、又はマルチビュー符号化/デコーディング用)が現在開発中である。通常、ビデオコーデック規格は、エンコード済みビデオビットストリームの構文のオプションを定義し、エンコーディング及びデコーディングにおいて特定の機能が使用される場合のビットストリーム内のパラメータを詳述する。多くの場合、ビデオコーデック規格は、デコーディングにおいて結果の適合を実現するためにデコーダが実行する必要のあるデコーディング処理に関する詳細も提供する。コーデック規格の他に、さまざまな独自のコーデック形式が、エンコード済みビデオビットストリームの構文のその他のオプション及び対応するデコーディング処理を定義している。
イントラブロックコピー(block copy:BC)は、HEVC拡張用に開発中の予測モードである。イントラBC予測モードでは、画像の現在のブロックのサンプル値が、同じ画像内で以前に再構成されたサンプル値を使用して予測される。ブロックベクトル(block vector:BV)は、現在のブロックから、予測に使用される以前に再構成されたサンプル値を含む画像の領域までの変位を示す。BVは、ビットストリーム内で信号伝達される。イントラBC予測は、イントラ画像予測の一形態である。画像のブロックに対するイントラBC予測は、同じ画像内のサンプル値以外のサンプル値を使用しない。
HEVC規格で現在規定され、HEVC規格の一部の参照ソフトウェアで実装されているように、イントラBC予測モードには、いくつかの問題がある。具体的には、イントラBC予測のブロックサイズのオプションは、多くのシナリオにおいて制限が厳しすぎ、ブロックサイズに関するエンコーダ側の決定及びイントラBC予測の使用方法は、多くのシナリオにおいて効率的に行われていない。
発明の概要では、イントラブロックコピー(BC)予測における革新技術、並びにエンコーダ側の検索パターン、検索範囲、及び分割のためにアプローチにおける革新技術について詳細に説明する。例えば、革新技術の一部は、イントラBC予測のための非対称パーティション(「AMP」と呼ばれる場合もある)の使用に関連している。その他の革新技術は、エンコーダが(イントラBC予測のための)ブロックベクトル(BV)推定時又は動き推定時に使用する検索パターン又はアプローチに関連している。さらにその他の革新技術は、BV推定時に水平バイアス又は垂直バイアスを伴うBV検索範囲の使用に関連している。
本明細書に記載された革新技術の第1の態様によれば、画像エンコーダ又はビデオエンコーダは、画像又はビデオをエンコードしてエンコード済みデータを生成し、エンコード済みデータをビットストリームの一部として出力する。エンコーディングの一部として、エンコーダは、イントラBC予測のために非対称に分割された現在のブロックに対して、イントラBC予測を実行する。例えば、現在のブロックが2N×2Nブロックであり、現在のブロックは(1)2N×N/2ブロック及び2N×3N/2ブロック、又は(2)2N×3N/2ブロック及び2N×N/2ブロックに分割される。又は、別の例として、現在のブロックが2N×2Nブロックであり、現在のブロックは(1)N/2×2Nブロック及び3N/2×2Nブロック、又は(2)3N/2×2Nブロック及びN/2×2Nブロックに分割される。さらに一般的には、非対称分割では、現在のブロックを異なる大きさを持つ2つのパーティションに分割することができる。エンコーディングの一部として、エンコーダは、イントラBC予測のために対称に分割された他のブロックに対して、イントラBC予測を実行することもできる。例えば、前記他のブロックが、(1)2つの2N×Nブロック、(2)2つのN×2Nブロック、又は(3)4つのN×Nブロックに分割された2N×2Nブロックであり、これらはそれぞれ、2つのN×N/2ブロック、2つのN/2×Nブロック、又は4つのN/2×N/2ブロックにさらに分割できる。さらに一般的には、対称分割では、前記他のブロックを、同じ大きさを持つパーティションに分割できる。
本明細書に記載された革新技術の第2の態様によれば、画像デコーダ又はビデオデコーダは、エンコード済みデータをビットストリームの一部として受信し、エンコード済みデータをデコードして画像又はビデオを再構成する。デコーディングの一部として、デコーダは、イントラBC予測のために非対称に分割された現在のブロックに対して、イントラBC予測を実行する。例えば、現在のブロックが2N×2Nブロックであり、現在のブロックは(1)2N×N/2ブロック及び2N×3N/2ブロック、又は(2)2N×3N/2ブロック及び2N×N/2ブロックに分割される。又は、別の例として、現在のブロックが2N×2Nブロックであり、現在のブロックは(1)N/2×2Nブロック及び3N/2×2Nブロック、又は(2)3N/2×2Nブロック及びN/2×2Nブロックに分割される。さらに一般的には、非対称分割では、現在のブロックを異なる大きさを持つ2つのパーティションに分割することができる。デコーディングの一部として、デコーダは、イントラBC予測のために対称に分割された他のブロックに対して、イントラBC予測を実行することもできる。例えば、前記他のブロックが、(1)2つの2N×Nブロック、(2)2つのN×2Nブロック、又は(3)4つのN×Nブロックに分割された2N×2Nブロックであり、これらはそれぞれ、2つのN×N/2ブロック、2つのN/2×Nブロック、又は4つのN/2×N/2ブロックにさらに分割できる。さらに一般的には、対称分割では、前記他のブロックを、同じ大きさを持つパーティションに分割できる。
本明細書に記載された革新技術の第3の態様によれば、画像エンコーダ又はビデオエンコーダは、画像又はビデオをエンコードしてエンコード済みデータを生成し、エンコード済みデータをビットストリームの一部として出力する。エンコーディングの一部として、エンコーダは、現在の画像の現在のブロック(例えば、予測ユニットの予測ブロック)に対する予測を計算する。予測は、動き推定用又はイントラBC予測のためのBV推定用とすることができる。いずれの場合も、予測の計算では、現在のブロックのパーティションを識別するために、ボトムアップアプローチを使用する。一般に、現在のブロックのパーティションは、異なる大きさを持つ2つ以上のパーティションを含む。例えば、現在のブロックが2N×2Nブロックであり、ボトムアップアプローチは、(a)2N×2NブロックのN×Nブロックごとにモードをチェックすることと、(b)各N×Nブロックに対して最適なモードを選択することと、(c)各N×Nブロックのベクトル値をキャッシュすることと、(d)キャッシュされたベクトル値を使用することを含む、2N×2Nブロックに対して2Nの大きさを持つモードをチェックすることと、(e)2N×2Nブロックに対して2Nの大きさを持つ最適なモードを選択することと、(f)2N×2Nブロックに対して2Nの大きさを持つ最適なモードと、2N×2Nブロックの各N×Nブロックに対して選択された最適なモードとの間で選択することとを含む。又は、別の例として、現在のブロックが2N×2Nブロックであり、ボトムアップアプローチは、(a)2N×2NブロックのN×Nブロックごとにモードのサブセットをチェックすることと、(b)各N×Nブロックのベクトル値をキャッシュすることと、(c)キャッシュされたベクトル値を使用することを含む、2N×2Nブロックに対して2Nの大きさを持つモードのサブセットをチェックすることと、(d)2N×2Nブロックに対して2Nの大きさを持つ最適なモードを選択することと、(e)2N×2Nブロックに対して2Nの大きさを持つ最適なモードと、各N×Nブロックに対して最適なモードとの間で選択することとを含む。
本明細書に記載された革新技術の第4の態様によれば、画像エンコーダ又はビデオエンコーダは、画像又はビデオをエンコードしてエンコード済みデータを生成し、エンコード済みデータをビットストリームの一部として出力する。エンコーディングの一部として、エンコーダは、現在の画像の現在のブロックに対する予測を計算する。予測は、動き推定用又はイントラBC予測のためのBV推定用とすることができる。いずれの場合も、予測の計算は、(a)現在の最適な位置を囲む小さい近傍領域(例えば、現在の最適な位置に水平又は垂直に直接隣接する位置)内の反復評価によって、予測のための現在の最適な位置を識別することと、(b)現在の最適な位置を囲む連続するより大きい近傍領域(例えば、小さい近傍領域の外側にあるリング内の位置)内の反復評価によって、現在の最適な位置を確認することとを含む。例えば、現在の最適な位置が、より大きい近傍領域のいずれかに含まれる位置よりも悪い場合、エンコーダは、現在の最適な位置を置き換え、識別と確認を繰り返す。連続するより大きい近傍領域内での評価の反復回数のしきい値に達した場合、確認段階を停止できる。
本明細書に記載された革新技術の第5の態様によれば、画像エンコーダ又はビデオエンコーダは、画像の現在のブロックに対してBVを決定し、BVを使用して現在のブロックに対してイントラBC予測を実行し、BVをエンコードする。BVは、画像内の領域への変位を示す。エンコーダは、BVを決定する場合、領域が水平バイアス又は垂直バイアスを伴うBV検索範囲内にあるという制約をチェックする。エンコーダは、BV検索範囲を、複数の使用可能なBV検索範囲から(例えば、ヒストグラムデータ構造内で追跡できる1つ以上の以前のブロックの少なくとも一部のBV値に応じて)選択できる。
本明細書に記載された革新技術の第6の態様によれば、画像エンコーダ又はビデオエンコーダは、イントラBC予測を使用して画像のデータをエンコードし、エンコード済みデータをビットストリームの一部として出力する。エンコーディングの一部として、エンコーダは、水平バイアス又は垂直バイアスを伴うBV検索範囲を使用してBV推定処理を実行する。エンコーダは、BV検索範囲を、複数の使用可能なBV検索範囲から(例えば、ヒストグラムデータ構造内で追跡できる1つ以上の以前のブロックの少なくとも一部のBV値に応じて)選択できる。
各革新技術は、方法の一部として、方法を実行するのに適したコンピューティングデバイスの一部として、又はコンピューティングデバイスに方法を実行させるためのコンピュータ実行可能命令を格納する具体的なコンピュータ可読媒体の一部として実装できる。さまざまな革新技術を組み合わせて、又は別々に使用できる。
本発明の前述及びその他の対象、機能、及び利点は、添付の図を参照しながら、以下の詳細な説明でさらに明らかにされる。
記載された一部の実施形態を実装できるコンピューティングシステムの例の図である。 記載された一部の実施形態を実装できるネットワーク環境の例の図である。 記載された一部の実施形態を実装できるネットワーク環境の例の図である。 記載された一部の実施形態と併せて実装できるエンコーダシステムの例の図である。 記載された一部の実施形態と併せて実装できるデコーダシステムの例の図である。 記載された一部の実施形態と併せて実装できるビデオエンコーダの例を説明する図である。 記載された一部の実施形態と併せて実装できるビデオエンコーダの例を説明する図である。 記載された一部の実施形態と併せて実装できるビデオデコーダの例を説明する図である。 画像のブロックに対するイントラBC予測、及びブロックマッチングにおけるブロックに対する候補ブロックの例を説明する図である。 画像のブロックに対するイントラBC予測、及びブロックマッチングにおけるブロックに対する候補ブロックの例を説明する図である。 いくつかの非対称パーティション及びいくつかの対称パーティションを含む、イントラBC予測のブロックサイズの例を説明する図である。 非対称パーティションを使用するイントラBC予測を含む、エンコーディングのための一般化手法である。 非対称パーティションを使用するイントラBC予測を含む、デコーディングのための一般化手法である。 画像のブロックに対する動き推定を説明する図である。 イントラBC予測対象のブロックを分割するためのトップダウンアプローチを説明するフローチャート及びそれに付随する図である。 分割のためのボトムアップアプローチを使用するための一般化手法を説明するフローチャートである。 イントラBC予測対象のブロックを分割するためのボトムアップアプローチを説明するフローチャート及びそれに付随する図である。 イントラBC予測対象のブロックを分割するための、さらに高速なボトムアップアプローチを説明するフローチャート及びそれに付随する図である。 小さい近傍領域内の位置の反復評価及びより大きい近傍領域内の位置の反復確認を使用してブロックに対するBV値又はMV値を検索するための一般化手法を説明するフローチャートである。 ブロックに対してBV値又はMV値を検索する場合の、小さい近傍領域内の位置の反復評価を説明する図である。 ブロックに対してBV値又はMV値を検索する場合の、小さい近傍領域内の位置の反復評価を説明する図である。 ブロックに対してBV値又はMV値を検索する場合の、1つ以上のより大きい近傍領域内の位置の反復確認を説明する図である。 小さい近傍領域内の位置の反復評価及びより大きい近傍領域域内の位置の反復確認を使用してブロックに対してBV値又はMV値を検索するための手法の例を説明するフローチャートである。 BV値の検索範囲に対する制約の例を説明する図である。 BV値の検索範囲に対する制約の例を説明する図である。 BV値の検索範囲に対する制約の例を説明する図である。 BV値の検索範囲に対する制約の例を説明する図である。 BV値の検索範囲に対する制約の例を説明する図である。 BV値の選択に対する1つ以上の制約の下でイントラBC予測モードを使用してエンコードするための一般化手法を説明するフローチャートである。 画像のブロックに対するZスキャンの順序の例を説明する図である。
イントラブロックコピー(BC)予測における革新技術、並びにエンコーダ側の検索パターン、検索範囲、及び分割のためのアプローチにおける革新技術について詳細に説明する。例えば、革新技術の一部は、エンコード及び/又はデコード時のイントラBC予測のための非対称パーティション(「AMP」と呼ばれる場合もある)の使用に関連している。その他の革新技術は、エンコーダが(イントラBC予測のための)ブロックベクトル(BV)推定時又は動き推定時に使用する検索パターン又はアプローチに関連している。さらにその他の革新技術は、BV推定時に水平バイアス又は垂直バイアスを伴うBV検索範囲の使用に関連している。
本明細書に記載された処理は、ビデオエンコーダ又はビデオデコーダで実行されていると説明されているが、多くの場合、処理は、別の種類の媒体処理ツール(例えば、画像エンコーダ又は画像デコーダ)によって実行できる。
本明細書に記載された革新技術の一部は、H.265/HEVC規格に固有の構文要素及び処理を参照して説明されている。例えば、H.265/HEVC規格の草案バージョンJCTVC−P1005(「High Efficiency Video Coding (HEVC) Range Extensions Text Specification:Draft 6」、JCTVC−P1005_v1、2014年2月)が参照される。本明細書に記載された革新技術は、他の規格又は形式でも実装できる。
本明細書に記載された革新技術の多くは、スクリーンキャプチャコンテンツなどの特定の「人工的に作成された」ビデオコンテンツをエンコードする場合のレート歪み性能を改善できる。一般に、スクリーンキャプチャビデオ(スクリーンコンテンツビデオとも呼ばれる)は、カメラのみによって捕捉されるビデオコンテンツとは対照的に、描画されたテキスト、コンピュータグラフィックス、アニメーションによって生成されたコンテンツ、又はコンピュータディスプレイに描画されたときに捕捉されたその他の同様の種類のコンテンツを含むビデオである。通常、スクリーンキャプチャコンテンツは、繰り返し構造(例えば、グラフィックス、テキスト文字)を含む。通常、スクリーンキャプチャコンテンツは、高彩度サンプリング解像度の形式(例えば、YUV 4:4:4又はRGB 4:4:4)でエンコードされるが、より低い彩度サンプリング解像度の形式(例えば、YUV 4:2:0)でエンコードされる場合もある。スクリーンキャプチャコンテンツのエンコーディング/デコーディングの一般的シナリオは、リモートデスクトップ会議及び自然なビデオ又はその他の「混合コンテンツ」ビデオ上のグラフィックオーバーレイのエンコーディング/デコーディングを含む。本明細書に記載された革新技術のいくつかは、スクリーンコンテンツビデオ又はその他の人工的に作成されたビデオのエンコーディングに適している。それらの革新技術は、自然なビデオにも使用できるが、効果的ではない可能性がある。本明細書に記載されたその他の革新技術は、自然なビデオ又は人工的に作成されたビデオのエンコーディングにおいて効果的である。
さらに一般的には、本明細書に記載された例に対するさまざまな代替が可能である。例えば、本明細書に記載された方法の一部は、記載された方法の動作の順序を変更すること、特定の方法の動作を分割、反復、又は省略することなどによって、変えることができる。開示された技術のさまざまな態様を組み合わせて、又は単独で使用できる。さまざまな実施形態は、記載された革新技術の1つ以上を使用する。本明細書に記載された革新技術の一部は、背景技術に示された問題の1つ以上に対処する。通常、特定の技術/ツールが、そのような問題をすべて解決することはない。
I.コンピューティングシステムの例
図1は、記載された革新技術のいくつかを実装できる適切なコンピューティングシステム(100)の一般化された例を示す。それらの革新技術は、さまざまな汎用コンピューティングシステム又は専用コンピューティングシステムで実装できるため、コンピューティングシステム(100)は、使用範囲又は機能に関するどのような制限も示唆することを意図していない。
図1を参照すると、コンピューティングシステム(100)は、1つ以上のプロセッシングユニット(110、115)及びメモリ(120、125)を含んでいる。プロセッシングユニット(110、115)は、コンピュータ実行可能命令を実行する。プロセッシングユニットは、汎用セントラルプロセッシングユニット(「CPU」)、特定用途向け集積回路(「ASIC」)内のプロセッサ、又は任意のその他の種類のプロセッサにすることができる。マルチプロセッシングシステムでは、処理能力を向上するために、複数のプロセッシングユニットがコンピュータ実行可能命令を実行する。例えば、図1は、セントラルプロセッシングユニット(110)及びグラフィックプロセッシングユニット又はコプロセッシングユニット(115)を示している。具体的なメモリ(120、125)は、プロセッシングユニットがアクセスできる揮発性メモリ(例えば、レジスタ、キャッシュ、RAM)、不揮発性メモリ(例えば、ROM、EEPROM、フラッシュメモリなど)、又はこれら2つの組み合わせにすることができる。メモリ(120、125)は、非対称パーティションを使用するイントラBC予測に関する1つ以上の革新技術並びに/或いはエンコーダ側の検索パターン、水平バイアス又は垂直バイアスを伴う検索範囲、及び/又は分割のためのアプローチに関する1つ以上の革新技術を実装するソフトウェア(180)を、プロセッシングユニットによる実行に適したコンピュータ実行可能命令の形態で格納する。
コンピューティングシステムは、その他の機能を備えることができる。例えば、コンピューティングシステム(100)は、記憶装置(140)、1つ以上の入力デバイス(150)、1つ以上の出力デバイス(160)、及び1つ以上の通信接続(170)を含む。バス、コントローラ、又はネットワークなどの相互接続機構(示されていない)は、コンピューティングシステム(100)のコンポーネントを相互接続する。通常、オペレーティングシステムソフトウェア(示されていない)は、コンピューティングシステム(100)で実行するその他のソフトウェアの動作環境を提供し、コンピューティングシステム(100)のコンポーネントの動作を調整する。
具体的な記憶装置(140)は、取り外し可能又は取り外し不可にすることができ、磁気ディスク、磁気テープ又は磁気カセット、CD−ROM、DVD、或いは、情報の格納に使用することができ、コンピューティングシステム(100)内でアクセスできる任意のその他の媒体を含む。記憶装置(140)は、非対称パーティションを使用するイントラBC予測に関する1つ以上の革新技術並びに/或いはエンコーダ側の検索パターン、検索範囲、及び/又は分割のためのアプローチに関する1つ以上の革新技術を実装するソフトウェア(180)の命令を格納する。
入力デバイス(150)は、キーボード、マウス、ペン、又はトラックボールなどのタッチ入力デバイス、音声入力デバイス、スキャンデバイス、或いはコンピューティングシステム(100)に入力を提供するその他のデバイスにすることができる。ビデオの場合、入力デバイス(150)は、カメラ、ビデオカード、TVチューナカード、スクリーンキャプチャモジュール、又はビデオ入力をアナログ又はデジタルの形態で受け取る同様のデバイス、或いはビデオ入力をコンピューティングシステム(100)に読み込むCD−ROM又はCD−RWにすることができる。出力デバイス(160)は、ディスプレイ、プリンタ、スピーカ、CDライター、又はコンピューティングシステム(100)からの出力を提供する別のデバイスにすることができる。
通信接続(170)は、通信媒体を介した別のコンピューティングエンティティへの通信を可能にする。通信媒体は、コンピュータ実行可能命令、音声入力又はビデオ入力、音声出力又はビデオ出力、或いは変調データ信号内のその他のデータなどの情報を伝達する。変調データ信号は、信号内の情報をエンコードするような方法で設定又は変更された1つ以上の特性を持つ信号である。制限ではなく例として、通信媒体は電気、光、RF、又はその他の搬送波を使用できる。
各革新技術は、一般的なコンピュータ可読媒体を背景において説明できる。コンピュータ可読媒体は、コンピューティング環境内でアクセスできる任意の使用可能な具体的媒体である。制限ではなく例として、コンピューティングシステム(100)では、コンピュータ可読媒体はメモリ(120、125)、記憶装置(140)、及びこれらの任意の組み合わせを含む。
各革新技術は、プログラムモジュールに含められ、現実のターゲットプロセッサ又は仮想的ターゲットプロセッサ上のコンピューティングシステムで実行されるコンピュータ実行可能命令などの、一般的なコンピュータ実行可能命令を背景において説明できる。一般に、プログラムモジュールは、特定のタスクを実行する、又は特定の抽象データ型を実装するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造などを含む。プログラムモジュールの機能は、さまざまな実施形態での必要に応じて、結合するか、又はプログラムモジュール間で分割することができる。プログラムモジュールのコンピュータ実行可能命令は、ローカルコンピューティングシステム又は分散コンピューティングシステム内で実行できる。
本明細書では、「システム」及び「デバイス」という用語は、相互に置き換え可能なように使用される。特に文脈によって明確に示していない限り、これらの用語は、コンピューティングシステム又はコンピューティングデバイスの種類に対するどのような制限も意味していない。一般に、コンピューティングシステム又はコンピューティングデバイスは、ローカルにするか、又は分散することができ、専用ハードウェア及び/又は汎用ハードウェアと、本明細書に記載された機能を実装するソフトウェアとの任意の組み合わせを含むことができる。
開示された方法は、開示された方法のいずれかを実行するように構成された特殊なコンピューティングハードウェアを使用して実装することもできる。例えば、開示された方法は、開示された方法のいずれかを実装するように特別に設計又は構成された集積回路(例えば、ASIC(ASICデジタル信号プロセッサ(digital signal processor:DSP)など)、グラフィックプロセッシングユニット(graphics processing unit:GPU)、又はフィールドプログラマブルゲートアレイ(field programmable gate array:FPGA)などのプログラマブルロジックデバイス(programmable logic device:PLD))によって実装できる。
説明の目的で、詳細な説明では、コンピューティングシステムにおけるコンピュータの処理を説明するために、「決定する」及び「使用する」のような用語を使用する。これらの用語は、コンピュータによって実行される処理の高度な抽象化であり、人間によって実行される行動と混同するべきではない。これらの用語に対応する実際のコンピュータの処理は、実装に応じて変わる。本明細書で符号化オプションを説明するために使用されているように、「最適」という用語(「最適な位置」、分割のための「最適なモード」、「最適な組み合わせ」など)は、推定された符号化効率又は実際の符号化効率に関して、歪みコスト、ビットレートコスト、又は歪みコストとビットレートコストの組み合わせの観点から、その他の符号化オプションと比較して優先される符号化オプションを示す。任意の使用可能な歪み指標を、歪みコストに使用できる。任意の使用可能なビットレート指標を、ビットレートコストに使用できる。その他の要因(アルゴリズム的な符号化の複雑さ、アルゴリズム的なデコーディングの複雑さ、リソース使用量、及び/又は遅延など)も、どの符号化オプションが「最適」であるかに関する決定に影響を与える可能性がある。
II.ネットワーク環境の例
図2a及び2bは、ビデオエンコーダ(220)及びビデオデコーダ(270)を含むネットワーク環境(201、202)の例を示す。エンコーダ(220)及びデコーダ(270)は、適切な通信プロトコルを使用してネットワーク(250)を介して接続される。ネットワーク(250)は、インターネット又は別のコンピュータネットワークを含むことができる。
図2aに示されたネットワーク環境(201)において、各リアルタイム通信(real−time communication:RTC)ツール(210)は、双方向通信用のエンコーダ(220)及びデコーダ(270)の両方を含む。特定のエンコーダ(220)は、H.265/HEVC規格の変形又は拡張、SMPTE 421M規格、ISO/IEC 14496−10規格(H.264又はAVCとも呼ばれる)、別の規格、又は独自の形式に準拠する出力を生成することができ、対応するデコーダ(270)は、エンコーダ(220)からエンコード済みデータを受け取る。双方向通信は、ビデオ会議、ビデオ電話、或いはその他の二者又は多者通信のシナリオの一部とすることができる。図2aのネットワーク環境(201)は2つのリアルタイム通信ツール(210)を含んでいるが、代わりにネットワーク環境(201)は、多者通信に参加する3つ以上のリアルタイム通信ツール(210)を含むことができる。
リアルタイム通信ツール(210)は、エンコーダ(220)によるエンコーディングを管理する。図3は、リアルタイム通信ツール(210)に含めることができるエンコーダシステム(300)の例を示している。或いは、リアルタイム通信ツール(210)は、別のエンコーダシステムを使用する。リアルタイム通信ツール(210)は、デコーダ(270)によるデコーディングも管理する。図4は、リアルタイム通信ツール(210)に含めることができるデコーダシステム(400)の例を示している。或いは、リアルタイム通信ツール(210)は、別のデコーダシステムを使用する。
図2bに示されたネットワーク環境(202)において、エンコーディングツール(212)は、デコーダ(270)を含む複数の再生ツール(214)に配信するためにビデオをエンコードするエンコーダ(220)を含む。一方向通信は、ビデオ調査システム、Webカメラ監視システム、スクリーンキャプチャモジュール、リモートデスクトップ会議のプレゼンテーション、又はビデオがエンコードされて1つの場所から1つ以上の他の場所に送信されるその他のシナリオに提供可能である。図2bにおけるネットワーク環境(202)は2つの再生ツール(214)を含んでいるが、ネットワーク環境(202)は、さらに多い又は少ない再生ツール(214)を含むことができる。一般に再生ツール(214)は、再生ツール(214)が受信するためのビデオのストリームを決定するために、エンコーディングツール(212)と通信する。再生ツール(214)は、ストリームを受信し、受信したエンコード済みデータを適切な期間バッファリングし、デコーディング及び再生を開始する。
図3は、エンコーディングツール(212)に含めることができるエンコーダシステム(300)の例を示している。或いは、エンコーディングツール(212)は、別のエンコーダシステムを使用する。エンコーディングツール(212)は、1つ以上の再生ツール(214)との接続を管理するためのサーバ側コントローラロジックも含むことができる。図4は、再生ツール(214)に含めることができるデコーダシステム(400)の例を示している。或いは、再生ツール(214)は、別のデコーダシステムを使用する。再生ツール(214)は、エンコーディングツール(212)との接続を管理するためのクライアント側コントローラロジックも含むことができる。
III.エンコーダシステムの例
図3は、記載された一部の実施形態と併せて実装できるエンコーダシステム(300)の例のブロック図である。エンコーダシステム(300)は、リアルタイム通信用の低レイテンシエンコーディングモード、トランスコーディングモード、及びファイル又はストリームからの再生用の媒体を製造するための高レイテンシエンコーディングモードなど、複数のエンコーディングモードのいずれでも動作できる汎用エンコーディングツールにするか、又はそのようなエンコーディングモードのいずれかに適した専用エンコーディングツールにすることができる。エンコーダシステム(300)は、特定の種類のコンテンツ(例えば、スクリーンキャプチャコンテンツ)のエンコーディングに適応させることができる。エンコーダシステム(300)は、オペレーティングシステムモジュールとして、アプリケーションライブラリの一部として、又はスタンドアロンアプリケーションとして実装できる。全体として、エンコーダシステム(300)は、一連のソースビデオフレーム(311)をビデオソース(310)から受信し、チャネル(390)への出力としてエンコード済みデータを生成する。チャネルへのエンコード済みデータ出力は、イントラBC予測モードを使用してエンコードされたコンテンツを含むことができる。
ビデオソース(310)は、カメラ、チューナカード、記憶媒体、スクリーンキャプチャモジュール、又はその他のデジタルビデオソースにすることができる。ビデオソース(310)は、一連のビデオフレームを、一定のフレームレート(例えば、1秒当たり30フレーム)で生成する。本明細書で使用されているように、「フレーム」という用語は、符号化又は再構成されたソース画像データを一般に指す。順次走査ビデオの場合、フレームは順次走査ビデオフレームになる。インターレースビデオの場合、実施形態例では、インターレースビデオフレームが、エンコーディングの前にインターレース解除される場合がある。或いは、2つの補完的なインターレースビデオフィールドは、1つのビデオフレームとして一緒にエンコードされるか、又は2つの別々にエンコードされるフィールドとしてエンコードされる。「フレーム」又は「画像」という用語は、順次走査ビデオフレーム又はインターレース走査ビデオフレームを示すことの他に、対になっていない単一のフィールド、ビデオフィールドの補完的な対、特定の時間でのビデオオブジェクトを表すビデオオブジェクトプレーン、又はより大きい画像内の対象領域を示すことができる。ビデオオブジェクトプレーン又は領域は、シーンの複数のオブジェクト又は領域を含むより大きい画像の一部になることがでる。
受信ソースフレーム(311)は、複数のフレームバッファ記憶領域(321、322、...、32n)を含む一時的ソースフレームメモリ記憶領域(320)に格納される。フレームバッファ(321、322など)は、ソースフレーム記憶領域(320)内の1つのソースフレームを保持する。1つ以上のソースフレーム(311)がフレームバッファ(321、322など)に格納された後に、フレームセレクタ(330)が個々のソースフレームをソースフレーム記憶領域(320)から選択する。エンコーダ(340)の入力のフレームセレクタ(330)によってフレームが選択される順序は、ビデオソース(310)によってフレームが生成される順序とは異なる場合がある。例えば、一部の後のフレームのエンコードを先に行い、それによって一時的な後方予測を容易にするために、一部のフレームのエンコードの順序が遅れる場合がある。エンコーダ(340)の前に、エンコーダシステム(300)は、エンコーディングの前に選択されたフレーム(331)の前処理(例えば、フィルタリング)を実行するプリプロセッサ(示されていない)を含むことができる。前処理は、一次成分(例えば、輝度)と二次成分(赤色及び青色へ向かう彩度の差異)への色空間変換、及びエンコーディングのため(例えば、彩度成分の空間解像度を減らすため)のリサンプリング処理を含むことができる。通常、エンコーディングの前に、ビデオがYUVなどの色空間に変換される。YUVでは、輝度(Y)成分のサンプル値は明るさ又は明度の値を表し、彩度(U、Y)成分のサンプル値は色差の値を表す。色差の値(及びYUV色空間とRGBなどの別の色空間との間の変換処理)の正確な定義は、実装によって異なる。一般に、本明細書で使用されているように、YUVという用語は、輝度成分及び1つ以上の彩度成分を含む任意の色空間(Y’UV、YIQ、Y’lQ、及びYDbDr、並びにYCbCr及びYCoCgなどの変形を含む)を示す。彩度サンプル値は、より低い彩度サンプリングレートにサブサンプリングされる場合がある(例えば、YUV 4:2:0形式の場合)。又は、彩度サンプル値は、輝度サンプル値と同じ解像度を持つ場合がある(例えば、YUV 4:4:4形式の場合)。又は、ビデオは、別の形式(例えば、RGB 4:4:4形式、GBR 4:4:4形式、又はBGR 4:4:4形式)でエンコードできる。
エンコーダ(340)は、選択されたフレーム(331)をエンコードして符号化フレーム(341)を生成し、メモリ管理制御操作(memory management control operation:MMCO)信号(342)又は参照画像セット(reference picture set:RPS)情報も生成する。RPSは、現在のフレーム又は任意のその後のフレームの動き補償において参照に使用できる一連のフレームである。現在のフレームが、エンコードされた最初のフレームではない場合、そのエンコーディング処理を実行するときに、エンコーダ(340)は、一時的デコード済みフレームメモリ記憶領域(360)に格納された1つ以上の以前にエンコード/デコードされたフレーム(369)を使用できる。そのような格納されたデコード済みフレーム(369)は、現在のソースフレーム(331)のコンテンツのインターフレーム予測の参照フレームとして使用される。MMCO/RPS情報(342)は、デコーダに対して、どの再構成済みフレームを参照フレームとして使用できるか、したがって、どの再構成済みフレームをフレーム記憶領域に格納する必要があるかを示す。
一般に、エンコーダ(340)は、タイルへの分割、イントラ推定及びイントラ予測、動き推定及び動き補償、周波数変換、量子化、並びにエントロピー符号化などのエンコーディングタスクを実行する複数のエンコーディングモジュールを含む。エンコーダ(340)によって実行される正確な処理は、圧縮形式に応じて変わる場合がある。出力エンコード済みデータの形式は、H.265/HEVC形式の変形又は拡張、Windows Media Video形式、VC−1形式、MPEG−x形式(例えば、MPEG−1、MPEG−2、又はMPEG−4)、H.26x形式(例えば、H.261、H.262、H.263、H.264)、又は別の形式にすることができる。
エンコーダ(340)は、フレームを同じサイズ又は異なるサイズの複数のタイルに分割できる。例えば、エンコーダ(340)は、フレームをタイル行及びタイル列に沿って分割する。タイル行及びタイル列は、フレーム境界と共に、フレーム内のタイルの水平境界及び垂直境界を定義する。ここで、各タイルは長方形領域である。タイルは、多くの場合、並列処理のオプションを提供するために使用される。フレームは、1つ以上のスライスとして編成することもできる。ここで、スライスはフレーム全体又はフレームの領域にすることができる。スライスは、フレーム内のその他のスライスとは独立してデコードすることができ、これによって誤り耐性を改善する。スライス又はタイルのコンテンツは、エンコーディング及びデコーディングの目的で、ブロック又はその他の一連のサンプル値にさらに分割される。
H.265/HEVC規格に従う構文の場合、エンコーダはフレーム(或いは、スライス又はタイル)のコンテンツを符号化ツリーユニットに分割する。符号化ツリーユニット(coding tree unit:CTU)は、輝度符号化ツリーブロック(coding tree block:CTB)として編成された輝度サンプル値、及び2つの彩度CTBとして編成された対応する彩度サンプル値を含む。CTU(及びそのCTB)のサイズは、エンコーダによって選択される。輝度CTBは、例えば64×64、32×32、又は16×16輝度サンプル値を含むことができる。CTUは、1つ以上の符号化ユニットを含む。符号化ユニット(coding unit:CU)は、輝度符号化ブロック(coding block:CB)及び2つの対応する彩度CBを含む。例えば、1つの64×64輝度CTB及び2つの64×64彩度CTB(YUV 4:4:4形式)を含むCTUを4つのCUに分割することができ、それぞれのCUは、1つの32×32輝度CB及び2つの32×32彩度CBを含み、それぞれのCUは、場合によってはさらに小さいCUに分割される。又は、別の例として、1つの64×64輝度CTB及び2つの32×32彩度CTB(YUV 4:2:0形式)を含むCTUを4つのCUに分割することができ、それぞれのCUは、1つの32×32輝度CB及び2つの16×16彩度CBを含み、それぞれのCUは、場合によってはさらに小さいCUに分割される。CUの許容できる最小サイズ(例えば、8×8、16×16)は、ビットストリーム内で信号伝達できる。
一般に、CUは、インター又はイントラなどの予測モードを含む。CUは、予測情報(予測モードの詳細、変位値など)の信号伝達及び/又は予測処理の目的で、1つ以上の予測ユニットを含む。予測ユニット(prediction unit:PU)は、1つの輝度予測ブロック(prediction block:PB)及び2つの彩度PBを含む。H.265/HEVC規格によれば、イントラ予測対象のCUの場合、CUが最小サイズ(例えば、8×8)でない限り、PUのサイズはCUと同じになる。その場合、CUを4つのさらに小さいPU(例えば、イントラ予測で、最小のCUサイズが8×8の場合はそれぞれ4×4)に分割するか、又はPUが、CUの構文要素で示されている最小のCUサイズを持つことができる。ただし、イントラBC予測で使用される非対称パーティションの場合、図9に示されるように、CUを複数のPUに分割できる。その場合、さらに大きいCU(例えば、64×64、32×32、又は16×16)又は最小サイズのCU(例えば、8×8)を複数のPUに分割できる。
CUは、残差符号化/デコーディングの目的で、1つ以上の変換ユニットを含むこともできる。ここで、変換ユニット(transform unit:TU)は1つの輝度変換ブロック(transform block:TB)及び2つの彩度TBを含む。イントラ予測対象のCU内のPUは、1つのTU(サイズがPUに等しい)又は複数のTUを含むことができる。エンコーダは、ビデオをCTU、CU、PU、TUなどに分割する方法を決定する。
H.265/HEVCの実装では、スライスは1つのスライスセグメント(独立スライスセグメント)を含むか、又は複数のスライスセグメント(独立スライスセグメント及び1つ以上の依存スライスセグメント)に分割することができる。スライスセグメントは、タイルスキャン内で連続して順序付けられた整数個のCTUであり、1つのネットワーク抽象化層(network abstraction layer:NAL)ユニットに含まれる。独立スライスセグメントの場合、スライスセグメントのヘッダは、独立スライスセグメントに適用される構文要素の値を含む。依存スライスセグメントの場合、切り詰められたスライスセグメントのヘッダは、依存スライスセグメントに適用される構文要素の数個の値を含む。依存スライスセグメントのその他の構文要素の値は、デコーディング順序内の先行する独立スライスセグメントの値から推測される。
本明細書で使用されているように、「ブロック(block)」という用語は、マクロブロック、予測ユニット、残差データユニット、又はCB、PB、又はTB、或いは文脈に応じてその他の一連のサンプル値を示すことができる。
図3に戻ると、エンコーダは、ソースフレーム(331)のイントラ符号化ブロックを、フレーム(331)内の他の以前に再構成されたサンプル値からの予測の観点から表す。イントラBC予測の場合、イントラ画像推定部が、他の以前に再構成されたサンプル値に対するブロックの変位を推定する。イントラフレーム予測参照領域は、ブロックに対するBC予測値の生成に使用されるフレーム内のサンプル値の領域である。イントラフレーム予測領域は、ブロックベクトル(BV)値(BV推定で決定される)を使用して示すことができる。以下では、イントラ画像エンコード時に決定を行うためのアプローチの例について説明する。実装に応じて、エンコーダは、入力サンプル値又は再構成されたサンプル値(同じ画像内で以前にエンコードされたサンプル値)を使用してブロックに対してBV推定を実行できる。その他の詳細については、セクションVのBV推定の説明を参照のこと。
ブロックに対するイントラ空間予測の場合、イントラ画像推定部が、近傍の再構成済みサンプル値のブロックへの外挿を推定する。イントラ画像推定部は、エントロピー符号化された予測情報(イントラBC予測のためのBV値、又はイントラ空間予測のための予測モード(方向)など)を出力できる。イントラフレーム予測予測部が、予測情報を適用してイントラ予測値を決定する。
エンコーダ(340)は、参照フレームからの予測の観点から、ソースフレーム(331)の予測されたイントラフレーム符号化ブロックを表す。動き推定部は、1つ以上の参照フレーム(369)に対するブロックの動きを推定する。複数の参照フレームが使用される場合、複数の参照フレームを、異なる時間方向又は同じ時間方向からのフレームにすることができる。動き補償予測参照領域は、現在のフレームのサンプル値のブロックに対する動き補償予測値の生成に使用される、参照フレーム内のサンプル値の領域である。動き推定部は、エントロピー符号化された動きベクトル(motion vector:MV)情報などの動き情報を出力する。動き補償部は、MVを参照フレーム(369)に適用して、イントラフレーム予測のための動き補償予測値を決定する。以下では、インター画像エンコード時に決定を行うためのアプローチの例について説明する。
エンコーダは、ブロックの予測値(イントラ又はインター)と、対応する元の値との間の差分を(もしあれば)決定できる。これらの予測残差値は、周波数変換(周波数変換がスキップされない場合)、量子化、及びエントロピーエンコーディングを使用してさらにエンコードされる。例えば、エンコーダ(340)は、ビデオの画像、タイル、スライス、及び/又はその他の部分に対して量子化パラメータ(quantization parameter:QP)の値を設定し、それに応じて変換係数を量子化する。エンコーダ(340)のエントロピー符号化部は、量子化変換係数値及び特定のサイド情報(例えば、MV情報、BV予測部のインデックス値、BV差分、QP値、モード決定、パラメータ選択)を圧縮する。標準的なエントロピー符号化手法は、指数ゴロム(Exponential−Golomb)符号化、ゴロム・ライス(Golomb−Rice)符号化、差異符号化、算術符号化、ハフマン符号化、ランレングス符号化、可変長/可変長(「V2V」)符号化、可変長/固定長(「V2F」)符号化、レンペル・ジブ(Lempel−Ziv)(LZ)符号化、辞書符号化、確率間隔分割エントロピー符号化(probability interval partitioning entropy coding:PIPE)、及びこれらの組み合わせを含む。エントロピー符号化部は、多種多様な情報に対してさまざまな符号化手法を使用することができ、複数の手法を組み合わせて適用する(例えば、ゴロム・ライス(Golomb−Rice)符号化の後に算術符号化を適用する)ことができ、特定の符号化手法内の複数のコード表から選択できる。一部の実装では、周波数変換をスキップできる。その場合、予測残差値を量子化し、エントロピー符号化できる。
デコード済みフレーム内のブロック境界の行及び/又は列間の不連続性を滑らかにするために、適応型デブロックフィルタが、エンコーダ(340)の動き補償ループ内(つまり、「インループ」フィルタリング)に含まれている。その他のフィルタリング(デリンギングフィルタリング、適応型ループフィルタリング(adaptive loop filtering:ALF)、又はサンプル適応型オフセット(sample−adaptive offset:SAO)フィルタリング(示されていない)など)を、インループフィルタリング処理として選択的又は追加的に適用できる。
エンコーダ(340)によって生成されたエンコード済みデータは、ビットストリーム構文のさまざまな層の構文要素を含む。H.265/HEVC規格に従う構文の場合、例えば、画像パラメータセット(picture parameter set:PPS)は、画像に関連付けることができる構文要素を含む構文構造である。PPSを1つの画像に使用することができ、又はPPSを一連の複数の画像で再利用することができる。PPSは、通常、画像のエンコード済みデータとは別に信号伝達される(例えば、PPS用の1つのNALユニット、及び画像のエンコード済みデータ用の1つ以上のその他のNALユニット)。画像のエンコード済みデータ内で、構文要素が、どのPPSを画像に使用するべきかを示す。同様に、H.265/HEVC規格に従う構文の場合、シーケンスパラメータセット(sequence parameter set:SPS)は、一連の画像に関連付けることができる構文要素を含む構文構造である。ビットストリームは、1つのSPS又は複数のSPSを含むことができる。SPSは、通常、シーケンスの他のデータとは別に信号伝達され、他のデータ内の構文要素が、どのSPSを使用するべきかを示す。
符号化フレーム(341)及びMMCO/RPS情報(342)(又は、フレームの依存性と順序構造がエンコーダ(340)ですでに知られているため、MMCO/RPS情報(342)に相当する情報)は、デコーディング処理エミュレータ(350)によって処理される。デコーディング処理エミュレータ(350)は、デコーダの機能の一部(例えば、参照フレームを再構成するためのデコーディングタスク)を実装する。デコーディング処理エミュレータ(350)は、MMCO/RPS情報(342)に一致する方法で、エンコードされるその後のフレームのインターフレーム予測における参照フレームとして使用するために、特定の符号化フレーム(341)を再構成して格納する必要があるかどうかを決定する。符号化フレーム(341)を格納する必要がある場合、デコーディング処理エミュレータ(350)は、符号化フレーム(341)を受信して対応するデコーダされたフレーム(351)を生成するデコーダによって実行されるデコーディング処理をモデル化する。モデル化の実行において、エンコーダ(340)がデコード済みフレーム記憶領域(360)に格納されたデコード済みフレーム(369)を使用した場合、デコーディング処理エミュレータ(350)も、デコーディング処理の一部として、記憶領域(360)からのデコード済みフレーム(369)を使用する。
一時的デコード済みフレームメモリ記憶領域(360)は、複数のフレームバッファ記憶領域(361、362、...、36n)を含む。デコーディング処理エミュレータ(350)は、MMCO/RPS情報(342)に一致する方法で、参照フレームとして使用するためにエンコーダ(340)によって必要とされなくなったフレームを含むフレームバッファ(361、362など)を識別するために、記憶領域(360)のコンテンツを管理する。デコーディング処理エミュレータ(350)は、デコーディング処理をモデル化した後、新たにデコードされたフレーム(351)を、この方法で識別されたフレームバッファ(361、362など)に格納する。
符号化フレーム(341)及びMMCO/RPS情報(342)は、一時的符号化データ領域(370)内でバッファリングされる。符号化データ領域(370)に集約された符号化データは、基本的な符号化ビデオビットストリームの構文の一部として、1つ以上の画像のエンコード済みデータを含む。符号化データ領域(370)に集約された符号化データは、符号化ビデオデータに関連する媒体のメタデータも(例えば、1つ以上の付加拡張情報(supplemental enhancement information:SEI)メッセージ又はビデオユーザビリティ情報(video usability information:VUI)メッセージ内の1つ以上のパラメータとして)含むことができる。
一時的符号化データ領域(370)から集約されたデータ(371)は、チャネルエンコーダ(380)によって処理される。チャネルエンコーダ(380)は、媒体ストリームとして送信又は格納するために集約されたデータを(例えば、ITU−T H.222.0 | ISO/IEC 13818−1などの媒体プログラムストリーム形式又はトランスポートストリーム形式、或いはIETF RFC 3550などのインターネットリアルタイムトランスポートプロトコル形式に従って)パケット化及び/又は多重化することができる。その場合、チャネルエンコーダ(380)は、媒体送信ストリームの構文の一部として構文要素を追加できる。又は、チャネルエンコーダ(380)は、ファイルとして格納するために集約されたデータを(例えば、ISO/IEC 14496−12などの媒体コンテナ形式に従って)編成できる。その場合、チャネルエンコーダ(380)は、媒体格納ファイルの構文の一部として構文要素を追加できる。又は、さらに一般的には、チャネルエンコーダ(380)は、1つ以上の媒体システム多重化プロトコル又はトランスポートプロトコルを実装できる。その場合、チャネルエンコーダ(380)は、プロトコルの構文の一部として構文要素を追加できる。チャネルエンコーダ(380)は、出力用の記憶装置、通信接続、又は別のチャネルを表すチャネル(390)に出力を提供する。チャネルエンコーダ(380)又はチャネル(390)は、その他の要素(示されていない)(例えば、順方向誤り訂正(forward−error correction:FEC)エンコーディング及びアナログ信号変調)を含むこともできる。
IV.デコーダシステムの例
図4は、記載された一部の実施形態と併せて実装できるデコーダシステムの例(400)のブロック図である。デコーダシステム(400)は、リアルタイム通信用の低レイテンシデコーディングモード及びファイル又はストリームからの媒体再生用の高レイテンシデコーディングモードなど、複数のデコーディングモードのいずれでも動作できる汎用デコーディングツールにするか、又はそのようなデコーディングモードのいずれかに適した専用デコーディングツールにすることができる。デコーダシステム(400)は、オペレーティングシステムモジュールとして、アプリケーションライブラリの一部として、又はスタンドアロンアプリケーションとして実装できる。全体として、デコーダシステム(400)は、符号化データをチャネル(410)から受信し、再構成されたフレームを出力先(490)への出力として生成する。
デコーダシステム(400)は、符号化データのための記憶装置、通信接続、又は別のチャネルを入力として表すことができるチャネル(410)を含む。チャネル(410)は、チャネル符号化された符号化データを生成する。チャネルデコーダ(420)は、符号化データを処理できる。例えば、チャネルデコーダ(420)は、媒体ストリームとして送信又は格納するために集約されたデータに対して、(例えば、ITU−T H.222.0 | ISO/IEC 13818−1などの媒体プログラムストリーム形式又はトランスポートストリーム形式、或いはIETF RFC 3550などのインターネットリアルタイムトランスポートプロトコル形式に従って)パケット化の解除及び/又は逆多重化を行う。その場合、チャネルデコーダ(420)は、媒体送信ストリームの構文の一部として追加された構文要素を構文解析できる。又は、チャネルデコーダ(420)は、ファイルとして格納するために集約された符号化ビデオデータを(例えば、ISO/IEC 14496−12などの媒体コンテナ形式に従って)分離する。その場合、チャネルデコーダ(420)は、媒体格納ファイルの構文の一部として追加された構文要素を構文解析できる。又は、さらに一般的には、チャネルデコーダ(420)は、1つ以上の媒体システムの逆多重化プロトコル又はトランスポートプロトコルを実装できる。その場合、チャネルデコーダ(420)は、プロトコルの構文の一部として追加された構文要素を構文解析できる。チャネル(410)又はチャネルデコーダ(420)は、例えばFECデコーディング及びアナログ信号復調のための、その他の要素(示されていないい)を含むこともできる。
チャネルデコーダ(420)から出力された符号化データ(421)は、受信されたそのようなデータが十分な量になるまで、一時的符号化データ領域(430)に格納される。符号化データ(421)は、符号化フレーム(431)及びMMCO/RPS情報(432)を含む。符号化データ領域(430)内の符号化データ(421)は、基本的な符号化ビデオビットストリームの構文の一部として、1つ以上の画像の符号化データを含む。符号化データ領域(430)内の符号化データ(421)は、エンコード済みビデオデータに関連する媒体のメタデータも(例えば、1つ以上のSEIメッセージ又はVUIメッセージ内の1つ以上のパラメータとして)含むこともできる。
一般に、符号化データ領域(430)は、符号化データ(421)を、そのような符号化データ(421)がデコーダ(450)によって使用されるまで、一時的に格納する。この時点で、符号化フレーム(431)の符号化データ及びMMCO/RPS情報(432)が、符号化データ領域(430)からデコーダ(450)に転送される。デコーディングが続行されると、新しい符号化データが符号化データ領域(430)に追加され、符号化データ領域(430)に残っている最も古い符号化データが、デコーダ(450)に転送される。
デコーダ(450)は、符号化フレーム(431)をデコードして、対応するデコード済みフレーム(451)を生成する。必要に応じて、デコーダ(450)は、デコーディング処理を実行するときに、1つ以上の以前にデコードされたフレーム(469)をインターフレーム予測のための参照フレームとして使用できる。デコーダ(450)は、そのような以前にデコードされたフレーム(469)を一時的デコード済みフレームメモリ記憶領域(460)から読み取る。一般に、デコーダ(450)は、エントロピーデコーディング、イントラフレーム予測、動き補償イントラフレーム予測、逆量子化、逆周波数変換(スキップされない場合)、及びタイルのマージなどのデコーディングタスクを実行する複数のデコーディングモジュールを含む。デコーダ(450)によって実行される正確な処理は、圧縮形式に応じて変わる場合がある。
例えば、デコーダ(450)は、圧縮済みフレーム又は一連のフレームのエンコード済みデータを受信し、デコード済みフレーム(451)を含む出力を生成する。デコーダ(450)において、バッファが圧縮済みフレームのエンコード済みデータを受信し、適切なタイミングで、受信したエンコード済みデータをエントロピーデコーダで使用できるようにする。エントロピーデコーダは、通常は、エンコーダで実行されたエントロピーエンコーディングの逆の処理を適用して、エントロピー符号化された量子化データ及びエントロピー符号化されたサイド情報をエントロピーデコードする。動き補償部は、動き情報を1つ以上の参照フレームに適用し、再構成されているフレームのインター符号化ブロックに対する動き補償予測値を形成する。イントラフレーム予測モジュールは、現在のブロックのサンプル値を、近隣の以前に再構成されたサンプル値から空間的に予測するか、又は、イントラBC予測の場合、現在のブロックのサンプル値を、フレーム内のイントラフレーム予測領域の以前に再構成されたサンプル値を使用して予測することができる。イントラフレーム予測領域は、BV値を使用して示すことができる。デコーダ(450)は、予測残差値も再構成する。逆量子化部は、エントロピーデコードされたデータを逆量子化する。例えば、デコーダ(450)は、ビットストリーム内の構文要素に基づいて、ビデオの画像、タイル、スライス及び/又はその他の部分に対してQPの値を設定し、それに応じて変換係数を逆量子化する。逆周波数変換部は、量子化された周波数領域データを空間領域データに変換する。一部の実装では、周波数変換をスキップできる。その場合、逆周波数変換もスキップされる。その場合、予測残差値をエントロピーデコードし、逆量子化することができる。インターフレーム予測対象のブロックの場合、デコーダ(450)は、再構成された予測残差値を、動き補償予測値と組み合わせる。同様にデコーダ(450)は、予測残差値を、イントラ予測からの予測値と組み合わせることができる。デコード済みフレーム(451)内のブロック境界の行及び/又は列間の不連続性を滑らかにするために、適応型デブロックフィルタが、ビデオデコーダ(450)の動き補償ループ内に含まれている。その他のフィルタリング(デリンギングフィルタリング、ALF、又はSAOフィルタリング(示されていない)など)を、インループフィルタリング処理として選択的又は追加的に適用できる。
一時的デコード済みフレームメモリ記憶領域(460)は、複数のフレームバッファ記憶領域(461、462、...、46n)を含む。デコード済みフレーム記憶領域(460)は、デコード済み画像バッファの例である。デコーダ(450)は、MMCO/RPS情報(432)を使用して、デコード済みフレーム(451)を格納できるフレームバッファ(461、462など)を識別する。デコーダ(450)は、デコード済みフレーム(451)を、このフレームバッファに格納する。
出力シーケンサ(480)は、出力順序内で次に生成されるフレームが、デコード済みフレーム記憶領域(460)内で使用可能になったことを識別する。出力順序内で次に生成されるフレーム(481)が、デコード済みフレーム記憶領域(460)内で使用可能になると、そのフレームは出力シーケンサ(480)によって読み取られ、出力先(490)(例えば、ディスプレイ)に出力される。一般に、フレームが出力シーケンサ(480)によってデコード済みフレーム記憶領域(460)から出力される順序は、フレームがデコーダ(450)によってデコードされる順序とは異なる場合がある。
V.ビデオエンコーダの例
図5a及び5bは、記載された一部の実施形態と併せて実装できる、一般化されたビデオエンコーダ(500)のブロック図である。エンコーダ(500)は、現在の画像を含む一連のビデオ画像を入力ビデオ信号(505)として受信し、エンコード済みデータを符号化ビデオビットストリーム(595)内に出力として生成する。
エンコーダ(500)は、ブロックベースであり、実装に依存するブロック形式を使用する。ブロックは、さまざまな段階(例えば、予測、周波数変換、及び/又はエントロピーエンコーディング段階)で、さらに細かく分割できる。例えば、画像を64×64ブロック、32×32ブロック、又は16×16に分割し、その後、符号化及びデコーディングのために、サンプル値のさらに小さいブロックに分割できる。H.265/HEVC規格のエンコーディングの実装では、エンコーダは画像をCTU(CTB)、CU(CB)、PU(PB)、及びTU(TB)に分割する。ブロック(例えば、CU)は、図9に示すように、イントラBC予測の目的で、さらに小さいブロック(例えば、PU)に非対称に分割できる。
エンコーダ(500)は、イントラ画像符号化及び/又はインター画像符号化を使用して画像を圧縮する。エンコーダ(500)のコンポーネントの多くは、イントラ画像符号化及びインター画像符号化の両方に使用される。これらのコンポーネントによって実行される正確な処理は、圧縮対象の情報の種類に応じて変わる場合がある。
タイルモジュール(510)は、必要に応じて画像を、同じサイズ又は異なるサイズの複数のタイルに分割する。例えば、タイルモジュール(510)は、画像をタイル行及びタイル列に沿って分割する。タイル行及びタイル列は、画像境界と共に、画像内のタイルの水平境界及び垂直境界を定義する。ここで、各タイルは長方形領域である。H.265/HEVCの実装において、エンコーダ(500)は画像を1つ以上のスライスに分割する。ここで、各スライスは1つ以上のスライスセグメントを含む。
一般的エンコーディング制御(520)は、入力ビデオ信号(505)の画像及びエンコーダ(500)のさまざまなモジュールからのフィードバック(示されていない)を受信する。全体として、一般的エンコーディング制御(520)は、制御信号(示されていない)を他のモジュール(タイルモジュール(510)、変換部/スケーラ/量子化部(530)、スケーラ/逆変換部(535)、イントラ画像推定部(540)、動き推定部(550)、及びイントラ/インタースイッチなど)に供給して、エンコード時に符号化パラメータを設定及び変更する。具体的には、一般的エンコーディング制御(520)は、エンコード時の分割に関する決定を管理できる。さらに一般的には、一般的エンコーディング制御(520)は、エンコード時にイントラBC予測を使用するかどうか、及びその使用方法を決定できる。一般的エンコーディング制御(520)は、エンコード時(例えば、レート歪み解析の実行時)に中間結果を評価することもできる。一般的エンコーディング制御(520)は、対応するデコーダが一貫した決定を行えるようにするために、エンコード時に行われた決定を示す一般的制御データ(522)を生成する。一般的制御データ(522)は、ヘッダフォーマッタ/エントロピー符号化部(590)に提供される。
現在の画像が、インター画像予測を使用して予測される場合、動き推定部(550)は、1つ以上の参照画像に対して、入力ビデオ信号(505)の現在の画像のサンプル値のブロックの動きを推定する。デコード済み画像バッファ(570)は、参照画像として使用するために、1つ以上の以前に再構成された符号化画像をバッファリングする。動き推定部(550)は、動き推定のためのブロックの分割方法を決定する際に、下で説明されているようにトップダウンアプローチ又はボトムアップアプローチを適用できる。動き推定部(550)は、下で説明されているような検索パターン又はその他の検索パターンを使用できる。複数の参照画像が使用される場合、複数の参照画像を、異なる時間方向又は同じ時間方向からのフレームにすることができる。動き推定部(550)は、サイド情報として、MVデータ、マージモードインデックス値、及び参照画像選択データなどの動きデータ(552)を生成する。動きデータ(552)は、ヘッダフォーマッタ/エントロピー符号化部(590)及び動き補償部(555)に提供される。
動き補償部(555)は、MVを、デコード済み画像バッファ(570)からの再構成済み参照画像に適用する。動き補償部(555)は、現在の画像に対する動き補償予測を生成する。
エンコーダ(500)内の別の経路では、イントラ画像推定部(540)は、入力ビデオ信号(505)の現在の画像のサンプル値のブロックに対するイントラ画像予測の実行方法を決定する。現在の画像を、イントラ画像符号化を使用して、全体的又は部分的に符号化できる。現在の画像の再構成(538)の値を使用するイントラ空間予測の場合、イントラ画像推定部(540)は、現在の画像の現在のブロックのサンプル値を、現在の画像の近隣の以前に再構成されたサンプル値から空間的に予測する方法を決定する。
又は、BV値を使用するイントラBC予測の場合、イントラ画像推定部(540)は、現在の画像内の異なる候補参照領域に対する現在のブロックのサンプル値の変位を推定する。イントラ画像推定部(540)は、BV推定(及びイントラBC予測)のためのブロック分割方法を決定する際に、下で説明されているように、トップダウンアプローチ又はボトムアップアプローチを適用できる。イントラ画像推定部(540)は、下で説明されているような検索パターン又はその他の検索パターンを使用できる。イントラBC予測の場合、イントラ画像推定部(540)は、下で説明されている1つ以上の制約を使用してBV選択処理を制約できる。
実装に応じて、エンコーダは、入力サンプル値、インループフィルタリング前の再構成済みサンプル値、又はインループフィルタリング後の再構成済みサンプル値を使用して現在のブロックに対してBV推定を実行できる。一般に、入力サンプル値又はフィルタリングされていない再構成済みサンプル値をBV推定に使用することで、エンコーダは逐次処理のボトルネックを防ぐことができる(このボトルネックは、BV推定/イントラBC予測の前に参照領域の再構成済みサンプル値をフィルタリングすることから生じる場合がある)。一方、フィルタリングされていない再構成済みサンプル値の格納では、追加メモリを使用する。また、インループフィルタリングが、BV推定の前に適用される場合、現在のブロック領域がデコードされた後に適用されるフィルタリング処理と、BV推定/イントラBC予測に使用される領域との間で重なり合う影響領域が存在する場合がある。そのような場合、BV推定/イントラBC予測は、このようなフィルタリング処理の側面の前に適用される。一部の実装では、エンコーダはBV推定/イントラBC予測の前にインループフィルタリング処理をある程度適用し、後の処理段階で追加的又は選択的なフィルタリングを実行できる。
又は、イントラ画像辞書符号化モードの場合、辞書又はその他の場所に格納された以前のサンプル値を使用して、ブロックのピクセルがエンコードされる。ここで、ピクセルは、同じ場所にあるサンプル値のセット(例えば、RGBトリプレット又はYUVトリプレット)である。例えば、エンコーダ(500)は、以前に再構成されたサンプル値(例えば、1ピクセル、2ピクセル、4ピクセル、8ピクセルなどのグループ)のハッシュ値を計算し、それらのハッシュ値を、エンコードされている現在のピクセルのセットのハッシュ値と比較できる。ハッシュの比較に基づいて、1つ以上の長さの一致が、以前に再構成されたサンプル値において識別される場合がある。現在のピクセル(又はサンプル値)は、以前のピクセル内(例えば、辞書内)の位置を識別するオフセット、及びそのオフセットからの予測されるピクセルの数を示す長さを使用して、さまざまな1−D又は疑似2−D辞書モードでエンコードできる。通常、イントラ画像辞書符号化モードでエンコードされたブロックに対して、残差は計算されない。
イントラ画像推定部(540)は、サイド情報として、イントラ予測が空間予測、イントラBC予測又は辞書モード、予測モード方向(イントラ空間予測の場合)、BV値(イントラBC予測の場合)、及びオフセットと長さ(辞書モードの場合)を使用するかどうかを示す情報などの、イントラ予測データ(542)を生成する。イントラ予測データ(542)が、ヘッダフォーマッタ/エントロピー符号化部(590)及びイントラ画像予測部(545)に提供される。
イントラ予測データ(542)に従って、イントラ画像予測部(545)は、現在の画像の現在のブロックのサンプル値を、現在の画像の近隣の以前に再構成されたサンプル値から空間的に予測する。又は、イントラBC予測の場合、イントラ画像予測部(545)は、現在のブロックに対するBV値によって示されたイントラ画像予測参照領域の以前に再構成されたサンプル値を使用して、現在のブロックのサンプル値を予測する。場合によっては、BV値をBV予測部(予測されたBV値)にすることができる。その他の場合では、BV値を、予測されたBV値とは異なる値にすることができる。その場合、BV差分が、予測されたBV値とBV値の間の差を示す。又は、イントラ画像辞書モードの場合、イントラ画像予測部(545)は、オフセットと長さを使用してピクセルを再構成する。
イントラ/インタースイッチは、特定のブロックの予測(558)が動き補償予測なのか、それともイントラ画像予測なのかを選択する。
非辞書モードでは、残差符号化がスキップされない場合、予測(558)のブロックと、入力ビデオ信号(505)の元の現在の画像の対応する部分との間の差が(もしあれば)、残差(518)の値を提供する。現在の画像の再構成時に、残差値がエンコード/信号伝達されている場合、再構成された残差値は、予測(558)と結合されて、ビデオ信号(505)から元のコンテンツの近似的又は正確な再構成(538)を生成する。(不可逆圧縮では、一部の情報がビデオ信号(505)から失われる。)
変換部/スケーラ/量子化部(530)において、非辞書モードで周波数変換がスキップされない場合、周波数変換部は空間領域ビデオ情報を周波数領域(すなわち、スペクトル、変換)データに変換する。ブロックベースのビデオ符号化の場合、周波数変換部は、離散コサイン変換(discrete cosine transform:DCT)、その整数近似、又は別の種類の前方ブロック変換(例えば、離散サイン変換又はその整数近似)を予測残差データ(又は、予測(558)がNULLの場合はサンプル値データ)のブロックに適用し、周波数変換係数のブロックを生成する。変換部/スケーラ/量子化部(530)は、可変ブロックサイズを使用して変換を適用できる。その場合、変換部/スケーラ/量子化部(530)は、現在のブロックに対して、残差値に使用するべき変換のブロックサイズを決定できる。スケーラ/量子化部は、変換係数のスケーリング及び量子化を行う。例えば、量子化部は、画像ごと、タイルごと、スライスごと、ブロックごと、周波数ごと、又はその他の単位ごとに変化する量子化ステップサイズを使用して、デッドゾーンスカラー量子化を周波数領域データに適用する。量子化変換係数データ(532)が、ヘッダフォーマッタ/エントロピー符号化部(590)に提供される。周波数変換がスキップされた場合、スケーラ/量子化部は、予測残差データのブロック(又は、予測(558)がNULLの場合はサンプル値データ)をスケーリング及び量子化することができ、ヘッダフォーマッタ/エントロピー符号化部(590)に提供される量子化値を生成する。
スケーラ/逆変換部(535)において、非辞書モードの場合、スケーラ/逆量子化部は、量子化変換係数に対して逆スケーリング及び逆量子化を実行する。変換段階がスキップされなかった場合、逆周波数変換部は、逆周波数変換を実行し、再構成された予測残差値又はサンプル値のブロックを生成する。変換段階がスキップされている場合、逆周波数変換もスキップされる。その場合、スケーラ/逆量子化部は、予測残差データ(又はサンプル値データ)のブロックに対して逆スケーリング及び逆量子化を実行し、再構成された値を生成できる。残差値がエンコード/信号伝達されている場合、エンコーダ(500)は再構成された残差値を予測(558)の値(例えば、動き補償予測値、イントラ画像予測値)と結合して、再構成(538)を形成する。残差値がエンコード/信号伝達されなかった場合、エンコーダ(500)は予測(558)の値を再構成(538)として使用する。
イントラ画像予測の場合、再構成(538)の値をイントラ画像推定部(540)及びイントラ画像予測部(545)にフィードバックできる。再構成(538)の値は、その後の画像の動き補償予測に使用できる。再構成(538)の値は、さらにフィルタリングすることができる。フィルタリング制御(560)は、ビデオ信号(505)の特定の画像に関して、再構成(538)の値に対するデブロックフィルタリング及びSAOフィルタリングの実行方法を決定する。フィルタリング制御(560)は、ヘッダフォーマッタ/エントロピー符号化部(590)及びマージ部/フィルタ(565)に提供されるフィルタ制御データ(562)を生成する。
マージ部/フィルタ(565)において、エンコーダ(500)は、異なるタイルからのコンテンツを画像の再構成済みバージョンにマージする。エンコーダ(500)は、画像内の境界間の不連続性を適応的に滑らかにするために、フィルタ制御データ(562)に従ってデブロックフィルタリング及びSAOフィルタリングを選択的に実行する。その他のフィルタリング(デリンギングフィルタリング又はALF(示されていない)など)を、選択的又は追加的に適用できる。タイル境界を選択的にフィルタリングできるか、それとも全くフィルタリングできないかは、エンコーダ(500)の設定によって決まり、エンコーダ(500)は、そのようなフィルタリングが適用されたかどうかを示すために、符号化ビットストリーム内で構文を提供できる。デコード済み画像バッファ(570)は、今後の動き補償予測で使用するために、再構成済みの現在の画像をバッファリングする。
ヘッダフォーマッタ/エントロピー符号化部(590)は、一般的制御データ(522)、量子化変換係数データ(532)、イントラ予測データ(542)、動きデータ(552)、及びフィルタ制御データ(562)をフォーマット及び/又はエントロピー符号化する。動きデータ(552)の場合、ヘッダフォーマッタ/エントロピー符号化部(590)は、マージモードインデックス値を選択及びエントロピー符号化することができ、又はデフォルトのMV予測部を使用することができる。場合によっては、ヘッダフォーマッタ/エントロピー符号化部(590)は、(MV値のMV予測部に対する)MV値のMV差分も決定し、その後(例えば、コンテキスト適応型バイナリ算術符号化を使用して)MV差分をエントロピー符号化する。イントラ予測データ(542)の場合、BV予測を使用してBV値をエンコードできる。BV予測は、デフォルトのBV予測部を(例えば、1つ以上の近隣のブロックから)使用できる。複数のBV予測部が可能な場合、BV予測部インデックスは、複数のBV予測部のうちのどれをBV予測に使用するべきかを示すことができる。ヘッダフォーマッタ/エントロピー符号化部(590)は、BV予測部インデックス値を選択してエントロピー符号化することができ(イントラBC予測の場合)、又はデフォルトのBV予測部を使用できる。場合によっては、ヘッダフォーマッタ/エントロピー符号化部(590)は、(BV値のBV予測部に対して)BV値のBV差分も決定し、その後(例えば、コンテキスト適応型バイナリ算術符号化を使用して)BV差分をエントロピー符号化する。
ヘッダフォーマッタ/エントロピー符号化部(590)は、エンコード済みデータを符号化ビデオビットストリーム(595)内で提供する。符号化ビデオビットストリーム(595)の形式は、H.265/HEVC形式の変形又は拡張、Windows Media Video形式、VC−1形式、MPEG−x形式(例えば、MPEG−1、MPEG−2、又はMPEG−4)、H.26x形式(例えば、H.261、H.262、H.263、H.264)、又は別の形式にすることができる。
実装及び目的の圧縮の種類に応じて、エンコーダ(500)のモジュールの追加、省略、複数のモジュールへの分割、他のモジュールとの結合、及び/又は類似するモジュールへの置き換えを行うことができる。代替の実施形態では、異なるモジュール及び/又はモジュールのその他の構成を含むエンコーダが、記載された手法の1つ以上を実行する。エンコーダの具体的な実施形態は、通常、エンコーダ(500)の変形又は補完されたバージョンを使用する。エンコーダ(500)内のモジュール間で示された関係は、エンコーダ内の情報の一般的なフローを示しており、その他の関係は簡略化の目的で示されていない。
VI.ビデオデコーダの例
図6は、記載された一部の実施形態と併せて実装できる、一般化されたデコーダ(600)のブロック図である。デコーダ(600)は、符号化ビデオビットストリーム(605)においてエンコード済みデータを受信し、再構成済みビデオ(695)の画像を含む出力を生成する。符号化ビデオビットストリーム(605)の形式は、HEVC形式の変形又は拡張、Windows Media Video形式、VC−1形式、MPEG−x形式(例えば、MPEG−1、MPEG−2、又はMPEG−4)、H.26x形式(例えば、H.261、H.262、H.263、H.264)、又は別の形式にすることができる。
デコーダ(600)は、ブロックベースであり、実装に依存するブロック形式を使用する。ブロックは、さまざまな段階で、さらに細かく分割できる。例えば、画像を64×64ブロック、32×32ブロック、又は16×16ブロックに分割し、その後、サンプル値のさらに小さいブロックに分割できる。HEVC規格のデコーディングの実装では、画像はCTU(CTB)、CU(CB)、PU(PB)、及びTU(TB)に分割される。ブロック(例えば、CU)は、図9に示すように、イントラBC予測の目的で、さらに小さいブロック(例えば、PU)に非対称に分割できる。
デコーダ(600)は、イントラ画像デコーディング及び/又はインター画像デコーディングを使用して画像を復元する。デコーダ(600)のコンポーネントの多くは、イントラ画像デコーディング及びインター画像デコーディングの両方に使用される。これらのコンポーネントによって実行される正確な処理は、復元される情報の種類に応じて変わる場合がある。
バッファは、符号化ビデオビットストリーム(605)においてエンコード済みデータを受信し、受信したエンコード済みデータを構文解析部/エントロピーデコーダ(610)で使用できるようにする。構文解析部/エントロピーデコーダ(610)は、エンコーダ(500)で実行されたエントロピー符号化の逆の処理(例えば、コンテキスト適応型バイナリ算術デコーディング)を通常は適用して、エントロピー符号化データをエントロピーデコードする。構文解析及びエントロピーデコードの結果として、構文解析部/エントロピーデコーダ(610)は、一般的制御データ(622)、量子化変換係数データ(632)、イントラ予測データ(642)、動きデータ(652)、及びフィルタ制御データ(662)を生成する。イントラ予測データ(642)に関して、BV予測部インデックス値が信号伝達された場合、構文解析部/エントロピーデコーダ(610)は、BV予測部インデックス値を(例えば、コンテキスト適応型バイナリ算術デコーディングを使用して)エントロピーデコードできる。場合によっては、構文解析/エントロピーデコーダ(610)は、(例えば、コンテキスト適応型バイナリ算術デコーディングを使用して)BV値のBV差分もエントロピーデコードし、その後BV差分を対応するBV予測部と結合して、BV値を再構成する。その他の場合、BV差分はビットストリームから省略され、BV値は単に(例えば、BV予測部インデックス値で示された)BV予測部になる。
一般的デコーディング制御(620)は、一般的制御データ(622)を受信し、制御信号(示されていない)をその他のモジュール(スケーラ/逆変換部(635)、イントラ画像予測部(645)、動き補償部(655)、及びイントラ/インタースイッチ)に供給して、デコード時にデコーディングパラメータを設定及び変更する。
現在の画像がインター画像予測を使用して予測され、動き補償部(655)が、MVデータ、参照画像選択データ、及びマージモードインデックス値などの動きデータ(652)を受信する。動き補償部(655)は、MVを、デコード済み画像バッファ(670)からの再構成済み参照画像に適用する。動き補償部(655)は、現在の画像のインター符号化ブロックに対する動き補償予測を生成する。デコード済み画像バッファ(670)は、参照画像として使用するために、1つ以上の以前に再構成された画像を格納する。
デコーダ(600)内の別の経路では、イントラフレーム予測予測部(645)が、イントラ予測が空間予測、イントラBC予測又は辞書モード、及び予測モード方向(イントラ空間予測の場合)、BV値(イントラBC予測の場合)、又はオフセットと長さ(辞書モードの場合)を使用するかどうかを示す情報などのイントラ予測データ(642)を受信する。イントラ空間予測の場合、現在の画像の再構成(638)の値を使用して、予測モードデータに従って、イントラ画像予測部(645)は、現在の画像の現在のブロックのサンプル値を、現在の画像の近隣の以前に再構成されたサンプル値から空間的に予測する。又は、BV値を使用するイントラBC予測の場合、イントラ画像予測部(645)は、現在のブロックのBV値によって示されたイントラフレーム予測領域の以前に再構成されたサンプル値を使用して、現在のブロックのサンプル値を予測する。又は、イントラ画像辞書モードの場合、イントラ画像予測部(645)は、オフセットと長さを使用してピクセルを再構成する。
イントラ/インタースイッチが、特定のブロックに対する予測(658)として使用するために、動き補償予測又はイントラ画像予測の値を選択する。例えば、HEVC構文に従う場合、イントラ予測対象のCU及びインター予測対象のCUを含むことができる画像のCUに対してエンコードされた構文要素に基づいて、イントラ/インタースイッチを制御できる。残差値がエンコード/信号伝達されている場合、デコーダ(600)は予測(658)を再構成済み残差値と結合して、ビデオ信号からのコンテンツの再構成(638)を生成する。残差値がエンコード/信号伝達されなかった場合、デコーダ(600)は予測(658)の値を再構成(638)として使用する。
残差値がエンコード/信号伝達された場合に残差を再構成するために、スケーラ/逆変換部(635)が量子化変換係数データ(632)を受信して処理する。スケーラ/逆変換部(635)において、スケーラ/逆量子化部が量子化変換係数に対して逆スケーリング及び逆量子化を実行する。逆周波数変換部が、逆周波数変換を実行して、再構成済み予測残差値又はサンプル値のブロックを生成する。例えば、逆周波数変換部が逆ブロック変換を周波数変換係数に適用して、サンプル値データ又は予測残差データを生成する。逆周波数変換は、逆DCT、その整数近似、又は別の種類の逆周波数変換(例えば、逆離散サイン変換又はその整数近似)にすることができる。エンコード時に周波数変換がスキップされた場合、逆周波数変換もスキップされる。その場合、スケーラ/逆量子化部は、予測残差データ(又はサンプル値データ)のブロックに対して逆スケーリング及び逆量子化を実行し、再構成された値を生成できる。
イントラ画像予測の場合、再構成(638)の値を、イントラ画像予測部(645)にフィードバックできる。インター画像予測の場合、再構成(638)の値をさらにフィルタリングできる。マージ部/フィルタ(665)において、デコーダ(600)は、異なるタイルからのコンテンツを画像の再構成済みバージョンにマージする。デコーダ(600)は、フレーム内の境界間での不連続性を適応的に滑らかにするために、フィルタ制御データ(662)及びフィルタ適応のルールに従ってデブロックフィルタリング及びSAOフィルタリングを選択的に実行する。その他のフィルタリング(デリンギングフィルタリング又はALF(示されていない)など)を、選択的又は追加的に適用できる。デコーダ(600)の設定又はエンコード済みビットストリームデータ内の構文の指示に応じて、タイル境界を選択的にフィルタリングするか、又は全くフィルタリングしないことができる。デコード済み画像バッファ(670)は、今後の動き補償予測で使用するために、再構成済みの現在の画像をバッファリングする。
デコーダ(600)は、後処理フィルタを含むこともできる。後処理フィルタ(608)は、デブロックフィルタリング、デリンギングフィルタリング、適応型Wienerフィルタリング、フィルム粒子再構成フィルタリング、SAOフィルタリング、又はその他の種類のフィルタリングを含むことができる。「インループ」フィルタリングは動き補償ループ内のフレームの再構成済みサンプル値に対して実行され、参照フレームのサンプル値に影響を与えるが、後処理フィルタ(608)は、ディスプレイに出力される前に、動き補償ループ外の再構成済みサンプル値に適用される。
実装及び目的の復元の種類に応じて、デコーダ(600)のモジュールの、追加、省略、複数のモジュールへの分割、他のモジュールとの結合、及び/又は類似するモジュールへの置き換えを行うことができる。代替の実施形態では、異なるモジュール及び/又はモジュールのその他の構成を含むデコーダが、記載された手法の1つ以上を実行する。デコーダの具体的な実施形態は、通常、デコーダ(600)の変形又は補完されたバージョンを使用する。デコーダ(600)内のモジュール間で示された関係は、デコーダ内の情報の一般的なフローを示しており、その他の関係は簡略化の目的で示されていない。
VII.非対称パーティションを使用するイントラブロックコピー予測
このセクションでは、イントラBC予測対象のブロックの非対称パーティションの例を示す。非対称パーティションを使用すると、エンコーダは、ブロック内の明確に定義されているが不規則な画像パターンにパーティションを適応させることができる。そのような不規則な画像パターンは、スクリーンキャプチャビデオ及びその他の人工的に作成されたビデオのテキスト、Webページ、及びその他の部分では一般的である。
A.イントラBC予測モード及びBV値−概要
イントラBC予測では、画像の現在のブロックのサンプル値は、同じ画像内のサンプル値を使用して予測される。BV値は、現在のブロックから、予測に使用されるサンプル値を含む画像の領域(「参照領域」)までの変位を示す。参照領域は、現在のブロックに対する予測値を提供する。予測に使用されるサンプル値は、以前に再構成されたサンプル値であり、そのためエンコード時にエンコーダで使用することができ、デコード時にデコーダで使用することができる。BV値はビットストリーム内で信号伝達され、デコーダはBV値を使用して、予測に使用するための画像の参照領域を決定できる。この参照領域は、デコーダでも再構成される。イントラBC予測は、イントラ画像予測の一形態である。画像のブロックに対するイントラBC予測は、同じ画像内のサンプル値以外のサンプル値を使用しない。
図7に、現在の画像(710)の現在のブロック(730)に対するイントラBC予測を示す。現在のブロックは、符号化ユニット(CU)の符号化ブロック(CB)、予測ユニット(PU)の予測ブロック(PB)、変換ユニット(TU)の変換ブロック(TB)、又はその他のブロックにすることができる。現在のブロックのサイズは、64×64、32×32、16×16、8×8、又はその他のサイズにすることができる。さらに一般的には、現在のブロックのサイズはm×nである。ここで、mとnはそれぞれ整数であり、mとnを同じ値にするか、又は異なる値にすることができる。そのため、現在のブロックを、正方形又は長方形にすることができる。或いは、現在のブロックを他の形状にすることができる。
BV(740)は、現在のブロック(730)から、予測に使用されるサンプル値を含む画像の参照領域(750)までの変位(又はオフセット)を示す。BV(740)によって示される参照領域(750)は、現在のブロック(730)に対する「マッチングブロック」と呼ばれる場合もある。マッチングブロックは、現在のブロック(730)と同一である場合もあれば、現在のブロック(730)の近似である場合もある。現在のブロックの左上の位置が現在の画像内の位置(x0、y0)にあると仮定し、参照領域の左上の位置が現在の画像内の位置(x1、y1)にあると仮定する。BVは、変位(x1−x0、y1−y0)を示す。例えば、現在のブロックの左上の位置が位置(256、128)にあり、参照領域の左上の位置が位置(126、104)にある場合、BV値は(−130、−24)になる。この例では、負の水平変位は、現在のブロックの左側の位置を示し、負の垂直変位は、現在のブロックの上側の位置を示す。
イントラBC予測は、BC処理を使用して冗長性(画像内の繰り返しパターンなど)を利用することによって、符号化効率を向上できる。しかし、現在のブロックに対するマッチングブロックの検索は、エンコーダが評価できる候補ブロックの数を考えると、複雑な計算になり、時間がかかる可能性がある。図8に、ブロックマッチング処理における現在の画像(810)の現在のブロック(830)に対する候補ブロックの一部を示す。4つのBV(841、842、843、844)は、4つの候補ブロックに対する変位を示す。候補ブロックは、現在の画像(810)の再構成されたコンテンツ内のいずれかの位置に存在する可能性がある。(ブロックは、一般に、左から右に符号化され、その後、上から下に符号化される。)候補ブロックは、BV(843、844)によって示された候補ブロックで示されているように、他の候補ブロックに重なる場合がある。
一部の実装例では、イントラ予測対象領域(850)は、現在のブロック(830)と同じスライス及びタイル内に存在するように制約される。そのようなイントラBC予測は、その他のスライス又はタイル内のサンプル値を使用しない。イントラ予測対象領域(850)の位置は、1つ以上の他の制約(例えば、検索範囲、インター符号化ブロックの再構成済みサンプル値の使用に関する制約)を受ける場合がある。或いは、イントラ予測対象領域(850)の位置は、現在の画像(810)の再構成済みコンテンツ内で制約されない(つまり、検索範囲全体)。
イントラBC予測の予測モードを伴うブロックは、CB、PB、又はその他のブロックにすることができる。ブロックがCBである場合、ブロックに対するBVは、CUレベルで信号伝達できる(且つ、CU内のその他のCBは同じBV又はそれのスケーリングされたバージョンを使用する)。又は、ブロックがPBである場合、ブロックに対するBVは、PUレベルで信号伝達できる(且つ、PU内のその他のPBは同じBV又はそれのスケーリングされたバージョンを使用する)。さらに一般的には、イントラBC予測ブロックに対するBVは、そのブロックに適した構文レベルで信号伝達される。
イントラBC予測モードに従う予測のブロックコピー処理は、CB(BVがCBごとに信号伝達される場合)又はPB(BVがPBごとに信号伝達される場合)のレベルで実行できる。例えば、16×16 CBに1つの16×16 PBが含まれていると仮定する。BV(PBに対する)は、16×16領域をブロックコピーするために適用される。イントラ予測領域が、予測対象の16×16ブロックと重複しないように制約されている場合、BVは、少なくとも水平又は垂直に16の大きさ(絶対値)を持つ。
或いは、ブロックコピー処理は、PB又はCBに関してBVが信号伝達される場合でも、PB又はCB内のTBのレベルで実行できる。このようにして、TBに適用されるBVは、同じPB又はCB内の他のTBの位置を参照できる。例えば、16×16 CBが1つの16×16 PBを含むが、残差符号化/デコーディングの目的で16個の4×4 TBに分割されると仮定する。BV(PBに対する)が、ラスタースキャン順序内の1番目のTBの4×4領域をブロックコピーするために適用され、次に、同じBVが、ラスタースキャン順序内の2番目のTBの4×4領域をブロックコピーするために適用され、3番目以降にも同様に適用される。残差値を以前に再構成されたTBに対する予測値と結合した後に、TBに対するBC処理で使用される4×4領域は、同じCB内の以前に再構成されたTB内の位置を含むことができる。(それでもBVは、予測対象の同じTB内の位置を参照しない。)BC処理をTBレベルで適用することで、相対的に小さい大きさでのBVの使用が促進される。
TBレベルの重複によって、PU内のTUに対する再構成において、暗黙的に逐次依存性が生じる。これによって、並列計算の機会が減り、ハードウェアレベルでのスループットが低下する可能性がある。PUレベルの重複は、TB間のそのような逐次依存性を取り除くことができる。その場合、ブロックコピー処理は、重複が可能なPBのレベルで実行される。このようにして、PBに適用されるBVは、同じCB内の他のPBの位置を参照できる。イントラBC予測の目的で、16×16 CBが2つのPB(例えば、2つの16×8 PB、又は2つの8×16 PB、又は4×16 PBと12×16 PBなど)に分割されると仮定する。1つのPBに対するBVが適用されて、そのPBの領域をブロックコピーし、次に、他のPBに対するBVが適用されて、他のPBの領域をブロックコピーする。残差値を1番目のPBに対する予測値と結合した後に、2番目のPBに対するBC処理で使用される領域は、同じCB内の以前に再構成された1番目のPB内の位置を含むことができる。(それでもBVは、予測対象の同じPB内の位置を参照しない。)BC処理をPBレベルで適用することで、(CBレベルでのBC処理の適用と比較して)相対的に小さい大きさでのBVの使用が促進される。また、BC処理がPBレベルで適用される場合でも、TUレベルの並列処理が依然としてPB内のTBに対して可能である。
CUの彩度ブロックに対するイントラBC予測処理は、通常、CUの輝度ブロックに対するイントラBC予測処理に対応する。通常、CUにおいて、彩度PB及び彩度TBのセグメンテーションは、輝度PB及び輝度TBのセグメンテーションに直接対応する。ビデオの形式がYUV 4:4:4である場合、彩度PB及びTBのサイズは、対応する輝度PB及びTBのサイズに一致する。ビデオの形式がYUV 4:2:0である場合、彩度PB及びTBの幅と高さは、対応する輝度PB及びTBの幅と高さの半分になる。ただし、輝度TBが最小変換サイズである場合、その最小変換サイズを持っている1つの彩度TBが使用される。ビデオの形式がYUV 4:2:2である場合、彩度PB及びTBの幅は、対応する輝度PB及びTBの幅の半分になる。
一部の実装では、イントラBC予測対象のCUに関して、PU内の彩度ブロックに対するイントラBC予測は、恐らくは彩度データの解像度が輝度データよりも低い場合にスケーリング及び丸め処理を行った後に(例えば、形式がYUV 4:2:0形式である場合に、BV値が水平成分及び垂直成分に関して2つに分割される、又は形式がYUV 4:2:2形式である場合に、BV値が水平成分関して2つに分割される)、PU内の輝度ブロックに対するイントラBC予測と同じBV値を使用する。或いは、PUの輝度ブロック及び彩度ブロックに関して、異なるBV値を信号伝達できる。
一部の実装では、エンコーダは、BV推定時又はMV推定時にBV値又はMV値を識別する場合に、輝度サンプル値を考慮する。例えば、エンコーダは、現在のブロック(例えば、PUのPB)の輝度サンプル値を、再構成済み輝度サンプル値に一致させようとする。ただし、得られたBV値又はMV値は、対応する彩度ブロックの彩度サンプル値にも適用できる。或いは、エンコーダは、BV推定時又はMV推定時にBV値又はMV値を識別する場合に、輝度サンプル値及び対応する彩度サンプル値を考慮する。
一部の実装では、PUの輝度ブロックの予測モードがイントラBC予測である場合、PUの彩度ブロックの予測モードもイントラBC予測である。例えば、PUに関する予測モードが信号伝達される。或いは、PUの輝度ブロック又は彩度ブロック(ただし、両方ではない)に対する予測モードをイントラBC予測にすることができる。
B.非対称パーティション
図9に、一部の実装例におけるイントラBC予測のブロックのパーティションの例(900)を示す。2N×2Nブロックが、イントラBC予測を使用してエンコードされる。例えば、2N×2Nブロックは、64×64ブロック、32×32ブロック、16×16ブロック、又は8×8ブロックである。2N×2Nブロックには、分割を行わないイントラBC予測を適用できる。又は、2N×2Nブロックは、図9に示すように、さまざまな方法で分割できる。
2N×2Nブロックは、水平に分割して2つのパーティションにすることができる。対称分割の場合、2つのパーティションの大きさを同じ(2つの2N×Nブロック)にすることができる。又は、2つのパーティションを非対称にすることができる。例えば、上側パーティションを2N×N/2ブロックにし、下側パーティションを2N×3N/2ブロックにする。又は、別の例として、上側パーティションを2N×3N/2ブロックにし、下側パーティションを2N×N/2ブロックにする。したがって、64×64ブロックを2つの64×32ブロック、64×16ブロックと64×48ブロック、又は64×48ブロックと64×16ブロックに分割することができる。32×32、16×16、又は8×8ブロックを、同様に水平に分割できる。
代わりに、2N×2Nブロックを垂直に分割して2つのパーティションにすることができる。対称分割の場合、2つのパーティションの大きさを同じ(2つのN×2Nブロック)にすることができる。又は、2つのパーティションを非対称にすることができる。例えば、左側パーティションをN/2×2Nブロックにし、右側パーティションを3N/2×2Nブロックにする。又は、別の例として、左側パーティションを3N/2×2Nブロックにし、右側パーティションをN/2×2Nブロックにする。したがって、64×64ブロックを2つの32×64ブロック、16×64ブロックと48×64ブロック、又は48×64ブロックと16×64ブロックに分割することができる。32×32、16×16、又は8×8ブロックを、同様に垂直に分割できる。
又は、2N×2Nブロックを4つのN×Nパーティションに分割し、それらをさらに細かく分割することができる。例えば、図9に示すように、特定のN×Nパーティションを、2つのN×N/2ブロック、2つのN/2×Nブロック、又は4つのN/2×N/2ブロックにさらに分割できる。したがって、64×64ブロックを4つの32×32ブロックに分割することができ、それらの各ブロックを、2つの32×16ブロック、2つの16×32ブロック、又は4つの16×16ブロックにさらに分割できる。32×32、16×16、又は8×8ブロックを、四分木分割によって4つのパーティションに同様に分割できる。
本明細書で使用されているように、「N×N」パーティションという用語は、ほとんどの場合、2N×2Nパーティションと見なすこともできる。H.265/HEVCの実装において、N×Nという用語は、通常、CU又はCBではなく、PU又はPBを説明するために使用される。本明細書で使用されているように、「N×Nパーティション」又は「N×Nブロック」という用語は、2N×2Nの現在のブロックのパーティションを(例えば、パーティションモードのトップダウン評価又はパーティションモードのボトムアップ評価の一部として)示す。この文脈において、N×Nパーティション又はN×Nブロックは、N×Nパーティション又はN×Nブロックが最小サイズで、さらに細かく分割されない場合を除き、それ自体2N×2Nブロックと見なすことができ、さらに細かい分割においてもそのように扱うことができる。N×Nパーティション又はN×Nブロック内のパーティションの表記法は、同様に調整できる。
非対称パーティションのサイズをN/2の倍数に制限することで、エンコード時にどのパーティションモードを使用するかを評価する場合の複雑さを軽減できる。或いは、エンコーダは、その他のパーティションサイズ(例えば、N/4の倍数、又はさらに一般的には、m×nのパーティションサイズ)を検討できる。その他のパーティションサイズ検討することで、符号化利得がわずかに向上する場合があるが、エンコード時の検索処理の複雑さも増大し、信号伝達のオーバーヘッドが増える可能性がある。
C.非対称パーティションを使用するイントラBC予測を含むエンコーディング又はデコーディングのための手法の例
図10は、非対称パーティションを使用するイントラBC予測を含むエンコーディングのための一般化手法(1000)を示す。図3又は図5a〜5bを参照して説明されているような画像エンコーダ又はビデオエンコーダは、手法(1000)を実行できる。図11は、非対称パーティションを使用するイントラBC予測を含むデコーディングのための一般化手法(1100)を示す。図4又は図6を参照して説明されているような画像エンコーダ又はビデオエンコーダは、手法(1100)を実行できる。
図10を参照すると、エンコーダは画像又はビデオをエンコードして(1010)エンコード済みデータを生成する。エンコーディングの一部として、エンコーダは、イントラBC予測のために非対称に分割された現在のブロックに対して、イントラBC予測を実行する。具体的には、現在のブロックを、異なる大きさを持つ2つのパーティションに分割できる。エンコーダは、エンコード済みデータをビットストリームの一部として出力する(1020)。
図11を参照すると、デコーダはエンコード済みデータをビットストリームの一部として受信する(1110)。デコーダは、エンコード済みデータをデコードして(1120)画像又はビデオを再構成する。デコーディングの一部として、デコーダは、イントラBC予測のために非対称に分割された現在のブロックに対して、イントラBC予測を実行する。具体的には、現在のブロックを、異なる大きさを持つ2つのパーティションに分割できる。
例えば、現在の2N×2Nブロックが水平に分割されて、(1)2N×N/2ブロック及び2N×3N/2ブロック、又は(2)2N×3N/2ブロック及び2N×N/2ブロックになる。又は、現在の2N×2Nブロックが垂直に分割されて、(1)N/2×2Nブロック及び3N/2×2Nブロック、又は(2)3N/2×2Nブロック及びN/2×2Nブロックになる。或いは、現在のブロックを、他の何らかの方法で非対称に分割する。
他のブロックを、イントラBC予測のために、対称に分割できる。例えば、前記他のブロックが、(1)2つの2N×Nブロック、(2)2つのN×2Nブロック、又は(3)4つのN×Nブロックに分割された2N×2Nブロックであり、これらはそれぞれ、2つのN×N/2ブロック、2つのN/2×Nブロック、又は4つのN/2×N/2ブロックにさらに分割できる。さらに一般的には、対称分割では、前記他のブロックを、同じ大きさを持つパーティションに分割できる。
VIII.分割するためのエンコーダ側のアプローチ
このセクションでは、動き推定時又はブロックベクトル推定時(イントラBC予測の場合)にパーティションを識別するためのエンコーダ側のさまざまなアプローチを示す。
例えばセクションV、VII.A、IX、及びXにおいて、イントラBC予測及びBV推定の例が示されている。BV推定は、現在のブロックに対して可能な多数の候補ブロックを考えると、計算が複雑になる場合がある。BV推定の計算の複雑さは、BV値の検索範囲が画像の以前に再構成されたすべての領域を包含している場合、現在のブロックと比較される候補ブロックが大量になるため、特に問題になる。フレーム全体の候補ブロックについては、処理の数がさらに多くなる。エンコーダが非対称パーティションを評価する場合、BV推定の複雑さはさらに増大する。
動き推定の計算の複雑さも、以下のセクションで説明されているように、非常に大きくなる場合がある。
A.動き推定及びMV値−概要
動き推定では、現在の画像の現在のブロックのサンプル値は、参照画像と呼ばれる別の画像のサンプル値を使用して予測される。動きベクトル(motion vector:MV)値は、参照画像内の現在のブロックの位置から、予測に使用されるサンプル値を含む参照画像の領域(「参照領域」)までの変位を示す。参照領域は、現在のブロックに対する予測値を提供する。予測に使用されるサンプル値は、以前に再構成されたサンプル値であり、そのためエンコード時にエンコーダで使用することができ、デコード時にデコーダで使用することができる。MV値はビットストリーム内で信号伝達され、デコーダはMV値を使用して、予測に使用するための参照画像の参照領域を決定できる。この参照領域は、デコーダでも再構成される。複数の参照画像を使用できる場合、ビットストリームは、どの参照画像を参照領域の検索に使用するかの指示を含むこともできる。
図12は、現在の画像(1210)の現在のブロック(1230)に対する動き推定を示す。現在のブロックは、符号化ユニット(CU)の符号化ブロック(CB)、予測ユニット(PU)の予測ブロック(PB)、変換ユニット(TU)の変換ブロック(TB)、又はその他のブロックにすることができる。現在のブロックのサイズは、64×64、32×32、16×16、8×8、又はその他のサイズにすることができる。さらに一般的には、現在のブロックのサイズはm×nである。ここで、mとnはそれぞれ整数であり、mとnを同じ値にするか、又は異なる値にすることができる。そのため、現在のブロックを、正方形又は長方形にすることができる。或いは、現在のブロックを他の形状にすることができる。
MV値(1240)は、現在のブロック(1230)の位置から、予測に使用されるサンプル値を含む参照画像(1250)内の参照領域(参照ブロックと呼ばれる場合もある)までの変位(又はオフセット)を示す。MV値(1240)によって示される参照領域は、現在のブロック(1230)に対する「マッチングブロック」と呼ばれる場合もある。マッチングブロックは、現在のブロック(1230)と同一である場合もあれば、現在のブロック(1230)の近似である場合もある。現在のブロック(1230)の左上の位置が現在の画像(1210)の位置(x0、y0)にあると仮定し、参照領域の左上の位置が参照画像(1250)内の位置(x1、y1)にあると仮定する。MV値(1240)は、変位(x1−x0、y1−y0)を示す。例えば、現在のブロックの左上の位置が位置(256、128)にあり、参照領域の左上の位置が位置(126、104)にある場合、MV値は(−130、−24)になる。この例では、負の水平変位は、現在のブロックの左側の位置を示し、負の垂直変位は、現在のブロックの上側の位置を示す。
現在のブロック(1230)に対する参照領域は、動き推定時に複数の候補ブロックから選択される。図12に、動き推定における現在の画像(1210)の現在のブロック(1230)に対する候補ブロックの一部も示す。4つのMV値(1241、1242、1243、1244)は、4つの候補ブロックに対する変位を示す。一般に、候補ブロックは、参照画像(1250)内のいずれかの位置に存在する可能性がある。候補ブロックは、MV値(1243、1244)によって示された候補ブロックで示されているように、他の候補ブロックに重なる場合がある。動き推定の計算の複雑さは、MV値の検索範囲が参照画像をすべて包含している場合、現在のブロックと比較される候補ブロックが大量になるため、特に問題になる。この計算の複雑さは、動き推定が複数の参照画像に対して実行される場合に悪化する。
B.BV値及びMV値の精度
本明細書に記載された例の多くにおいて、BV値は整数のサンプル精度を持つ。そのようなBV値は、整数のサンプルオフセットを示す。イントラBC予測は、人工的に作成されたビデオ(スクリーンコンテンツビデオ)をエンコードする場合にしばしば使用される。そのような場合、分数のサンプルの変位はまれであるため、BV値には整数のサンプル精度で十分である。或いは、BV値は分数のサンプルオフセットを示すことができる。例えば、1/2のサンプル精度を持つBV値は、1/2のサンプルオフセット(1.5サンプル、2.5サンプルなど)を使用して水平及び/又は垂直変位を示すことができる。又は、1/4のサンプル精度を持つBV値は、1/4、1/2、又は3/4のサンプルオフセットを使用して水平及び/又は垂直変位を示すことができる。又は、1/8のサンプル精度を持つBV値は、1/8、1/4、3/8、1/2、5/8、3/4、又は7/8のサンプルオフセットを使用して水平及び/又は垂直変位を示すことができる。又は、BV値は、その他の精度を持つことができる。
一方、MV値は、自然なビデオをエンコードする場合には分数のサンプルの変位が一般的であるため、通常は分数のサンプル精度を持つ。例えば、MV値は、1/2のサンプル精度、1/4のサンプル精度、1/8のサンプル精度、又はその他の精度を持つことができる。或いは、MV値は整数のサンプル精度を持つ。
C.パーティションを識別するためのアプローチ
一般に、エンコーダは、動き推定時又はBV推定時(イントラBC予測の場合)にパーティションを識別する場合、トップダウンアプローチ又はボトムアップアプローチを使用できる。ボトムアップアプローチは、最初に最小サイズのパーティションのオプションを評価し、その後、その初期評価の結果を使用して、連続的にサイズが大きいパーティションのオプションを評価する。ボトムアップアプローチは、計算コストが高くなる可能性がある。一方、トップダウンアプローチは、より大きいサイズのパーティションのオプションを最初に評価し、その後、その初期評価の結果を使用して、連続的にサイズが小さいパーティションのオプションを評価する。トップダウンアプローチは、ブロックを分割するための最適な方法を識別する可能性が低いが、通常はボトムアップアプローチよりも計算が単純である。
分割アプローチに関する詳細については、次を参照のこと。すなわち、(1)Sullivan他、「Efficient Quadtree Coding of Images and Video」、プロシーディング、IEEE Int. Conf. on Acoust.,Speech,and Signal Proc.(ICASSP)、カナダ、トロント、第4巻、2661〜2664ページ、1991年5月、(少なくとも一部の環境の下での)ツリー構造符号化のためのレート歪み検出における最適なツリーの識別方法についての説明、(2)Sullivan他、「Rate−Distortion Optimized Motion Compensation for Video Compression using Fixed or Variable Size Blocks」、プロシーディング、IEEE Global Telecom.Conf.(GLOBECOM)、アリゾナ州、フェニックス、85〜90ページ、1991年12月、(ツリーを使用する又は使用しない)動き補償へのレート歪み最適化の適用方法についての説明、及び(3)Sullivan他、「Efficient Quadtree Coding of Images and Video」、IEEE Trans,on Image Proc.、第IP−3巻3号、327〜331ページ、1994年5月、ツリー構造符号化のためのレート歪み検出における最適なツリーの識別方法についての詳細な説明。
一部の実装形態では、エンコーダは、下で説明されているトップダウンアプローチ又はボトムアップアプローチのいずれかを適用して、PUに対するパーティションを識別する。エンコーダは、PUの輝度PBの解析に基づいてPUに対するパーティションを設定できる。或いは、エンコーダは、PUの輝度PB及び彩度PBの両方の解析に基づいてPUに対するパーティションを設定できる。いずれの場合も、PUごとに設定されたパーティションがPUのPBに適用される。或いは、エンコーダは、別の種類のユニット又はブロックに対してパーティションを識別する。
1.パーティションを識別するためのトップダウンアプローチ
エンコーダは、BV推定時(イントラBC予測の場合)又は動き推定時に現在のブロックのパーティションを識別する際に、トップダウンアプローチを使用できる。現在のブロックは、PUのPB又はその他の種類のブロックにすることができる。図13は、イントラBC予測対象のブロックを分割するためのトップダウンアプローチを説明するフローチャート及びそれに付随する図である。図3又は図5a〜5bを参照して説明されているような画像エンコーダ又はビデオエンコーダは、アプローチ(1300)を使用できる。図13に示されている例では、エンコーダは、非対称分割を使用してイントラBC予測対象の2N×2Nブロックの少なくとも一部のパーティションを識別する。
エンコーダは、2Nの大きさを使用するモードをチェックする(1310)。例えば、エンコーダは、1つの2N×2Nブロックのモード、2つの2N×Nブロックのモード、2つのN×2Nブロックのモード、1つのN/2×2Nブロックと1つの3N/2×2Nブロックのモード(図13に示された、左又は右に狭いブロックを含む2つのオプション)、及び1つの2N×N/2ブロックと1つの2N×3N/2ブロック(図13に示された、上又は下に短いブロックを含む2つのオプション)のモードをチェックする。16×16 CUの場合、例えば、エンコーダは16×Pのサイズを持つすべてのPU及びP×16のサイズを持つすべてのPUをチェックする。ここで、Pは、許容される組み合わせにおいて4、8、12、及び16にすることができる。
現在の2N×2Nブロックの特定のモードについて、エンコーダは、モードに従って現在の2N×2Nブロックのブロックに対するBV値を決定する。現在の2N×2Nブロックのブロックに対して、エンコーダは、例えば(1)現在の画像内の近隣のブロックによって使用されたBV値、(2)以前の画像の同一の位置にあるブロックによって使用されたBV値、又は(3)以前の動き推定において現在の2N×2Nブロックのブロックに対して識別されたMV値に基づいて、開始BV値を選択できる。その後、エンコーダは、現在の2N×2Nブロックのブロックに対する適切なBV値を検出する。
エンコーダは、2Nの大きさを使用する最適なモードを選択する(1320)。選択基準は、歪みコスト、ビットレートコスト、又は歪みコストとビットレートコストの組み合わせにすることができ、又は選択基準は、その他の指標を使用できる(例えば、差異しきい値又はエッジ検出部を使用する)。例えば、図13において、エンコーダは、左N/2×2Nブロック及び右3N/2×2Nブロックを使用するモードを選択する。
四分木としての2N×2Nブロックの分割後、エンコーダは、2N×2NブロックのN×Nブロックごとのモードもチェックする(1330)。例えば、エンコーダは、特定のN×Nブロックについて、1つのN×Nブロックのモード、2つのN×N/2ブロックのモード、2つのN/2×Nブロックのモード、及び4つのN/2×N/2ブロックのモードをチェックする。エンコーダは、各N×Nブロックを別々にチェックできる。8×8 CUについては、例えば、エンコーダは1つの8×8 PU、2つの8×4 PU、2つの4×8 PU、及び4つの4×4 PUをチェックする。
特定のN×Nブロックの特定のモードについて、エンコーダは、モードに従って特定のN×Nブロックのブロックに対してBV値を決定する。エンコーダは、例えば現在の2N×2Nブロックに対して識別されたBV値に基づいて、開始BV値を選択できる。その後、エンコーダは、モードに従って特定のN×Nブロックのブロックに対する適切なBV値を検出する。
エンコーダは、各N×Nブロックのモードの最適な組み合わせを選択する(1340)。選択基準は、歪みコスト、ビットレートコスト、又は歪みコストとビットレートコストの組み合わせにすることができ、又は選択基準は、その他の指標を使用できる(例えば、差異しきい値又はエッジ検出部を使用する)。図13に示されているように、異なるN×Nブロックが同じモード又は異なるモードを持つことができる。
その後エンコーダは、2N×2Nブロックについて、2Nの大きさを使用する最適なモードと、各N×Nブロックの最適なモードの組み合わせとの間で選択する(1350)。選択基準は、歪みコスト、ビットレートコスト、又は歪みコストとビットレートコストの組み合わせにすることができ、又は選択基準は、その他の指標を使用できる(例えば、差異しきい値又はエッジ検出部を使用する)。
2.パーティションを識別するためのボトムアップアプローチ
エンコーダは、トップダウンアプローチを使用する代わりに、BV推定時(イントラBC予測の場合)又は動き推定時に現在のブロックのパーティションを識別する際に、ボトムアップアプローチを使用できる。図14は、分割のためのボトムアップアプローチを使用するための一般化手法を説明するフローチャートである。図3又は図5a〜5bを参照して説明されているような画像エンコーダ又はビデオエンコーダは、手法(1400)を実行できる。
エンコーダは、画像又はビデオをエンコードして(1410)エンコード済みデータを生成する。エンコーディングの一部として(例えば、動き推定の一部として、又はイントラBC予測のためのブロックベクトル推定の一部として)、エンコーダは現在の画像の現在のブロックに対して予測を計算する。現在のブロックは、PUのPB又はその他の種類のブロックにすることができる。予測を計算する場合、エンコーダはボトムアップアプローチを使用して現在のブロックのパーティションを識別する。エンコーダは、現在のブロックのパーティションが異なる大きさを持つ2つのパーティションになるように、現在のブロックを非対称に分割するか、又は現在のブロックのパーティションが同じ大きさを持つように、現在のブロックを対称に分割することができる。
一般に、ボトムアップアプローチの場合、エンコーダは、現在のブロックについて、現在のブロック内のより小さいブロックに対して少なくとも一部のパーティションモードをチェックする。エンコーダは、より小さいブロックに対するBV値又はMV値などの結果をキャッシュする。その後、エンコーダは、現在のブロックに対するパーティションモードのチェックの計算の複雑さを低減するために、(より小さいブロックから)キャッシュされた結果を使用して現在のブロックに対して少なくとも一部のパーティションモードをチェックする。例えば、エンコーダは、より小さいブロックからキャッシュされた結果を使用して、現在のブロックに対してパーティションモードの(BV推定時の)開始BV値又は(動き推定時の)開始MV値を識別する。多くの場合、開始BV値(又はMV値)が現在のブロックに対して使用され、検索処理を大幅に短縮する。図15及び16は、現在のブロックに対してパーティションを識別するためのボトムアップアプローチの例を示す。或いは、エンコーダは別のボトムアップアプローチを使用する。
その後、エンコーダは、ビットストリームの一部としてエンコード済みデータを出力する(1420)。
図15は、イントラBC予測対象のブロックを分割するためのボトムアップアプローチ(1500)を説明するフローチャート及びそれに付随する図である。図3又は図5a〜5bを参照して説明されているような画像エンコーダ又はビデオエンコーダは、アプローチ(1500)を使用できる。
エンコーダは、四分木として分割された2N×2Nブロックについて、2N×2NブロックのN×Nブロックごとにモードをチェックする(1510)。例えば、エンコーダは、特定のN×Nブロックについて、1つのN×Nブロックのモード、2つのN×N/2ブロックのモード、2つのN/2×Nブロックのモード、及び4つのN/2×N/2ブロックのモードをチェックする。エンコーダは、各N×Nブロックを別々にチェックできる。例えば、エンコーダは、8×8 CUについて、1つの8×8 PU、2つの8×4 PU、2つの4×8 PU、及び4つの4×4 PUのモードをチェックする。
特定のN×Nブロックの特定のモードについて、エンコーダは、モードに従って特定のN×Nブロックのブロックに対してBV値を決定する。特定のN×Nブロックのブロックに対して、エンコーダは、例えば(1)現在の画像内の近隣のブロックによって使用されたBV値、(2)以前の画像の同一の位置にあるブロックによって使用されたBV値、又は(3)以前の動き推定において特定のN×Nブロックのブロックに対して識別されたMV値に基づいて、開始BV値を選択できる。その後、エンコーダは、特定のN×Nブロックのブロックに対する適切なBV値を検出する。
エンコーダは、各N×Nブロックのモードの最適な組み合わせを選択する(1520)。選択基準は、歪みコスト、ビットレートコスト、又は歪みコストとビットレートコストの組み合わせにすることができ、又は選択基準は、その他の指標を使用できる(例えば、差異しきい値又はエッジ検出部を使用する)。図15に示されているように、異なるN×Nブロックが同じモード又は異なるモードを持つことができる。
エンコーダは、2N×2NブロックのN×Nブロックごとに、ベクトル値、パーティションモード情報、及び/又はモードのチェック(1510)のその他の結果をキャッシュする(1530)。例えば、エンコーダは、BV推定時のBV値、及び2N×2NブロックのN×Nブロックに対するパーティションモード選択をキャッシュする。
エンコーダは、多くの場合に検索処理を短縮することによって計算の複雑さを低減するために、キャッシュされた情報を使用して、2Nの大きさを使用するモードをチェックする(1540)。エンコーダは、キャッシュされた結果を使用して、2N×2Nブロックに対して(BV推定時に)開始BV値を識別できる。多くの場合、2N×2Nブロックの2Nの大きさのパーティションモードに対して開始BV値が使用され、検索処理を大幅に短縮する。
例えば、エンコーダは、1つの2N×2Nブロックのモード、2つの2N×Nブロックのモード、2つのN×2Nブロックのモード、1つのN/2×2Nブロックと1つの3N/2×2Nブロックのモード(図15に示された、左又は右に狭いブロックを含む2つのオプション)、及び1つの2N×N/2ブロックと1つの2N×3N/2ブロック(図15に示された、上又は下に短いブロックを含む2つのオプション)のモードをチェックする。例えば、エンコーダは、16×16 CUについて、16×16 CUの4つの8×8 CUに対してパーティションモードをチェックした後にキャッシュされた情報を再利用する。多くの場合、16×16 CUのパーティションモードは、8×8 CUからキャッシュされたBV値を最終的に使用し、検索処理を大幅に短縮する。
エンコーダは、2Nの大きさを使用する最適なモードを選択する(1550)。選択基準は、歪みコスト、ビットレートコスト、又は歪みコストとビットレートコストの組み合わせにすることができ、又は選択基準は、その他の指標を使用できる(例えば、差異しきい値又はエッジ検出部を使用する)。例えば、図15において、エンコーダは、左N/2×2Nブロック及び右3N/2×2Nブロックを使用するモードを選択する。
その後エンコーダは、2N×2Nブロックについて、2Nの大きさを使用する最適なモードと、各N×Nブロックのモードの組み合わせとの間で選択する(1560)。選択基準は、歪みコスト、ビットレートコスト、又は歪みコストとビットレートコストの組み合わせにすることができ、又は選択基準は、その他の指標を使用できる(例えば、差異しきい値又はエッジ検出部を使用する)。
図15を参照して説明されている手法(1500)は、インター符号化ブロックのボトムアップ分割にも使用できる。その場合、N×NブロックからのMV値及びその他の結果がキャッシュされる。エンコーダは、キャッシュされた結果を使用して、2N×2Nブロックに対して(動き推定時に)開始MV値を識別できる。多くの場合、2N×2Nブロックの2Nの大きさのパーティションモードに対して開始MV値が使用され、検索処理を大幅に短縮する。
図16は、イントラBC予測対象のブロックを分割するための、さらに高速なボトムアップアプローチ(1600)を説明するフローチャート及びそれに付随する図である。図3又は図5a〜5bを参照して説明されているような画像エンコーダ又はビデオエンコーダは、アプローチ(1600)のいずれかを使用できる。図16のアプローチ(1600)は、図15のアプローチ(1500)に類似しているが、検索処理をさらに短縮するために、複数の箇所が変更されている。
エンコーダは、四分木として分割された2N×2Nブロックについて、2N×2NブロックのN×Nブロックごとにモードのサブセットをチェックする(1610)。つまり、エンコーダは、N×Nブロックごとに、モードの全部ではなく一部をチェックする。例えば、エンコーダは、特定のN×Nブロックについて、2つのN×N/2ブロックを使用するモードのみをチェックする。又は、別の例として、エンコーダは、2つのN/2×Nブロックを使用するモードのみをチェックする。エンコーダは、各N×Nブロックを別々にチェックできる。ただし、チェックするモードが少ないほど、検索処理が短縮される。或いは、エンコーダは、N×Nブロックごとに、その他及び/又は追加のモードをチェックする。
複数のモードがチェックされた場合(1610)、エンコーダは、各N×Nブロックのモードの最適な組み合わせを選択する(1620)。選択基準は、歪みコスト、ビットレートコスト、又は歪みコストとビットレートコストの組み合わせにすることができ、又は選択基準は、その他の指標を使用できる(例えば、差異しきい値又はエッジ検出部を使用する)。1つのモードのみがチェックされた場合(1610)、エンコーダは単にN×Nブロックごとにそのモードを使用する。
エンコーダは、2N×2NブロックのN×Nブロックごとに、ベクトル値、パーティションモード情報、及び/又はモードのチェック(1610)のその他の結果をキャッシュする(1630)。例えば、エンコーダは、BV推定時のBV値、及び2N×2NブロックのN×Nブロックに対するパーティションモード選択をキャッシュする。
エンコーダは、計算の複雑さを低減するために、キャッシュされた情報を使用して、2Nの大きさを使用するモードのサブセットをチェックする(1640)。例えば、エンコーダがN×NブロックのN×N/2ブロックのみをチェックした場合(1610)、エンコーダは、1つの2N×2Nブロックのモード、2つの2N×Nブロックのモード、及び1つの2N×N/2ブロックと1つの2N×3N/2ブロックのモード(図16に示された、上又は下に短いブロックを含む2つのオプション)をチェックする。又は、エンコーダがN×NブロックのN/2×Nブロックのみをチェックした場合(1610)、エンコーダは、1つの2N×2Nブロックのモード、2つのN×2Nブロックのモード、及び1つのN/2×2Nブロックと1つの3N/2×2Nブロックのモード(図16に示された、左又は右に狭いブロックを含む2つのオプション)をチェックする。
又は、別の例として(図16に示されていない)、エンコーダは、2N×2NブロックのN×NブロックごとにN×Nパーティションのみをチェックする(1610)。2N×2Nブロックがイントラ符号化ブロックである場合、エンコーダは、1つの2N×2Nブロックのモード、2つのN×2Nブロックのモード、及び1つのN/2×2Nブロックと1つの3N/2×2Nブロック(左又は右に狭いブロックを含む)のモードをチェックする(1640)。2N×2Nブロックがインター符号化ブロックである場合、エンコーダは、1つの2N×2Nブロックのモード、2つの2N×Nブロックのモード、及び1つの2N×N/2ブロックと1つの2N×3N/2ブロック(上又は下に短いブロックを含む)のモードをチェックする(1640)。
エンコーダは、2Nの大きさを使用する最適なモードを選択する(1650)。選択基準は、歪みコスト、ビットレートコスト、又は歪みコストとビットレートコストの組み合わせにすることができ、又は選択基準は、その他の指標を使用できる(例えば、差異しきい値又はエッジ検出部を使用する)。その後エンコーダは、2N×2Nブロックについて、2Nの大きさを持つ最適なモードと、各N×Nブロックのモードの組み合わせとの間で選択する(1660)。選択基準は、歪みコスト、ビットレートコスト、又は歪みコストとビットレートコストの組み合わせにすることができ、又は選択基準は、その他の指標を使用できる(例えば、差異しきい値又はエッジ検出部を使用する)。
図16を参照して説明されている手法(1600)は、インター符号化ブロックのボトムアップ分割にも使用できる。その場合、N×NブロックからのMV値及びその他の結果がキャッシュされる。エンコーダは、キャッシュされた結果を使用して、2N×2Nブロックに対して(動き推定時に)開始MV値を識別できる。多くの場合、2N×2Nブロックの2Nの大きさのパーティションモードに対して開始MV値が使用され、検索処理を大幅に短縮する。
図15及び16に示されたアプローチ(1500、1600)では、エンコーダはキャッシュされるBV値又はMV値の数を制限できる。例えば、エンコーダは、2N×2NブロックのN×Nブロックごとに、最適なパーティションモードのBV値又はMV値のみを格納する。或いは、エンコーダは、その他のBV値又はMV値も格納する。エンコーダの制約は、エンコーダが格納するBV値又はMV値の数を制御できる。
IX.検索パターン
このセクションでは、動き推定又はイントラBC予測で使用できるさまざまな検索パターンを示す。具体的には、検索パターンは、スクリーンキャプチャビデオ又はその他の人工的に作成されたビデオ内の一般的な種類の動きを利用する。そのようなビデオでは、ブロックの動きは、多くの場合、純粋に水平な動き又は純粋に垂直な動きである(例えば、コンピュータデスクトップ環境におけるWebページのコンテンツ又はアプリケーションのコンテンツのスクロール、或いは混合コンテンツビデオ内のティッカーグラフィックのスクロール)。このような意味において、検索パターンは、スクリーンキャプチャビデオ又はその他の人工的に作成されたビデオに適しているが、自然なビデオをエンコードする場合にも使用できる。
図17は、小さい近傍領域内の位置の反復評価及びより大きい近傍領域内の位置の反復確認を使用してブロックに対するBV値又はMV値を検索するための一般化手法(1700)を説明するフローチャートである。図3又は図5a〜5bを参照して説明されているような画像エンコーダ又はビデオエンコーダは、手法(1700)を実行できる。
エンコーダは、画像又はビデオをエンコードしてエンコード済みデータを生成し、ビットストリームの一部としてエンコード済みデータを出力する。エンコード時に、エンコーダは現在の画像の現在のブロックの予測を(例えば、BV推定又は動き推定を使用して)計算する。エンコーダは、予測を計算する際に、予測のための現在の最適な位置を囲む小さい近傍領域内での反復評価によって、予測のための現在の最適な位置を識別する(1710)。例えば、小さい近傍領域は、現在の最適な位置に水平又は垂直に直接隣接している位置を含む。小さい近傍領域内の位置のいずれかが現在の最適な位置よりも良い結果を提供する場合、現在の最適な位置は、小さい近傍領域内のより良い位置に置き換えられ、その新しい位置が、それを囲む小さい近傍領域内でチェックされる。このようにして、小さい近傍パターンを使用する検索処理は、現在の最適な位置が、それを囲む小さい近傍領域内で最も良い位置になるまで、反復することができる。この近傍領域内で最も良い位置の検出は、反復の1回目で、又は複数回の反復の後に発生する場合がある。
図18a及び18bは、ブロックに対してBV値又はMV値を検索する場合の小さい近傍領域内の位置の反復評価を説明している。図18aにおいて、現在の最適な位置は、黒い円で示されている。ダイヤ形パターン内の隣接位置(灰色の円で示される)が評価される。4つの隣接位置の結果が、(歪みコスト、ビットレートコスト、又は歪みコストとビットレートコストの組み合わせに関して)現在の最適な位置の結果とそれぞれ比較される。図18a及び18bの例では、図18a内の現在の最適な位置の下の位置が最も良い結果を提供し、現在の最適な位置になる。図18bに示す次の反復では、新しい現在の最適な位置を囲むダイヤ形パターン内の隣接位置が評価される。或いは、小さい近傍領域を、別の形状にすることができる。
エンコーダは、識別(1710)段階において反復回数を制限するために、しきい値を使用できる。しきい値は、実装によって変わり、例えば4回の反復になる。反復回数のしきい値に達した場合、エンコーダは、別の検索処理(例えば、完全な検索処理又はハッシュ処理)を実行して、予測のための最適な位置を決定できる。
図17に戻ると、エンコーダは、小さい近傍領域内で(反復回数のしきい値以内で)現在の最適な位置を識別した後に、予測のための現在の最適な位置を囲む連続するより大きい近傍領域内での反復評価によって、予測のための現在の最適な位置を確認する(1720)。例えば、より大きい近傍領域のそれぞれが、小さい近傍領域の外側のリング内にある位置を含む。連続するより大きい近傍領域は、各辺で1サンプルずつ、2サンプルずつ、又はその他の数分増やして拡大することができる。又は、連続するより大きい近傍領域は、何らかの係数によって拡大することができる。例えば、より大きい近傍領域の半径が、1回目の後の各反復において、2倍に拡大される。
より大きい近傍領域内のいずれかの位置が、現在の最適な位置よりも良い結果を提供する場合、現在の最適な位置は、より大きい近傍領域内のより良い位置に置き換えられ、エンコーダは新しい現在の最適な位置で処理を再開する。そうでない場合(より大きい近傍領域内の位置が現在の最適な位置よりも良い結果を提供しない場合)、エンコーダは、確認(1720)処理の反復回数のしきい値に達するまで、次に大きい近傍領域で確認処理を繰り返す。しきい値は、実装によって変わり、例えば、連続するより大きい近傍領域に対する4〜7段階のチェックになる。
最も大きい近傍領域が正常にチェックされた後に、エンコーダは検索処理を終了する。そうでない場合(判定1730に示されるように)、エンコーダは新しい現在の最適な位置で処理を再開する。
図19は、ブロックに対してBV値又はMV値を検索する場合の1つ以上のより大きい近傍領域内の位置の反復確認を示す。図19では、現在の最適な位置が黒い円で示されている。エンコーダは、現在の最適な位置を囲む正方形(内側の正方形)の角及び中点にある8つの位置をチェックする。8つの位置は、図19では灰色の円で示されている。8つの位置の結果はそれぞれ、(歪みコスト、ビットレートコスト、又は歪みコストとビットレートコストの組み合わせに関して)現在の最適な位置の結果と比較される。内側の正方形の8つの位置のいずれも、現在の最適な位置よりも良くない場合、エンコーダは、さらに大きい正方形(図19の外側の正方形)の8つの位置(角及び中点)をチェックする。或いは、より大きい近傍領域は、別の形状(例えば、位置の円形)を持ち、さらに少ない評価対象の位置(例えば、角のみ)を含むか、又はさらに多い評価対象の位置(例えば、形状の外周にある位置)を含むことができる。
第1しきい値(小さい近傍領域の反復回数)のカウンタは、識別(1710)段階が開始又は再開されるたびに、リセットすることができる。又は、エンコーダは、第1しきい値のカウンタを、処理(1700)の開始時に1回だけリセットできる。同様に、第2しきい値(大きい近傍領域の反復回数)のカウンタは、確認(1720)段階が開始又は再開されるたびに、リセットすることができる。又は、エンコーダは、第2しきい値のカウンタを、処理(1700)の開始時に1回だけリセットできる。処理(1700)内でカウンタがリセットされた場合、エンコーダは別の制約を使用して、検索処理の継続時間を制限し、検索を妥当な時間内に確実に終了させることができる。
図20は、小さい近傍領域内の位置の反復評価及びより大きい近傍領域域内の位置の反復確認を使用してブロックに対してBV値又はMV値を検索するための手法の例を説明するフローチャートである。
エンコーダは、第1カウンタ及び第2カウンタをリセットする(2010)。エンコーダは、現在の最適な位置を設定して(2020)評価する(現在の最適な位置の結果が、以前の評価からまだ使用できない場合)。次にエンコーダは、現在の最適な位置を囲む小さい近傍領域内の隣接位置を評価する(2030)(隣接位置の結果が、以前の評価からまだ使用できない場合)。エンコーダは、新しい最適な位置が検出されたかどうかを(結果を比較して)チェックする(2040)。新しい最適な位置が検出された場合、エンコーダは、第1カウンタを使用して第1しきい値に達したかどうかをチェックする(2042)。新しい最適な位置が検出されなかった場合、エンコーダは第1カウンタをインクリメントし(示されていない)、現在の最適な位置を、(隣接位置からの)新しい最適な位置になるように設定し(2010)、その位置から処理を続行する。このようにして、エンコーダは現在の最適な位置を囲む隣接位置の小さい近傍領域を反復的にチェックできる。
第1しきい値に達した場合、エンコーダは完全な検索を実行する(2080)。或いは、エンコーダは、ハッシュ処理などの別の検索処理を使用する。
新しい最適な位置が(判定2040で)検出されなかった場合、エンコーダは、現在の最適な位置を囲む位置のリングを評価する(2050)。エンコーダは、新しい最適な位置が検出されたかどうかを(結果を比較して)チェックする(2060)。新しい最適な位置が検出された場合、エンコーダは第1カウンタ及び第2カウンタをリセットし(2090)、現在の最適な位置を、(隣接位置からの)新しい最適な位置になるように設定し(2010)、その位置から処理を続行する。このようにして、エンコーダは処理を再開する(2000)。
そうでない場合(新しい最適な位置が判定(2060)で検出されなかった場合)、エンコーダは、第2カウンタを使用して第2しきい値に達したかどうかをチェックする(2062)。第2しきい値に達した場合、エンコーダは検索処理を(正常に)終了する。第2しきい値に達しなかった場合、エンコーダは第2カウンタをインクリメントして(示されていない)位置のリングを拡大し(2070)、現在の最適な位置を囲む(拡大された)位置のリングを評価する(2050)。
このセクションで説明された例では、BV値及びMV値は整数のサンプルオフセットを示す。或いは、BV値及び/又はMV値は分数のサンプルオフセットを示すことができる。分数のサンプルオフセットが許容される場合、エンコーダは、図17〜20を参照して説明されているように、整数のサンプルオフセットを含むBV値又はMV値を識別できる。次にエンコーダは、整数のサンプルBV値又はMV値を囲む近傍領域内(例えば、整数のサンプルBV値又はMV値から1サンプルオフセットの範囲内)のBV値又はMV値を識別できる。
或いは、分数のサンプルオフセットが許容される場合、エンコーダは、図17〜20を参照して説明されている各段階で許容される精度を使用して、分数のサンプルオフセットを含むBV値又はMV値を識別できる(つまり、小さい近傍領域内で分数のサンプルオフセットを含むBV値又はMV値を識別し、より大きい近傍領域内で分数のサンプルオフセットを含むBV値又はMV値を識別する、などである)。
X.イントラBC予測のためのBV検索範囲の制約
一部の実装例では、エンコーダはBV推定で完全な検索範囲を使用する。現在のブロックに対するBV値を識別するために、再構成済みサンプル値の領域全体が検索される。完全な検索範囲の使用は、イントラBC予測で使用するための最適なBV値の識別に役立つ場合があるが、BV推定の複雑さを増す可能性もある。
その他の実装例では、エンコーダは1つ以上の制約に従ってBV検索範囲を制限する。BV検索範囲を制限することで、エンコード時及びデコード時にイントラBC予測のために高速メモリアクセスによって参照される再構成済みサンプル値の領域を削減することができ、それによって実装コストが低下する傾向がある。
このセクションの例では、エンコーダは、BV推定時にBV値を識別する際に、現在の輝度ブロックの輝度サンプル値を考慮する。エンコーダは、現在のブロックの輝度サンプル値を、以前の輝度ブロックの再構成済み輝度サンプル値に一致させようとする。ただし、得られたBV値は、対応する彩度ブロックの彩度サンプル値にも適用できる。
図21aは、BV値の検索範囲に対する制約の例を示す。図21aは、現在のフレーム(2110)の現在のブロック(2130)に加えて、2つのCTB(2120、2122)によって定義された検索範囲を示している。現在のCTB(2120)は、現在のCTUの一部であり、現在のブロック(2130)を含む。現在のCTB(2120)は、その左にあるCTB(2122)と共に、現在のブロック(2130)に対して許容できるBVを検出できる検索範囲を定義する。BV(2142、2144)は、検索範囲の外部にある領域を参照している。そのため、これらのBV値(2142、2144)は許容されない。
一部の実装例では、現在のブロックに対するBV値の検索範囲は、現在のCTB及びその左にあるCTBである。例えば、CTBのサイズは、64×64、32×32、又は16×16サンプル値にすることができ、これによって128×64、64×32、又は32×16サンプル値の検索範囲が得られる。現在のCTB及びその左のCTBのサンプル値のみが、現在のブロックに対するイントラBC予測に使用される。これによって検索処理を制約することで、エンコーダの実装を簡略化する。これによって、デコーダがイントラ予測のために高速メモリ内でバッファリングするサンプル値の数を制限することで、デコーダの実装も簡略化する。(さらに小さいCTU/CTBサイズが選択された場合でも、デコーダは、可能性のある最大の大きさを持つ2つのCTBのサンプル値を格納するために十分なバッファ能力を持つ。)別の制約は、イントラ予測が別のスライス又はタイルからのサンプル値を参照できないということである。現在のm×nブロックの左上の位置が(x0、y0)にあり、各CTBの大きさがCTBsizeY×CTBsizeYである場合、エンコーダは、水平成分BV[0]及び垂直成分BV[1]を持つ二次元のBVに関する以下のような制約をチェックできる。
・ B V[0] ≧ −((X0 % CTBsizeY) + CTBsizeY
・ BV[1] ≧ −(y0 % CTBsizeY
・ 位置(x0、y0)、(x0+BV[0]、y0+BV[1])、及び(x0+BV[0]+m−1、y0+BV[1]+n−1)でのサンプル値は、同じスライス内に存在しなければならない。
・ 位置(x0、y0)、(x0+BV[0]、y0+BV[1])、及び(x0+BV[0]+m−1、y0+BV[1]+n−1)でのサンプル値は、同じタイル内に存在しなければならない。
実際は、最適なBV値が水平又は垂直のいずれかの向きになる傾向がある場合、大きい正方形の検索範囲(SがCTBsizeYであるS×S検索範囲など)又は大きい長方形の検索範囲(SがCTBsizeYである2S×S検索範囲など)内の候補BV値を評価することは意味がない。代わりに、エンコーダは、可能性の高い候補BV値をまだ含んでいる、さらに小さい検索範囲を使用できる。ここで、さらに小さいBV検索範囲は水平方向を向いている(例えば、2S×1/4S又は2S×3/4Sの大きさを持つ)か、垂直方向を向いている(例えば、1/4S×2S又は3/4S×2Sの大きさを持つ)。ほとんどのシナリオでは、エンコーダはBV推定時にさらに少ないBV値をチェックするが、それでも、大部分の適切なBV値を検出する。
水平バイアス(又は水平方向)を伴うBV検索範囲は、垂直BV成分値よりも水平BV成分値の範囲が広い候補BV値を含む。反対に、垂直バイアス(又は垂直方向)を伴うBV検索範囲は、水平BV成分値よりも垂直BV成分値の範囲が広い候補BV値を含む。
BV検索範囲は、その他の制約を受けることもできる。例えば、BV検索範囲は、現在のブロックに対するいずれのBV値が、現在のCTB及び/又は現在のCTBの左にあるCTBの内部に存在する領域を参照するという制約を受けることができる。つまり、BV検索範囲は、現在のCTB及びその左にあるCTBの内部に収まる。又は、別の例として、BV検索範囲は、現在のブロックに対するいずれのBV値が、現在のCTB及び/又は現在のCTBの上にあるCTBの内部に存在する領域を参照するという制約を受けることができる。つまり、BV検索範囲は、現在のCTB及びその上にあるCTBの内部に収まる。BV検索範囲は、現在の画像の内部に収まるように制約することもできる。一部の実装では、BV検索範囲は、現在のスライス及び/又は現在のタイルの内部に収まるようにさらに制約される。
BV検索範囲の遠い境界(現在のブロックから遠い)での制約に加えて、BV検索範囲は、近い境界(現在のブロックに近い)で制約することができる。例えば、一部の実装例では、CUのサイズが2N×2Nの場合、PUパーティションのサイズはN×N及び2N×N又はN×2Nになることができる。ここで、各PUには独自のBV又はその他のパーティションサイズが存在する。ただし、PUのBVは、同じCU内のその他のPU領域を参照することを許容されない。BV検索範囲に対するこの制約によって、PUレベルの重複の許容に関連する性能がやや低下するが、各PUが独自のBVを持つことができるようになり、各CU内のPUを並列に再構成できるようになり、効率的なデコーディングを促進できる。
或いは、CBと、対応するイントラ予測領域との間の重複が許容される場合、エンコーダは重複処理を実行できる。その場合、水平バイアス又は垂直バイアスを伴うBV検索範囲を、現在のCUに拡大できる。
図21bは、水平バイアス(水平方向)を伴う第1の代替検索範囲(2181)を示す。検索範囲(2181)は、最大2S×1/4Sの大きさを持つ。この検索範囲(2181)は、検索範囲(2181)のクロスハッチング部分及びハッチング部分で示されるように、現在のCTB及びその左にあるCTBの内部に収まるように切り詰めることができる。又は、検索範囲(2181)を、現在のCTB内のいずれの部分(図21bの検索範囲(2181)のハッチング部分で示される)も含まないように、さらに制約することができる。
図21cは、水平バイアスを伴う第2の代替検索範囲(2182)を示す。検索範囲(2182)は、最大2S×3/4Sの大きさを持つ。この検索範囲(2182)は、検索範囲(2182)のクロスハッチング部分及びハッチング部分で示されるように、現在のCTB及びその左にあるCTBの内部に収まるように切り詰めることができる。又は、検索範囲(2182)を、現在のCTB内のいずれの部分(図21cの検索範囲(2182)のハッチング部分で示される)も含まないように、さらに制約することができる。
図21dは、垂直バイアス(垂直方向)を伴う第3の代替検索範囲(2183)を示す。検索範囲(2183)は、最大1/4S×2Sの大きさを持つ。この検索範囲(2183)は、検索範囲(2183)のクロスハッチング部分及びハッチング部分で示されるように、現在のCTB及びその上にあるCTBの内部に収まるように切り詰めることができる。又は、検索範囲(2183)を、現在のCTB内のいずれの部分(図21dの検索範囲(2183)のハッチング部分で示される)も含まないように、さらに制約することができる。
図21eは、垂直バイアスを伴う第4の代替検索範囲(2184)を示す。検索範囲(2184)は、最大3/4S×2Sの大きさを持つ。この検索範囲(2184)は、検索範囲(2184)のクロスハッチング部分及びハッチング部分で示されるように、現在のCTB及びその上にあるCTBの内部に収まるように切り詰めることができる。又は、検索範囲(2184)を、現在のCTB内のいずれの部分(図21eの検索範囲(2184)のハッチング部分で示される)も含まないように、さらに制約することができる。
BV推定時に、ビデオエンコーダ又は画像エンコーダは、以下のようなBV推定を含むエンコーディングを実行できる。
エンコーダは、画像の現在のブロックに対してBVを決定する。BVは、画像内の領域への変位を示す。現在のブロックは、サイズSを持つ現在のCTB内にある。エンコーダは、BVの決定の一部として、領域が水平バイアス又は垂直バイアスを伴うBV検索範囲内にあるという制約をチェックする。エンコーダは、BVを使用して現在のブロックに対してイントラBC予測を実行する。エンコーダは、BVもエンコードする。例えば、エンコーダ、本願書の他の場所で説明されているように、BC予測を実行し、BVをエンコードする。
さらに一般的には、エンコーダはイントラBC予測を使用して画像のデータをエンコードする。エンコーディングは、水平バイアス又は垂直バイアスを伴うBV検索範囲を使用してBV推定処理を実行することを含む。エンコーダは、画像のエンコード済みデータを出力する。
BV検索範囲は、水平バイアスを伴い、2S×1/4S又は2S×3/4Sの大きさを持つことができる。又は、さらに一般的には、水平にバイアスされたBV検索範囲は、S〜2Sの範囲内の幅を持ち、1/4S〜3/4Sの範囲内の高さを持つ。又は、BV検索範囲は、垂直バイアスを伴い、1/4S×2S又は3/4S×2Sの大きさを持つことができる。又は、さらに一般的には、垂直にバイアスされたBV検索範囲は、S〜2Sの範囲内の高さを持ち、1/4S〜3/4Sの範囲内の幅を持つ。
エンコーダは、複数の使用可能なBV検索範囲からBV検索範囲を選択できる。例えば、エンコーダは、水平バイアスを伴う複数の検索範囲(2S×1/4S及び2S×3/4S検索範囲など)から選択する。又は、エンコーダは、垂直バイアスを伴う複数の検索範囲(1/4S×2S及び3/4S×2S検索範囲など)から選択する。又は、エンコーダは、水平バイアス又は垂直バイアスのいずれかを伴う複数の検索範囲から選択する。
エンコーダは、1つ以上の以前のブロックの少なくとも一部のBV値に基づいて、BV検索範囲を選択できる。例えば、以前のブロックは現在の画像内にある。又は、以前のブロックは1つ以上の以前の画像内にある。又は、以前のブロックは現在の画像又は1つ以上の以前の画像内にある。エンコーダは、以前のブロックのBV値を考慮することによって、BV値の傾向(例えば、ほとんどのBV値が強い水平BV成分を備えているが、垂直BV成分をほとんど又は全く備えていないといった傾向)を識別し、適切なBV検索範囲を選択できる。BV検索範囲の選択は、その他の要因(例えば、ユーザ設定)によって変わる場合もある。
以前のブロックのBV値を、追跡できる。例えば、BV値のさまざまな範囲に対応し、カテゴリ/ビンごとに数を格納する異なるカテゴリ(又は「ビン」)でBV値をヒストグラムとして整理するデータ構造を使用して追跡する。したがって、ヒストグラムデータ構造は、さまざまなBV値の使用頻度に関する統計情報を提供できる。又は、BV値をその他の方法で追跡できる。例えば、エンコーダは現在の画像のブロックに対するBV値を追跡し、その後、どのBV検索範囲を使用するかを決定するために、現在のブロックを囲む近傍領域内の以前のブロックのBV値を評価する。
水平バイアス又は垂直バイアスを伴うより小さいBV検索範囲を使用すると、より大きいS×S又は2S×S検索範囲を使用するよりも(レート歪み性能に関して)わずかに効率が低下する場合がある。多くのエンコーディングのシナリオでは、BV推定の計算の複雑さの軽減が、この不利益を正当化している。
図22は、BV値の選択に対する1つ以上の制約の下でイントラBC予測モードを使用してエンコードするための手法(2200)を示している。図3又は図5a〜5bを参照して説明されているようなエンコーダは、手法(2200)を実行できる。
開始するために、エンコーダは画像の現在のブロックに対してBVを決定する(2210)。現在のブロックは、CB、PB、又はその他の種類のブロックにすることができる。BVは、画像内の領域への変位を示す。エンコーダは、BVの決定において、1つ以上の制約をチェックする。
エンコーダは、1つの可能な制約に従って、イントラBC予測で使用されるサンプル値の範囲をチェックする。エンコーダは、候補イントラ予測領域が、現在のCTB及び1つ以上のその他のCTB(例えば、現在のCTBの左にあるCTB)によって定義された範囲内にあることをチェックできる。例えば、BVが第1成分BV[0]及び第2成分BV[1]を持ち、現在のブロックの左上の位置が位置(x0、y0)にあり、各CTBの幅がCTBwidth、高さがCTBheightである場合、BV[0] >= −((x0 % CTBwidth) + CTBwidth)及びBV[1] >= −(y0 % CTBheight)の場合に制約が満たされる。エンコーダは、検索範囲内のBV[0]及びBV[1]の値に対する次の上限を同様にチェックできる:BV[0] < (CTBwidth − m − (x0 % CTBwidth))及びBV[1] < (CTBheight −n − (y0 % CTBheight))。或いは、検索範囲はさらに多い又は少ないCTBを含むか、又は検索範囲はその他の方法で定義される。
エンコーダは、別の可能な制約に従って、検索を現在のスライス及びタイルに制限する(すなわち、現在のブロック及び領域は、画像の1つ以下のスライス、及び画像の1つ以下のタイルの一部になる)。エンコーダは、現在のブロックの左上の位置、候補イントラ予測領域の左上の位置、及び候補イントラ予測領域の右下の位置が、1つのスライス及び1つのタイルの一部であることをチェックできる。例えば、(x0、y0)、(x0 + BV[0]、y0 + BV[1])、及び(x0 + BV[0] + m − 1、y0 + BV[1] + n − 1)が1つのスライス及び1つのタイルの一部である場合に制約が満たされる。
或いは、エンコーダはその他及び/又は追加の制約をチェックする。
エンコーダは、BVを使用して現在のブロックに対してイントラBC予測を実行する(2220)。例えば、エンコーダは現在のブロック全体に対してイントラBC予測を実行する。又は、エンコーダは、現在のブロックに関連付けられている複数のブロックに対してイントラBC予測を実行する(例えば、複数のTBに対してTBごとに実行する。ここで、各TBはBVを含む現在のPBに関連付けられている)。
エンコーダは、BVをエンコードする(2230)。エンコーダは、別のイントラBC予測モードブロックに対して手法(2200)を繰り返すことができる。
イントラBC予測の場合、エンコーダ及びデコーダは、再構成済みサンプル値を使用する。再構成されていないサンプル値が、まだエンコード及び再構成されていない画像の一部に存在する場合がある。再構成されていないサンプル値をイントラBC予測に使用するのを防ぐために、エンコーダは、BVの許容できる値に対して制約を設定し、実際の以前に再構成されたサンプル値のみがBVに従ってイントラBC予測に使用されるようにする。
一部の実装例では、エンコーダは、現在のブロック及び候補イントラ予測領域の右下の位置を含むブロックのZスキャン順序を考慮することによって、BV値をチェックする。さらに具体的には、エンコーダは、位置(x0+BV[0]+m−1、y0+BV[1]+n−1)を含むブロックのZスキャン順序が(x0、y0)を含むブロックのZスキャン順序よりも小さいことをチェックする。この条件が成り立つ場合、イントラ予測領域の右下の位置を含むブロックがすでに再構成されている(したがって、残りのイントラ予測領域も構成されている)。BVは、BV[0]+m ≦ 0及びBV[1]+n ≦ 0の条件のうちの少なくとも1つも満足し、イントラ予測領域が現在のブロックと重複しないことを保証する。
Zスキャン順序は、画像を分割するブロックの連続的に指定された順序に従う。図23は、現在のブロック(2330)及び候補BVのイントラ予測領域の右下位置を含んでいる可能性のあるブロックのZスキャン順序(2300)の例を示す。現在のブロック(2330)は、CB、PB、又はその他のブロックにすることができる。Zスキャン順序は、通常、左から右の順に1列にブロックに割り当てられ、連続する複数の行で上から下に繰り返される。ブロックが分割されると、Zスキャン順序は、分割されたブロック内で再帰的に割り当てられる。HEVC規格でのエンコーディング/デコーディングの実装の場合、Zスキャン順序は、CTBラスタースキャンパターン(1つのCTB行内では左から右に、連続する複数のCTB行では上から下に繰り返す)に従ってCTB間を進む。CTBが分割されると、Zスキャン順序は、分割されたCTB内の四分木のCBのラスタースキャンパターンに従う。また、CBが(例えば、複数のCB又は複数のPBに)分割されると、Zスキャン順序は、分割されたCB内のブロックのラスタースキャンパターンに従う。
或いは、イントラBC予測をTBごとに実行できる場合、エンコーダ及びデコーダは、イントラ予測領域と現在のブロック(TB)との間で発生する可能性のある重複をチェックし、その後、そのチェック結果を使用して、イントラBC予測処理のアプリケーションのために、現在のTBをさらに小さいTBに分割する必要があるかどうかを決定できる。現在のTBのサイズがm×nであると仮定する。ここで、mとnを同じ値にするか、又は異なる値にすることができる。BV[0] > −m及びBV[1] > −nの場合、イントラ予測領域は現在のm×n TBと重複している。これは、イントラBC予測処理のアプリケーションのために、現在のm×n TBをさらに小さいTBに分割しない限り、問題になる。したがって、BV[0] > −m及びBV[1] > −nの場合、エンコーダ及びデコーダは現在のTBをさらに小さいTBに分割する。さらに小さいTBに対して、同じ条件がチェックされる(例えば、再帰的にチェックされる)。これらのTBは、分割後のさらに小さいm及びnの値についてもBV[0] > −m及びBV[1] > −nであれば、さらに分割される場合がある。
例えば、PBのBVが(−9、−5)であり、現在のTBが32×32ブロックであると仮定する。エンコーダ及びデコーダは、−9 > −32及び−5 > −32であると判定し、イントラ予測領域(この領域の左上隅が−9、−5だけ変位する)が現在の32×32 TBに重なることを示す。エンコーダ及びデコーダは、32×32 TBを4つの16×16 TBに分割する。16×16 TBごとに、エンコーダ及びデコーダは、−9 > −16及び−5 > −16であると判定し、イントラ予測領域(この領域の左上隅が−9、−5だけ変位する)が現在の16×16 TBに重なることを示す。エンコーダ及びデコーダは、各16×16 TBを連続して4つの8×8 TBに分割する。8×8 TBの場合、(−9、−5)のBVが問題にならないため、8×8 TBはさらに分割されることを強制されない。
このシナリオでは、BV値及びTBのサイズのためにTBが分割された場合、エンコーダは、現在のTBをさらに小さいTBに分割するかどうかを伝えるフラグ値の信号伝達をスキップできる。その場合、エンコード済みデータのビットストリームは、デコーダに対して現在のTBをさらに小さいTBに分割するように指示するフラグを含まない。代わりにデコーダは、BV値及びTBのサイズのためにTBを分割する必要があるかどうかを推測できる。これにより、TBの分割に関する情報を伝えるのに消費されるビットを省くことができる。
BV推定の一部として、エンコーダは複数のアプローチのいずれかを使用できる。エンコーダは、完全な検索を使用して、検索範囲内で許容されるすべての候補BV値を評価できる。又は、エンコーダは、部分的検索を使用して、検索範囲内で許容される一部の候補BV値のみを評価できる。例えば、エンコーダは、現在のブロックに対して予測されたBV値(例えば、1つ以上の近隣ブロックのBV値に基づいて予測されたBV値)で部分的検索を開始できる。エンコーダは、部分的検索の開始位置で候補BV値を評価した後、開始位置から距離を延長した位置で、1つ以上のその他の候補BV値を(例えば、らせん状の検索パターン又はその他のパターンに従って)評価できる。又は、エンコーダは、前のセクションで説明されているように、検索パターンを使用できる。特定の候補BV値を評価する場合、エンコーダはイントラ予測領域及び現在のブロック内のすべてのサンプル値を比較できる。又は、エンコーダはサンプル値のサブセット(つまり、値が評価されるサブサンプル)を評価できる。エンコーダは、イントラ予測領域と現在のブロックとの間でサンプル値を比較して歪みコストを決定する際に、平均二乗誤差、差の二乗の合計(sum of squared differences:SSD)、絶対差の合計(sum of absolute differences:SAD)、又はその他の歪みの評価基準を計算できる。エンコーダは、候補BV値のエンコーディングに関連付けられたビットレートコストを決定することもできる。
XI.代替及び変形
本明細書に記載された多くの例において、イントラBC予測及び動き補償は別々のコンポーネント又は処理で実装され、BV推定及び動き推定は別々のコンポーネント又は処理で実装される。或いは、イントラBC予測を動き補償の特殊ケースとして実装することができ、BV推定を動き推定の特殊ケースとして実装することができ、その場合、現在の画像が参照画像として使用される。そのような実装では、BV値はMV値として信号伝達できるが、インター画像予測ではなく(現在の画像内の)イントラBC予測に使用される。本明細書で使用されているように、「イントラBC予測」という用語は、イントラ画像予測モジュール、動き補償モジュール、又はその他のモジュールのどれが使用されて予測が提供されるかにかかわらず、現在の画像内での予測を示す。同様に、BV値を、MV値を使用して、又は異なる種類のパラメータ又は構文要素を使用して表現することができ、BV推定を、イントラ画像推定モジュール、動き推定モジュール、又はその他のモジュールを使用して提供できる。
開示された発明の原理を適用できる多くの可能な実施形態を考慮して、説明された実施形態が本発明の単なる望ましい例であり、本発明の範囲を制限していると見なしてはならないと認識されるべきである。むしろ、本発明の範囲は、以下の特許請求の範囲によって定義される。したがって、これらの特許請求の範囲及び精神に含まれるすべてのものを、本発明として請求する。
上記の実施形態について、次の付記を記す。
(付記1)
画像又はビデオのエンコーダを実装するコンピューティングデバイスにおいて、
画像又はビデオをエンコードしてエンコード済みデータを生成するステップであって、イントラブロックコピー(BC)予測のために非対称に分割された現在のブロックに対してイントラBC予測を実行するステップを含む、エンコードするステップと、
前記エンコード済みデータをビットストリームの一部として出力するステップと、
を含む方法。
(付記2)
前記エンコードするステップが、イントラBC予測のために対称に分割された他のブロックに対して前記イントラBC予測を実行するステップをさらに含み、前記他のブロックが2N×2Nブロックであり、前記他のブロックが(1)2つの2N×Nブロック、(2)2つのN×2Nブロック、又は(3)4つのN×Nブロックに分割され、これらのブロックをそれぞれ、2つのN×N/2ブロック、2つのN/2×Nブロック、又は4つのN/2×N/2ブロックにさらに分割できる、付記1に記載の方法。
(付記3)
画像又はビデオのデコーダを実装するコンピューティングデバイスにおいて、
エンコード済みデータをビットストリームの一部として受信するステップと、
前記エンコード済みデータをデコードして画像又はビデオを再構成するステップであって、イントラブロックコピー(BC)予測のために非対称に分割された現在のブロックに対して前記イントラBC予測を実行するステップを含む、デコードするステップと、
を含む方法。
(付記4)
前記デコードするステップが、イントラBC予測のために対称に分割された他のブロックに対して前記イントラBC予測を実行するステップをさらに含み、前記他のブロックが2N×2Nブロックであり、前記他のブロックが(1)2つの2N×Nブロック、(2)2つのN×2Nブロック、又は(3)4つのN×Nブロックに分割され、これらのブロックをそれぞれ、2つのN×N/2ブロック、2つのN/2×Nブロック、又は4つのN/2×N/2ブロックにさらに分割できる、付記3に記載の方法。
(付記5)
前記現在のブロックが2N×2Nブロックであり、前記現在のブロックが(1)2N×N/2ブロック及び2N×3N/2ブロック、又は(2)2N×3N/2ブロック及び2N×N/2ブロックに分割される、付記1又は3に記載の方法。
(付記6)
前記現在のブロックが2N×2Nブロックであり、前記現在のブロックが(1)N/2×2Nブロック及び3N/2×2Nブロック、又は(2)3N/2×2Nブロック及びN/2×2Nブロックに分割される、付記1又は3に記載の方法。
(付記7)
前記現在のブロックが64×64ブロック、32×32ブロック、16×16ブロック、又は8×8ブロックである、付記1から6のいずれか一項に記載の方法。
(付記8)
前記ビデオが人工的に作成されたビデオである、付記1から7のいずれか一項に記載の方法。
(付記9)
コンピュータ実行可能命令によってプログラムされたコンピューティングデバイスに方法を実行させるための前記コンピュータ実行可能命令を格納する1つ又は複数のコンピュータ可読媒体であって、前記方法が、
画像又はビデオをエンコードしてエンコード済みデータを生成するステップであって、現在の画像の現在のブロックに対して予測を計算するステップを含み、前記予測を計算するステップがボトムアップアプローチを使用して前記現在のブロックのパーティションを識別する、ステップと、
前記エンコード済みデータをビットストリームの一部として出力するステップと、
を含む、1つ又は複数のコンピュータ可読媒体。
(付記10)
前記予測が動き推定の一部であるか、又はイントラブロックコピー予測のためのブロックベクトル推定の一部である、付記9に記載の1つ又は複数のコンピュータ可読媒体。
(付記11)
前記現在のブロックの前記パーティションが異なる大きさを持つ2つのパーティションである、付記9に記載の1つ又は複数のコンピュータ可読媒体。
(付記12)
前記現在のブロックが2N×2Nブロックであり、前記ボトムアップアプローチが、
前記2N×2NブロックのN×Nブロックごとにモードをチェックするステップと、
前記2N×2Nブロックの前記N×Nブロックそれぞれに対して最適なモードを選択するステップと、
前記2N×2Nブロックの前記N×Nブロックそれぞれのベクトル値をキャッシュするステップと、
前記2N×2Nブロックに対して2Nの大きさを使用するモードをチェックするステップであって、前記キャッシュされたベクトル値を使用するステップを含む、ステップと、
前記2N×2Nブロックに対して2Nの大きさを使用する最適なモードを選択するステップと、
前記2N×2Nブロックに対して2Nの大きさを使用する前記最適なモードと前記2N×2Nブロックの前記N×Nブロックそれぞれに対して選択された前記最適なモードとの間で選択するステップとを含む、付記9又は10に記載の1つ又は複数のコンピュータ可読媒体。
(付記13)
前記現在のブロックが2N×2Nブロックであり、前記ボトムアップアプローチが、
前記2N×2NブロックのN×Nブロックごとにモードのサブセットをチェックするステップと、
前記2N×2Nブロックの前記N×Nブロックそれぞれのベクトル値をキャッシュするステップと、
前記2N×2Nブロックに対して2Nの大きさを使用するモードのサブセットをチェックするステップであって、前記キャッシュされたベクトル値を使用するステップを含む、ステップと、
前記2N×2Nブロックに対して2Nの大きさを使用する最適なモードを選択するステップと、前記2N×2Nブロックに対して2Nの大きさを使用する前記最適なモードと前記2N×2Nブロックの前記N×Nブロックそれぞれに対する最適なモードとの間で選択するステップとを含む、付記9又は10に記載の1つ又は複数のコンピュータ可読媒体。
(付記14)
N×Nブロックごとのモードの前記サブセットが2つのN×N/2ブロックを使用するモードであり、2Nの大きさを使用するモードの前記サブセットが2N×2Nブロックを使用するモード、2つの2N×Nブロックを使用するモード、2N×N/2ブロックと2N×3N/2ブロックを使用するモード、及び2N×3N/2ブロックと2N×N/2ブロックを使用するモードである、付記13に記載の1つ又は複数のコンピュータ可読媒体。
(付記15)
N×Nブロックごとのモードの前記サブセットが2つのN/2×Nブロックを使用するモードであり、2Nの大きさを使用するモードの前記サブセットが2N×2Nブロックを使用するモード、2つのN×2Nブロックを使用するモード、N/2×2Nブロックと3N/2×2Nブロックを使用するモード、及び3N/2×2NブロックとN/2×2Nブロックを使用するモードである、付記13に記載の1つ又は複数のコンピュータ可読媒体。

Claims (19)

  1. スクリーンキャプチャコンテンツをエンコードするように構成されたビデオエンコーダを実施する計算装置において、
    スクリーンキャプチャコンテンツのフレームを受け取ることと、
    前記スクリーンキャプチャコンテンツのフレームを複数の2N×2Nブロックに分割することであって、前記複数の2N×2Nブロックは前記スクリーンキャプチャコンテンツのフレームの現在の2N×2Nブロックを含む、分割することと、
    前記スクリーンキャプチャコンテンツのフレームの前記現在の2N×2Nブロックをエンコードして、エンコードデータを生成することであって、前記現在の2N×2Nブロックは前記スクリーンキャプチャコンテンツのフレームのスライス内にあり、前記スクリーンキャプチャコンテンツのフレームのタイル内にあり、前記現在の2N×2Nブロックは64×64、32×32、又は16×16のサイズを有する、エンコードすることであって、前記エンコードすることは、
    イントラブロックコピー(BC)予測のベクトル値を制約して、整数サンプル精度を有し、前記スライス内にあり、前記タイル内にあり、前記スクリーンキャプチャコンテンツのフレーム内の前記現在の2N×2Nブロックとオーバーラップしない参照領域を示すようにすることと、
    前記現在の2N×2Nブロックを第1および第2のパーティションに水平または垂直に分割することによって、前記現在の2N×2NブロックをイントラBC予測用の第1と第2のパーティションに対称にパーティションすることであって、前記第1と第2のパーティションは、次のサイズ:
    (a)前記現在の2N×2Nブロックのサイズが64×64であるとき、それぞれ64×16及び64×48、又はそれぞれ16×64及び48×64、
    (b)前記現在の2N×2Nブロックのサイズが32×32であるとき、それぞれ32×8及び32×24、又はそれぞれ8×32及び24×32、及び
    (c)前記現在の2N×2Nブロックのサイズが16×16であるとき、それぞれ16×4及び16×12、又はそれぞれ4×16及び12×16、
    を有する、対称にパーティションすることと、
    前記第1のパーティションに対してイントラBC予測を実行することと、
    前記第2のパーティションに対してイントラBC予測を実行することと、を含む、エンコードすることと、
    エンコードデータをビットストリームの一部として出力することとを含む、
    方法。
  2. エンコードすることはさらに、イントラBC予測のために対照的にパーティションされた他の2N×2Nブロックに対して前記イントラBC予測を実行することを含み、前記他の2N×2Nブロックは、各々が2つのN×N/2ブロック、2つのN/2×Nブロック、又は4つのN/2×N/2ブロックにさらにパーティションされ得る(1)2つの2N×Nブロック、(2)2つのN×2Nブロック、又は(3)4つのN×Nブロックにパーティションされる、
    請求項1に記載の方法。
  3. 計算装置であって、
    一以上のプロセッサユニットと、
    揮発性メモリと、
    不揮発性メモリ及び/又は記憶装置であって、前記不揮発性メモリ及び/又は記憶装置は、前記計算装置に、プログラムされると、スクリーンキャプチャコンテンツをデコードするように構成されたビデオデコーダの動作を実行させるコンピュータ実行可能命令を記憶し、前記動作は、
    エンコードデータをビットストリームの一部として受け取ることと、
    前記エンコードデータをデコードして、スクリーンキャプチャコンテンツのフレームを再構成することであって、前記スクリーンキャプチャコンテンツのフレームの現在の2N×2Nブロックの第1と第2のパーティションに対してイントラブロックコピー(BC)を実行することを含み、前記現在の2N×2Nブロックは、前記スクリーンキャプチャコンテンツのフレームのスライス内にあり、前記スクリーンキャプチャコンテンツのフレームのタイル内にあり、前記イントラBC予測のベクトル値は、整数サンプル精度を有し、前記スライス内にあり、前記タイル内にあり、前記スクリーンキャプチャコンテンツのフレーム内の前記現在の2N×2Nブロックとオーバーラップしない参照領域を示すように制約され、前記現在の2N×2Nブロックは前記イントラBC予測のために対照的にパーティションされ、前記現在の2N×2Nブロックの大きさは64×64、32×32、又は16×16であり、前記現在の2N×2Nブロックは前記第1及び第2のパーティションに水平に又は垂直に分割されており、前記第1と第2のパーティションの大きさは:
    (a)前記現在の2N×2Nブロックのサイズが64×64であるとき、それぞれ64×16及び64×48、又はそれぞれ16×64及び48×64、
    (b)前記現在の2N×2Nブロックのサイズが32×32であるとき、それぞれ32×8及び32×24、又はそれぞれ8×32及び24×32、及び
    (c)前記現在の2N×2Nブロックのサイズが16×16であるとき、それぞれ16×4及び16×12、又はそれぞれ4×16及び12×16である、
    計算装置。
  4. デコードすることはさらに、イントラBC予測のために対照的にパーティションされた他の2N×2Nブロックに対して前記イントラBC予測を実行することを含み、前記他の2N×2Nブロックは、各々が2つのN×N/2ブロック、2つのN/2×Nブロック、又は4つのN/2×N/2ブロックにさらにパーティションされ得る(1)2つの2N×Nブロック、(2)2つのN×2Nブロック、又は(3)4つのN×Nブロックにパーティションされている、
    請求項3に記載の計算装置。
  5. エンコードすることはさらに、前記現在の2N×2Nブロックに対して、
    前記スクリーンキャプチャコンテンツのフレームの第1の参照領域への第1の変位を示す第1のベクトルを決定することと、
    前記第1のパーティションに対してイントラBC予測を実行することの一部として、前記第1のベクトルを用いて、前記スクリーンキャプチャコンテンツのフレームの前記第1の参照領域において以前に再構成されたサンプル値から前記第1のパーティションの予測サンプル値を決定することと、
    前記スクリーンキャプチャコンテンツのフレームの第2の参照領域への第2の変位を示す第2のベクトルを決定することと、
    前記第2のパーティションに対してイントラBC予測を実行することの一部として、前記第2のベクトルを用いて、前記スクリーンキャプチャコンテンツのフレームの前記第2の参照領域において以前に再構成されたサンプル値から前記第2のパーティションの予測サンプル値を決定することと、を有する、
    請求項1に記載の方法。
  6. デコードすることは、前記現在の2N×2Nブロックに対して、
    前記スクリーンキャプチャコンテンツのフレームの第1の参照領域への第1の変位を示す第1のベクトルを再構成することと、
    前記スクリーンキャプチャコンテンツのフレームの第2の参照領域への第2の変位を示す第2のベクトルを再構成することと、
    前記第1のパーティションに対してイントラBC予測を実行することの一部として、前記第1のベクトルを用いて、前記スクリーンキャプチャコンテンツのフレームの前記第1の参照領域において以前に再構成されたサンプル値から前記第1のパーティションの予測サンプル値を決定することと、
    前記第2のパーティションに対してイントラBC予測を実行することの一部として、前記第2のベクトルを用いて、前記スクリーンキャプチャコンテンツのフレームの前記第2の参照領域において以前に再構成されたサンプル値から前記第2のパーティションの予測サンプル値を決定することと、を有する、
    請求項3に記載の計算装置。
  7. スクリーンキャプチャコンテンツをデコードするように構成されたビデオデコーダを実施する計算装置において、
    エンコードデータをビットストリームの一部として受け取ることと、
    前記エンコードデータをデコードして、スクリーンキャプチャコンテンツのフレームを再構成することであって、前記スクリーンキャプチャコンテンツのフレームの現在の2N×2Nブロックの第1と第2のパーティションに対してイントラブロックコピー(BC)を実行することを含み、前記現在の2N×2Nブロックは、前記スクリーンキャプチャコンテンツのフレームのスライス内にあり、前記スクリーンキャプチャコンテンツのフレームのタイル内にあり、前記イントラBC予測のベクトル値は、整数サンプル精度を有し、前記スライス内にあり、前記タイル内にあり、前記スクリーンキャプチャコンテンツのフレーム内の前記現在の2N×2Nブロックとオーバーラップしない参照領域を示すように制約され、前記現在の2N×2Nブロックは前記イントラBC予測のために対照的にパーティションされ、前記現在の2N×2Nブロックの大きさは64欠ける64、32×32、又は16×16であり、前記現在の2N×2Nブロックは前記第1及び第2のパーティションに水平又は垂直に分割され、前記第1と第2のパーティションの大きさは:
    (a)前記現在の2N×2Nブロックのサイズが64×64であるとき、それぞれ64×16及び64×48、又はそれぞれ16×64及び48×64、
    (b)前記現在の2N×2Nブロックのサイズが32×32であるとき、それぞれ32×8及び32×24、又はそれぞれ8×32及び24×32、及び
    (c)前記現在の2N×2Nブロックのサイズが16×16であるとき、それぞれ16×4及び16×12、又はそれぞれ4×16及び12×16である、
    方法。
  8. デコードすることは、前記現在の2N×2Nブロックに対して、
    前記スクリーンキャプチャコンテンツのフレームの第1の参照領域への変位を示す第1のベクトルを再構成することと、
    前記第1のパーティションに対してイントラBC予測の一部として、前記第1のベクトルを用いて、前記スクリーンキャプチャコンテンツのフレームの前記第1の参照領域において以前に再構成されたサンプル値から前記第1のパーティションの予測サンプル値を決定することと、
    前記スクリーンキャプチャコンテンツのフレームの第2の参照領域への変位を示す第2のベクトルを決定することと、
    前記第2のパーティションに対してイントラBC予測の一部として、前記第2のベクトルを用いて、前記スクリーンキャプチャコンテンツのフレームの前記第2の参照領域において以前に再構成されたサンプル値から前記第2のパーティションの予測サンプル値を決定することと、を有する、
    請求項7に記載の方法。
  9. 前記現在の2N×2Nブロックは水平に分割され、
    前記第1と第2のパーティションはそれぞれトップおよびボトムパーティションであり、または
    前記第1と第2のパーティションはそれぞれボトムおよびトップパーティションである、
    請求項7に記載の方法。
  10. 前記現在の2N×2Nブロックは垂直に分割され、
    前記第1と第2のパーティションはそれぞれレフトおよびライトパーティションであり、または
    前記第1と第2のパーティションはそれぞれライトおよびレフトパーティションである、
    請求項7に記載の方法。
  11. 前記現在の2N×2Nブロックは水平に分割され、
    前記第1と第2のパーティションはそれぞれトップおよびボトムパーティションであり、または
    前記第1と第2のパーティションはそれぞれボトムおよびトップパーティションである、
    請求項1に記載の方法。
  12. 前記現在の2N×2Nブロックは垂直に分割され、
    前記第1と第2のパーティションはそれぞれレフトおよびライトパーティションであり、または
    前記第1と第2のパーティションはそれぞれライトおよびレフトパーティションである、
    請求項1に記載の方法。
  13. 前記現在の2N×2Nブロックは水平に分割され、
    前記第1と第2のパーティションはそれぞれトップおよびボトムパーティションであり、または
    前記第1と第2のパーティションはそれぞれボトムおよびトップパーティションである、
    請求項3に記載の計算装置。
  14. 前記現在の2N×2Nブロックは垂直に分割され、
    前記第1と第2のパーティションはそれぞれレフトおよびライトパーティションであり、または
    前記第1と第2のパーティションはそれぞれライトおよびレフトパーティションである、
    請求項3に記載の計算装置。
  15. 計算装置であって、
    一以上のプロセッサユニットと、
    揮発性メモリと、
    不揮発性メモリ及び/又は記憶装置であって、前記不揮発性メモリ及び/又は記憶装置は、前記計算装置に、プログラムされると、スクリーンキャプチャコンテンツをエンコードするように構成されたビデオエンコーダの動作を実行させるコンピュータ実行可能命令を記憶し、前記動作は、
    スクリーンキャプチャコンテンツのフレームを受け取ることと、
    前記スクリーンキャプチャコンテンツのフレームを複数の2N×2Nブロックに分割することであって、前記複数の2N×2Nブロックは前記スクリーンキャプチャコンテンツのフレームの現在の2N×2Nブロックを含む、分割することと、
    前記スクリーンキャプチャコンテンツのフレームの前記現在の2N×2Nブロックをエンコードして、エンコードデータを生成することであって、前記現在の2N×2Nブロックは前記スクリーンキャプチャコンテンツのフレームのスライス内にあり、前記スクリーンキャプチャコンテンツのフレームのタイル内にあり、前記現在の2N×2Nブロックは64×64、32×32、又は16×16のサイズを有する、エンコードすることであって、前記エンコードすることは、
    イントラブロックコピー(BC)予測のベクトル値を制約して、整数サンプル精度を有し、前記スライス内にあり、前記タイル内にあり、前記スクリーンキャプチャコンテンツのフレーム内の前記現在の2N×2Nブロックとオーバーラップしない参照領域を示すようにすることと、
    前記現在の2N×2Nブロックを第1および第2のパーティションに水平または垂直に分割することによって、前記現在の2N×2NブロックをイントラBC予測用の第1と第2のパーティションに対称にパーティションすることであって、前記第1と第2のパーティションは、次のサイズ
    (a)前記現在の2N×2Nブロックのサイズが64×64であるとき、それぞれ64×16及び64×48、又はそれぞれ16×64及び48×64、
    (b)前記現在の2N×2Nブロックのサイズが32×32であるとき、それぞれ32×8及び32×24、又はそれぞれ8×32及び24×32、及び
    (c)前記現在の2N×2Nブロックのサイズが16×16であるとき、それぞれ16×4及び16×12、又はそれぞれ4×16及び12×16、
    を有する、対称にパーティションすることと、
    前記第1のパーティションに対してイントラBC予測を実行することと、
    前記第2のパーティションに対してイントラBC予測を実行することと、を含むエンコードすることと、
    エンコードデータをビットストリームの一部として出力することとを含む、
    方法。
  16. 前記現在の2N×2Nブロックは水平に分割され、
    前記第1と第2のパーティションはそれぞれトップおよびボトムパーティションであり、または
    前記第1と第2のパーティションはそれぞれボトムおよびトップパーティションである、
    請求項15に記載の方法。
  17. 前記現在の2N×2Nブロックは垂直に分割され、
    前記第1と第2のパーティションはそれぞれレフトおよびライトパーティションであり、または
    前記第1と第2のパーティションはそれぞれライトおよびレフトパーティションである、
    請求項15に記載の方法。
  18. エンコードすることはさらに、イントラBC予測のために対照的にパーティションされた他の2N×2Nブロックに対して前記イントラBC予測を実行することを含み、前記他の2N×2Nブロックは、各々が2つのN×N/2ブロック、2つのN/2×Nブロック、又は4つのN/2×N/2ブロックにさらにパーティションされ得る(1)2つの2N×Nブロック、(2)2つのN×2Nブロック、又は(3)4つのN×Nブロックにパーティションされる、
    請求項15に記載の方法。
  19. エンコードすることはさらに、前記現在の2N×2Nブロックに対して、
    前記スクリーンキャプチャコンテンツのフレームの第1の参照領域への第1の変位を示す第1のベクトルを決定することと、
    前記第1のパーティションに対してイントラBC予測を実行することの一部として、前記第1のベクトルを用いて、前記スクリーンキャプチャコンテンツのフレームの前記第1の参照領域において以前に再構成されたサンプル値から前記第1のパーティションの予測サンプル値を決定することと、
    前記スクリーンキャプチャコンテンツのフレームの第2の参照領域への第2の変位を示す第2のベクトルを決定することと、
    前記第2のパーティションに対してイントラBC予測を実行することの一部として、前記第2のベクトルを用いて、前記スクリーンキャプチャコンテンツのフレームの前記第2の参照領域において以前に再構成されたサンプル値から前記第2のパーティションの予測サンプル値を決定することと、を有する、
    請求項15に記載の方法。





JP2019208035A 2014-01-17 2019-11-18 コンテンツをエンコードする方法及び計算装置 Active JP6931690B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201461928970P 2014-01-17 2014-01-17
US61/928,970 2014-01-17
US201461954572P 2014-03-17 2014-03-17
US61/954,572 2014-03-17
US14/455,856 2014-08-08
US14/455,856 US11284103B2 (en) 2014-01-17 2014-08-08 Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
JP2016545841A JP2017507554A (ja) 2014-01-17 2015-01-12 非対称パーティション並びにエンコーダ側の検索パターン、検索範囲、及び分割のためのアプローチを使用するイントラブロックコピー予測

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016545841A Division JP2017507554A (ja) 2014-01-17 2015-01-12 非対称パーティション並びにエンコーダ側の検索パターン、検索範囲、及び分割のためのアプローチを使用するイントラブロックコピー予測

Publications (2)

Publication Number Publication Date
JP2020039167A true JP2020039167A (ja) 2020-03-12
JP6931690B2 JP6931690B2 (ja) 2021-09-08

Family

ID=52469898

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016545841A Pending JP2017507554A (ja) 2014-01-17 2015-01-12 非対称パーティション並びにエンコーダ側の検索パターン、検索範囲、及び分割のためのアプローチを使用するイントラブロックコピー予測
JP2019208035A Active JP6931690B2 (ja) 2014-01-17 2019-11-18 コンテンツをエンコードする方法及び計算装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2016545841A Pending JP2017507554A (ja) 2014-01-17 2015-01-12 非対称パーティション並びにエンコーダ側の検索パターン、検索範囲、及び分割のためのアプローチを使用するイントラブロックコピー予測

Country Status (11)

Country Link
US (4) US11284103B2 (ja)
EP (2) EP4329298A3 (ja)
JP (2) JP2017507554A (ja)
KR (1) KR102369117B1 (ja)
CN (1) CN105917648B (ja)
AU (1) AU2015206771B2 (ja)
BR (1) BR112016015740A2 (ja)
CA (1) CA2935156A1 (ja)
MX (1) MX361225B (ja)
RU (1) RU2683165C1 (ja)
WO (1) WO2015108793A1 (ja)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9491461B2 (en) * 2012-09-27 2016-11-08 Qualcomm Incorporated Scalable extensions to HEVC and temporal motion vector prediction
JP6336058B2 (ja) 2013-10-14 2018-06-06 マイクロソフト テクノロジー ライセンシング,エルエルシー ビデオ及び画像符号化及び復号のためのベースカラーインデックスマップモードの機能
JP6359101B2 (ja) 2013-10-14 2018-07-18 マイクロソフト テクノロジー ライセンシング,エルエルシー ビデオ及び画像の符号化及び復号のためのイントラブロックコピー予測モードの特徴
CN105659602B (zh) 2013-10-14 2019-10-08 微软技术许可有限责任公司 用于视频和图像编码的帧内块复制预测模式的编码器侧选项
US10390034B2 (en) 2014-01-03 2019-08-20 Microsoft Technology Licensing, Llc Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area
CN105917650B (zh) 2014-01-03 2019-12-24 微软技术许可有限责任公司 视频和图像编/解码的方法、计算设备及计算机可读介质
US11284103B2 (en) 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
US10542274B2 (en) 2014-02-21 2020-01-21 Microsoft Technology Licensing, Llc Dictionary encoding and decoding of screen content
US20160373744A1 (en) * 2014-04-23 2016-12-22 Sony Corporation Image processing apparatus and image processing method
EP3158734A4 (en) 2014-06-19 2017-04-26 Microsoft Technology Licensing, LLC Unified intra block copy and inter prediction modes
EP3917146A1 (en) 2014-09-30 2021-12-01 Microsoft Technology Licensing, LLC Rules for intra-picture prediction modes when wavefront parallel processing is enabled
US9811882B2 (en) * 2014-09-30 2017-11-07 Electronics And Telecommunications Research Institute Method and apparatus for processing super resolution image using adaptive preprocessing filtering and/or postprocessing filtering
US10091511B2 (en) * 2015-01-05 2018-10-02 Getgo, Inc. Efficient video block matching
CN105872539B (zh) 2015-02-08 2020-01-14 同济大学 图像编码方法和装置及图像解码方法和装置
WO2016197314A1 (en) 2015-06-09 2016-12-15 Microsoft Technology Licensing, Llc Robust encoding/decoding of escape-coded pixels in palette mode
US10368073B2 (en) * 2015-12-07 2019-07-30 Qualcomm Incorporated Multi-region search range for block prediction mode for display stream compression (DSC)
CN116389729A (zh) 2016-02-12 2023-07-04 交互数字Vc控股公司 用于帧内预测编码/解码的方法和设备
US10575007B2 (en) 2016-04-12 2020-02-25 Microsoft Technology Licensing, Llc Efficient decoding and rendering of blocks in a graphics pipeline
EP4030754A1 (en) 2016-05-02 2022-07-20 Industry-University Cooperation Foundation Hanyang University Image encoding/decoding method and computer-readable medium
US10157480B2 (en) 2016-06-24 2018-12-18 Microsoft Technology Licensing, Llc Efficient decoding and rendering of inter-coded blocks in a graphics pipeline
CA3039153A1 (en) * 2016-10-04 2018-04-12 Kt Corporation Method and apparatus for processing video signal
EP3306927A1 (en) 2016-10-05 2018-04-11 Thomson Licensing Encoding and decoding methods and corresponding devices
US11197010B2 (en) 2016-10-07 2021-12-07 Microsoft Technology Licensing, Llc Browser-based video decoder using multiple CPU threads
CN116781936A (zh) 2016-11-08 2023-09-19 株式会社Kt 对视频进行解码和编码的方法、发送压缩数据的方法
US10511853B2 (en) * 2016-11-24 2019-12-17 Ecole De Technologie Superieure Method and system for parallel rate-constrained motion estimation in video coding
US10674159B2 (en) 2017-07-28 2020-06-02 Microsoft Technology Licensing, Llc Effective intra encoding for screen data
EP3701721A1 (en) * 2017-10-27 2020-09-02 Huawei Technologies Co., Ltd. Apparatus and method for picture coding with asymmetric partitioning
US10986349B2 (en) 2017-12-29 2021-04-20 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction
US10687071B2 (en) * 2018-02-05 2020-06-16 Tencent America LLC Method and apparatus for video coding
AU2018233042A1 (en) * 2018-09-21 2020-04-09 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a tree of blocks of video samples
US11509919B2 (en) * 2018-10-17 2022-11-22 Tencent America Reference sample memory size restrictions for intra block copy
CN113261293B (zh) * 2018-11-13 2023-11-03 北京字节跳动网络技术有限公司 用于帧内块复制的基于历史的运动候选列表构建
US10771799B2 (en) * 2019-01-15 2020-09-08 Tencent America LLC Method and apparatus for video coding
JP7285857B2 (ja) 2019-01-16 2023-06-02 テレフオンアクチーボラゲット エルエム エリクソン(パブル) リマインダをもつ均一なタイルスプリットを含むビデオコーディング
MX2021008963A (es) 2019-02-02 2021-08-24 Beijing Bytedance Network Tech Co Ltd Manejo de bufer para copia intra-bloque en codificacion de video.
WO2020156541A1 (en) * 2019-02-02 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Data storage in buffers for intra block copy in video coding
JP7405861B2 (ja) 2019-03-01 2023-12-26 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーのための方向に基づく予測
JP7284284B2 (ja) 2019-03-04 2023-05-30 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーの実装形態の態様
KR102603451B1 (ko) * 2019-03-09 2023-11-20 텐센트 아메리카 엘엘씨 비디오 코딩을 위한 방법 및 장치
WO2020248105A1 (zh) * 2019-06-10 2020-12-17 Oppo广东移动通信有限公司 预测值的确定方法、编码器以及计算机存储介质
BR112021026544A2 (pt) * 2019-06-24 2022-02-15 Lg Electronics Inc Método de codificação/decodificação de imagem, aparelho e método para transmitir fluxo de bits usando ajuste de tamanho máximo de transformação do bloco de croma
CN114208179A (zh) * 2019-06-24 2022-03-18 Lg电子株式会社 利用色度分量编码块的最大变换大小限制的图像编码/解码方法和装置及发送比特流的方法
CN117294841A (zh) 2019-07-06 2023-12-26 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的虚拟预测缓冲
KR102635519B1 (ko) 2019-07-10 2024-02-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 카피를 위한 샘플 식별
KR20220030957A (ko) 2019-07-11 2022-03-11 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 카피를 위한 비트스트림 적합 제약
EP3991423A4 (en) * 2019-07-25 2022-09-07 Beijing Bytedance Network Technology Co., Ltd. MAPPING RESTRICTION FOR INTRABLOC COPY VIRTUAL BUFFER
CN114208186B (zh) * 2019-07-25 2023-12-22 北京字节跳动网络技术有限公司 帧内块复制虚拟缓冲区的尺寸限制
CA3152831A1 (en) 2019-08-29 2021-03-04 Lg Electronics Inc. Image encoding and decoding using adaptive loop and cross-component filtering
JP7307274B2 (ja) 2019-09-23 2023-07-11 北京字節跳動網絡技術有限公司 仮想パイプラインデータユニットに基づいたイントラブロックコピー仮想バッファの設定
CN115362674A (zh) 2020-03-18 2022-11-18 抖音视界有限公司 帧内块复制缓冲区和调色板预测值更新
CN113709458B (zh) * 2020-05-22 2023-08-29 腾讯科技(深圳)有限公司 视频编解码中的位移矢量预测方法、装置及设备
CN115812306A (zh) * 2020-06-08 2023-03-17 抖音视界有限公司 使用非紧邻临近块的帧内块复制的约束
US20230086077A1 (en) * 2021-09-17 2023-03-23 Tencent America LLC Method and apparatus for intra block copy (intrabc) mode coding with search range restrictions
US11849129B2 (en) * 2022-03-18 2023-12-19 Qualcomm Incorporated Intra-block copy decoding using dynamic re-mapping of on-chip memory

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110194613A1 (en) * 2010-02-11 2011-08-11 Qualcomm Incorporated Video coding with large macroblocks
US20130108182A1 (en) * 2010-07-02 2013-05-02 Humax Co., Ltd. Apparatus and method for encoding/decoding images for intra-prediction coding
WO2014205339A2 (en) * 2013-06-21 2014-12-24 Qualcomm Incorporated Intra prediction from a predictive block
WO2015035449A1 (en) * 2013-09-13 2015-03-19 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data

Family Cites Families (255)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2114404B (en) 1982-01-28 1986-07-02 British Broadcasting Corp Generating a colour video signal representative of a stored picture
JPH087553B2 (ja) 1988-10-27 1996-01-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 色画像量子化方法及び装置
US5706290A (en) 1994-12-15 1998-01-06 Shaw; Venson Method and apparatus including system architecture for multimedia communication
US6389162B2 (en) 1996-02-15 2002-05-14 Canon Kabushiki Kaisha Image processing apparatus and method and medium
JPH10262258A (ja) * 1997-03-19 1998-09-29 Sony Corp 画像符号化装置及び方法
JP2000102016A (ja) 1998-09-22 2000-04-07 Victor Co Of Japan Ltd 動き補償予測回路
JP2001251507A (ja) 2000-03-03 2001-09-14 Fujitsu Ltd 画像処理装置
US6701012B1 (en) 2000-07-24 2004-03-02 Sharp Laboratories Of America, Inc. Out-of-layer pixel generation for a decomposed-image layer
US6748116B1 (en) 2000-08-22 2004-06-08 Airzip, Inc. Apparatus and method for compressing and decompressing image files
DE10049571C1 (de) 2000-10-06 2002-06-13 Siemens Ag Verfahren und Anordnung zum Übertragen eines Vektors
US7023924B1 (en) 2000-12-28 2006-04-04 Emc Corporation Method of pausing an MPEG coded video stream
US6853755B2 (en) 2001-03-28 2005-02-08 Sharp Laboratories Of America, Inc. Method and apparatus for adaptive compression of scanned documents
WO2003023698A1 (en) 2001-09-12 2003-03-20 Idetic, Inc. Transformation to increase the lempel-ziv compressibility of images with minimal visual distortion
JP2004007379A (ja) 2002-04-10 2004-01-08 Toshiba Corp 動画像符号化方法及び動画像復号化方法
US7120196B2 (en) 2002-04-29 2006-10-10 Ess Technology, Inc. Intra-prediction using intra-macroblock motion compensation
RU2314656C2 (ru) 2002-06-11 2008-01-10 Нокиа Корпорейшн Внутреннее кодирование, основанное на пространственном прогнозировании
US7289674B2 (en) 2002-06-11 2007-10-30 Nokia Corporation Spatial prediction based intra coding
US7016547B1 (en) 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
BR0317962A (pt) 2003-01-10 2005-11-29 Thomson Licensing Sa Aparelho decodificador e método para suavizar artefatos criados durante ocultação de erro
DE10301362B4 (de) 2003-01-16 2005-06-09 GEMAC-Gesellschaft für Mikroelektronikanwendung Chemnitz mbH Blockdatenkompressionssystem, bestehend aus einer Kompressionseinrichtung und einer Dekompressionseinrichtung, und Verfahren zur schnellen Blockdatenkompression mit Multi-Byte-Suche
US7373005B2 (en) 2003-04-10 2008-05-13 Micron Technology, Inc. Compression system for integrated sensor devices
US7609763B2 (en) 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
MXPA06002212A (es) 2003-08-26 2006-05-19 Thomson Licensing Metodo y aparato para codificar bloques intra-inter-codificados hibridos.
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7317839B2 (en) 2003-09-07 2008-01-08 Microsoft Corporation Chroma motion vector derivation for interlaced forward-predicted fields
KR101044934B1 (ko) 2003-12-18 2011-06-28 삼성전자주식회사 움직임 벡터 추정방법 및 부호화 모드 결정방법
JP4591657B2 (ja) 2003-12-22 2010-12-01 キヤノン株式会社 動画像符号化装置及びその制御方法、プログラム
US8036271B2 (en) 2004-02-24 2011-10-11 Lsi Corporation Method and apparatus for determining a second picture for temporal direct-mode block prediction
JP4338654B2 (ja) * 2004-03-18 2009-10-07 三洋電機株式会社 動きベクトル検出装置及び方法、及びその動きベクトル検出装置を利用可能な画像符号化装置
US8116374B2 (en) 2004-05-07 2012-02-14 Broadcom Corporation Method and system for generating a transform size syntax element for video decoding
JP4418762B2 (ja) 2004-05-07 2010-02-24 キヤノン株式会社 画像符号化装置及び画像復号装置及びそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
CA2574590C (en) 2004-07-20 2013-02-19 Qualcomm Incorporated Method and apparatus for motion vector prediction in temporal video compression
JP2006140683A (ja) 2004-11-11 2006-06-01 Canon Inc 画像符号化装置
US7720154B2 (en) 2004-11-12 2010-05-18 Industrial Technology Research Institute System and method for fast variable-size motion estimation
JP2006140758A (ja) 2004-11-12 2006-06-01 Toshiba Corp 動画像符号化方法、動画像符号化装置および動画像符号化プログラム
KR100679035B1 (ko) 2005-01-04 2007-02-06 삼성전자주식회사 인트라 bl 모드를 고려한 디블록 필터링 방법, 및 상기방법을 이용하는 다 계층 비디오 인코더/디코더
US20060274070A1 (en) 2005-04-19 2006-12-07 Herman Daniel L Techniques and workflows for computer graphics animation system
US20060282855A1 (en) 2005-05-05 2006-12-14 Digital Display Innovations, Llc Multiple remote display system
KR100716999B1 (ko) 2005-06-03 2007-05-10 삼성전자주식회사 영상의 대칭성을 이용한 인트라 예측 방법, 이를 이용한영상의 복호화, 부호화 방법 및 장치
KR101211665B1 (ko) 2005-08-12 2012-12-12 삼성전자주식회사 영상의 인트라 예측 부호화, 복호화 방법 및 장치
JP2007053561A (ja) 2005-08-17 2007-03-01 Matsushita Electric Ind Co Ltd 画像符号化装置および画像符号化方法
DE602006005689D1 (de) 2005-08-19 2009-04-23 Ericsson Telefon Ab L M Texturkomprimierung auf der basis zweier farbtöne mit modifizierter helligkeit
US7986844B2 (en) 2005-11-22 2011-07-26 Intel Corporation Optimized video compression using hashing function
US7956930B2 (en) 2006-01-06 2011-06-07 Microsoft Corporation Resampling and picture resizing operations for multi-resolution video coding and decoding
US8792555B2 (en) 2006-01-31 2014-07-29 Qualcomm Incorporated Methods and systems for resizing multimedia content
CN101026761B (zh) 2006-02-17 2010-05-12 中国科学院自动化研究所 一种具有最小误差的快速变尺寸块匹配的运动估计方法
US7668382B2 (en) 2006-02-24 2010-02-23 Microsoft Corporation Block-based fast image compression
US7616816B2 (en) 2006-03-20 2009-11-10 Sarnoff Corporation System and method for mission-driven visual information retrieval and organization
WO2007119198A1 (en) 2006-04-14 2007-10-25 Nxp B.V. Motion estimation at image borders
CA2655970A1 (en) 2006-07-07 2008-01-10 Telefonaktiebolaget L M Ericsson (Publ) Video data management
DE102007035204A1 (de) 2006-07-28 2008-02-07 Mediatek Inc. Videoverarbeitungs- und - betriebsvorrichtung
US8472527B2 (en) 2006-09-13 2013-06-25 Texas Instruments Incorporated Hierarchical motion estimation using original frame for sub-sampled reference
CN102833544A (zh) 2006-09-22 2012-12-19 汤姆森许可贸易公司 多通道视频编码和解码的方法及装置
FR2906433B1 (fr) 2006-09-22 2009-02-27 Canon Kk Procedes et dispositifs de codage et de decodage d'images, programme d'ordinateur les mettant en oeuvre et support d'informaton permettant de les mettre en oeuvre
US20080084924A1 (en) 2006-10-05 2008-04-10 Donald Martin Monro Matching pursuits basis selection design
US8218641B2 (en) 2006-10-31 2012-07-10 Sony Computer Entertainment Inc. Picture encoding using same-picture reference for pixel reconstruction
US8218640B2 (en) 2006-10-31 2012-07-10 Sony Computer Entertainment Inc. Picture decoding using same-picture reference for pixel reconstruction
JP2008154015A (ja) 2006-12-19 2008-07-03 Hitachi Ltd 復号化方法および符号化方法
US7907783B2 (en) 2007-01-24 2011-03-15 Samsung Electronics Co., Ltd. Apparatus and method of matching symbols in a text image coding and decoding system
CN100527842C (zh) 2007-01-26 2009-08-12 清华大学 基于背景的运动估计编码方法
CA2676709C (en) 2007-02-23 2013-06-25 Nippon Telegraph And Telephone Corporation Video encoding method and decoding method, apparatuses therefor, programs therefor, and storage media which store the programs
US8160150B2 (en) 2007-04-10 2012-04-17 Texas Instruments Incorporated Method and system for rate distortion optimization
JP2010525658A (ja) 2007-04-19 2010-07-22 トムソン ライセンシング イントラ予測のための適応参照画像データ生成
US7903873B2 (en) 2007-09-13 2011-03-08 Microsoft Corporation Textual image coding
CN101420606A (zh) 2007-10-23 2009-04-29 青岛海信电器股份有限公司 图像处理方法和装置
JP2009147807A (ja) 2007-12-17 2009-07-02 Fujifilm Corp 画像処理装置
CN101232619B (zh) 2008-01-25 2011-05-11 浙江大学 嵌入帧内编码块的视频编码方法
TWI375472B (en) 2008-02-04 2012-10-21 Ind Tech Res Inst Intra prediction method for luma block of video
CN101552924B (zh) 2008-03-31 2011-08-03 深圳市融创天下科技发展有限公司 一种用于视频编码的空间预测方法
JP5413923B2 (ja) 2008-04-11 2014-02-12 トムソン ライセンシング 変位イントラ予測およびテンプレート・マッチングのためのデブロッキング・フィルタリング
JP2009260473A (ja) 2008-04-14 2009-11-05 Canon Inc 色処理方法及び装置、プログラム、記録媒体
JP2010035137A (ja) 2008-07-01 2010-02-12 Sony Corp 画像処理装置および方法、並びにプログラム
CN102113326A (zh) 2008-08-04 2011-06-29 杜比实验室特许公司 重叠块差异估计和补偿体系结构
US8213503B2 (en) 2008-09-05 2012-07-03 Microsoft Corporation Skip modes for inter-layer residual video coding and decoding
US8385404B2 (en) 2008-09-11 2013-02-26 Google Inc. System and method for video encoding using constructed reference frame
KR101306834B1 (ko) 2008-09-22 2013-09-10 에스케이텔레콤 주식회사 인트라 예측 모드의 예측 가능성을 이용한 영상 부호화/복호화 장치 및 방법
US8254704B2 (en) 2008-10-30 2012-08-28 Microsoft Corporation Remote computing platforms providing high-fidelity display and interactivity for clients
US8180165B2 (en) 2008-12-19 2012-05-15 Microsoft Corp. Accelerated screen codec
KR101359490B1 (ko) 2008-12-23 2014-02-10 에스케이 텔레콤주식회사 컬러 영상 부호화/복호화 방법 및 장치
TW201028018A (en) 2009-01-07 2010-07-16 Ind Tech Res Inst Encoder, decoder, encoding method and decoding method
US8345994B2 (en) 2009-02-02 2013-01-01 Calgary Scientific Inc. Image data transmission
RU2420021C2 (ru) 2009-03-24 2011-05-27 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ сжатия изображений и видеопоследовательностей
EP2249571A1 (en) 2009-05-04 2010-11-10 Thomson Licensing SA Method and device for encoding an image frame comprising macroblocks
US8837587B2 (en) 2009-06-22 2014-09-16 Thomson Licensing Process for coding and decoding video data of a sequence of images and corresponding encoder and decoder
WO2011004598A1 (ja) 2009-07-10 2011-01-13 パナソニック株式会社 動画像符号化方法、装置、プログラム、および集積回路
CN101626512A (zh) 2009-08-11 2010-01-13 北京交通大学 一种基于相关性优化准则的多描述视频编码方法及装置
KR101698499B1 (ko) 2009-10-01 2017-01-23 에스케이텔레콤 주식회사 분할 레이어를 이용한 영상 부호화/복호화 방법 및 장치
TWI566586B (zh) 2009-10-20 2017-01-11 湯姆生特許公司 一序列形象的現時區塊之寫碼方法和重建方法
CN102577392A (zh) 2009-10-20 2012-07-11 夏普株式会社 运动图像编码装置、运动图像解码装置以及数据结构
JP5321426B2 (ja) 2009-11-26 2013-10-23 株式会社Jvcケンウッド 画像符号化装置、画像復号化装置、画像符号化方法、及び画像復号化方法
KR101623124B1 (ko) 2009-12-03 2016-05-24 에스케이 텔레콤주식회사 비디오 인코딩 장치 및 그 인코딩 방법, 비디오 디코딩 장치 및 그 디코딩 방법, 및 거기에 이용되는 방향적 인트라 예측방법
WO2011095260A1 (en) 2010-02-05 2011-08-11 Telefonaktiebolaget L M Ericsson (Publ) Managing predicted motion vector candidates
JP5375676B2 (ja) 2010-03-04 2013-12-25 富士通株式会社 画像処理装置、画像処理方法、および画像処理プログラム
ES2713173T3 (es) 2010-03-31 2019-05-20 Orange Procedimientos y dispositivos de codificación y de decodificación de una secuencia de imágenes que implementan una predicción por compensación de movimiento anticipado, y programa de ordenador correspondiente
US8644375B2 (en) 2010-04-09 2014-02-04 Sharp Laboratories Of America, Inc. Methods and systems for intra prediction
US8619857B2 (en) 2010-04-09 2013-12-31 Sharp Laboratories Of America, Inc. Methods and systems for intra prediction
CN105611304B (zh) 2010-04-09 2019-06-11 Lg电子株式会社 处理视频数据的方法和装置
KR101752418B1 (ko) 2010-04-09 2017-06-29 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
WO2011136896A1 (en) 2010-04-27 2011-11-03 Sony Corporation Boundary adaptive intra prediction for improving subjective video quality
KR20110123651A (ko) 2010-05-07 2011-11-15 한국전자통신연구원 생략 부호화를 이용한 영상 부호화 및 복호화 장치 및 그 방법
US9036932B2 (en) 2010-06-21 2015-05-19 Thomson Licensing Method and apparatus for encoding/decoding image data
KR101484281B1 (ko) 2010-07-09 2015-01-21 삼성전자주식회사 블록 병합을 이용한 비디오 부호화 방법 및 그 장치, 블록 병합을 이용한 비디오 복호화 방법 및 그 장치
KR101927283B1 (ko) 2010-07-14 2019-03-12 가부시키가이샤 엔.티.티.도코모 비디오 코딩을 위한 저 복잡성 인트라 예측
CN105227958B (zh) 2010-07-20 2019-06-25 Sk电信有限公司 用于解码视频信号的解码装置
EP3962088B1 (en) 2010-11-04 2023-06-21 GE Video Compression, LLC Picture coding supporting block merging and skip mode
US8787459B2 (en) 2010-11-09 2014-07-22 Sony Computer Entertainment Inc. Video coding methods and apparatus
KR101756442B1 (ko) 2010-11-29 2017-07-11 에스케이텔레콤 주식회사 인트라예측모드의 중복성을 최소화하기 위한 영상 부호화/복호화 방법 및 장치
US8767835B2 (en) 2010-12-28 2014-07-01 Mitsubishi Electric Research Laboratories, Inc. Method for coding videos using dictionaries
US20120163457A1 (en) 2010-12-28 2012-06-28 Viktor Wahadaniah Moving picture decoding method, moving picture coding method, moving picture decoding apparatus, moving picture coding apparatus, and moving picture coding and decoding apparatus
KR101739579B1 (ko) 2011-01-04 2017-05-24 에스케이 텔레콤주식회사 코딩 유닛 단위 병렬 인트라예측을 이용한 부호화/복호화 방법 및 장치
US8913662B2 (en) 2011-01-06 2014-12-16 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding using CABAC
KR20120080122A (ko) 2011-01-06 2012-07-16 삼성전자주식회사 경쟁 기반의 다시점 비디오 부호화/복호화 장치 및 방법
US9924188B2 (en) 2011-01-07 2018-03-20 Lg Electronics Inc. Method for encoding and decoding image information to determine reference index in skip mode or merge mode and device using same
US9066104B2 (en) 2011-01-14 2015-06-23 Google Inc. Spatial block merge mode
ES2566917T3 (es) 2011-01-14 2016-04-18 Ge Video Compression, Llc Esquema de codificación y descodificación por entropía
WO2012097377A1 (en) 2011-01-14 2012-07-19 General Instrument Corporation Joint spatial and temporal block merge mode for hevc
US8755437B2 (en) 2011-03-17 2014-06-17 Mediatek Inc. Method and apparatus for derivation of spatial motion vector candidate and motion vector prediction candidate
EP2667613A4 (en) 2011-01-19 2016-12-07 Renesas Electronics Corp IMAGE ENCODING DEVICE AND IMAGE DECODING DEVICE
US9532066B2 (en) 2011-01-21 2016-12-27 Qualcomm Incorporated Motion vector prediction
US8548057B2 (en) 2011-01-25 2013-10-01 Microsoft Corporation Video coding redundancy reduction
US9319716B2 (en) 2011-01-27 2016-04-19 Qualcomm Incorporated Performing motion vector prediction for video coding
US9288501B2 (en) 2011-03-08 2016-03-15 Qualcomm Incorporated Motion vector predictors (MVPs) for bi-predictive inter mode in video coding
US9788019B2 (en) 2011-03-09 2017-10-10 Hfi Innovation Inc. Method and apparatus of transform unit partition with reduced complexity
AU2011362447B2 (en) 2011-03-14 2015-09-24 Hfi Innovation Inc. Method and apparatus for deriving temporal motion vector prediction
ES2770437T3 (es) 2011-03-21 2020-07-01 Lg Electronics Inc Método para seleccionar un predictor de vector de movimiento y un dispositivo que lo utiliza
US8693547B2 (en) 2011-04-06 2014-04-08 Google Inc. Apparatus and method for coding using motion vector segmentation
RU2619710C2 (ru) 2011-04-21 2017-05-17 Самсунг Электроникс Ко., Лтд. Способ квантования коэффициентов кодирования с линейным предсказанием, способ кодирования звука, способ деквантования коэффициентов кодирования с линейным предсказанием, способ декодирования звука и носитель записи
US20140050414A1 (en) 2011-04-29 2014-02-20 Telefonaktiebolaget L M Ericsson (Publ) Encoder, Decoder and Methods Thereof for Texture Compression
US20120281760A1 (en) 2011-05-04 2012-11-08 Hyung Joon Kim Iterative Grid-Pattern Motion Search
US8971416B2 (en) 2011-05-05 2015-03-03 Vixs Systems, Inc Video decoder with vector processor and methods for use therewith
CN102137263B (zh) 2011-05-09 2013-07-03 松日数码发展(深圳)有限公司 基于cnm关键帧分类的分布式视频编码及解码方法
US20120294353A1 (en) 2011-05-16 2012-11-22 Mediatek Inc. Apparatus and Method of Sample Adaptive Offset for Luma and Chroma Components
US20140085418A1 (en) 2011-05-16 2014-03-27 Sony Corporation Image processing device and image processing method
CN102238391B (zh) 2011-05-25 2016-12-07 深圳市云宙多媒体技术有限公司 一种预测编码方法、装置
JP5727873B2 (ja) 2011-06-10 2015-06-03 日本放送協会 動きベクトル検出装置、符号化装置、及びこれらのプログラム
CN103688533B (zh) 2011-06-20 2015-12-23 联发科技(新加坡)私人有限公司 可减少行存储器的色度帧内预测方法及装置
WO2012174990A1 (en) 2011-06-24 2012-12-27 Mediatek Inc. Method and apparatus for removing redundancy in motion vector predictors
CN103563375B (zh) 2011-06-27 2017-04-05 太阳专利托管公司 图像解码方法、图像编码方法、图像解码装置、图像编码装置及图像编码解码装置
US9060173B2 (en) 2011-06-30 2015-06-16 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
EP2705668A1 (en) 2011-07-12 2014-03-12 Huawei Technologies Co., Ltd Pixel-based intra prediction for coding in hevc
CN102223541B (zh) 2011-07-14 2013-07-03 北京工业大学 一种混合图像的编码方法
US9232237B2 (en) 2011-08-05 2016-01-05 Texas Instruments Incorporated Block-based parallel deblocking filter in video coding
CN103748877B (zh) 2011-08-17 2017-05-10 联发科技(新加坡)私人有限公司 帧内预测方法和装置
MX351933B (es) 2011-08-29 2017-11-01 Ibex Pt Holdings Co Ltd Método para generar un bloque de predicción en modo de predicción de vector de movimiento avanzada (amvp).
US8804816B2 (en) 2011-08-30 2014-08-12 Microsoft Corporation Video encoding enhancements
US9578336B2 (en) 2011-08-31 2017-02-21 Texas Instruments Incorporated Hybrid video and graphics system with automatic content detection process, and other circuits, processes, and systems
US9451284B2 (en) 2011-10-10 2016-09-20 Qualcomm Incorporated Efficient signaling of reference picture sets
KR102014332B1 (ko) 2011-10-21 2019-08-26 노키아 테크놀로지스 오와이 비디오 코딩 방법 및 장치
GB2495990A (en) 2011-10-28 2013-05-01 Canon Kk Motion compensated image coding with omission of coding mode cost calculation for a motion predictor in a set.
US9484952B2 (en) 2011-11-03 2016-11-01 Qualcomm Incorporated Context state and probability initialization for context adaptive entropy coding
US10390046B2 (en) 2011-11-07 2019-08-20 Qualcomm Incorporated Coding significant coefficient information in transform skip mode
BR112014012351A2 (pt) 2011-11-08 2017-05-30 Motorola Mobility Llc dispositivos e métodos para codificação e/ou de sinalização de deslocamento adaptado de amostra
WO2013068564A1 (en) 2011-11-11 2013-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Effective wedgelet partition coding using spatial prediction
US20130121417A1 (en) 2011-11-16 2013-05-16 Qualcomm Incorporated Constrained reference picture sets in wave front parallel processing of video data
EP2781091B1 (en) 2011-11-18 2020-04-08 GE Video Compression, LLC Multi-view coding with efficient residual handling
US9883203B2 (en) 2011-11-18 2018-01-30 Qualcomm Incorporated Adaptive overlapped block motion compensation
CN108471532B (zh) 2011-11-25 2021-06-29 太阳专利托管公司 图像解码方法及图像解码装置
RU2493670C2 (ru) 2011-12-15 2013-09-20 Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский университет "МИЭТ" Способ блочной межкадровой компенсации движения для видеокодеков
KR20140120891A (ko) 2011-12-20 2014-10-14 모토로라 모빌리티 엘엘씨 효율적인 변환 유닛 인코딩을 위한 방법 및 장치
US9762904B2 (en) 2011-12-22 2017-09-12 Qualcomm Incorporated Performing motion vector prediction for video coding
US20130163664A1 (en) 2011-12-22 2013-06-27 Qualcomm Incorporated Unified partition mode table for intra-mode coding
US9900615B2 (en) 2011-12-28 2018-02-20 Microsoft Technology Licensing, Llc Representative motion information for temporal motion prediction in video encoding and decoding
WO2013102293A1 (en) 2012-01-04 2013-07-11 Mediatek Singapore Pte. Ltd. Improvements of luma-based chroma intra prediction
US9451252B2 (en) 2012-01-14 2016-09-20 Qualcomm Incorporated Coding parameter sets and NAL unit headers for video coding
US9749661B2 (en) 2012-01-18 2017-08-29 Qualcomm Incorporated Sub-streams for wavefront parallel processing in video coding
JP2013150173A (ja) 2012-01-19 2013-08-01 Sony Corp 画像処理装置および方法
SG11201404251QA (en) 2012-01-20 2014-08-28 Fraunhofer Ges Forschung Coding concept allowing parallel processing, transport demultiplexer and video bitstream
US9210438B2 (en) 2012-01-20 2015-12-08 Sony Corporation Logical intra mode naming in HEVC video coding
US20130188719A1 (en) 2012-01-20 2013-07-25 Qualcomm Incorporated Motion prediction in svc using motion vector for intra-coded block
JP2013150215A (ja) 2012-01-20 2013-08-01 Fujitsu Ltd 動画像復号装置、動画像符号化装置、動画像復号方法、動画像符号化方法、動画像復号プログラム及び動画像符号化プログラム
US10244246B2 (en) 2012-02-02 2019-03-26 Texas Instruments Incorporated Sub-pictures for pixel rate balancing on multi-core platforms
WO2013128010A2 (en) 2012-03-02 2013-09-06 Canon Kabushiki Kaisha Method and devices for encoding a sequence of images into a scalable video bit-stream, and decoding a corresponding scalable video bit-stream
US8737824B1 (en) 2012-03-09 2014-05-27 Google Inc. Adaptively encoding a media stream with compound prediction
US9503720B2 (en) 2012-03-16 2016-11-22 Qualcomm Incorporated Motion vector coding and bi-prediction in HEVC and its extensions
CA2868448A1 (en) 2012-03-26 2013-10-03 Euclid Discoveries, Llc Context based video encoding and decoding
US20130258052A1 (en) 2012-03-28 2013-10-03 Qualcomm Incorporated Inter-view residual prediction in 3d video coding
US9838684B2 (en) 2012-04-11 2017-12-05 Qualcomm Incorporated Wavefront parallel processing for video coding
US20130272409A1 (en) 2012-04-12 2013-10-17 Qualcomm Incorporated Bandwidth reduction in video coding through applying the same reference index
US20150085932A1 (en) 2012-04-24 2015-03-26 Mediatek Inc. Method and apparatus of motion vector derivation for 3d video coding
GB2501535A (en) 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
US9521410B2 (en) 2012-04-26 2016-12-13 Qualcomm Incorporated Quantization parameter (QP) coding in video coding
US9762903B2 (en) 2012-06-01 2017-09-12 Qualcomm Incorporated External pictures in video coding
US9621905B2 (en) 2012-06-29 2017-04-11 Qualcomm Incorporated Tiles and wavefront parallel processing
CN102752595B (zh) 2012-06-29 2014-07-09 香港应用科技研究院有限公司 用于深度图编码和解码的混合型跳过模式
US9716892B2 (en) 2012-07-02 2017-07-25 Qualcomm Incorporated Video parameter set including session negotiation information
US9549182B2 (en) 2012-07-11 2017-01-17 Qualcomm Incorporated Repositioning of prediction residual blocks in video coding
US9264713B2 (en) 2012-07-11 2016-02-16 Qualcomm Incorporated Rotation of prediction residual blocks in video coding with transform skipping
US9467692B2 (en) 2012-08-31 2016-10-11 Qualcomm Incorporated Intra prediction improvements for scalable video coding
US20140071235A1 (en) 2012-09-13 2014-03-13 Qualcomm Incorporated Inter-view motion prediction for 3d video
KR102160372B1 (ko) 2012-09-26 2020-09-28 벨로스 미디어 인터내셔널 리미티드 화상 복호 방법, 화상 부호화 방법, 화상 복호 장치, 화상 부호화 장치 및 화상 부호화 복호 장치
JPWO2014050948A1 (ja) 2012-09-28 2016-08-22 シャープ株式会社 画像復号装置、画像復号方法及び画像符号化装置
WO2014053099A1 (en) 2012-10-03 2014-04-10 Mediatek Inc. Method and apparatus for motion information inheritance in three-dimensional video coding
US9357214B2 (en) 2012-12-07 2016-05-31 Qualcomm Incorporated Advanced merge/skip mode and advanced motion vector prediction (AMVP) mode for 3D video
US9615090B2 (en) 2012-12-28 2017-04-04 Qualcomm Incorporated Parsing syntax elements in three-dimensional video coding
US9826244B2 (en) 2013-01-08 2017-11-21 Qualcomm Incorporated Device and method for scalable coding of video information based on high efficiency video coding
CN103067716B (zh) 2013-01-10 2016-06-29 华为技术有限公司 深度图像的编解码方法和编解码装置
US9800857B2 (en) 2013-03-08 2017-10-24 Qualcomm Incorporated Inter-view residual prediction in multi-view or 3-dimensional video coding
US9516306B2 (en) 2013-03-27 2016-12-06 Qualcomm Incorporated Depth coding modes signaling of depth data for 3D-HEVC
US10904551B2 (en) 2013-04-05 2021-01-26 Texas Instruments Incorporated Video coding using intra block copy
CN103237226B (zh) 2013-04-07 2016-08-03 宁波大学 一种立体视频宏块丢失错误隐藏方法
WO2014166104A1 (en) 2013-04-12 2014-10-16 Mediatek Singapore Pte. Ltd. Removal of parsing dependency for illumination compensation
US11323747B2 (en) 2013-06-05 2022-05-03 Qualcomm Incorporated Residual differential pulse code modulation (DPCM) extensions and harmonization with transform skip, rotation, and scans
CN103281538B (zh) 2013-06-06 2016-01-13 上海交通大学 基于滚动哈希和块级别帧内预测的帧内编码方法
CN111800640B (zh) 2013-06-13 2023-11-10 上海天荷电子信息有限公司 方向交替变换来回扫描串匹配的图像编码解码方法和装置
US9300967B2 (en) 2013-06-19 2016-03-29 Apple Inc. Sample adaptive offset control
GB2516422A (en) 2013-07-09 2015-01-28 Sony Corp Data encoding and decoding
US20150016533A1 (en) 2013-07-12 2015-01-15 Qualcomm Incorporated Intra motion compensation extensions
US9558567B2 (en) 2013-07-12 2017-01-31 Qualcomm Incorporated Palette prediction in palette-based video coding
US20150016516A1 (en) 2013-07-15 2015-01-15 Samsung Electronics Co., Ltd. Method for intra prediction improvements for oblique modes in video coding
JP6434012B2 (ja) 2013-07-24 2018-12-05 クゥアルコム・インコーポレイテッドQualcomm Incorporated 3d−hevcのための簡素化された高度動き予測
CN112383781B (zh) 2013-08-16 2023-05-02 上海天荷电子信息有限公司 参考块的位置决定其重构阶段的块匹配编解码方法和装置
US9774879B2 (en) 2013-08-16 2017-09-26 Sony Corporation Intra-block copying enhancements for HEVC in-range-extension (RExt)
US10313682B2 (en) 2013-08-26 2019-06-04 Qualcomm Incorporated Determining regions when performing intra block copying
US9503715B2 (en) 2013-08-30 2016-11-22 Qualcomm Incorporated Constrained intra prediction in video coding
CN104427338B (zh) 2013-09-07 2019-11-05 上海天荷电子信息有限公司 一种使用块匹配的图像编码以及图像解码的方法和装置
US20150071357A1 (en) 2013-09-12 2015-03-12 Qualcomm Incorporated Partial intra block copying for video coding
US10009629B2 (en) 2013-10-11 2018-06-26 Sony Corporation Video coding system with search range and method of operation thereof
JP6359101B2 (ja) 2013-10-14 2018-07-18 マイクロソフト テクノロジー ライセンシング,エルエルシー ビデオ及び画像の符号化及び復号のためのイントラブロックコピー予測モードの特徴
CN105659602B (zh) 2013-10-14 2019-10-08 微软技术许可有限责任公司 用于视频和图像编码的帧内块复制预测模式的编码器侧选项
JP6336058B2 (ja) 2013-10-14 2018-06-06 マイクロソフト テクノロジー ライセンシング,エルエルシー ビデオ及び画像符号化及び復号のためのベースカラーインデックスマップモードの機能
US20150110181A1 (en) 2013-10-18 2015-04-23 Samsung Electronics Co., Ltd. Methods for palette prediction and intra block copy padding
US10291827B2 (en) 2013-11-22 2019-05-14 Futurewei Technologies, Inc. Advanced screen content coding solution
US10321141B2 (en) 2013-12-18 2019-06-11 Hfi Innovation Inc. Method and apparatus for palette initialization and management
TWI536811B (zh) 2013-12-27 2016-06-01 財團法人工業技術研究院 影像處理方法與系統、解碼方法、編碼器與解碼器
US10390034B2 (en) 2014-01-03 2019-08-20 Microsoft Technology Licensing, Llc Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area
CN105917650B (zh) 2014-01-03 2019-12-24 微软技术许可有限责任公司 视频和图像编/解码的方法、计算设备及计算机可读介质
US9883197B2 (en) 2014-01-09 2018-01-30 Qualcomm Incorporated Intra prediction of chroma blocks using the same vector
US20150271515A1 (en) 2014-01-10 2015-09-24 Qualcomm Incorporated Block vector coding for intra block copy in video coding
US11284103B2 (en) 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
GB2522844A (en) 2014-01-29 2015-08-12 Sony Corp Data encoding and decoding
US9699468B2 (en) 2014-02-10 2017-07-04 Microsoft Technology Licensing, Llc Adaptive screen and video coding scheme
EP3078192B1 (en) 2014-02-21 2019-12-04 MediaTek Singapore Pte Ltd. Method of video coding using prediction based on intra picture block copy
US10542274B2 (en) 2014-02-21 2020-01-21 Microsoft Technology Licensing, Llc Dictionary encoding and decoding of screen content
RU2657210C2 (ru) 2014-03-04 2018-06-08 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Зеркальное отображение блоков и режим пропуска в интра-основанном на копии блока предсказании
KR102185245B1 (ko) 2014-03-04 2020-12-01 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 해시 기반 블록 매칭을 위한 해시 테이블 구성 및 이용가능성 검사
EP3117608B1 (en) 2014-03-14 2021-05-12 HFI Innovation Inc. Method for palette management
US20150264348A1 (en) 2014-03-17 2015-09-17 Qualcomm Incorporated Dictionary coding of video content
JP2017513358A (ja) 2014-03-17 2017-05-25 ノキア テクノロジーズ オサケユイチア ビデオのエンコーディングおよびデコーディングのための方法およびテクノロジー機器
US10432928B2 (en) 2014-03-21 2019-10-01 Qualcomm Incorporated Using a current picture as a reference for video coding
US10477232B2 (en) 2014-03-21 2019-11-12 Qualcomm Incorporated Search region determination for intra block copy in video coding
AU2014202682A1 (en) 2014-05-16 2015-12-03 Canon Kabushiki Kaisha Method, apparatus and system for copying a block of video samples
US11323733B2 (en) 2014-05-23 2022-05-03 Qualcomm Incorporated Predictor palette initialization in palette-based video coding
EP3158734A4 (en) 2014-06-19 2017-04-26 Microsoft Technology Licensing, LLC Unified intra block copy and inter prediction modes
KR102402622B1 (ko) 2014-06-19 2022-05-27 브이아이디 스케일, 인크. 블록 벡터 도출을 이용하여 인트라 블록 복사 코딩을 위한 방법 및 시스템
KR101748620B1 (ko) 2014-06-20 2017-07-04 성균관대학교산학협력단 영상의 부호화/복호화 방법 및 이를 이용하는 장치
US10477204B2 (en) 2014-06-20 2019-11-12 Sharp Kabushiki Kaisha Harmonized palette coding
US9948949B2 (en) 2014-06-20 2018-04-17 Qualcomm Incorporated Intra block copy block vector signaling for video coding
US20150381994A1 (en) 2014-06-27 2015-12-31 Futurewei Technologies, Inc. Advanced screen content coding with improved palette table and index map coding methods
US10412387B2 (en) 2014-08-22 2019-09-10 Qualcomm Incorporated Unified intra-block copy and inter-prediction
EP3917146A1 (en) 2014-09-30 2021-12-01 Microsoft Technology Licensing, LLC Rules for intra-picture prediction modes when wavefront parallel processing is enabled
US9591325B2 (en) 2015-01-27 2017-03-07 Microsoft Technology Licensing, Llc Special case handling for merged chroma blocks in intra block copy prediction mode
US10638140B2 (en) 2015-05-29 2020-04-28 Qualcomm Incorporated Slice level intra block copy and other video coding improvements
WO2017205621A1 (en) 2016-05-25 2017-11-30 Arris Enterprises Llc Jvet coding block structure with asymmetrical partitioning
JP2018032949A (ja) * 2016-08-23 2018-03-01 キヤノン株式会社 動きベクトル検出装置およびその制御方法
US10817747B2 (en) 2019-03-14 2020-10-27 Ubicquia Iq Llc Homography through satellite image matching

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110194613A1 (en) * 2010-02-11 2011-08-11 Qualcomm Incorporated Video coding with large macroblocks
US20130108182A1 (en) * 2010-07-02 2013-05-02 Humax Co., Ltd. Apparatus and method for encoding/decoding images for intra-prediction coding
WO2014205339A2 (en) * 2013-06-21 2014-12-24 Qualcomm Incorporated Intra prediction from a predictive block
WO2015035449A1 (en) * 2013-09-13 2015-03-19 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
C. ROSEWARNE ET AL.: "HEVC Range extensions test model 6 encoder description", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, vol. JCTVC-P1013, JPN6020041794, 23 February 2014 (2014-02-23), pages 1 - 20, ISSN: 0004467692 *
CHUN-CHI CHEN ET AL: "AHG8: Line-based Intra Block Copy", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, vol. JCTVC-O0205, JPN6021009440, October 2013 (2013-10-01), pages 1 - 4, ISSN: 0004467693 *
J. SOLE ET AL.: "HEVC Range Extensions Core Experiment 3 (RCE3): Intra block copy refinement", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, vol. JCTVC-O1123, JPN6021009442, November 2013 (2013-11-01), pages 1 - 6, ISSN: 0004467694 *
THOMAS DAVIES: "BBC's Response to the Call for Proposals on Video Compression Technology", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11, vol. JCTVC-A125, JPN6020041796, April 2010 (2010-04-01), pages 1 - 11, ISSN: 0004379125 *
TSUI-SHAN CHANG ET AL.: "RCE3: Results of Subtest B.1 on Nx2N/2NxN Intra Block Copy", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, vol. JCTVC-P0176, JPN6021009443, January 2014 (2014-01-01), pages 1 - 6, ISSN: 0004467695 *

Also Published As

Publication number Publication date
CN105917648B (zh) 2019-07-12
MX361225B (es) 2018-11-29
US11595679B1 (en) 2023-02-28
MX2016009128A (es) 2016-10-13
BR112016015740A2 (pt) 2017-08-08
CN105917648A (zh) 2016-08-31
EP3095239B1 (en) 2024-02-28
EP4329298A2 (en) 2024-02-28
AU2015206771B2 (en) 2018-08-23
US20230239495A1 (en) 2023-07-27
EP4329298A3 (en) 2024-04-03
US11979601B2 (en) 2024-05-07
US20230038995A1 (en) 2023-02-09
JP2017507554A (ja) 2017-03-16
EP3095239A1 (en) 2016-11-23
KR20160110961A (ko) 2016-09-23
JP6931690B2 (ja) 2021-09-08
RU2683165C1 (ru) 2019-03-26
WO2015108793A1 (en) 2015-07-23
US11979600B2 (en) 2024-05-07
AU2015206771A1 (en) 2016-07-07
US11284103B2 (en) 2022-03-22
US20150208084A1 (en) 2015-07-23
US20230164349A1 (en) 2023-05-25
KR102369117B1 (ko) 2022-02-28
CA2935156A1 (en) 2015-07-23

Similar Documents

Publication Publication Date Title
JP6931690B2 (ja) コンテンツをエンコードする方法及び計算装置
CN110024398B (zh) 针对屏幕远程处理场景的局部的基于散列的运动估计
JP6462119B2 (ja) コンピューティングデバイス
KR102185245B1 (ko) 해시 기반 블록 매칭을 위한 해시 테이블 구성 및 이용가능성 검사
US10136140B2 (en) Encoder-side decisions for screen content encoding
KR102283407B1 (ko) 중첩 구역 내에서의 재구성된 샘플 값의 블록 벡터 예측 및 추정에서의 혁신
KR102197505B1 (ko) 비디오 및 이미지 코딩 및 디코딩에서의 해시 값을 갖는 블록의 표현
KR20160075705A (ko) 비디오 및 이미지 코딩에서의 해시 기반 블록 매칭
KR20170021337A (ko) 해시 기반의 블록 매칭의 결과에 기초한 인코더 결정

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210323

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210623

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210816

R150 Certificate of patent or registration of utility model

Ref document number: 6931690

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150