JP2018142978A - 復号装置 - Google Patents
復号装置 Download PDFInfo
- Publication number
- JP2018142978A JP2018142978A JP2018081383A JP2018081383A JP2018142978A JP 2018142978 A JP2018142978 A JP 2018142978A JP 2018081383 A JP2018081383 A JP 2018081383A JP 2018081383 A JP2018081383 A JP 2018081383A JP 2018142978 A JP2018142978 A JP 2018142978A
- Authority
- JP
- Japan
- Prior art keywords
- filter
- image
- filter coefficient
- control variable
- 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.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/73—Deblurring; Sharpening
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20004—Adaptive image processing
- G06T2207/20012—Locally adaptive
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20172—Image enhancement details
- G06T2207/20192—Edge enhancement; Edge preservation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Processing (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
【課題】単位領域ごとに定められたフィルタ係数を用いつつ、単位領域内で画像の特性が一様でない場合でも、より適切なフィルタリングを行うことができる画像フィルタを提供する。【解決手段】入力画像におけるフィルタ領域に属する各画素の画素値とフィルタ係数ベクトルから、出力画像における対象画素の画素値を算出する適応フィルタ100は、上記入力画像における上記対象領域の位置及び上記出力画像における対象画素の位置の少なくとも何れかに応じて上記フィルタ係数ベクトルを変更する制御変数決定部120を備える。【選択図】図1
Description
本発明は、画像のフィルタリングを行う画像フィルタに関する。また、そのような画像フィルタを備えている符号化装置、および、復号装置に関する。また、そのような符号化装置によって生成され、復号装置によって参照される符号化データのデータ構造に関する。
動画像を効率的に伝送または記録するために、動画像符号化装置が用いられている。具体的な動画像符号化方式としては、例えば、H.264/MPEG−4 AVC、および、KTAソフトウェアに採用されている方式などが挙げられる。
このような符号化方式において、動画像を構成する画像(ピクチャ)は、画像を分割することにより得られるスライス、スライスを分割することにより得られるマクロブロック、及び、マクロブロックを分割することより得られるブロックからなる階層構造により管理され、普通、ブロックごとに符号化される。
非特許文献1には、復号画像に対しフィルタリングを行うALF(Adaptive Loop Filter)と呼ばれるフィルタが開示されている。当該ALFは、復号画像上のスライスを単位領域とし、単位領域ごとに、ALFが適用された復号画像と原画像との誤差が最小となるフィルタ係数を定め、当該単位領域に対して、当該フィルタ係数に基づいたフィルタリングを施すものである。
ITU−T Telecommunication Standardization Sector VCEG−AI18、2008(2008年7月公開)
しかしながら、上記ALFにおいては、各単位領域上で一定のフィルタ係数を用いてフィルタリングを行うため、単位領域上で画像の特性が一様でない場合には、適切なフィルタリングを行うことが困難であるという問題を有している。
本発明は、上記の問題に鑑みてなされたものであり、その目的は、単位領域ごとに定められたフィルタ係数を用いつつ、単位領域内で画像の特性が一様でない場合でも、より適切なフィルタリングを行うことができる画像フィルタを実現することにある。
上記の問題を解決するために、本発明に係る復号装置は、動画像を復号する復号装置であって、符号化された上記動画像を可変長復号し、量子化予測残差データ及びフィルタ係数情報を出力する可変長符号復号部と、バッファメモリに格納された画像に基づいて予測画像を生成する予測画像生成部と、量子化予測残差データに対して逆量子化及び逆変換を行い、予測残差を出力する逆量子化・逆変換部と、予測画像及び上記予測残差を加算し、復号画像を出力する加算器と、復号画像に対して上記フィルタ係数情報を用いてフィルタリングを行う適応フィルタと、を備え、フィルタ係数情報は、復号画像の単位領域毎に固定の固定係数及び固定フィルタ係数ベクトルを含み、適応フィルタは、フィルタ対象領域
の位置に応じて該フィルタ対象領域の輝度を算出し、該フィルタ対象領域上の画像の輝度に応じて制御変数を決定し、固定係数、制御変数及び予め定められた固定ベクトルから可変フィルタ係数ベクトルを算出し、復号画像の単位領域毎に定まる固定フィルタ係数ベクトルとフィルタ対象領域毎に変更可能な可変フィルタ係数ベクトルの加算によりフィルタ係数ベクトルを算出する制御変数決定部と、復号画像に対してフィルタ係数ベクトルを用いてフィルタリングを行うフィルタ部と、を含むことを特徴としている。
の位置に応じて該フィルタ対象領域の輝度を算出し、該フィルタ対象領域上の画像の輝度に応じて制御変数を決定し、固定係数、制御変数及び予め定められた固定ベクトルから可変フィルタ係数ベクトルを算出し、復号画像の単位領域毎に定まる固定フィルタ係数ベクトルとフィルタ対象領域毎に変更可能な可変フィルタ係数ベクトルの加算によりフィルタ係数ベクトルを算出する制御変数決定部と、復号画像に対してフィルタ係数ベクトルを用いてフィルタリングを行うフィルタ部と、を含むことを特徴としている。
上記の構成によれば、フィルタの対象領域ごとに変更可能な可変フィルタ係数ベクトルを用いるため、対象領域ごとに適切なフィルタリングを行うことができるという効果を奏する。
以上のように、本発明に係る復号装置は、フィルタ対象領域ごとに適切なフィルタリングを行うことができる。
実施形態に係る適応フィルタ100の構成について、図1を参照して説明する。
図1は、適応フィルタ100の構成を示すブロック図である。図1に示すように、適応フィルタ100は、フィルタ部110、および、制御変数決定部120を備えている。
適応フィルタ100は、画像データのフィルタリングに用いることができる画像フィル
タである。適応フィルタ100は、画像データの示す画像上の単位領域であってフィルタリングの対象である単位領域にフィルタリングを行う際に、当該単位領域を分割して得られる領域(フィルタ対象領域T)ごとに適応的にフィルタリングを行うことができる。
タである。適応フィルタ100は、画像データの示す画像上の単位領域であってフィルタリングの対象である単位領域にフィルタリングを行う際に、当該単位領域を分割して得られる領域(フィルタ対象領域T)ごとに適応的にフィルタリングを行うことができる。
適応フィルタ100は、例えば、動画像データを符号化する動画像符号化装置、または、符号化された動画像データを復号する動画像復号装置などに好適に用いることができる。
適応フィルタ100は、入力される画像データ#100の各画素値について、一定の領域に含まれる画素値の、フィルタ係数に基づいた加重線形和をとることによって、出力画像データ#110aを生成し、出力する。
また、適応フィルタ100には、教師データ#200が入力される。ここで、教師データ#200とは、後述するように、上記フィルタ係数を決定する際に参照される教師画像を示す画像データのことである。教師データ#200の具体的な例としては、例えば、適応フィルタ100を備える画像符号化装置に入力される入力画像データが挙げられる。
また、適応フィルタ100は、出力画像データ#110aと共に、フィルタリングに用いたフィルタ係数についての情報であるフィルタ係数情報#110bを出力する。
適応フィルタ100は、画像データ#100、および、画像データ#100のサイド情報#100aに基づき、上記一定の領域ごとに上記フィルタ係数を変更しながら上記加重線形和をとる。
なお、画像データ#100のサイド情報#100aとは、画像データ#100を生成するために必要な符号化データから得られる情報を指す。すなわち、予測残差の生成に必要な変換係数、周波数変換のサイズ、量子化パラメータの情報、予測画像を生成するために必要な、予測モード、動き補償のサイズ、動きベクトル、参照フレームなどを指す情報、重み付け予測の重み情報、ブロック及びブロック境界の位置に関する情報などを全て含む。
なお、フィルタ係数情報#110bとは、フィルタ係数とフィルタ係数の生成に必要な情報とを含む情報である。具体例については後述する。
なお、ここではフィルタ対象領域TをMT×NTの矩形とするが、フィルタ対象領域Tは、単一の画素から構成されるものであってもよいし、ブロックでもマクロブロックでも構わない。またフィルタ対象領域Tの形状は、矩形に限らず、ひし形、円形、垂直/水平線分、斜め線分又はその他任意の形状であってもよい。また、フィルタ対象領域Tの大きさは、単位領域内で固定とする必要はなく可変でも良い。例えば、変換や動き補償に可変ブロックサイズを採用した場合には、その可変ブロックを領域Tとするのが適当である。
以下では、適応フィルタ100の各部について説明する。
制御変数決定部120は、画像データ#100、および、画像データ#100のサイド情報#100aを受け、制御変数#120a、および、制御基底#120bをフィルタ部110に供給する。
フィルタ部110は、画像データ#100の各画素値について、一定の領域に含まれる画素値の、フィルタ係数に基づいた加重線形和及びオフセット値の加算などをとることによって、出力画像データ#110aを算出する。
より具体的には、フィルタ部110は、出力画像データ#110aの座標(x’、y’)における画素値SO(x’、y’)を式(1)によって表される加重線形和によって算
出する。
出する。
ここで、SI(x、y)は、画像データ#100の座標(x、y)における画素値を表
しており、h(i、j)は、画素値SI(x+i、y+j)に乗ぜられるフィルタ係数を
表している。また、Rは、上記加重線形和の対象となる画素によって構成される領域(以下、フィルタ参照領域と呼ぶ)を表している。より具体的には、Rは、上記加重線形和の対象となる画素の相対座標のセットを表している。例えば、座標(x、y)における画素を中心とした3×3タップのフィルタリングを行う場合には、R={(−1、−1)、(−1、0)、(−1、1)、(0、−1)、(0、0)、(0、1)、(1、−1)、(1、0)、(1、1)}である。また、hoffsetは、画素値に加算するオフセット値を表している。なお、座標(x’、y’)と座標(x、y)とは同一の座標であってもよいし、1対1の対応を有していれば、異なった座標であってもよい。また、座標(x’、y’)と座標(x、y)との具体的な対応関係は、本発明を限定するものではなく、適応フィルタ100が実装される画像処理装置の具体的な構成により定められる。
しており、h(i、j)は、画素値SI(x+i、y+j)に乗ぜられるフィルタ係数を
表している。また、Rは、上記加重線形和の対象となる画素によって構成される領域(以下、フィルタ参照領域と呼ぶ)を表している。より具体的には、Rは、上記加重線形和の対象となる画素の相対座標のセットを表している。例えば、座標(x、y)における画素を中心とした3×3タップのフィルタリングを行う場合には、R={(−1、−1)、(−1、0)、(−1、1)、(0、−1)、(0、0)、(0、1)、(1、−1)、(1、0)、(1、1)}である。また、hoffsetは、画素値に加算するオフセット値を表している。なお、座標(x’、y’)と座標(x、y)とは同一の座標であってもよいし、1対1の対応を有していれば、異なった座標であってもよい。また、座標(x’、y’)と座標(x、y)との具体的な対応関係は、本発明を限定するものではなく、適応フィルタ100が実装される画像処理装置の具体的な構成により定められる。
一般に、M×Nタップのフィルタリングは、フィルタ係数h(i、j)を各成分に持つM×N行列であるフィルタ係数行列Hと、上記オフセットhoffsetによって特徴付けることができる。
なお、以下では、フィルタ参照領域が、M×Nタップの矩形状の領域である場合を例に挙げて説明を行うが、本発明はこれに限定されるものではなく、ひし形、円形、垂直/水平線分、斜め線分又はその他任意の形状を有するフィルタ参照領域Rに対しても適用することができる。
以下では、上記フィルタ係数行列Hの各成分と上記オフセットhoffsetをM×N+1次元のベクトルにマップしたベクトル記法を用いて上記フィルタ係数、および、上記オフセットを表現することにする。
具体的には、以下の式(2)
によって表されるフィルタ係数行列H、および、オフセットhoffsetを、以下の式(3)によって定義されるM×N+1次元のフィルタ係数ベクトルVにマップする。
式(3)に示すように、フィルタ係数ベクトルVの1からM×N番目の成分は、フィルタ係数h(i、j)を表しており、フィルタ係数ベクトルVの最後の成分(以下オフセット成分と呼ぶ)は、オフセットhoffsetを表している。
このような記法を用いることによって、フィルタ係数h(i、j)、および、オフセットhoffsetを統一的に表すことができる。
また、フィルタ係数ベクトルVの各成分を、1次元的な添え字Kを用いて、v(K)と表すことにする。たとえば、上記の例では、v(1)=h(1,1)、v(2)=h(1,2)、…、v(M×N)=v(M、N)、および、v(M×N+1)=hoffsetである。
なお、一般にM×Nタップに対する、1次元添え字Kと、2次元添え字(i,j)との関係は、i=K%M+1、j=K/M+1のように表すことにもできる。ここで、%は剰余を表している。すなわちx%yはxをyで割った余りを表している。また、x/yは、xをyで割った商に対して、小数点以下を切り捨てる操作(すなわちFloor関数を演算する操作)を行った結果を表している。
以上の記法を用いると、式(1)は、以下の式(4)によって表すことができる。
ここで、SO(X’)、および、SI(X+K)は、それぞれ、SO(x’、y’)、お
よび、SI(x+i、y+j)に対応した、上記と同様の1次元記法である。また、SI(X+K)のオフセット成分を1と定義する。すなわち、M×Nタップのフィルタリングに対しては、K=M×N+1のときSI(X+K)=1であると定義する。また、Kに関す
る和は、上記領域Rに加えて、オフセット成分も足し上げるものとする。換言すれば、上記領域R’に関する和は、1次元記法によって表された上記フィルタ参照領域Rに関する和に加えて、オフセット成分に関する和も含むものとする。
よび、SI(x+i、y+j)に対応した、上記と同様の1次元記法である。また、SI(X+K)のオフセット成分を1と定義する。すなわち、M×Nタップのフィルタリングに対しては、K=M×N+1のときSI(X+K)=1であると定義する。また、Kに関す
る和は、上記領域Rに加えて、オフセット成分も足し上げるものとする。換言すれば、上記領域R’に関する和は、1次元記法によって表された上記フィルタ参照領域Rに関する和に加えて、オフセット成分に関する和も含むものとする。
なお、フィルタ係数ベクトルVの1からM×N番目の成分は、全て互いに独立であってもよいし、そうでなくてもよい。例えば、フィルタ係数ベクトルVを、左右対称、上下対称、点対称に制限することが従来行われている。例えば、3×1タップ(オフセットを含めて4タップ)で左右対称の場合には、フィルタ係数ベクトルVは、以下のように表現することができる。
ここで、w1、w2、w3はフィルタ係数ベクトルWの要素である。この例では、4次のフィルタ係数ベクトルVは、3次のフィルタ係数ベクトルWで表現されており、自由度が1つ減少する。この時、w1、w2、w3にかかるベクトルを基底と呼ぶ。基底が単位基底の場合にはW=Vとなる。
自由度が減少する分、フィルタの表現能力は低下するが、フィルタを表現するためのパラメータ(以下、フィルタパラメータと呼ぶ。ここではフィルタ係数ベクトルWの各成分)の数が減少する。これにより符号量を低減させることができ、従来、点対称などがよく利用される。
ここで、フィルタパラメータからフィルタ係数ベクトルVを求める関数を、フィルタ算出関数Fと呼ぶことにする。式(5)はフィルタ算出関数Fの一例である。なお、基底は、上記のような対称基底に限ることなく別の基底でも構わない。
また、上記の説明では、フィルタ係数ベクトルV(またはフィルタ係数行列H)に基づく、加重線形和を例に挙げて説明を行ったが、本発明はこれに限定されるものではない。すなわち、本発明に係る適応フィルタ100におけるフィルタリングは、加重線形和に限定されるものではなく、フィルタ係数ベクトルVの各成分を用いた加重非線形和であってもよい。
本実施形態に係る適応フィルタ100は、フィルタ係数ベクトルVを、サイド情報#100a、画像データ#100に含まれる各画素値、画像データ#100に含まれる各画素の位置、または、それらの関数に応じて、切り替えることができる。
<適応フィルタ100によるフィルタリング処理の例>
(スキップモードであるか否かに応じてフィルタ係数の切り替えを行う例)
以下では、上述した記法を用いて、適応フィルタ100によるフィルタ係数ベクトルの算出、および、切り替え方法の例について説明する。特に、適応フィルタ100が、画像データ#100の座標(x、y)における画素が、H.246/AVC規格におけるスキップモードが適用されたマクロブロックに属しているか否かに応じて、フィルタ係数ベクトルを切り替える場合を例に挙げ説明する。
(スキップモードであるか否かに応じてフィルタ係数の切り替えを行う例)
以下では、上述した記法を用いて、適応フィルタ100によるフィルタ係数ベクトルの算出、および、切り替え方法の例について説明する。特に、適応フィルタ100が、画像データ#100の座標(x、y)における画素が、H.246/AVC規格におけるスキップモードが適用されたマクロブロックに属しているか否かに応じて、フィルタ係数ベクトルを切り替える場合を例に挙げ説明する。
(ステップS1)
まず、制御変数決定部120は、画像データ#100の座標(x、y)における画素が、スキップモードが適用されたマクロブロックに属しているか否かに応じて0または1をとる制御変数v_skipの値を1に設定し、当該制御変数v_skipをフィルタ部110に対して出力する。
まず、制御変数決定部120は、画像データ#100の座標(x、y)における画素が、スキップモードが適用されたマクロブロックに属しているか否かに応じて0または1をとる制御変数v_skipの値を1に設定し、当該制御変数v_skipをフィルタ部110に対して出力する。
また、制御変数決定部120は、画像データ#100の座標(x、y)における画素が、スキップモードが適用されたマクロブロックに属しているか否かの情報(以下、スキップ情報と呼ぶ)に関連付けられたフィルタ基底b_skipをフィルタ部110に対して出力する。
ここで、フィルタ基底b_skipは、フィルタ係数ベクトルVの各成分に対応した基底成分から構成される基底ベクトルである。すなわち、フィルタ基底b_skipは、M×Nタップのフィルタリングに対しては、M×N+1次元のベクトルである。
フィルタ基底b_skipとしては、例えば、エッジ強調/ぼかしフィルタ基底を好適に用いることができる。ここで、エッジ強調/ぼかしフィルタ基底とは、エッジを強調もしくはエッジをぼかす効果があるフィルタ基底であり、例えば、2回微分フィルタの基底
などが含まれる。以下、エッジ強調/ぼかしフィルタ基底のことを単にエッジ強調フィルタ基底とも記すが、ぼかし効果も備えることを強調しておく。
などが含まれる。以下、エッジ強調/ぼかしフィルタ基底のことを単にエッジ強調フィルタ基底とも記すが、ぼかし効果も備えることを強調しておく。
エッジ強調フィルタ基底の例としては、例えば、3×3タップの場合、横方向エッジ強調基底(0、0、0、−1、2、−1、0、0、0、0)、縦方向エッジ強調基底(0、−1、0、0、2、0、0、−1、0、0)、標準ラプラシアン基底(−1、−1、−1、−1、8、−1、−1、−1、−1、0)、変形されたラプラシアン基底(−1、−2、−1、−2、12、−2、−1、−2、−1、0)、第1の斜め方向ラプラシアン基底(−1、−2、0、−2、6、0、−1、0、0、0)、および、第2の斜め方向ラプラシアン基底(0、0、−1、0、6、−2、0、−2、−1、0)などが挙げられる。
制御変数決定部120は、フィルタ基底b_skipとして、エッジ強調フィルタ基底、または、その線形和をフィルタ部110に対して出力する。
(ステップS2)
フィルタ部110は、スライスごと、または、フレームごとに、フィルタ係数ベクトルVを決定する。ここで、フィルタ係数ベクトルVの各成分v(k)は、
v(K)=w(K)+a_skip×v_skip×b_skip(K) …(6)によって表される。ここで、w(K)は、フィルタ係数ベクトルW(固定係数ベクトル)の各成分であり、b_skip(K)は、上述したフィルタ基底(固定ベクトル)b_skipの各成分である。また、v_skipは上述した制御変数(可変係数)であり、ステップS1において、v_skip=1に設定された制御変数である。また、a_skipは、制御変数v_skipに関連付けられた係数(固定係数)である。
フィルタ部110は、スライスごと、または、フレームごとに、フィルタ係数ベクトルVを決定する。ここで、フィルタ係数ベクトルVの各成分v(k)は、
v(K)=w(K)+a_skip×v_skip×b_skip(K) …(6)によって表される。ここで、w(K)は、フィルタ係数ベクトルW(固定係数ベクトル)の各成分であり、b_skip(K)は、上述したフィルタ基底(固定ベクトル)b_skipの各成分である。また、v_skipは上述した制御変数(可変係数)であり、ステップS1において、v_skip=1に設定された制御変数である。また、a_skipは、制御変数v_skipに関連付けられた係数(固定係数)である。
なお、固定ベクトル及び固定係数における「固定」は、画素の位置によって変化しないことを意味し、可変係数の「可変」とは画素の位置によって変化することを意味する。
式(6)は、制御変数を用いたフィルタ算出関数Fの一例であり、関数Fのフィルタパラメータは、固定係数ベクトル、固定係数、制御変数である。
フィルタ部110は、スライスやフレームなどの単位領域ごとに、フィルタパラメータのうち、領域によらず固定であるもの(固定フィルタパラメータと呼ぶ)を決定する。ここでは、固定係数ベクトルWの各成分w(K)、および、固定係数a_skipを決定する。
式(6)において、エッジ強調基底b_skip(K)にかかる係数が正の場合(ここではa_skipが正の場合に対応)には、制御変数v_skipが1となる領域においてエッジ強調効果を得ることができる、逆に、b_skip(K)にかかる係数が負の場合(ここではa_skipが負の場合に対応)には、v_skipが1となる領域においてぼかし効果を得ることができる。
フィルタ部110は、固定フィルタパラメータを、例えば、統計的手法によって決定することができる。
固定フィルタパラメータの具体的な決定方法の例としては、以下の式(7)によって与えられる、教師データ#200の各画素値からの二乗誤差Eを最小にするような固定フィルタパラメータを求める方法が挙げられる。
ここで、S(X)は、教師データ#200の座標(x、y)における画素値を表している。また、Xについての和は、単位領域に含まれる全ての画素についての和である。つまり、固定フィルタパラメータをスライスごとに求める場合には、当該スライスに含まれる全ての画素についての和となる。なお、ここでは単位領域に含まれる全ての画素としているが、フィルタ部110で処理する領域を限定する場合には、一部の画素としても良い。例えば、フィルタ部110を適応的なデブロッキングフィルタとして用いる場合には、ブロック境界との距離が一定以下の画素のみに処理領域を限定し、その処理領域のみから固定フィルタパラメータを決定することが適当である。また、フィルタリングを行う単位領域中に、フィルタリングを行わない領域を設けた上で、フィルタリングの有無を示す情報を符号化する場合には、フィルタリングを行う領域の画素から、固定フィルタパラメータを決定することが適当である。
より具体的には、式(7)のフィルタパラメータVを、フィルタ算出関数Fを用いてフィルタパラメータの関数にする。次に、得られた式を固定パラメータで偏微分して得られる式を0と置くことにより、一般に正規方程式と呼ばれる式を得ることができる。正規方程式をガウスの消去法などにより解くことにより、固定パラメータが算出される。なお、固定パラメータの算出時には、画素毎もしくは領域毎に定まるS、SI、制御変数(ここではv_skip)に、その値を代入する。
なお、オフセットの導入をM×N+1タップフィルタとして表現したように、制御変数v_skipの導入をM×N+2タップとして表現することもできる。この場合、vのM×N+2番目の項を
v(M×N+2)=a_skip
としてVの次元をM×N+2次元に拡張し、SIのM×N+2番目の項を
SI(M×N+2)=Σv_skip×b_skip(K)×SI(K)
としてSIの次元を拡張すればよい。このような表現を用いれば、式(7)を最小化する
M×N+2個のvの値を求める問題となる。
v(M×N+2)=a_skip
としてVの次元をM×N+2次元に拡張し、SIのM×N+2番目の項を
SI(M×N+2)=Σv_skip×b_skip(K)×SI(K)
としてSIの次元を拡張すればよい。このような表現を用いれば、式(7)を最小化する
M×N+2個のvの値を求める問題となる。
また、フィルタ係数ベクトルVの具体的な決定方法の他の例としては、上記二乗誤差Eにおける2乗演算を絶対値演算に置き換えることによって得られる絶対値誤差を最小にするようなフィルタ係数ベクトルVを求める方法が挙げられる。また、上記二乗誤差Eにフィルタ係数ベクトルの各項の2乗に所定の定数を掛けた値を足した関数を、目的関数とすることもできる(いわゆるリッジ回帰)。このようにすれば、フィルタ係数ベクトルを小さい値に保ちながら、二乗誤差Eも小さくすることができる。この場合、二乗誤差Eは最小値よりもやや大きくなるが、フィルタ係数ベクトルは小さな値となるため符号量を抑えることができる。なお、フィルタ係数ベクトルVの上記統計的手法による決定方法は、本発明を限定するものではない。
また、適応フィルタ100は、制御変数を常に0として上記統計的手法を用いることによって、制御変数によってフィルタ係数ベクトルの値を変更しない場合の、フィルタ係数ベクトルVを決定することもできる。
このようにして決定されたフィルタ係数ベクトルVは、v_skip=1のとき、式(6)の第2項の寄与によって、フィルタ強調効果のあるフィルタを表現している。一方で、v_skip=0と設定すれば、フィルタ係数ベクトルVに対する式(6)の第2項の
寄与がなくなるため、フィルタ係数ベクトルVは、フィルタ強調効果を有しないフィルタを表現することもできる。以下では、v_skip=1のときのフィルタ係数ベクトルVをフィルタ係数ベクトルV(v_skip=1)と表し、v_skip=0のときのフィルタ係数ベクトルVをフィルタ係数ベクトルV(v_skip=0)と表すことにする。
寄与がなくなるため、フィルタ係数ベクトルVは、フィルタ強調効果を有しないフィルタを表現することもできる。以下では、v_skip=1のときのフィルタ係数ベクトルVをフィルタ係数ベクトルV(v_skip=1)と表し、v_skip=0のときのフィルタ係数ベクトルVをフィルタ係数ベクトルV(v_skip=0)と表すことにする。
(ステップS3)
制御変数決定部120は、画像データ#100の座標(x、y)における画素が、スキップモードが適用されたマクロブロックに属しているか否かに応じて、制御変数v_skipの値を設定する。具体的には、制御変数決定部120は、画像データ#100の座標(x、y)における画素が、スキップモードが適用されたマクロブロックに属しているときに、v_skip=1に設定し、そうでないときに、v_skip=0に設定する。
制御変数決定部120は、画像データ#100の座標(x、y)における画素が、スキップモードが適用されたマクロブロックに属しているか否かに応じて、制御変数v_skipの値を設定する。具体的には、制御変数決定部120は、画像データ#100の座標(x、y)における画素が、スキップモードが適用されたマクロブロックに属しているときに、v_skip=1に設定し、そうでないときに、v_skip=0に設定する。
このように設定された制御変数v_skipは、画像データ#100に含まれる画素ごとに、フィルタ部110に対して供給される。
(ステップS4)
フィルタ部110は、制御変数決定部120から供給される制御変数v_skipの値を用いたフィルタ係数ベクトルVの各成分に基づいて、画像データ#100に含まれる画素値の加重平均をとることによって、出力画像データ#110aの各画素値を算出する。具体的には、フィルタ部110は、フィルタ係数ベクトルVの各成分v(K)を式(4)に用いることによって、画素値SO(X’)を算出する。
フィルタ部110は、制御変数決定部120から供給される制御変数v_skipの値を用いたフィルタ係数ベクトルVの各成分に基づいて、画像データ#100に含まれる画素値の加重平均をとることによって、出力画像データ#110aの各画素値を算出する。具体的には、フィルタ部110は、フィルタ係数ベクトルVの各成分v(K)を式(4)に用いることによって、画素値SO(X’)を算出する。
適応フィルタ100は、上記ステップS3およびステップS4の動作を繰り返す。したがって、適応フィルタ100は、画像データ#100に含まれる各画素が、スキップモードが適用されたマクロブロックに属するか否かに応じて、異なったフィルタ係数ベクトルを用いてフィルタリングを行うことができる。より正確には、適応フィルタ100は、画像データ#100の座標(x、y)における画素が、スキップモードが適用されたマクロブロックに属しているときには、フィルタ係数ベクトルV(v_skip=1)に基づいたフィルタリングを行い、そうでないときには、フィルタ係数ベクトルV(v_skip=0)に基づいたフィルタリングを行う。
したがって、適応フィルタ100は、画像データ#100の座標(x、y)における画素が、スキップモードが適用されたマクロブロックに属しているときには、エッジ強調効果を有するフィルタリングを行い、そうでないときには、エッジ強調効果を有しないフィルタリングを行う。
一般に、スキップモードが適用されたマクロブロックの画像は、スキップモードが適用されていないマクロブロックに比べて、エッジを明確にした方が好適である傾向がある。
したがって、上記のように構成された適応フィルタ100を用いることによって、スキップモードが適用されたマクロブロックに対しては、エッジを強調しつつ、スキップモードが適用されていないマクロブロックに対しては、過度なエッジ強調を回避しつつフィルタリングを行うことができるので、フィルタ係数の切り替えを行わない従来の構成に比べて、より効果的なフィルタリングを行うことができる。
なお、シーケンスによっては、スキップモードにおいてぼかした方が良い場合もあるが、この場合もa_skipが負の値として求められ、最適なぼかし処理を適用することができる。
また、適応フィルタ100は、制御変数v_skipの値を1、または、0に設定する
ことによってフィルタ係数ベクトルVの切り替えを行うことができる。すなわち、適応フィルタ100は、マクロブロックごとにフィルタ係数を算出することなく、マクロブロックごとにフィルタ係数を切り替えることができるので、フィルタ係数の算出に必要な計算量を削減しつつ、効果的なフィルタリングを行うことができる。
ことによってフィルタ係数ベクトルVの切り替えを行うことができる。すなわち、適応フィルタ100は、マクロブロックごとにフィルタ係数を算出することなく、マクロブロックごとにフィルタ係数を切り替えることができるので、フィルタ係数の算出に必要な計算量を削減しつつ、効果的なフィルタリングを行うことができる。
なお、フィルタ対象領域Tに複数のマクロブロックが含まれるような場合には、当該複数のマクロブロックのうち何れか1つのマクロブロックに割り付けられたスキップ情報を用いればよい。
以上のように、本実施形態に係る画像フィルタ(適応フィルタ100)は、入力画像(画像データ#100)における対象領域(フィルタ参照領域R)に属する各画素の画素値とフィルタ係数ベクトル(フィルタ係数ベクトルV)とから、出力画像(出力画像データ#110a)における対象画素の画素値を算出する画像フィルタであって、上記入力画像における上記対象領域の位置、及び、上記出力画像における上記対象画素の位置の少なくとも何れかに応じて上記フィルタ係数ベクトルを変更するフィルタ係数ベクトル変更手段(制御変数決定部120)を備えている、ことを特徴としている。
上記の構成によれば、上記入力画像における上記対象領域の位置、及び、上記出力画像における上記対象画素の位置の少なくとも何れかに応じて上記フィルタ係数ベクトルを変更するフィルタ係数ベクトル変更手段を備えているため、上記対象領域の位置、及び、上記出力画像における上記対象画素の位置の少なくとも何れかに応じて、上記対象領域ごとに適切なフィルタリングを行うことができる。
また、本実施形態に係る画像フィルタ(適応フィルタ100)においては、上記フィルタ係数ベクトル(フィルタ係数ベクトルV)が、上記出力画像を構成する単位領域毎に予め定められた固定フィルタ係数ベクトル(固定係数ベクトルWから算出されるフィルタ係数ベクトル)と、上記フィルタ係数ベクトル変更手段(制御変数決定部120)によって、上記入力画像(画像データ#100)における上記対象領域(フィルタ対象領域T)の位置、及び、上記出力画像における上記対象画素の位置の少なくとも何れかに応じて変更される可変フィルタ係数ベクトルとの和に分解可能である。
上記の構成によれば、上記フィルタ係数ベクトルは、上記出力画像を構成する単位領域毎に予め定められた固定フィルタ係数ベクトルと上記可変フィルタ係数ベクトルとの和に分解可能であり、上記フィルタ係数ベクトル変更手段は、上記可変フィルタ係数ベクトルを、上記入力画像における上記対象領域の位置、及び、上記出力画像における上記対象画素の位置の少なくとも何れかに応じて変更することができる。
したがって、上記の構成によれば、単位領域ごとに予め定められたフィルタ係数を用いつつ、各対象領域に適応した(各対象領域における画像の特性に応じた)フィルタリングを行うことができる。
なお、本発明をH.264に適用する場合、上記単位領域は、スライスであってもよいし、マクロブロックであってもよし、ブロックあってもよい。
また、上記固定フィルタ係数ベクトル、および、上記可変フィルタ係数ベクトルは、オフセット成分を含むように定義されていてもよい。
また、本実施形態に係る画像フィルタ(適応フィルタ100)においては、上記可変フィルタ係数ベクトルは、更に、上記出力画像を構成する単位領域毎に定められた固定係数(例えば、a_skip)と、上記フィルタ係数ベクトル変更手段によって、上記入力画
像における上記対象領域の位置、又は、上記出力画像における上記対象画素の位置に応じて変更される可変係数(制御変数、例えば、v_skip)と、予め定められた固定ベクトル(フィルタ基底、例えばb_skip)と、に分解可能である。
像における上記対象領域の位置、又は、上記出力画像における上記対象画素の位置に応じて変更される可変係数(制御変数、例えば、v_skip)と、予め定められた固定ベクトル(フィルタ基底、例えばb_skip)と、に分解可能である。
上記の構成によれば、上記可変フィルタ係数ベクトルは、更に、上記出力画像を構成する単位領域毎に定められた固定係数と、上記可変係数と、上記固定ベクトルと、に分解可能である。また、上記固定ベクトルは、予め定められており、上記フィルタ係数ベクトル変更手段は、上記入力画像における上記対象領域の位置、又は、上記出力画像における上記対象画素の位置に応じて、上記可変係数を変更することができるので、上記対象領域における画像の特性に応じて、より適切なフィルタリングを行うことができる。
また上記の構成によれば、上記出力画像を構成する単位領域毎に定められた上記固定係数ベクトル及び上記固定係数とを上記画像フィルタに与えることによって、各対象領域に適応した所望のタイプのフィルタリングを行うことができる。
本発明に係る上記の構成による効果を、図2を参照して説明すれば以下のようになる。
図2は、単位領域UR上に、Q個(Q≧2)の対象領域PR1〜PRQが存在する場合を示す図である。
図2に示すような単位領域UR上のQ個の対象領域PR1〜PRQに対して、上記の構成を用いてフィルタリングを行う場合、上記固定係数ベクトルWの成分の数がP個(P≧2)であり、上記固定係数の数が1個であるとすると、合計P+1個のフィルタ係数を用いて、Q個の対象領域PR1〜PRQすべてに対して適応的なフィルタリングを行うことができる。
一方で、図2に示すような単位領域UR上のQ個の対象領域PR1〜PRQに対して、各対象領域PRn(1≦n≦Q)ごとに上記固定係数ベクトルWを算出する従来の方法によ
れば、適応的なフィルタリングを行うために、合計でP×Q個のフィルタ係数が必要になる。
れば、適応的なフィルタリングを行うために、合計でP×Q個のフィルタ係数が必要になる。
したがって、本発明に係る上記の構成によれば、各対象領域に対して個別にフィルタ係数ベクトルを算出する場合に比べて、少ない数のフィルタ係数によって、各対象領域に適応したタイプのフィルタリングを行うことができる。
なお、図2においては、Q個の対象領域PR1〜PRQが互いに重なり合わないように描かれているが、一般には、Q個の対象領域PR1〜PRQは、互いに重なりあう領域を含んでいる。
なお、上記の説明では、フィルタ係数のベクトル表現を用いて本発明の特徴を述べたが、本発明は、以下のように、フィルタ係数の各成分への作用として表現することもできる。
例えば、3×3タップのフィルタリングの場合であって、b_skipとして横方向エッジ強調基底(0、0、0、−1、2、−1、0、0、0、0)をとった場合、フィルタ係数ベクトルVの各成分は、以下のように成分表示することができる(式(6)参照)。(w(1)、w(2)、w(3)、w(4)−a_skip×v_skip、w(5)+2×a_skip×v_skip、w(6)−a_skip×v_skip、w(7)、w(8)、w(9)、w(10))
上式から明らかなように、b_skipとして横方向エッジ強調基底(0、0、0、−
1、2、−1、0、0、0、0)をとった場合には、フィルタ係数ベクトルVの第1成分から第3成分、および、第7成分から第10成分は、制御変数v_skipに依存しない。すなわち、フィルタ係数ベクトルVの第1成分から第3成分、および、第7成分から第10成分の各々は、スキップモードであるか否かに関わらず、上記統計的手法によって定められた一定の値をとる。
上式から明らかなように、b_skipとして横方向エッジ強調基底(0、0、0、−
1、2、−1、0、0、0、0)をとった場合には、フィルタ係数ベクトルVの第1成分から第3成分、および、第7成分から第10成分は、制御変数v_skipに依存しない。すなわち、フィルタ係数ベクトルVの第1成分から第3成分、および、第7成分から第10成分の各々は、スキップモードであるか否かに関わらず、上記統計的手法によって定められた一定の値をとる。
一方で、b_skipとして横方向エッジ強調基底(0、0、0、−1、2、−1、0、0、0、0)をとった場合には、フィルタ係数ベクトルVの第4成分から第6成分は、制御変数v_skipに依存する。また、第4成分から第6成分の各々の、制御変数v_skipに対する変化の割合は、フィルタ基底b_skipによって決定されている。
換言すれば、b_skipとして横方向エッジ強調基底(0、0、0、−1、2、−1、0、0、0、0)をとった場合には、フィルタ係数ベクトルVの所定の成分(第4成分から第6成分)は、制御変数v_skipの値に応じて変化し、上記所定の成分以外の成分(第1成分から第3成分、および、第7成分から第10成分)は、制御変数v_skipの値によらずに決定されている。
したがって、一般に、制御変数決定部120が出力するフィルタ基底に応じて、フィルタ係数ベクトルVの成分のうち、制御変数によって変化する成分と、制御変数によって変化しない成分とが定まる。また、制御変数決定部120が出力するフィルタ基底に応じて、制御変数によって変化する成分の、制御変数に対する変化の割合が決定される。
<フィルタ係数導出処理>
また、式(6)のフィルタ係数導出処理は、制御変数によって変化する成分と、変化しない成分とに場合を分けて求めることが可能である。以下では再度、3×3タップのフィルタリングの場合であって、b_skipとして横方向エッジ強調基底(0、0、0、−1、2、−1、0、0、0、0)を用いる場合を例に挙げ、図3を参照して、適応フィルタ100によるフィルタ係数導出処理について説明する。
また、式(6)のフィルタ係数導出処理は、制御変数によって変化する成分と、変化しない成分とに場合を分けて求めることが可能である。以下では再度、3×3タップのフィルタリングの場合であって、b_skipとして横方向エッジ強調基底(0、0、0、−1、2、−1、0、0、0、0)を用いる場合を例に挙げ、図3を参照して、適応フィルタ100によるフィルタ係数導出処理について説明する。
図3は、フィルタリング処理を行う動作フローの一例を示す図である。
(予備ステップ)
まず、適応フィルタ100は、制御変数によって変化するフィルタ係数ベクトルに対し、式(6)を用いて予めw´(i)を算出し保持しておく。
w´(4)=w(4)+a_skip×v_skip×b_skip(4)
=w(4)+a_skip×v_skip×−1
w´(5)=w(5)+a_skip×v_skip×2
w´(6)=w(6)+a_skip×v_skip×−1
(本ステップ)
(ステップS101)ループ1:フィルタ対象領域T毎に、出力画像を構成する単位領域全体に対して、S102からS109の処理を行う。
まず、適応フィルタ100は、制御変数によって変化するフィルタ係数ベクトルに対し、式(6)を用いて予めw´(i)を算出し保持しておく。
w´(4)=w(4)+a_skip×v_skip×b_skip(4)
=w(4)+a_skip×v_skip×−1
w´(5)=w(5)+a_skip×v_skip×2
w´(6)=w(6)+a_skip×v_skip×−1
(本ステップ)
(ステップS101)ループ1:フィルタ対象領域T毎に、出力画像を構成する単位領域全体に対して、S102からS109の処理を行う。
(ステップS102)フィルタ対象領域Tにおける制御変数v_skipの値を算出する。
(ステップS103)ループ2:ループ変数iを用いて、iが1から10までS104からS108の処理を行う。
(ステップS104)ループ変数iに対応するフィルタ係数ベクトルの要素v(i)が制御変数によって変化しない場合はS105に進む。すなわち、iが1、2、3、7、8
、9、10の場合はS105に進む。それ以外はS106に進む。
、9、10の場合はS105に進む。それ以外はS106に進む。
(ステップS105)v(i)=w(i)としてS108に進む。
(ステップS106)制御変数v_skipが0であればS105に進む。制御変数v_skipが1であればS107に進む。
(ステップS107)v(i)=w´(i)としてS108に進む。
(ステップS108)ループ2終端
(ステップS109)導出したフィルタ係数ベクトルVを用いて、式(4)に示すフィルタリングを行う。
(ステップS109)導出したフィルタ係数ベクトルVを用いて、式(4)に示すフィルタリングを行う。
(ステップS110)ループ1終端
上記では、フィルタ係数ベクトルVの導出を、制御変数によって変化する成分との和を用いることなく分岐で行っている。この和の処理と、分岐の処理は、具体的な処理としては別に見えるが、処理の結果としては全く同一であり、本発明はどちらも含むものとする。分岐に用いる制御変数については上記例に限らず、下記に示す例を含む何れの例でも構わない。
上記では、フィルタ係数ベクトルVの導出を、制御変数によって変化する成分との和を用いることなく分岐で行っている。この和の処理と、分岐の処理は、具体的な処理としては別に見えるが、処理の結果としては全く同一であり、本発明はどちらも含むものとする。分岐に用いる制御変数については上記例に限らず、下記に示す例を含む何れの例でも構わない。
図4は、フィルタリングを行う動作フローの他の例を示す図である。図4は、フィルタ係数ベクトルVの算出を、制御変数によって変化する成分との和を用いる場合を示す。本例においては、図3のS104からS107の処理が、式(6)を用いた以下のステップS154に置き換わる。
(ステップS154)制御変数v_skipより、式(6)によりフィルタ係数ベクトルの要素v(i)を算出する。
なお、フィルタリングの前に、予めフィルタ係数の成分の位置と制御変数の値によって定まる2次元テーブルv2(i、v)に、当該成分及び制御変数の値に対応する、フィルタ係数の値を格納しておき、フィルタリング時には、その2次元テーブルv2(i、v)を引くことも好適である。ここで、iはフィルタ係数の成分の位置、vは制御変数の値を意味する。なお、制御変数の数が1つの場合には2次元テーブルであるが、制御変数がNv個の場合には、Nv+1次元テーブルになる。
以上が、本発明の、フィルタ係数ベクトルVの各成分に対する作用としての表現である。
<フィルタ算出関数の一般形>
式(6)は、フィルタ算出関数Fの一例である。固定係数ベクトルwi(1≦i≦Nw、Nwは固定係数ベクトルの次元数)、制御変数vk(1≦k≦Nv、Nvは制御変数の総数)、固定係数akj(kは上記のとおり、1≦j≦Nak、Nakは制御変数Vkに関する固定係数の総数)、とした場合、関数Fは一般に、以下の式(8)のように表現される。
式(6)は、フィルタ算出関数Fの一例である。固定係数ベクトルwi(1≦i≦Nw、Nwは固定係数ベクトルの次元数)、制御変数vk(1≦k≦Nv、Nvは制御変数の総数)、固定係数akj(kは上記のとおり、1≦j≦Nak、Nakは制御変数Vkに関する固定係数の総数)、とした場合、関数Fは一般に、以下の式(8)のように表現される。
F(w1・・・、wNw、a11、・・・、a1_Na1、・・・、aNv1、・・・、aNv_NaNv、v1、・・・、vNv)=F1(w1・・・、wNw)+F2(Na1、・・・、aNv1、・・・、aNv_NaNv、v1、・・・、vNv)
…(8)
ここで、フィルタ算出関数Fは、第一項の固定フィルタ係数ベクトルと、第二項の可変
フィルタ係数ベクトルに分解可能である構造をもつ。なお、F1は、固定係数ベクトルの関数、F2は、制御変数と固定係数との関数である。ここで、制御変数及び固定係数の数も複数でよいし、さらに、制御変数が複数の場合には、制御変数によって固定係数の数を変更しても構わない。
…(8)
ここで、フィルタ算出関数Fは、第一項の固定フィルタ係数ベクトルと、第二項の可変
フィルタ係数ベクトルに分解可能である構造をもつ。なお、F1は、固定係数ベクトルの関数、F2は、制御変数と固定係数との関数である。ここで、制御変数及び固定係数の数も複数でよいし、さらに、制御変数が複数の場合には、制御変数によって固定係数の数を変更しても構わない。
関数Fを全て線形演算と仮定すると、以下の式(9)のように表現される。
ここで、b_wiはwiにかかるNw個の基底であり、単位基底、対称基底、などが用いられる。本明細書ではb_wiに単位基底を用いているがこれに限らない。b_vkjは、制御変数vk毎にNak個、用意しておく基底であり、エッジ強調フィルタ基底などが用いられる。なお、b_wiに対称基底を用いる場合には、b_vkjにも同様の対称性を持つ基底を用いると良い。また、式(9)左辺のフィルタ係数ベクトルは、同式の右辺に示すように、第一項の固定フィルタ係数ベクトルと第二項の可変フィルタ係数ベクトルに分解可能である。また、固定フィルタ係数ベクトルは、固定係数ベクトル(要素wi)と、基底(b_wi)に分解可能であり、可変フィルタ係数ベクトルは、固定係数(akj)と、制御変数(vk)と、固定ベクトル(b_vkj)に分解可能である。
フィルタの次数が4次の場合の具体例を式(10)に示す。
この例では、固定フィルタ係数の数は3(w1、w2、w3)、制御変数v_skipに対応する固定係数の数は2(a_skip1とa_skip2)、制御変数v_flatに対する固定係数の数は1(a_flat)である。なお、制御変数v_flatの意味は後述する。
<固定フィルタパラメータ算出の一般形>
既に説明した通り、式(7)のフィルタパラメータVを、フィルタ算出関数Fを用いてフィルタパラメータの関数にした上で、得られた式を偏微分して得られる値を0と置いて得られる正規方程式を解く。
既に説明した通り、式(7)のフィルタパラメータVを、フィルタ算出関数Fを用いてフィルタパラメータの関数にした上で、得られた式を偏微分して得られる値を0と置いて得られる正規方程式を解く。
以下、制御変数にかかる基底として別の基底を用いる例、及び、制御変数として別の変数を用いる例とその効果を説明する。
なお、上記の例では、フィルタ基底b_skipとして、エッジ強調フィルタ基底を用いる場合について説明を行ったが、本発明はこれに限られるものではない。例えば、制御
変数決定部120は、スキップ情報に関連付けられたフィルタ基底として効果の異なる複数のフィルタ基底をフィルタ部110に対して出力するような構成としてもよい。
変数決定部120は、スキップ情報に関連付けられたフィルタ基底として効果の異なる複数のフィルタ基底をフィルタ部110に対して出力するような構成としてもよい。
例えば、制御変数決定部120は、スキップ情報に関連付けられたフィルタ基底としてエッジ強調基底b_skip0と共に、DCオフセット基底b_dc=(0、0、0、0、0、0、0、0、0、1)をフィルタ部110に対して出力してもよい。
制御変数決定部120が、エッジ強調基底b_skip、および、DCオフセット基底b_dcを出力する場合には、フィルタ部110は、以下の式(11)によって表現される各成分w(K)を有するフィルタ係数ベクトルVの各係数を、教師データ#200を参照して決定する。
v(K)=w(K)+a_skip×v_skip×b_skip(K)+a_dc×v_dc×b_dc(K) …(11)
ここで、a_dcは、DCオフセット基底に対応したDCオフセット係数(固定係数)である。
v(K)=w(K)+a_skip×v_skip×b_skip(K)+a_dc×v_dc×b_dc(K) …(11)
ここで、a_dcは、DCオフセット基底に対応したDCオフセット係数(固定係数)である。
フィルタ部110は、スライスごと、または、フレームごとに、固定係数ベクトルWの各成分w(K)、エッジ強調係数a_skip、および、DCオフセット係数a_dcを、例えば、上述した統計的手法によって決定する。
制御変数決定部120は、スキップモードが適用されたマクロブロックに属する画素に対しては、値が1である制御変数v_skipをフィルタ部110に出力し、そうでない場合には、値が0である制御変数v_skipをフィルタ部110に出力する。
フィルタ部110は、制御変数決定部120から供給される制御変数v_skipを用いたフィルタ係数ベクトルVに基づいて、フィルタリングを行う。
上記のような構成をとることによって、適応フィルタ100は、スキップモードが適用されたマクロブロックに対して、エッジ強調効果を有するフィルタリングを行うと共に、上記DCオフセットによって、輝度を変更する効果を有するフィルタリングを行うことができる。
また、DCオフセット基底の他、さらに中心要素のみを1とするような中心要素基底b_c=(0、0、0、0、1、0、0、0、0、0)を導入し、中心要素基底b_cとDCオフセット基底とを用いれば、フェードのような画素毎に輝度が変化するような画素値に対しても適応的なフィルタリングを行うことができる。
また、制御変数決定部120は、スキップ情報に関連付けられたフィルタ基底として、あるエッジ強調基底b_skip0と共に、別のエッジ強調基底b_skip1をフィルタ部110に対して出力してもよい。例えばb_skip0として横方向エッジ強調基底(0、0、0、−1、2、−1、0、0、0、0)をとり、b_skip1=(0、−1、0、0、2、0、−1、0、0、0)としても良い。また、エッジ強調/ぼかし基底として、横方向ぼかし基底(0、0、0、1、2、1、0、0、0、0)、縦方向ぼかし基底(0、1、0、0、2、0、0、1、0、0)、または、全方向ぼかし基底(1、1、1、1、2、1、1、1、1、0)のような、ぼかしを主目的とした基底を用いても良い。
制御変数決定部120が、エッジ強調基底b_skip0、および、b_skip1を出力する場合には、フィルタ部110は、以下の式(12)によって表現される各成分v(K)を有するフィルタ係数ベクトルVの各係数を、教師データ#200を参照して決定
する。
v(K)=w(K)+a_skip0×v_skip×b_skip0(K)+a_skip1×v_skip×b_skip1(K) …(12)
ここで、a_skip0は、エッジ強調基底b_skip0(K)に対応したエッジ強調係数(固定係数)であり、a_skip1は、b_skip1(K)に対応したエッジ強調係数(固定係数)である。
する。
v(K)=w(K)+a_skip0×v_skip×b_skip0(K)+a_skip1×v_skip×b_skip1(K) …(12)
ここで、a_skip0は、エッジ強調基底b_skip0(K)に対応したエッジ強調係数(固定係数)であり、a_skip1は、b_skip1(K)に対応したエッジ強調係数(固定係数)である。
フィルタ部110は、スライスごと、または、フレームごとに、固定係数ベクトルの各成分w(K)、エッジ強調係数a_skip0、および、a_skip1を、例えば、上述した統計的手法によって決定する。
制御変数決定部120は、スキップモードが適用されたマクロブロックに属する画素に対しては、値が1である制御変数v_skipをフィルタ部110に出力し、そうでない場合には、値が0である制御変数v_skipをフィルタ部110に出力する。
フィルタ部110は、制御変数決定部120から供給される制御変数v_skipを用いたフィルタ係数ベクトルVに基づいて、フィルタリングを行う。
上記のような構成をとることによって、適応フィルタ100は、スキップモードが適用されたマクロブロックに対して、エッジ強調効果、および、ぼかし効果を同時に有するフィルタ係数に基づいたフィルタリングを行うことができ、スキップモードが適用されていないマクロブロックに対しては、エッジ強調効果、および、ぼかし効果を有しないフィルタ係数に基づいたフィルタリングを行うことができる。
また、上記の例では、適応フィルタ100が、画像データ#100に含まれる各画素が、スキップモードが適用されたマクロブロックに属するか否かに応じて、フィルタ係数ベクトルVの切り替えを行う場合を例に挙げ説明を行ったが、本発明はこれに限られるものではない。
以下では、画像データ#100、および、サイド情報#100aに基づいて、フィルタ係数の切り替えを行う他の例について説明する。
(画像の平坦度に応じてフィルタ係数の切り替えを行う例)
まず、画像データ#100のフィルタ対象領域Tにおける画像の平坦度に応じて、フィルタ係数を切り替える場合について説明する。ここで、フィルタ対象領域Tにおける画像の平坦度とは、フィルタ対象領域Tに含まれる各画素の画素値のばらつきに応じて定められる指標のことである。フィルタ対象領域Tにおける画像に含まれる各画素の画素値のばらつきがより小さい場合とは、当該領域における画像の平坦度がより大きい場合のことであり、フィルタ対象領域Tにおける画像に含まれる各画素の画素値のばらつきがより大きい場合とは、当該領域における画像の平坦度がより小さい場合のことである。なお、フィルタ対象領域Tの制御変数を求める際に、フィルタ対象領域Tの全画素を用いる必要はない(以下同様)。ここでは領域Tよりも小さい矩形領域MV×NVを用いて平坦度を求めても良い。
まず、画像データ#100のフィルタ対象領域Tにおける画像の平坦度に応じて、フィルタ係数を切り替える場合について説明する。ここで、フィルタ対象領域Tにおける画像の平坦度とは、フィルタ対象領域Tに含まれる各画素の画素値のばらつきに応じて定められる指標のことである。フィルタ対象領域Tにおける画像に含まれる各画素の画素値のばらつきがより小さい場合とは、当該領域における画像の平坦度がより大きい場合のことであり、フィルタ対象領域Tにおける画像に含まれる各画素の画素値のばらつきがより大きい場合とは、当該領域における画像の平坦度がより小さい場合のことである。なお、フィルタ対象領域Tの制御変数を求める際に、フィルタ対象領域Tの全画素を用いる必要はない(以下同様)。ここでは領域Tよりも小さい矩形領域MV×NVを用いて平坦度を求めても良い。
制御変数決定部120は、フィルタ対象領域Tにおける画像の平坦度に応じて0または1をとる制御変数v_flatの値を1に設定し、当該制御変数v_flatをフィルタ部110に対して出力する。
また、制御変数決定部120は、フィルタ対象領域Tにおける画像の平坦度に関連付けられたフィルタ基底b_flatをフィルタ部110に対して出力する。フィルタ基底b
_flatとしては、例えば、上述したエッジ強調フィルタ基底、5×5タップに拡張されたラプラシアン基底(1、1、1、1、1、1、0、0、0、1、1、0、−16、0、1、1、0、0、0、1、1、1、1、1、1、0)、または、それらの線形和(もしくは加重線形和)を用いればよい。
_flatとしては、例えば、上述したエッジ強調フィルタ基底、5×5タップに拡張されたラプラシアン基底(1、1、1、1、1、1、0、0、0、1、1、0、−16、0、1、1、0、0、0、1、1、1、1、1、1、0)、または、それらの線形和(もしくは加重線形和)を用いればよい。
フィルタ部110は、以下の式(13)によって表現される各成分v(K)を有するフィルタ係数ベクトルVの各係数を教師データ#200を参照して決定する。
v(K)=w(K)+a_flat×v_flat×b_flat(K) …(13)
ここで、a_flatは、フィルタ基底b_flatに対応した係数(固定係数)である。
v(K)=w(K)+a_flat×v_flat×b_flat(K) …(13)
ここで、a_flatは、フィルタ基底b_flatに対応した係数(固定係数)である。
フィルタ部110は、スライスごと、または、フレームごとに、フィルタ係数ベクトルの各成分w(K)、係数a_flatを、例えば、上述した統計的手法によって決定する。
制御変数決定部120は、画像データ#100に含まれる画素ごとに、フィルタ対象領域Tに含まれる画素の画素値のばらつきを算出する。具体的には、例えば、制御変数決定部120は、画像データ#100に含まれる画素ごとに、フィルタ対象領域Tに含まれる画素の画素値の分散を算出する。
換言すれば、制御変数決定部120は、画像データ#100に含まれる画素ごとの画素値を参照し、フィルタ対象領域Tに含まれる各画素の画素値のばらつきを算出する。具体的には、制御変数決定部120は、画像データ#100に含まれる各画素の画素値を参照し、フィルタ対象領域Tに含まれる各画素の画素値の分散を算出する。
制御変数決定部120は、画素値の分散が、予め定められた閾値以上であるときには、制御変数v_flatを0に設定し、画素値の分散が、予め定められた閾値未満であるときには、制御変数v_flatを1に設定し、当該制御変数v_flatを、画像データ#100に含まれる画素ごとにフィルタ部110に対して出力する。
また、制御変数決定部120は、上記制御変数v_flatを、フィルタ対象領域Tごとにフィルタ部110に対して出力してもよい。
フィルタ部110は、制御変数決定部120から供給される制御変数v_flatを用いたフィルタ係数ベクトルVに基づいて、フィルタリングを行う。
一般に、平坦度が異なる領域に対しては、最適なフィルタ係数が異なることが知られている。
上記の構成によれば、適応フィルタ100は、平坦度の大きいフィルタ対象領域Tに対しては、ぼかしの効果を有するフィルタリングを行い、平坦度の小さいフィルタ対象領域Tに対しては、ぼかしの効果を有しないフィルタリングを行うことができるので、平坦度が異なる領域を含むスライス、または、フレームに対しても、効果的なフィルタリングを行うことができる。
なお、画像の平坦度に応じてフィルタ係数の切り替えを行う場合であっても、上述したようなDCオフセットに対応するフィルタ基底、および、フィルタ係数を用いることによって、DCオフセットによる輝度変化の効果を有するフィルタリングを行うことも可能である。
また、本例においては、フィルタ対象領域Tにおける画像の平坦度を、画像データ#100の座標(x、y)における画素が属するブロックに関連付けられたAC成分の大きさに応じて判定するような構成としてもよい。
また、本動作例における適応フィルタ100による具体的なフィルタ係数算出処理としては、例えば、フィルタ基底b_flatとして、3×3タップの横方向エッジ強調フィルタ基底をとった場合には、上記<フィルタ係数算出処理>の(予備ステップ)におけるw´(i)を以下の式によって算出し、保持しておけばよい。
w´(4)=w(4)+a_flat×v_flat×b_flat(4)
=w(4)+a_flat×v_flat×−1
w´(5)=w(5)+a_flat×v_flat×2
w´(6)=w(6)+a_flat×v_flat×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_flatと読み替えればよい。
w´(4)=w(4)+a_flat×v_flat×b_flat(4)
=w(4)+a_flat×v_flat×−1
w´(5)=w(5)+a_flat×v_flat×2
w´(6)=w(6)+a_flat×v_flat×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_flatと読み替えればよい。
(エッジの角度に応じてフィルタ係数の切り替えを行う例)
次に、画像データ#100のフィルタ対象領域Tにおける画像に含まれるエッジの角度に応じて、フィルタ係数を切り替える場合について説明する。
次に、画像データ#100のフィルタ対象領域Tにおける画像に含まれるエッジの角度に応じて、フィルタ係数を切り替える場合について説明する。
制御変数決定部120は、以下の制御変数の値を1に設定し、フィルタ部110に対して出力する。
・フィルタ対象領域Tに垂直方向のエッジが含まれているか否かに応じて0または1をとる制御変数v_edge_0
・フィルタ対象領域Tに水平方向のエッジが含まれているか否かに応じて0または1をとる制御変数v_edge_90
・フィルタ対象領域Tに斜め右上がりのエッジが含まれているか否かに応じて0または1をとる制御変数v_edge_45
・フィルタ対象領域Tに斜め右下がりのエッジが含まれているか否かに応じて0または1をとる制御変数v_edge_135
また、制御変数決定部120は、以下のフィルタ基底をフィルタ部12に対して出力する。
・フィルタ対象領域Tに垂直方向のエッジが含まれているか否かの情報に関連付けられたフィルタ基底b_edge_0
・フィルタ対象領域Tに水平方向のエッジが含まれているか否かの情報に関連付けられたフィルタ基底b_edge_90
・フィルタ対象領域Tに斜め右上がりのエッジが含まれているか否かの情報に関連付けられたフィルタ基底b_edge_45
・フィルタ対象領域Tに斜め右下がりのエッジが含まれているか否かの情報に関連付けられたフィルタ基底b_edge_135
なお、フィルタ基底b_edge_n(n=0、45、90、135)は、例えば、3×3タップのフィルタリングを行う場合、以下のようにとればよい。
・b_edge_0=(0、−1、0、0、2、0、0、−1、0、0)
・b_edge_90=(0、0、0、−1、2、−1、0、0、0、0)
・b_edge_45=(0、0、−1、0、2、0、−1、0、0、0)
・b_edge_135=(−1、0、0、0、2、0、0、0、−1、0)
フィルタ部110は、以下の式(14)によって表現される各成分v(K)を有するフィルタ係数ベクトルVの各係数を教師データ#200を参照して決定する。
v(K)=w(K)+Σa_edge_n×v_edge_n×b_edge_n(K)
…(14)
ここで、記号Σは、エッジの角度を表す添え字n(n=0、45、90、135)に関する和を表している。また、a_edge_n(n=0、45、90、135)は、それぞれ、フィルタ基底b_edge_n(n=0、45、90、135)に対応した係数である。
・フィルタ対象領域Tに垂直方向のエッジが含まれているか否かに応じて0または1をとる制御変数v_edge_0
・フィルタ対象領域Tに水平方向のエッジが含まれているか否かに応じて0または1をとる制御変数v_edge_90
・フィルタ対象領域Tに斜め右上がりのエッジが含まれているか否かに応じて0または1をとる制御変数v_edge_45
・フィルタ対象領域Tに斜め右下がりのエッジが含まれているか否かに応じて0または1をとる制御変数v_edge_135
また、制御変数決定部120は、以下のフィルタ基底をフィルタ部12に対して出力する。
・フィルタ対象領域Tに垂直方向のエッジが含まれているか否かの情報に関連付けられたフィルタ基底b_edge_0
・フィルタ対象領域Tに水平方向のエッジが含まれているか否かの情報に関連付けられたフィルタ基底b_edge_90
・フィルタ対象領域Tに斜め右上がりのエッジが含まれているか否かの情報に関連付けられたフィルタ基底b_edge_45
・フィルタ対象領域Tに斜め右下がりのエッジが含まれているか否かの情報に関連付けられたフィルタ基底b_edge_135
なお、フィルタ基底b_edge_n(n=0、45、90、135)は、例えば、3×3タップのフィルタリングを行う場合、以下のようにとればよい。
・b_edge_0=(0、−1、0、0、2、0、0、−1、0、0)
・b_edge_90=(0、0、0、−1、2、−1、0、0、0、0)
・b_edge_45=(0、0、−1、0、2、0、−1、0、0、0)
・b_edge_135=(−1、0、0、0、2、0、0、0、−1、0)
フィルタ部110は、以下の式(14)によって表現される各成分v(K)を有するフィルタ係数ベクトルVの各係数を教師データ#200を参照して決定する。
v(K)=w(K)+Σa_edge_n×v_edge_n×b_edge_n(K)
…(14)
ここで、記号Σは、エッジの角度を表す添え字n(n=0、45、90、135)に関する和を表している。また、a_edge_n(n=0、45、90、135)は、それぞれ、フィルタ基底b_edge_n(n=0、45、90、135)に対応した係数である。
フィルタ部110は、スライスごと、または、フレームごとに、固定係数ベクトルの各成分w(K)、係数a_edge_n(n=0、45、90、135)を、例えば、上述した統計的手法によって決定する。
制御変数決定部120は、フィルタ対象領域Tに含まれるエッジの種類に応じて、以下のように、制御変数v_edge_n(n=0、45、90、135)の値を設定し、フィルタ対象領域Tごとに、当該制御変数v_edge_n(n=0、45、90、135)をフィルタ部110に対して出力する。
・フィルタ対象領域Tに垂直方向のエッジが含まれているときにv_edge_0=1、そうでないときにv_edge_0=0
・フィルタ対象領域Tに水平方向のエッジが含まれているときにv_edge_90=1、そうでないときにv_edge_90=0
・フィルタ対象領域Tに斜め右上がりのエッジが含まれているときにv_edge_45=1、そうでないときにv_edge_45=0
・フィルタ対象領域Tに斜め右下がりのエッジが含まれているときにv_edge_135=1、そうでないときにv_edge_45=0
フィルタ部110は、制御変数決定部120から供給される制御変数v_edge_n(n=0、45、90、135)を用いたフィルタ係数ベクトルVに基づいて、フィルタリングを行う。
・フィルタ対象領域Tに垂直方向のエッジが含まれているときにv_edge_0=1、そうでないときにv_edge_0=0
・フィルタ対象領域Tに水平方向のエッジが含まれているときにv_edge_90=1、そうでないときにv_edge_90=0
・フィルタ対象領域Tに斜め右上がりのエッジが含まれているときにv_edge_45=1、そうでないときにv_edge_45=0
・フィルタ対象領域Tに斜め右下がりのエッジが含まれているときにv_edge_135=1、そうでないときにv_edge_45=0
フィルタ部110は、制御変数決定部120から供給される制御変数v_edge_n(n=0、45、90、135)を用いたフィルタ係数ベクトルVに基づいて、フィルタリングを行う。
上記の構成によれば、適応フィルタ100は、対象領域Tに含まれるエッジの角度に応じて異なるフィルタ係数を用いてフィルタリングを行うことができるので、様々な角度のエッジを含むスライス、または、フレームに対しても、効果的なフィルタリングを行うことができる。
なお、適応フィルタ100においては、制御変数決定部120は、以下のようなフィルタ基底をフィルタ部110に対して出力するような構成としてもよい。
・フィルタ対象領域Tに垂直方向のエッジが含まれているか否かの情報に関連付けられた第1のフィルタ基底b_edge_0_0=b_edge_0
・フィルタ対象領域Tに垂直方向のエッジが含まれているか否かの情報に関連付けられた第2のフィルタ基底b_edge_0_1=b_edge_90
・フィルタ対象領域Tに水平方向のエッジが含まれているか否かの情報に関連付けられた第1のフィルタ基底b_edge_90_0=b_edge_90
・フィルタ対象領域Tに水平方向のエッジが含まれているか否かの情報に関連付けられた第2のフィルタ基底b_edge_90_1=b_edge_0
・フィルタ対象領域Tに斜め右上がりのエッジが含まれているか否かの情報に関連付けられた第1のフィルタ基底b_edge_45_0=b_edge_45
・フィルタ対象領域Tに斜め右上がりのエッジが含まれているか否かの情報に関連付けられた第2のフィルタ基底b_edge_45_1=b_edge_135
・フィルタ対象領域Tに斜め右下がりのエッジが含まれているか否かの情報に関連付けられた第1のフィルタ基底b_edge_135_0=b_edge_135
・フィルタ対象領域Tに斜め右下がりのエッジが含まれているか否かの情報に関連付けられた第1のフィルタ基底b_edge_135_1=b_edge_45
この場合、フィルタ部110は、以下の式(15)によって表現される各成分v(K)を有するフィルタ係数ベクトルVの各係数を教師データ#200を参照して決定する。
v(K)=w(K)+Σa_edge_n_0×v_edge_n×b_edge_n_0(K)+Σa_edge_n_1×v_edge_n×b_edge_n_1(K)
…(15)
ここで、記号Σは、エッジの角度を表す添え字n(n=0、45、90、135)に関する和を表している。また、a_edge_n_0(n=0、45、90、135)、および、a_edge_n_1(n=0、45、90、135)は、それぞれ、フィルタ基底b_edge_n_0(n=0、45、90、135)、および、フィルタ基底b_edge_n_1(n=0、45、90、135)に対応した係数(固定係数)である。
・フィルタ対象領域Tに垂直方向のエッジが含まれているか否かの情報に関連付けられた第1のフィルタ基底b_edge_0_0=b_edge_0
・フィルタ対象領域Tに垂直方向のエッジが含まれているか否かの情報に関連付けられた第2のフィルタ基底b_edge_0_1=b_edge_90
・フィルタ対象領域Tに水平方向のエッジが含まれているか否かの情報に関連付けられた第1のフィルタ基底b_edge_90_0=b_edge_90
・フィルタ対象領域Tに水平方向のエッジが含まれているか否かの情報に関連付けられた第2のフィルタ基底b_edge_90_1=b_edge_0
・フィルタ対象領域Tに斜め右上がりのエッジが含まれているか否かの情報に関連付けられた第1のフィルタ基底b_edge_45_0=b_edge_45
・フィルタ対象領域Tに斜め右上がりのエッジが含まれているか否かの情報に関連付けられた第2のフィルタ基底b_edge_45_1=b_edge_135
・フィルタ対象領域Tに斜め右下がりのエッジが含まれているか否かの情報に関連付けられた第1のフィルタ基底b_edge_135_0=b_edge_135
・フィルタ対象領域Tに斜め右下がりのエッジが含まれているか否かの情報に関連付けられた第1のフィルタ基底b_edge_135_1=b_edge_45
この場合、フィルタ部110は、以下の式(15)によって表現される各成分v(K)を有するフィルタ係数ベクトルVの各係数を教師データ#200を参照して決定する。
v(K)=w(K)+Σa_edge_n_0×v_edge_n×b_edge_n_0(K)+Σa_edge_n_1×v_edge_n×b_edge_n_1(K)
…(15)
ここで、記号Σは、エッジの角度を表す添え字n(n=0、45、90、135)に関する和を表している。また、a_edge_n_0(n=0、45、90、135)、および、a_edge_n_1(n=0、45、90、135)は、それぞれ、フィルタ基底b_edge_n_0(n=0、45、90、135)、および、フィルタ基底b_edge_n_1(n=0、45、90、135)に対応した係数(固定係数)である。
フィルタ部110は、スライスごと、または、フレームごとに、固定係数ベクトルの各成分w(K)、係数a_edge_n_0(n=0、45、90、135)、および、係数a_edge_n_1(n=0、45、90、135)を、例えば、上述した統計的手法によって決定する。
制御変数決定部120における制御変数v_edge_n(n=0、45、90、135)の値を、上述した方法と同様の方法を用いて設定する。また、フィルタ部110は、制御変数決定部120から供給される制御変数v_edge_n(n=0、45、90、135)を用いたフィルタ係数ベクトルVに基づいて、フィルタリングを行う。
上記の構成によれば、適応フィルタ100は、適応フィルタ100は、対象領域Tに含まれるエッジの角度に応じて異なるフィルタ係数を用いてフィルタリングを行うことができるので、様々な角度のエッジを含むスライス、または、フレームに対しても、効果的なフィルタリングを行うことができる。
また、上記の構成においては、フィルタ基底b_edge_n_0(n=0、45、90、135)、および、フィルタ基底b_edge_n_1(n=0、45、90、135)は、それぞれ、エッジに垂直な方向に対するエッジ強調の効果を有する基底成分を含んでいるので、上記の構成を有する適応フィルタ100は、エッジに平行な方向のみならず、エッジに垂直な方向に関しても、効果的なフィルタリングを行うことが可能である。
なお、エッジの角度に応じてフィルタ係数の切り替えを行う場合であっても、上述したようなDCオフセットに対応するフィルタ基底、および、フィルタ係数を用いることによって、DCオフセットによる輝度変化の効果を有するフィルタリングを行うことも可能である。
また、本動作例における適応フィルタ100による具体的なフィルタ係数算出処理としては、例えば、フィルタ基底b_edge_nとして、b_edge_90のみをとった場合には、上記<フィルタ係数算出処理>の(予備ステップ)におけるw´(i)を以下の式によって算出し、保持しておけばよい。
w´(4)=w(4)+a_edge_90×v_edge_90×b_edge_90(4)=w(4)+a_edge_90×v_edge_90×−1
w´(5)=w(5)+a_edge_90×v_edge_90×2
w´(6)=w(6)+a_edge_90×v_edge_90×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_edge_90と読み替えればよい。また、フィルタ基底b_edge_nとして他の基底をとった場合も同様である。また、式(14)において、nについての和をとる場合に対しても容易に一般化できる。
w´(4)=w(4)+a_edge_90×v_edge_90×b_edge_90(4)=w(4)+a_edge_90×v_edge_90×−1
w´(5)=w(5)+a_edge_90×v_edge_90×2
w´(6)=w(6)+a_edge_90×v_edge_90×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_edge_90と読み替えればよい。また、フィルタ基底b_edge_nとして他の基底をとった場合も同様である。また、式(14)において、nについての和をとる場合に対しても容易に一般化できる。
(輝度に応じてフィルタ係数の切り替えを行う例)
次に、画像データ#100のフィルタ対象領域Tにおける画像の平均輝度に応じて、フ
ィルタ係数を切り替える場合について説明する。ここで、フィルタ対象領域Tにおける画像の平均輝度とは、フィルタ対象領域Tに含まれる各画素の輝度値の平均のことである。また、各画素の輝度値は、一般に、当該画素の画素値の関数として求めることができる。
次に、画像データ#100のフィルタ対象領域Tにおける画像の平均輝度に応じて、フ
ィルタ係数を切り替える場合について説明する。ここで、フィルタ対象領域Tにおける画像の平均輝度とは、フィルタ対象領域Tに含まれる各画素の輝度値の平均のことである。また、各画素の輝度値は、一般に、当該画素の画素値の関数として求めることができる。
制御変数決定部120は、フィルタ対象領域Tにおける画像の平均輝度に応じて0、1、2のうち、何れか1つの値を制御変数v_lumに設定し、当該制御変数v_lumを、フィルタ部110に対して出力する。
また、制御変数決定部120は、フィルタ対象領域Tにおける画像の平均輝度に関連付けられたフィルタ基底b_lumをフィルタ部110に対して出力する。フィルタ基底b_lumとしては、例えば、上述したエッジ強調フィルタ基底、または、それらの線形和(もしくは加重線形和)を用いればよい。
フィルタ部110は、以下の式(16)によって表現される各成分v(K)を有するフィルタ係数ベクトルVの各係数を教師データ#200を参照して決定する。
v(K)=w(K)+a_lum×v_lum×b_lum(K) …(16)
ここで、a_lumは、フィルタ基底b_lumに対応した係数(固定係数)である。
v(K)=w(K)+a_lum×v_lum×b_lum(K) …(16)
ここで、a_lumは、フィルタ基底b_lumに対応した係数(固定係数)である。
フィルタ部110は、スライスごと、または、フレームごとに、固定係数ベクトルの各成分w(K)、係数a_lumを、例えば、上述した統計的手法によって決定する。
制御変数決定部120は、フィルタ対象領域Tごとに、当該領域に含まれる画素に対応付けられた輝度値の平均値を算出する。制御変数決定部120は、例えば、当該平均値が48未満であるときに、制御変数v_lumの値を2に設定し、当該平均値が48以上、96未満であるときに、制御変数v_lumの値を1に設定し、当該平均値が、96以上であるときに、制御変数v_lumの値を0に設定する。ここで、当該平均値は、0から255までの値をとるものとする。
また、制御変数決定部120は、フィルタ対象領域Tごとに、制御変数v_lumをフィルタ部110に対して出力する。
フィルタ部110は、制御変数決定部120から供給される制御変数v_lumを用いたフィルタ係数ベクトルVに基づいて、フィルタ対象領域Tごとにフィルタリングを行う。
上記のような構成をとることによって、フィルタ対象領域Tに含まれる画素の輝度値の平均値がより低い場合に、ぼかし効果のより強いフィルタリングを行うことができ、フィルタ対象領域Tに含まれる画素の輝度値の平均値がより高い場合に、ぼかし効果のより弱いフィルタリングを行うことができる。
なお、輝度に応じてフィルタ係数の切り替えを行う場合であっても、上述したようなDCオフセットに対応するフィルタ基底、および、フィルタ係数を用いることによって、DCオフセットによる輝度変化の効果を有するフィルタリングを行うことも可能である。
また、本動作例における適応フィルタ100による具体的なフィルタ係数算出処理としては、例えば、フィルタ基底b_lumとして、横方向エッジ強調基底をとった場合には、上記<フィルタ係数算出処理>の(予備ステップ)におけるw´(i)を以下の式によって算出し、保持しておけばよい。
w´(4)=w(4)+a_lum×v_lum×b_lum(4)
=w(4)+a_lum×v_lum×−1
w´(5)=w(5)+a_lum×v_lum×2
w´(6)=w(6)+a_lum×v_lum×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_lumと読み替えればよい。また、フィルタ基底b_lumとして他の基底をとった場合も同様である。
w´(4)=w(4)+a_lum×v_lum×b_lum(4)
=w(4)+a_lum×v_lum×−1
w´(5)=w(5)+a_lum×v_lum×2
w´(6)=w(6)+a_lum×v_lum×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_lumと読み替えればよい。また、フィルタ基底b_lumとして他の基底をとった場合も同様である。
(色に応じてフィルタ係数の切り替えを行う例)
次に、画像データ#100のフィルタ対象領域Tにおける画像の色に応じて、フィルタ係数を切り替える場合について説明する。特に、フィルタ対象領域Tにおける画素が肌色を示しているか否かに応じて、フィルタ係数を切り替える場合について説明する。ここで、フィルタ対象領域Tにおける画素が肌色を示している場合とは、例えば、フィルタ対象領域Tに含まれる画素が表す色の平均が、YUV成分で示して、133≦V≦177、かつ、77≦U≦127、かつ、60≦Y≦145の範囲内である場合である。ここで、Yは、当該画素の表示する色成分のうち、輝度成分の大きさを示しており、Uは、青色成分と輝度成分との差の定数倍によって定義される色成分の大きさを示しており、Vは、赤色成分と輝度成分との差の定数倍によって定義される色成分の大きさを示している。なお、上記の例では、Y、U、Vのそれぞれは、0から255までの値をとるものとしている。
次に、画像データ#100のフィルタ対象領域Tにおける画像の色に応じて、フィルタ係数を切り替える場合について説明する。特に、フィルタ対象領域Tにおける画素が肌色を示しているか否かに応じて、フィルタ係数を切り替える場合について説明する。ここで、フィルタ対象領域Tにおける画素が肌色を示している場合とは、例えば、フィルタ対象領域Tに含まれる画素が表す色の平均が、YUV成分で示して、133≦V≦177、かつ、77≦U≦127、かつ、60≦Y≦145の範囲内である場合である。ここで、Yは、当該画素の表示する色成分のうち、輝度成分の大きさを示しており、Uは、青色成分と輝度成分との差の定数倍によって定義される色成分の大きさを示しており、Vは、赤色成分と輝度成分との差の定数倍によって定義される色成分の大きさを示している。なお、上記の例では、Y、U、Vのそれぞれは、0から255までの値をとるものとしている。
制御変数決定部120は、画像データ#100の座標(x、y)における画素が肌色を示しているか否かに応じて、0または1をとる制御変数v_skinの値を1に設定し、当該制御変数v_skinをフィルタ部110に対して出力する。
また、制御変数決定部120は、画像データ#100の座標(x、y)における画素が肌色を示しているか否かに関連付けられたフィルタ基底b_skinをフィルタ部110に対して出力する。フィルタ基底b_skinとしては、例えば、上述したエッジ強調フィルタ基底、または、それらの線形和(もしくは加重線形和)を用いればよい。
フィルタ部110は、以下の式(17)によって表現される各成分v(K)を有するフィルタ係数ベクトルVの各係数を教師データ#200を参照して決定する。
v(K)=w(K)+a_skin×v_skin×b_skin(K) …(17)
ここで、a_skinは、フィルタ基底b_skinに対応した係数(固定係数)である。
v(K)=w(K)+a_skin×v_skin×b_skin(K) …(17)
ここで、a_skinは、フィルタ基底b_skinに対応した係数(固定係数)である。
フィルタ部110は、スライスごと、または、フレームごとに、フィルタ係数ベクトルの各成分v(K)、係数a_skinを、例えば、上述した統計的手法によって決定する。
制御変数決定部120は、画像データ#100の座標(x、y)における画素が肌色を示しているか否かの判定を行う。具体的には、制御変数決定部120は、画像データ#100の座標(x、y)における画素が示す色が、YUV成分で示して、133≦V≦177、かつ、77≦U≦127、かつ、60≦Y≦145の範囲内であるか否かを判定する。
また、制御変数決定部120は、画像データ#100の座標(x、y)における画素が示す色が上記の範囲内にある場合には、制御変数v_skinの値を1に設定し、フィルタ部110に対して出力する。また、制御変数決定部120は、画像データ#100の座標(x、y)における画素が示す色が上記の範囲内にない場合には、制御変数v_skinの値を0に設定し、フィルタ部110に対して出力する。
フィルタ部110は、制御変数決定部120から供給される制御変数v_skinを用いたフィルタ係数ベクトルVに基づいて、フィルタ対象領域Tごとにフィルタリングを行う。
上記のような構成をとることによって、画像データ#100の座標(x、y)における画素が肌色を示している場合には、ぼかし効果を有するフィルタリングを行い、画像データ#100の座標(x、y)における画素が肌色を示していない場合には、ぼかし効果を有しないフィルタリングを行うことができる。
なお、色に応じてフィルタ係数の切り替えを行う場合であっても、上述したようなDCオフセットに対応するフィルタ基底、および、フィルタ係数を用いることによって、DCオフセットによる輝度変化の効果を有するフィルタリングを行うことも可能である。
また、本動作例における適応フィルタ100による具体的なフィルタ係数算出処理としては、例えば、フィルタ基底b_skinとして、横方向エッジ強調基底をとった場合には、上記<フィルタ係数算出処理>の(予備ステップ)におけるw´(i)を以下の式によって算出し、保持しておけばよい。
w´(4)=w(4)+a_skin×v_skin×b_skin(4)
=w(4)+a_skin×v_skin×−1
w´(5)=w(5)+a_skin×v_skin×2
w´(6)=w(6)+a_skin×v_skin×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_skinと読み替えればよい。また、フィルタ基底b_skinとして他の基底をとった場合も同様である。
w´(4)=w(4)+a_skin×v_skin×b_skin(4)
=w(4)+a_skin×v_skin×−1
w´(5)=w(5)+a_skin×v_skin×2
w´(6)=w(6)+a_skin×v_skin×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_skinと読み替えればよい。また、フィルタ基底b_skinとして他の基底をとった場合も同様である。
(ブロック境界であるか否かに応じてフィルタ係数の切り替えを行う例)
次に、フィルタ対象領域Tがブロックの境界を含んでいるか否かに応じてフィルタ係数を切り替える場合について説明する。
次に、フィルタ対象領域Tがブロックの境界を含んでいるか否かに応じてフィルタ係数を切り替える場合について説明する。
ここで、上記ブロックとは、例えば、H.264/AVC規格における変換もしくは動き補償の単位のことであり、一般に、ブロックの境界には、ブロックノイズが発生しやすいという傾向がある。
制御変数決定部120は、フィルタ対象領域Tがブロック境界を含んでいるか否かに応じて、0または1をとる制御変数v_blockの値を1に設定し、当該制御変数v_blockをフィルタ部110に対して出力する。
また、制御変数決定部120は、フィルタ対象領域Tがブロック境界を含んでいるか否かに関連付けられたフィルタ基底b_blockをフィルタ部110に対して出力する。フィルタ基底b_blockとしては、例えば、上述したエッジ強調フィルタ基底、または、それらの線形和(もしくは加重線形和)を用いればよい。
フィルタ部110は、以下の式(18)によって表現される各成分v(K)を有するフィルタ係数ベクトルVの各係数を教師データ#200を参照して決定する。
v(K)=w(K)+a_block×v_block×b_block(K) …(18)
ここで、a_blockは、フィルタ基底b_blockに対応した係数(固定係数)である。
v(K)=w(K)+a_block×v_block×b_block(K) …(18)
ここで、a_blockは、フィルタ基底b_blockに対応した係数(固定係数)である。
フィルタ部110は、スライスごと、または、フレームごとに、固定係数ベクトルの各成分w(K)、係数a_blockを、例えば、上述した統計的手法によって決定する。
制御変数決定部120は、フィルタ対象領域Tがブロック境界を含んでいるか否かの判定を行い、フィルタ対象領域Tがブロック境界を含んでいる場合には、制御変数v_blockの値を1に設定し、フィルタ対象領域Tがブロック境界を含んでいない場合には、制御変数v_blockの値を0に設定する。また、制御変数決定部120は、制御変数v_blockをフィルタ部110に対して出力する。
フィルタ部110は、制御変数決定部120から供給される制御変数v_blockを用いたフィルタ係数ベクトルVに基づいて、フィルタ対象領域Tごとにフィルタリングを行う。
上記のような構成をとることによって、フィルタ対象領域Tがブロック境界を含んでいる場合には、ぼかし効果を有するフィルタリングを行い、そうでない場合には、ぼかし効果を有しないフィルタリングを行うことができる。
なお、フィルタ対象領域Tがブロック境界を含んでいるか否かに応じてフィルタ係数の切り替えを行う場合であっても、上述したようなDCオフセットに対応するフィルタ基底、および、フィルタ係数を用いることによって、DCオフセットによる輝度変化の効果を有するフィルタリングを行うことも可能である。
また、本動作例における適応フィルタ100による具体的なフィルタ係数算出処理としては、例えば、フィルタ基底b_blockとして、横方向エッジ強調基底をとった場合には、上記<フィルタ係数算出処理>の(予備ステップ)におけるw´(i)を以下の式によって算出し、保持しておけばよい。
w´(4)=w(4)+a_block×v_block×b_block(4)
=w(4)+a_block×v_block×−1
w´(5)=w(5)+a_block×v_block×2
w´(6)=w(6)+a_block×v_block×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_blockと読み替えればよい。また、フィルタ基底b_blockとして他の基底をとった場合も同様である。
w´(4)=w(4)+a_block×v_block×b_block(4)
=w(4)+a_block×v_block×−1
w´(5)=w(5)+a_block×v_block×2
w´(6)=w(6)+a_block×v_block×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_blockと読み替えればよい。また、フィルタ基底b_blockとして他の基底をとった場合も同様である。
(予測方向に応じてフィルタ係数の切り替えを行う例)
次に、画像データ#100の座標(x、y)における画素が属するブロックに関連付けられたサイド情報に応じて、フィルタ係数を切り替える場合について説明する。特に、画像データ#100の座標(x、y)における画素が属するブロックが、例えば、H.264/AVC規格における単方向予測に基づいて生成されたブロックであるか、または、双方向予測に基づいて生成されたブロックであるかに応じて、フィルタ係数を切り替える場合について説明する。
次に、画像データ#100の座標(x、y)における画素が属するブロックに関連付けられたサイド情報に応じて、フィルタ係数を切り替える場合について説明する。特に、画像データ#100の座標(x、y)における画素が属するブロックが、例えば、H.264/AVC規格における単方向予測に基づいて生成されたブロックであるか、または、双方向予測に基づいて生成されたブロックであるかに応じて、フィルタ係数を切り替える場合について説明する。
ここで、H.264/AVC規格における単方向予測とは、当該ブロックが属するフレームよりも前に符号化/復号されたフレームを1つ用いて当該ブロックを予測する場合のことであり、双方向予測とは、当該ブロックが属するフレームの前に符号化/復号されるフレームを2つ用いて当該ブロックを予測する場合のことである。なお、予測に用いるフレームは1つか2つが一般的であるが、これより多くても構わない。
制御変数決定部120は、画像データ#100の座標(x、y)における画素が属するブロックが、単方向予測に基づいて生成されたブロックであるか、または、双方向予測に
基づいて生成されたブロックであるかに応じて、0または1をとる制御変数v_predの値を1に設定し、当該制御変数v_predをフィルタ部110に対して出力する。
基づいて生成されたブロックであるかに応じて、0または1をとる制御変数v_predの値を1に設定し、当該制御変数v_predをフィルタ部110に対して出力する。
また、制御変数決定部120は、画像データ#100の座標(x、y)における画素が属するブロックが、単方向予測に基づいて生成されたブロックであるか、または、双方向予測に基づいて生成されたブロックであるかに関連付けられたフィルタ基底b_predをフィルタ部110に対して出力する。フィルタ基底b_predとしては、例えば、上述したエッジ強調フィルタ基底、または、それらの線形和(もしくは加重線形和)を用いればよい。
フィルタ部110は、以下の式(19)によって表現される各成分v(K)を有するフィルタ係数ベクトルVの各係数を教師データ#200を参照して決定する。
v(K)=w(K)+a_pred×v_pred×b_pred(K) …(19)
ここで、a_predは、フィルタ基底b_predに対応した係数(固定係数)である。
v(K)=w(K)+a_pred×v_pred×b_pred(K) …(19)
ここで、a_predは、フィルタ基底b_predに対応した係数(固定係数)である。
フィルタ部110は、スライスごと、または、フレームごとに、固定係数ベクトルの各成分w(K)、係数a_predを、例えば、上述した統計的手法によって決定する。
制御変数決定部120は、画像データ#100の座標(x、y)における画素が属するブロックが、単方向予測に基づいて生成されたブロックである場合には、制御変数v_predの値を0に設定し、当該ブロックが双方向予測に基づいて生成されたブロックである場合には、制御変数v_predの値を1に設定する。また、制御変数決定部120は、制御変数v_predをフィルタ部110に対して出力する。
フィルタ部110は、制御変数決定部120から供給される制御変数v_predを用いたフィルタ係数ベクトルVに基づいて、フィルタ対象領域Tごとにフィルタリングを行う。
上記のような構成をとることによって、画像データ#100の座標(x、y)における画素が属するブロックが単方向予測に基づいて生成されたブロックである場合には、エッジやぼかし強調効果を有しないフィルタリングを行い、当該画素が属するブロックが双方向予測に基づいて生成されたブロックである場合には、エッジ強調やぼかし効果を有するフィルタリングを行うことができる。
なお、上記のように、単方向予測であるか双方向予測であるかに応じてフィルタ係数の切り替えを行う場合であっても、上述したようなDCオフセットに対応するフィルタ基底、および、フィルタ係数を用いることによって、DCオフセットによる輝度変化の効果を有するフィルタリングを行うことも可能である。
また、フィルタ対象領域Tに複数のブロックが含まれるような場合には、当該複数のブロックのうち何れか1つのブロックに割り付けられた情報を用いればよい。
また、本動作例における適応フィルタ100による具体的なフィルタ係数算出処理としては、例えば、フィルタ基底b_predとして、横方向エッジ強調基底をとった場合には、上記<フィルタ係数算出処理>の(予備ステップ)におけるw´(i)を以下の式によって算出し、保持しておけばよい。
w´(4)=w(4)+a_pred×v_pred×b_pred(4)
=w(4)+a_pred×v_pred×−1
w´(5)=w(5)+a_pred×v_pred×2
w´(6)=w(6)+a_pred×v_pred×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_predと読み替えればよい。また、フィルタ基底b_predとして他の基底をとった場合も同様である。
w´(4)=w(4)+a_pred×v_pred×b_pred(4)
=w(4)+a_pred×v_pred×−1
w´(5)=w(5)+a_pred×v_pred×2
w´(6)=w(6)+a_pred×v_pred×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_predと読み替えればよい。また、フィルタ基底b_predとして他の基底をとった場合も同様である。
(予測方法に応じてフィルタ係数の切り替えを行う例)
次に、画像データ#100の座標(x、y)における画素が属するブロックが、H.264/AVC規格におけるイントラ予測されたブロックであるか、インター予測されたブロックであるかに応じてフィルタ係数を切り替える場合について説明する。
次に、画像データ#100の座標(x、y)における画素が属するブロックが、H.264/AVC規格におけるイントラ予測されたブロックであるか、インター予測されたブロックであるかに応じてフィルタ係数を切り替える場合について説明する。
制御変数決定部120は、画像データ#100の座標(x、y)における画素が属するブロックが、イントラ予測されたブロックであるか、または、インター予測されたブロックであるかに応じて、0または1をとる制御変数v_intの値を1に設定し、当該制御変数v_intをフィルタ部110に対して出力する。
また、制御変数決定部120は、画像データ#100の座標(x、y)における画素が属するブロックが、イントラ予測されたブロックであるか、または、インター予測されたブロックであるかに関連付けられたフィルタ基底b_intをフィルタ部110に対して出力する。フィルタ基底b_intとしては、例えば、上述したエッジ強調フィルタ基底、または、それらの線形和(もしくは加重線形和)を用いればよい。
フィルタ部110は、以下の式(20)によって表現される各成分v(K)を有するフィルタ係数ベクトルVの各係数を教師データ#200を参照して決定する。
v(K)=w(K)+a_int×v_int×b_int(K) …(20)
ここで、a_intは、フィルタ基底b_intに対応した係数(固定係数)である。
v(K)=w(K)+a_int×v_int×b_int(K) …(20)
ここで、a_intは、フィルタ基底b_intに対応した係数(固定係数)である。
フィルタ部110は、スライスごと、または、フレームごとに、固定係数ベクトルの各成分w(K)、係数a_intを、例えば、上述した統計的手法によって決定する。
制御変数決定部120は、画像データ#100の座標(x、y)における画素が属するブロックが、イントラ予測されたブロックである場合には、制御変数v_intの値を1に設定し、インター予測されたブロックである場合には、制御変数v_intの値を0に設定する。また、制御変数決定部120は、制御変数v_intをフィルタ部110に対して出力する。
フィルタ部110は、制御変数決定部120から供給される制御変数v_predを用いたフィルタ係数ベクトルVに基づいて、フィルタ対象領域Tごとにフィルタリングを行う。
一般に、イントラ予測されたブロックにおいては、エッジがぼやけ易いという傾向がある。
上記のような構成をとることによって、画像データ#100の座標(x、y)における画素が属するブロックがイントラ予測されたブロックである場合には、エッジ強調効果を有するフィルタリングを行い、インター予測されたブロックである場合には、エッジ強調効果を有しないフィルタリングを行うことができる。したがって、上記のような構成をとることによって、画像データ#100の座標(x、y)における画素が属するブロックがイントラ予測されたブロックであっても、インター予測されたブロックであっても、効果的なフィルタリングを行うことができる。
なお、上記のように、インター予測であるかイントラ予測であるかに応じてフィルタ係数の切り替えを行う場合であっても、上述したようなDCオフセットに対応するフィルタ基底、および、フィルタ係数を用いることによって、DCオフセットによる輝度変化の効果を有するフィルタリングを行うことも可能である。
また、フィルタ対象領域Tに複数のブロックが含まれるような場合には、当該複数のブロックのうち何れか1つのブロックに割り付けられた情報を用いればよい。
また、本動作例における適応フィルタ100による具体的なフィルタ係数算出処理としては、例えば、フィルタ基底b_intとして、横方向エッジ強調基底をとった場合には、上記<フィルタ係数算出処理>の(予備ステップ)におけるw´(i)を以下の式によって算出し、保持しておけばよい。
w´(4)=w(4)+a_int×v_int×b_int(4)
=w(4)+a_int×v_int×−1
w´(5)=w(5)+a_int×v_int×2
w´(6)=w(6)+a_int×v_int×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_intと読み替えればよい。また、フィルタ基底b_intとして他の基底をとった場合も同様である。
w´(4)=w(4)+a_int×v_int×b_int(4)
=w(4)+a_int×v_int×−1
w´(5)=w(5)+a_int×v_int×2
w´(6)=w(6)+a_int×v_int×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_intと読み替えればよい。また、フィルタ基底b_intとして他の基底をとった場合も同様である。
(ブロック境界からの距離に応じてフィルタ係数の切り替えを行う例)
次に、画像データ#100の座標(x、y)における画素と、当該画素が属するブロックのブロック境界との距離に応じて、フィルタ係数を切り替える場合について説明する。
次に、画像データ#100の座標(x、y)における画素と、当該画素が属するブロックのブロック境界との距離に応じて、フィルタ係数を切り替える場合について説明する。
制御変数決定部120は、画像データ#100の座標(x、y)における画素と、当該画素が属するブロックのブロック境界との距離に応じて、0または1をとる制御変数v_distの値を1に設定し、当該制御変数v_distをフィルタ部110に対して出力する。
また、制御変数決定部120は、画像データ#100の座標(x、y)における画素と、当該画素が属するブロックのブロック境界との距離に関連付けられたフィルタ基底b_distをフィルタ部110に対して出力する。フィルタ基底b_distとしては、例えば、上述したエッジ強調フィルタ基底、または、それらの線形和(もしくは加重線形和)を用いればよい。
フィルタ部110は、以下の式(21)によって表現される各成分v(K)を有するフィルタ係数ベクトルVの各係数を教師データ#200を参照して決定する。
v(K)=w(K)+a_dist×v_dist×b_dist(K) …(21)
ここで、a_distは、フィルタ基底b_distに対応した係数(固定係数)である。
v(K)=w(K)+a_dist×v_dist×b_dist(K) …(21)
ここで、a_distは、フィルタ基底b_distに対応した係数(固定係数)である。
フィルタ部110は、スライスごと、または、フレームごとに、固定係数ベクトルの各成分w(K)、係数a_distを、例えば、上述した統計的手法によって決定する。
制御変数決定部120は、画像データ#100の座標(x、y)における画素と、当該画素が属するブロックのブロック境界との距離を算出し、当該距離が、予め定められた第1の閾値よりも小さい場合に、制御変数v_distの値を2に設定し、当該距離が上記第1の閾値以上であって、上記第1の閾値よりも大きい第2の閾値より小さい場合に、制
御変数v_distの値を1に設定し、当該距離が上記第2の閾値以上である場合に、制御変数v_distの値を0に設定する。また、制御変数決定部120は、制御変数v_distをフィルタ部110に対して出力する。
御変数v_distの値を1に設定し、当該距離が上記第2の閾値以上である場合に、制御変数v_distの値を0に設定する。また、制御変数決定部120は、制御変数v_distをフィルタ部110に対して出力する。
フィルタ部110は、制御変数決定部120から供給される制御変数v_distを用いたフィルタ係数ベクトルVに基づいて、フィルタ対象領域Tごとにフィルタリングを行う。
上記のような構成をとることによって、画像データ#100の座標(x、y)における画素と、当該画素が属するブロックのブロック境界との距離に応じて、エッジ強調効果が異なる3段階のフィルタリングを行うことができる。すなわち、当該画素とブロック境界との距離が、上記第1の閾値よりも小さい場合に、上記3段階のうち最もエッジ強調効果が強いフィルタリングを行い、当該距離が、上記第1の閾値以上であって、上記第2の閾値よりも小さい場合に、上記3段階のうち2番目にエッジ強調効果が強いフィルタリングを行い、上記距離が、上記第2の閾値以上である場合に、エッジ強調効果を有しないフィルタリングを行うことができる。
なお、ブロック境界からの距離に応じてフィルタ係数の切り替えを行う場合であっても、上述したようなDCオフセットに対応するフィルタ基底、および、フィルタ係数を用いることによって、DCオフセットによる輝度変化の効果を有するフィルタリングを行うことも可能である。
また、上記ブロック境界が垂直な境界であるか、水平な境界であるかに応じて、上記フィルタ基底を変更するような構成としてもよい。すなわち、上位ブロック境界が垂直な境界である場合には、フィルタ係数b_distが、上述した横方向エッジ強調基底をとり、上位ブロック境界が水平な境界である場合には、フィルタ係数b_distが、上述した縦方向エッジ強調基底をとるような構成としてもよい。
また、制御変数決定部120は、垂直なブロック境界からの距離に応じた制御変数と、水平なブロック境界からの距離に応じた制御変数とを出力するような構成とし、垂直なブロック境界からの距離、および、水平なブロック境界からの距離のそれぞれに応じて、エッジ強調効果の異なるフィルタリングを行うことも可能である。
また、本動作例における適応フィルタ100による具体的なフィルタ係数算出処理としては、例えば、フィルタ基底b_distとして、横方向エッジ強調基底をとった場合には、上記<フィルタ係数算出処理>の(予備ステップ)におけるw´(i)を以下の式によって算出し、保持しておけばよい。
w´(4)=w(4)+a_dist×v_dist×b_dist(4)
=w(4)+a_dist×v_dist×−1
w´(5)=w(5)+a_dist×v_dist×2
w´(6)=w(6)+a_dist×v_dist×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_distと読み替えればよい。また、フィルタ基底b_distとして他の基底をとった場合も同様である。
w´(4)=w(4)+a_dist×v_dist×b_dist(4)
=w(4)+a_dist×v_dist×−1
w´(5)=w(5)+a_dist×v_dist×2
w´(6)=w(6)+a_dist×v_dist×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_distと読み替えればよい。また、フィルタ基底b_distとして他の基底をとった場合も同様である。
(フレーム内位置に応じてフィルタ係数の切り替えを行う例)
次に、画像データ#100の座標(x、y)における画素のフレーム内における位置に応じて、フィルタ係数を切り替える場合について説明する。
次に、画像データ#100の座標(x、y)における画素のフレーム内における位置に応じて、フィルタ係数を切り替える場合について説明する。
制御変数決定部120は、画像データ#100の座標(x、y)における画素のフレー
ム内における位置に応じて、0または1をとる制御変数v_xyの値を1に設定し、当該制御変数v_xyをフィルタ部110に対して出力する。
ム内における位置に応じて、0または1をとる制御変数v_xyの値を1に設定し、当該制御変数v_xyをフィルタ部110に対して出力する。
また、制御変数決定部120は、画像データ#100の座標(x、y)における画素のフレーム内における位置に関連付けられたフィルタ基底b_xyをフィルタ部110に対して出力する。フィルタ基底b_xyとしては、例えば、上述したエッジ強調基底や上述したDCオフセット基底などを用いればよい。
フィルタ部110は、以下の式(22)によって表現される各成分v(K)を有するフィルタ係数ベクトルVの各係数を教師データ#200を参照して決定する。
v(K)=w(K)+a_xy×v_xy×b_xy(K) …(22)
ここで、a_xyは、フィルタ基底b_xyに対応した係数(固定係数)である。
v(K)=w(K)+a_xy×v_xy×b_xy(K) …(22)
ここで、a_xyは、フィルタ基底b_xyに対応した係数(固定係数)である。
フィルタ部110は、スライスごと、または、フレームごとに、固定係数ベクトルの各成分w(K)、係数a_xyを、例えば、上述した統計的手法によって決定する。
制御変数決定部120は、例えば、画像データ#100の座標(x、y)における画素が、フレームの上半面に位置する場合に、制御変数v_xyの値を1に設定し、当該画素がフレームの下半面に位置する場合に、制御変数v_xyの値を0に設定する。また、制御変数決定部120は、制御変数v_xyをフィルタ部110に対して出力する。
フィルタ部110は、制御変数決定部120から供給される制御変数v_xyを用いたフィルタ係数ベクトルVに基づいて、フィルタ対象領域Tごとにフィルタリングを行う。
上記のような構成をとることによって、フレームの上半面に対して、DCオフセットの効果を有するフィルタリングを行い、フレームの下半面に対して、DCオフセットの効果を有しないフィルタリングを行うことができる。
なお、上記の説明では、フィルタ基底b_xyとして、DCオフセット基底を用いる場合を例に挙げたが、本発明はこれに限定されるものではなく、フィルタ基底b_xyとして、上述したエッジ強調基底を用いることも可能である。
また、本動作例における適応フィルタ100による具体的なフィルタ係数算出処理としては、例えば、フィルタ基底b_xyとして、横方向エッジ強調基底をとった場合には、上記<フィルタ係数算出処理>の(予備ステップ)におけるw´(i)を以下の式によって算出し、保持しておけばよい。
w´(4)=w(4)+a_xy×v_xy×b_xy(4)
=w(4)+a_xy×v_xy×−1
w´(5)=w(5)+a_xy×v_xy×2
w´(6)=w(6)+a_xy×v_xy×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_xyと読み替えればよい。また、フィルタ基底b_xyとして他の基底をとった場合も同様である。
w´(4)=w(4)+a_xy×v_xy×b_xy(4)
=w(4)+a_xy×v_xy×−1
w´(5)=w(5)+a_xy×v_xy×2
w´(6)=w(6)+a_xy×v_xy×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_xyと読み替えればよい。また、フィルタ基底b_xyとして他の基底をとった場合も同様である。
(量子化パラメータの大きさに応じてフィルタ係数の切り替えを行う例)
次に、画像データ#100の座標(x、y)における画素が属するブロックに関連付けられた量子化パラメータQPに応じて、フィルタ係数を切り替える場合について説明する。
次に、画像データ#100の座標(x、y)における画素が属するブロックに関連付けられた量子化パラメータQPに応じて、フィルタ係数を切り替える場合について説明する。
ここで、量子化パラメータQPとは、例えば、MPEG−2、および、H.264/A
VC規格において、量子化ステップに対応付けられたパラメータであって、各ブロックに割り付けられたパラメータのことを指す。
VC規格において、量子化ステップに対応付けられたパラメータであって、各ブロックに割り付けられたパラメータのことを指す。
制御変数決定部120は、画像データ#100の座標(x、y)における画素が属するブロックに関連付けられた量子化パラメータの大きさに応じて、0または1をとる制御変数v_qpの値を1に設定し、当該制御変数v_qpをフィルタ部110に対して出力する。
また、制御変数決定部120は、画像データ#100の座標(x、y)における画素が属するブロックに関連付けられた量子化パラメータQPの大きさに関連付けられたフィルタ基底b_qpをフィルタ部110に対して出力する。フィルタ基底b_qpとしては、例えば、上述したエッジ強調基底を用いればよい。
フィルタ部110は、以下の式(23)によって表現される各成分v(K)を有するフィルタ係数ベクトルVの各係数を教師データ#200を参照して決定する。
v(K)=w(K)+a_qp×v_qp×b_qp(K) …(23)
ここで、a_qpは、フィルタ基底b_qpに対応した係数(固定係数)である。
v(K)=w(K)+a_qp×v_qp×b_qp(K) …(23)
ここで、a_qpは、フィルタ基底b_qpに対応した係数(固定係数)である。
フィルタ部110は、スライスごと、または、フレームごとに、固定係数ベクトルの各成分w(K)、係数a_qpを、例えば、上述した統計的手法によって決定する。
制御変数決定部120は、画像データ#100の座標(x、y)における画素が属するブロックに関連付けられた量子化パラメータQPの値が、予め定められた閾値以上である場合に、制御変数v_qpの値を1に設定し、量子化パラメータQPの値が当該閾値よりも小さい場合に、制御変数v_qpの値を0に設定する。また、制御変数決定部120は、制御変数v_qpをフィルタ部110に対して出力する。
フィルタ部110は、制御変数決定部120から供給される制御変数v_qpを用いたフィルタ係数ベクトルVに基づいて、フィルタ対象領域Tごとにフィルタリングを行う。
一般に、より大きな量子化パラメータQPが関連付けられたブロックは、よりぼやけを含み易いという傾向がある。
上記のような構成をとることによって、量子化パラメータQPが上記閾値以上である場合に、ぼかし効果を有するフィルタリングを行い、量子化パラメータQPが上記閾値より小さい場合に、ぼかし効果を有しないフィルタリングを行うことができる。
したがって、上記のような構成をとることによって、画像データ#100が、様々な値の量子化パラメータを含む場合であっても、効果的なフィルタリングを行うことができる。
なお、上記のように、量子化パラメータQPの値に応じてフィルタ係数の切り替えを行う場合であっても、上述したようなDCオフセットに対応するフィルタ基底、および、フィルタ係数を用いることによって、DCオフセットによる輝度変化の効果を有するフィルタリングを行うことも可能である。
また、フィルタ対象領域Tに複数のブロックが含まれるような場合には、当該複数のブロックのうち何れか1つのブロックに割り付けられた情報を用いればよい。
また、本動作例における適応フィルタ100による具体的なフィルタ係数算出処理とし
ては、例えば、フィルタ基底b_qpとして、横方向エッジ強調基底をとった場合には、上記<フィルタ係数算出処理>の(予備ステップ)におけるw´(i)を以下の式によって算出し、保持しておけばよい。
w´(4)=w(4)+a_qp×v_qp×b_qp(4)
=w(4)+a_qp×v_qp×−1
w´(5)=w(5)+a_qp×v_qp×2
w´(6)=w(6)+a_qp×v_qp×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_qpと読み替えればよい。また、フィルタ基底b_qpとして他の基底をとった場合も同様である。
ては、例えば、フィルタ基底b_qpとして、横方向エッジ強調基底をとった場合には、上記<フィルタ係数算出処理>の(予備ステップ)におけるw´(i)を以下の式によって算出し、保持しておけばよい。
w´(4)=w(4)+a_qp×v_qp×b_qp(4)
=w(4)+a_qp×v_qp×−1
w´(5)=w(5)+a_qp×v_qp×2
w´(6)=w(6)+a_qp×v_qp×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_qpと読み替えればよい。また、フィルタ基底b_qpとして他の基底をとった場合も同様である。
(DC成分の大きさに応じてフィルタ係数の切り替えを行う場合)
次に、画像データ#100の座標(x、y)における画素が属するブロックに関連付けられたDC成分の大きさに応じて、フィルタ係数を切り替える場合について説明する。
次に、画像データ#100の座標(x、y)における画素が属するブロックに関連付けられたDC成分の大きさに応じて、フィルタ係数を切り替える場合について説明する。
ここで、上記DC成分とは、例えば、H.264/AVC規格において、上記ブロックに含まれる画素値に対して周波数変換を行った後の各係数のうち直流成分に対応する係数のことである。
制御変数決定部120は、画像データ#100の座標(x、y)における画素が属するブロックに関連付けられたDC成分の大きさに応じて、0または1をとる制御変数v_dc’の値を1に設定し、当該制御変数v_dc’をフィルタ部110に対して出力する。
また、制御変数決定部120は、画像データ#100の座標(x、y)における画素が属するブロックに関連付けられたDC成分の大きさに関連付けられたフィルタ基底b_dc’をフィルタ部110に対して出力する。フィルタ基底b_dc’としては、例えば、上述したエッジ強調基底を用いればよい。
フィルタ部110は、以下の式(24)によって表現される各成分v(K)を有するフィルタ係数ベクトルVの各係数を教師データ#200を参照して決定する。
v(K)=w(K)+a_dc’×v_dc’×b_dc’(K) …(24)
ここで、a_dc’は、フィルタ基底b_dc’に対応した係数(固定係数)である。
v(K)=w(K)+a_dc’×v_dc’×b_dc’(K) …(24)
ここで、a_dc’は、フィルタ基底b_dc’に対応した係数(固定係数)である。
フィルタ部110は、スライスごと、または、フレームごとに、固定係数ベクトルの各成分w(K)、係数a_dc’を、例えば、上述した統計的手法によって決定する。
制御変数決定部120は、画像データ#100の座標(x、y)における画素が属するブロックに関連付けられたDC成分の値が、予め定められた閾値以上である場合に、制御変数v_dc’の値を0に設定し、DC成分の値が当該閾値よりも小さい場合に、制御変数v_dc’の値を1に設定する。また、制御変数決定部120は、制御変数v_dc’をフィルタ部110に対して出力する。
フィルタ部110は、制御変数決定部120から供給される制御変数v_dc’を用いたフィルタ係数ベクトルVに基づいて、フィルタ対象領域Tごとにフィルタリングを行う。
一般に、より小さなDC成分が関連付けられたブロックにおいては、ぼやけがより生じ易いという傾向がある。
上記のような構成をとることによって、DC成分の値が上記閾値よりも小さい場合に、
ぼかし効果を有するフィルタリングを行い、DC成分の値が上記閾値以上である場合に、ぼかし効果を有しないフィルタリングを行うことができる。
ぼかし効果を有するフィルタリングを行い、DC成分の値が上記閾値以上である場合に、ぼかし効果を有しないフィルタリングを行うことができる。
したがって、上記のような構成をとることによって、画像データ#100の示す画像が、様々なDC成分を有するブロックから構成される場合であっても、効果的なフィルタリングを行うことができる。
なお、上記のように、DCパラメータの値に応じてフィルタ係数の切り替えを行う場合であっても、上述したようなDCオフセットに対応するフィルタ基底、および、フィルタ係数を用いることによって、DCオフセットによる輝度変化の効果を有するフィルタリングを行うことも可能である。
また、フィルタ対象領域Tに複数のブロックが含まれるような場合には、当該複数のブロックのうち何れか1つのブロックに割り付けられた情報を用いればよい。
また、本動作例における適応フィルタ100による具体的なフィルタ係数算出処理としては、例えば、フィルタ基底b_dc’として、横方向エッジ強調基底をとった場合には、上記<フィルタ係数算出処理>の(予備ステップ)におけるw´(i)を以下の式によって算出し、保持しておけばよい。
w´(4)=w(4)+a_dc’×v_dc’×b_dc’(4)
=w(4)+a_dc’×v_dc’×−1
w´(5)=w(5)+a_dc’×v_dc’×2
w´(6)=w(6)+a_dc’×v_dc’×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_dc’と読み替えればよい。また、フィルタ基底b_dc’として他の基底をとった場合も同様である。
w´(4)=w(4)+a_dc’×v_dc’×b_dc’(4)
=w(4)+a_dc’×v_dc’×−1
w´(5)=w(5)+a_dc’×v_dc’×2
w´(6)=w(6)+a_dc’×v_dc’×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_dc’と読み替えればよい。また、フィルタ基底b_dc’として他の基底をとった場合も同様である。
(動きベクトルの大きさに応じてフィルタ係数の切り替えを行う場合)
次に、画像データ#100の座標(x、y)における画素が属するブロックに関連付けられた動きベクトルの大きさに応じて、フィルタ係数を切り替える場合について説明する。
次に、画像データ#100の座標(x、y)における画素が属するブロックに関連付けられた動きベクトルの大きさに応じて、フィルタ係数を切り替える場合について説明する。
ここで、上記動きベクトルとは、例えば、H.264/AVC規格において、画面間予測のために用いられる動きベクトルを指す。
制御変数決定部120は、画像データ#100の座標(x、y)における画素が属するブロックに関連付けられた動きベクトルの大きさ応じて、0または1をとる制御変数v_mvの値を1に設定し、当該制御変数v_mvをフィルタ部110に対して出力する。
また、制御変数決定部120は、画像データ#100の座標(x、y)における画素が属するブロックに関連付けられた動きベクトルの大きさに関連付けられたフィルタ基底b_mvをフィルタ部110に対して出力する。フィルタ基底b_mvとしては、例えば、上述したエッジ強調基底を用いればよい。
フィルタ部110は、以下の式(25)によって表現される各成分v(K)を有するフィルタ係数ベクトルVの各係数を教師データ#200を参照して決定する。
v(K)=w(K)+a_mv×v_mv×b_mv(K) …(25)
ここで、a_mvは、フィルタ基底b_mvに対応した係数(固定係数)である。
v(K)=w(K)+a_mv×v_mv×b_mv(K) …(25)
ここで、a_mvは、フィルタ基底b_mvに対応した係数(固定係数)である。
フィルタ部110は、スライスごと、または、フレームごとに、固定係数ベクトルの各
成分w(K)、係数a_mvを、例えば、上述した統計的手法によって決定する。
成分w(K)、係数a_mvを、例えば、上述した統計的手法によって決定する。
制御変数決定部120は、画像データ#100の座標(x、y)における画素が属するブロックに関連付けられた動きベクトルの大きさが、予め定められた閾値以上である場合に、制御変数v_mvの値を1に設定し、動きベクトルの大きさが当該閾値よりも小さい場合に、制御変数v_mvの値を0に設定する。また、制御変数決定部120は、制御変数v_mvをフィルタ部110に対して出力する。
フィルタ部110は、制御変数決定部120から供給される制御変数v_mvを用いたフィルタ係数ベクトルVに基づいて、フィルタ対象領域Tごとにフィルタリングを行う。
一般に、より大きな動きベクトルが関連付けられたブロックにおいては、ぼやけがより生じ易いという傾向がある。
上記のような構成をとることによって、動きベクトルの大きさが上記閾値以上である場合に、ぼかし効果を有するフィルタリングを行い、動きベクトルの大きさが上記閾値より小さい場合に、ぼかし効果を有しないフィルタリングを行うことができる。
したがって、上記のような構成をとることによって、画像データ#100の示す画像が、様々な大きさを有する動きベクトルが関連付けられたブロックから構成される場合であっても、効果的なフィルタリングを行うことができる。
なお、上記のように、動きベクトルの大きさに応じてフィルタ係数の切り替えを行う場合であっても、上述したようなDCオフセットに対応するフィルタ基底、および、フィルタ係数を用いることによって、DCオフセットによる輝度変化の効果を有するフィルタリングを行うことも可能である。
また、フィルタ対象領域Tに複数のブロックが含まれるような場合には、当該複数のブロックのうち何れか1つのブロックに割り付けられた情報を用いればよい。
また、上記動きベクトルの大きさに代えて、上記動きベクトルと予測ベクトルとの差分である差分動きベクトルの大きさに応じて、フィルタ係数を切り替えるような構成としてもよい。
以上、本実施形態に係る適応フィルタ100によるフィルタ係数の切り替えの例について説明を行ったが、本発明は、上述した例に限定されるものではない。例えば、上記の例を適宜組み合わせることによって、フィルタ係数を切り替えるような場合も本発明に含まれる。すなわち、制御変数決定部120が、上記の例において説明した制御変数、および、制御基底のうち、複数の制御基底、および、それに対応する複数の制御基底を出力するような構成としてもよい。このような構成をとることによって、より効果的なフィルタリングを行うことができる。
また、本動作例における適応フィルタ100による具体的なフィルタ係数算出処理としては、例えば、フィルタ基底b_mvとして、横方向エッジ強調基底をとった場合には、上記<フィルタ係数算出処理>の(予備ステップ)におけるw´(i)を以下の式によって算出し、保持しておけばよい。
w´(4)=w(4)+a_mv×v_mv×b_mv(4)
=w(4)+a_mv×v_mv×−1
w´(5)=w(5)+a_mv×v_mv×2
w´(6)=w(6)+a_mv×v_mv×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_mvと読み替えればよい。また、フィルタ基底b_mvとして他の基底をとった場合も同様である。
w´(4)=w(4)+a_mv×v_mv×b_mv(4)
=w(4)+a_mv×v_mv×−1
w´(5)=w(5)+a_mv×v_mv×2
w´(6)=w(6)+a_mv×v_mv×−1
また、上記<フィルタ係数算出処理>における他のステップにおいては、制御変数v_skipを制御変数v_mvと読み替えればよい。また、フィルタ基底b_mvとして他の基底をとった場合も同様である。
また、制御変数決定部120が、複数の制御変数を出力する場合には、制御変数決定部120は、当該複数の制御変数のうち、フィルタリングに対する寄与が小さい複数の制御変数を決定し、当該寄与の小さい複数の制御変数の線形和によって、新たな制御変数を設定し、当該新たな制御変数の値を切り替えることによって、フィルタ係数を切り替えるような構成としてもよい。
例えば、制御変数v_0、v_1、v_2のうち、制御変数v_0、および、制御変数v_2については、フィルタリングに対する寄与が小さい場合には、制御変数決定部120は、v_02=v_0+v_2によって、新たな制御変数v_02を設定し、当該制御変数v_02の値を切り替えることによって、フィルタ係数を切り替えるような構成としてもよい。
このような構成をとることによって、フィルタリングに対する寄与の小さい制御変数の数を減らすことができるので、適応フィルタ100における計算量を削減することができる。
なお、フィルタリングに対する寄与が小さい複数の制御変数の具体的な決定方法は、本発明を限定するものではないが、例えば、制御変数ごとに異なる値を用いてフィルタリングを行い、フィルタリング前の画素値と、フィルタリング後の画素値との差が小さい制御変数を上記寄与の小さい制御変数に同定すればよい。
また、上記の説明においては、制御変数決定部120から出力されたフィルタ基底に対して、上述した統計的手法によって、当該フィルタ基底に対する係数を決定する構成を例に挙げたが、本発明はこれに限定されるものではない。
例えば、制御変数決定部120は、上述した統計的手法によって決定された係数に対する最適なフィルタ基底を決定するような構成としてもよい。
また、フィルタ基底を固定して係数を算出する工程と、係数を固定して最適なフィルタ係数を決定する工程とを繰り返すことによって、画像データ#100に対する最適なフィルタ係数、および、フィルタ基底を求めることも可能である。
以上が、本実施形態に係る適応フィルタ100についての説明である。
以下では、適応フィルタ100の具体的な使用例として、適応フィルタ100を備えた動画像符号化装置、および、動画像復号装置について、図5〜図9を参照して説明する。
(動画像符号化装置への使用例)
まず、適応フィルタ100を備えている動画像符号化装置1について図4を参照して説明する。
まず、適応フィルタ100を備えている動画像符号化装置1について図4を参照して説明する。
動画像符号化装置1は、その一部に、H.264/AVC規格、および、KTAソフトウェアに採用されている技術を用いている動画像符号化装置である。
図5は動画像符号化装置1の構成を示すブロック図である。
図5に示すように、動画像符号化装置1は、変換・量子化部11、可変長符号化部12、逆量子化・逆変換部13、バッファメモリ14、イントラ予測画像生成部15、インター予測画像生成部16、予測方式制御部18、動きベクトル冗長性削減部19、加算器21、減算器22、デブロッキングフィルタ50、および、適応フィルタ100を備えている。
動画像符号化装置1には、隣接する複数の画素から構成されるブロック画像(以下「マクロブロック」と呼ぶ)に分割された入力画像#1が入力される。
動画像符号化装置1は、入力画像#1の符号化処理を行い、符号化データ#2を出力する。
変換・量子化部11は、マクロブロックに分割された入力画像#1と、後述する予測方式制御部18から出力される予測画像#18aとの差分画像#22を、DCT(Discrete Cosine Transform)変換により、周波数成分へ変換した後、当該周波数成分の量子化を行い、量子化予測残差データ#11を生成する。ここで、上記量子化とは、上記周波数成分を整数値に対応付ける演算のことである。また、上記DCT変換、および、量子化は、マクロブロックを分割したブロック単位で行われる。以下では、処理の対象となるマクロブロックを「対象マクロブロック」と呼び、処理の対象となるブロックを「対象ブロック」と呼ぶ。
逆量子化・逆変換部13は、量子化予測残差データ#11の復号を行い、予測残差#13を生成する。具体的には、逆量子化・逆変換部13は、量子化予測残差データ#11の逆量子化、すなわち、量子化予測残差データ#11を構成する整数値の周波数成分への対応付け、および、当該周波数成分の逆DCT変換、すなわち、当該周波数成分に基づいた対象マクロブロックの画素成分への逆変換を行い、予測残差#13を生成する。
加算器21は、予測残差#13と、予測画像#18aとを加算し、復号画像#21を生成する。生成された復号画像#21は、デブロッキングフィルタ50に供給される。
デブロッキングフィルタ50は、復号画像#21におけるブロック境界、またはマクロブロック境界を介して互いに隣接する画素の画素値の差が予め定められた閾値よりも小さい場合に、復号画像#21における当該ブロック境界、またはマクロブロック境界に対してデブロッキング処理を施す。デブロッキング処理が施された画像データは、デブロック画像#50として出力される。
適応フィルタ100は、デブロック画像#50に対して、<適応フィルタ100によるフィルタリングの例>において説明したフィルタリングを施し、出力画像データ#110aをバッファメモリ14に対して出力する。ここで、デブロック画像#50は、上述した画像データ#100に対応している。
また、適応フィルタ100には、入力画像#1、および、復号画像#21、および、復号画像#21に関連付けられたサイド情報が入力される。ここで、入力画像#1は、上述した教師データ#200に対応しており、上記サイド情報は、上述したサイド情報#100aに対応している。
また、適応フィルタ100は、フィルタリングに用いたフィルタ係数の情報であるフィルタ係数情報#101を出力する。ここで、フィルタ係数情報#101は、上述したフィルタ係数情報#110bに対応している。すなわち、フィルタ係数情報#101には、固定係数ベクトルWの各成分w(K)、および、フィルタリングに用いた固定係数が含まれ
る。例えば、上述した動作例のように、適応フィルタ100が、スキップモードか否かに応じてフィルタ係数の切り替えを行う場合には、フィルタ係数情報#101には、固定係数ベクトルWの各成分w(K)、および、固定係数a_skipが含まれる。また、他の動作例についても同様である。
る。例えば、上述した動作例のように、適応フィルタ100が、スキップモードか否かに応じてフィルタ係数の切り替えを行う場合には、フィルタ係数情報#101には、固定係数ベクトルWの各成分w(K)、および、固定係数a_skipが含まれる。また、他の動作例についても同様である。
なお、本使用例における適応フィルタ100は、ほぼ、KTAにおけるALF(Adaptive Loop Filter)に対応している。すなわち、本使用例における適応フィルタ100は、整数座標の画素(以下、整数画素と呼ぶ)の画素値を入力として、整数画素の画素値を出力する。これは、式(1)において、x、y、x’、および、y’を何れも整数にとることに対応している。
なお、動画像符号化装置1はデブロッキングフィルタ50を備えない構成でも良い。この場合、適応フィルタ100は、デブロック画像#50ではなく、復号画像#21に直接フィルタリングを行う。特に、ブロック境界を含むか否か、もしくは、ブロック境界との距離を、制御変数とする場合には、適応フィルタ100は、デブロッキングフィルタと同様ブロックノイズを削除する性質を持たすことができる。このような場合、デブロッキングフィルタ50処理を省く分、処理量を削減する効果を得ることができる。さらに、デブロッキングフィルタ50として、デブロッキングフィルタに特化した適応フィルタを使用することで従来のデブロッキングフィルタよりも高い効果を得ることができる(例えば輝度の値によってぼかし効果を変えるフィルタが適用できる)。
動画像符号化装置1は、デブロッキングフィルタと適応フィルタを含む構成、デブロッキングフィルタを含まず適応フィルタのみを含む構成、デブロッキングフィルタ用適応フィルタと適応フィルタの両者を含む構成のいずれでも良い。
イントラ予測画像生成部15は、バッファメモリ14に格納された復号画像#21から局所復号画像#14a(対象マクロブロックと同じフレームの既復号領域)を抽出し、局所復号画像#14aに基づいてフレーム内予測を行い、イントラ予測画像#15を生成する。
インター予測画像生成部16は、入力画像#1上の対象ブロックに対し、既にフレーム全体が復号され、バッファメモリ14に格納された参照画像#14bを用いて、動きベクトル#17を算出し、割り付ける。算出された動きベクトル#17は、予測画像生成部16、動きベクトル冗長性削減部19に対して出力されると共に、バッファメモリ14に格納される。また、インター予測画像生成部16は、参照画像#14bに対し、ブロックごとに、動きベクトル#17に基づいた動き補償を行い、インター予測画像#16を生成する。
予測方式制御部18は、マクロブロック単位で、イントラ予測画像#15と、インター予測画像#16と、入力画像#1とを比較し、イントラ予測画像#15、または、インター予測画像#16のうち、何れか一方を選択し、予測画像#18aとして出力する。また、予測方式制御部18は、イントラ予測画像#15、または、インター予測画像#16のうち、何れを選択したのかを表す情報である予測モード#18bを出力する。予測画像#18aは減算器22に入力される。
予測モード#18bは、バッファメモリ14に格納されると共に、可変長符号化部12に入力される。
動きベクトル冗長性削減部19は、インター予測画像生成部16において上記対象ブロックに動きベクトル#17が割り付けられた後、他のブロックに割り付けられ、バッファ
メモリ14に格納された動きベクトル群#14cに基づいて予測ベクトルを算出する。また、動きベクトル冗長性削減部19は、当該予測ベクトルと、動きベクトル#17との差分をとり、差分動きベクトル#19を生成する。生成された差分動きベクトル#19は、可変長符号化部12に出力される。
メモリ14に格納された動きベクトル群#14cに基づいて予測ベクトルを算出する。また、動きベクトル冗長性削減部19は、当該予測ベクトルと、動きベクトル#17との差分をとり、差分動きベクトル#19を生成する。生成された差分動きベクトル#19は、可変長符号化部12に出力される。
可変長符号化部12は、量子化予測残差データ#11、差分動きベクトル#19、予測モード#18b、および、フィルタ係数情報#101に含まれるフィルタ係数に対して可変長符号化を行い、符号化データ#2を生成する。
減算器22は、対象マクロブロックに対し、入力画像#1と、予測画像#18aとの差分をとり、差分画像#22を出力する。
(フィルタ係数情報#101の符号化)
ここで、フィルタ係数情報#101の符号化について、図6の(a)〜(c)を参照して具体的に説明する。図6の(a)〜(c)は、それぞれ、フィルタ係数情報#101の符号化データの構成を示す図である。
ここで、フィルタ係数情報#101の符号化について、図6の(a)〜(c)を参照して具体的に説明する。図6の(a)〜(c)は、それぞれ、フィルタ係数情報#101の符号化データの構成を示す図である。
フィルタ係数情報#101は、フィルタ係数もしくはフィルタ係数の算出に必要な情報である。例えば、フィルタ係数算出式Fが式(9)の場合には、固定係数ベクトルwi、固定係数akjとなる。フィルタ係数算出式Fが式(6)の場合には、w(i)、i=1〜10、及びa_skipがフィルタ係数情報#101となる。
図6の(a)の例は、フィルタ係数情報#101の符号化データが固定フィルタパラメータから構成される。フィルタ係数情報#101の各値は、中心要素を除き0に近い値の出現確率が高いため、フィルタ係数情報#101の各値を符号と絶対値に分け、符号については1ビットの符号、絶対値については0に近いほど短い符号語となる符号を割り当て符号化する。符号化方法はこれに限らず算術符号などを適用しても良い。中心要素は1に近い値であることを利用する。
また、フィルタ係数情報#101の予測値を算出し、フィルタ係数情報#101と予測値の差(予測差分)を符号化することも適当である。予測値としては中心値が1に近く、他の要素は0に近いことを利用して中心に対応するw(5)の予測値を0.8、その周囲のw(i)の予測値を0.1とすることなどをすれば良い。予測方法はこれに限らない。
また、図3を用いて先に説明したように、フィルタ係数ベクトルは、制御変数によって変化する成分と、変化しない成分とに分けることが可能である。この特性を利用して符号化することも適当である。図6の(b)及び(c)は、この例を2つ示している。
図6の(b)の例は、(1)制御変数によって変化しない各々の成分に関するフィルタ係数と、(2)制御変数によって変化する各々の成分に関するフィルタ係数であって、制御変数の各々の値に対応するフィルタ係数と、から構成される。この例では、制御変数によって変化しない成分についてはフィルタ係数v(i)をそのまま符号化し、制御変数によって変化する成分については、制御変数v_skipが0の場合のフィルタ係数v(i)、i=4、5、6と、制御変数v_skipが1の場合のフィルタ係数v´(i)、i=4、5、6とを符号化する。
図6の(c)の例は、(1)制御変数によって変化しない各々の成分に関するフィルタ係数(基本係数と呼ぶ)と、(2)制御変数によって変化する各々の成分に関する、フィルタ係数と基本係数との差分と、を含む構成である。この例では、まず、制御変数v_skipが0の場合に対応するフィルタ係数ベクトルV、v(i)、i=1〜10を符号化
する。次いで、制御変数によって変化するフィルタ係数ベクトルの要素について、制御変数v_skipが0の場合に対応するフィルタ係数v(i)と制御変数v_skipが1の場合に対応するフィルタ係数v´(i)のと差分dv´(i)、i=4、5、6を符号化する。
する。次いで、制御変数によって変化するフィルタ係数ベクトルの要素について、制御変数v_skipが0の場合に対応するフィルタ係数v(i)と制御変数v_skipが1の場合に対応するフィルタ係数v´(i)のと差分dv´(i)、i=4、5、6を符号化する。
なお、図6の(b)及び(c)の場合においても、フィルタ係数が対称(基底が対称)であれば、同一となるフィルタ係数については一方だけを符号化すれば良い。
上記の例では、制御変数v_skipによって変化する成分が3つであるので、図6の(b)、(c)のように、フィルタ係数によって変化する成分と変化しない成分を成分毎に符号化するよりも、制御変数に関わる部分のフィルタ係数情報(ここではa_skip)のみを符号化する(a)の方が、符号化するフィルタ係数情報の数が少なくなり好適である。しかし、制御変数に対応する基底としてDCオフセット基底b_dcを用いた場合のように、制御変数によって変化する成分が1つの場合には、フィルタ係数によって変化する成分と変化しない成分とを成分毎に符号化する方法と、制御変数に関わる部分のフィルタ係数情報のみを符号化する方法とでは符号化するフィルタ係数情報の数は等しくなる。
このように、本発明に係る符号化装置(動画像符号化装置1)は、上記画像フィルタ(適応フィルタ100)を備え、復号画像に上記画像フィルタを作用させる、ことを特徴としている。
上記のように構成された本発明に係る符号化装置は、当該符号化装置によって符号化され再度復号された復号画像に対して、上記画像フィルタによるフィルタリングを行うことができるので、上記画像フィルタと同様の効果を奏する。また、上記のように構成された符号化装置は、上記単位領域ごとに定められた、上記固定フィルタ係数ベクトル(固定係数ベクトルWから算出されるフィルタ係数ベクトル)の各成分、及び、上記固定係数を用いて、上記対象領域ごとにより適切なフィルタリングを行うことができるので、上記対象領域ごとに異なる成分を有するフィルタ係数ベクトルを用いる場合に比べて、少ない数のフィルタ係数ベクトルの成分を用いてフィルタリングを行うことができる。
また、上記のように構成された符号化装置を用いることによって、上記対象領域ごとに異なる成分を有するフィルタ係数ベクトルを用いる場合に比べて、フィルタ係数ベクトルの符号量を減らすことができる。
(インター予測画像生成部への使用例)
また、本発明に係る適応フィルタ100は、動画像符号化装置1におけるインター予測画像生成部16に対して用いることもできる。
また、本発明に係る適応フィルタ100は、動画像符号化装置1におけるインター予測画像生成部16に対して用いることもできる。
図7は、適応フィルタ100を用いたインター予測画像生成部16の構成を示すブロック図である。以下では、本使用例における適用フィルタ100を適用フィルタ100’と記すことにする。
図7に示すように、インター予測画像生成部16は、予測画像生成部16a、動きベクトル推定部17、および、適応フィルタ100’を備えている。なお、本使用例における適応フィルタ100’は、ほぼ、KTAにおけるAIF(Adaptive Interpolation Filter)に対応している。
以下では、インター予測画像生成部16の各部の動作について説明する。
(ステップ101)
バッファメモリ14に格納された参照画像#14bが、適応フィルタ100’に入力される。なお、以下では、参照信号#14bを、第1の参照信号#14bと呼ぶことにする。
バッファメモリ14に格納された参照画像#14bが、適応フィルタ100’に入力される。なお、以下では、参照信号#14bを、第1の参照信号#14bと呼ぶことにする。
適応フィルタ100’は、第1の参照画像#14bに対して、予め定められたフィルタ係数に基づいてフィルタリングを行い、第1の出力画像データ#110a’を出力する。すなわち、本ステップにおける適応フィルタ100’は、予め定められたフィルタ係数に基づいてフィルタリングを行う固定フィルタとして動作する。
ここで、上記予め定められたフィルタ係数は、例えばH.264/AVCで用いられるフィルタ係数を用いればよい。また、適応フィルタ100’によるフィルタリングによって、第1の参照画像#14bに含まれる整数画素の画素値から、整数画素以下の画素精度の画像信号が補間によって生成される。これは、式(1)において、x’、および、y’を整数以外の数にとることに対応している。したがって、第1の出力画像データ100’は、整数画素の画素値、および、整数画素以下の画素精度の補間信号を含む画像データである。
(ステップ102)
動きベクトル推定部17は、第1の出力画像データ#110a’と、入力画像#1とに基づいて、第1の動きベクトル#17’を生成する。第1の動きベクトル#17’は1スライスもしくは1フレーム分行われる。
動きベクトル推定部17は、第1の出力画像データ#110a’と、入力画像#1とに基づいて、第1の動きベクトル#17’を生成する。第1の動きベクトル#17’は1スライスもしくは1フレーム分行われる。
(ステップ103)
適応フィルタ100’は、第1の参照画像#14bに対して、<適応フィルタ100によるフィルタリングの例>において説明した処理によってフィルタ係数を求める。適応フィルタ100’によるフィルタリングで生成される画像を、第2の出力画像データ#110a’’と呼ぶ。ここで、第1の参照画像#14bは、上述した画像データ#100に対応しており、第2の出力画像データ#110a’’は、上述した出力画像データ#110aに対応している。また、入力画像#1は、上述した教師データ#200として、適応フィルタ100’に入力される。
適応フィルタ100’は、第1の参照画像#14bに対して、<適応フィルタ100によるフィルタリングの例>において説明した処理によってフィルタ係数を求める。適応フィルタ100’によるフィルタリングで生成される画像を、第2の出力画像データ#110a’’と呼ぶ。ここで、第1の参照画像#14bは、上述した画像データ#100に対応しており、第2の出力画像データ#110a’’は、上述した出力画像データ#110aに対応している。また、入力画像#1は、上述した教師データ#200として、適応フィルタ100’に入力される。
適応フィルタ100’は、第1の参照画像#14bに含まれる複数の整数座標の画素(整数画素と呼ぶ)の画素値から、整数画素以下の画素精度の画像信号を補間によって生成する。これは、式(1)において、x’、および、y’を整数以外の数にとることに対応している。したがって、第2の出力画像データ#110a’は、整数画素の画素値、および、整数画素以下の画素精度の補間信号を含む画像データである。
(ステップ104)
動きベクトル推定部17は、第2の出力画像データ#110a’’と、入力画像#1とに基づいて、第2の動きベクトル#17’’を生成する。
動きベクトル推定部17は、第2の出力画像データ#110a’’と、入力画像#1とに基づいて、第2の動きベクトル#17’’を生成する。
(ステップ105)
適応フィルタ100’は、第1の参照画像#14bに対して求めたフィルタ係数によるフィルタリングを行い、第2の動きベクトル#17’’に基づいた動き補償画像を生成することにより、インター予測画像#16を生成し出力する。
適応フィルタ100’は、第1の参照画像#14bに対して求めたフィルタ係数によるフィルタリングを行い、第2の動きベクトル#17’’に基づいた動き補償画像を生成することにより、インター予測画像#16を生成し出力する。
なお、適用フィルタ100’は、上記第2の出力画像データ#110a’を生成する際に、出力画像データ#110a’に含まれる画素の位置に応じて、制御変数、および、フィルタ基底を設定するような構成としてもよい。
(動画像復号装置への使用例)
以下では、適応フィルタ100を備えている動画像復号装置2について図8を参照して説明する。
以下では、適応フィルタ100を備えている動画像復号装置2について図8を参照して説明する。
動画像復号装置2は、その一部に、H.264/AVC規格、および、KTAソフトウェアに採用されている技術を用いている動画像復号装置である。
図8は、動画像復号装置2の構成を示すブロック図である。
図8に示すように、動画像復号装置2は、可変長符号復号部23、動きベクトル復元部24、バッファメモリ25、インター予測画像生成部26、イントラ予測画像生成部27、予測方式決定部28、逆量子化・逆変換部29、加算器30、デブロッキングフィルタ50、および、適応フィルタ100を備えている。
動画像復号装置2は、符号化データ#2を受け、出力画像#3を出力する。
可変長符号復号部23は、符号化データ#2を可変長復号し、差分動きベクトル#23a、サイド情報#23b、量子化予測残差データ#23c、および、フィルタ係数情報#23dを出力する。
動きベクトル復元部24は、差分動きベクトル#23a、および、すでに復号され、バッファメモリ25に格納された動きベクトル#25aから対象パーティションの動きベクトル#24を復号する。
バッファメモリ25には、適応フィルタ100から出力される出力画像データ#110a、動きベクトル#24、および、サイド情報#23bが格納される。
インター予測画像生成部26は、動きベクトル復元部24によって復号され、バッファメモリ25を経由した動きベクトル#24、および、バッファメモリ25に格納された参照画像#25dに基づいて、インター予測画像#26を生成する。なお、動きベクトル#25cは、動きベクトル#24と同一の動きベクトルを含む。また、参照画像#25dは、後述する適用フィルタ100から出力される出力画像データ#110aに対応している。
イントラ予測画像生成部27は、バッファメモリ25に格納された、対象マクロブロックと同じ画像内の局所復号画像#25bから、イントラ予測画像#27を生成する。
予測方式決定部28は、サイド情報#23bに含まれる予測モード情報に基づいて、イントラ予測画像#27、または、インター予測画像#26のうち、何れか一方を選択し、予測画像#28として出力する。
逆量子化・逆変換部29は、量子化予測残差データ#23cに対し、逆量子化、および、逆DCT変換を行い、予測残差#29を出力する。
加算器30は、予測残差#29、および、予測画像#28を加算し、復号画像#3として出力する。また、出力された復号画像#3は、デブロッキングフィルタ50に供給される。
デブロッキングフィルタ50は、復号画像#3におけるブロック境界、またはマクロブ
ロック境界を介して互いに隣接する画素の画素値の差が予め定められた閾値よりも小さい場合に、復号画像#3における当該ブロック境界、またはマクロブロック境界に対してデブロッキング処理を施す。デブロッキング処理が施された画像データは、デブロック画像#50として出力される。
ロック境界を介して互いに隣接する画素の画素値の差が予め定められた閾値よりも小さい場合に、復号画像#3における当該ブロック境界、またはマクロブロック境界に対してデブロッキング処理を施す。デブロッキング処理が施された画像データは、デブロック画像#50として出力される。
適応フィルタ100は、デブロック画像#50に対して<適応フィルタ100によるフィルタリングの例>において説明したフィルタリングを施す。ここで、デブロック画像#50は、上述した画像データ#100に対応している。
また、本使用例における適応フィルタ100は、符号化データ#2から復号されたフィルタ係数情報#23dに基づいてフィルタ係数を算出し、当該フィルタ係数を用いたフィルタリングを行う。
すなわち、本使用例における適応フィルタ100は、<適応フィルタ100によるフィルタリングの例>において説明した統計的手法によってフィルタ係数を決定する代わりに、符号化データ#2から復号されたフィルタ係数情報#23dに基づいてフィルタ係数を算出し、当該フィルタ係数を用いたフィルタリングを行う。適応フィルタ100におけるフィルタ係数の切り替えについては、<適応フィルタ100によるフィルタリングの例>において説明した通りである。
適応フィルタ100は、デブロック画像#50に対しフィルタリングを施すことによって生成した出力画像データ#110aをバッファメモリ25に対して出力する。
また、適応フィルタ100には、サイド情報#23bが入力される。ここで、サイド情報#23bは、対象ブロックが双方向予測されたブロックであるか、または、単方向予測されたブロックであるかの情報、対象マクロブロックにスキップモードが適用されているか否かの情報、対象マクロブロックがイントラ予測されたマクロブロックであるか、インター予測されたマクロブロックであるかの予測モード情報、対象ブロックに関連付けられた量子化パラメータQPを含むものとする。また、サイド情報#23bは、上述したサイド情報#100aに対応している。
なお、本使用例における適応フィルタ100は、ほぼ、KTAにおけるALF(Adaptive Loop Filter)に対応している。すなわち、本使用例における適応フィルタ100は、整数画素の画素値を入力として、整数画素の画素値を出力する。これは、式(1)において、x、y、x’、および、y’を何れも整数にとることに対応している。
なお、動画像復号装置2はデブロッキングフィルタ50を備えない構成でも良い。この場合、適応フィルタ100は、デブロック画像#50ではなく、復号画像#3に直接フィルタリングを行う。動画像符号化装置1と同様、処理量削減の効果を得ることができる。
動画像復号装置2は、また、動画像符号化装置1と同様、デブロッキングフィルタと適応フィルタを含む構成、デブロッキングフィルタを含まず適応フィルタのみを含む構成、デブロッキングフィルタ用適応フィルタと適応フィルタの両者を含む構成のいずれでも良い。
<フィルタ係数の復号と導出>
<図6の(a)の例に代表される場合>
固定フィルタパラメータもしくはその予測差分データが符号化されている場合には、可変長符号復号部23は、フィルタ係数情報#23dとして、固定フィルタパラメータを復
号する。図6の(a)ではw(1)〜w(M×N+1)とa_skipを復号する。
<図6の(a)の例に代表される場合>
固定フィルタパラメータもしくはその予測差分データが符号化されている場合には、可変長符号復号部23は、フィルタ係数情報#23dとして、固定フィルタパラメータを復
号する。図6の(a)ではw(1)〜w(M×N+1)とa_skipを復号する。
適応フィルタ100は、式(8)、式(9)などで一般形が示されるフィルタ算出関数Fに固定フィルタパラメータと制御変数を入力し、フィルタ係数を導出する。ここでは、式(6)に復号されたw(1)〜w(M×N+1)とa_skipを入力し、フィルタ係数ベクトルVを導出する。
<図6の(b)の例に代表される場合>
フィルタ係数もしくはその予測差分データが符号化されている場合には、可変長符号復号部23はフィルタ係数情報#23dとして、フィルタ係数を復号する。なお、図6の(b)の例では、制御変数によって変化しない成分については1つのフィルタ係数、制御変数によって変化する成分は、制御変数の値毎に複数のフィルタ係数が符号化されている。可変長符号復号部23は、制御変数によって変化するかどうかによって処理を分岐することでフィルタ係数を導出することができる。図6の(b)の例では、制御変数によって変化しないフィルタ係数ベクトルの要素、v(i)、i=1、2、3、7、8、9、10をまず復号する。次いで、制御変数によって変化するフィルタ係数ベクトルの要素について、制御変数v_skipが0の場合に対応するフィルタ係数v(i)、i=4、5、6と、制御変数v_skipが1の場合に対応するフィルタ係数v´(i)、i=4、5、6を復号する。さらに、制御変数によって変化しないフィルタ係数ベクトルの要素についてはv´(i)=v(i)とする。
フィルタ係数もしくはその予測差分データが符号化されている場合には、可変長符号復号部23はフィルタ係数情報#23dとして、フィルタ係数を復号する。なお、図6の(b)の例では、制御変数によって変化しない成分については1つのフィルタ係数、制御変数によって変化する成分は、制御変数の値毎に複数のフィルタ係数が符号化されている。可変長符号復号部23は、制御変数によって変化するかどうかによって処理を分岐することでフィルタ係数を導出することができる。図6の(b)の例では、制御変数によって変化しないフィルタ係数ベクトルの要素、v(i)、i=1、2、3、7、8、9、10をまず復号する。次いで、制御変数によって変化するフィルタ係数ベクトルの要素について、制御変数v_skipが0の場合に対応するフィルタ係数v(i)、i=4、5、6と、制御変数v_skipが1の場合に対応するフィルタ係数v´(i)、i=4、5、6を復号する。さらに、制御変数によって変化しないフィルタ係数ベクトルの要素についてはv´(i)=v(i)とする。
<図6の(c)の例に代表される場合>
基本のフィルタ係数および基本のフィルタ係数との差分、もしくは、それらの予測差分データが符号化されている。可変長符号復号部23はフィルタ係数情報#23dとして、基本のフィルタ係数を復号し、その後、基本のフィルタ係数との差分を復号する。図6の(c)の例では、基本のフィルタ係数としてv(i)、i=1〜10を復号する。これらは、制御変数v_skipが0の場合に対応するフィルタ係数ベクトルVとなる。次いで、制御変数によって変化するフィルタ係数ベクトルの要素について、基本の差分との差分であるdV(i)、i=4、5、6を復号する。制御変数v_skipが1の場合に対応するフィルタ係数v´(i)は、制御変数によって変化しない成分の場合は、基本のフィルタ係数v(i)を用いて、以下により導出する。
基本のフィルタ係数および基本のフィルタ係数との差分、もしくは、それらの予測差分データが符号化されている。可変長符号復号部23はフィルタ係数情報#23dとして、基本のフィルタ係数を復号し、その後、基本のフィルタ係数との差分を復号する。図6の(c)の例では、基本のフィルタ係数としてv(i)、i=1〜10を復号する。これらは、制御変数v_skipが0の場合に対応するフィルタ係数ベクトルVとなる。次いで、制御変数によって変化するフィルタ係数ベクトルの要素について、基本の差分との差分であるdV(i)、i=4、5、6を復号する。制御変数v_skipが1の場合に対応するフィルタ係数v´(i)は、制御変数によって変化しない成分の場合は、基本のフィルタ係数v(i)を用いて、以下により導出する。
v´(i)=v(i)、i=1、2、3、7、8、9、10
制御変数によって変化する成分の場合は、基本のフィルタ係数v(i)と、基本のフィルタ係数との差分dV(i)を用いて、以下により導出する。
制御変数によって変化する成分の場合は、基本のフィルタ係数v(i)と、基本のフィルタ係数との差分dV(i)を用いて、以下により導出する。
v´(i)=v(i)+dV(i)、i=4、5、6
このように、制御変数によって変化するかどうかで成分毎に分岐を行うことでフィルタ係数を導出することができる。
このように、制御変数によって変化するかどうかで成分毎に分岐を行うことでフィルタ係数を導出することができる。
<適応フィルタ100の動作>
動画像復号装置2においても、適応フィルタ100は図3、図4で既に説明した通りの動作を行う。フィルタ係数ベクトルを分岐により導出する場合には、図3に示すフローになり、フィルタ係数ベクトルを式(9)のような和により導出する場合には、図4に示すフローになる。なお、フィルタ係数ベクトルを和により導出する場合にも予備ステップを用いて、図3のフローで処理しても良いし、予めフィルタ係数の成分の位置と制御変数の値によって定まるテーブルを導出し、テーブル引きにより処理しても構わない。
動画像復号装置2においても、適応フィルタ100は図3、図4で既に説明した通りの動作を行う。フィルタ係数ベクトルを分岐により導出する場合には、図3に示すフローになり、フィルタ係数ベクトルを式(9)のような和により導出する場合には、図4に示すフローになる。なお、フィルタ係数ベクトルを和により導出する場合にも予備ステップを用いて、図3のフローで処理しても良いし、予めフィルタ係数の成分の位置と制御変数の値によって定まるテーブルを導出し、テーブル引きにより処理しても構わない。
<予測値を用いた復号>
上記では、復号するフィルタ係数情報#23dとして、フィルタ係数、もしくは、フィ
ルタ係数の差分、もしくは、フィルタ係数の増加度を復号していたが、それらの予測値を導出し、予測値との差分を復号する構成としても良い。
上記では、復号するフィルタ係数情報#23dとして、フィルタ係数、もしくは、フィ
ルタ係数の差分、もしくは、フィルタ係数の増加度を復号していたが、それらの予測値を導出し、予測値との差分を復号する構成としても良い。
このように、本発明に係る復号装置(動画像復号装置2)は、上記画像フィルタ(適応フィルタ100)を備え、復号画像に上記画像フィルタを作用させる、ことを特徴としている。
上記のように構成された本発明に係る復号装置は、上記画像フィルタと同様の効果を奏する。また、上記のように構成された復号装置は、上記単位領域ごとに定められた、上記固定フィルタ係数ベクトル(固定係数ベクトルWから算出されるフィルタ係数ベクトル)の各成分、及び、上記固定係数を用いて、上記対象領域(フィルタ対象領域T)ごとにより適切なフィルタリングを行うことができるので、上記対象領域ごとに異なる成分を有するフィルタ係数ベクトルを用いる場合に比べて、少ない数のフィルタ係数ベクトルの成分を用いてフィルタリングを行うことができる。
また、上記のように構成された復号装置を用いることによって、上記対象領域ごとに異なる成分を有するフィルタ係数ベクトルを用いる場合に比べて、フィルタ係数ベクトルの符号量を減らすことができる。
(インター予測画像生成部への使用例)
また、本発明に係る適応フィルタ100は、動画像復号装置2におけるインター予測画像生成部26に対して用いることもできる。
また、本発明に係る適応フィルタ100は、動画像復号装置2におけるインター予測画像生成部26に対して用いることもできる。
図9は、適応フィルタ100を用いたインター予測画像生成部26の構成を示すブロック図である。以下では、本使用例における適用フィルタ100を適用フィルタ100’’と記すことにする。
図9に示すように、インター予測画像生成部26は、予測画像生成部26a、および、適応フィルタ100’’を備えている。
以下では、インター予測画像生成部26の各部の動作について説明する。
適応フィルタ100’’は、バッファメモリ25に格納された参照画像#25dに対して、フィルタリングを施す。ここで、参照画像#25dは、上述した画像データ#100に対応している。
また、本使用例における適応フィルタ100’’は、符号化データ#2から復号されたフィルタ係数情報#23dに基づいたフィルタリングを行う。
すなわち、本使用例における適応フィルタ100’’は、<適応フィルタ100によるフィルタリングの例>において説明した統計的手法によってフィルタ係数を決定する代わりに、符号化データ#2から復号されたフィルタ係数情報#23dに基づきフィルタリングを行う。適応フィルタ100におけるフィルタ係数の切り替えについては、<適応フィルタ100によるフィルタリングの例>において説明した通りである。
適応フィルタ100’’は、参照画像#25dに対しフィルタリングを施すことによって生成した出力画像データ#110a’’’を予測画像生成部26aに対して出力する。
また、適応フィルタ100’’には、サイド情報#23bが入力される。ここで、サイド情報#23bは、対象ブロックが双方向予測されたブロックであるか、または、単方向
予測されたブロックであるかの情報、対象マクロブロックにスキップモードが適用されているか否かの情報、対象マクロブロックがイントラ予測されたマクロブロックであるか、インター予測されたマクロブロックであるかの予測モード情報、対象ブロックに関連付けられた量子化パラメータQPを含むものとする。また、サイド情報#23bは、上述したサイド情報#100aに対応している。
予測されたブロックであるかの情報、対象マクロブロックにスキップモードが適用されているか否かの情報、対象マクロブロックがイントラ予測されたマクロブロックであるか、インター予測されたマクロブロックであるかの予測モード情報、対象ブロックに関連付けられた量子化パラメータQPを含むものとする。また、サイド情報#23bは、上述したサイド情報#100aに対応している。
なお、本使用例における適応フィルタ100’’は、ほぼ、KTAにおけるAIF(Adaptive Interpolation Filter)に対応している。すなわち、本使用例における適応フィルタ100’’は、整数画素の画素値を入力として、整数画素以下の画素精度の画素値を出力する。これは、式(1)において、x、および、yを整数にとり、x’、および、y’を整数、または、小数にとることに対応している。
予測画像生成部26aは、出力画像データ#110a’’’に対し、動きベクトル#25cを用いた動き補償を行うことによって、インター予測画像#26を生成し出力する。
(符号化データ#2の構成)
以下では、動画像符号化装置1を用いて生成した符号化データ#2の構成について、図10および図11を参照して説明する。
以下では、動画像符号化装置1を用いて生成した符号化データ#2の構成について、図10および図11を参照して説明する。
図10は、動画像符号化装置1を用いて生成し、動画像復号装置2に参照される符号化データ#2のスライスごとのビットストリーム#BSを示す図である。図10に示すように、ビットストリーム#BSは、フィルタ係数情報FC、マクロブロック情報MB1〜MBNを含んでいる。
図11は、フィルタ係数情報FCの構成の一例を示す図である。
フィルタ係数情報FCは、適応フィルタ100によって生成されたフィルタ係数情報#23dを含む情報であり、既に図6を用いて説明したフィルタ係数情報#101と同様である。なお、動画像復号装置2は、フィルタ係数情報#23dの他、使用する制御変数の種類を示す情報を復号してもよい。例えば、0から255までの8ビットの情報を復号し、制御変数に平坦度を用いる場合には1、エッジの角度を用いる場合には2、輝度を用いる場合には4、色を用いる場合には8、エッジを含むかどうかを用いる場合には16、予測方向を用いる場合には32、スキップ/非スキップを用いる場合には64、インター/イントラを用いる場合には128の各ビットが立っているかどうかで、使用する制御変数の種類を判定してもよい。なお、このような符号化データを符号化することにより複数の制御変数を自由な組み合わせで選択することが可能である。選択できる制御変数は、本明細書で説明したいずれの制御変数でもよいし、説明しない制御変数でもよい。
また、制御変数に用いる基底の種類を復号してもよい。例えば、0から255までの8ビットの情報を復号し、横方向エッジ強調基底を1、縦方向エッジ強調基底を2、標準ラプラシアン基底を4、第1の斜め方向ラプラシアン基底を8、第2の斜め方向ラプラシアン基底を16、DCオフセット基底を32、・・・とし、各値のビットが立っているかどうかで、使用する基底の種類を判定してもよい。また、動画像復号装置2は、基底の種類の復号を、制御変数毎に復号することにより、複数の制御変数各々で使用する基底の種類を選択可能である。図11では2つの制御変数#1と制御変数#2が使用される場合に対し、各々の基底を指定する例が示されている。なお、選択できる基底は、本明細書で説明したいずれの基底でもよいし、説明しない基底でもよい。
また、動画像復号装置2は、フィルタのタップ数に関する情報、例えば、3×3フィルタの場合に0、5×5フィルタの場合に1、7×7フィルタの場合に2、9×9フィルタ
の場合に3などを復号しても構わない。このようにすればフィルタ効果に応じて、フィルタ係数ベクトルの数を変更することが可能になり符号化効率が向上する。なお、動画像復号装置2は、復号したフィルタのタップ数に応じて基底のタップ数を変更しても構わないし、フィルタのタップ数に応じて基底のタップ数は変更しなくても構わない。この場合、フィルタのタップ数が5×5であっても基底は3×3などとなることも考えられる。フィルタのタップ数が基底のタップ数よりも大きい場合には、基底の範囲外の位置のフィルタ係数情報#23dの値は、フィルタ係数ベクトルの値そのものとして復号する。この場合、基底の範囲外の位置のフィルタ係数ベクトルの値は、制御変数により変化しない成分となる。また、フィルタのタップ数が基底のタップ数よりも小さい場合には、フィルタ係数ベクトルの値自体は、制御変数によって変化する成分として、フィルタのタップ数の範囲外においても定まるが、フィルタリングにおいてはフィルタのタップ数分のフィルタ係数ベクトルのみが使用される。
の場合に3などを復号しても構わない。このようにすればフィルタ効果に応じて、フィルタ係数ベクトルの数を変更することが可能になり符号化効率が向上する。なお、動画像復号装置2は、復号したフィルタのタップ数に応じて基底のタップ数を変更しても構わないし、フィルタのタップ数に応じて基底のタップ数は変更しなくても構わない。この場合、フィルタのタップ数が5×5であっても基底は3×3などとなることも考えられる。フィルタのタップ数が基底のタップ数よりも大きい場合には、基底の範囲外の位置のフィルタ係数情報#23dの値は、フィルタ係数ベクトルの値そのものとして復号する。この場合、基底の範囲外の位置のフィルタ係数ベクトルの値は、制御変数により変化しない成分となる。また、フィルタのタップ数が基底のタップ数よりも小さい場合には、フィルタ係数ベクトルの値自体は、制御変数によって変化する成分として、フィルタのタップ数の範囲外においても定まるが、フィルタリングにおいてはフィルタのタップ数分のフィルタ係数ベクトルのみが使用される。
また、動画像復号装置2は、フィルタの符号化データの形式を表す情報、例えば、図6の(a)の形式の場合に0、図6の(b)の形式の場合に1、図6の(c)の形式の場合に2を復号しても構わない。フィルタ係数ベクトルを求めるアルゴリズム上、図6(a)の形式でフィルタ係数情報#23dを求めることが困難な符号化装置においても、制御変数に応じて使用するフィルタ係数ベクトルを変更することによる符号化効率向上が可能になる。
また、動画像復号装置2は、フィルタ係数情報のビット深度を指定する情報を復号してもよい。例えば、ビット深度が8、10、12ビットであるかを復号する。ビット深度は、フィルタ係数情報の量子化を行う粗さと等価である。
また図11には図示しないが、動画像復号装置2は、制御変数の値の範囲、例えば0、1であるか、0、1、2であるかなどを復号してもよい。また、画像データ#100、および、画像データ#100のサイド情報#100aから制御変数を決定する場合に用いる閾値を示す情報、例えば、輝度や平坦度から制御変数の値を判定するための閾値情報を復号してもよい。また、フィルタリング単位を復号してもよい。フィルタリング単位は、画素、ブロック、複数のブロックのいずれでもよいし、他の単位でもよい。また、フィルタリングを行う単位領域中に、フィルタリングを行わない領域を設ける方法を用い、フィルタ領域の有無を特定する情報を含んでいてもよい。
これらの情報は、フィルタ係数情報制御情報と呼ぶ。
このように、制御変数や基底、タップ数などのフィルタ係数情報制御情報を復号することにより、シーケンスやピクチャ、スライスに応じた最適なフィルタ係数ベクトルの切り替えが可能になり、符号化効率が向上する。また、符号化装置の演算能力に合わせて、適当なフィルタ係数ベクトルの切り替えが可能であるので、符号化装置の自由度が向上する。例えば、符号化装置の能力が大きければ、制御変数の数、もしくは、基底の数を増加させることにより、符号化効率を高めることが可能である。逆に符号化効率が低い場合には、制御変数や基底の数を最小限にすることや、使用しないことも可能になる。また、例えば平坦度を高速に算出可能なソフトウェア、ハードウェアを搭載している場合には、制御変数に平坦度を用いるなど、搭載するソフトウェア、ハードウェアの特性に応じて使用する制御変数や基底を変更することも可能になる。このような自由度は符号化装置だけではなく、復号装置においても便益がある。すなわち、復号装置の能力が小さいと仮定される場合には、使用する制御変数の数や基底の数を最小限として符号化することができる。
また、フィルタ係数情報制御情報として、いずれの情報を含むかどうかを示す情報(フィルタ係数情報形式制御情報)を、符号化データから復号しても構わない。例えば、制御
変数情報は含むが、タップ情報は含まない構成としてもよい。なお、フィルタ係数情報14b、フィルタ係数情報制御情報、フィルタ係数情報形式制御情報は、符号化データ上別々の位置で符号化してもよい。例えば、フィルタ係数情報制御情報はスライスヘッダで符号化するが、フィルタ係数情報形式制御情報はピクチャヘッダ、フィルタ係数情報形式制御情報は、シーケンスヘッダで符号化してもよい。またH.264/AVCにおけるピクチャパラメータセット、シーケンスパラメータセットに相当する符号化データで符号化してもよい。
変数情報は含むが、タップ情報は含まない構成としてもよい。なお、フィルタ係数情報14b、フィルタ係数情報制御情報、フィルタ係数情報形式制御情報は、符号化データ上別々の位置で符号化してもよい。例えば、フィルタ係数情報制御情報はスライスヘッダで符号化するが、フィルタ係数情報形式制御情報はピクチャヘッダ、フィルタ係数情報形式制御情報は、シーケンスヘッダで符号化してもよい。またH.264/AVCにおけるピクチャパラメータセット、シーケンスパラメータセットに相当する符号化データで符号化してもよい。
マクロブロック情報MB1〜MBNは、当該スライスに含まれるマクロブロックに関する情報であり、マクロブロックの予測モード#18b、ブロック分割情報などが含まれている。ここで、Nは、当該スライスに含まれるマクロブロックの数を表している。
このように、本発明に係る符号化データのデータ構造は、上記画像フィルタを備え、復号画像に上記画像フィルタを作用させる復号装置が参照する符号化データのデータ構造であって、上記固定係数ベクトルもしくは固定係数ベクトルから算出される固定フィルタ係数ベクトルの各成分、及び、上記固定係数、もしくは、それらの予測差分データを含んでいる。
上記のように構成された符号化データのデータ構造によれば、当該符号化データに基づいて画像の復号を行う復号装置において、当該符号化データに含まれる上記固定係数ベクトルの各成分、及び、上記固定係数を用いることによって、上記対象領域ごとに異なるフィルタ係数を含む場合に比べて、少ない数のフィルタ係数を用いつつ、上記対象領域ごとにより適切なフィルタリングを行うことができる。
(まとめ)
以上のように、本発明に係る画像フィルタは、入力画像における対象領域に属する各画素の画素値とフィルタ係数ベクトルとから、出力画像における対象画素の画素値を算出する画像フィルタであって、上記入力画像における上記対象領域の位置、及び、上記出力画像における上記対象画素の位置の少なくとも何れかに応じて上記フィルタ係数ベクトルを変更するフィルタ係数ベクトル変更手段を備えている、ことを特徴としている。
以上のように、本発明に係る画像フィルタは、入力画像における対象領域に属する各画素の画素値とフィルタ係数ベクトルとから、出力画像における対象画素の画素値を算出する画像フィルタであって、上記入力画像における上記対象領域の位置、及び、上記出力画像における上記対象画素の位置の少なくとも何れかに応じて上記フィルタ係数ベクトルを変更するフィルタ係数ベクトル変更手段を備えている、ことを特徴としている。
上記の構成によれば、上記入力画像における上記対象領域の位置、及び、上記出力画像における上記対象画素の位置の少なくとも何れかに応じて上記フィルタ係数ベクトルを変更するフィルタ係数ベクトル変更手段を備えているため、上記対象領域の位置、及び、上記出力画像における上記対象画素の位置の少なくとも何れかに応じて、上記対象領域ごとに適切なフィルタリングを行うことができるという効果を奏する。
また、本発明に係る画像フィルタにおいては、上記フィルタ係数ベクトルが、上記出力画像を構成する単位領域毎に予め定められた固定フィルタ係数ベクトルと、上記フィルタ係数ベクトル変更手段によって、上記入力画像における上記対象領域の位置、及び、上記出力画像における上記対象画素の位置の少なくとも何れかに応じて変更される可変フィルタ係数ベクトルとの和に分解可能である、ことが好ましい。
上記の構成によれば、上記フィルタ係数ベクトルは、上記出力画像を構成する単位領域毎に予め定められた固定フィルタ係数ベクトルと上記可変フィルタ係数ベクトルとの和に分解可能であり、上記フィルタ係数ベクトル変更手段は、上記可変フィルタ係数ベクトルを、上記入力画像における上記対象領域の位置、及び、上記出力画像における上記対象画素の位置の少なくとも何れかに応じて変更することができる。
したがって、上記の構成によれば、単位領域ごとに予め定められたフィルタ係数を用い
つつ、各対象領域に適応した(各対象領域における画像の特性に応じた)フィルタリングを行うことができるという更なる効果を奏する。
つつ、各対象領域に適応した(各対象領域における画像の特性に応じた)フィルタリングを行うことができるという更なる効果を奏する。
なお、本発明をH.264に適用する場合、上記単位領域は、スライスであってもよいし、マクロブロックであってもよし、ブロックあってもよい。
また、上記固定フィルタ係数ベクトル、および、上記可変フィルタ係数ベクトルは、オフセット成分を含むように定義されていてもよい。
また、本発明に係る画像フィルタにおいては、上記固定フィルタ係数ベクトルは、上記出力画像を構成する単位領域毎に予め定められた固定係数ベクトルと、基底と、に分解可能である、ことが好ましい。
また、本発明に係る画像フィルタにおいては、上記可変フィルタ係数ベクトルは、更に、上記出力画像を構成する単位領域毎に定められた固定係数と、上記フィルタ係数ベクトル変更手段によって、上記入力画像における上記対象領域の位置、又は、上記出力画像における上記対象画素の位置に応じて変更される可変係数と、予め定められた固定ベクトルと、に分解可能である、ことが好ましい。
上記の構成によれば、上記可変フィルタ係数ベクトルは、更に、上記出力画像を構成する単位領域毎に定められた固定係数と、上記可変係数と、上記固定ベクトルと、に分解可能である。また、上記固定ベクトルは、予め定められており、上記フィルタ係数ベクトル変更手段は、上記入力画像における上記対象領域の位置、又は、上記出力画像における上記対象画素の位置に応じて、上記可変係数を変更することができるので、上記対象領域における画像の特性に応じて、より適切なフィルタリングを行うことができるという更なる効果を奏する。
上記の構成によれば、上記出力画像を構成する単位領域毎に定められた上記固定係数ベクトル(もしくは固定フィルタ係数ベクトル)及び上記固定係数とを上記画像フィルタに与えることによって、各対象領域に適応した所望のタイプのフィルタリングを行うことができるという更なる効果を奏する。
例えば、上記単位領域における上記対象領域の数が10個であり、上記固定係数ベクトル(もしくは固定フィルタ係数ベクトル)の成分の数がP個であり、上記固定係数の数が1個であるとすると、上記の構成によれば、合計P+1個の係数データを上記画像フィルタに与えることによって10個の対象領域に適応した所望のタイプのフィルタリングを行うことができる。一方で、上記10個の対象領域ごとに上記固定係数ベクトルを個別に算出したとすると、10×P個の係数データが必要になる。したがって、上記の構成によれば、各対象領域に対して固定係数ベクトル(もしくはフィルタ係数ベクトル)を算出する場合に比べて、少ない数の係数データによって、各対象領域に適応したタイプのフィルタリングを行うことができる。
また、本発明に係る画像フィルタにおいては、上記可変係数は、上記フィルタ係数ベクトル変更手段によって、上記対象領域上の画像の平坦度に応じて変更され、上記固定ベクトルは、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を有するフィルタ基底である、ことが好ましい。
上記の構成によれば、上記固定ベクトルは、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を有するフィルタ基底であり、上記フィルタ係数変更手段は、上記可変係数を、上記対象領域の位置によって定まる上記対象領域上の画像の平坦度に応じて変
更することができる。したがって、上記の構成によれば、上記対象領域上の画像の平坦度に応じて、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を変化させることによって、より適切なフィルタリングを行うことができるという更なる効果を奏する。
更することができる。したがって、上記の構成によれば、上記対象領域上の画像の平坦度に応じて、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を変化させることによって、より適切なフィルタリングを行うことができるという更なる効果を奏する。
また、上記エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を有するフィルタ基底は、上記固定係数の正負に応じて、エッジを強調する効果に代えて、エッジをぼかす効果を有する(以下同様)。したがって、上記の構成によれば、上記対象領域上の画像の平坦度に応じて、エッジぼかし効果を変化させることによって、より適切なフィルタリングを行うことができるという更なる効果も奏する。
また、本発明に係る画像フィルタにおいては、上記可変係数は、上記フィルタ係数ベクトル変更手段によって、上記対象領域上の画像のエッジの角度に応じて変更され、上記固定ベクトルは、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を有するフィルタ基底である、ことが好ましい。
上記の構成によれば、上記固定ベクトルは、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を有するフィルタ基底であり、上記フィルタ係数変更手段は、上記可変係数を、上記対象領域の位置によって定まる上記対象領域上の画像のエッジの角度に応じて変更することができる。したがって、上記の構成によれば、上記可変係数を、上記対象領域上の画像のエッジの角度に応じて、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を変化させることによって、より適切なフィルタリングを行うことができるという更なる効果を奏する。
また、本発明に係る画像フィルタにおいては、上記可変係数は、上記フィルタ係数ベクトル変更手段によって、上記対象領域上の画像の輝度に応じて変更され、上記固定ベクトルは、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を有するフィルタ基底である、ことが好ましい。
上記の構成によれば、上記固定ベクトルは、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を有するフィルタ基底であり、上記フィルタ係数変更手段は、上記可変係数を、上記対象領域の位置によって定まる上記対象領域上の画像の輝度に応じて変更することができる。したがって、上記の構成によれば、上記対象領域上の画像の輝度に応じて、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を変化させることによって、より適切なフィルタリングを行うことができるという更なる効果を奏する。
また、本発明に係る画像フィルタにおいては、上記可変係数は、上記フィルタ係数ベクトル変更手段によって、上記対象領域上の画像の色に応じて変更され、上記固定ベクトルは、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を有するフィルタ基底である、ことが好ましい。
上記の構成によれば、上記固定ベクトルは、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を有するフィルタ基底であり、上記フィルタ係数変更手段は、上記可変係数を、上記対象領域の位置によって定まる上記対象領域上の画像の色に応じて変更することができる。したがって、上記の構成によれば、上記対象領域上の画像の色に応じて、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を変化させることによって、より適切なフィルタリングを行うことができるという更なる効果を奏する。
また、本発明に係る画像フィルタにおいては、上記可変係数は、上記フィルタ係数ベクトル変更手段によって、上記対象領域がブロック境界を含むか否かに応じて変更され、上記固定ベクトルは、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を有す
るフィルタ基底である、ことが好ましい。
るフィルタ基底である、ことが好ましい。
上記の構成によれば、上記固定ベクトルは、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を有するフィルタ基底であり、上記フィルタ係数変更手段は、上記可変係数を、上記対象領域がブロック境界を含むか否かに応じて変更することができる。したがって、上記の構成によれば、上記対象領域がブロック境界を含むか否かに応じて、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を変化させることによって、より適切なフィルタリングを行うことができるという更なる効果を奏する。
また、本発明に係る画像フィルタにおいては、上記可変係数は、上記フィルタ係数ベクトル変更手段によって、上記対象領域を含むブロックが単方向予測されたブロックであるかまたは双方向予測されたブロックであるかに応じて変更され、上記固定ベクトルは、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を有するフィルタ基底である、ことが好ましい。
上記の構成によれば、上記固定ベクトルは、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を有するフィルタ基底であり、上記フィルタ係数変更手段は、上記可変係数を、上記対象領域を含むブロックが単方向予測されたブロックであるかまたは双方向予測されたブロックであるかに応じて変更することができる。したがって、上記の構成によれば、上記対象領域を含むブロックが単方向予測されたブロックであるかまたは双方向予測されたブロックであるかに応じて、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を変化させることによって、より適切なフィルタリングを行うことができるという更なる効果を奏する。
また、本発明に係る画像フィルタにおいては、上記可変係数は、上記フィルタ係数ベクトル変更手段によって、上記対象領域を含むブロックがスキップモードが適用されたブロックであるか否かに応じて変更され、上記固定ベクトルは、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を有するフィルタ基底である、ことが好ましい。
上記の構成によれば、上記固定ベクトルは、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を有するフィルタ基底であり、上記フィルタ係数変更手段は、上記可変係数を、上記対象領域を含むブロックがスキップモードが適用されたブロックであるか否かに応じて変更することができる。したがって、上記の構成によれば、上記対象領域を含むブロックがスキップモードが適用されたブロックであるか否かに応じて、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を変化させることによって、より適切なフィルタリングを行うことができるという更なる効果を奏する。
また、本発明に係る画像フィルタにおいては、上記可変係数は、上記フィルタ係数ベクトル変更手段によって、上記対象領域を含むブロックがインター予測されたブロックであるかまたはイントラ予測されたブロックであるかに応じて変更され、上記固定ベクトルは、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を有するフィルタ基底である、ことが好ましい。
上記の構成によれば、上記固定ベクトルは、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を有するフィルタ基底であり、上記フィルタ係数変更手段は、上記可変係数を、上記対象領域を含むブロックがインター予測されたブロックであるかまたはイントラ予測されたブロックであるかに応じて変更することができる。したがって、上記の構成によれば、上記対象領域を含むブロックがインター予測されたブロックであるかまたはイントラ予測されたブロックであるかに応じて、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を変化させることによって、より適切なフィルタリングを行うこ
とができるという更なる効果を奏する。
とができるという更なる効果を奏する。
また、本発明に係る画像フィルタにおいては、上記固定フィルタ係数ベクトルの各成分、及び、上記固定係数は、特定の画像と、該特定の画像を符号化/復号化して得られる復号画像を入力画像としたときの出力画像との相違を最小化するように定められている、ことが好ましい。
上記の構成によれば、上記固定フィルタ係数ベクトルの各成分、及び、上記固定係数は、特定の画像と、該特定の画像を符号化/復号化して得られる復号画像を入力画像としたときの出力画像との相違を最小化するように定められているため、上記単位領域全体に対して最適化された固定フィルタ係数ベクトルの各成分、及び、上記固定係数を用いて算出される可変係数ベクトルを用いてフィルタリングを行うことができるという更なる効果を奏する。
また、本発明に係る画像フィルタにおいては、上記固定フィルタ係数ベクトルと可変係数ベクトルとが互いに直交している、ことが好ましい。
上記の構成によれば、上記固定フィルタ係数ベクトルと上記可変係数ベクトルとが、互いに直交しているため、上記固定フィルタ係数ベクトルと上記可変係数ベクトルとが、互いに直交していない場合に比べて、固定フィルタ係数ベクトルの自由度を減らすことができる。したがって、上記の構成によれば、より少ない数のフィルタ係数によって、上記対象領域ごとに適切なフィルタリングを行うことができるという効果を奏する。
また、本発明に係る画像フィルタにおいては、上記固定フィルタ係数ベクトルと上記可変係数ベクトルとが互いに直交していなくてもよい。
また、本発明に係る復号装置は、上記画像フィルタを備え、復号画像に上記画像フィルタを作用させる、ことを特徴としている。
上記のように構成された本発明に係る復号装置は、上記画像フィルタと同様の効果を奏する。また、上記のように構成された復号装置は、上記単位領域ごとに定められた、上記固定係数ベクトル(もしくは固定係数ベクトル)の各成分、及び、上記固定係数を用いて、上記対象領域ごとにより適切なフィルタリングを行うことができるので、上記対象領域ごとに異なる成分を有する固定係数ベクトル(もしくは固定係数ベクトル)を用いる場合に比べて、少ない数の係数データを用いてフィルタ係数ベクトルを導出できるという効果を奏する。
また、上記のように構成された復号装置を用いることによって、上記対象領域ごとに異なる成分を有する固定係数ベクトル(もしくは固定フィルタ係数ベクトル)を用いる場合に比べて、係数データ(フィルタ係数ベクトル)の符号量を減らすことができるという効果を奏する。
また、本発明に係る符号化装置は、上記画像フィルタを備え、復号画像に上記画像フィルタを作用させる、ことを特徴としている。
上記のように構成された本発明に係る符号化装置は、当該符号化装置によって符号化され再度復号された復号画像に対して、上記画像フィルタによるフィルタリングを行うことができるので、上記画像フィルタと同様の効果を奏する。また、上記のように構成された符号化装置は、上記単位領域ごとに定められた、上記固定係数ベクトルの各成分、及び、上記固定係数を用いて、上記対象領域ごとにより適切なフィルタリングを行うことができ
るので、上記対象領域ごとに異なる成分を有する固定係数ベクトル(もしくは固定フィルタ係数ベクトル)を用いる場合に比べて、少ない数の係数データを用いてフィルタ係数ベクトルを導出できるという効果を奏する。
るので、上記対象領域ごとに異なる成分を有する固定係数ベクトル(もしくは固定フィルタ係数ベクトル)を用いる場合に比べて、少ない数の係数データを用いてフィルタ係数ベクトルを導出できるという効果を奏する。
また、上記のように構成された符号化装置を用いることによって、上記対象領域ごとに異なる成分を有する固定係数ベクトル(固定フィルタ係数ベクトル)を用いる場合に比べて、係数データ(フィルタ係数ベクトル)の符号量を減らすことができるという効果を奏する。
また、本発明に係る符号化データのデータ構造は、上記画像フィルタを備え、復号画像に上記画像フィルタを作用させる復号装置が参照する符号化データのデータ構造であって、上記固定フィルタ係数ベクトルの各成分もしくは上記固定フィルタ係数ベクトルを表現する固定係数ベクトル、及び、上記固定係数、もしくは、上記固定フィルタ係数ベクトル、上記固定係数ベクトル、上記固定係数の予測差分データを含んでいる、ことを特徴としている。
上記のように構成された符号化データのデータ構造によれば、当該符号化データに基づいて画像の復号を行う復号装置において、当該符号化データから復号される上記固定フィルタ係数ベクトルの各成分、及び、上記固定係数を用いることによって、上記対象領域ごとに異なるフィルタ係数を含む場合に比べて、少ない数のフィルタ係数を用いつつ、上記対象領域ごとにより適切なフィルタリングを行うことができるという効果を奏する。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
本発明は、画像データにフィルタリングを行う画像フィルタに好適に用いることができる。また、本発明は、符号化された画像データを復号する放送受信端末や、画像データを符号化して記録媒体に記録したり、記録媒体に記録された画像データを復号したりするHDDレコーダなどに好適に用いることができる。
100 適応フィルタ(画像フィルタ)
110 フィルタ部
120 制御変数決定部(フィルタ係数ベクトル変更手段)
1 動画像符号化装置(符号化装置)
2 動画像復号装置(復号装置)
16、26 インター予測画像生成部
R フィルタ参照領域
T フィルタ対象領域
110 フィルタ部
120 制御変数決定部(フィルタ係数ベクトル変更手段)
1 動画像符号化装置(符号化装置)
2 動画像復号装置(復号装置)
16、26 インター予測画像生成部
R フィルタ参照領域
T フィルタ対象領域
Claims (4)
- 動画像を復号する復号装置であって、
符号化された上記動画像を可変長復号し、量子化予測残差データ及びフィルタ係数情報を出力する可変長符号復号部と、
バッファメモリに格納された画像に基づいて予測画像を生成する予測画像生成部と、
上記量子化予測残差データに対して逆量子化及び逆変換を行い、予測残差を出力する逆量子化・逆変換部と、
上記予測画像及び上記予測残差を加算し、復号画像を出力する加算器と、
上記復号画像に対して上記フィルタ係数情報を用いてフィルタリングを行う適応フィルタと、を備え、
上記フィルタ係数情報は、上記復号画像の単位領域毎に固定の固定係数及び固定フィルタ係数ベクトルを含み、
上記適応フィルタは、フィルタ対象領域の位置に応じて該フィルタ対象領域の輝度を算出し、該フィルタ対象領域上の画像の輝度に応じて制御変数を決定し、上記固定係数、上記制御変数及び予め定められた固定ベクトルから可変フィルタ係数ベクトルを算出し、上記復号画像の単位領域毎に定まる固定フィルタ係数ベクトルと上記フィルタ対象領域毎に変更可能な上記可変フィルタ係数ベクトルの加算によりフィルタ係数ベクトルを算出する制御変数決定部と、
上記復号画像に対して上記フィルタ係数ベクトルを用いてフィルタリングを行うフィルタ部と、を含むことを特徴とする復号装置。 - 上記フィルタ部は、上記フィルタ係数ベクトルに含まれるフィルタ係数と上記復号画像の画素値の積に上記フィルタ係数ベクトルに含まれるオフセットを加算することでフィルタリングを行うことを特徴とする請求項1に記載の復号装置。
- 上記固定ベクトルは、エッジ強調効果およびぼかし効果のうち少なくとも1つの効果を有するフィルタ基底であることを特徴とする請求項1又は2に記載の復号装置。
- 上記復号画像に対してデブロッキング処理を施すデブロッキングフィルタをさらに備え、
上記適応フィルタは、デブロッキング処理が施された復号画像に対して上記フィルタ係数を用いてフィルタリングを行うことを特徴とする請求項1から3の何れか1つに記載の復号装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009288448 | 2009-12-18 | ||
| JP2009288448 | 2009-12-18 |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017109226A Division JP6335365B2 (ja) | 2009-12-18 | 2017-06-01 | 復号装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2018142978A true JP2018142978A (ja) | 2018-09-13 |
Family
ID=44167122
Family Applications (5)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2011546040A Pending JPWO2011074357A1 (ja) | 2009-12-18 | 2010-11-10 | 画像フィルタ、符号化装置、復号装置、および、データ構造 |
| JP2014122316A Expired - Fee Related JP5834112B2 (ja) | 2009-12-18 | 2014-06-13 | 復号装置 |
| JP2015215633A Expired - Fee Related JP6159376B2 (ja) | 2009-12-18 | 2015-11-02 | 画像フィルタ及び復号装置 |
| JP2017109226A Expired - Fee Related JP6335365B2 (ja) | 2009-12-18 | 2017-06-01 | 復号装置 |
| JP2018081383A Ceased JP2018142978A (ja) | 2009-12-18 | 2018-04-20 | 復号装置 |
Family Applications Before (4)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2011546040A Pending JPWO2011074357A1 (ja) | 2009-12-18 | 2010-11-10 | 画像フィルタ、符号化装置、復号装置、および、データ構造 |
| JP2014122316A Expired - Fee Related JP5834112B2 (ja) | 2009-12-18 | 2014-06-13 | 復号装置 |
| JP2015215633A Expired - Fee Related JP6159376B2 (ja) | 2009-12-18 | 2015-11-02 | 画像フィルタ及び復号装置 |
| JP2017109226A Expired - Fee Related JP6335365B2 (ja) | 2009-12-18 | 2017-06-01 | 復号装置 |
Country Status (9)
| Country | Link |
|---|---|
| US (3) | US20120251012A1 (ja) |
| EP (2) | EP3301932A1 (ja) |
| JP (5) | JPWO2011074357A1 (ja) |
| KR (5) | KR101849891B1 (ja) |
| CN (1) | CN107071480A (ja) |
| AU (1) | AU2010331511B2 (ja) |
| BR (1) | BR112012014685A2 (ja) |
| CA (2) | CA2784291A1 (ja) |
| WO (1) | WO2011074357A1 (ja) |
Families Citing this family (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPWO2011086836A1 (ja) * | 2010-01-12 | 2013-05-16 | シャープ株式会社 | 符号化装置、復号装置、および、データ構造 |
| KR101881869B1 (ko) | 2011-06-23 | 2018-07-26 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 오프셋 복호 장치, 오프셋 부호화 장치, 화상 필터 장치 및 데이터 구조 |
| JP5789172B2 (ja) * | 2011-10-20 | 2015-10-07 | 日本放送協会 | 画像処理装置及びプログラム |
| WO2013155899A1 (en) * | 2012-04-16 | 2013-10-24 | Mediatek Inc. | Method and apparatus for sample adaptive offset coding with separate sign and magnitude |
| JP6055391B2 (ja) * | 2012-11-05 | 2016-12-27 | 株式会社デンソーアイティーラボラトリ | 関連性判定装置、関連性判定プログラム、及び関連性判定方法 |
| JP5856580B2 (ja) * | 2013-03-14 | 2016-02-10 | 日本電信電話株式会社 | 信号処理装置、及び信号処理方法 |
| US9906790B2 (en) * | 2014-03-14 | 2018-02-27 | Qualcomm Incorporated | Deblock filtering using pixel distance |
| GB2545601A (en) * | 2014-09-03 | 2017-06-21 | Aira Tech Corp | Media streaming methods, apparatus and systems |
| US9716871B2 (en) * | 2014-09-30 | 2017-07-25 | Apple Inc. | YUV signal generation for high dynamic range video content |
| CN115278232B (zh) | 2015-11-11 | 2024-12-10 | 三星电子株式会社 | 对视频进行解码的方法和对视频进行编码的方法 |
| CN116708781A (zh) * | 2016-07-12 | 2023-09-05 | 韩国电子通信研究院 | 图像编码/解码方法以及用于该方法的记录介质 |
| TWI604731B (zh) * | 2016-08-05 | 2017-11-01 | 瑞昱半導體股份有限公司 | 影像濾波方法及其影像濾波裝置 |
| CN106846270B (zh) * | 2017-01-05 | 2020-02-14 | 浙江大华技术股份有限公司 | 一种图像边缘增强方法及装置 |
| EP4336840A3 (en) * | 2017-05-31 | 2024-05-29 | InterDigital Madison Patent Holdings, SAS | A method and a device for picture encoding and decoding |
| WO2019107182A1 (ja) * | 2017-12-01 | 2019-06-06 | ソニー株式会社 | 符号化装置、符号化方法、復号装置、及び、復号方法 |
| KR102028908B1 (ko) | 2018-03-15 | 2019-11-08 | 써멀마스터 주식회사 | 전기히터 내장 구조의 열교환기 |
| WO2019189346A1 (ja) | 2018-03-30 | 2019-10-03 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
| JP7332753B2 (ja) * | 2018-05-14 | 2023-08-23 | シャープ株式会社 | 画像フィルタ装置 |
| JP7073186B2 (ja) * | 2018-05-14 | 2022-05-23 | シャープ株式会社 | 画像フィルタ装置 |
| US12058314B2 (en) * | 2021-04-30 | 2024-08-06 | Tencent America LLC | Block-wise content-adaptive online training in neural image compression with post filtering |
| CN120047349B (zh) * | 2025-04-23 | 2025-08-08 | 湖南芒果数智艺术科技有限责任公司 | 一种文物数字模型的降噪方法及相关装置 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007111292A1 (ja) * | 2006-03-27 | 2007-10-04 | Matsushita Electric Industrial Co., Ltd. | 画像符号化装置および画像復号化装置 |
| WO2008085109A1 (en) * | 2007-01-09 | 2008-07-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Adaptive filter representation |
| WO2009133938A1 (ja) * | 2008-04-30 | 2009-11-05 | 株式会社 東芝 | 動画像符号化及び復号装置 |
Family Cites Families (32)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3288811B2 (ja) * | 1993-07-26 | 2002-06-04 | 日本無線株式会社 | ビデオコーデックにおける後処理フィルタ制御方式及び後処理フィルタ制御回路 |
| JPH08163561A (ja) * | 1994-12-06 | 1996-06-21 | Matsushita Electric Ind Co Ltd | 画像データ圧縮装置 |
| JPH0998417A (ja) * | 1995-09-29 | 1997-04-08 | Matsushita Electric Ind Co Ltd | 画像通信装置及び画像通信方法 |
| KR100244290B1 (ko) | 1997-09-09 | 2000-02-01 | 구자홍 | 저속 전송에서의 동영상을 위한 디블록킹 필터링 방법 |
| EP1065881B1 (en) * | 1998-03-05 | 2008-07-09 | Matsushita Electric Industrial Co., Ltd. | Image coding method, image coding / decoding method, image coder, or image recording/reproducing apparatus |
| JP2001275110A (ja) * | 2000-03-24 | 2001-10-05 | Matsushita Electric Ind Co Ltd | 動的なループ及びポストフィルタリングのための方法及び装置 |
| US7054500B1 (en) * | 2000-12-06 | 2006-05-30 | Realnetworks, Inc. | Video compression and decompression system with postfilter to filter coding artifacts |
| JP2007143178A (ja) * | 2001-11-29 | 2007-06-07 | Matsushita Electric Ind Co Ltd | 符号化歪除去方法 |
| DK2938071T3 (en) | 2001-11-29 | 2018-01-22 | Godo Kaisha Ip Bridge 1 | METHOD OF REMOVING CODING PREVENTION |
| MXPA03006640A (es) | 2001-11-29 | 2003-10-15 | Matsushita Electric Industrial Co Ltd | Metodo para la remocion de la distorsion de la codificacion, metodo codificador de video, metodo descodificador de video y aparato y programa para los mismos. |
| KR100945546B1 (ko) * | 2002-01-14 | 2010-03-08 | 노키아 코포레이션 | 동적 필터 부호화 |
| US8503530B2 (en) | 2004-05-27 | 2013-08-06 | Zhourong Miao | Temporal classified filtering for video compression |
| US20060007239A1 (en) * | 2004-07-06 | 2006-01-12 | Harrison Charles F | Color correction system |
| US7773158B2 (en) * | 2005-10-12 | 2010-08-10 | Panasonic Corporation | Visual processing device, display device, and integrated circuit |
| JP4784386B2 (ja) * | 2006-05-01 | 2011-10-05 | 富士ゼロックス株式会社 | 復号化装置、逆量子化方法及びプログラム |
| EP2061233B1 (en) * | 2006-09-14 | 2013-06-26 | Mitsubishi Electric Corporation | Image processing device and image processing method |
| JP4785690B2 (ja) * | 2006-09-19 | 2011-10-05 | キヤノン株式会社 | 画像読取装置及び画像読取装置の制御方法 |
| JP4872862B2 (ja) * | 2006-09-28 | 2012-02-08 | ソニー株式会社 | 画像データ演算装置および方法、プログラム、並びに記録媒体 |
| KR100879536B1 (ko) * | 2006-10-30 | 2009-01-22 | 삼성전자주식회사 | 영상의 화질 개선을 위한 방법 및 시스템 |
| KR100922275B1 (ko) | 2006-12-15 | 2009-10-15 | 경희대학교 산학협력단 | 경계 필터링 강도의 결정 방법 및 이를 이용한 디블록킹필터링 방법과 장치 |
| EP1944974A1 (en) * | 2007-01-09 | 2008-07-16 | Matsushita Electric Industrial Co., Ltd. | Position dependent post-filter hints |
| US8509316B2 (en) * | 2007-01-09 | 2013-08-13 | Core Wireless Licensing, S.a.r.l. | Adaptive interpolation filters for video coding |
| JP4978402B2 (ja) * | 2007-09-28 | 2012-07-18 | 富士通セミコンダクター株式会社 | 画像処理フィルタ、画像処理フィルタの画像処理方法及び画像処理フィルタを備える画像処理装置の画像処理回路 |
| BRPI0822364A2 (pt) * | 2008-03-07 | 2015-09-15 | Toshiba Kk | método e aparelho de codificação/decodificação de vídeo |
| US8195001B2 (en) * | 2008-04-09 | 2012-06-05 | Intel Corporation | In-loop adaptive wiener filter for video coding and decoding |
| JPWO2009133844A1 (ja) * | 2008-04-30 | 2011-09-01 | 株式会社東芝 | エッジを考慮したフィルタリング機能を備えた動画像符号化/復号化方法及び装置 |
| JP5701874B2 (ja) * | 2009-07-21 | 2015-04-15 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | ビデオ画像の検出およびエンハンスメントのための方法およびシステム |
| US8154632B2 (en) * | 2009-08-24 | 2012-04-10 | Lifesize Communications, Inc. | Detection of defective pixels in an image sensor |
| JP5321439B2 (ja) * | 2009-12-15 | 2013-10-23 | 株式会社Jvcケンウッド | 画像符号化装置、画像復号化装置、画像符号化方法、及び、画像復号化方法 |
| US9237355B2 (en) * | 2010-02-19 | 2016-01-12 | Qualcomm Incorporated | Adaptive motion resolution for video coding |
| EP2592831A2 (en) * | 2010-07-09 | 2013-05-15 | Samsung Electronics Co., Ltd | Method and apparatus for encoding video using adjustable loop filtering, and method and apparatus for decoding video using adjustable loop filtering |
| ES2953336T3 (es) * | 2012-09-26 | 2023-11-10 | Sun Patent Trust | Método de decodificación de imagen, dispositivo de decodificación de imagen y medio legible por ordenador |
-
2010
- 2010-11-10 CA CA2784291A patent/CA2784291A1/en not_active Abandoned
- 2010-11-10 JP JP2011546040A patent/JPWO2011074357A1/ja active Pending
- 2010-11-10 KR KR1020177010031A patent/KR101849891B1/ko not_active Expired - Fee Related
- 2010-11-10 CN CN201611019063.7A patent/CN107071480A/zh active Pending
- 2010-11-10 KR KR1020127018360A patent/KR20120105509A/ko not_active Ceased
- 2010-11-10 KR KR1020167022206A patent/KR101729903B1/ko not_active Expired - Fee Related
- 2010-11-10 EP EP17201827.7A patent/EP3301932A1/en not_active Withdrawn
- 2010-11-10 EP EP10837386.1A patent/EP2515541A4/en not_active Withdrawn
- 2010-11-10 AU AU2010331511A patent/AU2010331511B2/en not_active Ceased
- 2010-11-10 KR KR1020187009830A patent/KR20180038076A/ko not_active Abandoned
- 2010-11-10 US US13/515,957 patent/US20120251012A1/en not_active Abandoned
- 2010-11-10 KR KR1020197007933A patent/KR102060586B1/ko active Active
- 2010-11-10 BR BR112012014685A patent/BR112012014685A2/pt not_active Application Discontinuation
- 2010-11-10 WO PCT/JP2010/070053 patent/WO2011074357A1/ja not_active Ceased
- 2010-11-10 CA CA3038111A patent/CA3038111C/en active Active
-
2014
- 2014-06-13 JP JP2014122316A patent/JP5834112B2/ja not_active Expired - Fee Related
-
2015
- 2015-04-27 US US14/697,400 patent/US9514519B2/en active Active
- 2015-11-02 JP JP2015215633A patent/JP6159376B2/ja not_active Expired - Fee Related
-
2016
- 2016-10-25 US US15/334,048 patent/US9641865B2/en active Active
-
2017
- 2017-06-01 JP JP2017109226A patent/JP6335365B2/ja not_active Expired - Fee Related
-
2018
- 2018-04-20 JP JP2018081383A patent/JP2018142978A/ja not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007111292A1 (ja) * | 2006-03-27 | 2007-10-04 | Matsushita Electric Industrial Co., Ltd. | 画像符号化装置および画像復号化装置 |
| WO2008085109A1 (en) * | 2007-01-09 | 2008-07-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Adaptive filter representation |
| WO2009133938A1 (ja) * | 2008-04-30 | 2009-11-05 | 株式会社 東芝 | 動画像符号化及び復号装置 |
Non-Patent Citations (3)
| Title |
|---|
| TAKASHI WATANABE ET AL.: "In-loop filter using block-based filter control for video coding", 16TH IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING (ICIP 2009), JPN6011000774, October 2009 (2009-10-01), pages 1013 - 1016, ISSN: 0003989434 * |
| TAKESHI CHUJOH ET AL.: "Block-based Adaptive Loop Filter", ITU - TELECOMMUNICATIONS STANDARDIZATION SECTOR STUDY GROUP 16 QUESTION 6 VIDEO CODING EXPERTS GROUP, vol. VCEG-AI18, JPN6018007588, July 2008 (2008-07-01), pages 1 - 6, ISSN: 0003989432 * |
| TAKESHI CHUJOH ET AL.: "Specification and experimental results of Quadtree-based Adaptive Loop Filter", ITU - TELECOMMUNICATIONS STANDARDIZATION SECTOR STUDY GROUP 16 QUESTION 6 VIDEO CODING EXPERTS GROUP, vol. VCEG-AK22_r1, JPN6018007589, April 2009 (2009-04-01), pages 1 - 11, ISSN: 0003989433 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN102656888A (zh) | 2012-09-05 |
| KR101729903B1 (ko) | 2017-04-24 |
| JP5834112B2 (ja) | 2015-12-16 |
| AU2010331511A1 (en) | 2012-07-26 |
| JP2014209760A (ja) | 2014-11-06 |
| EP2515541A1 (en) | 2012-10-24 |
| EP3301932A1 (en) | 2018-04-04 |
| JP6335365B2 (ja) | 2018-05-30 |
| KR20180038076A (ko) | 2018-04-13 |
| US20120251012A1 (en) | 2012-10-04 |
| CN107071480A (zh) | 2017-08-18 |
| CA3038111A1 (en) | 2011-06-23 |
| JP2017200198A (ja) | 2017-11-02 |
| KR20190031601A (ko) | 2019-03-26 |
| US9514519B2 (en) | 2016-12-06 |
| US20170041636A1 (en) | 2017-02-09 |
| JP6159376B2 (ja) | 2017-07-05 |
| AU2010331511B2 (en) | 2015-01-15 |
| US9641865B2 (en) | 2017-05-02 |
| BR112012014685A2 (pt) | 2016-04-05 |
| CA3038111C (en) | 2022-08-09 |
| WO2011074357A1 (ja) | 2011-06-23 |
| CA2784291A1 (en) | 2011-06-23 |
| KR101849891B1 (ko) | 2018-04-17 |
| US20150242999A1 (en) | 2015-08-27 |
| JPWO2011074357A1 (ja) | 2013-04-25 |
| JP2016036169A (ja) | 2016-03-17 |
| EP2515541A4 (en) | 2015-08-26 |
| KR20160102085A (ko) | 2016-08-26 |
| KR102060586B1 (ko) | 2019-12-30 |
| KR20120105509A (ko) | 2012-09-25 |
| KR20170045361A (ko) | 2017-04-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6335365B2 (ja) | 復号装置 | |
| JP5625124B2 (ja) | 平面表現を用いる拡張されたイントラ予測符号化 | |
| WO2011086836A1 (ja) | 符号化装置、復号装置、および、データ構造 | |
| CN114339223A (zh) | 解码方法、装置、设备及机器可读存储介质 | |
| WO2020059341A1 (ja) | 画像復号装置、画像符号化装置、画像処理システム及びプログラム | |
| JP7460384B2 (ja) | 予測装置、符号化装置、復号装置、及びプログラム | |
| WO2011105231A1 (ja) | フィルタ係数符号化装置、フィルタ係数復号装置、動画像符号化装置、動画像復号装置、および、データ構造 | |
| JP7483725B2 (ja) | 符号化装置、復号装置、及びプログラム | |
| JP2021052249A (ja) | 符号化装置、復号装置、及びプログラム | |
| CN102656888B (zh) | 图像滤波器、编码装置、解码装置以及数据结构 | |
| HK40064089A (en) | Decoding method, apparatus, device, and machine-readable storage medium | |
| JP5272940B2 (ja) | 画像符号化装置 | |
| CN114830645A (zh) | 图像编码方法和图像解码方法 | |
| CN114830643A (zh) | 图像编码方法和图像解码方法 | |
| CN114521325A (zh) | 图像编码方法和图像解码方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180420 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190226 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20190305 |
|
| A045 | Written measure of dismissal of application [lapsed due to lack of payment] |
Free format text: JAPANESE INTERMEDIATE CODE: A045 Effective date: 20190730 |