(57)【要約】【課題】ＶＣ−１方式で符号化された動画像データの復号時におけるオーバーラップスムージング処理のためのデータを記憶する外部メモリの容量を削減する。【解決手段】オーバーラップスムージングフィルタ１２０は、現在のマクロブロックに対してオーバーラップスムージング処理を施した後に、該マクロブロックに含まれるイントラブロックのうちの、該マクロブロックの右端と下端のブロックのいずれかに該当するイントラブロックのデータを外部メモリ１７０に設けられたオーバーラップメモリ１７２に書き込み、現在のマクロブロックに対してオーバーラップスムージング処理を施す際に、オーバーラップメモリ１７２から、オーバーラップスムージングフィルタ１２０により前に書き込まれたデータに含まれた、現在のマクロブロックのオーバーラップスムージング処理に必要なデータを読み出す。【選択図】図１
2012090031.tif 000002
【特許請求の範囲】
【請求項１】
ＶＣ−１方式で符号化された動画像を復号する復号装置であって、
動き補償の参照ピクチャにおけるマクロブロックに対してオーバーラップスムージング処理を行うオーバーラップスムージング処理部と、
前記オーバーラップスムージング処理部の外部に設けられたメモリであって、まだオーバーラップスムージング処理がなされていないマクロブロックのオーバーラップスムージング処理のためのデータを一時的に格納するためのオーバーラップメモリとを備え、
前記オーバーラップスムージング処理部は、
現在のマクロブロックに対してオーバーラップスムージング処理を施した後に、該マクロブロックに含まれるイントラブロックのうちの、該マクロブロックの右端と下端のブロックのいずれかに該当するイントラブロックのデータを前記オーバーラップメモリに書き込み、
現在のマクロブロックに対してオーバーラップスムージング処理を施す際に、前記オーバーラップメモリから、前記オーバーラップスムージング処理部により前に書き込まれたデータのうちの、前記現在のマクロブロックのオーバーラップスムージング処理に必要なデータを読み出すことを特徴とする復号装置。
【請求項２】
前記オーバーラップスムージング処理部は、
現在のマクロブロックに対してオーバーラップスムージング処理を施した後に、該マクロブロックに含まれるイントラブロックのうちの、該マクロブロックの下端のブロックに該当するイントラブロックについて、その下端の水平２画素ラインのデータのみを前記オーバーラップメモリに書き込むことを特徴とする請求項１に記載の復号装置。
【請求項３】
前記オーバーラップスムージング処理部は、
現在のマクロブロックに対してオーバーラップスムージング処理を施した後に、該マクロブロックに含まれるイントラブロックのうちの、該マクロブロックの右端のブロックに該当するイントラブロックについて、その右端の垂直２画素ラインのデータのみを前記オーバーラップメモリに書き込むことを特徴とする請求項１または２に記載の復号装置。
【請求項４】
ＶＣ−１方式で符号化された動画像を復号する際に、動き補償の参照ピクチャにおけるマクロブロックに対してオーバーラップスムージング処理を行うオーバーラップスムージング処理部と、前記オーバーラップスムージング処理部の外部に設けられたメモリであって、まだオーバーラップスムージング処理がなされていないマクロブロックのオーバーラップスムージング処理のためのデータを一時的に格納するためのオーバーラップメモリとを備えた復号装置による復号方法において、
前記オーバーラップスムージング処理部により現在のマクロブロックに対してオーバーラップスムージング処理を施した後に、該マクロブロックに含まれるイントラブロックのうちの、該マクロブロックの右端と下端のブロックのいずれかに該当するイントラブロックのデータを前記オーバーラップメモリに書き込む書込ステップと、
前記オーバーラップスムージング処理部により現在のマクロブロックに対してオーバーラップスムージング処理を施す際に、前記オーバーラップメモリから、前記書込ステップにより前に書き込まれたデータのうちの、前記現在のマクロブロックのオーバーラップスムージング処理に必要なデータを読み出して前記オーバーラップスムージング処理部に供するステップとを備えることを特徴とする復号方法。
【請求項５】
前記書込ステップは、
前記オーバーラップスムージング処理部により、現在のマクロブロックに対してオーバーラップスムージング処理を施した後に、該マクロブロックに含まれるイントラブロックのうちの、該マクロブロックの下端のブロックに該当するイントラブロックについて、その下端の水平２画素ラインのデータのみを前記オーバーラップメモリに書き込むことを特徴とする請求項４に記載の復号方法。
【請求項６】
前記書込ステップは、
前記オーバーラップスムージング処理部により現在のマクロブロックに対してオーバーラップスムージング処理を施した後に、該マクロブロックに含まれるイントラブロックのうちの、該マクロブロックの右端のブロックに該当するイントラブロックについて、その右端の垂直２画素ラインのデータのみを前記オーバーラップメモリに書き込むことを特徴とする請求項４または５に記載の復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、本発明は、符号化された動画像、特にＶＣ−１方式で符号化された動画像の復号技術に関する。
【背景技術】
【０００２】
動画像の符号化は、種々の方式があり、例えば、ＳＭＰＴＥ（米国映画テレビジョン技術者協会）により規格化され、ＳＭＰＴＥ  ４２１Ｍとして発表されたＶＣ−１方式（非特許文献１）が知られている。
【０００３】
近年、動画像を扱うデジタル家電や携帯機器に対して、ハイビジョン化による画像の高精細化の要求が高まり、これらの機器で使用されるメモリは、増加の一途を辿っている。一方、機器の低価格化への要求も強く、メモリなど、機器に搭載される部品量の削減も同時に要求されている。
【０００４】
特許文献１は、ＶＣ−１方式で符号化された動画像のデコードシステムに対して、処理速度の向上と回路規模の削減を図る技術が開示されている。図７を参照して、この技術の概要を説明する。
【０００５】
図７は、特許文献１の図１であり、該文献に開示された技術を適用したデコードシステムを示す。図示のように、該システムは、ビットストリーム構造解析モジュール１１、ＡＣ／ＤＣ予測モジュール１２、逆量子化／逆ＤＣＴモジュール１３、選択スイッチ１４、オーバーラップスムージングフィルタ１５、加算器１６、デブロッキングフィルタ１７、動きベクトル予測モジュール２１、動き補償モジュール２２、制御部２３を有し、オーバーラップスムージングフィルタ１５とデブロッキングフィルタ１７には、内部メモリ１５ｍと内部メモリ１７ｍが夫々備えられている。
【０００６】
ＶＣ−１方式の動画像の復号は、マクロブロック（ＭＢ）単位に行われる。１つのＭＢは、輝度成分（Ｙ）については上下左右に並ぶ４つの輝度ブロックで構成され、色差成分については２つの色差成分（Ｃｂ、Ｃｒ）ブロックで構成される。なお、各ブロックは、イントラブロックとインターブロックのいずれかである。
【０００７】
図７に示すように、ＶＣ−１方式で圧縮された動画像となるビットストリームは、まず、ビットストリーム構造解析モジュール１１により構造解析がなされ、イントラブロックとインターブロックに分類される。これらのブロックは、ビットストリーム構造解析モジュール１１からＡＣ／ＤＣ予測モジュール１２に出力される。また、インターブロックについては、さらに、動きベクトル予測モジュール２１を介して、ビットストリーム構造解析モジュール１１から動き補償モジュール２２に、動きベクトルが出力される。
【０００８】
イントラブロックは、ＡＣ／ＤＣ予測モジュール１２、逆量子化／逆ＤＣＴモジュール１３の順に処理が施され、処理後のデータが選択スイッチ１４によりオーバーラップスムージングフィルタ１５に出力され、さらに、オーバーラップスムージングフィルタ１５によりブロック境界の歪みを軽減するためのオーバーラップスムージング処理がなされた後に加算器１６に出力される。
【０００９】
インターブロックは、ＡＣ／ＤＣ予測モジュール１２、逆量子化／逆ＤＣＴモジュール１３の順に処理が施され、処理後のデータが選択スイッチ１４により加算器１６に出力される。
【００１０】
動き補償モジュール２２において、インターブロックに対する動き補償処理が施される。動き補償モジュール２２の処理結果も、加算器１６に出力される。なお、動き補償モジュール２２による動き補償処理では、既に復号されたブロックのデータが用いられ、このデータは、制御部２３により図示しない外部メモリから読み出されて、経路Ｒｄを介して動き補償モジュール２２に供される。
【００１１】
加算器１６において、選択スイッチ１４からのインターブロックのデータと、オーバーラップスムージングフィルタ１５からのイントラブロックのデータと、動き補償モジュール２２からのインターブロックの動き補償の結果との加算がなされる。加算の結果は、さらに、デブロッキングフィルタ１７に出力される。
【００１２】
デブロッキングフィルタ１７において、オーバーラップスムージングフィルタ１５により行われるオーバーラップスムージング処理とは別種の、ブロック境界を平滑化しブロックノイズを抑制するデブロックング処理が施される。
【００１３】
オーバーラップスムージングフィルタ１５によるオーバーラップスムージング処理は、動き補償の参照ピクチャ（ＩピクチャとＰピクチャ）に対してのみ適用される処理である。具体的には、これらのピクチャにおけるマクロブロックの逆量子化／逆ＤＣＴ（ＩＱ／ＤＣＴ）の後のデータに対して、８画素×８画素のブロックの境界について、４タップのフィルタを適用し、ブロック境界を平滑化する。オーバーラップスムージング処理は、具体的には、当該マクロブロックに含まれる各イントラブロックの左側の境界を平滑化する処理（以下「垂直エッジ処理」という）と、各イントラブロックの上側の境界を平滑化する処理（以下「水平エッジ処理」という）とを含み、垂直エッジ処理、水平エッジ処理の順に行われる。
【００１４】
１つのマクロブロックのオーバーラップスムージング処理のために必要なデータは、復号中のマクロブロック即ち現在のマクロブロック自身のデータ（逆量子化／逆ＤＣＴ後のデータ）以外に、既にオーバーラップスムージング処理がなされたマクロブロックのデータがある。
【００１５】
現在のマクロブロック自身のデータは、オーバーラップスムージング処理の前段の機能ブロックから直接オーバーラップスムージングフィルタ１５の内部メモリ１５ｍに入力されるか、制御部２３により外部メモリからオーバーラップスムージングフィルタ１５の内部メモリ１５ｍに入力される。
【００１６】
既にオーバーラップスムージング処理がなされた他のマクロブロックのデータは、制御部２３により、外部メモリから読み出されて、経路Ｒ１を介して、オーバーラップスムージングフィルタ１５の内部メモリ１５ｍに入力される。
【００１７】
また、オーバーラップスムージングフィルタ１５は、現在のマクロブロックのオーバーラップスムージング処理後に、経路Ｗ２を介して、処理後のデータを内部メモリ１５ｍから外部メモリに出力する。ここで、オーバーラップスムージングフィルタ１５から外部メモリに出力されるデータは、後のマクロブロックのオーバーラップスムージング処理のためのデータであり、非特許文献１で規格化されている精度を維持するため、１画素あたり１０ビットのデータとなっている。
【００１８】
図８は、特許文献１の図２４であり、輝度Ｙについて、オーバーラップスムージング処理に必要とされる、現在のマクロブロック以外の各ＭＢに属する画素範囲を示す。
【００１９】
図８において、Ｃ−ＭＢは、現在のＭＢであり、Ｙ０、Ｙ１、Ｙ２、Ｙ３は、Ｃ−ＭＢの４つの輝度成分のブロックであり、夫々８×８画素を有する。Ａ−ＭＢは、Ｃ−ＭＢの上隣のＭＢであり、Ｌ−ＭＢは、デコードの走査順においてＣ−ＭＢの直前のＭＢであり、通常、Ｃ−ＭＢの左隣のＭＢとなる。なお、範囲Ｘｏｓは、Ｃ−ＭＢに対してオーバーラップスムージング処理がなされる領域である。
【００２０】
範囲Ｘｏｓのうちに、現在のＭＢであるＣ−ＭＢ以外の画素範囲は、垂直エッジ処理のための垂直２ライン×１６画素（＝２画素×水平１６ライン）の領域Ｋｖと、水平エッジ処理のための水平２ライン×１４画素の領域Ｋｈと、垂直エッジ処理と水平エッジ処理の両方のための２画素×２画素の領域Ｋｖｈである。これらの画素のデータは、Ｃ−ＭＢのオーバーラップスムージング処理時に外部メモリからオーバーラップスムージングフィルタ１５の内部メモリ１５ｍに供される。ここでいう「ライン」は、画素単位のラインを意味する。以下の説明において、画素単位のラインを「画素ライン」といい、ブロック単位のラインとＭＢ単位のラインを夫々「ブロックライン」と「ＭＢライン」という。また、「行」と「列」を夫々「水平ライン」と「垂直ライン」ともいう。
【００２１】
なお、領域Ｋｖ内における範囲Ｘｏｓ以外の２画素×２画素の部分Ｋｖｎは、Ｃ−ＭＢのオーバーラップスムージング処理の際に垂直エッジ処理がなされるが、水平エッジ処理は、Ｃ−ＭＢの下隣のＭＢが現在のＭＢとなったときに行われるため、Ｋｖｎのデータは、中間データとして外部メモリに保存される必要がある。
【００２２】
また、オーバーラップスムージングフィルタ１５は、Ｃ−ＭＢのオーバーラップスムージング処理後に、経路Ｗ２を介して、範囲Ｘｏｓとその下部領域を含む範囲のデータを内部メモリ１５ｍから外部メモリに出力する。
【００２３】
Ｃ−ＭＢのオーバーラップスムージング処理の際に、Ｃ−ＭＢの４つの輝度ブロックは、Ｙ０、Ｙ１、Ｙ２、Ｙ３の順に、前段の機能ブロック（ここでは選択スイッチ１４）からまたは外部メモリからオーバーラップスムージングフィルタ１５の内部メモリ１５ｍに入力される。
【００２４】
ＭＢ毎にオーバーラップスムージング処理を行う場合、該ＭＢの全てのブロックがオーバーラップスムージングフィルタ１５の内部メモリ１５ｍに入力されてからオーバーラップスムージング処理を行うことになる。また、内部メモリ１５ｍには、該ＭＢの全てのブロックと、該ＭＢのオーバーラップスムージング処理のために必要な、該ＭＢ以外のデータ（図８における領域Ｋｖ、Ｋｈ、Ｋｖｈ）の全てを格納する必要がある。
【００２５】
特開文献１に記載の手法は、現在のＭＢのオーバーラップスムージング処理を行うとき、該ＭＢのデータをブロック毎に読み込み、ブロック単位でオーバーラップスムージング処理を逐次行う。図８に示す例の場合、Ｃ−ＭＢのオーバーラップスムージング処理の際に、まず、Ｙ０と、Ｙ０のオーバーラップスムージング処理に必要な他のデータ（Ｋｖの一部と、Ｋｖｈと、Ｋｈの一部）をオーバーラップスムージングフィルタ１５の内部メモリ１５ｍに読み込み、Ｙ０のオーバーラップスムージング処理（Ｙ０の左側ブロック境界の垂直エッジ処理と、Ｙ０の上側ブロック境界の水平エッジ処理）を施す。その後、Ｙ１、Ｙ２、Ｙ３の順に、オーバーラップスムージング処理をブロック毎に行う。
【００２６】
こうすることにより、現在のＭＢの当該ブロックが入力された時点で該ブロックのオーバーラップスムージング処理が可能であるため、全てのブロックが揃ってからオーバーラップスムージング処理を行う場合より待ち時間を短縮できる。また、ブロック毎にオーバーラップスムージング処理を行うため、オーバーラップスムージングフィルタ１５の内部メモリ１５ｍは、オーバーラップスムージング処理がなされるブロックと、該ブロックのオーバーラップスムージング処理に必要な、該ブロック以外のデータとを格納する容量があればよいので、内部メモリ１５ｍの容量を削減できる。
【先行技術文献】
【特許文献】
【００２７】
【特許文献１】特開２００８−３４９５１号公報
【非特許文献】
【００２８】
【非特許文献１】ＳＭＰＴＥ  ４２１Ｍ    ＶＣ−１  Ｃｏｍｐｒｅｓｓｅｄ  Ｖｉｄｅｏ  Ｂｉｔｓｔｒｅａｍ  Ｆｏｒｍａｔ  ａｎｄ  Ｄｅｃｏｄｉｎｇ  Ｐｒｏｃｅｓｓ
【発明の概要】
【発明が解決しようとする課題】
【００２９】
ここで、外部メモリについて考える。
前述したように、現在のＭＢに対してオーバーラップスムージング処理を行うために、該現在のＭＢ以外のＭＢのデータを、外部メモリからオーバーラップスムージングフィルタ１５の内部メモリ１５ｍに読み出す必要がある。そのため、現在のＭＢのオーバーラップスムージング処理が完了すると、後のＭＢのオーバーラップスムージング処理のために、上記現在のＭＢのオーバーラップスムージング処理済みのデータを外部メモリに格納する必要がある。
【００３０】
前述したように、オーバーラップスムージングフィルタ１５から外部メモリに出力される、後のＭＢのオーバーラップスムージング処理のためのデータは、１画素あたり１０ビットのデータである。一方、オーバーラップスムージングフィルタ１５から後段の機能ブロックに供するオーバーラップスムージング処理済みのデータは、１画素あたり８ビットのデータである。そのため、オーバーラップスムージングフィルタ１５の後段の機能ブロックに供されるデータは、オーバーラップスムージング処理に使用できない。なお、オーバーラップスムージングフィルタ１５により処理済みで、後段の機能ブロックに供されるデータは、オーバーラップスムージングフィルタ１５により直接後段の機能ブロックに出力する場合と、オーバーラップスムージングフィルタ１５から一旦外部メモリに出力して後に後段の機能ブロックに読み出される場合がある。
【００３１】
そのため、オーバーラップスムージングフィルタ１５が処理済みのデータを直接後段の機能ブロックに出力する場合には、後段の機能ブロックに出力するデータ（８ビット／画素）に対応する１０ビット／画素の、後のＭＢのオーバーラップスムージング処理のためのデータを外部メモリに出力する。
【００３２】
また、オーバーラップスムージング処理済みで、後段の機能ブロックに供されるデータ（８ビット／画素）が、オーバーラップスムージングフィルタ１５から一旦外部メモリに出力して後に後段の機能ブロックに読み出される場合、外部メモリを、オーバーラップスムージング処理用のデータを格納する領域（以下オーバーラップメモリという）と、後段の機能ブロックに供されるデータを格納する領域（以下フレームバッファという）とに分け、１０ビット／画素のデータと８ビット／画素のデータをオーバーラップメモリとフレームバッファに夫々出力する
【００３３】
図９と図１０を参照して、オーバーラップスムージングフィルタをＭＢ単位にオーバーラップメモリに書き込む場合の、１つのＭＢのオーバーラップスムージング処理の開始から終了までの流れを説明する。なお、分かりやすいように、輝度成分を例にする。
【００３４】
図９の上部は、この場合において、現在のＭＢのオーバーラップスムージング処理の開始時にオーバーラップメモリに格納されたデータの一例を説明するための図である。図９において、太線と細線はＭＢ境界とブロック境界を夫々示し、黒く塗り潰された部分は現在のＭＢを示す。また、斜線で塗り潰された部分は、現在のＭＢのオーバーラップスムージング処理開始時に、オーバーラップメモリに格納されたデータを示す。なお、前述したように、これらのデータは、１画素につき１０ビットである。
【００３５】
図９の上部に示すように、この場合、ｉ列ｊ行のＭＢ、すなわちＭＢ（ｉ，ｊ）が現在のＭＢであるときに、オーバーラップメモリには、ＭＢ（ｉ−１，ｊ−１）からＭＢ（Ｘｍａｘ，ｊ−１）までの各ＭＢと、ＭＢ（１，ｊ）からＭＢ（ｉ−１，ｊ）までの各ＭＢのデータが格納されている。これらのＭＢは、現在のＭＢより先にオーバーラップスムージング処理がなされている。なお、ＭＢ（Ｘｍａｘ，ｊ−１）は、（ｊ−１）行の最も右端のＭＢを意味し、ＭＢ（１，ｊ）は、ｊ行の最も左端のＭＢを意味する。
【００３６】
図１０は、１つのＭＢのオーバーラップスムージング処理の開始から完了までの処理の流れを示すフローチャートである。なお、オーバーラップスムージングフィルタから後段の機能ブロックに供されるデータは、一旦フレームバッファに格納されてから後段の機能ブロックに読み出される場合を例にする。
【００３７】
通常、１ＭＢ、または１ＭＢライン（水平ライン）の逆量子化／逆ＤＣＴまでの処理（ステップＳ１０）の完了後に、オーバーラップスムージング処理行われる（Ｓ１２）。オーバーラップスムージング処理に際して、現在のＭＢ以外の必要なデータは、オーバーラップメモリからオーバーラップスムージングフィルタの内部メモリに読込まれる。
【００３８】
ＭＢ（ｉ，ｊ）のオーバーラップスムージング処理の際に、該ＭＢ以外のデータとしては、上隣のＭＢ（ｉ，ｊ−１）と、左隣のＭＢ（ｉ−１，ｊ）と、上隣のＭＢの左隣のＭＢ（ｉ−１，ｊ−１）の３つのＭＢの夫々一部が必要である。具体的には、図８に示すように、現在のＭＢのオーバーラップスムージング処理に必要な他のＭＢのデータは、上隣のＭＢ（ｉ，ｊ−１）（図８におけるＡ−ＭＢ）の領域Ｋｈと、左隣のＭＢ（ｉ−１，ｊ）（図８におけるＬ−ＭＢ）の領域Ｋｖと、上隣のＭＢの左隣のＭＢ（ｉ−１，ｊ−１）（図８におけるＬＡ−ＭＢ）の領域Ｋｖｈのデータである。
【００３９】
そのため、ステップＳ１２において、上述した領域Ｋｈ、Ｋｖ、ｋｖｈのデータはオーバーラップメモリからオーバーラップスムージングフィルタの内部メモリに読込まれ、現在のＭＢのオーバーラップスムージング処理がなされる。
【００４０】
現在のＭＢのオーバーラップスムージング処理が完了すると、オーバーラップメモリから読み出された各ＭＢのうちの、後のＭＢのオーバーラップスムージング処理に必要なデータを含まないＭＢのデータは、フレームバッファに書き込まれる（Ｓ１４）。ここでは、現在のＭＢの上隣のＭＢの左隣のＭＢ（ｉ−１，ｊ−１）（図８におけるＬＡ−ＭＢ）のデータは、フレームバッファに書き込まれる。なお、ＬＡ−ＭＢの領域Ｋｖｈのデータは、現在のＭＢ（Ｃ−ＭＢ）のオーバーラップスムージング処理時に、水平エッジ処理が施されている。また、フレームバッファに書き込まれるデータは、１画素につき８ビットのデータとなる。
【００４１】
現在のＭＢの左隣のＭＢ（ｉ−１，ｊ）の一部（図８におけるＬ−ＭＢのＫｖｎ領域）のデータは、後のＭＢのオーバーラップスムージング処理時の水平エッジ処理に使用されるので、領域Ｋｖｎを含むＫｖ領域の処理後のデータは、オーバーラップメモリに書き戻される（Ｓ１６）。
【００４２】
また、現在のＭＢのオーバーラップスムージング処理後のデータは、オーバーラップメモリに書き込まれる（Ｓ１８）。
【００４３】
現在のＭＢ（ｉ，ｊ）に対して図１０の処理がなされた後、オーバーラップメモリに格納されたデータは、図９の下部に示すようになる。図９の下部に示すように、ＭＢ（ｉ，ｊ）のオーバーラップスムージング処理が完了し、次のＭＢとなるＭＢ（ｉ＋１，ｊ）が現在のＭＢになったときに、オーバーラップメモリには、ＭＢ（ｉ，ｊ−１）からＭＢ（Ｘｍａｘ，ｊ−１）までの各ＭＢと、ＭＢ（１，ｊ）からＭＢ（ｉ，ｊ）までの各ＭＢのデータが格納されることになる。
【００４４】
以上の説明から分かるように、オーバーラップメモリにＭＢ単位にデータを書き込む場合に、オーバーラップメモリは、少なくとも、「１水平ライン分のＭＢ＋１ＭＢ」の容量が必要である。
【００４５】
本発明は、上記事情に鑑みてなされたものであり、オーバーラップスムージング処理用のデータを格納するオーバーラップメモリの容量を削減し、ひいては外部メモリの容量を削減きできる技術を提供する。
【課題を解決するための手段】
【００４６】
本発明の一つの態様は、ＶＣ−１方式で符号化された動画像を復号する復号装置である。この復号装置は、オーバーラップスムージング処理部と、オーバーラップメモリとを備える。
【００４７】
オーバーラップスムージング処理部は、動き補償の参照ピクチャにおけるマクロブロックに対してオーバーラップスムージング処理を行うものである。
【００４８】
オーバーラップメモリは、オーバーラップスムージング処理部の外部に設けられ、まだオーバーラップスムージング処理がなされていないマクロブロックのオーバーラップスムージング処理のためのデータを一時的に格納するためのメモリである。
【００４９】
オーバーラップスムージング処理部は、現在のマクロブロックに対してオーバーラップスムージング処理を施した後に、該マクロブロックに含まれるイントラブロックのうちの、該マクロブロックの右端と下端のブロックのいずれかに該当するイントラブロックのデータを前記オーバーラップメモリに書き込む。また、現在のマクロブロックに対してオーバーラップスムージング処理を施す際に、オーバーラップメモリから、オーバーラップスムージング処理部により前に書き込まれたデータのうちの、現在のマクロブロックのオーバーラップスムージング処理に必要なデータを読み出す。
【００５０】
本発明の別の態様は、ＶＣ−１方式で符号化された動画像を復号する際に、動き補償の参照ピクチャにおけるマクロブロックに対してオーバーラップスムージング処理を行うオーバーラップスムージング処理部と、オーバーラップスムージング処理部の外部に設けられたメモリであって、まだオーバーラップスムージング処理がなされていないマクロブロックのオーバーラップスムージング処理のためのデータを一時的に格納するためのオーバーラップメモリとを備えた復号装置による復号方法である。この復号方法は、書込ステップと、読出ステップとを有する。
【００５１】
上記書込ステップは、オーバーラップスムージング処理部により現在のマクロブロックに対してオーバーラップスムージング処理を施した後に、該マクロブロックに含まれるイントラブロックのうちの、該マクロブロックの右端と下端のブロックのいずれかに該当するイントラブロックのデータをオーバーラップメモリに書き込む工程である。
【００５２】
上記読出ステップは、オーバーラップスムージング処理部により現在のマクロブロックに対してオーバーラップスムージング処理を施す際に、オーバーラップメモリから、書込ステップにより前に書き込まれたデータのうちの、現在のマクロブロックのオーバーラップスムージング処理に必要なデータを読み出してオーバーラップスムージング処理部に供する工程である。
【００５３】
なお、上記態様の装置と方法をシステムに置き換えて表現したものや、コンピュータに上記方法を実行させるプログラムなども、本発明の態様としては有効である。
【発明の効果】
【００５４】
本発明にかかる技術によれば、オーバーラップスムージング処理のためのデータを記憶する外部メモリの容量を削減することができる。
【図面の簡単な説明】
【００５５】
【図１】本発明の第１の実施の形態にかかる復号装置を示す図である。
【図２】図１に示す復号装置におけるオーバーラップメモリに格納されるデータを説明するための図である。
【図３】図１に示す復号装置におけるオーバーラップスムージングフィルタが１つのＭＢに対するオーバーラップスムージング処理の開始から終了までの流れを示すフローチャートである。
【図４】イントラブロックとインターブロックが混在したマクロブロックのオーバーラップスムージング処理の対象領域を説明するための図である。
【図５】本発明の第２の実施の形態にかかる復号装置におけるオーバーラップメモリに格納されるデータを説明するための図である。
【図６】本発明の第２の実施の形態にかかる復号装置におけるオーバーラップスムージングフィルタが１つのＭＢに対するオーバーラップスムージング処理の開始から終了までの流れを示すフローチャートである。
【図７】特許文献１の図１である。
【図８】特許文献１の図２４である。
【図９】従来において、オーバーラップメモリに格納されたデータの一例を説明するための図である。
【図１０】従来において、１つのＭＢのオーバーラップスムージング処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００５６】
以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００５７】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
＜第１の実施の形態＞
【００５８】
図１は、本発明の第１の実施の形態にかかる復号装置１００を示す。復号装置１００は、ＶＣ−１方式で符号化された動画像を復号するものであり、ビットストリーム構造解析部１０２、ＡＣ／ＤＣ予測部１１０、逆量子化／逆ＤＣＴ変換部１１２、スイッチ１１４、オーバーラップスムージングフィルタ１２０、動きベクトル予測部１３０、動き補償処理部１３２、加算器１４０、デブロッキングフィルタ１５０、制御部１６０、外部メモリ１７０を備える。オーバーラップスムージングフィルタ１２０とデブロッキングフィルタ１５０は、内部のキャッシュメモリとなるＳＲＡＭ１２２とＳＲＡＭ１５２を夫々有する。また、外部メモリ１７０は、オーバーラップスムージングフィルタ１２０によるオーバーラップスムージング処理用のデータを一時的に格納するオーバーラップメモリ１７２と、フレームバッファ１７４を有し、オーバーラップメモリ１７２に格納されたデータは、１画素につき１０ビットであり、フレームバッファ１７４に格納されたデータは、１画素につき８ビットである。
【００５９】
図１に示す復号装置１００において、ビットストリーム構造解析部１０２、ＡＣ／ＤＣ予測部１１０、逆量子化／逆ＤＣＴ変換部１１２、スイッチ１１４、動きベクトル予測部１３０、動き補償処理部１３２、加算器１４０、デブロッキングフィルタ１５０、及びこれらの機能ブロックの動作に伴う制御部１６０の動作は、図７に示すデコードシステムの対応する機能ブロックと同様であるため、ここで説明を省略し、オーバーラップスムージングフィルタ１２０を重点的に説明する。
【００６０】
オーバーラップスムージングフィルタ１２０は、動き補償の参照ピクチャ（ＩピクチャとＰピクチャ）におけるマクロブロックに対してオーバーラップスムージング処理を行うオーバーラップスムージング処理部であり、具体的には、当該マクロブロックにおける各イントラブロックに対して、左側のブロック境界に対して垂直エッジ処理を行うと共に、上側のブロック境界に対して水平エッジ処理を行う。
【００６１】
オーバーラップスムージングフィルタ１２０が処理する現在のマクロブロックのデータは、スイッチ１１４から、オーバーラップスムージングフィルタ１２０のＳＲＡＭ１２２に入力される。現在のマクロブロック以外のデータは、制御部１６０を介して、外部メモリ１７０におけるオーバーラップメモリ１７２からＳＲＡＭ１２２に読み出される。なお、オーバーラップメモリ１７２からＳＲＡＭ１２２に読み出されるデータは、オーバーラップスムージングフィルタ１２０が、現在のマクロブロックより前にオーバーラップスムージング処理を施したＭＢの処理後に、制御部１６０を介して、オーバーラップメモリ１７２に書き込んだものである。
【００６２】
輝度成分を例にして、オーバーラップスムージングフィルタ１２０の動作、オーバーラップメモリ１７２に格納されたデータの詳細を説明する。また、分かりやすいように、現在のピクチャ（現在のマクロブロックが属するＩピクチャまたはＰピクチャ）における各マクロブロックの全てのブロックがイントラブロックであるとする。
【００６３】
図２において、太枠はＭＢ境界を示し、細線枠はブロック境界を示す。黒く塗りつぶされた部分は現在のＭＢを示し、斜線で塗りつぶされた部分はオーバーラップメモリ１７２に格納されたデータの範囲を示す。なお、１ピクチャにつき、水平方向にＸｍａｘ個のＭＢを有する。
【００６４】
図２の上部に示すように、現在のＭＢがＭＢ（ｉ，ｊ）であるときに、オーバーラップメモリ１７２には、ＭＢ（ｉ−１，ｊ−１）の右下端の２画素×２画素の範囲と、ＭＢ（ｉ，ｊ−１）〜ＭＢ（Ｘｍａｘ，ｊ−１）の下端の水平２画素ラインと、ＭＢ（１，ｊ）〜ＭＢ（ｉ−２，ｊ）の下端の水平２画素ラインと、ＭＢ（ｉ−１，ｊ）の下端の水平２画素ラインと右端の垂直２画素ラインのデータが格納されている。これらのデータに対応するＭＢは、既にオーバーラップスムージングフィルタ１２０によりオーバーラップスムージング処理がなされている。
【００６５】
図２の上部の斜線部分が示すデータのうちに、現在のＭＢ（ｉ，ｊ）のオーバーラップスムージング処理時に必要なデータは、下記の３つである。
【００６６】
＜データ１＞
現在のＭＢ（ｉ，ｊ）の上隣のＭＢの左隣のＭＢ（ｉ−１，ｊ−１）の右下端の２画素×２画素のデータ
これらのデータは、図８に示す領域Ｋｖｈのデータに該当する。
【００６７】
＜データ２＞
現在のＭＢ（ｉ，ｊ）の上隣のＭＢ（ｉ，ｊ−１）の下端の水平２画素ライン（１６画素×２画素）のうちの、右端の２画素×２画素を除いた部分のデータ
これらのデータは、図８に示す１４画素×２画素の領域Ｋｈのデータに該当する。
【００６８】
＜データ３＞
現在のＭＢ（ｉ，ｊ）の左隣のＭＢ（ｉ−１，ｊ）の右端の垂直２画素ライン（２画素×１６画素）のデータ
これらのデータは、図８に示す２画素×１６画素の領域Ｋｖのデータに該当する。
【００６９】
図２の下部は、ＭＢ（ｉ，ｊ）のオーバーラップスムージング処理の完了後に、すなわちＭＢ（ｉ＋１，ｊ）が現在のＭＢになったときにオーバーラップメモリ１７２に格納されているデータを示している。これらのデータを具体的に説明する前に、図３を参照して、オーバーラップスムージングフィルタ１２０がＭＢ（ｉ，ｊ）に対して行うオーバーラップスムージング処理の開始から終了までの流れを説明する。
【００７０】
図３に示すように、１ＭＢ、または１ＭＢライン（水平ライン）の逆量子化／逆ＤＣＴまでの処理（ステップＳ１００）の完了後に、オーバーラップスムージングフィルタ１２０によるオーバーラップスムージング処理行われる（Ｓ１０２）。オーバーラップスムージング処理に際して、現在のＭＢ以外の必要なデータは、制御部１６０を介して、オーバーラップメモリ１７２からＳＲＡＭ１２２に読込まれる。現在のＭＢ以外の必要なデータは、上述した３つのデータである。
【００７１】
オーバーラップスムージングフィルタ１２０は、現在のＭＢ（ｉ．ｊ）に対してオーバーラップスムージング処理を行った後に、まず、オーバーラップメモリ１７２から読み出して処理を施したデータの一部をフレームバッファ１７４に書き込み、他の部分をオーバーラップメモリ１７２に書き戻す（Ｓ１０４）。フレームバッファ１７４に書き込まれるデータは、後のＭＢのオーバーラップスムージング処理に使用されないデータであり、具体的には、上述したデータ１（図８に示す２画素×２画素の領域Ｋｖｈのデータに該当する）と、データ２（図８に示す１４画素×２画素の領域Ｋｈのデータに該当する）と、データ３の一部（図８に示す２画素×１６画素の領域Ｋｖの下端の２画素×２画素のＫｖｎを除いた部分のデータに該当する）である。オーバーラップメモリ１７２に書き戻されるデータは、データ３の残りの部分（図８に示す２画素×１６画素の領域Ｋｖの下端の２画素×２画素のＫｖｎのデータ）である。
【００７２】
次いで、ステップＳ１１０〜Ｓ１２２までの処理は、ＭＢ（ｉ，ｊ）のデータのうちの、現在のピクチャのＭＢにおける、後のＭＢのオーバーラップスムージング処理に使用されるデータをオーバーラップメモリ１７２に書き込む処理である。
【００７３】
具体的には、オーバーラップスムージングフィルタ１２０は、該ＭＢ（ｉ，ｊ）が現在のピクチャの下端のＭＢではない場合に（Ｓ１１０：Ｎｏ）、該ＭＢの下端に位置する各イントラブロック（ここでは、該ＭＢの下端の全てのブロック）の下端の水平２画素ラインのデータをオーバーラップメモリ１７２に書込み（Ｓ１１２）、ステップＳ１２０に進む。
【００７４】
一方、ＭＢ（ｉ，ｊ）が現在のピクチャの下端のＭＢである場合には（Ｓ１１０：Ｙｅｓ）、オーバーラップスムージングフィルタ１２０は、直接ステップＳ１２０に進む。
【００７５】
ステップＳ１２０において、オーバーラップスムージングフィルタ１２０は、ＭＢ（ｉ，ｊ）が現在のピクチャの右端のＭＢであるか否かを確認する。ＭＢ（ｉ，ｊ）が現在のピクチャの右端のＭＢではない場合に（Ｓ１２０：Ｎｏ）、オーバーラップスムージングフィルタ１２０は、該ＭＢの右端に位置する各イントラブロック（ここでは、該ＭＢの全ての右端のブロック）の右端の垂直２画素ラインのデータをオーバーラップメモリ１７２に書込み（Ｓ１２２）、ステップＳ１３０に進む。
【００７６】
一方、ＭＢ（ｉ，ｊ）が現在のピクチャの右端のＭＢである場合には（Ｓ１２０：Ｙｅｓ）、オーバーラップスムージングフィルタ１２０は、直接ステップＳ１３０に進む。
【００７７】
ステップＳ１３０の処理は、ＭＢ（ｉ，ｊ）のデータのうちの、後のＭＢのオーバーラップスムージング処理に使用されないデータをフレームバッファ１７４に書き込む処理である。具体的には、オーバーラップスムージングフィルタ１２０は、ＭＢ（ｉ，ｊ）のデータのうちの、オーバーラップメモリ１７２に書き込まれていないデータをフレームバッファ１７４に書き込む。
これにて、ＭＢ（ｉ，ｊ）のオーバーラップスムージング処理が完了する。
なお、フレームバッファ１７４に書き込まれたデータは、８ビット／画素のデータであり、後に制御部１６０により加算器１４０に読み出されて、スイッチ１１４からのデータと、動き補償処理部１３２からのデータと加算される。
【００７８】
ＭＢ（ｉ，ｊ）について図３に示す処理が施された結果、オーバーラップメモリ１７２に格納されたデータは、図２の下部に示すようになる。
【００７９】
図２の下部に示すように、ＭＢ（ｉ，ｊ）のオーバーラップスムージング処理後、すなわちＭＢ（ｉ＋１，ｊ）が現在のＭＢになったときには、オーバーラップメモリ１７２には、ＭＢ（ｉ，ｊ−１）の右下端の２画素×２画素の範囲と、ＭＢ（ｉ＋１，ｊ−１）〜ＭＢ（Ｘｍａｘ，ｊ−１）の下端の水平２画素ラインと、ＭＢ（１，ｊ）〜ＭＢ（ｉ−１，ｊ）の下端の水平２画素ラインと、ＭＢ（ｉ，ｊ）の下端の水平２画素ラインと右端の垂直２画素ラインのデータが格納されている。
【００８０】
すなわち、本実施の形態の復号装置１００におけるオーバーラップスムージングフィルタ１２０のこのような処理によれば、現在のピクチャにおける全てのマクロブロックの全てのブロックがイントラ部ブロックである場合に、オーバーラップメモリ１７２には、輝度成分について、１ピクチャの水平の２画素ライン（（Ｘｍａｘ×１６）画素×２画素）と、１ＭＢの垂直の２画素ライン（２画素×１６画素）とが格納される。
【００８１】
色差成分について、１ＭＢは、８画素×８画素のＣｂブロックとＣｒブロックを１つずつ有し、この２つのブロックのいずれも、該ＭＢの右端と下端のブロックに該当する。そのため、本実施の形態において、オーバーラップメモリ１７２には、１つの色差成分について、１ピクチャの水平の２画素ライン（（Ｘｍａｘ×８）画素×２画素）と、１ＭＢの垂直の２画素ライン（２画素×８画素）とが格納される。
【００８２】
従って、本実施の形態の復号装置１００によれば、輝度と色差のいずれについても、全てのマクロブロックの全てのブロックがマクロブロックである場合、オーバーラップメモリ１７２の必要な容量は、下記の式（１）〜式（３）に示すようになる。
オーバーラップメモリの必要容量＝輝度成分用容量＋色差成分用容量      （１）
輝度成分用容量＝（Ｘｍａｘ×１６）画素×２画素＋２画素×１６画素        （２）
色差成分用容量＝（（Ｘｍａｘ×８）画素×２画素＋２画素×８画素）×２  （３）
【００８３】
図４は、イントラブロックとインターブロックが混在するＭＢの一例を示す。図示のように、このようなＭＢに対してオーバーラップスムージング処理を行う際に、イントラブロックとイントラブロックの境界についてのみエッジ処理を行い、インターブロック同士の境界、またはイントラブロックとインターブロックの境界についてエッジ処理を行わない。そのため、インターブロックが含まれるＭＢに対してオーバーラップスムージング処理を行う際にオーバーラップメモリ１７２から読み出す必要のあるデータと、該ＭＢに対してオーバーラップスムージング処理を行った後にオーバーラップメモリ１７２に書き込む必要のあるデータは、イントラブロックのみにより構成されたＭＢの場合より少ない。
【００８４】
すなわち、本実施の形態の復号装置１００によれば、オーバーラップメモリ１７２は、式（１）〜式（３）が示す容量があれば足りる。
【００８５】
図２と図９を比較すると明らかなように、本実施の形態の復号装置１００によれば、オーバーラップ処理後のデータをＭＢ単位でオーバーラップメモリに書き込む従来の場合より、オーバーラップメモリの容量、ひいては外部メモリの容量を大幅に削減できる。
【００８６】
＜第２の実施の形態＞
本発明の第２の実施の形態も、ＶＣ−１方式で符号化された動画像の復号装置である。この復号装置は、オーバーラップスムージングフィルタがオーバーラップメモリに書き込むデータと、図１に示す復号装置１００のオーバーラップスムージングフィルタ１２０がオーバーラップメモリ１７２に書き込むデータとが異なる点を除き、復号装置１００と同様である。分かるやすいように、図１に示す復号装置１００を利用して、本発明の第２の実施の形態にかかる復号装置のオーバーラップスムージングフィルタについて説明する。説明に当たり、復号装置１００の機能ブロックの符号を用いる。
【００８７】
まず、輝度成分を例にして、本発明の第２の実施の形態の復号装置におけるオーバーラップスムージングフィルタ１２０の動作、オーバーラップメモリ１７２に格納されたデータの詳細を説明する。また、分かりやすいように、現在のピクチャにおける各マクロブロックの全てのブロックがイントラブロックであるとする。
【００８８】
図５において、太枠はＭＢ境界を示し、細線枠はブロック境界を示す。黒く塗りつぶされた部分は現在のＭＢを示し、斜線で塗りつぶされた部分はオーバーラップメモリ１７２に格納されたデータの範囲を示す。なお、１ピクチャにつき、水平方向にＸｍａｘ個のＭＢを有する。
【００８９】
図５の上部に示すように、現在のＭＢがＭＢ（ｉ，ｊ）であるときに、オーバーラップメモリ１７２には、ＭＢ（ｉ−１，ｊ−１）の右下端のブロック（８画素×８画素）と、ＭＢ（ｉ，ｊ−１）〜ＭＢ（Ｘｍａｘ，ｊ−１）の下端の各ブロックと、ＭＢ（１，ｊ）〜ＭＢ（ｉ−２，ｊ）の下端の各ブロックと、ＭＢ（ｉ−１，ｊ）の下端の２つのブロックのデータが格納されている。これらのデータに対応するＭＢは、既にオーバーラップスムージングフィルタ１２０によりオーバーラップスムージング処理がなされている。
【００９０】
図５の上部の斜線部分が示すデータのうちに、現在のＭＢ（ｉ，ｊ）のオーバーラップスムージング処理時に必要なデータは、復号装置１００の時に説明したデータ１、データ２、データ３である。
【００９１】
図５の下部は、ＭＢ（ｉ，ｊ）のオーバーラップスムージング処理の完了後に、すなわちＭＢ（ｉ＋１，ｊ）が現在のＭＢになったときにオーバーラップメモリ１７２に格納されているデータを示している。これらのデータを具体的に説明する前に、図６を参照して、本発明の第２の実施の形態の復号装置において、オーバーラップスムージングフィルタ１２０がＭＢ（ｉ，ｊ）に対して行うオーバーラップスムージング処理の開始から終了までの流れを説明する。
【００９２】
図６に示すように、１ＭＢ、または１ＭＢライン（水平ライン）の逆量子化／逆ＤＣＴまでの処理（ステップＳ２００）の完了後に、オーバーラップスムージングフィルタ１２０によるオーバーラップスムージング処理行われる（Ｓ２０２）。オーバーラップスムージング処理に際して、現在のＭＢ以外の必要なデータは、制御部１６０を介して、オーバーラップメモリ１７２からＳＲＡＭ１２２に読込まれる。現在のＭＢ以外の必要なデータは、上述した３つのデータである。
【００９３】
オーバーラップスムージングフィルタ１２０は、現在のＭＢ（ｉ．ｊ）に対してオーバーラップスムージング処理を行った後に、オーバーラップメモリ１７２に格納されていたデータの一部をフレームバッファ１７４に書込み、一部をオーバーラップメモリ１７２に書き戻す（Ｓ２０４）。フレームバッファ１７４に書き込まれるデータは、オーバーラップメモリ１７２に格納されていた、ＭＢ（ｉ．ｊ）以降のＭＢのオーバーラップスムージング処理に使用されないブロックのデータであり、具体的には、ＭＢ（ｉ，ｊ）の上隣のＭＢの左隣のＭＢ（ｉ−１，ｊ−１）の右下端のブロック（８画素×８画素）と、ＭＢ（ｉ，ｊ）の上隣のＭＢ（ｉ，ｊ−１）の左下端のブロック（８画素×８画素）と、ＭＢ（ｉ，ｊ）の左隣のＭＢ（ｉ−１，ｊ）の右上端のブロック（８画素×８画素）とのデータである。これらのデータの一部は、ＭＢ（ｉ，ｊ）のオーバーラップスムージング処理時にオーバーラップメモリ１７２からＳＲＡＭ１２２に読み出されて、オーバーラップスムージングフィルタ１２０によりエッジ処理が施されている。
【００９４】
また、ステップＳ２０４において、オーバーラップスムージングフィルタ１２０によりオーバーラップメモリ１７２に書き戻されるデータは、ＭＢ（ｉ，ｊ）の左隣のＭＢ（ｉ−１，ｊ）の右下端のブロックの右下端の２画素×２画素のデータ（図８に示す領域Ｋｖｎの２画素×２画素のデータ）である。すなわち、ＭＢ（ｉ，ｊ）のオーバーラップスムージング処理後、オーバーラップメモリ１７２には、ＭＢ（ｉ−１，ｊ）について、その右下端のブロックのデータが格納され、このデータのうちの上述した２画素×２画素の部分は、ＭＢ（ｉ，ｊ）のオーバーラップスムージング処理時に垂直エッジ処理が施されている。
【００９５】
次いで、ステップＳ２１０〜Ｓ２２２までの処理は、ＭＢ（ｉ，ｊ）のデータのうちの、現在のピクチャのＭＢにおける、後のＭＢのオーバーラップスムージング処理に使用されるデータを含むブロックをオーバーラップメモリ１７２に書き込む処理である。
【００９６】
具体的には、オーバーラップスムージングフィルタ１２０は、該ＭＢ（ｉ，ｊ）が現在のピクチャの下端のＭＢではない場合に（Ｓ２１０：Ｎｏ）、該ＭＢの下端に位置する各イントラブロックのデータをオーバーラップメモリ１７２に書込み（Ｓ２１２）、ステップＳ２２０に進む。
【００９７】
一方、ＭＢ（ｉ，ｊ）が現在のピクチャの下端のＭＢである場合には（Ｓ２１０：Ｙｅｓ）、オーバーラップスムージングフィルタ１２０は、直接ステップＳ２２０に進む。
【００９８】
ステップＳ２２０において、オーバーラップスムージングフィルタ１２０は、ＭＢ（ｉ，ｊ）が現在のピクチャの右端のＭＢであるか否かを確認する。ＭＢ（ｉ，ｊ）が現在のピクチャの右端のＭＢではない場合に（Ｓ２２０：Ｎｏ）、オーバーラップスムージングフィルタ１２０は、該ＭＢの右端に位置する各イントラブロックのデータをオーバーラップメモリ１７２に書込み（Ｓ２２２）、ステップＳ２３０に進む。
【００９９】
一方、ＭＢ（ｉ，ｊ）が現在のピクチャの右端のＭＢである場合には（Ｓ２２０：Ｙｅｓ）、オーバーラップスムージングフィルタ１２０は、直接ステップＳ２３０に進む。
【０１００】
ステップＳ２３０の処理は、ＭＢ（ｉ，ｊ）のデータのうちの、後のＭＢのオーバーラップスムージング処理に使用されるデータを含まないブロックをフレームバッファ１７４に書き込む処理である。具体的には、オーバーラップスムージングフィルタ１２０は、ＭＢ（ｉ，ｊ）の各ブロックのうちの、オーバーラップメモリ１７２に書き込まれていないブロックのデータをフレームバッファ１７４に書き込む。
これにて、ＭＢ（ｉ，ｊ）のオーバーラップスムージング処理が完了する。
【０１０１】
ＭＢ（ｉ，ｊ）について図６に示す処理が施された結果、オーバーラップメモリ１７２に格納されたデータは、図５の下部に示すようになる。
【０１０２】
図５の下部に示すように、ＭＢ（ｉ，ｊ）のオーバーラップスムージング処理後、すなわちＭＢ（ｉ＋１，ｊ）が現在のＭＢになったときには、オーバーラップメモリ１７２には、ＭＢ（ｉ，ｊ−１）の右下端のブロックと、ＭＢ（ｉ＋１，ｊ−１）〜ＭＢ（Ｘｍａｘ，ｊ−１）の下端の各ブロックと、ＭＢ（１，ｊ）〜ＭＢ（ｉ−１，ｊ）の下端の各ブロックと、ＭＢ（ｉ，ｊ）の下端の２つのブロックと右上端のブロックのデータが格納されている。
【０１０３】
すなわち、本第２の実施の形態の復号装置におけるオーバーラップスムージングフィルタ１２０のこのような処理によれば、現在のピクチャにおける全てのマクロブロックの全てのブロックがイントラ部ブロックである場合に、オーバーラップメモリ１７２には、輝度成分について、１ピクチャの水平の１ブロックライン（（Ｘｍａｘ×１６）画素×８画素）と、１ＭＢの垂直の１ブロックライン（８画素×１６画素）とが格納される。
【０１０４】
色差成分について、１ＭＢは、８画素×８画素のＣｂブロックとＣｒブロックを１つずつ有し、この２つのブロックのいずれも、該ＭＢの右端と下端のブロックに該当する。そのため、本第２の実施の形態において、オーバーラップメモリ１７２には、各色差成分について、１ピクチャの水平の１ブロックライン（（Ｘｍａｘ×８）画素×８画素）と、１ＭＢの垂直の１ブロックライン（８画素×８画素）とが格納される。
【０１０５】
従って、本第２の実施の形態の復号装置によれば、輝度と色差のいずれについても、全てのマクロブロックの全てのブロックがマクロブロックである場合、オーバーラップメモリ１７２の必要な容量は、下記の式（４）〜式（６）に示すようになる。
オーバーラップメモリの必要容量＝輝度成分用容量＋色差成分用容量    （４）
輝度成分用容量＝（Ｘｍａｘ×１６）×８画素＋８画素×１６画素      （５）
色差成分用容量＝（（Ｘｍａｘ×８）×８画素＋８画素×８画素）×２    （６）
【０１０６】
前述したように、インターブロックが含まれるＭＢに対してオーバーラップスムージング処理を行う際にオーバーラップメモリ１７２から読み出す必要のあるデータと、該ＭＢに対してオーバーラップスムージング処理を行った後にオーバーラップメモリ１７２に書き込む必要のあるデータは、イントラブロックのみにより構成されたＭＢの場合より少ない。
【０１０７】
すなわち、本第２の実施の形態の復号装置によれば、オーバーラップメモリ１７２は、式（４）〜式（６）が示す容量があれば足りる。
【０１０８】
図５と図２を比較すると、本第２の実施の形態の復号装置におけるオーバーラップメモリの必要な容量は、第１の実施の形態の復号装置１００におけるオーバーラップメモリの必要な容量より大きい。しかし、図５と図９を比較すると明らかなように、本発明の第２の実施の形態にかかる復号装置も、オーバーラップ処理後のデータをＭＢ単位でオーバーラップメモリに書き込む従来の場合より、オーバーラップメモリの容量、ひいては外部メモリの容量を削減できる。
【０１０９】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述した実施の形態に対してさまざまな変更、増減を行ってもよい。これらの変更、増減が行われた変形例も本発明の範囲にあることは当業者に理解されるところである。
【０１１０】
例えば、上述した各実施の形態の復号装置は、ＭＢ毎にオーバーラップスムージング処理を行うようにしている。本発明の技術は、特許文献１に開示されたような、現在のマクロブロックをブロック毎に読み込んでオーバーラップスムージング処理を行う復号装置にも適用することができる。
【０１１１】
また、上述した各実施の形態の復号装置において、オーバーラップスムージングフィルタから後段の機能ブロックに供するデータがフレームバッファに書き込まれ、フレームバッファから後段の機能ブロックに供するようになっている。本発明にかかる技術は、オーバーラップスムージングフィルタから後段の機能ブロックに供するデータがオーバーラップスムージングフィルタにより直接後段の機能ブロックに出力される復号装置にも適用できる。
【符号の説明】
【０１１２】
１１  ビットストリーム構造解析モジュール  １２  ＡＣ／ＤＣ予測モジュール
１３  逆量子化／逆ＤＣＴモジュール  １４  選択スイッチ
１５  オーバーラップスムージングフィルタ  １５ｍ  内部メモリ
１６  加算器  １７  デブロッキングフィルタ
１７ｍ  内部メモリ  ２１  動きベクトル予測モジュール
２２  動き補償モジュール  ２３  制御部
１００  復号装置  １０２  ビットストリーム構造解析部
１１０  ＡＣ／ＤＣ予測部  １１２  逆量子化／逆ＤＣＴ変換部
１１４  スイッチ  １２０  オーバーラップスムージングフィルタ
１２２  ＳＲＡＭ  １３０  動きベクトル予測部
１３２  動き補償処理部  １４０  加算器
１５０  デブロッキングフィルタ  １５２  ＳＲＡＭ
１６０  制御部  １７０  外部メモリ
１７２  オーバーラップメモリ  １７４  フレームバッファ
【図１】
2012090031.tif 000003
【図２】
2012090031.tif 000004
【図３】
2012090031.tif 000005
【図４】
2012090031.tif 000006
【図５】
2012090031.tif 000007
【図６】
2012090031.tif 000008
【図７】
2012090031.tif 000009
【図８】
2012090031.tif 000010
【図９】
2012090031.tif 000011
【図１０】
2012090031.tif 000012