JP2017504243A - 並列動き推定領域のためのスケーラブル実装形態 - Google Patents

並列動き推定領域のためのスケーラブル実装形態 Download PDF

Info

Publication number
JP2017504243A
JP2017504243A JP2016536572A JP2016536572A JP2017504243A JP 2017504243 A JP2017504243 A JP 2017504243A JP 2016536572 A JP2016536572 A JP 2016536572A JP 2016536572 A JP2016536572 A JP 2016536572A JP 2017504243 A JP2017504243 A JP 2017504243A
Authority
JP
Japan
Prior art keywords
motion vector
candidate
candidates
vector candidates
motion
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
JP2016536572A
Other languages
English (en)
Other versions
JP2017504243A5 (ja
JP6426184B2 (ja
Inventor
チョン、ジェホン
チョン、イン・スク
ラルグディ、ハリハラン・ガネシュ
ワン、シャンリン
カークゼウィックズ、マルタ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2017504243A publication Critical patent/JP2017504243A/ja
Publication of JP2017504243A5 publication Critical patent/JP2017504243A5/ja
Application granted granted Critical
Publication of JP6426184B2 publication Critical patent/JP6426184B2/ja
Expired - Fee Related 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
    • 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/187Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • 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

Landscapes

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

Abstract

本開示の幾つかの態様に従って構成されたビデオコード化機器は、複数の動きベクトル候補を記憶するように構成されたメモリを含む。各動きベクトル候補は、並列動き推定領域(MER)中で区分化された複数の予測単位(PU)のうちの少なくとも1つに対応することができる。ビデオコード化機器は、メモリと通信しているプロセッサをも含む。プロセッサは、マージ候補リスト中に含めるべき複数の動きベクトル候補のサブセットを選択するように構成される。選択は、各動きベクトル候補の優先度レベルに基づき得る。プロセッサは、選択された動きベクトル候補を含むようにマージ候補リストを生成するように更に構成され得る。

Description

[0001]本開示は、一般に、ビデオ情報を符号化及び復号するための技法に関し、詳細には、スケーラブルビデオコード化に関する。
[0002]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップ又はデスクトップコンピュータ、デジタルカメラ、デジタル記録機器、デジタルメディアプレーヤ、ビデオゲーム機器、ビデオゲームコンソール、セルラー又は衛星無線電話、ビデオ遠隔会議機器などを含む、広範囲にわたる機器に組み込まれ得る。デジタルビデオ機器は、デジタルビデオ情報をより効率的に送信及び受信するために、MPEG−2、MPEG−4、ITU−T H.263又はITU−T H.264/MPEG−4,Part10,先進的ビデオコード化(AVC:Advanced Video Coding)によって定義された規格、及びそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。
[0003]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減又は除去するために空間(イントラピクチャ)予測及び/又は時間(インターピクチャ)予測を実行する。ブロックベースのビデオコード化の場合、ビデオスライスが、ツリーブロック、コード化単位(CU:coding unit)及び/又はコード化ノードと呼ばれることもあるビデオブロックに区分化され得る。ピクチャのイントラコード化(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化(P又はB)スライス中のビデオブロックは、同じピクチャの中の隣接ブロック中の参照サンプルに対する空間予測、又は他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
[0004]空間予測又は時間予測は、コード化されるべきブロックのための予測ブロックを生じる。残差データは、コード化されるべき元のブロックと予測ブロックとの間の画素差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コード化ブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコード化モードと残差データとに従って符号化される。更なる圧縮のために、残差データは、画素領域から変換領域に変換され、残差変換係数が生じ得、その残差変換係数は、次いで量子化され得る。最初に2次元アレイで構成される量子化変換係数は、変換係数の1次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するためにエントロピーコード化が適用され得る。
[0005]本開示の幾つかの態様に従って構成されたビデオコード化機器は、複数の動きベクトル候補を記憶するように構成されたメモリを含む。各動きベクトル候補は、並列動き推定領域(MER:motion estimation region)中で区分化された複数の予測単位(PU:prediction unit)のうちの少なくとも1つに対応することができる。ビデオコード化機器は、メモリと通信しているプロセッサをも含む。プロセッサは、マージ候補リスト中に含めるべき複数の動きベクトル候補のサブセットを選択するように構成される。選択は、各動きベクトル候補の優先度レベルに基づき得る。プロセッサは、複数の動きベクトル候補の選択されたサブセットを含むようにマージ候補リストを生成するように更に構成され得る。
[0006]別の実施形態では、ビデオデータを復号する方法は、符号化ビデオビットストリームから抽出されたシンタックス要素を受信することと、マージ候補リスト中に含めるべき動きベクトル候補を選択することと、マージ候補リストを生成することとを含む。シンタックス要素は、複数の動きベクトル候補に関連付けられた情報を含むことができる。各動きベクトル候補は、並列動き推定領域(MER)中で区分化された複数の予測単位(PU)のうちの少なくとも1つに対応することができる。マージ候補リストを選択することは、マージ候補リスト中に含めるべき複数の動きベクトル候補のサブセットを選択することを含む。選択は、複数の動きベクトル候補の各々の優先度レベルに基づき得る。マージ候補リストは、複数の動きベクトル候補の選択されたサブセットを含むように生成される。
[0007]別の実施形態では、ビデオデータを符号化する方法は、複数の動きベクトル候補に関連付けられた情報を決定することと、複数の動きベクトル候補の各々が、並列動き推定領域(MER)中で区分化された複数の予測単位(PU)のうちの少なくとも1つに対応し、複数の動きベクトル候補の各々が、利用可能な動きデータを備える、マージ候補リスト中に含めるべき複数の動きベクトル候補のサブセットを選択することと、ここにおいて、選択が、複数の動きベクトル候補の各々の優先度レベルに基づく、複数の動きベクトル候補の選択されたサブセットを含むようにマージ候補リストを生成することとを含む。
[0008]別の実施形態では、ビデオコード化装置は、複数の動きベクトル候補に関連付けられた情報を決定するための手段と、複数の動きベクトル候補の各々が、並列動き推定領域(MER)中で区分化された複数の予測単位(PU)のうちの少なくとも1つに対応し、複数の動きベクトル候補の各々が、利用可能な動きデータを備える、マージ候補リスト中に含めるべき複数の動きベクトル候補のサブセットを選択するための手段と、ここにおいて、選択が、複数の動きベクトル候補の各々の優先度レベルに基づく、複数の動きベクトル候補の選択されたサブセットを含むようにマージ候補リストを生成するための手段とを含む。
[0009]別の実施形態では、非一時的コンピュータ可読媒体は、実行されたとき、装置に、複数の動きベクトル候補に関連付けられた情報を受信することと、複数の動きベクトル候補の各々が、並列動き推定領域(MER)中で区分化された複数の予測単位(PU)のうちの少なくとも1つに対応し、複数の動きベクトル候補の各々が、利用可能な動きデータを備える、マージ候補リスト中に含めるべき複数の動きベクトル候補のサブセットを選択することと、ここにおいて、選択が、複数の動きベクトル候補の各々の優先度レベルに基づく、複数の動きベクトル候補の選択されたサブセットを含むようにマージ候補リストを生成することとを行わせる、その上に記憶されたコードを含む。
[0010]1つ又は複数の例の詳細が以下の添付の図面及び説明に記載されている。他の特徴、目的、及び利点は、説明及び図面、ならびに特許請求の範囲から明らかになろう。
[0011]例示的なビデオコード化システムを示すブロック図。 [0012]ビデオエンコーダの例示的な構成を示すブロック図。 [0013]ビデオデコーダの例示的な構成を示すブロック図。 [0014]コード化単位(CU)への最大コード化単位(LCU:largest coding unit)の分解の一例を示す図。 [0015]予測単位(PU)へのCUの分解の例を示す図。 予測単位(PU)へのCUの分解の例を示す図。 予測単位(PU)へのCUの分解の例を示す図。 予測単位(PU)へのCUの分解の例を示す図。 [0016]例示的な動きベクトル(MV:motion vector)候補位置を示すブロック図。 [0017]幾つかのPUのためのMV候補位置を示す例示的なCU分解を示す図。 幾つかのPUのためのMV候補位置を示す例示的なCU分解を示す図。 幾つかのPUのためのMV候補位置を示す例示的なCU分解を示す図。 [0018]幾つかのPUのためのMV候補位置を示す別の例示的なCU分解を示す図。 幾つかのPUのためのMV候補位置を示す別の例示的なCU分解を示す図。 幾つかのPUのためのMV候補位置を示す別の例示的なCU分解を示す図。 [0019]幾つかのPUのためのMV候補位置を示す別の例示的なCU分解を示す図。 幾つかのPUのためのMV候補位置を示す別の例示的なCU分解を示す図。 幾つかのPUのためのMV候補位置を示す別の例示的なCU分解を示す図。 [0020]幾つかのPUのためのMV候補位置を示す別の例示的なCU分解を示す図。 幾つかのPUのためのMV候補位置を示す別の例示的なCU分解を示す図。 幾つかのPUのためのMV候補位置を示す別の例示的なCU分解を示す図。 [0021]幾つかのPUのためのMV候補位置を示す別の例示的なCU分解を示す図。 幾つかのPUのためのMV候補位置を示す別の例示的なCU分解を示す図。 幾つかのPUのためのMV候補位置を示す別の例示的なCU分解を示す図。 [0022]CU中で区分化された任意のPUに対応する各MV候補を示す32×32CUの一例を示す図。 [0023]動き推定領域(MER)中で区分化された任意のPUに対応する各時間又は外部空間MV候補を示す32×32MERの一例を示す図。 [0024]MER中で区分化された任意のPUに対応する各時間又は外部空間MV候補の例示的な重み付き頻度を示す32×32MERの一例を示す図。 [0025]MER中で区分化された任意のPUに対応する各時間又は外部空間MV候補の例示的な優先度レベルを示す32×32MERの一例を示す図。 [0026]非冗長ステータスに基づいて、マージ候補リスト中に含めるためのMV候補を選択する例示的なプロセスを示すフローチャート。 [0027]優先度レベルに基づいて、マージ候補リスト中に含めるためのMV候補を選択する例示的なプロセスを示すフローチャート。
[0028]現在のHEVCマージモード設計は、極めて連続的であり、異なるコード化単位(CU)中の隣接予測単位(PU)の間の依存性をもたらす。HEVCマージモード設計の連続的な性質は、動きベクトルが複数のPUについて並列に推定され得る、パイプラインアーキテクチャ(pipelined architecture)のためのエンコーダ側での動き推定(ME)に困難をもたらすことがある。スループット又は実装コストの考慮事項により、並列動き推定が必要とされ得る。しかしながら、並列動き推定は著しいコード化効率損失をもたらすこともある。並列MER内の所与のPU、例えば32×32並列MER内の8×8PUの場合、それの隣接動きデータの全てが、並列処理の結果としてマージ候補リスト中に含めるために利用可能であるとは限らないので、損失が引き起こされ得る。
[0029]異なるPUのための動き推定が並列に行われるエリアは動き推定領域(MER)とも呼ばれる。HEVCは、高レベルシンタックス要素が並列マージモードを信号伝達する(signal)ことを可能にする。並列マージモードでは、LCUが幾つかのMERに分割され得る。この場合、異なるMERに属する外部隣接動きベクトル(MV)のみがMER中のPUためのマージ候補リスト中に含められることを可能にされる。本明細書で説明する、マージ候補リスト中に含めるためのMV候補の改善された選択は、コード化効率を改善し、計算複雑さを低減することができる。
[0030]ビデオコード化規格は、ITU−T H.261と、ISO/IEC MPEG−1 Visualと、ITU−T H.262又はISO/IEC MPEG−2 Visualと、ITU−T H.263と、ISO/IEC MPEG−4 Visualと、それのスケーラブルビデオコード化(SVC)及びマルチビュービデオコード化(MVC)拡張を含む(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264とを含む。更に、新しいビデオコード化規格、即ち、高効率ビデオコード化(HEVC)が、ITU−Tビデオコード化エキスパートグループ(VCEG:Video Coding Experts Group)とISO/IECモーションピクチャエキスパートグループ(MPEG:Motion Picture Experts Group)とのジョイントコラボレーションチームオンビデオコード化(JCT−VC:Joint Collaboration Team on Video Coding)によって開発されている。「HEVCワーキングドラフト6」と呼ばれるHEVC規格のドラフトは、http://phenix.int−evry.fr/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC−H1003−v6.zipからダウンロード可能である。HEVCワーキングドラフト6についての完全引用は、文書JCTVC−H1003、Brossら、「High Efficiency Video Coding (HEVC) Text Specification Draft 6」、ITU−T SG16 WP3及びISO/IEC JTC1/SC29/WG11のジョイントコラボレーティブチームオンビデオコード化(JCT−VC:Joint Collaborative Team on Video Coding)、第7回会合:ジュネーブ、スイス、2011年11月21日〜2011年11月30日である。HEVC規格の別の後のドラフトは、2012年6月7日現在、http://wg11.sc29.org/jct/doc_end_user/current_document.php?id=5885/JCTVC−I1003−v2から入手可能である。「HEVCワーキングドラフト7」と呼ばれるHEVC規格の別の後のドラフトは、2012年6月7日現在、http://phenix.it−sudparis.eu/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC−I1003−v3.zipからダウンロード可能である。HEVCワーキングドラフト7についての完全引用は、文書HCTVC−I1003、Brossら、「High Efficiency Video Coding (HEVC) Text Specification Draft 7」、ITU−T SG16 WP3及びISO/IEC JTC1/SC29/WG11のジョイントコラボレーティブチームオンビデオコード化(JCT−VC)、第9回会合:ジュネーブ、スイス、2012年4月27日〜2012年5月7日である。HEVC WD8(ワーキングドラフト8)と呼ばれるHEVC規格の別の後のドラフトは、http://phenix.int−evry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC−J1003−v8.zipから入手可能である。これらの参考文献の各々は、その全体が参照により組み込まれる。
[0031]添付の図面を参照しながら新規のシステム、装置、及び方法の様々な態様について以下でより十分に説明する。但し、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示する任意の特定の構造又は機能に限定されるものと解釈されるべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるために与えるものである。本明細書の教示に基づいて、本開示の範囲は、本発明の他の態様とは無関係に実装されるにせよ、本発明の他の態様と組み合わされるにせよ、本明細書で開示する新規のシステム、装置、及び方法のいかなる態様をもカバーするものであることを、当業者なら諒解されたい。例えば、本明細書に記載の態様をいくつ使用しても、装置は実装され得、又は方法は実施され得る。更に、本発明の範囲は、本明細書に記載の本発明の様々な態様に加えて又はそれらの態様以外に、他の構造、機能、又は構造及び機能を使用して実施されるそのような装置又は方法をカバーするものとする。本明細書で開示する任意の態様が請求項の1つ又は複数の要素によって実施され得ることを理解されたい。
[0032]本明細書では特定の態様について説明するが、これらの態様の多くの変形及び置換は本開示の範囲内に入る。好適な態様の幾つかの利益及び利点について説明するが、本開示の範囲は特定の利益、使用、又は目的に限定されるものではない。むしろ、本開示の態様は、例えば、異なるワイヤレス技術、システム構成、ネットワーク、及び伝送プロトコルを用いて使用され得る、異なるビデオフィルタ及びビデオコーダに広く適用可能であるものとし、それらのうちの幾つかを例として、図において、及び特定の態様についての以下の説明において示す。発明を実施するための形態及び図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲及びそれの均等物によって定義される。
ビデオコード化システム
[0033]図1は、本開示で説明する技法を利用し得る例示的なビデオコード化システム10を示すブロック図である。本開示では、「ビデオコード化」という用語は、ビデオ符号化とビデオ復号とを指すことがある。図1に示されているように、ビデオコード化システム10は発信源機器12と宛先機器14とを含む。発信源機器12は符号化ビデオデータを宛先機器14に与える。宛先機器14は符号化ビデオデータを後で復号し得る。発信源機器12及び宛先機器14は、デスクトップコンピュータ、ノートブック(即ち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、携帯電話、電話ハンドセット、「スマート」パッド、テレビジョン、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミング機器、又はビデオデータを符号化及び復号することが可能なコンピュータ機器のタイプを含む、広範囲にわたる機器のいずれかを備え得る。
[0034]宛先機器14は、通信チャネル16を介して符号化ビデオデータを受信し得る。通信チャネル16は、発信源機器12から宛先機器14に符号化ビデオデータを移動することが可能な媒体又は機器を備え得る。一例では、通信チャネル16は、発信源機器12が符号化ビデオデータを宛先機器14にリアルタイムで直接送信することを可能にする通信媒体を備え得る。発信源機器12又は別の機器は、ワイヤレス通信プロトコルなどの通信規格に従って符号化ビデオデータを変調し得る。通信媒体は、無線周波数(RF)スペクトルあるいは1つ又は複数の物理伝送線路など、任意のワイヤレス又はワイヤード通信媒体を備え得る。通信チャネル16は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル16は、発信源機器12から宛先機器14への符号化ビデオデータの通信を可能にするのに有用であり得るルータ、スイッチ、基地局、又は任意の他の機器を含み得る。
[0035]幾つかの例では、発信源機器12及び宛先機器14は、ワイヤレス通信のために装備され得る。但し、本開示の技法は、必ずしもワイヤレス適用例又は設定に限定されるとは限らない。むしろ、本技法は、無線テレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、例えばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、又は他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコード化に適用され得る。幾つかの例では、発信源機器12及び宛先機器14は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、及び/又はビデオテレフォニーなどの適用例をサポートするために、一方向又は双方向のビデオ送信をサポートするように構成され得る。
[0036]更に、幾つかの例では、発信源機器12は符号化ビデオデータを記憶システム34に出力し得る。同様に、宛先機器14は、記憶システム34に記憶された符号化ビデオデータにアクセスし得る。様々な例では、記憶システム34は、様々な分散した又はローカルでアクセスされるデータ記憶媒体を含み得る。例示的なタイプのデータ記憶媒体は、限定はしないが、ハードドライブ、Blu−ray(登録商標)ディスク、DVD、CD−ROM、ソリッドステートメモリユニット、揮発性又は不揮発性メモリ、又は符号化ビデオデータを記憶するのに好適な他のデジタル記憶媒体を含む。
[0037]幾つかの例では、記憶システム34は、発信源機器12によって生成された符号化ビデオを保持し得るファイルサーバ又は別の中間記憶装置を備え得る。宛先機器14は、ストリーミング又はダウンロードを介して、記憶システム34から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先機器14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバとしては、(例えば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続記憶(NAS)装置、又はローカルディスクドライブがある。宛先機器14は、インターネット接続を含む、任意の標準のデータ接続を通して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(例えば、Wi−Fi(登録商標)接続)、ワイヤード接続(例えば、デジタル加入者線(DSL)、ケーブルモデムなど)、又はその両方の組合せを含み得る。記憶システム34からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、又はその両方の組合せであり得る。
[0038]図1の例では、発信源機器12は、ビデオ発信源18と、ビデオエンコーダ20と、出力インターフェース22とを含む。幾つかの例では、出力インターフェース22は変調器及び/又は送信機をも含み得る。ビデオ発信源18はビデオエンコーダ20にビデオデータを与える。様々な例では、ビデオ発信源18は、ビデオデータを与えるための様々なタイプの機器及び/又はシステムを備え得る。例えば、ビデオ発信源18は、ビデオカメラなどの撮像装置を備え得る。別の例では、ビデオ発信源18は、以前に撮影されたビデオを含んでいるビデオアーカイブを備え得る。また別の例では、ビデオ発信源18は、ビデオコンテンツプロバイダからビデオを受信するビデオフィードインターフェースを備え得る。また別の例では、ビデオ発信源18は、コンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムを備え得る。
[0039]以下で詳細に説明するように、ビデオエンコーダ20は、ビデオ発信源18によって与えられたビデオデータを符号化し得る。幾つかの例では、発信源機器12は、出力インターフェース22を介して宛先機器14に符号化ビデオデータを直接送信し得る。更に、幾つかの例では、記憶システム34は、宛先機器14又は他の機器による後のアクセスために符号化ビデオデータを記憶し得る。
[0040]本開示では、概して、ビデオエンコーダ20が、ある情報をビデオデコーダ30などの別の機器に「信号伝達」することに言及することがある。但し、ビデオエンコーダ20は、幾つかのシンタックス要素をビデオデータの様々な符号化部分に関連付けることによって情報を信号伝達し得ることを理解されたい。即ち、ビデオエンコーダ20は、幾つかのシンタックス要素をビデオデータの様々な符号化部分のヘッダに記憶することによってデータを「信号伝達」し得る。場合によっては、そのようなシンタックス要素は、ビデオデコーダ30によって受信され、復号されるより前に、符号化され、記憶され(例えば、記憶システム34に記憶され)得る。従って、「信号伝達(signaling)」という用語は、概して、圧縮されたビデオデータを復号するために使用されるシンタックス又は他のデータの通信を指すことがある。そのような通信は、リアルタイム又はほぼリアルタイムに行われ得る。代替として、そのような通信は、符号化時にシンタックス要素を媒体に記憶するときに行われることがあるなど、ある時間期間にわたって行われ得、次いで、これらの要素は、この媒体に記憶された後の任意の時間に、復号機器によって取り出され得る。
[0041]図1の例では、宛先機器14は、入力インターフェース28と、ビデオデコーダ30と、表示装置32とを含む。幾つかの例では、入力インターフェース28は受信機及び/又はモデムを含み得る。宛先機器14の入力インターフェース28は、通信チャネル16及び/又は記憶システム34から符号化ビデオデータを受信する。ビデオデコーダ30は、入力インターフェース28によって受信された符号化ビデオデータを復号する。宛先機器14は、復号ビデオデータを、表示装置32上での表示のためにレンダリングし得る。
[0042]表示装置32は、宛先機器14と一体化され得るか又はその外部にあり得る。幾つかの例では、宛先機器14は、一体型表示装置を含み、また、外部表示装置とインターフェースするように構成され得る。様々な例では、表示装置32は様々なタイプの表示装置を備え得る。例えば、表示装置32は、液晶表示器(LCD)、プラズマ表示器、有機発光ダイオード(OLED)表示器、又は別のタイプの表示装置を備え得る。
[0043]図1には示されていないが、幾つかの態様では、ビデオエンコーダ20及びビデオデコーダ30は、それぞれオーディオエンコーダ及びデコーダと統合され得、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、又は他のハードウェア及びソフトウェアを含み得る。適用可能な場合、幾つかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、又はユーザデータプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0044]ビデオエンコーダ20及びビデオデコーダ30はそれぞれ、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適な回路のいずれか、又はそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、機器は、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、本開示の技法を実行するために1つ又は複数のプロセッサを使用してその命令をハードウェアで実行し得る。ビデオエンコーダ20及びビデオデコーダ30の各々は1つ又は複数のエンコーダ又はデコーダ中に含まれ得、そのいずれも、それぞれの機器において複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
[0045]ビデオエンコーダ20及びビデオデコーダ30は、現在開発中の高効率ビデオコード化(HEVC)規格などのビデオ圧縮規格に従って動作し得、HEVCテストモデル(HM)に準拠し得る。代替的に、ビデオエンコーダ20及びビデオデコーダ30は、代替的にMPEG−4,Part10,先進的ビデオコード化(AVC)と呼ばれるITU−T H.264規格など、他のプロプライエタリ規格又は業界規格、又はそのような規格の拡張に従って動作し得る。規格に対する例示的な拡張は、H.264/AVC規格に対するスケーラブルビデオコード化(SVC)拡張とマルチビュービデオコード化(MVC)拡張とを含む。ビデオ圧縮規格の他の例としては、MPEG−2及びITU−T H.263がある。本開示の技法は、いかなる特定のコード化規格にも限定されない。
[0046]上記で手短に述べたように、ビデオエンコーダ20はビデオデータを符号化する。ビデオデータは1つ又は複数のピクチャのシーケンスを備え得る。ピクチャの各々は静止画像である。幾つかの事例では、ピクチャは「フレーム」と呼ばれることがある。ビデオエンコーダ20がビデオデータを符号化するとき、ビデオエンコーダ20はビットストリームを生成し得る。ビットストリームは、コード化ピクチャと関連データとの表現を形成するビットシーケンスを含む。コード化ピクチャはピクチャのコード化表現である。
[0047]ビットストリームを生成するために、ビデオエンコーダ20は、ビデオデータ中のピクチャのシーケンスに対して符号化演算を実行し得る。ビデオエンコーダ20がピクチャのシーケンスに対して符号化演算を実行するとき、ビデオエンコーダ20は、一連のコード化ピクチャと関連データとを生成し得る。更に、ビデオエンコーダ20は、ピクチャのシーケンスに適用可能なパラメータを含んでいるシーケンスパラメータセットを生成し得る。更に、ビデオエンコーダ20は、全体としてピクチャに適用可能なパラメータを含んでいるピクチャパラメータセット(PPS:picture parameter set)を生成し得る。幾つかの例では、ビデオエンコーダ20は適応パラメータセット(APS:adaptation parameter set)を生成し得る。APSは、全体としてピクチャに適用可能なパラメータを含んでいることがある。
[0048]コード化ピクチャを生成するために、ビデオエンコーダ20は、ピクチャを(「ブロック」と呼ばれることがある)1つ又は複数のツリーブロックに区分し得る。ツリーブロックはビデオデータの2次元(2D)ブロックである。幾つかの事例では、ツリーブロックは最大コード化単位(LCU)と呼ばれることもある。HEVCのツリーブロックは、H.264/AVCなど、以前の規格のマクロブロックに広い意味で類似し得る。しかしながら、ツリーブロックは、必ずしも特定のサイズに限定されるとは限らず、1つ又は複数のコード化単位(CU)を含み得る。
[0049]幾つかの例では、ビデオエンコーダ20はピクチャを複数のスライスに区分し得る。スライスの各々は整数個のCUを含み得る。幾つかの事例では、スライスは整数個のツリーブロックを備える。他の事例では、スライスの境界はツリーブロック内にあり得る。幾つかの例では、ビデオエンコーダ20は、スライスのバイト単位でのサイズに従って、又はスライス中のツリーブロックの数に従ってスライスを符号化し得る。
[0050]ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、ピクチャの各スライスに対して符号化演算を実行し得る。スライスに対する符号化演算は、スライスに関連付けられた符号化データを生成し得る。スライスに関連付けられた符号化データは「コード化スライス」と呼ばれることがある。コード化スライスはスライスヘッダとスライスデータとを含み得る。スライスデータは、コード化順序で、一連の連続するコード化単位を含み得る。スライスヘッダは、スライスの最初の又は全てのツリーブロックに関するデータ要素を含んでいることがある。
[0051]スライスに対するコード化スライスデータを生成するために、ビデオエンコーダ20は、スライス中の各ツリーブロックに対して符号化演算を実行し得る。ビデオエンコーダ20がツリーブロックに対して符号化演算を実行するとき、ビデオエンコーダ20はコード化ツリーブロックを生成し得る。コード化ツリーブロックは、ツリーブロックの符号化バージョンを表すデータを備え得る。
[0052]コード化ツリーブロックを生成するために、ビデオエンコーダ20は、ツリーブロックを徐々により小さいCUに分割するために、ツリーブロックに対して4分木区分を再帰的に実行し得る。例えば、ビデオエンコーダ20は、ツリーブロックを4つの等しいサイズのサブCUに区分し、サブCUのうちの1つ又は複数を、4つの等しいサイズのサブサブCUに区分し得、以下同様である。ビットストリーム中の1つ又は複数のシンタックス要素は、ビデオエンコーダ20がツリーブロックを区分し得る最大の回数を示し得る。CUは形状が正方形であり得る。
[0053]ビデオエンコーダ20は、ツリーブロック中の区分化されていない各CUに対して符号化演算を実行し得る。区分化されていないCUに対して符号化演算を実行することの一部として、ビデオエンコーダ20はCUのための予測データを生成し得る。ビデオエンコーダ20は、CUのための予測データを生成するためにイントラ予測又はインター予測を使用し得る。ビデオエンコーダ20が、CUのための予測データを生成するためにイントラ予測を使用する場合、ビデオエンコーダ20は、CUを含んでいるピクチャの復号サンプルからCUのための予測データを導出する。ビデオエンコーダ20が、CUのための予測データを生成するためにインター予測を使用する場合、ビデオエンコーダ20は、CUを含んでいるピクチャ以外の参照ピクチャの復号値からCUのための予測データを導出する。
[0054]ビデオエンコーダ20がCUのための予測データを生成した後、ビデオエンコーダ20はCUための残差データを計算し得る。CUのための残差データは、CUのための予測データ中の画素値とCUの元の画素値との間の差分を示し得る。
[0055]ツリーブロックの区分化されていない各CUは1つ又は複数の変換単位(TU:transform unit)を有し得る。CUの各TUは、CUの残差データの異なる部分に関連付けられ得る。ビデオエンコーダ20は、CUの各TUに対して変換演算を実行し得る。ビデオエンコーダ20がTUに対して変換演算を実行するとき、ビデオエンコーダ20は、少なくとも部分的に、TUに関連付けられた残差データに変換を適用することによって係数ブロックを生成し得る。
[0056]ビデオエンコーダ20は、係数ブロック中の係数を量子化し、係数ブロックに対してエントロピー符号化演算を実行し得る。ビデオエンコーダ20が係数ブロックに対してエントロピー符号化を実行した後、ビデオエンコーダ20は、ビデオデータのためのビットストリーム中に、エントロピー符号化された係数ブロックを表すデータを含め得る。ビットストリームは、コード化ピクチャと関連データとの表現を形成するビットのシーケンスであり得る。
[0057]ビデオデコーダ30が符号化ビットストリームを受信したとき、ビデオデコーダ30は、ビデオエンコーダ20によって実行される符号化演算とは概して逆である復号演算を実行する。例えば、ビデオデコーダ30は、ピクチャの各スライスに対して復号演算を実行し得る。ビデオデコーダ30がピクチャのスライスに対して復号演算を実行したとき、ビデオデコーダ30は、スライス中のツリーブロックに対して復号演算を実行し得る。ビデオデコーダ30がツリーブロックに対して復号演算を完了したとき、ビデオデコーダ30はツリーブロックための画素値を復号している。ビデオデコーダ30がスライスの各ツリーブロックのための画素値を復号したとき、ビデオデコーダ30はスライスのための画素値を再構成している。
[0058]マージモードは、隣接ビデオブロックの動き情報(動きベクトル、参照フレームインデックス、予測方向、又は他の情報など)が、コード化されている現在ビデオブロックについて継承される1つ又は複数のビデオコード化モードを指す。現在ビデオブロックがそれの動き情報をそこから継承する候補隣接体のリスト(例えば、現在ブロックに対する、上、右上、左、左下ブロック、又は時間的に隣接するフレームからのコロケート(同一位置配置)ブロック(以下でより詳細に説明する、時間動きベクトル予測子、又はTMVPなど)を識別するために、インデックス値が使用され得る。これらの候補は、マージ候補リストと呼ばれることがある、リストに記憶され得る。マージ候補リストは、最初に、所定のサイズを有することができる。しかしながら、リストサイズは、(例えば、ビデオが、特定のマージ候補リストサイズを使用するようにコード化される場合)プルーニング(例えば、冗長又は反復リストエントリを除去すること)の結果として、又はトランケーションによって、低減され得る。リストサイズが低減され、候補が削除されるとき(又はより多くの候補がTMVPの前に挿入される状況では)、TMVPは、リストから除去されるか、又は場合によってはリストに追加されないことがある。しかしながら、マージモードが並列動き推定領域にわたって行われるとき、マージ候補リストを生成するために、以下でより詳細に説明する技法などの様々な技法が利用され得る。例えば、これらの技法は、図2に示されているマージ/MVPリスト生成モジュール121によって実行され得る。そのような技法の実施形態について、図4〜図17に関して以下でより詳細に説明する。
[0059]スキップモードはあるタイプのマージモード(又はマージモードと同様のモード)を備え得る。スキップモードでは、動き情報は継承されるが、残差情報はコード化されない。残差情報は、概して、コード化されるべきブロックと、動き情報がそこから継承されるブロックとの間の画素差分を示す画素差分情報を指すことがある。直接モードは別のタイプのマージモード(又はマージモードと同様のモード)であり得る。直接モードは、動き情報が継承されるという点でスキップモードと同様であり得るが、直接モードでは、ビデオブロックは、残差情報を含むようにコード化される。「マージモード」という句は、本明細書では、スキップモード、直接モード、又はマージモードと呼ばれることがある、これらのモードのうちのいずれか1つを指すために使用される。
[0060]隣接ビデオブロックの動きベクトルが現在ビデオブロックのコード化において使用される別の場合は、所謂動きベクトル予測又は高度動きベクトル予測(AMVP:advanced motion vector prediction)である。これらの場合、動きベクトルの予測コード化は、動きベクトルを通信するために必要とされるデータの量を低減するために適用される。例えば、動きベクトル自体を符号化し、通信するのではなく、ビデオエンコーダ20は、知られている(又は知り得る)動きベクトルに対する動きベクトル差分(MVD:motion vector difference)を符号化し、通信する。H.264/AVCでは、現在動きベクトルを定義するためにMVDとともに使用され得る、知られている動きベクトルは、隣接ブロックに関連付けられた動きベクトルの中央値として導出される、所謂動きベクトル予測子(MVP:motion vector predictor)によって定義され得る。しかしながら、適応動きベクトル予測(AMVP:adaptive motion vector prediction)などのより高度なMVP技法は、ビデオエンコーダ20が、MVPをそこから定義すべき隣接体を選択することを可能にし得る。従って、マージモードの使用は、コード化されるべきブロックと他のブロックとの間の画素差分を示す残差情報を用いる又は用いない、現在ブロックをコード化するための別のブロックからの動き情報の使用を指すことがある。AMVPの使用は、MVPとコード化されるべきブロックの実際のMVとの間の差分を示すためのMVD値を使用した、別のブロックからの動きベクトル情報の使用を指すことがある。動きベクトル情報を取得するための候補ブロックの選択のための技法は、マージモードとAMVPとについて同じ又は同様であり得る。一般的なバックグラウンドとして、たいていのビデオコード化システムでは、データ圧縮を達成するために、ビデオシーケンス中の時間冗長性を低減するために動き推定及び動き補償が使用される。この場合、動きベクトルは、コード化されている現在ビデオブロックの値を予測するために使用され得る、例えば、別のビデオフレーム又はスライスからのビデオデータの予測ブロックを識別するように生成され得る。残差データのブロックを生成するために、予測ビデオブロックの値が現在ビデオブロックの値から減算される。動きベクトルは、残差データとともにビデオエンコーダ20からビデオデコーダ30に通信される。ビデオデコーダ30は、(動きベクトルに基づいて)同じ予測ブロックを配置し、残差データを予測ブロックのデータと組み合わせることによって符号化ビデオブロックを再構成することができる。ビデオ圧縮を更に改善するために、変換及びエントロピーコード化などの多くの他の圧縮技法も使用され得る。
[0061]ビデオエンコーダ20は、通常、動き推定プロセスを実行する。ビデオエンコーダ20は、ビデオデコーダ30が、所与のビデオブロックを符号化するために使用される予測ブロックを識別することが可能であるように、動き情報(動きベクトル、動きベクトルインデックス、予測方向、又は他の情報など)をビデオデコーダ30に送信し得る。
[0062]MVPのための候補として空間的及び時間的方向における幾つかの隣接ブロックを含むことによって動きベクトル候補セットを構築するために、AMVPが提案されている。この場合、ビデオエンコーダ20は、符号化レートと歪みとの分析に基づいて(例えば、所謂レート歪みコスト分析(rate-distortion cost analysis)を使用して)候補セットから最も正確な予測子を選択する。ビデオエンコーダ20はまた、MVPをどこに配置すべきかをビデオデコーダ30に通知するために、動きベクトル予測子インデックス(mvp_idx)をビデオデコーダ30に信号伝達し得る。ビデオエンコーダ20はMVDをも信号伝達し得る。ビデオデコーダ30は、動きベクトルを再構成するように、MVDを(動きベクトル予測子インデックスによって定義された)MVPと組み合わせ得る。ビデオデコーダ30は(ビデオエンコーダ20のように)インデックスが様々な基準に基づいて適用される候補MVPのセットを定義し得る。
ビデオエンコーダ
[0063]図2は、ビデオエンコーダ20の例示的な構成を示すブロック図である。図2は、説明の目的で与えられており、本開示おいて広く例示され、説明される技法を限定するものではない。説明の目的で、本開示では、HEVCコード化のコンテキストにおいてビデオエンコーダ20について説明する。但し、本開示の技法は他のコード化規格又は方法に適用可能であり得る。
[0064]図2の例では、ビデオエンコーダ20は複数の機能構成要素を含む。ビデオエンコーダ20の機能構成要素は、予測モジュール100と、残差生成モジュール102と、変換モジュール104と、量子化モジュール106と、逆量子化モジュール108と、逆変換モジュール110と、再構成モジュール112と、復号ピクチャバッファ114と、エントロピー符号化モジュール116と、区分化モジュール118とを含む。予測モジュール100は、マージ/MVPリスト生成モジュール121と、動き推定モジュール122と、動き補償モジュール124と、イントラ予測モジュール126とを含む。マージ/MVPリスト生成モジュール121はMV候補リストを生成し得る。例えば、MER中で区分化された複数のPUのうちの少なくともに対応する複数のMV候補の場合、マージ/MVPリスト生成モジュール121は、図4〜図17に関して以下でより詳細に説明するように、マージ候補リスト中に含めるべき複数のMV候補のサブセットを選択し、複数の動きベクトル候補の選択されたサブセットを含むようにマージ候補リストを生成し得る。
[0065]他の例では、ビデオエンコーダ20は、より多数の、より少数の、又は異なる機能構成要素を含み得る。例えば、ビデオエンコーダ20は、再構成されたビデオからブロック歪み(blockiness artifacts)を除去するために再構成モジュール112の出力をフィルタ処理するために、デブロッキングフィルタを含み得る。更に、マージ/MVPリスト生成モジュール121と動き推定モジュール122と動き補償モジュール124とは、高度に統合され得るが、図2の例では、説明の目的で別々に表されている。
[0066]ビデオエンコーダ20はビデオデータを受信し得る。様々な例では、ビデオエンコーダ20は様々な発信源からビデオデータを受信し得る。例えば、ビデオエンコーダ20は、ビデオ発信源18(図3)又は別の発信源からビデオデータを受信し得る。ビデオデータはピクチャのシーケンスを表し得る。ピクチャはテクスチャビューと深度ビューとを含み得る。ビデオデータを符号化するために、ビデオエンコーダ20は、ピクチャの各シーケンスに対して符号化演算を実行し得る。ピクチャのシーケンスに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、ピクチャのシーケンス内の各ピクチャに対して符号化演算を実行し得る。ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、ピクチャ中の各スライスに対して符号化演算を実行し得る。ビデオエンコーダ20がスライスに対して符号化演算を実行するとき、ビデオエンコーダ20はコード化スライスを生成する。コード化スライスはそれの符号化された形式のスライスである。コード化スライスはスライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関連付けられたシンタックス要素を含んでいることがある。
[0067]スライスに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、スライス中のツリーブロックに対して符号化演算を実行し得る。ビデオエンコーダ20がツリーブロックに対して符号化演算を実行するとき、ビデオエンコーダ20はコード化ツリーブロックを生成し得る。コード化ツリーブロックは、ツリーブロックの符号化バージョンを表すデータを備え得る。言い換えると、コード化ツリーブロックはそれの符号化された形式のツリーブロックであり得る。
[0068]ツリーブロックに対して符号化演算を実行することの一部として、区分化モジュール118は、ツリーブロックを徐々に小さいCUに分割するために、ツリーブロックに対して4分木区分を実行し得る。例えば、区分化モジュール118は、ツリーブロックを4つの等しいサイズのサブCUに区分し、サブCUのうちの1つ又は複数を、4つの等しいサイズのサブサブCUに区分し得、以下同様である。
[0069]CUのサイズは、8×8画素から最大64×64画素以上をもつツリーブロックのサイズまでに及び得る。本開示では、「N×N(NxN)」及び「N×N(N by N)」は、垂直寸法及び水平寸法に関するビデオブロックの画素寸法、例えば、16×16(16x16)画素又は16×16(16 by 16)画素を指すために互換的に使用され得る。概して、16×16ブロックは、垂直方向に16画素(y=16)、及び水平方向に16画素(x=16)を有する。同様に、N×Nブロックは、概して、垂直方向にN画素を有し、水平方向にN画素を有し、ここで、Nは非負整数値を表す。
[0070]ツリーブロックに対して符号化演算を実行することの一部として、区分化モジュール118は、ツリーブロック用の階層的な4分木データ構造を生成し得る。例えば、ツリーブロックは、4分木データ構造のルートノードに対応し得る。区分化モジュール118が、ツリーブロックを4つのサブCUに区分する場合、ルートノードは、4分木データ構造中に4つの子ノードを有する。子ノードの各々は、サブCUのうちの1つに対応する。区分化モジュール118が、サブCUのうちの1つを4つのサブサブCUに区分する場合、サブCUに対応するノードは、サブサブCUのうちの1つにその各々が対応する、4つの子ノードを有し得る。
[0071]4分木データ構造の各ノードは、対応するCUのためのシンタックスデータを与え得る。例えば、4分木中のノードは、そのノードに対応するCUが4つのサブCUに区分(例えば、分割)されるかどうかを示すスプリットフラグを含み得る。CUのためのシンタックス要素は、再帰的に定義され得、CUがサブCUに分割されるかどうかに依存し得る。区分化されていないCUは、4分木データ構造におけるリーフノードに対応し得る。4分木データ構造におけるリーフノードは「コード化ノード」と呼ばれることがある。コード化ツリーブロックは、対応するツリーブロック用の4分木データ構造に基づくデータを含み得る。コード化ツリーブロックはそれの符号化された形式のツリーブロックである。コード化ツリーブロックがそれの符号化された形式のツリーブロックであるとき、コード化ツリーブロックはツリーブロックに対応する。
[0072]ビデオエンコーダ20は、ツリーブロックの区分化されていない各CUに対して符号化演算を実行し得る。ビデオエンコーダ20が、区分化されていないCUに対して符号化演算を実行するとき、ビデオエンコーダ20は、区分化されていないCUの符号化バージョンを表すデータを生成する。
[0073]CUに対して符号化演算を実行することの一部として、動き推定モジュール122及び動き補償モジュール124は、CUに対してインター予測を実行し得る。言い換えれば、動き推定モジュール122及び動き補償モジュール124は、CUを含んでいるピクチャ以外の参照ピクチャの復号サンプルに基づいて、CUのための予測データを生成し得る。インター予測は時間圧縮を実現し得る。
[0074]CUに対してインター予測を実行するために、動き推定モジュール122は、CUを1つ又は複数の予測単位(PU)に区分し得る。ビデオエンコーダ20及びビデオデコーダ30は様々なPUサイズをサポートし得る。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ20及びビデオデコーダ30は、2N×2N又はN×NのPUサイズと、2N×2N、2N×N、N×2N、N×N、2N×nU、nL×2N、nR×2N、又は同様の対称PUサイズでのインター予測とをサポートし得る。ビデオエンコーダ20及びビデオデコーダ30は、2N×nU、2N×nD、nL×2N、及びnR×2NのPUサイズに対する非対称区分をもサポートし得る。幾つかの例では、動き推定モジュール122は、CUの辺に直角に接しない境界に沿って、CUをPUに区分化し得る。
[0075]動き推定モジュール122は、CUの各PUに関して動き推定演算を実行し得る。動き推定モジュール122がPUに関して動き推定演算を実行するとき、動き推定モジュール122は、PUのための1つ又は複数の動きベクトルを生成し得る。例えば、スライスは、Iスライス、Pスライス、又はBスライスであり得る。動き推定モジュール122及び動き補償モジュール124は、CUがIスライス中にあるか、Pスライス中にあるか、Bスライス中にあるかに応じて、CUのPUに対して異なる演算を実行し得る。Iスライス中では、全てのCUがイントラ予測される。従って、CUがIスライス中にある場合、動き推定モジュール122及び動き推定モジュール124は、CUに対してインター予測を実行しない。
[0076]CUがPスライス中にある場合、CUを含んでいるピクチャは、「リスト0」と呼ばれる参照ピクチャのリストに関連付けられる。リスト0中の参照ピクチャの各々は、復号順序で後続のピクチャのインター予測のために使用され得るサンプルを含んでいる。動き推定モジュール122が、Pスライス中のPUに関して動き推定演算を実行するとき、動き推定モジュール122は、PUのための参照サンプルについて、リスト0中の参照ピクチャを探索する。PUの参照サンプルは、PUの画素値に最も密接に対応する画素値のセットであり得る。動き推定モジュール122は、参照ピクチャ中の画素値のセットがどの程度密接にPUの画素値に対応するかを決定するために、様々なメトリックを使用し得る。例えば、動き推定モジュール122は、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、又は他の差分メトリックによって、参照ピクチャ中の画素値のセットがどの程度密接にPUの画素値に対応するかを決定し得る。
[0077]Pスライス中のCUのPUの参照サンプルを識別した後、動き推定モジュール122は、参照サンプルを含んでいる、リスト0中の参照ピクチャを示す参照インデックスと、PUと参照サンプルとの間の空間変位を示す動きベクトルとを生成し得る。様々な例では、動き推定モジュール122は動きベクトルを異なる精度に生成し得る。例えば、動き推定モジュール122は、1/4画素精度、1/8画素精度、又は他の分数画素精度で動きベクトルを生成し得る。動き推定モジュール122は、PUのための動き情報をエントロピー符号化モジュール116と動き補償モジュール124とに出力し得る。PUのための動き情報は、参照インデックスとPUの動きベクトルとを含み得る。動き補償モジュール124は、PUの参照サンプルを識別し、取り出すために、CUのPUの動き情報を使用し得る。動き補償モジュール124は、次いで、CUのための予測データを生成するためにPUの参照サンプルの画素値を使用し得る。
[0078]CUがBスライス中にある場合、CUを含んでいるピクチャは、「リスト0」及び「リスト1」と呼ばれる参照ピクチャの2つのリストに関連付けられ得る。リスト0中の参照ピクチャの各々は、復号順序で後続のピクチャのインター予測のために使用され得るサンプルを含んでいる。リスト1中の参照ピクチャは、復号順序でピクチャの前に生じるが、プレゼンテーション順序でピクチャの後に生じる。幾つかの例では、Bスライスを含んでいるピクチャは、リスト0とリスト1との組合せである、リストの組合せに関連付けられ得る。
[0079]更に、CUがBスライス中にある場合、動き推定モジュール122は、CUのPUについての単方向予測又は双方向予測を実行し得る。動き推定モジュール122が、PUについての単方向予測を実行するとき、動き推定モジュール122は、PUのための参照サンプルについて、リスト1の参照ピクチャを探索し得る。動き推定モジュール122は、次いで、参照サンプルを含んでいる、リスト1中の参照ピクチャを示す参照インデックスと、PUと参照サンプルとの間の空間変位を示す動きベクトルとを生成し得る。動き推定モジュール122は、CUのPUのための動き情報をエントロピー符号化モジュール116と動き補償モジュール124とに出力し得る。PUのための動き情報は、参照インデックスと、予測方向インジケータと、PUの動きベクトルとを含み得る。予測方向インジケータは、参照インデックスが、リスト0中の参照ピクチャを示すか、リスト1中の参照ピクチャを示すかを示し得る。動き補償モジュール124は、PUの参照サンプルを識別し、取り出すために、CUのPUの動き情報を使用し得る。動き補償モジュール124は、次いで、CUのための予測データを生成するためにPUの参照サンプルの画素値を使用し得る。
[0080]動き推定モジュール122がPUについての双方向予測を実行するとき、動き推定モジュール122は、PUのための参照サンプルについて、リスト0中の参照ピクチャを探索し得、また、PUのための別の参照サンプルについて、リスト1中の参照ピクチャを探索し得る。動き推定モジュール122は、次いで、参照サンプルを示す参照インデックスと、参照サンプルとPUとの間の空間変位を示す動きベクトルとを生成し得る。動き推定モジュール122は、PUの動き情報をエントロピー符号化モジュール116と動き補償モジュール124とに出力し得る。PUのための動き情報は、参照インデックスとPUの動きベクトルとを含み得る。動き補償モジュール124は、PUの参照サンプルを識別し、取り出すために、動き情報を使用し得る。動き補償モジュール124は、次いで、CUのPUの参照サンプル中の画素値から、CUの予測データの画素値を補間し得る。
[0081]幾つかの事例では、動き推定モジュール122は、PUのための動き情報のフルセットをエントロピー符号化モジュール116に出力しない。そうではなく、動き推定モジュール122は、別のPUの動き情報を参照して、PUの動き情報を信号伝達し得る。例えば、動き推定モジュール122は、PUの動き情報が、隣接PUの動き情報と十分に類似していると決定し得る。この例では、動き推定モジュール122は、CUのための4分木ノードにおいて、PUが隣接PUと同じ動き情報を有することをビデオデコーダ30に示す値を示し得る。別の例では、動き推定モジュール122は、CUに関連付けられた4分木ノードにおいて、隣接PUと動きベクトル差分(MVD)とを識別し得る。動きベクトル差分は、PUの動きベクトルと、示される隣接PUの動きベクトルとの間の差分を示す。ビデオデコーダ30は、PUの動きベクトルを予測するために、示される隣接PUの動きベクトルと、動きベクトル差分とを使用し得る。
[0082]CUに対して符号化演算を実行することの一部として、イントラ予測モジュール126は、CUに対してイントラ予測を実行し得る。言い換えれば、イントラ予測モジュール126は、他のCUの復号画素値に基づいて、CUのための予測データを生成し得る。イントラ予測は空間圧縮を実現し得る。
[0083]CUに対してイントラ予測を実行するために、イントラ予測モジュール126は、CUのための予測データの複数のセットを生成するために複数のイントラ予測モードを使用し得る。イントラ予測モジュール126が、CUのための予測データのセットを生成するためにイントラ予測モードを使用するとき、イントラ予測モジュール126は、イントラ予測モードに関連付けられた方向及び/又は勾配で、隣接CUからCUにわたって、画素値を延ばし得る。隣接CUは、CU、及びツリーブロックについて左から右、上から下の符号化順序を仮定すると、CUの上、右上、左上、又は左にあり得る。イントラ予測モジュール126は、CUのサイズに応じて、様々な数のイントラ予測モード、例えば、33個の方向性イントラ予測モードを使用し得る。
[0084]イントラ予測モジュール126は、CUのための予測データのセットのうちの1つを選択し得る。様々な例では、イントラ予測モジュール126は、CUのための予測データのセットを様々な方法で選択し得る。例えば、イントラ予測モジュール126は、予測データのセットのための歪みレートを計算し、最も低い歪みレートを有する予測データのセットを選択することによって、CUのための予測データのセットを選択し得る。
[0085]予測モジュール100は、CUについての、動き補償モジュール124によって生成された予測データ、又はCUについての、イントラ予測モジュール126によって生成された予測データの中から、CUのための予測データを選択し得る。幾つかの例では、予測モジュール100は、予測データのセット中の誤差(例えば、歪み)に基づいて、CUのための予測データを選択する。
[0086]予測モジュール100がCUのための予測データを選択した後、残差生成モジュール102は、CUの画素値からCUの選択された予測データを差し引くことによって、CUのための残差データを生成し得る。CUの残差データは、CU中の画素の異なる画素成分に対応する、2D残差ブロックを含み得る。例えば、残差データは、CUの予測データ中の画素のルミナンス成分と、CUの元の画素中の画素のルミナンス成分との間の差分に対応する、残差ブロックを含み得る。更に、CUの残差データは、CUの予測データ中の画素のクロミナンス成分と、CUの元の画素のクロミナンス成分との間の差分に対応する、残差ブロックを含み得る。
[0087]CUは1つ又は複数の変換単位(TU)を有し得る。CUの各TUは、CUの残差データの異なる部分に対応し得る。CUのTUのサイズは、CUのPUのサイズに基づくことも基づかないこともある。幾つかの例では、CUは、「残差4分木」(RQT:residual quad tree)として知られる4分木構造を使用して、より小さい単位に再分割され得る。TUはRQTのノードに対応し得る。
[0088]変換モジュール104は、区分化されていないTUに対応する残差データに変換を適用することによって、CUの区分化されていない各TUのための1つ又は複数の係数ブロックを生成し得る。係数ブロックの各々は係数の2D行列であり得る。様々な例では、変換モジュール104は、TUに対応する残差データに様々な変換を適用し得る。例えば、変換モジュールは、離散コサイン変換(DCT)、方向性変換、又は概念的に同様の変換を適用し得る。
[0089]変換モジュール104がTUのための係数ブロックを生成した後、量子化モジュール106は、係数ブロック中の係数を量子化し得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために係数ブロック中の係数が量子化され、更なる圧縮を実現するプロセスを指す。量子化は、係数の一部又は全部に関連付けられたビット深度を低減し得る。例えば、量子化中にnビット値がmビット値に切り捨てられ得、ここで、nはmよりも大きい。
[0090]逆量子化モジュール108及び逆変換モジュール110は、係数ブロックから残差データを再構成するために、それぞれ、係数ブロックに逆量子化と逆変換とを適用し得る。再構成モジュール112は、復号ピクチャバッファ114に記憶するための再構成されたビデオブロックを生成するために、動き補償モジュール124又はイントラ予測モジュール126によって生成された予測データに再構成された残差データを加算し得る。動き推定モジュール122及び動き補償モジュール124は、後続のピクチャのCUに対してインター予測を実行するために、再構成されたビデオブロックを含んでいる参照ピクチャを使用し得る。更に、イントラ予測モジュール126は、イントラ予測を実行するために、現在ピクチャのCUの再構成された画素値を使用し得る。
[0091]エントロピー符号化モジュール116は、ビデオエンコーダ20の他の機能構成要素からデータを受信し得る。例えば、エントロピー符号化モジュール116は、量子化モジュール106から係数ブロック得、予測モジュール100からシンタックス要素を受信し得る。エントロピー符号化モジュール116がデータを受信するとき、エントロピー符号化モジュール116は、エントロピー符号化データを生成するために、1つ又は複数のエントロピー符号化演算を実行し得る。例えば、ビデオエンコーダ20は、コンテキスト適応型可変長コード化(CAVLC:context adaptive variable length coding)演算、コンテキスト適応型バイナリ算術コード化(CABAC:Context-Adaptive Binary Arithmetic Coding)演算、シンタックスベースコンテキスト適応型バイナリ算術コード化(SBAC:syntax-based context-adaptive binary arithmetic coding)演算、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コード化演算、又は別のタイプのエントロピー符号化演算をデータに対して実行し得る。
[0092]CABACを実行するために、エントロピー符号化モジュール116は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、例えば、シンボルの隣接値が非0であるか否かに関係し得る。CAVLCを実行するために、エントロピー符号化モジュール116は、送信されるべきシンボルのための可変長コードを選択し得る。VLCにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、比較的長いコードが劣勢シンボルに対応するように構成され得る。このようにして、VLCの使用は、送信されるべき各シンボルのための等長コードワードを使用することに勝るビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
[0093]エントロピー符号化モジュール116はビットストリームを出力し得る。ビットストリームは、コード化ピクチャと関連データとの表現を形成するビットのシーケンスであり得る。ビットストリームは、一連のネットワーク抽象化レイヤ(NAL:network abstraction layer)単位を備え得る。NAL単位の各々は、NAL単位中のデータのタイプの指示と、データを含んでいるバイトとを含んでいるシンタックス構造であり得る。例えば、NAL単位は、PPS、APS、コード化スライス、補足拡張情報、アクセス単位デリミタ、フィラーデータ、又は別のタイプのデータを表すデータを含んでいることがある。NAL単位のデータは、エミュレーション防止ビットが点在しているローバイトシーケンスペイロード(RBSP:raw byte sequence payload)の形式であり得る。RBSPは、NAL単位内にカプセル化された整数個のバイトを含んでいるシンタックス構造であり得る。
[0094]エントロピー符号化モジュール116は、一連のNAL単位を含むビットストリームを出力する。上記で説明したように、NAL単位の各々は、NAL単位中のデータのタイプの指示と、データを含んでいるバイトとを含んでいるシンタックス構造であり得る。ビットストリーム中の各コード化スライスNAL単位はコード化スライスを含んでいる。コード化スライスはコード化スライスヘッダとスライスデータとを含む。スライスデータはコード化ツリーブロックを含み得る。コード化ツリーブロックは1つ又は複数のコード化CUを含み得る。各コード化CUは、1つ又は複数のエントロピー符号化された係数ブロックを含み得る。
ビデオデコーダ
[0095]図3は、ビデオデコーダ30の例示的な構成を示すブロック図である。図3は、説明の目的で与えられており、本開示おいて広く例示され、説明される技法を限定するものではない。説明の目的で、本開示では、HEVCコード化のコンテキストにおいてビデオデコーダ30について説明する。但し、本開示の技法は他のコード化規格又は方法に適用可能であり得る。
[0096]図3の例では、ビデオデコーダ30は複数の機能構成要素を含む。ビデオデコーダ30の機能構成要素は、エントロピー復号モジュール150と、予測モジュール152と、逆量子化モジュール154と、逆変換モジュール156と、再構成モジュール158と、復号ピクチャバッファ160とを含む。予測モジュール152は、マージ/MVPリスト生成モジュール161と、動き補償モジュール162と、イントラ予測モジュール164とを含む。マージ/MVPリスト生成モジュール161はMV候補リストを生成し得る。幾つかの例では、ビデオデコーダ30は、図2のビデオエンコーダ20に関して説明した符号化パスとは概して逆の復号パスを実行し得る。他の例では、ビデオデコーダ30は、より多数の、より少数の、又は異なる機能構成要素を含み得る。例えば、ビデオデコーダ30は、再構成されたビデオからブロック歪みを除去するために再構成モジュール158の出力をフィルタ処理するために、デブロッキングフィルタを含み得る。
[0097]ビデオデコーダ30は、符号化ビデオデータを備えるビットストリームを受信し得る。ビデオデコーダ30がビットストリームを受信するとき、エントロピー復号モジュール150は、ビットストリームに対して構文解析演算(parsing operation)を実行する。ビットストリームに対して構文解析演算を実行した結果として、エントロピー復号モジュール150は、エントロピー復号されたシンタックス要素を生成し得る。エントロピー復号されたシンタックス要素は、エントロピー復号された係数ブロックを含み得る。予測モジュール152、逆量子化モジュール154、逆変換モジュール156、及び再構成モジュール158は、復号ビデオデータを生成するために、シンタックス要素を使用する復号演算を実行し得る。
[0098]上記で説明したように、ビットストリームは一連のNAL単位を備え得る。ビットストリームのNAL単位は、シーケンスパラメータセットNAL単位、ピクチャパラメータセットNAL単位、SEI NAL単位などを含み得る。ビットストリームに対して構文解析演算を実行することの一部として、エントロピー復号モジュール150は、シーケンスパラメータセットNAL単位からのシーケンスパラメータセット、ピクチャパラメータセットNAL単位からのピクチャパラメータセット、SEI NAL単位からのSEIデータなどを抽出し、エントロピー復号する、構文解析演算を実行し得る。シーケンスパラメータセットは、0個又はそれ以上のコード化ビデオシーケンス全体に適用されるシンタックス要素を含んでいるシンタックス構造である。ピクチャパラメータセットは、0個又はそれ以上のコード化ピクチャ全体に適用されるシンタックス要素を含んでいるシンタックス構造である。所与のピクチャに関連付けられたピクチャパラメータセットは、所与のピクチャに関連付けられたシーケンスパラメータセットを識別するシンタックス要素を含み得る。
[0099]更に、ビットストリームのNAL単位はコード化スライスNAL単位を含み得る。ビットストリームに対して構文解析演算を実行することの一部として、エントロピー復号モジュール150は、コード化スライスNAL単位からコード化スライスを抽出し、エントロピー復号する、構文解析演算を実行し得る。コード化スライスの各々はスライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含んでいることがある。スライスヘッダ中のシンタックス要素は、スライスを含んでいるピクチャに関連付けられたピクチャパラメータセットを識別するシンタックス要素を含み得る。エントロピー復号モジュール150は、スライスヘッダを復元するために、コード化スライスヘッダに対して、CAVLC復号演算などのエントロピー復号演算を実行し得る。
[0100]コード化スライスNAL単位からスライスデータを抽出した後、エントロピー復号モジュール150は、スライスデータからコード化ツリーブロックを抽出し得る。エントロピー復号モジュール150は、次いで、コード化ツリーブロックからコード化CUを抽出し得る。エントロピー復号モジュール150は、コード化CUからシンタックス要素を抽出する構文解析演算を実行し得る。抽出されたシンタックス要素は、エントロピー符号化された係数ブロックを含み得る。エントロピー復号モジュール150は、次いで、シンタックス要素に対してエントロピー復号演算を実行し得る。例えば、エントロピー復号モジュール150は、係数ブロックに対してCABAC演算を実行し得る。
[0101]エントロピー復号モジュール150がデータのセットに対してエントロピー復号演算を実行するとき、エントロピー復号モジュール150はコンテキストモデルを選択し得る。エントロピー復号モジュール150がCABACを使用する例では、コンテキストモデルは特定のビンの確率を示し得る。エントロピー復号モジュール150がCAVLCを使用する例では、コンテキストモデルは、コードワードと、対応するデータとの間のマッピングを示し得る。エントロピー復号モジュール150は、次いで、データのセットに対してエントロピー復号演算を実行するために、選択されたコンテキストモデルを使用し得る。
[0102]エントロピー復号モジュール150が、区分化されていないCUに対して構文解析演算を実行した後、ビデオデコーダ30は、区分化されていないCUに対して復号演算を実行し得る。区分化されていないCUに対して復号演算を実行するために、ビデオデコーダ30は、CUの残差4分木の各レベルにおいて、CUの各TUに対して復号演算を実行し得る。CUの各TUに対して復号演算を実行することによって、ビデオデコーダ30はCUの残差データを再構成し得る。
[0103]区分化されていないTUに対して復号演算を実行することの一部として、逆量子化モジュール154は、TUに関連付けられた係数ブロックを逆の量子化(inverse quantize)、即ち、逆量子化(de-quantize)し得る。逆量子化モジュール154は、HEVCのために提案された、又はH.264復号規格によって定義された逆量子化プロセスと同様の様式で、係数ブロックを逆量子化し得る。逆量子化モジュール154は、量子化の程度を決定し、同様に、逆量子化モジュール154が適用すべき逆量子化の程度を決定するために、係数ブロックのCUのためにビデオエンコーダ20によって計算される量子化パラメータQPYを使用し得る。
[0104]逆量子化モジュール154が係数ブロックを逆量子化した後、逆変換モジュール156は、係数ブロックに関連付けられたTUのための残差データを生成し得る。逆変換モジュール156は、少なくとも部分的に、係数ブロックに逆変換を適用することによって、TUのための残差データを生成し得る。例えば、逆変換モジュール156は、係数ブロックに、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT:Karhunen-Loeve transform)、逆回転変換、逆方向変換、又は別の逆変換を適用し得る。幾つかの例では、逆変換モジュール156は、ビデオエンコーダ20からの信号伝達に基づいて、係数ブロックに適用すべき逆変換を決定し得る。そのような例では、逆変換モジュール156は、係数ブロックに関連付けられたツリーブロックのための4分木のルートノードにおいて信号伝達された変換に基づいて、逆変換を決定し得る。他の例では、逆変換モジュール156は、ブロックサイズ、コード化モードなど、1つ又は複数のコード化特性から逆変換を推論し得る。幾つかの例では、逆変換モジュール156はカスケード逆変換を適用し得る。
[0105]CUが、インター予測を使用して符号化された場合、動き補償モジュール162は、CUのための予測データを生成するために動き補償を実行し得る。動き補償モジュール162は、PUのための参照サンプルを識別するためにCUのPUのための動き情報を使用し得る。PUのための動き情報は、動きベクトルと、参照ピクチャインデックスと、予測方向とを含み得る。動き補償モジュール162は、次いで、CUのための予測データを生成するためにPUのための参照サンプルを使用し得る。
[0106]幾つかの例では、動き補償モジュール162は、補間フィルタに基づく補間を実行することによって、CUのための予測データを改良し得る。サブ画素精度をもつ動き補償のために使用されるべき補間フィルタのための識別子が、シンタックス要素中に含まれ得る。動き補償モジュール162は、参照ブロックのサブ整数画素についての補間値を計算するために、CUの予測データの生成中にビデオエンコーダ20によって使用された同じ補間フィルタを使用し得る。動き補償モジュール162は、受信されたシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを決定し、予測データを生成するためにその補間フィルタを使用し得る。
[0107]CUが、イントラ予測を使用して符号化される場合、イントラ予測モジュール164は、CUのための予測データを生成するためにイントラ予測を実行し得る。例えば、イントラ予測モジュール164は、ビットストリーム中のシンタックス要素に基づいて、CUのためのイントラ予測モードを決定し得る。イントラ予測モジュール164は、次いで、隣接CUの画素値に基づいて、CUのための予測データ(例えば、予測画素値)を生成するために、イントラ予測モードを使用し得る。
[0108]再構成モジュール158は、CUのための画素値を再構成するために、CUの残差データとCUのための予測データとを使用し得る。幾つかの例では、ビデオデコーダ30は、スライス又はピクチャの再構成された画素値フィルタからブロック歪みを除去するために、デブロッキングフィルタを適用し得る。復号ピクチャバッファ160は、ビデオデータのピクチャのための復号された画素値を記憶し得る。復号ピクチャバッファ160は、後続の動き補償、イントラ予測、及び図3の表示装置34などの表示装置上でのプレゼンテーションのために、参照ピクチャを与え得る。実施形態によっては、本明細書で説明した方法のうちのいずれかの幾つかの行為又はイベントが、異なるシーケンスで実行され得、全体的に追加、マージ、又は除外され得る(例えば、全ての説明した行為又はイベントが本方法の実施のために必要であるとは限らない)ことを認識されたい。更に、幾つかの実施形態では、行為又はイベントは、連続的にではなく、例えば、マルチスレッド処理、割込み処理、又は複数のプロセッサを通して同時に実行され得る。
マージ動きベクトル(MV)候補
[0109]上記で説明したように、様々な実施形態では、CUのサイズは、8×8画素から最大64×64画素以上をもつツリーブロックのサイズまでに及び得る。図4に、コード化単位(CU)に区分化された最大コード化単位(LCU)400の一例を示す。例えば、LCU400は、各々のサイズが32×32画素である、CUブロック4i及び4hに区分化され得る。同様に、32×32CUブロックが4つの16×16CUブロックに区分化され得る。例えば、CU4a、4b、4c、4j、4k、4l、及び4mはそれぞれ、16×16CUに対応することができる。同様に、16×16CUブロックが4つの8×8画素CUブロックに区分化され得る。例えば、CU4d、4e、4f、及び4gはそれぞれ、8×8CUに対応することができる。
[0110]図5A〜図5Dに、異なる予測単位(PU)に区分化されたCUの例を示す。特に、CU500は幾つかの異なるPUに区分化され得る。例えば、図5Aに示されているように、2N×2N CU500は単一の2N×2N PUに区分化され得る。更に、図5Bに示されているように、2N×2N CU500は、2つの2N×N PU、左2N×N PU5aと右2N×N PU5bとにも区分化され得る。図5Cに示されているように、2N×2N CU500は、2つのN×2N PU、上N×2N PU5cと下N×2N PU5dとにも区分化され得る。図5Dに示されているように、2N×2N CU500は、4つのN×N PU、左上N×N PU5eと、右上N×N PU5fと、左下N×N PU5gと、右下N×N PU5hとにも区分化され得る。
[0111]上記で説明したように、幾つかのコード化モード中に、動きベクトル候補のリストが生成され得、現在ビデオブロックの値を決定するために、動きベクトルのうちの1つ又は複数が使用され得る。図6に示されているように、動きベクトル候補は、1つ又は複数の空間的に隣接するビデオブロック(例えば、左下(BL640)、左(L630)、左上(TL620)、上(T650)、及び右上(TR660))、及び、1つの、時間的に隣接する、コロケートされたビデオブロック(例えば、時間動きベクトル予測子、又はTMVP(T670))からの動きベクトル情報を含み得る。これらの空間的に隣接するビデオブロック620、630、640、650、及び660、ならびにTMVP670は、図6に示されている。幾つかの実施形態では、現在ビデオブロック610(例えば、コード化されているビデオブロック)は、選択された隣接ビデオブロックの動き情報(例えば、動きベクトル)を継承するか又は場合によっては使用し得る。例えば、図6に示されているように、(ビデオエンコーダ20などの)ビデオエンコーダは、マージモードでコード化されるビデオブロック610のための動きベクトル自体を信号伝達しない。そうではなく、現在ビデオブロック610がそれの動きベクトルと動き情報とをそこから継承する(左下隣接640、左隣接630、左上隣接620、上隣接650、又は右上隣接660などの)隣接ビデオブロックを識別するために、インデックス値(例えば、インデックス値0〜4)が使用され得る。
[0112]幾つかの実施形態では、(マージMV候補リスト又はMV候補リストとも呼ばれる)マージ候補リストが、5つのエントリと、マージ候補リストに追加された最高4つの空間動きベクトル候補とを有し得る(他の実施形態では、候補リストは、5つのエントリよりも多い又は少ないエントリを有し、マージ候補リストに追加された4つの空間候補よりも多い又は少ない空間候補を有し得る)。マージ候補リスト中の5つのエントリのためのインデックス値は、0で始まり、4で終わる。マージ候補は、例えばHEVCにおいて定義されている、空間候補と、他のタイプの候補とを含み得る。各空間MVは、現在ビデオブロック(例えば、ブロック610)に対する任意の空間的に隣接するビデオブロック(例えば、ブロック620、630、640、650、660)に等しいか、又はそれから導出され得る。幾つかの実施形態では、幾つかのマージ候補が利用可能でない場合(又は、それらがMV候補リストからプルーニングされるか若しくは場合によっては除去される場合)、他の候補が選択され得る。
所与のCUに対応するMV候補の決定
[0113]並列動き推定では、動き推定は、CU中の複数のPUについて又はLCU中の複数のCUについて、スキップモード、マージモード、及び標準又は通常イントラ予測モードについて並列に実行され得る。並列動き推定の場合、CU内のPUのための動き推定は並列に行われ得るが、CU対CU間の動き推定は連続的である。
[0114]図7A〜図7Cに、幾つかのPUのためのMV候補位置を示す、PUに区分化された例示的なCUを示す。特に、一例として、図7A〜図7Cは、32×32CU700を示している。CU700に関して本明細書で説明する方法は、特に、64×64CUと、16×16CUと、8×8CUとを含む、他のサイズのCU内で区分化されたPUのためのMV候補位置を決定することに適用可能である。
[0115]図7Aに示されているように、32×32CU700内で区分化され得る最大PUは、サイズ32×32を有するPU7aである。PU7aに対応するMV候補が生成され得る。例えば、PU7aに対応するMV候補は、空間候補、左上MV候補7bと、上MV候補7cと、右上MV候補7dと、左MV候補7eと、時間MV候補7fとを含む。この例では、左上MV候補7bと、上MV候補7cと、右上MV候補7dと、左MV候補7eとを含む、MV候補の各々は、4×4のサイズを有する。他の実施形態では、MV候補は異なるサイズを有することができる。
[0116]図7Bに示されているように、CU700は、各々がサイズ32×16を有する、左PU7gと右PU7hとに区分化され得る。PU7gに対応する、生成され得るMV候補は、空間候補、左上MV候補7iと、上MV候補7jと、右上MV候補7kと、左MV候補7nと、時間MV候補7oとを含む。PU7hに対応する、生成され得るMV候補は、空間候補、左上MV候補7jと、上MV候補7lと、右上MV候補7mと、左MV候補7gと、時間MV候補7pとを含む。単一のMV候補は、2つ以上のPUのためのMV候補として働くことができる。例えば、MV候補7jはPU7gのための上MV候補であるが、MV候補7jはPU7hのための左上MV候補でもある。
[0117]図7Cに示されているように、CU700は、各々がサイズ16×32を有する、上PU7qと下PU7rとに区分化され得る。PU7qに対応する、生成され得るMV候補は、空間候補、左上MV候補7sと、上MV候補7tと、右上MV候補7uと、左MV候補7vと、左下MV候補7xと、時間MV候補7yとを含む。PU7rに対応する、生成され得るMV候補は、空間候補、左上MV候補7vと、上MV候補7wと、左MV候補7zと、時間MV候補7abとを含む。前述のように、単一のMV候補は、2つ以上のPUのためのMV候補として働くことができる。例えば、MV候補7vはPU7qのための左MV候補であるが、MV候補7vはPU7rのための左上MV候補でもある。
[0118]この例では、32×32のサイズを有するCU700は、4つのより小さい重複しない16×16CUに区分化され得る。例えば、CU700は、図8〜図15に示されているように、左上16×16CU710と、右上16×16CU720と、左下16×16CU730と、右下16×16 740とに区分化され得る。
[0119]図8A〜図8Cに、幾つかのPUのためのMV候補位置を示す、PUへの例示的なCU区分を示す。特に、一例として、図8A〜図8Cは、左上16×16CU710を示している。
[0120]図8Aに示されているように、16×16CU710内で区分化され得る最大PUは、サイズ16×16を有するPU8aである。PU8aに対応するMV候補が生成され得る。例えば、PU8aに対応するMV候補は、空間候補、左上MV候補8bと、上MV候補8cと、右上MV候補8dと、左MV候補8eと、左下MV候補8fと、時間MV候補8gとを含む。この例では、左上MV候補8bと、上MV候補8cと、右上MV候補8dと、左MV候補8eと、左下MV候補8fとを含む、MV候補の各々は、4×4のサイズを有する。他の実施形態では、MV候補は異なるサイズを有することができる。
[0121]図8Bに示されているように、CU710は、各々がサイズ16×8を有する、左PU8hと右PU8iとに区分化され得る。PU8hに対応する、生成され得るMV候補は、空間候補、左上MV候補8jと、上MV候補8kと、右上MV候補8lと、左MV候補8nと、左下MV候補8pと、時間MV候補8qとを含む。あらゆる空間MV候補が、対応するPUの境界に直接隣接することは必要でない。例えば、PU8hのための右上MV候補8lがPU8hの境界に直接隣接しないとしても、候補8lは、依然として、PU8hに対する空間MV候補として働き得る。PU8iに対応する、生成され得るMV候補は、空間候補、左上MV候補8kと、上MV候補8lと、右上MV候補8mと、左MV候補8oと、時間MV候補8rとを含む。単一のMV候補は、2つ以上のPUのためのMV候補として働くことができる。例えば、MV候補8kはPU8hのための上MV候補であるが、MV候補8kはPU8iのための左上MV候補でもある。
[0122]図8Cに示されているように、CU710は、各々がサイズ8×16を有する、上PU8sと下PU8tとに区分化され得る。PU8sに対応する、生成され得るMV候補は、空間候補、左上MV候補8uと、上MV候補8vと、右上MV候補8wと、左MV候補8xと、左下MV候補8zと、時間MV候補8abとを含む。PU8tに対応する、生成され得るMV候補は、空間候補、左上MV候補8xと、上MV候補8yと、左MV候補8acと、左下MV候補8adと、時間MV候補8aeとを含む。前述のように、単一のMV候補は、2つ以上のPUのためのMV候補として働くことができる。例えば、MV候補8xはPU8sのための左MV候補であるが、MV候補8xはPU8tのための左上MV候補でもある。
[0123]図9A〜図9Cに、幾つかのPUのためのMV候補位置を示す、PUへの例示的なCU区分を示す。特に、一例として、図9A〜図9Cは、右上16×16CU720を示している。
[0124]図9Aに示されているように、16×16CU720内で区分化され得る最大PUは、サイズ16×16を有するPU9aである。PU9aに対応するMV候補が生成され得る。例えば、PU9aに対応するMV候補は、空間候補、左上MV候補9bと、上MV候補9dと、右上MV候補9eと、左MV候補9fと、時間MV候補9gとを含む。この例では、左上MV候補9bと、上MV候補9dと、右上MV候補9eと、左MV候補9fとを含む、MV候補の各々は、4×4のサイズを有する。他の実施形態では、MV候補は異なるサイズを有することができる。
[0125]図9Bに示されているように、CU720は、各々がサイズ16×8を有する、左PU9hと右PU9iとに区分化され得る。PU9hに対応する、生成され得るMV候補は、空間候補、左上MV候補9jと、上MV候補9kと、右上MV候補9lと、左MV候補9nと、時間MV候補9pとを含む。PU9iに対応する、生成され得るMV候補は、空間候補、左上MV候補9kと、上MV候補9lと、右上MV候補9mと、左MV候補9oと、時間MV候補9qとを含む。単一のMV候補は、2つ以上のPUのためのMV候補として働くことができる。例えば、MV候補9kはPU9hのための上MV候補であるが、MV候補9kはPU9iのための左上MV候補でもある。
[0126]図9Cに示されているように、CU720は、各々がサイズ8×16を有する、上PU9rと下PU9sとに区分化され得る。PU9rに対応する、生成され得るMV候補は、空間候補、左上MV候補9tと、上MV候補9uと、右上MV候補9vと、左MV候補9wと、左下MV候補9yと、時間MV候補9zとを含む。PU9sに対応する、生成され得るMV候補は、空間候補、左上MV候補9wと、上MV候補9xと、左MV候補9abと、時間MV候補9acとを含む。前述のように、単一のMV候補は、2つ以上のPUのためのMV候補として働くことができる。例えば、MV候補9wはPU9rのための左MV候補であるが、MV候補9wはPU9sのための左上MV候補でもある。
[0127]図10A〜図10Cに、幾つかのPUのためのMV候補位置を示す、PUへの例示的なCU区分を示す。特に、一例として、図10A〜図10Cは、左下16×16CU730を示している。
[0128]図10Aに示されているように、16×16CU730内で区分化され得る最大PUは、サイズ16×16を有するPU10aである。PU10aに対応するMV候補が生成され得る。例えば、PU10aに対応するMV候補は、空間候補、左上MV候補10bと、上MV候補10cと、右上MV候補10dと、左MV候補10eと、時間MV候補10fとを含む。この例では、左上MV候補10bと、上MV候補10cと、右上MV候補10dと、左MV候補10eとを含む、MV候補の各々は、4×4のサイズを有する。他の実施形態では、MV候補は異なるサイズを有することができる。
[0129]図10Bに示されているように、CU730は、各々がサイズ16×8を有する、左PU10gと右PU10hとに区分化され得る。PU10gに対応する、生成され得るMV候補は、空間候補、左上MV候補10iと、上MV候補10jと、右上MV候補10kと、左MV候補10nと、時間MV候補10oとを含む。PU10hに対応する、生成され得るMV候補は、空間候補、左上MV候補10jと、上MV候補10lと、右上MV候補10mと、左MV候補10gと、時間MV候補10pとを含む。単一のMV候補は、2つ以上のPUのためのMV候補として働くことができる。例えば、MV候補10jはPU10gのための上MV候補であるが、MV候補10jはPU10hのための左上MV候補でもある。
[0130]図10Cに示されているように、CU730は、各々がサイズ8×16を有する、上PU10qと下PU10rとに区分化され得る。PU10qに対応する、生成され得るMV候補は、空間候補、左上MV候補10sと、上MV候補10tと、右上MV候補10uと、左MV候補10vと、左下MV候補10xと、時間MV候補10yとを含む。PU10rに対応する、生成され得るMV候補は、空間候補、左上MV候補10vと、上MV候補10wと、左MV候補10zと、時間MV候補10abとを含む。前述のように、単一のMV候補は、2つ以上のPUのためのMV候補として働くことができる。例えば、MV候補10vはPU10qのための左MV候補であるが、MV候補10vはPU10rのための左上MV候補でもある。
[0131]図11A〜図11Cに、幾つかのPUのためのMV候補位置を示す、PUへの例示的なCU区分を示す。特に、一例として、図11A〜図11Cは、右下16×16CU740を示している。
[0132]図11Aに示されているように、16×16CU740内で区分化され得る最大PUは、サイズ16×16を有するPU11aである。PU11aに対応するMV候補が生成され得る。例えば、PU11aに対応するMV候補は、空間候補、左上MV候補11bと、上MV候補11cと、左MV候補11dと、時間MV候補11eとを含む。この例では、左上MV候補11bと、上MV候補11cと、左MV候補11dとを含む、MV候補の各々は、4×4のサイズを有する。他の実施形態では、MV候補は異なるサイズを有することができる。
[0133]図11Bに示されているように、CU740は、各々がサイズ16×8を有する、左PU11fと右PU11gとに区分化され得る。PU11fに対応する、生成され得るMV候補は、空間候補、左上MV候補11hと、上MV候補11iと、右上MV候補11jと、左MV候補11lと、時間MV候補11mとを含む。PU11gに対応する、生成され得るMV候補は、空間候補、左上MV候補11iと、上MV候補11kと、時間MV候補11nとを含む。単一のMV候補は、2つ以上のPUのためのMV候補として働くことができる。例えば、MV候補11iはPU11fのための上MV候補であるが、MV候補11iはPU11gのための左上MV候補でもある。
[0134]図11Cに示されているように、CU740は、各々がサイズ8×16を有する、上PU11oと下PU11pとに区分化され得る。PU11oに対応する、生成され得るMV候補は、空間候補、左上MV候補11qと、上MV候補11rと、左MV候補11sと、左下MV候補11uと、時間MV候補11vとを含む。PU11pに対応する、生成され得るMV候補は、空間候補、左上MV候補11sと、上MV候補11tと、左MV候補11wと、時間MV候補11xとを含む。前述のように、単一のMV候補は、2つ以上のPUのためのMV候補として働くことができる。例えば、MV候補11sはPU11oのための左MV候補であるが、MV候補11sはPU11pのための左上MV候補でもある。
[0135]図12に、CU700並びにCU710、720、730、及び740中で区分化された任意のPUに対応する各MV候補を示す32×32CU700の一例を示す。例えば、図12は、以下のPU、即ち、32×32PU7a、32×16PU7g、32×16PU7h、16×32PU7q、16×32PU7r、16×16PU8a、16×8PU8h、16×8PU8i、8×16PU8s、8×16PU8t、16×16PU9a、16×8PU9h、16×8PU9i、8×16PU9r、8×16PU9s、16×16PU10a、16×8PU10g、16×8PU10h、8×16PU10q、8×16PU10r、16×16PU11a、16×8PU11f、16×8PU11g、8×16PU11o、及び8×16PU11pに対応するMV候補を含む。特に、図12は、CU700の外部に配置された13個の空間MV候補E1〜E13と、CU700の内部に配置された24個の空間MV候補I1〜i24と、6個の時間MV候補T1〜T6とを示している。13個の外部空間MV候補E1〜E13、24個の内部空間MV候補I1〜I24、及び6個の時間MV候補T1〜T6は、CU700内のPUのためのMV候補に対応する。多くの事例では、MV候補は2つ以上のPUに対応する。例えば、外部空間MV候補E1は、6個のPU、即ち、32×32PU7aの左上MV候補7bと、32×16PU7gの左上MV候補7iと、16×32PU7qの左上MV候補7sと、16×16PU8aの左上MV候補8bと、16×8PU8hの左上MV候補8jと、8×16PU8sの左上MV候補8uとに対応する。
MER内のPUに対応するMV候補の選択
[0136]図13に、実装されたMERをもつ32×32CU700の一例を示す。例えば、同じ32×32CUブロック700に対応する32×32MER領域が実装され得る。他の実施形態では、MERのサイズはLCUサイズと同じ又は異なり得る。実装されたMERでは、MERの外部の空間MV候補及びコロケートされた時間MV候補のみが、マージ候補リスト中に含めるために考慮される。例えば、MERの外部に配置された13個の空間MV候補E1〜E13、及び6個の時間MV候補T1〜T6のみが、マージ候補リスト中に含めるために考慮されるであろう。従って、この実施形態では、マージ候補リスト中に含めるために考慮されたマージ動きベクトル候補の総数は19個である。
[0137]幾つかの実施形態では、本開示の幾つかの態様に従って構成された、図1及び図2のビデオエンコーダ20などのビデオコード化機器は、複数の動きベクトル候補を記憶するように構成されたメモリを含む。複数の動きベクトル候補は、初期リストサイズを有する初期リストを備えることができる。例えば、MERの外部に配置された13個の空間MV候補E1〜E13、及び6個の時間MV候補T1〜T6を備える初期リストが、19の初期リストサイズを有することができる。19個の動きベクトル候補の各々は、MER中で区分化された複数の予測単位(PU)のうちの少なくとも1つに対応する。例えば、19個の動きベクトル候補の各々は、以下のPU、即ち、32×32PU7a、32×16PU7g、32×16PU7h、16×32PU7q、16×32PU7r、16×16PU8a、16×8PU8h、16×8PU8i、8×16PU8s、8×16PU8t、16×16PU9a、16×8PU9h、16×8PU9i、8×16PU9r、8×16PU9s、16×16PU10a、16×8PU10g、16×8PU10h、8×16PU10q、8×16PU10r、16×16PU11a、16×8PU11f、16×8PU11g、8×16PU11o、及び8×16PU11pのうちの少なくとも1つに対応する。19個の動きベクトル候補E1〜E13及びT1〜T6のみの選択は、図12に示された全ての43個の動きベクトル候補の選択と比較して全体的な計算コストを低減することができる。
[0138]ビデオコード化機器は、メモリと通信しているプロセッサをも含むことができる。プロセッサは、初期リストサイズよりも小さいリストサイズを有するマージ候補リスト中に含めるべき複数の動きベクトル候補E1〜E13への及びT1〜T6のうちの1つ又は複数を選択するように構成され得る。リストサイズ及び初期リストサイズは任意の数であり得る。例えば、初期リストサイズは19であり得、リストサイズは、1、4、5、6、8、及び10を含む、1から10の間の任意の数であり得る。
[0139]選択は、各動きベクトル候補の優先度レベルに基づき得る。一実施形態では、複数の動きベクトル候補E1〜E13への及びT1〜T6の各々の優先度レベルは、動きベクトル候補が、MER中で区分化された複数のPUのうちのいずれかに対応する、頻度に基づき得、より高い頻度がより高い優先度レベルに対応する。例えば、一実施形態によれば、外部空間MV候補E1は、E1が、7つのPU、即ち、32×32PU7aの左上MV候補7bと、32×16PU7gの左上MV候補7iと、16×32PU7qの左上MV候補7sと、16×16PU8aの左上MV候補8bと、16×8PU8hの左上MV候補8jと、8×16PU8sの左上MV候補8uと、PU8aの左上象限中で区分化された8×8PU(図示せず)の左上候補とに対応することに基づいて、7の頻度を有することができる。プロセッサは、選択された動きベクトル候補を含むようにマージ候補リストを生成するように更に構成され得る。
[0140]図13に示された19個のMV候補は、所与のMER内の異なるCU及びPU区分のためのマージモードコストを導出する際にそれらの寄与に関して必ずしも等しく重要であるとは限らない。例えば、幾つかのMV候補は、異なるCU又はPUの候補位置重複により、他のMV候補よりも高い頻度を有することができる。所与のMERに対するMV候補の頻度は、概して静的である。
[0141]一実施形態では、MV候補の頻度に基づいて、優先度又は重み付け係数が各候補に割り当てられ得る。より高い頻度を有するMV候補の場合、より高い優先度又は重み付け係数が割り当てられ得る。優先度又は重み付け係数に基づいて、マージ候補リスト中でサポートされるマージ候補の数とコード化性能との間でトレードオフが得られ得る。例えば、幾つかの実施形態では、19個のMV候補のうちの10個のみがそれらの優先度に基づいて考慮されるとき、性能低下は、全ての19個のMVマージ候補を考慮することと比較して0.5%よりも少なくなり得ることがわかる。同様に、19個のMV候補のうちの5個のみがそれらの優先度に基づいて考慮されるとき、全ての19個のMVマージ候補を考慮することと比較して2%よりも少ない性能低下がわかっている。
[0142]図14に、MER中で区分化された任意のPUに対応する各時間又は外部空間MV候補の例示的な重み付き頻度を示す32×32MERの一例を示す。上記で説明したように、複数の動きベクトル候補E1〜E13への及びT1〜T6の各々の優先度レベルは、動きベクトル候補が、MER中で区分化された複数のPUのうちのいずれかに対応する、頻度に少なくとも部分的に基づき得、より高い頻度がより高い優先度レベルに対応する。更に、複数の動きベクトル候補E1〜E13及びT1〜T6の各々の優先度レベルは、複数のPUの各々のための重み付け係数に更に基づき得る。例えば、重み付け係数は、動きベクトル候補が対応する各PUのサイズに依存することができ、より大きいサイズのPUが、より大きい重み付け係数を受信する。従って、MV候補が、より大きいPUのためのマージ候補として働く場合、それは、より小さいPUのためにのみ使用される候補よりも高い重み付けを受信することができる。
[0143]幾つかの実施形態では、複数のPUの各々のための重み付け係数は各PUのサイズに正比例し得る。例えば、考慮される最小PUサイズが8×8であると仮定する場合、PUは、PU内の各8×8領域のための1の重み付け係数を有することができる。従って、32×32PUは、16個の8×8領域を含み、16の重み付け係数を有するであろう。同様に、16×32PUは8の重み付け係数を有することができ、32×16PUは8の重み付け係数を有することができ、16×16PUは4の重み付け係数を有することができ、8×16PUは2の重み付け係数を有することができ、16×8PUは2の重み付け係数を有することができ、8×8PUは1の重み付け係数を有することができる。
[0144]図14中の番号付けされた正方形はMV候補E1〜E13及びT1〜T6に対応する。従って、例えば、41の重み付き優先度レベルを有する左上MV候補はE1に対応する。この実施形態における41のE1の重み付き優先度レベルは、32×32PU7aの左上MV候補7bが16の重み付け係数を有し、32×16PU7gの左上MV候補7iが8の重み付け係数を有し、16×32PU7qの左上MV候補7sが8の重み付け係数を有し、16×16PU8aの左上MV候補8bが4の重み付け係数を有し、16×8PU8hの左上MV候補8jが2の重み付け係数を有し、8×16PU8sの左上MV候補8uが2の重み付け係数を有し、PU8aの左上象限中で区分化された8×8PU(図示せず)の左上候補が1の重み付け係数を有し、即ち、16+8+8+4+2+2+1が41であるように計算され得る。他の各MV候補の重み付き優先度が同様に計算され得る。例えば、一実施形態によれば、32×32MERに対応するMV候補の重み付き優先度は、E1が41の重み付き優先度を有し、E2が8の重み付き優先度を有し、E3が35の重み付き優先度を有し、E4が23の重み付き優先度を有し、E5が46の重み付き優先度を有し、E6が41の重み付き優先度を有し、E7が6の重み付き優先度を有し、E8が3の重み付き優先度を有し、E9が32の重み付き優先度を有し、E10が17の重み付き優先度を有し、E11が6の重み付き優先度を有し、E12が3の重み付き優先度を有し、E13が41の重み付き優先度を有し、T1が1の重み付き優先度を有し、T2が4の重み付き優先度を有し、T3が3の重み付き優先度を有し、T4が24の重み付き優先度を有し、T5が60の重み付き優先度を有し、T6が14の重み付き優先度を有するようになる。
[0145]各MV候補の重み付き優先度レベルに基づいて、各MV候補は優先度順にランク付けされ得る。図15に、MER中で区分化された任意のPUに対応する各時間又は外部空間MV候補の例示的な優先度レベルランク付けを示す32×32MERの一例を示す。特に、図15は、重み付き優先度レベルの逆順で各MV候補に割り当てられたインデックス値を示している。従って、T5が60の最高重み付き優先度を有するので、それは最高優先度を有し、インデックス0を有する。例えば、プロセッサが、マージ候補リスト中に単一のMV候補のみを含めるように構成された(例えば、リストサイズは1である)場合、それはMV候補T5を含めるであろう。T5の後には、重み付き優先度の順に、E5、E13、E6、E1、E3、E9、T4、E4、E10、T6、E2、E7、E11、T2、T3、E8、E12、及びT1が続く。同様に、プロセッサが、マージ候補リスト中に5つのMV候補を含めるように構成された(例えば、リストサイズは5である)場合、それは、MV候補T5、E5、E13、E6、及びE1を含めることができる。
[0146]優先度レベルに基づくMV候補の選択の利点は、重み付き頻度値を含む、頻度値、及び導出された優先度レベルが、イントラ/インターブロック及びPUサイズなど、隣接PUのステータスに依存しないことがあることである。従って、例えば、優先度リストは、必ずしもあらゆるLCUのために再生成される必要があるとは限らない。
[0147]他の実施形態では、MV候補の優先度レベルは位置重み付け係数に依存することができる。位置重み付け係数は、対応するPUに対する空間MV候補の相対位置に依存することができる。例えば、MV候補のための重み付け係数は、候補がPUのための左候補であるのか、右候補であるのか、上候補であるのかなどに依存することができる。PUのための異なる候補は、PUに対する候補の相対位置に基づいて選択される差分可能性を有し得る。例えば、PUのための左位置候補に対応する空間MV候補が、PUのための左上位置MV候補よりも高い位置重み付け係数を有することができる。
[0148]図16は、非冗長ステータスに基づいて、マージ候補リスト中に含めるためのMV候補を選択するプロセス800の実施形態を示し、それぞれ図2又は図3のマージ/MVPリスト生成モジュール121又は161によって実行され得る、フローチャートである。プロセス800は、単独で、又は、優先度レベル、頻度、及び重み付け頻度に基づくMV候補の選択を含む、本明細書の他の場所で説明する任意の他の選択プロセスに加えて、又はそれと組み合わせて適用され得る。例えば、プロセス800はブロック810において開始する。ブロック820において、並列MER中で区分化されたPUに対応するMV候補を識別する。例えば、32×32MERの場合、19個のMV候補が識別される。次いで、プロセス800はブロック830に進み、特定のMV候補が冗長であるかどうかを決定する。例えば、MV候補が候補PU内に含まれているとき、プロセッサは、候補PUのステータスに基づいて、MV候補が冗長であると決定するように構成され得る。特に、例えば、プロセッサは、候補PUがイントラモードでコード化される場合、MV候補が冗長であると決定するように構成され得る。更に、プロセッサは、MV候補が、1つ又は複数のMV候補のうちの別のMV候補の動き情報と同じである動き情報を備える場合、MV候補が冗長であると決定するように更に構成され得る。また、プロセッサは、MV候補が0動きベクトルを有する場合、MV候補が冗長であると決定するように構成され得る。次いで、プロセス800はブロック840に進み、動きベクトルリストから、冗長であることがわかっているMV候補を除外する。ブロック850において、プロセス800は、全てのMV候補が識別されたかどうかを検査する。識別されていない場合、プロセス800はブロック830にループバックする。はいの場合、プロセス800は、ブロック860に進み、マージ候補リスト中に含めるための、除外されていない1つ又は複数のMV候補を選択する。プロセス800はブロック870において終了する。
[0149]図17は、優先度レベルに基づいて、マージ候補リスト中に含めるためのMV候補を選択するプロセス900の実施形態を示し、それぞれ図2又は図3のマージ/MVPリスト生成モジュール121又は161によって実行され得る、フローチャートである。プロセス900は、単独で、又は本明細書の他の場所で説明する任意の他の選択プロセスに加えて、若しくはそれと組み合わせて適用され得る。例えば、プロセス900はブロック910において開始する。ブロック920において、並列MER中で区分化されたPUに対応するMV候補を識別する。例えば、32×32MERの場合、19個のMV候補が識別される。次いで、プロセス900はブロック930に進み、MV候補が、MER中で区分化されたPUのうちのいずれかに対応する、頻度fを決定する。プロセス900は、ブロック940に進み、頻度fに部分的に基づいてMV候補の優先度レベルを決定する。例えば、MV候補の優先度レベルが頻度fのみに基づく一実施形態では、外部空間MV候補E1は、E1が、7つのPU、即ち、32×32PU7aの左上MV候補7bと、32×16PU7gの左上MV候補7iと、16×32PU7qの左上MV候補7sと、16×16PU8aの左上MV候補8bと、16×8PU8hの左上MV候補8jと、8×16PU8sの左上MV候補8uと、PU8aの左上象限中で区分化された8×8PU(図示せず)の左上候補とに対応することに基づいて、7の頻度fを有することができる。代替的に、MV候補の優先度レベルが重み付け係数に更に依存する一実施形態では、MV候補E1は、32×32PU7aの左上MV候補7bが16の重み付け係数を有し、32×16PU7gの左上MV候補7iが8の重み付け係数を有し、16×32PU7qの左上MV候補7sが8の重み付け係数を有し、16×16PU8aの左上MV候補8bが4の重み付け係数を有し、16×8PU8hの左上MV候補8jが2の重み付け係数を有し、8×16PU8sの左上MV候補8uが2の重み付け係数を有し、PU8aの左上象限中で区分化された8×8PU(図示せず)の左上候補が1の重み付け係数を有し、即ち、16+8+8+4+2+2+1が41であるように計算された、41の優先度レベルを有することができる。ブロック940において、任意の他の重み付け係数も適用され得る。プロセス900は、ブロック960に進み、全てのMV候補が識別されたかどうかを決定する。識別されていない場合、プロセス900はブロック930にループバックする。はいの場合、プロセス900は、ブロック970に進み、MV候補の優先度レベルに基づいて、マージ候補リスト中に含めるためのMV候補を選択する。プロセス900はブロック980において終了する。
[0150]上記で説明した全ての技法はまた、マージ候補リスト中に含めるためのMV候補を選択することに適用され得る。更に、本開示の幾つかの技法及び例について、32×32CUの一例に関して説明した。本明細書で説明した全ての技法が、異なる数の行及び列中で、より多い又はより少ない画素を含んでいる、CUブロックを用いた例に適用され得ることを理解されたい。
[0151]上記例に応じて、本明細書で説明した技法のうちのいずれかの幾つかの行為又はイベントが、異なるシーケンスで実行され得、全体的に追加、マージ、又は除外され得る(例えば、全ての説明した行為又はイベントが本技法の実施のために必要であるとは限らない)ことを認識されたい。更に、幾つかの例では、行為又はイベントは、連続的にではなく、例えば、マルチスレッド処理、割込み処理、又は複数のプロセッサを通して同時に実行され得る。
[0152]1つ又は複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つ又は複数の命令又はコードとして、コンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、又は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コード及び/又はデータ構造を取り出すために1つ又は複数のコンピュータあるいは1つ又は複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
[0153]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROM又は他の光ディスクストレージ、磁気ディスクストレージ、又は他の磁気記憶装置、フラッシュメモリ、あるいは命令又はデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。但し、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)及びディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、及びBlu−rayディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
[0154]命令は、1つ又は複数のデジタル信号プロセッサ(DSP)などの1つ又は複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路又はディスクリート論理回路によって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、上記の構造、又は本明細書で説明した技法の実装に好適な他の構造のいずれかを指すことがある。更に、幾つかの態様では、本明細書で説明した機能は、符号化及び復号のために構成された専用のハードウェアモジュール及び/又はソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つ又は複数の回路又は論理要素で十分に実装され得る。
[0155]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)又はICのセット(例えば、チップセット)を含む、多種多様な機器又は装置で実装され得る。本開示では、開示する技法を実行するように構成された機器の機能的態様を強調するために様々な構成要素、モジュール、又はユニットについて説明したが、それらの構成要素、モジュール、又はユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェア及び/又はファームウェアとともに、上記で説明した1つ又は複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、又は相互動作ハードウェアユニットの集合によって与えられ得る。
[0156]様々な例について説明した。これら及び他の例は以下の特許請求の範囲内に入る。
[0156]様々な例について説明した。これら及び他の例は以下の特許請求の範囲内に入る。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータをコード化するように構成された装置であって、前記装置は、
複数の動きベクトル候補を記憶するように構成されたメモリと、前記複数の動きベクトル候補の各々が、並列動き推定領域(MER)中で区分化された複数の予測単位(PU)のうちの少なくとも1つに対応し、前記複数の動きベクトル候補の各々が、利用可能な動きデータを備え、
前記メモリと通信しているプロセッサとを備え、前記プロセッサは、
マージ候補リスト中に含めるべき前記複数の動きベクトル候補のサブセットを選択することと、ここにおいて、選択が、前記複数の動きベクトル候補の各々の優先度レベルに基づく、
前記複数の動きベクトル候補の選択された前記サブセットを含むように前記マージ候補リストを生成することと
を行うように構成された、装置。
[C2]
前記複数の動きベクトル候補の各々の前記優先度レベルは、前記動きベクトル候補が、前記MER中で区分化された前記複数のPUのうちのいずれかに対応する、頻度に基づいており、より高い頻度がより高い優先度レベルに対応する、C1に記載の装置。
[C3]
前記複数の動きベクトル候補の各々の前記優先度レベルが、前記複数のPUの各々のための重み付け係数に更に基づき、前記重み付け係数が各PUのサイズに依存し、より大きいサイズがより大きい重み付け係数に対応する、C2に記載の装置。
[C4]
前記複数のPUの各々の前記重み付け係数が各PUの前記サイズに正比例する、C3に記載の装置。
[C5]
前記複数の動きベクトル候補の各々が空間動きベクトル候補と時間動きベクトル候補とのうちの1つを備え、
各空間動きベクトル候補の位置が前記MERの外側に配置された、C2に記載の装置。
[C6]
各空間動きベクトル候補の前記優先度レベルが、対応するPUに対する前記空間動きベクトル候補の相対位置に依存する位置重み付け係数に更に基づく、C5に記載の装置。
[C7]
PUのための左位置候補に対応する空間動きベクトル候補が、PUのための左上位置候補よりも高い位置重み付け係数を有する、C6に記載の装置。
[C8]
前記プロセッサは、
前記複数の動きベクトル候補の各々について、前記動きベクトル候補が前記複数の動きベクトル候補のうちの別の動きベクトル候補に対して冗長であるかどうかを決定することと、
前記マージ候補リストから冗長動きベクトル候補を除外することとを行うように更に構成された、C1に記載の装置。
[C9]
前記プロセッサは、動き冗長性検査に基づいて、前記動きベクトル候補が冗長であるかどうかを決定するように更に構成された、C8に記載の装置。
[C10]
前記動きベクトル候補が候補PU内に含まれており、
前記プロセッサは、前記候補PUのステータスに基づいて、前記動きベクトル候補が冗長であると決定するように更に構成された、C8に記載の装置。
[C11]
前記プロセッサは、前記動きベクトル候補が、前記複数の動きベクトル候補の前記選択されたサブセットのうちの別の動きベクトル候補の動き情報と同じである動き情報を有する場合、前記動きベクトル候補が冗長であると決定するように更に構成された、C8に記載の装置。
[C12]
前記装置がエンコーダを備える、C1に記載の装置。
[C13]
前記装置がデコーダを備える、C1に記載の装置。
[C14]
前記装置が、前記メモリと前記プロセッサとを備える、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップ又はデスクトップコンピュータ、デジタルカメラ、デジタル記録機器、デジタルメディアプレーヤ、ビデオゲーム機器、ビデオゲームコンソール、セルラー又は衛星無線電話、及びビデオ遠隔会議機器のうちの少なくとも1つを更に備える、C1に記載の装置。
[C15]
ビデオデータを符号化する方法であって、前記方法は、
複数の動きベクトル候補に関連付けられた情報を決定することと、前記複数の動きベクトル候補の各々が、並列動き推定領域(MER)中で区分化された複数の予測単位(PU)のうちの少なくとも1つに対応し、前記複数の動きベクトル候補の各々が、利用可能な動きデータを備え、
マージ候補リスト中に含めるべき前記複数の動きベクトル候補のサブセットを選択することと、ここにおいて、選択が、前記複数の動きベクトル候補の各々の優先度レベルに基づく、
前記複数の動きベクトル候補の選択された前記サブセットを含むように前記マージ候補リストを生成することとを備える、方法。
[C16]
前記複数の動きベクトル候補の各々の前記優先度レベルは、前記動きベクトル候補が、前記MER中で区分化された前記複数のPUのうちのいずれかに対応する、頻度に基づいており、より高い頻度がより高い優先度レベルに対応する、C15に記載の方法。
[C17]
前記複数の動きベクトル候補の各々の前記優先度レベルが、前記複数のPUの各々のための重み付け係数に更に基づいており、前記重み付け係数が各PUのサイズに依存し、より大きいサイズがより大きい重み付け係数に対応する、C16に記載の方法。
[C18]
前記複数のPUの各々の前記重み付け係数が各PUの前記サイズに正比例する、C17に記載の方法。
[C19]
前記複数の動きベクトル候補の各々が空間動きベクトル候補と時間動きベクトル候補とのうちの1つを備え、
各空間動きベクトル候補の位置が前記MERの外側に配置された、C16に記載の方法。
[C20]
各空間動きベクトル候補の前記優先度レベルが、対応するPUに対する前記空間動きベクトル候補の相対位置に依存する位置重み付け係数に更に基づく、C19に記載の方法。
[C21]
PUのための左位置候補に対応する空間動きベクトル候補が、PUのための左上位置候補よりも高い位置重み付け係数を有する、C20に記載の方法。
[C22]
前記複数の動きベクトル候補の各々について、前記動きベクトル候補が前記複数の動きベクトル候補のうちの別の動きベクトル候補に対して冗長であるかどうかを決定することと、
前記マージ候補リストから冗長動きベクトル候補を除外することとを更に備える、C15に記載の方法。
[C23]
前記動きベクトル候補が冗長であるかどうかを決定することが、動き冗長性検査に基づく、C22に記載の方法。
[C24]
前記動きベクトル候補が候補PU内に含まれており、
前記動きベクトル候補が冗長であるかどうかを決定することが、前記候補PUのステータスに基づく、C22に記載の方法。
[C25]
前記動きベクトル候補は、前記候補PUがイントラモードでコード化される場合に冗長であると決定される、C24に記載の方法。
[C26]
前記動きベクトル候補は、前記動きベクトル候補が、前記複数の動きベクトル候補の選択された前記サブセットのうちの別の動きベクトル候補の動き情報と同じである動き情報を有する場合、冗長であると決定される、C22に記載の方法。
[C27]
ビデオコード化装置であって、前記装置は、
複数の動きベクトル候補に関連付けられた情報を決定するための手段と、前記複数の動きベクトル候補の各々が、並列動き推定領域(MER)中で区分化された複数の予測単位(PU)のうちの少なくとも1つに対応し、前記複数の動きベクトル候補の各々が、利用可能な動きデータを備え、
マージ候補リスト中に含めるべき前記複数の動きベクトル候補のサブセットを選択するための手段と、ここにおいて、選択が、前記複数の動きベクトル候補の各々の優先度レベルに基づく、
前記複数の動きベクトル候補の選択された前記サブセットを含むように前記マージ候補リストを生成するための手段とを備える、ビデオコード化装置。
[C28]
前記複数の動きベクトル候補の各々の前記優先度レベルは、前記動きベクトル候補が、前記MER中で区分化された前記複数のPUのうちのいずれかに対応する、頻度に基づいており、より高い頻度がより高い優先度レベルに対応する、C27に記載の装置。
[C29]
実行されたとき、装置に、
複数の動きベクトル候補に関連付けられた情報を受信することと、前記複数の動きベクトル候補の各々が、並列動き推定領域(MER)中で区分化された複数の予測単位(PU)のうちの少なくとも1つに対応し、前記複数の動きベクトル候補の各々が、利用可能な動きデータを備え、
マージ候補リスト中に含めるべき前記複数の動きベクトル候補のサブセットを選択することと、ここにおいて、選択が、前記複数の動きベクトル候補の各々の優先度レベルに基づく、
前記複数の動きベクトル候補の前記選択されたサブセットを含むように前記マージ候補リストを生成することとを行わせるコードを記憶した非一時的コンピュータ可読媒体。
[C30]
前記複数の動きベクトル候補の各々の前記優先度レベルは、前記動きベクトル候補が、前記MER中で区分化された前記複数のPUのうちのいずれかに対応する、頻度に基づいており、より高い頻度がより高い優先度レベルに対応する、C29に記載の非一時的コンピュータ可読媒体。

Claims (30)

  1. ビデオデータをコード化するように構成された装置であって、前記装置は、
    複数の動きベクトル候補を記憶するように構成されたメモリと、前記複数の動きベクトル候補の各々が、並列動き推定領域(MER)中で区分化された複数の予測単位(PU)のうちの少なくとも1つに対応し、前記複数の動きベクトル候補の各々が、利用可能な動きデータを備え、
    前記メモリと通信しているプロセッサと
    を備え、前記プロセッサは、
    マージ候補リスト中に含めるべき前記複数の動きベクトル候補のサブセットを選択することと、ここにおいて、選択が、前記複数の動きベクトル候補の各々の優先度レベルに基づく、
    前記複数の動きベクトル候補の選択された前記サブセットを含むように前記マージ候補リストを生成することと
    を行うように構成された、装置。
  2. 前記複数の動きベクトル候補の各々の前記優先度レベルは、前記動きベクトル候補が、前記MER中で区分化された前記複数のPUのうちのいずれかに対応する、頻度に基づいており、より高い頻度がより高い優先度レベルに対応する、請求項1に記載の装置。
  3. 前記複数の動きベクトル候補の各々の前記優先度レベルが、前記複数のPUの各々のための重み付け係数に更に基づき、前記重み付け係数が各PUのサイズに依存し、より大きいサイズがより大きい重み付け係数に対応する、請求項2に記載の装置。
  4. 前記複数のPUの各々の前記重み付け係数が各PUの前記サイズに正比例する、請求項3に記載の装置。
  5. 前記複数の動きベクトル候補の各々が空間動きベクトル候補と時間動きベクトル候補とのうちの1つを備え、
    各空間動きベクトル候補の位置が前記MERの外側に配置された、
    請求項2に記載の装置。
  6. 各空間動きベクトル候補の前記優先度レベルが、対応するPUに対する前記空間動きベクトル候補の相対位置に依存する位置重み付け係数に更に基づく、請求項5に記載の装置。
  7. PUのための左位置候補に対応する空間動きベクトル候補が、PUのための左上位置候補よりも高い位置重み付け係数を有する、請求項6に記載の装置。
  8. 前記プロセッサは、
    前記複数の動きベクトル候補の各々について、前記動きベクトル候補が前記複数の動きベクトル候補のうちの別の動きベクトル候補に対して冗長であるかどうかを決定することと、
    前記マージ候補リストから冗長動きベクトル候補を除外することと
    を行うように更に構成された、請求項1に記載の装置。
  9. 前記プロセッサは、動き冗長性検査に基づいて、前記動きベクトル候補が冗長であるかどうかを決定するように更に構成された、請求項8に記載の装置。
  10. 前記動きベクトル候補が候補PU内に含まれており、
    前記プロセッサは、前記候補PUのステータスに基づいて、前記動きベクトル候補が冗長であると決定するように更に構成された、
    請求項8に記載の装置。
  11. 前記プロセッサは、前記動きベクトル候補が、前記複数の動きベクトル候補の前記選択されたサブセットのうちの別の動きベクトル候補の動き情報と同じである動き情報を有する場合、前記動きベクトル候補が冗長であると決定するように更に構成された、請求項8に記載の装置。
  12. 前記装置がエンコーダを備える、請求項1に記載の装置。
  13. 前記装置がデコーダを備える、請求項1に記載の装置。
  14. 前記装置が、前記メモリと前記プロセッサとを備える、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップ又はデスクトップコンピュータ、デジタルカメラ、デジタル記録機器、デジタルメディアプレーヤ、ビデオゲーム機器、ビデオゲームコンソール、セルラー又は衛星無線電話、及びビデオ遠隔会議機器のうちの少なくとも1つを更に備える、請求項1に記載の装置。
  15. ビデオデータを符号化する方法であって、前記方法は、
    複数の動きベクトル候補に関連付けられた情報を決定することと、前記複数の動きベクトル候補の各々が、並列動き推定領域(MER)中で区分化された複数の予測単位(PU)のうちの少なくとも1つに対応し、前記複数の動きベクトル候補の各々が、利用可能な動きデータを備え、
    マージ候補リスト中に含めるべき前記複数の動きベクトル候補のサブセットを選択することと、ここにおいて、選択が、前記複数の動きベクトル候補の各々の優先度レベルに基づく、
    前記複数の動きベクトル候補の選択された前記サブセットを含むように前記マージ候補リストを生成することと
    を備える、方法。
  16. 前記複数の動きベクトル候補の各々の前記優先度レベルは、前記動きベクトル候補が、前記MER中で区分化された前記複数のPUのうちのいずれかに対応する、頻度に基づいており、より高い頻度がより高い優先度レベルに対応する、請求項15に記載の方法。
  17. 前記複数の動きベクトル候補の各々の前記優先度レベルが、前記複数のPUの各々のための重み付け係数に更に基づいており、前記重み付け係数が各PUのサイズに依存し、より大きいサイズがより大きい重み付け係数に対応する、請求項16に記載の方法。
  18. 前記複数のPUの各々の前記重み付け係数が各PUの前記サイズに正比例する、請求項17に記載の方法。
  19. 前記複数の動きベクトル候補の各々が空間動きベクトル候補と時間動きベクトル候補とのうちの1つを備え、
    各空間動きベクトル候補の位置が前記MERの外側に配置された、
    請求項16に記載の方法。
  20. 各空間動きベクトル候補の前記優先度レベルが、対応するPUに対する前記空間動きベクトル候補の相対位置に依存する位置重み付け係数に更に基づく、請求項19に記載の方法。
  21. PUのための左位置候補に対応する空間動きベクトル候補が、PUのための左上位置候補よりも高い位置重み付け係数を有する、請求項20に記載の方法。
  22. 前記複数の動きベクトル候補の各々について、前記動きベクトル候補が前記複数の動きベクトル候補のうちの別の動きベクトル候補に対して冗長であるかどうかを決定することと、
    前記マージ候補リストから冗長動きベクトル候補を除外することと
    を更に備える、請求項15に記載の方法。
  23. 前記動きベクトル候補が冗長であるかどうかを決定することが、動き冗長性検査に基づく、請求項22に記載の方法。
  24. 前記動きベクトル候補が候補PU内に含まれており、
    前記動きベクトル候補が冗長であるかどうかを決定することが、前記候補PUのステータスに基づく、
    請求項22に記載の方法。
  25. 前記動きベクトル候補は、前記候補PUがイントラモードでコード化される場合に冗長であると決定される、請求項24に記載の方法。
  26. 前記動きベクトル候補は、前記動きベクトル候補が、前記複数の動きベクトル候補の選択された前記サブセットのうちの別の動きベクトル候補の動き情報と同じである動き情報を有する場合、冗長であると決定される、請求項22に記載の方法。
  27. ビデオコード化装置であって、前記装置は、
    複数の動きベクトル候補に関連付けられた情報を決定するための手段と、前記複数の動きベクトル候補の各々が、並列動き推定領域(MER)中で区分化された複数の予測単位(PU)のうちの少なくとも1つに対応し、前記複数の動きベクトル候補の各々が、利用可能な動きデータを備え、
    マージ候補リスト中に含めるべき前記複数の動きベクトル候補のサブセットを選択するための手段と、ここにおいて、選択が、前記複数の動きベクトル候補の各々の優先度レベルに基づく、
    前記複数の動きベクトル候補の選択された前記サブセットを含むように前記マージ候補リストを生成するための手段と
    を備える、ビデオコード化装置。
  28. 前記複数の動きベクトル候補の各々の前記優先度レベルは、前記動きベクトル候補が、前記MER中で区分化された前記複数のPUのうちのいずれかに対応する、頻度に基づいており、より高い頻度がより高い優先度レベルに対応する、請求項27に記載の装置。
  29. 実行されたとき、装置に、
    複数の動きベクトル候補に関連付けられた情報を受信することと、前記複数の動きベクトル候補の各々が、並列動き推定領域(MER)中で区分化された複数の予測単位(PU)のうちの少なくとも1つに対応し、前記複数の動きベクトル候補の各々が、利用可能な動きデータを備え、
    マージ候補リスト中に含めるべき前記複数の動きベクトル候補のサブセットを選択することと、ここにおいて、選択が、前記複数の動きベクトル候補の各々の優先度レベルに基づく、
    前記複数の動きベクトル候補の前記選択されたサブセットを含むように前記マージ候補リストを生成することと
    を行わせるコードを記憶した非一時的コンピュータ可読媒体。
  30. 前記複数の動きベクトル候補の各々の前記優先度レベルは、前記動きベクトル候補が、前記MER中で区分化された前記複数のPUのうちのいずれかに対応する、頻度に基づいており、より高い頻度がより高い優先度レベルに対応する、請求項29に記載の非一時的コンピュータ可読媒体。
JP2016536572A 2013-12-06 2014-11-14 並列動き推定領域のためのスケーラブル実装形態 Expired - Fee Related JP6426184B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/099,800 2013-12-06
US14/099,800 US9432685B2 (en) 2013-12-06 2013-12-06 Scalable implementation for parallel motion estimation regions
PCT/US2014/065757 WO2015084567A1 (en) 2013-12-06 2014-11-14 Scalable implementation for parallel motion estimation regions

Publications (3)

Publication Number Publication Date
JP2017504243A true JP2017504243A (ja) 2017-02-02
JP2017504243A5 JP2017504243A5 (ja) 2017-11-30
JP6426184B2 JP6426184B2 (ja) 2018-11-21

Family

ID=52469891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016536572A Expired - Fee Related JP6426184B2 (ja) 2013-12-06 2014-11-14 並列動き推定領域のためのスケーラブル実装形態

Country Status (7)

Country Link
US (1) US9432685B2 (ja)
EP (1) EP3078197A1 (ja)
JP (1) JP6426184B2 (ja)
KR (1) KR20160095098A (ja)
CN (1) CN105814895A (ja)
BR (1) BR112016012826A2 (ja)
WO (1) WO2015084567A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107197272B (zh) 2011-08-29 2019-12-06 苗太平洋控股有限公司 以合并模式对图像编码的方法
KR102278501B1 (ko) 2011-10-18 2021-07-16 엘지전자 주식회사 인트라 예측 방법 및 그 장치
EP3085085A4 (en) * 2014-01-29 2017-11-08 MediaTek Inc. Method and apparatus for adaptive motion vector precision
US9854261B2 (en) * 2015-01-06 2017-12-26 Microsoft Technology Licensing, Llc. Detecting markers in an encoded video signal
CN108293131B (zh) 2015-11-20 2021-08-31 联发科技股份有限公司 基于优先级运动矢量预测子推导的方法及装置
CN105763600B (zh) * 2016-01-29 2019-06-18 华南理工大学 一种Cache支持的粒通信***及其粒通信方法
US10560718B2 (en) * 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
US10721489B2 (en) * 2016-09-06 2020-07-21 Qualcomm Incorporated Geometry-based priority for the construction of candidate lists
CN107820038A (zh) * 2017-06-06 2018-03-20 深圳市维海德技术股份有限公司 视频传输方法、视频接收设备及图像采集设备
WO2019164031A1 (ko) 2018-02-22 2019-08-29 엘지전자 주식회사 영상 코딩 시스템에서 블록 분할 구조에 따른 영상 디코딩 방법 및 장치
WO2020009960A1 (en) * 2018-07-02 2020-01-09 Futurewei Technologies, Inc. Method and apparatus for motion vector prediction
US10511852B1 (en) * 2018-07-13 2019-12-17 Tencent America LLC Method and apparatus for video coding
US10735763B2 (en) * 2018-07-27 2020-08-04 Tencent America LLC Method and apparatus for motion vector prediction using spatial and temporal combination
WO2020044253A1 (en) 2018-08-28 2020-03-05 Beijing Bytedance Network Technology Co., Ltd. Redundancy removal of partitioning methods
CN114205593B (zh) * 2018-09-14 2022-07-08 北京达佳互联信息技术有限公司 用于视频编码的方法和装置及用于视频解码的方法和装置
MX2021003247A (es) * 2018-09-22 2021-05-12 Lg Electronics Inc Metodo y aparato para procesar se?ales de video usando inter prediccion.
CN110944184B (zh) * 2018-09-25 2022-05-31 华为技术有限公司 视频解码方法及视频解码器
CN111010571B (zh) 2018-10-08 2023-05-16 北京字节跳动网络技术有限公司 组合仿射Merge候选的生成和使用
CN110832869B (zh) * 2019-01-02 2023-04-14 深圳市大疆创新科技有限公司 用于视频编码或解码的运动信息获取方法与装置
WO2020192726A1 (en) 2019-03-27 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. History-based motion vector prediction
KR20220016839A (ko) 2019-06-04 2022-02-10 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 기하학적 분할 모드 코딩을 갖는 모션 후보 리스트
EP3963890A4 (en) 2019-06-04 2022-11-02 Beijing Bytedance Network Technology Co., Ltd. BUILDING A LIST OF MOVEMENT CANDIDATES USING NEIGHBOR BLOCK INFORMATION
EP3967040A4 (en) 2019-06-06 2022-11-30 Beijing Bytedance Network Technology Co., Ltd. CONSTRUCTION OF MOTION CANDIDATE LISTS FOR VIDEO ENCODING
EP3984215A4 (en) 2019-07-14 2022-08-24 Beijing Bytedance Network Technology Co., Ltd. TRANSFORM BLOCK SIZE RESTRICTION IN VIDEO CODING
WO2021057996A1 (en) 2019-09-28 2021-04-01 Beijing Bytedance Network Technology Co., Ltd. Geometric partitioning mode in video coding

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120257678A1 (en) * 2011-04-11 2012-10-11 Minhua Zhou Parallel Motion Estimation in Video Coding
JP2013121167A (ja) * 2011-12-09 2013-06-17 Jvc Kenwood Corp 画像符号化装置、画像符号化方法及び画像符号化プログラム
JP2013529877A (ja) * 2010-07-12 2013-07-22 聯發科技股▲ふん▼有限公司 時間的運動ベクトル予測の方法と装置
US20130279595A1 (en) * 2011-09-23 2013-10-24 Kt Corporation Method for inducing a merge candidate block and device using same

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112012019560B1 (pt) 2010-02-05 2021-08-24 Telefonaktiebolaget Lm Ericsson Método para gerenciar candidatos a vetor de movimento predito, e, aparelhos de codificação e de decodificação de vídeo
KR101752418B1 (ko) * 2010-04-09 2017-06-29 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
US8824558B2 (en) * 2010-11-23 2014-09-02 Mediatek Inc. Method and apparatus of spatial motion vector prediction
US8711940B2 (en) * 2010-11-29 2014-04-29 Mediatek Inc. Method and apparatus of motion vector prediction with extended motion vector predictor
KR102390352B1 (ko) * 2011-01-07 2022-04-25 엘지전자 주식회사 영상 정보 부호화 방법 및 복호화 방법과 이를 이용한 장치
US9866859B2 (en) 2011-06-14 2018-01-09 Texas Instruments Incorporated Inter-prediction candidate index coding independent of inter-prediction candidate list construction in video coding
KR20140004209A (ko) 2011-06-15 2014-01-10 미디어텍 인크. 3d 비디오 코딩에서의 텍스처 이미지 압축 방법 및 장치
CN103621090B (zh) 2011-06-24 2017-09-15 寰发股份有限公司 移除运动向量预测子中冗余的方法与装置
AU2012325419B2 (en) 2011-10-19 2015-11-05 Hfi Innovation Inc. Method and apparatus for derivation of motion vector predictor candidate set
US9143802B2 (en) * 2011-10-31 2015-09-22 Qualcomm Incorporated Fragmented parameter set for video coding
EP2942961A1 (en) * 2011-11-23 2015-11-11 HUMAX Holdings Co., Ltd. Methods for encoding/decoding of video using common merging candidate set of asymmetric partitions
US9729873B2 (en) * 2012-01-24 2017-08-08 Qualcomm Incorporated Video coding using parallel motion estimation
US9338451B2 (en) * 2012-04-12 2016-05-10 Qualcomm Incorporated Common spatial candidate blocks for parallel motion estimation
US9800869B2 (en) * 2012-06-15 2017-10-24 Google Technology Holdings LLC Method and apparatus for efficient slice header processing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013529877A (ja) * 2010-07-12 2013-07-22 聯發科技股▲ふん▼有限公司 時間的運動ベクトル予測の方法と装置
US20120257678A1 (en) * 2011-04-11 2012-10-11 Minhua Zhou Parallel Motion Estimation in Video Coding
US20130279595A1 (en) * 2011-09-23 2013-10-24 Kt Corporation Method for inducing a merge candidate block and device using same
JP2013121167A (ja) * 2011-12-09 2013-06-17 Jvc Kenwood Corp 画像符号化装置、画像符号化方法及び画像符号化プログラム

Also Published As

Publication number Publication date
EP3078197A1 (en) 2016-10-12
CN105814895A (zh) 2016-07-27
US20150163506A1 (en) 2015-06-11
BR112016012826A2 (pt) 2017-08-08
JP6426184B2 (ja) 2018-11-21
KR20160095098A (ko) 2016-08-10
US9432685B2 (en) 2016-08-30
WO2015084567A1 (en) 2015-06-11

Similar Documents

Publication Publication Date Title
JP6426184B2 (ja) 並列動き推定領域のためのスケーラブル実装形態
KR102387972B1 (ko) 히스토리-기반 모션 벡터 예측을 사용한 비디오 코딩 방법 및 장치
JP6585200B2 (ja) ビデオコード化における視差ベクトル予測
KR102295418B1 (ko) 인트라 블록 카피 병합 모드 및 이용가능하지 않는 ibc 참조 영역의 패딩
JP6746620B2 (ja) ビデオコーディングのための照明補償ステータスを決定するシステムおよび方法
US9491458B2 (en) Scalable video coding prediction with non-causal information
WO2019120305A1 (zh) 图像块的运动信息的预测方法、装置及编解码器
US9736489B2 (en) Motion vector determination for video coding
US9426463B2 (en) Restriction of prediction units in B slices to uni-directional inter prediction
JP5805850B2 (ja) ビデオコード化における動きベクトル予測
JP2020150561A (ja) ビデオコーディングのための重複動き補償
JP5778299B2 (ja) 動きベクトル予測
US20130188715A1 (en) Device and methods for merge list reordering in video coding
JP2018524906A (ja) イントラブロックコピーモードでの参照ピクチャリスト構成
JP2014525198A (ja) ビデオコーディングにおける予測データのバッファリング
JP2015533462A (ja) ビデオコーディングのための参照ピクチャステータス
JP6067750B2 (ja) 並列動き推定範囲サイズの暗黙的導出
US11563949B2 (en) Motion vector obtaining method and apparatus, computer device, and storage medium
KR102548345B1 (ko) 비디오 코딩을 위한 서브-블록 시간적 움직임 벡터 예측

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171017

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171017

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180914

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181024

R150 Certificate of patent or registration of utility model

Ref document number: 6426184

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees