JP5646654B2 - 動き補間のためのクロミナンス高精度動きフィルタ処理 - Google Patents

動き補間のためのクロミナンス高精度動きフィルタ処理 Download PDF

Info

Publication number
JP5646654B2
JP5646654B2 JP2012554006A JP2012554006A JP5646654B2 JP 5646654 B2 JP5646654 B2 JP 5646654B2 JP 2012554006 A JP2012554006 A JP 2012554006A JP 2012554006 A JP2012554006 A JP 2012554006A JP 5646654 B2 JP5646654 B2 JP 5646654B2
Authority
JP
Japan
Prior art keywords
interpolation filter
fractional pixel
fractional
pixel position
motion vector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012554006A
Other languages
English (en)
Other versions
JP2013520876A (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 JP2013520876A publication Critical patent/JP2013520876A/ja
Application granted granted Critical
Publication of JP5646654B2 publication Critical patent/JP5646654B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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)
  • Color Television Systems (AREA)

Description

本出願は、その全体が参照により本明細書に組み込まれる、2010年2月18日に出願された米国仮特許出願第61/305,891号の利益を主張する。
本開示は、ビデオコーディングに関する。
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーム機、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263またはITU−T H.264/MPEG−4、Part10、アドバンストビデオコーディング(Advanced Video Coding)(AVC)によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法などのビデオ圧縮技法を実装して、デジタルビデオ情報をより効率的に送信および受信する。
ビデオ圧縮技法では、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および/または時間的予測を実行する。ブロックベースのビデオコーディングの場合、ビデオフレームまたはスライス(slice)がマクロブロック(macroblocks)に区分され得る。各マクロブロックはさらに区分され得る。イントラコード化される(I)フレームまたはスライス(intra-coded (I) frame and slice)中のマクロブロックは、近傍マクロブロックに関する空間的予測を使用して符号化される。インターコード化される(PまたはB)フレームまたはスライス(inter-coded (P or B) frame or slice)中のマクロブロックは、同じフレームまたはスライス中の近傍マクロブロックに関する空間的予測、あるいは他のリファレンスフレーム(reference frames)に関する時間的予測を使用し得る。
概して、本開示では、クロミナンス(chrominance)ビデオデータをコーディングするための技法について説明する。ビデオデータは、一般に、輝度情報を与えるルミナンス(luminance)ピクセルと、色彩情報を与えるクロミナンスピクセルという、2つのタイプのデータを含む。動きベクトル(ルミナンス動きベクトル)を計算するために、ルミナンスピクセルに関する動き推定プロセスが実行され得る、そして、その動きベクトル(ルミナンス動きベクトル)は、次いで、クロミナンスピクセル(クロミナンス動きベクトル)のために再利用され得る。クロミナンス領域中には、サブサンプリングにより、ルミナンスピクセルの半数のクロミナンスピクセルがあり得る。すなわち、各クロミナンス成分は行方向と列方向とにおいて2だけダウンサンプリングされ得る。その上、ルミナンス動きベクトルは1/4ピクセル精度(precision)を有し得、これにより、クロミナンスピクセルのためにルミナンス動きベクトルを再利用するために、クロミナンス動きベクトルは1/8ピクセル精度を有することになり得る。本開示は、クロミナンスブロックを符号化し、復号するために、1/8ピクセル位置など、フラクショナル(fractional)ピクセル位置の値を補間するための技法を提供する。本開示はまた、フラクショナルピクセル位置の値を補間するための補間フィルタを作成するための技法を提供する。
一例では、方法は、ビデオデータのクロミナンスブロックに対応するビデオデータのルミナンスブロックのためのルミナンス動きベクトルに基づいて、クロミナンスブロックのためのクロミナンス動きベクトルを判断すること(determining)であって、クロミナンス動きベクトルが、第1のフラクショナル部分(fractional portion)を有する水平成分(horizontal component)と、第2のフラクショナル部分を有する垂直成分(vertical component)とを備え、ルミナンス動きベクトルが第1の精度を有し、クロミナンス動きベクトルが第1の精度以上の第2の精度を有する、判断することと、水平成分の第1のフラクショナル部分と垂直成分の第2のフラクショナル部分とに基づいて補間フィルタを選択することであって、補間フィルタを選択することが、補間フィルタのセットから補間フィルタを選択することを備え、補間フィルタのセットの各々が、ルミナンス動きベクトルの複数の可能なフラクショナルピクセル位置のうちの1つに対応する、選択することと、選択された補間フィルタを使用してクロミナンス動きベクトルによって識別されるリファレンスブロック(reference block)の値を補間することと、リファレンスブロックを使用してクロミナンスブロックを処理することとを含む。
別の例では、装置は、ビデオデータのクロミナンスブロックに対応するビデオデータのルミナンスブロックのためのルミナンス動きベクトルに基づいて、クロミナンスブロックのためのクロミナンス動きベクトルを判断することであって、クロミナンス動きベクトルが、第1のフラクショナル部分を有する水平成分と、第2のフラクショナル部分を有する垂直成分とを備え、ルミナンス動きベクトルが第1の精度を有し、クロミナンス動きベクトルが第1の精度以上の第2の精度を有する、判断することと、水平成分の第1のフラクショナル部分と垂直成分の第2のフラクショナル部分とに基づいて補間フィルタを選択することであって、補間フィルタを選択することが、補間フィルタのセットから補間フィルタを選択することを備え、補間フィルタのセットの各々が、ルミナンス動きベクトルの複数の可能なフラクショナルピクセル位置のうちの1つに対応する、選択することと、選択された補間フィルタを使用してクロミナンス動きベクトルによって識別されるリファレンスブロックの値を補間することと、リファレンスブロックを使用してクロミナンスブロックを処理することとを行うように構成されたビデオコーディングユニットを含む。
別の例では、装置は、ビデオデータのクロミナンスブロックに対応するビデオデータのルミナンスブロックのためのルミナンス動きベクトルに基づいて、クロミナンスブロックのためのクロミナンス動きベクトルを判断するための手段であって、クロミナンス動きベクトルが、第1のフラクショナル部分を有する水平成分と、第2のフラクショナル部分を有する垂直成分とを備え、ルミナンス動きベクトルが第1の精度を有し、クロミナンス動きベクトルが第1の精度以上の第2の精度を有する、判断するための手段と、水平成分の第1のフラクショナル部分と垂直成分の第2のフラクショナル部分とに基づいて補間フィルタを選択するための手段であって、補間フィルタを選択することが、補間フィルタのセットから補間フィルタを選択することを備え、補間フィルタのセットの各々が、ルミナンス動きベクトルの複数の可能なフラクショナルピクセル位置のうちの1つに対応する、選択するための手段と、選択された補間フィルタを使用してクロミナンス動きベクトルによって識別されるリファレンスブロックの値を補間するための手段と、リファレンスブロックを使用してクロミナンスブロックを処理するための手段とを含む。
別の例では、コンピュータ可読記憶媒体などのコンピュータ可読媒体は、ビデオデータのクロミナンスブロックに対応するビデオデータのルミナンスブロックのためのルミナンス動きベクトルに基づいて、クロミナンスブロックのためのクロミナンス動きベクトルを判断することであって、クロミナンス動きベクトルが、第1のフラクショナル部分を有する水平成分と、第2のフラクショナル部分を有する垂直成分とを備え、ルミナンス動きベクトルが第1の精度を有し、クロミナンス動きベクトルが第1の精度以上の第2の精度を有する、判断することと、水平成分の第1のフラクショナル部分と垂直成分の第2のフラクショナル部分とに基づいて補間フィルタを選択することであって、補間フィルタを選択することが、補間フィルタのセットから補間フィルタを選択することを備え、補間フィルタのセットの各々が、ルミナンス動きベクトルの複数の可能なフラクショナルピクセル位置のうちの1つに対応する、選択することと、選択された補間フィルタを使用してクロミナンス動きベクトルによって識別されるリファレンスブロックの値を補間することと、リファレンスブロックを使用してクロミナンスブロックを処理することとをプログラマブルプロセッサに行わせる命令を含んでおり、たとえば、それらの命令で符号化される。
1つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになるであろう。
クロミナンス動きベクトルのフラクショナルピクセル位置の値を補間するための技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。 補間フィルタを選択するための技法を実装し得るビデオエンコーダの一例を示すブロック図。 符号化されたビデオシーケンスを復号するビデオデコーダの一例を示すブロック図。 フルピクセル位置(full pixel position)に対するフラクショナルピクセル位置を示す概念図。 ルミナンスブロックのピクセル位置とクロミナンスブロックの対応するフラクショナルピクセル位置とを示す概念図。 ルミナンスブロックのピクセル位置とクロミナンスブロックの対応するフラクショナルピクセル位置とを示す概念図。 ルミナンスブロックのピクセル位置とクロミナンスブロックの対応するフラクショナルピクセル位置とを示す概念図。 クロミナンスブロックを符号化するためにフラクショナルピクセル位置の値を補間するための例示的な方法を示すフローチャート。 クロミナンスブロックを復号するためにフラクショナルピクセル位置の値を補間するための例示的な方法を示すフローチャート。 水平成分と垂直成分の両方についての成分寄与(component contributions)を計算するために使用されるべき補間フィルタを選択するための方法を示すフローチャート。 水平成分と垂直成分の両方についての成分寄与を計算するために使用されるべき補間フィルタを選択するための方法を示すフローチャート。 既存のアップサンプリングフィルタ(up-sampling filter)から、本開示の技法に従って使用されるべき補間フィルタを作成するための例示的な方法を示すフローチャート。
詳細な説明
概して、本開示では、クロミナンスビデオデータをコーディングするための技法について説明する。ビデオデータ(たとえば、マクロブロック(macroblocks))は、輝度に関係するルミナンスピクセルと、色彩に関係するクロミナンスピクセルという、2つのタイプのピクセルを含み得る。データのブロック、たとえば、マクロブロックについてルミナンスピクセル値の半分のクロミナンスピクセル値があり得る。マクロブロックは、たとえば、ルミナンスデータとクロミナンスデータとを含み得る。ビデオエンコーダは、ルミナンス動きベクトルを計算するために、マクロブロックのルミナンスピクセルに関する動き推定を実行し得る。ビデオエンコーダは、次いで、そのルミナンス動きベクトルを使用して、マクロブロック中の同じ相対ピクセルをポイントするクロミナンス動きベクトルを生成し得る。ルミナンス動きベクトルは、フラクショナルピクセル精度、たとえば、1/4ピクセル精度を有し得る。
クロミナンスブロックのピクセルは、マクロブロック中のルミナンスブロックのピクセルに対してダウンサンプリングされ(downsampled)得る。このダウンサンプリング(downsampling)により、クロミナンス動きベクトルは、ルミナンス動きベクトルの精度よりも大きい精度のフラクショナルピクセル位置をポイントし得る。すなわち、コーディングユニットがクロミナンス動きベクトルとしてルミナンス動きベクトルを再利用するために、クロミナンス動きベクトルは、ルミナンス動きベクトルよりも大きい精度を有する必要があり得る。たとえば、ルミナンス動きベクトルが1/4ピクセル精度を有する場合、クロミナンス動きベクトルは1/8ピクセル精度を有し得る。いくつかの例では、ルミナンス動きベクトルは1/8ピクセル精度を有し得る。したがって、クロミナンス動きベクトルは1/16ピクセル精度を有し得る。しかしながら、クロミナンス動きベクトルは1/8ピクセル精度に切り捨てられ(truncated)得る。したがって、クロミナンス動きベクトルは、ルミナンス動きベクトルの精度以上である精度を有し得る。
いくつかのビデオエンコーダは、リファレンスクロミナンスブロック、すなわち、クロミナンス動きベクトルがポイントするクロミナンスブロック、の1/8ピクセル位置の値を補間するために、双一次補間(bilinear interpolation)を使用する。双一次補間は、高速であるが、周波数応答が不十分であるので、予測誤差が増加することがある。本開示の技法によれば、ビデオエンコーダは、動きベクトルの水平成分および垂直成分に基づいて、動きベクトルによってポイントされるフラクショナルピクセル位置の値を補間するときに使用すべき補間フィルタを選択するように構成され得る。
動きベクトルは水平成分と垂直成分とを有し得る。本開示では、動きベクトルが{MVx,MVy}に従って定義されるように、水平成分を参照するために「MVx」を使用し、垂直成分を参照するために「MVy」を使用する。動きベクトルの水平および垂直成分はフル部分(full portion)とフラクショナル部分(fractional portion)とを有し得る。成分のフル部分は、動きベクトルが対応するフルピクセル位置を参照し、フラクショナル部分は、フルピクセル位置に対応するフラクショナル位置を参照し得る。フラクショナル部分は分数N/Mに対応し、ただしN<Mである。たとえば、動きベクトルの成分が2 3/8であると、その成分のフル部分は2になり、フラクショナル部分は3/8になる。動きベクトル成分が負であるとき、フルピクセル位置は、動きベクトル成分よりも小さい最大整数であるように選定され得る。したがって、一例として、動きベクトルの成分が−2 3/8であると、その成分のフル部分は−3になり、フラクショナル部分は5/8になる。この場合、フラクショナル部分は、動きベクトル成分中に含まれている分数(fraction)とは異なることに留意されたい。概して、1/8精度を有するクロミナンスベクトルについて、動きベクトルが負であると仮定して、動きベクトル中に含まれている分数がN/8であると、その動きベクトルのフラクショナル部分は(8−N)/8になる。したがって、水平および垂直成分は、真分数(proper fraction)を有する帯分数(mixed numbers)として表され得る。その分数は、2進分数(dyadic fraction)、すなわち、2の累乗である分母を有する分数であり得る。
本開示では、水平成分のフラクショナル部分を「mx」と呼び、垂直成分のフラクショナル部分を「my」と呼ぶ。本開示では、水平成分のフル部分を「FPx」と呼び、垂直成分のフル部分を「FPy」と呼ぶ。したがって、水平成分MVxはFPx+mxとして表され得、垂直成分MVyはFPy+myとして表され得る。
本開示の技法は、フラクショナルピクセル位置を参照する動きベクトルの水平成分mxおよび垂直成分myに基づいて、フラクショナルピクセル位置の値を補間するために使用すべき補間フィルタを選択することを含む。本技法はまた、ルミナンスピクセルのフラクショナル位置、たとえば、1/4ピクセル位置のセットについて補間フィルタのセットを定義することを含む。フラクショナルピクセル位置の値は、水平成分および垂直成分について判断された値の寄与(contributions)の組合せとして判断され得る。言い換えれば、フラクショナルピクセル位置の補間値(interpolated value)、すなわち、値(fractional_position(mx,my))は、それら成分のフラクショナル位置のセットについて判断された値の組合せとして判断され得る。
成分のフラクショナル部分がフルピクセル位置に等しい場合、その成分のフラクショナル部分の値はフルピクセル位置の値に等しいと判断され得る。成分のフラクショナル部分がルミナンスブロックのフラクショナルピクセル位置のセットのうちの1つに等しい場合、その成分のフラクショナル部分の値は、フラクショナル位置について定義されたフィルタを評価することによって判断され得る。他の場合、成分のフラクショナル部分の値は、隣接するフラクショナルピクセル位置からの寄与の平均として判断され得る。
一例として、ルミナンス動きベクトルが1/4ピクセル精度を有し、クロミナンス動きベクトルが、ルミナンスブロックに対して2倍にダウンサンプリングされたクロミナンスブロックに対応すると仮定する。その場合、ルミナンス動きベクトルの成分についての潜在的なフラクショナルピクセル位置は、0、1/4、1/2、および3/4である。この例では、本開示の技法によれば、フィルタは、1/4、1/2、および3/4のフラクショナル位置について定義され得る。これらのフィルタは、それぞれF1、F2、およびF3と呼ばれ得る。これらのフィルタは、1/4ピクセル精度、すなわち、ルミナンス動きベクトルと同じ精度を有する動きベクトルによって表され得るフラクショナル位置に対応するものとして表され得る。この例では、クロミナンス動きベクトルはさらに、フラクショナルピクセル位置1/8、3/8、5/8、および7/8を参照し得る。これらのフラクショナルピクセル位置は、1/8ピクセル精度を有する動きベクトルによっては参照され得るが、1/4ピクセル精度を有する動きベクトルによっては参照され得ない。
この例では、クロミナンス動きベクトルの成分が、0に等しいフラクショナル部分を有する場合、その成分の値は、その成分のフル部分によって参照されるフルピクセル位置に等しい。クロミナンス動きベクトルの成分が1/4、1/2、または3/4に等しいフラクショナル部分を有する場合、その成分の値は、F1、F2、またはF3の各々を実行することによって生成された値に等しい。他の場合、その成分の値は、隣接するフラクショナル位置の平均であり得る。
たとえば、成分のフラクショナル部分が1/8である場合、その成分の値は、フルピクセル位置の値と、F1を実行することによって生成された値との平均である。別の例として、成分のフラクショナル部分が3/8である場合、その成分の値は、F1を実行することによって生成された値と、F2を実行することによって生成された値との平均である。さらに別の例として、成分のフラクショナル部分が5/8である場合、その成分の値は、F2を実行することによって生成された値と、F3を実行することによって生成された値との平均である。さらに別の例として、成分のフラクショナル部分が7/8である場合、その成分の値は、F3を実行することによって生成された値と、隣接するフルピクセル位置、たとえば、FPn+1の値との平均である。この例では、他の方向におけるフラクショナル部分は0であると仮定する。
このプロセスは、リファレンスクロミナンスブロック中の各ピクセルについて使用され得る。リファレンスクロミナンスブロックのフラクショナルピクセル位置の計算値はさらに、クロミナンス動きベクトルを使用して符号化されたクロミナンスブロックの残差値を計算するために使用され得る。すなわち、符号化されたクロミナンスブロックは、(上記で説明したプロセスに従って計算されたフラクショナルピクセル位置の値を有するリファレンスフレームのブロックに対応する)予測ブロックと、符号化されるべきクロミナンスブロックとの間の差として計算されるクロミナンス残差値に対応し得る。
デコーダは、クロミナンスブロックに対応するルミナンスブロックのためのルミナンス動きベクトルを受信し、そのルミナンス動きベクトルを使用してクロミナンスブロックのためのクロミナンス動きベクトルを形成し、上記で説明した同じ補間プロセスを使用してリファレンスフレームのためのフラクショナルピクセル位置の値を補間し得る。デコーダは、次いで、クロミナンスブロックの残差値を予測ブロックに追加することによってクロミナンスブロックを復号し得る。次いで、そのブロックは、表示されるべきピクセルのためのルミナンスおよびクロミナンスデータを生成するために、クロミナンスブロックとルミナンスブロックとを組み合わせることによって、レンダリングされ得る。
上記で説明したプロセスは、既存のアップサンプリングフィルタから、ルミナンスブロックのフラクショナルピクセル位置のセットの各々について補間フィルタを定義することを含む。本開示の技法はまた、そのような補間フィルタを定義するための例示的な方法を提供する。単一のアップサンプリングフィルタから補間フィルタを得るために、1つの例示的な方法が使用され得る。4倍にアップサンプリングされるべき1次元信号x[n]について考える。この場合、x[n]のあらゆる2つのサンプル間に3つの0を挿入することによって、別の信号y[n]が作成され得る。これはエイリアシング(aliasing)につながり得るが、これは、カットオフ周波数π/4を有するフィルタh[n]を用いてy[n]を低域フィルタ処理することによって除去され得る。そのフィルタを、0を中心とする(2M+1個の)タップを有する線形位相であるとし、ここで、Mはユーザによって構成され得る。その場合、フィルタ処理された信号s[n]は、
Figure 0005646654
のように書くことができる。
この例では、フィルタ処理演算は、畳み込み演算ではなく内積として表され得る。この例では、各nについて、nが4で割り切れるときのみy[n]は0でないので、h[n]の係数のあるサブセットのみが特定のnについてのs[n]の計算のために必要とされる。そのサブセットは、(モジュロ演算子「%」を使用して、n%4によって示される)nを4で割ることから生じる剰余によって判断され得る。一例として、M=11であり、h[n]が23個のタップを有する場合について考える。その場合、nが1に等しいとき(および同様に(n%4)が1に等しいとき)、
s[1]=h[−9]y[−8]+h[−5]y[−4]+h[−1]y[0]+h[3]y[4]+h[7]y[8]+h[11]y[12]
になり、または、y[n]値を対応するx[n]値と置換する等価な式を使用すると、
s[1]=h[−9]x[−2]+h[−5]x[−1]+h[−1]x[0]+h[3]x[1]+h[7]x[2]+h[11]x[3]
になる。
したがって、{h[−9],h[−5],h[−1],h[3],h[7],h[11]}は、1/4ピクセル位置の補間値を得るための6タップフィルタと考えられ得る。同じく、この例では、フィルタ処理演算が、従来の畳み込み演算の代わりに内積演算として表され、さもなければ上記のフィルタは時間反転され(time-reversed)得ることが強調される。この式では、h[k]は、2M+1個の係数を有するフィルタhのk番目の係数を指す。同様に、1/2ピクセル位置および3/4ピクセル位置に対して使用され得るフィルタは、それぞれ、
{h[−10],h[−6],h[−2],h[2],h[6],h[10]}、および
{h[−11],h[−7],h[−3],h[1],h[5],h[9]}であり得る。
この例示的な方法は、1/4ピクセルフラクショナル位置において値を補間するための補間フィルタを生成するために使用され得る。概して、1/Nの精度(accuracy)のフラクショナルピクセル補間の場合、異なるフラクショナルピクセル位置m/N、0≦m<Nのためのフィルタを生成するために、まず、カットオフ周波数π/Nをもつ線形位相低域フィルタを設計し、次いで、値n%Nに対応するフィルタの異なるサブセットを発見することによって、同様の技法が適用され得る。
いくつかの例では、上記の例示的な方法によって生成されたフィルタはさらに改良され得る。たとえば、各フィルタについて、係数が1まで加算することが保証され得る。これは、補間値のためにDCバイアスを導入することを回避し得る。別の例として、元の低域フィルタh[n]の場合、nが0に等しくないとき、h[0]=1およびh[4n]=0であることが保証され得る。これは、フィルタ処理するときに、x[n]の元のサンプルに影響を及ぼすことを回避し得る。
実装目的のために、フィルタ係数は、すべての係数が、2の累乗である公分母(common denominator)を有する場合、分数として表され得る。たとえば、公分母は32であり得る。フィルタを実行するとき、フィルタ係数は、公分母(たとえば、32)で乗算され、最も近い整数に四捨五入され得る。フィルタ係数が公分母、たとえば、32まで加算することを保証するために、±1のさらなる調整が行われ得る。フィルタ係数(公分母を無視する)がより高い値まで加算するようにフィルタ係数を選定した場合、より良好な補間が達成されるが、中間フィルタ処理計算のためのビット深度(bit-depth)が増加し得る。例示的な一実装形態では、8ビットの入力ビット深度を有するビデオシーケンスの場合、クロミナンス補間が16ビット精度で実行され得るように、32まで加算するフィルタ係数を選定した。
例示的な一実装形態では、以下のフィルタ係数、
1={2,−5,28,9,−3,1};
2={2,−6,20,20,−6,2};および
3={1,−3,9,28,−5,2}.
を使用した。
IPPPおよび階層型B構成(Hierarchical B configurations)の場合、クロミナンス成分補間のためにこれらのフィルタを使用すると、JCT−VC標準化作業において使用されるテストシーケンスの等価ピーク信号対雑音比に対して、それぞれ1.46%および0.68%のビットレートの改善(減少)が得られた。
図1は、クロミナンス動きベクトルのフラクショナルピクセル位置の値を補間するための技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示すように、システム10は、通信チャネル16を介して符号化されたビデオを宛先デバイス14に送信するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、広範囲のデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、いわゆるセルラー電話または衛星無線電話のワイヤレスハンドセットなどのワイヤレス通信デバイスを、または通信チャネル16を介してビデオ情報を通信することができ、その場合、通信チャネル16がワイヤレスである任意のワイヤレスデバイスを、備え得る。
ただし、クロミナンス動きベクトルのフラクショナルピクセル位置の値を補間することに関する本開示の技法は、必ずしもワイヤレスアプリケーションまたは設定(setting)に限定されるとは限らない。たとえば、これらの技法は、無線テレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、インターネットビデオ送信、記憶媒体上に符号化される符号化デジタルビデオ、または他のシナリオに適用し得る。したがって、通信チャネル16は、符号化されたビデオデータの送信に好適なワイヤレスまたはワイヤード媒体の任意の組合せを備え得る。
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、変調器/復調器(モデム)22と、送信機24とを含む。宛先デバイス14は、受信機26と、モデム28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のビデオエンコーダ20、および宛先デバイス14のビデオデコーダ30は、クロミナンスブロックを符号化または復号するためにリファレンスフレームのフラクショナルピクセル位置、たとえば、1/8ピクセル位置の値を補間するための補間フィルタを選択するための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスが他の構成要素または構成を含み得る。たとえば、ソースデバイス12は、外部カメラなどの外部ビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、一体型ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
図1の図示のシステム10は一例にすぎない。クロミナンスブロックを符号化または復号するためにリファレンスフレームのフラクショナルピクセル位置の値を補間するための補間フィルタを選択するための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。概して、本開示の技法はビデオ符号化デバイスによって実行されるが、本技法は、一般に「コーデック(CODEC)」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。ビデオエンコーダ20およびビデオデコーダ30は、本開示の技法を実装し得るビデオコーディングユニットの例である。これらの技法を実装し得るビデオコーディングユニットの別の例は、ビデオコーデックである。
ソースデバイス12および宛先デバイス14は、ソースデバイス12が宛先デバイス14に送信するためのコード化されたビデオデータを生成する、そのようなコーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14の各々がビデオ符号化および復号構成要素を含むので、デバイス12、14は、実質的に対称的に動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、またはビデオ電話通信のためのビデオデバイス12とビデオデバイス14との間の一方向または双方向のビデオ送信をサポートし得る。
ソースデバイス12のビデオソース18は、ビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからのビデオフィード(video feed)など、ビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソース18は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ発生ビデオとの組合せを発生し得る。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き携帯電話またはビデオ電話を形成し得る。ただし、上述のように、本開示で説明する技法は、一般にビデオコーディングに適用可能であり、ワイヤレスおよび/またはワイヤードアプリケーションに適用可能であり得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ発生ビデオはビデオエンコーダ20によって符号化され得る。次いで、符号化されたビデオ情報は、通信規格に従ってモデム22によって変調され、送信機24を介して宛先デバイス14に送信される。モデム23は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機24は、増幅器、フィルタ、および1つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
宛先デバイス14の受信機26はチャネル16を介して情報を受信し、モデム28はその情報を復調する。この場合も、ビデオ符号化プロセスは、クロミナンスブロックを符号化するためにリファレンスフレームのフラクショナルピクセル位置の値を補間するための補間フィルタを選択するために、本明細書で説明する技法のうちの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 研究グループ(Study Group)による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つまたは複数のエンコーダまたはデコーダ中に含めることができ、そのいずれかは複合エンコーダ/デコーダ(コーデック)の一部としてそれぞれのカメラ、コンピュータ、モバイルデバイス、加入者デバイス、ブロードキャストデバイス、セットトップボックス、サーバなどに統合され得る。
ビデオシーケンスは、一般に一連のビデオフレームを含む。ピクチャグループ(a group of picture)(GOP)は、概して、一連の1つまたは複数のビデオフレームを備える。GOPは、GOP中に含まれるいくつかのフレームを記述するシンタックスデータを、GOPのヘッダ、GOPの1つまたは複数のフレームのヘッダ、または他の場所中に含み得る。各フレームは、それぞれのフレームについての符号化モードを記述するフレームシンタックスデータを含み得る。ビデオエンコーダ20は、一般に、ビデオデータを符号化するために、個々のビデオフレーム内のビデオブロックに対して動作する。ビデオブロックは、マクロブロックまたはマクロブロックのパーティション(partition)に対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有し得る、指定のコーディング規格に応じてサイズが異なり得る。各ビデオフレームは複数のスライスを含み得る。各スライスは複数のマクロブロックを含み得る、それらはサブブロックとも呼ばれるパーティションに配置され得る。
一例として、ITU−T H.264規格は、ルーマ成分(luma components)については16×16、8×8、または4×4、およびクロマ成分(chroma components)については8×8など、様々なブロックサイズのイントラ予測(intra prediction)をサポートし、ならびにルーマ成分については16×16、16×8、8×16、8×8、8×4、4×8および4×4、およびクロマ成分については対応するスケーリングされたサイズなど、様々なブロックサイズのインター予測(inter prediction)をサポートする。本開示では、「N×N」と「N掛けるN」は、垂直寸法および水平寸法に関するブロックのピクセル寸法、たとえば、16×16ピクセル、または、16掛ける16ピクセルを指すために互換的に使用され得る。一般に、16×16ブロックは、垂直方向に16ピクセルを有し(y=16)、水平方向に16ピクセルを有する(x=16)。同様に、N×Nブロックは、一般に、垂直方向にNピクセルを有し、水平方向にNピクセルを有し、Nは、非負整数値(nonnegative integer value)を表す。ブロック中のピクセルは行と列に配置され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックはN×M個のピクセルを備え得る、ここで、Mは必ずしもNに等しいとは限らない。概して、16×16ブロックに関して説明したが、本開示の技法は、ブロックの他のサイズ、たとえば、32×32、64×64、16×32、32×16、32×64、64×32、または他のブロックサイズに適用し得る。したがって、本開示の技法は、16×16よりも大きいサイズのマクロブロックに適用され得る。
16×16よりも小さいブロックサイズは16×16マクロブロックのパーティションと呼ばれることがある。ビデオブロックは、ピクセル領域中のピクセルデータのブロックを備え得る、あるいは、たとえば、コード化されたビデオブロックと予測ビデオブロックとの間のピクセル差分を表す残差ビデオブロックデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換などの変換の適用後の、変換領域中の変換係数のブロックを備え得る。場合によっては、ビデオブロックは、変換領域中の量子化された変換係数のブロックを備え得る。
より小さいビデオブロックは、より良好な解像度を与えることができ、高い詳細レベルを含むビデオフレームのロケーションのために使用され得る。一般に、マクロブロックおよび様々なパーティションはサブブロックと呼ばれることがあり、ビデオブロックと見なされ得る。さらに、スライスは、マクロブロックおよび/またはサブブロックなどの複数のビデオブロックであると見なされ得る。各スライスはビデオフレームの単独で復号可能なユニットであり得る。代替的に、フレーム自体が復号可能なユニットであり得るか、またはフレームの他の部分が復号可能なユニットとして定義され得る。「コード化ユニット(coded unit)」または「コーディングユニット」という用語は、フレーム全体、フレームのスライス、シーケンスとも呼ばれるピクチャグループ(GOP)など、ビデオフレームの単独で復号可能な任意のユニット、または適用可能なコーディング技法に従って定義される別の単独で復号可能なユニットを指し得る。
本開示の技法によれば、ビデオエンコーダ20は、クロミナンスブロックを符号化するためにリファレンスフレームのフラクショナルピクセル位置の値を補間するための補間フィルタを選択するように構成され得る。たとえば、マクロブロックを符号化する間、ビデオエンコーダ20は、まず、インターモード(inter-mode)符号化プロセスを使用してマクロブロックの1つまたは複数のルミナンスブロックを符号化し得る。この符号化プロセスは、ルミナンスブロックのための1つまたは複数のルミナンス動きベクトルを生じ得る。次いで、ビデオエンコーダ20は、ルミナンス動きベクトルのうちの1つのルミナンスブロックに対応するクロミナンスブロックのためのクロミナンス動きベクトルを計算し得る。すなわち、クロミナンスブロックは、同じマクロブロックのルミナンスブロックとコロケートされ(collocated)得る。
ビデオエンコーダ20は、ルミナンスブロックの動き探索を実行し、クロミナンスブロックの動き探索によって生成されたルミナンス動きベクトルを再利用するように構成され得る。ルミナンス動きベクトルは、概して、リファレンスブロック内の特定のピクセル、たとえば、リファレンスブロックの左上のピクセルをポイントする。さらに、ルミナンス動きベクトルは、分数精度(fraction precision)、たとえば、1/4ピクセル精度を有し得る。リファレンスブロック中には4:1のルミナンスピクセル対クロミナンスピクセル比があり得る。すなわち、クロマブロック(chroma block)中の各行および列には、リファレンスマクロブロック中のコロケートされたルミナンスブロックに対して半数のピクセルがあり得る。
クロミナンスブロックを符号化するためにルミナンス動きベクトルを再利用するために、ビデオエンコーダ20は、ルミナンスブロックと等しい数の、クロミナンスブロック中の潜在的なピクセル位置(フルまたはフラクショナル)を使用し得る。したがって、クロミナンス動きベクトルは、ピクセル当たりのフラクショナルピクセル位置の数に関して、ルミナンス動きベクトルよりも大きい精度を有し得る。これは、水平方向と垂直方向とにおいて半数のピクセルの間で等しい数のピクセル位置が分割された結果である。たとえば、ルミナンス動きベクトルが1/4ピクセル精度を有する場合、クロミナンス動きベクトルは1/8ピクセル精度を有し得る。概して、ルミナンスベクトルが1/Nの精度を有するとき、クロミナンス動きベクトルは1/2Nの精度を有し得る。いくつかの例では、クロミナンス動きベクトルは1/Nの精度に切り捨てられ得る。
1/4ピクセル精度を有するルミナンス動きベクトルの例では、ビデオエンコーダ20は、各々がクロミナンスブロックのフラクショナル1/4ピクセル位置のうちの1つ(たとえば、ピクセルの1/4、2/4、および3/4)に関連する、3つの補間フィルタで構成され得る。ビデオエンコーダ20は、まず、クロミナンス動きベクトルがポイントするロケーションを判断し得る。そのロケーションは、各々がフル部分とフラクショナル部分とを有する、水平成分および垂直成分によって定義され得る。ビデオエンコーダ20は、水平成分および垂直成分のフラクショナル部分に基づいて補間フィルタを選択するように構成され得る。
概して、ビデオエンコーダ20は、水平成分および垂直成分に対応する、水平方向寄与(horizontal contribution)と垂直方向寄与(vertical contribution)との組合せに基づいて、動きベクトルがポイントするロケーションの値を計算し得る。まず、それら成分のうちの1つが計算され得る、次いで、同様の状況にあるピクセルを使用して、第2番目の成分が計算され得る。たとえば、まず、水平成分が計算され、次いで、同じ水平位置を有する上および下にあるピクセルを使用して、動きベクトルによってポイントされるロケーションの値が計算され得る。まず、上および下にあるピクセルの値が補間され得る。
動きベクトルがフルピクセル位置をポイントする場合、すなわち、水平成分と垂直成分の両方が0値フラクショナル部分を有する場合、ビデオエンコーダ20は、単に、動きベクトルによってポイントされるピクセルの値としてフルピクセル位置の値を使用し得る。一方、水平成分および垂直成分のフラクショナル部分のいずれかまたは両方が0でない場合、ビデオエンコーダ20は、動きベクトルによってポイントされるロケーションの値を補間し得る。
2つの成分のうちの一方が非0値フラクショナル部分を有するが、他方の成分が0値フラクショナル部分を有する場合、ビデオエンコーダ20は、ピクセル当たり1つの値のみを補間し得る。特に、ビデオエンコーダ20は、0値フラクショナル部分を有する成分の寄与として、フルピクセル位置の値を使用し得る。たとえば、水平成分が0値フラクショナル部分を有し、垂直成分が1/4のフラクショナル部分を有する場合、ビデオエンコーダ20は、垂直成分の値を補間し、水平成分のフルピクセル位置の値を使用し、これらの値を組み合わせて、動きベクトルによってポイントされるロケーションの値を計算し得る。
上記のように、ビデオエンコーダ20は、1/4ピクセル位置の各々のための補間フィルタで構成され得る。この例では、これらのフィルタをF1、F2、およびF3とし、F1は1/4位置に対応し、F2は2/4位置に対応し、F3は3/4位置に対応する。成分が1/4ピクセル位置をポイントするとき、ビデオエンコーダ20は、その成分のフラクショナル部分に対応するフィルタを使用してその成分の値を計算し得る。たとえば、垂直成分が1/4のフラクショナル部分を有する場合、ビデオエンコーダ20は、フィルタF1を使用して垂直方向寄与を計算し得る。
成分が1/8ピクセル位置をポイントするとき、ビデオエンコーダ20は、隣接するフィルタによって生成された値または隣接するフルピクセル値の平均を使用して、その成分の値を計算し得る。たとえば、水平成分が1/8のフラクショナル部分を有する場合、ビデオエンコーダ20は、水平成分の値を、フルピクセル位置と、フィルタF1によって生成された値との平均として計算し得る。別の例として、水平成分が3/8のフラクショナル部分を有する場合、ビデオエンコーダ20は、水平成分の値を、フィルタF1によって生成された値と、フィルタF2によって生成された値との平均として計算し得る。
特に、xを水平方向に対応するものとし、yを垂直方向に対応するものとする。(mx,my)を、1/8ピクセル精度を有する動きベクトルのフラクショナルピクセル部分を示すものとする。したがって、この例では、mx,my∈{0,1/8,1/4,3/8,1/2,5/8,3/4,7/8}である。(mx,my)=(0,0)に対応するリファレンスフレームピクセルをPによって示し、予測値をQによって示すものとする。フィルタF1、F2、およびF3を、それぞれ、mxおよびmyのための1/4位置、1/2位置、および3/4位置に関連するものとする。フラクショナル表現がさらに低減され得ないように、E8を、分母として8を有する1/8ピクセル位置のセットを指すものとする。すなわち、E8={1/8,3/8,5/8,7/8}とする。E4を、1/4ピクセル位置以上を指すものとする。すなわち、E4={0,1/4,1/2,3/4}とする。
ビデオエンコーダ20は、まず、mxもmyもE8に属さない場合について考え得る(ステップ1)。この場合、ビデオエンコーダ20は、次のようにQの値を補間し得る。(mx,my)=(0,0)である場合、Q=Pである(ステップ1−1)。さもなければ、mx=0である場合(ステップ1−2)、ビデオエンコーダ20は、垂直成分myの値のための適切な補間フィルタF1、F2、またはF3を適用することによってQを計算し得る。たとえば、my=1/4である場合、ビデオエンコーダ20はフィルタF1を使用し得る。同様に、my=0である場合(ステップ1−3)、ビデオエンコーダ20は、水平成分mxの値のための適切な補間フィルタF1、F2、またはF3を適用することによってQを計算し得る。たとえば、mx=3/4である場合、ビデオエンコーダ20はフィルタF3を使用し得る。最後に、mxおよびmyが0でない場合(ステップ1−4)、ビデオエンコーダ20は、フルピクセルロケーションが(0,0)であると仮定すると、ロケーション(0,my)に対応する中間値を生成するために、myの値に基づいてF1、F2、またはF3のうちの1つを適用し得る。その場合、mxの値に応じて、ビデオエンコーダ20は、mxの値に基づいてF1、F2、またはF3のうちの1つを使用して(mx,my)の値を計算し得る。ビデオエンコーダ20は、まず、選択されたフィルタが参照し得る中間値として、(n,my)の値を補間し得る。たとえば、6タップフィルタの場合、まず、n={−2,−1,0,1,2,3}がすぐに利用可能でなければ、それらが補間され得る。ビデオエンコーダ20は、いくつかの例では、上述の補間順序の代わりに、まず水平方向において補間し、次に垂直方向において補間するように構成され得る。
別の場合として、mxまたはmyがE8に属する場合(ステップ2)、ビデオエンコーダ20は、次のように予測値Qを計算し得る。mx∈E8およびmy∈E4である場合(ステップ2−1)、ビデオエンコーダ20は、まず、F1、F2、またはF3のうちの適切な1つを使用してロケーション(0,my)に対応する中間補間値(intermediate interpolated values)Q1を計算し得る。次いで、ビデオエンコーダ20は、E4から、mxに最も近い2つの値を計算し得る。これらの値を、mx0およびmx1によって示すものとする。ビデオエンコーダ20は、(mx0,my)および(mx1,my)にそれぞれ対応する、中間値Q2およびQ3を計算し得る。mx0=0である場合、Q2はQ1からコピーされ得る。mx1=1である場合、Q2は、次の水平方向ピクセルのQ1からコピーされ得る。ビデオエンコーダ20は、Q2とQ3との平均としてQを計算し得る。
一例として、動きベクトルのフラクショナル部分が(3/8,1/4)であることについて考える。その場合、まず、ビデオエンコーダ20は、フィルタF1を使用して(0,1/4)に対応するQ1を計算し得る。次いで、ビデオエンコーダ20は、それぞれフィルタF1およびF2を使用して、(1/4,1/4)および(1/2,1/4)にそれぞれ対応するQ2およびQ3を計算し得る。最後に、ビデオエンコーダ20は、Qを発見するためにこれらの2つの値を平均化し得る。
一方、mx∈E4およびmy∈E8である場合(ステップ2−2)、ビデオエンコーダ20は、まず、mxの値に基づいて、水平方向において適切な補間フィルタF1、F2、またはF3を使用して、またはmxが0である場合はPからコピーされて、ロケーション(mx,0)に対応する第1の中間補間値Q1を計算し得る。次いで、ビデオエンコーダ20は、E4から、myに最も近い2つの値を計算し得る。これらの値を、my0およびmy1によって示すものとする。次いで、ビデオエンコーダ20は、垂直方向において適切な補間フィルタを使用して、(mx,my0)および(mx,my1)に対応する補間値Q2およびQ3を計算し得る。my0=0である場合、ビデオエンコーダ20は、Q1からQ2をコピーし得る。同様に、my1=1である場合、ビデオエンコーダ20は、次の垂直方向ピクセルに対応するQ1からQ3をコピーし得る。次いで、ビデオエンコーダ20は、Q2とQ3とを平均化することによって(mx,my)に対する補間値Qを計算し得る。
最後に、mx∈E8およびmy∈E8である場合がある(ステップ2−3)。この場合、ビデオエンコーダ20は、E4から、mxに最も近い(mx0およびmx1によって示される)2つの値を計算し得る。同様に、ビデオエンコーダ20は、E4から、myに最も近い(my0およびmy1によって示される)2つの値を計算し得る。次いで、4つの位置(mx0,my0)、(mx0,my1)、(mx1,my0)、(mx1,my1)の各々について、ビデオエンコーダ20は、mxもmyもE8に属さない(すなわち、ステップ1と同様の)場合と同様の方法で、中間値Q1、Q2、Q3、およびQ4を計算し得る。最後に、ビデオエンコーダ20は、(mx,my)の補間値Qを計算するために、中間補間値を平均化し得る。他の例では、ビデオエンコーダ20は、最終補間値(final interpolated value)Qを発見するために、4つの中間値の代わりに、2つの中間値のみを計算するように構成され得る。たとえば、ビデオエンコーダ20は、Qの最終補間値を得るために、対角位置(mx0,my0)および(mx1,my1)または(mx0,my1)および(mx1,my0)に対応する中間値のみを計算し、平均化するように構成され得る。
x∈E4、またはmy∈E8であるとき、平均化を使用して、2つの隣接する1/4ピクセル精度のピクセル位置から垂直方向において1/8ピクセル精度のピクセル位置を計算する代わりに、その位置を直接導出することが可能であり得ることを、当業者は認識されよう。フィルタF1、F2、およびF3は同じ長さを有するので、2つのフィルタの係数を追加することは、スケーリングファクタまで、等価な1/8ピクセル位置フィルタを与える。したがって、クロミナンス動きベクトルが3/8ピクセル位置をポイントする場合、F1およびF2のフィルタ係数は、(0,3/8)位置に対する直接フィルタを導出するために位置ごとに加算され得る。したがって、この例では、3/8位置に対応するフィルタは{4,−11,48,29,−9,3}である。このフィルタのフィルタ係数が64まで加算することに留意されたい。したがって、フィルタ処理後の右シフト演算は、適宜に調整される必要がある。フルピクセル位置に対応するフィルタは{0,0,32,0,0,0}であると仮定される。ここで、F1、F2、およびF3が6つのタップを有し、それらが32まで加算すると仮定した。同様に、次のフルピクセル位置に対応するフィルタは、{0,0,0,32,0,0}である。
隣接する1/4ピクセル位置フィルタから1/8ピクセル位置フィルタを導出する代わりに、上記で説明したように、7つのフィルタ、すなわち、各1/8ピクセル位置について1つのフィルタを設計することが可能であり得る。
本開示で説明するフィルタ処理技法は、整数算術において実行され得る。そうするために、上述のステップは、ビデオエンコーダ20のために変更され得る。表記上の便宜として、下付き文字Iは、前に説明したシンボルおよび演算についての整数算術後の結果を示すために追加される。シンボル「<<」および「>>」は、それぞれ左シフト演算および右シフト演算を指す。また、この例では、元のピクセルの値の範囲は[0,255]であると仮定する。整数算術は、この例では32ビット精度で実行され得る。中間補間値は、丸め、右シフトおよびクリッピングが実行され得るまさにその最後のステップまで高い精度で維持され得る。したがって、基本概念は、フィルタ処理が適用されるときはいつでも、丸め、右シフトおよびクリッピングを即時に行う代わりに、複数のフィルタ処理されたピクセルが平均化される平均化ステップの後まで、これらの演算が延期され得ることである。
ステップ1−1の場合、変更は必要ない。ステップ1−2の場合、ビデオエンコーダ20は、Q=(QI+16)>>5を計算し得る。ステップ1−3の場合、ビデオエンコーダ20は、Q=(QI+16)>>5を計算し得る。ステップ1−4の場合、ビデオエンコーダ20は、Q=(QI+512)>>10を計算し得る。ステップ2−1の場合、my=0である場合、ビデオエンコーダ20はQ1I=P<<5を計算し得る。mx0=0である場合、Q2I=(Q2I<<5)を計算し得る。mx1=0である場合、Q3I=(Q3I<<5)を計算し得る。また、ステップ2−1の場合、ビデオエンコーダ20は、最終的に、最小値255および最大値(0,(Q2I+Q3I+1024)>>11)としてQを計算し得る。ステップ2−2の場合、mx=0である場合、ビデオエンコーダ20はQ1I=P<<5を計算し得る。my0=0である場合、Q2I=(Q21<<5)を計算し得る。my1=0である場合、Q3I=(Q3I<<5)を計算し得る。また、ステップ2−2の場合、ビデオエンコーダ20は、最終的に、最小値255および最大値(0,(Q2I+Q3I+1024)>>11)としてQを計算し得る。
ステップ2−3の場合、Q1I、Q2I、Q3I、およびQ4Iは、それぞれ(mx0,my0)および(mx1,my1)または(mx0,my1)および(mx1,my0)に対応する。これらの値は、最後の丸めステップ、右シフトステップ、およびクリッピングステップが適用される必要がないことを除いて、ステップ1と同様の方法で計算され得る。次いで、ステップ1−1を使用して計算された値の場合、中間補間値は10だけ左シフトされ得る。ステップ1−2および1−3を使用して計算された値の場合、中間補間値は5だけ左シフトされ得る。最後に、ビデオエンコーダ20は、最小値255、および最大値(0,(Q1I+Q2I+Q3I+Q4I+2048)>>12)としてQを計算し得る。
リファレンスクロミナンスブロックの各リファレンスピクセルの値を計算した後に、ビデオエンコーダ20は、符号化されるべきクロミナンスブロックの残差を計算し得る。たとえば、ビデオエンコーダ20は、符号化されるべきクロミナンスブロックと補間されたリファレンスブロックとの間の差分値を計算し得る。ビデオエンコーダ20は、たとえば、絶対値差分和(sum of absolute difference)(SAD)、2乗差分和(sum of squared difference)(SSD)、平均絶対差(mean absolute difference)(MAD)、平均2乗差(mean squared difference)(MSD)など様々な差分計算技法を使用し得る。
予測データと残差データとを生成するためのイントラ予測コーディングまたはインター予測コーディングの後、および変換係数を生成するための(H.264/AVCで使用される4×4または8×8整数変換、あるいは離散コサイン変換DCTなどの)任意の変換の後、変換係数の量子化が実行され得る。量子化は、一般に、係数を表すために使用されるデータ量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にnビット値をmビット値に切り捨てることができ、nはmよりも大きい。
量子化の後、たとえば、コンテンツ適応型可変長コーディング(content adaptive variable length coding)(CAVLC)、コンテキスト適応型バイナリ算術コーディング(context adaptive binary arithmetic coding)(CABAC)、または別のエントロピーコーディング方法に従って、量子化されたデータのエントロピーコーディング(zero run length coding)が実行され得る。エントロピーコーディング用に構成された処理ユニットまたは別の処理ユニットは、量子化された係数のゼロランレングスコーディング、および/またはコード化ブロックパターン(CBP)値、マクロブロックタイプ、コーディングモード、(フレーム、スライス、マクロブロック、またはシーケンスなどの)コード化ユニットの最大マクロブロックサイズなどのシンタックス情報の生成など、他の処理機能を実行し得る。
ビデオデコーダ30は、ビデオエンコーダ20と同様の方法で1/8ピクセル精度のクロミナンス動きベクトルの値を補間するように構成され得る。リファレンスクロミナンスブロックの値を補間した後に、ビデオデコーダ30は、クロミナンスを復号するために、受信した残差値をリファレンスクロミナンスブロックに追加し得る。
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、適用可能なとき、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなどの様々な好適なエンコーダまたはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含められ得る、そのいずれかは複合ビデオエンコーダ/デコーダ(コーデック)の一部として統合され得る。ビデオエンコーダ20および/またはビデオデコーダ30を含む装置は、集積回路、マイクロプロセッサ、および/またはセルラー電話などのワイヤレス通信デバイスを備え得る。
図2は、補間フィルタを選択するための技法を実装し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、マクロブロックあるいはマクロブロックのパーティションまたはサブパーティションを含むビデオフレーム内のブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード(Iモード(登録商標))は、いくつかの空間ベースの圧縮モードのいずれかを指し、単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。図2にはインターモード符号化のための構成要素が示されているが、ビデオエンコーダ20はイントラモード符号化のための構成要素をさらに含み得ることを理解されたい。ただし、簡潔および明快のために、そのような構成要素は示されていない。
図2に示すように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図2の例では、ビデオエンコーダ20は、動き補償ユニット44と、動き推定ユニット42と、リファレンスフレームストア(reference frame store)64と、加算器50と、変換ユニット52と、量子化ユニット54と、エントロピーコーディングユニット56とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクト(blockiness artifacts)を除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ(図2に図示せず)も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理するであろう。
符号化プロセス中に、ビデオエンコーダ20はコーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数のリファレンスフレーム中の1つまたは複数のブロックに対する受信したビデオブロックのインター予測コーディングを実行する。イントラ予測ユニットはまた、空間圧縮を行うために、コーディングすべきブロックと同じフレームまたはスライス中の1つまたは複数の近傍ブロックに対する受信したビデオブロックのイントラ予測コーディングを実行し得る。
モード選択ユニット40は、たとえば、誤り結果に基づいてコーディングモード、すなわち、イントラまたはインターのうちの1つを選択し、残差ブロックデータを生成するために、得られたイントラコード化されたブロックまたはインターコード化されたブロックを加算器50に供給し、リファレンスフレームとして使用するための符号化されたブロックを再構成するために、得られたイントラコード化されたブロックまたはインターコード化されたブロックを加算器62に供給し得る。
動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム(または、他のコード化ユニット)内のコーディングされている現在のブロックに対する予測リファレンスフレーム(または、他のコード化ユニット)内の予測ブロックの変位(displacement)を示し得る。予測ブロックは、絶対値差分和(SAD)、差分2乗和(SSD)、または他の差分メトリックによって判断できるピクセル差分に関して、コーディングされるべきブロックに厳密に一致することがわかるブロックである。動きベクトルはまた、マクロブロックのパーティションの変位を示し得る。動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。この場合も、いくつかの例では、動き推定ユニット42と動き補償ユニット44は機能的に統合され得る。
動き推定ユニット42は、ビデオブロックをリファレンスフレームストア64中のリファレンスフレームのビデオブロックと比較することによってインターコード化されたフレームのビデオブロックの動きベクトルを計算する。リファレンスフレームストア64は、ランダムアクセスメモリ(RAM)などのメモリ中に実装され得るリファレンスフレームバッファを備え得る。動き補償ユニット44はまた、リファレンスフレーム、たとえば、IフレームまたはPフレームのサブ整数(sub-integer)ピクセルを補間し得る。ITU H.264規格では、リファレンスフレームを「リスト」と呼ぶ。したがって、リファレンスフレームストア64に記憶されたデータをリストと見なし得る。動き推定ユニット42は、リファレンスフレームストア64からの1つまたは複数のリファレンスフレーム(またはリスト)のブロックを現在のフレーム、たとえば、PフレームまたはBフレームの符号化されるべきブロックと比較する。リファレンスフレームストア64中のリファレンスフレームがサブ整数ピクセルの値を含むとき、動き推定ユニット42によって計算される動きベクトルはリファレンスフレームのサブ整数ピクセルロケーションを参照し得る。動き推定ユニット42は、計算された動きベクトルをエントロピーコーディングユニット56および動き補償ユニット44に送る。動きベクトルによって識別されるリファレンスフレームブロックは予測ブロックと呼ばれることがある。動き補償ユニット44はリファレンスフレームの予測ブロックの誤差値を計算する。
動き補償ユニット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は、マクロブロックまたはそれのパーティション中の係数のランレングスコーディング(run length coding)を実行し得る。特に、エントロピーコーディングユニット56は、マクロブロックまたはパーティション中の変換係数をスキャンするためにジグザグスキャンまたは他のスキャンパターンを適用し、さらなる圧縮のためにゼロのラン(runs)を符号化し得る。エントロピーコーディングユニット56はまた、符号化されたビデオビットストリーム中での送信のために適切なシンタックス要素とともにヘッダ情報を構成し得る。
逆量子化ユニット58および逆変換ユニット60は、それぞれ逆量子化および逆変換を適用して、たとえばリファレンスブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償ユニット44は、残差ブロックをリファレンスフレームストア64のフレームのうちの1つの予測ブロックに加算することによってリファレンスブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを動き補償ユニット44によって生成された動き補償予測ブロックに加算して、リファレンスフレームストア64に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット42および動き補償ユニット44によってリファレンスブロックとして使用され得る。
図3は、符号化されたビデオシーケンスを復号するビデオデコーダ30の一例を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、リファレンスフレームストア82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(図2)に関して説明した符号化パスとは概して逆の(reciprocal)復号パスを実行し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信した動きベクトルに基づいて予測データを生成し得る。
動き補償ユニット72は、ビットストリーム中で受信された動きベクトルを使用して、リファレンスフレームストア82中のリファレンスフレーム中の予測ブロックを識別し得る。動き補償ユニット72はまた、クロミナンス予測ブロックを形成するためにリファレンスブロックのサブ整数ピクセル位置の値を計算する、本開示の技法を実行するように構成され得る。イントラ予測ユニット74は、ビットストリーム中で受信されたイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成し得る。逆量子化ユニット76は、ビットストリーム中で供給されて、エントロピー復号ユニット70によって復号された、量子化されたブロック係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、たとえば、H.264復号規格によって定義された従来のプロセスを含み得る。逆量子化プロセスはまた、量子化の程度を判断するために、同様に、適用すべき逆量子化の程度を判断する(determine)ために、各マクロブロックについてエンコーダ50によって計算される量子化パラメータQPYの使用を含み得る。
逆変換ユニット58は、逆変換、たとえば逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用して、ピクセル領域において残差ブロックを生成する。動き補償ユニット72は動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行する。サブピクセル精度をもつ動き推定に使用すべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20によって使用される補間フィルタを使用して、リファレンスブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット72は、受信したシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ブロックを生成し得る。
動き補償ユニット72は、シンタックス情報のいくつかを使用して、符号化されるビデオシーケンスの(1つまたは複数の)フレームを符号化するために使用されたマクロブロックのサイズと、符号化されたビデオシーケンスのフレームの各マクロブロックがどのように区分されているかを記述するパーティション情報と、各パーティションがどのように符号化されているかを示すモードと、各インター符号化されたマクロブロックまたはパーティションのための1つまたは複数のリファレンスフレーム(またはリスト)と、符号化されたビデオシーケンスを復号するための他の情報とを判断する。
加算器80は、残差ブロックを、動き補償ユニット72またはイントラ予測ユニットによって生成される対応する予測ブロックと合計して、復号されたブロックを形成する。所望される場合、ブロッキネスアーティファクトを除去するために、デブロッキングフィルタが、復号されたブロックをフィルタ処理することにも適用され得る。復号されたビデオブロックは、次いで、リファレンスフレームストア82に記憶され、リファレンスフレームストア82は、リファレンスブロックをその後の動き補償に供給し、また、ディスプレイデバイス(図1のディスプレイデバイス32など)上での提示のために復号されたビデオを生成する。
図4は、フルピクセル位置に対するフラクショナルピクセル位置を示す概念図である。特に、図4に、フルピクセル(ペル(pel))100のフラクショナルピクセル位置を示す。フルピクセル100は、1/2ピクセル位置102A〜102C(ハーフペル(half pels)102)と、1/4ピクセル位置104A〜104L(1/4ペル104)と、1/8ピクセル位置106A〜106AV(1/8ペル106)とに対応する。これらの位置のうちの1つをポイントする動きベクトルは、フルペル(full pel)100のロケーションに対応するフル部分と、1/8ピクセル精度をもつフラクショナル部分とをもつ水平成分および垂直成分を有し得る。
フルピクセル位置100におけるピクセルの値は、対応するリファレンスフレーム中に含まれ得る。すなわち、フルピクセル位置100におけるピクセルの値は、概して、たとえば、リファレンスフレームが表示されるときに最終的にレンダリングされ、表示されるリファレンスフレーム中のピクセルの実効値に対応する。(フラクショナルピクセル位置と総称される)1/2ピクセル位置102、1/4ピクセル位置104、および1/8ピクセル位置106の値は、本開示の技法に従って補間され得る。
特に、フラクショナル位置は、水平成分のフラクショナル部分と垂直成分のフラクショナル部分とを使用して定義され得る。水平方向フラクショナル部分を、{0,1/8,2/8,3/8,4/8,5/8,6/8,7/8}から選択され得るmxに対応するものとする。垂直方向フラクショナル部分を、{0,1/8,2/8,3/8,4/8,5/8,6/8,7/8}から選択され得るmyに対応するものとする。フィルタF1は、2/8(1/4)フラクショナル部分に関連する補間フィルタであり得る。フィルタF2は、4/8(1/2)フラクショナル部分に関連する補間フィルタであり得る。フィルタF3は、6/8(3/4)フラクショナル部分に関連する補間フィルタであり得る。水平成分のフィルタのリファレンスピクセルのラインが、垂直成分のフィルタのリファレンスピクセルのラインに直交し得ることを除いて、F1、F2、およびF3は、水平成分と垂直成分の両方に対して本質的に同じであり得る。
以下の表1に、成分のフラクショナル部分に基づいて、1/8ピクセル精度を有する動きベクトルの成分の寄与を計算するための技法を要約する。以下の表Nは「隣接ピクセル」を指し、「隣接ピクセル」は、成分が水平成分であるのか垂直成分であるのかに従って定義される。成分が水平成分である場合、隣接ピクセルは、フルピクセル100の右に隣接するピクセルを参照する。成分が垂直成分である場合、隣接ピクセルはフルピクセル100の下に隣接するピクセルを参照する。
Figure 0005646654
このようにして、動きベクトルの成分が、ルミナンス動きベクトルの精度を有する動きベクトルによって表され得るフラクショナルピクセル位置を参照するとき、ビデオエンコーダ20は、その成分の寄与を補間するためにフラクショナルピクセル位置に関連する補間フィルタを選択し得る。一方、その成分が、ルミナンス動きベクトルの精度を有する動きベクトルによって表され得ないが、クロミナンス動きベクトルの精度を有する動きベクトルによって表され得るフラクショナルピクセル位置を参照するとき、ビデオエンコーダ20は、直接隣接するフラクショナルピクセル位置のための1つまたは複数の補間フィルタを選択し得る。
図5A〜図5Cは、対応するクロミナンスピクセル位置およびルミナンスピクセル位置を示す概念図である。図5A〜図5Cはまた、ルミナンス動きベクトルがどのようにクロミナンスブロックのために再利用され得るかを示している。前置きとして、図5A〜図5Cはピクセル位置の部分行を示している。実際には、フルピクセル位置は、関連するフラクショナルピクセル位置の矩形格子(rectangular grid)を有し得ることを理解されたい。図5A〜図5Cの例は、本開示において説明する概念を示すものであり、フラクショナル・クロミナンスピクセル位置とフラクショナル・ルミナンスピクセル位置との間の対応の網羅的なリストとして意図されていない。
図5A〜図5Cは、フル・ルミナンスピクセル位置110と、1/2ルミナンスピクセル位置112と、1/4ルミナンスピクセル位置114A、114Bと、フル・ルミナンスピクセル位置116とを含む、ルミナンスブロックのピクセル位置を示している。フル・ルミナンスピクセル位置116は、フル・ルミナンスピクセル位置110の右に隣接するピクセル位置と考えられ得る。
図5A〜図5Cはまた、フル・クロミナンスピクセル位置120と、1/2クロミナンスピクセル位置122と、1/4クロミナンスピクセル位置124と、1/8クロミナンスピクセル位置126A、126Bとを含む、クロミナンスブロックの対応するピクセル位置を示している。この例では、フル・クロミナンスピクセル120はフル・ルミナンスピクセル110に対応する。さらに、この例では、クロミナンスブロックは、ルミナンスブロックに対して2倍にダウンサンプリングされる。したがって、1/2クロミナンスピクセル122はフル・ルミナンスピクセル116に対応する。同様に、1/4クロミナンスピクセル124は1/2ルミナンスピクセル112に対応し、1/8クロミナンスピクセル126Aは1/4ルミナンスピクセル114Aに対応し、1/8クロミナンスピクセル126Bは1/4ルミナンスピクセル114Bに対応する。
図5Aに、フル・ルミナンスピクセル位置110をポイントするルミナンス動きベクトル118Aの例を示す。ビデオエンコーダ20またはビデオデコーダ30などのビデオコーディングユニットは、クロミナンスブロックに対して動き補償を実行するときにルミナンス動きベクトル118Aを再利用し得る。したがって、クロミナンス動きベクトル128Aは、フル・クロミナンスピクセル120とフル・ルミナンスピクセル110との間の対応により、フル・クロミナンスピクセル120をポイントし得る。クロミナンス動きベクトル128Aによってポイントされるピクセルの値は、フル・クロミナンスピクセル120の値に等しくなり得る。したがって、予測クロミナンスブロック中の各ピクセルは、リファレンスフレーム中の対応するピクセルに等しく設定され得る。
図5Bに、1/2ルミナンスピクセル位置112をポイントするルミナンス動きベクトル118Bの例を示す。クロミナンス動きベクトル128Bは、今度は、1/4クロミナンスピクセル位置124をポイントする。ビデオコーディングユニットは、1/4クロミナンスピクセル位置124に関連する補間フィルタを使用して1/4クロミナンスピクセル位置124の値を補間し得る。
図5Cに、1/4ルミナンスピクセル位置114Aをポイントするルミナンス動きベクトル118Cの例を示す。クロミナンス動きベクトル128Cは、今度は、1/8クロミナンスピクセル位置126Aをポイントする。ビデオコーディングユニットは、フル・クロミナンスピクセル位置120の値と、1/4クロミナンスピクセル位置124に関連する補間フィルタ、たとえば、フィルタF1とを使用して、1/4クロミナンスピクセル位置124の値を補間し得る。ビデオコーディングユニットは、次いで、1/8クロミナンスピクセル位置126Aの値を生成するためにフル・クロミナンスピクセル位置120の値と1/4クロミナンスピクセル位置124の値とを平均化し得る。
ルミナンス動きベクトルのためにより一層高い精度(たとえば1/8)が使用される場合がある。そのような場合、クロミナンスピクセル位置は、依然として1/8ピクセル精度を有するように四捨五入され得る(たとえば、切り捨てられ得る)。したがって、本開示の技法は、クロミナンス動きベクトルとルミナンス動きベクトルとが等しい精度を有していても、依然として、クロミナンスピクセル位置におけるクロミナンス値を判断するためにそのようなクロミナンスピクセル位置に適用され得る。
図6は、クロミナンスブロックを符号化するためにフラクショナルピクセル位置の値を補間するための例示的な方法を示すフローチャートである。図6の方法については、説明のためにビデオエンコーダ20に関して説明する。ただし、いかなるビデオ符号化ユニットも、図6のビデオ符号化ユニットと同様の方法を実行するように構成され得ることを理解されたい。
初めに、ビデオエンコーダ20は、符号化されるべきマクロブロックを受信する(150)。いくつかの例では、マクロブロックは、4つの8×8ピクセル・ルミナンスブロックと、2つの8×8クロミナンスブロックとを含み得る。マクロブロックは、4つのルミナンスブロックがルミナンスピクセルの16×16ブロックを互いに形成するように、各コーナー(corner)に接触する厳密に1つのルミナンスブロックを有し得る。2つのクロミナンスブロックは、互いと重複し得る、そして、4つのルミナンスブロックと重複し得る。その上、クロミナンスブロックは、クロミナンスブロックの4つのコーナーの各々がマクロブロックの4つのコーナーの各々に接触するように、ルミナンスブロックに対してダウンサンプリングされ得る。ビデオエンコーダ20は、図6に関して説明したものと同様の技法を使用して、クロミナンスブロックのいずれかまたは両方の全部または一部分(たとえば、パーティション)を符号化するように構成され得る。
ビデオエンコーダ20は、インター符号化モードでマクロブロックを符号化し得る。したがって、ビデオエンコーダ20は、マクロブロックと同様であるリファレンスフレーム中のブロックを判断するために、1つまたは複数のリファレンスフレームに関して動き探索を実行し得る。さらに、ビデオエンコーダ20は、ルミナンスブロックのうちの1つに対して動き探索を実行する(152)。ビデオエンコーダ20は、それによって、フラクショナルピクセル精度を有するルミナンス動きベクトルを計算し得る。ビデオエンコーダ20は、動き探索を実行したときに、リファレンスブロックのフラクショナルピクセル位置の値を補間するように構成され得る。次いで、ビデオエンコーダ20はルミナンスブロックを符号化し得る。
ルミナンスブロックを符号化した後に、ビデオエンコーダ20は、ルミナンス動きベクトルによってポイントされる位置に対応するリファレンスフレームのクロミナンス部分中の位置を判断するために、ルミナンス動きベクトルを再利用し得る。このようにして、ビデオエンコーダ20は、ルミナンス動きベクトルに対応するクロミナンス動きベクトルによってポイントされるピクセル位置を判断する(determine)(154)。クロミナンス動きベクトルのピクセル位置は、ルミナンスピクセルに対してクロミナンスピクセルをダウンサンプリングすることにより、ルミナンスピクセルよりも大きい精度を有し得る。たとえば、ルミナンス動きベクトルが1/4ピクセル精度を有するとき、クロミナンス動きベクトルは1/8ピクセル精度を有し得る。
ビデオエンコーダ20は、次いで、クロミナンス動きベクトルによって識別されるピクセルのブロックを使用してクロミナンスブロックを符号化し得る。クロミナンス動きベクトルがフラクショナルピクセル位置をポイントするとき、ビデオエンコーダ20は、リファレンスフレーム中のクロミナンス動きベクトルによって識別されるリファレンスブロックのフラクショナルピクセル位置の値を補間し得る。クロミナンス動きベクトルのピクセル位置は、その各々がフル部分とフラクショナル部分とを有し得る水平成分と垂直成分とを有し得る。ビデオエンコーダ20は、まず、リファレンスブロック中のピクセルの各々の値に対する水平方向寄与を計算する(156)。
特に、ビデオエンコーダ20は、クロミナンス動きベクトルの水平成分がフルピクセル位置をポイントするのかフラクショナルピクセル位置をポイントするのかを判断し得る。水平成分がフラクショナル部分をポイントする場合、ビデオエンコーダ20は、水平成分からの寄与を補間するのに使用するために、フラクショナル部分に基づいて、補間フィルタを選択し得る。同様に、ビデオエンコーダ20は垂直成分寄与を計算する(158)。ビデオエンコーダ20は、水平成分寄与と垂直成分寄与とを組み合わせる(160)。
ビデオエンコーダ20は、リファレンスブロックの各ピクセルに対してこのプロセスを実行し得る。次いで、ビデオエンコーダ20は、符号化されるべきクロミナンスブロックの残差値を計算する(162)。すなわち、ビデオエンコーダ20は、符号化されるべきクロミナンスブロックとリファレンスブロックとの間の差分を計算し得る。ビデオエンコーダ20は、次いで、残差を符号化し、出力する(164)。デコーダは、クロミナンスブロックのための符号化された残差ブロックを受信した後に、符号化されたクロミナンスブロックを復号するためにルミナンス動きベクトルを再利用し得るので、ビデオエンコーダ20は、クロミナンス動きベクトルを符号化する必要はない。
図7は、クロミナンスブロックを復号するためにフラクショナルピクセル位置の値を補間するための例示的な方法を示すフローチャートである。図7の方法は、説明のためにビデオデコーダ30に関して説明される。ただし、いかなるビデオ復号ユニットも、図7のビデオ復号ユニットと同様の方法を実行するように構成され得ることを理解されたい。
初めに、ビデオデコーダ30は、符号化されたマクロブロックを受信する(180)。特に、ビデオデコーダ30は、インター符号化モードで符号化されたマクロブロックを受信し得る。したがって、符号化されたマクロブロックは、1つまたは複数のルミナンス動きベクトルと、マクロブロックの符号化されたルミナンスブロックおよびクロミナンスブロックの残差値とを含み得る。ビデオデコーダ30は、まず、ルミナンス動きベクトルを復号する(182)。ルミナンスブロックを復号した後に、ビデオデコーダ30はクロミナンスブロックを復号し得る。
まず、ビデオデコーダ30は、符号化されたクロミナンスブロックのためのリファレンスフレームのリファレンスブロックを識別し得る。リファレンスブロックは、符号化されたルミナンスブロックのためのリファレンスブロックとコロケートされるものとして識別され得る。すなわち、ビデオデコーダ30は、符号化されたクロミナンスブロックのためのリファレンスブロックを識別するためにルミナンス動きベクトルを再利用し得る。ビデオデコーダ30は、次いで、本開示の技法に従って、符号化されたクロミナンスブロックのためのリファレンスブロックの値を補間し得る。
ビデオデコーダ30は、リファレンスブロック中のピクセルのフラクショナルピクセル位置を判断する(184)。クロミナンス動きベクトルがフラクショナルピクセル位置をポイントするとき、ビデオデコーダ30はリファレンスブロックのフラクショナルピクセル位置の値を補間し得る。クロミナンス動きベクトルのピクセル位置は、その各々がフル部分とフラクショナル部分とを有し得る水平成分と垂直成分とを有し得る。ビデオデコーダ30は、まず、リファレンスブロック中のピクセルの各々の値に対する水平方向寄与を計算する(186)。
特に、ビデオデコーダ30は、クロミナンス動きベクトルの水平成分がフルピクセル位置をポイントするのか、フラクショナルピクセル位置をポイントするのかを判断し得る。水平成分がフラクショナル部分をポイントする場合、ビデオエンコーダ20は、水平成分からの寄与を補間するのに使用するために、フラクショナル部分に基づいて、補間フィルタを選択し得る。同様に、ビデオデコーダ30は、垂直成分寄与を計算する(188)。ビデオデコーダ30は、水平成分寄与と垂直成分寄与とを組み合わせる(190)。
次いで、ビデオデコーダ30は、クロミナンスブロックの残差値を復号する(192)。ビデオデコーダ30は、次いで、復号された残差値と上記で計算したリファレンスブロックとを組み合わせて、クロミナンスブロックを復号する(194)。このようにして、ビデオデコーダ30は、復号された残差値とリファレンスブロックとを使用してクロミナンスブロックを復号し得る。最終的に、ディスプレイデバイス32は、復号されたクロミナンスブロックをレンダリングし、表示する(196)。すなわち、ディスプレイデバイス32(または宛先デバイス14の別のユニット)は、復号されたルミナンスブロックから表示されるピクセルのルミナンス値と、復号されたクロミナンスブロックからのカラー値(color value)とを判断し得る。ディスプレイデバイス32は、ルミナンス値およびクロミナンス値を含むマクロブロックを表示するために、ルミナンスおよびクロミナンス(YPbPr値)で表されたピクセルを赤緑青(RGB)値に変換し得る。
図8および図9は、水平成分と垂直成分の両方についての成分寄与を計算するために使用されるべき補間フィルタを選択するための方法を示すフローチャートである。特に、ビデオエンコーダ、デコーダ、コーデック、または他のビデオ処理ユニットは、クロミナンス動きベクトルの成分が非0フラクショナル部分を含むとき、リファレンスブロックの値を補間する図8および図9の方法を実行し得る。図8および図9の例は、クロミナンス動きベクトルが1/8ピクセル精度を有する状況を対象とする。動きベクトルが1/8ピクセル精度よりも大きい精度を有するとき、リファレンスブロックの値を計算するために同様の方法が適用され得ることを理解されたい。その上、図8および図9の例は、ビデオエンコーダ20に関して説明される。ただし、同様の技法がビデオデコーダ30または他のビデオ処理ユニットによって適用され得ることを理解されたい。図8および9の例は、概して、図6のステップ156および158、ならびに図7のステップ186および188に対応し得る。
初めに、ビデオエンコーダ20は、動きベクトルの成分のフラクショナル部分を判断する(210)。図6の方法が実行されるとき、フラクショナル部分は0でないと仮定する。代わりにフラクショナル部分が0である場合、フルピクセルの値は、その成分のために使用され得る(または、他の成分がすでに計算されている場合、その他の成分の値が使用され得る)。また、図6の例では、これらの方法が実行されるとき、補間フィルタF1、F2、およびF3は、それぞれ1/4、2/4、および3/4フラクショナルピクセル位置に関連すると仮定する。
ビデオエンコーダ20は、まず、成分のフラクショナル部分が3つの1/4ピクセル位置のうちの1つに対応するかどうかを判断し得る。特に、ビデオエンコーダ20は、成分のフラクショナル部分が1/4ピクセル位置に対応するかどうかを判断する(212)。対応する場合(212の「YES」ブランチ)、ビデオエンコーダ20は、フィルタF1を実行することによって生成された値に基づいてその成分からの寄与を判断する(214)。対応しない場合(212の「NO」ブランチ)、ビデオエンコーダ20は、成分のフラクショナル部分が2/4(または1/2)ピクセル位置に対応するかどうかを判断する(216)。対応する場合(216の「YES」ブランチ)、ビデオエンコーダ20は、フィルタF2を実行することによって生成された値に基づいてその成分からの寄与を判断する(218)。対応しない場合(216の「NO」ブランチ)、ビデオエンコーダ20は、成分のフラクショナル部分が3/4ピクセル位置に対応するかどうかを判断する(220)。対応する場合(220の「YES」ブランチ)、ビデオエンコーダ20は、フィルタF3を実行することによって生成された値に基づいてその成分からの寄与を判断する(222)。
ただし、ビデオエンコーダ20が、成分のフラクショナル部分が3つの1/4ピクセル位置のうちの1つに対応しないと判断した場合、ビデオエンコーダ20は、成分のフラクショナル部分が4つの残りの1/8ピクセル位置のうちの1つに対応するかどうかを判断し得る。特に、ビデオエンコーダ20は、成分のフラクショナル部分が1/8ピクセル位置に対応するかどうかを判断する(230)。対応する場合(230の「YES」ブランチ)、ビデオエンコーダ20は、フルピクセル値と、フィルタF1を実行することによって生成された値とを平均化することによって、その成分からの寄与を判断する(232)。いくつかの例では、フルピクセルの交点における位置の値が前に計算されていると仮定すると、ビデオエンコーダ20は、フルピクセル値を使用するのではなく、その交点におけるこの位置の値と、評価されているピクセル位置とを使用し得る。
一方、成分のフラクショナル部分が1/8ピクセル位置に対応しない場合(230の「NO」ブランチ)、ビデオエンコーダ20は、成分のフラクショナル部分が3/8ピクセル位置に対応するかどうかを判断する(234)。成分のフラクショナル部分が3/8ピクセル位置に対応する場合(234の「YES」ブランチ)、ビデオエンコーダ20は、フィルタF1を実行することによって生成された値と、フィルタF2を実行することによって生成された値とを平均化することによって、その成分からの寄与を判断する(236)。一方、成分のフラクショナル部分が3/8ピクセル位置に対応しない場合(234の「NO」ブランチ)、ビデオエンコーダ20は、成分のフラクショナル部分が5/8ピクセル位置に対応するかどうかを判断する(238)。成分のフラクショナル部分が5/8ピクセル位置に対応する場合(238の「YES」ブランチ)、ビデオエンコーダ20は、フィルタF2を実行することによって生成された値と、フィルタF3を実行することによって生成された値とを平均化することによって、その成分からの寄与を判断する(240)。
一方、成分のフラクショナル部分が5/8ピクセル位置に対応しない場合(238の「NO」ブランチ)、すなわち、成分のフラクショナル部分が7/8位置に対応するとき、ビデオエンコーダ20は、フィルタF3を実行することによって生成された値と、次のフルピクセル位置の値とを平均化することによって、その成分からの寄与を判断する(242)。いくつかの例では、次のフルピクセルの交点における位置の値が前に計算されていると仮定すると、ビデオエンコーダ20は、次のフルピクセルのフルピクセル値を使用するのではなく、その交点におけるこの位置の値と、評価されているピクセル位置とを使用し得る。
図10は、既存のアップサンプリングフィルタから、本開示の技法に従って使用されるべき補間フィルタを作成するための例示的な方法を示すフローチャートである。たとえば、図10の方法は、クロミナンス動きベクトが1/8ピクセル精度を有し得るクロミナンスリファレンスブロックの1/4ピクセル位置に関連するフィルタF1、F2、およびF3を設計するために使用され得る。ビデオエンコーダ20に関して説明したが、他の処理ユニットも図10の方法を実行し得る。一例では、ビデオエンコーダ20がこの方法を実行する場合、ビデオエンコーダ20は、各フィルタの係数を符号化し、ビデオデコーダ30に送信し得る。既存のアップサンプリングフィルタは、既知のピクセルに適用されるときに、その既知のピクセルの値を生成すべきである。
初めに、ビデオエンコーダ20は既存のフィルタを受信する(250)。補間フィルタは、概して「タップ」とも呼ばれるいくつかの係数を有する。ビデオエンコーダ20は、既存のフィルタのタップの数を判断する(252)。タップの数は(2M+1)によって表され、タップは0を中心とし、Mは非負整数である。次いで、ビデオエンコーダ20は(非負整数Nとして表される)アップサンプリングファクタを判断する(254)。たとえば、既存のフィルタからフィルタF1、F2、およびF3を生成するために、アップサンプリングファクタ(N)は4である。概して、アップサンプリングファクタは、生成されるべきフィルタが関連する位置の数+1を指し得る。
次いで、ビデオエンコーダ20は、フラクショナルピクセル位置の各々について既存のフィルタのタップのサブセットを選択する(256)。特に、iを、既存のフィルタの特定の係数を指すものとする。すなわち、既存のフィルタhは、iが範囲[−M,M]を有するような係数−M〜Mを含む。次いで、フラクショナルピクセル位置xについて、(i+x)%N=0である場合、フィルタからのiに対する係数は、位置xのための作成されたフィルタ中に含まれる。モジュロ演算子%がA%B=Rと定義され得る、ここで、AおよびBは整数値であり、Rは、ある整数値Cについて、A*C+R=Bとなるような、Bよりも小さい非負整数値であることに留意されたい。したがって、A%Bは、−A%Bとは異なる残余R値を生成し得る。
一例として、1/4、2/4(またはハーフ)、および3/4ピクセル位置にそれぞれ関連する3つのフィルタを作成するために、既存のアップサンプリングフィルタhは、23個の係数、たとえば、M=11を有し得る、そして、アップサンプリングファクタは4であり得る。その場合、位置x=1に関連する(1/4ピクセル位置に対応する)フィルタの係数のセットは{h[−9],h[−5],h[−1],h[3],h[7],h[11]}を含み得る。位置x=2に関連する(2/4ピクセル位置に対応する)フィルタの係数のセットは{h[−10],h[−6],h[−2],h[2],h[6],h[10]}を含み得る、そして、位置x=3に関連する(2/4ピクセル位置に対応する)フィルタの係数のセットは{h[−11],h[−7],h[−3],h[1],h[5],h[9]}を含み得る。
1つまたは複数の例では、説明した機能はハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装した場合、その機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従ってある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体など、有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である(non-transitory)有形コンピュータ可読記憶媒体、または(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明する技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
いくつかの例では、上記の例示的な方法によって生成されたフィルタはさらに改良され得る。たとえば、各フィルタについて、係数が1まで加算することが保証され得る。これは、補間値のためにDCバイアスを導入することを回避し得る。別の例として、元の低域フィルタh[n]の場合、h[0]=1およびh[N*n]=0であることが保証され得る、ただし、nは0に等しくない。これは、フィルタ処理するときに、x[n]の元のサンプルに影響を及ぼすことを回避し得る。
実装目的のために、フィルタ係数は、すべての係数が、2の累乗である公分母を有する場合、分数として表され得る。たとえば、公分母は32であり得る。フィルタを実行するとき、フィルタ係数は、公分母(たとえば、32)で乗算され、最も近い整数に四捨五入され得る。フィルタ係数が公分母、たとえば、32まで加算することを保証するために、±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のフラクショナル部分を有する水平成分と、第2のフラクショナル部分を有する垂直成分とを備え、前記ルミナンス動きベクトルが第1の精度を有し、前記クロミナンス動きベクトルが前記第1の精度以上の第2の精度を有する、判断することと、
前記水平成分の前記第1のフラクショナル部分と前記垂直成分の前記第2のフラクショナル部分とに基づいて補間フィルタを選択することであって、前記補間フィルタを選択することが、補間フィルタのセットから前記補間フィルタを選択することを備え、補間フィルタの前記セットの各々が、前記ルミナンス動きベクトルの複数の可能なフラクショナルピクセル位置のうちの1つに対応する、選択することと、
前記選択された補間フィルタを使用して前記クロミナンス動きベクトルによって識別されるリファレンスブロックの値を補間することと、
前記リファレンスブロックを使用して前記クロミナンスブロックを処理することと
を備える、方法。
[C2] 前記ルミナンス動きベクトルが1/4ピクセル精度を有し、前記クロミナンス動きベクトルが1/8ピクセル精度を有する、C1に記載の方法。
[C3] 前記ルミナンス動きベクトルが1/8ピクセル精度を有し、前記クロミナンス動きベクトルが、1/16ピクセル精度の動きベクトルを切り捨てた後に1/8ピクセル精度を有する、C1に記載の方法。
[C4] 前記補間フィルタを選択することは、前記第1のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得るとき、前記第1のフラクショナル部分に対応するフラクショナルピクセル位置に関連する補間フィルタを選択することを備える、C1に記載の方法。
[C5] 前記補間フィルタを選択することは、前記第1のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得ないが、前記第2の精度を有する動きベクトルによって表され得るとき、前記第1のフラクショナル部分に対応するフラクショナルピクセル位置に隣接するフラクショナルピクセル位置に関連する少なくとも1つの補間フィルタを選択することを備える、C1に記載の方法。
[C6] 前記補間フィルタを選択することは、
前記第1のフラクショナル部分によって識別される参照フラクショナルピクセル位置を識別することと、
第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左のフラクショナルピクセル位置に関連するとき、前記第1の補間フィルタを選択することと、
第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右のフラクショナルピクセル位置に関連するとき、前記第2の補間フィルタを選択することと
を備える、C1に記載の方法。
[C7] 前記リファレンスブロックの値を補間することは、
前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置に関連するとき、および前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置に関連するとき、前記第1の補間フィルタによって生成された値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための水平方向寄与値を平均化することと、
前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置がフルピクセル位置と垂直方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ左のフラクショナルピクセル位置の値と、前記第1の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記水平方向寄与値を平均化することと、
前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置が右隣接のフルピクセル位置と垂直方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ右のフラクショナルピクセル位置の値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記水平方向寄与値を平均化することと
を備える、C6に記載の方法。
[C8] 前記水平方向寄与値を平均化した後にのみ、丸め演算を実行することをさらに備える、C7に記載の方法。
[C9] 前記補間フィルタを選択することは、前記第2のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得るとき、前記第2のフラクショナル部分に対応するフラクショナルピクセル位置に関連する補間フィルタを選択することを備える、C1に記載の方法。
[C10] 前記補間フィルタを選択することは、前記第2のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得ないが、前記第2の精度を有する動きベクトルによって表され得るとき、前記第2のフラクショナル部分に対応するフラクショナルピクセル位置に隣接するフラクショナルピクセル位置に関連する少なくとも1つの補間フィルタを選択することを備える、C1に記載の方法。
[C11] 前記補間フィルタを選択することは、
前記第2のフラクショナル部分によって識別される参照フラクショナルピクセル位置を識別することと、
第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上のフラクショナルピクセル位置に関連するとき、前記第1の補間フィルタを選択することと、
第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下のフラクショナルピクセル位置に関連するとき、前記第2の補間フィルタを選択することと
を備える、C1に記載の方法。
[C12] 前記リファレンスブロックの値を補間することは、
前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置に関連するとき、および前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置に関連するとき、前記第1の補間フィルタによって生成された値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための垂直方向寄与値を平均化することと、
前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置がフルピクセル位置と水平方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ上のフラクショナルピクセル位置の値と、前記第1の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記垂直方向寄与値を平均化することと、
前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置が下隣接のフルピクセル位置と水平方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ下のフラクショナルピクセル位置の値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記垂直方向寄与値を平均化することと
を備える、C11に記載の方法。
[C13] 前記垂直方向寄与値を平均化した後にのみ、丸め演算を実行することをさらに備える、C12に記載の方法。
[C14] 前記補間フィルタの各々が、前記第1の精度を有する動きベクトルによって参照され得るフラクショナルピクセル位置に関連するように、既存のアップサンプリングフィルタから補間フィルタの前記セットを生成することをさらに備える、C1に記載の方法。
[C15] 前記クロミナンス動きベクトルを判断することが、前記クロミナンスブロックと前記ルミナンスブロックとを備えるマクロブロックを符号化するために、前記ルミナンス動きベクトルを計算することを備え、
前記クロミナンスブロックを処理することが、
前記クロミナンスブロックと前記リファレンスブロックとの間の差に基づいて前記クロミナンスブロックのための残差クロミナンス値を計算することと、
前記残差クロミナンス値を出力することと
を備える、C1に記載の方法。
[C16] 前記クロミナンス動きベクトルを判断することが、前記クロミナンスブロックと前記ルミナンスブロックとを備える符号化されたマクロブロックのための前記ルミナンス動きベクトルを復号することを備え、
前記クロミナンスブロックを処理することが、
前記クロミナンスブロックのための残差クロミナンス値を復号することと、
前記リファレンスブロックと前記復号された残差クロミナンス値とを使用して前記クロミナンスブロックを復号することと
を備える、C1に記載の方法。
[C17] ビデオデータをコーディングするための装置であって、前記装置は、
ビデオデータのクロミナンスブロックに対応するビデオデータのルミナンスブロックのためのルミナンス動きベクトルに基づいて、前記クロミナンスブロックのためのクロミナンス動きベクトルを判断することであって、前記クロミナンス動きベクトルが、第1のフラクショナル部分を有する水平成分と、第2のフラクショナル部分を有する垂直成分とを備え、前記ルミナンス動きベクトルが第1の精度を有し、前記クロミナンス動きベクトルが前記第1の精度以上の第2の精度を有する、判断することと、
前記水平成分の前記第1のフラクショナル部分と前記垂直成分の前記第2のフラクショナル部分とに基づいて補間フィルタを選択することであって、前記補間フィルタを選択することが、補間フィルタのセットから前記補間フィルタを選択することを備え、補間フィルタの前記セットの各々が、前記ルミナンス動きベクトルの複数の可能なフラクショナルピクセル位置のうちの1つに対応する、選択することと、
前記選択された補間フィルタを使用して前記クロミナンス動きベクトルによって識別されるリファレンスブロックの値を補間することと、
前記リファレンスブロックを使用して前記クロミナンスブロックを処理することと
を行うように構成されたビデオコーディングユニットを備える、装置。
[C18] 前記ルミナンス動きベクトルが1/4ピクセル精度を有し、前記クロミナンス動きベクトルが1/8ピクセル精度を有する、C17に記載の装置。
[C19] 前記補間フィルタを選択するために、前記ビデオコーディングユニットは、前記第1のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得るとき、前記第1のフラクショナル部分に対応するフラクショナルピクセル位置に関連する補間フィルタを選択するように構成された、C17に記載の装置。
[C20] 前記補間フィルタを選択するために、前記ビデオコーディングユニットは、前記第1のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得ないが、前記第2の精度を有する動きベクトルによって表され得るとき、前記第1のフラクショナル部分に対応するフラクショナルピクセル位置に隣接するフラクショナルピクセル位置に関連する少なくとも1つの補間フィルタを選択するように構成された、C17に記載の装置。
[C21] 前記補間フィルタを選択するために、前記ビデオコーディングユニットは、
前記第1のフラクショナル部分によって識別される参照フラクショナルピクセル位置を識別することと、
第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左のフラクショナルピクセル位置に関連するとき、前記第1の補間フィルタを選択することと、
第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右のフラクショナルピクセル位置に関連するとき、前記第2の補間フィルタを選択することと
を行うように構成された、C17に記載の装置。
[C22] 前記リファレンスブロックの値を補間するために、前記ビデオコーディングユニットは、
前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置に関連するとき、および前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置に関連するとき、前記第1の補間フィルタによって生成された値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための水平方向寄与値を平均化することと、
前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置がフルピクセル位置と垂直方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ左のフラクショナルピクセル位置の値と、前記第1の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記水平方向寄与値を平均化することと、
前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置が右隣接のフルピクセル位置と垂直方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ右のフラクショナルピクセル位置の値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記水平方向寄与値を平均化することと
を行うように構成された、C21に記載の装置。
[C23] 前記補間フィルタを選択するために、前記ビデオコーディングユニットは、前記第2のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得るとき、前記第2のフラクショナル部分に対応するフラクショナルピクセル位置に関連する補間フィルタを選択するように構成された、C17に記載の装置。
[C24] 前記補間フィルタを選択するために、前記ビデオコーディングユニットは、前記第2のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得ないが、前記第2の精度を有する動きベクトルによって表され得るとき、前記第2のフラクショナル部分に対応するフラクショナルピクセル位置に隣接するフラクショナルピクセル位置に関連する少なくとも1つの補間フィルタを選択するように構成された、C17に記載の装置。
[C25] 前記補間フィルタを選択するために、前記ビデオコーディングユニットは、
前記第2のフラクショナル部分によって識別される参照フラクショナルピクセル位置を識別することと、
第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上のフラクショナルピクセル位置に関連するとき、前記第1の補間フィルタを選択することと、
第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下のフラクショナルピクセル位置に関連するとき、前記第2の補間フィルタを選択することと
を行うように構成された、C17に記載の装置。
[C26] 前記リファレンスブロックの値を補間するために、前記ビデオコーディングユニットは、
前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置に関連するとき、および前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置に関連するとき、前記第1の補間フィルタによって生成された値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための垂直方向寄与値を平均化することと、
前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置がフルピクセル位置と水平方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ上のフラクショナルピクセル位置の値と、前記第1の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記垂直方向寄与値を平均化することと、
前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置が下隣接のフルピクセル位置と水平方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ下のフラクショナルピクセル位置の値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記垂直方向寄与値を平均化することと
を行うように構成された、C25に記載の装置。
[C27] 前記ビデオコーディングユニットは、前記補間フィルタの各々が、前記第1の精度を有する動きベクトルによって参照され得るフラクショナルピクセル位置に関連するように、既存のアップサンプリングフィルタから補間フィルタの前記セットを生成するように構成された、C17に記載の装置。
[C28] 前記クロミナンスブロックを処理するために、前記ビデオコーディングユニットが、
前記クロミナンスブロックと前記リファレンスブロックとの間の差に基づいて前記クロミナンスブロックのための残差クロミナンス値を計算することと、
前記残差クロミナンス値を出力することと
を行うように構成された、C17に記載の装置。
[C29] 前記クロミナンスブロックを処理するために、前記ビデオコーディングユニットが、
前記リファレンスブロックと受信残差クロミナンス値とから前記クロミナンスブロックを再構成する
ように構成された、C17に記載の装置。
[C30] ビデオデータをコーディングするための装置であって、前記装置は、
ビデオデータのクロミナンスブロックに対応するビデオデータのルミナンスブロックのためのルミナンス動きベクトルに基づいて、前記クロミナンスブロックのためのクロミナンス動きベクトルを判断するための手段であって、前記クロミナンス動きベクトルが、第1のフラクショナル部分を有する水平成分と、第2のフラクショナル部分を有する垂直成分とを備え、前記ルミナンス動きベクトルが第1の精度を有し、前記クロミナンス動きベクトルが前記第1の精度以上の第2の精度を有する、判断するための手段と、
前記水平成分の前記第1のフラクショナル部分と前記垂直成分の前記第2のフラクショナル部分とに基づいて補間フィルタを選択するための手段であって、前記補間フィルタを選択することが、補間フィルタのセットから前記補間フィルタを選択することを備え、補間フィルタの前記セットの各々が、前記ルミナンス動きベクトルの複数の可能なフラクショナルピクセル位置のうちの1つに対応する、選択するための手段と、
前記選択された補間フィルタを使用して前記クロミナンス動きベクトルによって識別されるリファレンスブロックの値を補間するための手段と、
前記リファレンスブロックを使用して前記クロミナンスブロックを処理するための手段と
を備える、装置。
[C31] 前記ルミナンス動きベクトルが1/4ピクセル精度を有し、前記クロミナンス動きベクトルが1/8ピクセル精度を有する、C30に記載の装置。
[C32] 前記補間フィルタを選択するための前記手段は、前記第1のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得るとき、前記第1のフラクショナル部分に対応するフラクショナルピクセル位置に関連する補間フィルタを選択するための手段を備える、C30に記載の装置。
[C33] 前記補間フィルタを選択するための前記手段は、前記第1のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得ないが、前記第2の精度を有する動きベクトルによって表され得るとき、前記第1のフラクショナル部分に対応するフラクショナルピクセル位置に隣接するフラクショナルピクセル位置に関連する少なくとも1つの補間フィルタを選択するための手段を備える、C30に記載の装置。
[C34] 前記補間フィルタを選択するための前記手段は、
前記第1のフラクショナル部分によって識別される参照フラクショナルピクセル位置を識別するための手段と、
第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左のフラクショナルピクセル位置に関連するとき、前記第1の補間フィルタを選択するための手段と、
第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右のフラクショナルピクセル位置に関連するとき、前記第2の補間フィルタを選択するための手段と
を備える、C30に記載の装置。
[C35] 前記リファレンスブロックの値を補間するための前記手段は、
前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置に関連するとき、および前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置に関連するとき、前記第1の補間フィルタによって生成された値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための水平方向寄与値を平均化するための手段と、
前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置がフルピクセル位置と垂直方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ左のフラクショナルピクセル位置の値と、前記第1の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記水平方向寄与値を平均化するための手段と、
前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置が右隣接のフルピクセル位置と垂直方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ右のフラクショナルピクセル位置の値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記水平方向寄与値を平均化するための手段と
を備える、C34に記載の装置。
[C36] 前記補間フィルタを選択するための前記手段は、前記第2のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得るとき、前記第2のフラクショナル部分に対応するフラクショナルピクセル位置に関連する補間フィルタを選択するための手段を備える、C30に記載の装置。
[C37] 前記補間フィルタを選択するための前記手段は、前記第2のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得ないが、前記第2の精度を有する動きベクトルによって表され得るとき、前記第2のフラクショナル部分に対応するフラクショナルピクセル位置に隣接するフラクショナルピクセル位置に関連する少なくとも1つの補間フィルタを選択するための手段を備える、C30に記載の装置。
[C38] 前記補間フィルタを選択するための前記手段は、
前記第2のフラクショナル部分によって識別される参照フラクショナルピクセル位置を識別するための手段と、
第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上のフラクショナルピクセル位置に関連するとき、前記第1の補間フィルタを選択するための手段と、
第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下のフラクショナルピクセル位置に関連するとき、前記第2の補間フィルタを選択するための手段と
を備える、C30に記載の装置。
[C39] 前記リファレンスブロックの値を補間するための前記手段は、
前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置に関連するとき、および前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置に関連するとき、前記第1の補間フィルタによって生成された値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための垂直方向寄与値を平均化するための手段と、
前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置がフルピクセル位置と水平方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ上のフラクショナルピクセル位置の値と、前記第1の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記垂直方向寄与値を平均化するための手段と、
前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置が下隣接のフルピクセル位置と水平方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ下のフラクショナルピクセル位置の値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記垂直方向寄与値を平均化するための手段と
を備える、C38に記載の装置。
[C40] 前記補間フィルタの各々が、前記第1の精度を有する動きベクトルによって参照され得るフラクショナルピクセル位置に関連するように、既存のアップサンプリングフィルタから補間フィルタの前記セットを生成するための手段をさらに備える、C30に記載の装置。
[C41] 前記クロミナンスブロックを処理するための前記手段が、
前記クロミナンスブロックと前記リファレンスブロックとの間の差に基づいて前記クロミナンスブロックのための残差クロミナンス値を計算するための手段と、
前記残差クロミナンス値を出力するための手段と
を備える、C30に記載の装置。
[C42] 前記クロミナンスブロックを処理するための前記手段が、
前記リファレンスブロックと受信残差クロミナンス値とから前記クロミナンスブロックを再構成するための手段
を備える、C30に記載の装置。
[C43] 実行されると、
ビデオデータのクロミナンスブロックに対応するビデオデータのルミナンスブロックのためのルミナンス動きベクトルに基づいて、前記クロミナンスブロックのためのクロミナンス動きベクトルを判断することであって、前記クロミナンス動きベクトルが、第1のフラクショナル部分を有する水平成分と、第2のフラクショナル部分を有する垂直成分とを備え、前記ルミナンス動きベクトルが第1の精度を有し、前記クロミナンス動きベクトルが前記第1の精度以上の第2の精度を有する、判断することと、
前記水平成分の前記第1のフラクショナル部分と前記垂直成分の前記第2のフラクショナル部分とに基づいて補間フィルタを選択することであって、前記補間フィルタを選択することが、補間フィルタのセットから前記補間フィルタを選択することを備え、補間フィルタの前記セットの各々が、前記ルミナンス動きベクトルの複数の可能なフラクショナルピクセル位置のうちの1つに対応する、選択することと、
前記選択された補間フィルタを使用して前記クロミナンス動きベクトルによって識別されるリファレンスブロックの値を補間することと、
前記リファレンスブロックを使用して前記クロミナンスブロックを処理することと
をプロセッサに行わせる命令を記憶したコンピュータ可読媒体を備えるコンピュータプログラム製品。
[C44] 前記ルミナンス動きベクトルが1/4ピクセル精度を有し、前記クロミナンス動きベクトルが1/8ピクセル精度を有する、C43に記載のコンピュータプログラム製品。
[C45] 前記補間フィルタを選択することを前記プロセッサに行わせる前記命令は、前記第1の
フラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得るとき、
前記第1のフラクショナル部分に対応するフラクショナルピクセル位置に関連する補間フ
ィルタを選択することを前記プロセッサに行わせる命令を備える、C43に記載のコ
ンピュータプログラム製品。
[C46] 前記補間フィルタを選択することを前記プロセッサに行わせる前記命令は、前記第1のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得ないが、前記第2の精度を有する動きベクトルによって表され得るとき、前記第1のフラクショナル部分に対応するフラクショナルピクセル位置に隣接するフラクショナルピクセル位置に関連する少なくとも1つの補間フィルタを選択することを前記プロセッサに行わせる命令を備える、C43に記載のコンピュータプログラム製品。
[C47] 前記補間フィルタを選択することを前記プロセッサに行わせる前記命令は、
前記第1のフラクショナル部分によって識別される参照フラクショナルピクセル位置を識別することと、
第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左のフラクショナルピクセル位置に関連するとき、前記第1の補間フィルタを選択することと、
第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右のフラクショナルピクセル位置に関連するとき、前記第2の補間フィルタを選択することと
を前記プロセッサに行わせる命令を備える、C43に記載のコンピュータプログラム製品。
[C48] 前記リファレンスブロックの値を補間することを前記プロセッサに行わせる前記命令は、
前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置に関連するとき、および前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置に関連するとき、前記第1の補間フィルタによって生成された値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための水平方向寄与値を平均化することと、
前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置がフルピクセル位置と垂直方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ左のフラクショナルピクセル位置の値と、前記第1の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記水平方向寄与値を平均化することと、
前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置が右隣接のフルピクセル位置と垂直方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ右のフラクショナルピクセル位置の値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記水平方向寄与値を平均化することと
を前記プロセッサに行わせる命令を備える、C47に記載のコンピュータプログラム製品。
[C49] 前記補間フィルタを選択することを前記プロセッサに行わせる前記命令は、前記第2のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得るとき、前記第2のフラクショナル部分に対応するフラクショナルピクセル位置に関連する補間フィルタを選択することを前記プロセッサに行わせる命令を備える、C43に記載のコンピュータプログラム製品。
[C50] 前記補間フィルタを選択することを前記プロセッサに行わせる前記命令は、前記第2のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得ないが、前記第2の精度を有する動きベクトルによって表され得るとき、前記第2のフラクショナル部分に対応するフラクショナルピクセル位置に隣接するフラクショナルピクセル位置に関連する少なくとも1つの補間フィルタを選択することを前記プロセッサに行わせる命令を備える、C43に記載のコンピュータプログラム製品。
[C51] 前記補間フィルタを選択することを前記プロセッサに行わせる前記命令は、
前記第2のフラクショナル部分によって識別される参照フラクショナルピクセル位置を識別することと、
第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上のフラクショナルピクセル位置に関連するとき、前記第1の補間フィルタを選択することと、
第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下のフラクショナルピクセル位置に関連するとき、前記第2の補間フィルタを選択することと
を前記プロセッサに行わせる命令を備える、C43に記載のコンピュータプログラム製品。
[C52] 前記リファレンスブロックの値を補間することを前記プロセッサに行わせる前記命令は、
前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置に関連するとき、および前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置に関連するとき、前記第1の補間フィルタによって生成された値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための垂直方向寄与値を平均化することと、
前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置がフルピクセル位置と水平方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ上のフラクショナルピクセル位置の値と、前記第1の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記垂直方向寄与値を平均化することと、
前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置が下隣接のフルピクセル位置と水平方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ下のフラクショナルピクセル位置の値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記垂直方向寄与値を平均化することと
を前記プロセッサに行わせる命令を備える、C51に記載のコンピュータプログラム製品。
[C53] 前記補間フィルタの各々が、前記第1の精度を有する動きベクトルによって参照され得るフラクショナルピクセル位置に関連するように、既存のアップサンプリングフィルタから補間フィルタの前記セットを生成することを前記プロセッサに行わせる命令をさらに備える、C43に記載のコンピュータプログラム製品。
[C54] 前記クロミナンスブロックを処理することを前記プロセッサに行わせる前記命令は、
前記クロミナンスブロックと前記リファレンスブロックとの間の差に基づいて前記クロミナンスブロックのための残差クロミナンス値を計算することと、
前記残差クロミナンス値を出力することと
を前記プロセッサに行わせる命令を備える、C43に記載のコンピュータプログラム製品。
[C55] 前記クロミナンスブロックを処理することを前記プロセッサに行わせる前記命令は、前記リファレンスブロックと受信残差クロミナンス値とから前記クロミナンスブロックを再構成することを前記プロセッサに行わせる命令を備える、C43に記載のコンピュータプログラム製品。

Claims (55)

  1. ビデオデータを符号化する方法であって、前記方法は、
    ビデオデータのクロミナンスブロックに対応するビデオデータのルミナンスブロックのためのルミナンス動きベクトルに基づいて、前記クロミナンスブロックのためのクロミナンス動きベクトルを判断することであって、前記クロミナンス動きベクトルが、第1のフラクショナル部分を有する水平成分と、第2のフラクショナル部分を有する垂直成分とを備え、前記ルミナンス動きベクトルが第1の精度を有し、前記クロミナンス動きベクトルが前記第1の精度以上の第2の精度を有する、判断することと、
    前記水平成分の前記第1のフラクショナル部分と前記垂直成分の前記第2のフラクショナル部分とに基づいて補間フィルタを選択することであって、前記補間フィルタを選択することが、補間フィルタのセットから前記補間フィルタを選択することを備え、補間フィルタの前記セットの各々が、前記ルミナンス動きベクトルの複数の可能なフラクショナルピクセル位置のうちの1つに対応する、選択することと、
    前記選択された補間フィルタを使用して前記クロミナンス動きベクトルによって識別されるリファレンスブロックの値を補間することと、
    前記リファレンスブロックを使用して前記クロミナンスブロックを符号化することと
    を備える、方法。
  2. ビデオデータを復号する方法であって、前記方法は、
    ビデオデータのクロミナンスブロックに対応するビデオデータのルミナンスブロックのためのルミナンス動きベクトルに基づいて、前記クロミナンスブロックのためのクロミナンス動きベクトルを判断することであって、前記クロミナンス動きベクトルが、第1のフラクショナル部分を有する水平成分と、第2のフラクショナル部分を有する垂直成分とを備え、前記ルミナンス動きベクトルが第1の精度を有し、前記クロミナンス動きベクトルが前記第1の精度以上の第2の精度を有する、判断することと、
    前記水平成分の前記第1のフラクショナル部分と前記垂直成分の前記第2のフラクショナル部分とに基づいて補間フィルタを選択することであって、前記補間フィルタを選択することが、補間フィルタのセットから前記補間フィルタを選択することを備え、補間フィルタの前記セットの各々が、前記ルミナンス動きベクトルの複数の可能なフラクショナルピクセル位置のうちの1つに対応する、選択することと、
    前記選択された補間フィルタを使用して前記クロミナンス動きベクトルによって識別されるリファレンスブロックの値を補間することと、
    前記リファレンスブロックを使用して前記クロミナンスブロックを復号することと
    前記クロミナンス動きベクトルを判断することが、前記クロミナンスブロックと前記ルミナンスブロックとを備える符号化されたマクロブロックのための前記ルミナンス動きベクトルを復号することを備え、
    前記クロミナンスブロックを復号することが、
    前記クロミナンスブロックのための残差クロミナンス値を復号することと、
    前記リファレンスブロックと前記復号された残差クロミナンス値とを使用して前記クロミナンスブロックを復号することと
    を備える、方法。
  3. 前記ルミナンス動きベクトルが1/4ピクセル精度を有し、前記クロミナンス動きベクトルが1/8ピクセル精度を有する、請求項1または2に記載の方法。
  4. 前記ルミナンス動きベクトルが1/8ピクセル精度を有し、前記クロミナンス動きベクトルが、1/16ピクセル精度の動きベクトルを切り捨てた後に1/8ピクセル精度を有する、請求項1または2に記載の方法。
  5. 前記補間フィルタを選択することは、前記第1のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得るとき、前記第1のフラクショナル部分に対応するフラクショナルピクセル位置に関連する補間フィルタを選択することを備える、請求項1または2に記載の方法。
  6. 前記補間フィルタを選択することは、前記第1のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得ないが、前記第2の精度を有する動きベクトルによって表され得るとき、前記第1のフラクショナル部分に対応するフラクショナルピクセル位置に隣接するフラクショナルピクセル位置に関連する少なくとも1つの補間フィルタを選択することを備える、請求項1または2に記載の方法。
  7. 前記補間フィルタを選択することは、
    前記第1のフラクショナル部分によって識別される参照フラクショナルピクセル位置を識別することと、
    第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左のフラクショナルピクセル位置に関連するとき、前記第1の補間フィルタを選択することと、
    第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右のフラクショナルピクセル位置に関連するとき、前記第2の補間フィルタを選択することと
    を備える、請求項1または2に記載の方法。
  8. 前記リファレンスブロックの値を補間することは、
    前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置に関連するとき、および前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置に関連するとき、前記第1の補間フィルタによって生成された値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための水平方向寄与値を平均化することと、
    前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置がフルピクセル位置と垂直方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ左のフラクショナルピクセル位置の値と、前記第1の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記水平方向寄与値を平均化することと、
    前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置が右隣接のフルピクセル位置と垂直方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ右のフラクショナルピクセル位置の値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記水平方向寄与値を平均化することと
    を備える、請求項に記載の方法。
  9. 前記水平方向寄与値を平均化した後にのみ、丸め演算を実行することをさらに備える、請求項に記載の方法。
  10. 前記補間フィルタを選択することは、前記第2のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得るとき、前記第2のフラクショナル部分に対応するフラクショナルピクセル位置に関連する補間フィルタを選択することを備える、請求項1または2に記載の方法。
  11. 前記補間フィルタを選択することは、前記第2のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得ないが、前記第2の精度を有する動きベクトルによって表され得るとき、前記第2のフラクショナル部分に対応するフラクショナルピクセル位置に隣接するフラクショナルピクセル位置に関連する少なくとも1つの補間フィルタを選択することを備える、請求項1または2に記載の方法。
  12. 前記補間フィルタを選択することは、
    前記第2のフラクショナル部分によって識別される参照フラクショナルピクセル位置を識別することと、
    第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上のフラクショナルピクセル位置に関連するとき、前記第1の補間フィルタを選択することと、
    第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下のフラクショナルピクセル位置に関連するとき、前記第2の補間フィルタを選択することと
    を備える、請求項1または2に記載の方法。
  13. 前記リファレンスブロックの値を補間することは、
    前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置に関連するとき、および前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置に関連するとき、前記第1の補間フィルタによって生成された値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための垂直方向寄与値を平均化することと、
    前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置がフルピクセル位置と水平方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ上のフラクショナルピクセル位置の値と、前記第1の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記垂直方向寄与値を平均化することと、
    前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置が下隣接のフルピクセル位置と水平方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ下のフラクショナルピクセル位置の値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記垂直方向寄与値を平均化することと
    を備える、請求項12に記載の方法。
  14. 前記垂直方向寄与値を平均化した後にのみ、丸め演算を実行することをさらに備える、請求項13に記載の方法。
  15. 前記補間フィルタの各々が、前記第1の精度を有する動きベクトルによって参照され得るフラクショナルピクセル位置に関連するように、既存のアップサンプリングフィルタから補間フィルタの前記セットを生成することをさらに備える、請求項1または2に記載の方法。
  16. 前記クロミナンス動きベクトルを判断することが、前記クロミナンスブロックと前記ルミナンスブロックとを備えるマクロブロックを符号化するために、前記ルミナンス動きベクトルを計算することを備え、
    前記クロミナンスブロックを処理することが、
    前記クロミナンスブロックと前記リファレンスブロックとの間の差に基づいて前記クロミナンスブロックのための残差クロミナンス値を計算することと、
    前記残差クロミナンス値を出力することと
    を備える、請求項1に記載の方法。
  17. ビデオデータを復号するための装置であって、前記装置は、
    ビデオデータのクロミナンスブロックに対応するビデオデータのルミナンスブロックのためのルミナンス動きベクトルに基づいて、前記クロミナンスブロックのためのクロミナンス動きベクトルを判断することであって、前記クロミナンス動きベクトルが、第1のフラクショナル部分を有する水平成分と、第2のフラクショナル部分を有する垂直成分とを備え、前記ルミナンス動きベクトルが第1の精度を有し、前記クロミナンス動きベクトルが前記第1の精度以上の第2の精度を有する、判断することと、
    前記水平成分の前記第1のフラクショナル部分と前記垂直成分の前記第2のフラクショナル部分とに基づいて補間フィルタを選択することであって、前記補間フィルタを選択することが、補間フィルタのセットから前記補間フィルタを選択することを備え、補間フィルタの前記セットの各々が、前記ルミナンス動きベクトルの複数の可能なフラクショナルピクセル位置のうちの1つに対応する、選択することと、
    前記選択された補間フィルタを使用して前記クロミナンス動きベクトルによって識別されるリファレンスブロックの値を補間することと、
    前記リファレンスブロックを使用して前記クロミナンスブロックを復号することと
    を行うように構成されたビデオ復号ユニットを備える、装置。
  18. ビデオデータを符号化するための装置であって、前記装置は、
    ビデオデータのクロミナンスブロックに対応するビデオデータのルミナンスブロックのためのルミナンス動きベクトルに基づいて、前記クロミナンスブロックのためのクロミナンス動きベクトルを判断することであって、前記クロミナンス動きベクトルが、第1のフラクショナル部分を有する水平成分と、第2のフラクショナル部分を有する垂直成分とを備え、前記ルミナンス動きベクトルが第1の精度を有し、前記クロミナンス動きベクトルが前記第1の精度以上の第2の精度を有する、判断することと、
    前記水平成分の前記第1のフラクショナル部分と前記垂直成分の前記第2のフラクショナル部分とに基づいて補間フィルタを選択することであって、前記補間フィルタを選択することが、補間フィルタのセットから前記補間フィルタを選択することを備え、補間フィルタの前記セットの各々が、前記ルミナンス動きベクトルの複数の可能なフラクショナルピクセル位置のうちの1つに対応する、選択することと、
    前記選択された補間フィルタを使用して前記クロミナンス動きベクトルによって識別されるリファレンスブロックの値を補間することと、
    前記リファレンスブロックを使用して前記クロミナンスブロックを符号化することと
    を行うように構成されたビデオ符号化ユニットを備え、
    前記クロミナンスブロックを符号化するために、前記ビデオ符号化ユニットが、
    前記クロミナンスブロックと前記リファレンスブロックとの間の差に基づいて前記クロミナンスブロックのための残差クロミナンス値を計算することと、
    前記残差クロミナンス値を出力することと
    を行うように構成された、装置。
  19. 前記ルミナンス動きベクトルが1/4ピクセル精度を有し、前記クロミナンス動きベクトルが1/8ピクセル精度を有する、請求項17または18に記載の装置。
  20. 前記補間フィルタを選択するために、前記ビデオ復号ユニットは、前記第1のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得るとき、前記第1のフラクショナル部分に対応するフラクショナルピクセル位置に関連する補間フィルタを選択するように構成された、請求項17に記載の装置。
  21. 前記補間フィルタを選択するために、前記ビデオ復号ユニットは、前記第1のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得ないが、前記第2の精度を有する動きベクトルによって表され得るとき、前記第1のフラクショナル部分に対応するフラクショナルピクセル位置に隣接するフラクショナルピクセル位置に関連する少なくとも1つの補間フィルタを選択するように構成された、請求項17に記載の装置。
  22. 前記補間フィルタを選択するために、前記ビデオ復号ユニットは、
    前記第1のフラクショナル部分によって識別される参照フラクショナルピクセル位置を識別することと、
    第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左のフラクショナルピクセル位置に関連するとき、前記第1の補間フィルタを選択することと、
    第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右のフラクショナルピクセル位置に関連するとき、前記第2の補間フィルタを選択することと
    を行うように構成された、請求項17に記載の装置。
  23. 前記リファレンスブロックの値を補間するために、前記ビデオ復号ユニットは、
    前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置に関連するとき、および前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置に関連するとき、前記第1の補間フィルタによって生成された値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための水平方向寄与値を平均化することと、
    前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置がフルピクセル位置と垂直方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ左のフラクショナルピクセル位置の値と、前記第1の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記水平方向寄与値を平均化することと、
    前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置が右隣接のフルピクセル位置と垂直方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ右のフラクショナルピクセル位置の値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記水平方向寄与値を平均化することと
    を行うように構成された、請求項22に記載の装置。
  24. 前記補間フィルタを選択するために、前記ビデオ復号ユニットは、前記第2のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得るとき、前記第2のフラクショナル部分に対応するフラクショナルピクセル位置に関連する補間フィルタを選択するように構成された、請求項17に記載の装置。
  25. 前記補間フィルタを選択するために、前記ビデオ復号ユニットは、前記第2のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得ないが、前記第2の精度を有する動きベクトルによって表され得るとき、前記第2のフラクショナル部分に対応するフラクショナルピクセル位置に隣接するフラクショナルピクセル位置に関連する少なくとも1つの補間フィルタを選択するように構成された、請求項17に記載の装置。
  26. 前記補間フィルタを選択するために、前記ビデオ復号ユニットは、
    前記第2のフラクショナル部分によって識別される参照フラクショナルピクセル位置を識別することと、
    第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上のフラクショナルピクセル位置に関連するとき、前記第1の補間フィルタを選択することと、
    第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下のフラクショナルピクセル位置に関連するとき、前記第2の補間フィルタを選択することと
    を行うように構成された、請求項17に記載の装置。
  27. 前記リファレンスブロックの値を補間するために、前記ビデオ復号ユニットは、
    前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置に関連するとき、および前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置に関連するとき、前記第1の補間フィルタによって生成された値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための垂直方向寄与値を平均化することと、
    前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置がフルピクセル位置と水平方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ上のフラクショナルピクセル位置の値と、前記第1の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記垂直方向寄与値を平均化することと、
    前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置が下隣接のフルピクセル位置と水平方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ下のフラクショナルピクセル位置の値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記垂直方向寄与値を平均化することと
    を行うように構成された、請求項26に記載の装置。
  28. 前記ビデオ復号ユニットは、前記補間フィルタの各々が、前記第1の精度を有する動きベクトルによって参照され得るフラクショナルピクセル位置に関連するように、既存のアップサンプリングフィルタから補間フィルタの前記セットを生成するように構成された、請求項17に記載の装置。
  29. 前記クロミナンスブロックを復号するために、前記ビデオ復号ユニットが、
    前記リファレンスブロックと受信残差クロミナンス値とから前記クロミナンスブロックを再構成する
    ように構成された、請求項17に記載の装置。
  30. ビデオデータを符号化するための装置であって、前記装置は、
    ビデオデータのクロミナンスブロックに対応するビデオデータのルミナンスブロックのためのルミナンス動きベクトルに基づいて、前記クロミナンスブロックのためのクロミナンス動きベクトルを判断するための手段であって、前記クロミナンス動きベクトルが、第1のフラクショナル部分を有する水平成分と、第2のフラクショナル部分を有する垂直成分とを備え、前記ルミナンス動きベクトルが第1の精度を有し、前記クロミナンス動きベクトルが前記第1の精度以上の第2の精度を有する、判断するための手段と、
    前記水平成分の前記第1のフラクショナル部分と前記垂直成分の前記第2のフラクショナル部分とに基づいて補間フィルタを選択するための手段であって、前記補間フィルタを選択することが、補間フィルタのセットから前記補間フィルタを選択することを備え、補間フィルタの前記セットの各々が、前記ルミナンス動きベクトルの複数の可能なフラクショナルピクセル位置のうちの1つに対応する、選択するための手段と、
    前記選択された補間フィルタを使用して前記クロミナンス動きベクトルによって識別されるリファレンスブロックの値を補間するための手段と、
    前記リファレンスブロックを使用して前記クロミナンスブロックを符号化するための手段と
    を備える、装置。
  31. ビデオデータを復号するための装置であって、前記装置は、
    ビデオデータのクロミナンスブロックに対応するビデオデータのルミナンスブロックのためのルミナンス動きベクトルに基づいて、前記クロミナンスブロックのためのクロミナンス動きベクトルを判断するための手段であって、前記クロミナンス動きベクトルが、第1のフラクショナル部分を有する水平成分と、第2のフラクショナル部分を有する垂直成分とを備え、前記ルミナンス動きベクトルが第1の精度を有し、前記クロミナンス動きベクトルが前記第1の精度以上の第2の精度を有する、判断するための手段と、
    前記水平成分の前記第1のフラクショナル部分と前記垂直成分の前記第2のフラクショナル部分とに基づいて補間フィルタを選択するための手段であって、前記補間フィルタを選択することが、補間フィルタのセットから前記補間フィルタを選択することを備え、補間フィルタの前記セットの各々が、前記ルミナンス動きベクトルの複数の可能なフラクショナルピクセル位置のうちの1つに対応する、選択するための手段と、
    前記選択された補間フィルタを使用して前記クロミナンス動きベクトルによって識別されるリファレンスブロックの値を補間するための手段と、
    前記リファレンスブロックを使用して前記クロミナンスブロックを復号するための手段と、
    を備え、復号するための前記手段が、
    前記リファレンスブロックと受信残差クロミナンス値とから前記クロミナンスブロックを再構成するための手段
    を備える、装置。
  32. 前記ルミナンス動きベクトルが1/4ピクセル精度を有し、前記クロミナンス動きベクトルが1/8ピクセル精度を有する、請求項30または31に記載の装置。
  33. 前記補間フィルタを選択するための前記手段は、前記第1のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得るとき、前記第1のフラクショナル部分に対応するフラクショナルピクセル位置に関連する補間フィルタを選択するための手段を備える、請求項30または31に記載の装置。
  34. 前記補間フィルタを選択するための前記手段は、前記第1のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得ないが、前記第2の精度を有する動きベクトルによって表され得るとき、前記第1のフラクショナル部分に対応するフラクショナルピクセル位置に隣接するフラクショナルピクセル位置に関連する少なくとも1つの補間フィルタを選択するための手段を備える、請求項30または31に記載の装置。
  35. 前記補間フィルタを選択するための前記手段は、
    前記第1のフラクショナル部分によって識別される参照フラクショナルピクセル位置を識別するための手段と、
    第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左のフラクショナルピクセル位置に関連するとき、前記第1の補間フィルタを選択するための手段と、
    第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右のフラクショナルピクセル位置に関連するとき、前記第2の補間フィルタを選択するための手段と
    を備える、請求項30または31に記載の装置。
  36. 前記リファレンスブロックの値を補間するための前記手段は、
    前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置に関連するとき、および前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置に関連するとき、前記第1の補間フィルタによって生成された値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための水平方向寄与値を平均化するための手段と、
    前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置がフルピクセル位置と垂直方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ左のフラクショナルピクセル位置の値と、前記第1の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記水平方向寄与値を平均化するための手段と、
    前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置が右隣接のフルピクセル位置と垂直方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ右のフラクショナルピクセル位置の値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記水平方向寄与値を平均化するための手段と
    を備える、請求項35に記載の装置。
  37. 前記補間フィルタを選択するための前記手段は、前記第2のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得るとき、前記第2のフラクショナル部分に対応するフラクショナルピクセル位置に関連する補間フィルタを選択するための手段を備える、請求項30または31に記載の装置。
  38. 前記補間フィルタを選択するための前記手段は、前記第2のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得ないが、前記第2の精度を有する動きベクトルによって表され得るとき、前記第2のフラクショナル部分に対応するフラクショナルピクセル位置に隣接するフラクショナルピクセル位置に関連する少なくとも1つの補間フィルタを選択するための手段を備える、請求項30または31に記載の装置。
  39. 前記補間フィルタを選択するための前記手段は、
    前記第2のフラクショナル部分によって識別される参照フラクショナルピクセル位置を識別するための手段と、
    第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上のフラクショナルピクセル位置に関連するとき、前記第1の補間フィルタを選択するための手段と、
    第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下のフラクショナルピクセル位置に関連するとき、前記第2の補間フィルタを選択するための手段と
    を備える、請求項30または31に記載の装置。
  40. 前記リファレンスブロックの値を補間するための前記手段は、
    前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置に関連するとき、および前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置に関連するとき、前記第1の補間フィルタによって生成された値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための垂直方向寄与値を平均化するための手段と、
    前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置がフルピクセル位置と水平方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ上のフラクショナルピクセル位置の値と、前記第1の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記垂直方向寄与値を平均化するための手段と、
    前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置が下隣接のフルピクセル位置と水平方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ下のフラクショナルピクセル位置の値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記垂直方向寄与値を平均化するための手段と
    を備える、請求項39に記載の装置。
  41. 前記補間フィルタの各々が、前記第1の精度を有する動きベクトルによって参照され得るフラクショナルピクセル位置に関連するように、既存のアップサンプリングフィルタから補間フィルタの前記セットを生成するための手段をさらに備える、請求項30または31に記載の装置。
  42. 前記クロミナンスブロックを符号化するための前記手段が、
    前記クロミナンスブロックと前記リファレンスブロックとの間の差に基づいて前記クロミナンスブロックのための残差クロミナンス値を計算するための手段と、
    前記残差クロミナンス値を出力するための手段と
    を備える、請求項30に記載の装置。
  43. 実行されると、
    ビデオデータのクロミナンスブロックに対応するビデオデータのルミナンスブロックのためのルミナンス動きベクトルに基づいて、前記クロミナンスブロックのためのクロミナンス動きベクトルを判断することであって、前記クロミナンス動きベクトルが、第1のフラクショナル部分を有する水平成分と、第2のフラクショナル部分を有する垂直成分とを備え、前記ルミナンス動きベクトルが第1の精度を有し、前記クロミナンス動きベクトルが前記第1の精度以上の第2の精度を有する、判断することと、
    前記水平成分の前記第1のフラクショナル部分と前記垂直成分の前記第2のフラクショナル部分とに基づいて補間フィルタを選択することであって、前記補間フィルタを選択することが、補間フィルタのセットから前記補間フィルタを選択することを備え、補間フィルタの前記セットの各々が、前記ルミナンス動きベクトルの複数の可能なフラクショナルピクセル位置のうちの1つに対応する、選択することと、
    前記選択された補間フィルタを使用して前記クロミナンス動きベクトルによって識別されるリファレンスブロックの値を補間することと、
    前記リファレンスブロックを使用して前記クロミナンスブロックを復号することと
    をプロセッサに行わせる命令を記憶したコンピュータ可読記憶体。
  44. 実行されると、
    ビデオデータのクロミナンスブロックに対応するビデオデータのルミナンスブロックのためのルミナンス動きベクトルに基づいて、前記クロミナンスブロックのためのクロミナンス動きベクトルを判断することであって、前記クロミナンス動きベクトルが、第1のフラクショナル部分を有する水平成分と、第2のフラクショナル部分を有する垂直成分とを備え、前記ルミナンス動きベクトルが第1の精度を有し、前記クロミナンス動きベクトルが前記第1の精度以上の第2の精度を有する、判断することと、
    前記水平成分の前記第1のフラクショナル部分と前記垂直成分の前記第2のフラクショナル部分とに基づいて補間フィルタを選択することであって、前記補間フィルタを選択することが、補間フィルタのセットから前記補間フィルタを選択することを備え、補間フィルタの前記セットの各々が、前記ルミナンス動きベクトルの複数の可能なフラクショナルピクセル位置のうちの1つに対応する、選択することと、
    前記選択された補間フィルタを使用して前記クロミナンス動きベクトルによって識別されるリファレンスブロックの値を補間することと、
    前記リファレンスブロックを使用して前記クロミナンスブロックを符号化することと
    を前記プロセッサに行わせる命令を備え、
    前記クロミナンスブロックを符号化するために、前記命令はさらに、
    前記クロミナンスブロックと前記リファレンスブロックとの間の差に基づいて前記クロミナンスブロックのための残差クロミナンス値を計算することと、
    前記残差クロミナンス値を出力することと
    を前記プロセッサに行わせる、コンピュータ可読記憶媒体
  45. 前記ルミナンス動きベクトルが1/4ピクセル精度を有し、前記クロミナンス動きベクトルが1/8ピクセル精度を有する、請求項43または44に記載のコンピュータ可読記憶媒体
  46. 前記補間フィルタを選択することを前記プロセッサに行わせる前記命令は、前記第1のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得るとき、前記第1のフラクショナル部分に対応するフラクショナルピクセル位置に関連する補間フィルタを選択することを前記プロセッサに行わせる命令を備える、請求項43または44に記載のコンピュータ可読記憶媒体
  47. 前記補間フィルタを選択することを前記プロセッサに行わせる前記命令は、前記第1のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得ないが、前記第2の精度を有する動きベクトルによって表され得るとき、前記第1のフラクショナル部分に対応するフラクショナルピクセル位置に隣接するフラクショナルピクセル位置に関連する少なくとも1つの補間フィルタを選択することを前記プロセッサに行わせる命令を備える、請求項43または44に記載のコンピュータ可読記憶媒体
  48. 前記補間フィルタを選択することを前記プロセッサに行わせる前記命令は、
    前記第1のフラクショナル部分によって識別される参照フラクショナルピクセル位置を識別することと、
    第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左のフラクショナルピクセル位置に関連するとき、前記第1の補間フィルタを選択することと、
    第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右のフラクショナルピクセル位置に関連するとき、前記第2の補間フィルタを選択することと
    を前記プロセッサに行わせる命令を備える、請求項43または44に記載のコンピュータ可読記憶媒体
  49. 前記リファレンスブロックの値を補間することを前記プロセッサに行わせる前記命令は、
    前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置に関連するとき、および前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置に関連するとき、前記第1の補間フィルタによって生成された値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための水平方向寄与値を平均化することと、
    前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置がフルピクセル位置と垂直方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ左のフラクショナルピクセル位置の値と、前記第1の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記水平方向寄与値を平均化することと、
    前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ左の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ右の前記フラクショナルピクセル位置が右隣接のフルピクセル位置と垂直方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ右のフラクショナルピクセル位置の値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記水平方向寄与値を平均化することと
    を前記プロセッサに行わせる命令を備える、請求項48に記載のコンピュータ可読記憶媒体
  50. 前記補間フィルタを選択することを前記プロセッサに行わせる前記命令は、前記第2のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得るとき、前記第2のフラクショナル部分に対応するフラクショナルピクセル位置に関連する補間フィルタを選択することを前記プロセッサに行わせる命令を備える、請求項43または44に記載のコンピュータ可読記憶媒体
  51. 前記補間フィルタを選択することを前記プロセッサに行わせる前記命令は、前記第2のフラクショナル部分が、前記第1の精度を有する動きベクトルによって表され得ないが、前記第2の精度を有する動きベクトルによって表され得るとき、前記第2のフラクショナル部分に対応するフラクショナルピクセル位置に隣接するフラクショナルピクセル位置に関連する少なくとも1つの補間フィルタを選択することを前記プロセッサに行わせる命令を備える、請求項43または44に記載のコンピュータ可読記憶媒体
  52. 前記補間フィルタを選択することを前記プロセッサに行わせる前記命令は、
    前記第2のフラクショナル部分によって識別される参照フラクショナルピクセル位置を識別することと、
    第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上のフラクショナルピクセル位置に関連するとき、前記第1の補間フィルタを選択することと、
    第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下のフラクショナルピクセル位置に関連するとき、前記第2の補間フィルタを選択することと
    を前記プロセッサに行わせる命令を備える、請求項43または44に記載のコンピュータ可読記憶媒体
  53. 前記リファレンスブロックの値を補間することを前記プロセッサに行わせる前記命令は、
    前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置に関連するとき、および前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置に関連するとき、前記第1の補間フィルタによって生成された値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための垂直方向寄与値を平均化することと、
    前記第1の補間フィルタが前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置がフルピクセル位置と水平方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ上のフラクショナルピクセル位置の値と、前記第1の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記垂直方向寄与値を平均化することと、
    前記第2の補間フィルタが前記参照フラクショナルピクセル位置のすぐ上の前記フラクショナルピクセル位置に関連するとき、および前記参照フラクショナルピクセル位置のすぐ下の前記フラクショナルピクセル位置が下隣接のフルピクセル位置と水平方向にコロケートされるとき、前記参照フラクショナルピクセル位置のすぐ下のフラクショナルピクセル位置の値と、前記第2の補間フィルタによって生成された値とから、前記参照フラクショナルピクセル位置のための前記垂直方向寄与値を平均化することと
    を前記プロセッサに行わせる命令を備える、請求項52に記載のコンピュータ可読記憶媒体
  54. 前記補間フィルタの各々が、前記第1の精度を有する動きベクトルによって参照され得るフラクショナルピクセル位置に関連するように、既存のアップサンプリングフィルタから補間フィルタの前記セットを生成することを前記プロセッサに行わせる命令をさらに備える、請求項43または44に記載のコンピュータ可読記憶媒体
  55. 前記クロミナンスブロックを処理することを前記プロセッサに行わせる前記命令は、前記リファレンスブロックと受信残差クロミナンス値とから前記クロミナンスブロックを再構成することを前記プロセッサに行わせる命令を備える、請求項43に記載のコンピュータ可読記憶媒体
JP2012554006A 2010-02-18 2011-02-16 動き補間のためのクロミナンス高精度動きフィルタ処理 Active JP5646654B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US30589110P 2010-02-18 2010-02-18
US61/305,891 2010-02-18
US13/011,634 2011-01-21
US13/011,634 US20110200108A1 (en) 2010-02-18 2011-01-21 Chrominance high precision motion filtering for motion interpolation
PCT/US2011/025122 WO2011103209A2 (en) 2010-02-18 2011-02-16 Chrominance high precision motion filtering for motion interpolation

Publications (2)

Publication Number Publication Date
JP2013520876A JP2013520876A (ja) 2013-06-06
JP5646654B2 true JP5646654B2 (ja) 2014-12-24

Family

ID=44369624

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012554006A Active JP5646654B2 (ja) 2010-02-18 2011-02-16 動き補間のためのクロミナンス高精度動きフィルタ処理

Country Status (7)

Country Link
US (1) US20110200108A1 (ja)
EP (1) EP2537342A2 (ja)
JP (1) JP5646654B2 (ja)
KR (2) KR20150020669A (ja)
CN (1) CN102792698B (ja)
TW (1) TWI523494B (ja)
WO (1) WO2011103209A2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105635737B (zh) 2010-04-09 2019-03-15 Lg电子株式会社 处理视频数据的方法和装置
EP4250732B1 (en) 2011-01-07 2024-03-20 Nokia Technologies Oy Motion prediction in video coding
US9313519B2 (en) 2011-03-11 2016-04-12 Google Technology Holdings LLC Interpolation filter selection using prediction unit (PU) size
US9264725B2 (en) 2011-06-24 2016-02-16 Google Inc. Selection of phase offsets for interpolation filters for motion compensation
WO2013006573A1 (en) 2011-07-01 2013-01-10 General Instrument Corporation Joint sub-pixel interpolation filter for temporal prediction
US10536701B2 (en) 2011-07-01 2020-01-14 Qualcomm Incorporated Video coding using adaptive motion vector resolution
GB2501535A (en) * 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
US9307252B2 (en) * 2012-06-04 2016-04-05 City University Of Hong Kong View synthesis distortion model for multiview depth video coding
US9338452B2 (en) * 2012-07-09 2016-05-10 Qualcomm Incorporated Motion vector difference coding extension for enhancement layer
US20140078394A1 (en) * 2012-09-17 2014-03-20 General Instrument Corporation Selective use of chroma interpolation filters in luma interpolation process
US10205962B2 (en) * 2013-03-15 2019-02-12 Raymond Zenkich System and method for non-uniform video coding
WO2014163454A1 (ko) * 2013-04-05 2014-10-09 삼성전자주식회사 휘도차를 보상하기 위한 인터 레이어 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
US9774881B2 (en) 2014-01-08 2017-09-26 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
US9883197B2 (en) * 2014-01-09 2018-01-30 Qualcomm Incorporated Intra prediction of chroma blocks using the same vector
GB201500719D0 (en) 2015-01-15 2015-03-04 Barco Nv Method for chromo reconstruction
JP2018533871A (ja) * 2015-11-11 2018-11-15 サムスン エレクトロニクス カンパニー リミテッド ビデオ復号方法及びその装置、並びにビデオ符号化方法及びその装置
US10009622B1 (en) 2015-12-15 2018-06-26 Google Llc Video coding with degradation of residuals
US10341659B2 (en) * 2016-10-05 2019-07-02 Qualcomm Incorporated Systems and methods of switching interpolation filters
KR20230033027A (ko) * 2016-11-01 2023-03-07 삼성전자주식회사 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
US20190335197A1 (en) * 2016-11-22 2019-10-31 Electronics And Telecommunications Research Institute Image encoding/decoding method and device, and recording medium having bitstream stored thereon
US20220174277A1 (en) * 2019-03-11 2022-06-02 Telefonaktiebolaget Lm Ericsson (Publ) Video coding involving gop-based temporal filtering
US11303892B2 (en) * 2020-01-23 2022-04-12 Qualcomm Incorporated Adaptive rounding for loop filters
WO2023131211A1 (en) * 2022-01-05 2023-07-13 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1193977B1 (en) * 1997-06-09 2003-08-27 Hitachi, Ltd. Image sequence coding method
US6950469B2 (en) * 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
US7305034B2 (en) * 2002-04-10 2007-12-04 Microsoft Corporation Rounding control for multi-stage interpolation
US7116831B2 (en) * 2002-04-10 2006-10-03 Microsoft Corporation Chrominance motion vector rounding
JP4144339B2 (ja) * 2002-11-29 2008-09-03 富士通株式会社 動画像符号化方法及び動画像複号化方法
US7391933B2 (en) * 2003-10-30 2008-06-24 Samsung Electronics Co., Ltd. Method and apparatus for image interpolation based on adaptive polyphase filters
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
US7505636B2 (en) * 2004-03-04 2009-03-17 Broadcom Corporation System and method for two-pass interpolation for quarter-pel motion compensation
WO2005104564A1 (ja) * 2004-04-21 2005-11-03 Matsushita Electric Industrial Co., Ltd. 動き補償装置
US8130827B2 (en) * 2004-08-13 2012-03-06 Samsung Electronics Co., Ltd. Method and apparatus for interpolating a reference pixel in an annular image and encoding/decoding an annular image
US7653132B2 (en) * 2004-12-21 2010-01-26 Stmicroelectronics, Inc. Method and system for fast implementation of subpixel interpolation
US8208564B2 (en) * 2005-06-24 2012-06-26 Ntt Docomo, Inc. Method and apparatus for video encoding and decoding using adaptive interpolation
CN1794821A (zh) * 2006-01-11 2006-06-28 浙江大学 可分级视频压缩中插值的方法与装置
KR101354659B1 (ko) * 2006-11-08 2014-01-28 삼성전자주식회사 멀티 코덱을 지원하는 움직임 보상 방법 및 장치
US8804831B2 (en) * 2008-04-10 2014-08-12 Qualcomm Incorporated Offsets at sub-pixel resolution
CN101527847B (zh) * 2009-01-04 2012-01-04 炬力集成电路设计有限公司 运动补偿插值装置和方法

Also Published As

Publication number Publication date
TW201204045A (en) 2012-01-16
WO2011103209A3 (en) 2012-09-13
KR20150020669A (ko) 2015-02-26
US20110200108A1 (en) 2011-08-18
KR20120128691A (ko) 2012-11-27
TWI523494B (zh) 2016-02-21
EP2537342A2 (en) 2012-12-26
CN102792698A (zh) 2012-11-21
CN102792698B (zh) 2016-09-14
WO2011103209A2 (en) 2011-08-25
JP2013520876A (ja) 2013-06-06

Similar Documents

Publication Publication Date Title
JP5646654B2 (ja) 動き補間のためのクロミナンス高精度動きフィルタ処理
US20200252638A1 (en) Method for encoding/decoding block information using quad tree, and device for using same
US11277637B2 (en) Reference sampling for matrix intra prediction mode
JP6042470B2 (ja) ビデオコーディングのための適応動き解像度
JP5823526B2 (ja) ビデオ符号化のための適応動きベクトル解像度信号伝達
TWI705698B (zh) 適應性跨組件殘差預測
JP6542225B2 (ja) イントラブロックコピーのための残差予測
US10531116B2 (en) Adaptive motion vector resolution signaling for video coding
TWI821324B (zh) 結合模式相依內平滑濾波與內插濾波器內切換
JP5960309B2 (ja) マッピングされた変換と走査モードとを使用するビデオコード化
JP2017513342A (ja) ゼロアウトされた係数を使用した低複雑な順変換のためのシステムおよび方法
TW202038611A (zh) 用於視訊寫碼之三角運動資訊
JP2014209743A (ja) 幾何学的動き区分のための固定小数点実装形態
JP7423647B2 (ja) 異なるクロマフォーマットを使用した三角予測ユニットモードでのビデオコーディング
US9219921B2 (en) Mixed tap filters
JP2013543315A (ja) ビデオコード化のためのイントラ平滑化フィルタ
TW202007148A (zh) 具有位置依賴之內部預測組合(pdpc)之合併模式依賴的內部平化(mdis)及內部插值濾波器切換
CN113728629A (zh) 视频译码中的运动向量推导
JP2014525180A (ja) Vlcコードワードを使用したシンタックス要素のコーディング
KR20230145063A (ko) 비디오 코딩에서의 인트라-예측을 위한 레퍼런스 픽셀들의업샘플링
KR20230117570A (ko) 비디오 코딩을 위한 루마 예측으로부터의 크로마
US11317122B2 (en) Filters for motion compensation interpolation with reference down-sampling

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140210

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141105

R150 Certificate of patent or registration of utility model

Ref document number: 5646654

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250