JP2014502822A - 適応タップサイズをもつ低複雑度補間フィルタ処理 - Google Patents

適応タップサイズをもつ低複雑度補間フィルタ処理 Download PDF

Info

Publication number
JP2014502822A
JP2014502822A JP2013548486A JP2013548486A JP2014502822A JP 2014502822 A JP2014502822 A JP 2014502822A JP 2013548486 A JP2013548486 A JP 2013548486A JP 2013548486 A JP2013548486 A JP 2013548486A JP 2014502822 A JP2014502822 A JP 2014502822A
Authority
JP
Japan
Prior art keywords
block
filter
coefficients
pixels
dimensional array
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013548486A
Other languages
English (en)
Other versions
JP5805787B2 (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 JP2014502822A publication Critical patent/JP2014502822A/ja
Application granted granted Critical
Publication of JP5805787B2 publication Critical patent/JP5805787B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/177Methods 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 group of pictures [GOP]
    • 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/179Methods 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 scene or a shot
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods 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 bits, e.g. of the compressed video stream
    • 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/188Methods 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 video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • 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/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Landscapes

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

Abstract

ビデオコーディングの予測段階中に、ビデオコーダは、ブロックに関連する走査順序に対して平行に配置されたビデオデータの参照ブロックの参照整数ピクセルの値を使用して予測サブピクセル値を生成するために比較的より長い補間フィルタを使用し得、走査順序に対して直角に配置されたブロックの参照整数ピクセルの値を使用して予測サブピクセル値を生成するために比較的より短い補間フィルタを使用し得、より長い補間フィルタは、概して、比較的より多いフィルタ係数、または「タップ」をもつフィルタを指し、より短いフィルタは、概して、比較的より少ないタップをもつフィルタを指す。

Description

本出願は、その内容全体が参照により本明細書に組み込まれる、2011年1月5日に出願された米国仮出願第61/430,101号の利益を主張する。
本開示は、デジタルビデオ符号化および復号に関し、より詳細には、ビデオ符号化および復号プロセスにおいて使用される予測データを生成するために適用されるフィルタ処理技法に関する。
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4,Part10,Advanced Video Coding(AVC)、現在開発中の高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的(イントラピクチャ)予測および/または時間的(インターピクチャ)予測を実行する。ブロックベースのビデオコーディングの場合、ビデオスライス(すなわち、ビデオフレームまたはビデオフレームの一部分)が、ツリーブロック、コーディングユニット(CU)および/またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化(I)スライス中のビデオブロックは、同じピクチャ中の近隣ブロックにおける参照サンプルに関する空間的予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライス中のビデオブロックは、同じピクチャ中の近隣ブロックにおける参照サンプルに関する空間的予測、または他の参照ピクチャ中の参照サンプルに関する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
空間的予測または時間的予測は、コーディングされるべきブロックについての予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コード化ブロックと予測ブロックとの間の差を示す残差データとに従って符号化され得る。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され得、次いで量子化され得る残差変換係数を生じる。最初に2次元アレイに構成された量子化変換係数は、変換係数の1次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するためにエントロピーコーディングが適用され得る。
ビデオデータのブロックのインター予測コーディングにおいて達成され得る圧縮のレベルを改善するために補間フィルタ処理技法が開発された。これらの技法によれば、コーディングされているビデオデータの特定のブロックについての動き補償中に生成される予測データ、たとえば、予測ブロックは、ブロックについての動き推定において使用された参照ビデオフレーム、または別の参照コード化ユニットのビデオデータの参照ブロックのピクセルの値を補間することによって生成され得る。補間フィルタ処理、または単に「補間」は、予測ブロックを定義する予測ハーフピクセル(たとえば、「ハーフペル」)値とクォーターピクセル(たとえば、「クォーターペル」)値とを生成するためにしばしば実行される。ハーフペル値およびクォーターペル値は、参照ブロック内のサブピクセル位置に対応する。分数動きベクトルは、ビデオシーケンス中の分数移動をキャプチャするために、そのようなサブピクセル解像度で参照ブロック内の予測ブロックを識別し、それによって、元の参照ブロック、すなわち整数ピクセル解像度での参照ブロックよりもコーディングされているブロックに類似する予測ブロックを与えるために使用され得る。
概して、本開示では、ビデオコーディングプロセスの予測段階中にビデオコーディングシステムによって実行される補間フィルタ処理技法について説明する。説明する技法は、いくつかの事例では、望ましいビデオ圧縮および再構成ビデオ品質を依然として与えながら、ビデオコーディングシステムの複雑さを低減し、ビデオデータのブロックについての予測データを生成するときにシステムによって実行されるメモリアクセスの数を低減する。本開示には、参照ブロックに関連する走査順序に対して平行に配置されたビデオデータの参照ブロックの参照整数ピクセルの値を使用するときに予測サブピクセル値を生成するための比較的より長い(すなわち、より多いフィルタ係数または「タップ」を含む)補間フィルタと、走査順序に対して直角に配置された参照ブロックの参照整数ピクセルの値を使用するときに予測サブピクセル値を生成するための比較的より短い(すなわち、より少ないタップを含む)補間フィルタとの使用とを含むいくつかの態様がある。
一例では、ビデオデータのブロックをコーディングする方法は、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得することと、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算することとを含む。サブピクセル値を計算することは、ブロック内のフィルタサポート位置の第1のセットに対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって、第1のサブピクセル値を計算することと、ブロック内のフィルタサポート位置の第2のセットに対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することによって、第2のサブピクセル値を計算することとを含み、第1の1次元アレイは、ブロックに関連する走査順序に基づいて第2の1次元アレイよりも多いフィルタ係数を備えるように選択される。本方法は、計算されたサブピクセル値のうちの1つまたは複数に基づいてピクセルの予測ブロックを生成することをさらに含む。
別の例では、ビデオデータのブロックをコーディングするための装置は、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得し、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算するように構成されたビデオコーダを含む。サブピクセル値を計算するために、ビデオコーダは、ブロック内のフィルタサポート位置の第1のセットに対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって、第1のサブピクセル値を計算することと、ブロック内のフィルタサポート位置の第2のセットに対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することによって、第2のサブピクセル値を計算することとを行うように構成される。第1の1次元アレイは、ブロックに関連する走査順序に基づいて第2の1次元アレイよりも多いフィルタ係数を備えるように選択される。ビデオコーダは、計算されたサブピクセル値のうちの1つまたは複数に基づいてピクセルの予測ブロックを生成するようにさらに構成される。
別の例では、ビデオデータのブロックをコーディングするためのデバイスは、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得するための手段と、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算するための手段とを含む。サブピクセル値を計算するための手段は、ブロック内のフィルタサポート位置の第1のセットに対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって、第1のサブピクセル値を計算するための手段と、ブロック内のフィルタサポート位置の第2のセットに対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することによって、第2のサブピクセル値を計算するための手段とを含み、第1の1次元アレイは、ブロックに関連する走査順序に基づいて第2の1次元アレイよりも多いフィルタ係数を備えるように選択される。本デバイスは、計算されたサブピクセル値のうちの1つまたは複数に基づいてピクセルの予測ブロックを生成するための手段をさらに含む。
本開示で説明する技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装され得る。ハードウェアで実装する場合、装置は、集積回路、プロセッサ、ディスクリート論理、またはそれらの任意の組合せとして実現され得る。ソフトウェアで実装した場合、ソフトウェアは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、またはデジタル信号プロセッサ(DSP)など、1つまたは複数のプロセッサにおいて実行され得る。本技法を実行するソフトウェアは、最初に有形コンピュータ可読媒体に記憶され、プロセッサにロードされ、実行され得る。
したがって、本開示はまた、実行されたとき、プロセッサにビデオデータのブロックをコーディングさせる命令を含むコンピュータ可読記憶媒体を企図し、命令は、プロセッサに、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得することと、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算することとを行わせる。プロセッサにサブピクセル値を計算させる命令は、ブロック内のフィルタサポート位置の第1のセットに対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって、第1のサブピクセル値を計算させることと、ブロック内のフィルタサポート位置の第2のセットに対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することによって、第2のサブピクセル値を計算することとをプロセッサに行わせる命令を含み、第1の1次元アレイは、ブロックに関連する走査順序に基づいて第2の1次元アレイよりも多いフィルタ係数を備えるように選択される。命令はさらに、プロセッサに、計算されたサブピクセル値のうちの1つまたは複数に基づいてピクセルの予測ブロックを生成させる。
1つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
本開示の技法に一致する、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックをコーディングするための技法を実装し得るビデオ符号化および復号システムの例を示すブロック図。 本開示の技法に一致する、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックをコーディングするための技法を実装し得るビデオエンコーダの例を示すブロック図。 本開示の技法に一致する、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックを復号するための技法を実装し得るビデオデコーダの例を示すブロック図。 ビデオデータのブロックについて、参照データに関連する参照整数ピクセルと、補間予測データに関連する予測サブピクセルとを示す概念図。 ビデオデータのブロックについて、参照データに関連する参照整数ピクセルと、補間予測データに関連する水平および垂直「1L」予測サブピクセルとを示す概念図。 ビデオデータのブロックについて、参照データに関連する参照整数ピクセルと、補間予測データに関連する非水平および非垂直「2L」予測サブピクセルとを示す概念図。 係数対称性をもつ8タップ補間フィルタと、サブピクセル位置に対する対応する水平フィルタサポート位置とを示す概念図。 係数対称性をもたない8タップ補間フィルタと、サブピクセル位置に対する対応する水平フィルタサポート位置とを示す概念図。 係数対称性をもつ6タップ補間フィルタと、サブピクセル位置に対する対応する垂直フィルタサポート位置とを示す概念図。 係数対称性をもたない6タップ補間フィルタと、サブピクセル位置に対する対応する垂直フィルタサポート位置とを示す概念図。 本開示の技法に一致する、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックを符号化する方法の例を示す流れ図。 本開示の技法に一致する、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックを復号する方法の例を示す流れ図。
本開示では、概して、ビデオコーディングプロセスの予測段階中にビデオコーディングシステムによって実行される補間フィルタ処理技法について説明する。説明する技法は、望ましいビデオ圧縮および再構成ビデオ品質を与えながら、ビデオコーディングシステムの複雑さを低減し、ビデオデータのブロックについての予測データを生成するときにシステムによって実行されるメモリアクセスの数を低減する。本開示には、参照ブロックに関連する走査順序に対して平行に配置されたビデオデータの参照ブロックの参照整数ピクセルの値を使用するときに予測サブピクセル値を生成するための比較的より長い(すなわち、より多いフィルタ係数または「タップ」を含む)補間フィルタの使用と、走査順序に対して直角に配置された参照ブロックの参照整数ピクセルの値を使用するときに予測サブピクセル値を生成するための比較的より短い(すなわち、より少ないタップを含む)補間フィルタとの使用を含むいくつかの態様がある。
本開示では、「コーディング」という用語は、エンコーダにおいて生じる符号化またはデコーダにおいて生じる復号を指す。同様に、コーダという用語は、エンコーダ、デコーダ、または複合エンコーダ/デコーダ(コーデック)を指す。いくつかの事例では、ビデオエンコーダは、ビデオを復号するための能力を含み得る。コーダ、エンコーダ、デコーダおよびコーデックという用語はすべて、本開示に一致するビデオデータのコーディング(符号化および/または復号)のために設計された特定の機械を指す。
概して、ビデオデータのコード化ブロックについての予測データを生成する目的で補間フィルタを設計するとき、比較的より長い補間フィルタ、すなわち、比較的より多いフィルタ係数を備える補間フィルタ(たとえば、6つのタップの代わりに、8つのフィルタ係数または「タップ」をもつフィルタ)を使用することが望ましいことがある。特定の補間フィルタの各フィルタ係数は、ビデオデータの参照ブロックの、フィルタサポート位置とも呼ばれる参照整数ピクセルに対応し得る。したがって、補間フィルタの(たとえば、値として表される)各フィルタ係数は、補間フィルタについてのフィルタサポート位置として働く参照ブロックのそれのそれぞれの参照整数ピクセルの値に関連し得る。したがって、ビデオデータのコード化ブロックについての予測サブピクセル値を生成するためにより多いフィルタ係数をもつより長い補間フィルタを使用すると、比較的より多い参照整数ピクセル値を使用することになり得る。このようにしてより長い補間フィルタを使用すると、コード化ブロックについてのより良い予測データ、すなわち、コード化ブロックとより類似した予測データを生成することになり得る。ブロックについてのより良い予測データは、より良い再構成ビデオ品質を生じ得、ブロックについてのより少ない残差データを生成することになり得、したがって、コード化ブロックの圧縮を改善し得る。
しかしながら、上記で説明したようにより長い補間フィルタを使用すると、補間フィルタを使用するビデオコーディングシステムのより大きい複雑さを生じ得る。たとえば、より長い補間フィルタは比較的より多いフィルタ係数を備えるので、補間フィルタを使用する予測サブピクセル値の計算はより複雑であり得る。たとえば、コーディングプロセスは、より多い入力(たとえば、参照整数ピクセルの値)、項(たとえば、参照整数ピクセルの値によって乗算されるフィルタ係数の値)、および/または演算(たとえば、より多い乗算および加算)を必要とし得る。さらに、より長い補間フィルタは、前に説明したように比較的より多いフィルタ係数を備えるので、予測サブピクセル値を計算するために参照整数ピクセル値を取り出すために必要なメモリアクセスの数も増大し、場合によってはビデオコーディングシステムの全体的な性能に悪影響を及ぼし得る。
さらに、場合によっては、ビデオデータの参照ブロックの参照整数ピクセル値は、参照ブロックに関連する走査順序に従ってシステムメモリ(たとえば、キャッシュまたはバッファメモリ)に記憶され得る。たとえば、参照ブロックに関連する走査順序は、ビデオコーディングシステム内のビデオデータの様々なタイプのブロック(たとえば、参照ブロックおよび予測ブロック)についての整数ピクセル値とサブピクセル値とを記憶するために使用される走査順序に対応し得る。これらの場合、走査順序に従って配置された(たとえば、ラスタ走査順序について参照ブロック内で水平方向の)参照ブロックの隣接する参照整数ピクセルの値をシステムメモリから取り出すには、走査順序に従って配置されていない(たとえば、ラスタ走査順序について参照ブロック内で垂直方向に配置された)参照ブロックの隣接する参照整数ピクセルの値を取り出すよりも少ないメモリアクセス(すなわち「読取り」サイクル)を必要とし得る。たとえば、各参照整数ピクセル値が8ビットコードワードを使用して表される、32ビットデータバスを含むビデオコーディングシステムの場合、走査順序に従って配置された、たとえば走査順序に対して並行である、4つの隣接する参照整数ピクセルの値は、単一の読取りサイクルを使用してシステムメモリから取り出され得る。一方、同じビデオコーディングシステムの場合、走査順序に従って配置されていない、たとえば、走査順序に対して直角な4つの隣接する参照整数ピクセルの値は、4つもの別個の読取りサイクルを使用してシステムメモリから取り出され得、参照整数ピクセル値の各々は、別個の読取りサイクルを使用して取り出される。
本開示では、「走査順序に対して平行な」および「走査順序に対して直角な」という句は、概して、補間フィルタが水平フィルタサポート位置を使用するのか、垂直フィルタサポート位置を使用するのかを識別するために使用される。「水平フィルタサポート位置」は、概して、ビデオデータの参照ブロック内のピクセルデータの共通の行中にあるフィルタサポート位置のセットを指す。「垂直フィルタサポート位置」は、概して、ピクセルデータの共通の列中にあるフィルタサポート位置のセットを指す。走査順序に応じて、「走査順序に対して平行な」という句は、水平フィルタサポート位置または垂直フィルタサポート位置のいずれかに対応することができる。同様に、走査順序に応じて、「走査順序に対して直角な」という句は、水平フィルタサポート位置または垂直フィルタサポート位置のいずれかに対応することができる。一例として、水平(すなわち、1行ずつの)走査順序に言及するとき、「走査順序に対して平行な」という句は水平フィルタサポート位置を指すことができ、「走査順序に対して直角な」という用語は垂直フィルタサポート位置を指すことができる。典型的なラスタ走査順序(すなわち、左から右に、上から下に)は、水平、または1行ずつの走査順序の例である。別の例として、垂直(すなわち、1列ずつの)走査順序に言及するとき、「走査順序に対して平行な」という句は垂直フィルタサポート位置を指すことができ、「走査順序に対して直角な」という句は水平フィルタサポート位置を指すことができる。回転ラスタ走査順序は、垂直、または列ごとの走査順序の例である。さらに、本開示では、「走査順序に従って配置された」という句は、概して、走査順序に対して平行であることを意味するために使用され得、「走査順序に従って配置されていない」という句は、概して、走査順序に対して直角であることを意味するために使用され得る。
上記で説明したように、より長い補間フィルタは比較的より多いフィルタ係数を備えるので、フィルタを使用して予測サブピクセル値を計算するために参照整数ピクセル値を取り出すために必要なメモリアクセスの数は増加し得る。この増加は、参照ブロックに関連する走査順序に対する参照整数ピクセルの位置に依存し得る。したがって、メモリアクセスの数は、走査順序に対する参照ブロック内の(参照整数ピクセルに対応する)特定の補間フィルタに関連するフィルタサポート位置の配向に応じて増加し得る。たとえば、参照整数ピクセルの値を取り出すために必要なメモリアクセスの数は、走査順序に対して直角に構成された参照整数ピクセルの所与の数の値を取り出すときのほうが、走査順序に対して平行に構成された参照整数ピクセルの同数の値を取り出すときよりも多くなり得る。すなわち、メモリアクセスの数は、特定の補間フィルタに関連するフィルタサポート位置が走査順序に対して直角に構成されたときのほうが、同じフィルタサポート位置が走査順序に対して平行に構成されたときよりも多くなり得る。
複雑さの望ましくない増加または上記で説明したメモリアクセスの数における増加なしにより長い補間フィルタの恩恵を潜在的に取得するために、本開示の技法は、特定の補間フィルタに関連するフィルタサポート位置が走査順序に対して平行に構成されたか、走査順序に対して直角に構成されたかに応じて、適応的な比較的より長い補間フィルタと比較的より短い補間フィルタとの混合の使用を含む。たとえば、走査順序に対して平行に配置されたビデオデータの参照ブロックの参照整数ピクセルの値を使用して予測サブピクセル値が生成されるべきである場合は、より長い補間フィルタが使用され得る。しかしながら、走査順序に対して直角に配置された参照ブロックの参照整数ピクセルの値を使用して予測サブピクセル値が生成されるべきである場合は、より短い補間フィルタが使用され得る。
この例では、この場合も、参照ブロックに関連する走査順序は、ビデオコーディングシステム内のビデオデータの様々なタイプのブロックについての整数ピクセルおよびサブピクセル値を記憶するために使用される走査順序に対応し得る。したがって、必要とされるメモリアクセス、または読取りサイクルは、走査順序に対して平行に配置された参照ブロックの隣接する参照整数ピクセルの値を取り出すほうが、走査順序に対して直角に配置された参照ブロックの隣接する参照整数ピクセルの値を取り出すよりも少なくなり得る。したがって、ビデオコーディングシステムの複雑さは、場合によっては、予測サブピクセル値を生成するために、より少ないフィルタ係数を備える補間フィルタ、したがってより少ない対応する参照整数ピクセル値を使用することによって低減され得る。さらに、ビデオコーディングシステムによって実行されるメモリアクセスの数は、場合によっては、予測サブピクセル値を生成するために、ビデオコーディングシステムメモリからより少ない参照整数ピクセルの値を取り出すことによって、あるいはより少ないメモリアクセスまたは読取りサイクルを使用して参照整数ピクセルの値を取り出すことによって低減され得る。その結果、本開示の技法は、限られたリソース(たとえば、ハードウェアおよび/またはソフトウェアリソース)を有するセルラー電話、PDAなどのビデオコーディングシステムにとって特に利益であり得る。
本開示で使用する「より長い」および「より短い」という用語は、概して、相対語であるものとする。たとえば、より長い補間フィルタは、より短い補間フィルタよりも多いフィルタ係数を含むと見なされ得る。同様に、より短い補間フィルタは、より長い補間フィルタよりも少ないフィルタ係数を含むと見なされ得る。しかしながら、「より長い」および「より短い」という用語は、特定の補間フィルタについてのフィルタ係数の最大数または最小数のようなものを表すものではない。例として示されるように、本開示の技法は、多数の形状およびサイズの補間フィルタに適合する。
本開示の他の態様は、特定の補間フィルタ内に含まれるいくつかのフィルタ係数のうちの1つまたは複数と、フィルタ係数の各々の値とを搬送するためにビットストリーム中の情報を符号化するための技法を含む。本開示のこれらおよび他の態様は以下の説明から明らかになろう。したがって、本開示の技法は、コーディングされているビデオデータの1つまたは複数のブロックについての予測データを生成するとき、適応タップサイズをもつ低複雑度補間フィルタを使用することを可能にし得る。
図1は、本開示の技法に一致する、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックをコーディングするための技法を実装し得るビデオ符号化および復号システム10の例を示すブロック図である。図1に示すように、システム10は、通信チャネル16を介して符号化ビデオを宛先デバイス14に送信するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、広範囲のデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレスハンドセット、いわゆるセルラー無線電話または衛星無線電話などのワイヤレス通信デバイスを備えるか、または、通信チャネル16を介してビデオ情報を通信することができる任意のワイヤレスデバイスを備え得、後者の場合、通信チャネル16はワイヤレスである。
ただし、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックをコーディングすることに関係する本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。これらの技法は、概して、オーバージエアテレビジョン放送と、ケーブルテレビジョン伝送と、衛星テレビジョン伝送と、ストリーミングインターネットビデオ伝送と、記憶媒体上に符号化され、または記憶媒体から取り出され、復号される符号化デジタルビデオとを含む、符号化または復号が実行される任意のシナリオ、または他のシナリオに適用され得る。したがって、通信チャネル16は必要とされず、本開示の技法は、たとえば、符号化デバイスと復号デバイスとの間のデータ通信なしで、符号化が適用される設定または復号が適用される設定に適用され得る。
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、変調器/復調器(モデム)22と、送信機24とを含む。宛先デバイス14は、受信機26と、モデム28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のビデオエンコーダ20および/または宛先デバイス14のビデオデコーダ30は、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックをコーディングするための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは他の構成要素または構成を含み得る。たとえば、ソースデバイス12は、外部カメラなど、外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイス14は、一体型ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
図1の図示されたシステム10は一例にすぎない。適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックをコーディングするための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。概して、本開示の技法はビデオ符号化デバイスによって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。さらに、本開示の技法は、ビデオプリプロセッサによっても実行され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が宛先デバイス14に送信するためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、またはビデオテレフォニーのためのビデオデバイス12とビデオデバイス14との間の一方向または双方向のビデオ送信をサポートし得る。
ソースデバイス12のビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからのビデオフィードを含み得る。さらなる代替として、ビデオソース18は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、上述のように、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤードアプリケーションに適用され得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオはビデオエンコーダ20によって符号化され得る。符号化されたビデオ情報は、次いで、通信規格に従ってモデム22によって変調され、送信機24を介して宛先デバイス14に送信され得る。モデム22は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機24は、増幅器、フィルタ、および1つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
宛先デバイス14の受信機26はチャネル16を介して情報を受信し、モデム28はその情報を復調する。この場合も、上記で説明したビデオ符号化プロセスは、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックをコーディングするための本明細書で説明する技法のうちの1つまたは複数を実装し得る。チャネル16を介して通信される情報は、ビデオデータのブロック(たとえば、マクロブロック、またはコーディングユニット)の特性および/または処理を記述するシンタックス要素、たとえば、ブロックについての予測データを識別する動きベクトルデータを含む、同じくビデオデコーダ30によって使用される、ビデオエンコーダ20によって定義されるシンタックス情報と、他の情報とを含み得る。ディスプレイデバイス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、および現在開発中の高効率ビデオコーディング(HEVC)規格がある。概して、本開示の技法について、HEVCに関して説明するが、これらの技法は、同様に他のビデオコーディング規格と併せて使用され得ることを理解されたい。図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、また、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダおよびデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合エンコーダ/デコーダ(コーデック)の一部としてそれぞれのカメラ、コンピュータ、モバイルデバイス、加入者デバイス、ブロードキャストデバイス、セットトップボックス、サーバなどに統合され得る。
ビデオシーケンスは、一般に一連のビデオフレームを含む。ピクチャのグループ(GOP)は、概して、一連の1つまたは複数のビデオフレームを備える。GOPは、GOP中に含まれるいくつかのフレームを記述するシンタックスデータを、GOPのヘッダ中、GOPの1つまたは複数のフレームのヘッダ中、または他の場所に含み得る。各フレームは、それぞれのフレームについての符号化モードを記述するフレームシンタックスデータを含み得る。ビデオエンコーダ、たとえば、ビデオエンコーダ20は、一般に、ビデオデータを符号化するために個々のビデオフレーム内のビデオブロックに対して動作する。ITU−T H.264規格によれば、ビデオブロックは、マクロブロックまたはマクロブロックのパーティションに対応し得る。他の規格、たとえば、以下でさらに詳細に説明するHEVCによれば、ビデオブロックは、コーディングユニット(たとえば、最大コーディングユニット)、またはコーディングユニットのパーティションに対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有し得、指定のコーディング規格に応じてサイズが異なり得る。各ビデオフレームは、複数のスライス、すなわち、ビデオフレームの部分を含み得る。各スライスは複数のビデオブロックを含み得、ビデオブロックは、サブブロックとも呼ばれるパーティションに構成され得る。
指定のコーディング規格に応じて、ビデオブロックは、16×16、8×8、4×4、2×2など、様々な「N×N」サブブロックサイズに区分され得る。本開示では、「N×N(NxN)」および「N×N(N by N)」は、垂直寸法および水平寸法に関するブロックのピクセル寸法、たとえば、16×16(16x16)ピクセルまたは16×16(16 by 16)ピクセルを指すために互換的に使用され得る。一般に、16×16ブロックは、垂直方向に16ピクセルを有し(y=16)、水平方向に16ピクセルを有する(x=16)。同様に、N×Nブロックは、概して、垂直方向にNピクセルを有し、水平方向にNピクセルを有し、Nは、非負整数値を表す。ブロック中のピクセルは行と列に構成され得る。さらに、ブロックは、必ずしも、水平方向に垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックは、N×Mピクセルを備え得、Mは必ずしもNに等しいとは限らない。一例として、ITU−T H.264規格では、サイズが16×16ピクセルであるブロックはマクロブロックと呼ばれることがあり、16×16ピクセルよりも小さいブロックは、16×16マクロブロックのパーティションと呼ばれることがある。他の規格、たとえば、HEVCでは、ブロックは、より一般的にそれらのサイズに関して、たとえば、各々が固定サイズではなく可変サイズを有する、コーディングユニットおよびそれのパーティションとして定義され得る。
ビデオブロックは、ピクセル領域中のピクセルデータのブロックを備え得、あるいは、たとえば、所与のビデオブロックについての残差データへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換などの変換の適用後の、変換領域中の変換係数のブロックを備え得、残差データは、ブロックについてのビデオデータと、ブロックについて生成された予測データとの間のピクセル差分を表す。場合によっては、ビデオブロックは、変換領域中に量子化変換係数のブロックを備え得、所与のビデオブロックについての残差データへの変換の適用後に、得られた変換係数も量子化される。
ブロック区分は、ブロックベースビデオコーディング技法における重要な目的を果たす。ビデオデータをコーディングするためにより小さいブロックを使用すると、高い詳細レベルを含むビデオフレームのロケーションについてのデータの予測が向上し得、したがって、残差データとして表される、生じる誤差(すなわち、ソースビデオデータからの予測データの偏差)が低減され得る。しかしながら、残差データを潜在的に低減する一方で、そのような技法は、より小さいブロックがビデオフレームに対してどのように区分されるかを示す追加のシンタックス情報を必要とすることがあり、その結果、コード化ビデオビットレートが増加することがある。したがって、いくつかの技法では、ブロック区分は、残差データの望ましい低減と、追加のシンタックス情報に起因するコード化ビデオデータのビットレートの生じた増加とのバランスをとることに依存し得る。
概して、ブロックおよびそれの様々なパーティション(すなわち、サブブロック)は、ビデオブロックと見なされ得る。さらに、スライスは、複数のビデオブロック(たとえば、マクロブロック、またはコーディングユニット)、および/またはサブブロック(マクロブロックのパーティション、またはサブコーディングユニット)であると見なされ得る。各スライスは、「コード化ユニット」と呼ばれることがある、ビデオフレームの単独で復号可能なユニットであり得る。代替的に、フレーム自体が単独で復号可能な単位であり得るか、またはフレームの他の部分が単独で復号可能な単位として定義され得る。さらに、シーケンスとも呼ばれるGOPは、単独で復号可能なユニットとして定義され得る。
高効率ビデオコーディング(HEVC)と現在呼ばれる、新しいビデオコーディング規格を開発するための取り組みが現在進行中である。新生のHEVC規格はH.265と呼ばれることもある。規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスのモデルに基づく。HMは、たとえば、ITU−T H.264/AVCによるデバイスに勝るビデオコーディングデバイスのいくつかの能力を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを与えるが、HMは、たとえば、イントラ予測コーディングされるブロックのサイズに基づいて、35個ものイントラ予測符号化モードを与える。
HMでは、ビデオデータのブロックをコーディングユニット(CU)と呼ぶ。CUは、圧縮のために様々なコーディングツールがそれに適用される基本ユニットとして働く矩形画像領域を指し得る。H.264では、それはマクロブロックとも呼ばれ得る。ビットストリーム内のシンタックスデータは、ピクセルの数に関する最大コーディングユニット(LCU)である最大CUを規定し得る。概して、CUは、CUがサイズの差異を有しないことを除いて、H.264のマクロブロックと同様の目的を有する。したがって、CUは、サブCUに区分、または「分割」され得る。
LCUは、LCUがどのように区分されるかを示す4分木データ構造に関連し得る。概して、4分木データ構造はLCUのCUごとに1つのノードを含み、ルートノードはLCUに対応し、他のノードはLCUのサブCUに対応する。所定のCUが4つのサブCUに分割された場合、分割されたCUに対応する4分木中のノードは4つの子ノードを含み、子ノードの各々はサブCUのうちの1つに対応する。4分木データ構造の各ノードは、対応するCUについてのシンタックス情報を与え得る。たとえば、4分木中のノードは、ノードに対応するCUが4つのサブCUに分割されるかどうかを示す、CUについての分割フラグを含み得る。所与のCUについてのシンタックス情報は、再帰的に定義され得、CUがサブCUに分割されるかどうかに依存し得る。
分割されないCU(すなわち、所与の4分木中の終端、または「リーフ」ノードに対応するCU)は、1つまたは複数の予測ユニット(PU)を含み得る。概して、PUは、対応するCUの全部または一部分を表し、CUについての予測を実行するためにそのPUについての参照サンプルを取り出すためのデータを含む。たとえば、CUがイントラモード符号化されるとき、PUは、PUについてのイントラ予測モードを記述するデータを含み得る。別の例として、CUがインターモード符号化されるとき、PUは、PUについての動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、1/4ピクセル、もしくは「クォーターペル」精度、または1/8ピクセル、もしくは「1/8ペル」精度)、動きベクトルが指す参照フレーム、および/または動きベクトルの参照リスト(たとえば、リスト0またはリスト1)を記述し得る。CUの1つまたは複数のPUを定義するCUについてのデータはまた、たとえば、CUを1つまたは複数のPUに区分することを記述し得る。区分モードは、CUがコーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかの間で異なり得る。
1つまたは複数のPUを有するCUは、1つまたは複数の変換ユニット(TU)をも含み得る。上記で説明したように、1つまたは複数のPUを使用したCUについての予測の後に、ビデオエンコーダは、1つまたは複数のPUに対応するCUのそれぞれの部分についての1つまたは複数の残差ブロックを計算し得る。残差ブロックは、CUについてのビデオデータと1つまたは複数のPUについての予測データとの間のピクセル差分を表し得る。残差値のセットは、量子化変換係数のセットを定義するために、変換され、走査され、量子化され得る。TUは、CUに関して上記で説明した4分木データ構造と実質的に同様である、変換係数についてのパーティション情報を示すパーティションデータ構造を定義し得る。TUは、必ずしもPUのサイズに制限されるとは限らない。したがって、TUは、同じCUについての対応するPUよりも大きいことも小さいこともある。いくつかの例では、TUの最大サイズは、対応するCUのサイズに対応し得る。一例では、CUに対応する残差サンプルは、「残差4分木」(RQT:residual quad tree)として知られる4分木構造を使用して、より小さいユニットに再分割され得る。この場合、RQTのリーフノードはTUと呼ばれることがあり、対応する残差サンプルは変換され、量子化され得る。
予測データと残差データとを生成するためのイントラ予測コーディングまたはインター予測コーディングの後、および変換係数を生成するための(H.264/AVCで使用される4×4または8×8整数変換、あるいは離散コサイン変換DCTなどの)任意の変換の後、変換係数の量子化が実行され得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にnビット値がmビット値に切り捨てられ得、nはmよりも大きい。
量子化の後、量子化データ(すなわち、量子化変換係数)のエントロピーコーディングが実行され得る。エントロピーコーディングは、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、確率区間区分エントロピーコーディング(PIPE:probability interval partitioning entropy coding)、または別のエントロピーコーディング方法など、いくつかのエントロピーコーディング技法のいずれかに準拠し得る。たとえば、量子化変換係数についての絶対値および対応する符号として表される、係数値(たとえば、「+1」または「−1」)は、エントロピーコーディング技法を使用して符号化され得る。
上記で説明した予測、変換、および量子化は、指定されたコーディング規格に応じて、ビデオデータの任意のブロックについて、たとえば、CUのPUおよび/またはTUに対して、またはマクロブロックに対して実行され得ることに留意されたい。適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックをコーディングすることに関係する、本開示の技法は、マクロブロック、またはCUのTUを含む、ビデオデータの任意のブロック、たとえば、量子化変換係数の任意のブロックに適用され得る。さらに、ビデオデータのブロック(たとえば、マクロブロック、またはCUのTU)は、対応するビデオデータのルミナンス成分(Y)と第1のクロミナンス成分(U)と第2のクロミナンス成分(V)との各々を含み得る。したがって、本開示の技法は、ビデオデータの所与のブロックのY成分とU成分とV成分との各々について実行され得る。
前に説明したように、より長い補間フィルタ、すなわち、より多いフィルタ係数を備える補間フィルタは、より短い補間フィルタと比較して、ビデオデータのコード化ブロックについてより良い予測データを生成し得る。より長い補間フィルタは、より短い補間フィルタを使用して生成された予測ブロックよりも、より類似する予測ブロック、またはコード化ブロックにより厳密に一致する予測ブロックを生成し得る。しかしながら、前に説明したように、コード化ブロックについての予測データを生成するためにより長い補間フィルタを使用すると、複雑さが増加し得、より多数のメモリアクセスが必要とされ得る。
本開示では、より低い複雑さを有し、他のシステムと比較してより少ないメモリアクセスを必要とするコーディングシステムを使用するビデオデータのブロックのコーディングを可能にし得る技法について説明する。一例として、参照ブロックに関連する走査順序に従って配置された(すなわち、走査順序に対して平行である)ビデオデータの参照ブロックの参照整数ピクセルの値を使用して予測サブピクセル値を生成するとき、より長い補間フィルタを使用することによって、および走査順序に従って配置されていない(すなわち、走査順序に対して直角に配置された)参照ブロックの参照整数ピクセルの値を使用して予測サブピクセル値を生成するとき、より短い補間フィルタを使用することによって、コーディングシステムの複雑さおよびメモリアクセスの数は低減され得る。その結果、複雑さがより少ない計算を使用して予測サブピクセル値が生成され得、メモリからより少ない参照整数ピクセルの値を取り出すことによって、および/またはより少ない読取りサイクルを使用して値を取り出すことによって、メモリアクセスの数が低減され得る。
いくつかの例では、ソースデバイス12のビデオエンコーダ20は、ビデオデータのいくつかのブロック(たとえば、1つまたは複数のマクロブロック、またはCUのTU)を符号化するように構成され得、宛先デバイス14のビデオデコーダ30は、ビデオエンコーダ20からの符号化されたビデオデータを、たとえば、モデム28および受信機26から受信するように構成され得る。いずれの場合も、ビデオエンコーダ20および/またはビデオデコーダ30は、ビデオデータの参照ブロックを使用してコーディングされているブロックについての予測ブロックを生成することによってビデオデータの特定のブロックをコーディングするように構成され得る。
本開示の技法によれば、一例として、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得し、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算するように構成され得る。たとえば、サブピクセル値を計算するために、ビデオエンコーダ20および/またはビデオデコーダ30は、ブロック内のフィルタサポート位置の第1のセットに対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって、第1のサブピクセル値を計算することと、ブロック内のフィルタサポート位置の第2のセットに対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することによって、第2のサブピクセル値を計算することとを行うように構成され得る。この例では、第1の1次元アレイは、ブロックに関連する走査順序に基づいて第2の1次元アレイよりも多いフィルタ係数を備えるように選択され得る。ビデオエンコーダ20および/またはビデオデコーダ30は、計算されたサブピクセル値のうちの1つまたは複数に基づいてピクセルの予測ブロックを生成するようにさらに構成され得る。
この例では、フィルタサポート位置の第1のセットは、ブロックに関連する走査順序に対して平行に構成されたフィルタサポート位置を含むことができ、フィルタサポート位置の第2のセットは、走査順序に対して直角に構成されたフィルタサポート位置を含むことができる。
本開示で使用する「フィルタ係数の1次元アレイ」という用語は、概して、ビデオデータの参照ブロック内のピクセルデータの単一の行またはピクセルデータの単一の列に対応するフィルタサポート位置を有するフィルタ係数について説明するために使用される。「フィルタ係数の2次元アレイ」という用語は、概して、参照ブロックのピクセルデータの2つ以上の行およびピクセルデータの2つ以上の列に対応するフィルタサポート位置を有するフィルタ係数について説明するために使用される。
上記で説明した方法で適応タップサイズをもつ低複雑度補間フィルタを使用してピクセルの予測ブロック(prediction block)または「予測ブロック(predictive block)」を生成した後に、ビデオエンコーダ20および/またはビデオデコーダ30は、予測ブロックを使用してビデオデータのブロックをコーディングし得る。
このようにして、ビデオエンコーダ20および/またはビデオデコーダ30は、参照ブロックに関連する走査順序に従って配置された(すなわち、走査順序に対して平行である)ビデオデータの参照ブロックの参照整数ピクセルの値を使用するとき、比較的より長い補間フィルタを使用して予測サブピクセル値を生成し得、走査順序に従って配置されていない(すなわち、走査順序に対して直角に配置された)参照ブロックの参照整数ピクセルの値を使用するとき、比較的より短い補間フィルタを使用して予測サブピクセル値を生成し得る。たとえば、前に説明したように、参照ブロックに関連する走査順序は、ビデオコーディングシステム内のビデオデータの様々なタイプのブロックについての整数ピクセルおよびサブピクセル値を記憶するために使用される走査順序に対応し得る。いくつかの例では、参照ブロックに関連する走査順序は、水平(たとえば、「ラスタ」)走査順序、または垂直(たとえば、「回転ラスタ」)走査順序を備え得る。他の例では、参照ブロックに関連する走査順序は、他の走査順序を備え得る。
いずれの場合も、本開示の技法によれば、走査順序に従って配置された参照ブロックの参照整数ピクセルの値を使用して予測サブピクセル値を生成するときは、補間フィルタによって使用される参照整数ピクセル値を取り出すのに、概して、比較的より少ないメモリ読取りサイクルを必要とするので、より長い補間フィルタが使用され得る。この例では、システムメモリから参照整数ピクセル値を取り出すほうが、概して、走査順序に従って配置されていない同じ数の参照整数ピクセル値を取り出すよりも少ないメモリ読取りサイクルを必要とし得る。このようにして、より長い補間フィルタは、比較的より多いフィルタ係数を含み得、場合によっては、比較的より短い補間フィルタを使用して生成された予測サブピクセル値と比較してより良い予測サブピクセル値を生じる。
対照的に、走査順序に従って配置されていない(すなわち、走査順序に対して直角な)参照ブロックの参照整数ピクセルの値を使用して予測サブピクセル値を生成するときは、補間フィルタによって使用される参照整数ピクセル値を取り出すのに、概して、より多いメモリアクセスを必要とするので、より短い補間フィルタが使用され得る。この例では、システムメモリから参照整数ピクセル値を取り出すのに、概して、走査順序に従って配置された同じ数の参照整数ピクセル値を取り出すよりも多いメモリ読取りサイクルを必要とし得る。したがって、比較的より少ないフィルタ係数を含むより短い補間フィルタが使用され得る。より短い補間フィルタの使用は、ビデオコーディングシステムの複雑さとメモリアクセスの数を低減することと、良好な予測データを生成することとの間の望ましい妥協を表すことができる。たとえば、前にも説明したように、この例では、より少ないフィルタ係数を含む補間フィルタを使用することによって、本開示の技法は、十分に良好な予測サブピクセル値を生成しながら、低減された複雑さと、低減されたメモリアクセスの数とをもつビデオコーディングシステムを使用することを可能にする。
本開示の技法によれば、より長い補間フィルタに関連する参照ブロック内のフィルタサポート位置は、走査順序に対して平行に構成され得、より短い補間フィルタに関連する参照ブロック内のフィルタサポート位置は、走査順序に対して直角に構成され得る。一例として、走査順序が水平(すなわち、1行ずつの)走査順序を備えるとき、参照ブロック内の水平フィルタサポート位置に関連する補間フィルタは、より多くのフィルタ係数をもつ比較的より長い補間フィルタを備え得、参照ブロック内の垂直フィルタサポート位置に関連する補間フィルタは、より少ないフィルタ係数をもつ比較的短いフィルタを備え得る。同様に、別の例として、走査順序が垂直(すなわち、1列ずつの)走査順序を備えるとき、参照ブロック内の垂直フィルタサポート位置に関連する補間フィルタは、より多くのフィルタ係数をもつ比較的より長い補間フィルタを備え得、参照ブロック内の水平フィルタサポート位置に関連する補間フィルタは、より少ないフィルタ係数をもつ比較的短い補間フィルタを備え得る。
一例として、予測ブロックが、ビデオデータの矩形N×N参照ブロックに基づいてビデオデータのコード化ブロックについて生成されるとき、参照ブロックに関連する走査順序に従って配置された参照ブロックの参照整数ピクセルの値を使用して予測ブロックの予測サブピクセル値を生成するために、より長い補間フィルタが使用され得る。さらに、この例では、走査順序に従って配置されていない参照ブロックの参照整数ピクセルの値を使用して予測ブロックの予測サブピクセル値を生成するために、より短い補間フィルタが使用され得る。
この例によって示されるように、比較的より長い補間フィルタを使用することは、前に説明したように、概してビデオデータのコード化ブロックについてより良い予測データを生成するのに有利であり得、本開示の技法によれば、いくつかの事例では、予測データを生成するために比較的より長い補間フィルタと比較的により短い補間フィルタとが使用され得る。言い換えれば、本開示の技法は、最長の可能な補間フィルタ(たとえば、参照ブロックの次元に対応する長さを有する補間フィルタ、または「Nタップ」補間フィルタ)を常に使用するのではなく、走査順序に従って配置されていない参照ブロックの参照整数ピクセルの値を使用して予測ブロックの予測サブピクセル値を生成するときは、より短い補間フィルタ(たとえば、「(N−2)タップ」補間フィルタ)を使用することを提案する。
たとえば、一例として、N×N参照ブロックがビデオデータの8×8ブロックを備え、参照ブロックに関連する走査順序が水平走査順序を備えるとき、予測サブピクセル値を生成するために使用される水平補間フィルタは8つのフィルタ係数を含み得、予測サブピクセルを生成するために使用される垂直補間フィルタは、8つではなく、6つのフィルタ係数を含み得る。したがって、垂直寸法中の参照ブロックのいくつかの参照整数ピクセルは、予測ブロックを生成するための補間フィルタ処理では未使用であり得る。別の例として、ビデオデータの非矩形N×M参照ブロックに基づいてビデオデータのコード化ブロックについて予測ブロックが生成されるとき、参照ブロックに関連する走査順序に従って配置された参照ブロックの参照整数ピクセルの値を使用して予測ブロックの予測サブピクセル値を生成するために、この場合も、より長い補間フィルタが使用され得る。同様に、走査順序に従って配置されていない参照ブロックの参照整数ピクセルの値を使用して予測ブロックの予測サブピクセル値を生成するために、より短い補間フィルタが使用され得る。
この例によって示されるように、本開示の技法は、最長の可能な補間フィルタ(たとえば、参照ブロックの対応する次元に対応する長さを有する補間フィルタ、すなわち、「Nタップ」または「Mタップ」補間フィルタ)を常に使用するのではなく、走査順序に従って配置されていない、または走査順序に対して直角に配置された参照ブロックの参照整数ピクセルの値を使用して予測ブロックの予測サブピクセル値を生成するときは、より短い補間フィルタを使用することを提案する。
このようにして、水平補間フィルタが垂直補間フィルタよりも多いフィルタ係数を使用するのか、またはその逆であるのかは、たとえば、ブロックの形状とは反対に、参照ブロックの走査順序に基づいて選択され得る。この選択は、たとえば、ビデオコーディング規格の一部として定義され得、デオエンコーダとビデオデコーダの両方がその規格に従って補間フィルタ処理を実行する。そのような実装形態では、ビデオエンコーダは、走査順序に対して平行である補間フィルタの場合のほうが、走査順序に対して直角である補間フィルタの場合よりも多いフィルタ係数を判断し、シグナリングし得る。しかしながら、他の実装形態では、ビデオデコーダは、規格とは無関係に動作し得るか、または規格への最適化を実装し得る。そのような実装形態では、走査順序に対して直角である補間フィルタの場合、ビデオエンコーダは一定数のフィルタ係数を判断し、シグナリングし得るが、ビデオデコーダはシグナリングされたフィルタ係数のすべてを適用し得るとは限らない。たとえば、走査順序に対して直角である補間フィルタの場合、ビデオエンコーダは8つのフィルタ係数をシグナリングし得るが、ビデオデコーダは、8つのフィルタ係数のうちの6つのみを記憶および/または適用し得る。
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、適用可能なとき、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダまたはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ/デコーダ(コーデック)の一部として統合され得る。ビデオエンコーダ20および/またはビデオデコーダ30を含む装置は、集積回路、マイクロプロセッサ、および/またはセルラー電話などのワイヤレス通信デバイスを備え得る。
図2は、本開示の技法に一致する、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックをコーディングするための技法を実装し得るビデオエンコーダ20の例を示すブロック図である。ビデオエンコーダ20は、マクロブロック、CU、およびパーティションまたはそれのサブパーティションを含むビデオフレーム内のブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのいずれかを指し得、単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。
図2に示すように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内のビデオデータの現在のビデオブロックを受信する。図2の例では、ビデオエンコーダ20は、動き補償ユニット44と、動き推定ユニット42と、メモリ64と、加算器50と、変換モジュール52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換モジュール60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ(図2に図示せず)も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理するであろう。
符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対して所与の受信ビデオブロックのインター予測コーディングを実行し得る。イントラ予測モジュール46は、空間圧縮を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して所与の受信ビデオブロックのイントラ予測コーディングを実行し得る。
モード選択ユニット40は、コーディング結果(たとえば、得られたコーディングレートおよびひずみレベル)に基づいて、およびコーディングされている所与の受信ブロックを含むフレームまたはスライスについてのフレームまたはスライスタイプに基づいて、コーディングモード、すなわち、1つのモードまたは複数のイントラコーディングまたはインターコーディングモードのうちの1つを選択し、残差ブロックデータを生成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器50に与え、参照フレームまたは参照スライス中で使用するための符号化ブロックを再構成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器62に与え得る。概して、イントラ予測は、隣接する、前にコーディングされたブロックに対して現在のブロックを予測することを伴い、一方、インター予測は、現在のブロックを時間的に予測するために、動き推定および動き補償を伴う。
動き推定ユニット42と動き補償ユニット44とは、ビデオエンコーダ20のインター予測要素を表す。動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム(または他のコード化ユニット)内でコーディングされている現在のブロックに対する予測参照フレーム(または他のコード化ユニット)内の予測ブロックの変位を示し得る。予測ブロックは、絶対値差分和(SAD)、差分2乗和(SSD)、または他の差分メトリックによって判断され得るピクセル差分に関して、コーディングすべきブロックにぴったり一致することがわかるブロックである。動きベクトルはまた、ブロックのパーティションの変位を示し得る。動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。この場合も、いくつかの例では、動き推定ユニット42と動き補償ユニット44とは機能的に統合され得る。
動き推定ユニット42は、ビデオブロックをメモリ64中の参照フレームのビデオブロックと比較することによってインターコード化フレームのビデオブロックについての動きベクトルを計算し得る。動き補償ユニット44はまた、この比較のために、参照フレーム、たとえば、IフレームまたはPフレームのサブ整数ピクセルを補間し得る。例として、ITU H.264規格には、2つのリスト、すなわち、符号化されている現在のフレームよりも前の表示順序を有する参照フレームを含むリスト0と、符号化されている現在のフレームよりも後の表示順序を有する参照フレームを含むリスト1とが記載されている。したがって、メモリ64に記憶されたデータは、これらのリストに従って編成され得る。
動き推定ユニット42は、メモリ64からの1つまたは複数の参照フレームのブロックを、現在のフレーム、たとえば、PフレームまたはBフレームの符号化されるべきブロックと比較し得る。メモリ64中の参照フレームがサブ整数ピクセルの値を含むとき、動き推定ユニット42によって計算される動きベクトルは参照フレームのサブ整数ピクセルロケーションを参照し得る。動き推定ユニット42および/または動き補償ユニット44はまた、サブ整数ピクセル位置についての値がメモリ64に記憶されていない場合、メモリ64に記憶された参照フレームのサブ整数ピクセル位置についての値を計算するように構成され得る。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送り得る。動きベクトルによって識別される参照フレームブロックは、インター予測ブロック、または、より一般的に、予測ブロックと呼ばれることがある。動き補償ユニット44は、予測ブロックに基づいて予測データを計算し得る。
イントラ予測モジュール46は、上記で説明したように、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測モジュール46は、現在のブロックを符号化するために使用すべきイントラ予測モードを判断し得る。いくつかの例では、イントラ予測モジュール46は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化し得、イントラ予測モジュール46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。たとえば、イントラ予測モジュール46は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化ブロックを生成するために使用されるビットレート(すなわち、ビット数)を判断する。イントラ予測モジュール46は、どのイントラ予測モードがブロックにとって最良のレートひずみ値を呈するかを判断するために、様々な符号化ブロックについてのひずみおよびレートから比を計算し得る。
たとえば、イントラ予測またはインター予測を使用して、現在のブロックを予測した後、ビデオエンコーダ20は、コーディングされている元のビデオブロックから、動き補償ユニット44またはイントラ予測モジュール46によって計算された予測データを減算することによって残差ビデオブロックを形成し得る。加算器50は、この減算演算を実行し得る1つまたは複数の構成要素を表す。変換モジュール52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成し得る。変換モジュール52は、概念的にDCTと同様である、H.264規格によって定義される変換など、他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。いずれの場合も、変換モジュール52は変換を残差ブロックに適用し、残差変換係数のブロックを生成し得る。変換は、残差情報をピクセル領域から周波数領域などの変換領域に変換し得る。量子化ユニット54は、ビットレートをさらに低減するために残差変換係数を量子化し得る。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。
量子化の後に、エントロピー符号化ユニット56は、量子化変換係数をエントロピー符号化し、これはCAVLC、CABAC、PIPE、または別のエントロピーコーディング方法を使用することを含む。エントロピー符号化ユニット56によるエントロピーコーディングの後に、符号化されたビデオは、別のデバイスに送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
場合によっては、エントロピー符号化ユニット56またはビデオエンコーダ20の別のユニットは、上記で説明した量子化変換係数をエントロピーコーディングすることに加えて、他のコーディング機能を実行するように構成され得る。たとえば、エントロピー符号化ユニット56は、符号化ビデオビットストリーム中での送信のために適切なシンタックス要素を用いて、ブロック(たとえば、マクロブロック、CU、またはLCU)、またはブロックを含むビデオフレームについてのヘッダ情報を構成し得る。いくつかのコーディング規格によれば、そのようなシンタックス要素は、前に説明したように、ブロックについての予測データを生成するために使用されるブロックについての動きベクトルデータを含み得る。また前に説明したように、動きベクトルデータは、補間フィルタを使用して予測データを生成するために使用され得、それにより、予測データを生成する際にビデオエンコーダ20の複雑さおよびメモリアクセスの数を増加させ得る。したがって、本開示は、動きベクトルデータを使用して予測データを生成するときに、ビデオエンコーダ20の複雑さおよびメモリアクセスの数を低減し得る技法について説明する。
上記で説明したように、動き推定ユニット42は、分数ピクセル(または「サブピクセル」)精度を用いてビデオデータのブロックの動き推定を実行し得る。動き推定ユニット42が分数ピクセル動き推定を使用するとき、動き推定ユニット42は、本開示で説明する補間フィルタ処理技法を使用して、サブピクセル解像度における動きベクトルデータ(たとえば、サブピクセル値または分数ピクセル値に対応する動きベクトルデータ)を生成し得る。言い換えれば、補間フィルタ処理技法は、ビデオデータの参照ブロック内の整数ピクセル位置間の位置における値を計算するために使用され得る。参照ブロック内の2つの隣接する整数ピクセル位置間の半分に配置されたサブピクセル位置は、ハーフピクセル(または「ハーフペル」)位置と呼ばれることがあり、参照ブロック内の整数ピクセル位置とハーフピクセル位置との間の半分に配置されたサブピクセル位置は、クォーターピクセル(または、「クォーターペル」)位置と呼ばれることがあり、整数ピクセル位置またはハーフピクセル位置と、クォーターピクセル位置との間の半分に配置されたサブピクセル位置は、1/8ピクセル(または「1/8ペル」)位置と呼ばれることがあり、以下同様である。動き補償ユニット44は、次に、コーディングされているビデオデータのブロックの動き補償を実行するために、動き推定ユニット42によって生成された動きベクトルデータを使用して予測ブロックを生成し得る。動き推定ユニット42はまた、ビデオデータの符号化ブロックを復号するために使用されるべき動きベクトルデータをビデオデコーダ、たとえば、ビデオデコーダ30にシグナリングし得る。
いくつかの例では、ビデオエンコーダ20は、ビデオデータのいくつかのブロック(たとえば、1つまたは複数のマクロブロック、またはCUのTU)を符号化するように構成され得る。たとえば、ビデオエンコーダ20は、ビデオデータの参照ブロックを使用して符号化されているブロックについての予測ブロックを生成することによってビデオデータの特定のブロックを符号化するように構成され得る。
本開示の技法によれば、一例として、ビデオエンコーダ20は、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得し、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算するように構成され得る。たとえば、サブピクセル値を計算するために、ビデオエンコーダ20は、ブロック内のフィルタサポート位置の第1のセットに対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって、第1のサブピクセル値を計算することと、ブロック内のフィルタサポート位置の第2のセットに対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することによって、第2のサブピクセル値を計算することとを行うように構成され得る。この例では、第1の1次元アレイは、ブロックに関連する走査順序に基づいて第2の1次元アレイよりも多いフィルタ係数を備えるように選択され得る。ビデオエンコーダ20は、計算されたサブピクセル値のうちの1つまたは複数に基づいてピクセルの予測ブロックを生成するようにさらに構成され得る。この例では、フィルタサポート位置の第1のセットは、ブロックに関連する走査順序に対して平行に構成されたフィルタサポート位置を含むことができ、フィルタサポート位置の第2のセットは、走査順序に対して直角に構成されたフィルタサポート位置を含むことができる。
いくつかの例では、フィルタサポート位置の第1のセットとフィルタサポート位置の第2のセットとのうちの1つが、ブロック内の共通の行に構成された水平フィルタサポート位置のセットを備え得、フィルタサポート位置の第1のセットとフィルタサポート位置の第2のセットとのうちの別の1つが、ブロック内の共通の列に構成された垂直フィルタサポート位置のセットを備え得る。
一例では、フィルタ係数の第1の1次元アレイは8つの係数を備え得、フィルタ係数の第2の1次元アレイは6つの係数を備え得る。同様に、別の例では、フィルタ係数の第1の1次元アレイは8つの係数を備え得、フィルタ係数の第2の1次元アレイは7つの係数を備え得る。
他の例では、フィルタサポート位置の第1のセットとフィルタサポート位置の第2のセットとのうちの少なくとも1つが、ブロック内の整数ピクセル位置のセットに対応し得る。
さらに他の例では、第1のサブピクセルと第2のサブピクセルとのうちの少なくとも1つが、ブロック内の整数ピクセル位置との共通の水平軸と、ブロック内の整数ピクセル位置との共通の垂直軸とのうちの1つの上にあり得る。
さらに他の例では、以下の条件、すなわち(1)フィルタサポート位置の第1のセットのうちのフィルタサポート位置のうちの1つが、第2のサブピクセル値に対応するブロック内のサブピクセル位置に対応することと、(2)フィルタサポート位置の第2のセットのうちのフィルタサポート位置のうちの1つが、第1のサブピクセル値に対応するブロック内のサブピクセル位置に対応することとのうちの1つが満たされ得る。
いくつかの例では、ビデオエンコーダ20は、第1および第2の1次元アレイの各々内に含まれるいくつかのフィルタ係数のうちの1つまたは複数を識別する1つまたは複数のシグナリングビットと、フィルタ係数の各々の値とをコーディングするようにさらに構成され得る。
さらに、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算するために、ビデオエンコーダ20は、ブロック内のフィルタサポート位置の2次元セットに対応するフィルタ係数の2次元アレイを定義する第3の補間フィルタを適用することによって第3のサブピクセル値を計算するようにさらに構成され得る。フィルタ係数の2次元アレイの水平寸法と垂直寸法とのうちの1つが、ブロックに関連する走査順序に基づいて2次元アレイの水平寸法と垂直寸法とのうちの別の1つよりも多いフィルタ係数を備えるように選択され得る。この例では、より多いフィルタ係数を備えるように選択された水平寸法と垂直寸法とのうちの1つが、走査順序に対して平行であり得る。
一例では、フィルタ係数の2次元アレイの水平寸法と垂直寸法とのうちの1つが8つの係数を備え得、2次元アレイの水平寸法と垂直寸法とのうちの他の1つが6つの係数を備え得る。同様に、別の例では、フィルタ係数の2次元アレイの水平寸法と垂直寸法とのうちの1つが8つの係数を備え得、2次元アレイの水平寸法と垂直寸法とのうちの他の1つが7つの係数を備え得る。
いくつかの例では、ビデオエンコーダ20は、2次元アレイ内に含まれるいくつかのフィルタ係数のうちの1つまたは複数を識別する1つまたは複数のシグナリングビットと、フィルタ係数の各々の値とを符号化するようにさらに構成され得る。
最後に、上記で説明した方法で適応タップサイズをもつ低複雑度補間フィルタを使用してピクセルの予測ブロック(prediction block)、または「予測ブロック(predictive block)」を生成した後に、ビデオエンコーダ20は、予測ブロックを使用してビデオデータのブロックを符号化し得る。たとえば、ビデオエンコーダ20は、符号化されるべきピクセルのブロックを受信し、ピクセルの残差ブロックを生成するために符号化されるべきピクセルのブロックから予測ブロックを減算し、残差ブロックを符号化するようにさらに構成され得る。
逆量子化ユニット58および逆変換モジュール60は、それぞれ逆量子化および逆変換を適用して、たとえば、本開示の技法に一致する参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償ユニット44は、再構成された残差ブロックを動き補償予測ブロックに加算することによって参照ブロックを計算し、得られた参照ブロックをメモリ64のフレームのうちの1つとして記憶し得る。動き推定ユニット42および動き補償ユニット44はその後、上記で説明した方法での動き推定および動き補償のために、たとえば、サブ整数ピクセル値を計算するために参照ブロックに1つまたは複数の補間フィルタを適用することによって、参照ブロックを使用し得る。たとえば、加算器62は、再構成された残差ブロックを動き補償ユニット44によって生成された動き補償予測ブロックに加算して、メモリ64に記憶するための再構成されたビデオブロック、すなわち、参照ブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
したがって、本開示の技法は、ビデオエンコーダ20が、ブロックを符号化するために使用されるビデオデータの1つまたは複数のブロックについての予測データを生成するとき、適応タップサイズをもつ低複雑度補間フィルタを使用することを可能にし得る。このようにして、本開示の技法を使用するとき、ビデオエンコーダ20についての複雑さとメモリアクセスの数とが相対的に低減され得る。
このようにして、ビデオエンコーダ20は、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得し、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算するように構成されたビデオコーダの例を表す。サブピクセル値を計算するために、ビデオコーダは、ブロック内のフィルタサポート位置の第1のセットに対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって、第1のサブピクセル値を計算することと、ブロック内のフィルタサポート位置の第2のセットに対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することによって、第2のサブピクセル値を計算することとを行うように構成される。第1の1次元アレイは、ブロックに関連する走査順序に基づいて第2の1次元アレイよりも多いフィルタ係数を備えるように選択され得る。ビデオエンコーダは、計算されたサブピクセル値のうちの1つまたは複数に基づいてピクセルの予測ブロックを生成するようにさらに構成される。
図3は、本開示の技法に一致する、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックを復号するための技法を実装し得るビデオデコーダ30の例を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測モジュール74と、逆量子化ユニット76と、逆変換モジュール78と、メモリ82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(図2)に関して説明した符号化パスとは概して逆の復号パスを実行し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信した動きベクトルに基づいて予測データを生成し得る。
動き補償ユニット72は、ビットストリーム中で受信された動きベクトルを使用して、メモリ82中の参照フレーム中の予測(prediction)、または「予測(predictive)」ブロックを識別し得る。イントラ予測モジュール74は、ビットストリーム中で受信したイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成し得る。
イントラ予測モジュール74は、たとえば、隣接する、前に復号されたブロックのピクセルを使用して、符号化ブロックをイントラ予測するために符号化ブロックについてのイントラ予測モードの指示を使用し得る。ブロックがインター予測モード符号化される例では、動き補償ユニット72は、符号化ブロックについての動き補償予測(prediction)、または「予測」データを取り出すために、動きベクトルを定義する情報を受信し得る。いずれの場合も、動き補償ユニット72またはイントラ予測モジュール74は、予測ブロックを定義する情報を加算器80に与え得る。
逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された量子化ブロック係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、たとえば、H.264復号規格によって定義される、またはHEVCテストモデルによって実行される、従来のプロセスを含み得る。逆量子化プロセスはまた、量子化の程度を判断し、同様に、適用されるべき逆量子化の程度を判断するための、各ブロックについてビデオエンコーダ20によって計算される量子化パラメータQPYの使用を含み得る。
逆変換ユニット78は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。動き補償ユニット72は動き補償ブロックを生成し、場合によっては、本開示の技法に一致する補間フィルタに基づいて、補間を実行する。いくつかの例では、サブピクセル精度をもつ動き推定に使用されるべき補間フィルタについての識別子、たとえば、1つまたは複数のシグナリングビットは、シンタックス要素中に含まれ得る。他の例では、補間フィルタは、ビデオエンコーダ20とビデオデコーダ30との両方にとって利用可能な静的プロパティを有し得る。動き補償ユニット72は、前に説明したように、ビデオブロックの符号化中にビデオエンコーダ20によって使用される補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。この場合も、いくつかの例では、動き補償ユニット72は、受信したシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ブロックを生成し得る。
動き補償ユニット72は、符号化ブロックについてのシンタックス情報のいくつかを使用して、符号化ビデオシーケンスの(1つまたは複数の)フレームを符号化するために使用されるブロックのサイズと、符号化ビデオシーケンスのフレームまたはスライスの各ブロックがどのように区分されるかを記述するパーティション情報と、各パーティションがどのように符号化されるかを示すモードと、各インター符号化ブロックまたはパーティションについての1つまたは複数の参照フレーム(および参照フレームリスト)と、符号化ビデオシーケンスを復号するための他の情報とを判断する。イントラ予測モジュール74はまた、上記で説明したように、たとえば、隣接する、前に復号されたブロックのピクセルを使用して、符号化ブロックをイントラ予測するために符号化ブロックについてのシンタックス情報を使用し得る。
加算器80は、残差ブロックを、動き補償ユニット72またはイントラ予測モジュール74によって生成される対応する予測ブロックと合計して、復号ブロックを形成する。必要に応じて、ブロッキネスアーティファクトを除去するために、デブロッキングフィルタを適用して、復号ブロックをフィルタ処理し得る。復号されたビデオブロックは、次いで、メモリ82に記憶され、メモリ82は、参照ブロックを後続の動き補償に与え、また、(図1のディスプレイデバイス32などの)ディスプレイデバイス上での提示のために復号ビデオを生成する。
いくつかの例では、ビデオデコーダ30は、ビデオデータのいくつかのブロック(たとえば、1つまたは複数のマクロブロック、またはCUのTU)を復号するように構成され得る。たとえば、ビデオデコーダ30は、ビデオデータの参照ブロックを使用して復号されているブロックについての予測ブロックを生成することによってビデオデータの特定のブロックを復号するように構成され得る。本開示の技法によれば、一例として、ビデオデコーダ30は、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得し、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算するように構成され得る。たとえば、サブピクセル値を計算するために、ビデオデコーダ30は、ブロック内のフィルタサポート位置の第1のセットに対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって、第1のサブピクセル値を計算することと、ブロック内のフィルタサポート位置の第2のセットに対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することによって、第2のサブピクセル値を計算することとを行うように構成され得る。この例では、第1の1次元アレイは、ブロックに関連する走査順序に基づいて第2の1次元アレイよりも多いフィルタ係数を備えるように選択され得る。ビデオデコーダ30は、計算されたサブピクセル値のうちの1つまたは複数に基づいてピクセルの予測ブロックを生成するようにさらに構成され得る。この例では、フィルタサポート位置の第1のセットは、ブロックに関連する走査順序に対して平行に構成されたフィルタサポート位置を含むことができ、フィルタサポート位置の第2のセットは、走査順序に対して直角に構成されたフィルタサポート位置を含むことができる。
いくつかの例では、フィルタサポート位置の第1のセットとフィルタサポート位置の第2のセットとのうちの1つが、ブロック内の共通の行に構成された水平フィルタサポート位置のセットを備え得、フィルタサポート位置の第1のセットとフィルタサポート位置の第2のセットとのうちの別の1つが、ブロック内の共通の列に構成された垂直フィルタサポート位置のセットを備え得る。
一例では、フィルタ係数の第1の1次元アレイは8つの係数を備え得、フィルタ係数の第2の1次元アレイは6つの係数を備え得る。同様に、別の例では、フィルタ係数の第1の1次元アレイは8つの係数を備え得、フィルタ係数の第2の1次元アレイは7つの係数を備え得る。
他の例では、フィルタサポート位置の第1のセットとフィルタサポート位置の第2のセットとのうちの少なくとも1つが、ブロック内の整数ピクセル位置のセットに対応し得る。
さらに他の例では、第1のサブピクセルと第2のサブピクセルとのうちの少なくとも1つが、ブロック内の整数ピクセル位置との共通の水平軸と、ブロック内の整数ピクセル位置との共通の垂直軸とのうちの1つの上にあり得る。
さらに他の例では、以下の条件、すなわち(1)フィルタサポート位置の第1のセットのうちのフィルタサポート位置のうちの1つが、第2のサブピクセル値に対応するブロック内のサブピクセル位置に対応することと、(2)フィルタサポート位置の第2のセットのうちのフィルタサポート位置のうちの1つが、第1のサブピクセル値に対応するブロック内のサブピクセル位置に対応することとのうちの1つが満たされ得る。
いくつかの例では、ビデオデコーダ30は、第1および第2の1次元アレイの各々内に含まれるいくつかのフィルタ係数のうちの1つまたは複数を識別する1つまたは複数のシグナリングビットと、フィルタ係数の各々の値とを復号するようにさらに構成され得る。
さらに、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算するために、ビデオデコーダ30は、ブロック内のフィルタサポート位置の2次元セットに対応するフィルタ係数の2次元アレイを定義する第3の補間フィルタを適用することによって第3のサブピクセル値を計算するようにさらに構成され得る。フィルタ係数の2次元アレイの水平寸法と垂直寸法とのうちの1つが、ブロックに関連する走査順序に基づいて2次元アレイの水平寸法と垂直寸法とのうちの別の1つよりも多いフィルタ係数を備えるように選択され得る。この例では、より多いフィルタ係数を備えるように選択された水平寸法と垂直寸法とのうちの1つが、走査順序に対して平行であり得る。
一例では、フィルタ係数の2次元アレイの水平寸法と垂直寸法とのうちの1つが8つの係数を備え得、2次元アレイの水平寸法と垂直寸法とのうちの他の1つが6つの係数を備え得る。同様に、別の例では、フィルタ係数の2次元アレイの水平寸法と垂直寸法とのうちの1つが8つの係数を備え得、2次元アレイの水平寸法と垂直寸法とのうちの他の1つが7つの係数を備え得る。
いくつかの例では、ビデオデコーダ30は、2次元アレイ内に含まれるいくつかのフィルタ係数のうちの1つまたは複数を識別する1つまたは複数のシグナリングビットと、フィルタ係数の各々の値とを復号するようにさらに構成され得る。
最後に、上記で説明した方法で適応タップサイズをもつ低複雑度補間フィルタを使用してピクセルの予測(prediction)ブロック、または「予測(predictive)ブロック」を生成した後に、ビデオデコーダ30は、予測ブロックを使用してビデオデータのブロックを復号し得る。たとえば、ビデオデコーダ30は、ピクセルの符号化された残差ブロックを受信し、その残差ブロックを復号し、ピクセルの復号されたブロックを生成するために復号された残差ブロックを予測ブロックに加算するようにさらに構成され得る。
このようにして、ビデオデコーダ30は、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得し、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算するように構成されたビデオコーダの例を表す。サブピクセル値を計算するために、ビデオコーダは、ブロック内のフィルタサポート位置の第1のセットに対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって、第1のサブピクセル値を計算することと、ブロック内のフィルタサポート位置の第2のセットに対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することによって、第2のサブピクセル値を計算することとを行うように構成される。第1の1次元アレイは、ブロックに関連する走査順序に基づいて第2の1次元アレイよりも多いフィルタ係数を備えるように選択され得る。ビデオコーダは、計算されたサブピクセル値のうちの1つまたは複数に基づいてピクセルの予測ブロックを生成するようにさらに構成される。
図4は、ビデオデータのブロックについて、参照データに関連する参照整数ピクセルと、補間予測データに関連する予測サブピクセルとを示す概念図である。図4の例では、ビデオデータの参照ブロック内で、実線の境界をもつボックスは参照整数ピクセル位置を表し、破線の境界をもつボックスは予測サブピクセル位置を表す。(実線の境界をもつボックス中の)大文字は参照整数ピクセルを示し、(破線の境界をもつボックス中の)小文字は予測サブピクセルを示す。特に、ピクセルA1〜A8、B1〜B8、C1〜C8、D1〜D8、E1〜E8、およびF1〜F8は、参照フレーム、スライス、または別のコード化ユニットの参照ブロック内の整数ピクセルの8×6(すなわち、水平方向に8ピクセル、垂直方向に6ピクセルの)アレイを表す。サブピクセル「a」〜「o」は、整数ピクセルC4に関連する15個のサブピクセル(すなわち、整数ピクセルC4とC5とD4とD5との間に配置された15個のサブピクセル)を表す。同様のサブピクセルが、上記で説明したのと実質的に同様に図4の他の整数ピクセルロケーションについて存在し得るが、簡単のために図示しない。図4の例では、サブピクセル「a」〜「o」は、整数ピクセルC4に関連するあらゆるハーフペルおよびクォーターペルピクセルを表す。また、図4に示すサブピクセル「aa」〜「ll」について、以下で詳細に説明する。
概して、各整数ピクセルは、フォトダイオードなど、関連するビデオデータを生成するために使用された物理センサー要素に関連し得る。フォトダイオードは、整数ピクセルの位置に対応するセンサーのロケーションにおける光源の強度を測定し、ピクセル強度値、たとえば、ピクセル値を整数ピクセルに関連付け得る。この場合も、各整数ピクセルは、15個の(または場合によってはより多くの)サブピクセルの関連するセットを有し得る。特定の整数ピクセルに関連するサブピクセルの数は、予測データを生成するために使用される所望の精度に依存することがある。図4の例では、所望の精度はクォーターピクセル、またはクォーターペル精度であり、その場合、整数ピクセルの各々は15個のサブピクセルに対応する。前に説明したように、所望の精度に応じて、より多いまたはより少ないサブピクセルが各整数ピクセルに関連し得る。一例として、ハーフピクセル、またはハーフペル精度の場合、各整数ピクセルは3つのサブピクセルに対応し得る。たとえば、整数ピクセルC4はサブピクセル「b」、「h」、および「j」に対応し得る。別の例として、1/8ピクセル、または1/8ペル精度の場合、各整数ピクセルは63個のサブピクセル(図示せず)に対応し得る。
さらに、各整数ピクセルおよびサブピクセルは、1つまたは複数のピクセル値、たとえば、1つまたは複数のルミナンス値およびクロミナンス値に関連し得る。たとえば、前に説明したように、3次元YCbCr色空間内で、ビデオデータのブロックのY成分はルミナンスデータを表し得、ブロックのCb成分およびCr成分はクロミナンスデータをそれぞれ表し得る。したがって、3次元色空間の場合、各整数ピクセルおよびサブピクセルは、3つのピクセル値、たとえば、Y値とCb値とCr値に関連し得る。しかしながら、本開示の技法は、簡単のために、ビデオデータの特定のブロックの単一の構成要素、または「次元」に関する予測データを生成することを指すことがある。技法について1つの構成要素または次元のピクセル値に関して説明する限り、同様の技法が他の構成要素または次元に拡張され得る。場合によっては、ビデオデータのブロックについてのクロミナンスデータは、ブロックについてのルミナンスデータに対するサブサンプリングであり得る。しかしながら、どのようにそれぞれのデータがサンプリングされるかにかかわらず、本明細書で説明する補間フィルタ処理技法は、ビデオデータのブロックのルミナンスデータとクロミナンスデータとに等しく適用され得る。
図4の例には、クォーターピクセル精度の場合の、整数ピクセルC4に関連するサブピクセル「a」〜「o」が示されている。整数ピクセルC4に関連する15個のサブピクセルは、前に説明したように、「a」、「b」、「c」、「d」、「e」、「f」、「g」、「h」、「i」、「j」、「k」、「l」、「m」、「n」、および「o」と標示される。他の整数ピクセルに関連する他の分数ロケーションの大部分は、簡単のために図示していない。サブピクセル「b」、「h」および「j」をハーフピクセルと呼ぶことがあり、サブピクセル「a」、「c」、「d」、「e」、「f」、「g」、「i」、「k」、「l」、「m」、および「o」をクォーターピクセルと呼ぶことがある。さらに、本開示では、整数ピクセルと同じ水平軸に沿って配向されたサブピクセルを水平サブピクセルと呼ぶことがある。サブピクセル「a」、「b」、および「c」は水平サブピクセルの例である。整数ピクセルと同じ垂直軸の上に配向されたサブピクセルを垂直サブピクセルと呼ぶことがある。サブピクセル「d」、「h」、および「l」は、垂直サブピクセルの例である。本開示の態様は、適応タップサイズをもつ低複雑度補間フィルタを使用して水平サブピクセルと垂直サブピクセルとについてのピクセル値を判断することを含み、したがって、本開示では、水平サブピクセルと垂直サブピクセルとをまとめて1Lサブピクセルと呼ぶことがある。本開示では、「1L」という用語は、適応タップサイズをもつ単一の低複雑度線形補間フィルタを使用して水平および垂直サブピクセルの各ピクセル値が判断されることを示す。
同様に、本開示では、特定の整数ピクセルに関連するすべての他のサブピクセルを2Lサブピクセルと呼ぶことがある。サブピクセル「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、および「o」は、2Lサブピクセルの例である。本開示の態様はまた、適応タップサイズをもつ低複雑度補間フィルタを使用して2Lサブピクセルについてのピクセル値を決定することを含む。たとえば、2Lサブピクセルの各ピクセル値は、適応タップサイズをもつ、1つは垂直方向に適用され、1つは水平方向に適用される2つの分離可能な低複雑度線形補間フィルタ、または適応タップサイズをもつ2次元低複雑度線形補間フィルタを使用して判断される。
ビデオエンコーダ20の動き補償ユニット44および/またはビデオデコーダ30の動き補償ユニット72は、本開示の補間フィルタ処理技法を使用して、サブピクセル「a」〜「o」についてのピクセル値を判断し得る。ハーフピクセル「b」および「h」の場合、タップとも呼ばれる各フィルタ係数は、それぞれ水平方向および垂直方向にある整数ピクセルに対応し得る。特に、ハーフピクセル「b」の場合、8タップフィルタのタップは整数ピクセルC1〜C8に対応する。同様に、ハーフピクセル「h」の場合、6タップフィルタのタップは、A4、B4、C4、D4、E4、およびF4に対応する。たとえば、サブピクセル「b」および「h」についてのピクセル値を、以下の式(1)および式(2)を使用して計算することができる。
Figure 2014502822
Figure 2014502822
いくつかの実装形態では、256による除算を8ビットの右シフトによって実装することができる。サブピクセル「b」の場合と同様に、クォーターピクセル「a」および「c」の場合、8タップフィルタのタップは、C1〜C8に対応し得るが、サブピクセル「b」とは異なり、前に説明したように、フィルタ係数は非対称であり、サブピクセル「b」の場合とは異なり得る。たとえば、サブピクセル「a」および「c」についてのピクセル値を、以下の式(3)および式(4)を使用して計算することができる。
Figure 2014502822
Figure 2014502822
いくつかの実装形態では、256による除算を8ビットの右シフトによって実装することができる。サブピクセル「h」の場合と同様に、クォーターピクセル「d」および「l」の場合、6タップフィルタのタップは、A4、B4、C4、D4、E4、およびF4に対応し得るが、サブピクセル「b」とは異なり、フィルタ係数は非対称であり、サブピクセル「h」の場合とは異なり得る。たとえば、サブピクセル「d」および「l」についてのピクセル値を、以下の式(5)および式(6)を使用して計算することができる。
Figure 2014502822
Figure 2014502822
いくつかの実装形態では、256による除算を8ビットの右シフトによって実装することができる。上記の式(1)〜式(6)について与えられた例示的な係数は、概して、水平サブピクセルと垂直サブピクセルの両方について同じ係数を使用するが、水平サブピクセルについての係数と垂直サブピクセルについての係数が同じである必要はない。たとえば、式(1)と式(2)、式(3)と式(5)、および式(4)と式(6)はそれぞれ、上記の例では同じ係数を有するが、いくつかの実装形態では、各々は異なる係数を有し得る。
動き補償ユニット44および動き補償ユニット72はまた、本開示の補間フィルタ処理技法を使用して、2Lサブピクセル「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、および「o」についてのピクセル値を判断し得る。2Lサブピクセルについて、水平フィルタ処理の後に垂直フィルタ処理が行われ、またはその逆も同様である。第1のフィルタ処理演算は中間サブピクセル値を判断し、第2のフィルタ処理演算は、中間サブピクセル値を利用して、補間サブピクセルについてのピクセル値を判断する。たとえば、サブピクセル「j」についての値を判断するために、以下の式を使用して、サブピクセル「aa」、「bb」、「b」、「jj」、「kk」、および「ll」についての中間値を判断するために、6つの8タップ水平フィルタが使用され得る。
Figure 2014502822
Figure 2014502822
Figure 2014502822
Figure 2014502822
Figure 2014502822
Figure 2014502822
いくつかの実装形態では、256による除算を8ビットの右シフトによって実装することができる。上記の中間値に6タップ垂直フィルタを適用すると、サブピクセル「j」についての値を、以下の式を使用して判断することができる。
Figure 2014502822
いくつかの実装形態では、256による除算を8ビットの右シフトによって実装することができる。代替的に、サブピクセル「cc」、「dd」、「ee」、「h」、「ff」、「gg」、「hh」、および「ll」についての中間値を発見するために8つの6タップ垂直フィルタを使用することができ、サブピクセル「j」についてのピクセル値を判断するために、それらの中間値に8タップ水平フィルタを適用することができる。
サブピクセル「j」について上記で説明したプロシージャと同様に、サブピクセルの中間値を判断するために6つの8タップ水平フィルタ処理演算を最初に実行し、次いで、水平フィルタ処理によって判断された中間値に6タップ垂直フィルタを適用することによって、または、サブピクセルの中間値を判断するために8つの6タップ垂直フィルタ処理演算を最初に実行し、次いで、垂直フィルタ処理によって判断された中間値に8タップ水平フィルタを適用することによって、サブピクセル「e」、「f」、「g」、「i」、「k」、「m」、「n」、および「o」についてのピクセル値を判断することができる。サブピクセル「j」について上記で例として使用された水平フィルタと垂直フィルタの両方が対称係数を使用するが、他の2Dサブピクセルについてのピクセル値を判断するために使用される水平フィルタまたは垂直フィルタの一方または両方が対称的でないことがある。一例として、サブピクセル「e」、「g」、「m」、および「o」についての水平フィルタと垂直フィルタの両方が非対称係数を使用し得る。サブピクセル「f」および「n」は、対称係数をもつ水平フィルタと非対称係数をもつ垂直フィルタとを使用し得、サブピクセル「i」および「k」は、非対称係数をもつ水平フィルタと対称係数をもつ垂直フィルタとを使用し得る。
再び図2および図3を参照すると、サブピクセル位置における補間データを生成するために動き補償ユニット42および/または動き補償ユニット72によって適用される実際のフィルタは、多種多様な実装形態によって異なることがある。一例として、ビデオエンコーダ20は、ビデオデコーダ30に対してビデオエンコーダ20によって使用されたフィルタの厳密なプロパティを定義する様々なフィルタパラメータをビットストリーム中でビデオデコーダ30に送信し得る。別の例として、ビデオエンコーダ20とビデオデコーダ30の両方は交換フィルタ処理を利用し得、複数のフィルタがビデオエンコーダ20とビデオデコーダ30の両方によって知られており、使用されるべき特定のフィルタの指示はビットストリーム中でビデオエンコーダ20からビデオデコーダ30にシグナリングされる。さらに別の例として、ビデオエンコーダ20とビデオデコーダ30の両方が、ビデオエンコーダ20とビデオデコーダ30の両方によって知られている固定数のフィルタを利用し、シンタックス情報、またはビデオエンコーダ20およびビデオデコーダ30のうちのそれぞれの1つのプロパティに基づいて使用されるべき適切なフィルタを単独で選択し得る。いずれの場合も、ビデオエンコーダ20および/またはビデオデコーダ30は、本開示の技法に一致する方法で、使用されるべき適切なフィルタ、すなわち、適切な長さのフィルタを選択し得る。
動き補償ユニット44および/または動き補償ユニット72は、水平方向および垂直方向において分離可能な補間フィルタを使用し得る。1Lサブピクセルについて、動き補償ユニット44および/または動き補償ユニット72は、サブピクセルの位置に応じて水平方向フィルタのみまたは垂直方向フィルタのみを適用し得る。一例では、水平方向フィルタは8位置(または8タップ)フィルタを備え、垂直方向フィルタは6位置(または6タップ)フィルタを備える。動き補償ユニット44および/または動き補償ユニット72は、フィルタサポート位置として整数ピクセルC1〜C8を使用して、サブピクセル「a」、「b」、および「c」に対して水平方向フィルタを適用し、フィルタサポート位置として整数ピクセルA4、B4、C4、D4、E4、およびF4を使用して、サブピクセル「d」、「h」、および「l」に対して垂直方向フィルタを適用し得る。残りのサブピクセル、すなわち、2Lサブピクセルについて、動き補償ユニット44および/または動き補償ユニット72は、最初に水平フィルタ処理を適用し、その後に垂直フィルタ処理を適用するか、または最初に垂直フィルタ処理を適用し、その後に水平フィルタ処理を適用し得る。2Lサブピクセルに対して使用される水平フィルタの各々は8タップフィルタであり得、2Lサブピクセルに対して使用される垂直フィルタの各々は6タップフィルタであり得る。
さらに、動き補償ユニット44および/または動き補償ユニット72は、単一の2次元「非分離可能」補間フィルタ使用して、2Lサブピクセルのピクセル値を判断し得る。この場合、フィルタの水平寸法は8つのフィルタ係数を備え得、フィルタの垂直寸法は6つのフィルタ係数を備え得る。
本開示では、例として、8タップフィルタと6タップフィルタ、および8係数フィルタ寸法と6係数フィルタ寸法について説明するが、他のフィルタ長および次元も使用され得、本開示の範囲内であることに留意されたい。たとえば、水平フィルタサポート位置を使用して1Lサブピクセルおよび2Lサブピクセルについてのピクセル値を判断するために、8タップフィルタが使用され得、垂直フィルタサポート位置を使用して1Lサブピクセルおよび2Lサブピクセルについてのピクセル値を判断するために、7タップフィルタが使用され得、またはその逆も同様であり、より長い長さを有するフィルタは、ブロックに関連する走査順序に対して平行に構成されたフィルタサポート位置に対応する。
さらに、水平フィルタサポート位置を使用して2Lサブピクセルについてのピクセル値を判断するために、8つのフィルタ係数を備える水平寸法をもつ2次元フィルタが使用され得、垂直フィルタサポート位置を使用して2Lサブピクセルについてのピクセル値を判断するために、7つのフィルタ係数を備える垂直寸法をもつフィルタが使用され得、またはその逆も同様であり、より長い長さを有するフィルタの次元、または言い換えれば、最大フィルタ係数を含むフィルタの次元は、ブロックに関連する走査順序に対して平行に構成されたフィルタサポート位置に対応する。同様に、より短い長さを有するフィルタ、およびより短い長さを有するフィルタの次元は、走査順序に対して直角に構成されたフィルタサポート位置に対応する。代替的に、他の例では、水平フィルタサポート位置を使用して1Lおよび/または2Lサブピクセルについての値を判断するために、6タップフィルタ、または6つの係数フィルタ寸法が使用され得、垂直フィルタサポート位置を使用して1Lおよび/または2Lサブピクセルについての値を判断するために、4タップフィルタ、および4つの係数フィルタ寸法が使用され得、またはその逆も同様である。
図5は、ビデオデータのブロックについて、参照データに関連する参照整数ピクセルと、補間予測データに関連する水平および垂直「1L」予測サブピクセルとを示す概念図である。図4を参照しながら前に説明したように、サブピクセル「a」、「b」、「c」、「d」、「h」、および「i」を1Lサブピクセルと呼ぶことがある。さらに、サブピクセル「a」、「b」、および「c」を水平1Lサブピクセルと呼ぶことがあり、サブピクセル「d」、「h」、および「l」を垂直1Lサブピクセルと呼ぶことがある。
図6は、ビデオデータのブロックについて、参照データに関連する参照整数ピクセルと、補間予測データに関連する非水平および非垂直「2L」予測サブピクセルとを示す概念図である。図4に関して前に説明したように、サブピクセル「e」、「f」、「g」、「i」、「j」、「k」、「m」、「n」、および「o」を2Lサブピクセルと呼ぶことがある。
図7は、係数対称性をもつ8タップ補間フィルタを示す概念図である。図7は、サブピクセル位置(サブピクセル「b」)に対する8つの水平フィルタサポート位置(整数ピクセルC1〜C8)を示す。図7では、整数ピクセルのシェーディングは、対応する係数と、他の影つきでないない整数ピクセルに対応する係数との間の対称性を示す。特に、サブピクセル「b」の左側の整数ピクセルのシェーディングは、対応する係数がサブピクセル「b」の右側の影つきでない整数ピクセルに対応する係数に対して対称であることを示す。図7の例では、係数対称性は、フィルタサポート位置として整数ピクセルC1〜C8を使用して、サブピクセル「b」を補間するために使用される補間フィルタについてのフィルタ係数の全セットを定義するために、整数ピクセルC1〜C4に対応する4つのフィルタ係数のみが必要とされることを意味する。たとえば、整数ピクセルC1に対応する係数は整数ピクセルC8に対応する係数に対して対称であり、整数ピクセルC2に対応する係数は整数ピクセルC7に対応する係数に対して対称であり、整数ピクセルC3に対応する係数は整数ピクセルC6に対応する係数に対して対称であり、整数ピクセルC4に対応する係数は整数ピクセルC5に対応する係数に対して対称である。したがって、サブピクセル「b」を補間するために必要とされる8つのフィルタ係数の全セットを定義するためには、4つの係数のみが、符号化されたビデオビットストリームの一部としてビデオエンコーダ20によってビデオデコーダ30にシグナリングされるか、またはビデオエンコーダ20とビデオデコーダ30とにローカルに記憶される必要がある。残りの係数は、通信または記憶された係数に基づいて、ビデオデコーダ30において(および、いくつかの場合ではビデオエンコーダ20において)生成され得る。特に、ビデオエンコーダ20および/またはビデオデコーダ30は、係数対称性が存在することを検出し、通信または記憶された係数に基づいて残りの係数を生成するようにプログラムされ得る。
図8は、係数対称性をもたない8タップ補間フィルタを示す概念図である。図8は、サブピクセル位置(サブピクセル「a」)に対する8つの水平フィルタサポート位置(整数ピクセルC1〜C8)を示す。係数対称性の欠如により、フィルタサポート位置として整数ピクセルC1〜C8を使用して、サブピクセル「a」を補間するために使用される補間フィルタについてのフィルタ係数の全セットを定義するために、整数ピクセルC1〜C8に対応する8つのフィルタ係数が通信される必要がある。しかしながら、サブピクセル「a」を補間するために導出された同じフィルタ係数が(図4および図5に示したように)サブピクセル「c」を補間するために使用され得る点で、係数対称性は依然として当てはまり得る。たとえば、サブピクセル「a」を補間するときに整数ピクセルC1に対応する係数は、サブピクセル「c」を補間するときに整数ピクセルC8に対応する係数であり得、サブピクセル「a」を補間するときに整数ピクセルC2に対応する係数は、サブピクセル「c」を補間するときに整数ピクセルC7に対応する係数であり得、サブピクセル「a」を補間するときに整数ピクセルC3に対応する係数は、サブピクセル「c」を補間するときに整数ピクセルC6に対応する係数であり得、サブピクセル「a」を補間するときに整数ピクセルC4に対応する係数は、サブピクセル「c」を補間するときに整数ピクセルC5に対応する係数であり得るように、整数ピクセルC1〜C8に対応するサブピクセル「a」を補間するために使用される8つのフィルタ係数は、係数を「反転する」ことによってサブピクセル「c」を補間するために使用され得る。したがって、この場合も、サブピクセル「a」およびサブピクセル「c」の各々を補間するために必要とされる8つのフィルタ係数の全セットを定義するために、8つの係数のみが、符号化されたビデオビットストリームの一部としてビデオエンコーダ20によってビデオデコーダ30に通信されるか、またはビデオエンコーダ20およびビデオデコーダ30にローカルに記憶される必要がある。残りの係数は、通信または記憶された係数に基づいて、ビデオデコーダ30において(および、いくつかの場合ではビデオエンコーダ20において)生成され得る。特に、ビデオエンコーダ20および/またはビデオデコーダ30は、係数対称性が存在することを検出し、通信または記憶された係数に基づいて、たとえば、説明したように係数を反転することによって残りの係数を生成するようにプログラムされ得る。
図7および図8の例は、水平補間フィルタの例を示す。図7および図8の各々の補間フィルタは、サブピクセル位置(すなわち、サブピクセル「b」または「a」)に対するビデオデータの参照ブロック(たとえば、図4に示した参照ブロック)内の8つの水平フィルタサポート位置(整数ピクセルC1〜C8)に対応する8つのフィルタ係数を含む。
図9は、係数対称性をもつ6タップ補間フィルタを示す概念図である。図9は、サブピクセル位置(サブピクセル「h」)に対する6つの垂直フィルタサポート位置(整数ピクセルA4、B4、C4、D4、E4、およびF4)を示す。この場合も、図9の例では、係数対称性は、フィルタサポート位置として整数ピクセルA4、B4、C4、D4、E4、およびF4を使用して、サブピクセル「h」を補間するために使用される補間フィルタについてのフィルタ係数の全セットを定義するために、整数ピクセルA4、B4、およびC4に対応する3つのフィルタ係数のみが必要とされることを意味する。たとえば、整数ピクセルA4に対応する係数は、整数ピクセルF4に対応する係数に対して対称であり、整数ピクセルB4に対応する係数は、整数ピクセルE4に対応する係数に対して対称であり、整数ピクセルC4に対応する係数は、整数ピクセルD4に対応する係数に対して対称である。したがって、サブピクセル「h」を補間するために必要とされる6つのフィルタ係数の全セットを定義するために、3つの係数のみが、符号化されたビデオビットストリームの一部としてビデオエンコーダ20によってビデオデコーダ30に通信されるか、またはビデオエンコーダ20とビデオデコーダ30とにローカルに記憶される必要がある。残りの係数は、通信または記憶された係数に基づいて、ビデオデコーダ30において(および、いくつかの場合ではビデオエンコーダ20において)生成され得る。特に、ビデオエンコーダ20および/またはビデオデコーダ30は、係数対称性が存在することを検出し、通信または記憶された係数に基づいて残りの係数を生成するようにプログラムされ得る。
図10は、係数対称性をもたない6タップ補間フィルタを示す概念図である。図10は、サブピクセル位置(サブピクセル「d」)に対する6つの垂直フィルタサポート位置(整数ピクセルA4、B4、C4、D4、E4、およびF4)を示す。この場合も、フィルタサポート位置として整数ピクセルA4、B4、C4、D4、E4、およびF4を使用して、サブピクセル「d」を補間するために使用される補間フィルタについてのフィルタ係数の全セットを定義するために、整数ピクセルA4、B4、C4、D4、E4、およびF4に対応するすべての6つのフィルタ係数が必要とされる。しかしながら、サブピクセル「d」を補間するために導出された同じフィルタ係数が(図4および図5に示したように)サブピクセル「l」を補間するために使用され得る点で、係数対称性は依然として当てはまり得る。たとえば、サブピクセル「d」を補間するときに整数ピクセルA4に対応する係数は、サブピクセル「l」を補間するときに整数ピクセルF4に対応する係数であり得、サブピクセル「d」を補間するときに整数ピクセルB4に対応する係数は、サブピクセル「l」を補間するときに整数ピクセルE4に対応する係数であり得、サブピクセル「d」を補間するときに整数ピクセルC4に対応する係数は、サブピクセル「l」を補間するときに整数ピクセルD4に対応する係数であり得るように、整数ピクセルA4、B4、C4、D4、E4、およびF4に対応するサブピクセル「d」を補間するために使用される6つのフィルタ係数は、係数を反転することによってサブピクセル「l」を補間するために使用され得る。したがって、この場合も、サブピクセル「d」およびサブピクセル「l」の各々を補間するために必要とされる6つのフィルタ係数の全セットを定義するために、6つの係数のみが、符号化されたビデオビットストリームの一部としてビデオエンコーダ20によってビデオデコーダ30に通信されるか、またはビデオエンコーダ20およびビデオデコーダ30にローカルに記憶される必要がある。残りの係数は、通信または記憶された係数に基づいて、ビデオデコーダ30において(および、いくつかの場合ではビデオエンコーダ20において)生成され得る。特に、ビデオエンコーダ20および/またはビデオデコーダ30は、係数対称性が存在することを検出し、通信または記憶された係数に基づいて、たとえば、説明したように係数を反転することによって残りの係数を生成するようにプログラムされ得る。
図9および図10の例は、垂直補間フィルタの例を示す。図9および図10の各々の補間フィルタは、サブピクセル位置(すなわち、サブピクセル「h」または「d」)に対するビデオデータの参照ブロック(たとえば、図4に示す参照ブロック)内の6つの垂直フィルタサポート位置(整数ピクセルA4、B4、C4、D4、E4、およびF4)に対応する6つのフィルタ係数を含む。
図11は、本開示の技法に一致する、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックを符号化する方法の例を示す流れ図である。図11の技法は、概して、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せのいずれで実装されるかにかかわらず、任意の処理ユニットまたはプロセッサによって実行され得、ソフトウェアまたはファームウェアで実装されるとき、ソフトウェアまたはファームウェアのための命令を実行するために、対応するハードウェアが提供され得る。例として、図11の技法について、ビデオエンコーダ20(図1および図2)に関して説明するが、他のデバイスが同様の技法を実行するように構成され得ることを理解されたい。その上、図11に示すステップは、異なる順序でまたは並列に実行され得、本開示の技法から逸脱することなく、追加のステップが追加され、いくつかのステップが省略され得る。
ビデオエンコーダ20は、ビデオデータの1つまたは複数のブロックを符号化し得る。最初に、いくつかの例では、ビデオエンコーダ20は、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得する(1100)。たとえば、ブロックは、前に説明したように、マクロブロック、またはCUのTUであり得る。前にも説明したように、ピクセルのブロックは、ビデオデータの特定のブロックを符号化するための予測ブロックを生成するために使用されるビデオデータの参照ブロックを備え得る。
ビデオエンコーダ20は、さらに、ブロック内のフィルタサポート位置の第1のセットに対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって、第1のサブピクセル値を計算する(1102)。さらに、ビデオエンコーダ20は、ブロック内のフィルタサポート位置の第2のセットに対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することによって、第2のサブピクセル値を計算する。ブロックに関連する走査順序に基づいて第2の1次元アレイよりも多いフィルタ係数を備えるように第1の1次元アレイを選択する(1104)。
ビデオエンコーダ20は、さらに、計算されたサブピクセル値のうちの1つまたは複数に基づいてピクセルの予測ブロックを生成する(1106)。たとえば、ピクセルの予測ブロック(prediction block)を「予測ブロック(predictive block)」と呼ぶことがあり、上記で説明したようにビデオデータのブロックを符号化するために使用され得る。
いくつかの例では、ビデオエンコーダ20は、さらに、符号化されるべきピクセルのブロックを受信し、ピクセルの残差ブロックを生成するために符号化されるべきピクセルのブロックから予測ブロックを減算し、残差ブロックを符号化する(1108)。たとえば、符号化されるべきピクセルのブロックはまた、前にも説明したように、マクロブロック、またはCUのTUであり得る。
最後に、いくつかの例では、ビデオエンコーダ20は、第1および第2の1次元アレイの各々内に含まれるいくつかのフィルタ係数のうちの1つまたは複数を識別する1つまたは複数のシグナリングビットと、フィルタ係数の各々の値とを符号化する(1110)。
このようにして、図11の方法は、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得することと、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算することであって、サブピクセル値を計算することが、ブロック内のフィルタサポート位置の第1のセットに対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって、第1のサブピクセル値を計算することと、ブロック内のフィルタサポート位置の第2のセットに対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することによって、第2のサブピクセル値を計算することとを含み、第1の1次元アレイが、ブロックに関連する走査順序に基づいて第2の1次元アレイよりも多いフィルタ係数を備えるように選択される、サブピクセル値を計算することと、計算されたサブピクセル値のうちの1つまたは複数に基づいてピクセルの予測ブロックを生成することとを含む、ビデオデータのブロックをコーディングする方法の例を表す。
図12は、本開示の技法に一致する、適応タップサイズをもつ低複雑度補間フィルタを使用してビデオデータのブロックを復号する方法の例を示す流れ図である。図12の技法は、概して、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せのいずれで実装されるかにかかわらず、任意の処理ユニットまたはプロセッサによって実行され得、ソフトウェアまたはファームウェアで実装されるとき、ソフトウェアまたはファームウェアのための命令を実行するために、対応するハードウェアが提供され得る。例として、図12の技法について、ビデオデコーダ30(図1および図3)に関して説明するが、他のデバイスが同様の技法を実行するように構成され得ることを理解されたい。その上、図12に示すステップは、異なる順序でまたは並列に実行され得、本開示の技法から逸脱することなく、追加のステップが追加され、いくつかのステップが省略され得る。
ビデオデコーダ30は、ビデオデータの1つまたは複数のブロックを復号し得る。最初に、いくつかの例では、ビデオデコーダ30は、フィルタ係数の第1および第2の1次元アレイの各々内に含まれるいくつかのフィルタ係数のうちの1つまたは複数を識別する1つまたは複数のシグナリングビットと、フィルタ係数の各々の値とを復号する(1200)。
ビデオデコーダ30は、さらに、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得する(1202)。たとえば、ブロックは、前に説明したように、マクロブロック、またはCUのTUであり得る。前にも説明したように、ピクセルのブロックは、ビデオデータの特定のブロックを復号するための予測ブロックを生成するために使用されるビデオデータの参照ブロックを備え得る。
ビデオデコーダ30は、さらに、ブロック内のフィルタサポート位置の第1のセットに対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって、第1のサブピクセル値を計算する(1204)。さらに、ビデオデコーダ30は、さらに、ブロック内のフィルタサポート位置の第2のセットに対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することによって、第2のサブピクセル値を計算する。ブロックに関連する走査順序に基づいて第2の1次元アレイよりも多いフィルタ係数を備えるように第1の1次元アレイを選択する(1206)。
ビデオデコーダ30は、さらに、計算されたサブピクセル値のうちの1つまたは複数に基づいてピクセルの予測ブロックを生成する(1208)。たとえば、ピクセルの予測ブロック(prediction block)を「予測ブロック(predictive block)」と呼ぶことがあり、上記で説明したようにビデオデータのブロックを復号するために使用することがある。
最後に、いくつかの例では、ビデオデコーダ30は、ピクセルの符号化された残差ブロックを受信し、その残差ブロックを復号し、ピクセルの復号されたブロックを生成するために復号された残差ブロックを予測ブロックに加算する(1210)。たとえば、ピクセルの復号されたブロックはまた、前にも説明したように、マクロブロック、またはCUのTUであり得る。
このようにして、図12の方法は、ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得することと、ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算することであって、サブピクセル値を計算することが、ブロック内のフィルタサポート位置の第1のセットに対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって、第1のサブピクセル値を計算することと、ブロック内のフィルタサポート位置の第2のセットに対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することによって、第2のサブピクセル値を計算することとを含み、第1の1次元アレイが、ブロックに関連する走査順序に基づいて第2の1次元アレイよりも多いフィルタ係数を備えるように選択される、サブピクセル値を計算することと、計算されたサブピクセル値のうちの1つまたは複数に基づいてピクセルの予測ブロックを生成することとを含む、ビデオデータのブロックをコーディングする方法の例を表す。
1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびブルーレイ(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用ハードウェアおよび/またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示した技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明したように1つまたは複数のプロセッサを含んで、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に本件出願当初の特許請求の範囲を付記する。
[C1]
ビデオデータのブロックをコーディングする方法であって、前記方法が、
前記ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得することと、
前記ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算することであって、前記サブピクセル値を計算することが、
前記ブロック内のフィルタサポート位置の第1のセットに対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって、第1のサブピクセル値を計算することと、
前記ブロック内のフィルタサポート位置の第2のセットに対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することによって、第2のサブピクセル値を計算することと
を備え、
前記第1の1次元アレイが、前記ブロックに関連する走査順序に基づいて前記第2の1次元アレイよりも多いフィルタ係数を備えるように選択される、サブピクセル値を計算することと、
前記計算されたサブピクセル値のうちの1つまたは複数に基づいてピクセルの予測ブロックを生成することと
を備える、方法。
[C2]
フィルタサポート位置の前記第1のセットが、前記走査順序に対して平行に構成されたフィルタサポート位置を備え、フィルタサポート位置の前記第2のセットが、前記走査順序に対して直角に構成されたフィルタサポート位置を備える、[C1]に記載の方法。
[C3]
フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの1つが、前記ブロック内の共通の行に構成された水平フィルタサポート位置のセットを備え、フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの別の1つが、前記ブロック内の共通の列に構成された垂直フィルタサポート位置のセットを備える、[C1]記載の方法。
[C4]
フィルタ係数の前記第1の1次元アレイが8つの係数を備え、
フィルタ係数の前記第2の1次元アレイが6つの係数を備える[C1]に記載の方法。
[C5]
フィルタ係数の前記第1の1次元アレイが8つの係数を備え、
フィルタ係数の前記第2の1次元アレイが7つの係数を備える
[C1]に記載の方法。
[C6]
フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの少なくとも1つが、前記ブロック内の整数ピクセル位置のセットに対応する、[C1]に記載の方法。
[C7]
前記第1のサブピクセルと前記第2のサブピクセルとのうちの少なくとも1つが、前記ブロック内の整数ピクセル位置との共通の水平軸と、前記ブロック内の整数ピクセル位置との共通の垂直軸とのうちの1つの上にある、[C1]に記載の方法。
[C8]
以下の条件、すなわち、
フィルタサポート位置の前記第1のセットのうちの前記フィルタサポート位置のうちの1つが、前記第2のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと、
フィルタサポート位置の前記第2のセットのうちの前記フィルタサポート位置のうちの1つが、前記第1のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと
のうちの1つが満たされる、[C1]に記載の方法。
[C9]
前記第1および第2の1次元アレイの各々内に含まれるいくつかの前記フィルタ係数のうちの1つまたは複数を識別する1つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングすることをさらに備える、[C1]に記載の方法。
[C10]
前記ブロックに関連する前記サブピクセル位置に対応する前記サブピクセル値を計算することが、
前記ブロック内のフィルタサポート位置の2次元セットに対応するフィルタ係数の2次元アレイを定義する第3の補間フィルタを適用することによって、第3のサブピクセル値を計算することをさらに備え、
フィルタ係数の前記2次元アレイの水平寸法と垂直寸法とのうちの1つが、前記ブロックに関連する前記走査順序に基づいて前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの別の1つよりも多いフィルタ係数を備えるように選択される[C1]に記載の方法。
[C11]
より多いフィルタ係数を備えるように選択された前記水平寸法と前記垂直寸法とのうちの前記1つが、前記走査順序に対して平行である、[C10]に記載の方法。
[C12]
フィルタ係数の前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記1つが8つの係数を備え、
前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の1つが6つの係数を備える
[C10]に記載の方法。
[C13]
フィルタ係数の前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記1つが8つの係数を備え、
前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の1つが7つの係数を備える
[C10]に記載の方法。
[C14]
前記2次元アレイ内に含まれるいくつかの前記フィルタ係数のうちの1つまたは複数を識別する1つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングすることをさらに備える、[C10]に記載の方法。
[C15]
前記方法がビデオ符号化プロセスの一部を形成し、ピクセルの前記ブロックがピクセルの参照ブロックを備え、前記方法が、
符号化されるべきピクセルのブロックを受信することであって、符号化されるべきピクセルの前記ブロックがピクセルの前記参照ブロックとは異なる、受信することと、
ピクセルの残差ブロックを生成するために、符号化されるべきピクセルの前記ブロックから前記予測ブロックを減算することと、
前記残差ブロックを符号化することと
をさらに備える、[C1]に記載の方法。
[C16]
前記方法がビデオ復号プロセスの一部を形成し、ピクセルの前記ブロックがピクセルの前記参照ブロックを備え、前記方法が、
ピクセルの符号化された残差ブロックを受信することと、
前記残差ブロックを復号することと、
ピクセルの復号されたブロックを生成するために前記復号された残差ブロックを前記予測ブロックに加算することであって、ピクセルの前記復号されたブロックがピクセルの前記参照ブロックとは異なる、加算することと
をさらに備える、[C1]に記載の方法。
[C17]
ビデオデータのブロックをコーディングするための装置であって、前記装置がビデオコーダを備え、前記ビデオコーダが、
前記ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得することと、
前記ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算することと
を行うように構成され、前記サブピクセル値を計算するために、前記ビデオコーダが、
前記ブロック内のフィルタサポート位置の第1のセットに対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって、第1のサブピクセル値を計算することと、
前記ブロック内のフィルタサポート位置の第2のセットに対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することによって、第2のサブピクセル値を計算することとを行うように構成され、
前記第1の1次元アレイが、前記ブロックに関連する走査順序に基づいて前記第2の1次元アレイよりも多いフィルタ係数を備えるように選択され、前記ビデオコーダが、
前記計算されたサブピクセル値のうちの1つまたは複数に基づいてピクセルの予測ブロックを生成すること
を行うように構成された、装置。
[C18]
フィルタサポート位置の前記第1のセットが、前記ブロックに関連する走査順序に対して平行に構成されたフィルタサポート位置を備え、フィルタサポート位置の前記第2のセットが、前記走査順序に対して直角に構成されたフィルタサポート位置を備える、[C17]に記載の装置。
[C19]
フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの1つが、前記ブロック内の共通の行に構成された水平フィルタサポート位置のセットを備え、フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの別の1つが、前記ブロック内の共通の列に構成された垂直フィルタサポート位置のセットを備える、[C17]に記載の装置。
[C20]
フィルタ係数の前記第1の1次元アレイが8つの係数を備え、
フィルタ係数の前記第2の1次元アレイが6つの係数を備える[C17]に記載の装置。
[C21]
フィルタ係数の前記第1の1次元アレイが8つの係数を備え、
フィルタ係数の前記第2の1次元アレイが7つの係数を備える
[C17]に記載の装置。
[C22]
フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの少なくとも1つが、前記ブロック内の整数ピクセル位置のセットに対応する、[C17]に記載の装置。
[C23]
前記第1のサブピクセルと前記第2のサブピクセルとのうちの少なくとも1つが、前記ブロック内の整数ピクセル位置との共通の水平軸と、前記ブロック内の整数ピクセル位置との共通の垂直軸とのうちの1つの上にある、[C17]に記載の装置。
[C24]
以下の条件、すなわち、
フィルタサポート位置の前記第1のセットのうちの前記フィルタサポート位置のうちの1つが、前記第2のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと、
フィルタサポート位置の前記第2のセットのうちの前記フィルタサポート位置のうちの1つが、前記第1のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと
のうちの1つが満たされる、[C17]に記載の装置。
[C25]
前記ビデオコーダが、
前記第1および第2の1次元アレイの各々内に含まれるいくつかの前記フィルタ係数のうちの1つまたは複数を識別する1つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングする
ようにさらに構成された、[C17]に記載の装置。
[C26]
前記ブロックに関連する前記サブピクセル位置に対応する前記サブピクセル値を計算するために、前記ビデオコーダが、
前記ブロック内のフィルタサポート位置の2次元セットに対応するフィルタ係数の2次元アレイを定義する第3の補間フィルタを適用することによって、第3のサブピクセル値を計算するようにさらに構成され、
フィルタ係数の前記2次元アレイの水平寸法と垂直寸法とのうちの1つが、前記ブロックに関連する前記走査順序に基づいて前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの他方よりも多いフィルタ係数を備えるように選択される
[C17]に記載の装置。
[C27]
より多いフィルタ係数を備えるように選択された前記水平寸法と前記垂直寸法とのうちの前記1つが、前記走査順序に対して平行である、[C26]に記載の装置。
[C28]
フィルタ係数の前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記1つが8つの係数を備え、
前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の1つが6つの係数を備える[C26]に記載の装置。
[C29]
フィルタ係数の前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記1つが8つの係数を備え、
前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の1つが7つの係数を備える[C26]に記載の装置。
[C30]
前記ビデオコーダが、
前記2次元アレイ内に含まれるいくつかの前記フィルタ係数のうちの1つまたは複数を識別する1つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングする
ようにさらに構成された、[C26]に記載の装置。
[C31]
前記ビデオコーダがビデオエンコーダを備え、ピクセルの前記ブロックがピクセルの参照ブロックを備え、前記ビデオエンコーダが、
符号化されるべきピクセルのブロックを受信することであって、符号化されるべきピクセルの前記ブロックがピクセルの前記参照ブロックとは異なる、受信することと、
ピクセルの残差ブロックを生成するために、符号化されるべきピクセルの前記ブロックから前記予測ブロックを減算することと、
前記残差ブロックを符号化することと
を行うようにさらに構成された、[C17に記載の装置。
[C32]
前記ビデオコーダがビデオデコーダを備え、ピクセルの前記ブロックがピクセルの参照ブロックを備え、前記ビデオデコーダが、
ピクセルの符号化された残差ブロックを受信することと、
前記残差ブロックを復号することと、
ピクセルの復号されたブロックを生成するために前記復号された残差ブロックを前記予測ブロックに加算することであって、ピクセルの前記復号されたブロックがピクセルの前記参照ブロックとは異なる、加算することと
を行うようにさらに構成された、[C17]に記載の装置。
[C33]
前記装置が、
集積回路と、
マイクロプロセッサと、
前記ビデオデコーダを含むワイヤレス通信デバイスと
のうちの少なくとも1つを備える、[C17]に記載の装置。
[C34]
ビデオデータのブロックをコーディングするためのデバイスであって、前記デバイスが、
前記ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得するための手段と、
前記ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算するための手段であって、前記サブピクセル値を計算するための前記手段が、
前記ブロック内のフィルタサポート位置の第1のセットに対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって、第1のサブピクセル値を計算するための手段と、
前記ブロック内のフィルタサポート位置の第2のセットに対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することによって、第2のサブピクセル値を計算するための手段と
を備え、
前記第1の1次元アレイが、前記ブロックに関連する走査順序に基づいて前記第2の1次元アレイよりも多いフィルタ係数を備えるように選択される、計算するための手段と、
前記計算されたサブピクセル値のうちの1つまたは複数に基づいてピクセルの予測ブロックを生成するための手段と
を備える、デバイス。
[C35]
フィルタサポート位置の前記第1のセットが、前記走査順序に対して平行に構成されたフィルタサポート位置を備え、フィルタサポート位置の前記第2のセットが、前記走査順序に対して直角に構成されたフィルタサポート位置を備える、[C34]に記載のデバイス。
[C36]
フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの1つが、前記ブロック内の共通の行に構成された水平フィルタサポート位置のセットを備え、フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの別の1つが、前記ブロック内の共通の列に構成された垂直フィルタサポート位置のセットを備える、[C34]に記載のデバイス。
[C37]
フィルタ係数の前記第1の1次元アレイが8つの係数を備え、
フィルタ係数の前記第2の1次元アレイが6つの係数を備える
[C34]に記載のデバイス。
[C38]
フィルタ係数の前記第1の1次元アレイが8つの係数を備え、
フィルタ係数の前記第2の1次元アレイが7つの係数を備える
[C34]に記載のデバイス。
[C39]
フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの少なくとも1つが、前記ブロック内の整数ピクセル位置のセットに対応する、[C34]に記載のデバイス。
[C40]
前記第1のサブピクセルと前記第2のサブピクセルとのうちの少なくとも1つが、前記ブロック内の整数ピクセル位置との共通の水平軸と、前記ブロック内の整数ピクセル位置との共通の垂直軸とのうちの1つの上にある、[C34]に記載のデバイス。
[C41]
以下の条件、すなわち、
フィルタサポート位置の前記第1のセットのうちの前記フィルタサポート位置のうちの1つが、前記第2のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと、
フィルタサポート位置の前記第2のセットのうちの前記フィルタサポート位置のうちの1つが、前記第1のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと
のうちの1つが満たされる、[C34]に記載のデバイス。
[C42]
前記第1および第2の1次元アレイの各々内に含まれるいくつかの前記フィルタ係数のうちの1つまたは複数を識別する1つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングするための手段
をさらに備える、[C34]に記載のデバイス。
[C43]
前記ブロックに関連する前記サブピクセル位置に対応する前記サブピクセル値を計算するための前記手段が、
前記ブロック内のフィルタサポート位置の2次元セットに対応するフィルタ係数の2次元アレイを定義する第3の補間フィルタを適用することによって、第3のサブピクセル値を計算するための手段をさらに備え、
フィルタ係数の前記2次元アレイの水平寸法と垂直寸法とのうちの1つが、前記ブロックに関連する前記走査順序に基づいて前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの別の1つよりも多いフィルタ係数を備えるように選択される
[C34]に記載のデバイス。
[C44]
より多いフィルタ係数を備えるように選択された前記水平寸法と前記垂直寸法とのうちの前記1つが、前記走査順序に対して平行である、[C43]に記載のデバイス。
[C45]
フィルタ係数の前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記1つが8つの係数を備え、
前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の1つが6つの係数を備える
[C43]に記載のデバイス。
[C46]
フィルタ係数の前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記1つが8つの係数を備え、
前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の1つが7つの係数を備える
[C43]に記載のデバイス。
[C47]
前記2次元アレイ内に含まれるいくつかの前記フィルタ係数のうちの1つまたは複数を識別する1つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングするための手段
をさらに備える、[C43]に記載のデバイス。
[C48]
前記デバイスがビデオ符号化プロセスの一部として使用され、ピクセルの前記ブロックがピクセルの参照ブロックを備え、前記デバイスが、
符号化されるべきピクセルのブロックを受信するための手段であって、符号化されるべきピクセルの前記ブロックがピクセルの前記参照ブロックとは異なる、受信するための手段と、
ピクセルの残差ブロックを生成するために、符号化されるべきピクセルの前記ブロックから前記予測ブロックを減算するための手段と、
前記残差セグメントを符号化するための手段と
をさらに備える、[C34]に記載のデバイス。
[C49]
前記デバイスがビデオ復号プロセスの一部として使用され、ピクセルの前記ブロックがピクセルの参照ブロックを備え、前記デバイスが、
ピクセルの符号化された残差ブロックを受信するための手段と、
前記残差ブロックを復号するための手段と、
ピクセルの復号されたブロックを生成するために、前記復号された残差ブロックを前記予測ブロックに加算するための手段であって、ピクセルの前記復号されたブロックがピクセルの前記参照ブロックとは異なる、加算するための手段と
をさらに備える、[C34]に記載のデバイス。
[C50]
実行されたとき、プロセッサにビデオデータのブロックをコーディングさせる命令を備えるコンピュータ可読記憶媒体であって、前記命令が、前記プロセッサに、
前記ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得することと、
前記ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算することとを行わせ、前記プロセッサに前記サブピクセル値を計算させる前記命令が、前記プロセッサに、
前記ブロック内のフィルタサポート位置の第1のセットに対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって、第1のサブピクセル値を計算することと、
前記ブロック内のフィルタサポート位置の第2のセットに対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することによって、第2のサブピクセル値を計算することとを行わせ、
前記第1の1次元アレイが、前記ブロックに関連する走査順序に基づいて前記第2の1次元アレイよりも多いフィルタ係数を備えるように選択され、前記命令が、前記プロセッサに、
前記計算されたサブピクセル値のうちの1つまたは複数に基づいてピクセルの予測ブロックを生成すること
を行わせる、コンピュータ可読記憶媒体。
[C51]
フィルタサポート位置の前記第1のセットが、前記走査順序に対して平行に構成されたフィルタサポート位置を備え、フィルタサポート位置の前記第2のセットが、前記走査順序に対して直角に構成されたフィルタサポート位置を備える、[C50]に記載のコンピュータ可読記憶媒体。
[C52]
フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの1つが、前記ブロック内の共通の行に構成された水平フィルタサポート位置のセットを備え、フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの別の1つが、前記ブロック内の共通の列に構成された垂直フィルタサポート位置のセットを備える、[C50]に記載のコンピュータ可読記憶媒体。
[C53]
フィルタ係数の前記第1の1次元アレイが8つの係数を備え、
フィルタ係数の前記第2の1次元アレイが6つの係数を備える
[C50]に記載のコンピュータ可読記憶媒体。
[C54]
フィルタ係数の前記第1の1次元アレイが8つの係数を備え、
フィルタ係数の前記第2の1次元アレイが7つの係数を備える
[C44]に記載のコンピュータ可読記憶媒体。
[C55]
フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの少なくとも1つが、前記ブロック内の整数ピクセル位置のセットに対応する、[C50]に記載のコンピュータ可読記憶媒体。
[C56]
前記第1のサブピクセルと前記第2のサブピクセルとのうちの少なくとも1つが、前記ブロック内の整数ピクセル位置との共通の水平軸と、前記ブロック内の整数ピクセル位置との共通の垂直軸とのうちの1つの上にある、[C50]に記載のコンピュータ可読記憶媒体。
[C57]
以下の条件、すなわち、
フィルタサポート位置の前記第1のセットのうちの前記フィルタサポート位置のうちの1つが、前記第2のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと、
フィルタサポート位置の前記第2のセットのうちの前記フィルタサポート位置のうちの1つが、前記第1のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと
のうちの1つが満たされる、[C50]に記載のコンピュータ可読記憶媒体。
[C58]
前記プロセッサに、
前記第1および第2の1次元アレイの各々内に含まれるいくつかの前記フィルタ係数のうちの1つまたは複数を識別する1つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングさせる
命令をさらに備える、[C50]に記載のコンピュータ可読記憶媒体。
[C59]
前記プロセッサに、前記ブロックに関連する前記サブピクセル位置に対応する前記サブピクセル値を計算させる前記命令が、前記プロセッサに、
前記ブロック内のフィルタサポート位置の2次元セットに対応するフィルタ係数の2次元アレイを定義する第3の補間フィルタを適用することによって、第3のサブピクセル値を計算させる命令をさらに備え、
前記2次元アレイの水平寸法と垂直寸法とのうちの1つが、前記ブロックに関連する前記走査順序に基づいて前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの別の1つよりも多いフィルタ係数を備えるように選択される、[C50]に記載のコンピュータ可読記憶媒体。
[C60]
より多いフィルタ係数を備えるように選択された前記水平寸法と前記垂直寸法とのうちの前記1つが、前記走査順序に対して平行である、[C59]に記載のコンピュータ可読記憶媒体。
[C61]
フィルタ係数の前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記1つが8つの係数を備え、
前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の1つが6つの係数を備える
[C59]に記載のコンピュータ可読記憶媒体。
[C62]
フィルタ係数の前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記1つが8つの係数を備え、
前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の1つが7つの係数を備える
[C59]に記載のコンピュータ可読記憶媒体。
[C63]
前記プロセッサに、
前記2次元アレイ内に含まれるいくつかの前記フィルタ係数のうちの1つまたは複数を識別する1つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングさせる
命令をさらに備える、[C59]に記載のコンピュータ可読記憶媒体。
[C64]
前記コンピュータ可読記憶媒体がビデオ符号化プロセスの一部として使用され、ピクセルの前記ブロックがピクセルの参照ブロックを備え、前記プロセッサに、
符号化されるべきピクセルのブロックを受信することであって、符号化されるべきピクセルの前記ブロックがピクセルの前記参照ブロックとは異なる、受信することと、
ピクセルの残差ブロックを生成するために、符号化されるべきピクセルの前記ブロックから前記予測ブロックを減算することと、
前記残差ブロックを符号化することと
を行わせる命令をさらに備える、[C50]に記載のコンピュータ可読記憶媒体。
[C65]
前記コンピュータ可読記憶媒体がビデオ復号プロセスの一部として使用され、ピクセルの前記ブロックがピクセルの参照ブロックを備え、前記プロセッサに、
ピクセルの符号化された残差ブロックを受信することと、
前記残差ブロックを復号することと、
ピクセルの復号されたブロックを生成するために、前記復号された残差ブロックを前記予測ブロックに加算することであって、ピクセルの前記復号されたブロックがピクセルの前記参照ブロックとは異なる、加算することと
を行わせる命令をさらに備える、[C50]に記載のコンピュータ可読記憶媒体。

Claims (65)

  1. ビデオデータのブロックをコーディングする方法であって、前記方法が、
    前記ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得することと、
    前記ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算することであって、前記サブピクセル値を計算することが、
    前記ブロック内のフィルタサポート位置の第1のセットに対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって、第1のサブピクセル値を計算することと、
    前記ブロック内のフィルタサポート位置の第2のセットに対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することによって、第2のサブピクセル値を計算することと
    を備え、
    前記第1の1次元アレイが、前記ブロックに関連する走査順序に基づいて前記第2の1次元アレイよりも多いフィルタ係数を備えるように選択される、サブピクセル値を計算することと、
    前記計算されたサブピクセル値のうちの1つまたは複数に基づいてピクセルの予測ブロックを生成することと
    を備える、方法。
  2. フィルタサポート位置の前記第1のセットが、前記走査順序に対して平行に構成されたフィルタサポート位置を備え、フィルタサポート位置の前記第2のセットが、前記走査順序に対して直角に構成されたフィルタサポート位置を備える、請求項1に記載の方法。
  3. フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの1つが、前記ブロック内の共通の行に構成された水平フィルタサポート位置のセットを備え、フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの別の1つが、前記ブロック内の共通の列に構成された垂直フィルタサポート位置のセットを備える、請求項1に記載の方法。
  4. フィルタ係数の前記第1の1次元アレイが8つの係数を備え、
    フィルタ係数の前記第2の1次元アレイが6つの係数を備える
    請求項1に記載の方法。
  5. フィルタ係数の前記第1の1次元アレイが8つの係数を備え、
    フィルタ係数の前記第2の1次元アレイが7つの係数を備える
    請求項1に記載の方法。
  6. フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの少なくとも1つが、前記ブロック内の整数ピクセル位置のセットに対応する、請求項1に記載の方法。
  7. 前記第1のサブピクセルと前記第2のサブピクセルとのうちの少なくとも1つが、前記ブロック内の整数ピクセル位置との共通の水平軸と、前記ブロック内の整数ピクセル位置との共通の垂直軸とのうちの1つの上にある、請求項1に記載の方法。
  8. 以下の条件、すなわち、
    フィルタサポート位置の前記第1のセットのうちの前記フィルタサポート位置のうちの1つが、前記第2のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと、
    フィルタサポート位置の前記第2のセットのうちの前記フィルタサポート位置のうちの1つが、前記第1のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと
    のうちの1つが満たされる、請求項1に記載の方法。
  9. 前記第1および第2の1次元アレイの各々内に含まれるいくつかの前記フィルタ係数のうちの1つまたは複数を識別する1つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングすることをさらに備える、請求項1に記載の方法。
  10. 前記ブロックに関連する前記サブピクセル位置に対応する前記サブピクセル値を計算することが、
    前記ブロック内のフィルタサポート位置の2次元セットに対応するフィルタ係数の2次元アレイを定義する第3の補間フィルタを適用することによって、第3のサブピクセル値を計算することをさらに備え、
    フィルタ係数の前記2次元アレイの水平寸法と垂直寸法とのうちの1つが、前記ブロックに関連する前記走査順序に基づいて前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの別の1つよりも多いフィルタ係数を備えるように選択される
    請求項1に記載の方法。
  11. より多いフィルタ係数を備えるように選択された前記水平寸法と前記垂直寸法とのうちの前記1つが、前記走査順序に対して平行である、請求項10に記載の方法。
  12. フィルタ係数の前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記1つが8つの係数を備え、
    前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の1つが6つの係数を備える
    請求項10に記載の方法。
  13. フィルタ係数の前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記1つが8つの係数を備え、
    前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の1つが7つの係数を備える
    請求項10に記載の方法。
  14. 前記2次元アレイ内に含まれるいくつかの前記フィルタ係数のうちの1つまたは複数を識別する1つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングすること
    をさらに備える、請求項10に記載の方法。
  15. 前記方法がビデオ符号化プロセスの一部を形成し、ピクセルの前記ブロックがピクセルの参照ブロックを備え、前記方法が、
    符号化されるべきピクセルのブロックを受信することであって、符号化されるべきピクセルの前記ブロックがピクセルの前記参照ブロックとは異なる、受信することと、
    ピクセルの残差ブロックを生成するために、符号化されるべきピクセルの前記ブロックから前記予測ブロックを減算することと、
    前記残差ブロックを符号化することと
    をさらに備える、請求項1に記載の方法。
  16. 前記方法がビデオ復号プロセスの一部を形成し、ピクセルの前記ブロックがピクセルの前記参照ブロックを備え、前記方法が、
    ピクセルの符号化された残差ブロックを受信することと、
    前記残差ブロックを復号することと、
    ピクセルの復号されたブロックを生成するために前記復号された残差ブロックを前記予測ブロックに加算することであって、ピクセルの前記復号されたブロックがピクセルの前記参照ブロックとは異なる、加算することと
    をさらに備える、請求項1に記載の方法。
  17. ビデオデータのブロックをコーディングするための装置であって、前記装置がビデオコーダを備え、前記ビデオコーダが、
    前記ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得することと、
    前記ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算することと
    を行うように構成され、前記サブピクセル値を計算するために、前記ビデオコーダが、
    前記ブロック内のフィルタサポート位置の第1のセットに対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって、第1のサブピクセル値を計算することと、
    前記ブロック内のフィルタサポート位置の第2のセットに対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することによって、第2のサブピクセル値を計算することとを行うように構成され、
    前記第1の1次元アレイが、前記ブロックに関連する走査順序に基づいて前記第2の1次元アレイよりも多いフィルタ係数を備えるように選択され、前記ビデオコーダが、
    前記計算されたサブピクセル値のうちの1つまたは複数に基づいてピクセルの予測ブロックを生成すること
    を行うように構成された、装置。
  18. フィルタサポート位置の前記第1のセットが、前記ブロックに関連する走査順序に対して平行に構成されたフィルタサポート位置を備え、フィルタサポート位置の前記第2のセットが、前記走査順序に対して直角に構成されたフィルタサポート位置を備える、請求項17に記載の装置。
  19. フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの1つが、前記ブロック内の共通の行に構成された水平フィルタサポート位置のセットを備え、フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの別の1つが、前記ブロック内の共通の列に構成された垂直フィルタサポート位置のセットを備える、請求項17に記載の装置。
  20. フィルタ係数の前記第1の1次元アレイが8つの係数を備え、
    フィルタ係数の前記第2の1次元アレイが6つの係数を備える
    請求項17に記載の装置。
  21. フィルタ係数の前記第1の1次元アレイが8つの係数を備え、
    フィルタ係数の前記第2の1次元アレイが7つの係数を備える
    請求項17に記載の装置。
  22. フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの少なくとも1つが、前記ブロック内の整数ピクセル位置のセットに対応する、請求項17に記載の装置。
  23. 前記第1のサブピクセルと前記第2のサブピクセルとのうちの少なくとも1つが、前記ブロック内の整数ピクセル位置との共通の水平軸と、前記ブロック内の整数ピクセル位置との共通の垂直軸とのうちの1つの上にある、請求項17に記載の装置。
  24. 以下の条件、すなわち、
    フィルタサポート位置の前記第1のセットのうちの前記フィルタサポート位置のうちの1つが、前記第2のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと、
    フィルタサポート位置の前記第2のセットのうちの前記フィルタサポート位置のうちの1つが、前記第1のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと
    のうちの1つが満たされる、請求項17に記載の装置。
  25. 前記ビデオコーダが、
    前記第1および第2の1次元アレイの各々内に含まれるいくつかの前記フィルタ係数のうちの1つまたは複数を識別する1つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングする
    ようにさらに構成された、請求項17に記載の装置。
  26. 前記ブロックに関連する前記サブピクセル位置に対応する前記サブピクセル値を計算するために、前記ビデオコーダが、
    前記ブロック内のフィルタサポート位置の2次元セットに対応するフィルタ係数の2次元アレイを定義する第3の補間フィルタを適用することによって、第3のサブピクセル値を計算するようにさらに構成され、
    フィルタ係数の前記2次元アレイの水平寸法と垂直寸法とのうちの1つが、前記ブロックに関連する前記走査順序に基づいて前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの他方よりも多いフィルタ係数を備えるように選択される
    請求項17に記載の装置。
  27. より多いフィルタ係数を備えるように選択された前記水平寸法と前記垂直寸法とのうちの前記1つが、前記走査順序に対して平行である、請求項26に記載の装置。
  28. フィルタ係数の前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記1つが8つの係数を備え、
    前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の1つが6つの係数を備える
    請求項26に記載の装置。
  29. フィルタ係数の前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記1つが8つの係数を備え、
    前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の1つが7つの係数を備える
    請求項26に記載の装置。
  30. 前記ビデオコーダが、
    前記2次元アレイ内に含まれるいくつかの前記フィルタ係数のうちの1つまたは複数を識別する1つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングする
    ようにさらに構成された、請求項26に記載の装置。
  31. 前記ビデオコーダがビデオエンコーダを備え、ピクセルの前記ブロックがピクセルの参照ブロックを備え、前記ビデオエンコーダが、
    符号化されるべきピクセルのブロックを受信することであって、符号化されるべきピクセルの前記ブロックがピクセルの前記参照ブロックとは異なる、受信することと、
    ピクセルの残差ブロックを生成するために、符号化されるべきピクセルの前記ブロックから前記予測ブロックを減算することと、
    前記残差ブロックを符号化することと
    を行うようにさらに構成された、請求項17に記載の装置。
  32. 前記ビデオコーダがビデオデコーダを備え、ピクセルの前記ブロックがピクセルの参照ブロックを備え、前記ビデオデコーダが、
    ピクセルの符号化された残差ブロックを受信することと、
    前記残差ブロックを復号することと、
    ピクセルの復号されたブロックを生成するために前記復号された残差ブロックを前記予測ブロックに加算することであって、ピクセルの前記復号されたブロックがピクセルの前記参照ブロックとは異なる、加算することと
    を行うようにさらに構成された、請求項17に記載の装置。
  33. 前記装置が、
    集積回路と、
    マイクロプロセッサと、
    前記ビデオデコーダを含むワイヤレス通信デバイスと
    のうちの少なくとも1つを備える、請求項17に記載の装置。
  34. ビデオデータのブロックをコーディングするためのデバイスであって、前記デバイスが、
    前記ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得するための手段と、
    前記ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算するための手段であって、前記サブピクセル値を計算するための前記手段が、
    前記ブロック内のフィルタサポート位置の第1のセットに対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって、第1のサブピクセル値を計算するための手段と、
    前記ブロック内のフィルタサポート位置の第2のセットに対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することによって、第2のサブピクセル値を計算するための手段と
    を備え、
    前記第1の1次元アレイが、前記ブロックに関連する走査順序に基づいて前記第2の1次元アレイよりも多いフィルタ係数を備えるように選択される、計算するための手段と、
    前記計算されたサブピクセル値のうちの1つまたは複数に基づいてピクセルの予測ブロックを生成するための手段と
    を備える、デバイス。
  35. フィルタサポート位置の前記第1のセットが、前記走査順序に対して平行に構成されたフィルタサポート位置を備え、フィルタサポート位置の前記第2のセットが、前記走査順序に対して直角に構成されたフィルタサポート位置を備える、請求項34に記載のデバイス。
  36. フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの1つが、前記ブロック内の共通の行に構成された水平フィルタサポート位置のセットを備え、フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの別の1つが、前記ブロック内の共通の列に構成された垂直フィルタサポート位置のセットを備える、請求項34に記載のデバイス。
  37. フィルタ係数の前記第1の1次元アレイが8つの係数を備え、
    フィルタ係数の前記第2の1次元アレイが6つの係数を備える
    請求項34に記載のデバイス。
  38. フィルタ係数の前記第1の1次元アレイが8つの係数を備え、
    フィルタ係数の前記第2の1次元アレイが7つの係数を備える
    請求項34に記載のデバイス。
  39. フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの少なくとも1つが、前記ブロック内の整数ピクセル位置のセットに対応する、請求項34に記載のデバイス。
  40. 前記第1のサブピクセルと前記第2のサブピクセルとのうちの少なくとも1つが、前記ブロック内の整数ピクセル位置との共通の水平軸と、前記ブロック内の整数ピクセル位置との共通の垂直軸とのうちの1つの上にある、請求項34に記載のデバイス。
  41. 以下の条件、すなわち、
    フィルタサポート位置の前記第1のセットのうちの前記フィルタサポート位置のうちの1つが、前記第2のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと、
    フィルタサポート位置の前記第2のセットのうちの前記フィルタサポート位置のうちの1つが、前記第1のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと
    のうちの1つが満たされる、請求項34に記載のデバイス。
  42. 前記第1および第2の1次元アレイの各々内に含まれるいくつかの前記フィルタ係数のうちの1つまたは複数を識別する1つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングするための手段
    をさらに備える、請求項34に記載のデバイス。
  43. 前記ブロックに関連する前記サブピクセル位置に対応する前記サブピクセル値を計算するための前記手段が、
    前記ブロック内のフィルタサポート位置の2次元セットに対応するフィルタ係数の2次元アレイを定義する第3の補間フィルタを適用することによって、第3のサブピクセル値を計算するための手段をさらに備え、
    フィルタ係数の前記2次元アレイの水平寸法と垂直寸法とのうちの1つが、前記ブロックに関連する前記走査順序に基づいて前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの別の1つよりも多いフィルタ係数を備えるように選択される
    請求項34に記載のデバイス。
  44. より多いフィルタ係数を備えるように選択された前記水平寸法と前記垂直寸法とのうちの前記1つが、前記走査順序に対して平行である、請求項43に記載のデバイス。
  45. フィルタ係数の前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記1つが8つの係数を備え、
    前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の1つが6つの係数を備える
    請求項43に記載のデバイス。
  46. フィルタ係数の前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記1つが8つの係数を備え、
    前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の1つが7つの係数を備える
    請求項43に記載のデバイス。
  47. 前記2次元アレイ内に含まれるいくつかの前記フィルタ係数のうちの1つまたは複数を識別する1つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングするための手段
    をさらに備える、請求項43に記載のデバイス。
  48. 前記デバイスがビデオ符号化プロセスの一部として使用され、ピクセルの前記ブロックがピクセルの参照ブロックを備え、前記デバイスが、
    符号化されるべきピクセルのブロックを受信するための手段であって、符号化されるべきピクセルの前記ブロックがピクセルの前記参照ブロックとは異なる、受信するための手段と、
    ピクセルの残差ブロックを生成するために、符号化されるべきピクセルの前記ブロックから前記予測ブロックを減算するための手段と、
    前記残差セグメントを符号化するための手段と
    をさらに備える、請求項34に記載のデバイス。
  49. 前記デバイスがビデオ復号プロセスの一部として使用され、ピクセルの前記ブロックがピクセルの参照ブロックを備え、前記デバイスが、
    ピクセルの符号化された残差ブロックを受信するための手段と、
    前記残差ブロックを復号するための手段と、
    ピクセルの復号されたブロックを生成するために、前記復号された残差ブロックを前記予測ブロックに加算するための手段であって、ピクセルの前記復号されたブロックがピクセルの前記参照ブロックとは異なる、加算するための手段と
    をさらに備える、請求項34に記載のデバイス。
  50. 実行されたとき、プロセッサにビデオデータのブロックをコーディングさせる命令を備えるコンピュータ可読記憶媒体であって、前記命令が、前記プロセッサに、
    前記ブロック内の整数ピクセル位置に対応する整数ピクセル値を備えるピクセルのブロックを取得することと、
    前記ブロックに関連するサブピクセル位置に対応するサブピクセル値を計算することとを行わせ、前記プロセッサに前記サブピクセル値を計算させる前記命令が、前記プロセッサに、
    前記ブロック内のフィルタサポート位置の第1のセットに対応するフィルタ係数の第1の1次元アレイを定義する第1の補間フィルタを適用することによって、第1のサブピクセル値を計算することと、
    前記ブロック内のフィルタサポート位置の第2のセットに対応するフィルタ係数の第2の1次元アレイを定義する第2の補間フィルタを適用することによって、第2のサブピクセル値を計算することとを行わせ、
    前記第1の1次元アレイが、前記ブロックに関連する走査順序に基づいて前記第2の1次元アレイよりも多いフィルタ係数を備えるように選択され、前記命令が、前記プロセッサに、
    前記計算されたサブピクセル値のうちの1つまたは複数に基づいてピクセルの予測ブロックを生成すること
    を行わせる、コンピュータ可読記憶媒体。
  51. フィルタサポート位置の前記第1のセットが、前記走査順序に対して平行に構成されたフィルタサポート位置を備え、フィルタサポート位置の前記第2のセットが、前記走査順序に対して直角に構成されたフィルタサポート位置を備える、請求項50に記載のコンピュータ可読記憶媒体。
  52. フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの1つが、前記ブロック内の共通の行に構成された水平フィルタサポート位置のセットを備え、フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの別の1つが、前記ブロック内の共通の列に構成された垂直フィルタサポート位置のセットを備える、請求項50に記載のコンピュータ可読記憶媒体。
  53. フィルタ係数の前記第1の1次元アレイが8つの係数を備え、
    フィルタ係数の前記第2の1次元アレイが6つの係数を備える
    請求項50に記載のコンピュータ可読記憶媒体。
  54. フィルタ係数の前記第1の1次元アレイが8つの係数を備え、
    フィルタ係数の前記第2の1次元アレイが7つの係数を備える
    請求項44に記載のコンピュータ可読記憶媒体。
  55. フィルタサポート位置の前記第1のセットとフィルタサポート位置の前記第2のセットとのうちの少なくとも1つが、前記ブロック内の整数ピクセル位置のセットに対応する、請求項50に記載のコンピュータ可読記憶媒体。
  56. 前記第1のサブピクセルと前記第2のサブピクセルとのうちの少なくとも1つが、前記ブロック内の整数ピクセル位置との共通の水平軸と、前記ブロック内の整数ピクセル位置との共通の垂直軸とのうちの1つの上にある、請求項50に記載のコンピュータ可読記憶媒体。
  57. 以下の条件、すなわち、
    フィルタサポート位置の前記第1のセットのうちの前記フィルタサポート位置のうちの1つが、前記第2のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと、
    フィルタサポート位置の前記第2のセットのうちの前記フィルタサポート位置のうちの1つが、前記第1のサブピクセル値に対応する前記ブロック内のサブピクセル位置に対応することと
    のうちの1つが満たされる、請求項50に記載のコンピュータ可読記憶媒体。
  58. 前記プロセッサに、
    前記第1および第2の1次元アレイの各々内に含まれるいくつかの前記フィルタ係数のうちの1つまたは複数を識別する1つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングさせる
    命令をさらに備える、請求項50に記載のコンピュータ可読記憶媒体。
  59. 前記プロセッサに、前記ブロックに関連する前記サブピクセル位置に対応する前記サブピクセル値を計算させる前記命令が、前記プロセッサに、
    前記ブロック内のフィルタサポート位置の2次元セットに対応するフィルタ係数の2次元アレイを定義する第3の補間フィルタを適用することによって、第3のサブピクセル値を計算させる命令をさらに備え、
    前記2次元アレイの水平寸法と垂直寸法とのうちの1つが、前記ブロックに関連する前記走査順序に基づいて前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの別の1つよりも多いフィルタ係数を備えるように選択される、請求項50に記載のコンピュータ可読記憶媒体。
  60. より多いフィルタ係数を備えるように選択された前記水平寸法と前記垂直寸法とのうちの前記1つが、前記走査順序に対して平行である、請求項59に記載のコンピュータ可読記憶媒体。
  61. フィルタ係数の前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記1つが8つの係数を備え、
    前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の1つが6つの係数を備える
    請求項59に記載のコンピュータ可読記憶媒体。
  62. フィルタ係数の前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記1つが8つの係数を備え、
    前記2次元アレイの前記水平寸法と前記垂直寸法とのうちの前記他の1つが7つの係数を備える
    請求項59に記載のコンピュータ可読記憶媒体。
  63. 前記プロセッサに、
    前記2次元アレイ内に含まれるいくつかの前記フィルタ係数のうちの1つまたは複数を識別する1つまたは複数のシグナリングビットと、前記フィルタ係数の各々の値とをコーディングさせる
    命令をさらに備える、請求項59に記載のコンピュータ可読記憶媒体。
  64. 前記コンピュータ可読記憶媒体がビデオ符号化プロセスの一部として使用され、ピクセルの前記ブロックがピクセルの参照ブロックを備え、前記プロセッサに、
    符号化されるべきピクセルのブロックを受信することであって、符号化されるべきピクセルの前記ブロックがピクセルの前記参照ブロックとは異なる、受信することと、
    ピクセルの残差ブロックを生成するために、符号化されるべきピクセルの前記ブロックから前記予測ブロックを減算することと、
    前記残差ブロックを符号化することと
    を行わせる命令をさらに備える、請求項50に記載のコンピュータ可読記憶媒体。
  65. 前記コンピュータ可読記憶媒体がビデオ復号プロセスの一部として使用され、ピクセルの前記ブロックがピクセルの参照ブロックを備え、前記プロセッサに、
    ピクセルの符号化された残差ブロックを受信することと、
    前記残差ブロックを復号することと、
    ピクセルの復号されたブロックを生成するために、前記復号された残差ブロックを前記予測ブロックに加算することであって、ピクセルの前記復号されたブロックがピクセルの前記参照ブロックとは異なる、加算することと
    を行わせる命令をさらに備える、請求項50に記載のコンピュータ可読記憶媒体。
JP2013548486A 2011-01-05 2012-01-04 適応タップサイズをもつ低複雑度補間フィルタ処理 Expired - Fee Related JP5805787B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161430101P 2011-01-05 2011-01-05
US61/430,101 2011-01-05
US13/342,901 US9172972B2 (en) 2011-01-05 2012-01-03 Low complexity interpolation filtering with adaptive tap size
US13/342,901 2012-01-03
PCT/US2012/020217 WO2012094414A1 (en) 2011-01-05 2012-01-04 Low complexity interpolation filtering with adaptive tap size

Publications (2)

Publication Number Publication Date
JP2014502822A true JP2014502822A (ja) 2014-02-03
JP5805787B2 JP5805787B2 (ja) 2015-11-10

Family

ID=46380765

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013548486A Expired - Fee Related JP5805787B2 (ja) 2011-01-05 2012-01-04 適応タップサイズをもつ低複雑度補間フィルタ処理

Country Status (7)

Country Link
US (1) US9172972B2 (ja)
EP (1) EP2661888A1 (ja)
JP (1) JP5805787B2 (ja)
KR (1) KR101547742B1 (ja)
CN (1) CN103339939B (ja)
BR (1) BR112013017273A2 (ja)
WO (1) WO2012094414A1 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013067435A1 (en) 2011-11-04 2013-05-10 Huawei Technologies Co., Ltd. Differential pulse code modulation intra prediction for high efficiency video coding
KR20130050149A (ko) * 2011-11-07 2013-05-15 오수미 인터 모드에서의 예측 블록 생성 방법
AU2011253779A1 (en) * 2011-12-01 2013-06-20 Canon Kabushiki Kaisha Estimation of shift and small image distortion
GB2501535A (en) * 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
US10602155B2 (en) 2013-04-29 2020-03-24 Intellectual Discovery Co., Ltd. Intra prediction method and apparatus
US20150016533A1 (en) * 2013-07-12 2015-01-15 Qualcomm Incorporated Intra motion compensation extensions
GB2516426B (en) * 2013-07-17 2015-10-07 Gurulogic Microsystems Oy Encoder, decoder and method of operation using interpolation
GB201318087D0 (en) * 2013-10-11 2013-11-27 Canon Kk Video encoding and decoding
CN106464863B (zh) * 2014-04-01 2019-07-12 联发科技股份有限公司 视频编码中自适应内插滤波的方法
US10461980B2 (en) * 2015-04-02 2019-10-29 Lg Electronics Inc. Method for processing signal in wireless communication system and device therefor
KR102402671B1 (ko) 2015-09-09 2022-05-26 삼성전자주식회사 보간 필터의 연산 복잡도를 조절할 수 있는 영상 처리 장치, 영상 보간 방법 및 영상 부호화 방법
CA2999848C (en) 2015-09-25 2020-08-18 Huawei Technologies Co., Ltd. Apparatus and method for video motion compensation
CN108141602B (zh) 2015-09-25 2021-02-23 华为技术有限公司 视频编解码器、编解码方法和计算机可读存储介质
RU2696314C1 (ru) 2015-09-25 2019-08-01 Хуавэй Текнолоджиз Ко., Лтд. Устройство и способ компенсации движения в видео
CN108370445B (zh) 2015-09-25 2020-02-21 华为技术有限公司 一种视频编码器和视频解码器
MY187403A (en) * 2015-09-25 2021-09-22 Huawei Tech Co Ltd Apparatus and method for video motion compensation with selectable interpolation filter
US10116957B2 (en) * 2016-09-15 2018-10-30 Google Inc. Dual filter type for motion compensated prediction in video coding
US10455253B1 (en) * 2017-02-28 2019-10-22 Google Llc Single direction long interpolation filter
EP3595302B1 (en) 2017-05-31 2021-07-14 LG Electronics Inc. Method and device for performing image decoding on basis of intra prediction in image coding system
US10841610B2 (en) * 2017-10-23 2020-11-17 Avago Technologies International Sales Pte. Limited Block size dependent interpolation filter selection and mapping
SG11202003260WA (en) * 2017-11-07 2020-05-28 Huawei Tech Co Ltd Interpolation filter for an inter prediction apparatus and method for video coding
KR102683411B1 (ko) 2018-10-05 2024-07-10 삼성전자주식회사 복조 대비 성능을 향상시키기 위한 픽셀 구조를 포함하는 이미지 센서 및 이미지 처리 시스템
KR20240006079A (ko) * 2018-10-06 2024-01-12 후아웨이 테크놀러지 컴퍼니 리미티드 보간 필터를 사용하는 인트라 예측을 위한 방법 및 장치
WO2020115355A1 (en) * 2018-12-04 2020-06-11 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
WO2020125628A1 (en) * 2018-12-17 2020-06-25 Beijing Bytedance Network Technology Co., Ltd. Shape dependent interpolation filter
US11363306B2 (en) * 2019-04-05 2022-06-14 Comcast Cable Communications, Llc Methods, systems, and apparatuses for processing video by adaptive rate distortion optimization
CN114402616A (zh) 2019-09-27 2022-04-26 Oppo广东移动通信有限公司 当前块的预测方法及装置、设备、存储介质
EP4128755A4 (en) * 2020-04-29 2023-09-06 Huawei Technologies Co., Ltd. METHOD AND DEVICE FOR INTERPOLATION FILTERING UNDERSAMPLING
CN112540635B (zh) * 2020-12-03 2021-08-17 华润三九(枣庄)药业有限公司 一种基于人工智能的中药生产智能质量控制***
US11562460B1 (en) 2021-06-25 2023-01-24 Meta Platforms, Inc. High performance hardware scaler
US11968356B2 (en) * 2022-03-16 2024-04-23 Qualcomm Incorporated Decoder-side motion vector refinement (DMVR) inter prediction using shared interpolation filters and reference pixels

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004007337A (ja) * 2002-04-25 2004-01-08 Sony Corp 画像処理装置およびその方法
JP2005532725A (ja) * 2002-07-09 2005-10-27 ノキア コーポレイション ビデオ符号化における内挿フィルタタイプの選択方法および選択システム
JP2008113106A (ja) * 2006-10-30 2008-05-15 Victor Co Of Japan Ltd 動きベクトル検出装置及び動きベクトル検出プログラム
WO2008069073A1 (ja) * 2006-11-30 2008-06-12 Ntt Docomo, Inc. 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号化装置、動画像復号化方法及び動画像復号化プログラム
WO2009153104A1 (en) * 2008-06-19 2009-12-23 Thomson Licensing Method for determining a filter for interpolating one or more pixels of a frame
WO2010143583A1 (ja) * 2009-06-09 2010-12-16 ソニー株式会社 画像処理装置および方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1746839A1 (en) 2005-07-22 2007-01-24 Thomson Licensing Method and apparatus for encoding video data
WO2007072644A1 (ja) * 2005-12-19 2007-06-28 Matsushita Electric Industrial Co., Ltd. 2次元フィルタ演算装置及び方法
EP1983759A1 (en) * 2007-04-19 2008-10-22 Matsushita Electric Industrial Co., Ltd. Estimation of separable adaptive interpolation filters for hybrid video coding
WO2009044356A2 (en) * 2007-10-05 2009-04-09 Nokia Corporation Video coding with pixel-aligned directional adaptive interpolation filters
EP2048886A1 (en) * 2007-10-11 2009-04-15 Panasonic Corporation Coding of adaptive interpolation filter coefficients
CN101179726B (zh) * 2007-12-12 2010-09-29 北京中星微电子有限公司 一种运动估计方法及装置
US8705622B2 (en) 2008-04-10 2014-04-22 Qualcomm Incorporated Interpolation filter support for sub-pixel resolution in video coding
US8804831B2 (en) 2008-04-10 2014-08-12 Qualcomm Incorporated Offsets at sub-pixel resolution
US9967590B2 (en) 2008-04-10 2018-05-08 Qualcomm Incorporated Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter
US20090257499A1 (en) 2008-04-10 2009-10-15 Qualcomm Incorporated Advanced interpolation techniques for motion compensation in video coding
US8462842B2 (en) 2008-04-10 2013-06-11 Qualcomm, Incorporated Symmetry for interpolation filtering of sub-pixel positions in video coding
US9077971B2 (en) 2008-04-10 2015-07-07 Qualcomm Incorporated Interpolation-like filtering of integer-pixel positions in video coding
US8831086B2 (en) 2008-04-10 2014-09-09 Qualcomm Incorporated Prediction techniques for interpolation in video coding
US8811484B2 (en) 2008-07-07 2014-08-19 Qualcomm Incorporated Video encoding by filter selection
US8310592B2 (en) * 2008-10-10 2012-11-13 Panasonic Corporation Signal processing apparatus, signal processing method, and program for signal processing
EP2359601B1 (en) 2008-10-31 2016-02-10 Orange Image prediction method and system
WO2010063881A1 (en) 2008-12-03 2010-06-10 Nokia Corporation Flexible interpolation filter structures for video coding
EP2262267A1 (en) 2009-06-10 2010-12-15 Panasonic Corporation Filter coefficient coding scheme for video coding
KR101682147B1 (ko) 2010-04-05 2016-12-05 삼성전자주식회사 변환 및 역변환에 기초한 보간 방법 및 장치
US9219921B2 (en) 2010-04-12 2015-12-22 Qualcomm Incorporated Mixed tap filters

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004007337A (ja) * 2002-04-25 2004-01-08 Sony Corp 画像処理装置およびその方法
JP2005532725A (ja) * 2002-07-09 2005-10-27 ノキア コーポレイション ビデオ符号化における内挿フィルタタイプの選択方法および選択システム
JP2008113106A (ja) * 2006-10-30 2008-05-15 Victor Co Of Japan Ltd 動きベクトル検出装置及び動きベクトル検出プログラム
WO2008069073A1 (ja) * 2006-11-30 2008-06-12 Ntt Docomo, Inc. 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号化装置、動画像復号化方法及び動画像復号化プログラム
WO2009153104A1 (en) * 2008-06-19 2009-12-23 Thomson Licensing Method for determining a filter for interpolating one or more pixels of a frame
WO2010143583A1 (ja) * 2009-06-09 2010-12-16 ソニー株式会社 画像処理装置および方法

Also Published As

Publication number Publication date
US20120170650A1 (en) 2012-07-05
BR112013017273A2 (pt) 2016-10-25
CN103339939B (zh) 2016-08-24
JP5805787B2 (ja) 2015-11-10
US9172972B2 (en) 2015-10-27
CN103339939A (zh) 2013-10-02
KR101547742B1 (ko) 2015-08-26
EP2661888A1 (en) 2013-11-13
KR20130105904A (ko) 2013-09-26
WO2012094414A1 (en) 2012-07-12

Similar Documents

Publication Publication Date Title
JP5805787B2 (ja) 適応タップサイズをもつ低複雑度補間フィルタ処理
JP6843821B2 (ja) ビデオコーディングのための適応的な動きベクトル分解シグナリング
JP6903644B2 (ja) ビデオコーディングのために位置依存の予測組合せを使用する改善されたビデオイントラ予測
KR102503943B1 (ko) 픽처 예측 방법과 장치, 및 코덱
JP5823526B2 (ja) ビデオ符号化のための適応動きベクトル解像度信号伝達
JP6081499B2 (ja) 変換係数コーディングのためのコンテキスト導出における走査ベーススライディングウィンドウ
JP6284954B2 (ja) イントラ予測のためのモード決定の簡略化
JP5587508B2 (ja) ビデオコード化のためのイントラ平滑化フィルタ
JP2019533363A (ja) ビデオコーディングのための動きベクトルコーディング
JP5955955B2 (ja) リーフレベルコード化単位のサブセットについての変換係数のシンタックス要素の信号伝達
JP2017513342A (ja) ゼロアウトされた係数を使用した低複雑な順変換のためのシステムおよび方法
JP2016527789A (ja) イントラ動き補償の拡張
JP2016534644A (ja) イントラブロックコピーのための残差予測
US11765378B2 (en) Video coding method and apparatus
JP5937205B2 (ja) ビデオコーディングのためのランモードベース係数コーディング
US20120163460A1 (en) Sub-pixel interpolation for video coding
JP6316842B2 (ja) 縮小されたラインバッファを有するデブロッキングフィルタ
US11197018B2 (en) Inter-frame prediction method and apparatus

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140703

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140819

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150421

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150716

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150902

R150 Certificate of patent or registration of utility model

Ref document number: 5805787

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees