JP2015156653A - ビデオコーディングのための適応動き解像度 - Google Patents

ビデオコーディングのための適応動き解像度 Download PDF

Info

Publication number
JP2015156653A
JP2015156653A JP2015042807A JP2015042807A JP2015156653A JP 2015156653 A JP2015156653 A JP 2015156653A JP 2015042807 A JP2015042807 A JP 2015042807A JP 2015042807 A JP2015042807 A JP 2015042807A JP 2015156653 A JP2015156653 A JP 2015156653A
Authority
JP
Japan
Prior art keywords
block
motion vector
pixel precision
reference frame
precision 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
JP2015042807A
Other languages
English (en)
Other versions
JP6042470B2 (ja
JP2015156653A5 (ja
Inventor
ウェイ−ジュン・チエン
Wei-Jung Chien
マルタ・カークゼウィックズ
Karczewicz Marta
ペイソン・チェン
Payson Chen
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 JP2015156653A publication Critical patent/JP2015156653A/ja
Publication of JP2015156653A5 publication Critical patent/JP2015156653A5/ja
Application granted granted Critical
Publication of JP6042470B2 publication Critical patent/JP6042470B2/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/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
    • 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/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • 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
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods 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 picture, frame or field
    • 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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Landscapes

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

Abstract

【課題】ビデオエンコーダが、1/8ピクセル精度動きベクトルと1/4ピクセル精度動きベクトルとの間で適応的に選択することによってビデオデータを符号化し、選択された精度をシグナリングする方法を提供する。【解決手段】ビデオエンコーダが、ブロックに対して、1/4ピクセル精度動きベクトルよりも1/8ピクセル精度動きベクトルの使用が好ましいと判断されたときに、1/8ピクセル精度動きベクトルを使用してビデオデータのブロックを符号化し、ブロックに対する1/8ピクセル精度動きベクトルの使用を示す信号値を生成する。ビデオデコーダが、信号値と符号化されたブロックとを受信し、ブロックが1/8ピクセル精度を使用して符号化されたのか1/4ピクセル精度を使用して符号化されたのかを判断するために信号値を分析し、判断に基づいてブロックを復号するように構成され得る。【選択図】図2

Description

米国特許法第119条に基づく優先権の主張
この出願は、2010年2月19日に出願された米国仮出願第61/306,388号、2010年4月12日に出願された米国仮出願第61/323,221号、および2010年8月23日に出願された米国仮出願第61/376,170号の恩恵を要求するもので、これらのそれぞれは引用により本明細書に組み込まれる。
同時係属特許出願の参照
本特許出願は、2010年8月25日に出願され、本出願の譲受人に譲渡され、引用により本明細書に明確に組み込まれる同時係属の米国仮特許出願61/376,808号に関連する。
本開示は、ビデオコーディングに関する。
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーム機、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263またはITU−T H.264/MPEG−4、Part10、Advanced Video Coding(AVC)によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法などのビデオ圧縮技法を実装して、デジタルビデオ情報をより効率的に記憶、送信および受信する。
ビデオ圧縮技法では、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および/または時間的予測を実行する。ブロックベースのビデオコーディングの場合、ビデオフレームまたはスライスがマクロブロックなどのブロックに区分され得る。各マクロブロックはさらに区分され得る。イントラコード化(I)フレームまたはスライス中のマクロブロックは、近傍マクロブロックに関する空間的予測を使用して符号化される。インターコード化(PまたはB)フレームまたはスライス中のマクロブロックは、同じフレームまたはスライス中の近傍マクロブロックに関する空間的予測、あるいは他の参照フレームに関する時間的予測を使用し得る。
概して、本開示は、ビデオコーディング中の適応動き解像度、例えば、動き推定および動き補償のための適応解像度選択をサポートするための技法について説明する。例えば、ビデオエンコーダが、ビデオデータのブロックを符号化するときに、1/8ピクセル精度または1/4ピクセル精度のいずれかを選択するように構成され得る。ビデオエンコーダがブロックに対して1/8ピクセル精度を選択すると、ビデオエンコーダは、ブロックの動きベクトルを参照動きベクトル(reference motion vector)と同じ精度に量子化することによって、動きベクトルを符号化し得る。ビデオエンコーダは、本開示の技法を使用して、ブロックに対する1/8ピクセル精度の選択をシグナリングし得る。いくつかの例で、そのような信号は特定のコンテキスト内で解釈され得、コンテキストは隣接ブロックが1/8ピクセル精度を使用して符号化されたのか、1/4ピクセル精度を使用して符号化されたのか、またはそれらの組合せを使用して符号化されたのかに関係し得る。
一例では、方法が、ブロックに対して、1/4ピクセル精度動きベクトルよりも1/8ピクセル精度動きベクトルの使用が好ましいと判断されたときに、ビデオエンコーダで、1/8ピクセル精度動きベクトルを使用してビデオデータのブロックを符号化することと、ブロックに対する1/8ピクセル精度動きベクトルの使用を示す信号値を生成することと、符号化されたブロックと信号値とを出力することとを含む。
別の例では、装置が、ブロックに対して、1/4ピクセル精度動きベクトルよりも1/8ピクセル精度動きベクトルの使用が好ましいと判断されたときに、1/8ピクセル精度動きベクトルを使用してビデオデータのブロックを符号化し、ブロックに対する1/8ピクセル精度動きベクトルの使用を示す信号値を生成するためのビデオエンコーダと、符号化されたブロック並びに信号値を出力するための出力インターフェースとを含む。
別の例では、装置が、ブロックに対して、1/4ピクセル精度動きベクトルよりも1/8ピクセル精度動きベクトルの使用が好ましいと判断されたときに、1/8ピクセル精度動きベクトルを使用してビデオデータのブロックを符号化するための手段と、ブロックに対する1/8ピクセル精度動きベクトルの使用を示す信号値を生成するための手段と、符号化されたブロック並びに信号値を出力するための手段とを含む。
別の例では、コンピュータ可読記憶媒体などのコンピュータ可読媒体が、実行されると、ブロックに対して、1/4ピクセル精度動きベクトルよりも1/8ピクセル精度動きベクトルの使用が好ましいと判断されたときに、1/8ピクセル精度動きベクトルを使用してビデオデータのブロックを符号化することと、ブロックに対する1/8ピクセル精度動きベクトルの使用を示す信号値を生成することと、符号化されたブロック並びに信号値を出力することとをプログラム可能なプロセッサに行わせる命令を含んでおり、例えば、それらの命令で符号化される。
別の例では、方法が、ビデオデコーダで、ビデオデータの符号化されたブロック、並びにビデオデータの符号化されたブロックが1/8ピクセル精度動きベクトルを使用して符号化されたことを示す信号値を受信することと、そのビデオデータのブロックが1/8ピクセル精度動きベクトルを使用して符号化されたと判断するために信号値を分析することと、信号値に基づいて1/8ピクセル精度動きベクトルを使用したビデオデータのブロックを復号することとを含む。
別の例では、装置が、ビデオデータの符号化されたブロック、並びにビデオデータの符号化されたブロックが1/8ピクセル精度動きベクトルを使用して符号化されたことを示す信号値を受信するための入力インターフェースと、そのビデオデータのブロックが1/8ピクセル精度動きベクトルを使用して符号化されたと判断するために信号値を分析し、信号値に基づいて1/8ピクセル精度動きベクトルを使用したビデオデータのブロックを復号するためのビデオデコーダとを含む。
別の例では、装置が、ビデオデータの符号化されたブロック、並びにビデオデータの符号化されたブロックが1/8ピクセル精度動きベクトルを使用して符号化されたことを示す信号値を受信するための手段と、そのビデオデータのブロックが1/8ピクセル精度動きベクトルを使用して符号化されたと判断するために信号値を分析するための手段と、信号値に基づいて1/8ピクセル精度動きベクトルを使用するビデオデータのブロックを復号するための手段とを含む。
別の例では、コンピュータ可読記憶媒体が、実行されると、ビデオデータの符号化されたブロック、並びにビデオデータの符号化されたブロックが1/8ピクセル精度動きベクトルを使用して符号化されたことを示す信号値を受信することと、そのビデオデータのブロックが1/8ピクセル精度動きベクトルを使用して符号化されたと判断するために信号値を分析することと、信号値に基づいて1/8ピクセル精度動きベクトルを使用するビデオデータのブロックを復号することとをプロセッサに行わせる命令を備える。
1つまたは複数の例の詳細は、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、説明および図面、並びに特許請求の範囲から明らかになるであろう。
動きベクトルに対して1/8ピクセル精度または1/4ピクセル精度のいずれかを利用し得る例示的なビデオ符号化および復号システムを示すブロック図。 1/8ピクセル精度または1/4ピクセル精度のいずれかを使用してブロックを選択的に符号化するための技法を実装し得るビデオエンコーダの一例を示すブロック図。 符号化されたビデオシーケンスを復号するビデオデコーダの一例を示すブロック図。 フルピクセル位置(full pixel position)についてのフラクショナルピクセル位置(fractional pixel positions)を示す概念図。 現在のブロック、例えば、符号化されるべきブロックの符号化コンテキストを判断するために使用され得るブロックを示す概念図。 1/8ピクセル精度動きベクトルまたは1/4ピクセル精度動きベクトルのいずれかを使用してビデオデータのブロックを符号化すると共に、デコーダに対して精度の選択をシグナリングするための例示的な方法を示すフローチャート。 符号化されたブロックの動きベクトルの精度を示す信号値を使用し、符号化されたブロックを復号するための例示的な方法を示すフローチャート。
概して、本開示は、1/8ピクセル(すなわち、1ピクセルの1/8)精度を有する動きベクトルの使用をサポートするための技法について説明する。本開示中の「1/8ピクセル」精度という用語は、1ピクセルの1/8の精度、例えば、フルピクセル位置(0/8)、1ピクセルの1/8、1ピクセルの2/8(すなわち1ピクセルの1/4)、1ピクセルの3/8、1ピクセルの4/8(すなわち1ピクセルの1/2)、1ピクセルの5/8、1ピクセルの6/8(すなわち1ピクセルの3/4)、または1ピクセルの7/8のうちの1つを指すものとする。
従来のH.264エンコーダおよびデコーダは、1/4ピクセル精度を有する動きベクトルをサポートする。いくつかの事例で、1/8ピクセル精度は1/4ピクセル精度に勝るいくつかの利点を提供し得る。但し、あらゆる動きベクトルを1/8ピクセル精度に符号化することは、非常に多くのコーディングビットを必要とし得、それは1/8ピクセル精度動きベクトルの利益を上回り得る。本開示の技法は、適切な場合に1/8ピクセル精度動きベクトルを使用することと、他の場合に標準的な1/4ピクセル精度動きベクトルを使用することと、特定のブロックに対してエンコーダが使用した精度をデコーダが判断し得るように、1/8ピクセル精度動きベクトルが使用されたときにそれらの使用をシグナリングすることとを含む。
ビデオエンコーダは、代替的に動き予測子(motion predictor)と呼ばれる「予測子」動きベクトルに関連してブロックの動きベクトルを符号化し得る。所与のブロックの動き予測子は、動きベクトルが符号化されるブロックに隣接するブロックの動きベクトルの中央値として選択され得る。概して、動きベクトルを符号化するために、ビデオエンコーダは動きベクトルと予測子との間の差分を計算する。1/8ピクセル精度動きベクトルを導入することによって、動きベクトルと予測子とは異なる精度を有し得る。符号化されるべき動きベクトルとそれの動き予測子との間の差分を適切に計算するために、ビデオエンコーダは、動きベクトルと動き予測子とが同じ精度を有することを保証し得る。
本開示は、動き予測子に関連して動きベクトルを符号化するための様々な例示的な方法を提供する。一例で、ビデオエンコーダは、符号化のために全ての動きベクトルを1つの解像度に変換するように構成され得る。すなわち、符号化されるべき動きベクトルと予測子との間の差分を計算するために、エンコーダは、動きベクトルと動き予測子とをグローバル解像度に変換し得る。例えば、エンコーダは、差分を計算するために、全ての動きベクトルを1/4ピクセル精度に変換し得るか、または全ての動きベクトルを1/8ピクセル精度に変換し得る。別の例で、ビデオエンコーダは、動き予測子を、符号化されるべき動きベクトルと同じ解像度に量子化し得る。
本開示はまた、特定の動きベクトルに対して1/4ピクセル精度が使用されたのか1/8ピクセル精度が使用されたのかをシグナリングするための技法を提供する。いくつかの例で、ビデオエンコーダは、フラグの値が、動きベクトルに対する1/8ピクセル精度の使用または1/4ピクセル精度の使用を示すように、あらゆる動きベクトルのために1ビットフラグを追加するように構成され得る。本開示は、1/8ピクセル精度動きベクトルの存在をシグナリングするための様々な他の方法も提案する。
一例で、ビデオエンコーダは、各動きベクトルの精度をシグナリングするために1ビットフラグを使用し得るが、マクロブロックデータ自体を用いるのではなく、再設計された参照フレームインデックス値の一部としてフラグを含み得る。参照フレームインデックスは一般に可変長コード(VLC)に対応する。本開示は、1/4ピクセル精度または1/8ピクセル精度を示す1ビットフラグが参照フレームインデックス値を表す可変長コード中に含まれ得るように可変長コードを設計することを提案する。例えば、ビデオエンコーダは、潜在的な参照フレームインデックス値、並びに参照フレームのブロックを指す動きベクトルが1/8ピクセル精度を使用する可能性を考慮し得るコンテキスト適応型可変長コーディング(CAVLC)アルゴリズムを実行するように構成され得る。
別の例では、フレームを符号化するときに、(例えば、ref_idx0を有する)最新の参照フレームが参照のために使用されたときのみ、動き解像度適応(すなわち、1/4ピクセル精度または1/8ピクセル精度のいずれかを使用する能力)が行われ得る。従って、この例では、最新の参照フレーム(すなわち、参照フレームのリスト中の直近の参照フレーム)以外の参照フレームに関連してブロックが符号化されたときは、ブロックの動きベクトルは1/4ピクセル解像度のみを有し得、他の場合に、精度は、例えば、1ビットフラグによってシグナリングされ得るか、あるいはデフォルトとして1/8ピクセル精度を有すると推定され得る。
本開示は、ブロックのコンテキストに基づいて、ブロックの動きベクトルが1/8ピクセル精度を使用したのか1/4ピクセル精度を使用したのかについての指示を変化させるための技法をさらに提供する。コンテキストは、隣接ブロックが、1/8ピクセル精度をもつ動きベクトルを含むか、または1/4ピクセル精度をもつ動きベクトルを含むかに対応し得る。隣接ブロックは、現在のブロックの上のブロックと現在のブロックの左のブロックとに対応し得る。コンテキストは、隣接ブロックの動きベクトルがすべて1/8ピクセル精度を使用するときと、隣接ブロックの動きベクトルがすべて1/4ピクセル精度を使用するときと、隣接ブロックの動きベクトルが1/8ピクセルと1/4ピクセル精度との混合を使用するときとに対応し得る。
上記の状況(すべて1/8精度、すべて1/4精度、または混合精度)は、コード化されるべき現在のブロックの符号化コンテキストと呼ばれ得る。現在のブロックが隣接ブロックの動きベクトルと同じ精度の動きベクトルを使用することから恩恵を受け得るという認識において、本開示は、現在のブロックの符号化コンテキストごとに異なるコード(例えば、可変長コード)を使用するための技法を提供する。特定の符号化コンテキストのコードは、符号化コンテキストにおけるより可能性が高い精度が、相対的に短いコードを使用して示され、より可能性が低い精度は、相対的に長いコードを使用して示されるように設計され得る。
図1は、動きベクトルに対して1/8ピクセル精度または1/4ピクセル精度のいずれかを利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示すように、システム10は、通信チャネル16を介して符号化ビデオを宛先デバイス14に送信するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、広範囲のデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、いわゆるセルラー電話または衛星無線電話のワイヤレスハンドセットなどのワイヤレス通信デバイス、または通信チャネル16を介してビデオ情報を通信することができ、その場合、通信チャネル16がワイヤレスである任意のワイヤレスデバイスを備え得る。但し、動きベクトルに対する、1/8ピクセル精度と1/4ピクセル精度との間の選択と、この選択をシグナリングすることと、得られた動きベクトルを符号化することとに関係する本開示の技法は、必ずしもワイヤレス適用例またはワイヤレス設定に限定されるわけではない。例えば、これらの技法は、無線テレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、インターネットビデオ送信、記憶媒体上に符号化される符号化デジタルビデオ、または他のシナリオに適用され得る。従って、通信チャネル16は、符号化ビデオデータの送信に好適なワイヤレスまたはワイヤード媒体の任意の組合せを備え得る。
図1の例で、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、変調器/復調器(モデム)22と、送信機24とを含む。宛先デバイス14は、受信機26と、モデム28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のビデオエンコーダ20は、動きベクトルに対する1/8ピクセル精度と1/4ピクセル精度との間の選択のため、この選択をシグナリングするため、および得られた動きベクトルを符号化するための技法を適用するように構成され得る。他の例で、ソースデバイスおよび宛先デバイスは他の構成要素または構成を含み得る。例えば、ソースデバイス12は、外部カメラなど、外部ビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
図1の図示のシステム10は一例にすぎない。動きベクトルに対する1/8ピクセル精度と1/4ピクセル精度との間の選択のため、この選択をシグナリングするため、および得られた動きベクトルを符号化するための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。概して本開示の技法はビデオ符号化デバイスによって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。さらに、本開示の技法はビデオプリプロセッサによっても実行され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が宛先デバイス14に送信するためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14の各々がビデオ符号化構成要素と復号構成要素とを含むので、デバイス12、14は、実質的に対称的に動作し得る。従って、システム10は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、またはビデオ電話のためのビデオデバイス12とビデオデバイス14との間の一方向または双方向のビデオ送信をサポートし得る。
ソースデバイス12のビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、予めキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからのビデオフィードを含み得る。さらなる代替として、ビデオソース18は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ発生ビデオとの組合せを発生し得る。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き携帯電話またはビデオ電話を形成し得る。但し、上述のように、本開示で説明する技法は、一般にビデオコーディングに適用可能であり、ワイヤレスおよび/またはワイヤードアプリケーションに適用され得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ発生ビデオはビデオエンコーダ20によって符号化され得る。次いで、符号化ビデオ情報は、通信規格に従ってモデム22によって変調され、送信機24を介して宛先デバイス14に送信され得る。モデム22は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機24は、増幅器、フィルタ、および1つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
宛先デバイス14の受信機26はチャネル16を介して情報を受信し、モデム28は情報を復調する。この場合も、ビデオ符号化プロセスは、動きベクトルに対して1/8ピクセル精度および1/4ピクセル精度の間で選択し、この選択をシグナリングし、得られた動きベクトルを符号化するために本明細書で説明する技法のうちの1つまたは複数を実装し得る。チャネル16を介して通信される情報は、ビデオエンコーダ20によって定義され、またビデオデコーダ30によって使用される、マクロブロックおよび他のコード化ユニット、例えば、GOPの特性および/または処理を記述するシンタックス要素を含むシンタックス情報を含み得る。ディスプレイデバイス32は、復号されたビデオデータをユーザに対して表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
図1の例で、通信チャネル16は、無線周波数(RF)スペクトルあるいは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレスおよびワイヤード媒体の任意の組合せを備え得る。通信チャネル16は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成し得る。通信チャネル16は、一般に、ワイヤードまたはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス12から宛先デバイス14に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル16は、ソースデバイス12から宛先デバイス14への通信を可能にするのに有用なルータ、スイッチ、基地局、または任意の他の機器を含むことができる。
ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4、Part10、Advanced Video Coding(AVC)とも呼ばれるITU−T H.264規格など、ビデオ圧縮規格に従って動作し得る。但し、本開示の技法は、いかなる特定のコーディング規格にも限定されない。他の例には、MPEG−2およびITU−T H.263がある。図1には示されていないが、いくつかの態様で、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびデコーダと統合され得、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、MUX−DEMUXユニットはITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
ITU−T H.264/MPEG−4(AVC)規格は、Joint Video Team(JVT)として知られる共同パートナーシップの成果として、ISO/IEC Moving Picture Experts Group(MPEG)とともにITU−T Video Coding Experts Group(VCEG)によって策定された。いくつかの態様で、本開示で説明する技法は、H.264規格に概して準拠するデバイスに適用され得る。H.264規格は、ITU−T研究グループによる2005年3月付けのITU−T勧告H.264「Advanced Video Coding for generic audiovisual services」に記載されており、本明細書ではH.264規格またはH.264仕様、あるいはH.264/AVC規格または仕様と呼ぶことがある。Joint Video Team(JVT)はH.264/MPEG−4 AVCへの拡張に取り組み続けている。
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなどの様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれかは複合エンコーダ/デコーダ(コーデック)の一部としてそれぞれのカメラ、コンピュータ、モバイルデバイス、加入者デバイス、ブロードキャストデバイス、セットトップボックス、サーバなどに統合され得る。
ビデオシーケンスは、一般に一連のビデオフレームを含む。ピクチャグループ(GOP)は、概して一連の1つまたは複数のビデオフレームを備える。GOPは、GOP中に含まれるいくつかのフレームを記述するシンタックスデータを、GOPのヘッダ中、GOPの1つまたは複数のフレームのヘッダ中、または他の場所に含み得る。各フレームは、それぞれのフレームの符号化モードについて説明するフレームシンタックスデータを含み得る。ビデオエンコーダ20は、一般にビデオデータを符号化するために、個々のビデオフレーム内のビデオブロックに対して動作する。ビデオブロックは、マクロブロック、マクロブロックのパーティション、あるいはブロックまたはマクロブロックの集合に対応することがある。ビデオブロックは、固定サイズまたは変動サイズを有し得、指定のコーディング規格に応じてサイズが異なり得る。各ビデオフレームは複数のスライスを含み得る。各スライスは複数のマクロブロックを含み得、それらはサブブロックとも呼ばれるパーティションに配置され得る。
H.263、H.264、H.265、MPEG−2、およびMPEG−4、H.264/AVC(高度ビデオコーディング)など、多くの普及しているビデオコーディング規格は、動き補償予測技法を利用する。イメージまたはビデオのフレームは複数のマクロブロックに区分され得、各マクロブロックはさらに区分され得る。Iフレーム中のマクロブロックは、空間ネイバー(すなわち、Iフレームの他のブロック)からの予測を使用することによって符号化され得る。PフレームまたはBフレーム中のマクロブロックは、それらの空間ネイバーからの予測(空間的予測またはイントラモード符号化)または他のフレーム中のエリアからの予測(時間的予測またはインターモード符号化)のいずれかを使用することによって符号化され得る。ビデオコーディング規格は、コーディング情報を表すためのシンタックス要素を定義する。例えば、マクロブロックごとに、H.264は、マクロブロックが区分される方法と予測の方法(空間または時間)とを表すmb_type値を定義する。
ビデオエンコーダ20は、マクロブロックのパーティションごとに個別の動きベクトルを与え得る。例えば、ビデオエンコーダ20がフルマクロブロックを単一のパーティションとして使用することを選択した場合、ビデオエンコーダ20はマクロブロックに対して1つの動きベクトルを与え得る。別の例として、ビデオエンコーダ20が16×16ピクセルマクロブロックを4つの8×8パーティションに区分することを選択した場合、ビデオエンコーダ20は、4つの動きベクトル、すなわちパーティションごとに1つの動きベクトルを与え得る。パーティション(またはサブマクロブロックユニット)ごとに、ビデオエンコーダ20は、動きベクトル情報を表すmvd値とref_idx値とを与え得る。mvd(動きベクトル差分)値は、パーティションの符号化された動きベクトルを動き予測子に関連して表し得る。ref_idx(参照インデックス)値は、潜在的な参照ピクチャ(すなわち、参照フレーム)のリストへのインデックスを表し得る。一例として、H.264は、参照ピクチャの2つのリスト、すなわちリスト0とリスト1とを与える。ref_idx値は、2つのリストのうちの1つの中のピクチャを識別し得る。ビデオエンコーダ20は、ref_idx値が関係するリストを示す情報も与え得る。
一例として、ITU−T H.264規格は、ルーマ(ruma)成分については16×16、8×8、または4×4、およびクロマ成分については8×8など、様々なブロックパーティションサイズのイントラ予測をサポートし、ならびにルーマ成分については16×16、16×8、8×16、8×8、8×4、4×8および4×4、およびクロマ(chroma)成分については対応するスケーリングされたサイズなど、様々なブロックサイズのインター予測をサポートする。本開示で、「N×N」と「N×(by)N」は、垂直寸法(vertical dimension)および水平寸法(horizontal dimension)に関するブロックのピクセル寸法、例えば、16×16ピクセルまたは16×(by)16ピクセルを指すために互換的に使用され得る。一般に、16×16ブロックは、垂直方向に16ピクセルを有し(y=16)、水平方向に16ピクセルを有する(x=16)。同様に、N×Nブロックは、一般に、垂直方向にNピクセルを有し、水平方向にNピクセルを有し、Nは、非負整数値を表す。ブロック中のピクセルは行と列に配置され得る。さらに、ブロックは、必ずしも水平方向と垂直方向とに同数のピクセルを有する必要はない。例えば、ブロックはN×Mピクセルを備え得、Mは、必ずしもNに等しいとは限らない。
16×16よりも小さいブロックサイズは16×16マクロブロックのパーティションと呼ばれることがある。ビデオブロックは、ピクセル領域中のピクセルデータのブロックを備え得、あるいは、例えば、コード化ビデオブロックと予測ビデオブロックとのピクセル差分を表す残差ビデオブロックデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット(wavelet)変換、または概念的に同様の変換などの変換の適用後の、変換領域中の変換係数のブロックを備え得る。場合によっては、ビデオブロックは、変換領域中の量子化変換係数のブロックを備え得る。
より小さいビデオブロックは、より良好な解像度を与えることができ、高い詳細レベルを含むビデオフレームのロケーションのために使用され得る。一般に、マクロブロック(macroblocks)および様々なパーティション(various partitions)はサブブロック(sub-blocks)と呼ばれることがあり、ビデオブロックと見なされ得る。さらに、スライスは、マクロブロックおよび/またはサブブロックなどの複数のビデオブロックであると見なされ得る。各スライスはビデオフレームの単独で復号可能なユニットであり得る。代替的に、フレーム自体が復号可能なユニットであり得るか、またはフレームの他の部分が復号可能なユニットとして定義され得る。「コード化ユニット」または「コーディングユニット」という用語は、フレーム全体、フレームのスライス、シーケンスとも呼ばれるピクチャグループ(GOP)など、ビデオフレームの単独で復号可能な任意のユニット、または適用可能なコーディング技法に従って定義される別の単独で復号可能なユニットを指すことがある。
H.264規格は、1/4ピクセル精度を有する動きベクトルをサポートする。すなわち、H.264をサポートするエンコーダ、デコーダ、およびエンコーダ/デコーダ(コーデック)は、フルピクセル位置(full pixel position)または15個のフラクショナルピクセル位置(fractional pixel positions)のうちの1つのいずれかを指す動きベクトルを使用し得る。フラクショナルピクセル位置の値は、適応補間フィルタまたは固定補間フィルタを使用して判断され得る。いくつかの例で、H.264準拠デバイスは、1/2ピクセル位置の値を計算するために、係数[1,−5,20,20,−5,1]を有する6タップウィーナーフィルタ(Wiener filters)を使用し、次いで、残りの1/4ピクセル位置の値を判断するために双一次フィルタ(bilinear filters)を使用し得る。適応補間フィルタは、補間フィルタ係数を適応的に定義するために符号化プロセス中に使用され得、従って、フィルタ係数は、適応補間フィルタを実行するときに経時的に変化し得る。
本開示の技法によれば、ビデオエンコーダ20は、ビデオデータのブロックの動きベクトルを計算するときに、1/8ピクセル精度および1/4ピクセル精度の間で選択するように構成され得る。ビデオエンコーダ20は、動き推定プロセス中にこの選択を実行し得る。ビデオエンコーダ20は、動きベクトルに対して1/8ピクセル精度を選択するのか1/4ピクセル精度を選択するのかを判断するときに、様々な基準を評価し得る。例えば、ビデオエンコーダ20は、2つの符号化パス、すなわち1/4ピクセル精度を使用する第1のパスと1/8ピクセル精度を使用する第2のパスとを実行するように構成され得る。ビデオエンコーダ20は、1/4ピクセル精度および1/8ピクセル精度の間で選択するためにレート歪最適化プロセスを利用し得る。すなわち、ビデオエンコーダ20は、次いで、第1の符号化パスがより良好なレート歪値を与えるのか、または第2の符号化パスがより良好なレート歪値を与えるのかを判断し得る。ビデオエンコーダ20は、誤差とビットレートとの重み付けされた組合せとして1/8ピクセル精度または1/4ピクセル精度を使用するコストを計算し、より低いコストを与える精度を選択し得る。いくつかの例で、ビデオエンコーダ20は、2つのフル符号化パスを実行するのではなく、動きベクトル探索中にレート歪最適化を実行し得る。
ビデオエンコーダ20がビデオデータの特定のブロックに対して1/8ピクセル精度を選択すると、ビデオエンコーダ20は、1/8ピクセル位置の値を補間するように構成され得る。いくつかの例で、ビデオエンコーダ20は、最初に、1/2ピクセル位置の値を補間し、次いで、1/4ピクセル位置の値を補間し、次いで、1/8ピクセル位置の値を補間し得る。ビデオエンコーダ20は、1/2ピクセル位置と、1/4ピクセル位置と、1/8ピクセル位置とに対して異なるタイプの補間フィルタを使用し得る。例えば、ビデオエンコーダ20は、様々なフラクショナルピクセル位置に対して、ウィーナーフィルタまたは双一次フィルタなど、適応補間フィルタおよび/または固定補間フィルタを使用し得る。
ビデオエンコーダ20がビデオデータの特定のブロックに対して1/8ピクセル精度を選択すると、ビデオエンコーダ20は、そのブロックに対する1/8ピクセル精度の使用をシグナリングするように構成され得る。1/8ピクセル精度の使用または1/4ピクセル精度の使用をシグナリングすることによって、ビデオデコーダ30などのデコーダは、動きベクトルを適切に利用するために、動きベクトルが1/8ピクセル精度を使用するのか1/4ピクセル精度を使用するのかを判断することが可能であり得る。いくつかの例で、ビデオエンコーダ20は、対応する動きベクトルが1/8ピクセル精度を使用するのか1/4ピクセル精度を使用するのかを示す1ビットフラグを全ての動きベクトルに追加するように構成され得る。例えば、ビデオエンコーダ20は、動きベクトルに対して1/8ピクセル精度が使用されるときにフラグを設定し(例えば、フラグの値を「1」に設定し)、動きベクトルに対して1/8ピクセル精度が使用されないときにフラグをクリアし得る(例えば、フラグの値を「0」に設定する)。
別の例で、ビデオエンコーダ20は、マクロブロックの全ての動きベクトルが1/8ピクセル精度を使用するのか1/4ピクセル精度を使用するのかを示す1ビットフラグをマクロブロックに追加するように構成され得る。マクロブロックは、1つまたは複数の動きベクトルに関連し得る。例えば、マクロブロックの各パーティションは、それ自体のそれぞれの動きベクトルを有し得る。従って、ビデオエンコーダ20は、マクロブロックレイヤにおいて、例えばマクロブロックヘッダ中で、1/8ピクセル精度の使用または1/4ピクセル精度の使用をシグナリングし得る。すなわち、マクロブロックの動きベクトルの各々が同じ精度を使用するように、マクロブロックの1ビットフラグは、そのマクロブロックの動きベクトルの各々が1/8ピクセル精度を使用するのか1/4ピクセル精度を使用するのかを示し得る。いくつかの例で、ビデオエンコーダ20は、同じ精度を有する動きベクトルを使用してフルフレームを符号化し得、例えば、1/4ピクセル精度を有する動きベクトルを使用して1つのフレームを符号化し、1/8ピクセル精度を有する動きベクトルを使用して別のフレームを符号化する。従って、ビデオエンコーダ20は、フレームの動きベクトルが1/4ピクセル精度を有するのか1/8ピクセル精度を有するのかをシグナリングするために、フレームレベルシグナリングを利用し得る。
別の例として、ビデオエンコーダ20は、動きベクトルが1/4ピクセル精度を使用するのか1/8ピクセル精度を使用するのかについてのシグナリングを、動きベクトルの参照フレームインデックス(ref_idx)値と組み合わせ得る。潜在的な参照フレームインデックス値は、この追加の情報に適応するために、例えば、コンテキスト適応型可変長コーディング(CAVLC:context-adaptive variable length coding)アルゴリズムを実行することによって再設計され得る。ビデオエンコーダ20は、参照フレームインデックス値を設計するために、特定の参照フレームを指す動きベクトルが1/4ピクセル精度よりも1/8ピクセル精度から恩恵を受ける可能性を示す統計をもつCAVLCアルゴリズムを実装するユニットまたはモジュールを提供し得る。このようにして、特定の参照フレームについて最も可能性が高い精度を示す参照フレームインデックス値は、その参照フレームについて可能性がより低い精度を示す参照フレームインデックス値よりも相対的に短い長さを有し得る。
いくつかの例で、ビデオエンコーダ20はさらに、潜在的なコードワードのセットを生成し得、コードワードのセットの各々はブロックの様々なコンテキストに関係する。コンテキストは、隣接ブロックが1/8ピクセル精度を使用するのか1/4ピクセル精度を使用するのかに関係し得る。一例で、関係する隣接ブロックは、現在のブロックの上のブロックと現在のブロックの左のブロックとに対応し得る。従って、いくつかの例で、ビデオエンコーダ20は、動きベクトルの参照フレームインデックスのコードワードを選択し、4つの符号化コンテキストのうちの1つに対応する、コードワードの4つのセットのうちの1つから、動きベクトルが1/8ピクセル精度であるのか1/4ピクセル精度であるのかを示し得る。
第1のコンテキストは、上のブロックと左のブロックの両方の動きベクトルが1/4ピクセル精度を使用する場合であり得る。第2のコンテキストは、上のブロックと左のブロックの両方の動きベクトルが1/8ピクセル精度を使用する場合であり得る。第3のコンテキストは、上のブロックの動きベクトルが1/8ピクセル精度を使用し、左のブロックの動きベクトルが1/4ピクセル精度を使用する場合であり得る。第4のコンテキストは、上のブロックの動きベクトルが1/4ピクセル精度を使用し、左のブロックの動きベクトルが1/8ピクセル精度を使用する場合であり得る。参照フレームインデックスのコードワードの4つのセットがあり得、各々が4つのコンテキストのうちの1つに対応する。従って、ビデオエンコーダ20は、動きベクトルのブロックが生じるコンテキストに対応するセットから、動きベクトルの参照フレームインデックスのコードワードを選定し得る。
ビデオエンコーダ20は、1/8ピクセル精度動きベクトルを使用すべきかどうかの選択を、最新の参照フレームの分析に限定し得る。すなわち、ビデオエンコーダ20は、リスト0およびリスト1中の、参照フレームインデックス値0を有する参照フレームを分析するときのみ、1/8ピクセル精度を使用すべきかまたは1/4ピクセル精度を使用すべきかを判断し得る。ビデオエンコーダ20は、リスト0およびリスト1中の、非ゼロ参照フレームインデックス値を有する参照フレームに対して、常に1/4ピクセル精度を使用するように構成され得る。リスト0またはリスト1のいずれかの中の、参照フレームインデックス値0を有する参照フレームを分析するときに、ビデオエンコーダ20は、1/8ピクセル精度動きベクトルを使用すべきかまたは1/4ピクセル精度動きベクトルを使用すべきかを判断するために、上記で説明した基準または他の基準を分析するように構成され得る。
さらに、ビデオエンコーダ20は、リスト0またはリスト1中の、0に等しい参照フレームインデックス値を有する参照フレームの一部分を指す動きベクトルに対する選択をシグナリングするように構成され得る。同様に、ビデオデコーダ30は、0以外の参照フレームインデックスを有する動きベクトルが1/4ピクセル精度であると仮定し、0に等しい参照フレームインデックス値を有する動きベクトルについて1/8ピクセル精度の使用かまたは1/4ピクセル精度の使用かを示すフラグを分析するように構成され得る。いくつかの例で、ビデオエンコーダ20は、参照フレームインデックス値0を有するフレームに加えて、またはその代替として、他の特定のフレームが1/8ピクセル精度を使用して符号化され得るように構成され得る。
ビデオエンコーダ20は、動き予測子に関連してブロックの動きベクトルを符号化するようにさらに構成され得る。動き予測子は、既に符号化された隣接ブロックの動きベクトルの平均として選択され得る。現在のブロックの動きベクトルを符号化するために、ビデオエンコーダ20は動きベクトルと動き予測子との間の差分を計算し得る。いくつかの例で、ビデオエンコーダ20は、常に所定の動き解像度で動きベクトルを符号化し得る。すなわち、ビデオエンコーダ20は、常に1/8ピクセル精度または1/4ピクセル精度で動きベクトルを符号化し得る。いくつかの例で、ビデオエンコーダ20は、現在の動きベクトルと同じ動き解像度に動き予測子を量子化し得る。
ビデオエンコーダ20は、これらの方法または別の方法のうちの所定の1つを使用するように構成され得、ビデオデコーダ30は、同様に、符号化された動きベクトルを復号するために同じ方法を使用するように構成され得る。代替的に、ビデオエンコーダ20は、単一のビットストリーム中の異なる動きベクトル符号化方法を利用するために、シーケンスパラメータセット、スライスパラメータセット、またはピクチャパラメータセット中の動きベクトルを符号化するために使用された予測方法をシグナリングし得る。
予測データと残差データとを生成するためのイントラ予測コーディングまたはインター予測コーディングの後、および変換係数を生成するための(H.264/AVCで使用される4×4または8×8整数変換、あるいは離散コサイン変換DCTなどの)任意の変換の後、変換係数の量子化が実行され得る。量子化は、一般に、係数を表すために使用されるデータ量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。例えば、量子化中にnビット値がmビット値に切り捨てられ得、但し、nはmよりも大きい。
量子化の後、コンテンツ適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、または別のエントロピーコーディング方法に従って、量子化されたデータのエントロピーコーディングが実行され得る。エントロピーコーディング用に構成された処理ユニットまたは別の処理ユニットは、量子化係数のゼロランレングスコーディング、および/またはコード化ブロックパターン(CBP)値、マクロブロックタイプ、コーディングモード、(フレーム、スライス、マクロブロック、またはシーケンスなどの)コード化ユニットの最大マクロブロックサイズなどのシンタックス情報の生成など、他の処理機能を実行し得る。
ビデオエンコーダ20は、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、スライスベースのシンタックスデータ、および/またはGOPベースのシンタックスデータなどのシンタックスデータを、例えば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、またはGOPヘッダ中でビデオデコーダ30にさらに送り得る。GOPシンタックスデータは、それぞれのGOP中のいくつかのフレームを記述し得、フレームシンタックスデータは、対応するフレームを符号化するために使用される符号化/予測モードを示し得る。
ビデオデコーダ30は、本開示の技法のいずれかに従って符号化される動きベクトルを含むビットストリームを受信し得る。従って、ビデオデコーダ30は、符号化された動きベクトルを解釈するように構成され得る。例えば、ビデオデコーダ30は、最初に、符号化された動きベクトルが、全ての動きベクトルを1つの動き解像度に保つ方法を使用して符号化されたのか、または動き予測子が動きベクトルの解像度に量子化される方法を使用して符号化されたのかを判断するために、シーケンスパラメータセットまたはスライスパラメータセットを分析し得る。次いで、ビデオデコーダ30は、動き予測子を判断し、符号化された動きベクトルの値を動き予測子に加算することによって、動き予測子に関連して動きベクトルを復号し得る。
ビデオデコーダ30はまた、動きベクトル自体とともに含まれ得るか、または動きベクトルが対応する、マクロブロックなどのブロック中に含まれ得る、動きベクトルのフラグを分析することによって、動きベクトルが1/8ピクセル精度を使用するのか1/4ピクセル精度を使用するのかを判断し得る。いくつかの例で、ビデオデコーダ30は、例えば、動きベクトルが、リスト0またはリスト1中の、0以外の参照フレームインデックス値を有する参照ピクチャを指すときに、動きベクトルは1/4ピクセル精度を有すると推定し得る。いくつかの例で、ビデオデコーダ30は、参照フレームインデックス値のCAVLCコードワードに従って潜在的な参照フレームインデックス値のリスト中で識別され得る参照フレームインデックス値に基づいて、動きベクトルの精度を判断し得る。さらに、ビデオデコーダ30は、動きベクトルのブロックが生じるコンテキストを判断し得、コンテキストは、隣接ブロック(例えば、現在のブロックの上および左)の動きベクトルが1/8ピクセル精度を使用するのか1/4ピクセル精度を使用するのかに関係する。次いで、ビデオデコーダ30は、復号された動きベクトルを使用して、現在のブロックの残差値だけオフセットされた、現在のブロックの予測値を判断し得る。
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、適用可能な場合、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなどの様々な好適なエンコーダまたはデコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含められ得、そのいずれかは複合ビデオエンコーダ/デコーダ(CODEC)の一部として統合され得る。ビデオエンコーダ20および/またはビデオデコーダ30を含む装置は、集積回路、マイクロプロセッサ、および/またはセルラー電話などのワイヤレス通信デバイスを備え得る。
図2は、1/8ピクセル精度または1/4ピクセル精度のいずれかを使用してブロックを選択的に符号化するための技法を実装し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、マクロブロックあるいはマクロブロックのパーティションまたはサブパーティションを含むビデオフレーム内のブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラ符号化は、空間的予測に依拠して、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去する。インターコーディングは時間的予測を利用して、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去する。イントラモード(Iモード(登録商標))は、いくつかの空間ベースの圧縮モードのいずれかを指し、単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指すことがある。インターモード符号化のための構成要素が図2に示されているが、ビデオエンコーダ20はイントラモード符号化のための構成要素をさらに含み得ることを理解されたい。但し、簡潔および明快のために、そのような構成要素は図示していない。
図2に示すように、ビデオエンコーダ20は、符号化すべきビデオフレーム内の現在ビデオブロックを受信する。図2の例で、ビデオエンコーダ20は、動き補償ユニット44と、動き推定ユニット42と、参照フレームストア64と、加算器50と、変換ユニット52と、量子化ユニット54と、エントロピーコーディングユニット56とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ(図2に図示せず)をも含め得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理するであろう。
符号化プロセス中に、ビデオエンコーダ20はコーディングすべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対する受信したビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット46は、空間圧縮を行うために、コーディングすべきブロックと同じフレームまたはスライス中の1つまたは複数の近傍ブロックに対する受信したビデオブロックのイントラ予測コーディングを実行し得る。
モード選択ユニット40は、例えば、各モードにおいて生じる誤差結果に基づいて、コーディングモードのうちの1つ、すなわちイントラモードまたはインターモードを選択し得る。モード選択ユニット40がブロックに対してインターモード符号化を選択すると、解像度選択ユニット48はそのブロックの動きベクトルの解像度を選択し得る。例えば、解像度選択ユニット48は、そのブロックの動きベクトルに対して1/8ピクセル精度または1/4ピクセル精度を選択し得る。解像度選択ユニット48は、ブロックの動きベクトルに対して解像度を選択するための様々な基準を分析し得る。
いくつかの例で、解像度選択ユニット48は、潜在的な参照フレームのリスト中の時間的に直近の参照フレームを指す動きベクトルのみに対して解像度選択を実行し得る。参照フレームがリスト中の直近のフレームでないときに、解像度選択ユニット48は、動きベクトルに対して1/4ピクセル精度を選択するように構成され得る。
一例として、解像度選択ユニット48は、ブロックを符号化するために1/4ピクセル精度動きベクトルを使用することと、ブロックを符号化するために1/8ピクセル精度動きベクトルを使用することとの間の誤差差分を比較するように構成され得る。差分がしきい値を超えると、解像度選択ユニット48は、ブロックを符号化するために1/8ピクセル精度動きベクトルを選択し得る。解像度選択ユニット48はまた、インターモード予測プロセス中にブロックを符号化するときに、動きベクトルに対して1/8ピクセル精度を使用すべきかまたは1/4ピクセル精度を使用すべきかを判断するために、レート歪情報を評価するか、ビットバジェット(bit budget)を分析するか、または他のファクタを分析し得る。インターモード符号化されるべきブロックに対して1/8ピクセル精度または1/4ピクセル精度を選択した後、モード選択ユニットは、選択された精度を示すメッセージ(例えば、信号)を動き推定ユニット42に送り得る。
動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在のフレーム(または、他のコード化ユニット)内のコーディングされている現在のブロックに対する予測参照フレーム(または、他のコード化ユニット)内の予測ブロックの変位を示し得る。予測ブロックは、絶対値差分和(SAD)、差分2乗和(SSD)、または他の差分メトリックによって判断され得るピクセル差分に関して、コーディングすべきブロックにぴったり一致することがわかるブロックである。動きベクトルはまた、マクロブロックのパーティションの変位を示し得る。動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。この場合も、いくつかの例で、動き推定ユニット42と動き補償ユニット44とは機能的に統合され得る。
動き推定ユニット42は、ビデオブロックを参照フレームストア64中の参照フレームのビデオブロックと比較することによってインターコード化フレームのビデオブロックの動きベクトルを選択された精度で計算する。動き推定ユニット42または動き補償ユニット44は、参照フレームストア64中に含まれる参照フレームのフラクショナルピクセル位置の値を計算し得る。いくつかの例で、ビデオエンコーダ20の加算器62または別のユニットは、再構成されたブロックのフラクショナルピクセル位置の値を計算し、次いで、再構成されたブロックをフラクショナルピクセル位置の計算値とともに参照フレームストア64中に記憶し得る。動き補償ユニット44はまた、参照フレーム、例えば、IフレームまたはPフレームのサブ整数ピクセルを補間し得る。
ビデオエンコーダ20の動き推定ユニット42、動き補償ユニット44、モード選択ユニット40、または別のユニットはまた、ブロックを符号化するために使用される動きベクトルについての1/4ピクセル精度の使用かまたは1/8ピクセル精度の使用かをシグナリングし得る。いくつかの例で、動き推定ユニット42は、対応する動きベクトルが1/8ピクセル精度を使用するのか1/4ピクセル精度を使用するのかを示す1ビットフラグを全ての動きベクトルに追加するように構成され得る。別の例で、動き推定ユニット42は、マクロブロックの全ての動きベクトルが1/8ピクセル精度を使用するのか1/4ピクセル精度を使用するのかを示す1ビットフラグをマクロブロックに追加するように構成され得る。
別の例として、動き推定ユニット42は、動きベクトルが、1/4ピクセル精度を使用するのか1/8ピクセル精度を使用するのかについてのシグナリングを、動きベクトルの参照フレームインデックス(ref_idx)値と組み合わせ得る。参照フレームインデックス値は、参照フレームストア64に記憶された参照フレームを識別し、動きベクトルが1/8ピクセルであるのか1/4ピクセル精度であるのかを示し得る。動き推定ユニット42は、参照フレームと精度の指示とをエントロピーコーディングユニット56に送り得、エントロピーコーディングユニット56は、符号化されるブロックの符号化コンテキストに対応する潜在的なコードワードのセットから参照フレームインデックス値を選択し得る。動き推定ユニット42は、さらに、ブロックの符号化コンテキストの指示をエントロピーコーディングユニット56に送り得る。
動き推定ユニット42は、動き予測子に関連して動きベクトルを符号化するように構成され得る。動き推定ユニット42は、既に符号化された隣接ブロックの動きベクトルの平均として動き予測子を選択し得る。現在のブロックの動きベクトルを符号化するために、動き推定ユニット42は、動きベクトル差分値を形成するために、動きベクトルと動き予測子との間の差分を計算し得る。いくつかの例で、動き推定ユニット42は、常に所定の動き解像度で動きベクトルを符号化し得る。すなわち、動き推定ユニット42は、常に1/8ピクセル精度または1/4ピクセル精度で動きベクトルを符号化し得る。いくつかの例で、動き推定ユニット42は、符号化されるべき動きベクトルと同じ動き解像度に動き予測子を量子化し得る。
ITU H.264規格では、潜在的な参照フレームのセットを「リスト」と呼ぶ。従って、参照フレームストア64に記憶された参照フレームのセットは、参照フレームのリストに対応し得る。動き推定ユニット42は、参照フレームストア64からの1つまたは複数の参照フレームのブロックを現在のフレーム、例えば、PフレームまたはBフレームの符号化すべきブロックと比較する。参照フレームストア64中の参照フレームがサブ整数ピクセルの値を含むときに、動き推定ユニット42によって計算される動きベクトルは参照フレームのサブ整数ピクセルロケーションを参照し得る。動き推定ユニット42は、計算された動きベクトルをエントロピーコーディングユニット56と動き補償ユニット44とに送る。動きベクトルによって識別される参照フレームブロックは予測ブロックと呼ばれることがある。動き補償ユニット44は、符号化されるブロックに関連して参照フレームの予測ブロックの誤差値を計算する。
動き補償ユニット44は、予測ブロックに基づいて予測データを計算し得る。ビデオエンコーダ20は、コーディングされている元のビデオブロックから、動き補償ユニット44からの予測データを減算することによって残差ビデオブロックを形成する。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。変換ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。
変換ユニット52は、概念的にDCTと同様である、H.264規格によって定義される変換などの他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。いずれの場合も、変換ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。量子化ユニット54は、ビットレートをさらに低減するために残差変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。
量子化の後、エントロピーコーディングユニット56が量子化変換係数をエントロピーコーディングする。例えば、エントロピーコーディングユニット56は、コンテンツ適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、または別のエントロピーコーディング技法を実行し得る。エントロピーコーディングユニット56によるエントロピーコーディングの後、符号化されたビデオは、別のデバイスに送信されるか、あるいは後で送信または検索するためにアーカイブされ得る。コンテキスト適応型バイナリ算術コーディングの場合、コンテキストは近傍マクロブロックに基づき得る。
場合によっては、エントロピーコーディングユニット56またはビデオエンコーダ20の別のユニットは、エントロピーコーディングに加えて他のコーディング機能を実行するように構成され得る。例えば、エントロピーコーディングユニット56はマクロブロックおよびパーティションのCBP値を判断するように構成され得る。また、場合によっては、エントロピーコーディングユニット56は、マクロブロックまたはそれのパーティション中の係数のランレングスコーディングを実行し得る。特に、エントロピーコーディングユニット56は、マクロブロックまたはパーティション中の変換係数をスキャンするためにジグザグスキャンまたは他のスキャンパターンを適用し、さらなる圧縮のためにゼロのランを符号化し得る。エントロピーコーディングユニット56はまた、符号化ビデオビットストリーム中での送信のために適切なシンタックス要素とともにヘッダ情報を構成し得る。
逆量子化ユニット58および逆変換ユニット60は、それぞれ逆量子化および逆変換を適用して、例えば、参照ピクチャリスト中の参照フレーム内の参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成する。動き補償ユニット44は、残差ブロックを参照フレームストア64のフレームのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するための(例えば、1/2ピクセル位置、1/4ピクセル位置、および/または1/8ピクセル位置の)サブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償された予測ブロックに加算して、参照フレームストア64に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
図3は、符号化されたビデオシーケンスを復号するビデオデコーダ30の一例を示すブロック図である。図3の例で、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、参照フレームストア82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例で、ビデオエンコーダ20(図2)に関して説明した符号化パスとは概して逆の復号パスを実行し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信した動きベクトルに基づいて予測データを生成し得る。
動き補償ユニット72は、ビットストリーム中で受信された動きベクトルを使用して、参照フレームストア82中の参照フレーム中の予測ブロックを識別し得る。本開示の技法によれば、受信された動きベクトルは1/8ピクセル精度または1/4ピクセル精度を有し得る。動き補償ユニット72は、特定の動きベクトルが1/8ピクセル精度を有するのか1/4ピクセル精度を有するのかを示す、符号化されたビットストリーム中に含まれる信号値を受信し、分析するように構成され得る。上記のように、信号値は、動きベクトルとともに含まれるフラグ、マクロブロックの全パーティションの動きベクトルの精度をシグナリングするマクロブロックレイヤフラグ、参照フレームインデックス値と、参照フレームインデックス値に対応する参照フレームの一部分を指す動きベクトルが1/8ピクセル精度を有するのか1/4ピクセル精度を有するのかとの両方を表す特別に設計された可変長コード、あるいは他のタイプのシグナリング値に対応し得る。
可変長コードがそれぞれの動きベクトルの精度をシグナリングする場合、特定の動きベクトルの可変長コードは、動きベクトルの符号化コンテキストに固有のコードのセット中に含まれ得る。動きベクトルを復号するために、動き補償ユニット72は、符号化されたブロックの符号化コンテキストを判断するように構成され得る。符号化コンテキストは、隣接ブロックの動きベクトルが1/8ピクセル精度を有するのか1/4ピクセル精度を有するのかに対応し得る。
動きベクトルはまた、符号化された動きベクトルに対応するブロックの動き予測子に関連して符号化され得る。動き補償ユニット72は、復号されるべきブロックに隣接するブロックの動きベクトルの中央値として動き予測子を判断し得る。動き予測子を判断した後、動き補償ユニット72は、符号化されたビデオビットストリームから動きベクトル差分値を抽出し、動き予測子に動きベクトル差分値を加算することによって、符号化された動きベクトルを復号し得る。いくつかの例で、動き補償ユニット72は、符号化された動きベクトルと同じ動き解像度に動き予測子を量子化し得る。いくつかの例で、動き補償ユニット72は、全符号化された動き予測子に対して同じ精度を使用し得る。さらに他の例で、動き補償ユニット72は、上記の方法のいずれかを使用し、シーケンスパラメータセット、スライスパラメータセット、またはピクチャパラメータセット中に含まれるデータを分析することによって、どの方法を使用すべきかを判断するように構成され得る。
動きベクトルを復号した後、動き補償ユニット72は、参照フレームストア82の参照フレームから、動きベクトルによって識別された予測ブロックを抽出し得る。動きベクトルが、1/2ピクセル位置、1/4ピクセル位置、または1/8ピクセル位置などのフラクショナルピクセル位置を指す場合、動き補償ユニット72はフラクショナルピクセル位置の値を補間し得る。動き補償ユニット72は、これらの値を補間するために、適応補間フィルタまたは固定補間フィルタを使用し得る。さらに、動き補償ユニット72は、受信された符号化されたビデオビットストリームを介して、対応するエンコーダからどのフィルタを使用すべきかの指示と、場合によってはフィルタの係数とを受信し得る。
イントラ予測ユニット74は、ビットストリーム中で受信されたイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成し得る。逆量子化ユニット76は、ビットストリーム中で供給され、エントロピー復号ユニット70によって復号された量子化ブロック係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、例えば、H.264復号規格によって定義された従来のプロセスを含み得る。逆量子化プロセスはまた、量子化の程度を判断し、同様に、適用すべき逆量子化の程度を判断するための、各マクロブロックについてエンコーダ50によって計算される量子化パラメータQPYの使用を含み得る。
逆変換ユニット58は、逆変換、例えば逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用して、ピクセル領域において残差ブロックを生成する。動き補償ユニット72は動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行する。サブピクセル精度をもつ動き推定に使用すべき補間フィルタの識別子をブロックのシンタックス要素中に含め得る。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20によって使用される補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット72は、受信したシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ブロックを生成し得る。
動き補償ユニット72は、シンタックス情報のいくつかを使用して、符号化ビデオシーケンスの(1つまたは複数の)フレームを符号化するために使用されるマクロブロックのサイズと、符号化ビデオシーケンスのフレームの各マクロブロックがどのように区分されるのかを記述するパーティション情報と、各パーティションがどのように符号化されるのかを示すモードと、各インター符号化マクロブロックまたはパーティションのための1つまたは複数の参照フレームと、符号化ビデオシーケンスを復号するための他の情報とを判断する。
加算器80は、残差ブロックを、動き補償ユニット72またはイントラ予測ユニットによって生成される対応する予測ブロックと合計して、復号されたブロックを形成する。必要に応じて、ブロッキネスアーティファクトを除去するために、デブロッキングフィルタを適用して、復号ブロックをフィルタ処理することもある。復号されたビデオブロックは、次いで、参照フレームストア82に記憶され、参照フレームストア82は、参照ブロックをその後の動き補償に供給し、また、ディスプレイデバイス(図1のディスプレイデバイス32など)上での提示のために復号されたビデオを生成する。
図4は、フルピクセル位置についてのフラクショナルピクセル位置を示す概念図である。特に、図4は、フルピクセル(ペル)100についてのフラクショナルピクセル位置を示している。フルピクセル100は、1/2ピクセル位置102A〜102C(1/2ペル102)と、1/4ピクセル位置104A〜104L(1/4ペル104)と、1/8ピクセル位置106A〜106AV(1/8ペル106)とに対応する。
図4は、ブロックの1/8ピクセル位置106がオプションで含まれ得ることを示すために、破線の輪郭を使用してこれらの位置を示している。すなわち、動きベクトルが1/8ピクセル精度を有する場合、動きベクトルは、フルピクセル位置100、1/2ピクセル位置102、1/4ピクセル位置104、または1/8ピクセル位置106のいずれかをポイントし得る。但し、動きベクトルが1/4ピクセル精度を有する場合、動きベクトルは、フルピクセル位置100、1/2ピクセル位置102、または1/4ピクセル位置104のいずれかをポイントし得る。
フルピクセル位置100におけるピクセルの値は、対応する参照フレームに含まれ得る。すなわち、フルピクセル位置100におけるピクセルの値は、概して、例えば、参照フレームが表示されたときに最終的にレンダリングされ表示される、参照フレーム中のピクセルの実効値に対応する。(フラクショナルピクセル位置と総称される)1/2ピクセル位置102、1/4ピクセル位置104、および1/8ピクセル位置106の値は、適応補間フィルタまたは固定補間フィルタ、例えば、様々なウィーナーフィルタ、双一次フィルタ、または他のフィルタなど、様々な数の「タップ」(係数)のフィルタを使用して補間され得る。概して、フラクショナルピクセル位置の値は、隣接するフルピクセル位置または前に判断されたフラクショナルピクセル位置の値に対応する1つまたは複数の隣接ピクセルから補間され得る。
図5は、現在のブロック120の符号化コンテキストを判断するために使用され得るブロックを示す概念図である。図5の例は、現在のブロック120を、2つの隣接ブロック、上ネイバーブロック(above-neighbor block)122および左ネイバーブロック(left-neighbor block)124とともに示している。現在のブロック120は、現在符号化または復号されており、コーディングユニット(例えば、ビデオエンコーダ20またはビデオデコーダ30)がその符号化コンテキストを判断しているブロックに対応し得る。
この例で、現在のブロック120の左上コーナーと、上ネイバーブロック122の左下コーナーと、左ネイバーブロック124の右上コーナーとは、各々接触している。多くのコーディングユニットは、フレームに対してビデオブロックを左から右および上から下に処理するように構成される。従って、現在のブロック120の符号化コンテキストは、上ネイバーブロック122および左ネイバーブロック124など、現在のブロック120の上および左のブロックに基づき得る。
現在のブロック120は、マクロブロックまたはマクロブロックのパーティションに対応することがある。上ネイバーブロック122および左ネイバーブロック124は、各々別個のマクロブロックに対応し得る。すなわち、現在のブロック120は第1のマクロブロックの一部分に対応し得、上ネイバーブロック122は第2の異なるマクロブロックの一部分に対応し得、左ネイバーブロック124は第3の異なるマクロブロックの一部分に対応し得る。いくつかの例で、現在のブロック120は、現在のマクロブロックのパーティションに対応し得、上ネイバーブロック122は、現在のマクロブロックの上のマクロブロックの4×4ピクセル左下部分に対応し得、左ネイバーブロック124は、現在のマクロブロックの左のマクロブロックの4×4右上部分に対応し得る。いくつかの例で、現在のブロック120、上ネイバーブロック122、および左ネイバーブロック124は、同じまたは異なるマクロブロックの一部分であり得る。
現在のブロック120の符号化コンテキストを判断するために、コーディングユニットは、上ネイバーブロック122および左ネイバーブロック124の動きベクトルが1/8ピクセル精度を有するのか1/4ピクセル精度を有するのかを分析し得る。上ネイバーブロック122の動きベクトルは、上ネイバーブロック122を含む、ビデオデータのより大きいブロックの動きベクトルであり得る。例えば、上ネイバーブロック122は、単一の動きベクトルを有する8×8ピクセルパーティション内に含まれ得る4×4ピクセル領域と定義され得る。同様に、左ネイバーブロック124の動きベクトルは、左ネイバーブロック124を含む、ビデオデータのより大きいブロックの動きベクトルであり得る。
現在のブロック120の第1の符号化コンテキストは、上ネイバーブロック122の動きベクトルが1/4ピクセル精度を有するとき、および左ネイバーブロック124の動きベクトルも1/4ピクセル精度を有するときに対応し得る。現在のブロック120の第2の符号化コンテキストは、上ネイバーブロック122の動きベクトルが1/4ピクセル精度を有するとき、および左ネイバーブロック124の動きベクトルが1/8ピクセル精度を有するときに対応し得る。現在のブロック120の第3の符号化コンテキストは、上ネイバーブロック122の動きベクトルが1/8ピクセル精度を有するとき、および左ネイバーブロック124の動きベクトルも1/4ピクセル精度を有するときに対応し得る。現在のブロック120の第4の符号化コンテキストは、上ネイバーブロック122の動きベクトルが1/8ピクセル精度を有するとき、および左ネイバーブロック124の動きベクトルも1/8ピクセル精度を有するときに対応し得る。
以下の表1に、上記で説明した例示的な符号化コンテキストを要約する。表1はまた、符号化コンテキストと、対応する符号化コンテキストにおける現在のブロック120の動きベクトルの参照フレームインデックス値を符号化するときに使用すべき可変長コードのセットとの間の例示的な関係を示している。
Figure 2015156653
表2〜表5に、例示的な参照フレームインデックス値の例示的なコードワードのセットを示す。これらの例示的なコードワードのセットは、例証および説明の目的で示してある。概して、コードワードのセットは、例えば、特定の参照フレームインデックス値が生じる可能性がどの程度であるのか、並びに、動きベクトルが対応するコンテキストにおける参照フレームインデックス値に対応する参照フレームを指すときに、コンテキストにおいて1/8ピクセル精度動きベクトルまたは1/4ピクセル精度動きベクトルが使用される可能性がどの程度であるのかを示すデータに基づいて、潜在的なコンテキストの各々についてCAVLCアルゴリズムを実行することによって生成され得る。表2〜表5の例は、異なるコンテキストにおける同じ参照フレームインデックス値の例示的なコードワードと、1/4ピクセル精度動きベクトルと1/8ピクセル精度動きベクトルの両方の例示的なコードワードを示している。
表2は、上ネイバーブロック122と左ネイバーブロック124の両方の動きベクトルが1/4ピクセル精度を有する、第1の例示的なコンテキストのコードワードを示している。例えば、経験的テストを通して、これらの動きベクトルの両方が1/4ピクセル精度を有するときに、現在のブロック120の動きベクトルも1/4ピクセル精度を有する可能性が高くなり得ると判断され得る。従って、このコンテキストにおいて動きベクトルが1/4ピクセル精度を有することをも示す参照フレームインデックス値のコードワードは、動きベクトルが1/8ピクセル精度を有することをも示す参照値のコードワードよりも相対的に短くなり得る。他の例では、反対に、現在のブロック120の動きベクトルが、このコンテキストでは代わりに1/8ピクセル精度を有する可能性が高くなり得るか、またはこのコンテキストにおける1/4または1/8ピクセル精度の確率がほぼ同じになり得ることを、経験的テストが示し得る。いずれの場合も、同じ参照フレームのコンテキストにおいて、動きベクトルのより可能性が低い精度のコードワードに比較して、より可能性が高い精度のコードワードがより短くなることによって、ビットの節約が実現され得る。
Figure 2015156653
表3は、上ネイバーブロック122の動きベクトルが1/4ピクセル精度を有し、左ネイバーブロック124の動きベクトルが1/8ピクセル精度を有する第2の例示的なコンテキストのコードワードを示している。例えば、経験的テストを通して、これらの動きベクトルがこれらの精度を有するときに、現在のブロック120の動きベクトルは1/8ピクセル精度を有する可能性が高くなり得ると判断され得る。従って、このコンテキストにおいて動きベクトルが1/4ピクセル精度を有することをも示す参照フレームインデックス値のコードワードは、動きベクトルが1/8ピクセル精度を有することをも示す参照値のコードワードよりも相対的に長くなり得る。他の例では、反対に、現在のブロック120の動きベクトルが、このコンテキストでは代わりに1/4ピクセル精度を有する可能性が高くなり得るか、またはこのコンテキストにおける1/4または1/8ピクセル精度の確率がほぼ同じになり得ることを、経験的テストが示し得る。
Figure 2015156653
表4は、上ネイバーブロック122の動きベクトルが1/8ピクセル精度を有し、左ネイバーブロック124の動きベクトルが1/4ピクセル精度を有する第3の例示的なコンテキストのコードワードを示している。例えば、経験的テストを通して、これらの動きベクトルがこれらの精度を有するときに、現在のブロック120の動きベクトルは1/4ピクセル精度を有する可能性が高くなり得ると判断され得る。従って、このコンテキストにおいて動きベクトルが1/4ピクセル精度を有することをも示す参照フレームインデックス値のコードワードは、動きベクトルが1/8ピクセル精度を有することをも示す参照値のコードワードよりも相対的に短くなり得る。他の例では、反対に、現在のブロック120の動きベクトルが、このコンテキストでは代わりに1/8ピクセル精度を有する可能性が高くなり得るか、またはこのコンテキストにおける1/4または1/8ピクセル精度の確率がほぼ同じになり得ることを、経験的テストが示し得る。
Figure 2015156653
表5は、上ネイバーブロック122と左ネイバーブロック124の両方の動きベクトルが1/8ピクセル精度を有する第4の例示的なコンテキストのコードワードを示している。例えば、経験的テストを通して、これらの動きベクトルが両方とも1/8ピクセル精度を有するときに、現在のブロック120の動きベクトルは1/8ピクセル精度を有する可能性が高くなり得ると判断され得る。従って、このコンテキストにおいて動きベクトルが1/4ピクセル精度を有することをも示す参照フレームインデックス値のコードワードは、動きベクトルが1/8ピクセル精度を有することをも示す参照値のコードワードよりも相対的に長くなり得る。他の例では、反対に、現在のブロック120の動きベクトルが、このコンテキストでは代わりに1/4ピクセル精度を有する可能性が高くなり得るか、またはこのコンテキストにおける1/4または1/8ピクセル精度の確率がほぼ同じになり得ることを、経験的テストが示し得る。
Figure 2015156653
上記のように、表2〜表5中のコードワードは例として与えたものにすぎない。概して、これらの様々なコンテキストのコードワードは、経験的テストによって収集された統計を使用してCAVLCアルゴリズムを実行することによって生成され得る。統計は、特定のコンテキストにおいて特定の参照フレームが動きベクトルによって識別される可能性、並びに対応するコンテキストにおいて、参照フレームを識別する動きベクトルが1/8ピクセル精度または1/4ピクセル精度を有する可能性に関係し得る。CAVLCアルゴリズムを実行すると、潜在的な参照フレームインデックス値ごとに、動きベクトルの1/4ピクセル精度および動きベクトルの1/8ピクセル精度とペアリングされたコードワードが生成され得る。特定の符号化コンテキストを使用して動きベクトルを符号化することによって、本開示の技法は、より可能性が高い参照フレームを指す動きベクトルのより可能性が高い精度では、より可能性が低い参照フレームを指す動きベクトルのより可能性が低い精度よりも、特定のコンテキストにおいてコードワードが短くなるという点で、コーディングビット節約を実現し得る。
図6は、1/8ピクセル精度動きベクトルまたは1/4ピクセル精度動きベクトルのいずれかを使用してビデオデータのブロックを符号化すると共に、精度の選択をシグナリングするための例示的な方法を示すフローチャートである。説明のために、図6の方法について、図2のビデオエンコーダ20に関して説明する。但し、他のユニット、例えば、プロセッサ、ビデオエンコーダ、ビデオコーデック、制御ユニット、または他のハードウェア、ソフトウェア、またはファームウェア実装形態も、図6の方法を実行するように構成され得ることを理解されたい。
初めに、ビデオエンコーダ20が、符号化されるべきビデオデータのブロックを受信する(150)。図6の例で、ブロックは、インターモード符号化されたフレームまたはピクチャ(例えば、PフレームまたはBフレーム)のブロックに対応し得る。モード選択ユニット40は、ブロックを受信し、参照フレームストア64に記憶された参照フレームに関連してブロックの動き探索を実行するために、ブロックを動き推定ユニット42に転送し得る。動き推定ユニット42は、ブロックの動きベクトルを計算するために、動き探索アルゴリズムを実行し得る。
動き推定ユニット42は、ブロックを符号化するために1/8ピクセル精度を有する動きベクトルを使用すべきか1/4ピクセル精度を有する動きベクトルを使用すべきかをさらに判断する(152)。いくつかの例で、動き推定ユニット42は、1/4ピクセル精度を有するブロックの第1の動きベクトルと、1/8ピクセル精度を有するブロックの第2の動きベクトルとを、例えば、2つの符号化パスにおいて計算し得る。第1の動きベクトルは第1の予測ブロックを参照し得、第2の動きベクトルは第2の予測ブロックを参照し得る。2つの予測ブロックは、必ずしも同じ参照フレームから生じる必要はない。
動き補償ユニット44は、第1の予測ブロックと第2の予測ブロックとについて誤差値を計算し得る。例えば、動き補償ユニット44は、第1の予測ブロックと符号化されるべきブロックとの間の差分と、第2の予測ブロックと符号化されるべきブロックとの間の差分とを計算し得る。動き補償ユニット44は、第1の予測ブロックと第2の予測ブロックとについて、動きベクトルを計算する動き推定プロセス中にレート歪値を計算し得る。解像度選択ユニット48は、第1の予測ブロックと第2の予測ブロックとについて、動きベクトルのレート歪値を比較し、どちらの精度がより低いレート歪を与えるのかを判断し得る。他の例で、解像度選択ユニット48は、当業者によって判断され得るように、1/8ピクセル精度を有する動きベクトルを使用してブロックを符号化すべきか、または1/4ピクセル精度を有する動きベクトルを使用してブロックを符号化すべきかを他の方法で判断し得る。
次いで、動き推定ユニット42は、選択された動きベクトルを符号化する(154)。例えば、動き推定ユニット42は、符号化されるべきブロックの動き予測子を選択し得る。動き予測子は、符号化されるべきブロックの隣接ブロックの動きベクトルの中央値に対応し得る。動き推定ユニット42は、動きベクトル差分値、例えば、選択された動きベクトルと動き予測子との間の差分を計算することによって、動きベクトルを符号化し得る。動き推定ユニット42は、いくつかの例で、動きベクトル差分値を計算する前に、選択された動きベクトルの解像度に動き予測子をさらに量子化し得る。いくつかの例で、動き推定ユニット42は、動きベクトル差分値が常に共通の解像度で、例えば、常に1/8ピクセル精度で、または常に1/4ピクセル精度で計算されることを保証し得る。ビデオエンコーダ20は、動きベクトル差分値がどのように計算されたのか(例えば、動き予測子が動きベクトルと同じ精度に量子化されたのかどうか、または動きベクトル差分値がグローバル精度で計算されたのかどうか)を示すシグナリング情報をさらに生成し得る。
動きベクトルを符号化するために動きベクトル差分値を計算することに加えて、ビデオエンコーダ20は、符号化された動きベクトルの精度(例えば、1/8ピクセルまたは1/4ピクセル)をさらにシグナリングし得る。図6の例で、エントロピーコーディングユニット56は、動きベクトルによって識別された予測ブロックを含む参照フレームを識別する参照フレームインデックス値とともにこの信号を含み得る。この例で、エントロピーコーディングユニット56は、隣接ブロックが1/8ピクセル精度を有する動きベクトルを使用して符号化されたのか、または1/4ピクセル精度を有する動きベクトルを使用して符号化されたのかに基づいて、符号化されたブロックの符号化コンテキストを判断する(156)。
次いで、エントロピーコーディングユニット56は、動きベクトルに対して選択された精度をシグナリングするために、判断されたコンテキストに対応するコードワードのセットから、参照フレームインデックス値および動きベクトルの精度のコードワードを判断し、従って、判断されたコンテキストを使用して選択された精度をシグナリングする(158)。エントロピーコーディングユニット56はまた、動きベクトル差分値をエントロピー符号化するために、動きベクトル差分値のコードワードを選択し得る。次いで、ビデオエンコーダ20が、符号化された動きベクトルおよび信号、例えば、動きベクトル差分のコードワードと、参照フレームインデックス値と、選択された精度のコードワードとを出力する(160)。
図6の方法は、ブロックに対して、1/4ピクセル精度動きベクトルよりも1/8ピクセル精度動きベクトルの使用が好ましいと判断されたときに、1/8ピクセル精度動きベクトルを使用してビデオデータのブロックを符号化することと、ブロックに対する1/8ピクセル精度動きベクトルの使用を示す信号値を生成することと、符号化されたブロック、並びに信号値を出力することとを含むものとして要約され得る。
図7は、符号化されたブロックの動きベクトルの精度を示す信号値を使用して、符号化されたブロックを復号するための例示的な方法を示すフローチャートである。説明のために、図7の方法について、図3のビデオデコーダ30に関して説明する。但し、他のユニット、例えば、プロセッサ、ビデオデコーダ、ビデオコーデック、制御ユニット、または他のハードウェア、ソフトウェアまたはファームウェア実装形態も、図7の方法を実行するように構成され得ることを理解されたい。
初めに、エントロピー復号ユニット70が、ビデオデータの符号化されたブロックを受信する(180)。例えば、ビデオデコーダ30を含むクライアントデバイスは、ネットワークまたはブロードキャスト送信を介して、符号化されたビデオデータのストリームを受信し得るか、またはDVD、ブルーレイディスク、ハードドライブ、フラッシュドライブ、または他の記憶媒体などの記憶媒体からビデオデータを抽出し得る。符号化されたブロックは、動きベクトル差分値と、参照フレームインデックス値および動きベクトル差分値を使用して符号化された動きベクトルの精度の指示を表すコードワードと、残差値とを含み得る。
エントロピー復号ユニット70は、例えば、動き補償ユニット72から、符号化されたブロックの符号化コンテキストの指示を受信し得る。動き補償ユニット72は、例えば、隣接ブロックが1/8ピクセル精度動きベクトルを使用して符号化されたのか、または1/4ピクセル精度動きベクトルを使用して符号化されたのかに基づいて、ブロックの符号化コンテキストを判断する(182)。次いで、エントロピー復号ユニット70は、ブロックの符号化コンテキストに対応する、コードワードのセット中のコードワードを識別することによって、参照フレームインデックと符号化された動きベクトルの精度とを判断する(184)。エントロピー復号ユニット70は、参照フレームインデックス値および動きベクトルの精度と、動きベクトル差分値と、残差値とを動き補償ユニット72およびイントラ予測ユニット74に与え得る。
動き補償ユニット72は、動きベクトル差分値を使用して、判断された精度でブロックの動きベクトルを復号する(186)。例えば、動き補償ユニット72は、既に復号されている隣接ブロックの動きベクトルの中央値として、動きベクトルの動き予測子を判断し得る。いくつかの例で、動き補償ユニット72は、符号化されるべき動きベクトルの判断された精度に動き予測子を量子化し得る。いくつかの例で、動き補償ユニット72は、任意の動きベクトルを符号化するときに、同じ精度を使用するように構成され得る。いずれの場合も、動き補償ユニット72は、動きベクトル差分値と選択された動き予測子との和を計算することによって、動きベクトルを復号し得る。この和は、判断された精度、例えば、1/8ピクセル精度または1/4ピクセル精度のいずれかを有する動きベクトルを生成し得る。
動き補償ユニット72は、復号された動きベクトルを使用してさらにブロックを復号する(188)。例えば、動き補償ユニット72は、復号された動きベクトルと参照フレームインデックス値とによって識別される、参照フレームストア82の参照フレーム中の予測ブロックを指すことがある。場合によって、動き補償ユニット72は、例えば、適応補間フィルタまたは固定補間フィルタを使用して、参照フレームのフラクショナルピクセル位置の値を補間し得る。さらに、動き補償ユニット72は、復号されたブロックを生成するために、受信された残差値を予測ブロックに加算し得る。ピクチャの全ブロックを復号した後、ビデオデコーダ30は、復号されたピクチャをビデオ出力にパスし得、ビデオ出力は、復号されたピクチャを表示し得る。ビデオデコーダ30はまた、後で受信された符号化されたピクチャの符号化されたブロックの参照フレームとして使用するために、復号されたピクチャを参照フレームストア82に記憶し得る。
図7の方法は、ビデオデータの符号化されたブロックとビデオデータの符号化されたブロックが1/8ピクセル精度動きベクトルを使用して符号化されたことを示す信号値とを受信することと、ビデオデータのブロックが1/8ピクセル精度動きベクトルを使用して符号化されたことを判断するために信号値を分析することと、信号値に基づいて1/8ピクセル精度動きベクトルを使用してビデオデータのブロックを復号することとを含むものとして要約され得る。
1つまたは複数の例で、説明した機能はハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、および(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明する技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。さらに、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。但し、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積回路またはディスクリート論理回路によって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に好適な他の構造のいずれかを指す。さらに、いくつかの態様で、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に提供され得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(例えば、チップセット)を含む、多種多様なデバイスまたは装置において実施され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明したように1つまたは複数のプロセッサを含んで、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを符号化する方法であって、前記方法が、
ビデオデータのブロックに対して1/4ピクセル精度動きベクトルよりも1/8ピクセル精度動きベクトルの使用が好ましいと判断されたときに、前記1/8ピクセル精度動きベクトルを使用して前記ブロックを符号化することと、
前記ブロックに対する前記1/8ピクセル精度動きベクトルの前記使用を示す信号値を生成することと、
前記符号化されたブロックと前記信号値とを出力することと
を備える、方法。
[C2]
前記信号値を生成することが、前記1/8ピクセル精度動きベクトルの前記使用を示すように前記ブロックに関連するフラグの値を設定することを備える、C1に記載の方法。
[C3]
前記ブロックがマクロブロックのパーティションを備え、前記信号値を生成することが、前記1/8ピクセル精度動きベクトルの前記使用を示すように前記マクロブロックに関連するフラグの値を設定することを備え、前記方法は、前記フラグが前記ブロックに対する1/8ピクセル精度動きベクトルの前記使用を示すときに、前記1/8ピクセル精度動きベクトルを使用して前記マクロブロックの全パーティションを符号化することをさらに備える、C1に記載の方法。
[C4]
前記ブロックを符号化することが、参照フレームの一部分に関連して前記ブロックを符号化することを備え、
前記信号値を生成することが、参照フレームインデックス値と、前記ブロックを符号化するための前記1/8ピクセル精度動きベクトルの前記使用とを示す可変長コードを選択することを備え、前記参照フレームインデックス値が前記参照フレームを識別する、C1に記載の方法。
[C5]
前記参照フレームインデックス値が前記参照フレームの第1の参照フレームインデックス値を備え、前記第1の参照フレームインデックス値の長さが、前記参照フレームに関する1/4ピクセル精度動きベクトルの使用を示す第2の参照フレームインデックス値の長さよりも小さい、C4に記載の方法。
[C6]
前記可変長コードを選択することが、
前記ブロックの隣接ブロックが1/8ピクセル精度動きベクトルを使用して符号化されたのか、または1/4ピクセル精度動きベクトルを使用して符号化されたのかに基づいて、前記ブロックの符号化コンテキストを判断することと、
前記判断された符号化コンテキストに対応するコードのセットから前記可変長コードを選択することと
を備える、C4に記載の方法。
[C7]
前記ブロックを符号化することが、潜在的な参照フレームのリスト中の直近の参照フレームを備える参照フレームの一部分に関連して前記ブロックを符号化することを備える、C1に記載の方法。
[C8]
前記ブロックを符号化することが、
前記ブロックの前記1/8ピクセル精度動きベクトルを計算することと、
前記ブロックの前記1/8ピクセル精度動きベクトルと動き予測子との間の差分を備える動きベクトル差分値を計算することと
を備える、C1に記載の方法。
[C9]
前記動きベクトル差分値を計算することが、
前記動き予測子を1/8ピクセル精度に量子化することと、
前記ブロックの前記1/8ピクセル精度動きベクトルと前記量子化された動き予測子との間の前記差分を計算することと
を備える、C8に記載の方法。
[C10]
ビデオデータを符号化するための装置であって、前記装置は、ビデオデータのブロックに対して1/4ピクセル精度動きベクトルよりも1/8ピクセル精度動きベクトルの使用が好ましいと判断されたときに、前記1/8ピクセル精度動きベクトルを使用して前記ブロックを符号化し、前記ブロックに対する前記1/8ピクセル精度動きベクトルの前記使用を示す信号値を生成するように構成されたビデオエンコーダを備える、装置。
[C11]
前記信号値を生成するために、前記ビデオエンコーダが、前記1/8ピクセル精度動きベクトルの前記使用を示すように前記ブロックに関連するフラグの値を設定するように構成された、C10に記載の装置。
[C12]
前記ブロックがマクロブロックのパーティションを備え、前記信号値を生成するために、前記ビデオエンコーダが、前記1/8ピクセル精度動きベクトルの前記使用を示すように前記マクロブロックに関連するフラグの値を設定するように構成され、前記ビデオエンコーダは、前記フラグが前記ブロックに対する1/8ピクセル精度動きベクトルの前記使用を示すときに、前記1/8ピクセル精度動きベクトルを使用して前記マクロブロックの全パーティションを符号化するように構成された、C10に記載の装置。
[C13]
前記ビデオエンコーダが、参照フレームの一部分に関連して前記ブロックを符号化するように構成され、前記信号値を生成するために、前記ビデオエンコーダが、参照フレームインデックス値と、前記ブロックを符号化するための前記1/8ピクセル精度動きベクトルの前記使用とを示す可変長コードを選択するように構成され、前記参照フレームインデックス値が前記参照フレームを識別する、C10に記載の装置。
[C14]
前記参照フレームインデックス値が前記参照フレームの第1の参照フレームインデックス値を備え、前記第1の参照フレームインデックス値の長さが、前記参照フレームに関する1/4ピクセル精度動きベクトルの使用を示す第2の参照フレームインデックス値の長さよりも小さい、C13に記載の装置。
[C15]
前記可変長コードを選択するために、前記ビデオエンコーダは、前記ブロックの隣接ブロックが1/8ピクセル精度動きベクトルを使用して符号化されたのか、または1/4ピクセル精度動きベクトルを使用して符号化されたのかに基づいて、前記ブロックの符号化コンテキストを判断し、前記判断された符号化コンテキストに対応するコードのセットから前記可変長コードを選択するように構成された、C13に記載の装置。
[C16]
前記ビデオエンコーダが、潜在的な参照フレームのリスト中の直近の参照フレームを備える参照フレームの一部分に関連して前記ブロックを符号化するように構成された、C10に記載の装置。
[C17]
前記ビデオエンコーダが、前記ブロックの前記1/8ピクセル精度動きベクトルを計算し、前記ブロックの前記1/8ピクセル精度動きベクトルと動き予測子との間の差分を備える動きベクトル差分値を計算するように構成された、C10に記載の装置。
[C18]
前記動きベクトル差分値を計算するために、前記ビデオエンコーダが、前記動き予測子を1/8ピクセル精度に量子化し、前記ブロックの前記1/8ピクセル精度動きベクトルと前記量子化された動き予測子との間の前記差分を計算するように構成された、C17に記載の装置。
[C19]
ビデオデータを符号化するための装置であって、前記装置が、
ビデオデータのブロックに対して1/4ピクセル精度動きベクトルよりも1/8ピクセル精度動きベクトルの使用が好ましいと判断されたときに、前記1/8ピクセル精度動きベクトルを使用して前記ブロックを符号化するための手段と、
前記ブロックに対する前記1/8ピクセル精度動きベクトルの前記使用を示す信号値を生成するための手段と、
前記符号化されたブロックと前記信号値とを出力するための手段と
を備える、装置。
[C20]
前記ブロックがマクロブロックのパーティションを備え、前記信号値を生成するための前記手段が、前記1/8ピクセル精度動きベクトルの前記使用を示すように前記マクロブロックに関連するフラグの値を設定するための手段を備え、前記フラグが前記ブロックに対する1/8ピクセル精度動きベクトルの前記使用を示すときに、前記1/8ピクセル精度動きベクトルを使用して前記マクロブロックの全パーティションを符号化するための手段をさらに備える、C19に記載の装置。
[C21]
前記ブロックを符号化するための前記手段が、参照フレームの一部分に関連して前記ブロックを符号化するための手段を備え、
前記信号値を生成するための前記手段が、参照フレームインデックス値と、前記ブロックを符号化するための前記1/8ピクセル精度動きベクトルの前記使用とを示す可変長コードを選択するための手段を備え、前記参照フレームインデックス値が前記参照フレームを識別する、C19に記載の装置。
[C22]
前記可変長コードを選択するための前記手段が、
前記ブロックの隣接ブロックが1/8ピクセル精度動きベクトルを使用して符号化されたのか、または1/4ピクセル精度動きベクトルを使用して符号化されたのかに基づいて、前記ブロックの符号化コンテキストを判断するための手段と、
前記判断された符号化コンテキストに対応するコードのセットから前記可変長コードを選択するための手段と
を備える、C21に記載の装置。
[C23]
前記ブロックを符号化するための前記手段が、潜在的な参照フレームのリスト中の直近の参照フレームを備える参照フレームの一部分に関連して前記ブロックを符号化するための手段を備える、C19に記載の装置。
[C24]
前記ブロックを符号化するための前記手段が、
前記ブロックの前記1/8ピクセル精度動きベクトルを計算するための手段と、
前記ブロックの前記1/8ピクセル精度動きベクトルと動き予測子との間の差分を備える動きベクトル差分値を計算するための手段と
を備える、C19に記載の装置。
[C25]
前記動きベクトル差分値を計算するための前記手段が、
前記動き予測子を1/8ピクセル精度に量子化するための手段と、
前記ブロックの前記1/8ピクセル精度動きベクトルと前記量子化された動き予測子との間の前記差分を計算するための手段と
を備える、C24に記載の装置。
[C26]
実行されると、
ビデオデータのブロックに対して1/4ピクセル精度動きベクトルよりも1/8ピクセル精度動きベクトルの使用が好ましいと判断されたときに、前記1/8ピクセル精度動きベクトルを使用して前記ブロックを符号化することと、
前記ブロックに対する前記1/8ピクセル精度動きベクトルの前記使用を示す信号値を生成することと、
前記符号化されたブロックと前記信号値とを出力することと
をプロセッサに行わせる命令を備えるコンピュータ可読記憶媒体。
[C27]
前記ブロックがマクロブロックのパーティションを備え、前記信号値を生成するための前記命令が、前記1/8ピクセル精度動きベクトルの前記使用を示すように前記マクロブロックに関連するフラグの値を設定するための命令を備え、前記方法は、前記フラグが前記ブロックに対する1/8ピクセル精度動きベクトルの前記使用を示すときに、前記1/8ピクセル精度動きベクトルを使用して前記マクロブロックの全パーティションを符号化することをさらに備える、C26に記載のコンピュータ可読記憶媒体。
[C28]
前記ブロックを符号化するための前記命令が、参照フレームの一部分に関連して前記ブロックを符号化するための命令を備え、
前記信号値を生成するための前記命令が、参照フレームインデックス値と、前記ブロックを符号化するための前記1/8ピクセル精度動きベクトルの前記使用とを示す可変長コードを選択するための命令を備え、前記参照フレームインデックス値が前記参照フレームを識別する、C26に記載のコンピュータ可読記憶媒体。
[C29]
前記可変長コードを選択するための前記命令が、
前記ブロックの隣接ブロックが1/8ピクセル精度動きベクトルを使用して符号化されたのか、または1/4ピクセル精度動きベクトルを使用して符号化されたのかに基づいて、前記ブロックの符号化コンテキストを判断することと、
前記判断された符号化コンテキストに対応するコードのセットから前記可変長コードを選択することと
を行うための命令を備える、C28に記載のコンピュータ可読記憶媒体。
[C30]
前記ブロックを符号化するための前記命令が、潜在的な参照フレームのリスト中の直近の参照フレームを備える参照フレームの一部分に関連して前記ブロックを符号化するための命令を備える、C26に記載のコンピュータ可読記憶媒体。
[C31]
前記ブロックを符号化するための前記命令が、
前記ブロックの前記1/8ピクセル精度動きベクトルを計算することと、
前記ブロックの前記1/8ピクセル精度動きベクトルと動き予測子との間の差分を備える動きベクトル差分値を計算することと
を行うための命令を備える、C26に記載のコンピュータ可読記憶媒体。
[C32]
前記動きベクトル差分値を計算するための前記命令が、
前記動き予測子を1/8ピクセル精度に量子化することと、
前記ブロックの前記1/8ピクセル精度動きベクトルと前記量子化された動き予測子との間の前記差分を計算することと
を行うための命令を備える、C31に記載のコンピュータ可読記憶媒体。
[C33]
ビデオデータを復号する方法であって、前記方法が、
ビデオデータの符号化されたブロックと、ビデオデータの前記符号化されたブロックが1/8ピクセル精度動きベクトルを使用して符号化されたことを示す信号値とを受信することと、
ビデオデータの前記符号化されたブロックが前記1/8ピクセル精度動きベクトルを使用して符号化されたと判断するために前記信号値を分析することと、
前記信号値に基づいて、前記1/8ピクセル精度動きベクトルを使用してビデオデータの前記ブロックを復号することと
を備える、方法。
[C34]
前記ブロックがマクロブロックのパーティションを備え、前記信号値を分析することが、前記1/8ピクセル精度動きベクトルの前記使用を示す、前記マクロブロックに関連するフラグの値を分析することを備え、前記方法が、1/8ピクセル精度動きベクトルを使用して前記マクロブロックの全パーティションを復号することをさらに備える、C33に記載の方法。
[C35]
前記符号化されたブロックが、参照フレームの一部分に関連して符号化され、前記信号値を分析することが、
参照フレームインデックス値と、前記ブロックを符号化するための前記1/8ピクセル精度動きベクトルの前記使用とを示す可変長コードを分析することと、
前記参照フレームインデックス値を使用して前記参照フレームを識別することとを備える、C33に記載の方法。
[C36]
前記ブロックの隣接ブロックが1/8ピクセル精度動きベクトルを使用して符号化されたのか、または1/4ピクセル精度動きベクトルを使用して符号化されたのかに基づいて、前記ブロックの符号化コンテキストを判断することをさらに備え、
前記参照フレームを識別することが、前記判断された符号化コンテキストに対応するコードのセット中で前記参照フレームインデックス値を識別することを備える、C35に記載の方法。
[C37]
前記符号化されたブロックが動きベクトル差分値を備え、前記ブロックを復号することが、
前記ブロックの動き予測子を判断することと、
前記1/8ピクセル精度動きベクトルを計算するために、前記動き予測子と前記動きベクトル差分値との和を計算することと
を備える、C33に記載の方法。
[C38]
ビデオデータを復号するための装置であって、前記装置が、
ビデオデータの符号化されたブロックと、ビデオデータの前記符号化されたブロックが1/8ピクセル精度動きベクトルを使用して符号化されたことを示す信号値とを受信するための入力インターフェースと、
ビデオデータの前記ブロックが前記1/8ピクセル精度動きベクトルを使用して符号化されたと判断するために前記信号値を分析し、前記信号値に基づいて、前記1/8ピクセル精度動きベクトルを使用してビデオデータの前記ブロックを復号するためのビデオデコーダと
を備える、装置。
[C39]
前記ブロックがマクロブロックのパーティションを備え、前記信号値を分析するために、前記ビデオデコーダが、前記1/8ピクセル精度動きベクトルの前記使用を示す、前記マクロブロックに関連するフラグの値を分析するように構成され、前記ビデオデコーダが、1/8ピクセル精度動きベクトルを使用して前記マクロブロックの全パーティションを復号するように構成された、C38に記載の装置。
[C40]
前記符号化されたブロックが、参照フレームの一部分に関連して符号化され、前記信号値を分析するために、前記ビデオデコーダが、参照フレームインデックス値と、前記ブロックを符号化するための前記1/8ピクセル精度動きベクトルの前記使用とを示す可変長コードを分析し、前記参照フレームインデックス値を使用して前記参照フレームを識別するように構成された、C38に記載の装置。
[C41]
前記ビデオデコーダは、前記ブロックの隣接ブロックが1/8ピクセル精度動きベクトルを使用して符号化されたのか、または1/4ピクセル精度動きベクトルを使用して符号化されたのかに基づいて、前記ブロックの符号化コンテキストを判断するように構成され、前記参照フレームを識別するために、前記ビデオデコーダが、前記判断された符号化コンテキストに対応するコードのセット中の前記参照フレームインデックス値を識別するように構成された、C40に記載の装置。
[C42]
前記符号化されたブロックが動きベクトル差分値を備え、前記ブロックを復号するために、前記ビデオデコーダが、前記ブロックの動き予測子を判断し、前記1/8ピクセル精度動きベクトルを計算するために、前記動き予測子と前記動きベクトル差分値との和を計算するように構成された、C38に記載の装置。
[C43]
ビデオデータを復号するための装置であって、前記装置が、
ビデオデータの符号化されたブロックと、ビデオデータの前記符号化されたブロックが1/8ピクセル精度動きベクトルを使用して符号化されたことを示す信号値とを受信するための手段と、
ビデオデータの前記ブロックが前記1/8ピクセル精度動きベクトルを使用して符号化されたと判断するために前記信号値を分析するための手段と、
前記信号値に基づいて、前記1/8ピクセル精度動きベクトルを使用してビデオデータの前記ブロックを復号するための手段と
を備える、装置。
[C44]
前記ブロックがマクロブロックのパーティションを備え、前記信号値を分析するための前記手段が、前記1/8ピクセル精度動きベクトルの前記使用を示す、前記マクロブロックに関連するフラグの値を分析するための手段を備え、前記方法が、1/8ピクセル精度動きベクトルを使用して前記マクロブロックの全パーティションを復号することをさらに備える、C43に記載の装置。
[C45]
前記符号化されたブロックが、参照フレームの一部分に関連して符号化され、前記信号値を分析するための手段が、
参照フレームインデックス値と、前記ブロックを符号化するための前記1/8ピクセル精度動きベクトルの前記使用とを示す可変長コードを分析するための手段と、
前記参照フレームインデックス値を使用して前記参照フレームを識別するための手段とを備える、C43に記載の装置。
[C46]
前記ブロックの隣接ブロックが1/8ピクセル精度動きベクトルを使用して符号化されたのか、または1/4ピクセル精度動きベクトルを使用して符号化されたのかに基づいて、前記ブロックの符号化コンテキストを判断するための手段をさらに備え、前記参照フレームを識別するための前記手段が、前記判断された符号化コンテキストに対応するコードのセット中で前記参照フレームインデックス値を識別するための手段を備える、C45に記載の装置。
[C47]
前記符号化されたブロックが動きベクトル差分値を備え、前記ブロックを復号するための前記手段が、
前記ブロックの動き予測子を判断するための手段と、
前記1/8ピクセル精度動きベクトルを計算するために、前記動き予測子と前記動きベクトル差分値との和を計算するための手段と
を備える、C43に記載の装置。
[C48]
実行されると、
ビデオデータの符号化されたブロックと、ビデオデータの前記符号化されたブロックが1/8ピクセル精度動きベクトルを使用して符号化されたことを示す信号値とを受信することと、
ビデオデータの前記ブロックが前記1/8ピクセル精度動きベクトルを使用して符号化されたと判断するために前記信号値を分析することと、
前記信号値に基づいて、前記1/8ピクセル精度動きベクトルを使用してビデオデータの前記ブロックを復号することと
をプロセッサに行わせる命令を備えるコンピュータ可読記憶媒体。
[C49]
前記ブロックがマクロブロックのパーティションを備え、前記信号値を分析するための前記命令が、前記1/8ピクセル精度動きベクトルの前記使用を示す、前記マクロブロックに関連するフラグの値を分析するための命令を備え、1/8ピクセル精度動きベクトルを使用して前記マクロブロックの全パーティションを復号するための命令をさらに備える、C48に記載のコンピュータ可読記憶媒体。
[C50]
前記符号化されたブロックが、参照フレームの一部分に関連して符号化され、前記信号値を分析するための前記命令が、
参照フレームインデックス値と、前記ブロックを符号化するための前記1/8ピクセル精度動きベクトルの前記使用とを示す可変長コードを分析することと、
前記参照フレームインデックス値を使用して前記参照フレームを識別することとを行うための命令を備える、C48に記載のコンピュータ可読記憶媒体。
[C51]
前記ブロックの隣接ブロックが1/8ピクセル精度動きベクトルを使用して符号化されたのか、または1/4ピクセル精度動きベクトルを使用して符号化されたのかに基づいて、前記ブロックの符号化コンテキストを判断するための命令をさらに備え、
前記参照フレームを識別するための前記命令が、前記判断された符号化コンテキストに対応するコードのセット中で前記参照フレームインデックス値を識別するための命令を備える、C50に記載のコンピュータ可読記憶媒体。
[C52]
前記符号化されたブロックが動きベクトル差分値を備え、前記ブロックを復号するための前記命令が、
前記ブロックの動き予測子を判断することと、
前記1/8ピクセル精度動きベクトルを計算するために、前記動き予測子と前記動きベクトル差分値との和を計算することと
を行うための命令を備える、C48に記載のコンピュータ可読記憶媒体。

Claims (52)

  1. ビデオデータを符号化する方法であって、前記方法が、
    ビデオデータのブロックに対して1/4ピクセル精度動きベクトルよりも1/8ピクセル精度動きベクトルの使用が好ましいと判断されたときに、前記1/8ピクセル精度動きベクトルを使用して前記ブロックを符号化することと、
    前記ブロックに対する前記1/8ピクセル精度動きベクトルの前記使用を示す信号値を生成することと、
    前記符号化されたブロックと前記信号値とを出力することと
    を備える、方法。
  2. 前記信号値を生成することが、前記1/8ピクセル精度動きベクトルの前記使用を示すように前記ブロックに関連するフラグの値を設定することを備える、請求項1に記載の方法。
  3. 前記ブロックがマクロブロックのパーティションを備え、前記信号値を生成することが、前記1/8ピクセル精度動きベクトルの前記使用を示すように前記マクロブロックに関連するフラグの値を設定することを備え、前記方法は、前記フラグが前記ブロックに対する1/8ピクセル精度動きベクトルの前記使用を示すときに、前記1/8ピクセル精度動きベクトルを使用して前記マクロブロックの全パーティションを符号化することをさらに備える、請求項1に記載の方法。
  4. 前記ブロックを符号化することが、参照フレームの一部分に関連して前記ブロックを符号化することを備え、
    前記信号値を生成することが、参照フレームインデックス値と、前記ブロックを符号化するための前記1/8ピクセル精度動きベクトルの前記使用とを示す可変長コードを選択することを備え、前記参照フレームインデックス値が前記参照フレームを識別する、請求項1に記載の方法。
  5. 前記参照フレームインデックス値が前記参照フレームの第1の参照フレームインデックス値を備え、前記第1の参照フレームインデックス値の長さが、前記参照フレームに関する1/4ピクセル精度動きベクトルの使用を示す第2の参照フレームインデックス値の長さよりも小さい、請求項4に記載の方法。
  6. 前記可変長コードを選択することが、
    前記ブロックの隣接ブロックが1/8ピクセル精度動きベクトルを使用して符号化されたのか、または1/4ピクセル精度動きベクトルを使用して符号化されたのかに基づいて、前記ブロックの符号化コンテキストを判断することと、
    前記判断された符号化コンテキストに対応するコードのセットから前記可変長コードを選択することと
    を備える、請求項4に記載の方法。
  7. 前記ブロックを符号化することが、潜在的な参照フレームのリスト中の直近の参照フレームを備える参照フレームの一部分に関連して前記ブロックを符号化することを備える、請求項1に記載の方法。
  8. 前記ブロックを符号化することが、
    前記ブロックの前記1/8ピクセル精度動きベクトルを計算することと、
    前記ブロックの前記1/8ピクセル精度動きベクトルと動き予測子との間の差分を備える動きベクトル差分値を計算することと
    を備える、請求項1に記載の方法。
  9. 前記動きベクトル差分値を計算することが、
    前記動き予測子を1/8ピクセル精度に量子化することと、
    前記ブロックの前記1/8ピクセル精度動きベクトルと前記量子化された動き予測子との間の前記差分を計算することと
    を備える、請求項8に記載の方法。
  10. ビデオデータを符号化するための装置であって、前記装置は、ビデオデータのブロックに対して1/4ピクセル精度動きベクトルよりも1/8ピクセル精度動きベクトルの使用が好ましいと判断されたときに、前記1/8ピクセル精度動きベクトルを使用して前記ブロックを符号化し、前記ブロックに対する前記1/8ピクセル精度動きベクトルの前記使用を示す信号値を生成するように構成されたビデオエンコーダを備える、装置。
  11. 前記信号値を生成するために、前記ビデオエンコーダが、前記1/8ピクセル精度動きベクトルの前記使用を示すように前記ブロックに関連するフラグの値を設定するように構成された、請求項10に記載の装置。
  12. 前記ブロックがマクロブロックのパーティションを備え、前記信号値を生成するために、前記ビデオエンコーダが、前記1/8ピクセル精度動きベクトルの前記使用を示すように前記マクロブロックに関連するフラグの値を設定するように構成され、前記ビデオエンコーダは、前記フラグが前記ブロックに対する1/8ピクセル精度動きベクトルの前記使用を示すときに、前記1/8ピクセル精度動きベクトルを使用して前記マクロブロックの全パーティションを符号化するように構成された、請求項10に記載の装置。
  13. 前記ビデオエンコーダが、参照フレームの一部分に関連して前記ブロックを符号化するように構成され、前記信号値を生成するために、前記ビデオエンコーダが、参照フレームインデックス値と、前記ブロックを符号化するための前記1/8ピクセル精度動きベクトルの前記使用とを示す可変長コードを選択するように構成され、前記参照フレームインデックス値が前記参照フレームを識別する、請求項10に記載の装置。
  14. 前記参照フレームインデックス値が前記参照フレームの第1の参照フレームインデックス値を備え、前記第1の参照フレームインデックス値の長さが、前記参照フレームに関する1/4ピクセル精度動きベクトルの使用を示す第2の参照フレームインデックス値の長さよりも小さい、請求項13に記載の装置。
  15. 前記可変長コードを選択するために、前記ビデオエンコーダは、前記ブロックの隣接ブロックが1/8ピクセル精度動きベクトルを使用して符号化されたのか、または1/4ピクセル精度動きベクトルを使用して符号化されたのかに基づいて、前記ブロックの符号化コンテキストを判断し、前記判断された符号化コンテキストに対応するコードのセットから前記可変長コードを選択するように構成された、請求項13に記載の装置。
  16. 前記ビデオエンコーダが、潜在的な参照フレームのリスト中の直近の参照フレームを備える参照フレームの一部分に関連して前記ブロックを符号化するように構成された、請求項10に記載の装置。
  17. 前記ビデオエンコーダが、前記ブロックの前記1/8ピクセル精度動きベクトルを計算し、前記ブロックの前記1/8ピクセル精度動きベクトルと動き予測子との間の差分を備える動きベクトル差分値を計算するように構成された、請求項10に記載の装置。
  18. 前記動きベクトル差分値を計算するために、前記ビデオエンコーダが、前記動き予測子を1/8ピクセル精度に量子化し、前記ブロックの前記1/8ピクセル精度動きベクトルと前記量子化された動き予測子との間の前記差分を計算するように構成された、請求項17に記載の装置。
  19. ビデオデータを符号化するための装置であって、前記装置が、
    ビデオデータのブロックに対して1/4ピクセル精度動きベクトルよりも1/8ピクセル精度動きベクトルの使用が好ましいと判断されたときに、前記1/8ピクセル精度動きベクトルを使用して前記ブロックを符号化するための手段と、
    前記ブロックに対する前記1/8ピクセル精度動きベクトルの前記使用を示す信号値を生成するための手段と、
    前記符号化されたブロックと前記信号値とを出力するための手段と
    を備える、装置。
  20. 前記ブロックがマクロブロックのパーティションを備え、前記信号値を生成するための前記手段が、前記1/8ピクセル精度動きベクトルの前記使用を示すように前記マクロブロックに関連するフラグの値を設定するための手段を備え、前記フラグが前記ブロックに対する1/8ピクセル精度動きベクトルの前記使用を示すときに、前記1/8ピクセル精度動きベクトルを使用して前記マクロブロックの全パーティションを符号化するための手段をさらに備える、請求項19に記載の装置。
  21. 前記ブロックを符号化するための前記手段が、参照フレームの一部分に関連して前記ブロックを符号化するための手段を備え、
    前記信号値を生成するための前記手段が、参照フレームインデックス値と、前記ブロックを符号化するための前記1/8ピクセル精度動きベクトルの前記使用とを示す可変長コードを選択するための手段を備え、前記参照フレームインデックス値が前記参照フレームを識別する、請求項19に記載の装置。
  22. 前記可変長コードを選択するための前記手段が、
    前記ブロックの隣接ブロックが1/8ピクセル精度動きベクトルを使用して符号化されたのか、または1/4ピクセル精度動きベクトルを使用して符号化されたのかに基づいて、前記ブロックの符号化コンテキストを判断するための手段と、
    前記判断された符号化コンテキストに対応するコードのセットから前記可変長コードを選択するための手段と
    を備える、請求項21に記載の装置。
  23. 前記ブロックを符号化するための前記手段が、潜在的な参照フレームのリスト中の直近の参照フレームを備える参照フレームの一部分に関連して前記ブロックを符号化するための手段を備える、請求項19に記載の装置。
  24. 前記ブロックを符号化するための前記手段が、
    前記ブロックの前記1/8ピクセル精度動きベクトルを計算するための手段と、
    前記ブロックの前記1/8ピクセル精度動きベクトルと動き予測子との間の差分を備える動きベクトル差分値を計算するための手段と
    を備える、請求項19に記載の装置。
  25. 前記動きベクトル差分値を計算するための前記手段が、
    前記動き予測子を1/8ピクセル精度に量子化するための手段と、
    前記ブロックの前記1/8ピクセル精度動きベクトルと前記量子化された動き予測子との間の前記差分を計算するための手段と
    を備える、請求項24に記載の装置。
  26. 実行されると、
    ビデオデータのブロックに対して1/4ピクセル精度動きベクトルよりも1/8ピクセル精度動きベクトルの使用が好ましいと判断されたときに、前記1/8ピクセル精度動きベクトルを使用して前記ブロックを符号化することと、
    前記ブロックに対する前記1/8ピクセル精度動きベクトルの前記使用を示す信号値を生成することと、
    前記符号化されたブロックと前記信号値とを出力することと
    をプロセッサに行わせる命令を備えるコンピュータ可読記憶媒体。
  27. 前記ブロックがマクロブロックのパーティションを備え、前記信号値を生成するための前記命令が、前記1/8ピクセル精度動きベクトルの前記使用を示すように前記マクロブロックに関連するフラグの値を設定するための命令を備え、前記方法は、前記フラグが前記ブロックに対する1/8ピクセル精度動きベクトルの前記使用を示すときに、前記1/8ピクセル精度動きベクトルを使用して前記マクロブロックの全パーティションを符号化することをさらに備える、請求項26に記載のコンピュータ可読記憶媒体。
  28. 前記ブロックを符号化するための前記命令が、参照フレームの一部分に関連して前記ブロックを符号化するための命令を備え、
    前記信号値を生成するための前記命令が、参照フレームインデックス値と、前記ブロックを符号化するための前記1/8ピクセル精度動きベクトルの前記使用とを示す可変長コードを選択するための命令を備え、前記参照フレームインデックス値が前記参照フレームを識別する、請求項26に記載のコンピュータ可読記憶媒体。
  29. 前記可変長コードを選択するための前記命令が、
    前記ブロックの隣接ブロックが1/8ピクセル精度動きベクトルを使用して符号化されたのか、または1/4ピクセル精度動きベクトルを使用して符号化されたのかに基づいて、前記ブロックの符号化コンテキストを判断することと、
    前記判断された符号化コンテキストに対応するコードのセットから前記可変長コードを選択することと
    を行うための命令を備える、請求項28に記載のコンピュータ可読記憶媒体。
  30. 前記ブロックを符号化するための前記命令が、潜在的な参照フレームのリスト中の直近の参照フレームを備える参照フレームの一部分に関連して前記ブロックを符号化するための命令を備える、請求項26に記載のコンピュータ可読記憶媒体。
  31. 前記ブロックを符号化するための前記命令が、
    前記ブロックの前記1/8ピクセル精度動きベクトルを計算することと、
    前記ブロックの前記1/8ピクセル精度動きベクトルと動き予測子との間の差分を備える動きベクトル差分値を計算することと
    を行うための命令を備える、請求項26に記載のコンピュータ可読記憶媒体。
  32. 前記動きベクトル差分値を計算するための前記命令が、
    前記動き予測子を1/8ピクセル精度に量子化することと、
    前記ブロックの前記1/8ピクセル精度動きベクトルと前記量子化された動き予測子との間の前記差分を計算することと
    を行うための命令を備える、請求項31に記載のコンピュータ可読記憶媒体。
  33. ビデオデータを復号する方法であって、前記方法が、
    ビデオデータの符号化されたブロックと、ビデオデータの前記符号化されたブロックが1/8ピクセル精度動きベクトルを使用して符号化されたことを示す信号値とを受信することと、
    ビデオデータの前記符号化されたブロックが前記1/8ピクセル精度動きベクトルを使用して符号化されたと判断するために前記信号値を分析することと、
    前記信号値に基づいて、前記1/8ピクセル精度動きベクトルを使用してビデオデータの前記ブロックを復号することと
    を備える、方法。
  34. 前記ブロックがマクロブロックのパーティションを備え、前記信号値を分析することが、前記1/8ピクセル精度動きベクトルの前記使用を示す、前記マクロブロックに関連するフラグの値を分析することを備え、前記方法が、1/8ピクセル精度動きベクトルを使用して前記マクロブロックの全パーティションを復号することをさらに備える、請求項33に記載の方法。
  35. 前記符号化されたブロックが、参照フレームの一部分に関連して符号化され、前記信号値を分析することが、
    参照フレームインデックス値と、前記ブロックを符号化するための前記1/8ピクセル精度動きベクトルの前記使用とを示す可変長コードを分析することと、
    前記参照フレームインデックス値を使用して前記参照フレームを識別することと
    を備える、請求項33に記載の方法。
  36. 前記ブロックの隣接ブロックが1/8ピクセル精度動きベクトルを使用して符号化されたのか、または1/4ピクセル精度動きベクトルを使用して符号化されたのかに基づいて、前記ブロックの符号化コンテキストを判断することをさらに備え、
    前記参照フレームを識別することが、前記判断された符号化コンテキストに対応するコードのセット中で前記参照フレームインデックス値を識別することを備える、請求項35に記載の方法。
  37. 前記符号化されたブロックが動きベクトル差分値を備え、前記ブロックを復号することが、
    前記ブロックの動き予測子を判断することと、
    前記1/8ピクセル精度動きベクトルを計算するために、前記動き予測子と前記動きベクトル差分値との和を計算することと
    を備える、請求項33に記載の方法。
  38. ビデオデータを復号するための装置であって、前記装置が、
    ビデオデータの符号化されたブロックと、ビデオデータの前記符号化されたブロックが1/8ピクセル精度動きベクトルを使用して符号化されたことを示す信号値とを受信するための入力インターフェースと、
    ビデオデータの前記ブロックが前記1/8ピクセル精度動きベクトルを使用して符号化されたと判断するために前記信号値を分析し、前記信号値に基づいて、前記1/8ピクセル精度動きベクトルを使用してビデオデータの前記ブロックを復号するためのビデオデコーダと
    を備える、装置。
  39. 前記ブロックがマクロブロックのパーティションを備え、前記信号値を分析するために、前記ビデオデコーダが、前記1/8ピクセル精度動きベクトルの前記使用を示す、前記マクロブロックに関連するフラグの値を分析するように構成され、前記ビデオデコーダが、1/8ピクセル精度動きベクトルを使用して前記マクロブロックの全パーティションを復号するように構成された、請求項38に記載の装置。
  40. 前記符号化されたブロックが、参照フレームの一部分に関連して符号化され、前記信号値を分析するために、前記ビデオデコーダが、参照フレームインデックス値と、前記ブロックを符号化するための前記1/8ピクセル精度動きベクトルの前記使用とを示す可変長コードを分析し、前記参照フレームインデックス値を使用して前記参照フレームを識別するように構成された、請求項38に記載の装置。
  41. 前記ビデオデコーダは、前記ブロックの隣接ブロックが1/8ピクセル精度動きベクトルを使用して符号化されたのか、または1/4ピクセル精度動きベクトルを使用して符号化されたのかに基づいて、前記ブロックの符号化コンテキストを判断するように構成され、前記参照フレームを識別するために、前記ビデオデコーダが、前記判断された符号化コンテキストに対応するコードのセット中の前記参照フレームインデックス値を識別するように構成された、請求項40に記載の装置。
  42. 前記符号化されたブロックが動きベクトル差分値を備え、前記ブロックを復号するために、前記ビデオデコーダが、前記ブロックの動き予測子を判断し、前記1/8ピクセル精度動きベクトルを計算するために、前記動き予測子と前記動きベクトル差分値との和を計算するように構成された、請求項38に記載の装置。
  43. ビデオデータを復号するための装置であって、前記装置が、
    ビデオデータの符号化されたブロックと、ビデオデータの前記符号化されたブロックが1/8ピクセル精度動きベクトルを使用して符号化されたことを示す信号値とを受信するための手段と、
    ビデオデータの前記ブロックが前記1/8ピクセル精度動きベクトルを使用して符号化されたと判断するために前記信号値を分析するための手段と、
    前記信号値に基づいて、前記1/8ピクセル精度動きベクトルを使用してビデオデータの前記ブロックを復号するための手段と
    を備える、装置。
  44. 前記ブロックがマクロブロックのパーティションを備え、前記信号値を分析するための前記手段が、前記1/8ピクセル精度動きベクトルの前記使用を示す、前記マクロブロックに関連するフラグの値を分析するための手段を備え、前記方法が、1/8ピクセル精度動きベクトルを使用して前記マクロブロックの全パーティションを復号することをさらに備える、請求項43に記載の装置。
  45. 前記符号化されたブロックが、参照フレームの一部分に関連して符号化され、前記信号値を分析するための手段が、
    参照フレームインデックス値と、前記ブロックを符号化するための前記1/8ピクセル精度動きベクトルの前記使用とを示す可変長コードを分析するための手段と、
    前記参照フレームインデックス値を使用して前記参照フレームを識別するための手段と
    を備える、請求項43に記載の装置。
  46. 前記ブロックの隣接ブロックが1/8ピクセル精度動きベクトルを使用して符号化されたのか、または1/4ピクセル精度動きベクトルを使用して符号化されたのかに基づいて、前記ブロックの符号化コンテキストを判断するための手段をさらに備え、
    前記参照フレームを識別するための前記手段が、前記判断された符号化コンテキストに対応するコードのセット中で前記参照フレームインデックス値を識別するための手段を備える、請求項45に記載の装置。
  47. 前記符号化されたブロックが動きベクトル差分値を備え、前記ブロックを復号するための前記手段が、
    前記ブロックの動き予測子を判断するための手段と、
    前記1/8ピクセル精度動きベクトルを計算するために、前記動き予測子と前記動きベクトル差分値との和を計算するための手段と
    を備える、請求項43に記載の装置。
  48. 実行されると、
    ビデオデータの符号化されたブロックと、ビデオデータの前記符号化されたブロックが1/8ピクセル精度動きベクトルを使用して符号化されたことを示す信号値とを受信することと、
    ビデオデータの前記ブロックが前記1/8ピクセル精度動きベクトルを使用して符号化されたと判断するために前記信号値を分析することと、
    前記信号値に基づいて、前記1/8ピクセル精度動きベクトルを使用してビデオデータの前記ブロックを復号することと
    をプロセッサに行わせる命令を備えるコンピュータ可読記憶媒体。
  49. 前記ブロックがマクロブロックのパーティションを備え、前記信号値を分析するための前記命令が、前記1/8ピクセル精度動きベクトルの前記使用を示す、前記マクロブロックに関連するフラグの値を分析するための命令を備え、1/8ピクセル精度動きベクトルを使用して前記マクロブロックの全パーティションを復号するための命令をさらに備える、請求項48に記載のコンピュータ可読記憶媒体。
  50. 前記符号化されたブロックが、参照フレームの一部分に関連して符号化され、前記信号値を分析するための前記命令が、
    参照フレームインデックス値と、前記ブロックを符号化するための前記1/8ピクセル精度動きベクトルの前記使用とを示す可変長コードを分析することと、
    前記参照フレームインデックス値を使用して前記参照フレームを識別することと
    を行うための命令を備える、請求項48に記載のコンピュータ可読記憶媒体。
  51. 前記ブロックの隣接ブロックが1/8ピクセル精度動きベクトルを使用して符号化されたのか、または1/4ピクセル精度動きベクトルを使用して符号化されたのかに基づいて、前記ブロックの符号化コンテキストを判断するための命令をさらに備え、
    前記参照フレームを識別するための前記命令が、前記判断された符号化コンテキストに対応するコードのセット中で前記参照フレームインデックス値を識別するための命令を備える、請求項50に記載のコンピュータ可読記憶媒体。
  52. 前記符号化されたブロックが動きベクトル差分値を備え、前記ブロックを復号するための前記命令が、
    前記ブロックの動き予測子を判断することと、
    前記1/8ピクセル精度動きベクトルを計算するために、前記動き予測子と前記動きベクトル差分値との和を計算することと
    を行うための命令を備える、請求項48に記載のコンピュータ可読記憶媒体。
JP2015042807A 2010-02-19 2015-03-04 ビデオコーディングのための適応動き解像度 Expired - Fee Related JP6042470B2 (ja)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US30638810P 2010-02-19 2010-02-19
US61/306,388 2010-02-19
US32322110P 2010-04-12 2010-04-12
US61/323,221 2010-04-12
US37617010P 2010-08-23 2010-08-23
US61/376,170 2010-08-23
US12/945,170 US9237355B2 (en) 2010-02-19 2010-11-12 Adaptive motion resolution for video coding
US12/945,170 2010-11-12

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2012554005A Division JP2013520875A (ja) 2010-02-19 2011-02-16 ビデオコーディングのための適応動き解像度

Publications (3)

Publication Number Publication Date
JP2015156653A true JP2015156653A (ja) 2015-08-27
JP2015156653A5 JP2015156653A5 (ja) 2016-04-07
JP6042470B2 JP6042470B2 (ja) 2016-12-14

Family

ID=44476476

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2012554005A Withdrawn JP2013520875A (ja) 2010-02-19 2011-02-16 ビデオコーディングのための適応動き解像度
JP2015042807A Expired - Fee Related JP6042470B2 (ja) 2010-02-19 2015-03-04 ビデオコーディングのための適応動き解像度

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2012554005A Withdrawn JP2013520875A (ja) 2010-02-19 2011-02-16 ビデオコーディングのための適応動き解像度

Country Status (7)

Country Link
US (1) US9237355B2 (ja)
EP (2) EP2537341A1 (ja)
JP (2) JP2013520875A (ja)
KR (1) KR101387255B1 (ja)
CN (1) CN102783149B (ja)
TW (1) TW201218774A (ja)
WO (1) WO2011103206A1 (ja)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101452859B1 (ko) * 2009-08-13 2014-10-23 삼성전자주식회사 움직임 벡터를 부호화 및 복호화하는 방법 및 장치
EP2515541A4 (en) * 2009-12-18 2015-08-26 Sharp Kk BILDFILTER, CODING DEVICE, DECODING DEVICE AND DATA STRUCTURE
US10327008B2 (en) 2010-10-13 2019-06-18 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding
EP4250732B1 (en) 2011-01-07 2024-03-20 Nokia Technologies Oy Motion prediction in video coding
JP2012151576A (ja) * 2011-01-18 2012-08-09 Hitachi Ltd 画像符号化方法、画像符号化装置、画像復号方法及び画像復号装置
AP2016009618A0 (en) 2011-06-16 2016-12-31 Ge Video Compression Llc Entropy coding of motion vector differences
JP5318292B2 (ja) 2011-06-23 2013-10-16 パナソニック株式会社 画像復号方法及び画像復号装置
USRE47366E1 (en) 2011-06-23 2019-04-23 Sun Patent Trust Image decoding method and apparatus based on a signal type of the control parameter of the current block
WO2012176464A1 (ja) 2011-06-24 2012-12-27 パナソニック株式会社 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置及び画像符号化復号装置
CN106878722B (zh) 2011-06-24 2019-11-12 太阳专利托管公司 解码方法、解码装置、编码方法、编码装置
MX2013013483A (es) 2011-06-27 2014-02-27 Panasonic Corp Metodo de decodificacion de imagenes, metodo de codificacion de imagenes, aparato de decodificacion de imagenes, aparato de codificacion de imagenes y aparato de codificacion y decodificacion de imagenes.
CN107105254B (zh) 2011-06-28 2020-03-20 太阳专利托管公司 编码方法及编码装置
WO2013001749A1 (ja) * 2011-06-29 2013-01-03 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置および画像符号化復号装置
WO2013001767A1 (ja) 2011-06-29 2013-01-03 パナソニック株式会社 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置及び画像符号化復号装置
KR102060619B1 (ko) 2011-06-30 2019-12-30 선 페이턴트 트러스트 화상 복호 방법, 화상 부호화 방법, 화상 복호 장치, 화상 부호화 장치 및 화상 부호화 복호 장치
PL2728869T3 (pl) 2011-06-30 2022-02-28 Sun Patent Trust Sposób dekodowania obrazów
US10536701B2 (en) 2011-07-01 2020-01-14 Qualcomm Incorporated Video coding using adaptive motion vector resolution
CN106851295B (zh) 2011-07-11 2019-10-18 太阳专利托管公司 编码方法及编码装置
UA114674C2 (uk) 2011-07-15 2017-07-10 ДЖ.І. ВІДІЕУ КЕМПРЕШН, ЛЛСі Ініціалізація контексту в ентропійному кодуванні
CN103918270B (zh) * 2011-09-30 2018-08-21 英特尔公司 用于视频编码管线的系统、方法和计算机程序产品
JP6034010B2 (ja) * 2011-10-24 2016-11-30 ソニー株式会社 符号化装置、符号化方法、およびプログラム
KR20130050149A (ko) * 2011-11-07 2013-05-15 오수미 인터 모드에서의 예측 블록 생성 방법
US20130128971A1 (en) * 2011-11-23 2013-05-23 Qualcomm Incorporated Transforms in video coding
US20130188716A1 (en) * 2012-01-20 2013-07-25 Qualcomm Incorporated Temporal motion vector predictor candidate
KR101682999B1 (ko) * 2012-04-16 2016-12-20 노키아 테크놀로지스 오와이 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
EA201492099A1 (ru) * 2012-05-14 2015-04-30 Лука Россато Разложение остаточных данных при кодировании, декодировании и реконструкции сигнала в многоуровневой иерархии
US9332255B2 (en) * 2012-06-28 2016-05-03 Qualcomm Incorporated Signaling long-term reference pictures for video coding
US9819965B2 (en) * 2012-11-13 2017-11-14 Intel Corporation Content adaptive transform coding for next generation video
US9743091B2 (en) * 2012-12-17 2017-08-22 Lg Electronics Inc. Method for encoding/decoding image, and device using same
FR3011429A1 (fr) * 2013-09-27 2015-04-03 Orange Codage et decodage video par heritage d'un champ de vecteurs de mouvement
EP3061233B1 (en) 2013-10-25 2019-12-11 Microsoft Technology Licensing, LLC Representing blocks with hash values in video and image coding and decoding
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
US9774881B2 (en) * 2014-01-08 2017-09-26 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
US9942560B2 (en) 2014-01-08 2018-04-10 Microsoft Technology Licensing, Llc Encoding screen capture data
BR112016017201B1 (pt) * 2014-01-29 2023-09-26 Hfi Innovation Inc Método de codificação e decodificação para precisão adaptativa de vetor de movimento de um bloco de dados de vídeo
US10368092B2 (en) 2014-03-04 2019-07-30 Microsoft Technology Licensing, Llc Encoder-side decisions for block flipping and skip mode in intra block copy prediction
KR102185245B1 (ko) 2014-03-04 2020-12-01 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 해시 기반 블록 매칭을 위한 해시 테이블 구성 및 이용가능성 검사
CN105706450B (zh) 2014-06-23 2019-07-16 微软技术许可有限责任公司 根据基于散列的块匹配的结果的编码器决定
WO2016119104A1 (en) * 2015-01-26 2016-08-04 Mediatek Inc. Motion vector regularization
MX2017004210A (es) 2014-09-30 2017-11-15 Microsoft Technology Licensing Llc Decisiones de codificador basadas en hash para codificar video.
US10455231B2 (en) 2014-09-30 2019-10-22 Hfi Innovation Inc. Method of adaptive motion vector resolution for video coding
KR102466902B1 (ko) * 2014-10-31 2022-11-14 삼성전자주식회사 움직임 벡터 부복호화 방법 및 장치
CN105635734B (zh) * 2014-11-03 2019-04-12 掌赢信息科技(上海)有限公司 基于视频通话场景的自适应视频编码方法及装置
KR102349788B1 (ko) * 2015-01-13 2022-01-11 인텔렉추얼디스커버리 주식회사 영상의 부호화/복호화 방법 및 장치
EP4221202A1 (en) * 2015-06-05 2023-08-02 Dolby Laboratories Licensing Corporation Image encoding and decoding method and image decoding device
WO2017156669A1 (en) * 2016-03-14 2017-09-21 Mediatek Singapore Pte. Ltd. Methods for motion vector storage in video coding
US10390039B2 (en) 2016-08-31 2019-08-20 Microsoft Technology Licensing, Llc Motion estimation for screen remoting scenarios
US11095877B2 (en) 2016-11-30 2021-08-17 Microsoft Technology Licensing, Llc Local hash-based motion estimation for screen remoting scenarios
CN108235007B (zh) * 2016-12-12 2023-06-27 上海天荷电子信息有限公司 各模式使用不同精度同种编码参数的数据压缩方法和装置
KR20210156351A (ko) 2017-07-07 2021-12-24 삼성전자주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
CN109905714B (zh) 2017-12-08 2022-12-27 华为技术有限公司 帧间预测方法、装置及终端设备
WO2019244051A1 (en) 2018-06-19 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Selected mvd precision without mvp truncation
CN110933427B (zh) 2018-09-19 2023-05-12 北京字节跳动网络技术有限公司 仿射模式编码的模式相关自适应运动矢量分辨率
KR20200054110A (ko) * 2018-11-08 2020-05-19 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2020098810A1 (en) 2018-11-17 2020-05-22 Beijing Bytedance Network Technology Co., Ltd. Merge with motion vector difference in video processing
US11102513B2 (en) 2018-12-06 2021-08-24 Tencent America LLC One-level transform split and adaptive sub-block transform
KR102662036B1 (ko) 2018-12-21 2024-05-03 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 모션 벡터 차이 모드에서 병합시 모션 벡터 정밀도
WO2020125754A1 (en) * 2018-12-21 2020-06-25 Beijing Bytedance Network Technology Co., Ltd. Motion vector derivation using higher bit-depth precision
CN113574867B (zh) * 2019-01-12 2022-09-13 北京字节跳动网络技术有限公司 Mv精度约束
EP3895429A4 (en) 2019-01-31 2022-08-10 Beijing Bytedance Network Technology Co., Ltd. CONTEXT FOR CODE AN ADAPTIVE MOTION VECTOR RESOLUTION IN AFFINE MODE
US20210392349A1 (en) * 2019-03-01 2021-12-16 Alibaba Group Holding Limited Adaptive Resolution Video Coding
CN110677653B (zh) * 2019-09-27 2024-01-09 腾讯科技(深圳)有限公司 视频编解码方法和装置及存储介质
US11202085B1 (en) 2020-06-12 2021-12-14 Microsoft Technology Licensing, Llc Low-cost hash table construction and hash-based block matching for variable-size blocks

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005076630A1 (ja) * 2004-02-03 2005-08-18 Matsushita Electric Industrial Co., Ltd. 復号化装置、符号化装置、補間フレーム生成システム、集積回路装置、復号化プログラムおよび符号化プログラム
WO2008122956A2 (en) * 2007-04-09 2008-10-16 Nokia Corporation High accuracy motion vectors for video coding with low encoder and decoder complexity
WO2009088038A1 (ja) * 2008-01-09 2009-07-16 Mitsubishi Electric Corporation 画像符号化装置、画像復号装置、画像符号化方法、および画像復号方法
JP2009171608A (ja) * 2002-01-24 2009-07-30 Hitachi Ltd 動画像の符号化方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5737022A (en) 1993-02-26 1998-04-07 Kabushiki Kaisha Toshiba Motion picture error concealment using simplified motion compensation
JP2897763B2 (ja) 1997-07-28 1999-05-31 日本ビクター株式会社 動き補償符号化装置、復号化装置、符号化方法及び復号化方法
US6968008B1 (en) 1999-07-27 2005-11-22 Sharp Laboratories Of America, Inc. Methods for motion estimation with adaptive motion accuracy
US8175159B2 (en) * 2002-01-24 2012-05-08 Hitachi, Ltd. Moving picture signal coding method, decoding method, coding apparatus, and decoding apparatus
JP4120301B2 (ja) 2002-04-25 2008-07-16 ソニー株式会社 画像処理装置およびその方法
JP2003319400A (ja) 2002-04-26 2003-11-07 Sony Corp 符号化装置、復号装置、画像処理装置、それらの方法およびプログラム
KR100462789B1 (ko) 2002-06-12 2004-12-20 한국과학기술원 이진 산술 부호화를 이용한 다중 부호 데이터 압축 방법및 장치
CN1245031C (zh) 2002-07-12 2006-03-08 清华大学 基于预测方向校正/统计预判的快速亚象素运动估计方法
JP4724351B2 (ja) 2002-07-15 2011-07-13 三菱電機株式会社 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、および通信装置
JP4144339B2 (ja) 2002-11-29 2008-09-03 富士通株式会社 動画像符号化方法及び動画像複号化方法
WO2005022923A2 (en) 2003-08-26 2005-03-10 Thomson Licensing S.A. Method and apparatus for minimizing number of reference pictures used for inter-coding
US7599438B2 (en) 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
US20050105621A1 (en) 2003-11-04 2005-05-19 Ju Chi-Cheng Apparatus capable of performing both block-matching motion compensation and global motion compensation and method thereof
KR100994768B1 (ko) 2003-12-08 2010-11-16 삼성전자주식회사 동영상 부호화를 위한 움직임 추정 방법 및 이를 구현하기위한 프로그램이 기록된 기록 매체
US7720148B2 (en) 2004-03-26 2010-05-18 The Hong Kong University Of Science And Technology Efficient multi-frame motion estimation for video compression
DE102004019339A1 (de) 2004-04-21 2005-11-24 Siemens Ag Prädiktionsverfahren, sowie zugehöriges Verfahren zur Decodierung eines Prädiktionsverfahrens, zugehörige Encodiervorrichtung und Decodiervorrichtung
US20060133507A1 (en) 2004-12-06 2006-06-22 Matsushita Electric Industrial Co., Ltd. Picture information decoding method and picture information encoding method
US7728878B2 (en) 2004-12-17 2010-06-01 Mitsubishi Electric Research Labortories, Inc. Method and system for processing multiview videos for view synthesis using side information
EP2765780A1 (en) 2005-12-05 2014-08-13 Huawei Technologies Co., Ltd. Binarizing method and device thereof
CN1794821A (zh) 2006-01-11 2006-06-28 浙江大学 可分级视频压缩中插值的方法与装置
CN100566413C (zh) 2006-06-05 2009-12-02 华为技术有限公司 一种自适应插值处理方法及编解码模块
JP2009089332A (ja) * 2007-10-03 2009-04-23 Sony Corp 動き予測方法及び動き予測装置
KR101456487B1 (ko) 2008-03-04 2014-10-31 삼성전자주식회사 부화소 단위의 움직임 예측을 이용한 영상 부호화, 복호화방법 및 그 장치
JP2009230537A (ja) * 2008-03-24 2009-10-08 Olympus Corp 画像処理装置、画像処理プログラム、画像処理方法、および、電子機器
US8831086B2 (en) 2008-04-10 2014-09-09 Qualcomm Incorporated Prediction techniques for interpolation in video coding
JP5012647B2 (ja) 2008-04-30 2012-08-29 ソニー株式会社 画像処理装置およびその方法、並びにプログラム
JP2010016453A (ja) 2008-07-01 2010-01-21 Sony Corp 画像符号化装置および方法、画像復号装置および方法、並びにプログラム
JP2010028221A (ja) 2008-07-15 2010-02-04 Sony Corp 動きベクトル検出装置、動きベクトル検出方法、画像符号化装置及びプログラム
TW201041404A (en) 2009-03-06 2010-11-16 Sony Corp Image processing device and method
WO2011021914A2 (ko) * 2009-08-21 2011-02-24 에스케이텔레콤 주식회사 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
EP2489189A1 (en) * 2009-10-14 2012-08-22 Thomson Licensing Methods and apparatus for adaptive coding of motion information
US20120051431A1 (en) 2010-08-25 2012-03-01 Qualcomm Incorporated Motion direction based adaptive motion vector resolution signaling for video coding
US10327008B2 (en) 2010-10-13 2019-06-18 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009171608A (ja) * 2002-01-24 2009-07-30 Hitachi Ltd 動画像の符号化方法
WO2005076630A1 (ja) * 2004-02-03 2005-08-18 Matsushita Electric Industrial Co., Ltd. 復号化装置、符号化装置、補間フレーム生成システム、集積回路装置、復号化プログラムおよび符号化プログラム
WO2008122956A2 (en) * 2007-04-09 2008-10-16 Nokia Corporation High accuracy motion vectors for video coding with low encoder and decoder complexity
WO2009088038A1 (ja) * 2008-01-09 2009-07-16 Mitsubishi Electric Corporation 画像符号化装置、画像復号装置、画像符号化方法、および画像復号方法

Also Published As

Publication number Publication date
EP4145828A1 (en) 2023-03-08
JP2013520875A (ja) 2013-06-06
TW201218774A (en) 2012-05-01
JP6042470B2 (ja) 2016-12-14
US20110206125A1 (en) 2011-08-25
CN102783149B (zh) 2015-11-25
KR101387255B1 (ko) 2014-04-21
WO2011103206A1 (en) 2011-08-25
CN102783149A (zh) 2012-11-14
EP2537341A1 (en) 2012-12-26
KR20120126108A (ko) 2012-11-20
US9237355B2 (en) 2016-01-12

Similar Documents

Publication Publication Date Title
JP6042470B2 (ja) ビデオコーディングのための適応動き解像度
JP6896903B2 (ja) 大型マクロ・ブロックを用いたビデオ・コーディング
JP5823526B2 (ja) ビデオ符号化のための適応動きベクトル解像度信号伝達
JP5944423B2 (ja) 大型マクロ・ブロックを用いたビデオ・コーディング
JP6165798B2 (ja) イントラ予測を使用したビデオ符号化
JP5996661B2 (ja) イントラ予測コーディングのための最も可能性の高い変換
JP5886440B2 (ja) イントラ予測ビデオコーディングにおける非正方形変換
JP5922244B2 (ja) ビデオコーディングにおいて適応ループフィルタとマージされたサンプル適応オフセット
JP6542225B2 (ja) イントラブロックコピーのための残差予測
JP5384652B2 (ja) 大型マクロ・ブロックを用いたビデオ・コーディング
JP5866453B2 (ja) イントラモードコーディングにおける参照モード選択
JP5784830B2 (ja) ビデオコード化のための複数領域走査順序
WO2010135609A1 (en) Adaptive picture type decision for video coding
JP2012533212A (ja) ビデオコーディングにおける単方向予測および双方向予測のための異なる重み付け
JP5937205B2 (ja) ビデオコーディングのためのランモードベース係数コーディング
JP2014209743A (ja) 幾何学的動き区分のための固定小数点実装形態
JP5684342B2 (ja) デジタル映像データを処理するための方法および装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150612

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160215

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160215

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160705

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161109

R150 Certificate of patent or registration of utility model

Ref document number: 6042470

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees