(57)【要約】【課題】  少ないハードウェア資源でデブロッキング処理とデリンギング処理とを実行できる動画像復号化装置を提供する。【解決手段】  本発明による動画像復号化装置は、圧縮画像データから復号画像データを生成する復号化器（２〜７）と、前記復号画像データに対してデブロッキング処理及びデリンギング処理を行うデブロッキング／デリンギング演算部（９）とを具備している。前記デブロッキング／デリンギング演算部（９）は、前記デブロッキング処理を構成する複数の処理の一部と、前記デリンギング処理を構成する複数の処理の一部を実行する共通処理回路を備える。【選択図】  図６
2007043224.tif 000002
【特許請求の範囲】
【請求項１】
圧縮画像データから復号画像データを生成する復号化器と、
前記復号画像データに対してデブロッキング処理及びデリンギング処理を行うデブロッキング／デリンギング演算部
とを具備し、
前記デブロッキング／デリンギング演算部は、前記デブロッキング処理を構成する複数の処理の一部と、前記デリンギング処理を構成する複数の処理の一部を実行する共通処理回路を備える
動画像復号化装置。
【請求項２】
請求項１に記載の動画像復号化装置であって、
前記共通処理回路は、
（１）ＩＳＯ／ＩＥＣ  １４４９６−２：２００１（Ｅ）Ａｎｎｅｘ  Ｆ．３に規定された値ｅｑ＿ｃｎｔを算出する第１処理；
（２）ＩＳＯ／ＩＥＣ  １４４９６−２：２００１（Ｅ）Ａｎｎｅｘ  Ｆ．３に規定された、下記式：
【数１】
2007043224.tif 000008
で表される第２処理（ここでｎは、１以上８以下の整数であり、ｖ１〜ｖ９は、デブロッキング処理前の画素値であり、ｖｎ’は、デブロッキング処理後の画素値である）；
（３）ＩＳＯ／ＩＥＣ  １４４９６−２：２００１（Ｅ）Ａｎｎｅｘ  Ｆ．３に規定された周波数成分ａ３，０，ａ３，１，ａ３，２を算出する第３処理；及び
（４）ＩＳＯ／ＩＥＣ  １４４９６−２：２００１（Ｅ）Ａｎｎｅｘ  Ｆ．３に規定された適応フィルタリングを行う第４処理
のうちの少なくとも２つに関与する
動画像復号化装置。
【請求項３】
請求項２に記載の動画像復号化装置であって、
前記共通処理回路は、
処理される画素データを保存するレジスタ部と、
前記レジスタ部に保存された前記画素データに対して乗算を実行可能に構成された乗算演算部と、
前記乗算演算部の出力に対して加算及び減算を実行可能に構成された加減算部と、
前記加減算部の出力と、所定の閾値とを比較する判定演算を実行可能に構成された判定部と、
前記判定部の出力を加算する加算部
とを備えており、これにより、前記共通処理回路が前記第２処理乃至前記第４処理の少なくとも一つと、前記第１処理とを実行可能に構成された
動画像復号化装置。
【請求項４】
請求項２に記載の動画像復号化装置であって、
前記共通処理回路は、
処理される画素データを保存するレジスタ部と、
前記レジスタ部に保存された前記画素データに対して乗算を実行可能に構成された乗算演算部と、
前記乗算演算部の出力に対して加算及び減算を実行可能に構成された加減算部と、
前記加減算部の出力を加算する加算部
とを備えており、これにより、前記共通処理回路が前記第２処理乃至前記第４処理の少なくとも２つを実行可能に構成された
動画像復号化装置。
【請求項５】
請求項１に記載の動画像復号化装置であって、
更に、
前記復号化器の出力に接続された内部メモリを備え、
前記内部メモリは、あるマクロブロックに対応する復号画像データを受け取ると、受け取った前記復号画像データの一部である部分データを前記デブロッキング／デリンギング演算部に転送し、
前記デブロッキング／デリンギング演算部は、前記マクロブロックに隣接する第１ブロックの復号画像データと、転送された前記部分データとを用いて前記デブロッキング処理を行う
動画像復号化装置。
【請求項６】
請求項５に記載の動画像復号化装置であって、
前記第１ブロックは、前記マクロブロックの左上のブロックの左に隣接するブロックであり、
前記デブロッキング／デリンギング演算部は、前記第１ブロックの復号画像データと前記部分データとを用いて、前記第１ブロックの縦方向のエッジに対するデブロッキング処理を行う
動画像復号化装置。
【請求項７】
請求項６に記載の動画像復号化装置であって、
前記デブロッキング／デリンギング演算部は、前記第１ブロックの上に隣接する第２ブロックと、前記第１ブロックの左に隣接する第３ブロックと、前記第２ブロックの左に隣接する第４ブロックの縦方向のエッジに対するデブロッキング処理を行い、且つ、前記第４ブロックの左に隣接する第５ブロックの横方向のエッジに対するデブロッキング処理を行う
動画像復号化装置。
【請求項８】
請求項７に記載の動画像復号化装置であって、
前記デブロッキング／デリンギング演算部は、前記第５ブロックの上に隣接する第６ブロックと、前記第５ブロックの左に隣接する第７ブロックと、前記第６ブロックの左に隣接する第８ブロックの横方向のエッジに対するデブロッキング処理を行う
動画像復号化装置。
【請求項９】
請求項１に記載の動画像復号化装置であって、
更に、
内部メモリと、
外部メモリ
とを備え、
前記内部メモリは、あるマクロブロックに対応する復号画像データを前記復号化器から受け取ると、前記マクロブロックに対して所定の相対位置に位置する第１乃至第４ブロックの復号画像データを前記外部メモリから受け取って前記前記デブロッキング／デリンギング演算部に転送し、
前記デブロッキング／デリンギング演算部は、前記内部メモリから転送さえた前記第１乃至第４ブロックの復号画像データを用いて横方向のエッジに対するデブロッキング処理を行って前記第１乃至第４ブロックのデブロッキング処理後画像データを生成し、前記第１乃至第４ブロックのデブロッキング処理後画像データを前記内部メモリに転送し、前記第１乃至第４ブロックのデブロッキング処理後画像データに対して前記デリンギング処理を行って前記第１乃至第４ブロックのデリンギング処理後画像データを生成し、前記第１乃至第４ブロックのデリンギング処理後画像データを前記外部メモリに転送する
動画像復号化装置。
【請求項１０】
請求項９に記載の動画像復号化装置であって、
前記第２ブロックは、前記第１ブロックの上に隣接するブロックであり、
前記第３ブロックは、前記第１ブロックの左に隣接するブロックであり、
前記第４ブロックは、前記第２ブロックの左に隣接するブロックである
動画像復号化装置。
【請求項１１】
処理される画素データを保存するレジスタ部と、
前記レジスタ部に保存された前記画素データに対して乗算を実行可能に構成された乗算演算部と、
前記乗算演算部の出力に対して加算及び減算を実行可能に構成された加減算部と、
前記加減算部の出力と、所定の閾値とを比較する判定演算を実行可能に構成された判定部と、
前記判定部の出力を加算する加算部
とを具備する
デブロッキング／デリンギング処理回路。
【請求項１２】
処理される画素データを保存するレジスタ部と、
前記レジスタ部に保存された前記画素データに対して乗算を実行可能に構成された乗算演算部と、
前記乗算演算部の出力に対して加算及び減算を実行可能に構成された加減算部と、
前記加減算部の出力を加算する加算部
とを具備する
デブロッキング／デリンギング処理回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像復号化装置に関し、特に、デブロッキング処理とデリンギング処理とを行う動画像の復号化技術に関する。
【背景技術】
【０００２】
離散コサイン変換（Discrete Cosine Translation）及び量子化（quantization）を使用する動画像符号化及び復号化技術、例えば、ＭＰＥＧ４（Moving Picture Expert Group 4）における一つの問題は、符号化／復号化の過程においてブロックノイズ及びリンギングノイズが発生することである。ブロックノイズとは、ＤＣＴ（discrete cosine transformation）及び逆ＤＣＴの処理の単位となるブロック（最も典型的には、８×８画素）の境界付近に生じるノイズであり、主として、ＤＣＴ及び逆ＤＣＴがブロック毎に行われることに起因している。リンギングノイズは、量子化及び逆量子化の処理によって画像のエッジの近傍で発生するノイズであり、画像のエッジを不明瞭にする。
【０００３】
ブロックノイズ及びリンギングノイズを軽減するために、動画像の復号化では、デブロッキング処理及びデリンギング処理が行われることがある。ＭＰＥＧ４において行われる、デブロッキング処理及びデリンギング処理は、ＩＳＯ／ＩＥＣ  １４４９６−２：２００１（Ｅ）Ａｎｎｅｘ  Ｆ．３に規定されている。デブロッキング処理及びデリンギング処理を行う回路を備えた動画像復号化装置は、例えば特開２００３−１８６００号公報（特許文献１）に開示されている。また、ＭＰＥＧ４にデブロッキング処理を行うためのフィルタの構成が、特開２００２−６４８２０号公報（特許文献２）に開示されている。以下では、ＭＰＥＧ４において行われるデブロッキング処理及びデリンギング処理について詳細に説明する。
【０００４】
（１）デブロッキング処理
ＭＰＥＧ４に規定されているデブロッキング処理には、ＤＣオフセットモードとＤＣデフォルトモードの２種類のモードがある。ＤＣオフセットモードとＤＣデフォルトモードのいずれが採用されるかは、ブロックの境界近傍に位置する画素１０１０〜１０１９の画素値ｖ０〜ｖ９（図１参照）から決定される。
【０００５】
図２を参照しながら具体的に説明すると、デブロッキング処理では、まず、画素値ｖ０〜ｖ９から下記式（１−１）：
ｅｑ＿ｃｎｔ＝φ（ｖ０−ｖ１）＋φ（ｖ１−ｖ２）＋φ（ｖ２−ｖ３）
＋φ（ｖ３−ｖ４）＋φ（ｖ４−ｖ５）＋φ（ｖ５−ｖ６）
＋φ（ｖ６−ｖ７）＋φ（ｖ７−ｖ８）＋φ（ｖ８−ｖ９），・・・（１−１）
で定義される値ｅｑ＿ｃｎｔが算出される（ステップＳ０１）。ここでφ（γ）は、下記式によって定義される関数である：
φ（γ）＝１，  （｜ｒ｜≦ＴＨＲ１の場合）      
φ（γ）＝０．  （それ以外の場合）              ・・・（１−２）
ここでＴＨＲ１は、所定の閾値である。
【０００６】
値ｅｑ＿ｃｎｔに応じて、ＤＣオフセットモードとＤＣデフォルトモードとの一方が選択される（ステップＳ０２）。値ｅｑ＿ｃｎｔが所定の閾値ＴＨＲ２以上である場合には、ＤＣオフセットモードが選択され、そうでないときにはＤＣデフォルトモードが選択される。
【０００７】
ＤＣオフセットモードが選択された場合、画素１０１１〜１０１８に関してフィルタ処理が行われ、デブロッキング処理後の画素値ｖ１’〜ｖ８’が算出される。より具体的には、まず、画素値ｖ１〜ｖ８の最大値ｍａｘ及び最小値ｍｉｎが算出される（ステップＳ０３）。更に、それらの差分絶対値｜ｍａｘ−ｍｉｎ｜が量子化パラメータＱＰの２倍と比較される（ステップＳ０４）。差分絶対値｜ｍａｘ−ｍｉｎ｜が２・ＱＰよりも大きい場合には、下記式（１−３）（１−４）で表されるフィルタ処理が行われる（ステップＳ０５）：
【数１】
2007043224.tif 000003
ここでｎは、１以上８以下の整数であり、ｖｎ’は、デブロッキング処理後の画素１０１ｎの画素値である。
【０００８】
式（１−３）、（１−４）を、より具体的な形式に展開すると、下記式で表される：
【数２】
2007043224.tif 000004
ここでｐｍｉｎは、｜ｖ１−ｖ０｜がＱＰよりも小さいときｖ０、そうでない場合ｖ１に一致する値である。一方、ｐｍａｘは、｜ｖ８−ｖ９｜がＱＰよりも小さいときｖ９、そうでない場合ｖ８に一致する値である。
【０００９】
絶対値｜ｍａｘ−ｍｉｎ｜が２・ＱＰ以下である場合には、フィルタ処理は行われない。画素１０１ｎの画素値ｖ１〜ｖ８が、そのまま、ＤＣオフセットモードでのデブロッキング処理後の画素値ｖ１’〜ｖ８’として決定される。
【００１０】
一方、ＤＣデフォルトモードによるデブロッキング処理では、画素１０１４、１０１５に関してフィルタ処理が行われ、デブロッキング処理後の画素値ｖ４’，ｖ５’が算出される。
【００１１】
より具体的には、まず、周波数成分ａ３，０，ａ３，１，ａ３，２が、近似ＤＣＴカーネル［２  −５  ５  −２］とピクセルベクトルとの内積からフィルタ処理によって算出される（ステップＳ０６）。即ち、
ａ３，０＝（［２  −５  ５  −２］・［ｖ３  ｖ４  ｖ５  ｖ６］Ｔ）／／８，
ａ３，１＝（［２  −５  ５  −２］・［ｖ１  ｖ２  ｖ３  ｖ４］Ｔ）／／８，・・・（１−６）
ａ３，２＝（［２  −５  ５  −２］・［ｖ５  ｖ６  ｖ７  ｖ８］Ｔ）／／８．
【００１２】
更に、クリッピング処理が行われる（ステップＳ０８）。クリッピング処理では、下記式：
ｖ４’＝ｖ４−ｄ，
ｖ４’＝ｖ５＋ｄ，                                          ・・・（１−７）
ｄ＝ＣＬＩＰ（５（ａ３，０’−ａ３，０）／／８，０，（ｖ４−ｖ５）／２），
により、ＤＣデフォルトモードでのデブロッキング処理後の画素値ｖ４’，ｖ５’が算出される。ここでＣＬＩＰ（ｘ，ｐ，ｑ）は、ｘをｐとｑの間の値に制限する関数であり、ａ３，０’は、下記式で求められる値である：
ａ３，０’＝ＳＩＧＮ（ａ３，０）・ＭＩＮ（｜ａ３，０｜，｜ａ３，１｜，｜ａ３，２｜）．
・・・（１−８）
【００１３】
（２）デリンギング処理
デリンギング処理は、図３に示されているように、４つの処理で構成されている。まず、ＩＳＯ／ＩＥＣ  １４４９６−２：２００１（Ｅ）Ａｎｎｅｘ  ＦのセクションＦ．３．２．１に規定されているように、各ブロックに対して閾値ｔｈｒを決定する閾値決定処理（threshold determination）が行われる（ステップＳ０９）。
【００１４】
続いて、セクションＦ．３．２．２に規定されているように、指数取得（index acquisition）が各画素について行われる（ステップＳ１０）。より具体的には、あるブロックのある座標（ｈ，ｖ）の画素値をｒｅｃ（ｈ，ｖ）として、対応するバイナリ指数（binary index）ｂｉｎ（ｈ，ｖ）は、下記の式によって表される：
ｂｉｎ（ｈ，ｖ）＝１，  （ｒｅｃ（ｈ，ｖ）≧ｔｈｒが成立する場合）
ｂｉｎ（ｈ，ｖ）＝０．  （そうでない場合）
ここでｔｈｒは所定の閾値である。
【００１５】
更に、セクションＦ．３．２．３に規定されているように、適応フィルタリング（adaptive filtering）が行われる（ステップＳ１１）。一のブロック（８×８画素）の適応フィルタリングは、当該ブロック及びその境界に接する画素からなる１０×１０画素の画素値及び、ステップＳ１０で決定されたバイナリ指数が使用される。図４は、１０×１０画素のバイナリ指数の例を示している。
【００１６】
適応フィルタリングは、３×３のウィンドウ内のバイナリ指数が同一である場合、即ち、全てが”０”であるか、全てが”１”であるかの場合に行われる。（ｉ，ｊ）を３×３のウィンドウ内の座標であるとして（ｉ，ｊ＝−１、０、１）、使用されるフィルタ係数ｃｏｅｆ（ｉ，ｊ）は、図５に示されているとおりである。ここで、中央の画素の定数、即ちｃｏｅｆ（０，０）は、フィルタリングの対象の画素に対応している。座標（ｈ，ｖ）の画素に対応するフィルタ出力ｆｌｔ’（ｈ，ｖ）は、下記式によって得られる。
【数３】
2007043224.tif 000005
【００１７】
式（１−９）を、より具体的な形式に展開すると、下記式：
【数４】
2007043224.tif 000006
が得られる。
【００１８】
更に、式（１−９）（即ち、式（１−１０））によって得られたフィルタ出力ｆｌｔ’（ｈ，ｖ）に対してクリッピングが行われて、座標（ｈ，ｖ）に位置する画素のデリンギング処理後の画素値ｆｌｔ（ｈ，ｖ）が算出される（ステップＳ１２）。画素値ｆｌｔ（ｈ，ｖ）の算出方法は、下記の３つに場合に応じて異なる：
（ａ）ｆｌｔ’（ｈ，ｖ）−ｒｅｃ（ｈ，ｖ）＞ｍａｘ＿ｄｉｆｆである場合
ｆｌｔ（ｈ，ｖ）＝ｒｅｃ（ｈ，ｖ）＋ｍａｘ＿ｄｉｆｆ，
（ｂ）ｆｌｔ’（ｈ，ｖ）−ｒｅｃ（ｈ，ｖ）＜−ｍａｘ＿ｄｉｆｆである場合
ｆｌｔ（ｈ，ｖ）＝ｒｅｃ（ｈ，ｖ）−ｍａｘ＿ｄｉｆｆ，
（ｃ）いずれでもない場合、
ｆｌｔ（ｈ，ｖ）＝ｆｌｔ’（ｈ，ｖ）．
【特許文献１】特開２００３−１８６００号公報
【特許文献２】特開２００２−６４８２０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１９】
上述されたデブロッキング処理及びデリンギング処理を行う復号化装置の一つの問題は、これらの処理に多くのハードウェア資源を必要とすることである。例えば、特許文献１に記載の動画像復号化装置では、デブロッキング処理を行う回路（特許文献１ではローパスフィルタとして記載）と、デリンギング処理を行う回路（特許文献１では輪郭強調フィルタとして記載）とが別々に設けられている。しかし、発明者の検討によれば、このような構成は、デブロッキング処理とデリンギング処理とを行うために必要なハードウェア資源を無駄に増加させている。
【課題を解決するための手段】
【００２０】
上記の課題を解決するために、本発明は、以下に述べられる手段を採用する。その手段を構成する技術的事項の記述には、［特許請求の範囲］の記載と［発明を実施するための最良の形態］の記載との対応関係を明らかにするために、［発明を実施するための最良の形態］で使用される番号・符号が付加されている。但し、付加された番号・符号は、［特許請求の範囲］に記載されている発明の技術的範囲を限定的に解釈するために用いてはならない。
【００２１】
本発明による動画像復号化装置は、圧縮画像データから復号画像データを生成する復号化器（２−７）と、前記復号画像データに対してデブロッキング処理及びデリンギング処理を行うデブロッキング／デリンギング演算部（９）とを具備している。前記デブロッキング／デリンギング演算部（９）は、前記デブロッキング処理を構成する複数の処理の一部と、前記デリンギング処理を構成する複数の処理の一部を実行する共通処理回路（１４）を備える。
【００２２】
このように構成された動画像復号化装置では、デブロッキング処理とデリンギング処に含まれている類似の処理を共通処理回路（１４）で共通に処理することが出来、少ないハードウェア資源でデブロッキング処理及びデリンギング処理を実行できる。
【発明の効果】
【００２３】
本発明によれば、少ないハードウェア資源でデブロッキング処理とデリンギング処理とを実行できる動画像復号化装置が提供される。
【発明を実施するための最良の形態】
【００２４】
（動画像復号化装置の構成）
図６は、本発明の一実施形態に係る動画像復号化装置１の構成を示すブロック図である。動画像復号化装置１は、ＭＰＥＧ４に準拠した圧縮データを復号化する装置であり、具体的には、可変長復号化器２と、逆ＤＣ／ＡＣ予測器３と、逆量子化器４と、逆ＤＣＴ演算器５と、動きベクトル補償演算器６と、加算器７と、内部メモリ８と、デブロッキング／デリンギング演算部９と、外部メモリ１０とを備えている。動きベクトル補償演算器６と、内部メモリ８と、デブロッキング／デリンギング演算部９と、外部メモリ１０とは、バス１１を介して相互に接続されている。
【００２５】
可変長復号化器２は、圧縮データに対して可変長復号化を行う。逆ＤＣ／ＡＣ予測器３は、可変長復号化器２から出力された画像データに対して逆ＤＣ／ＡＣ予測を行う。逆量子化器４は、逆ＤＣ／ＡＣ予測器３から出力された画像データに対して逆量子化を行う。逆ＤＣＴ演算器５は、逆量子化器４から出力された画像データに対して逆ＤＣＴ演算を行う。
【００２６】
動きベクトル補償演算器６は、動きベクトル補償を行い、外部メモリ１０に保存されている前フレーム画像から予測画像データを生成する。加算器７は、動きベクトル補償演算器６から出力された予測画像データと、逆ＤＣＴ演算器５から出力された画像データを加算して復号画像データを生成する。内部メモリ８は、加算器７から出力される復号画像データを一時的に保存する。
【００２７】
デブロッキング／デリンギング演算部９は、フィルタ係数及びデータ入力手順を切り替えることにより、ＭＰＥＧ４に準拠したデブロッキング処理とデリンギング処理との両方を実行可能なように構成されている。後述されるように、本実施形態の動画像復号化装置１の一つの特徴は、デブロッキング／デリンギング演算部９においてデブロッキング処理に含まれる演算処理の一部と、デリンギング処理に含まれる演算処理の一部が共通の資源を用いて行われることである。
【００２８】
外部メモリ１０は、デブロッキング／デリンギング演算部９による処理後の画像データを保存し、また、ワーク領域としてデータを一次的に格納するために使用される。
【００２９】
図７は、本実施形態におけるデブロッキング／デリンギング演算部９の構成を示すブロック図である。デブロッキング／デリンギング演算部９は、デブロッキングフィルタ処理回路１２と、デリンギングフィルタ処理回路１３と、共通処理回路１４とを備えている。
【００３０】
デブロッキングフィルタ処理回路１２は、デブロッキング処理にのみ関連する処理を行うための回路である。より具体的には、デブロッキングフィルタ処理回路１２は、図２のステップＳ０７のクリッピング処理を行うクリッピング処理回路１２Ａを含み、その他、値ｅｑ＿ｃｎｔと閾値ＴＨＲ２を比較する比較器、上述の最大値ｍａｘ、最小値ｍｉｎを算出する回路、及び、差分絶対値｜ｍａｘ−ｍｉｎ｜と２ＱＰを比較する比較器を含んでいる。
【００３１】
デリンギングフィルタ処理回路１３は、デリンギング処理にのみ関連する処理を行うための回路であり、閾値決定処理回路１３Ａ、指数取得処理回路１３Ｂ、及びクリッピング処理回路１３Ｃを備えている。閾値決定処理回路１３Ａは、図３のステップＳ０９の閾値決定処理を行うための回路であり、指数取得処理回路１３Ｂは、ステップＳ１０の指数取得処理を行うための回路である。クリッピング処理回路１３Ｃは、ステップＳ１２のクリッピング処理を行うための回路である。
【００３２】
共通処理回路１４は、デブロッキング処理に含まれる処理の一部、及びデリンギング処理に含まれる処理の一部を、共通に行うことができるように構成されたフィルタ回路である。本実施形態の動画像復号化装置の一つの特徴は、共通処理回路１４を採用することにより、デブロッキング処理、及びデリンギング処理に使用されるハードウェア資源を削減していることにある。以下、共通処理回路１４について詳細に説明する。
【００３３】
（共通処理回路の構成及び動作）
図８Ａは、共通処理回路１４の構成を示す回路図である。共通処理回路１４は、レジスタ部１５と、乗算演算部１６と、加減算部１７と、判定部１８と、加算演算部１９と、出力レジスタ２０と、セレクタ２１とを備えている。レジスタ部１５は、レジスタ３１０〜３１９を備えている。
【００３４】
レジスタ部１５は、レジスタ３１０〜３１９を備えており、演算されるべき画素データを保持するために使用される。レジスタ３１０〜３１９に格納されている画素データは、それぞれ、以下、画素データＲ０〜Ｒ９と記載される。
【００３５】
乗算演算部１６は、レジスタ３１０〜３１９に保持されている画素データＲ０〜Ｒ９と所定のフィルタ係数との積を算出して出力し、又は乗算を行わずに画素データをそのまま出力するように構成されている。
【００３６】
より具体的には、乗算演算部１６は、シフタ３２２〜３２６と、セレクタ３３０、３３２〜３３６、３３８、３３９とを備えている。シフタ３２２、３２３は、それぞれレジスタ３１２、３１３に保持されている画素データＲ２、Ｒ３に対して１ビットの左シフトを行い、シフタ３２４は、レジスタ３１４に保持されている画素データＲ４に対して２ビットの左シフトを行う。更に、シフタ３２５、３２６は、レジスタ３１５、３１６に保持されている画素データＲ５、Ｒ６に対して１ビットの左シフトを行う。１ビットの左シフトは、２（＝２１）を乗じることと等価であり、２ビットの左シフトは、４（＝２２）を乗じることと等価であるから、シフタ３２２、３２３、３２５、３２６は、２を乗じる乗算器として機能し、シフタ３２４は、４を乗じる乗算器として機能する。
【００３７】
セレクタ３３０は、画素データＲ０とデータ”０”との一方を選択し、選択されたデータを出力する。データ”０”を選択することは、画素データＲ０に”０”を乗じることと等価であるから、セレクタ３３０は、画素データＲ０に”０”を乗じて出力し、又は、画素データＲ０をそのまま出力する乗算器として機能する。
【００３８】
セレクタ３３２は、その一方の入力がそれぞれレジスタ３１２に接続され、他方の入力がシフタ３２２に接続されている。したがって、シフタ３２２及びセレクタ３３２は、画素データＲ２に２を乗じて出力し、又は、画素データＲ２をそのまま出力する乗算器として機能する。同様に、シフタ３２３及びセレクタ３３３は、画素データＲ３に２を乗じて出力し、又は、画素データＲ３をそのまま出力する乗算器として機能し、シフタ３２４及びセレクタ３３４は、画素データＲ４に４を乗じて出力し、又は、画素データＲ４をそのまま出力する乗算器として機能する。更に、同様に、シフタ３２５及びセレクタ３３５は、画素データＲ５に２を乗じて出力し、又は、画素データＲ５をそのまま出力する乗算器として機能し、シフタ３２６及びセレクタ３３６は、画素データＲ６に２を乗じて出力し、又は、画素データＲ６をそのまま出力する乗算器として機能する。
【００３９】
セレクタ３３８は、画素データＲ８とデータ”０”との一方を選択し、セレクタ３３９は、画素データＲ９とデータ”０”との一方を選択する。データ”０”を選択することは、”０”を乗じることと等価であるから、セレクタ３３８、３３９は、画素データＲ８、Ｒ９に”０”を乗じて出力し、又は、画素データＲ８、Ｒ９をそのまま出力する乗算器として機能する。
【００４０】
加減算部１７は、乗算演算部１６の出力（すなわち、セレクタ３３０、レジスタ３１１、セレクタ３３２〜３３６、レジスタ３１７、セレクタ３３８、３３９の出力）に対して、加算演算、又は減算演算を行う。加減算部１７の入力ＩＮ０、ＩＮ２〜ＩＮ６、ＩＮ８、ＩＮ９は、それぞれ、セレクタ３３０、３３２〜３３６、３３８〜３３９の出力に接続されている。加減算部１７の動作は、共通処理回路１４が行うべき演算に応じて変更される。加減算部１７の動作の詳細は後述される。
【００４１】
判定部１８は、加減算部１７の出力と図２のステップＳ０１の値ｅｑ＿ｃｎｔの算出に使用される閾値ＴＨＲ１とを比較して式（１−１）の項を算出し、又は、加減算部１７の出力をそのまま出力するように構成されている。より具体的には、判定部１８は、判定回路３５１〜３５５と、セレクタ３６１〜３６６とを備えている。各判定回路３５１〜３５５の入力にはそれぞれ加減算部１７の出力ＯＵＴ１〜ＯＵＴ５が接続されており、判定回路３５１〜３５５のうちの判定回路３５ｋは、式（１−２）で定義されるφ（ＯＵＴｋ−ＴＨＲ１）を算出して出力する。ここでｋは、１以上５以下の整数である。
【００４２】
加算演算部１９は、加算器３７１〜３７５から構成されており、判定部１８の出力、及びセレクタ２１の出力の和を算出する。
【００４３】
出力レジスタ２０は、加算演算部１９の出力を一時的に保存する。後述されるように、出力レジスタ２０は、デブロッキング処理（図２）の値ｅｑ＿ｃｎｔを算出する処理（ステップＳ０２）において重要な役割を果たす。
【００４４】
セレクタ２１は、データ”０”と出力レジスタ２０の出力との一方を選択して出力する。
【００４５】
このように構成されている共通処理回路１４は、乗算演算部１６、加減算部１７、及び判定部１８を適切に設定することにより、デブロッキング処理に関連する下記３つの処理：値ｅｑ＿ｃｎｔ算出（ステップＳ０１）、フィルタ処理（１）（ステップＳ０５）、及びフィルタ処理（２）（ステップＳ０６）、並びに、デリンギング処理のうちの適応フィルタリング（ステップＳ１１）の処理を行うことができる。このような共通処理回路１４の構成は、少ないハードウェア資源でデブロッキング処理及びデリンギング処理を行うことを可能にする。以下では、上記の４つの処理を行うときの共通処理回路１４の設定及び動作が説明される。
【００４６】
（１）値ｅｑ＿ｃｎｔ算出（ステップＳ０１）
デブロッキング処理のモードを選択するために使用される値ｅｑ＿ｃｎｔの算出は、２クロックサイクルをかけて行われる。第１のクロックサイクルでは、式（１−１）の奇数番目の項の和が算出される。第２のクロックサイクルでは、更に、第１のクロックサイクルで算出された和に、偶数番目の項の和が加算され、これにより、値ｅｑ＿ｃｎｔが最終的に算出される。以下、値ｅｑ＿ｃｎｔが算出される過程が詳細に説明される。
【００４７】
図９に示されているように、第１のクロックサイクルでは、レジスタ部１５、乗算演算部１６、加減算部１７、判定部１８、及びセレクタ２１が下記のように設定される：
（ａ）レジスタ部１５のレジスタ３１０〜３１９には、それぞれ、画素１０１０〜１０１９の画素データｖ０〜ｖ９が書き込まれる。
（ｂ）乗算演算部１６は、レジスタ３１０〜３１９に書き込まれた画素データｖ０〜ｖ９をそのまま（乗算を行うことなく）出力するように設定される。より具体的には、乗算演算部１６は、セレクタ３３０がレジスタ３１０の出力を選択し、セレクタ３３２〜３３６がそれぞれレジスタ３１２〜３１６の出力を選択し、セレクタ３３８、３３９が、それぞれレジスタ３１８、３１９の出力を選択するように設定される。
（ｃ）加減算部１７は、その入力と出力との間に下記式：
ＯＵＴ１＝ＩＮ０−ＩＮ１，      ・・・（２−１）
ＯＵＴ２＝ＩＮ２−ＩＮ３，      ・・・（２−２）
ＯＵＴ３＝ＩＮ４−ＩＮ５，      ・・・（２−３）
ＯＵＴ４＝ＩＮ６−ＩＮ７，      ・・・（２−４）
ＯＵＴ５＝ＩＮ８−ＩＮ９．      ・・・（２−５）
が成立するように設定される。
（ｄ）判定部１８は、φ（ＯＵＴ１−ＴＨＲ１）〜φ（ＯＵＴ５−ＴＨＲ１）を算出するように、即ち、セレクタ３６１〜３６５が判定回路３５１〜３５５を選択するように設定される。
（ｅ）セレクタ２１は、データ”０”を選択する。
【００４８】
図１０は、このように設定された共通処理回路１４の動作を示す概念図である。乗算演算部１６では乗算が行われないから、加減算部１７の入力ＩＮ０〜ＩＮ９には、画素データｖ０〜ｖ９が入力される。加減算部１７は、式（２−１）〜（２−５）に従って動作するから、判定回路３５１〜３５５の入力には、それぞれ、ｖ０−ｖ１、ｖ２−ｖ３、ｖ４−ｖ５、ｖ６−ｖ７、ｖ８−ｖ９が入力される。従って、判定回路３５１〜３５５の出力は、それぞれ、φ（ｖ０−ｖ１）、φ（ｖ２−ｖ３）、φ（ｖ４−ｖ５）、φ（ｖ６−ｖ７）、φ（ｖ８−ｖ９）となる。加算演算部１９は、判定回路３５１〜３５５の出力の和を算出し、出力レジスタ２０に出力する。この結果、出力レジスタ２０には、φ（ｖ０−ｖ１）＋φ（ｖ２−ｖ３）＋φ（ｖ４−ｖ５）＋φ（ｖ６−ｖ７）＋φ（ｖ８−ｖ９）が書き込まれる。
【００４９】
図９に戻り、第２のクロックサイクルでは、乗算演算部１６、加減算部１７、及びセレクタ２１の動作が、下記のように切り替えられる：
（ａ）乗算演算部１６のセレクタ３３０、３３９は、データ”０”を選択する状態に切り替えられる。言い換えれば、乗算演算部１６は、画素データｖ０、ｖ９にデータ”０”を乗じ、他の画素データｖ１〜ｖ８をそのまま出力するように設定される。
（ｂ）加減算部１７は、その入力と出力との間に下記式：
ＯＵＴ１＝ＩＮ１−ＩＮ２，      ・・・（２−６）
ＯＵＴ２＝ＩＮ３−ＩＮ４，      ・・・（２−７）
ＯＵＴ３＝ＩＮ５−ＩＮ６，      ・・・（２−８）
ＯＵＴ４＝ＩＮ７−ＩＮ８，      ・・・（２−９）
ＯＵＴ５＝α（＞ＴＨＲ１）．                  ・・・（２−１０）
が成立するように設定される。
（ｃ）セレクタ２１は、出力レジスタ２０の出力を選択する。
【００５０】
図１１は、このように設定された共通処理回路１４の動作を示す概念図である。加減算部１７の入力ＩＮ１〜ＩＮ８には、画素データｖ１〜ｖ８が入力される。加減算部１７は、式（２−６）〜（２−１０）に従って動作するから、判定回路３５１〜３５５の入力には、それぞれ、ｖ１−ｖ２、ｖ３−ｖ４、ｖ５−ｖ６、ｖ７−ｖ８、αが入力される。従って、判定回路３５１〜３５５の出力は、それぞれ、φ（ｖ１−ｖ２）、φ（ｖ３−ｖ４）、φ（ｖ５−ｖ６）、φ（ｖ７−ｖ８）、０となる。加算演算部１９は、判定回路３５１〜３５５の出力及びセレクタ２１の出力の和を算出し、出力レジスタ２０に出力する。この結果、加算演算部１９の出力には、値ｅｑ＿ｃｎｔ（＝φ（ｖ０−ｖ１）＋φ（ｖ１−ｖ２）＋φ（ｖ２−ｖ３）＋φ（ｖ３−ｖ４）＋φ（ｖ４−ｖ５）＋φ（ｖ５−ｖ６）＋φ（ｖ６−ｖ７）＋φ（ｖ７−ｖ８）＋φ（ｖ８−ｖ９））が生成される。値ｅｑ＿ｃｎｔは、出力レジスタ２０を介して出力され、デブロッキング処理のモードの選択に使用される。
【００５１】
（２）フィルタ処理（１）（ステップＳ０５）
ステップＳ０５のフィルタ処理では、フィルタ処理後の画素データｖ１’〜ｖ８’が式（１−５）に従って順次に算出される。図９を参照して、ステップＳ０５のフィルタ処理が行われる場合には、共通処理回路１４のレジスタ部１５、乗算演算部１６、加減算部１７、判定部１８、及びセレクタ２１が下記のように設定される：
（ａ）レジスタ部１５の各レジスタ３１０〜３１９には、画素データｖ１〜ｖ８、及び値ｐｍｉｎ、ｐｍａｘのうち、必要なものが書き込まれる。
（ｂ）乗算演算部１６は、レジスタ３１２〜３１６に書き込まれたデータに対して乗算を行うように設定される。より具体的には、乗算演算部１６は、セレクタ３３２〜３３６がそれぞれシフタ３２６〜３２６の出力を選択するように設定される。セレクタ３３０、３３８は、それぞれレジスタ３１０、３１８の出力を選択するように設定され、セレクタ３３９は、データ”０”を選択するように設定される。
（ｃ）加減算部１７は、その入力と出力との間に下記式：
ＯＵＴ１＝ＩＮ０＋ＩＮ１，      ・・・（３−１）
ＯＵＴ２＝ＩＮ２＋ＩＮ３，      ・・・（３−２）
ＯＵＴ３＝ＩＮ４＋ＩＮ５，      ・・・（３−３）
ＯＵＴ４＝ＩＮ６＋ＩＮ７，      ・・・（３−４）
ＯＵＴ５＝ＩＮ８＋ＩＮ９．      ・・・（３−５）
が成立するように設定される。
（ｄ）判定部１８は、加減算部１７の出力ＯＵＴ１〜ＯＵＴ５をそのまま出力する。
（ｅ）セレクタ２１は、データ”０”を選択する。
【００５２】
図１２は、このように設定された共通処理回路１４の動作を示す概念図である。図１２から理解されるように、レジスタ３１０〜３１８が保持するデータをそれぞれ、Ｒ０〜Ｒ８とすると、加算演算部１９の出力ＯＵＴは、下記式：
ＯＵＴ＝Ｒ０＋Ｒ１＋２・Ｒ２＋２・Ｒ３＋４・Ｒ４
＋２・Ｒ５＋２・Ｒ６＋Ｒ７＋Ｒ８．      ・・・（３−６）
で表される値をとる。
【００５３】
式（３−６）と式（１−５）との比較から理解されるように、ＤＣオフセットモードによるフィルタ処理後の画素データｖ１’〜ｖ８’は、レジスタ３１０〜３１８に適切なデータを書き込むことによって算出することができる。より具体的には、画素データｖ１’が算出される場合、レジスタ３１０〜３１３に値ｐｍｉｎが設定され、レジスタ３１４〜３１８に、それぞれ画素データｖ１〜ｖ５が設定される。これにより、式（１−５）の第１番目の式に従って画素データｖ１’を算出可能である。同様に、画素データｖ２’が算出される場合、レジスタ３１０〜３１２に値ｐｍｉｎが設定され、レジスタ３１３〜３１８に、それぞれ画素データｖ１〜ｖ６が設定される。画素データｖ３’の算出のためには、レジスタ３１０、３１１に値ｐｍｉｎが設定され、レジスタ３１２〜３１８に、それぞれ画素データｖ１〜ｖ７が設定される。画素データｖ４’の算出のためには、レジスタ３１０に値ｐｍｉｎが設定され、レジスタ３１１〜３１８に、それぞれ画素データｖ１〜ｖ８が設定される。画素データｖ５’の算出のためには、レジスタ３１０〜３１７に画素データｖ１〜ｖ８が設定され、レジスタ３１８に値ｐｍａｘが設定される。画素データｖ６’の算出のためには、レジスタ３１０〜３１６に画素データｖ２〜ｖ８が設定され、レジスタ３１８、３１９に値ｐｍａｘが設定される。画素データｖ７’の算出のためには、レジスタ３１０〜３１５に画素データｖ３〜ｖ８が設定され、レジスタ３１７〜３１９に値ｐｍａｘが設定される。そして、画素データｖ８’の算出のためには、レジスタ３１０〜３１４に画素データｖ４〜ｖ８が設定され、レジスタ３１６〜３１９に値ｐｍａｘが設定される。レジスタ３１０〜３１８へのデータの設定がこのように行われることにより、フィルタ処理後の画素データｖ１’〜ｖ８’が算出される。
【００５４】
（３）フィルタ処理（２）（ステップＳ０６）
ステップＳ０６のフィルタ処理では、ＤＣデフォルトモードによるデブロッキング処理に使用される周波数成分ａ３，０，ａ３，１，ａ３，２が式（１−６）に従って順次に算出される。ステップＳ０６のフィルタ処理が行われる場合、共通処理回路１４のレジスタ部１５、乗算演算部１６、加減算部１７、判定部１８、及びセレクタ２１は、下記のように設定される：
（ａ）レジスタ部１５の各レジスタ３１１〜３１７には、画素データｖ１〜ｖ８のうち必要なものが書き込まれる。
（ｂ）乗算演算部１６は、レジスタ３１２〜３１６に書き込まれたデータに対して乗算を行うように設定される。より具体的には、乗算演算部１６は、セレクタ３３２〜３３６がそれぞれシフタ３２６〜３２６の出力を選択するように設定される。セレクタ３３０、３３８、３３９は、データ”０”を選択するように設定される。
（ｃ）加減算部１７は、その入力と出力との間に下記式：
ＯＵＴ１＝ＩＮ０−ＩＮ１（＝−ＩＮ１），  ・・・（４−１）
ＯＵＴ２＝ＩＮ２＋ＩＮ３，              ・・・（４−２）
ＯＵＴ３＝−ＩＮ４＋ＩＮ５，            ・・・（４−３）
ＯＵＴ４＝−ＩＮ６＋ＩＮ７，            ・・・（４−４）
ＯＵＴ５＝ＩＮ８＋ＩＮ９（＝０）．        ・・・（４−５）
が成立するように設定される。
（ｄ）判定部１８は、加減算部１７の出力ＯＵＴ１〜ＯＵＴ５をそのまま出力するように設定される。
（ｅ）セレクタ２１は、データ”０”を選択する。
【００５５】
図１３〜図１５は、このように設定された共通処理回路１４の動作を示す概念図である。周波数成分ａ３，０が算出される場合には、図１３に示されているように、レジスタ３１１〜３１７には、それぞれ、画素データｖ４、ｖ３、ｖ５、ｖ４、ｖ５、ｖ６、ｖ５が設定される。設定された画素データが、乗算演算部１６及び加減算部１７によって演算される結果、加減算部１７の出力ＯＵＴ１〜ＯＵＴ５は、下記式：
ＯＵＴ１＝  −ｖ４，                  ・・・（４−６）
ＯＵＴ２＝２ｖ３＋２ｖ５，            ・・・（４−７）
ＯＵＴ３＝−４ｖ４＋２ｖ５，          ・・・（４−８）
ＯＵＴ４＝−２ｖ６＋ｖ５，            ・・・（４−９）
ＯＵＴ５＝０．                      ・・・（４−１０）
で表される値をとる。共通処理回路１４の出力ＯＵＴは加減算部１７の出力ＯＵＴ１〜ＯＵＴ５の和であるから、出力ＯＵＴは、下記式：
ＯＵＴ＝２ｖ３−５ｖ４＋５ｖ５−２ｖ６，・・・（４−１１）
で表される。式（１−６）の第１式と式（４−１１）との比較から理解されるように、共通処理回路１４の出力ＯＵＴは、周波数成分ａ３，０の８倍である。したがって、共通処理回路１４の出力ＯＵＴを右方向に３ビットシフトすることによって容易に周波数成分ａ３，０を算出することができる。
【００５６】
一方、周波数成分ａ３，１が算出される場合には、図１４に示されているように、画素データｖ２、ｖ１、ｖ３、ｖ２、ｖ３、ｖ４、ｖ３がレジスタ３１１〜３１７にそれぞれに設定される。設定された画素データが、乗算演算部１６及び加減算部１７によって演算される結果、加減算部１７の出力ＯＵＴ１〜ＯＵＴ５は、下記式：
ＯＵＴ１＝  −ｖ２，                  ・・・（４−１２）
ＯＵＴ２＝２ｖ１＋２ｖ３，            ・・・（４−１３）
ＯＵＴ３＝−４ｖ２＋２ｖ３，          ・・・（４−１４）
ＯＵＴ４＝−２ｖ４＋ｖ３，            ・・・（４−１５）
ＯＵＴ５＝０．                      ・・・（４−１６）
で表される値をとる。共通処理回路１４の出力ＯＵＴは加減算部１７の出力ＯＵＴ１〜ＯＵＴ５の和であるから、出力ＯＵＴは、下記式：
ＯＵＴ＝２ｖ１−５ｖ２＋５ｖ３−２ｖ４，・・・（４−１７）
で表される。式（１−６）の第２式と式（４−１７）との比較から理解されるように、共通処理回路１４の出力ＯＵＴは、周波数成分ａ３，１の８倍である。したがって、共通処理回路１４の出力ＯＵＴを右方向に３ビットシフトすることによって周波数成分ａ３，１を算出することができる。
【００５７】
更に、周波数成分ａ３，２が算出される場合には、図１５に示されているように、画素データｖ６、ｖ５、ｖ７、ｖ６、ｖ７、ｖ８、ｖ７がレジスタ３１１〜３１７にそれぞれに設定される。設定された画素データが、乗算演算部１６及び加減算部１７によって演算される結果、加減算部１７の出力ＯＵＴ１〜ＯＵＴ５は、下記式：
ＯＵＴ１＝  −ｖ６，                  ・・・（４−１８）
ＯＵＴ２＝２ｖ５＋２ｖ７，            ・・・（４−１９）
ＯＵＴ３＝−４ｖ６＋２ｖ７，          ・・・（４−２０）
ＯＵＴ４＝−２ｖ８＋ｖ７，            ・・・（４−２１）
ＯＵＴ５＝０．                      ・・・（４−２２）
で表される値をとる。共通処理回路１４の出力ＯＵＴは加減算部１７の出力ＯＵＴ１〜ＯＵＴ５の和であるから、出力ＯＵＴは、下記式：
ＯＵＴ＝２ｖ１５−５ｖ６＋５ｖ７−２ｖ８，・・・（４−２３）
で表される。式（１−６）の第４式と式（４−２３）との比較から理解されるように、共通処理回路１４の出力ＯＵＴは、周波数成分ａ３，２の８倍である。したがって、共通処理回路１４の出力ＯＵＴを右方向に３ビットシフトすることによって周波数成分ａ３，２を算出することができる。
【００５８】
（４）適応フィルタリング（ステップＳ１１）
ステップＳ１１の適応フィルタリングでは、フィルタリング後の画素データｆｌｔ’（ｈ，ｖ）が式（１−９）（又は式（１−１０））によって算出される。図９に示されているように、適応フィルタリングが行われる場合には、共通処理回路１４のレジスタ部１５、乗算演算部１６、加減算部１７、判定部１８、及びセレクタ２１が下記のように設定される：
（ａ）レジスタ部１５の各レジスタ３１０〜３１８には、フィルタリングの対象の画素の画素データｒｅｃ（ｈ，ｖ）、及びその周囲に位置する８つの画素の画素データが書き込まれる。図９の表中の（ｉ，ｊ）は、画素データｒｅｃ（ｈ＋ｉ，ｖ＋ｊ）を意味していることに留意されたい。適応フィルタリングではレジスタ３１９は使用されない。
（ｂ）乗算演算部１６は、レジスタ３１２〜３１６に書き込まれたデータに対して乗算を行うように設定される。より具体的には、乗算演算部１６は、セレクタ３３２〜３３６がそれぞれシフタ３２６〜３２６の出力を選択するように設定される。セレクタ３３０、３３８、３３９は、データ”０”を選択するように設定される。
（ｃ）加減算部１７は、その入力と出力との間に下記式：
ＯＵＴ１＝ＩＮ０＋ＩＮ１，              ・・・（５−１）
ＯＵＴ２＝ＩＮ２＋ＩＮ３，              ・・・（５−２）
ＯＵＴ３＝ＩＮ４＋ＩＮ５，              ・・・（５−３）
ＯＵＴ４＝ＩＮ６＋ＩＮ７，              ・・・（５−４）
ＯＵＴ５＝ＩＮ８＋ＩＮ９（＝ＩＮ８）．    ・・・（５−５）
が成立するように設定される。
（ｄ）判定部１８は、加減算部１７の出力ＯＵＴ１〜ＯＵＴ５をそのまま出力するように設定される。
（ｅ）セレクタ２１は、データ”０”を選択する。
【００５９】
図１６は、このように設定された共通処理回路１４の動作を示す概念図である。図１６に示されているように、座標（ｈ，ｖ）に位置する画素に対応するフィルタ出力ｆｌｔ’（ｈ，ｖ）が算出される場合、レジスタ３１０〜３１８には、それぞれ、画素データｒｅｃ（ｈ−１，ｖ−１）、ｒｅｃ（ｈ＋１，ｖ−１）、ｒｅｃ（ｈ，ｖ−１）、ｒｅｃ（ｈ−１，ｖ）、ｒｅｃ（ｈ，ｖ）、ｒｅｃ（ｈ＋１，ｖ）、ｒｅｃ（ｈ，ｖ＋１）、ｒｅｃ（ｈ−１，ｖ＋１）、ｒｅｃ（ｈ＋１、ｖ＋１）が書き込まれる。図１６では、画素データｒｅｃ（ｈ＋ｉ，ｈ＋ｋ）が、単に（ｉ，ｊ）と記述されていることに留意されたい。書き込まれた画素データが、乗算演算部１６及び加減算部１７によって演算される結果、加減算部１７の出力ＯＵＴ１〜ＯＵＴ５は、下記式：
ＯＵＴ１＝ｒｅｃ（ｈ−１，ｖ−１）＋ｒｅｃ（ｈ＋１，ｖ−１），・・・（５−６）
ＯＵＴ２＝２・ｒｅｃ（ｈ，ｖ−１）＋２・ｒｅｃ（ｈ−１，ｖ），・・・（５−７）
ＯＵＴ３＝４・ｒｅｃ（ｈ，ｖ）＋２・ｒｅｃ（ｈ＋１，ｖ），  ・・・（５−８）
ＯＵＴ４＝２・ｒｅｃ（ｈ，ｖ＋１）＋ｒｅｃ（ｈ−１，ｖ＋１），・・・（５−９）
ＯＵＴ５＝ｒｅｃ（ｈ＋１，ｖ＋１）．                        ・・・（５−１０）
で表される値をとる。共通処理回路１４の出力ＯＵＴは加減算部１７の出力ＯＵＴ１〜ＯＵＴ５の和であるから、出力ＯＵＴは、下記式：
【数５】
2007043224.tif 000007
で表される。式（１−１０）と式（５−１１）との比較から理解されるように、共通処理回路１４の出力ＯＵＴに８を加え、更に、１６で除算する（即ち、右方向に４ビットシフトを行う）ことによってフィルタリング後の画素データｆｌｔ’（ｈ，ｖ）を得ることができる。
【００６０】
以上に説明されているように、図８Ａに図示されている共通処理回路１４は、その設定を変えることにより、ステップＳ０１の値ｅｑ＿ｃｎｔの算出処理、ステップＳ０５のフィルタ処理（式（１−３）、（１−４）によるフィルタ処理）、ステップＳ０６のフィルタ処理（即ち、周波数成分ａ３，０，ａ３，１，ａ３，２を算出する処理）、並びに、ステップＳ１１の適応フィルタリングの処理を行うことができる。このような共通処理回路１４の構成は、少ないハードウェア資源でデブロッキング処理及びデリンギング処理を行うことを可能にする。
【００６１】
本実施形態において、共通処理回路１４は、上記の４つの処理：ステップＳ０１の値ｅｑ＿ｃｎｔの算出処理、ステップＳ０５のフィルタ処理、ステップＳ０６のフィルタ処理、及びステップＳ１１の適応フィルタリングの処理の全てを行う必要はない；共通処理回路１４は、上記の４つの処理のうちの少なくとも２つの処理を行うように構成され得る。
【００６２】
特に、ステップＳ０１の値ｅｑ＿ｃｎｔの算出処理が行われない場合には、図８Ｂに示されているように、判定部１８が設けられず、加減算部１７の出力が直接に加算演算部１９に接続されても良い。このような構成は、共通処理回路１４の構成を簡単にする。
【００６３】
（デブロッキング処理とデリンギング処理の好適な手順）
共通処理回路１４が使用される本実施形態の動画像復号化装置１では、デブロッキング処理とデリンギング処理は、シリアルに行われる。ＭＰＥＧ４には、デブロッキング処理とデリンギング処理が行われる順番は、デブロッキング処理が先で、デリンギング処理が後であると規定されている。
【００６４】
このような場合には、外部メモリ１０へのデータアクセス量を抑制することが重要な課題の一つである。図６に示されているように、本実施形態の動画像復号化装置１では、デブロッキング処理及びデリンギング処理の際にそれらに使用される画素データを内部メモリ８に用意する必要がある。デブロッキング処理及びデリンギング処理に必要な画素データが内部メモリ８に存在しない場合には、必要な画素データを外部メモリ１０から内部メモリ８に伝送する必要があり、この場合には、外部メモリ１０へのデータアクセスが行われる。更に、デブロッキング／デリンギング演算部９によって生成された画素データは、最終的には外部メモリ１０に書き込まれる必要があり、これも外部メモリ１０へのデータアクセスの発生原因になる。外部メモリ１０へのデータアクセス量を抑制することは、本実施形態の動画像復号化装置１の動作の高速化に重要である。
【００６５】
外部メモリ１０へのデータアクセス量を削減するために、本実施形態の動画像復号化装置１では、下記のような手順で復号化処理を行う。
【００６６】
図１７に示されているように、あるフレーム画像の復号化処理は、左上のマクロブロックから開始される。まず、最上段のマクロブロックについて復号化処理が行われる。復号化処理は、左のマクロブロックから右のマクロブロックへという順序で行われる。同様に、２段目、３段目・・・のマクロブロックの復号化処理も同様にして行われる。
【００６７】
復号化処理のうちのデブロッキング処理及びデリンギング処理は、可変長復号化、ＤＣ／ＡＣ逆予測、逆量子化、逆ＤＣＴ、及び動きベクトル補償と並行して行われる。具体的には、あるマクロブロック（以下、「対象マクロブロック４１」という。）の可変長復号化、ＤＣ／ＡＣ逆予測、逆量子化、逆ＤＣＴ、及び動きベクトル補償が完了すると、その対象マクロブロック４１の左側に位置する特定のブロックについて縦方向のエッジに対するデブロッキング処理、横方向のエッジに対するデブロッキング処理、及びデリンギング処理が順次に行われる。ＭＰＥＧ４の規定によればマクロブロックは８×８画素から構成される４つのブロックからなり、以下において、対象マクロブロック４１の４つのブロックは、ブロック４２、４３、４４、４５と記述されることに留意されたい。
【００６８】
本実施形態の動画像復号化装置１では、デブロッキング処理及びデリンギング処理の対象のブロックが最適に選択されることによって外部メモリ１０へのデータアクセス量の削減が図られている。より具体的には、縦方向のエッジに対するデブロッキング処理は、図１７のブロック４６〜４９の縦方向のエッジについて行われる。ここでブロック４６とは、対象マクロブロック４１の左上のブロック４２の左に隣接するブロックであり、ブロック４７は、上記のブロック４６の上に隣接するブロックである。更に、ブロック４８とは、上記のブロック４６の左に隣接するブロックであり、ブロック４９は、上記のブロック４７の左に隣接するブロックである。一方、横方向のエッジに対するデブロッキング処理及びデリンギング処理は、図１７のブロック５０〜５３について行われる。ここでブロック５０とは、上記のブロック４９の左に隣接するブロックであり、ブロック５１とは、上記のブロック５０の上に隣接するブロックである。ブロック５２は、上記のブロック５０の左に隣接するブロックであり、ブロック５３は、上記のブロック５１の左に隣接するブロックである。このようにして決定されたデブロッキング処理及びデリンギング処理の対象のブロックがフレーム画像の外側に位置する場合には、当該ブロックに対するデブロッキング処理及び／又はデリンギング処理は行われない。
【００６９】
以下、デブロッキング処理及びデリンギング処理が行われる過程を詳細に説明する。
図６を参照して、ある対象マクロブロック４１の可変長復号化、ＤＣ／ＡＣ逆予測、逆量子化、逆ＤＣＴ、及び動きベクトル補償が完了すると、対象マクロブロック４１に対応する復号画像データが、加算器７から内部メモリ８に供給される。対象マクロブロック４１の復号画像データを加算器７から受け取ると、内部メモリ８は、その復号画像データを外部メモリ１０に転送する。
【００７０】
ただし、内部メモリ８は、転送した復号画像データを廃棄するわけではない。図１８を参照して、受けとった復号画像データのうち、少なくともブロック４２の左側の８行５列の画素５４の画素データは、転送後もそのまま内部メモリ８に保存される。データ処理の規則性を高めるために、ブロック４２に含まれる全画素の画素データを保存しても良い。後述されるように、内部メモリ８に保存されたデータは、次に行われる縦方向のエッジに対するデブロッキング処理に使用される。
【００７１】
続いて、縦方向のエッジに対するデブロッキング処理に必要なデータが、内部メモリ８に用意される。より具体的には、下記の画素データ：（ａ）ブロック４６〜４９の画素データ、（ｂ）ブロック４６の右側に隣接する８行５列の画素５４の画素データ、（ｃ）ブロック４７の右側に隣接する８行５列の画素５５の画素データ、（ｄ）ブロック４８の左側に隣接する８行５列の画素５６の画素データ、及び（ｅ）ブロック４９の左側に隣接する８行５列の画素５７の画素データが、内部メモリ８に用意される。これらの画素データのうち、ブロック４６の右側に隣接する８行５列の画素５４の画素データは、既に加算器７から内部メモリ８に転送されているから、改めて内部メモリ８に転送する必要はない。他の画素データは、外部メモリ１０から内部メモリ８に転送される。
【００７２】
データ処理の規則性を高めるために、ブロック４７の右側に隣接するブロック５８、ブロック４８の左側に隣接するブロック５９、及びブロック４９の左側に隣接するブロック５７の全画素の画素データを内部メモリ８に転送してもよい。特に、ブロック５７の画素の画素データは、ブロック５７に対するデブロッキング処理及びデリンギング処理において使用可能であるから、ブロック５７の全画素の画素データを内部メモリ８に転送しても、復号化処理を全体としてみたときにはデータ転送量は増大しない。同様に、ブロック５９の画素の画素データはブロック５７についての（横方向のエッジに対する）デブロッキング処理に使用可能であるから、ブロック５９の全画素の画素データを内部メモリ８に転送しても、復号化処理を全体としてみたときにはデータ転送量の増大は少しである。
【００７３】
続いて、内部メモリ８に保存されている画素データを用いて、ブロック４６〜４９の縦方向のエッジに対するデブロッキング処理が行われる。このデブロッキング処理は、デブロッキング／デリンギング演算部９のデブロッキングフィルタ処理回路１２及び共通処理回路１４によって行われる。詳細には、ステップＳ０１の値ｅｑ＿ｃｎｔの算出、ステップＳ０５のフィルタ処理、及びステップＳ０６のフィルタ処理は、共通処理回路１４を使用して行われ、その他の処理は、デブロッキングフィルタ処理回路１２によって行われる。
【００７４】
縦方向のエッジに対するデブロッキング処理によって得られたブロック４６〜４９の画素の画素データは、デブロッキング／デリンギング演算部９からバス１１を介して外部メモリ１０に送られ、外部メモリ１０に書き込まれる。
【００７５】
続いて、横方向のエッジに対するデブロッキング処理に必要なデータが、内部メモリ８に用意される。より具体的には、図１９に示されているように、少なくとも下記の画素データ：（ａ）ブロック５０〜５３の画素の画素データ、（ｂ）ブロック５０の下側に隣接する５行８列の画素６０の画素データ、（ｃ）ブロック５２の下側に隣接する５行８列の画素６１の画素データ、（ｄ）ブロック５１の上側に隣接する５行８列の画素６２の画素データ、及び（ｅ）ブロック５３の上側に隣接する５行８列の画素６３の画素データが、内部メモリ８に用意される。
【００７６】
これらの画素データのうち、縦方向のエッジに対するデブロッキング処理において既に内部メモリ８に用意されている画素データは、改めて内部メモリ８に転送される必要はない。具体的には、ブロック５０の右側の８行５列の画素５７の画素データは、改めて内部メモリ８に転送される必要はない。更に、ブロック５０の全画素の画素データが縦方向のエッジに対するデブロッキング処理において既に内部メモリ８に転送されている場合には、ブロック５０の画素データは、内部メモリ８に転送する必要はない。加えて、ブロック５０の下側に隣接する５行８列の画素６０の画素データのうち、右側の５行５列の画素の画素データは内部メモリ８に転送する必要はない。また、ブロック５０の下側に隣接するブロック５９の全画素の画素データが縦方向のエッジに対するデブロッキング処理において既に内部メモリ８に転送されている場合には、ブロック５０の下側に隣接する５行８列の画素６０の画素データは内部メモリ８に転送される必要はない。
【００７７】
データ転送量の増加を許容するのであれば、データ処理の規則性を高めるために、ブロック５０の下側に隣接するブロック５９、ブロック５２の下側に隣接するブロック６４、及びブロック５１の上側に隣接するブロック６５、及びブロック５３の上側に隣接するブロック６６の全画素の画素データを内部メモリ８に転送してもよい。
【００７８】
続いて、内部メモリ８に用意された画素データを用いて、ブロック５０〜５３の横方向のエッジに対するデブロッキング処理が行われる。縦方向のエッジに対するデブロッキング処理と同様に、横方向のエッジに対するデブロッキング処理は、デブロッキング／デリンギング演算部９のデブロッキングフィルタ処理回路１２及び共通処理回路１４によって行われる。
【００７９】
横方向のエッジに対するデブロッキング処理が完了すると、デブロッキング処理後のブロック５０〜５３の画素データがデブロッキング／デリンギング演算部９から内部メモリ８に戻される。内部メモリ８に保存されているブロック５０〜５３の画素データは、デブロッキング処理後の画素データに書き換えられる。
【００８０】
横方向のエッジに対するデブロッキング処理後のブロック５０〜５３の画素データは、内部メモリ８から外部メモリ１０には転送されない。これは、外部メモリ１０へのデータアクセスを減少させるためである。後述されるように、内部メモリ８に保存された、横方向のエッジに対するデブロッキング処理後の画素データは、そのままデリンギング処理に使用される。
【００８１】
続いて、ブロック５０〜５３に対するデリンギング処理に必要なデータが、内部メモリ８に用意される。より具体的には、図２０に示されているように、（横方向のエッジに対するデブロッキング処理後の）ブロック５０〜５３の画素データに加え、ブロック５０〜５３を１画素の幅で取り囲む画素列６７の画素データが、外部メモリ１０から内部メモリ８に転送される。（デブロッキング処理後の）ブロック５０〜５３の画素データは、横方向のエッジに対するデブロッキング処理の終了時に内部メモリ８に転送されるから、外部メモリ１０から内部メモリ８に転送される必要はない。
【００８２】
続いて、内部メモリ８に用意された画素データを用いて、ブロック５０〜５３に対するデリンギング処理が行われる。デリンギング処理は、デブロッキング／デリンギング演算部９のデリンギングフィルタ処理回路１３及び共通処理回路１４によって行われる。より具体的には、ステップＳ０９の閾値決定、ステップＳ１０の指数取得、及びステップＳ１２のクリッピングは、デリンギングフィルタ処理回路１３によって行われ、ステップＳ１１の適応フィルタリングは、共通処理回路１４によって行われる。
【００８３】
以上に説明された手順でデブロッキング処理及びデリンギング処理を行うことは、外部メモリ１０へのデータアクセスを有効に減少させ、動画像復号化装置１の性能の向上に有効である。例えば、図２１に示されているように、縦方向のエッジに対するデブロッキング処理の対象のマクロブロック７１と、及び横方向のエッジに対するデブロッキング処理の対象のマクロブロック７２と、デリンギング処理の対象のマクロブロック７３が、ばらばらに指定されていると、それらの処理のために内部メモリ８に読み込まれた画素データが有効に使用されず、外部メモリ１０へのデータアクセスが不所望に増大してしまう。本実施形態では、デブロッキング処理及びデリンギング処理の対象のブロックが最適に選択されることによって外部メモリ１０へのデータアクセス量が有効に削減されている。
【図面の簡単な説明】
【００８４】
【図１】図１は、デブロッキング処理の対象の画素を示す概念図である。
【図２】図２は、ＭＰＥＧ４で規定されたデブロッキング処理の手順を示すフローチャートである。
【図３】図３は、ＭＰＥＧ４で規定されたデリンギング処理の手順を示すフローチャートである。
【図４】図４は、デリンギング処理で使用されるバイナリ指数の例を示す図である。
【図５】図５は、ＭＰＥＧ４で規定された、デリンギング処理で使用されるフィルタ係数を示す図である。
【図６】図６は、本発明の一実施形態に係る動画像復号化装置の構成を示すブロック図である。
【図７】図７は、本実施形態において動画像復号化装置に組み込まれるデブロッキング／デリンギング演算部の構成を示すブロック図である。
【図８Ａ】図８Ａは、一実施形態に係る共通処理回路の構成を示すブロック図である。
【図８Ｂ】図８Ｂは、他の実施形態に係る共通処理回路の構成を示すブロック図である。
【図９】図９は、共通処理回路の設定を示す表である。
【図１０】図１０は、値ｅｑ＿ｃｎｔの算出の際の、第１クロックサイクルにおける共通処理回路の動作を示す概念図である。
【図１１】図１１は、値ｅｑ＿ｃｎｔの算出の際の、第２クロックサイクルにおける共通処理回路の動作を示す概念図である。
【図１２】図１２は、ＤＣオフセットモードによるデブロッキング処理が行われる際の共通処理回路の動作を示す概念図である。
【図１３】図１３は、ＤＣデフォルトモードによるデブロッキング処理において、周波数成分ａ３，０が算出される際の共通処理回路の動作を示す概念図である。
【図１４】図１４は、ＤＣデフォルトモードによるデブロッキング処理において、周波数成分ａ３，１が算出される際の共通処理回路の動作を示す概念図である。
【図１５】図１５は、ＤＣデフォルトモードによるデブロッキング処理において、周波数成分ａ３，２が算出される際の共通処理回路の動作を示す概念図である。
【図１６】図１６は、デリンギング処理において行われる適応フィルタリングの際の共通処理回路の動作を示す概念図である。
【図１７】図１７は、対象マクロブロックと、縦方向のエッジに対するデブロッキング処理の対象のブロックと、横方向のエッジに対するデブロッキング処理の対象のブロックと、デリンギング処理の対象のブロックを示す概念図である。
【図１８】図１８は、本実施形態において行われる、縦方向のエッジに対するデブロッキング処理を説明する概念図である。
【図１９】図１９は、本実施形態において行われる、横方向のエッジに対するデブロッキング処理を説明する概念図である。
【図２０】図２０は、本実施形態において行われる、デリンギング処理を説明する概念図である。
【図２１】図２１は、好適でないデブロッキング処理及びデリンギング処理の一例を説明する概念図である。
【符号の説明】
【００８５】
１：動画像復号化装置
２：可変長復号化器
３：逆ＤＣ／ＡＣ予測器
４：逆量子化器
５：逆ＤＣＴ演算器
６：動きベクトル補償演算器
７：加算器
８：内部メモリ
９：デブロッキング／デリンギング演算部
１０：外部メモリ
１１：バス
１２：デブロッキングフィルタ処理回路
１２Ａ：クリッピング処理回路
１３：デリンギングフィルタ処理回路
１３Ａ：閾値決定処理回路
１３Ｂ：指数取得処理回路
１３Ｃ：クリッピング処理回路
１４：共通処理回路
１５：レジスタ部
１６：乗算演算部
１７：加減算部
１８：判定部
１９：加算演算部
２０：出力レジスタ
２１：セレクタ
３１０〜３１９：レジスタ
３２２〜３２６：シフタ
３３０、３３２〜３３６、３３８、３３９：セレクタ
３５１〜３５５：判定回路
３６１〜３６５：セレクタ
３７１〜３７５：加算器
４１：対象マクロブロック
４２〜５３：ブロック
５４〜５７：画素
５８、５９：ブロック
６０〜６３：画素
６４、６５、６６：ブロック
１０１０〜１０１９：画素
【図１】
2007043224.tif 000009
【図２】
2007043224.tif 000010
【図３】
2007043224.tif 000011
【図４】
2007043224.tif 000012
【図５】
2007043224.tif 000013
【図６】
2007043224.tif 000014
【図７】
2007043224.tif 000015
【図８Ａ】
2007043224.tif 000016
【図８Ｂ】
2007043224.tif 000017
【図９】
2007043224.tif 000018
【図１０】
2007043224.tif 000019
【図１１】
2007043224.tif 000020
【図１２】
2007043224.tif 000021
【図１３】
2007043224.tif 000022
【図１４】
2007043224.tif 000023
【図１５】
2007043224.tif 000024
【図１６】
2007043224.tif 000025
【図１７】
2007043224.tif 000026
【図１８】
2007043224.tif 000027
【図１９】
2007043224.tif 000028
【図２０】
2007043224.tif 000029
【図２１】
2007043224.tif 000030