JP2007043224A - 動画像復号化装置、デブロッキング/デリンギング処理回路 - Google Patents
動画像復号化装置、デブロッキング/デリンギング処理回路 Download PDFInfo
- Publication number
- JP2007043224A JP2007043224A JP2005221727A JP2005221727A JP2007043224A JP 2007043224 A JP2007043224 A JP 2007043224A JP 2005221727 A JP2005221727 A JP 2005221727A JP 2005221727 A JP2005221727 A JP 2005221727A JP 2007043224 A JP2007043224 A JP 2007043224A
- Authority
- JP
- Japan
- Prior art keywords
- deblocking
- block
- deringing
- pixel data
- processing circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】 少ないハードウェア資源でデブロッキング処理とデリンギング処理とを実行できる動画像復号化装置を提供する。
【解決手段】 本発明による動画像復号化装置は、圧縮画像データから復号画像データを生成する復号化器(2〜7)と、前記復号画像データに対してデブロッキング処理及びデリンギング処理を行うデブロッキング/デリンギング演算部(9)とを具備している。前記デブロッキング/デリンギング演算部(9)は、前記デブロッキング処理を構成する複数の処理の一部と、前記デリンギング処理を構成する複数の処理の一部を実行する共通処理回路を備える。
【選択図】 図6
【解決手段】 本発明による動画像復号化装置は、圧縮画像データから復号画像データを生成する復号化器(2〜7)と、前記復号画像データに対してデブロッキング処理及びデリンギング処理を行うデブロッキング/デリンギング演算部(9)とを具備している。前記デブロッキング/デリンギング演算部(9)は、前記デブロッキング処理を構成する複数の処理の一部と、前記デリンギング処理を構成する複数の処理の一部を実行する共通処理回路を備える。
【選択図】 図6
Description
本発明は、動画像復号化装置に関し、特に、デブロッキング処理とデリンギング処理とを行う動画像の復号化技術に関する。
離散コサイン変換(Discrete Cosine Translation)及び量子化(quantization)を使用する動画像符号化及び復号化技術、例えば、MPEG4(Moving Picture Expert Group 4)における一つの問題は、符号化/復号化の過程においてブロックノイズ及びリンギングノイズが発生することである。ブロックノイズとは、DCT(discrete cosine transformation)及び逆DCTの処理の単位となるブロック(最も典型的には、8×8画素)の境界付近に生じるノイズであり、主として、DCT及び逆DCTがブロック毎に行われることに起因している。リンギングノイズは、量子化及び逆量子化の処理によって画像のエッジの近傍で発生するノイズであり、画像のエッジを不明瞭にする。
ブロックノイズ及びリンギングノイズを軽減するために、動画像の復号化では、デブロッキング処理及びデリンギング処理が行われることがある。MPEG4において行われる、デブロッキング処理及びデリンギング処理は、ISO/IEC 14496−2:2001(E)Annex F.3に規定されている。デブロッキング処理及びデリンギング処理を行う回路を備えた動画像復号化装置は、例えば特開2003−18600号公報(特許文献1)に開示されている。また、MPEG4にデブロッキング処理を行うためのフィルタの構成が、特開2002−64820号公報(特許文献2)に開示されている。以下では、MPEG4において行われるデブロッキング処理及びデリンギング処理について詳細に説明する。
(1)デブロッキング処理
MPEG4に規定されているデブロッキング処理には、DCオフセットモードとDCデフォルトモードの2種類のモードがある。DCオフセットモードとDCデフォルトモードのいずれが採用されるかは、ブロックの境界近傍に位置する画素1010〜1019の画素値v0〜v9(図1参照)から決定される。
MPEG4に規定されているデブロッキング処理には、DCオフセットモードとDCデフォルトモードの2種類のモードがある。DCオフセットモードとDCデフォルトモードのいずれが採用されるかは、ブロックの境界近傍に位置する画素1010〜1019の画素値v0〜v9(図1参照)から決定される。
図2を参照しながら具体的に説明すると、デブロッキング処理では、まず、画素値v0〜v9から下記式(1−1):
eq_cnt=φ(v0−v1)+φ(v1−v2)+φ(v2−v3)
+φ(v3−v4)+φ(v4−v5)+φ(v5−v6)
+φ(v6−v7)+φ(v7−v8)+φ(v8−v9),・・・(1−1)
で定義される値eq_cntが算出される(ステップS01)。ここでφ(γ)は、下記式によって定義される関数である:
φ(γ)=1, (|r|≦THR1の場合)
φ(γ)=0. (それ以外の場合) ・・・(1−2)
ここでTHR1は、所定の閾値である。
eq_cnt=φ(v0−v1)+φ(v1−v2)+φ(v2−v3)
+φ(v3−v4)+φ(v4−v5)+φ(v5−v6)
+φ(v6−v7)+φ(v7−v8)+φ(v8−v9),・・・(1−1)
で定義される値eq_cntが算出される(ステップS01)。ここでφ(γ)は、下記式によって定義される関数である:
φ(γ)=1, (|r|≦THR1の場合)
φ(γ)=0. (それ以外の場合) ・・・(1−2)
ここでTHR1は、所定の閾値である。
値eq_cntに応じて、DCオフセットモードとDCデフォルトモードとの一方が選択される(ステップS02)。値eq_cntが所定の閾値THR2以上である場合には、DCオフセットモードが選択され、そうでないときにはDCデフォルトモードが選択される。
DCオフセットモードが選択された場合、画素1011〜1018に関してフィルタ処理が行われ、デブロッキング処理後の画素値v1’〜v8’が算出される。より具体的には、まず、画素値v1〜v8の最大値max及び最小値minが算出される(ステップS03)。更に、それらの差分絶対値|max−min|が量子化パラメータQPの2倍と比較される(ステップS04)。差分絶対値|max−min|が2・QPよりも大きい場合には、下記式(1−3)(1−4)で表されるフィルタ処理が行われる(ステップS05):
ここでnは、1以上8以下の整数であり、vn’は、デブロッキング処理後の画素101nの画素値である。
式(1−3)、(1−4)を、より具体的な形式に展開すると、下記式で表される:
ここでpminは、|v1−v0|がQPよりも小さいときv0、そうでない場合v1に一致する値である。一方、pmaxは、|v8−v9|がQPよりも小さいときv9、そうでない場合v8に一致する値である。
絶対値|max−min|が2・QP以下である場合には、フィルタ処理は行われない。画素101nの画素値v1〜v8が、そのまま、DCオフセットモードでのデブロッキング処理後の画素値v1’〜v8’として決定される。
一方、DCデフォルトモードによるデブロッキング処理では、画素1014、1015に関してフィルタ処理が行われ、デブロッキング処理後の画素値v4’,v5’が算出される。
より具体的には、まず、周波数成分a3,0,a3,1,a3,2が、近似DCTカーネル[2 −5 5 −2]とピクセルベクトルとの内積からフィルタ処理によって算出される(ステップS06)。即ち、
a3,0=([2 −5 5 −2]・[v3 v4 v5 v6]T)//8,
a3,1=([2 −5 5 −2]・[v1 v2 v3 v4]T)//8,・・・(1−6)
a3,2=([2 −5 5 −2]・[v5 v6 v7 v8]T)//8.
a3,0=([2 −5 5 −2]・[v3 v4 v5 v6]T)//8,
a3,1=([2 −5 5 −2]・[v1 v2 v3 v4]T)//8,・・・(1−6)
a3,2=([2 −5 5 −2]・[v5 v6 v7 v8]T)//8.
更に、クリッピング処理が行われる(ステップS08)。クリッピング処理では、下記式:
v4’=v4−d,
v4’=v5+d, ・・・(1−7)
d=CLIP(5(a3,0’−a3,0)//8,0,(v4−v5)/2),
により、DCデフォルトモードでのデブロッキング処理後の画素値v4’,v5’が算出される。ここでCLIP(x,p,q)は、xをpとqの間の値に制限する関数であり、a3,0’は、下記式で求められる値である:
a3,0’=SIGN(a3,0)・MIN(|a3,0|,|a3,1|,|a3,2|).
・・・(1−8)
v4’=v4−d,
v4’=v5+d, ・・・(1−7)
d=CLIP(5(a3,0’−a3,0)//8,0,(v4−v5)/2),
により、DCデフォルトモードでのデブロッキング処理後の画素値v4’,v5’が算出される。ここでCLIP(x,p,q)は、xをpとqの間の値に制限する関数であり、a3,0’は、下記式で求められる値である:
a3,0’=SIGN(a3,0)・MIN(|a3,0|,|a3,1|,|a3,2|).
・・・(1−8)
(2)デリンギング処理
デリンギング処理は、図3に示されているように、4つの処理で構成されている。まず、ISO/IEC 14496−2:2001(E)Annex FのセクションF.3.2.1に規定されているように、各ブロックに対して閾値thrを決定する閾値決定処理(threshold determination)が行われる(ステップS09)。
デリンギング処理は、図3に示されているように、4つの処理で構成されている。まず、ISO/IEC 14496−2:2001(E)Annex FのセクションF.3.2.1に規定されているように、各ブロックに対して閾値thrを決定する閾値決定処理(threshold determination)が行われる(ステップS09)。
続いて、セクションF.3.2.2に規定されているように、指数取得(index acquisition)が各画素について行われる(ステップS10)。より具体的には、あるブロックのある座標(h,v)の画素値をrec(h,v)として、対応するバイナリ指数(binary index)bin(h,v)は、下記の式によって表される:
bin(h,v)=1, (rec(h,v)≧thrが成立する場合)
bin(h,v)=0. (そうでない場合)
ここでthrは所定の閾値である。
bin(h,v)=1, (rec(h,v)≧thrが成立する場合)
bin(h,v)=0. (そうでない場合)
ここでthrは所定の閾値である。
更に、セクションF.3.2.3に規定されているように、適応フィルタリング(adaptive filtering)が行われる(ステップS11)。一のブロック(8×8画素)の適応フィルタリングは、当該ブロック及びその境界に接する画素からなる10×10画素の画素値及び、ステップS10で決定されたバイナリ指数が使用される。図4は、10×10画素のバイナリ指数の例を示している。
適応フィルタリングは、3×3のウィンドウ内のバイナリ指数が同一である場合、即ち、全てが”0”であるか、全てが”1”であるかの場合に行われる。(i,j)を3×3のウィンドウ内の座標であるとして(i,j=−1、0、1)、使用されるフィルタ係数coef(i,j)は、図5に示されているとおりである。ここで、中央の画素の定数、即ちcoef(0,0)は、フィルタリングの対象の画素に対応している。座標(h,v)の画素に対応するフィルタ出力flt’(h,v)は、下記式によって得られる。
更に、式(1−9)(即ち、式(1−10))によって得られたフィルタ出力flt’(h,v)に対してクリッピングが行われて、座標(h,v)に位置する画素のデリンギング処理後の画素値flt(h,v)が算出される(ステップS12)。画素値flt(h,v)の算出方法は、下記の3つに場合に応じて異なる:
(a)flt’(h,v)−rec(h,v)>max_diffである場合
flt(h,v)=rec(h,v)+max_diff,
(b)flt’(h,v)−rec(h,v)<−max_diffである場合
flt(h,v)=rec(h,v)−max_diff,
(c)いずれでもない場合、
flt(h,v)=flt’(h,v).
特開2003−18600号公報
特開2002−64820号公報
(a)flt’(h,v)−rec(h,v)>max_diffである場合
flt(h,v)=rec(h,v)+max_diff,
(b)flt’(h,v)−rec(h,v)<−max_diffである場合
flt(h,v)=rec(h,v)−max_diff,
(c)いずれでもない場合、
flt(h,v)=flt’(h,v).
上述されたデブロッキング処理及びデリンギング処理を行う復号化装置の一つの問題は、これらの処理に多くのハードウェア資源を必要とすることである。例えば、特許文献1に記載の動画像復号化装置では、デブロッキング処理を行う回路(特許文献1ではローパスフィルタとして記載)と、デリンギング処理を行う回路(特許文献1では輪郭強調フィルタとして記載)とが別々に設けられている。しかし、発明者の検討によれば、このような構成は、デブロッキング処理とデリンギング処理とを行うために必要なハードウェア資源を無駄に増加させている。
上記の課題を解決するために、本発明は、以下に述べられる手段を採用する。その手段を構成する技術的事項の記述には、[特許請求の範囲]の記載と[発明を実施するための最良の形態]の記載との対応関係を明らかにするために、[発明を実施するための最良の形態]で使用される番号・符号が付加されている。但し、付加された番号・符号は、[特許請求の範囲]に記載されている発明の技術的範囲を限定的に解釈するために用いてはならない。
本発明による動画像復号化装置は、圧縮画像データから復号画像データを生成する復号化器(2−7)と、前記復号画像データに対してデブロッキング処理及びデリンギング処理を行うデブロッキング/デリンギング演算部(9)とを具備している。前記デブロッキング/デリンギング演算部(9)は、前記デブロッキング処理を構成する複数の処理の一部と、前記デリンギング処理を構成する複数の処理の一部を実行する共通処理回路(14)を備える。
このように構成された動画像復号化装置では、デブロッキング処理とデリンギング処に含まれている類似の処理を共通処理回路(14)で共通に処理することが出来、少ないハードウェア資源でデブロッキング処理及びデリンギング処理を実行できる。
本発明によれば、少ないハードウェア資源でデブロッキング処理とデリンギング処理とを実行できる動画像復号化装置が提供される。
(動画像復号化装置の構成)
図6は、本発明の一実施形態に係る動画像復号化装置1の構成を示すブロック図である。動画像復号化装置1は、MPEG4に準拠した圧縮データを復号化する装置であり、具体的には、可変長復号化器2と、逆DC/AC予測器3と、逆量子化器4と、逆DCT演算器5と、動きベクトル補償演算器6と、加算器7と、内部メモリ8と、デブロッキング/デリンギング演算部9と、外部メモリ10とを備えている。動きベクトル補償演算器6と、内部メモリ8と、デブロッキング/デリンギング演算部9と、外部メモリ10とは、バス11を介して相互に接続されている。
図6は、本発明の一実施形態に係る動画像復号化装置1の構成を示すブロック図である。動画像復号化装置1は、MPEG4に準拠した圧縮データを復号化する装置であり、具体的には、可変長復号化器2と、逆DC/AC予測器3と、逆量子化器4と、逆DCT演算器5と、動きベクトル補償演算器6と、加算器7と、内部メモリ8と、デブロッキング/デリンギング演算部9と、外部メモリ10とを備えている。動きベクトル補償演算器6と、内部メモリ8と、デブロッキング/デリンギング演算部9と、外部メモリ10とは、バス11を介して相互に接続されている。
可変長復号化器2は、圧縮データに対して可変長復号化を行う。逆DC/AC予測器3は、可変長復号化器2から出力された画像データに対して逆DC/AC予測を行う。逆量子化器4は、逆DC/AC予測器3から出力された画像データに対して逆量子化を行う。逆DCT演算器5は、逆量子化器4から出力された画像データに対して逆DCT演算を行う。
動きベクトル補償演算器6は、動きベクトル補償を行い、外部メモリ10に保存されている前フレーム画像から予測画像データを生成する。加算器7は、動きベクトル補償演算器6から出力された予測画像データと、逆DCT演算器5から出力された画像データを加算して復号画像データを生成する。内部メモリ8は、加算器7から出力される復号画像データを一時的に保存する。
デブロッキング/デリンギング演算部9は、フィルタ係数及びデータ入力手順を切り替えることにより、MPEG4に準拠したデブロッキング処理とデリンギング処理との両方を実行可能なように構成されている。後述されるように、本実施形態の動画像復号化装置1の一つの特徴は、デブロッキング/デリンギング演算部9においてデブロッキング処理に含まれる演算処理の一部と、デリンギング処理に含まれる演算処理の一部が共通の資源を用いて行われることである。
外部メモリ10は、デブロッキング/デリンギング演算部9による処理後の画像データを保存し、また、ワーク領域としてデータを一次的に格納するために使用される。
図7は、本実施形態におけるデブロッキング/デリンギング演算部9の構成を示すブロック図である。デブロッキング/デリンギング演算部9は、デブロッキングフィルタ処理回路12と、デリンギングフィルタ処理回路13と、共通処理回路14とを備えている。
デブロッキングフィルタ処理回路12は、デブロッキング処理にのみ関連する処理を行うための回路である。より具体的には、デブロッキングフィルタ処理回路12は、図2のステップS07のクリッピング処理を行うクリッピング処理回路12Aを含み、その他、値eq_cntと閾値THR2を比較する比較器、上述の最大値max、最小値minを算出する回路、及び、差分絶対値|max−min|と2QPを比較する比較器を含んでいる。
デリンギングフィルタ処理回路13は、デリンギング処理にのみ関連する処理を行うための回路であり、閾値決定処理回路13A、指数取得処理回路13B、及びクリッピング処理回路13Cを備えている。閾値決定処理回路13Aは、図3のステップS09の閾値決定処理を行うための回路であり、指数取得処理回路13Bは、ステップS10の指数取得処理を行うための回路である。クリッピング処理回路13Cは、ステップS12のクリッピング処理を行うための回路である。
共通処理回路14は、デブロッキング処理に含まれる処理の一部、及びデリンギング処理に含まれる処理の一部を、共通に行うことができるように構成されたフィルタ回路である。本実施形態の動画像復号化装置の一つの特徴は、共通処理回路14を採用することにより、デブロッキング処理、及びデリンギング処理に使用されるハードウェア資源を削減していることにある。以下、共通処理回路14について詳細に説明する。
(共通処理回路の構成及び動作)
図8Aは、共通処理回路14の構成を示す回路図である。共通処理回路14は、レジスタ部15と、乗算演算部16と、加減算部17と、判定部18と、加算演算部19と、出力レジスタ20と、セレクタ21とを備えている。レジスタ部15は、レジスタ310〜319を備えている。
図8Aは、共通処理回路14の構成を示す回路図である。共通処理回路14は、レジスタ部15と、乗算演算部16と、加減算部17と、判定部18と、加算演算部19と、出力レジスタ20と、セレクタ21とを備えている。レジスタ部15は、レジスタ310〜319を備えている。
レジスタ部15は、レジスタ310〜319を備えており、演算されるべき画素データを保持するために使用される。レジスタ310〜319に格納されている画素データは、それぞれ、以下、画素データR0〜R9と記載される。
乗算演算部16は、レジスタ310〜319に保持されている画素データR0〜R9と所定のフィルタ係数との積を算出して出力し、又は乗算を行わずに画素データをそのまま出力するように構成されている。
より具体的には、乗算演算部16は、シフタ322〜326と、セレクタ330、332〜336、338、339とを備えている。シフタ322、323は、それぞれレジスタ312、313に保持されている画素データR2、R3に対して1ビットの左シフトを行い、シフタ324は、レジスタ314に保持されている画素データR4に対して2ビットの左シフトを行う。更に、シフタ325、326は、レジスタ315、316に保持されている画素データR5、R6に対して1ビットの左シフトを行う。1ビットの左シフトは、2(=21)を乗じることと等価であり、2ビットの左シフトは、4(=22)を乗じることと等価であるから、シフタ322、323、325、326は、2を乗じる乗算器として機能し、シフタ324は、4を乗じる乗算器として機能する。
セレクタ330は、画素データR0とデータ”0”との一方を選択し、選択されたデータを出力する。データ”0”を選択することは、画素データR0に”0”を乗じることと等価であるから、セレクタ330は、画素データR0に”0”を乗じて出力し、又は、画素データR0をそのまま出力する乗算器として機能する。
セレクタ332は、その一方の入力がそれぞれレジスタ312に接続され、他方の入力がシフタ322に接続されている。したがって、シフタ322及びセレクタ332は、画素データR2に2を乗じて出力し、又は、画素データR2をそのまま出力する乗算器として機能する。同様に、シフタ323及びセレクタ333は、画素データR3に2を乗じて出力し、又は、画素データR3をそのまま出力する乗算器として機能し、シフタ324及びセレクタ334は、画素データR4に4を乗じて出力し、又は、画素データR4をそのまま出力する乗算器として機能する。更に、同様に、シフタ325及びセレクタ335は、画素データR5に2を乗じて出力し、又は、画素データR5をそのまま出力する乗算器として機能し、シフタ326及びセレクタ336は、画素データR6に2を乗じて出力し、又は、画素データR6をそのまま出力する乗算器として機能する。
セレクタ338は、画素データR8とデータ”0”との一方を選択し、セレクタ339は、画素データR9とデータ”0”との一方を選択する。データ”0”を選択することは、”0”を乗じることと等価であるから、セレクタ338、339は、画素データR8、R9に”0”を乗じて出力し、又は、画素データR8、R9をそのまま出力する乗算器として機能する。
加減算部17は、乗算演算部16の出力(すなわち、セレクタ330、レジスタ311、セレクタ332〜336、レジスタ317、セレクタ338、339の出力)に対して、加算演算、又は減算演算を行う。加減算部17の入力IN0、IN2〜IN6、IN8、IN9は、それぞれ、セレクタ330、332〜336、338〜339の出力に接続されている。加減算部17の動作は、共通処理回路14が行うべき演算に応じて変更される。加減算部17の動作の詳細は後述される。
判定部18は、加減算部17の出力と図2のステップS01の値eq_cntの算出に使用される閾値THR1とを比較して式(1−1)の項を算出し、又は、加減算部17の出力をそのまま出力するように構成されている。より具体的には、判定部18は、判定回路351〜355と、セレクタ361〜366とを備えている。各判定回路351〜355の入力にはそれぞれ加減算部17の出力OUT1〜OUT5が接続されており、判定回路351〜355のうちの判定回路35kは、式(1−2)で定義されるφ(OUTk−THR1)を算出して出力する。ここでkは、1以上5以下の整数である。
加算演算部19は、加算器371〜375から構成されており、判定部18の出力、及びセレクタ21の出力の和を算出する。
出力レジスタ20は、加算演算部19の出力を一時的に保存する。後述されるように、出力レジスタ20は、デブロッキング処理(図2)の値eq_cntを算出する処理(ステップS02)において重要な役割を果たす。
セレクタ21は、データ”0”と出力レジスタ20の出力との一方を選択して出力する。
このように構成されている共通処理回路14は、乗算演算部16、加減算部17、及び判定部18を適切に設定することにより、デブロッキング処理に関連する下記3つの処理:値eq_cnt算出(ステップS01)、フィルタ処理(1)(ステップS05)、及びフィルタ処理(2)(ステップS06)、並びに、デリンギング処理のうちの適応フィルタリング(ステップS11)の処理を行うことができる。このような共通処理回路14の構成は、少ないハードウェア資源でデブロッキング処理及びデリンギング処理を行うことを可能にする。以下では、上記の4つの処理を行うときの共通処理回路14の設定及び動作が説明される。
(1)値eq_cnt算出(ステップS01)
デブロッキング処理のモードを選択するために使用される値eq_cntの算出は、2クロックサイクルをかけて行われる。第1のクロックサイクルでは、式(1−1)の奇数番目の項の和が算出される。第2のクロックサイクルでは、更に、第1のクロックサイクルで算出された和に、偶数番目の項の和が加算され、これにより、値eq_cntが最終的に算出される。以下、値eq_cntが算出される過程が詳細に説明される。
デブロッキング処理のモードを選択するために使用される値eq_cntの算出は、2クロックサイクルをかけて行われる。第1のクロックサイクルでは、式(1−1)の奇数番目の項の和が算出される。第2のクロックサイクルでは、更に、第1のクロックサイクルで算出された和に、偶数番目の項の和が加算され、これにより、値eq_cntが最終的に算出される。以下、値eq_cntが算出される過程が詳細に説明される。
図9に示されているように、第1のクロックサイクルでは、レジスタ部15、乗算演算部16、加減算部17、判定部18、及びセレクタ21が下記のように設定される:
(a)レジスタ部15のレジスタ310〜319には、それぞれ、画素1010〜1019の画素データv0〜v9が書き込まれる。
(b)乗算演算部16は、レジスタ310〜319に書き込まれた画素データv0〜v9をそのまま(乗算を行うことなく)出力するように設定される。より具体的には、乗算演算部16は、セレクタ330がレジスタ310の出力を選択し、セレクタ332〜336がそれぞれレジスタ312〜316の出力を選択し、セレクタ338、339が、それぞれレジスタ318、319の出力を選択するように設定される。
(c)加減算部17は、その入力と出力との間に下記式:
OUT1=IN0−IN1, ・・・(2−1)
OUT2=IN2−IN3, ・・・(2−2)
OUT3=IN4−IN5, ・・・(2−3)
OUT4=IN6−IN7, ・・・(2−4)
OUT5=IN8−IN9. ・・・(2−5)
が成立するように設定される。
(d)判定部18は、φ(OUT1−THR1)〜φ(OUT5−THR1)を算出するように、即ち、セレクタ361〜365が判定回路351〜355を選択するように設定される。
(e)セレクタ21は、データ”0”を選択する。
(a)レジスタ部15のレジスタ310〜319には、それぞれ、画素1010〜1019の画素データv0〜v9が書き込まれる。
(b)乗算演算部16は、レジスタ310〜319に書き込まれた画素データv0〜v9をそのまま(乗算を行うことなく)出力するように設定される。より具体的には、乗算演算部16は、セレクタ330がレジスタ310の出力を選択し、セレクタ332〜336がそれぞれレジスタ312〜316の出力を選択し、セレクタ338、339が、それぞれレジスタ318、319の出力を選択するように設定される。
(c)加減算部17は、その入力と出力との間に下記式:
OUT1=IN0−IN1, ・・・(2−1)
OUT2=IN2−IN3, ・・・(2−2)
OUT3=IN4−IN5, ・・・(2−3)
OUT4=IN6−IN7, ・・・(2−4)
OUT5=IN8−IN9. ・・・(2−5)
が成立するように設定される。
(d)判定部18は、φ(OUT1−THR1)〜φ(OUT5−THR1)を算出するように、即ち、セレクタ361〜365が判定回路351〜355を選択するように設定される。
(e)セレクタ21は、データ”0”を選択する。
図10は、このように設定された共通処理回路14の動作を示す概念図である。乗算演算部16では乗算が行われないから、加減算部17の入力IN0〜IN9には、画素データv0〜v9が入力される。加減算部17は、式(2−1)〜(2−5)に従って動作するから、判定回路351〜355の入力には、それぞれ、v0−v1、v2−v3、v4−v5、v6−v7、v8−v9が入力される。従って、判定回路351〜355の出力は、それぞれ、φ(v0−v1)、φ(v2−v3)、φ(v4−v5)、φ(v6−v7)、φ(v8−v9)となる。加算演算部19は、判定回路351〜355の出力の和を算出し、出力レジスタ20に出力する。この結果、出力レジスタ20には、φ(v0−v1)+φ(v2−v3)+φ(v4−v5)+φ(v6−v7)+φ(v8−v9)が書き込まれる。
図9に戻り、第2のクロックサイクルでは、乗算演算部16、加減算部17、及びセレクタ21の動作が、下記のように切り替えられる:
(a)乗算演算部16のセレクタ330、339は、データ”0”を選択する状態に切り替えられる。言い換えれば、乗算演算部16は、画素データv0、v9にデータ”0”を乗じ、他の画素データv1〜v8をそのまま出力するように設定される。
(b)加減算部17は、その入力と出力との間に下記式:
OUT1=IN1−IN2, ・・・(2−6)
OUT2=IN3−IN4, ・・・(2−7)
OUT3=IN5−IN6, ・・・(2−8)
OUT4=IN7−IN8, ・・・(2−9)
OUT5=α(>THR1). ・・・(2−10)
が成立するように設定される。
(c)セレクタ21は、出力レジスタ20の出力を選択する。
(a)乗算演算部16のセレクタ330、339は、データ”0”を選択する状態に切り替えられる。言い換えれば、乗算演算部16は、画素データv0、v9にデータ”0”を乗じ、他の画素データv1〜v8をそのまま出力するように設定される。
(b)加減算部17は、その入力と出力との間に下記式:
OUT1=IN1−IN2, ・・・(2−6)
OUT2=IN3−IN4, ・・・(2−7)
OUT3=IN5−IN6, ・・・(2−8)
OUT4=IN7−IN8, ・・・(2−9)
OUT5=α(>THR1). ・・・(2−10)
が成立するように設定される。
(c)セレクタ21は、出力レジスタ20の出力を選択する。
図11は、このように設定された共通処理回路14の動作を示す概念図である。加減算部17の入力IN1〜IN8には、画素データv1〜v8が入力される。加減算部17は、式(2−6)〜(2−10)に従って動作するから、判定回路351〜355の入力には、それぞれ、v1−v2、v3−v4、v5−v6、v7−v8、αが入力される。従って、判定回路351〜355の出力は、それぞれ、φ(v1−v2)、φ(v3−v4)、φ(v5−v6)、φ(v7−v8)、0となる。加算演算部19は、判定回路351〜355の出力及びセレクタ21の出力の和を算出し、出力レジスタ20に出力する。この結果、加算演算部19の出力には、値eq_cnt(=φ(v0−v1)+φ(v1−v2)+φ(v2−v3)+φ(v3−v4)+φ(v4−v5)+φ(v5−v6)+φ(v6−v7)+φ(v7−v8)+φ(v8−v9))が生成される。値eq_cntは、出力レジスタ20を介して出力され、デブロッキング処理のモードの選択に使用される。
(2)フィルタ処理(1)(ステップS05)
ステップS05のフィルタ処理では、フィルタ処理後の画素データv1’〜v8’が式(1−5)に従って順次に算出される。図9を参照して、ステップS05のフィルタ処理が行われる場合には、共通処理回路14のレジスタ部15、乗算演算部16、加減算部17、判定部18、及びセレクタ21が下記のように設定される:
(a)レジスタ部15の各レジスタ310〜319には、画素データv1〜v8、及び値pmin、pmaxのうち、必要なものが書き込まれる。
(b)乗算演算部16は、レジスタ312〜316に書き込まれたデータに対して乗算を行うように設定される。より具体的には、乗算演算部16は、セレクタ332〜336がそれぞれシフタ326〜326の出力を選択するように設定される。セレクタ330、338は、それぞれレジスタ310、318の出力を選択するように設定され、セレクタ339は、データ”0”を選択するように設定される。
(c)加減算部17は、その入力と出力との間に下記式:
OUT1=IN0+IN1, ・・・(3−1)
OUT2=IN2+IN3, ・・・(3−2)
OUT3=IN4+IN5, ・・・(3−3)
OUT4=IN6+IN7, ・・・(3−4)
OUT5=IN8+IN9. ・・・(3−5)
が成立するように設定される。
(d)判定部18は、加減算部17の出力OUT1〜OUT5をそのまま出力する。
(e)セレクタ21は、データ”0”を選択する。
ステップS05のフィルタ処理では、フィルタ処理後の画素データv1’〜v8’が式(1−5)に従って順次に算出される。図9を参照して、ステップS05のフィルタ処理が行われる場合には、共通処理回路14のレジスタ部15、乗算演算部16、加減算部17、判定部18、及びセレクタ21が下記のように設定される:
(a)レジスタ部15の各レジスタ310〜319には、画素データv1〜v8、及び値pmin、pmaxのうち、必要なものが書き込まれる。
(b)乗算演算部16は、レジスタ312〜316に書き込まれたデータに対して乗算を行うように設定される。より具体的には、乗算演算部16は、セレクタ332〜336がそれぞれシフタ326〜326の出力を選択するように設定される。セレクタ330、338は、それぞれレジスタ310、318の出力を選択するように設定され、セレクタ339は、データ”0”を選択するように設定される。
(c)加減算部17は、その入力と出力との間に下記式:
OUT1=IN0+IN1, ・・・(3−1)
OUT2=IN2+IN3, ・・・(3−2)
OUT3=IN4+IN5, ・・・(3−3)
OUT4=IN6+IN7, ・・・(3−4)
OUT5=IN8+IN9. ・・・(3−5)
が成立するように設定される。
(d)判定部18は、加減算部17の出力OUT1〜OUT5をそのまま出力する。
(e)セレクタ21は、データ”0”を選択する。
図12は、このように設定された共通処理回路14の動作を示す概念図である。図12から理解されるように、レジスタ310〜318が保持するデータをそれぞれ、R0〜R8とすると、加算演算部19の出力OUTは、下記式:
OUT=R0+R1+2・R2+2・R3+4・R4
+2・R5+2・R6+R7+R8. ・・・(3−6)
で表される値をとる。
OUT=R0+R1+2・R2+2・R3+4・R4
+2・R5+2・R6+R7+R8. ・・・(3−6)
で表される値をとる。
式(3−6)と式(1−5)との比較から理解されるように、DCオフセットモードによるフィルタ処理後の画素データv1’〜v8’は、レジスタ310〜318に適切なデータを書き込むことによって算出することができる。より具体的には、画素データv1’が算出される場合、レジスタ310〜313に値pminが設定され、レジスタ314〜318に、それぞれ画素データv1〜v5が設定される。これにより、式(1−5)の第1番目の式に従って画素データv1’を算出可能である。同様に、画素データv2’が算出される場合、レジスタ310〜312に値pminが設定され、レジスタ313〜318に、それぞれ画素データv1〜v6が設定される。画素データv3’の算出のためには、レジスタ310、311に値pminが設定され、レジスタ312〜318に、それぞれ画素データv1〜v7が設定される。画素データv4’の算出のためには、レジスタ310に値pminが設定され、レジスタ311〜318に、それぞれ画素データv1〜v8が設定される。画素データv5’の算出のためには、レジスタ310〜317に画素データv1〜v8が設定され、レジスタ318に値pmaxが設定される。画素データv6’の算出のためには、レジスタ310〜316に画素データv2〜v8が設定され、レジスタ318、319に値pmaxが設定される。画素データv7’の算出のためには、レジスタ310〜315に画素データv3〜v8が設定され、レジスタ317〜319に値pmaxが設定される。そして、画素データv8’の算出のためには、レジスタ310〜314に画素データv4〜v8が設定され、レジスタ316〜319に値pmaxが設定される。レジスタ310〜318へのデータの設定がこのように行われることにより、フィルタ処理後の画素データv1’〜v8’が算出される。
(3)フィルタ処理(2)(ステップS06)
ステップS06のフィルタ処理では、DCデフォルトモードによるデブロッキング処理に使用される周波数成分a3,0,a3,1,a3,2が式(1−6)に従って順次に算出される。ステップS06のフィルタ処理が行われる場合、共通処理回路14のレジスタ部15、乗算演算部16、加減算部17、判定部18、及びセレクタ21は、下記のように設定される:
(a)レジスタ部15の各レジスタ311〜317には、画素データv1〜v8のうち必要なものが書き込まれる。
(b)乗算演算部16は、レジスタ312〜316に書き込まれたデータに対して乗算を行うように設定される。より具体的には、乗算演算部16は、セレクタ332〜336がそれぞれシフタ326〜326の出力を選択するように設定される。セレクタ330、338、339は、データ”0”を選択するように設定される。
(c)加減算部17は、その入力と出力との間に下記式:
OUT1=IN0−IN1(=−IN1), ・・・(4−1)
OUT2=IN2+IN3, ・・・(4−2)
OUT3=−IN4+IN5, ・・・(4−3)
OUT4=−IN6+IN7, ・・・(4−4)
OUT5=IN8+IN9(=0). ・・・(4−5)
が成立するように設定される。
(d)判定部18は、加減算部17の出力OUT1〜OUT5をそのまま出力するように設定される。
(e)セレクタ21は、データ”0”を選択する。
ステップS06のフィルタ処理では、DCデフォルトモードによるデブロッキング処理に使用される周波数成分a3,0,a3,1,a3,2が式(1−6)に従って順次に算出される。ステップS06のフィルタ処理が行われる場合、共通処理回路14のレジスタ部15、乗算演算部16、加減算部17、判定部18、及びセレクタ21は、下記のように設定される:
(a)レジスタ部15の各レジスタ311〜317には、画素データv1〜v8のうち必要なものが書き込まれる。
(b)乗算演算部16は、レジスタ312〜316に書き込まれたデータに対して乗算を行うように設定される。より具体的には、乗算演算部16は、セレクタ332〜336がそれぞれシフタ326〜326の出力を選択するように設定される。セレクタ330、338、339は、データ”0”を選択するように設定される。
(c)加減算部17は、その入力と出力との間に下記式:
OUT1=IN0−IN1(=−IN1), ・・・(4−1)
OUT2=IN2+IN3, ・・・(4−2)
OUT3=−IN4+IN5, ・・・(4−3)
OUT4=−IN6+IN7, ・・・(4−4)
OUT5=IN8+IN9(=0). ・・・(4−5)
が成立するように設定される。
(d)判定部18は、加減算部17の出力OUT1〜OUT5をそのまま出力するように設定される。
(e)セレクタ21は、データ”0”を選択する。
図13〜図15は、このように設定された共通処理回路14の動作を示す概念図である。周波数成分a3,0が算出される場合には、図13に示されているように、レジスタ311〜317には、それぞれ、画素データv4、v3、v5、v4、v5、v6、v5が設定される。設定された画素データが、乗算演算部16及び加減算部17によって演算される結果、加減算部17の出力OUT1〜OUT5は、下記式:
OUT1= −v4, ・・・(4−6)
OUT2=2v3+2v5, ・・・(4−7)
OUT3=−4v4+2v5, ・・・(4−8)
OUT4=−2v6+v5, ・・・(4−9)
OUT5=0. ・・・(4−10)
で表される値をとる。共通処理回路14の出力OUTは加減算部17の出力OUT1〜OUT5の和であるから、出力OUTは、下記式:
OUT=2v3−5v4+5v5−2v6,・・・(4−11)
で表される。式(1−6)の第1式と式(4−11)との比較から理解されるように、共通処理回路14の出力OUTは、周波数成分a3,0の8倍である。したがって、共通処理回路14の出力OUTを右方向に3ビットシフトすることによって容易に周波数成分a3,0を算出することができる。
OUT1= −v4, ・・・(4−6)
OUT2=2v3+2v5, ・・・(4−7)
OUT3=−4v4+2v5, ・・・(4−8)
OUT4=−2v6+v5, ・・・(4−9)
OUT5=0. ・・・(4−10)
で表される値をとる。共通処理回路14の出力OUTは加減算部17の出力OUT1〜OUT5の和であるから、出力OUTは、下記式:
OUT=2v3−5v4+5v5−2v6,・・・(4−11)
で表される。式(1−6)の第1式と式(4−11)との比較から理解されるように、共通処理回路14の出力OUTは、周波数成分a3,0の8倍である。したがって、共通処理回路14の出力OUTを右方向に3ビットシフトすることによって容易に周波数成分a3,0を算出することができる。
一方、周波数成分a3,1が算出される場合には、図14に示されているように、画素データv2、v1、v3、v2、v3、v4、v3がレジスタ311〜317にそれぞれに設定される。設定された画素データが、乗算演算部16及び加減算部17によって演算される結果、加減算部17の出力OUT1〜OUT5は、下記式:
OUT1= −v2, ・・・(4−12)
OUT2=2v1+2v3, ・・・(4−13)
OUT3=−4v2+2v3, ・・・(4−14)
OUT4=−2v4+v3, ・・・(4−15)
OUT5=0. ・・・(4−16)
で表される値をとる。共通処理回路14の出力OUTは加減算部17の出力OUT1〜OUT5の和であるから、出力OUTは、下記式:
OUT=2v1−5v2+5v3−2v4,・・・(4−17)
で表される。式(1−6)の第2式と式(4−17)との比較から理解されるように、共通処理回路14の出力OUTは、周波数成分a3,1の8倍である。したがって、共通処理回路14の出力OUTを右方向に3ビットシフトすることによって周波数成分a3,1を算出することができる。
OUT1= −v2, ・・・(4−12)
OUT2=2v1+2v3, ・・・(4−13)
OUT3=−4v2+2v3, ・・・(4−14)
OUT4=−2v4+v3, ・・・(4−15)
OUT5=0. ・・・(4−16)
で表される値をとる。共通処理回路14の出力OUTは加減算部17の出力OUT1〜OUT5の和であるから、出力OUTは、下記式:
OUT=2v1−5v2+5v3−2v4,・・・(4−17)
で表される。式(1−6)の第2式と式(4−17)との比較から理解されるように、共通処理回路14の出力OUTは、周波数成分a3,1の8倍である。したがって、共通処理回路14の出力OUTを右方向に3ビットシフトすることによって周波数成分a3,1を算出することができる。
更に、周波数成分a3,2が算出される場合には、図15に示されているように、画素データv6、v5、v7、v6、v7、v8、v7がレジスタ311〜317にそれぞれに設定される。設定された画素データが、乗算演算部16及び加減算部17によって演算される結果、加減算部17の出力OUT1〜OUT5は、下記式:
OUT1= −v6, ・・・(4−18)
OUT2=2v5+2v7, ・・・(4−19)
OUT3=−4v6+2v7, ・・・(4−20)
OUT4=−2v8+v7, ・・・(4−21)
OUT5=0. ・・・(4−22)
で表される値をとる。共通処理回路14の出力OUTは加減算部17の出力OUT1〜OUT5の和であるから、出力OUTは、下記式:
OUT=2v15−5v6+5v7−2v8,・・・(4−23)
で表される。式(1−6)の第4式と式(4−23)との比較から理解されるように、共通処理回路14の出力OUTは、周波数成分a3,2の8倍である。したがって、共通処理回路14の出力OUTを右方向に3ビットシフトすることによって周波数成分a3,2を算出することができる。
OUT1= −v6, ・・・(4−18)
OUT2=2v5+2v7, ・・・(4−19)
OUT3=−4v6+2v7, ・・・(4−20)
OUT4=−2v8+v7, ・・・(4−21)
OUT5=0. ・・・(4−22)
で表される値をとる。共通処理回路14の出力OUTは加減算部17の出力OUT1〜OUT5の和であるから、出力OUTは、下記式:
OUT=2v15−5v6+5v7−2v8,・・・(4−23)
で表される。式(1−6)の第4式と式(4−23)との比較から理解されるように、共通処理回路14の出力OUTは、周波数成分a3,2の8倍である。したがって、共通処理回路14の出力OUTを右方向に3ビットシフトすることによって周波数成分a3,2を算出することができる。
(4)適応フィルタリング(ステップS11)
ステップS11の適応フィルタリングでは、フィルタリング後の画素データflt’(h,v)が式(1−9)(又は式(1−10))によって算出される。図9に示されているように、適応フィルタリングが行われる場合には、共通処理回路14のレジスタ部15、乗算演算部16、加減算部17、判定部18、及びセレクタ21が下記のように設定される:
(a)レジスタ部15の各レジスタ310〜318には、フィルタリングの対象の画素の画素データrec(h,v)、及びその周囲に位置する8つの画素の画素データが書き込まれる。図9の表中の(i,j)は、画素データrec(h+i,v+j)を意味していることに留意されたい。適応フィルタリングではレジスタ319は使用されない。
(b)乗算演算部16は、レジスタ312〜316に書き込まれたデータに対して乗算を行うように設定される。より具体的には、乗算演算部16は、セレクタ332〜336がそれぞれシフタ326〜326の出力を選択するように設定される。セレクタ330、338、339は、データ”0”を選択するように設定される。
(c)加減算部17は、その入力と出力との間に下記式:
OUT1=IN0+IN1, ・・・(5−1)
OUT2=IN2+IN3, ・・・(5−2)
OUT3=IN4+IN5, ・・・(5−3)
OUT4=IN6+IN7, ・・・(5−4)
OUT5=IN8+IN9(=IN8). ・・・(5−5)
が成立するように設定される。
(d)判定部18は、加減算部17の出力OUT1〜OUT5をそのまま出力するように設定される。
(e)セレクタ21は、データ”0”を選択する。
ステップS11の適応フィルタリングでは、フィルタリング後の画素データflt’(h,v)が式(1−9)(又は式(1−10))によって算出される。図9に示されているように、適応フィルタリングが行われる場合には、共通処理回路14のレジスタ部15、乗算演算部16、加減算部17、判定部18、及びセレクタ21が下記のように設定される:
(a)レジスタ部15の各レジスタ310〜318には、フィルタリングの対象の画素の画素データrec(h,v)、及びその周囲に位置する8つの画素の画素データが書き込まれる。図9の表中の(i,j)は、画素データrec(h+i,v+j)を意味していることに留意されたい。適応フィルタリングではレジスタ319は使用されない。
(b)乗算演算部16は、レジスタ312〜316に書き込まれたデータに対して乗算を行うように設定される。より具体的には、乗算演算部16は、セレクタ332〜336がそれぞれシフタ326〜326の出力を選択するように設定される。セレクタ330、338、339は、データ”0”を選択するように設定される。
(c)加減算部17は、その入力と出力との間に下記式:
OUT1=IN0+IN1, ・・・(5−1)
OUT2=IN2+IN3, ・・・(5−2)
OUT3=IN4+IN5, ・・・(5−3)
OUT4=IN6+IN7, ・・・(5−4)
OUT5=IN8+IN9(=IN8). ・・・(5−5)
が成立するように設定される。
(d)判定部18は、加減算部17の出力OUT1〜OUT5をそのまま出力するように設定される。
(e)セレクタ21は、データ”0”を選択する。
図16は、このように設定された共通処理回路14の動作を示す概念図である。図16に示されているように、座標(h,v)に位置する画素に対応するフィルタ出力flt’(h,v)が算出される場合、レジスタ310〜318には、それぞれ、画素データrec(h−1,v−1)、rec(h+1,v−1)、rec(h,v−1)、rec(h−1,v)、rec(h,v)、rec(h+1,v)、rec(h,v+1)、rec(h−1,v+1)、rec(h+1、v+1)が書き込まれる。図16では、画素データrec(h+i,h+k)が、単に(i,j)と記述されていることに留意されたい。書き込まれた画素データが、乗算演算部16及び加減算部17によって演算される結果、加減算部17の出力OUT1〜OUT5は、下記式:
OUT1=rec(h−1,v−1)+rec(h+1,v−1),・・・(5−6)
OUT2=2・rec(h,v−1)+2・rec(h−1,v),・・・(5−7)
OUT3=4・rec(h,v)+2・rec(h+1,v), ・・・(5−8)
OUT4=2・rec(h,v+1)+rec(h−1,v+1),・・・(5−9)
OUT5=rec(h+1,v+1). ・・・(5−10)
で表される値をとる。共通処理回路14の出力OUTは加減算部17の出力OUT1〜OUT5の和であるから、出力OUTは、下記式:
で表される。式(1−10)と式(5−11)との比較から理解されるように、共通処理回路14の出力OUTに8を加え、更に、16で除算する(即ち、右方向に4ビットシフトを行う)ことによってフィルタリング後の画素データflt’(h,v)を得ることができる。
OUT1=rec(h−1,v−1)+rec(h+1,v−1),・・・(5−6)
OUT2=2・rec(h,v−1)+2・rec(h−1,v),・・・(5−7)
OUT3=4・rec(h,v)+2・rec(h+1,v), ・・・(5−8)
OUT4=2・rec(h,v+1)+rec(h−1,v+1),・・・(5−9)
OUT5=rec(h+1,v+1). ・・・(5−10)
で表される値をとる。共通処理回路14の出力OUTは加減算部17の出力OUT1〜OUT5の和であるから、出力OUTは、下記式:
以上に説明されているように、図8Aに図示されている共通処理回路14は、その設定を変えることにより、ステップS01の値eq_cntの算出処理、ステップS05のフィルタ処理(式(1−3)、(1−4)によるフィルタ処理)、ステップS06のフィルタ処理(即ち、周波数成分a3,0,a3,1,a3,2を算出する処理)、並びに、ステップS11の適応フィルタリングの処理を行うことができる。このような共通処理回路14の構成は、少ないハードウェア資源でデブロッキング処理及びデリンギング処理を行うことを可能にする。
本実施形態において、共通処理回路14は、上記の4つの処理:ステップS01の値eq_cntの算出処理、ステップS05のフィルタ処理、ステップS06のフィルタ処理、及びステップS11の適応フィルタリングの処理の全てを行う必要はない;共通処理回路14は、上記の4つの処理のうちの少なくとも2つの処理を行うように構成され得る。
特に、ステップS01の値eq_cntの算出処理が行われない場合には、図8Bに示されているように、判定部18が設けられず、加減算部17の出力が直接に加算演算部19に接続されても良い。このような構成は、共通処理回路14の構成を簡単にする。
(デブロッキング処理とデリンギング処理の好適な手順)
共通処理回路14が使用される本実施形態の動画像復号化装置1では、デブロッキング処理とデリンギング処理は、シリアルに行われる。MPEG4には、デブロッキング処理とデリンギング処理が行われる順番は、デブロッキング処理が先で、デリンギング処理が後であると規定されている。
共通処理回路14が使用される本実施形態の動画像復号化装置1では、デブロッキング処理とデリンギング処理は、シリアルに行われる。MPEG4には、デブロッキング処理とデリンギング処理が行われる順番は、デブロッキング処理が先で、デリンギング処理が後であると規定されている。
このような場合には、外部メモリ10へのデータアクセス量を抑制することが重要な課題の一つである。図6に示されているように、本実施形態の動画像復号化装置1では、デブロッキング処理及びデリンギング処理の際にそれらに使用される画素データを内部メモリ8に用意する必要がある。デブロッキング処理及びデリンギング処理に必要な画素データが内部メモリ8に存在しない場合には、必要な画素データを外部メモリ10から内部メモリ8に伝送する必要があり、この場合には、外部メモリ10へのデータアクセスが行われる。更に、デブロッキング/デリンギング演算部9によって生成された画素データは、最終的には外部メモリ10に書き込まれる必要があり、これも外部メモリ10へのデータアクセスの発生原因になる。外部メモリ10へのデータアクセス量を抑制することは、本実施形態の動画像復号化装置1の動作の高速化に重要である。
外部メモリ10へのデータアクセス量を削減するために、本実施形態の動画像復号化装置1では、下記のような手順で復号化処理を行う。
図17に示されているように、あるフレーム画像の復号化処理は、左上のマクロブロックから開始される。まず、最上段のマクロブロックについて復号化処理が行われる。復号化処理は、左のマクロブロックから右のマクロブロックへという順序で行われる。同様に、2段目、3段目・・・のマクロブロックの復号化処理も同様にして行われる。
復号化処理のうちのデブロッキング処理及びデリンギング処理は、可変長復号化、DC/AC逆予測、逆量子化、逆DCT、及び動きベクトル補償と並行して行われる。具体的には、あるマクロブロック(以下、「対象マクロブロック41」という。)の可変長復号化、DC/AC逆予測、逆量子化、逆DCT、及び動きベクトル補償が完了すると、その対象マクロブロック41の左側に位置する特定のブロックについて縦方向のエッジに対するデブロッキング処理、横方向のエッジに対するデブロッキング処理、及びデリンギング処理が順次に行われる。MPEG4の規定によればマクロブロックは8×8画素から構成される4つのブロックからなり、以下において、対象マクロブロック41の4つのブロックは、ブロック42、43、44、45と記述されることに留意されたい。
本実施形態の動画像復号化装置1では、デブロッキング処理及びデリンギング処理の対象のブロックが最適に選択されることによって外部メモリ10へのデータアクセス量の削減が図られている。より具体的には、縦方向のエッジに対するデブロッキング処理は、図17のブロック46〜49の縦方向のエッジについて行われる。ここでブロック46とは、対象マクロブロック41の左上のブロック42の左に隣接するブロックであり、ブロック47は、上記のブロック46の上に隣接するブロックである。更に、ブロック48とは、上記のブロック46の左に隣接するブロックであり、ブロック49は、上記のブロック47の左に隣接するブロックである。一方、横方向のエッジに対するデブロッキング処理及びデリンギング処理は、図17のブロック50〜53について行われる。ここでブロック50とは、上記のブロック49の左に隣接するブロックであり、ブロック51とは、上記のブロック50の上に隣接するブロックである。ブロック52は、上記のブロック50の左に隣接するブロックであり、ブロック53は、上記のブロック51の左に隣接するブロックである。このようにして決定されたデブロッキング処理及びデリンギング処理の対象のブロックがフレーム画像の外側に位置する場合には、当該ブロックに対するデブロッキング処理及び/又はデリンギング処理は行われない。
以下、デブロッキング処理及びデリンギング処理が行われる過程を詳細に説明する。
図6を参照して、ある対象マクロブロック41の可変長復号化、DC/AC逆予測、逆量子化、逆DCT、及び動きベクトル補償が完了すると、対象マクロブロック41に対応する復号画像データが、加算器7から内部メモリ8に供給される。対象マクロブロック41の復号画像データを加算器7から受け取ると、内部メモリ8は、その復号画像データを外部メモリ10に転送する。
図6を参照して、ある対象マクロブロック41の可変長復号化、DC/AC逆予測、逆量子化、逆DCT、及び動きベクトル補償が完了すると、対象マクロブロック41に対応する復号画像データが、加算器7から内部メモリ8に供給される。対象マクロブロック41の復号画像データを加算器7から受け取ると、内部メモリ8は、その復号画像データを外部メモリ10に転送する。
ただし、内部メモリ8は、転送した復号画像データを廃棄するわけではない。図18を参照して、受けとった復号画像データのうち、少なくともブロック42の左側の8行5列の画素54の画素データは、転送後もそのまま内部メモリ8に保存される。データ処理の規則性を高めるために、ブロック42に含まれる全画素の画素データを保存しても良い。後述されるように、内部メモリ8に保存されたデータは、次に行われる縦方向のエッジに対するデブロッキング処理に使用される。
続いて、縦方向のエッジに対するデブロッキング処理に必要なデータが、内部メモリ8に用意される。より具体的には、下記の画素データ:(a)ブロック46〜49の画素データ、(b)ブロック46の右側に隣接する8行5列の画素54の画素データ、(c)ブロック47の右側に隣接する8行5列の画素55の画素データ、(d)ブロック48の左側に隣接する8行5列の画素56の画素データ、及び(e)ブロック49の左側に隣接する8行5列の画素57の画素データが、内部メモリ8に用意される。これらの画素データのうち、ブロック46の右側に隣接する8行5列の画素54の画素データは、既に加算器7から内部メモリ8に転送されているから、改めて内部メモリ8に転送する必要はない。他の画素データは、外部メモリ10から内部メモリ8に転送される。
データ処理の規則性を高めるために、ブロック47の右側に隣接するブロック58、ブロック48の左側に隣接するブロック59、及びブロック49の左側に隣接するブロック57の全画素の画素データを内部メモリ8に転送してもよい。特に、ブロック57の画素の画素データは、ブロック57に対するデブロッキング処理及びデリンギング処理において使用可能であるから、ブロック57の全画素の画素データを内部メモリ8に転送しても、復号化処理を全体としてみたときにはデータ転送量は増大しない。同様に、ブロック59の画素の画素データはブロック57についての(横方向のエッジに対する)デブロッキング処理に使用可能であるから、ブロック59の全画素の画素データを内部メモリ8に転送しても、復号化処理を全体としてみたときにはデータ転送量の増大は少しである。
続いて、内部メモリ8に保存されている画素データを用いて、ブロック46〜49の縦方向のエッジに対するデブロッキング処理が行われる。このデブロッキング処理は、デブロッキング/デリンギング演算部9のデブロッキングフィルタ処理回路12及び共通処理回路14によって行われる。詳細には、ステップS01の値eq_cntの算出、ステップS05のフィルタ処理、及びステップS06のフィルタ処理は、共通処理回路14を使用して行われ、その他の処理は、デブロッキングフィルタ処理回路12によって行われる。
縦方向のエッジに対するデブロッキング処理によって得られたブロック46〜49の画素の画素データは、デブロッキング/デリンギング演算部9からバス11を介して外部メモリ10に送られ、外部メモリ10に書き込まれる。
続いて、横方向のエッジに対するデブロッキング処理に必要なデータが、内部メモリ8に用意される。より具体的には、図19に示されているように、少なくとも下記の画素データ:(a)ブロック50〜53の画素の画素データ、(b)ブロック50の下側に隣接する5行8列の画素60の画素データ、(c)ブロック52の下側に隣接する5行8列の画素61の画素データ、(d)ブロック51の上側に隣接する5行8列の画素62の画素データ、及び(e)ブロック53の上側に隣接する5行8列の画素63の画素データが、内部メモリ8に用意される。
これらの画素データのうち、縦方向のエッジに対するデブロッキング処理において既に内部メモリ8に用意されている画素データは、改めて内部メモリ8に転送される必要はない。具体的には、ブロック50の右側の8行5列の画素57の画素データは、改めて内部メモリ8に転送される必要はない。更に、ブロック50の全画素の画素データが縦方向のエッジに対するデブロッキング処理において既に内部メモリ8に転送されている場合には、ブロック50の画素データは、内部メモリ8に転送する必要はない。加えて、ブロック50の下側に隣接する5行8列の画素60の画素データのうち、右側の5行5列の画素の画素データは内部メモリ8に転送する必要はない。また、ブロック50の下側に隣接するブロック59の全画素の画素データが縦方向のエッジに対するデブロッキング処理において既に内部メモリ8に転送されている場合には、ブロック50の下側に隣接する5行8列の画素60の画素データは内部メモリ8に転送される必要はない。
データ転送量の増加を許容するのであれば、データ処理の規則性を高めるために、ブロック50の下側に隣接するブロック59、ブロック52の下側に隣接するブロック64、及びブロック51の上側に隣接するブロック65、及びブロック53の上側に隣接するブロック66の全画素の画素データを内部メモリ8に転送してもよい。
続いて、内部メモリ8に用意された画素データを用いて、ブロック50〜53の横方向のエッジに対するデブロッキング処理が行われる。縦方向のエッジに対するデブロッキング処理と同様に、横方向のエッジに対するデブロッキング処理は、デブロッキング/デリンギング演算部9のデブロッキングフィルタ処理回路12及び共通処理回路14によって行われる。
横方向のエッジに対するデブロッキング処理が完了すると、デブロッキング処理後のブロック50〜53の画素データがデブロッキング/デリンギング演算部9から内部メモリ8に戻される。内部メモリ8に保存されているブロック50〜53の画素データは、デブロッキング処理後の画素データに書き換えられる。
横方向のエッジに対するデブロッキング処理後のブロック50〜53の画素データは、内部メモリ8から外部メモリ10には転送されない。これは、外部メモリ10へのデータアクセスを減少させるためである。後述されるように、内部メモリ8に保存された、横方向のエッジに対するデブロッキング処理後の画素データは、そのままデリンギング処理に使用される。
続いて、ブロック50〜53に対するデリンギング処理に必要なデータが、内部メモリ8に用意される。より具体的には、図20に示されているように、(横方向のエッジに対するデブロッキング処理後の)ブロック50〜53の画素データに加え、ブロック50〜53を1画素の幅で取り囲む画素列67の画素データが、外部メモリ10から内部メモリ8に転送される。(デブロッキング処理後の)ブロック50〜53の画素データは、横方向のエッジに対するデブロッキング処理の終了時に内部メモリ8に転送されるから、外部メモリ10から内部メモリ8に転送される必要はない。
続いて、内部メモリ8に用意された画素データを用いて、ブロック50〜53に対するデリンギング処理が行われる。デリンギング処理は、デブロッキング/デリンギング演算部9のデリンギングフィルタ処理回路13及び共通処理回路14によって行われる。より具体的には、ステップS09の閾値決定、ステップS10の指数取得、及びステップS12のクリッピングは、デリンギングフィルタ処理回路13によって行われ、ステップS11の適応フィルタリングは、共通処理回路14によって行われる。
以上に説明された手順でデブロッキング処理及びデリンギング処理を行うことは、外部メモリ10へのデータアクセスを有効に減少させ、動画像復号化装置1の性能の向上に有効である。例えば、図21に示されているように、縦方向のエッジに対するデブロッキング処理の対象のマクロブロック71と、及び横方向のエッジに対するデブロッキング処理の対象のマクロブロック72と、デリンギング処理の対象のマクロブロック73が、ばらばらに指定されていると、それらの処理のために内部メモリ8に読み込まれた画素データが有効に使用されず、外部メモリ10へのデータアクセスが不所望に増大してしまう。本実施形態では、デブロッキング処理及びデリンギング処理の対象のブロックが最適に選択されることによって外部メモリ10へのデータアクセス量が有効に削減されている。
1:動画像復号化装置
2:可変長復号化器
3:逆DC/AC予測器
4:逆量子化器
5:逆DCT演算器
6:動きベクトル補償演算器
7:加算器
8:内部メモリ
9:デブロッキング/デリンギング演算部
10:外部メモリ
11:バス
12:デブロッキングフィルタ処理回路
12A:クリッピング処理回路
13:デリンギングフィルタ処理回路
13A:閾値決定処理回路
13B:指数取得処理回路
13C:クリッピング処理回路
14:共通処理回路
15:レジスタ部
16:乗算演算部
17:加減算部
18:判定部
19:加算演算部
20:出力レジスタ
21:セレクタ
310〜319:レジスタ
322〜326:シフタ
330、332〜336、338、339:セレクタ
351〜355:判定回路
361〜365:セレクタ
371〜375:加算器
41:対象マクロブロック
42〜53:ブロック
54〜57:画素
58、59:ブロック
60〜63:画素
64、65、66:ブロック
1010〜1019:画素
2:可変長復号化器
3:逆DC/AC予測器
4:逆量子化器
5:逆DCT演算器
6:動きベクトル補償演算器
7:加算器
8:内部メモリ
9:デブロッキング/デリンギング演算部
10:外部メモリ
11:バス
12:デブロッキングフィルタ処理回路
12A:クリッピング処理回路
13:デリンギングフィルタ処理回路
13A:閾値決定処理回路
13B:指数取得処理回路
13C:クリッピング処理回路
14:共通処理回路
15:レジスタ部
16:乗算演算部
17:加減算部
18:判定部
19:加算演算部
20:出力レジスタ
21:セレクタ
310〜319:レジスタ
322〜326:シフタ
330、332〜336、338、339:セレクタ
351〜355:判定回路
361〜365:セレクタ
371〜375:加算器
41:対象マクロブロック
42〜53:ブロック
54〜57:画素
58、59:ブロック
60〜63:画素
64、65、66:ブロック
1010〜1019:画素
Claims (12)
- 圧縮画像データから復号画像データを生成する復号化器と、
前記復号画像データに対してデブロッキング処理及びデリンギング処理を行うデブロッキング/デリンギング演算部
とを具備し、
前記デブロッキング/デリンギング演算部は、前記デブロッキング処理を構成する複数の処理の一部と、前記デリンギング処理を構成する複数の処理の一部を実行する共通処理回路を備える
動画像復号化装置。 - 請求項1に記載の動画像復号化装置であって、
前記共通処理回路は、
(1)ISO/IEC 14496−2:2001(E)Annex F.3に規定された値eq_cntを算出する第1処理;
(2)ISO/IEC 14496−2:2001(E)Annex F.3に規定された、下記式:
(3)ISO/IEC 14496−2:2001(E)Annex F.3に規定された周波数成分a3,0,a3,1,a3,2を算出する第3処理;及び
(4)ISO/IEC 14496−2:2001(E)Annex F.3に規定された適応フィルタリングを行う第4処理
のうちの少なくとも2つに関与する
動画像復号化装置。 - 請求項2に記載の動画像復号化装置であって、
前記共通処理回路は、
処理される画素データを保存するレジスタ部と、
前記レジスタ部に保存された前記画素データに対して乗算を実行可能に構成された乗算演算部と、
前記乗算演算部の出力に対して加算及び減算を実行可能に構成された加減算部と、
前記加減算部の出力と、所定の閾値とを比較する判定演算を実行可能に構成された判定部と、
前記判定部の出力を加算する加算部
とを備えており、これにより、前記共通処理回路が前記第2処理乃至前記第4処理の少なくとも一つと、前記第1処理とを実行可能に構成された
動画像復号化装置。 - 請求項2に記載の動画像復号化装置であって、
前記共通処理回路は、
処理される画素データを保存するレジスタ部と、
前記レジスタ部に保存された前記画素データに対して乗算を実行可能に構成された乗算演算部と、
前記乗算演算部の出力に対して加算及び減算を実行可能に構成された加減算部と、
前記加減算部の出力を加算する加算部
とを備えており、これにより、前記共通処理回路が前記第2処理乃至前記第4処理の少なくとも2つを実行可能に構成された
動画像復号化装置。 - 請求項1に記載の動画像復号化装置であって、
更に、
前記復号化器の出力に接続された内部メモリを備え、
前記内部メモリは、あるマクロブロックに対応する復号画像データを受け取ると、受け取った前記復号画像データの一部である部分データを前記デブロッキング/デリンギング演算部に転送し、
前記デブロッキング/デリンギング演算部は、前記マクロブロックに隣接する第1ブロックの復号画像データと、転送された前記部分データとを用いて前記デブロッキング処理を行う
動画像復号化装置。 - 請求項5に記載の動画像復号化装置であって、
前記第1ブロックは、前記マクロブロックの左上のブロックの左に隣接するブロックであり、
前記デブロッキング/デリンギング演算部は、前記第1ブロックの復号画像データと前記部分データとを用いて、前記第1ブロックの縦方向のエッジに対するデブロッキング処理を行う
動画像復号化装置。 - 請求項6に記載の動画像復号化装置であって、
前記デブロッキング/デリンギング演算部は、前記第1ブロックの上に隣接する第2ブロックと、前記第1ブロックの左に隣接する第3ブロックと、前記第2ブロックの左に隣接する第4ブロックの縦方向のエッジに対するデブロッキング処理を行い、且つ、前記第4ブロックの左に隣接する第5ブロックの横方向のエッジに対するデブロッキング処理を行う
動画像復号化装置。 - 請求項7に記載の動画像復号化装置であって、
前記デブロッキング/デリンギング演算部は、前記第5ブロックの上に隣接する第6ブロックと、前記第5ブロックの左に隣接する第7ブロックと、前記第6ブロックの左に隣接する第8ブロックの横方向のエッジに対するデブロッキング処理を行う
動画像復号化装置。 - 請求項1に記載の動画像復号化装置であって、
更に、
内部メモリと、
外部メモリ
とを備え、
前記内部メモリは、あるマクロブロックに対応する復号画像データを前記復号化器から受け取ると、前記マクロブロックに対して所定の相対位置に位置する第1乃至第4ブロックの復号画像データを前記外部メモリから受け取って前記前記デブロッキング/デリンギング演算部に転送し、
前記デブロッキング/デリンギング演算部は、前記内部メモリから転送さえた前記第1乃至第4ブロックの復号画像データを用いて横方向のエッジに対するデブロッキング処理を行って前記第1乃至第4ブロックのデブロッキング処理後画像データを生成し、前記第1乃至第4ブロックのデブロッキング処理後画像データを前記内部メモリに転送し、前記第1乃至第4ブロックのデブロッキング処理後画像データに対して前記デリンギング処理を行って前記第1乃至第4ブロックのデリンギング処理後画像データを生成し、前記第1乃至第4ブロックのデリンギング処理後画像データを前記外部メモリに転送する
動画像復号化装置。 - 請求項9に記載の動画像復号化装置であって、
前記第2ブロックは、前記第1ブロックの上に隣接するブロックであり、
前記第3ブロックは、前記第1ブロックの左に隣接するブロックであり、
前記第4ブロックは、前記第2ブロックの左に隣接するブロックである
動画像復号化装置。 - 処理される画素データを保存するレジスタ部と、
前記レジスタ部に保存された前記画素データに対して乗算を実行可能に構成された乗算演算部と、
前記乗算演算部の出力に対して加算及び減算を実行可能に構成された加減算部と、
前記加減算部の出力と、所定の閾値とを比較する判定演算を実行可能に構成された判定部と、
前記判定部の出力を加算する加算部
とを具備する
デブロッキング/デリンギング処理回路。 - 処理される画素データを保存するレジスタ部と、
前記レジスタ部に保存された前記画素データに対して乗算を実行可能に構成された乗算演算部と、
前記乗算演算部の出力に対して加算及び減算を実行可能に構成された加減算部と、
前記加減算部の出力を加算する加算部
とを具備する
デブロッキング/デリンギング処理回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005221727A JP2007043224A (ja) | 2005-07-29 | 2005-07-29 | 動画像復号化装置、デブロッキング/デリンギング処理回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005221727A JP2007043224A (ja) | 2005-07-29 | 2005-07-29 | 動画像復号化装置、デブロッキング/デリンギング処理回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007043224A true JP2007043224A (ja) | 2007-02-15 |
Family
ID=37800836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005221727A Withdrawn JP2007043224A (ja) | 2005-07-29 | 2005-07-29 | 動画像復号化装置、デブロッキング/デリンギング処理回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007043224A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007180723A (ja) * | 2005-12-27 | 2007-07-12 | Toshiba Corp | 画像処理装置及び画像処理方法 |
JP2008028553A (ja) * | 2006-07-19 | 2008-02-07 | Sony Corp | 映像信号処理装置及び方法、並びに映像信号復号装置 |
JP2009171541A (ja) * | 2008-01-18 | 2009-07-30 | Lianfa Science & Technology Co Ltd | ピクチャフレームを処理する装置および方法 |
-
2005
- 2005-07-29 JP JP2005221727A patent/JP2007043224A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007180723A (ja) * | 2005-12-27 | 2007-07-12 | Toshiba Corp | 画像処理装置及び画像処理方法 |
JP2008028553A (ja) * | 2006-07-19 | 2008-02-07 | Sony Corp | 映像信号処理装置及び方法、並びに映像信号復号装置 |
JP2009171541A (ja) * | 2008-01-18 | 2009-07-30 | Lianfa Science & Technology Co Ltd | ピクチャフレームを処理する装置および方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6335365B2 (ja) | 復号装置 | |
JP4625240B2 (ja) | コンピュータ実施される方法、システムおよびコンピュータ可読媒体 | |
JP2003333599A (ja) | 動き予測および動き補償におけるサブピクセル補間 | |
JP2003333604A (ja) | ベクトル変換方法およびシステム | |
JP6989699B2 (ja) | ビデオ符号化のためのインター予測機器及び方法の補間フィルタ | |
CN101627626A (zh) | 运动矢量选择 | |
JP7195348B2 (ja) | ビデオコーディングにおけるフィルタリングのための装置および方法 | |
US7826535B2 (en) | Adaptive pixel processing | |
JP2005012799A (ja) | ブロックに基いた動き補償装置および方法 | |
JP2007043224A (ja) | 動画像復号化装置、デブロッキング/デリンギング処理回路 | |
JP5116803B2 (ja) | フィルタ装置、フィルタリング方法、およびフィルタリングプログラム | |
JP7431847B2 (ja) | 予測値の確定方法、エンコーダー、デコーダー及びコンピューター記憶媒体 | |
CN111343465A (zh) | 电子电路和电子设备 | |
JP2009015637A (ja) | 演算ユニット及び画像フィルタリング装置 | |
JP4571069B2 (ja) | 動画像符号化装置 | |
JP6811931B2 (ja) | 画像復号装置、画像復号方法及びプログラム | |
CN114175659A (zh) | 用于双向光流的比特宽度控制的装置和方法 | |
Skarabot et al. | FPGA architecture for a videowall image processor | |
JPH07307942A (ja) | 画像雑音除去装置 | |
JP6912642B2 (ja) | 画像復号装置、画像復号方法及びプログラム | |
JP4290608B2 (ja) | 画像処理回路,及び画像処理方法 | |
US20240187579A1 (en) | Video coding apparatus, video coding method, video coding program, and non-transitory recording medium | |
JP4558409B2 (ja) | フィルタ装置、フィルタリング方法、およびフィルタリングプログラム | |
Lee et al. | Design of a motion compensation unit for H. 264 decoder using 2-dimensional circular register files | |
JP2016054513A (ja) | 動画像符号化装置、動画像符号化方法、動画像符号化プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20081007 |