JPWO2008132828A1 - 二次元適応内挿フィルタのフィルタ係数決定方法 - Google Patents

二次元適応内挿フィルタのフィルタ係数決定方法 Download PDF

Info

Publication number
JPWO2008132828A1
JPWO2008132828A1 JP2009511679A JP2009511679A JPWO2008132828A1 JP WO2008132828 A1 JPWO2008132828 A1 JP WO2008132828A1 JP 2009511679 A JP2009511679 A JP 2009511679A JP 2009511679 A JP2009511679 A JP 2009511679A JP WO2008132828 A1 JPWO2008132828 A1 JP WO2008132828A1
Authority
JP
Japan
Prior art keywords
decimal
filter
pixel
pixel position
filter coefficient
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.)
Withdrawn
Application number
JP2009511679A
Other languages
English (en)
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2008132828A1 publication Critical patent/JPWO2008132828A1/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/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
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/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/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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Abstract

少ない計算量で効率的に適切なフィルタ係数を決定し得る二次元適応内挿フィルタのフィルタ係数決定方法は、対象ピクチャを構成するブロックごとに、参照ピクチャからのそのブロックの画像の動きを動きベクトルとして小数画素精度で検出する動き検出ステップ(S100)と、検出された小数画素精度の動きベクトルを有する複数のブロックの中から、参照ピクチャ上の小数画素位置(p,q)を示す動きベクトルを有する1つ以上のブロックを特定する特定ステップ(S102)と、特定ステップで特定された1つ以上のブロックの画像と、その1つ以上のブロックの動きベクトルにより示される参照ピクチャ上の1つ以上のブロックの画像とに基づいて、小数画素位置(p,q)のフィルタ係数を決定する決定ステップ(S104)とを含む。

Description

