(57)【要約】      （修正有）【課題】ビデオデータの水平及び垂直フィルタリングを同時に行うデブロッキングフィルタ及び動作方法を提供する。【解決手段】フィルタリングされるマクロブロックのビデオデータを保存するためのバッファメモリと、側面に位置する隣接するマクロブロックのビデオデータのうち一部を保存するためのバッファメモリと、フィルタリングを行うためにバッファメモリから判読したビデオデータ、隣接するマクロブロックのデータを保存するためのレジスタバッファアレイと、レジスタバッファアレイと連結され、サブブロックのエッジを水平または垂直フィルタリングし、次のサブブロックのエッジを同時に水平または垂直フィルタリングするエッジフィルタと、を備え、垂直フィルタリングは、隣接するマクロブロックからのデータを使用し、水平フィルタリングは、側面マクロブロックバッファメモリからのビデオデータを使用するデブロッキングフィルタ。【選択図】図４
2006174486.tif 000002
【特許請求の範囲】
【請求項１】
フィルタリングされる現在マクロブロックのビデオデータを保存するための現在マクロブロックバッファメモリと、
前記現在マクロブロックの側面に位置する隣接するマクロブロックのビデオデータのうち一部を保存するための側面マクロブロックバッファメモリと、
現在フィルタリングを行うために前記現在マクロブロックバッファメモリで判読したビデオデータ、前記側面マクロブロックバッファメモリで判読したビデオデータ及び隣接するマクロブロックのデータを保存するためのレジスタバッファアレイと、
前記レジスタバッファアレイと連結され、ビデオデータの現在マクロブロックでサブブロックのエッジを水平または垂直フィルタリングし、前記ビデオデータの現在マクロブロックで次のサブブロックのエッジを同時に水平または垂直フィルタリングするエッジフィルタと、を備え、
前記垂直フィルタリングは、隣接するマクロブロックからのデータを使用し、前記水平フィルタリングは、前記側面マクロブロックバッファメモリからのビデオデータを使用することを特徴とするデブロッキングフィルタ。
【請求項２】
フィルタリング前のビデオデータ、フィルタリング済みのビデオデータ及び前記隣接するマクロブロックのビデオデータを保存するための外部メモリを備えることを特徴とする請求項１に記載のデブロッキングフィルタ。
【請求項３】
前記エッジフィルタによってフィルタリング済みのビデオデータを一時保存するためのフィルタリング出力バッファメモリをさらに備えることを特徴とする請求項２に記載のデブロッキングフィルタ。
【請求項４】
前記現在マクロブロックバッファメモリ、前記側面マクロブロックメモリ及び前記出力バッファメモリそれぞれは、フィルタリング演算のパイプライン構造のために２つ以上のバッファメモリを備えることを特徴とする請求項３に記載のデブロッキングフィルタ。
【請求項５】
前記デブロッキングフィルタは、
前記外部メモリからビデオデータを判読し、前記判読されたビデオデータを前記現在マクロブロックバッファメモリ及び／または前記側面マクロブロックバッファメモリに保存するように制御する外部メモリ制御器と、
前記現在マクロブロックバッファメモリ、前記側面マクロブロックバッファメモリ及び前記外部メモリからデータを判読し、前記判読されたビデオデータを前記レジスタバッファアレイに保存するように制御するレジスタバッファアレイ制御器と、をさらに備えることを特徴とする請求項３に記載のデブロッキングフィルタ。
【請求項６】
前記レジスタバッファアレイは、
前記現在マクロブロックバッファメモリからサブブロックビデオデータを判読し、前記側面マクロブロックバッファメモリからビデオデータを判読し、前記外部メモリからビデオデータまたは隣接するマクロブロックを判読し、
前記判読されたビデオデータを保存し、前記エッジフィルタによってフィルタリングされたサブブロックビデオデータを同時に保存し、保存された前記現在マクロブロックのサブブロックビデオデータを次のエッジフィルタリングのために提供することを特徴とする請求項５に記載のデブロッキングフィルタ。
【請求項７】
前記エッジフィルタに連結され、エッジフィルタリング時にフィルタリング強度を決定するフィルタリング強度生成器と、
前記フィルタリング強度生成器及び前記エッジフィルタに連結され、エッジフィルタリング時にフィルタリング実行有無を決定するための臨界値生成器と、をさらに備え、
前記フィルタリング強度生成器は、前記エッジフィルタと分離されて構成されることを特徴とする請求項５に記載のデブロッキングフィルタ。
【請求項８】
前記フィルタリング強度生成器は、動きベクトル生成過程で発生した動きベクトルを利用して、前記動きベクトル生成過程と同時にフィルタリング強度を生成することを特徴とする請求項７に記載のデブロッキングフィルタ。
【請求項９】
前記エッジフィルタは、現在マクロブロックでサブブロックの垂直及び水平エッジが同時にフィルタリングされるように、輝度または彩度成分に対して独立的に動作する複数のフィルタリングエンジンを備えることを特徴とする請求項１に記載のデブロッキングフィルタ。
【請求項１０】
前記現在マクロブロックバッファメモリ、前記側面マクロブロックバッファメモリ及び前記フィルタリング出力バッファメモリそれぞれに／からビデオデータの入出力を制御するバッファメモリ制御器をそれぞれ備えることを特徴とする請求項５に記載のデブロッキングフィルタ。
【請求項１１】
前記エッジフィルタは、前記ビデオデータの輝度成分に対するフィルタリング演算と彩度成分に対するフィルタリング演算とを同時に行うことを特徴とする請求項１に記載のデブロッキングフィルタ。
【請求項１２】
前記ビデオデータは、Ｈ.２６４／ＡＶＣビデオコーデックによって処理されることを特徴とする請求項１に記載のデブロッキングフィルタ。
【請求項１３】
フィルタリングされる現在マクロブロックのビデオデータを保存するステップと、
前記現在マクロブロックの側面に位置した隣接するマクロブロックのビデオデータの一部を保存するステップと、
現在フィルタリングのための現在マクロブロックバッファメモリから判読されたビデオデータと、側面マクロブロックバッファメモリから判読されたビデオデータ及び隣接するマクロブロックのビデオデータを保存するステップと、
ビデオデータの現在マクロブロックでサブブロックのエッジに対する水平または垂直フィルタリング及び前記ビデオデータの現在マクロブロックで次のサブブロックのエッジに対する水平または垂直フィルタリングを同時に行うステップと、を含み、
前記垂直フィルタリングは、隣接するマクロブロックからのデータを使用し、前記水平フィルタリングは、前記側面マクロブロックバッファメモリからのビデオデータを使用することを特徴とするデブロッキングフィルタリング方法。
【請求項１４】
ビデオデータのマクロブロックに対応する横エッジ及び縦エッジを４×４のサブブロックに対応する横エッジ及び縦エッジに等分するステップと、
前記マクロブロックの上側横エッジの４×１６ブロックから前記マクロブロックの下側横エッジの４×１６ブロックにデブロッキングフィルタリングを行うステップと、を含み、
前記各４×１６ブロックに対して、４個の４×４サブブロックの縦エッジに対する横フィルタリングを進めた後、４個の４×４サブブロックの横エッジに対する縦フィルタリングを進めることを特徴とするデブロッキングフィルタリング方法。
【請求項１５】
前記デブロッキングフィルタリングを行うステップは、
第一の４×１６ブロックの横フィルタリングを処理するステップと、
第二の４×１６ブロックの横フィルタリング及び第一の４×１６ブロックの縦フィルタリングを同時に処理するステップと、
第三の４×１６ブロックの横フィルタリング及び第二の４×１６ブロックの縦フィルタリングを同時に処理するステップと、
第四の４×１６ブロックの横フィルタリング及び第三の４×１６ブロックの縦フィルタリングを同時に処理するステップと、
第四の４×１６ブロックの縦フィルタリングを処理するステップと、を含むことを特徴とする請求項１４に記載のデブロッキングフィルタリング方法。
【請求項１６】
前記各４×１６ブロックに対する前記水平及び／または垂直フィルタリングステップは、
第一の４×４サブブロックに対するデータを入力するステップと、
前記第一の４×４サブブロックに対するフィルタリングと同時に第二の４×４サブブロックに対するデータを入力されるステップと、
前記第二の４×４サブブロックに対するフィルタリングと同時に第三の４×４サブブロックに対するデータを入力するステップと、
前記第三の４×４サブブロックに対するフィルタリングと同時に第四の４×４サブブロックに対するデータを入力するステップと、
前記第四の４×４サブブロックに対するフィルタリングステップと、を含むことを特徴とする請求項１５に記載のデブロッキングフィルタリング方法。
【請求項１７】
前記４×４サブブロックのそれぞれをフィルタリングするステップは、
４個の画素ラインに対して同時にフィルタリングするステップを含むことを特徴とする請求項１６に記載のデブロッキングフィルタリング方法。
【請求項１８】
前記デブロッキングフィルタリングを行うステップは、
前記ビデオデータの輝度成分に対するフィルタリング演算と彩度成分に対するフィルタリング演算とを行うステップを含むことを特徴とする請求項１４に記載のデブロッキングフィルタリング方法。
【請求項１９】
前記ビデオデータは、Ｈ.２６４／ＡＶＣビデオコーデックによって処理されることを特徴とする請求項１４に記載のデブロッキングフィルタリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像デコーディング装置に係り、具体的には、Ｈ.２６４／ＡＶＣビデオコーディング標準で発生するブロックキング効果を除去するためのデブロッキングフィルタ及びフィルタリング方法に関する。
【背景技術】
【０００２】
ほとんどの画像処理システムでは、国際電気通信連合（ＩＴＵ：Ｉｎｔｅｒｎａｔｉｏｎａｌ Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ Ｕｎｉｏｎ）で勧告するＨ.２６１、Ｈ２６２、Ｈ.２６３のような標準化されたビデオコーデックを一般的に使用する。また、このビデオコーデックは、ＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４のコーデック標準が適用される。そして、最近では、さらに高い圧縮率を実現できるＨ.２６４／ＡＶＣビデオコーデックについての研究及び標準化作業が活発に進められている。
【０００３】
Ｈ.２６４／ＡＶＣビデオコーディング標準では、ブロック単位で圧縮符号化した後にデコーディングするので、復元画像にブロックキング現象が発生する。このようなブロックキング現象は、大きく２つの原因に起因する。第一の原因としては、Ｈ.２６４／ＡＶＣと共にほとんどの圧縮技法は一定のサイズのブロックに対してＤＣＴ（Ｄｉｓｃｒｅｔｅ Ｃｏｓｉｎｅ Ｔｒａｎｓｆｏｒｍ）を行い、量子化過程を経るので、互いに重畳されないブロック単位の変換は、周辺ブロックまたは画素間の相関関係が全く考慮されていないまま独立的に変換と量子化とが行われてデータ損失が発生し、かつブロックキング現象が発生する。第二の原因としては、ブロック単位で動きベクトルを予測して画像を補償するが、一つのブロックに属する画素は、同じ動きベクトルを有するので、ブロックキング現象を誘発させる。
【０００４】
デブロッキングフィルタは、このようなブロック単位のコーディングで発生するブロックの境界誤差を柔らかくする役割を行って、最終復元画像の品質を向上させる役割を行う。Ｈ.２６４／ＡＶＣ標準は、ブロックキング現象を防止するためにデブロッキングフィルタが使われうる。しかし、デブロッキングフィルタを実現することによってデコーダの実現も複雑になるという問題が発生する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする技術的課題は、メモリアクセス回数を減少させ、高速のフィルタリング演算を行えるデブロッキングフィルタ及び動作方法を提供することである。
【課題を解決するための手段】
【０００６】
前記目的を達成するために、本発明の一実施形態によるデブロッキングフィルタは、フィルタリングされる現在マクロブロックのビデオデータを保存するための現在マクロブロックバッファメモリと、前記現在マクロブロックの側面に位置する隣接するマクロブロックのビデオデータのうち一部を保存するための側面マクロブロックバッファメモリと、現在フィルタリングを行うために前記現在マクロブロックバッファメモリから判読したビデオデータ、前記側面マクロブロックバッファメモリから判読したビデオデータ及び隣接するマクロブロックのデータを保存するためのレジスタバッファアレイと、前記レジスタバッファアレイと連結され、ビデオデータの現在マクロブロックでサブブロックのエッジを水平または垂直フィルタリングし、前記ビデオデータの現在マクロブロックで次のサブブロックのエッジを同時に水平または垂直フィルタリングするエッジフィルタと、を備え、前記垂直フィルタリングは、隣接するマクロブロックからのデータを使用し、前記水平フィルタリングは、前記側面マクロブロックバッファメモリからのビデオデータを使用することを特徴とする。
【０００７】
また、フィルタリング前のビデオデータ、フィルタリング済みのビデオデータ及び前記隣接するマクロブロックのビデオデータを保存するための外部メモリをさらに備えることができる。
また、前記エッジフィルタによってフィルタリング済みのビデオデータを一時保存するためのフィルタリング出力バッファメモリをさらに備えることができる。
また、前記現在マクロブロックバッファメモリ、前記側面マクロブロックメモリ及び前記出力バッファメモリそれぞれは、フィルタリング演算のパイプライン構造のために２つ以上のバッファメモリを備えることが望ましい。
【０００８】
また、前記デブロッキングフィルタは、前記外部メモリからビデオデータを判読し、前記判読されたビデオデータを前記現在マクロブロックバッファメモリ及び／または前記側面マクロブロックバッファメモリに保存するように制御する外部メモリ制御器及び前記現在マクロブロックバッファメモリ、前記側面マクロブロックバッファメモリ及び前記外部メモリからデータを判読し、前記判読されたビデオデータを前記レジスタバッファアレイに保存するように制御するレジスタバッファアレイ制御器をさらに備えることが望ましい。
【０００９】
また、前記レジスタバッファアレイは、前記現在マクロブロックバッファメモリからサブブロックビデオデータを判読し、前記側面マクロブロックバッファメモリからビデオデータを判読し、前記外部メモリからビデオデータまたは隣接するマクロブロックを判読し、前記判読されたビデオデータを保存し、前記エッジフィルタによってフィルタリングされたサブブロックビデオデータを同時に保存し、保存された前記現在マクロブロックのサブブロックビデオデータを次のエッジフィルタリングのために提供できる。
【００１０】
一方、前記デブロッキングフィルタは、前記エッジフィルタに連結され、エッジフィルタリング時にフィルタリング強度を決定するフィルタリング強度生成器及び前記フィルタリング強度生成器及び前記エッジフィルタに連結され、エッジフィルタリング時にフィルタリング実行有無を決定するための臨界値生成器をさらに備え、前記フィルタリング強度生成器は、前記エッジフィルタと分離されて構成されることが望ましい。
【００１１】
また、前記フィルタリング強度生成器は、動きベクトル生成過程で発生した動きベクトルを利用して、前記動きベクトル生成過程と同時にフィルタリング強度を生成することが望ましい。
また、前記エッジフィルタは、現在マクロブロックでサブブロックの垂直及び水平エッジが同時にフィルタリングされるように、輝度または彩度成分に対して独立的に動作する複数のフィルタリングエンジンを備えることが望ましい。
【００１２】
また、前記デブロッキングフィルタは、前記現在マクロブロックバッファメモリ、前記側面マクロブロックバッファメモリ及び前記フィルタリング出力バッファメモリそれぞれに／からビデオデータの入出力を制御するバッファメモリ制御器をそれぞれ備えることが望ましい。
また、前記エッジフィルタは、前記ビデオデータの輝度成分に対するフィルタリング演算と彩度成分に対するフィルタリング演算とを同時に行うことが望ましい。
また、前記ビデオデータは、Ｈ.２６４／ＡＶＣビデオコーデックによって処理されうる。
【００１３】
一方、本発明の一実施形態によるデブロッキングフィルタリング方法は、フィルタリングされる現在マクロブロックのビデオデータを保存するステップと、前記現在マクロブロックの側面に位置した隣接するマクロブロックのビデオデータの一部を保存するステップと、現在フィルタリングのための現在マクロブロックバッファメモリから判読されたビデオデータと、側面マクロブロックバッファメモリから判読されたビデオデータ及び隣接するマクロブロックのビデオデータを保存するステップと、ビデオデータの現在マクロブロックでサブブロックのエッジに対する水平または垂直フィルタリング及び前記ビデオデータの現在マクロブロックで次のサブブロックのエッジに対する水平または垂直フィルタリングを同時に行うステップと、を含み、前記垂直フィルタリングは、隣接するマクロブロックからのデータを使用し、水平フィルタリングは、前記側面マクロブロックバッファメモリからのビデオデータを使用することを特徴とする。
【００１４】
一方、本発明の他の実施例によるデブロッキングフィルタリング方法は、ビデオデータのマクロブロックに対応する横エッジ及び縦エッジを４×４のサブブロックに対応する横エッジ及び縦エッジに等分するステップ及び前記マクロブロックの上側横エッジの４×１６ブロックから前記マクロブロックの下側横エッジの４×１６ブロックにデブロッキングフィルタリングを行うステップを含み、前記各４×１６ブロックに対して、４個の４×４サブブロックの縦エッジに対する横フィルタリングを進めた後、４個の４×４サブブロックの横エッジに対する縦フィルタリングを進めることを特徴とする。
【００１５】
また、前記デブロッキングフィルタリングを行うステップは、第一の４×１６ブロックの横フィルタリングを処理するステップと、第二の４×１６ブロックの横フィルタリング及び第一の４×１６ブロックの縦フィルタリングを同時に処理するステップと、第三の４×１６ブロックの横フィルタリング及び第二の４×１６ブロックの縦フィルタリングを同時に処理するステップと、第四の４×１６ブロックの横フィルタリング及び第三の４×１６ブロックの縦フィルタリングを同時に処理するステップと、第四の４×１６ブロックの縦フィルタリングを処理するステップと、を含むことができる。
【００１６】
また、前記各４×１６ブロックに対する前記水平及び／または垂直フィルタリングステップは、第一の４×４サブブロックに対するデータを入力するステップと、前記第一の４×４サブブロックに対するフィルタリングと同時に第二の４×４サブブロックに対するデータを入力するステップと、前記第二の４×４サブブロックに対するフィルタリングと同時に第三の４×４サブブロックに対するデータを入力するステップと、前記第三の４×４サブブロックに対するフィルタリングと同時に第四の４×４サブブロックに対するデータを入力するステップと、前記第四の４×４サブブロックに対するフィルタリングステップと、を含むことができる。
【００１７】
また、前記４×４サブブロックのそれぞれをフィルタリングするステップは、４個の画素ラインに対して同時にフィルタリングするステップを含むことが望ましい。
また、前記デブロッキングフィルタリングを行うステップは、前記ビデオデータの輝度成分に対するフィルタリング演算と彩度成分に対するフィルタリング演算とを行うステップを含むことができる。
【発明の効果】
【００１８】
本発明によるデブロッキングフィルタ及びフィルタリング方法によれば、データの入力とフィルタリング演算、垂直フィルタリングと水平フィルタリング、データの出力を同時に行えるパイプライン構造を通じて高速のフィルタリング演算が可能である。
【発明を実施するための最良の形態】
【００１９】
本発明と本発明の動作上の利点及び本発明の実施によって達成される目的を十分に理解するためには、本発明の望ましい実施形態を例示する添付図面及び添付図面に記載された内容を参照しなければならない。
以下、添付された図面を参照して、本発明の望ましい実施形態を説明することによって、本発明を詳細に説明する。各図面に付された同一参照符号は、同一部材を表す。
【００２０】
図１は、一般的なビデオデコーダシステムの構成を表すブロック図である。
前述したように、圧縮画像データは、画像処理装置でデコーディング過程を通じて元のデータに復元されて画面に表示される。図１を参照すれば、画像データをデコーディングするためのビデオデコーダ１０は、構文分析器１１、エントロピーデコーダ１２、逆変換器１３、動きベクトル演算器１４、予測器１５、デブロッキングフィルタ１６及び複数のハードウェアモジュールと外部メモリ制御器及びインターフェースのためのＰＣＩ（Ｐｅｒｓｏｎａｌ Ｃｏｍｐｕｔｅｒ Ｉｎｔｅｒｆａｃｅ）モジュール（図示せず）で構成される。
【００２１】
デコーディング過程で必要なデータは、内部メモリあるいは外部メモリから判読または保存し、それぞれのモジュールは、図１のシステムバス１７を通じてデータを相互交換する。デコーディング過程は、前述したハードウェアモジュールで順次に処理されて元来の画像に復元されるが、画像データがマクロブロック単位で圧縮されて復元されるため、復元された画像のブロック間の境界地点では、ブロック単位で画面の差が発生する。このようなブロックキング現象は、図１のデブロッキングフィルタ１６を通じてブロッキング現象を減らす。
【００２２】
一方、ブロッキング現象は、一定のサイズのブロック単位で圧縮されて発生するため、デブロッキングフィルタ１６のエッジフィルタリングもマクロブロック単位で行われる。
図２は、デブロッキングフィルタリング動作に使われるマクロブロックを示した図である。
【００２３】
図２を参照すれば、現在マクロブロックをＸで表示し、周辺マクロブロックは、図２に示したようにＡ、Ｂ、Ｃ、Ｄで表現し、以下、現在マクロブロックＸを中心に左側マクロブロックをＡ、上部マクロブロックをＢで表現する。現在マクロブロックＸの境界をフィルタリングするためには、図２のようにマクロブロックＡ及びマクロブロックＢのデータが必要である。すなわち、水平フィルタリング演算のために左側マクロブロックＡが必要であり、垂直フィルタリング演算のために上部マクロブロックＢが必要である。
【００２４】
図３Ａ及び図３Ｂは、一つのマクロブロック内の各エッジのフィルタリング順序を示す。
図３Ａ及び図３Ｂを参照すれば、一つのマクロブロックに対するフィルタリング演算は、マクロブロックを構成するピクセルの輝度成分と彩度成分とに対してそれぞれ行われ、図３Ａは、輝度成分のフィルタリング境界領域を表し、図３Ｂは、彩度成分のフィルタリング境界領域を表す。輝度成分のフィルタリング演算は、垂直境界に対してａ、ｂ、ｃ、ｄ順にフィルタリングを行い、その次の水平境界に対してｅ、ｆ、ｇ、ｈ順にフィルタリングを行う。また、彩度成分のフィルタリング演算は、垂直境界に対してｉ、ｊ順にフィルタリングを行い、その次の水平境界に対してｋ、ｌ順にフィルタリングを行う。一般的に、輝度成分のフィルタリング演算が先に行われ、その後、彩度成分のフィルタリング演算が行われる。
【００２５】
また、フィルタリング演算を行うためには、各境界領域を中心にそれぞれ４個の画素（ピクセル）が必要である。すなわち、フィルタリング演算のためには、垂直境界ピクセルに対して左右それぞれ４個ずつのピクセルが必要であり、水平境界に対しては、上下それぞれ４個ずつのピクセルが必要であり、隣接する４×４サイズブロックが属するマクロブロックで使用する量子化パラメータ、隣接クロックの符号化モード、動きベクトルによって修正される画素数及び適用されるフィルタリング強度が変わる。
【００２６】
以上のように、一般的なフィルタリング方法を使用すれば、フィルタリング演算のためにメモリアクセス及びフィルタリング所要時間を考慮すれば、８００サイクル以上がかかって高画質の画像データに対するフィルタリング演算で時間遅延が発生して、結果的に高画質の画像データのリアルタイム処理に問題が発生する。
【００２７】
図４は、本発明の一実施形態によるデブロッキングフィルタのブロックダイヤグラムを示す。
まず、デブロッキングフィルタアルゴリズムを簡単に説明すれば、フィルタリングしようとするエッジに該当するピクセルを選択し、選択されたピクセルを内部または外部メモリから判読してフィルタリング演算を行うためのバッファに保存しなければならない。そして、実際画像のエッジ部分は生かし、過度なフィルタリングが発生しないようにフィルタリング強度を求め、臨界値と比較してフィルタリング実行有無を決定する。このようなデブロッキングフィルタリングアルゴリズムは、例えば、Ｈ.２６４／ＡＶＣ標準化文書に開示されている。
【００２８】
一方、図４に示した本発明の一実施形態によるデブロッキングフィルタ４００のハードウェア構造は、メモリアクセスを減少させつつ、フィルタリング演算を効率的に実行させるハードウェア構造である。また、本発明の一実施形態によるデブロッキングフィルタ４００は、水平フィルタリングと垂直フィルタリングとを行うに当って、フィルタリング演算を並列処理させうる。
【００２９】
このために、本発明の一実施形態によるデブロッキングフィルタ４００は、図示したように、２個の出力バッファメモリ４０２、２個のＸ−バッファメモリ４０４、２個のＡ−バッファメモリ４０６、出力バッファメモリ制御器４０８、Ｘ−バッファメモリ制御器４１０、Ａ−バッファメモリ制御器４１２、外部バスインターフェース４１４、レジスタバッファアレイ４１６、レジスタバッファアレイ制御器４１８、エッジフィルタ４２０、フィルタリング強度生成器４２２、臨界値生成器４２４、外部メモリ制御器４２６及び外部メモリ４３０を備えるもので構成される。
【００３０】
２個の出力バッファメモリ４０２は、エッジフィルタ４２０でフィルタリング済みのデータを外部メモリ４３０に出力する前に一時的に保存するためのメモリである。２個のＸ−バッファメモリ４０４は、現在フィルタリングを行うエッジに該当するマクロブロックのデータを保存するためのメモリである。すなわち、Ｘ−バッファメモリ４０４は、図２の現在マクロブロックＸのデータを保存する。２個のＡ−バッファメモリ４０６は、現在マクロブロックＸの左側に隣接するマクロブロックのデータのうち、現在マクロブロックＸに隣接する４個の４×４サブブロックのデータを保存する。出力バッファメモリ制御器４０８、Ｘ−バッファメモリ制御器４１０及びＡ−バッファメモリ制御器４１２は、それぞれ出力バッファメモリ４０２、Ｘ−バッファメモリ４０４及びＡ−バッファメモリ４０６のデータ入出力を制御する。外部バスインターフェース４１４は、デコーディング過程で必要なデータは、内部メモリあるいは外部メモリから判読または保存するインターフェース機能を行う。
【００３１】
レジスタバッファアレイ４１６は、フィルタリング演算を行うために、Ｘ−バッファメモリ４０４から判読した現在マクロブロックデータ、Ａ−バッファメモリ４０６から判読した左側に隣接するマクロブロックのデータ及び外部メモリ４３０から判読した上部に隣接するマクロブロックのデータを保存し、エッジフィルタ４２０でフィルタリング演算されたデータのうち、次のフィルタリング演算に利用されるデータを保存する機能を行う。エッジフィルタ４２０は、レジスタバッファアレイ４１６に保存されたデータを利用して各エッジに対するフィルタリング演算を行う。フィルタリング強度生成器４２２は、実際画像のエッジ部分は生かし、過度なフィルタリングが発生しないようにフィルタリング強度を決定する役割を行い、臨界値生成器４２４は、フィルタリング実行有無を最終決定するための臨界値を算出する役割を行う。外部メモリ４３０は、フィルタリングを行うためのビデオデータを保存し、フィルタリング済みのデータを再び保存する機能を行う。レジスタバッファアレイ制御器４１８は、レジスタバッファアレイ４１６を制御するためのものであり、外部メモリ制御器４２６は、外部メモリ４３０を制御するためのものである。
【００３２】
図４を参照して、本発明の一実施形態によるデブロッキングフィルタ４００の動作過程を説明する。
まず、一つのマクロブロックをフィルタリングするためには、現在マクロブロックと関連した情報及び周辺マクロブロックと関連した情報が必要である。すなわち、現在マクロブロックの垂直エッジをフィルタリングするためには、左側のＡマクロブロックと関連した情報が必要であり、水平エッジをフィルタリングするためには、上段のＢマクロブロックと関連した情報が必要である。図１のビデオデコーダシステムで説明したように、デブロッキングフィルタの前ステップである予測器からフィルタリングしようとする現在マクロブロックと関連した情報を受けてＸ−バッファメモリ４０４に保存する。Ｘ−バッファメモリが２個のバッファメモリで構成される理由は、効率的なビデオデコーダシステムのパイプライン構造のためである。
【００３３】
また、水平／垂直エッジをフィルタリングするための周辺マクロブロックであるＡ、Ｂマクロブロックを保存するためのメモリバッファが必要であり、Ａ−バッファメモリ４０６は、左側のＡマクロブロックと関連した情報を保存し、ＭＢＡＦＦモードを考慮して４×３２ピクセル情報を保存する。Ａ−バッファメモリ４０６も、ビデオデコーダシステムのパイプライン構造のために２個のバッファメモリで構成される。
【００３４】
上段のＢマクロブロックと関連した情報は、Ｈ.２６４／ＡＶＣメインプロファイルの場合、最高２０４８＊１０２４解像度を支援する場合、ＭＢＡＦＦモードを考慮すれば、１２８＊４＊３２ピクセル情報が必要である。ここで、１２８は、一つのラインのマクロブロックの数に該当する。しかし、このようなピクセル情報を内部メモリバッファに保存するのには情報量が過度に多い。したがって、現在マクロブロックＸの上段マクロブロックＢと関連した情報は、外部メモリ４３０に保存し、フィルタリングが行われる前に必要なＢマクロブロックと関連したピクセル情報をあらかじめ判読して内部のレジスタバッファアレイ４１６に保存する構造が効率的である。また、図４に示したように、外部メモリ４３０をアクセスするために、外部バスインターフェースモジュール４１４が使われ、システムバス４３２とデータを交換する。
【００３５】
図４で、レジスタバッファアレイ４１６は、高速フィルタリング演算のためのパイプライン構造のために、フィルタリング演算に必要なピクセル及びフィルタリング済みのピクセルのうち、次のフィルタリング演算に必要なデータを保存してフィルタリングを効率的に処理する。すなわち、本発明の他のレジスタバッファアレイ４１６は、一般的なデブロッキングフィルタの構造とは違って、該エッジフィルタリングに必要な情報を判読してフィルタリング演算を行い、垂直、水平エッジフィルタリングが完了するまでレジスタに保存することによって、高速パイプライン構造を可能にし、不要なメモリアクセスサイクルを減らすことができる。
【００３６】
エッジフィルタ４２０は、レジスタバッファアレイ４１６からピクセル情報を受け、フィルタリング強度生成器４２２からフィルタリング強度値と臨界値生成器４２４から臨界値とを受けて実際フィルタリング演算を行う。また、エッジフィルタ４２０は、高速フィルタリング演算のために４×４サブブロックの垂直または水平エッジのフィルタリングを同時に行えるように、輝度または彩度成分に対して独立的に動作する４個のフィルタリングエンジンを有する。この４個のフィルタリングエンジンは、それぞれ一つの４×４サブブロックデータの一つのラインの画素に対するフィルタリングを行う。
【００３７】
また、本発明の一実施形態によるデブロッキングフィルタ４００のエッジフィルタ４２０は、フィルタリング演算にかかる時間を短縮させるために、輝度成分に対するフィルタリング演算と同時に彩度成分に対するフィルタリング演算を行う。
【００３８】
本発明の一実施形態によるデブロッキングフィルタ４００は、図４に示したように、フィルタリング強度生成器４２２がエッジフィルタ４２０の外部に設置されるように構成される。フィルタリング強度を決定するためには、動きベクトルの情報が使われ、色々な条件を複雑に比較する過程が必要である。動きベクトルの情報は、図１に示したビデオデコーダ１０のように、予測器１５の前に動きベクトル情報が使われる。したがって、一般的には、動きベクトル情報も内部メモリに保存されてフィルタリング強度生成時に使われねばならないが、本発明によるデブロッキングフィルタ４００では、動きベクトル情報を別途に保存せずに共有できるように、動きベクトル生成過程でフィルタリング強度を生成させる。これにより、内部メモリを節約できるだけでなく、フィルタリング強度が前ステップで生成されるので、デブロッキングフィルタ演算のサイクルを減らせるという長所がある。
【００３９】
また、パイプライン構造のために２個のメモリで構成された出力バッファメモリ４０２は、フィルタリング済みのデータを一時保存した後、外部メモリ４３０に出力する。
一方、デブロッキングフィルタ４００は、４×４サブブロックを基本単位としてフィルタリング演算を行い、毎ブロック境界ごとに少なくとも二つ以上のピクセルをアクセスしなければならないので、メモリ使用の頻度が増加してデコーダの性能に影響を与えることがある。したがって、本発明の一実施形態によるデブロッキングフィルタ４００は、メモリのアクセスを減少させ、フィルタリング演算を効率的に並列処理できるように構成される。
【００４０】
一般的なフィルタリング順序は、垂直エッジに対するフィルタリング実行を終え、水平エッジに対するフィルタリングを行う。この場合、一つのマクロブロックをフィルタリングするためには、６４回の水平フィルタリング動作と６４回の垂直フィルタリング動作とを行わねばならない。データ入出力のためのメモリアクセスサイクル数及びフィルタリング演算サイクル数を概略的に１５サイクルと仮定しても、１９２０サイクルがかかり、高画質の画像データをリアルタイムで処理するのに問題が発生する。しかし、本発明の一実施形態によるデブロッキングフィルタ４００は、垂直エッジ及び水平エッジフィルタリングを同時に処理できるハードウェア構造を通じてメモリアクセス及びフィルタリング演算サイクルの数を減少させうる。
【００４１】
図５は、本発明の一実施形態によるマクロブロック内のエッジに対するフィルタリング順序を示すダイヤグラムである。
図５は、一つの１６×１６マクロブロックを表すものであって、１６個の各サブブロックは、４×４のブロックである。一つのマクロブロックでのフィルタリング順序は、１６個の４×４サブブロックのうち上側横ラインから下側横ライン方向に４個のサブブロックずつデブロッキングフィルタリングを行う。また、４個の４×４サブブロックの縦エッジに対する横フィルタリングを順次に進めた後、横エッジに対する縦フィルタリングを順次に進める。
【００４２】
すなわち、一つのマクロブロックでのフィルタリング順序は、図５（ａ）に示したように、１、２、３、４番のサブブロックに対して順次に水平フィルタリング（Ｉ）し、水平フィルタリングが完了すれば、同じ方式で図５（ｂ）に示したように、１、２、３、４順に垂直フィルタリング（Ｉ′）を処理する。次いで、５、６、７、８番のサブブロックに対する水平フィルタリング（ＩＩ）を行い、再び５、６、７、８番のサブブロックに対する垂直フィルタリング（ＩＩ′）を行う。そして、９、１０、１１、１２番のサブブロックに対する水平フィルタリング（ＩＩＩ）を行い、再び９、１０、１１、１２番のサブブロックに対する垂直フィルタリング（ＩＩＩ′）を行う。そして、１３、１４、１５、１６番のサブブロックに対する水平フィルタリング（ＩＶ）を行い、再び１３、１４、１５、１６番のサブブロックに対して垂直フィルタリング（ＩＶ′）を行う。
【００４３】
図６は、本発明の一実施形態によるフィルタリング演算時、パイプライン構造を示すブロックダイヤグラムである。
【００４４】
本発明の一実施形態によるデブロッキングフィルタリング方法は、４×１６ブロックを基本単位とする。すなわち、図５に示したように、１、２、３、４番の４個の４×４サブブロック（すなわち、４×１６ブロック）、次いで、５、６、７、８番の４個のサブブロック、次いで、９、１０、１１、１２番の４個のサブブロック、次いで、１３、１４、１５、１６番の４個のサブブロック順にフィルタリングを進める。本発明によるデブロッキングフィルタリング方法は、４×１６、すなわち４個の４×４サブブロックを基本単位として水平フィルタリング及び垂直フィルタリングを２段階パイプファイン構造で処理する。また、一つの４×１６ブロックでは、水平フィルタリング及び垂直フィルタリングが何れも４×４ブロック単位の２段階パイプライン構造でフィルタリング演算を行う。
【００４５】
図５及び図６を参照して、本発明によるパイプライン構造を説明すれば、第一の４×１６ブロックに対する横フィルタリング（Ｉ）を処理した後、第一の４×１６ブロックに対する縦フィルタリング（Ｉ′）と第二の４×１６ブロックに対する横フィルタリング（ＩＩ）とを同時に処理する。次いで、第二の４×１６ブロックに対する縦フィルタリング（ＩＩ′）と第三の４×１６ブロックに対する横フィルタリング（ＩＩＩ）とを同時に処理する。次いで、第三の４×１６ブロックに対する縦フィルタリング（ＩＩＩ′）と第四の４×１６ブロックに対する横フィルタリング（ＩＶ）とを同時に処理する。そして、最後に、第四の４×１６ブロックに対する縦フィルタリング（ＩＶ′）を処理する。
【００４６】
すなわち、本発明によるデブロッキングフィルタリング方法は、水平フィルタリングと垂直フィルタリングとがパイプライン構造になっているので、１、２、３、４番のサブブロックに対する垂直フィルタリングが行われる間に５、６、７、８番のサブブロックに対する水平フィルタリングを行う。そして、５、６、７、８番のサブブロックに対する垂直フィルタリングが行われる間に９、１０、１１、１２番のサブブロックに対する水平フィルタリングを行う。そして、９、１０、１１、１２番のサブブロックに対する垂直フィルタリングを行う間に１３、１４、１５、１６番のサブブロックに対する水平フィルタリングを行い、最後に、１３、１４、１５、１６番のサブブロックに対する垂直フィルタリングを行う。
【００４７】
一方、一つの４×１６ブロックに対しては、第一の４×４サブブロックに対するデータ入力ステップ後、第一の４×４サブブロックに対するフィルタリングと第二の４×４サブブロックに対するデータ入力ステップとを同時に進める。次いで、第二の４×４サブブロックに対するフィルタリングと第三の４×４サブブロックに対するデータ入力ステップとを同時に進める。次いで、第三の４×４サブブロックに対するフィルタリングと第四の４×４サブブロックに対するデータ入力ステップとを同時に進める。そして、最後に、第四の４×４サブブロックに対するフィルタリングを行う。
【００４８】
例えば、図５の第一の４×１６ブロック、すなわち、１、２、３、４番の４×４サブブロックの水平フィルタリングの例を参照すれば、１番の４×４サブブロックに対する水平フィルタリングが進められる間に２番の４×４サブブロックに対する水平フィルタリングのためにデータを入力する。このような方式によって、２番の４×４サブブロックに対する水平フィルタリングが進められる間に３番の４×４サブブロックに対する水平フィルタリングのためにデータを入力する。また、３番の４×４サブブロックに対する水平フィルタリングが進められる間に４番の４×４サブブロックに対する水平フィルタリングのためにデータを入力する。そして、最後に、４番の４×４サブブロックに対する水平フィルタリングを行う。
【００４９】
したがって、本発明の一実施形態によるデブロッキングフィルタリング方法は、４×１６単位ブロックに対して横フィルタリングと縦フィルタリングとを同時に処理できる。また、それぞれの横フィルタリングと縦フィルタリングとは、それぞれ４×４単位ブロックに対してデータ入力とフィルタリング演算とを同時に処理できる。
また、本発明の一実施形態によるフィルタリング方法は、フィルタリング演算にかかる時間を短縮させるために、輝度成分に対するフィルタリング演算と同時に彩度成分に対するフィルタリング演算とを行う。
【００５０】
一方、このように、フィルタリング演算を高速のパイプライン構造で処理する機能は、図４に示した本発明によるデブロッキングフィルタ４００のようにレジスタバッファアレイ４１６を通じて達成される。すなわち、本発明によるフィルタリング方法は、４×１６を基本単位として水平及び垂直フィルタリングが行われるが、４×４単位のフィルタリング演算時にメモリアクセスをなくすためにレジスタバッファアレイ４１６を使用し、フィルタリングが終わった４×４ブロックに対して次の垂直フィルタリングに使用する。したがって、次のフィルタリングのために内部バッファメモリに保存する過程を省略でき、これにより、メモリアクセスサイクルを減らすことができる。
【００５１】
図７は、本発明の一実施形態によるデブロッキングフィルタリング動作を示すフローチャートである。
【００５２】
図７を参照して、本発明によるフィルタリング方法を説明すれば、まず、最初の垂直エッジに対する水平フィルタリングを行うためのＡマクロブロック及び第一の４×４×マクロブロックデータを内部Ｘバッファメモリから判読してレジスタバッファアレイに保存してフィルタリングするデータを準備する（Ｓ７０１）。データ準備が終われば、垂直エッジであるか否かを判別し（Ｓ７０２）、垂直エッジであれば、水平フィルタリングを行うことができる（Ｓ７０３）。フィルタリング演算と同時に、次の水平フィルタリングに対するＸマクロブロックの第二の４×４サブブロックデータをレジスタバッファアレイに準備する（Ｓ７０４）。そして、水平フィルタリング済みのデータと次の４×４サブブロックデータとでレジスタバッファアレイをアップデートする（Ｓ７０７）。この過程を４×４水平フィルタリングが終わるまで反復する（Ｓ７０８及びＳ７０９）。それと同時に、水平フィルタリングが進められる間に第一のまたは第二の垂直フィルタリングのためのＢマクロブロックの４×１６データを外部メモリからレジスタバッファアレイに準備する（Ｓ７１０及びＳ７１１）。
【００５３】
パイプライン構造からなる水平フィルタリング過程を４個の垂直エッジに対する処理が終われば、垂直フィルタリングが可能である（Ｓ７０５）。また、水平、垂直フィルタリングが何れも終わったＡマクロブロックのデータは、出力が可能である（Ｓ７１８）。
【００５４】
垂直フィルタリングは、水平フィルタリングされたＸマクロブロックの４×１６ブロックデータとＢマクロブロックの４×１６ブロックのデータとを利用して、４×４単位のパイプライン構造によって行われ（Ｓ７０５）、それと同時に、次の垂直エッジについて前述した水平フィルタリング過程を行う（Ｓ７０３）。そして、垂直フィルタリング済みのデータと水平フィルタリングされた４×４サブブロックデータとでレジスタバッファアレイをアップデートする（Ｓ７１２）。この過程を４×４垂直フィルタリングが終わるまで反復する（Ｓ７１３及びＳ７１４）。
【００５５】
このように垂直フィルタリングが終われば、次のマクロブロックのデブロッキングフィルタリングのために、Ｘマクロブロックの第四の４×１６ブロックデータは、Ａバッファメモリに保存し（Ｓ７１５）、それと同時にＢマクロブロックデータは、垂直、水平フィルタリング済みなので、外部メモリに出力するために出力バッファメモリに保存され、次の水平、垂直フィルタリングが行われる間に外部メモリに出力される（Ｓ７１６）。そして、４×４のＸマクロブロックのデータは、次の垂直フィルタリングのためにレジスタバッファアレイにアップデートされる。このような過程を全ての垂直、水平エッジに対して行えば、一つのマクロブロックに対するデブロッキングフィルタリングが完了し、フィルタリング済みのデータは、外部メモリに出力される（Ｓ７１７及びＳ７１９）。
【００５６】
本発明は、図面に示した一実施形態を参考として説明されたが、これは、例示的なものに過ぎず、当業者ならば、これから多様な変形及び均等な他の実施形態が可能であるということが分かるであろう。したがって、本発明の真の技術的保護範囲は、特許請求の範囲の技術的思想によって決定されなければならない。
【産業上の利用可能性】
【００５７】
本発明は、画像デコーディング装置関連の技術分野に適用可能である。
【図面の簡単な説明】
【００５８】
【図１】一般的なビデオデコーダシステムの構成を示すブロック図である。
【図２】デブロッキングフィルタリング動作に使われるマクロブロックを示す図面である。
【図３Ａ】一つのマクロブロック内のエッジフィルタリング順序を示すダイヤグラムである。
【図３Ｂ】一つのマクロブロック内のエッジフィルタリング順序を示すダイヤグラムである。
【図４】本発明の一実施形態によるデブロッキングフィルタを示すブロックダイヤグラムである。
【図５】本発明の一実施形態によるマクロブロック内のエッジフィルタリング順序を示すダイヤグラムである。
【図６】本発明の一実施形態によるフィルタリング動作時のパイプライン構造を示すブロックダイヤグラムである。
【図７】本発明の一実施形態によるデブロッキングフィルタリング動作を示すフローチャートである。
【符号の説明】
【００５９】
４０２    出力バッファメモリ
４０４    Ｘ−バッファメモリ
４０６    Ａ−バッファメモリ
４０８    出力バッファメモリ制御器
４１０    Ｘ−バッファメモリ制御器
４１２    Ａ−バッファメモリ制御器
４１４    外部バスインターフェースモジュール
４１６    レジスタバッファアレイ
４１８    レジスタバッファアレイ制御器
４２０    エッジフィルタ
４２２    フィルタリング強度生成器
４２４    臨界値生成器
４２６    外部メモリ制御器
４３０    外部メモリ
４３２    システムバス
【図１】
2006174486.tif 000003
【図２】
2006174486.tif 000004
【図３Ａ】
2006174486.tif 000005
【図３Ｂ】
2006174486.tif 000006
【図４】
2006174486.tif 000007
【図５】
2006174486.tif 000008
【図６】
2006174486.tif 000009
【図７】
2006174486.tif 000010