(57)【要約】【課題】  ブロック境界円滑化のためのオーバーラップスムージング処理の処理時間や使用メモリ量を低減する。【解決手段】  映像信号を符号化する単位となるマクロブロック毎に符号化データを復号する際に、該マクロブロックを構成する８×８ブロックのブロック境界円滑化のためのオーバーラップスムージング処理を行うとき、復号処理中のデータをブロック毎に読み込み、該ブロック単位でオーバーラップスムージング処理を逐次行う。この処理に必要なメモリ領域は、輝度（Ｙ）信号について、垂直エッジ処理用の２画素×１６（３２画素）の領域Ｍｖと、水平エッジ処理用の１６画素×２ライン（３２画素）の領域Ｍｈと、垂直エッジ処理後に他のブロックの水平エッジ処理するための１６画素×２ライン（３２画素）の領域Ｍｍと、垂直水平演算用一時保持メモリとしての８画素×２ライン（１６画素）の領域Ｍｔとなる。【選択図】  図２
2008034951.tif 000002
【特許請求の範囲】
【請求項１】
映像信号を符号化する単位となるマクロブロック毎に符号化データを復号する際に、該マクロブロックを構成する複数のブロックのブロック境界円滑化処理を行う映像信号処理方法において、
復号処理中のデータを上記ブロック毎に読み込み、該ブロック単位で上記ブロック境界円滑化処理を逐次行うことを特徴とする映像信号処理方法。
【請求項２】
上記ブロック境界円滑化処理は、オーバーラップスムージング処理であることを特徴とする請求項１記載の映像信号処理方法。
【請求項３】
上記ブロック境界円滑化処理は、垂直方向の境界円滑化処理後に水平方向の境界円滑化処理が行われ、上記垂直方向の境界円滑化処理に必要な最小の画素データが入力された直後に上記垂直方向の境界円滑化処理を行うことを特徴とする請求項１記載の映像信号処理方法。
【請求項４】
上記ブロック境界円滑化処理は、垂直方向の境界円滑化処理後に水平方向の境界円滑化処理が行われ、上記水平方向の境界円滑化処理に必要な最小の画素データについて上記垂直方向の境界円滑化処理が終了した直後に上記水平方向の境界円滑化処理を行うことを特徴とする請求項１記載の映像信号処理方法。
【請求項５】
映像信号を符号化する単位となるマクロブロック毎に符号化データを復号する際に、該マクロブロックを構成する複数のブロックのブロック境界円滑化処理を行う映像信号処理装置において、
復号処理中のデータを上記ブロック毎に読み込み、該ブロック単位で上記ブロック境界円滑化処理を逐次行うことを特徴とする映像信号処理装置。
【請求項６】
映像信号がマクロブロック単位で符号化されて得られた符号化データを復号する際に、該マクロブロックを構成する複数のブロックのブロック境界円滑化処理を行う映像信号復号方法において、
上記符号化データを逆量子化／逆ＤＣＴ処理する工程と、
上記逆量子化／逆ＤＣＴ処理されたデータを上記ブロック毎に読み込み、該ブロック単位で上記ブロック境界円滑化処理を逐次行う工程と
を有することを特徴とする映像信号復号方法。
【請求項７】
上記ブロック境界円滑化処理は、オーバーラップスムージング処理であることを特徴とする請求項６記載の映像信号復号方法。
【請求項８】
上記ブロック境界円滑化処理は、垂直方向の境界円滑化処理後に水平方向の境界円滑化処理が行われ、上記垂直方向の境界円滑化処理に必要な最小の画素データが入力された直後に上記垂直方向の境界円滑化処理を行うことを特徴とする請求項６記載の映像信号復号方法。
【請求項９】
上記ブロック境界円滑化処理は、垂直方向の境界円滑化処理後に水平方向の境界円滑化処理が行われ、上記水平方向の境界円滑化処理に必要な最小の画素データについて上記垂直方向の境界円滑化処理が終了した直後に上記水平方向の境界円滑化処理を行うことを特徴とする請求項６記載の映像信号復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像信号処理方法及び装置、並びに映像信号復号方法に関し、特に、映像信号をブロック単位で符号化されて得られた符号化データを復号する際のブロック境界円滑化処理を行う映像信号処理方法及び装置、並びに映像信号復号方法に関する。
【背景技術】
【０００２】
近年において種々の動画像圧縮符号化技術が提案されているが、その１つとして知られているＶＣ−１動画像圧縮符号化方式は、ＭＰＥＧ（Moving Picture Exparts Group）−４パート２をベースとし、さらに圧縮効率を高めるための種々の工夫が施されたものであり、ＳＭＰＴＥ（米国映画テレビジョン技術者協会）での規格化がなされ、ＳＭＰＴＥ  ４２１Ｍとして発表されている。
【０００３】
一般に、ＶＣ−１符号化方式におけるデコーダは、ＶＣ−１のレファレンスソースコードや規格書ＳＭＴＰＥ  ４２１ＭのDecodeing Process Overviewに構成案が記載されている。この規格書によればＶＣ−１コーデック（Codec）によってエンコードされたビットストリーム（Bit Stream）信号はデコーダシステムに入力され、構造解析（Parsing）されると、そのデータの符号化された手法により大別して、イントラ（Intra）符号化（フレーム内予測符号化）されたものとインター（Inter）符号化（フレーム間予測符号化）されたものにデータが分類される。分類されたイントラ符号化データとインター符号化データとは、復号画像（Decode Picture）を生成する時のデータの再構成処理が異なる。
【０００４】
ＶＣ−１デコーダにおいて、入力されたビットストリームを構造解析（Parsing）して得られたイントラ符号化データ及びインター符号化データは、ＡＣ／ＤＣ予測（Prediction）され、逆量子化／逆ＤＣＴ（ＩＱ／ＩＤＣＴ）が施された後、イントラ符号化データがオーバーラップスムージングフィルタ（Overlap Smoothing Filter）に送られる。このオーバーラップスムージングフィルタは、ブロック境界（エッジ）での歪を軽減するために、ブロック境界をスムージングする処理を行うフィルタである。
【０００５】
規格書ＳＭＴＰＥ  ４２１Ｍ  によってＶＣ−１デコーダとして規格化されている上記オーバーラップスムージング（Overlap Smoothing）処理について説明する。
【０００６】
このオーバーラップスムージング処理は、図２０に示すように、８×８画素のブロックの境界（エッジ）について、４タップのフィルタ処理を行うものであり、垂直エッジ、水平エッジの順に行われ、Ｙ（輝度）／Ｃ（クロマ）信号のデータに対して同じ演算が行われ、Ｉピクチャ（フレーム内符号化画像）又はＰピクチャ（前方予測符号化画像）のみに対して処理が行われる。
【０００７】
図２１は、前段のモジュールからあるいは外部メモリから送られてくるデータの時系列を示しており、ピクチャ再構成処理の単位をマクロブロック（ＭＢ）としている。この図２１の矢印に示すように送られてくるデータの時系列に対してレイテンシ（処理のための待ち時間）を少なくする場合の方法として、上記オーバーラップスムージング処理を行うために必要とされるマクロブロック（ＭＢ）を図２２に示す。この図２２において、現在処理されるべく前段のモジュールから送られてきた（あるいは外部メモリから読み出された）現在のマクロブロック（Current MB）Ｃ−ＭＢに対して、オーバーラップスムージング処理される範囲（処理が完了する領域）はＸosとなる。この図２２の範囲Ｘosのオーバーラップスムージング処理を行うために、上記現在のマクロブロックＣ−ＭＢと、直前のマクロブロック（Left MB）Ｌ−ＭＢと、現在のマクロブロックＣ−ＭＢに対してピクチャが再構成された時に上部に位置する上部マクロブロック（Above MB）Ａ−ＭＢと、この上部マクロブロックＡ−ＭＢの直前のマクロブロック（Left Above MB）ＬＡ−ＭＢ（ピクチャが再構成された時に上部マクロブロックＡ−ＭＢの左に位置するマクロブロック）の、合計４つのマクロブロックＣ−ＭＢ，Ｌ−ＭＢ，Ａ−ＭＢ，ＬＡ−ＭＢに属するデータを必要とする。
【０００８】
ここで、図２２の範囲Ｘdbは、上記規格書ＳＭＴＰＥ  ４２１Ｍ  のＶＣ−１デコーダ規格において、オーバーラップスムージング処理されたデータに対して施される別種のブロック境界歪軽減のためのデブロッキングフィルタ（Deblocking Filter）処理の処理範囲を示しており、上記オーバーラップスムージング処理の場合と同様に４つのマクロブロックＣ−ＭＢ，Ｌ−ＭＢ，Ａ−ＭＢ，ＬＡ−ＭＢに属するデータが必要となる。なお、上記ＶＣ−１規格におけるデブロッキングフィルタ処理は、Ｉピクチャ、Ｂピクチャ（双方向予測符号化画像）では８×８ブロックの境界（エッジ）のみに適用され、Ｐピクチャでは４×４ブロック境界まで適用されるものであり、８タップフィルタで、境界の２画素だけが変化し、水平エッジ、垂直エッジの順に処理が行われ、Ｙ（輝度）／Ｃ（クロマ）信号のデータに対して同じ演算が行われる。なお、上記図２２の範囲Ｘdbは、フィールド符号化の場合とフレーム符号化の場合を考慮して、上記デブロッキングフィルタ処理が完了する領域を示している。
【０００９】
なお、図２１、図２２の現在のマクロブロックＣ−ＭＢに対して、復号後のピクチャにおいて下部に位置するマクロブロックをＢ−ＭＢ（Below MB）としている。
【００１０】
上記オーバーラップスムージング処理についてさらに説明すると、図２３の（Ａ）に示すように、輝度（Ｙ）信号のデータについての１つのマクロブロックは、８×８画素のブロック（いわゆるＤＣＴブロック）を４ブロック（Ｙ０，Ｙ１，Ｙ２，Ｙ３）有して成り、この８×８画素ブロックの画素データがブロック単位で、ブロックＹ０、ブロックＹ１、ブロックＹ２、ブロックＹ３の順に送られてきて、オーバーラップスムージング処理モジュール内のキャッシュメモリに格納される。そして、図２３の（Ｂ）に示すように、４つのブロックＹ０，Ｙ１，Ｙ２，Ｙ３のデータの全て（１マクロブロック分）がキャッシュメモリ内に記憶された後、上記オーバーラップスムージング処理が施される。この処理の際に、メモリ内の画素については、送られてきた順に関係なく、任意に読み出し可能となる。図２３の（Ｃ）は、オーバーラップスムージング処理が施される部分を示しており、領域ＯＳａ，ＯＳｂは、垂直エッジのフィルタ作用としてオーバーラップスムージング処理される画素データ領域を、領域ＯＳｃ，ＯＳｄは、水平エッジのフィルタ作用としてオーバーラップスムージング処理される画素データ領域をそれぞれ示している。また、領域ｅ１〜ｅ４は、垂直エッジの、水平エッジの両フィルタで作用される画素データ領域を示している。
【００１１】
図２３の（Ｃ）や図２２に示すように、輝度（Ｙ）成分のオーバーラップスムージング処理においては、処理範囲が複数のＹのブロックにまたがることになる。例えば、図２３の領域ｅ１では、図２２に示されるようなマクロブロックの位置関係における上記マクロブロックＬ−ＭＢ，Ａ−ＭＢ，ＬＡ−ＭＢと現在のマクロブロックＣ−ＭＢのＹ０の４つに属する画素データが必要になる。
【００１２】
上記規格書ＳＭＴＰＥ  ４２１Ｍ  等に示されている従来の技術においては、Ｙ成分のオーバーラップスムージング処理においては８×８画素ブロックＹ０〜Ｙ３の４つのブロックを一つの単位として扱い、これを現在のマクロブロックＣ−ＭＢとし、残りの３つのマクロブロックＬ−ＭＢ，Ａ−ＭＢ，ＬＡ−ＭＢのデータを外部メモリなどからの読み込んでフィルタ処理を実施する構成となっていた。
【００１３】
一般に、現在のマクロブロックＣ−ＭＢに対して準備される画素データは、周辺マクロブロックの全てのデータを用意する必要はなく、図２４や図２５に示すように、周辺２画素の範囲となる。
【００１４】
図２４は、輝度（Ｙ）成分について、オーバーラップスムージング処理に必要とされる現在のマクロブロックＣ−ＭＢ以外の各マクロブロックに属する画素範囲を示す図であり、範囲Ｘosは上述したようにオーバーラップスムージング処理が完了する領域を示している。この図２４において、現在のマクロブロックＣ−ＭＢ以外のオーバーラップスムージング処理に必要とされる画素範囲は、垂直エッジ処理のための垂直２ライン×１６画素（＝２画素×水平１６ライン）の領域Ｋｖと、水平エッジ処理のための水平２ライン×１４画素の領域Ｋｈと、垂直及び水平の両エッジ処理が施される２×２画素の領域Ｋｖｈとから成る。ここで、垂直２ライン×１６画素の領域Ｋｖ内における上記範囲Ｘos以外の２×２画素の部分Ｋvnは、現在のマクロブロックＣ−ＭＢのオーバーラップスムージング処理の際に垂直エッジのフィルタ処理は行われるが、水平エッジのフィルタ処理は完了しておらず、上記図２１、図２２の下部マクロブロックＢ−ＭＢが現在のマクロブロックとなったときに行われるため、２×２画素の部分Ｋvnのデータは、中間結果データとして外部メモリに格納される。
【００１５】
図２５の（Ａ），（Ｂ）は、カラー映像信号のクロマ成分（Ｃｂ，Ｃｒ成分）について、オーバーラップスムージング処理に必要とされる現在のマクロブロック以外の各マクロブロックに属する画素範囲を示す図であり、オーバーラップスムージング処理が完了する領域を、それぞれＸos(Cb)，Ｘos(Cr)で示している。クロマ（Ｃｂ，Ｃｒ）成分の場合のマクロブロックが８×８画素で構成される以外は、上述した図２４の輝度（Ｙ）成分の場合と同様であり、例えば、クロマ信号のＣｂ成分を示す図２５の（Ａ）において、現在のマクロブロックＣ−ＭＢ(Cb)以外のオーバーラップスムージング処理に必要とされる画素範囲は、垂直エッジ処理のための垂直２ライン×８画素（＝２画素×水平８ライン）の領域Ｋｖ(Cb)と、水平エッジ処理のための水平２ライン×６画素の領域Ｋｈ(Cb)と、垂直及び水平の両エッジ処理が施される２×２画素の領域Ｋｖｈ(Cb)とから成る。また、クロマ信号のＣｒ成分を示す図２５の（Ｂ）では、図２５の（Ａ）の各指示符号の(Cb)を(Cr)に付け替えている。すなわち、図２４中のＹ成分の場合の各指示符号に対して、図２５の（Ａ）のＣｂ成分の場合は(Cb)を付し、図２５の（Ｂ）のＣｒ成分の場合は(Cr)を付すことによって、図２４の説明が容易に適用できるため、説明を省略する。
【００１６】
従来技術として、非特許文献１には、上記ＶＣ−１動画像圧縮符号化方式の規格が開示されている。
【００１７】
【非特許文献１】ＳＭＰＴＥ  ４２１Ｍ  規格書、 SMPTE Draft Standard for Television, ＳＭＰＴＥ（米国映画テレビジョン技術者協会）、２００５年８月２３日
【発明の開示】
【発明が解決しようとする課題】
【００１８】
ところで、上述のようにマクロブロック（ＭＢ）を処理単位としてオーバーラップスムージング処理を行う場合のレイテンシ（処理のための待ち時間）について、図２６を参照しながら説明する。図２６は、処理単位がマクロブロック（ＭＢ）の場合レイテンシを模式的に示す図である。
【００１９】
この図２６において、（Ａ）のように前段のモジュールからあるいは外部メモリから送られてくるマクロブロックＭＢ０〜ＭＢ２の内のマクロブロックＭＢ−１が上記現在のマクロブロックＣ−ＭＢとして処理される場合について説明する。図２６の（Ｂ）に示すように、輝度（Ｙ）成分の４ブロックＹ０〜Ｙ３と、クロマ（Ｃｂ，Ｃｒ）成分の２ブロックＣｂ，Ｃｒが順次供給される。時間軸上で１ブロックは、８×８画素の６４画素（ピクセル）分の時間Ｌ１に相当する。これらの入力画像データが、（Ｃ９に示すように、レイテンシＬ２の時間遅れを持ってオーバーラップスムージング処理モジュール内の内部メモリに格納される。また、上記図２４、図２５に示す現在のマクロブロックＣ−ＭＢ以外の各マクロブロックＬ−ＭＢ，Ａ−ＭＢ，ＬＡ−ＭＢに属する処理に必要とされる画素範囲のデータについても、図２６の（Ｄ），（Ｅ），（Ｆ）に示すように内部メモリに格納される。これらの１マクロブロック分の全てのデータがそろった後に、図２６の（Ｇ）に示すように、算術論理演算ユニット（ＡＬＵ）により垂直エッジのオーバーラップスムージング処理の演算が行われ、図２６の（Ｈ）に示すように、これらの垂直エッジ演算されたデータを次の水平エッジ演算のために内部メモリに書き込む。次に図２６の（Ｉ）に示すように、算術論理演算ユニット（ＡＬＵ）により水平エッジのオーバーラップスムージング処理の演算が行われ、図２６の（Ｊ）に示すように、これらの水平エッジ演算されたデータを外部メモリに書き出している。従って、１マクロブロック分のデータのオーバーラップスムージング処理が完了するまでには、レイテンシＬ３に示す１マクロブロック分のデータを内部メモリに格納するための時間と、レイテンシＬ４に示すデータ処理の演算を行うための時間とを要することになる。
【００２０】
すなわち、マクロブロック単位でオーバーラップスムージング処理が行われるタイミングは、図２６のようなイメージとなり、リアルタイム処理において１つのマクロブロックを一時記憶するためのマクロブロックサイズ以上の一時記憶エリアとそれを記憶するためのレイテンシＬ３と、データ処理にかかる時間Ｌ４とが総合されたレイテンシとして発生していた。また、演算処理効率としても、図２３の処理領域ＯＳａ〜ＯＳｄ以外の画素においては演算が行われないため、不要な待ち時間が発生することになり、効率がよいとはいえない状態となっていた。
【００２１】
本発明は、このような従来の実情に鑑みて提案されたものであり、オーバーラップスムージング処理にかかるレイテンシを従来よりも短縮することができ、内部メモリの一時記憶保持領域を削減（メモリサイズを削減）でき、回路規模の削減も可能な映像信号処理方法及び装置、並びに映像信号復号方法を提供することを目的とする。
【課題を解決するための手段】
【００２２】
上述の課題を解決するために、本発明は、映像信号を符号化する単位となるマクロブロック毎に符号化データを復号する際に、該マクロブロックを構成する複数のブロックのブロック境界円滑化処理を行う映像信号処理方法において、復号処理中のデータを上記ブロック毎に読み込み、該ブロック単位で上記ブロック境界円滑化処理を逐次行うことを特徴とする。
【００２３】
ここで、上記ロック境界円滑化処理は、オーバーラップスムージング処理であることが挙げられる。上記ブロック境界円滑化処理は、垂直方向の境界円滑化処理後に水平方向の境界円滑化処理が行われ、上記垂直方向の境界円滑化処理に必要な最小の画素データが入力された直後に上記垂直方向の境界円滑化処理を行うことが好ましい。また、上記ブロック境界円滑化処理は、垂直方向の境界円滑化処理後に水平方向の境界円滑化処理が行われ、上記水平方向の境界円滑化処理に必要な最小の画素データについて上記垂直方向の境界円滑化処理が終了した直後に上記水平方向の境界円滑化処理を行うことが好ましい。
【００２４】
本発明に係る映像信号処理装置は、映像信号を符号化する単位となるマクロブロック毎に符号化データを復号する際に、該マクロブロックを構成する複数のブロックのブロック境界円滑化処理を行う映像信号処理装置において、復号処理中のデータを上記ブロック毎に読み込み、該ブロック単位で上記ブロック境界円滑化処理を逐次行うことを特徴とする。
【００２５】
次に、本発明に係る映像信号復号方法は、上記目的を達成するため、映像信号がマクロブロック単位で符号化されて得られた符号化データを復号する際に、該マクロブロックを構成する複数のブロックのブロック境界円滑化処理を行う映像信号復号方法において、上記符号化データを逆量子化／逆ＤＣＴ処理する工程と、上記逆量子化／逆ＤＣＴ処理されたデータを上記ブロック毎に読み込み、該ブロック単位で上記ブロック境界円滑化処理を逐次行う工程とを有することを特徴とする。
【００２６】
このような本発明では、マクロブロックを構成する複数のブロック毎に復号処理中のデータを読み込み、該ブロック単位で上記ブロック境界円滑化処理を逐次行う。
【発明の効果】
【００２７】
本発明によれば、ブロック境界円滑化処理に要するレイテンシを数画素単位にまで短縮することが可能となり、ブロック境界円滑化処理部における一時記憶保持領域のリソース（メモリ）を削減することができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００２９】
図１は、本発明の実施の形態の一例の構成を概略的に示すブロック図である。ＳＭＴＰＥ  ４２１Ｍ（いわゆるＶＣ−１）の規格に基づいてエンコードされたビットストリーム（Bit Stream）信号は、図１に示すようなデコーダシステムに入力され、ビットストリーム構造解析（Parsing）モジュール１１により構造解析され、そのデータの符号化手法により、イントラ（Intra）符号化データとインター（Inter）符号化データとに分類される。イントラ符号化データ及びインター符号化データは、復号画像（Decode Picture）を生成する時のデータの再構成処理が異なる。ビットストリーム構造解析モジュール１１からは動きベクトル（Motion Vector）も出力される。
【００３０】
ビットストリーム構造解析モジュール１１からのイントラ符号化データ及びインター符号化データは、ＡＣ／ＤＣ予測（Prediction）モジュール１２を介して、逆量子化／逆ＤＣＴ（ＩＱ／ＩＤＣＴ）モジュール１３に送られ、逆量子化及び逆ＤＣＴが施された後、選択スイッチ１４に送られ、イントラ符号化データがオーバーラップスムージングフィルタ（Overlap Smoothing Filter）１５に送られ、インター符号化データが加算器１６に送られる。
【００３１】
オーバーラップスムージングフィルタ１５は、前述したように、ブロック境界での歪を軽減するためにブロック境界をスムージングするフィルタであり、イントラ符号化データのみをオーバーラップスムージング処理して加算器１６に送っている。また、ビットストリーム構造解析モジュール１１から動きベクトル（ＭＶ）が動きベクトル予測モジュール２１を介して動き補償（ＭＣ）モジュール２２に送られ、この動き補償モジュール２２では、制御部２３により外部メモリから読み出された復号データを用いて動き補償が施され、得られたデータ（インター符号化データ）が加算器１６に送られる。加算器１６では、選択スイッチ１４からのインター符号化データ、オーバーラップスムージングフィルタ１５からのイントラ符号化データ、動き補償モジュール２２からのインター符号化データが加算され、デブロッキングフィルタ（Deblocking Filter）１７に送られる。デブロッキングフィルタ１７では、ブロック境界のみを平滑化してブロックノイズの発生を抑制する。このような復号処理が行われることにより、画像（ピクチャ：Picture）が再構成（decode）される。
【００３２】
また、別法として選択スイッチ１４を使用せずに、オーバーラップスムージングフィルタ１５にインター符号化データ、イントラ符号化データの双方を入力し、それぞれの符号化に沿って処理方法を工夫する事で、選択スイッチ１４に入力されるデータが、選択スイッチ１４を必要とせずに、オーバーラップスムージングフィルタ１５から加算器１６にデータを送られる事も可能となる。
【００３３】
ここで、図１の制御部２３を介して外部メモリからオーバーラップスムージングフィルタ１５の内部メモリ１５ｍに経路Ｒ１で読み込まれるデータは、図２４のオーバーラップスムージング処理範囲Ｘosの内の上部マクロブロックＡ−ＭＢ及びその直前のマクロブロックＬＡ−ＭＢに対応する部分のデータである。また、オーバーラップスムージング処理後に内部メモリ１５ｍから図１の経路Ｗ２で外部メモリに書き出されるデータは、オーバーラップスムージング処理範囲Ｘos及びその下部領域を含む範囲のデータとなる。
【００３４】
なお、デブロッキングフィルタ１７の内部メモリ１７ｍについても、外部メモリから経路Ｒ３でフィルタ処理に必要なデータが読み込まれ、処理後のデータが経路Ｗ４で外部メモリに書き出される。
【００３５】
図２は、オーバーラップスムージング処理の際に一時的にデータが記憶される記憶領域（メモリ）を示している。この図２に示す一時記憶領域は、従来の図２４に示されるようなマクロブロック単位のオーバーラップスムージング処理を、８×８ブロック（いわゆるＤＣＴブロック）単位で行うと共に、８×８ブロックで垂直エッジフィルタ処理と水平エッジフィルタ処理とを完了して次の８×８ブロックに処理を進めるようにする場合に最低限必要とされるメモリ領域である。
【００３６】
先ず、従来の図２４と共に説明したようなオーバーラップスムージング処理について、図３の（Ａ）に示す輝度（Ｙ）信号の８×８ブロックＹ０の処理に注目し、処理に必要な周辺マクロブロックＬ−ＭＢ，Ａ−ＭＢ，ＬＡ−ＭＢに属する画素領域を抽出すると、図３の（Ｂ）に示すようになる。すなわち、現在のマクロブロックＣ−ＭＢ内の右上のブロックＹ０を処理するために必要な周辺マクロブロックの画素領域は、直前のマクロブロックＬ−ＭＢに属する垂直２ライン×８画素（＝２画素×水平８ライン）の領域Ｋｖ(Y0)と、上部マクロブロックＡ−ＭＢに属する２ライン×６画素の領域Ｋｈ(Y0)と、上部マクロブロックＡ−ＭＢの直前のマクロブロックＬＡ−ＭＢに属する２×２画素の領域Ｋｖｈ(Y0)とに分解できる。これは、図２５に示したクロマ成分Ｃｂ，Ｃｒの場合と同様な構成とも考えられ、回路規模の削減に寄与できる。しかしながら、輝度（Ｙ）信号の８×８ブロックＹ０の場合には、クロマ成分Ｃｂ，Ｃｒの場合と異なり、残りのブロックＹ１，Ｙ２，Ｙ３についての処理を考慮する必要がある。
【００３７】
図４は、輝度（Ｙ）信号の８×８ブロックＹ１，Ｙ２，Ｙ３についての処理にそれぞれ必要とされる、当該ブロック以外の範囲での画素領域を示すものである。この図４において、ブロックＹ１に関しては、ブロックＹ１以外の範囲において、２ライン×８画素（＝２画素×水平８ライン）の領域Ｋｖ(Y1)と、２ライン×６画素の領域Ｋｈ(Y1)と、２×２画素の領域Ｋｖｈ(Y1)とが必要となり、以下同様に、ブロックＹ２に関してはブロックＹ２以外で、領域Ｋｖ(Y2)、領域Ｋｈ(Y2)、領域Ｋｖｈ(Y2)が必要となり、ブロックＹ３に関してはブロックＹ３以外で、領域Ｋｖ(Y3)、領域Ｋｈ(Y3)、領域Ｋｖｈ(Y3)が必要となる。
【００３８】
これらの図３、図４に示した各８×８ブロックＹ０〜Ｙ３についてのオーバーラップスムージング処理に必要とされる周辺画素領域を考慮して、上記図２に示すように、現在のマクロブロックＣ−ＭＢの画素データに対してオーバーラップスムージング処理を行う際に一時的にデータが記憶される記憶領域（メモリ領域）を規定する。
【００３９】
図２の（Ａ）は、輝度（Ｙ）信号成分のフィルタ処理時にデータを一時保持しておくためのメモリ領域を示し、現在のマクロブロックＣ−ＭＢに対して、前記図２１、図２２に示す上部マクロブロックＡ−ＭＢに属する処理に必要な画素データを一時的に保持する２ライン×１６画素分のメモリ領域Ｍｈと、直前のマクロブロックＬ−ＭＢに属する処理に必要な画素データを一時的に保持する垂直２ライン×１６画素分（＝２画素×水平１６ライン分）のメモリ領域Ｍｖと、８×８ブロックＹ２，Ｙ３の処理時に上部の８×８ブロックＹ０，Ｙ１に属する処理に必要な画素データを一時的に保持する２ライン×１６画素分のメモリ領域Ｍｍとが必要とされ、さらに、垂直エッジフィルタ処理後に水平エッジフィルタ処理を行うまでにデータを一時的に保持する２ライン×８画素分のメモリ領域Ｍｔが必要とされる。なお、上記図４における領域Ｋｖ(Y1)，Ｋｖ(Y3)のデータを一時的に保持するためには、メモリ領域Ｍｖを流用することで回路規模を削減する構成としている。また、図２のメモリ領域Ｍｈ’は、前記図２１、図２２に示す下部マクロブロックＢ−ＭＢが現在のマクロブロックとなるときに水平エッジフィルタ処理に必要とされるデータが一時的に保持される領域であり、上記メモリ領域Ｍｈが流用される。
【００４０】
図２の（Ｂ）は、クロマ（Ｃｂ，Ｃｒ）信号成分のフィルタ処理時にデータを一時保持しておくためのメモリ領域を示し、上部マクロブロックに属する処理に必要な画素データを一時的に保持する２ライン×８画素×２（Ｃｂ，Ｃｒ用）分のメモリ領域ＭｈＣと、直前のマクロブロックに属する処理に必要な画素データを一時的に保持する垂直２ライン×８画素（＝２画素×水平８ライン）×２（Ｃｂ，Ｃｒ用）分のメモリ領域ＭｖＣとが必要とされる。垂直エッジフィルタ処理後に水平エッジフィルタ処理を行うまでにデータを一時的に保持する２ライン×８画素分のメモリ領域Ｍｔは、上記輝度（Ｙ）信号成分の場合のメモリ領域Ｍｔを流用できる。なお、クロマ（Ｃｂ，Ｃｒ）信号成分のマクロブロックは８×８画素であり、上記輝度（Ｙ）信号成分の場合のメモリ領域Ｍｍは不要であり、下部マクロブロックが現在のマクロブロックとなるときに水平エッジフィルタ処理に必要とされるデータが一時的に保持されるメモリ領域ＭｈＣ’は、上記領メモリ域ＭｈＣが流用される。
【００４１】
なお、上記各メモリ領域Ｍｈ，Ｍｖ，Ｍｍ，Ｍｔ，ＭｈＣ，ＭｖＣは、ＳＲＡＭ等のメモリ素子をそれぞれ個別に用いてもよく、１つのメモリを分割して用いてもよく、また、半導体メモリ等でなくとも一時保持できる記憶手段であれば何でもよい。
【００４２】
次に、上述したような本発明の実施の形態の動作について、図５〜図１６を参照しながら説明する。図５〜図１２は、輝度（Ｙ）信号成分のオーバーラップスムージング処理を８×８ブロック（いわゆるＤＣＴブロック）単位で行うための周辺画素を保持しているメモリ領域の使用手順とオーバーラップスムージング処理手順を示している。図１３〜図１６は、クロマ（Ｃｂ，Ｃｒ）信号成分の場合のメモリ領域の使用手順とオーバーラップスムージング処理手順を示している。
【００４３】
図５、図６は、オーバーラップスムージング処理のために入力されるデータがＹ成分の８×８ブロックＹ０のデータであるときの処理を示している。ここで、上記図３に示したように、ブロックＹ０の処理を行うときに必要な直前のマクロブロックＬ−ＭＢに属する画素を、図５のメモリ領域ＭｖのデータＰ１として読み出し、入力されたブロックＹ０の画素データに応じてフィルタ処理の演算を行う。この時、本発明の実施の形態で特徴的な処理方法として、入力されてきた画素データに対して、わずかなレイテンシで画素を処理していくことが挙げられる。
【００４４】
すなわち、上記ＳＭＴＰＥ  ４２１Ｍ  の規格書で規定されている処理手順は、前記図２０に示したように、エッジを挟む４画素に対して垂直エッジ、水平エッジを処理するようなっている。また、対象とする画素が両方のエッジ処理を行う必要性がある場合は、垂直エッジを施した後、水平エッジを処理するように規定されている。そこで４画素用意できたとすれば、処理手順を守ることを前提に、ブロック全てのデータが揃う以前に処理を実行することができる。よって本実施の形態でも、処理を行うのに必要な画素データが入力された時点で直ちにエッジフィルタ処理を行っている。ここで、図５のブロックＹ０内の各画素毎に付した番号「０，１，２，・・・」は画素番号を入力順に表しており、例えば画素番号「１」の画素データが入力された時点で、画素番号「０，１」及びその左隣の上記データＰ１の２画素（直前のマクロブロックＬ−ＭＢに属する２画素）の４画素分のデータに対して垂直エッジ処理を行い、処理までのレイテンシを短縮するように実施している。
【００４５】
このように、入力された画素データと、直前のマクロブロックＬ−ＭＢに属するデータＰ１によって垂直エッジのフィルタ処理が行われるが、ブロックＹ０の上部２ライン分の画素は、必要な場合には現在のマクロブロックＣ−ＭＢに対する上部マクロブロックＡ−ＭＢのデータとの間で水平エッジのフィルタ処理を行うことが必要になる。そこで、垂直エッジの処理が済み、水平エッジ処理が終了していない画素のデータを一時的に上記メモリ領域Ｍｔに保持する。メモリ領域Ｍｔはメモリなどではなくても一時保持できる機構であれば構わない。上記メモリ領域Ｍｈには上部マクロブロックＡ−ＭＢに属している画素データと、その直前のマクロブロックＬＡ−ＭＢに属している画素データＳＤ１，ＳＤ２をＳＤＲＡＭ等の外部メモリから読み込んで用意される。ブロックＹ０の処理には外部メモリからのデータＳＤ１が用いられる。これらの上部マクロブロックＡ−ＭＢやその直前のマクロブロックＬＡ−ＭＢの画素データは、上部マクロブロックＡ−ＭＢが現在のマクロブロックである時に、垂直エッジ処理が終了した中間データとして、外部メモリに保持されたものであり、現在のマクロブロックＣ−ＭＢの処理時に外部メモリから読み出されて上記メモリ領域Ｍｈに書き込まれる。
【００４６】
メモリ領域Ｍｈに外部メモリから書き込まれたデータの内、ブロックＹ０の処理に必要とされるデータＳＤ１と、メモリ領域Ｍｔに先ほど保持された垂直エッジ処理済みデータとによって水平エッジ処理を行う。この水平エッジ処理においてもレイテンシ短縮のため、メモリ領域Ｍｔに格納されるデータのうち、処理に必要な垂直に並んだ画素のデータが準備できた時点で水平エッジ処理を行う。例えば、図５において、画素番号「１１」のデータの入力時に水平エッジ処理が開始できるのならば、その時点から水平エッジ処理を開始する。
【００４７】
さらに、図６に示すように、ブロックＹ０のデータが入力されている過程で、垂直、水平エッジ処理を行うだけでなく、他のブロックでの処理に必要となる画素のデータを準備する処理を行う。例えば、上記図４のブロックＹ１を処理する際において、左隣のブロックＹ０に属する領域Ｋｖ(Y1)の画素データを準備するために、図６のブロックＹ０の右端の垂直２ライン×８画素（＝２画素×水平８ライン）のデータＰ３を、上記メモリ領域Ｍｖ（図中上半分の上記データＰ１が記憶されていた領域）に書き込む。これは、ブロックＹ０の垂直エッジ処理に使用するために、メモリ領域ＭｖからデータＰ１を読み出して２度と読み出す必要のなくなった領域（メモリ領域Ｍｖの図中の上半分の領域）を利用するものである。これにより保持エリアをブロックＹ０，Ｙ２の時とブロックＹ１，Ｙ３の時で共用することが可能となる。
【００４８】
次に、ブロックＹ０において垂直エッジ処理を終えた画素データで、ブロックＹ２の処理の時に必要な、図４の領域Ｋｖｈ(Y2)，Ｋｈ(Y2)の画素データを、図６に示すようにデータＱ１として、上記メモリ領域Ｍｍの半分の領域に保持していく。
【００４９】
以上のサイクルで、ブロックＹ０におけるオーバーラップスムージング処理は完結し、かつレイテンシを短縮することが可能となっている。
【００５０】
図７、図８は、８×８ブロックＹ０の右隣のブロックＹ１の画素データが入力された時のオーバーラップスムージング処理手順を示しており、上記図５、図６と共に説明したブロックＹ０の場合と略々同様な処理が行われる。すなわち、８×８ブロックＹ１の垂直エッジ処理を行うために、図７の上記メモリ領域Ｍｖに保持された上記データＰ３が用意され、また、水平エッジ処理を行うために、上記メモリＭｈに外部メモリから書き込まれた図７のデータＳＤ２が用意される。これらの画素データＰ３，ＳＤ２は、上記図４の各領域Ｋｖ(Y1)，Ｋｖｈ(Y1)，Ｋｈ(Y1)のデータに相当する。さらに、図８に示すように、次のマクロブロックの８×８ブロックＹ０の処理の時に必要とされる画素データとして、ブロックＹ１の右端の垂直２ライン×８画素（＝２画素×水平８ライン）のデータＰ１’を用意する。このデータＰ１’は、図７のメモリ領域ＭｖのデータＰ３が読み出されて垂直エッジ処理が行われ不要となった領域（メモリ領域ＭｖのデータＰ３が記憶されていた領域）に書き込まれる。また、ブロックＹ１の垂直エッジ処理を終えた画素データで、ブロックＹ３の処理の時に必要な、図４の領域Ｋｖｈ(Y3)，Ｋｈ(Y3)の画素データを、図８に示すようにデータＱ２として、上記メモリ領域Ｍｍの半分の領域に保持していく。
【００５１】
同様に、図９、図１０は、８×８ブロックＹ２の画素データが入力された時の処理手順を示しており、垂直エッジ処理を行うために図５の上記メモリ領域Ｍｖに保持された上記データＰ２が用意され、水平エッジ処理を行うために、上記メモリＭｍに書き込まれた図６のデータＱ１が用意される。これらの画素データＰ２，Ｑ１は、上記図４の各領域Ｋｖ(Y2)，Ｋｖｈ(Y2)，Ｋｈ(Y2)のデータに相当する。また、図１０に示すように、次の８×８ブロックＹ３の処理の時に必要とされる画素データとして、ブロックＹ２の右端の垂直２ライン×８画素（＝２画素×水平８ライン）のデータＰ４を用意する。このデータＰ４は、図９のメモリ領域ＭｖのデータＰ２が読み出されて垂直エッジ処理が行われ不要となった領域（メモリ領域ＭｖのデータＰ２が記憶されていた領域）に書き込まれる。また、ブロックＹ２の垂直エッジ処理を終えた画素データで、前記図２１、図２２の下部マクロブロックＢ−ＭＢが現在のマクロブロックとなるときのブロックＹ０の処理時に必要な、図４の領域Ｋｖｈ(Y1)，Ｋｈ(Y1)の画素データを、図１０に示すようにデータＳＤ１’として、上記メモリ領域Ｍｈの半分の領域（上記データＳＤ１が記憶されていた領域）に保持していく。このメモリ領域Ｍｈに保持された画素データＳＤ１’は、適当なタイミングで外部メモリに書き出される。
【００５２】
同様に、図１１、図１２は、８×８ブロックＹ３の画素データが入力された時の処理手順を示しており、垂直エッジ処理を行うために、図１０のメモリ領域Ｍｖに保持された上記データＰ４が用意され、また、水平エッジ処理を行うために、上記メモリＭｈに書き込まれた図８のデータＱ２が用意される。これらの画素データＰ４，Ｑ２は、上記図４の各領域Ｋｖ(Y3)，Ｋｖｈ(Y3)，Ｋｈ(Y3)のデータに相当する。さらに、図１２に示すように、次のマクロブロックの８×８ブロックＹ２の処理の時に必要とされる画素データとして、ブロックＹ３の右端の垂直２ライン×８画素（＝２画素×水平８ライン）のデータＰ２’を用意する。このデータＰ２’は、図１１のメモリ領域ＭｖのデータＰ４が読み出されて垂直エッジ処理が行われ不要となった領域（メモリ領域ＭｖのデータＰ４が記憶されていた領域）に書き込まれる。また、ブロックＹ３の垂直エッジ処理を終えた画素データで、前記図２１、図２２の下部マクロブロックＢ−ＭＢが現在のマクロブロックとなるときのブロックＹ１の処理の時に必要な、図４の領域Ｋｖｈ(Y1)，Ｋｈ(Y1)の画素データを、図１２に示すようにデータＳＤ２’として、上記メモリ領域Ｍｈの半分の領域に保持していく。このメモリ領域Ｍｈに保持された画素データＳＤ２’は、適当なタイミングで外部メモリに書き出される。
【００５３】
次に、図１３、図１４は、クロマ信号のＣｂ成分の現在のマクロブロックＣ−ＭＢ(Cb)の画素データが入力された場合のメモリ領域の使用手順及びオーバーラップスムージング処理手順を示す図である。図１３において、クロマ成分のマクロブロックＣ−ＭＢ(Cb)の垂直エッジ処理を行うために、上記図２の（Ｂ）のメモリ領域ＭｖＣ（の半分の領域）に保持された画素データＰ−Ｃｂが用意される。この画素データＰ−Ｃｂは、前記図２５の（Ａ）に示した現在のＣｂ成分のマクロブロックＣ−ＭＢ(Cb)に対して、直前のマクロブロックＬ−ＭＢ(Cb)に属するオーバーラップスムージング処理に必要とされる領域Ｋｖ(Cb)の画素データに相当する。また、クロマ成分のマクロブロックＣ−ＭＢ(Cb)の水平エッジ処理を行うために、上記図２の（Ｂ）のメモリ領域ＭｈＣ（の半分の領域）に外部メモリから書き込まれた画素データＳＤ−Ｃｂが用意される。この画素データＳＤ−Ｃｂは、前記図２５の（Ａ）の現在のマクロブロックＣ−ＭＢ(Cb)に対して、上部マクロブロックＡ−ＭＢ(Cb)及びその直前のマクロブロックＬＡ−ＭＢ(Cb)に属する領域Ｋｈ(Cb)及びＫｖｈ(Cb)の画素データに相当する。ここで、クロマ成分用のメモリ領域ＭｖＣ，ＭｈＣは、クロマ成分のマクロブロック毎の処理時に変更されなければならないため、上記Ｙ成分のメモリ領域Ｍｖ，Ｍｈとは別に確保する必要がある。
【００５４】
また、図１４に示すように、次のＣｂ成分のマクロブロックのオーバーラップスムージング処理の時に必要とされる画素データとして、現在のマクロブロックＣ−ＭＢ(Cb)の右端の垂直２ライン×８画素（＝２画素×水平８ライン）のデータＰ−Ｃｂ’を用意する。このデータＰ−Ｃｂ’は、図１３のメモリ領域ＭｖＣのデータＰ−Ｃｂが読み出されて垂直エッジ処理が行われ不要となった領域（メモリ領域ＭｖＣのデータＰ−Ｃｂが記憶されていた領域）に書き込まれる。また、垂直エッジ処理を終えた画素データで、現在のマクロブロックＣ−ＭＢ(Cb)の下部のマクロブロックが現在のマクロブロックとなるときの処理の時に必要な図２５の領域Ｋｖｈ(Cb)，Ｋｈ(Cb)の画素データを、図１４に示すようにデータＳＤ−Ｃｂ’として、上記図２の（Ｂ）のメモリ領域ＭｈＣの半分の領域（図１３のデータＳＤ−Ｃｂが記憶されていた領域）に保持していく。このメモリ領域ＭｈＣに保持された画素データＳＤ−Ｃｂ’は、適当なタイミングで外部メモリに書き出される。
【００５５】
同様に、図１５、図１６は、クロマのＣｒ成分の現在のマクロブロックＣ−ＭＢ(Cr)の画素データが入力された場合のメモリ領域の使用手順及びオーバーラップスムージング処理手順を示している。図１５は、マクロブロックＣ−ＭＢ(Cr)の垂直エッジ処理を行うために、上記図２の（Ｂ）のメモリ領域ＭｖＣ（の半分の領域）に保持された画素データＰ−Ｃｒが用意される。この画素データＰ−Ｃｒは、前記図２５の（Ｂ）に示した現在のＣｒ成分のマクロブロックＣ−ＭＢ(Cr)に対して、直前のマクロブロックＬ−ＭＢ(Cr)に属する領域Ｋｖ(Cr)の画素データに相当する。また、クロマ成分のマクロブロックＣ−ＭＢ(Cr)の水平エッジ処理を行うために、上記図２の（Ｂ）のメモリ領域ＭｈＣ（の半分の領域）に外部メモリから書き込まれた画素データＳＤ−Ｃｒが用意される。この画素データＳＤ−Ｃｒは、前記図２５の（Ｂ）の現在のマクロブロックＣ−ＭＢ(Cr)に対して、上部マクロブロックＡ−ＭＢ(Cr)及びその直前のマクロブロックＬＡ−ＭＢ(Cr)に属する領域Ｋｈ(Cr)及びＫｖｈ(Cr)の画素データに相当する。
【００５６】
また、図１６に示すように、次のＣｒ成分のマクロブロックのオーバーラップスムージング処理の時に必要とされる画素データとして、現在のマクロブロックＣ−ＭＢ(Cr)の右端の垂直２ライン×８画素（＝２画素×水平８ライン）のデータＰ−Ｃｒ’を用意する。このデータＰ−Ｃｒ’は、図１５のメモリ領域ＭｖＣのデータＰ−Ｃｒが読み出されて垂直エッジ処理が行われ不要となった領域（メモリ領域ＭｖＣのデータＰ−Ｃｒが記憶されていた領域）に書き込まれる。また、垂直エッジ処理を終えた画素データで、現在のマクロブロックＣ−ＭＢ(Cr)の下部のマクロブロックが現在のマクロブロックとなるときの処理の時に必要な図２５の領域Ｋｖｈ(Cr)，Ｋｈ(Cr)の画素データを、図１６に示すようにデータＳＤ−Ｃｒ’として、上記図２の（Ｂ）のメモリ領域ＭｈＣの半分の領域（図１５のデータＳＤ−Ｃｒが記憶されていた領域）に保持していく。このメモリ領域ＭｈＣに保持された画素データＳＤ−Ｃｒ’は、適当なタイミングで外部メモリに書き出される。
【００５７】
以上の図５〜図１６と共に説明した処理を繰り返すことによって、全ての入力データに対してブロック単位で処理を完結する構成法が実現されている。
【００５８】
次に、図１７は、輝度（Ｙ）信号成分について、従来のマクロブロック単位のオーバーラップスムージング処理を行う場合に必要とされるメモリ領域の例を示している。この図１７において、フィルタ処理に必要とされる一時記憶メモリ容量は、１マクロブロック分（６４画素×４）の領域Ｍ１と、垂直エッジ処理用の２画素×１６（３２画素）の領域Ｍ２と、水平エッジ処理用の１６画素×２ライン（３２画素）の領域Ｍ３と、垂直水平演算用一時保持メモリとしての１６画素×６ライン（９６画素）の領域Ｍ４とが必要とされ、合計で４１６画素分のメモリ容量が必要となる。
【００５９】
これに対して、本発明の実施の形態のように、輝度（Ｙ）信号成分について、８×８ブロック単位でオーバーラップスムージング処理を行う場合に必要とされる一時記憶メモリ容量は、図１８のようになる。この図１８は、上記図２の（Ａ）に示したメモリ領域の内の流用分を省略して示すものであり、垂直エッジ処理用の２画素×１６（３２画素）の領域Ｍｖと、水平エッジ処理用の１６画素×２ライン（３２画素）の領域Ｍｈと、垂直エッジ処理後に他のブロックの水平エッジ処理するための１６画素×２ライン（３２画素）の領域Ｍｍと、垂直水平演算用一時保持メモリとしての８画素×２ライン（１６画素）の領域Ｍｔとが必要とされ、一時記憶メモリ容量は合計で１１２画素分となる。従って、従来例に対して本発明の実施の形態の構成は、一時記憶メモリ容量が３０４画素分削減されることになる。
【００６０】
次に、図１９は、本発明の実施の形態の処理が行われるタイミングを模式的に示す図である。この図１９において、（Ａ）は、図１の逆量子化／逆ＤＣＴ（ＩＱ／ＩＤＣＴ）モジュール１３から送られてきたデータ列を示し、マクロブロックＭＢ０〜ＭＢ２の内のマクロブロックＭＢ１を現在のマクロブロックＣ−ＭＢとしている。図１９の（Ｂ）は、現在のマクロブロックＣ−ＭＢが輝度（Ｙ）成分の４ブロックＹ０〜Ｙ３、クロマ（Ｃｂ，Ｃｒ）成分の２ブロックＣｂ，Ｃｒの順に供給されることを示しており、時間軸上で１ブロックは、８×８画素の６４画素（ピクセル）分の時間Ｌ１１に相当する。図１９の（Ｃ）は、図１９の（Ｂ）のデータ列を内部バッファに書き込んで算術論理演算ユニット（ＡＬＵ）によりオーバーラップスムージング処理が行われるデータ列を示し、このときのレイテンシＬ１２は、最小で２画素分となる。図１９の（Ｄ），（Ｅ），（Ｆ）は、現在のマクロブロックＣ−ＭＢの周囲の直前のマクロブロックＬ−ＭＢ、上部マクロブロックＡ−ＭＢ、その直前のマクロブロックＬＡ−ＭＢにそれぞれ属する処理に必要な画素データを示すものであり、各ブロックＹ０〜Ｙ３の符号の前に付したＬ−，Ａ−，ＬＢ−が、それぞれ直前のマクロブロックＬ−ＭＢ、上部マクロブロックＡ−ＭＢ、その直前のマクロブロックＬＡ−ＭＢにそれぞれ属するデータを意味する。また、Ｖ−Ｙ０，Ｖ−Ｙ１は、現在のマクロブロックＣ−ＭＢのそれぞれブロックＹ０，Ｙ１に属し、垂直エッジ処理済みのデータを意味する。このときのレイテンシＬ１３は、最初のデータ処理が終了するまでのレイテンシを示し、図１９の（Ｇ）に示すように、オーバーラップスムージング処理後のデータを直ちに外部メモリに書き出すことができ、マクロブロック内の全データの書き出し時間はＬ１４となる。従って、図１９の（Ａ）のクロマＣｒ成分のデータ入力が終了して当該クロマＣｒ成分のオーバーラップスムージング処理後のデータが外部メモリに書き出されるまでのオーバーラップスムージング処理に必要なレイテンシＬ１５は、最小で２画素分となる。
【００６１】
以上説明したような本発明の実施の形態によれば、オーバーラップスムージング処理に要するレイテンシを数画素単位（例えば２画素分）にまで短縮することが可能となり、オーバーラップスムージングフィルタにおける一時記憶保持領域のリソース（メモリ）を削減することができる。例えば、マクロブロック単位でデータを読み込んで処理する場合には、５１２画素サイズ＋α（垂直、水平の両方を行う場合のバッファ）が必要であるのに対し、本発明の実施の形態では、垂直、水平の両方を行う場合のバッファを含めて１６０画素サイズにまで削減できる。
【００６２】
また、処理が８×８ブロック単位であるため、輝度（Ｙ）成分とクロマ（Ｃｂ，Ｃｒ）成分における処理手順を類似化し易く、回路規模の削減が実現でき、外部メモリに対して読み出し／書き込みを行うタイミングがマクロブロック単位に比較して分散でき、外部メモリへのアクセスのレイテンシが集中するのを防止できる。さらに、処理が８×８ブロック単位で、そのブロック内で垂直エッジ、水平エッジの演算を効率よく処理していくことが可能となるため、演算装置の共有化を実現してもレイテンシの低下が発生しない、という利点がある。
【００６３】
なお、本発明は上述した実施の形態のみに限定されるものではなく、例えばソフトウェアプログラムにより実現することも可能であり、この場合、コンピュータに、映像信号を符号化する単位となるマクロブロック毎に符号化データを復号する際に、該マクロブロックを構成する複数のブロックのブロック境界円滑化処理を行わせ、復号処理中のデータを上記ブロック毎に読み込み、該ブロック単位で上記ブロック境界円滑化処理を逐次行わせるためのプログラムを提供することもできる。この他、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【００６４】
【図１】本発明の実施の形態の一例の概略構成を示すブロック図である。
【図２】本発明の実施の形態におけるオーバーラップスムージング処理の際に一時的にデータが記憶される記憶領域（メモリ）を示す図である。
【図３】輝度（Ｙ）信号の８×８ブロックＹ０の処理に必要な周辺マクロブロックに属する画素領域を示す図である。
【図４】輝度（Ｙ）信号の８×８ブロックＹ１，Ｙ２，Ｙ３についての処理にそれぞれ必要とされる当該ブロック以外の範囲での画素領域を示す図である。
【図５】入力データがＹ成分のブロックＹ０のデータであるときのオーバーラップスムージング処理を説明するための図である。
【図６】Ｙ成分のブロックＹ０のデータのオーバーラップスムージング処理中に他のブロックでの処理に必要となるデータを準備する処理を説明するための図である。
【図７】入力データがＹ成分のブロックＹ１のデータであるときのオーバーラップスムージング処理を説明するための図である。
【図８】Ｙ成分のブロックＹ１のデータのオーバーラップスムージング処理中に他のブロックでの処理に必要となるデータを準備する処理を説明するための図である。
【図９】入力データがＹ成分のブロックＹ２のデータであるときのオーバーラップスムージング処理を説明するための図である。
【図１０】Ｙ成分のブロックＹ２のデータのオーバーラップスムージング処理中に他のブロックでの処理に必要となるデータを準備する処理を説明するための図である。
【図１１】入力データがＹ成分のブロックＹ３のデータであるときのオーバーラップスムージング処理を説明するための図である。
【図１２】Ｙ成分のブロックＹ３のデータのオーバーラップスムージング処理中に他のブロックでの処理に必要となるデータを準備する処理を説明するための図である。
【図１３】入力データがＣｂ成分のブロックＣ−ＭＢ(Cb)のデータであるときのオーバーラップスムージング処理を説明するための図である。
【図１４】Ｃｂ成分のブロックＣ−ＭＢ(Cb)のデータのオーバーラップスムージング処理中に他のブロックでの処理に必要となるデータを準備する処理を説明するための図である。
【図１５】入力データがＣｒ成分のブロックＣ−ＭＢ(Cr)のデータであるときのオーバーラップスムージング処理を説明するための図である。
【図１６】Ｃｒ成分のブロックＣ−ＭＢ(Cr)のデータのオーバーラップスムージング処理中に他のブロックでの処理に必要となるデータを準備する処理を説明するための図である。
【図１７】輝度（Ｙ）信号成分について、従来のマクロブロック単位のオーバーラップスムージング処理を行う場合に必要とされるメモリ領域の例を示す図である。
【図１８】輝度（Ｙ）信号成分について、本発明の実施の形態の８×８ブロック単位のオーバーラップスムージング処理を行う場合に必要とされるメモリ領域の例を示す図である。
【図１９】オーバーラップスムージング処理が行われるタイミングを模式的に示す図である。
【図２０】オーバーラップスムージング処理を説明するための図である。
【図２１】前段のモジュールからあるいは外部メモリから送られてくるデータの時系列を示す図である。
【図２２】デコードされた画像とオーバーラップスムージング処理及びデブロッキングフィルタ処理範囲と各マクロブロックとの関係を説明するための図である。
【図２３】輝度（Ｙ）信号のデータについてのオーバーラップスムージング処理が施される部分を説明するための図である。
【図２４】輝度（Ｙ）成分について、オーバーラップスムージング処理に必要とされる現在のマクロブロック以外の各マクロブロックに属する画素範囲を示す図である。
【図２５】カラー映像信号のクロマ成分（Ｃｂ，Ｃｒ成分）について、オーバーラップスムージング処理に必要とされる現在のマクロブロック以外の各マクロブロックに属する画素範囲を示す図である。
【図２６】マクロブロックを処理単位としてオーバーラップスムージング処理を行う場合のレイテンシを説明するための図である。
【符号の説明】
【００６５】
１１  ビットストリーム構造解析モジュール、  １３  逆量子化／逆ＤＣＴモジュール、１５  オーバーラップスムージングフィルタ、  １７  デブロッキングフィルタ、  ２２  動き補償モジュール、  ２３  制御部
【図１】
2008034951.tif 000003
【図２】
2008034951.tif 000004
【図３】
2008034951.tif 000005
【図４】
2008034951.tif 000006
【図５】
2008034951.tif 000007
【図６】
2008034951.tif 000008
【図７】
2008034951.tif 000009
【図８】
2008034951.tif 000010
【図９】
2008034951.tif 000011
【図１０】
2008034951.tif 000012
【図１１】
2008034951.tif 000013
【図１２】
2008034951.tif 000014
【図１３】
2008034951.tif 000015
【図１４】
2008034951.tif 000016
【図１５】
2008034951.tif 000017
【図１６】
2008034951.tif 000018
【図１７】
2008034951.tif 000019
【図１８】
2008034951.tif 000020
【図１９】
2008034951.tif 000021
【図２０】
2008034951.tif 000022
【図２１】
2008034951.tif 000023
【図２２】
2008034951.tif 000024
【図２３】
2008034951.tif 000025
【図２４】
2008034951.tif 000026
【図２５】
2008034951.tif 000027
【図２６】
2008034951.tif 000028