本発明は、動画像データを圧縮するための方法に関し、特に、動き補償のための適応内挿フィルタのフィルタ係数を決定する方法に関する。
動画像データは、多くの増大するアプリケーション、つまりテレビ電話やテレビ会議からDVD(Digital Versatile Disk)やデジタルテレビジョンに至るまで採用されている。動画像データが送信されているときには、かなりのデータ量が、限られた周波数帯域の従来の伝送チャネルを通して送信されなければならず、動画像データが記録されているときには、かなりのデータ量が、限られた容量の従来の記憶媒体に記録されなければならない。従来のチャネルやメディアを用いて、デジタルデータを送信したり記録したりするためには、デジタルデータのボリュームを圧縮するか、減らすことが、必然的である。
動画像データの圧縮のために、複数の動画像符号化規格が開発された。たとえば、その規格は、H.26xで示されるITU−T規格と、MPEG−xで示されるISO/IEC規格である。最新で最先進の動画像符号化規格は、現在H.264/MPEG−4AVCとして示される規格である。
大部分のこれらの規格の基礎をなしている符号化のアプローチは、以下に示す(a)〜(d)のメインステージから成る。
(a)各々のビデオフレームをブロックレベルでデータ圧縮するために、個々のビデオフレームをピクセルからなる二次元のブロックに分ける。
(b)時間的予測技術を各々のブロックに適用し、残差予測誤差を空間領域から周波数領域に変えることにより、時空間の動画像情報を無相関化する。
(c)その結果である変換係数を量子化することによってデータの全体的な量を減らす。
(d)量子化された変換係数をエントロピー符号化することによって差分データを圧縮する。
大部分の最新技術の動画像符号化規格によって使用される時間的予測技術は、動き補償である。この予測技術において、オブジェクトやカメラの動きによって生じる画像の動きを表現するために、動画像データの各ブロックに対して1以上の動きベクトルが決定される。決定された動きベクトルに基づいて、ブロックの画像内容は、少なくとも、前に符号化されたブロックの画像内容からの確かな延長として検出される。予測するものと、実際の画像内容との間に残留する矛盾は、予測誤差と呼ばれている。そして、実際の画像内容ではなくその予測誤差が動きベクトルと共に符号化される。このように、符号化される情報の量の相当な減少は、大部分の「自然な」動画像シーケンスに対して実現される。
明らかなように、圧縮効率は動き予測の精度に大きく依存する。H.264/AVCのような現代の動画像符号化規格は、小数画素精度を有する動きベクトルが考慮される。すなわち、その動きベクトルは、画素位置に関連する整数値に制限されず、2つの画素の間の位置を示すことができる。通常、動きベクトルは1/2画素または1/4画素精度で決定される。この場合、動画像解像度は、最初の動画像解像度の2倍または4倍の解像度を有する。小数画素精度を有する動きベクトルは、参照画像内の各サンプルがとられた位置の間の位置を参照することができ、内挿は、予測された画像を計算するために必要である。通常、予め定められた内挿フィルタが、必須の小数画素の画素値を計算するために使用される。
図1は、H.264/AVCにおける動画像符号化装置の一例を示すブロック図である。
この動画像符号化装置300は、固定されたフィルタ係数による二次元内挿フィルタを用い、小数画素精度で動き補償を行う。また、動画像符号化装置300は、入力画像(入力信号)の対象ブロックと、メモリ340に格納されている先に符号化および復号化されたブロック(予測信号)とに基づき、対象ブロックと予測信号との差分を決定する減算器310を備える。具体的には、H.264/AVC規格に従って、入力画像はマクロブロックに分けられる。動画像符号化装置300は、入力画像である入力動画像シーケンスの対象ブロックと、先に符号化および復号化されたブロック(局所的に復号化された画像)に基づく予測信号との間の差分を伝送する差分パルス符号変調(DPCM)を使用する。これらの差分は減算器310で決定される。その減算器310は、符号化される対象ブロックを受け、そこから予測信号を減ずる。
局所的に復号化された画像は、動画像符号化装置300に組み込まれる復号化部(逆量子化/逆変換部330、加算器335およびデブロッキングフィルタ337)によって提供される。復号化部は、符号化ステップを逆の方法で実行する。つまり、逆量子化/逆変換部330は、量子化係数を逆量子化し、逆変換を逆量子化係数に適用する。加算器335は、復号化された差分を予測信号に加え、局所的に復号化された画像を生成する。さらに、デブロッキングフィルタ337は、復号化された画像のブロッキングアーチファクトを減らす。
動画像符号化装置300によって使用される予測のタイプは、マクロブロックが「イントラ」モードまたは「インター」モードで符号化されるかどうかに依存する。「イントラ」モードでは、H.264/AVCは、次のマクロブロックを予測するために、同じ画像の中で既に符号化されたマクロブロックに基づく、予測の仕組みを使用する。「インター」モードでは、連続的ないくつかのフレームの対応するブロック間の動き補償予測が、使用される。
イントラ符号化画像(I−タイプ画像)だけは、いかなる前に復号化された画像にも関係なく復号化される。I−タイプ画像は、誤差回復力を符号化された動画像シーケンスに提供する。さらに、符号化されたデータであるビットストリームへのエントリーポイントは、ランダムアクセスを可能にするために、すなわち、符号化された動画像シーケンスの範囲内でI−タイプ画像にアクセスするために、I−タイプ画像によって提供される。イントラモード(イントラ予測部350による処理)と、インターモード(動き補償予測部360による処理)との間の切り換えは、切換スイッチ380によって制御される。
「インター」モードにおいて、マクロブロックは、動き補償を使用することによって、先行フレームの対応するブロックから予測される。動き検出は、対象入力信号と局所復号画像を受信する動き検出部370によって達成される。この動き検出は、二次元の動きベクトルを検出する。そして、その動きベクトルは、対象ブロックと先行フレームの対応するブロックとの間の画素の動きを示す。検出された動きに基づいて、動き補償予測部360は予測信号を出力する。
予測精度を最適化するために、動きベクトルは小数画素精度(例えば1/2画素または1/4画素精度)で決定される。小数画素精度を有する動きベクトルは、先行フレームの範囲内で画素値が利用できない位置(すなわち小数画素位置)を示している。したがって、画素値の空間内挿が、動き補償を実行するために必要である。H.264/AVC規格によれば、固定フィルタ係数とバイリニア・フィルタを有する6−タップ・ウィーナー内挿フィルタが、小数画素位置の画素値を得るために適用される。
内挿のプロセスは、次のように行われる。
1.1/2画素位置が、水平および垂直に6−タップ・フィルタを使用して算出される。
2.1/4画素位置が、既存の整数画素値と、すでに計算された1/2画素値とを用いたバイリニア・フィルタリングによって算出される。
フィルタ係数は、固定されているため、動画像復号化装置によって公知とされている。したがって、オーバーヘッドデータは、フィルタ係数を動画像復号化装置に送信するためには必要でない。
「イントラ」および「インター」の符号化モードにおいて、対象ブロックと予測信号との差分は、変換/量子化部320によって変換係数に変わる。通常、二次元の離散コサイン変換(DCT)のような直交変換またはそれの整数バージョンが使用される。
変換係数は、符号化データの量を減らすために量子化される。量子化ステップは、精度と、各々の周波数係数を符号化するために用いるビット数とを特定する量子化テーブルによって制御される。通常、低い周波数成分は、微細な内容よりも画質にとって重要であり、その結果、多くのビットが高周波数成分よりも低周波成分を符号化することに費やされる。
量子化係数の二次元の配列は、エントロピー符号化部390に通すために一次元の列に変換される。この変換は、予め定められたシーケンスで、配列をスキャンすることによって行われる。このように得られた量子化係数の一次元のシーケンスは、ラン−レベルと呼ばれている数の組からなる列に圧縮される。最後に、ラン−レベル・シーケンスは、可変長(可変長符号化(VLC))のバイナリーコード名に符号化される。このコードは、より短いコード名が、典型的な動画像に起こっている最も頻出するラン−レベルの組に割り当てられるように最適化される。結果として生じるビットストリームは、動き情報と共に多重化されて記録媒体に保存されるか、動画像復号化装置側に送信される。
動画像復号化装置は、符号化された画像を再構成するために、符号化方法と逆の方法で復号化を行う。
図2は、H.264/AVCにおける動画像復号化装置の一例を示すブロック図である。
動画像復号化装置400は、最初に、エントロピー符号化された量子化係数と動きベクトルとを、エントロピー復号化部490においてエントロピー復号化する。このステップは、逆変換に必要であって、エントロピー復号化された量子化係数のシーケンスを二次元のブロックに配置する逆スキャンを含む。復号化された量子化係数のブロックは、逆量子化/逆変換部420に出力され、復号化された動きベクトルは動き補償予測部460に出力される。動きベクトルの実際の値に従い、画素値の内挿が動き補償を実行するために必要となる。逆量子化および逆変換の結果は予測誤差を含み、加算器435は、その予測誤差を、インターモードでの動き補償予測部460によって生成される予測信号、またはイントラモードでのイントラ予測部450によって生成される予測信号に加える。その結果、再構成された画像はデブロッキングフィルタ437に出力され、デブロッキングフィルタ437で処理された信号は、イントラ予測部450および動き補償予測部460に用いられるメモリ440に保存される。
さらに、H.264/AVCに続く規格では、予測精度と圧縮効率を改善するために、予め定められた内挿フィルタ(二次元固定内挿フィルタ)を、処理対象の動画像の統計特性に特に適している二次元適応内挿フィルタに取り替えることが検討されている。つまり、符号化効率は予測精度にかなり依存し、そして、その予測精度は動き検出と動き補償の精度に依存している。したがって、動き補償に使用される二次元固定内挿フィルタを、動画像の統計特性に適応した二次元適応内挿フィルタに取り替えることによって符号化効率を向上することができる。また、圧縮される動画像データに特有であるエイリアシング・アーチファクトとカメラ・ノイズを低減することができる。
通常、画像処理のための二次元適応内挿フィルタは、分離可能であるか分離不可能であるかに分類される。分離可能な分離型二次元適応内挿フィルタは、2つの一次元フィルタに分離される。2つの一次元フィルタの連続的な使用は、元の二次元適応内挿フィルタを適用することに等しい。分離不可能な非分離型二次元内挿フィルタには、この種の一次元フィルタは存在しない。
分離型二次元適応内挿フィルタは、非分離型二次元適応内挿フィルタと比べて、画像に対してそのフィルタを適用するための係数の数が少ないために、計算的負担が大きくないという点において有利である。例えば、非分離型の場合には、6×6−タップ二次元フィルタは、合計36個の係数を有するのに対し、分離型の場合には、2つの一次元フィルタは合計6+6個の係数だけを有する。
例えば、非特許文献1および非特許文献2には、このような分離型二次元適応内挿フィルタのフィルタ係数を決定する方法が開示されている。非特許文献1および2の方法では、予測画像と対象画像との間の誤差が最小となるように、水平方向の1次元フィルタのフィルタ係数と、垂直方向の1次元フィルタのフィルタ係数とがそれぞれ決定される。
Kimata H. et al "3D adaptive motion vector coding integrated with block-based adaptive interpolation filter" Wedi, Thomas "Advanced motion compensated prediction methods"
しかしながら、上記従来の分離型二次元適応内挿フィルタのフィルタ係数決定方法であっても、フィルタ係数を決定するための計算量が多いという問題がある。つまり、上記従来のフィルタ係数決定方法では、対象画像(対象ブロック)を含むピクチャ全体を考慮して、予測画像と対象画像との間の誤差が最小になるようにフィルタ係数を決定するため、計算量が膨大になってしまうのである。
そこで、本発明は、かかる問題に鑑みてなされたものであって、少ない計算量で効率的に適切なフィルタ係数を決定し得る二次元適応内挿フィルタのフィルタ係数決定方法を提供することを目的とする。
上記目的を達成するために、本発明に係る二次元適応内挿フィルタのフィルタ係数決定方法は、二次元に配置された整数画素の画素値に基づいて、整数画素間に内挿される小数画素の画素値を算出するための二次元適応内挿フィルタのフィルタ係数を決定する方法であって、対象ピクチャを構成するブロックごとに、参照画像からの当該ブロックの画像の動きを動きベクトルとして小数画素精度で検出する動き検出ステップと、前記動き検出ステップによって検出された小数画素精度の動きベクトルを有する複数のブロックの中から、近傍にある整数画素との間で予め定められた相対的位置関係にある前記参照画像上の小数画素位置を示す第1の動きベクトルを有する1つ以上のブロックを特定する第1の特定ステップと、前記第1の特定ステップで特定された1つ以上のブロックの画像と、前記1つ以上のブロックの第1の動きベクトルにより示される参照画像上の1つ以上のブロックの画像とに基づいて、前記小数画素位置のフィルタ係数を決定する第1の決定ステップとを含むことを特徴とする。
例えば、近傍にある整数画素との間で予め定められた相対的位置関係にある小数画素位置が位置(p,q)である場合、参照ピクチャ上の小数画素位置(p,q)を示す第1の動きベクトルを有する複数のブロックが対象ピクチャの中から特定される。なお、位置(p,q)は、互いに隣り合う4つの整数画素に囲われた範囲内における位置、つまり局所座標上の位置を示す。そして、その特定された複数のブロックに基づいて、その小数画素位置(p,q)のフィルタ係数が決定される。このように、本発明では、対象ピクチャを構成する全てのブロックの中から、小数画素位置(p,q)を示す動きベクトルを有するブロックを絞り込み、その絞り込まれた複数のブロックだけに基づいて、小数画素位置(p,q)のフィルタ係数を決定する。したがって、対象ピクチャを構成する全てのブロックの動きベクトルが参照ピクチャ上のあらゆる小数画素位置を示すことを想定し、その全てのブロックの画像に基づいて小数画素位置(p,q)のフィルタ係数を決定することが行われないため、フィルタ係数算出のための計算量を大幅に低減することができ、適切なフィルタ係数を効率的に決定することができる。また、本発明では、フィルタ係数を決定する前に小数画素精度で動きベクトルを検出しているため、フィルタ係数の決定後に改めて小数画素精度の動きベクトルを検出する必要がなく、処理負担を軽減することができる。なお、上述の参照画像は、1枚の参照ピクチャだけでなく、複数の参照ピクチャや、ピクチャを構成するスライスであってもよい。また、第1の決定ステップでは、例えば、対象ピクチャの特定された各ブロックの画像と、その各ブロックの動きベクトルにより指し示される参照画像上の各ブロックの画像とのそれぞれの差分の自乗和が最小になるように、小数画素位置のフィルタ係数が決定される。
また、前記二次元適応内挿フィルタは、水平方向および垂直方向の何れか一方である第1の方向に一次元に配列された複数の画素の間の小数画素位置に内挿される小数画素の画素値を算出するための第1の一次元内挿フィルタと、前記第1の方向と異なる水平方向または垂直方向である第2の方向に一次元に配列された複数の画素の間の小数画素位置に内挿される小数画素の画素値を算出するための第2の一次元内挿フィルタとに分離可能であり、前記第1の特定ステップでは、前記予め定められた相対的位置関係を満たし、前記第1の方向において小数画素位置にあって且つ第2の方向において整数画素位置にある第1の小数画素位置を示す前記第1の動きベクトルを有する1つ以上のブロックを特定し、前記第1の決定ステップでは、前記第1の小数画素位置における前記第1の一次元内挿フィルタのフィルタ係数を決定し、前記フィルタ係数決定方法は、さらに、前記動き検出ステップによって検出された小数画素精度の動きベクトルを有する複数のブロックの中から、近傍にある整数画素との間で他の予め定められた相対的位置関係にあって前記第2の方向において小数画素位置にある前記参照画像上の第2の小数画素位置を示す第2の動きベクトルを有する1つ以上のブロックを特定する第2の特定ステップと、前記第2の特定ステップで特定された1つ以上のブロックの画像と、前記1つ以上のブロックの第2の動きベクトルにより示される参照画像上の1つ以上のブロックの画像とに基づいて、前記第2の小数画素位置における前記第2の一次元内挿フィルタのフィルタ係数を決定する第2の決定ステップとを含むことを特徴としてもよい。
これにより、さらに、二次元適応内挿フィルタのフィルタ係数が、第1および第2の一次元内挿フィルタのフィルタ係数に分離して決定されるため、フィルタ係数算出のための計算量をさらに低減することができる。また、第1の特定ステップおよび第1の決定ステップにより、例えば第1の小数画素位置(p,0)に対する一次元水平内挿フィルタのフィルタ係数が決定され、第2の特定ステップおよび第2の決定ステップにより、例えば第2の小数画素位置(p,q)(但しq≠0)に対する一次元垂直内挿フィルタのフィルタ係数が決定される。その結果、第1の小数画素位置(p,0)および第2の小数画素位置(p,q)の適切なフィルタ係数を少ない計算量で効率的に決定することができる。なお、例えば、1/4画素精度の場合、pをp=1,…,3に変化させることで、全ての第1の小数画素位置(p,0)のフィルタ係数を算出することができ、pをp=0,…,3に変化させてqをq=1,…,3に変化させることで、全ての第2の小数画素位置(p,q)のフィルタ係数を算出することができる。
例えば、前記第2の特定ステップでは、前記他の予め定められた相対的位置関係を満たし、前記第1の方向において整数画素位置にあって且つ第2の方向において小数画素位置にある前記第2の小数画素位置を示す前記第2の動きベクトルを有する1つ以上のブロックを特定する。
これにより、第2の小数画素位置(0,q)(但しq≠0)のフィルタ係数を算出することができる。また、例えば、1/4画素精度の場合、qをq=1,…,3に変化させることで、第1の方向において整数画素位置にある全ての第2の小数画素位置(0,q)のフィルタ係数を算出することができる。
また、前記第2の特定ステップでは、前記他の予め定められた相対的位置関係を満たし、前記第1および第2の方向において小数画素位置にある前記第2の小数画素位置を示す前記第2の動きベクトルを有する1つ以上のブロックを特定し、前記第2の決定ステップでは、前記第1の決定ステップで決定された前記第1の一次元内挿フィルタのフィルタ係数を前記第1の小数画素位置に適用し、適用された結果を用いて、前記第2の小数画素位置におけるフィルタ係数を決定する。
これにより、第2の小数画素位置(p,q)(但しp≠0およびq≠0)のフィルタ係数を算出することができる。また、例えば、1/4画素精度の場合、pをp=1,…,3に変化させてqをq=1,…,3に変化させることで、第1の方向および第2の方向において小数画素位置にある全ての第2の小数画素位置(p,q)のフィルタ係数を算出することができる。また、このときには、第1の一次元内挿フィルタのフィルタ係数を第1の小数画素位置に適用することにより、その第1の小数画素位置の小数画素の画素値が算出され、その小数画素の画素値を使って第2の小数画素位置におけるフィルタ係数が決定される。
また、前記第1の決定ステップでは、前記第1の特定ステップによって特定された1つ以上のブロックの画像と、前記1つ以上のブロックの第1の動きベクトルにより示される参照画像上の1つ以上のブロックの画像との差分が最小になるように、前記小数画素位置に対するフィルタ係数を決定することを特徴としてもよい。例えば、前記1の決定ステップでは、前記差分を最小にする線形方程式を解くことにより、前記小数画素位置に対するフィルタ係数を決定する。
これにより、参照ピクチャの画像に適したフィルタ係数、つまりその画像に適応的なフィルタ係数を適切に決定することができる。さらに、線形方程式を用いる場合には、計算量をさらに低減して適切なフィルタ係数を効率的に決定することができる。
また、本発明に係る動画像圧縮方法は、動画像を圧縮する方法であって、上記本発明の二次元適応内挿フィルタのフィルタ係数決定方法に含まれる全てのステップを実行することにより前記二次元適応内挿フィルタのフィルタ係数を決定するフィルタ係数決定ステップと、前記小数画素位置を示す動きベクトルを有するブロックを対象ブロックとし、前記対象ブロックに対して動き補償を行うことにより、前記対象ブロックの予測画像を生成する動き補償ステップと、前記動き補償ステップにより生成された予測画像と前記対象ブロックの画像との差分と、前記フィルタ係数決定ステップで決定されたフィルタ係数とを符号化する符号化ステップとを含み、前記動き補償ステップでは、前記フィルタ係数決定ステップで決定されたフィルタ係数を前記小数画素位置に適用することにより前記小数画素位置に内挿される小数画素の画素値を算出し、算出された画素値の小数画素を有する前記予測画像を生成することを特徴としてもよい。
これにより、上述のフィルタ係数決定方法により小数画素位置のフィルタ係数を決定し、そのフィルタ係数を用いて対象ブロックの予測画像を生成するため、少ない計算量で対象ブロックの画像に極めて近い予測画像を生成することができる。その結果、対象ブロックの画像と予測画像との差分の符号量を効率的に低減することができる。さらに、フィルタ係数も符号化されるため、その符号化されたフィルタ係数を復号化装置に出力すれば、その復号化装置は、その符号化されたフィルタ係数を復号化して用いることで、対象ブロックを適切に復号化することができる。
また、前記フィルタ係数決定ステップでは、小数画素位置ごとに、当該小数画素位置に対するフィルタ係数を決定する際、所定の小数画素位置と水平方向または垂直方向に対称な位置にある他の小数画素位置に対して、前記所定の小数画素位置に対して決定されたフィルタ係数と同一のフィルタ係数を決定することを特徴としてもよい。
これにより、所定の小数画素位置のフィルタ係数を決定すれば、他の小数画素位置のフィルタ係数も同時に決定することができる。さらに、他の小数画素位置は所定の小数画素位置と水平方向または垂直方向に対称な位置にあるため、他の小数画素位置に対しても適切なフィルタ係数を決定することができる。その結果、より少ない計算量で適切なフィルタ係数を決定することができる。また、例えば、フィルタ係数決定ステップで、フィルタ係数が決定されるべき決定対象の小数画素位置を示す動きベクトルが検出されなかった場合であっても、その決定対象の小数画素位置と水平方向または垂直方向に対称な位置にある他の小数画素位置のフィルタ係数を用いて、その決定対象の小数画素位置のフィルタ係数を適切に決定することができる。
また、小数画素位置に対する前記二次元適応内挿フィルタのフィルタ係数は、前記小数画素位置を水平方向または垂直方向に挟んで配置される複数の画素のそれぞれに対する係数からなり、前記フィルタ係数決定ステップでは、前記小数画素位置に対するフィルタ係数を決定する際、前記複数の画素の中で、所定の画素に対する係数と、前記小数画素位置を中心に前記所定の画素と水平方向または垂直方向に対称な位置にある他の画素に対する係数とが同一となるように、前記フィルタ係数を決定することを特徴としても良い。例えば、前記フィルタ係数決定ステップでは、前記複数の画素のそれぞれに対する係数が水平方向または垂直方向に対称となるように、前記小数画素位置に対するフィルタ係数を決定する。
これにより、複数の画素のそれぞれに対する係数が水平方向または垂直方向に対称となるため、適切なフィルタ係数をより少ない計算量で算出することができる。
なお、本発明は、このようなフィルタ係数決定方法および動画像圧縮方法として実現することができるだけでなく、それらの方法によりフィルタ係数を決定したり動画像を圧縮する装置や集積回路、それらの方法に含まれる各ステップをコンピュータに実行させるためのプログラムや、そのプログラムを格納する記録媒体としても実現することができる。
本発明の二次元適応内挿フィルタは、少ない計算量で効率的に適切なフィルタ係数を決定することができるという作用効果を奏する。
図1は、従来の動画像符号化装置の構成の一例を示すブロック図である。 図2は、従来の動画像符号化装置の構成の一例を示すブロック図である。 図3は、本発明の実施の形態における動画像符号化装置の一例を示すブロック図である。 図4は、同上のフィルタ係数が算出される小数画素位置を示す図である。 図5Aは、同上の小数画素位置に対して算出されるフィルタ係数の具体例を示す図である。 図5Bは、同上の他の小数画素位置に対して算出されるフィルタ係数の具体例を示す図である。 図6は、同上の参照ピクチャ中の各小数画素位置と動きベクトルとを示す図である。 図7は、同上の対象ピクチャにおいて特定されるブロックを示す図である 図8は、同上の動き検出部および適応フィルタ付動き補償予測部の処理動作を示すフローチャートである。 図9は、同上の動画像復号化装置の一例を示すブロック図である。 図10は、同上の1/4画素精度の参照ピクチャの画素位置および画素値を示す図である。 図11は、同上の一次元水平内挿フィルタにより内挿される小数画素およびそのフィルタ係数を示す図である。 図12は、同上の一次元垂直内挿フィルタにより内挿される小数画素およびそのフィルタ係数を示す図である。 図13Aは、所定の条件における本発明の符号化効率と従来例の符号化効率とを比較して示す図である。 図13Bは、他の条件における本発明の符号化効率と従来例の符号化効率とを比較して示す図である。 図14は、本発明の分離型二次元適応内挿フィルタを適用したときの計算量と、従来の非分離型二次元適応内挿フィルタを適用したときの計算量とを比較して示す図である。
符号の説明
100 動画像符号化装置
120 変換/量子化部
130 逆量子化/逆変換部
150 イントラ予測部
160 適応フィルタ付動き補償予測部
170 動き検出部
200 動画像復号化装置
220 逆量子化/逆変換部
250 イントラ予測部
260 適応フィルタ付動き補償予測部
以下、本発明の実施の形態における動画像符号化装置(動画像圧縮装置)について図面を参照しながら説明する。
本実施の形態における動画像符号化装置は、分離型二次元適応内挿フィルタのフィルタ係数を、少ない計算量で効率的に且つ適切に算出することができる。そして、この動画像符号化装置は、算出されたフィルタ係数を用いて動き補償を行い、その結果、動画像を効率的に且つ適切に符号化することができる。
図3は、本実施の形態における動画像符号化装置の一例を示すブロック図である。
本実施の形態における動画像符号化装置100は、減算器110、変換/量子化部120、逆量子化/逆変換部130、加算器135、デブロッキングフィルタ137、メモリ140、イントラ予測部150、適応フィルタ付動き補償予測部160、動き検出部170、切換スイッチ180、およびエントロピー符号化部190を備えている。
なお、本実施の形態における動画像符号化装置100は、動き検出部170および適応フィルタ付動き補償予測部160に特徴がある。つまり、減算器110、変換/量子化部120、逆量子化/逆変換部130、加算器135、デブロッキングフィルタ137、メモリ140、イントラ予測部150、および切換スイッチ180はそれぞれ、従来の動画像符号化装置300の減算器310、変換/量子化部320、逆量子化/逆変換部330、加算器335、デブロッキングフィルタ337、メモリ340、イントラ予測部350、および切換スイッチ380のそれぞれの機能と同様の機能を有する。なお、本実施の形態では、動き検出部170と適応フィルタ付動き補償予測部160とからフィルタ係数決定装置が構成されている。
減算器110は、動画像を示す入力信号を取得する。入力信号は複数のピクチャから構成され、そのピクチャは複数のブロック(マクロブロック)から構成されている。つまり、減算器110は、そのブロックを順次取得し、取得するごとに、そのブロックを対象ブロックとして扱う。さらに、減算器110は、対象ブロックごとに、イントラ予測部150または適応フィルタ付動き補償予測部160から出力された、その対象ブロックに対応する予測画像を示す予測信号を取得する。そして、減算器110は、対象ブロックから予測信号の示す予測画像を減算することにより、その対象ブロックに対する予測誤差を生成し、その予測誤差を変換/量子化部120に出力する。
変換/量子化部120は、減算器110から予測誤差を取得し、その予測誤差に対して離散コサイン変換などの直交変換を行うことによって直交変換係数を生成する。さらに、変換/量子化部120は、その直交変換係数を量子化することによって量子化係数を生成し、逆量子化/逆変換部130およびエントロピー符号化部190に出力する。
逆量子化/逆変換部130は、変換/量子化部120から量子化係数を取得すると、その量子化係数を逆量子化することによって直交変換係数を生成する。さらに、逆量子化/逆変換部130は、その直交変換係数に対して逆離散コサイン変換などの逆直交変換を行うことによって予測誤差を生成し、その予測誤差を加算器135に出力する。
加算器135は、逆量子化/逆変換部130から出力された予測誤差と、イントラ予測部150または適応フィルタ付動き補償予測部160から出力された予測信号の示す予測画像とを加算する。そして、加算器135は、その加算結果を示す局所復号画像をデブロッキングフィルタ137に出力する。
デブロッキングフィルタ137は、その局所復号画像に対してデブロッキングフィルタをかけることにより、その局所復号画像にある符号化歪みを除去し、符号化歪みが除去された局所復号画像をメモリ140に格納する。
メモリ140には、デブロッキングフィルタ137によって局所復号画像が逐次格納される。その結果、後の対象ブロックに対する予測画像の生成に使用される参照ピクチャがメモリ140に格納されることとなる。
イントラ予測部150は、対象ブロックに対して面内予測(イントラ予測)を行う。つまり、イントラ予測部150は、メモリ140に格納されている幾つかの局所復号画像に基づいて、対象ブロックに対する予測画像を生成し、その予測画像を示す予測信号を切換スイッチ180に出力する。
切換スイッチ180は、対象ブロックに対して面内予測(イントラ予測)が行われるときには、イントラ予測部150から出力される予測信号を減算器110に出力し、対象ブロックに対して画面間予測(インター予測)が行われるときには、適応フィルタ付動き補償予測部160から出力される予測信号を減算器110に出力する。
エントロピー符号化部190は、変換/量子化部120から出力される量子化係数と、適応フィルタ付動き補償予測部160から出力されるフィルタ係数と、動き検出部170から出力される動きベクトルとを取得し、それらに対してエントロピー符号化を行うことによって、ビットストリームたる符号化信号を生成して出力する。
動き検出部170は、入力信号に含まれるブロックを順次取得し、取得するごとに、その取得したブロックを対象ブロックとして扱う。そして、動き検出部170は、その対象ブロックの示す画像に近似する画像を有するブロックを、メモリ140に格納されている参照ピクチャから検出する。つまり、動き検出部170は、参照ピクチャからの対象ブロックの画像の動きを動きベクトルとして検出し、その動きベクトルを適応フィルタ付動き補償予測部160およびエントロピー符号化部190に出力する。
ここで、動き検出部170は小数画素精度で動き検出を行い、小数画素精度の動きベクトルを出力する。つまり、動き検出部170は、まず、参照ピクチャの画素精度を整数画素精度から小数画素精度に変換し、その小数画素精度の参照ピクチャを用いて動き検出を行う。このように画素精度を変換するために、動き検出部170は、予め定められたフィルタ係数を有する二次元固定内挿フィルタをその参照ピクチャに適用する。この二次元固定内挿フィルタは、例えば、H.264/AVC規格に定められている、固定フィルタ係数とバイリニア・フィルタを有する6−タップ・ウィーナー内挿フィルタである。また、小数画素精度は、例えば1/2画素精度や1/4画素精度などである。
適応フィルタ付動き補償予測部160は、入力信号により示される対象ピクチャに含まれる各ブロックを順次取得し、動き検出部170からその各ブロックに対応する小数画素精度の動きベクトルを順次取得する。そして、適応フィルタ付動き補償予測部160は、その取得した各ブロックおよび各動きベクトルに基づいて、参照ピクチャに適用される分離型二次元適応内挿フィルタのフィルタ係数を算出し、そのフィルタ係数をエントロピー符号化部190に出力する。
さらに、適応フィルタ付動き補償予測部160は、算出されたフィルタ係数を用いて対象ブロックに対する動き補償を行う。つまり、適応フィルタ付動き補償予測部160は、対象ブロックが有する小数画素精度の動きベクトルにより指し示される参照ピクチャ中のブロックに対して、上述のように算出されたフィルタ係数を有する分離型二次元適応内挿フィルタを適用する。その結果、適応フィルタ付動き補償予測部160は、先に二次元固定内挿フィルタにより算出された、上記ブロックに含まれる小数画素の画素値を、分離型二次元適応内挿フィルタが適用された値に算出し直す。これによって、適応フィルタ付動き補償予測部160は、その算出し直された画素値の小数画素を有する、対象ブロックに対する予測画像を生成し、その予測画像を示す予測信号を切換スイッチ180に出力する。
ここで、本実施の形態における適応フィルタ付動き補償予測部160によるフィルタ係数の算出処理および動き補償について詳細に説明する。
図4は、フィルタ係数が算出される小数画素位置を示す図である。なお、図4中、黒丸が整数画素位置を示し、白丸が小数画素位置を示す。
適応フィルタ付動き補償予測部160は、図4に示すように1/4画素精度の場合、(p,q)=(1,0)、(2,0)、(3,0)、(0,1)、(0,2)、(0,3)、(1,1)、(1,2)、(1,3)、(2,1)、(2,2)、(2,3)、(3,1)、(3,2)および(3,3)により示される15ヶ所の小数画素位置に対するフィルタ係数を算出する。ここで、位置(p,q)は、4つの整数画素によって囲われる最小の範囲を一つの整数単位範囲として、その整数単位範囲上の座標位置、つまり、ピクチャ上の各整数単位範囲内において共通の座標位置を示す。言い換えれば、位置(p,q)は、小数画素位置とその近傍の整数画素位置(0,0)との間での相対的位置関係を示す。具体的には、位置pは、水平方向に沿って配列する整数画素間の座標位置を示し、位置qは、垂直方向に沿って配列する整数画素間の座標位置を示す。なお、1つの整数単位範囲には、位置(p,q)=(0,0)にある整数画素と、上記15ヶ所の小数画素位置にある小数画素とが含まれる。また、上記15ヶ所の位置に対して算出されるフィルタ係数は、例えば同一ピクチャにある全ての整数単位範囲に対して共通に算出される。つまり、複数の整数単位範囲のそれぞれには同一の小数画素位置(p,q)があり、その同一の小数画素位置(p,q)に対して同一のフィルタ係数が算出される。
また、1つの小数画素位置に対するフィルタ係数は、例えば6つの整数画素の画素値のそれぞれに重み付けされる係数の集合によって表される。
図5Aおよび図5Bは、小数画素位置に対して算出されるフィルタ係数の具体例を示す図である。
適応フィルタ付動き補償予測部160は、図5Aに示すように、水平方向に配列する整数画素の間の位置(p,0)(但し、p≠0)に対する一次元水平内挿フィルタのフィルタ係数g(p)を、例えば、その位置(p,0)を略中心にして水平方向に配列する6つの整数画素の画素値に重み付けられる係数gi (p)(i=−2,−1,0,1,2,3)の集合として算出する。なお、上述の位置(p,0)(但し、p≠0)は、水平方向に小数画素位置で且つ垂直方向に整数画素位置にあり、以下、そのような位置(p,0)を小数整数画素位置(第1の小数画素位置)ともいう。
また、適応フィルタ付動き補償予測部160は、図5Bに示すように、垂直方向に配列する整数画素の間の位置(0,q)に対する一次元垂直内挿フィルタのフィルタ係数h(q)を、例えば、その位置(0,q)(但し、q≠0)を略中心にして垂直方向に配列する6つの整数画素の画素値に重み付けられる係数hj (q)(j=−2,−1,0,1,2,3)の集合として算出する。なお、上述の位置(0,q)は、水平方向に整数画素位置で且つ垂直方向に小数画素位置にあり、以下、そのような位置(0,q)(但し、q≠0)を整数小数画素位置(第2の小数画素位置)ともいう。
また、適応フィルタ付動き補償予測部160は、小数整数画素位置にもなく整数小数画素位置にもない位置(p,q)(但し、p≠0かつq≠0)に対する一次元垂直内挿フィルタのフィルタ係数h(p,q)を算出するときには、その小数画素位置に対するフィルタ係数h(p,q)を、その小数画素位置を略中心にして垂直方向に配列する複数の小数画素の画素値に重み付けられる係数の集合として算出する。なお、その垂直方向に配列する複数の小数画素は小数整数画素位置にある。また、上述の位置(p,q)(但し、p≠0かつq≠0)は、水平方向および垂直方向に小数画素位置にあり、以下、その位置(p,q)を小数小数画素位置(第2または第3の小数画素位置)ともいう。
例えば、適応フィルタ付動き補償予測部160は、その位置(p,q)を略中心にして垂直方向に配列する小数整数画素位置の複数の小数画素の画素値に重み付けられる係数hj (p,q)(j=−2,−1,0,1,2,3)の集合として、位置(p,q)に対するフィルタ係数h(p,q)を算出する。
なお、上述の小数整数画素位置、整数小数画素位置および小数小数画素位置は、上述の整数単位範囲に含まれる小数画素位置であって、整数単位範囲のそれぞれにおいて、同一の小数画素位置、つまり同一の小数整数画素位置、同一の整数小数画素位置および同一の小数小数画素位置がある。
つまり、本実施の形態における分離型二次元適応内挿フィルタは、一次元水平内挿フィルタと一次元垂直内挿フィルタとに分離される。適応フィルタ付動き補償予測部160は、小数整数画素位置にある小数画素の画素値を算出するときには、その小数整数画素位置(p,0)に対して一次元水平内挿フィルタのフィルタ係数g(p)を適用する。具体的には、適応フィルタ付動き補償予測部160は、小数整数画素位置(p,0)を水平方向に挟んで配列する複数の整数画素の画素値のそれぞれに係数gi (p)を掛けて合計した結果を、その小数整数画素位置にある小数画素の画素値として算出する。また、適応フィルタ付動き補償予測部160は、整数小数画素位置(0,q)にある小数画素の画素値を算出するときには、その整数小数画素位置(0,q)に対して一次元垂直内挿フィルタのフィルタ係数h(q)を適用する。具体的には、適応フィルタ付動き補償予測部160は、小数整数画素位置(0,q)を垂直方向に挟んで配列する複数の整数画素の画素値のそれぞれに係数hj (q)を掛けて合計した結果を、その整数小数画素位置にある小数画素の画素値として算出する。
また、適応フィルタ付動き補償予測部160は、小数小数画素位置(p,q)(但し、p≠0かつq≠0)にある小数画素の画素値を算出するときには、例えば、まず、小数整数画素位置(p,0)に対して一次元水平内挿フィルタのフィルタ係数g(p)を適用することにより、小数整数画素位置(p,0)にある小数画素の画素値を算出する。次に、適応フィルタ付動き補償予測部160は、小数小数画素位置(p,q)に対して一次元垂直内挿フィルタのフィルタ係数h(p,q)を適用する。具体的には、適応フィルタ付動き補償予測部160は、小数小数画素位置(p,q)を垂直方向に挟んで配列する複数の小数整数画素位置(p,0)の小数画素の画素値のそれぞれに係数hj (p,q)を掛けて合計した結果を、その小数小数画素位置にある小数画素の画素値として算出する。
ここで、本実施の形態における適応フィルタ付動き補償予測部160は、分離型二次元適応内挿フィルタの上述のようなフィルタ係数を算出するときには、まず、対象ピクチャに含まれる各ブロックに対して検出された小数画素精度の動きベクトルを用い、参照ピクチャ中の所定の小数整数画素位置を示す動きベクトルを有する1つ以上のブロックを対象ピクチャの中から見つけ出す。これにより、その小数整数画素位置に対するフィルタ係数の算出に必要とされるブロックが、対象ピクチャの全体から絞り込まれる。
図6は、参照ピクチャ中の各小数画素位置と動きベクトルとを示す図である。なお、図6中、バツ印が小数整数画素位置を示し、三角が整数小数画素位置を示し、白丸が小数小数画素位置を示す。
例えば、適応フィルタ付動き補償予測部160は、小数整数画素位置(p,q)=(1,0)を指し示す動きベクトルmvが検出された対象ピクチャ中の1つ以上のブロックを特定する。そして、適応フィルタ付動き補償予測部160は、対象ピクチャに含まれるその特定された1つ以上のブロックだけを用い、対象ピクチャのその他のブロックを用いることなく、その位置(p,q)=(1,0)に対するフィルタ係数を算出する。
図7は、対象ピクチャにおいて特定されるブロックを示す図である。
例えば、適応フィルタ付動き補償予測部160は、対象ピクチャPcの中から、参照ピクチャPr中の小数整数画素位置(p,q)=(1,0)を指し示す3つの動きベクトルmv1,mv2,mv3をそれぞれ有する3つのブロックBk1,Bk2,Bk3を特定する。なお、動きベクトルmv1,mv2,mv3により示される参照ピクチャPr中のブロックBkr1,Bkr2,Bkr3はそれぞれ、整数画素位置から、上記小数整数画素位置の分だけ、つまり水平方向に1/4画素だけずれている。
適応フィルタ付動き補償予測部160は、対象ピクチャPcのブロックBk1と、そのブロックBk1の動きベクトルmv1により示される参照ピクチャPr中のブロックBkr1との差分D1と、対象ピクチャPcのブロックBk2と、そのブロックBk2の動きベクトルmv2により示される参照ピクチャPr中のブロックBkr2との差分D2と、対象ピクチャPcのブロックBk3と、そのブロックBk3の動きベクトルmv3により示される参照ピクチャPr中のブロックBkr3との差分D3との和(D1+D2+D3)が最小になるように、小数整数画素位置(p,q)=(1,0)に対する一次元水平内挿フィルタのフィルタ係数を算出する。言い換えれば、適応フィルタ付動き補償予測部160は、上述の和(D1+D2+D3)が最小になるように、フィルタ係数を最適化する。なお、上述の差分とは、例えば、対象ピクチャのブロックの各整数画素の画素値と、その各整数画素に対応する参照ピクチャのブロックの各小数画素の画素値との差分自乗和である。また、適応フィルタ付動き補償予測部160は、フィルタ係数を最適化するときには、例えば、フィルタ係数を適宜変化させて小数画素の画素値を算出しながら上記差分が最小となるようにフィルタ係数を決定する。または、適応フィルタ付動き補償予測部160は、後述する線形方程式を解くことによりフィルタ係数を決定する。
このように適応フィルタ付動き補償予測部160は、位置(p,q)=(1,0)に対するフィルタ係数を算出すると、残りの小数整数画素位置に対する一次元水平内挿フィルタのフィルタ係数も上述と同様の処理を繰り返すことにより算出する。つまり、適応フィルタ付動き補償予測部160は、位置(p,q)=(2,0)および(3,0)に対するフィルタ係数を算出する。
次に、本実施の形態における適応フィルタ付動き補償予測部160は、参照ピクチャ中の所定の整数小数画素位置を示す動きベクトルを有する1つ以上のブロックを対象ピクチャの中から見つけ出す。これにより、その整数小数画素位置に対するフィルタ係数の算出に必要とされるブロックが、対象ピクチャの全体から絞り込まれる。
例えば、適応フィルタ付動き補償予測部160は、整数小数画素位置である位置(p,q)=(0,1)、(0,2)および(0,3)に対する一次元垂直内挿フィルタのフィルタ係数を、上述と同様の最適化を行うことにより算出する。
さらに、本実施の形態における適応フィルタ付動き補償予測部160は、参照ピクチャ中の所定の小数小数画素位置の小数画素を示す動きベクトルを有する1つ以上のブロックを対象ピクチャの中から見つけ出す。これにより、その小数小数画素位置に対するフィルタ係数の算出に必要とされるブロックが、対象ピクチャの全体から絞り込まれる。
例えば、適応フィルタ付動き補償予測部160は、小数小数画素位置である位置(p,q)=(1,1)、(1,2)、(2,1)、(2,2)、(2,3)、(3,1)、(3,2)および(3,3)に対する一次元垂直内挿フィルタのフィルタ係数を、上述と同様の最適化を行うことにより算出する。なお、このとき、適応フィルタ付動き補償予測部160は、先に算出された小数整数画素位置のフィルタ係数を用いて、その小数整数画素位置の画素値を算出し、その画素値を用いて小数小数画素位置に対するフィルタ係数の最適化を行う。
図8は、本実施の形態における動き検出部170および適応フィルタ付動き補償予測部160の処理動作を示すフローチャートである。
まず、動き検出部170は、対象ピクチャのブロックごとに、二次元固定内挿フィルタを用いて小数画素精度の動きベクトルを検出する(ステップS100)。次に、適応フィルタ付動き補償予測部160は、参照ピクチャにおいて所定の小数整数画素位置を指し示す動きベクトルを有する1つ以上のブロックを、その対象ピクチャの中から特定する(ステップS102)。
適応フィルタ付動き補償予測部160は、対象ピクチャに含まれるブロックのうち、そのステップS102で特定したブロックを用い、対象ピクチャのそれ以外のブロックを用いることなく、上記小数整数画素位置に対するフィルタ係数を算出する(ステップS104)。このように1つの小数整数画素位置に対するフィルタ係数が算出されると、適応フィルタ付動き補償予測部160は、フィルタ係数が算出されていない他の小数整数画素位置があるか否かを判別する(ステップS106)。
ここで、適応フィルタ付動き補償予測部160は、フィルタ係数が算出されていない他の小数整数画素位置があると判別すると(ステップS106のY)、その小数整数画素位置に対してステップS102からの処理を繰り返し実行する。また、適応フィルタ付動き補償予測部160は、フィルタ係数が算出されていない他の小数整数画素位置がないと判別すると(ステップS106のN)、参照ピクチャにおいて所定の整数小数画素位置を指し示す動きベクトルを有するブロックを、その対象ピクチャの中から特定する(ステップS108)。
適応フィルタ付動き補償予測部160は、対象ピクチャに含まれるブロックのうち、そのステップS108で特定したブロックを用い、対象ピクチャのそれ以外のブロックを用いることなく、上記整数小数画素位置に対するフィルタ係数を算出する(ステップS110)。このように1つの整数小数画素位置に対するフィルタ係数が算出されると、適応フィルタ付動き補償予測部160は、フィルタ係数が算出されていない他の整数小数画素位置があるか否かを判別する(ステップS112)。
ここで、適応フィルタ付動き補償予測部160は、フィルタ係数が算出されていない他の整数小数画素位置があると判別すると(ステップS112のY)、その整数小数画素位置に対してステップS108からの処理を繰り返し実行する。また、適応フィルタ付動き補償予測部160は、フィルタ係数が算出されていない他の整数小数画素位置がないと判別すると(ステップS112のN)、参照ピクチャにおいて所定の小数小数画素位置を指し示す動きベクトルを有する1つ以上のブロックを、その対象ピクチャの中から特定する(ステップS114)。
適応フィルタ付動き補償予測部160は、対象ピクチャに含まれるブロックのうち、そのステップS114で特定したブロックを用い、対象ピクチャのそれ以外のブロックを用いることなく、上記小数小数画素位置に対するフィルタ係数を算出する(ステップS116)。このように1つの小数小数画素位置に対するフィルタ係数が算出されると、適応フィルタ付動き補償予測部160は、フィルタ係数が算出されていない他の小数小数画素位置があるか否かを判別する(ステップS118)。
ここで、適応フィルタ付動き補償予測部160は、フィルタ係数が算出されていない他の小数小数画素位置があると判別すると(ステップS118のY)、その小数小数画素位置に対してステップS114からの処理を繰り返し実行する。また、適応フィルタ付動き補償予測部160は、フィルタ係数が算出されていない他の小数小数画素位置がないと判別すると(ステップS112のN)、分離型二次元適応内挿フィルタの全ての小数画素位置に対するフィルタ係数が算出されたと判断する。そして、適応フィルタ付動き補償予測部160は、ステップS100で検出された動きベクトルと、算出されたフィルタ係数とを用いて対象ブロックに対する動き補償を行う(ステップS220)。
このように本実施の形態では、対象ピクチャの各ブロックの動きベクトルが小数画素精度で検出され、参照ピクチャ上の小数画素位置(p,q)を示す動きベクトルを有する複数のブロックが対象ピクチャの中から特定される。そして、その特定された複数のブロックに基づいて、その小数画素位置(p,q)のフィルタ係数が決定される。つまり、本実施の形態では、対象ピクチャを構成する全てのブロックの中から、小数画素位置(p,q)を示す動きベクトルを有するブロックを絞り込み、その絞り込まれた複数のブロックだけに基づいて、小数画素位置(p,q)のフィルタ係数を決定する。したがって、対象ピクチャを構成する全てのブロックの動きベクトルが参照ピクチャ上のあらゆる小数画素位置を示すことを想定し、その全てのブロックの画像に基づいて小数画素位置(p,q)のフィルタ係数を決定することが行われないため、フィルタ係数算出のための計算量を大幅に低減することができ、適切なフィルタ係数を効率的に決定することができる。また、本実施の形態では、分離型二次元適応内挿フィルタのフィルタ係数を決定する前に検出された小数画素精度の動きベクトルが動き補償(ブロックの符号化)に利用されて符号化信号に含められる。つまり、本実施の形態では、フィルタ係数を決定する前に小数画素精度で動きベクトルを検出して動き補償に利用しているため、フィルタ係数の決定後に改めて、動き補償に利用されて符号化信号に含められるべき小数画素精度の動きベクトルを検出する必要がなく、処理負担を軽減することができる。なお、本発明は、分離型二次元適応内挿フィルタのフィルタ係数が決定された後に、さらに、そのフィルタ係数を用いて小数画素精度の動きベクトルを検出し、その動きベクトルを動き補償に利用することを妨げるものではない。
図9は、本実施の形態における動画像復号化装置の一例を示すブロック図である。
本実施の形態における動画像復号化装置200は、逆量子化/逆変換部220、加算器235、デブロッキングフィルタ237、メモリ240、イントラ予測部250、適応フィルタ付動き補償予測部260、切換スイッチ280およびエントロピー復号化部290を備えている。
エントロピー復号化部290は、動画像符号化装置100から出力されたビットストリームたる符号化信号を取得して、その符号化信号に対してエントロピー復号化を行う。このエントロピー復号化により、エントロピー復号化部290は、量子化係数、動きベクトルおよびフィルタ係数を符号化信号から取り出して、その量子化係数を逆量子化/逆変換部220に出力し、動きベクトルおよびフィルタ係数を適応フィルタ付動き補償予測部260に出力する。
逆量子化/逆変換部220は、動画像符号化装置100の逆量子化/逆変換部130と同様の機能および構成を有し、エントロピー復号化部290から取得した量子化係数を直交変換係数に逆量子化し、その直交変換係数を予測誤差に逆直交変換して加算器235に出力する。
加算器235は、動画像符号化装置100の加算器135と同様の機能および構成を有する。つまり、加算器235は、逆量子化/逆変換部220から出力された予測誤差と、イントラ予測部250または適応フィルタ付動き補償予測部260から出力された予測信号の示す予測画像とを加算する。そして、加算器135は、その加算結果を示す復号画像をデブロッキングフィルタ237に出力する。
デブロッキングフィルタ237は、動画像符号化装置100のデブロッキングフィルタ137と同様の機能および構成を有する。つまり、デブロッキングフィルタ237は、その復号画像に対してデブロッキングフィルタをかけることにより、その復号画像にある符号化歪みを除去し、符号化歪みが除去された復号画像をメモリ240に格納する。
メモリ240には、動画像符号化装置100のメモリ140と同様、デブロッキングフィルタ237によって復号画像が逐次格納される。その結果、後の対象ブロックに対する予測画像の生成に使用される参照ピクチャがメモリ240に格納されることとなる。
イントラ予測部250は、動画像符号化装置100のイントラ予測部150と同様の機能および構成を有する。つまり、イントラ予測部250は、対象ブロックに対して面内予測(イントラ予測)を行い、その対象ブロックに対する予測画像を示す予測信号を切換スイッチ280に出力する。
切換スイッチ280は、動画像符号化装置100の切換スイッチ180と同様の機能および構成を有する。つまり、切換スイッチ280は、対象ブロックに対して面内予測(イントラ予測)が行われるときには、イントラ予測部250から出力される予測信号を加算器235に出力し、対象ブロックに対して画面間予測(インター予測)が行われるときには、適応フィルタ付動き補償予測部260から出力される予測信号を加算器235に出力する。
適応フィルタ付動き補償予測部260は、動画像符号化装置100の適応フィルタ付動き補償予測部160と同様の機能および構成を有する。つまり、適応フィルタ付動き補償予測部260は、エントロピー復号化部290から出力された各ブロックに対応する小数画素精度の動きベクトルを取得すると、それらの動きベクトルを有するブロックに基づいて、分離型二次元適応内挿フィルタのフィルタ係数を算出する。さらに、適応フィルタ付動き補償予測部260は、算出されたフィルタ係数を用いて対象ブロックに対する動き補償を行い、その結果、その対象ブロックに対する予測画像を生成し、その予測画像を示す予測信号を切換スイッチ280に出力する。この適応フィルタ付動き補償予測部260によるフィルタ係数の算出および動き補償は、上述の適応フィルタ付動き補償予測部160によるフィルタ係数の算出および動き補償と同様に行われる。
以下、分離型二次元適応内挿フィルタのフィルタ係数を決定する方法について、具体的に説明する。
図10は、1/4画素精度の参照ピクチャの画素位置および画素値を示す図である。
黒丸は整数画素位置(すなわち元の画像のサンプリング位置)を意味するのに対して、白丸は画素値が内挿されなければならない小数画素位置を示す。なお、本発明はいかなる小数画素精度(垂直および水平の方向に異なる小数画素精度を含む)にも適用可能である。
ここで、以下において、nを小数画素精度(すなわち1/2画素精度の場合にはn=2、1/4画素精度の場合にはn=4など)と定義する。参照ピクチャ上の位置は整数画素精度または小数画素精度により表される。(x,y)は参照ピクチャ上の座標位置を整数画素精度で示し、(nx+p,ny+q)は参照ピクチャ上の座標位置を小数画素精度で示す。つまり、小数画素精度で示される整数画素位置(nx,ny)は、整数画素精度で示される整数画素位置(x,y)に一致する。なお、小数画素精度で示される(nx+p,ny+q)は、上述の(p,q)のように各整数単位範囲に共通の位置を示さず、参照ピクチャ上の特定の1つの位置を示す。以下、(p,q)を、(nx+p,ny+q)と区別するために、局所座標上の位置という。さらに、Px,yを元の参照ピクチャの整数画素位置(x,y)にある画素の画素値と定義する。さらに、Panx+p,0を、参照ピクチャ上の小数画素精度で示される1つの位置(nx+p,0)における画素の画素値と定義し、Pbnx+p,ny+qを、参照ピクチャ上の小数画素精度で示される1つの位置(nx+p,ny+q)における画素の画素値と定義する(図10参照)。
動きベクトルは、mv=(vx,vy)によって表現される。つまり、動きベクトル501,502,503は、小数画素精度により示される水平方向および垂直方向の位置をそれぞれ成分vxおよびvyに代入することによって表される。vx mod n=0を満たす動きベクトル503は、x方向(水平方向)の整数画素位置を示している。vx mod n=1,…,(n−1)を満たす動きベクトル501,502は、x方向の小数画素位置を示している。y方向(垂直方向)についても同様、動きベクトル501がy方向の整数画素位置を示し、動きベクトル502,503がy方向の小数画素位置を示している。
本実施の形態における分離型二次元適応内挿フィルタは、上述のように、一次元水平内挿フィルタと一次元垂直内挿フィルタに分けられることができる。具体的に、垂直方向において整数画素位置にある画素、つまり位置(nx+p,y)にある画素の画素値Panx+p,yは、一次元水平内挿フィルタを用いて以下の(数1)によって示される。
Figure 2008132828
ここで、gi (p)は、局所座標上の位置(p,0)に対する水平方向のフィルタ係数g(p)に含まれる複数の係数あって、6−タップ・フィルタの場合、i=−2,−1,0,1,2,3を有する一次元水平内挿フィルタの離散的な係数である。つまり、局所座標上の位置(p,0)に対する一次元水平内挿フィルタのフィルタ係数g(p)は、6つの係数g-2 (p)、g-1 (p)、g0 (p)、g1 (p)、g2 (p)、g3 (p)からなる。また、Px-i,yは、整数画素位置(x−i,y)(i=−2,−1,0,1,2,3)にある整数画素の画素値である。このように、垂直方向において整数画素位置にある画素、つまり位置(nx+p,y)にある画素の画素値Panx+p,yは、水平方向に沿って配列する6つの整数画素の画素値Px-i,y(i=−2,−1,0,1,2,3)のそれぞれに対して係数gi (p)(i=−2,−1,0,1,2,3)を掛けて合計した結果として表される。このような水平方向のフィルタ係数g(p)は、局所座標上の特定の位置pに依存する。それゆえに、一次元水平内挿フィルタのフィルタ係数g(p)は、各々の位置pに対して決定される。
図11は、一次元水平内挿フィルタにより内挿される小数画素およびそのフィルタ係数を示す図である。なお、図10中、黒丸は既知の画素値を有する整数画素を示し、白丸は内挿されるべき小数画素を示す。
フィルタ係数g(p)は、局所座標上の小数整数画素位置(p,0)(p=1,…,(n−1))のそれぞれに対して決定される。例えば、n=4の場合、小数整数画素位置(1,0)に対してフィルタ係数g(1)が決定され、小数整数画素位置(2,0)に対してフィルタ係数g(2)が決定され、小数整数画素位置(3,0)に対してフィルタ係数g(3)が決定される。
このように一次元水平内挿フィルタのフィルタ係数g(p)が決定されると、位置(nx+p,y+q)にある画素の画素値Pbnx+p,y+qは、一次元垂直内挿フィルタを用いて以下の(数2)によって定められる。
Figure 2008132828
ここで、hj (p,q)は、局所座標上の位置(p,q)に対する垂直方向のフィルタ係数h(p,q)に含まれる複数の係数である。たとえば、6−タップ・フィルタの場合、hj (p,q)は、j=−2,−1,0,1,2,3を有する一次元垂直内挿フィルタの離散的な係数である。つまり、局所座標上の位置(p,q)に対する一次元垂直内挿フィルタのフィルタ係数h(p,q)は、6つの係数h-2 (p,q)、h-1 (p,q)、h0 (p,q)、h1 (p,q)、h2 (p,q)、h3 (p,q)からなる。また、Panx+p,y-jは、垂直方向において整数画素位置にある画素、つまり位置(nx+p,y−j)(j=−2,−1,0,1,2,3)にある画素の画素値である。したがって、係数hj (p,q)は、水平方向に内挿された小数画素の画素値Panx+p,y-jに対しても掛け算される。このように、位置(nx+p,ny+q)にある画素の画素値Pbnx+p,ny+qは、垂直方向に沿って配列する6つの画素の画素値Panx+p,y-j(j=−2,−1,0,1,2,3)のそれぞれに対して係数hj (p,q)(j=−2,−1,0,1,2,3)を掛けて合計した結果として表される。また、垂直方向のフィルタ係数h(p,q)は、局所座標上の特定の位置(p,q)に依存する。それゆえに、一次元垂直内挿フィルタのフィルタ係数h(p,q)は、各々の位置(p,q)の画素に対して決定される。
図12は、一次元垂直内挿フィルタにより内挿される小数画素およびそのフィルタ係数を示す図である。なお、図12中、黒丸は既知の画素値を有する整数画素および小数画素を示し、白丸は内挿されるべき小数画素を示す。
フィルタ係数hj (p,q)は、局所座標上の小数画素位置(p,q)(p=0,…,(n−1)およびq=1,…,(n−1))のそれぞれに対して決定される。例えば、n=4の場合、12個の小数画素のそれぞれに対してフィルタ係数hj (p,q)が決定される。具体的に、小数画素位置(0,1)に対してフィルタ係数hj (0,1)が決定され、小数画素位置(1,1)に対してフィルタ係数hj (1,1)が決定され、小数画素位置(1,2)に対してフィルタ係数hj (1,2)が決定される。
なお、本実施の形態では、一次元水平内挿フィルタおよび一次元垂直内挿フィルタの適用によって整数画素位置の画素の画素値が変化しないことが要請される。言い換えれば、一次元水平内挿フィルタおよび一次元垂直内挿フィルタが整数画素の画素値に影響を与えないことが要請される。それゆえに、pおよびqがそれぞれ0となり得る場合、以下の(数3)に示す条件が満たされなければならない。
Figure 2008132828
ここで、δk,lはクロネッカーデルタであり、k=lであればδk,l=1であり、k≠lであればδk,l=0である。更に、一次元垂直内挿フィルタの適用によって一次元水平内挿フィルタの結果(小数画素の画素値)が変化しないことも要請される。言い換えれば、一次元垂直内挿フィルタが一次元水平内挿フィルタの結果である小数画素の画素値に影響を与えないことが要請される。それゆえに、qが0となり得る場合、以下の(数4)に示す条件が満たされなければならない。
Figure 2008132828
従って、pおよびqがそれぞれ0となり得る場合であっても、実質的には、(n−1)個の小数整数画素位置に対する一次元水平適応内挿フィルタのフィルタ係数g(1),…,g(n-1)と、n(n−1)個の小数画素位置(整数小数画素位置および小数小数画素位置)に対する一次元垂直内挿フィルタのフィルタ係数h(0,1),…,h(0,n-1),h(1,1),…,h(n-1,n-1)とがある。
本実施の形態では、まず、対象ピクチャの中から、参照ピクチャにおける各局所座標で所定の小数整数画素位置(p,0)(p≠0)を指し示す小数画素精度の動きベクトルmv=(vx,vy)(vx mod n≠0、vy mod n=0)を有する1つ以上のブロックが特定される。そして、本実施の形態では、一次元水平内挿フィルタのフィルタ係数g(p)(係数gi (p))は、以下の(数5)に示す予測誤差(ep2が最小になるように最適化される。
Figure 2008132828

ここで、Sx,yは、対象ピクチャ上の整数画素精度により示される位置(x,y)にある整数画素の画素値であり、Pxd-i,ydは、前に復号化された参照ピクチャ上の整数画素位置(xd−i,yd)にある画素の画素値である。また、xdはxd=x+[[vx/n]]によって定義され、ydはyd=y+[[vy/n]]によって定義され、pはp=vx mod nにより示される。なお、[[A]]は、引数A以下の最大の整数を示すフロア演算子である。また、上述のように、vy mod n=0が満たされているため、ydは、yd=y+[[vy/n]]=y+vy/nにより示される。
つまり、位置(xd,yd)は、対象ピクチャ上の整数画素位置(x,y)と小数画素精度の動きベクトルmv=(vx,vy)とによって指し示される参照ピクチャ上の小数画素位置(x+vx/n,y+vy/n)から見て、水平方向に近傍にある整数画素位置である。そして、位置(xd−i,yd)は、例えばi=−2,−1,0,1,2,3によって、水平方向に連続して配列する6つの整数画素位置を示す。
xとyの取り得る範囲は、各局所座標で所定の小数整数画素位置(p,0)を指し示す動きベクトルを有する対象ピクチャ上の1つ以上のブロックからなる範囲であって、その1つ以上のブロック内の(x,y)に対して上記(数5)により示される予測誤差の最小化が行われる。なお、上記ブロックはマクロブロックに対応する。つまり、xとyの取り得る範囲は、各局所座標で同一の小数画素位置を示している動きベクトル(すなわちvx mod n=pとvy mod n=0を満たす動きベクトル)を有する、(一つ以上の動画像の中の)いくつかまたは全てのマクロブロックの(不連続の)結合から成る。
上述のように、本実施の形態では、一次元水平内挿フィルタのフィルタ係数g(p)は、(数5)に示す予測誤差を最小化するように決定される。このような最小化(最適化)のアルゴリズムには、公知技術のいかなるもの(例えば勾配降下法、シミュレイテッドアニーリング法など)が適用されてもよい。例えば、最適なフィルタ係数g(p)は、(数5)の偏導関数によって導出される線形方程式を解くことによって決定される。その線形方程式は、以下の(数6)のように示される。
Figure 2008132828
このような最適化によって、局所座標上の1つの小数整数画素位置(p,0)に対する一次元水平内挿フィルタのフィルタ係数g(p)が決定される。そして、他の小数整数画素位置(p,0)に対しても同様の最適化が繰り返し実行されて、その位置に対するフィルタ係数g(p)が順次決定される。
このように決定された一次元水平内挿フィルタのフィルタ係数g(p)を用いることによって、前に復号化された参照ピクチャ上の、水平方向において小数画素位置にあり垂直方向において整数画素位置にある小数画素の画素値Panx+p,yが、上記(数1)によって算出される。
次に本実施の形態では、対象ピクチャの中から、参照ピクチャにおける各局所座標で小数整数画素位置を除く同一の小数画素位置(p,q)(q≠0)を指し示す小数画素精度の動きベクトルmv=(vx,vy)(vy mod n≠0)を有する1つ以上のブロックが特定される。そして、本実施の形態では、一次元垂直内挿フィルタのフィルタ係数h(p,q)(係数hj (p,q))は、垂直方向における小数画素の動きを考慮に入れる予測誤差の最小化によって、第2のステップで決定される。つまり、このフィルタ係数h(p,q)は、以下の(数7)に示す予測誤差(ep,q2が最小になるように最適化される。
Figure 2008132828
ここで、Sx,yは、対象ピクチャ上の整数画素精度により示される位置(x,y)にある整数画素の画素値であり、Panx+vx,yd-jは、参照ピクチャ上の小数整数画素位置または整数画素位置である位置(nx+vx,yd−j)の画素の画素値である。また、pはp=vx mod nにより示され、qはq=vy mod n≠0により示される。つまり、位置(nx+vx,yd)は、対象ピクチャ上の整数画素位置(x,y)と小数画素精度の動きベクトルmv=(vx,vy)とによって指し示される参照ピクチャ上の小数画素位置(x+vx/n,y+vy/n)から見て、垂直方向に近傍にある小数整数画素位置または整数画素位置である。そして、位置(nx+vx,yd−j)は、例えばj=−2,−1,0,1,2,3によって、垂直方向に連続して配列する6つの小数整数画素位置または6つの整数画素位置を示す。
xとyの取り得る範囲は、各局所座標で所定の小数画素位置(p,q)(q≠0)を指し示す動きベクトルを有する対象ピクチャ上の1つ以上のブロックからなる範囲であって、その1つ以上のブロック内の(x,y)に対して上記(数7)により示される予測誤差の最小化が行われる。なお、上記ブロックはマクロブロックに対応する。つまり、xとyの取り得る範囲は、各局所座標で同一の小数画素位置を示している動きベクトル(すなわちvx mod n=pとvy mod n=q≠0を満たす動きベクトル)を有する、いくつかまたは全てのマクロブロックの(不連続の)結合から成る。
上述のように、本実施の形態では、一次元垂直内挿フィルタのフィルタ係数h(p,q)は、(数7)に示す予測誤差を最小化するように決定される。このような最小化(最適化)のアルゴリズムには、公知技術のいかなるもの(例えば勾配降下法、シミュレイテッドアニーリング法など)が適用されてもよい。例えば、最適なフィルタ係数h(p,q)は、(数7)の偏導関数によって導出される線形方程式を解くことによって決定される。その線形方程式は、以下の(数8)のように示される。
Figure 2008132828
このような最適化によって、局所座標上の1つの小数画素位置(p,q)(q≠0)に対する一次元垂直内挿フィルタのフィルタ係数hj (p,q)が決定される。そして、他の小数画素位置(p,q)(q≠0)に対しても同様の最適化が繰り返し実行されて、その位置に対するフィルタ係数h(p,q)が順次決定される。
このように決定された一次元垂直内挿フィルタのフィルタ係数hj (p,q)を用いることによって、前に復号化された参照ピクチャ上の、小数画素位置(p,q)(q≠0)にある小数画素の画素値Pbnx+p,ny+qが、上記(数2)によって算出される。
このように、本実施の形態における分離型二次元適応内挿フィルタは、一次元水平内挿フィルタと一次元垂直内挿フィルタに分けられる。そして、一次元水平内挿フィルタのフィルタ係数g(p)と、一次元垂直内挿フィルタのフィルタ係数h(p,q)とがそれぞれ算出される。さらに、動き補償では、算出されたフィルタ係数g(p)を用いて、垂直方向において整数画素位置にあり水平方向において小数画素位置にある小数画素の画素値が算出され、算出されたフィルタ係数h(p,q)を用いて、垂直方向において小数画素位置にある小数画素の画素値が算出される。なお、対象ブロックに対する動き補償では、その対象ブロックが有する小数画素精度の動きベクトルmvが示す局所座標上の位置(p,q)に対するフィルタ係数だけが用いられる。その結果、参照ピクチャ上の各局所座標における上記位置(p,q)の小数画素の画素値が算出され、位置(p,q)の小数画素からなる予測画像が生成される。
上記説明において、g(p)およびh(p,q)は、それぞれ水平および垂直の一次元内挿フィルタのフィルタ係数として定義され、一次元水平内挿フィルタのフィルタ係数は一次元垂直内挿フィルタのフィルタ係数よりも前に決定された。しかしながら、一次元垂直内挿フィルタのフィルタ係数が一次元水平内挿フィルタのフィルタ係数よりも前に決定されるように、g(p)およびh(p,q)の役割を変えてもよい。
また、上記説明において、一次元垂直内挿フィルタのフィルタ係数h(p,q)は、水平方向の小数画素位置pに依存した。しかし、フィルタ係数h(p,q)が、小数画素位置pに依存することなく、水平方向に不変であってもよい。この場合、フィルタ係数h(p,q)はh(q)となり、この場合にも、h(p,q)の場合と類似した効果が達成される。また、この場合には、一次元垂直内挿フィルタのフィルタ係数の数を(n−1)に減らすことができ、その結果、シグナリング・オーバーヘッドを減らすことができる。
さらに、一次元水平内挿フィルタのフィルタ係数の算出を第1に実行せずに、一次元垂直内挿フィルタの水平方向に不変のフィルタ係数h(q)を、g(p)と同様に決定してもよい。この場合、フィルタ係数h(q)(係数hj (q))はpに依存しないため、(数7)においてpはp=0に置き換えられる。その結果、フィルタ係数h(q)は、以下の(数9)に示す予測誤差(e0,q2が最小になるように決定される。なお、(数9)では、xd=x+[[vx/n]]、vx mod n=0、yd=y+[[vy/n]]およびvy mod n=qの関係が満たされている。
Figure 2008132828
この(数9)は(数5)と相似の関係にある。つまり、xとyの取り得る範囲は、各局所座標で所定の整数小数画素位置(0,q)を指し示す動きベクトルを有する対象ピクチャ上の1つ以上のブロックからなる範囲であって、その1つ以上のブロック内の(x,y)に対して上記(数9)により示される予測誤差の最小化が行われる。なお、上記ブロックはマクロブロックに対応する。つまり、xとyの取り得る範囲は、各局所座標で同一の小数画素位置を示している動きベクトル(すなわちvx mod n=0とvy mod n=qを満たす動きベクトル)を有する、いくつかのまたは全てのマクロブロックの(不連続の)結合から成る。
また、本実施の形態ではフィルタ係数に含まれる各係数をそれぞれ独立に決定した。しかし、フィルタ係数が適用される小数画素位置を中心に、各係数が重み付けられる各画素が水平方向または垂直方向に対称的に配列している場合には、その対称性を利用して、その小数画素位置のフィルタ係数に含まれる係数のうち、互いに対称的な位置にある画素に重み付けられる係数を等しくしてもよい。これにより、フィルタ係数を送信するためのオーバーヘッドを更に減少することができる。つまり、上述のような場合には、小数画素位置のフィルタ係数に含まれる係数は、(数10)のように、水平方向または垂直方向のミラーリングによって決定される。例えば、1/4画素精度(n=4)の場合には、p=2および/またはq=2にある小数画素位置のフィルタ係数に対して(数10)が適用される。
Figure 2008132828
また、本実施の形態では各小数画素位置に対するフィルタ係数をそれぞれ独立に決定した。しかし、互いに隣り合う整数画素の中間点を中心に、その整数画素間の2つの小数画素位置が水平方向または垂直方向に対称的に配列している場合には、その対称性を利用して、その2つの小数画素位置のフィルタ係数を等しくしてもよい。これにより、フィルタ係数を送信するためのオーバーヘッドを更に減少することができる。つまり、上述のような場合には、対称的に配置された小数画素位置のフィルタ係数は、(数11)のように、水平方向または垂直方向のミラーリングによって決定される。例えば、1/4画素精度(n=4)の場合には、p=3の小数画素位置のフィルタ係数は、p=1の小数画素位置のフィルタ係数と同一のフィルタ係数に決定される。
Figure 2008132828
ここで、例えば、動き検出部170によって小数画素位置(3,0)を指し示す動きベクトルが検出されず、その動きベクトルmvを有するブロックが対象ピクチャに無いために、予測誤差を用いてその小数画素位置(3,0)のフィルタ係数を算出することができない場合がある。しかしながら、小数画素位置(1,0)のフィルタ係数が予測誤差を用いて算出できれば、上述の対称性(数11)を利用することによって、その小数画素位置(3,0)のフィルタ係数を、小数画素位置(1,0)のフィルタ係数として決定することができる。
なお、上述のような対称性を利用すること以外にも、その小数画素位置(3,0)のフィルタ係数を、前のピクチャに対して算出されたその小数画素位置のフィルタ係数として決定してもよい。さらに、小数画素位置(3,0)のフィルタ係数をデフォルトのフィルタ係数に決定してもよい。また、その小数画素位置(3,0)のフィルタ係数を決定しなくてもよい。この場合、その小数画素位置のフィルタ係数は使用されることなく、動画像符号化装置100は動画像復号化装置200にその小数画素位置のフィルタ係数を送信しない。
さらに、(数12)に示されるように、(数10)および(数11)の関係を満たすようにフィルタ係数を決定してもよい。
Figure 2008132828
また、本発明では、上述のような対称性に限定されず、フィルタ係数を送信するためのオーバーヘッドを減らすために、回転対称を含む他の対称性を利用してもよい。
このように、動き検出部170によって所定の小数画素位置を指し示す動きベクトルが検出されず、その動きベクトルを有するブロックが対象ピクチャ上で特定されない場合には、適応フィルタ付動き補償予測部160は、上述のような画素位置の対称性や、他のピクチャのフィルタ係数、デフォルトのフィルタ係数などを利用することにより、その所定の小数画素位置のフィルタ係数を決定してもよい。または、適応フィルタ付動き補償予測部160は、上述のように、その所定の小数画素位置のフィルタ係数を決定しなくてもよい。
以下、本発明の効果について図13A、図13Bおよび図14を用いて説明する。
図13Aおよび図13Bは、本実施の形態における動画像符号化装置100の符号化効率と従来例の符号化効率との計測結果を比較して示す図である。なお、図13Aに示す符号化効率と図13Bに示す符号化効率とでは、それらの効率が計測される条件である入力画像が異なっている。
このような図13Aおよび図13Bでは、本実施の形態における分離型二次元適応内挿フィルタを用いて動き補償を行う動画像符号化装置100の符号化効率が、従来のH.264/AVCの二次元固定内挿フィルタを用いて動き補償を行う動画像符号化装置の符号化効率と、従来の非分離型二次元適応内挿フィルタを用いて動き補償を行う動画像符号化装置の符号化効率と比較して示されている。これらの図に示すように、本実施の形態における分離型二次元適応内挿フィルタによる符号化効率は、従来の非分離型二次元適応内挿フィルタによる符号化効率と略等しく、従来の二次元固定内挿フィルタによる符号化効率よりも高い。
図14は、本実施の形態における動画像符号化装置100によるフィルタリングの計算量と従来のフィルタリングの計算量とを比較して示す図である。
この図14に示すように、従来の非分離型二次元適応内挿フィルタ(6x6−タップ・フィルタ)の適用に要する計算量は360である。一方、本実施の形態における動画像符号化装置100によって行われる分離型二次元適応内挿フィルタ(6−タップ・フィルタ)の適用に要する計算量は90である。このように、本実施の形態ではフィルタリングの計算量を低減することができる。
なお、本実施の形態では、1枚の参照ピクチャに対して1つの分離型二次元適応内挿フィルタを決定した。つまり、1枚の参照ピクチャ上で小数画素位置(p,q)が同じであれば、それらの位置に対して同じフィルタ係数を決定した。しかし、本発明はこれに限定されるものではなく、複数のピクチャ(シーケンス)やスライスに対して1つの分離型二次元適応内挿フィルタを決定してもよい。この場合、シーケンスやスライス上で小数画素位置(p,q)が同じであれば、それらの位置に対して同じフィルタ係数が決定される。つまり、本発明では、ピクチャ、スライス、またはシーケンスなどをフィルタ決定単位とし、そのフィルタ決定単位ごとに、そのフィルタ決定単位に含まれる小数画素位置(p,q)に対する分離型二次元適応内挿フィルタのフィルタ係数を決定してもよい。
また、ブロック図(図3および図9など)の各機能ブロックは典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されても良い。例えばメモリ以外の機能ブロックが1チップ化されていても良い。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
本発明の二次元適応内挿フィルタのフィルタ係数決定方法は、少ない計算量で効率的に適切なフィルタ係数を決定することができるという効果を奏し、例えば、動画像符号化装置やビデオカメラ、カメラ付携帯電話などに適用することができる。
本発明は、動画像データを圧縮するための方法に関し、特に、動き補償のための適応内挿フィルタのフィルタ係数を決定する方法に関する。
動画像データは、多くの増大するアプリケーション、つまりテレビ電話やテレビ会議からDVD(Digital Versatile Disk)やデジタルテレビジョンに至るまで採用されている。動画像データが送信されているときには、かなりのデータ量が、限られた周波数帯域の従来の伝送チャネルを通して送信されなければならず、動画像データが記録されているときには、かなりのデータ量が、限られた容量の従来の記憶媒体に記録されなければならない。従来のチャネルやメディアを用いて、デジタルデータを送信したり記録したりするためには、デジタルデータのボリュームを圧縮するか、減らすことが、必然的である。
動画像データの圧縮のために、複数の動画像符号化規格が開発された。たとえば、その規格は、H.26xで示されるITU−T規格と、MPEG−xで示されるISO/IEC規格である。最新で最先進の動画像符号化規格は、現在H.264/MPEG−4AVCとして示される規格である。
大部分のこれらの規格の基礎をなしている符号化のアプローチは、以下に示す(a)〜(d)のメインステージから成る。
(a)各々のビデオフレームをブロックレベルでデータ圧縮するために、個々のビデオフレームをピクセルからなる二次元のブロックに分ける。
(b)時間的予測技術を各々のブロックに適用し、残差予測誤差を空間領域から周波数領域に変えることにより、時空間の動画像情報を無相関化する。
(c)その結果である変換係数を量子化することによってデータの全体的な量を減らす。
(d)量子化された変換係数をエントロピー符号化することによって差分データを圧縮する。
大部分の最新技術の動画像符号化規格によって使用される時間的予測技術は、動き補償である。この予測技術において、オブジェクトやカメラの動きによって生じる画像の動きを表現するために、動画像データの各ブロックに対して1以上の動きベクトルが決定される。決定された動きベクトルに基づいて、ブロックの画像内容は、少なくとも、前に符号化されたブロックの画像内容からの確かな延長として検出される。予測するものと、実際の画像内容との間に残留する矛盾は、予測誤差と呼ばれている。そして、実際の画像内容ではなくその予測誤差が動きベクトルと共に符号化される。このように、符号化される情報の量の相当な減少は、大部分の「自然な」動画像シーケンスに対して実現される。
明らかなように、圧縮効率は動き予測の精度に大きく依存する。H.264/AVCのような現代の動画像符号化規格は、小数画素精度を有する動きベクトルが考慮される。すなわち、その動きベクトルは、画素位置に関連する整数値に制限されず、2つの画素の間の位置を示すことができる。通常、動きベクトルは1/2画素または1/4画素精度で決定される。この場合、動画像解像度は、最初の動画像解像度の2倍または4倍の解像度を有する。小数画素精度を有する動きベクトルは、参照画像内の各サンプルがとられた位置の間の位置を参照することができ、内挿は、予測された画像を計算するために必要である。通常、予め定められた内挿フィルタが、必須の小数画素の画素値を計算するために使用される。
図1は、H.264/AVCにおける動画像符号化装置の一例を示すブロック図である。
この動画像符号化装置300は、固定されたフィルタ係数による二次元内挿フィルタを用い、小数画素精度で動き補償を行う。また、動画像符号化装置300は、入力画像(入力信号)の対象ブロックと、メモリ340に格納されている先に符号化および復号化されたブロック(予測信号)とに基づき、対象ブロックと予測信号との差分を決定する減算器310を備える。具体的には、H.264/AVC規格に従って、入力画像はマクロブロックに分けられる。動画像符号化装置300は、入力画像である入力動画像シーケンスの対象ブロックと、先に符号化および復号化されたブロック(局所的に復号化された画像)に基づく予測信号との間の差分を伝送する差分パルス符号変調(DPCM)を使用する。これらの差分は減算器310で決定される。その減算器310は、符号化される対象ブロックを受け、そこから予測信号を減ずる。
局所的に復号化された画像は、動画像符号化装置300に組み込まれる復号化部(逆量子化/逆変換部330、加算器335およびデブロッキングフィルタ337)によって提供される。復号化部は、符号化ステップを逆の方法で実行する。つまり、逆量子化/逆変換部330は、量子化係数を逆量子化し、逆変換を逆量子化係数に適用する。加算器335は、復号化された差分を予測信号に加え、局所的に復号化された画像を生成する。さらに、デブロッキングフィルタ337は、復号化された画像のブロッキングアーチファクトを減らす。
動画像符号化装置300によって使用される予測のタイプは、マクロブロックが「イントラ」モードまたは「インター」モードで符号化されるかどうかに依存する。「イントラ」モードでは、H.264/AVCは、次のマクロブロックを予測するために、同じ画像の中で既に符号化されたマクロブロックに基づく、予測の仕組みを使用する。「インター」モードでは、連続的ないくつかのフレームの対応するブロック間の動き補償予測が、使用される。
イントラ符号化画像(I−タイプ画像)だけは、いかなる前に復号化された画像にも関係なく復号化される。I−タイプ画像は、誤差回復力を符号化された動画像シーケンスに提供する。さらに、符号化されたデータであるビットストリームへのエントリーポイントは、ランダムアクセスを可能にするために、すなわち、符号化された動画像シーケンスの範囲内でI−タイプ画像にアクセスするために、I−タイプ画像によって提供される。イントラモード(イントラ予測部350による処理)と、インターモード(動き補償予測部360による処理)との間の切り換えは、切換スイッチ380によって制御される。
「インター」モードにおいて、マクロブロックは、動き補償を使用することによって、先行フレームの対応するブロックから予測される。動き検出は、対象入力信号と局所復号画像を受信する動き検出部370によって達成される。この動き検出は、二次元の動きベクトルを検出する。そして、その動きベクトルは、対象ブロックと先行フレームの対応するブロックとの間の画素の動きを示す。検出された動きに基づいて、動き補償予測部360は予測信号を出力する。
予測精度を最適化するために、動きベクトルは小数画素精度(例えば1/2画素または1/4画素精度)で決定される。小数画素精度を有する動きベクトルは、先行フレームの範囲内で画素値が利用できない位置(すなわち小数画素位置)を示している。したがって、画素値の空間内挿が、動き補償を実行するために必要である。H.264/AVC規格によれば、固定フィルタ係数とバイリニア・フィルタを有する6−タップ・ウィーナー内挿フィルタが、小数画素位置の画素値を得るために適用される。
内挿のプロセスは、次のように行われる。
1.1/2画素位置が、水平および垂直に6−タップ・フィルタを使用して算出される。
2.1/4画素位置が、既存の整数画素値と、すでに計算された1/2画素値とを用いたバイリニア・フィルタリングによって算出される。
フィルタ係数は、固定されているため、動画像復号化装置によって公知とされている。したがって、オーバーヘッドデータは、フィルタ係数を動画像復号化装置に送信するためには必要でない。
「イントラ」および「インター」の符号化モードにおいて、対象ブロックと予測信号との差分は、変換/量子化部320によって変換係数に変わる。通常、二次元の離散コサイン変換(DCT)のような直交変換またはそれの整数バージョンが使用される。
変換係数は、符号化データの量を減らすために量子化される。量子化ステップは、精度と、各々の周波数係数を符号化するために用いるビット数とを特定する量子化テーブルによって制御される。通常、低い周波数成分は、微細な内容よりも画質にとって重要であり、その結果、多くのビットが高周波数成分よりも低周波成分を符号化することに費やされる。
量子化係数の二次元の配列は、エントロピー符号化部390に通すために一次元の列に変換される。この変換は、予め定められたシーケンスで、配列をスキャンすることによって行われる。このように得られた量子化係数の一次元のシーケンスは、ラン−レベルと呼ばれている数の組からなる列に圧縮される。最後に、ラン−レベル・シーケンスは、可変長(可変長符号化(VLC))のバイナリーコード名に符号化される。このコードは、より短いコード名が、典型的な動画像に起こっている最も頻出するラン−レベルの組に割り当てられるように最適化される。結果として生じるビットストリームは、動き情報と共に多重化されて記録媒体に保存されるか、動画像復号化装置側に送信される。
動画像復号化装置は、符号化された画像を再構成するために、符号化方法と逆の方法で復号化を行う。
図2は、H.264/AVCにおける動画像復号化装置の一例を示すブロック図である。
動画像復号化装置400は、最初に、エントロピー符号化された量子化係数と動きベクトルとを、エントロピー復号化部490においてエントロピー復号化する。このステップは、逆変換に必要であって、エントロピー復号化された量子化係数のシーケンスを二次元のブロックに配置する逆スキャンを含む。復号化された量子化係数のブロックは、逆量子化/逆変換部420に出力され、復号化された動きベクトルは動き補償予測部460に出力される。動きベクトルの実際の値に従い、画素値の内挿が動き補償を実行するために必要となる。逆量子化および逆変換の結果は予測誤差を含み、加算器435は、その予測誤差を、インターモードでの動き補償予測部460によって生成される予測信号、またはイントラモードでのイントラ予測部450によって生成される予測信号に加える。その結果、再構成された画像はデブロッキングフィルタ437に出力され、デブロッキングフィルタ437で処理された信号は、イントラ予測部450および動き補償予測部460に用いられるメモリ440に保存される。
さらに、H.264/AVCに続く規格では、予測精度と圧縮効率を改善するために、予め定められた内挿フィルタ(二次元固定内挿フィルタ)を、処理対象の動画像の統計特性に特に適している二次元適応内挿フィルタに取り替えることが検討されている。つまり、符号化効率は予測精度にかなり依存し、そして、その予測精度は動き検出と動き補償の精度に依存している。したがって、動き補償に使用される二次元固定内挿フィルタを、動画像の統計特性に適応した二次元適応内挿フィルタに取り替えることによって符号化効率を向上することができる。また、圧縮される動画像データに特有であるエイリアシング・アーチファクトとカメラ・ノイズを低減することができる。
通常、画像処理のための二次元適応内挿フィルタは、分離可能であるか分離不可能であるかに分類される。分離可能な分離型二次元適応内挿フィルタは、2つの一次元フィルタに分離される。2つの一次元フィルタの連続的な使用は、元の二次元適応内挿フィルタを適用することに等しい。分離不可能な非分離型二次元内挿フィルタには、この種の一次元フィルタは存在しない。
分離型二次元適応内挿フィルタは、非分離型二次元適応内挿フィルタと比べて、画像に対してそのフィルタを適用するための係数の数が少ないために、計算的負担が大きくないという点において有利である。例えば、非分離型の場合には、6×6−タップ二次元フィルタは、合計36個の係数を有するのに対し、分離型の場合には、2つの一次元フィルタは合計6+6個の係数だけを有する。
例えば、非特許文献1および非特許文献2には、このような分離型二次元適応内挿フィルタのフィルタ係数を決定する方法が開示されている。非特許文献1および2の方法では、予測画像と対象画像との間の誤差が最小となるように、水平方向の1次元フィルタのフィルタ係数と、垂直方向の1次元フィルタのフィルタ係数とがそれぞれ決定される。
しかしながら、上記従来の分離型二次元適応内挿フィルタのフィルタ係数決定方法であっても、フィルタ係数を決定するための計算量が多いという問題がある。つまり、上記従来のフィルタ係数決定方法では、対象画像(対象ブロック)を含むピクチャ全体を考慮して、予測画像と対象画像との間の誤差が最小になるようにフィルタ係数を決定するため、計算量が膨大になってしまうのである。
そこで、本発明は、かかる問題に鑑みてなされたものであって、少ない計算量で効率的に適切なフィルタ係数を決定し得る二次元適応内挿フィルタのフィルタ係数決定方法を提供することを目的とする。
上記目的を達成するために、本発明に係る二次元適応内挿フィルタのフィルタ係数決定方法は、二次元に配置された整数画素の画素値に基づいて、整数画素間に内挿される小数画素の画素値を算出するための二次元適応内挿フィルタのフィルタ係数を決定する方法であって、対象ピクチャを構成するブロックごとに、参照画像からの当該ブロックの画像の動きを動きベクトルとして小数画素精度で検出する動き検出ステップと、前記動き検出ステップによって検出された小数画素精度の動きベクトルを有する複数のブロックの中から、近傍にある整数画素との間で予め定められた相対的位置関係にある前記参照画像上の小数画素位置を示す第1の動きベクトルを有する1つ以上のブロックを特定する第1の特定ステップと、前記第1の特定ステップで特定された1つ以上のブロックの画像と、前記1つ以上のブロックの第1の動きベクトルにより示される参照画像上の1つ以上のブロックの画像とに基づいて、前記小数画素位置のフィルタ係数を決定する第1の決定ステップとを含むことを特徴とする。
例えば、近傍にある整数画素との間で予め定められた相対的位置関係にある小数画素位置が位置(p,q)である場合、参照ピクチャ上の小数画素位置(p,q)を示す第1の動きベクトルを有する複数のブロックが対象ピクチャの中から特定される。なお、位置(p,q)は、互いに隣り合う4つの整数画素に囲われた範囲内における位置、つまり局所座標上の位置を示す。そして、その特定された複数のブロックに基づいて、その小数画素位置(p,q)のフィルタ係数が決定される。このように、本発明では、対象ピクチャを構成する全てのブロックの中から、小数画素位置(p,q)を示す動きベクトルを有するブロックを絞り込み、その絞り込まれた複数のブロックだけに基づいて、小数画素位置(p,q)のフィルタ係数を決定する。したがって、対象ピクチャを構成する全てのブロックの動きベクトルが参照ピクチャ上のあらゆる小数画素位置を示すことを想定し、その全てのブロックの画像に基づいて小数画素位置(p,q)のフィルタ係数を決定することが行われないため、フィルタ係数算出のための計算量を大幅に低減することができ、適切なフィルタ係数を効率的に決定することができる。また、本発明では、フィルタ係数を決定する前に小数画素精度で動きベクトルを検出しているため、フィルタ係数の決定後に改めて小数画素精度の動きベクトルを検出する必要がなく、処理負担を軽減することができる。なお、上述の参照画像は、1枚の参照ピクチャだけでなく、複数の参照ピクチャや、ピクチャを構成するスライスであってもよい。また、第1の決定ステップでは、例えば、対象ピクチャの特定された各ブロックの画像と、その各ブロックの動きベクトルにより指し示される参照画像上の各ブロックの画像とのそれぞれの差分の自乗和が最小になるように、小数画素位置のフィルタ係数が決定される。
また、前記二次元適応内挿フィルタは、水平方向および垂直方向の何れか一方である第1の方向に一次元に配列された複数の画素の間の小数画素位置に内挿される小数画素の画素値を算出するための第1の一次元内挿フィルタと、前記第1の方向と異なる水平方向または垂直方向である第2の方向に一次元に配列された複数の画素の間の小数画素位置に内挿される小数画素の画素値を算出するための第2の一次元内挿フィルタとに分離可能であり、前記第1の特定ステップでは、前記予め定められた相対的位置関係を満たし、前記第1の方向において小数画素位置にあって且つ第2の方向において整数画素位置にある第1の小数画素位置を示す前記第1の動きベクトルを有する1つ以上のブロックを特定し、前記第1の決定ステップでは、前記第1の小数画素位置における前記第1の一次元内挿フィルタのフィルタ係数を決定し、前記フィルタ係数決定方法は、さらに、前記動き検出ステップによって検出された小数画素精度の動きベクトルを有する複数のブロックの中から、近傍にある整数画素との間で他の予め定められた相対的位置関係にあって前記第2の方向において小数画素位置にある前記参照画像上の第2の小数画素位置を示す第2の動きベクトルを有する1つ以上のブロックを特定する第2の特定ステップと、前記第2の特定ステップで特定された1つ以上のブロックの画像と、前記1つ以上のブロックの第2の動きベクトルにより示される参照画像上の1つ以上のブロックの画像とに基づいて、前記第2の小数画素位置における前記第2の一次元内挿フィルタのフィルタ係数を決定する第2の決定ステップとを含むことを特徴としてもよい。
これにより、さらに、二次元適応内挿フィルタのフィルタ係数が、第1および第2の一次元内挿フィルタのフィルタ係数に分離して決定されるため、フィルタ係数算出のための計算量をさらに低減することができる。また、第1の特定ステップおよび第1の決定ステップにより、例えば第1の小数画素位置(p,0)に対する一次元水平内挿フィルタのフィルタ係数が決定され、第2の特定ステップおよび第2の決定ステップにより、例えば第2の小数画素位置(p,q)(但しq≠0)に対する一次元垂直内挿フィルタのフィルタ係数が決定される。その結果、第1の小数画素位置(p,0)および第2の小数画素位置(p,q)の適切なフィルタ係数を少ない計算量で効率的に決定することができる。なお、例えば、1/4画素精度の場合、pをp=1,…,3に変化させることで、全ての第1の小数画素位置(p,0)のフィルタ係数を算出することができ、pをp=0,…,3に変化させてqをq=1,…,3に変化させることで、全ての第2の小数画素位置(p,q)のフィルタ係数を算出することができる。
例えば、前記第2の特定ステップでは、前記他の予め定められた相対的位置関係を満たし、前記第1の方向において整数画素位置にあって且つ第2の方向において小数画素位置にある前記第2の小数画素位置を示す前記第2の動きベクトルを有する1つ以上のブロックを特定する。
これにより、第2の小数画素位置(0,q)(但しq≠0)のフィルタ係数を算出することができる。また、例えば、1/4画素精度の場合、qをq=1,…,3に変化させることで、第1の方向において整数画素位置にある全ての第2の小数画素位置(0,q)のフィルタ係数を算出することができる。
また、前記第2の特定ステップでは、前記他の予め定められた相対的位置関係を満たし、前記第1および第2の方向において小数画素位置にある前記第2の小数画素位置を示す前記第2の動きベクトルを有する1つ以上のブロックを特定し、前記第2の決定ステップでは、前記第1の決定ステップで決定された前記第1の一次元内挿フィルタのフィルタ係数を前記第1の小数画素位置に適用し、適用された結果を用いて、前記第2の小数画素位置におけるフィルタ係数を決定する。
これにより、第2の小数画素位置(p,q)(但しp≠0およびq≠0)のフィルタ係数を算出することができる。また、例えば、1/4画素精度の場合、pをp=1,…,3に変化させてqをq=1,…,3に変化させることで、第1の方向および第2の方向において小数画素位置にある全ての第2の小数画素位置(p,q)のフィルタ係数を算出することができる。また、このときには、第1の一次元内挿フィルタのフィルタ係数を第1の小数画素位置に適用することにより、その第1の小数画素位置の小数画素の画素値が算出され、その小数画素の画素値を使って第2の小数画素位置におけるフィルタ係数が決定される。
また、前記第1の決定ステップでは、前記第1の特定ステップによって特定された1つ以上のブロックの画像と、前記1つ以上のブロックの第1の動きベクトルにより示される参照画像上の1つ以上のブロックの画像との差分が最小になるように、前記小数画素位置に対するフィルタ係数を決定することを特徴としてもよい。例えば、前記第1の決定ステップでは、前記差分を最小にする線形方程式を解くことにより、前記小数画素位置に対するフィルタ係数を決定する。
これにより、参照ピクチャの画像に適したフィルタ係数、つまりその画像に適応的なフィルタ係数を適切に決定することができる。さらに、線形方程式を用いる場合には、計算量をさらに低減して適切なフィルタ係数を効率的に決定することができる。
また、本発明に係る動画像圧縮方法は、動画像を圧縮する方法であって、上記本発明の二次元適応内挿フィルタのフィルタ係数決定方法に含まれる全てのステップを実行することにより前記二次元適応内挿フィルタのフィルタ係数を決定するフィルタ係数決定ステップと、前記小数画素位置を示す動きベクトルを有するブロックを対象ブロックとし、前記対象ブロックに対して動き補償を行うことにより、前記対象ブロックの予測画像を生成する動き補償ステップと、前記動き補償ステップにより生成された予測画像と前記対象ブロックの画像との差分と、前記フィルタ係数決定ステップで決定されたフィルタ係数とを符号化する符号化ステップとを含み、前記動き補償ステップでは、前記フィルタ係数決定ステップで決定されたフィルタ係数を前記小数画素位置に適用することにより前記小数画素位置に内挿される小数画素の画素値を算出し、算出された画素値の小数画素を有する前記予測画像を生成することを特徴としてもよい。
これにより、上述のフィルタ係数決定方法により小数画素位置のフィルタ係数を決定し、そのフィルタ係数を用いて対象ブロックの予測画像を生成するため、少ない計算量で対象ブロックの画像に極めて近い予測画像を生成することができる。その結果、対象ブロックの画像と予測画像との差分の符号量を効率的に低減することができる。さらに、フィルタ係数も符号化されるため、その符号化されたフィルタ係数を復号化装置に出力すれば、その復号化装置は、その符号化されたフィルタ係数を復号化して用いることで、対象ブロックを適切に復号化することができる。
また、前記フィルタ係数決定ステップでは、小数画素位置ごとに、当該小数画素位置に対するフィルタ係数を決定する際、所定の小数画素位置と水平方向または垂直方向に対称な位置にある他の小数画素位置に対して、前記所定の小数画素位置に対して決定されたフィルタ係数と同一のフィルタ係数を決定することを特徴としてもよい。
これにより、所定の小数画素位置のフィルタ係数を決定すれば、他の小数画素位置のフィルタ係数も同時に決定することができる。さらに、他の小数画素位置は所定の小数画素位置と水平方向または垂直方向に対称な位置にあるため、他の小数画素位置に対しても適切なフィルタ係数を決定することができる。その結果、より少ない計算量で適切なフィルタ係数を決定することができる。また、例えば、フィルタ係数決定ステップで、フィルタ係数が決定されるべき決定対象の小数画素位置を示す動きベクトルが検出されなかった場合であっても、その決定対象の小数画素位置と水平方向または垂直方向に対称な位置にある他の小数画素位置のフィルタ係数を用いて、その決定対象の小数画素位置のフィルタ係数を適切に決定することができる。
また、小数画素位置に対する前記二次元適応内挿フィルタのフィルタ係数は、前記小数画素位置を水平方向または垂直方向に挟んで配置される複数の画素のそれぞれに対する係数からなり、前記フィルタ係数決定ステップでは、前記小数画素位置に対するフィルタ係数を決定する際、前記複数の画素の中で、所定の画素に対する係数と、前記小数画素位置を中心に前記所定の画素と水平方向または垂直方向に対称な位置にある他の画素に対する係数とが同一となるように、前記フィルタ係数を決定することを特徴としても良い。例えば、前記フィルタ係数決定ステップでは、前記複数の画素のそれぞれに対する係数が水平方向または垂直方向に対称となるように、前記小数画素位置に対するフィルタ係数を決定する。
これにより、複数の画素のそれぞれに対する係数が水平方向または垂直方向に対称となるため、適切なフィルタ係数をより少ない計算量で算出することができる。
なお、本発明は、このようなフィルタ係数決定方法および動画像圧縮方法として実現することができるだけでなく、それらの方法によりフィルタ係数を決定したり動画像を圧縮する装置や集積回路、それらの方法に含まれる各ステップをコンピュータに実行させるためのプログラムや、そのプログラムを格納する記録媒体としても実現することができる。
本発明の二次元適応内挿フィルタは、少ない計算量で効率的に適切なフィルタ係数を決定することができるという作用効果を奏する。
図1は、従来の動画像符号化装置の構成の一例を示すブロック図である。 図2は、従来の動画像符号化装置の構成の一例を示すブロック図である。 図3は、本発明の実施の形態における動画像符号化装置の一例を示すブロック図である。 図4は、同上のフィルタ係数が算出される小数画素位置を示す図である。 図5Aは、同上の小数画素位置に対して算出されるフィルタ係数の具体例を示す図である。 図5Bは、同上の他の小数画素位置に対して算出されるフィルタ係数の具体例を示す図である。 図6は、同上の参照ピクチャ中の各小数画素位置と動きベクトルとを示す図である。 図7は、同上の対象ピクチャにおいて特定されるブロックを示す図である。 図8は、同上の動き検出部および適応フィルタ付動き補償予測部の処理動作を示すフローチャートである。 図9は、同上の動画像復号化装置の一例を示すブロック図である。 図10は、同上の1/4画素精度の参照ピクチャの画素位置および画素値を示す図である。 図11は、同上の一次元水平内挿フィルタにより内挿される小数画素およびそのフィルタ係数を示す図である。 図12は、同上の一次元垂直内挿フィルタにより内挿される小数画素およびそのフィルタ係数を示す図である。 図13Aは、所定の条件における本発明の符号化効率と従来例の符号化効率とを比較して示す図である。 図13Bは、他の条件における本発明の符号化効率と従来例の符号化効率とを比較して示す図である。 図14は、本発明の分離型二次元適応内挿フィルタを適用したときの計算量と、従来の非分離型二次元適応内挿フィルタを適用したときの計算量とを比較して示す図である。
以下、本発明の実施の形態における動画像符号化装置(動画像圧縮装置)について図面を参照しながら説明する。
本実施の形態における動画像符号化装置は、分離型二次元適応内挿フィルタのフィルタ係数を、少ない計算量で効率的に且つ適切に算出することができる。そして、この動画像符号化装置は、算出されたフィルタ係数を用いて動き補償を行い、その結果、動画像を効率的に且つ適切に符号化することができる。
図3は、本実施の形態における動画像符号化装置の一例を示すブロック図である。
本実施の形態における動画像符号化装置100は、減算器110、変換/量子化部120、逆量子化/逆変換部130、加算器135、デブロッキングフィルタ137、メモリ140、イントラ予測部150、適応フィルタ付動き補償予測部160、動き検出部170、切換スイッチ180、およびエントロピー符号化部190を備えている。
なお、本実施の形態における動画像符号化装置100は、動き検出部170および適応フィルタ付動き補償予測部160に特徴がある。つまり、減算器110、変換/量子化部120、逆量子化/逆変換部130、加算器135、デブロッキングフィルタ137、メモリ140、イントラ予測部150、および切換スイッチ180はそれぞれ、従来の動画像符号化装置300の減算器310、変換/量子化部320、逆量子化/逆変換部330、加算器335、デブロッキングフィルタ337、メモリ340、イントラ予測部350、および切換スイッチ380のそれぞれの機能と同様の機能を有する。なお、本実施の形態では、動き検出部170と適応フィルタ付動き補償予測部160とからフィルタ係数決定装置が構成されている。
減算器110は、動画像を示す入力信号を取得する。入力信号は複数のピクチャから構成され、そのピクチャは複数のブロック(マクロブロック)から構成されている。つまり、減算器110は、そのブロックを順次取得し、取得するごとに、そのブロックを対象ブロックとして扱う。さらに、減算器110は、対象ブロックごとに、イントラ予測部150または適応フィルタ付動き補償予測部160から出力された、その対象ブロックに対応する予測画像を示す予測信号を取得する。そして、減算器110は、対象ブロックから予測信号の示す予測画像を減算することにより、その対象ブロックに対する予測誤差を生成し、その予測誤差を変換/量子化部120に出力する。
変換/量子化部120は、減算器110から予測誤差を取得し、その予測誤差に対して離散コサイン変換などの直交変換を行うことによって直交変換係数を生成する。さらに、変換/量子化部120は、その直交変換係数を量子化することによって量子化係数を生成し、逆量子化/逆変換部130およびエントロピー符号化部190に出力する。
逆量子化/逆変換部130は、変換/量子化部120から量子化係数を取得すると、その量子化係数を逆量子化することによって直交変換係数を生成する。さらに、逆量子化/逆変換部130は、その直交変換係数に対して逆離散コサイン変換などの逆直交変換を行うことによって予測誤差を生成し、その予測誤差を加算器135に出力する。
加算器135は、逆量子化/逆変換部130から出力された予測誤差と、イントラ予測部150または適応フィルタ付動き補償予測部160から出力された予測信号の示す予測画像とを加算する。そして、加算器135は、その加算結果を示す局所復号画像をデブロッキングフィルタ137に出力する。
デブロッキングフィルタ137は、その局所復号画像に対してデブロッキングフィルタをかけることにより、その局所復号画像にある符号化歪みを除去し、符号化歪みが除去された局所復号画像をメモリ140に格納する。
メモリ140には、デブロッキングフィルタ137によって局所復号画像が逐次格納される。その結果、後の対象ブロックに対する予測画像の生成に使用される参照ピクチャがメモリ140に格納されることとなる。
イントラ予測部150は、対象ブロックに対して面内予測(イントラ予測)を行う。つまり、イントラ予測部150は、メモリ140に格納されている幾つかの局所復号画像に基づいて、対象ブロックに対する予測画像を生成し、その予測画像を示す予測信号を切換スイッチ180に出力する。
切換スイッチ180は、対象ブロックに対して面内予測(イントラ予測)が行われるときには、イントラ予測部150から出力される予測信号を減算器110に出力し、対象ブロックに対して画面間予測(インター予測)が行われるときには、適応フィルタ付動き補償予測部160から出力される予測信号を減算器110に出力する。
エントロピー符号化部190は、変換/量子化部120から出力される量子化係数と、適応フィルタ付動き補償予測部160から出力されるフィルタ係数と、動き検出部170から出力される動きベクトルとを取得し、それらに対してエントロピー符号化を行うことによって、ビットストリームたる符号化信号を生成して出力する。
動き検出部170は、入力信号に含まれるブロックを順次取得し、取得するごとに、その取得したブロックを対象ブロックとして扱う。そして、動き検出部170は、その対象ブロックの示す画像に近似する画像を有するブロックを、メモリ140に格納されている参照ピクチャから検出する。つまり、動き検出部170は、参照ピクチャからの対象ブロックの画像の動きを動きベクトルとして検出し、その動きベクトルを適応フィルタ付動き補償予測部160およびエントロピー符号化部190に出力する。
ここで、動き検出部170は小数画素精度で動き検出を行い、小数画素精度の動きベクトルを出力する。つまり、動き検出部170は、まず、参照ピクチャの画素精度を整数画素精度から小数画素精度に変換し、その小数画素精度の参照ピクチャを用いて動き検出を行う。このように画素精度を変換するために、動き検出部170は、予め定められたフィルタ係数を有する二次元固定内挿フィルタをその参照ピクチャに適用する。この二次元固定内挿フィルタは、例えば、H.264/AVC規格に定められている、固定フィルタ係数とバイリニア・フィルタを有する6−タップ・ウィーナー内挿フィルタである。また、小数画素精度は、例えば1/2画素精度や1/4画素精度などである。
適応フィルタ付動き補償予測部160は、入力信号により示される対象ピクチャに含まれる各ブロックを順次取得し、動き検出部170からその各ブロックに対応する小数画素精度の動きベクトルを順次取得する。そして、適応フィルタ付動き補償予測部160は、その取得した各ブロックおよび各動きベクトルに基づいて、参照ピクチャに適用される分離型二次元適応内挿フィルタのフィルタ係数を算出し、そのフィルタ係数をエントロピー符号化部190に出力する。
さらに、適応フィルタ付動き補償予測部160は、算出されたフィルタ係数を用いて対象ブロックに対する動き補償を行う。つまり、適応フィルタ付動き補償予測部160は、対象ブロックが有する小数画素精度の動きベクトルにより指し示される参照ピクチャ中のブロックに対して、上述のように算出されたフィルタ係数を有する分離型二次元適応内挿フィルタを適用する。その結果、適応フィルタ付動き補償予測部160は、先に二次元固定内挿フィルタにより算出された、上記ブロックに含まれる小数画素の画素値を、分離型二次元適応内挿フィルタが適用された値に算出し直す。これによって、適応フィルタ付動き補償予測部160は、その算出し直された画素値の小数画素を有する、対象ブロックに対する予測画像を生成し、その予測画像を示す予測信号を切換スイッチ180に出力する。
ここで、本実施の形態における適応フィルタ付動き補償予測部160によるフィルタ係数の算出処理および動き補償について詳細に説明する。
図4は、フィルタ係数が算出される小数画素位置を示す図である。なお、図4中、黒丸が整数画素位置を示し、白丸が小数画素位置を示す。
適応フィルタ付動き補償予測部160は、図4に示すように1/4画素精度の場合、(p,q)=(1,0)、(2,0)、(3,0)、(0,1)、(0,2)、(0,3)、(1,1)、(1,2)、(1,3)、(2,1)、(2,2)、(2,3)、(3,1)、(3,2)および(3,3)により示される15ヶ所の小数画素位置に対するフィルタ係数を算出する。ここで、位置(p,q)は、4つの整数画素によって囲われる最小の範囲を一つの整数単位範囲として、その整数単位範囲上の座標位置、つまり、ピクチャ上の各整数単位範囲内において共通の座標位置を示す。言い換えれば、位置(p,q)は、小数画素位置とその近傍の整数画素位置(0,0)との間での相対的位置関係を示す。具体的には、位置pは、水平方向に沿って配列する整数画素間の座標位置を示し、位置qは、垂直方向に沿って配列する整数画素間の座標位置を示す。なお、1つの整数単位範囲には、位置(p,q)=(0,0)にある整数画素と、上記15ヶ所の小数画素位置にある小数画素とが含まれる。また、上記15ヶ所の位置に対して算出されるフィルタ係数は、例えば同一ピクチャにある全ての整数単位範囲に対して共通に算出される。つまり、複数の整数単位範囲のそれぞれには同一の小数画素位置(p,q)があり、その同一の小数画素位置(p,q)に対して同一のフィルタ係数が算出される。
また、1つの小数画素位置に対するフィルタ係数は、例えば6つの整数画素の画素値のそれぞれに重み付けされる係数の集合によって表される。
図5Aおよび図5Bは、小数画素位置に対して算出されるフィルタ係数の具体例を示す図である。
適応フィルタ付動き補償予測部160は、図5Aに示すように、水平方向に配列する整数画素の間の位置(p,0)(但し、p≠0)に対する一次元水平内挿フィルタのフィルタ係数g(p)を、例えば、その位置(p,0)を略中心にして水平方向に配列する6つの整数画素の画素値に重み付けられる係数gi (p)(i=−2,−1,0,1,2,3)の集合として算出する。なお、上述の位置(p,0)(但し、p≠0)は、水平方向に小数画素位置で且つ垂直方向に整数画素位置にあり、以下、そのような位置(p,0)を小数整数画素位置(第1の小数画素位置)ともいう。
また、適応フィルタ付動き補償予測部160は、図5Bに示すように、垂直方向に配列する整数画素の間の位置(0,q)に対する一次元垂直内挿フィルタのフィルタ係数h(q)を、例えば、その位置(0,q)(但し、q≠0)を略中心にして垂直方向に配列する6つの整数画素の画素値に重み付けられる係数hj (q)(j=−2,−1,0,1,2,3)の集合として算出する。なお、上述の位置(0,q)は、水平方向に整数画素位置で且つ垂直方向に小数画素位置にあり、以下、そのような位置(0,q)(但し、q≠0)を整数小数画素位置(第2の小数画素位置)ともいう。
また、適応フィルタ付動き補償予測部160は、小数整数画素位置にもなく整数小数画素位置にもない位置(p,q)(但し、p≠0かつq≠0)に対する一次元垂直内挿フィルタのフィルタ係数h(p,q)を算出するときには、その小数画素位置に対するフィルタ係数h(p,q)を、その小数画素位置を略中心にして垂直方向に配列する複数の小数画素の画素値に重み付けられる係数の集合として算出する。なお、その垂直方向に配列する複数の小数画素は小数整数画素位置にある。また、上述の位置(p,q)(但し、p≠0かつq≠0)は、水平方向および垂直方向に小数画素位置にあり、以下、その位置(p,q)を小数小数画素位置(第2または第3の小数画素位置)ともいう。
例えば、適応フィルタ付動き補償予測部160は、その位置(p,q)を略中心にして垂直方向に配列する小数整数画素位置の複数の小数画素の画素値に重み付けられる係数hj (p,q)(j=−2,−1,0,1,2,3)の集合として、位置(p,q)に対するフィルタ係数h(p,q)を算出する。
なお、上述の小数整数画素位置、整数小数画素位置および小数小数画素位置は、上述の整数単位範囲に含まれる小数画素位置であって、整数単位範囲のそれぞれにおいて、同一の小数画素位置、つまり同一の小数整数画素位置、同一の整数小数画素位置および同一の小数小数画素位置がある。
つまり、本実施の形態における分離型二次元適応内挿フィルタは、一次元水平内挿フィルタと一次元垂直内挿フィルタとに分離される。適応フィルタ付動き補償予測部160は、小数整数画素位置にある小数画素の画素値を算出するときには、その小数整数画素位置(p,0)に対して一次元水平内挿フィルタのフィルタ係数g(p)を適用する。具体的には、適応フィルタ付動き補償予測部160は、小数整数画素位置(p,0)を水平方向に挟んで配列する複数の整数画素の画素値のそれぞれに係数gi (p)を掛けて合計した結果を、その小数整数画素位置にある小数画素の画素値として算出する。また、適応フィルタ付動き補償予測部160は、整数小数画素位置(0,q)にある小数画素の画素値を算出するときには、その整数小数画素位置(0,q)に対して一次元垂直内挿フィルタのフィルタ係数h(q)を適用する。具体的には、適応フィルタ付動き補償予測部160は、小数整数画素位置(0,q)を垂直方向に挟んで配列する複数の整数画素の画素値のそれぞれに係数hj (q)を掛けて合計した結果を、その整数小数画素位置にある小数画素の画素値として算出する。
また、適応フィルタ付動き補償予測部160は、小数小数画素位置(p,q)(但し、p≠0かつq≠0)にある小数画素の画素値を算出するときには、例えば、まず、小数整数画素位置(p,0)に対して一次元水平内挿フィルタのフィルタ係数g(p)を適用することにより、小数整数画素位置(p,0)にある小数画素の画素値を算出する。次に、適応フィルタ付動き補償予測部160は、小数小数画素位置(p,q)に対して一次元垂直内挿フィルタのフィルタ係数h(p,q)を適用する。具体的には、適応フィルタ付動き補償予測部160は、小数小数画素位置(p,q)を垂直方向に挟んで配列する複数の小数整数画素位置(p,0)の小数画素の画素値のそれぞれに係数hj (p,q)を掛けて合計した結果を、その小数小数画素位置にある小数画素の画素値として算出する。
ここで、本実施の形態における適応フィルタ付動き補償予測部160は、分離型二次元適応内挿フィルタの上述のようなフィルタ係数を算出するときには、まず、対象ピクチャに含まれる各ブロックに対して検出された小数画素精度の動きベクトルを用い、参照ピクチャ中の所定の小数整数画素位置を示す動きベクトルを有する1つ以上のブロックを対象ピクチャの中から見つけ出す。これにより、その小数整数画素位置に対するフィルタ係数の算出に必要とされるブロックが、対象ピクチャの全体から絞り込まれる。
図6は、参照ピクチャ中の各小数画素位置と動きベクトルとを示す図である。なお、図6中、バツ印が小数整数画素位置を示し、三角が整数小数画素位置を示し、白丸が小数小数画素位置を示す。
例えば、適応フィルタ付動き補償予測部160は、小数整数画素位置(p,q)=(1,0)を指し示す動きベクトルmvが検出された対象ピクチャ中の1つ以上のブロックを特定する。そして、適応フィルタ付動き補償予測部160は、対象ピクチャに含まれるその特定された1つ以上のブロックだけを用い、対象ピクチャのその他のブロックを用いることなく、その位置(p,q)=(1,0)に対するフィルタ係数を算出する。
図7は、対象ピクチャにおいて特定されるブロックを示す図である。
例えば、適応フィルタ付動き補償予測部160は、対象ピクチャPcの中から、参照ピクチャPr中の小数整数画素位置(p,q)=(1,0)を指し示す3つの動きベクトルmv1,mv2,mv3をそれぞれ有する3つのブロックBk1,Bk2,Bk3を特定する。なお、動きベクトルmv1,mv2,mv3により示される参照ピクチャPr中のブロックBkr1,Bkr2,Bkr3はそれぞれ、整数画素位置から、上記小数整数画素位置の分だけ、つまり水平方向に1/4画素だけずれている。
適応フィルタ付動き補償予測部160は、対象ピクチャPcのブロックBk1と、そのブロックBk1の動きベクトルmv1により示される参照ピクチャPr中のブロックBkr1との差分D1と、対象ピクチャPcのブロックBk2と、そのブロックBk2の動きベクトルmv2により示される参照ピクチャPr中のブロックBkr2との差分D2と、対象ピクチャPcのブロックBk3と、そのブロックBk3の動きベクトルmv3により示される参照ピクチャPr中のブロックBkr3との差分D3との和(D1+D2+D3)が最小になるように、小数整数画素位置(p,q)=(1,0)に対する一次元水平内挿フィルタのフィルタ係数を算出する。言い換えれば、適応フィルタ付動き補償予測部160は、上述の和(D1+D2+D3)が最小になるように、フィルタ係数を最適化する。なお、上述の差分とは、例えば、対象ピクチャのブロックの各整数画素の画素値と、その各整数画素に対応する参照ピクチャのブロックの各小数画素の画素値との差分自乗和である。また、適応フィルタ付動き補償予測部160は、フィルタ係数を最適化するときには、例えば、フィルタ係数を適宜変化させて小数画素の画素値を算出しながら上記差分が最小となるようにフィルタ係数を決定する。または、適応フィルタ付動き補償予測部160は、後述する線形方程式を解くことによりフィルタ係数を決定する。
このように適応フィルタ付動き補償予測部160は、位置(p,q)=(1,0)に対するフィルタ係数を算出すると、残りの小数整数画素位置に対する一次元水平内挿フィルタのフィルタ係数も上述と同様の処理を繰り返すことにより算出する。つまり、適応フィルタ付動き補償予測部160は、位置(p,q)=(2,0)および(3,0)に対するフィルタ係数を算出する。
次に、本実施の形態における適応フィルタ付動き補償予測部160は、参照ピクチャ中の所定の整数小数画素位置を示す動きベクトルを有する1つ以上のブロックを対象ピクチャの中から見つけ出す。これにより、その整数小数画素位置に対するフィルタ係数の算出に必要とされるブロックが、対象ピクチャの全体から絞り込まれる。
例えば、適応フィルタ付動き補償予測部160は、整数小数画素位置である位置(p,q)=(0,1)、(0,2)および(0,3)に対する一次元垂直内挿フィルタのフィルタ係数を、上述と同様の最適化を行うことにより算出する。
さらに、本実施の形態における適応フィルタ付動き補償予測部160は、参照ピクチャ中の所定の小数小数画素位置の小数画素を示す動きベクトルを有する1つ以上のブロックを対象ピクチャの中から見つけ出す。これにより、その小数小数画素位置に対するフィルタ係数の算出に必要とされるブロックが、対象ピクチャの全体から絞り込まれる。
例えば、適応フィルタ付動き補償予測部160は、小数小数画素位置である位置(p,q)=(1,1)、(1,2)、(2,1)、(2,2)、(2,3)、(3,1)、(3,2)および(3,3)に対する一次元垂直内挿フィルタのフィルタ係数を、上述と同様の最適化を行うことにより算出する。なお、このとき、適応フィルタ付動き補償予測部160は、先に算出された小数整数画素位置のフィルタ係数を用いて、その小数整数画素位置の画素値を算出し、その画素値を用いて小数小数画素位置に対するフィルタ係数の最適化を行う。
図8は、本実施の形態における動き検出部170および適応フィルタ付動き補償予測部160の処理動作を示すフローチャートである。
まず、動き検出部170は、対象ピクチャのブロックごとに、二次元固定内挿フィルタを用いて小数画素精度の動きベクトルを検出する(ステップS100)。次に、適応フィルタ付動き補償予測部160は、参照ピクチャにおいて所定の小数整数画素位置を指し示す動きベクトルを有する1つ以上のブロックを、その対象ピクチャの中から特定する(ステップS102)。
適応フィルタ付動き補償予測部160は、対象ピクチャに含まれるブロックのうち、そのステップS102で特定したブロックを用い、対象ピクチャのそれ以外のブロックを用いることなく、上記小数整数画素位置に対するフィルタ係数を算出する(ステップS104)。このように1つの小数整数画素位置に対するフィルタ係数が算出されると、適応フィルタ付動き補償予測部160は、フィルタ係数が算出されていない他の小数整数画素位置があるか否かを判別する(ステップS106)。
ここで、適応フィルタ付動き補償予測部160は、フィルタ係数が算出されていない他の小数整数画素位置があると判別すると(ステップS106のY)、その小数整数画素位置に対してステップS102からの処理を繰り返し実行する。また、適応フィルタ付動き補償予測部160は、フィルタ係数が算出されていない他の小数整数画素位置がないと判別すると(ステップS106のN)、参照ピクチャにおいて所定の整数小数画素位置を指し示す動きベクトルを有するブロックを、その対象ピクチャの中から特定する(ステップS108)。
適応フィルタ付動き補償予測部160は、対象ピクチャに含まれるブロックのうち、そのステップS108で特定したブロックを用い、対象ピクチャのそれ以外のブロックを用いることなく、上記整数小数画素位置に対するフィルタ係数を算出する(ステップS110)。このように1つの整数小数画素位置に対するフィルタ係数が算出されると、適応フィルタ付動き補償予測部160は、フィルタ係数が算出されていない他の整数小数画素位置があるか否かを判別する(ステップS112)。
ここで、適応フィルタ付動き補償予測部160は、フィルタ係数が算出されていない他の整数小数画素位置があると判別すると(ステップS112のY)、その整数小数画素位置に対してステップS108からの処理を繰り返し実行する。また、適応フィルタ付動き補償予測部160は、フィルタ係数が算出されていない他の整数小数画素位置がないと判別すると(ステップS112のN)、参照ピクチャにおいて所定の小数小数画素位置を指し示す動きベクトルを有する1つ以上のブロックを、その対象ピクチャの中から特定する(ステップS114)。
適応フィルタ付動き補償予測部160は、対象ピクチャに含まれるブロックのうち、そのステップS114で特定したブロックを用い、対象ピクチャのそれ以外のブロックを用いることなく、上記小数小数画素位置に対するフィルタ係数を算出する(ステップS116)。このように1つの小数小数画素位置に対するフィルタ係数が算出されると、適応フィルタ付動き補償予測部160は、フィルタ係数が算出されていない他の小数小数画素位置があるか否かを判別する(ステップS118)。
ここで、適応フィルタ付動き補償予測部160は、フィルタ係数が算出されていない他の小数小数画素位置があると判別すると(ステップS118のY)、その小数小数画素位置に対してステップS114からの処理を繰り返し実行する。また、適応フィルタ付動き補償予測部160は、フィルタ係数が算出されていない他の小数小数画素位置がないと判別すると(ステップS112のN)、分離型二次元適応内挿フィルタの全ての小数画素位置に対するフィルタ係数が算出されたと判断する。そして、適応フィルタ付動き補償予測部160は、ステップS100で検出された動きベクトルと、算出されたフィルタ係数とを用いて対象ブロックに対する動き補償を行う(ステップS220)。
このように本実施の形態では、対象ピクチャの各ブロックの動きベクトルが小数画素精度で検出され、参照ピクチャ上の小数画素位置(p,q)を示す動きベクトルを有する複数のブロックが対象ピクチャの中から特定される。そして、その特定された複数のブロックに基づいて、その小数画素位置(p,q)のフィルタ係数が決定される。つまり、本実施の形態では、対象ピクチャを構成する全てのブロックの中から、小数画素位置(p,q)を示す動きベクトルを有するブロックを絞り込み、その絞り込まれた複数のブロックだけに基づいて、小数画素位置(p,q)のフィルタ係数を決定する。したがって、対象ピクチャを構成する全てのブロックの動きベクトルが参照ピクチャ上のあらゆる小数画素位置を示すことを想定し、その全てのブロックの画像に基づいて小数画素位置(p,q)のフィルタ係数を決定することが行われないため、フィルタ係数算出のための計算量を大幅に低減することができ、適切なフィルタ係数を効率的に決定することができる。また、本実施の形態では、分離型二次元適応内挿フィルタのフィルタ係数を決定する前に検出された小数画素精度の動きベクトルが動き補償(ブロックの符号化)に利用されて符号化信号に含められる。つまり、本実施の形態では、フィルタ係数を決定する前に小数画素精度で動きベクトルを検出して動き補償に利用しているため、フィルタ係数の決定後に改めて、動き補償に利用されて符号化信号に含められるべき小数画素精度の動きベクトルを検出する必要がなく、処理負担を軽減することができる。なお、本発明は、分離型二次元適応内挿フィルタのフィルタ係数が決定された後に、さらに、そのフィルタ係数を用いて小数画素精度の動きベクトルを検出し、その動きベクトルを動き補償に利用することを妨げるものではない。
図9は、本実施の形態における動画像復号化装置の一例を示すブロック図である。
本実施の形態における動画像復号化装置200は、逆量子化/逆変換部220、加算器235、デブロッキングフィルタ237、メモリ240、イントラ予測部250、適応フィルタ付動き補償予測部260、切換スイッチ280およびエントロピー復号化部290を備えている。
エントロピー復号化部290は、動画像符号化装置100から出力されたビットストリームたる符号化信号を取得して、その符号化信号に対してエントロピー復号化を行う。このエントロピー復号化により、エントロピー復号化部290は、量子化係数、動きベクトルおよびフィルタ係数を符号化信号から取り出して、その量子化係数を逆量子化/逆変換部220に出力し、動きベクトルおよびフィルタ係数を適応フィルタ付動き補償予測部260に出力する。
逆量子化/逆変換部220は、動画像符号化装置100の逆量子化/逆変換部130と同様の機能および構成を有し、エントロピー復号化部290から取得した量子化係数を直交変換係数に逆量子化し、その直交変換係数を予測誤差に逆直交変換して加算器235に出力する。
加算器235は、動画像符号化装置100の加算器135と同様の機能および構成を有する。つまり、加算器235は、逆量子化/逆変換部220から出力された予測誤差と、イントラ予測部250または適応フィルタ付動き補償予測部260から出力された予測信号の示す予測画像とを加算する。そして、加算器135は、その加算結果を示す復号画像をデブロッキングフィルタ237に出力する。
デブロッキングフィルタ237は、動画像符号化装置100のデブロッキングフィルタ137と同様の機能および構成を有する。つまり、デブロッキングフィルタ237は、その復号画像に対してデブロッキングフィルタをかけることにより、その復号画像にある符号化歪みを除去し、符号化歪みが除去された復号画像をメモリ240に格納する。
メモリ240には、動画像符号化装置100のメモリ140と同様、デブロッキングフィルタ237によって復号画像が逐次格納される。その結果、後の対象ブロックに対する予測画像の生成に使用される参照ピクチャがメモリ240に格納されることとなる。
イントラ予測部250は、動画像符号化装置100のイントラ予測部150と同様の機能および構成を有する。つまり、イントラ予測部250は、対象ブロックに対して面内予測(イントラ予測)を行い、その対象ブロックに対する予測画像を示す予測信号を切換スイッチ280に出力する。
切換スイッチ280は、動画像符号化装置100の切換スイッチ180と同様の機能および構成を有する。つまり、切換スイッチ280は、対象ブロックに対して面内予測(イントラ予測)が行われるときには、イントラ予測部250から出力される予測信号を加算器235に出力し、対象ブロックに対して画面間予測(インター予測)が行われるときには、適応フィルタ付動き補償予測部260から出力される予測信号を加算器235に出力する。
適応フィルタ付動き補償予測部260は、動画像符号化装置100の適応フィルタ付動き補償予測部160と同様の機能および構成を有する。つまり、適応フィルタ付動き補償予測部260は、エントロピー復号化部290から出力された各ブロックに対応する小数画素精度の動きベクトルを取得すると、それらの動きベクトルを有するブロックに基づいて、分離型二次元適応内挿フィルタのフィルタ係数を算出する。さらに、適応フィルタ付動き補償予測部260は、算出されたフィルタ係数を用いて対象ブロックに対する動き補償を行い、その結果、その対象ブロックに対する予測画像を生成し、その予測画像を示す予測信号を切換スイッチ280に出力する。この適応フィルタ付動き補償予測部260によるフィルタ係数の算出および動き補償は、上述の適応フィルタ付動き補償予測部160によるフィルタ係数の算出および動き補償と同様に行われる。
以下、分離型二次元適応内挿フィルタのフィルタ係数を決定する方法について、具体的に説明する。
図10は、1/4画素精度の参照ピクチャの画素位置および画素値を示す図である。
黒丸は整数画素位置(すなわち元の画像のサンプリング位置)を意味するのに対して、白丸は画素値が内挿されなければならない小数画素位置を示す。なお、本発明はいかなる小数画素精度(垂直および水平の方向に異なる小数画素精度を含む)にも適用可能である。
ここで、以下において、nを小数画素精度(すなわち1/2画素精度の場合にはn=2、1/4画素精度の場合にはn=4など)と定義する。参照ピクチャ上の位置は整数画素精度または小数画素精度により表される。(x,y)は参照ピクチャ上の座標位置を整数画素精度で示し、(nx+p,ny+q)は参照ピクチャ上の座標位置を小数画素精度で示す。つまり、小数画素精度で示される整数画素位置(nx,ny)は、整数画素精度で示される整数画素位置(x,y)に一致する。なお、小数画素精度で示される(nx+p,ny+q)は、上述の(p,q)のように各整数単位範囲に共通の位置を示さず、参照ピクチャ上の特定の1つの位置を示す。以下、(p,q)を、(nx+p,ny+q)と区別するために、局所座標上の位置という。さらに、Px,yを元の参照ピクチャの整数画素位置(x,y)にある画素の画素値と定義する。さらに、Panx+p,0を、参照ピクチャ上の小数画素精度で示される1つの位置(nx+p,0)における画素の画素値と定義し、Pbnx+p,ny+qを、参照ピクチャ上の小数画素精度で示される1つの位置(nx+p,ny+q)における画素の画素値と定義する(図10参照)。
動きベクトルは、mv=(vx,vy)によって表現される。つまり、動きベクトル501,502,503は、小数画素精度により示される水平方向および垂直方向の位置をそれぞれ成分vxおよびvyに代入することによって表される。vx mod n=0を満たす動きベクトル503は、x方向(水平方向)の整数画素位置を示している。vx mod n=1,…,(n−1)を満たす動きベクトル501,502は、x方向の小数画素位置を示している。y方向(垂直方向)についても同様、動きベクトル501がy方向の整数画素位置を示し、動きベクトル502,503がy方向の小数画素位置を示している。
本実施の形態における分離型二次元適応内挿フィルタは、上述のように、一次元水平内挿フィルタと一次元垂直内挿フィルタに分けられることができる。具体的に、垂直方向において整数画素位置にある画素、つまり位置(nx+p,y)にある画素の画素値Panx+p,yは、一次元水平内挿フィルタを用いて以下の(数1)によって示される。
Figure 2008132828
ここで、gi (p)は、局所座標上の位置(p,0)に対する水平方向のフィルタ係数g(p)に含まれる複数の係数あって、6−タップ・フィルタの場合、i=−2,−1,0,1,2,3を有する一次元水平内挿フィルタの離散的な係数である。つまり、局所座標上の位置(p,0)に対する一次元水平内挿フィルタのフィルタ係数g(p)は、6つの係数g-2 (p)、g-1 (p)、g0 (p)、g1 (p)、g2 (p)、g3 (p)からなる。また、Px-i,yは、整数画素位置(x−i,y)(i=−2,−1,0,1,2,3)にある整数画素の画素値である。このように、垂直方向において整数画素位置にある画素、つまり位置(nx+p,y)にある画素の画素値Panx+p,yは、水平方向に沿って配列する6つの整数画素の画素値Px-i,y(i=−2,−1,0,1,2,3)のそれぞれに対して係数gi (p)(i=−2,−1,0,1,2,3)を掛けて合計した結果として表される。このような水平方向のフィルタ係数g(p)は、局所座標上の特定の位置pに依存する。それゆえに、一次元水平内挿フィルタのフィルタ係数g(p)は、各々の位置pに対して決定される。
図11は、一次元水平内挿フィルタにより内挿される小数画素およびそのフィルタ係数を示す図である。なお、図10中、黒丸は既知の画素値を有する整数画素を示し、白丸は内挿されるべき小数画素を示す。
フィルタ係数g(p)は、局所座標上の小数整数画素位置(p,0)(p=1,…,(n−1))のそれぞれに対して決定される。例えば、n=4の場合、小数整数画素位置(1,0)に対してフィルタ係数g(1)が決定され、小数整数画素位置(2,0)に対してフィルタ係数g(2)が決定され、小数整数画素位置(3,0)に対してフィルタ係数g(3)が決定される。
このように一次元水平内挿フィルタのフィルタ係数g(p)が決定されると、位置(nx+p,ny+q)にある画素の画素値Pbnx+p,ny+qは、一次元垂直内挿フィルタを用いて以下の(数2)によって定められる。
Figure 2008132828
ここで、hj (p,q)は、局所座標上の位置(p,q)に対する垂直方向のフィルタ係数h(p,q)に含まれる複数の係数である。たとえば、6−タップ・フィルタの場合、hj (p,q)は、j=−2,−1,0,1,2,3を有する一次元垂直内挿フィルタの離散的な係数である。つまり、局所座標上の位置(p,q)に対する一次元垂直内挿フィルタのフィルタ係数h(p,q)は、6つの係数h-2 (p,q)、h-1 (p,q)、h0 (p,q)、h1 (p,q)、h2 (p,q)、h3 (p,q)からなる。また、Panx+p,y-jは、垂直方向において整数画素位置にある画素、つまり位置(nx+p,y−j)(j=−2,−1,0,1,2,3)にある画素の画素値である。したがって、係数hj (p,q)は、水平方向に内挿された小数画素の画素値Panx+p,y-jに対しても掛け算される。このように、位置(nx+p,ny+q)にある画素の画素値Pbnx+p,ny+qは、垂直方向に沿って配列する6つの画素の画素値Panx+p,y-j(j=−2,−1,0,1,2,3)のそれぞれに対して係数hj (p,q)(j=−2,−1,0,1,2,3)を掛けて合計した結果として表される。また、垂直方向のフィルタ係数h(p,q)は、局所座標上の特定の位置(p,q)に依存する。それゆえに、一次元垂直内挿フィルタのフィルタ係数h(p,q)は、各々の位置(p,q)の画素に対して決定される。
図12は、一次元垂直内挿フィルタにより内挿される小数画素およびそのフィルタ係数を示す図である。なお、図12中、黒丸は既知の画素値を有する整数画素および小数画素を示し、白丸は内挿されるべき小数画素を示す。
フィルタ係数hj (p,q)は、局所座標上の小数画素位置(p,q)(p=0,…,(n−1)およびq=1,…,(n−1))のそれぞれに対して決定される。例えば、n=4の場合、12個の小数画素のそれぞれに対してフィルタ係数hj (p,q)が決定される。具体的に、小数画素位置(0,1)に対してフィルタ係数hj (0,1)が決定され、小数画素位置(1,1)に対してフィルタ係数hj (1,1)が決定され、小数画素位置(1,2)に対してフィルタ係数hj (1,2)が決定される。
なお、本実施の形態では、一次元水平内挿フィルタおよび一次元垂直内挿フィルタの適用によって整数画素位置の画素の画素値が変化しないことが要請される。言い換えれば、一次元水平内挿フィルタおよび一次元垂直内挿フィルタが整数画素の画素値に影響を与えないことが要請される。それゆえに、pおよびqがそれぞれ0となり得る場合、以下の(数3)に示す条件が満たされなければならない。
Figure 2008132828
ここで、δk,lはクロネッカーデルタであり、k=lであればδk,l=1であり、k≠lであればδk,l=0である。更に、一次元垂直内挿フィルタの適用によって一次元水平内挿フィルタの結果(小数画素の画素値)が変化しないことも要請される。言い換えれば、一次元垂直内挿フィルタが一次元水平内挿フィルタの結果である小数画素の画素値に影響を与えないことが要請される。それゆえに、qが0となり得る場合、以下の(数4)に示す条件が満たされなければならない。
Figure 2008132828
従って、pおよびqがそれぞれ0となり得る場合であっても、実質的には、(n−1)個の小数整数画素位置に対する一次元水平適応内挿フィルタのフィルタ係数g(1),…,g(n-1)と、n(n−1)個の小数画素位置(整数小数画素位置および小数小数画素位置)に対する一次元垂直内挿フィルタのフィルタ係数h(0,1),…,h(0,n-1),h(1,1),…,h(n-1,n-1)とがある。
本実施の形態では、まず、対象ピクチャの中から、参照ピクチャにおける各局所座標で所定の小数整数画素位置(p,0)(p≠0)を指し示す小数画素精度の動きベクトルmv=(vx,vy)(vx mod n≠0、vy mod n=0)を有する1つ以上のブロックが特定される。そして、本実施の形態では、一次元水平内挿フィルタのフィルタ係数g(p)(係数gi (p))は、以下の(数5)に示す予測誤差(ep2が最小になるように最適化される。
Figure 2008132828

ここで、Sx,yは、対象ピクチャ上の整数画素精度により示される位置(x,y)にある整数画素の画素値であり、Pxd-i,ydは、前に復号化された参照ピクチャ上の整数画素位置(xd−i,yd)にある画素の画素値である。また、xdはxd=x+[[vx/n]]によって定義され、ydはyd=y+[[vy/n]]によって定義され、pはp=vx mod nにより示される。なお、[[A]]は、引数A以下の最大の整数を示すフロア演算子である。また、上述のように、vy mod n=0が満たされているため、ydは、yd=y+[[vy/n]]=y+vy/nにより示される。
つまり、位置(xd,yd)は、対象ピクチャ上の整数画素位置(x,y)と小数画素精度の動きベクトルmv=(vx,vy)とによって指し示される参照ピクチャ上の小数画素位置(x+vx/n,y+vy/n)から見て、水平方向に近傍にある整数画素位置である。そして、位置(xd−i,yd)は、例えばi=−2,−1,0,1,2,3によって、水平方向に連続して配列する6つの整数画素位置を示す。
xとyの取り得る範囲は、各局所座標で所定の小数整数画素位置(p,0)を指し示す動きベクトルを有する対象ピクチャ上の1つ以上のブロックからなる範囲であって、その1つ以上のブロック内の(x,y)に対して上記(数5)により示される予測誤差の最小化が行われる。なお、上記ブロックはマクロブロックに対応する。つまり、xとyの取り得る範囲は、各局所座標で同一の小数画素位置を示している動きベクトル(すなわちvx mod n=pとvy mod n=0を満たす動きベクトル)を有する、(一つ以上の動画像の中の)いくつかまたは全てのマクロブロックの(不連続の)結合から成る。
上述のように、本実施の形態では、一次元水平内挿フィルタのフィルタ係数g(p)は、(数5)に示す予測誤差を最小化するように決定される。このような最小化(最適化)のアルゴリズムには、公知技術のいかなるもの(例えば勾配降下法、シミュレイテッドアニーリング法など)が適用されてもよい。例えば、最適なフィルタ係数g(p)は、(数5)の偏導関数によって導出される線形方程式を解くことによって決定される。その線形方程式は、以下の(数6)のように示される。
Figure 2008132828
このような最適化によって、局所座標上の1つの小数整数画素位置(p,0)に対する一次元水平内挿フィルタのフィルタ係数g(p)が決定される。そして、他の小数整数画素位置(p,0)に対しても同様の最適化が繰り返し実行されて、その位置に対するフィルタ係数g(p)が順次決定される。
このように決定された一次元水平内挿フィルタのフィルタ係数g(p)を用いることによって、前に復号化された参照ピクチャ上の、水平方向において小数画素位置にあり垂直方向において整数画素位置にある小数画素の画素値Panx+p,yが、上記(数1)によって算出される。
次に本実施の形態では、対象ピクチャの中から、参照ピクチャにおける各局所座標で小数整数画素位置を除く同一の小数画素位置(p,q)(q≠0)を指し示す小数画素精度の動きベクトルmv=(vx,vy)(vy mod n≠0)を有する1つ以上のブロックが特定される。そして、本実施の形態では、一次元垂直内挿フィルタのフィルタ係数h(p,q)(係数hj (p,q))は、垂直方向における小数画素の動きを考慮に入れる予測誤差の最小化によって、第2のステップで決定される。つまり、このフィルタ係数h(p,q)は、以下の(数7)に示す予測誤差(ep,q2が最小になるように最適化される。
Figure 2008132828
ここで、Sx,yは、対象ピクチャ上の整数画素精度により示される位置(x,y)にある整数画素の画素値であり、Panx+vx,yd-jは、参照ピクチャ上の小数整数画素位置または整数画素位置である位置(nx+vx,yd−j)の画素の画素値である。また、pはp=vx mod nにより示され、qはq=vy mod n≠0により示される。つまり、位置(nx+vx,yd)は、対象ピクチャ上の整数画素位置(x,y)と小数画素精度の動きベクトルmv=(vx,vy)とによって指し示される参照ピクチャ上の小数画素位置(x+vx/n,y+vy/n)から見て、垂直方向に近傍にある小数整数画素位置または整数画素位置である。そして、位置(nx+vx,yd−j)は、例えばj=−2,−1,0,1,2,3によって、垂直方向に連続して配列する6つの小数整数画素位置または6つの整数画素位置を示す。
xとyの取り得る範囲は、各局所座標で所定の小数画素位置(p,q)(q≠0)を指し示す動きベクトルを有する対象ピクチャ上の1つ以上のブロックからなる範囲であって、その1つ以上のブロック内の(x,y)に対して上記(数7)により示される予測誤差の最小化が行われる。なお、上記ブロックはマクロブロックに対応する。つまり、xとyの取り得る範囲は、各局所座標で同一の小数画素位置を示している動きベクトル(すなわちvx mod n=pとvy mod n=q≠0を満たす動きベクトル)を有する、いくつかまたは全てのマクロブロックの(不連続の)結合から成る。
上述のように、本実施の形態では、一次元垂直内挿フィルタのフィルタ係数h(p,q)は、(数7)に示す予測誤差を最小化するように決定される。このような最小化(最適化)のアルゴリズムには、公知技術のいかなるもの(例えば勾配降下法、シミュレイテッドアニーリング法など)が適用されてもよい。例えば、最適なフィルタ係数h(p,q)は、(数7)の偏導関数によって導出される線形方程式を解くことによって決定される。その線形方程式は、以下の(数8)のように示される。
Figure 2008132828
このような最適化によって、局所座標上の1つの小数画素位置(p,q)(q≠0)に対する一次元垂直内挿フィルタのフィルタ係数hj (p,q)が決定される。そして、他の小数画素位置(p,q)(q≠0)に対しても同様の最適化が繰り返し実行されて、その位置に対するフィルタ係数h(p,q)が順次決定される。
このように決定された一次元垂直内挿フィルタのフィルタ係数hj (p,q)を用いることによって、前に復号化された参照ピクチャ上の、小数画素位置(p,q)(q≠0)にある小数画素の画素値Pbnx+p,ny+qが、上記(数2)によって算出される。
このように、本実施の形態における分離型二次元適応内挿フィルタは、一次元水平内挿フィルタと一次元垂直内挿フィルタに分けられる。そして、一次元水平内挿フィルタのフィルタ係数g(p)と、一次元垂直内挿フィルタのフィルタ係数h(p,q)とがそれぞれ算出される。さらに、動き補償では、算出されたフィルタ係数g(p)を用いて、垂直方向において整数画素位置にあり水平方向において小数画素位置にある小数画素の画素値が算出され、算出されたフィルタ係数h(p,q)を用いて、垂直方向において小数画素位置にある小数画素の画素値が算出される。なお、対象ブロックに対する動き補償では、その対象ブロックが有する小数画素精度の動きベクトルmvが示す局所座標上の位置(p,q)に対するフィルタ係数だけが用いられる。その結果、参照ピクチャ上の各局所座標における上記位置(p,q)の小数画素の画素値が算出され、位置(p,q)の小数画素からなる予測画像が生成される。
上記説明において、g(p)およびh(p,q)は、それぞれ水平および垂直の一次元内挿フィルタのフィルタ係数として定義され、一次元水平内挿フィルタのフィルタ係数は一次元垂直内挿フィルタのフィルタ係数よりも前に決定された。しかしながら、一次元垂直内挿フィルタのフィルタ係数が一次元水平内挿フィルタのフィルタ係数よりも前に決定されるように、g(p)およびh(p,q)の役割を変えてもよい。
また、上記説明において、一次元垂直内挿フィルタのフィルタ係数h(p,q)は、水平方向の小数画素位置pに依存した。しかし、フィルタ係数h(p,q)が、小数画素位置pに依存することなく、水平方向に不変であってもよい。この場合、フィルタ係数h(p,q)はh(q)となり、この場合にも、h(p,q)の場合と類似した効果が達成される。また、この場合には、一次元垂直内挿フィルタのフィルタ係数の数を(n−1)に減らすことができ、その結果、シグナリング・オーバーヘッドを減らすことができる。
さらに、一次元水平内挿フィルタのフィルタ係数の算出を第1に実行せずに、一次元垂直内挿フィルタの水平方向に不変のフィルタ係数h(q)を、g(p)と同様に決定してもよい。この場合、フィルタ係数h(q)(係数hj (q))はpに依存しないため、(数7)においてpはp=0に置き換えられる。その結果、フィルタ係数h(q)は、以下の(数9)に示す予測誤差(e0,q2が最小になるように決定される。なお、(数9)では、xd=x+[[vx/n]]、vx mod n=0、yd=y+[[vy/n]]およびvy mod n=qの関係が満たされている。
Figure 2008132828
この(数9)は(数5)と相似の関係にある。つまり、xとyの取り得る範囲は、各局所座標で所定の整数小数画素位置(0,q)を指し示す動きベクトルを有する対象ピクチャ上の1つ以上のブロックからなる範囲であって、その1つ以上のブロック内の(x,y)に対して上記(数9)により示される予測誤差の最小化が行われる。なお、上記ブロックはマクロブロックに対応する。つまり、xとyの取り得る範囲は、各局所座標で同一の小数画素位置を示している動きベクトル(すなわちvx mod n=0とvy mod n=qを満たす動きベクトル)を有する、いくつかのまたは全てのマクロブロックの(不連続の)結合から成る。
また、本実施の形態ではフィルタ係数に含まれる各係数をそれぞれ独立に決定した。しかし、フィルタ係数が適用される小数画素位置を中心に、各係数が重み付けられる各画素が水平方向または垂直方向に対称的に配列している場合には、その対称性を利用して、その小数画素位置のフィルタ係数に含まれる係数のうち、互いに対称的な位置にある画素に重み付けられる係数を等しくしてもよい。これにより、フィルタ係数を送信するためのオーバーヘッドを更に減少することができる。つまり、上述のような場合には、小数画素位置のフィルタ係数に含まれる係数は、(数10)のように、水平方向または垂直方向のミラーリングによって決定される。例えば、1/4画素精度(n=4)の場合には、p=2および/またはq=2にある小数画素位置のフィルタ係数に対して(数10)が適用される。
Figure 2008132828
また、本実施の形態では各小数画素位置に対するフィルタ係数をそれぞれ独立に決定した。しかし、互いに隣り合う整数画素の中間点を中心に、その整数画素間の2つの小数画素位置が水平方向または垂直方向に対称的に配列している場合には、その対称性を利用して、その2つの小数画素位置のフィルタ係数を等しくしてもよい。これにより、フィルタ係数を送信するためのオーバーヘッドを更に減少することができる。つまり、上述のような場合には、対称的に配置された小数画素位置のフィルタ係数は、(数11)のように、水平方向または垂直方向のミラーリングによって決定される。例えば、1/4画素精度(n=4)の場合には、p=3の小数画素位置のフィルタ係数は、p=1の小数画素位置のフィルタ係数と同一のフィルタ係数に決定される。
Figure 2008132828
ここで、例えば、動き検出部170によって小数画素位置(3,0)を指し示す動きベクトルが検出されず、その動きベクトルmvを有するブロックが対象ピクチャに無いために、予測誤差を用いてその小数画素位置(3,0)のフィルタ係数を算出することができない場合がある。しかしながら、小数画素位置(1,0)のフィルタ係数が予測誤差を用いて算出できれば、上述の対称性(数11)を利用することによって、その小数画素位置(3,0)のフィルタ係数を、小数画素位置(1,0)のフィルタ係数として決定することができる。
なお、上述のような対称性を利用すること以外にも、その小数画素位置(3,0)のフィルタ係数を、前のピクチャに対して算出されたその小数画素位置のフィルタ係数として決定してもよい。さらに、小数画素位置(3,0)のフィルタ係数をデフォルトのフィルタ係数に決定してもよい。また、その小数画素位置(3,0)のフィルタ係数を決定しなくてもよい。この場合、その小数画素位置のフィルタ係数は使用されることなく、動画像符号化装置100は動画像復号化装置200にその小数画素位置のフィルタ係数を送信しない。
さらに、(数12)に示されるように、(数10)および(数11)の関係を満たすようにフィルタ係数を決定してもよい。
Figure 2008132828
また、本発明では、上述のような対称性に限定されず、フィルタ係数を送信するためのオーバーヘッドを減らすために、回転対称を含む他の対称性を利用してもよい。
このように、動き検出部170によって所定の小数画素位置を指し示す動きベクトルが検出されず、その動きベクトルを有するブロックが対象ピクチャ上で特定されない場合には、適応フィルタ付動き補償予測部160は、上述のような画素位置の対称性や、他のピクチャのフィルタ係数、デフォルトのフィルタ係数などを利用することにより、その所定の小数画素位置のフィルタ係数を決定してもよい。または、適応フィルタ付動き補償予測部160は、上述のように、その所定の小数画素位置のフィルタ係数を決定しなくてもよい。
以下、本発明の効果について図13A、図13Bおよび図14を用いて説明する。
図13Aおよび図13Bは、本実施の形態における動画像符号化装置100の符号化効率と従来例の符号化効率との計測結果を比較して示す図である。なお、図13Aに示す符号化効率と図13Bに示す符号化効率とでは、それらの効率が計測される条件である入力画像が異なっている。
このような図13Aおよび図13Bでは、本実施の形態における分離型二次元適応内挿フィルタを用いて動き補償を行う動画像符号化装置100の符号化効率が、従来のH.264/AVCの二次元固定内挿フィルタを用いて動き補償を行う動画像符号化装置の符号化効率と、従来の非分離型二次元適応内挿フィルタを用いて動き補償を行う動画像符号化装置の符号化効率と比較して示されている。これらの図に示すように、本実施の形態における分離型二次元適応内挿フィルタによる符号化効率は、従来の非分離型二次元適応内挿フィルタによる符号化効率と略等しく、従来の二次元固定内挿フィルタによる符号化効率よりも高い。
図14は、本実施の形態における動画像符号化装置100によるフィルタリングの計算量と従来のフィルタリングの計算量とを比較して示す図である。
この図14に示すように、従来の非分離型二次元適応内挿フィルタ(6x6−タップ・フィルタ)の適用に要する計算量は360である。一方、本実施の形態における動画像符号化装置100によって行われる分離型二次元適応内挿フィルタ(6−タップ・フィルタ)の適用に要する計算量は90である。このように、本実施の形態ではフィルタリングの計算量を低減することができる。
なお、本実施の形態では、1枚の参照ピクチャに対して1つの分離型二次元適応内挿フィルタを決定した。つまり、1枚の参照ピクチャ上で小数画素位置(p,q)が同じであれば、それらの位置に対して同じフィルタ係数を決定した。しかし、本発明はこれに限定されるものではなく、複数のピクチャ(シーケンス)やスライスに対して1つの分離型二次元適応内挿フィルタを決定してもよい。この場合、シーケンスやスライス上で小数画素位置(p,q)が同じであれば、それらの位置に対して同じフィルタ係数が決定される。つまり、本発明では、ピクチャ、スライス、またはシーケンスなどをフィルタ決定単位とし、そのフィルタ決定単位ごとに、そのフィルタ決定単位に含まれる小数画素位置(p,q)に対する分離型二次元適応内挿フィルタのフィルタ係数を決定してもよい。
また、ブロック図(図3および図9など)の各機能ブロックは典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されても良い。例えばメモリ以外の機能ブロックが1チップ化されていても良い。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
本発明の二次元適応内挿フィルタのフィルタ係数決定方法は、少ない計算量で効率的に適切なフィルタ係数を決定することができるという効果を奏し、例えば、動画像符号化装置やビデオカメラ、カメラ付携帯電話などに適用することができる。
100 動画像符号化装置
120 変換/量子化部
130 逆量子化/逆変換部
150 イントラ予測部
160 適応フィルタ付動き補償予測部
170 動き検出部
200 動画像復号化装置
220 逆量子化/逆変換部
250 イントラ予測部
260 適応フィルタ付動き補償予測部

Claims (21)

  1. 二次元に配置された整数画素の画素値に基づいて、整数画素間に内挿される小数画素の画素値を算出するための二次元適応内挿フィルタのフィルタ係数を決定する方法であって、
    対象ピクチャを構成するブロックごとに、参照画像からの当該ブロックの画像の動きを動きベクトルとして小数画素精度で検出する動き検出ステップと、
    前記動き検出ステップによって検出された小数画素精度の動きベクトルを有する複数のブロックの中から、近傍にある整数画素との間で予め定められた相対的位置関係にある前記参照画像上の小数画素位置を示す第1の動きベクトルを有する1つ以上のブロックを特定する第1の特定ステップと、
    前記第1の特定ステップで特定された1つ以上のブロックの画像と、前記1つ以上のブロックの第1の動きベクトルにより示される参照画像上の1つ以上のブロックの画像とに基づいて、前記小数画素位置のフィルタ係数を決定する第1の決定ステップと
    を含むことを特徴とする二次元適応内挿フィルタのフィルタ係数決定方法。
  2. 前記二次元適応内挿フィルタは、
    水平方向および垂直方向の何れか一方である第1の方向に一次元に配列された複数の画素の間の小数画素位置に内挿される小数画素の画素値を算出するための第1の一次元内挿フィルタと、
    前記第1の方向と異なる水平方向または垂直方向である第2の方向に一次元に配列された複数の画素の間の小数画素位置に内挿される小数画素の画素値を算出するための第2の一次元内挿フィルタとに分離可能であり、
    前記第1の特定ステップでは、
    前記予め定められた相対的位置関係を満たし、前記第1の方向において小数画素位置にあって且つ第2の方向において整数画素位置にある第1の小数画素位置を示す前記第1の動きベクトルを有する1つ以上のブロックを特定し、
    前記第1の決定ステップでは、
    前記第1の小数画素位置における前記第1の一次元内挿フィルタのフィルタ係数を決定し、
    前記フィルタ係数決定方法は、さらに、
    前記動き検出ステップによって検出された小数画素精度の動きベクトルを有する複数のブロックの中から、近傍にある整数画素との間で他の予め定められた相対的位置関係にあって前記第2の方向において小数画素位置にある前記参照画像上の第2の小数画素位置を示す第2の動きベクトルを有する1つ以上のブロックを特定する第2の特定ステップと、
    前記第2の特定ステップで特定された1つ以上のブロックの画像と、前記1つ以上のブロックの第2の動きベクトルにより示される参照画像上の1つ以上のブロックの画像とに基づいて、前記第2の小数画素位置における前記第2の一次元内挿フィルタのフィルタ係数を決定する第2の決定ステップとを含む
    ことを特徴とする請求項1記載の二次元適応内挿フィルタのフィルタ係数決定方法。
  3. 前記第2の特定ステップでは、
    前記他の予め定められた相対的位置関係を満たし、前記第1の方向において整数画素位置にあって且つ第2の方向において小数画素位置にある前記第2の小数画素位置を示す前記第2の動きベクトルを有する1つ以上のブロックを特定する
    ことを特徴とする請求項2記載の二次元適応内挿フィルタのフィルタ係数決定方法。
  4. 前記第2の特定ステップでは、
    前記他の予め定められた相対的位置関係を満たし、前記第1および第2の方向において小数画素位置にある前記第2の小数画素位置を示す前記第2の動きベクトルを有する1つ以上のブロックを特定し、
    前記第2の決定ステップでは、
    前記第1の決定ステップで決定された前記第1の一次元内挿フィルタのフィルタ係数を前記第1の小数画素位置に適用し、適用された結果を用いて、前記第2の小数画素位置におけるフィルタ係数を決定する
    ことを特徴とする請求項2記載の二次元適応内挿フィルタのフィルタ係数決定方法。
  5. 前記第1の決定ステップでは、
    前記第1の特定ステップによって特定された1つ以上のブロックの画像と、前記1つ以上のブロックの第1の動きベクトルにより示される参照画像上の1つ以上のブロックの画像との差分が最小になるように、前記小数画素位置に対するフィルタ係数を決定する
    ことを特徴とする請求項1記載の二次元適応内挿フィルタのフィルタ係数決定方法。
  6. 前記第1の決定ステップでは、
    前記差分を最小にする線形方程式を解くことにより、前記小数画素位置に対するフィルタ係数を決定する
    ことを特徴とする請求項5記載の二次元適応内挿フィルタのフィルタ係数決定方法。
  7. 動画像を圧縮する方法であって、
    請求項1記載の二次元適応内挿フィルタのフィルタ係数決定方法に含まれる全てのステップを実行することにより前記二次元適応内挿フィルタのフィルタ係数を決定するフィルタ係数決定ステップと、
    前記小数画素位置を示す動きベクトルを有するブロックを対象ブロックとし、前記対象ブロックに対して動き補償を行うことにより、前記対象ブロックの予測画像を生成する動き補償ステップと、
    前記動き補償ステップにより生成された予測画像と前記対象ブロックの画像との差分と、前記フィルタ係数決定ステップで決定されたフィルタ係数とを符号化する符号化ステップとを含み、
    前記動き補償ステップでは、
    前記フィルタ係数決定ステップで決定されたフィルタ係数を前記小数画素位置に適用することにより前記小数画素位置に内挿される小数画素の画素値を算出し、算出された画素値の小数画素を有する前記予測画像を生成する
    ことを特徴とする動画像圧縮方法。
  8. 前記二次元適応内挿フィルタは、
    水平方向および垂直方向の何れか一方である第1の方向に一次元に配列された複数の画素の間の小数画素位置に内挿される小数画素の画素値を算出するための第1の一次元内挿フィルタと、
    前記第1の方向と異なる水平方向または垂直方向である第2の方向に一次元に配列された複数の画素の間の小数画素位置に内挿される小数画素の画素値を算出するための第2の一次元内挿フィルタとに分離可能であり、
    前記フィルタ係数決定ステップでは、
    近傍にある整数画素との間で予め定められた相対的位置関係を満たし、前記第1の方向において小数画素位置にあって且つ第2の方向において整数画素位置にある前記参照画像上の第1の小数画素位置に対する第1の一次元内挿フィルタのフィルタ係数を決定し、さらに、
    近傍にある整数画素との間で他の予め定められた相対的位置関係にあって前記第1および第2の方向において小数画素位置にある前記参照画像上の第2の小数画素位置に対する第2の一次元内挿フィルタのフィルタ係数を決定し、
    前記動き補償ステップでは、
    前記第2の小数画素位置を示す動きベクトルを有するブロックを対象ブロックとして扱い、前記第1の一次元内挿フィルタのフィルタ係数を前記第1の小数画素位置に適用し、さらに、前記第2の一次元内挿フィルタのフィルタ係数を前記第2の小数画素位置に適用することにより、前記第2の小数画素位置に内挿される小数画素の画素値を算出し、算出された画素値の小数画素を有する前記予測画像を生成する
    ことを特徴とする請求項7記載の動画像圧縮方法。
  9. 前記動き補償ステップでは、
    前記参照画像の整数画素の画素値を変化させることなく、前記第1の一次元内挿フィルタのフィルタ係数を前記第1の小数画素位置に適用する
    ことを特徴とする請求項8記載の動画像圧縮方法。
  10. 前記動き補償ステップでは、
    前記参照画像の整数画素の画素値と、前記第1の一次元内挿フィルタのフィルタ係数の適用によって定まる前記第1の小数画素位置の小数画素の画素値とを変化させることなく、前記第2の一次元内挿フィルタのフィルタ係数を前記第2の小数画素位置に適用する
    ことを特徴とする請求項9記載の動画像圧縮方法。
  11. 前記フィルタ係数決定ステップでは、
    小数画素位置ごとに、当該小数画素位置に対して特有の二次元適応内挿フィルタのフィルタ係数を決定し、
    前記動き補償ステップでは、
    所定の小数画素位置に内挿される小数画素の画素値を算出するときには、前記所定の小数画素位置に対して決定された二次元適応内挿フィルタのフィルタ係数を当該所定の小数画素位置に適用する
    ことを特徴とする請求項7記載の動画像圧縮方法。
  12. 前記二次元適応内挿フィルタは、
    水平方向および垂直方向の何れか一方である第1の方向に一次元に配列された複数の画素の間の小数画素位置に内挿される小数画素の画素値を算出するための第1の一次元内挿フィルタと、
    前記第1の方向と異なる水平方向または垂直方向である第2の方向に一次元に配列された複数の画素の間の小数画素位置に内挿される小数画素の画素値を算出するための第2の一次元内挿フィルタとに分離可能であり、
    前記フィルタ係数決定ステップでは、
    前記第1の方向において小数画素位置にあって且つ第2の方向において整数画素位置にある第1の小数画素位置に対して、前記第1の一次元内挿フィルタのフィルタ係数を決定し、
    前記動き補償ステップでは、
    前記第1の一次元内挿フィルタのフィルタ係数のみを前記第1の小数画素位置に適用することにより前記第1の小数画素位置に内挿される小数画素の画素値を算出する
    ことを特徴とする請求項11記載の動画像圧縮方法。
  13. 前記二次元適応内挿フィルタは、
    水平方向および垂直方向の何れか一方である第1の方向に一次元に配列された複数の画素の間の小数画素位置に内挿される小数画素の画素値を算出するための第1の一次元内挿フィルタと、
    前記第1の方向と異なる水平方向または垂直方向である第2の方向に一次元に配列された複数の画素の間の小数画素位置に内挿される小数画素の画素値を算出するための第2の一次元内挿フィルタとに分離可能であり、
    前記フィルタ係数決定ステップでは、
    前記第1の方向において整数画素位置にあって且つ第2の方向において小数画素位置にある第2の小数画素位置に対して、前記第2の一次元内挿フィルタのフィルタ係数を決定し、
    前記動き補償ステップでは、
    前記第2の一次元内挿フィルタのフィルタ係数のみを前記第2の小数画素位置に適用することにより前記第2の小数画素位置に内挿される小数画素の画素値を算出する
    ことを特徴とする請求項11記載の動画像圧縮方法。
  14. 前記二次元適応内挿フィルタは、
    水平方向および垂直方向の何れか一方である第1の方向に一次元に配列された複数の画素の間の小数画素位置に内挿される小数画素の画素値を算出するための第1の一次元内挿フィルタと、
    前記第1の方向と異なる水平方向または垂直方向である第2の方向に一次元に配列された複数の画素の間の小数画素位置に内挿される小数画素の画素値を算出するための第2の一次元内挿フィルタとに分離可能であり、
    前記フィルタ係数決定ステップでは、
    前記第1の方向において小数画素位置にあって且つ第2の方向において小数画素位置にある第3の小数画素位置に対して、前記第2の一次元内挿フィルタのフィルタ係数を決定し、他の小数画素位置に対して、前記第1の一次元内挿フィルタのフィルタ係数を決定し、
    前記動き補償ステップでは、
    前記第1の一次元内挿フィルタのフィルタ係数を前記他の小数画素位置に適用するとともに、前記第2の一次元内挿フィルタのフィルタ係数を前記第3の小数画素位置に適用することにより、前記第3の小数画素位置に内挿される小数画素の画素値を算出する
    ことを特徴とする請求項11記載の動画像圧縮方法。
  15. 前記フィルタ係数決定ステップでは、
    小数画素位置ごとに、当該小数画素位置に対するフィルタ係数を決定する際、
    所定の小数画素位置と水平方向または垂直方向に対称な位置にある他の小数画素位置に対して、前記所定の小数画素位置に対して決定されたフィルタ係数と同一のフィルタ係数を決定する
    ことを特徴とする請求項7記載の動画像圧縮方法。
  16. 小数画素位置に対する前記二次元適応内挿フィルタのフィルタ係数は、前記小数画素位置を水平方向または垂直方向に挟んで配置される複数の画素のそれぞれに対する係数からなり、
    前記フィルタ係数決定ステップでは、
    前記小数画素位置に対するフィルタ係数を決定する際、前記複数の画素の中で、所定の画素に対する係数と、前記小数画素位置を中心に前記所定の画素と水平方向または垂直方向に対称な位置にある他の画素に対する係数とが同一となるように、前記フィルタ係数を決定する
    ことを特徴とする請求項7記載の動画像圧縮方法。
  17. 前記フィルタ係数決定ステップでは、
    前記複数の画素のそれぞれに対する係数が水平方向または垂直方向に対称となるように、前記小数画素位置に対するフィルタ係数を決定する
    ことを特徴とする請求項16記載の動画像圧縮方法。
  18. 前記フィルタ係数決定ステップでは、
    ピクチャ、ピクチャを構成するスライス、または複数のピクチャを含むシーケンスをフィルタ決定単位とし、前記フィルタ決定単位ごとに、当該フィルタ決定単位に含まれる前記小数画素位置に対する二次元適応内挿フィルタのフィルタ係数を決定する
    ことを特徴とする請求項7記載の動画像圧縮方法。
  19. 二次元に配置された整数画素の画素値に基づいて、整数画素間に内挿される小数画素の画素値を算出するための二次元適応内挿フィルタのフィルタ係数を決定する装置であって、
    対象ピクチャを構成するブロックごとに、参照画像からの当該ブロックの画像の動きを動きベクトルとして小数画素精度で検出する動き検出手段と、
    前記動き検出手段によって検出された小数画素精度の動きベクトルを有する複数のブロックの中から、近傍にある整数画素との間で予め定められた相対的位置関係にある前記参照画像上の小数画素位置を示す動きベクトルを有する1つ以上のブロックを特定する特定手段と、
    前記特定手段で特定された対象ピクチャの1つ以上のブロックの画像と、前記1つ以上のブロックの動きベクトルにより示される参照画像上の1つ以上のブロックの画像とに基づいて、前記小数画素位置のフィルタ係数を決定する決定手段と
    を備えることを特徴とする二次元適応内挿フィルタのフィルタ係数決定装置。
  20. 二次元に配置された整数画素の画素値に基づいて、整数画素間に内挿される小数画素の画素値を算出するための二次元適応内挿フィルタのフィルタ係数を決定するためのプログラムであって、
    対象ピクチャを構成するブロックごとに、参照画像からの当該ブロックの画像の動きを動きベクトルとして小数画素精度で検出する動き検出ステップと、
    前記動き検出ステップによって検出された小数画素精度の動きベクトルを有する複数のブロックの中から、近傍にある整数画素との間で予め定められた相対的位置関係にある前記参照画像上の小数画素位置を示す動きベクトルを有する1つ以上のブロックを特定する特定ステップと、
    前記特定ステップで特定された1つ以上のブロックの画像と、前記1つ以上のブロックの動きベクトルにより示される参照画像上の1つ以上のブロックの画像とに基づいて、前記小数画素位置のフィルタ係数を決定する決定ステップと
    をコンピュータに実行させることを特徴とするプログラム。
  21. 二次元に配置された整数画素の画素値に基づいて、整数画素間に内挿される小数画素の画素値を算出するための二次元適応内挿フィルタのフィルタ係数を決定する集積回路であって、
    対象ピクチャを構成するブロックごとに、参照画像からの当該ブロックの画像の動きを動きベクトルとして小数画素精度で検出する動き検出手段と、
    前記動き検出手段によって検出された小数画素精度の動きベクトルを有する複数のブロックの中から、近傍にある整数画素との間で予め定められた相対的位置関係にある前記参照画像上の小数画素位置を示す動きベクトルを有する1つ以上のブロックを特定する特定手段と、
    前記特定手段で特定された対象ピクチャの1つ以上のブロックの画像と、前記1つ以上のブロックの動きベクトルにより示される参照画像上の1つ以上のブロックの画像とに基づいて、前記小数画素位置のフィルタ係数を決定する決定手段と
    を備えることを特徴とする集積回路。
JP2009511679A 2007-04-19 2008-04-18 二次元適応内挿フィルタのフィルタ係数決定方法 Withdrawn JPWO2008132828A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP07007994A EP1983759A1 (en) 2007-04-19 2007-04-19 Estimation of separable adaptive interpolation filters for hybrid video coding
EP07007994.2 2007-04-19
PCT/JP2008/001034 WO2008132828A1 (ja) 2007-04-19 2008-04-18 二次元適応内挿フィルタのフィルタ係数決定方法

Publications (1)

Publication Number Publication Date
JPWO2008132828A1 true JPWO2008132828A1 (ja) 2010-07-22

Family

ID=38512146

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009511679A Withdrawn JPWO2008132828A1 (ja) 2007-04-19 2008-04-18 二次元適応内挿フィルタのフィルタ係数決定方法

Country Status (6)

Country Link
US (1) US20100135398A1 (ja)
EP (2) EP1983759A1 (ja)
JP (1) JPWO2008132828A1 (ja)
KR (1) KR20100015651A (ja)
CN (1) CN101663898B (ja)
WO (1) WO2008132828A1 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2008306503A1 (en) * 2007-10-05 2009-04-09 Nokia Corporation Video coding with pixel-aligned directional adaptive interpolation filters
KR101648818B1 (ko) * 2008-06-12 2016-08-17 톰슨 라이센싱 움직임 보상 보간 및 참조 픽쳐 필터링에 대한 국부적 적응형 필터링을 위한 방법 및 장치
JP5240530B2 (ja) * 2008-10-02 2013-07-17 ソニー株式会社 画像処理装置および方法
KR101353304B1 (ko) * 2008-10-24 2014-01-21 에스케이 텔레콤주식회사 적응적 보간 필터 계수를 이용한 영상 부호화/복호화 방법 및 장치
JP2010157949A (ja) * 2009-01-05 2010-07-15 Toshiba Corp 動画像符号化/復号化方法及び装置
JP5334070B2 (ja) * 2009-02-13 2013-11-06 ブラックベリー リミテッド 画像処理における均衡ピクセル領域ひずみ分布を有する適合量子化
EP2396969A4 (en) * 2009-02-13 2012-12-12 Research In Motion Ltd MODIFIED ENTROPIC CODING FOR IMAGES AND VIDEOS
EP2396771A4 (en) * 2009-02-13 2012-12-12 Research In Motion Ltd IN-LOOP DEFLECTION FOR INTRACODED PICTURES OR FRAMES
JP2011050001A (ja) * 2009-08-28 2011-03-10 Sony Corp 画像処理装置および方法
EP2296380A1 (en) 2009-09-03 2011-03-16 Panasonic Corporation Efficient syntax for AIF signalling
JP2011199396A (ja) * 2010-03-17 2011-10-06 Ntt Docomo Inc 動画像予測符号化装置、動画像予測符号化方法、動画像予測符号化プログラム、動画像予測復号装置、動画像予測復号方法、及び動画像予測復号プログラム
KR101682147B1 (ko) * 2010-04-05 2016-12-05 삼성전자주식회사 변환 및 역변환에 기초한 보간 방법 및 장치
WO2011126759A1 (en) 2010-04-09 2011-10-13 Sony Corporation Optimal separable adaptive loop filter
EP2375744A1 (en) 2010-04-12 2011-10-12 Panasonic Corporation Complexity reduction for 1/8-pel interpolation
BR112013000554A2 (pt) * 2010-07-09 2020-09-24 Samsung Electronics Co., Ltd. método para interpolar imagem, e aparelho para interpolar imagem
JP5570363B2 (ja) * 2010-09-22 2014-08-13 Kddi株式会社 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、およびプログラム
JP2012104945A (ja) * 2010-11-08 2012-05-31 Sony Corp 画像処理装置と画像処理方法およびプログラム
US10045046B2 (en) 2010-12-10 2018-08-07 Qualcomm Incorporated Adaptive support for interpolating values of sub-pixels for video coding
US9172972B2 (en) * 2011-01-05 2015-10-27 Qualcomm Incorporated Low complexity interpolation filtering with adaptive tap size
US9049454B2 (en) * 2011-01-19 2015-06-02 Google Technology Holdings Llc. High efficiency low complexity interpolation filters
US9313519B2 (en) 2011-03-11 2016-04-12 Google Technology Holdings LLC Interpolation filter selection using prediction unit (PU) size
JP5552093B2 (ja) * 2011-06-13 2014-07-16 日本電信電話株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
EP2724534A2 (en) 2011-06-24 2014-04-30 Motorola Mobility LLC Selection of phase offsets for interpolation filters for motion compensation
JP5649523B2 (ja) * 2011-06-27 2015-01-07 日本電信電話株式会社 映像符号化方法,装置,映像復号方法,装置およびそれらのプログラム
JP5727673B2 (ja) 2011-07-01 2015-06-03 モトローラ モビリティ エルエルシーMotorola Mobility Llc 時間予測のためのジョイントサブピクセル補間フィルタ
KR20130049523A (ko) * 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 장치
CA2873487A1 (en) * 2012-05-14 2013-11-21 Luca Rossato Decomposition of residual data during signal encoding, decoding and reconstruction in a tiered hierarchy
KR102127100B1 (ko) 2012-07-26 2020-06-29 디퍼이 신테스 프로덕츠, 인코포레이티드 광 부족 환경에서 ycbcr 펄싱된 조명 수법
BR112015001555A2 (pt) 2012-07-26 2017-07-04 Olive Medical Corp vídeo contínuo em ambiente com deficiência de luz
US9777913B2 (en) 2013-03-15 2017-10-03 DePuy Synthes Products, Inc. Controlling the integral light energy of a laser pulse
EP2967301B1 (en) 2013-03-15 2021-11-03 DePuy Synthes Products, Inc. Scope sensing in a light controlled environment
US9641815B2 (en) * 2013-03-15 2017-05-02 DePuy Synthes Products, Inc. Super resolution and color motion artifact correction in a pulsed color imaging system
CN106102559A (zh) 2014-03-21 2016-11-09 德普伊新特斯产品公司 用于成像传感器的卡缘连接器
US9924191B2 (en) * 2014-06-26 2018-03-20 Qualcomm Incorporated Filters for advanced residual prediction in video coding
US11122262B2 (en) * 2014-06-27 2021-09-14 Samsung Electronics Co., Ltd. System and method for motion compensation in video coding
JP6571193B2 (ja) * 2014-08-22 2019-09-04 ノバ サウスイースタン ユニバーシティーNova Southeastern University クロネッカー積を使用するデータアダプティブ圧縮およびデータ暗号化
CN105791865B (zh) * 2014-12-22 2020-01-17 江苏省电力公司南京供电公司 帧内预测及去块滤波方法
US10009622B1 (en) 2015-12-15 2018-06-26 Google Llc Video coding with degradation of residuals
KR102414679B1 (ko) * 2017-09-13 2022-06-29 삼성전자주식회사 기본 움직임 벡터를 이용하여 움직임 벡터를 부호화하는 장치 및 방법, 및 복호화 장치 및 방법
MX2021012760A (es) 2019-04-19 2022-01-25 Huawei Tech Co Ltd Método y aparato para derivar un índice de filtro de interpolación para un bloque actual.
WO2021063389A1 (en) * 2019-10-03 2021-04-08 Huawei Technologies Co., Ltd. Encoder, decoder and corresponding methods using interpolation filtering

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4102973B2 (ja) * 2002-04-24 2008-06-18 日本電気株式会社 動画像の符号化方法および復号化方法、これを用いた装置とプログラム
AU2003246987A1 (en) * 2002-07-09 2004-01-23 Nokia Corporation Method and system for selecting interpolation filter type in video coding
US20040076333A1 (en) * 2002-10-22 2004-04-22 Huipin Zhang Adaptive interpolation filter system for motion compensated predictive video coding
CN1216495C (zh) * 2003-09-27 2005-08-24 浙江大学 视频图像亚像素插值的方法和装置
CN1256849C (zh) * 2003-11-04 2006-05-17 浙江大学 1/4像素精度插值的方法和装置
JP2008536414A (ja) * 2005-04-13 2008-09-04 ゴットフリート・ヴィルヘルム・ライプニッツ・ウニヴェルジテート・ハノーヴァー ビデオの拡張された符号化方法及び装置
US8208564B2 (en) * 2005-06-24 2012-06-26 Ntt Docomo, Inc. Method and apparatus for video encoding and decoding using adaptive interpolation

Also Published As

Publication number Publication date
CN101663898A (zh) 2010-03-03
CN101663898B (zh) 2011-11-09
US20100135398A1 (en) 2010-06-03
EP1983759A1 (en) 2008-10-22
KR20100015651A (ko) 2010-02-12
EP2141931A1 (en) 2010-01-06
WO2008132828A1 (ja) 2008-11-06

Similar Documents

Publication Publication Date Title
JPWO2008132828A1 (ja) 二次元適応内挿フィルタのフィルタ係数決定方法
JP6407389B2 (ja) データ符号化及び復号化
US20230239468A1 (en) Method and apparatus for processing intra-prediction-based video signal
JP6321749B2 (ja) 動画符号化装置
KR101311402B1 (ko) 영상의 부호화 방법 및 장치, 복호화 방법 및 장치
KR101200865B1 (ko) 영상의 부호화 방법 및 장치, 복호화 방법 및 장치
KR101202632B1 (ko) 비디오 코딩에서의 보간을 위한 예측 기술
CN102804779A (zh) 图像处理装置和方法
KR19990013613A (ko) 화상 예측 복호화 방법, 화상 예측 복호화 장치, 화상 예측 부호화 장치 및 데이터 기억 매체
JP2008507190A (ja) 動き補償方法
CN113170185A (zh) 用于视频译码的空间-时间运动向量预测模式
US11523121B2 (en) Image data encoding and decoding and storage medium
WO2019008366A1 (en) CODING AND DECODING IMAGE DATA
CN109155852A (zh) 利用可变内预测方向集合进行内编码和解码
US20200260074A1 (en) Image data encoding and decoding
KR102573577B1 (ko) 영상 처리 방법, 프레임 율 변환 방법 및 그 장치
CN112352435B (zh) 用于视频编解码的环内去块滤波器设备和方法
KR20180041833A (ko) 화면 내 예측에 대한 참조 모드 리스트를 사용하는 비디오 코딩 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110125

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20121011