(57)【特許請求の範囲】
【請求項１】
２個の画素ブロックが隣接ブロックであるかどうかを決定し、
この２個のブロックが隣接ブロックであると決定されるのであれば、この２個の隣接ブロックが両方とも細分化されているかどうかを決定し、
前記２個の隣接ブロックの少なくとも１つが細分化されていないと決定された後に、この２個の隣接ブロックの１個又はそれより多くの端部画素にデブロッキング・フィルタリングを実行し、
前記２個の隣接ブロックの少なくとも１つのみが細分化されているのであれば、この２個の隣接ブロックの１個又はそれより多くの端部画素に第１のデブロッキング・フィルタを使用し、
前記２個の隣接ブロックのどちらも細分化されていないのであれば、この２個の隣接ブロックの１個又はそれより多くの端部画素の１個又はそれより多くの差異値を取得し、
この１個又はそれより多くの差異値を第２のしきい値と比較し、及び
前記第２のしきい値に対する前記１個又はそれより多くの差異値の比較に基づいて第２のデブロッキング・フィルタを選択する
ことを具備する、ブロック・ベース圧縮を使用して圧縮された画像を処理するための方法。
【請求項２】
前記２個の隣接ブロックが両方とも細分化されているかどうかを決定することは、
前記２個の隣接ブロックの各々の分散値を取得し、
この分散値を第１のしきい値と比較し、及び
この第１のしきい値に対する前記分散値の比較に基づいて前記２個の隣接ブロックが両方とも細分化されているかどうかを決定すること、
を具備する請求項１の方法。
【請求項３】
前記２個の隣接ブロックが両方とも細分化されているかどうかを決定することは：
前記ブロック・サイズ割当て値を取得し、及び
前記２個の隣接ブロックが細分化されているかどうかを決定するためにブロック・サイズ割当て値を使用すること、
を具備する請求項１の方法。
【請求項４】
前記第２のデブロッキング・フィルタを使用することは、
前記２個の隣接ブロックの２個の端部画素に２点平均化フィルタを使用することを具備する請求項1の方法。
【請求項５】
前記１個又はそれより多くの差異値を取得することは、
前記２個の隣接ブロックの端部画素間の１次差異を取得することを具備する請求項１の方法。
【請求項６】
前記１個又はそれより多くの差異値を取得することは：
前記２個の隣接ブロックの３個の端部画素間の差異値を取得することを具備し、及び
前記第２のデブロッキング・フィルタを選択することは：
前記少なくとも２個の差異値が前記第２のしきい値より大きければ、ガウシアン・フィルタを使用すること
を具備する請求項１の方法。
【請求項７】
前記ガウシアン・フィルタを使用することは：
前記差異値が前記第２のしきい値より大きければ、２個の隣接ブロックの６個の端部画素に６点ガウシアン・フィルタを使用すること
を具備する請求項６の方法。
【請求項８】
前記ガウシアン・フィルタを使用することは：
前記差異値の２個が前記第２のしきい値より大きければ、前記２個の隣接ブロックの４個の端部画素に４点ガウシアン・フィルタを使用することを具備する請求項６の方法。
【請求項９】
前記第２のデブロッキング・フィルタを選択することは：
前記差異値の１個が前記第２のしきい値より大きければ、２個の隣接ブロックの２個の端部画素に平均化フィルタを使用すること
をさらに具備する請求項６の方法。
【請求項１０】
前記２個のブロックが隣接ブロックであるかどうかを決定するための手段と、
この２個のブロックが隣接ブロックであると決定されるのであれば、この２個の隣接ブロックが両方とも細分化されているかどうかを決定するための手段と、
前記２個の隣接ブロックの両方が細分化されていないと決定された後に、この２個の隣接ブロックの１個又はそれより多くの端部画素をフィルタリングするための手段と、
前記２個の隣接ブロックの少なくとも１つのみが細分化されているのであれば、この２個の隣接ブロックの１個又はそれより多くの端部画素に第１のデブロッキング・フィルタを用いる手段と、
前記２個の隣接ブロックのどちらも細分化されていないのであれば、この２個の隣接ブロックの１個又はそれより多くの端部画素の１個又はそれより多くの差異値を取得する手段と、
この１個又はそれより多くの差異値を第２のしきい値と比較する手段と、及び
前記第２のしきい値に対する前記１個又はそれより多くの差異値の比較に基づいて第２のデブロッキング・フィルタを選択する手段と、
を具備する、ブロック・ベース圧縮を使用して圧縮された画像を処理するための装置。
【請求項１１】
前記２個の隣接ブロックが両方とも細分化されているかどうかを決定するための手段は：
前記２個の隣接ブロックの各々の分散値を取得するための手段と、
この分散値を第１のしきい値と比較するための手段と、及び
この第１のしきい値に対する前記分散値の比較に基づいて前記２個の隣接ブロックが両方とも細分化されているかどうかを決定するための手段と、
を具備する請求項１０の装置。
【請求項１２】
前記２個の隣接ブロックが両方とも細分化されているかどうかを決定するための手段は、
前記ブロック・サイズ割当て値を取得するための手段と、及び
前記２個の隣接する値が細分化されているかどうかを決定するためにブロック・サイズ割当て値を使用するための手段と、
を具備する請求項１０の装置。
【請求項１３】
前記１個又はそれより多くの差異値を取得するための手段は、
前記２個の隣接ブロックの３個の端部画素間の差異値を取得するための手段を具備し、
及びここで、前記第２のデブロッキング・フィルタを選択するための手段は：
前記少なくとも２個の差異値が第２のしきい値より大きければ、ガウシアン・フィルタを使用するための手段を具備する請求項１０の装置。
【請求項１４】
前記ガウシアン・フィルタを使用するための手段は：
前記差異値が第２のしきい値より大きければ、２個の隣接ブロックの６個の端部画素に６点ガウシアン・フィルタを使用するための手段を具備する請求項１３の装置。
【請求項１５】
前記ガウシアン・フィルタを使用するための手段は：
前記差異値の２個が第２のしきい値より大きければ、前記２個の隣接ブロックの４個の端部画素に４点ガウシアン・フィルタを使用するための手段を具備する請求項１３の装置。
【請求項１６】
前記第２のデブロッキング・フィルタを選択するための手段は、
前記差異値の１個が第２のしきい値より大きければ、前記２個の隣接ブロックの２個の端部画素に平均化フィルタを使用するための手段をさらに具備する請求項１３の装置。
【請求項１７】
ブロック・ベース圧縮を使用して圧縮された画像を処理するためのプログラムが記録された記録媒体において、前記プログラムは、コンピュータによって実行され、
２個の画素ブロックが隣接ブロックであるかどうかを決定し、
この２個のブロックが隣接ブロックであると決定されるのであれば、この２個の隣接ブロックが両方とも細分化されているかどうかを決定し、
前記２個の隣接ブロックの少なくとも１つが細分化されていないと決定された後に、この２個の隣接ブロックの１個又はそれより多くの端部画素にデブロッキング・フィルタリングを実行し、
前記２個の隣接ブロックの少なくとも１つのみが細分化されているのであれば、この２個の隣接ブロックの１個又はそれより多くの端部画素に第１のデブロッキング・フィルタを使用し、
前記２個の隣接ブロックのどちらも細分化されていないのであれば、この２個の隣接ブロックの１個又はそれより多くの端部画素の１個又はそれより多くの差異値を取得し、
この１個又はそれより多くの差異値を第２のしきい値と比較し、及び
前記第２のしきい値に対する前記１個又はそれより多くの差異値の比較に基づいて第２のデブロッキング・フィルタを選択する記録媒体。
【請求項１８】
前記２個の隣接ブロックが両方とも細分化されているかどうかを決定することは：
前記２個の隣接ブロックの各々の分散値を取得し、
分散値を第１のしきい値と比較し、及び
この第１のしきい値に対する前記分散値の比較に基づいて前記２個の隣接ブロックが両方とも細分化されているかどうかを決定すること、
を具備する請求項１７の記録媒体。
【請求項１９】
前記２個の隣接ブロックが両方とも細分化されているかどうかを決定することは、
前記ブロック・サイズ割当て値を取得し、及び
前記２個の隣接する値が細分化されているかどうかを決定するためのブロック・サイズ割当て値を使用すること、
を具備する請求項１７の記録媒体。
【請求項２０】
前記１個又はそれより多くの差異値を取得することは：
前記２個の隣接ブロックの３個の端部画素間の差異値を取得することを具備し、及び
前記第２のデブロッキング・フィルタを選択することは、
前記少なくとも２個の差異値が前記第２のしきい値より大きければ、ガウシアン・フィルタを使用すること
を具備する請求項１７の記録媒体。
【請求項２１】
前記ガウシアン・フィルタを使用することは：
差異値が第２のしきい値より大きければ、２個の隣接ブロックの６個の端部画素に６点ガウシアン・フィルタを使用すること
を具備する請求項２０の記録媒体。
【請求項２２】
前記ガウシアン・フィルタを使用することは：
前記差異値の２個が第２のしきい値より大きければ、２個の隣接ブロックの４個の端部画素に４点ガウシアン・フィルタを使用すること
を具備する請求項２０の記録媒体。
【請求項２３】
前記第２のデブロッキング・フィルタを選択することは：
前記差異値の１個が第２のしきい値より大きければ、２個の隣接ブロックの２個の端部画素に平均化フィルタを使用することをさらに具備する請求項２０の記録媒体。
【請求項２４】
２個のブロックが隣接ブロックであるかどうかを決定し、及びこの２個のブロックが隣接ブロックであると決定されるのであれば、この２個の隣接ブロックが細分化されているかどうかを決定するプロセッサと、
前記２個の隣接ブロックの少なくとも１個が細分化されていないと決定された後に、前記２個の隣接ブロックの１個又はそれより多くの端部画素をフィルタする第１のデブロッキング・フィルタと、
前記２個の隣接ブロックのいずれもが細分化されていないと決定された後に、この２個の隣接ブロックの１個又はそれより多くの端部画素をフィルタする第２のデブロッキング・フィルタと、
を具備し、前記プロセッサが前記２個の隣接ブロックのどちらも細分化されていないのであれば、この２個の隣接ブロックの１個又はそれより多くの端部画素の１個又はそれより多くの差異値を取得し、この１個又はそれより多くの差異値を第２のしきい値と比較し、及び前記第２のしきい値に対する前記１個又はそれより多くの差異値の比較に基づいて第２のデブロッキング・フィルタを選択するブロック・ベース圧縮を使用して圧縮された画像を処理する装置。
【請求項２５】
プロセッサは、２個の隣接ブロックがブロック・サイズ割当て情報を使用して分割されるかどうかを決定する、請求項２４の装置。
【請求項２６】
プロセッサは、２個の隣接ブロックが各ブロックの分散値に基づいて分割されるかどうかを決定する、請求項２４の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本特許出願は、米国特許仮出願番号６０／４５６，０３０号、名称“低ビット・レート・ビデオのビデオ品質を改善するための方法及び装置”、２００３年３月１７日出願、に優先権を主張し、本出願は、この譲受人に譲渡され、特にここに引用文献として取り込まれる。
【０００２】
本発明は、一般にデータ圧縮に係り、特にブロック・ベース圧縮システムに関する。
【背景技術】
【０００３】
変換コーディングは、処理するために画像をサブ画像又はブロックに分割する一般的な画像圧縮技術である。ブロック・ベース圧縮は、ブロックが別々にコード化されるため、複数のブロック境界の間にアーチファクト（artifacts）を導入する。それゆえに、変換は、ブロック境界の間の相互関係を考慮に入れていない。したがって、この技術は、大きく圧縮されるが、結果として、ブロッキング、リンギング及び動きのスメアのようなひどい圧縮アーチファクトを含む低ビット・レート画像になる。
【０００４】
その結果、デブロッキングするために複数の事後処理アルゴリズムが、圧縮アーチファクトを削減する及び／又は排除するために提案されてきている。しかしながら、多くは、複雑なコンピュータ演算を含み、そして出力画像上に全体にぼやけた効果をもたらす可能性がある。その他のブロッキング・フィルタは、端部情報を効果的に保護しないし、一般的にハードウェアにおいて実施するためには複雑である。したがって、より単純な及び／又は効果的なデブロッキング・プロセスに関するニーズがある。
【発明の開示】
【０００５】
［サマリー］
ブロック・ベース圧縮を使用して圧縮された画像を処理するための方法及び装置は、２個のブロックが、隣接ブロックであるかどうかを決定すること；２個の隣接ブロックが両方とも細分化されているかどうかを決定すること；２個の隣接ブロックの両方が細分化されていないと決定されるのであれば、２個の隣接ブロックの１個又はそれより多くの端部画素にデブロッキング・フィルタを実行すること、を具備することができる。２個の隣接ブロックが両方とも細分化されているかどうかを決定することは、２個の隣接ブロックの各々の分散値を取得すること；分散値を第１のしきい値と比較すること；及び第１のしきい値に対する分散値の比較に基づいて２個の隣接ブロックが細分化されているかどうかを決定すること、を具備することができる。あるいは、２個の隣接ブロックが両方とも細分化されているかどうかを決定することは、そのうえ、ブロック・サイズ割当て値を取得すること；及び２個の隣接する値が細分化されているかどうかを決定するためにブロック・サイズ割当て値を使用することも、を具備することができる。
【０００６】
方法及び装置は、２個の隣接ブロックの両方が細分化されていないのであれば、２個の隣接ブロックの１個が細分化されているかどうかを決定すること；２個の隣接ブロックの１個が細分化されているのであれば、２個の隣接ブロックの１個又はそれより多くの端部画素に第１のデブロッキング・フィルタを使用すること；及び２個の隣接ブロックのどちらも細分化されていないのであれば、２個の隣接ブロックの１個又はそれより多くの端部画素に第２のデブロッキング・フィルタを使用すること、をさらに具備することができる。
【０００７】
本方法及び装置は、２個の隣接ブロックのどちらも細分化されていないのであれば、２個の隣接ブロックの１個又はそれより多くの端部画素の１個又はそれより多くの差異値を取得すること；１個又はそれより多くの差異値を第２のしきい値と比較すること；及び第２のしきい値に対する１個又はそれより多くの差異値の比較に基づいて第２のデブロッキング・フィルタを選択すること、をさらに具備することができる。
【０００８】
１個又はそれより多くの差異値を取得することは、２個の隣接ブロックの３個の端部画素間の差異値を取得することを、具備することができ；及び第２のデブロッキング・フィルタを選択することは、少なくとも２個の差異値が第２のしきい値より大きければ、ガウシアン・フィルタを使用すること、を具備することができる。
【０００９】
［詳細な説明］
種々の実施形態が、添付した図面を参照して詳細に説明される。図面では、類似の参照符号は、類似の構成要素を示す。
【００１０】
ブロック・ベースの離散型余弦変換（Discrete Cosine Transform）（ＤＣＴ）を使用する圧縮システムにおいて、データ・ストリームは、画素ブロックに分割され、そして離散型余弦変換される。この変換が、ブロック境界間の相互関係を考慮していないため、及び各ブロックが別々にコード化されるために、このブロック・ベースの処理は、複数のブロック境界の間にブロッキング・アーチファクトを導入する。
【００１１】
一般的に、ＤＣＴを使用する圧縮システムにおいて、各データ・ブロックのサイズは、固定である。しかしながら、エンコードされたＤＣＴ係数データの適応できる大きさに分割されたブロック及びサブブロックを利用して画像信号の品質を保存しつつ、著しい圧縮を提供することができるダイナミックな画像圧縮技術がある。そのような技術は、可変ブロック・サイズＤＣＴと呼ばれる。可変ブロック・サイズＤＣＴの一例は、米国特許番号５，０２１，８９１、名称“適応ブロック・サイズ画像圧縮方法及びシステム”に開示された、適応ブロック・サイズ離散型余弦変換（adaptive block size discrete cosine transform）（ＡＢＳＤＣＴ）である。ＤＣＴ技術は、しかも、米国特許番号５，１０７，３４５、名称“適応ブロック・サイズ画像圧縮方法及びシステム”にも開示され、そして、離散型カドツリー変換（Discrete Quadtree Transform）技術と組み合わせるＡＢＳＤＣＴ技術の使用は、米国特許番号５，４５２，１０４、名称“適応ブロック・サイズ画像圧縮方法及びシステム”に論じられている。適応ブロック・サイズは、画像データのフレーム内の情報に対して存在する冗長性を活用するために選択される。ＡＢＳＤＣＴは、より詳細に後で説明される。
【００１２】
下記に説明される実施形態は、ブロック・ベースＤＣＴを使用する圧縮システムにおいて容易に実施されることができる単純で効果的なデブロッキング・プロセスを可能にすることによりアーチファクトを削減する。本実施形態は、可変ブロック・サイズＤＣＴにおいて特に効果的である。
【００１３】
下記の説明において、明確な詳細が、実施形態の完全な理解を提供するために与えられる。しかしながら、本実施形態がこれらの明確な詳細なしで実行されることができることは、当業者により理解されるはずである。例えば、不必要な詳細で実施形態を不明確にしないために、回路は、ブロック図で示されることができる。その他の例では、周知の回路、構造及び技術が、本実施形態を不明確にしないために詳細に示されることができる。
【００１４】
実施形態が、フローチャート、フロー図、構造図、又はブロック図として図示されたプロセスとして説明されることができることも、注目される。フローチャートは、一連のプロセスとして操作（operation）を説明できるが、操作の多くは、並行に又は同時に実行されることができる。その上に、操作の順序は、順番を入れ替えることができる。プロセスは、その操作が完了したときに終了する。プロセスは、方法、命令（function）、手順、サブルーチン、サブプログラム、等に対応することがある。プロセスが命令に対応する場合に、その終了は、呼び出し命令又は主命令に命令が戻ることに対応する。
【００１５】
図１は、画像コンプレッサ１００の一例を示し、図２は、画像コンプレッサ１００に対して対称的である、画像デコンプレッサ２００の一例を示す。画像コンプレッサ１００は、可変ブロック・サイズＤＣＴ（variable block size DCT）（ＶＢＳＤＣＴ）モジュール１１０、量子化モジュール１２０及び可変長コーディング（variable length coding）（ＶＬＣ）モジュール１３０を具備する。画像デコンプレッサ２００は、可変長デコーディング（variable length decoding）（ＶＬＤ）モジュール２１０、逆量子化モジュール２２０及び逆ＶＢＳＤＣＴモジュール２３０を具備する。画像デコンプレッサ２００は、さらに、必要な場合に複数のブロック端部をフィルタするためのデブロッキング・フィルタ・モジュール２４０及びデブロッキング・フィルタ・モジュール２４０を制御するためのプロセッサ２５０を具備する。
【００１６】
一般的に、画像コンプレッサ１００へ入力されたデータ・ストリームは、複数の画像フレームから構成される。画像フレームは、一般にスライスに分割されることができ、スライスは、データ・ブロックに分割されることができ、そしてデータ・ブロックは、画像の最小単位である画素に分割されることができる。各画像フレームは、整数の数のスライスを含み、各画像スライスは、ｎ個の連続したスキャン・ライン、例えば、１６の連続したスキャン・ラインのような、セットに関する画像情報を表す。そのような場合には、各データ・ブロックは、画像のフレーム全体にわたる１６×１６画素ブロックに対応する。しかも、フレームは、偶数と奇数スライスに分離されることができ、これにより偶数ハーフ・フレーム及び奇数ハーフ・フレームを形成する。さらに、画像画素は、一般的に、赤、緑、及び青（ＲＧＢ）色成分システムで表されることができる。しかしながら、人間の目が輝度の変化により敏感であり、クロミナンスの変化に鈍感であるため、ＹＣｂＣｒ色空間は、画像画素を表すためにビデオ圧縮において一般的に使用される。ＹＣｂＣｒ色空間は、ＲＧＢ成分の線形変換であり、ここで、Ｙは、クロミナンス成分であり、そしてＣｂ及びＣｒは、色成分である。フレームが偶数／奇数フレームに分離されるならば、画像フレームは、Ｙ，Ｃｂ及びＣｒに対応する３個の偶数ハーフ・フレームと３個の奇数ハーフ・フレームから形成されるはずである。
【００１７】
上記の説明では、スライスは、１６の連続したスキャン・ライン以外の連続したスキャン・ラインのセットを表すことが可能である。しかも、ブロックが細分化されることができるのであれば、データ・ブロックは、ｎ×ｍブロックであることができ、ここで、ｎはｍに等しくない。さらに、同数の又は異なる数の色成分を用いた異なる色空間が、画像画素を表すために使用されることができる。しかしながら、１６×１６画素のブロック・サイズ及びＹＣｂＣｒ色空間が、説明の目的のために下記に使用される。
【００１８】
図１に戻って参照して、ＶＢＳＤＣＴモジュール１１０は、ディジタル画像情報を空間ドメインから周波数ドメインへ変換し、対応するブロック・サイズ割当て（block size assignment）（ＢＳＡ）情報を有するＤＣＴ係数を発生する。ＶＢＳＤＣＴモジュール１１０は、必要に応じてブロック中の及びサブブロック中のディジタル画像情報を分割し、処理する。図３は、ブロックが細分化されるかどうかを決定するための１つのプロセス３００を示す。プロセス３００において、ＤＣＴブロックの分散値が取得される（３１０）。分散は、その後、ブロックのサイズに対して設定されたしきい値ＴＢＳと比較される（３２０）。しきい値ＴＢＳに対する分散値の比較に基づいて、ブロックが細分化されるかどうかの決定がなされる。すなわち、もし、分散値がＴＢＳより大きければ、ブロックは細分化される（３３０及び３４０）。そうでなければ、ブロックは、細分化されない（３５０）。ここで、類似のプロセスが、サブブロックが細分化されるかどうかを決定するためにサブブロックに使用されることができる。そのような場合には、分散は、サブブロックのサイズに対して設定されたしきい値と比較されるはずである。
【００１９】
ブロックが分割されるならば、ＢＳＡ情報は、ブロックがどのようにして細分化されるかを指示する。例えば、ＢＳＡ情報は、１６×１６ブロックが、図４（ａ）のように４個の８×８ブロックに細分化される、又はおそらく図４（ｂ）のように８×８ブロックが４個の４×４ブロックに細分化されることを指示できる。他のシステムでは、ＢＳＡ情報は、図４（ｃ）に示されたように、１６×１６ブロックが４個の８×８ブロックに細分化されることを指示できる。示されたように、システム構成及び／又は必要性に基づいて、図４（ｃ）の８×８ブロックの１個は、４個の４×４ブロックに細分化され、これも図４（ｃ）に示されたように４個の２×２ブロックにさらに細分化される。量子化モジュール１２０は、それから、ＤＣＴ係数を量子化し、ＶＬＣ１３０は、可変長コーディング技術を使用して量子化されたＤＣＴ係数を圧縮する。
【００２０】
画像デコンプレッサ２００では、ＶＬＤモジュール２１０は、圧縮された画像をデコンプレスし、量子化モジュール２２０は、デコンプレスされた画像情報を逆量子化し、逆ＶＢＳＤＣＴモジュール２３０は、ブロック・サイズ割当て情報を使用して、逆量子化された画像情報を周波数ドメインから空間ドメインに変換する。プロセッサ２５０は、画像の２個のブロックが図５に示されたように隣接ブロックであるかどうかを決定する。プロセッサ２５０は、それから、ブロック端の活性度（activity）又は繁忙度（busyness）の量に基づいて、デブロッキングが２個の隣接ブロックに対して必要であるかどうかを決定する。もし、デブロッキングが必要であると思われるならば、２個の隣接ブロックの１個又はそれより多くの共通端部画素は、デブロッキング・フィルタ・モジュール２４０によってフィルタされる。後処理された画像情報は、それからディスプレイに出力される及び／又は発表のために記憶される。
【００２１】
図６は、ブロック・ベース圧縮を使用して圧縮された画像を処理するための１つのプロセス６００を示す。プロセス６００では、２個の隣接ブロックが両方とも細分化されているどうかの、決定がなされる（６１０）。ここでは、ＢＳＡ情報が、２個の隣接ブロックが細分化されているどうかを決定するために使用されることができる。もし、２個の隣接ブロックの両方が細分化されていないならば、デブロッキング・フィルタが、２個の隣接ブロックの１個又はそれより多くの端部画素に使用される。
【００２２】
図７は、ブロック・ベース圧縮を使用して圧縮された画像を処理するための他の１つのプロセス７００を示す。プロセス７００では、２個の隣接ブロックが両方とも細分化されているかどうかの、決定がなされる（７１０）。もし、２個の隣接ブロックが両方とも細分化されていると決定されるならば、デブロッキング・フィルタは、使用されない。しかしながら、２個の隣接ブロックの両方が細分化されていないのであれば、すなわち、２個の隣接ブロックの少なくとも１個が細分化されていないのであれば、２個の隣接ブロックの１個が細分化されているかどうかの、さらなる決定がなされる（７２０）。もし、２個の隣接ブロックの１個が細分化されているのであれば、第１のデブロッキング・フィルタが、２個の隣接ブロックの１個又はそれより多くの画素に使用される（７３０）。ここで、第１のデブロッキング・フィルタは、２個の隣接ブロックの２個の端部画素に使用される２点平均化フィルタであることがある。もし、２個の隣接ブロックのいずれもが細分化されていないのであれば、第２のデブロッキング・フィルタが、２個の隣接ブロックの１個又はそれより多くの画素に使用される。
【００２３】
より詳しくは、２個の隣接ブロックの１個又はそれより多くの対応する端部画素間の差異値が、取得される（７４０）。差異値は、ブロック境界を横切る分散を表し、様々な技術を使用して取得される及び／又は導出されることができる。２個の隣接ブロックの２個の対応する端部画素間の単純な１次差異が、取得される。他の実施形態では、２次差異が所得され、使用されることができる。１個又はそれより多くの差異値は、しきい値ＴＤと比較される（７５０）。しきい値ＴＤに対する１個又はそれより多くの差異値の比較に基づいて、第２のデブロッキング・フィルタが選択される（７６０）。
【００２４】
しきい値ＴＤは、一般に、輝度に依存し、画像の異なるタイプ及び／又は異なるシステムに対する時間に先行して設定されることができる。１つの実施形態では、２個の隣接ブロックの平均値の平均は、しきい値ＴＤとして使用されることができる。あるいは、しきい値ＴＤは、２個の隣接ブロックの平均値の差であることがある。しきい値ＴＤは、しかも、スケール係数αを使用して画像の強度変動に関して最適化されることができる。スケール係数αは、下記に定義されるコントラスト比に比例する。ここで、μｃは、現在のブロックの平均値であり、μｎは、差異値を取得することにおいて使用した端部画素を含むブロックの平均値である。
【００２５】
α＝（｜μｃ−μｎ｜）／μｃ
αの値は、０から１の範囲である。
【００２６】
さらに、１つの実施形態では、２個の隣接ブロックの３個の端部画素間の差異値が、取得され、しきい値ＴＤと比較される。もし、差異値の少なくとも２個がしきい値ＴＤより大きければ、ガウシアン・フィルタが選択される。すなわち、３個の差異値の３個がＴＤより大きければ、６点ガウシアン・フィルタが、２個の隣接ブロックの６個の端部画素に使用される。３個の差異値のうち２個がＴＤより大きければ、４点ガウシアン・フィルタが、２個の隣接ブロックの４個の端部画素に使用される。３個の差異値のうち１個がＴＤより大きければ、平均化フィルタが、２個の隣接ブロックの２個の端部画素に使用される。
【００２７】
図２に戻って参照して、プロセッサ２５０は、これによって、デブロッキングが必要であるかどうかを決定できる。上に説明したように、プロセッサ２５０は、しかも、隣接ブロックの特性に応じて異なるデブロッキング・フィルタを、システムが認めるように、選択できる。そのために、デブロッキング・フィルタ・モジュール２４０は、１個又はそれより多くのタイプのフィルタを具備でき、例えば、平均化フィルタ及び／又はガウシアン・フィルタであるが、これらに限定されることはない。
【００２８】
さらに、上に説明したように、ＶＢＳＤＣＴモジュール１１０は、ＡＢＳＤＣＴにより与えられることができる。ＡＢＳＤＣＴを使用する圧縮技術は、１６×１６画素を使用して次に説明される。一般に、輝度成分及びクロミナンス成分の各々は、ブロック・インターリーバ（図示されず）に渡される。１つの実施形態では、図８（ａ）から（ｄ）に示されたように、１６×１６ブロックが、ブロック・インターリーバに与えられる。ブロック・インターリーバは、ブロック及びＤＣＴ解析のためにデータの合成サブブロックを形成するために、１６×１６ブロックの内部の画像サンプルを順番に並べる。１個の１６×１６ＤＣＴは、１次配列に適用され、４個の８×８ＤＣＴは、２次配列に適用され、１６個の４×４ＤＣＴは、３次配列に適用され、６４個の２×２ＤＣＴは、４次配列に適用される。ＤＣＴ操作は、画像ソース中に内在する空間冗長性を削減する。ＤＣＴが実行された後で、画像信号エネルギーの大部分は、数個のＤＣＴ係数に集中される傾向がある。
【００２９】
１６×１６ブロック及び各サブブロックに対して、変換された係数が解析されて、ブロック又はサブブロックをエンコードするために必要なビット数を決定する。それから、エンコードするために最小のビット数を必要とするブロック又はサブブロックの組み合わせが、画像セグメントを表すために選択される。例えば、２個の８×８サブブロック、６個の４×４サブブロック、及び８個の２×２サブブロックが、画像セグメントを表すために選択されることができる。選択されたブロック又はサブブロックの組み合わせは、それから順番に適切に配置される。
【００３０】
変換された係数が解析されて、画像セグメントを表すためにブロック又はサブブロックの組み合わせが選択される。そのようにして、ｎ×ｎブロック内のブロック・サイズ割当てを表すブロック・サイズ割当て情報が、発生される。１６×１６データ・ブロックに関して、ＡＢＳＤＣＴ技術は、１６×１６ブロックの内部でブロック・サイズ割当てを表すＰＱＲ情報として知られるデータを発生する。ＰＱＲ情報は、可変ビット幅データであり、１６×１６ブロックのどの範囲までが細分化されるかを記述する。ＰＱＲフィールドのうちのＲビットは、１６×１６ブロックが４個の８×８ブロックに細分化されるかどうかを表す。図９（ａ）に示されたように、もし、Ｒビットが‘０’であるならば、ブロックは、全体のまま残る。この場合には、それ以上のＰＱＲ情報は必要なく、ＰＱＲフィールドは、１ビット長だけである。Ｒビットが‘１’であるならば、図９（ｂ）に示されたように、１６×１６ブロックは、４個の８×８ブロックに細分化され、そして少なくとも４ビットの追加ビットが、ＰＱＲフィールド内に存在する。
【００３１】
追加の４ビットは、‘Ｑ’情報として呼ばれる。Ｑの各ビットは、１個の８×８ブロックを４個の４×４ブロックに細分化することを表示する。設定されたＱの各ビットに関して、‘Ｐ’の４個の別のビットが、４×４ブロックのどれかが２×２に細分化されるかを指示するために、存在する。したがって、１６×１６ブロック内部のブロック・サイズ割当てに依存して、ＰＱＲデータの長さは、１から２１ビット長であることが可能である。もし、各８×８ブロックが細分化されるのであれば、ＰＱＲ情報は、長さが２１ビットである。図１０（ａ）から（ｄ）は、対応するＰＱＲデータとともに１６×１６ブロックの複数の例を示す。
【００３２】
したがって、各ブロックは、割り当て基準に応じて８×８、４×４、及び又は２×２のサイズのサブブロックに分割されることができる。ｎ×ｎブロックを細分化するための基準は、下記のブロック分散である。  
【数１】
0004546461.tif 000002
【００３３】
画素のｎ×ｎブロックは、ｎ×ｎブロックのブロック分散が基準しきい値を超えるならば、４個の（ｎ／２）×（ｎ／２）サブブロックに細分化されるはずである。ここで、ブロック平均は、１０ビット画像に対して範囲（０，１０２３）の値を持つことが可能である。そのようにして、画像は、１２ビンに分割され、しきい値のセットは、各色成分に関する各ビンに対して使用される。しかも、しきい値は、異なるタイプの複数の画像フレームから集められた統計に基づいて決定されることができる。代表的なしきい値のセットが、図１２（ａ）から（ｃ）に示される。
【００３４】
図１１は、１６×１６ブロックが示されるためにＰＱＲ情報を発生させるための一例のプロセス１１００を図示する。各ブロックに対して、平均値及び分散Ｖ１６が取得される（１１１０）。分散Ｖ１６は、対応する平均値に関する適切なしきい値Ｔ１６と比較される（１１１５）。分散Ｖ１６がしきい値Ｔ１６より大きくないのであれば、ＰＱＲデータのＲ値は、０に設定され、プロセスは終了する（１１２０）。それ以外は、Ｒ値は、１に設定される（１１２５）。分散Ｖ８（ｉ）、｛ｉ＝１から４｝が、次に、図９（ｂ）に示されたように４個の８×８サブブロック０から３の各々に対して取得され、そして各分散Ｖ８（ｉ）は、適切なしきい値Ｔ１６と比較されて、ＰＱＲデータに対するＱ値を決定する（１１３０から１１４０）。もし、分散Ｖ８（ｉ）がしきい値Ｔ８より大きくないのであれば、対応するＱ（ｉ）は、０に設定される（１１４５）。それ以外は、Ｑ（ｉ）値は、１に設定される（１１５０）。分散Ｖ４（ｊ），｛ｊ＝１から４｝は、その後、そのブロックに対してＱ（ｉ）が１に設定されている各８×８ブロックの４個のサブブロックの各々に対して取得され、各分散Ｖ４（ｊ）は、適切なしきい値Ｔ４と比較されて、ＰＱＲデータに対するＰ値を決定する（１１５５から１１６５）。分散Ｖ４（ｊ）がしきい値Ｔ４より大きくないのであれば、対応するＱ（ｊ）は、０に設定される（１１７０）。それ以外は、Ｑ（ｊ）値は、１に設定される（１１７５）。
【００３５】
そのようにして、ＰＱＲ情報は、発生されることができ、画像デコンプレッサ２００のような画像デコンプレッサにおいてデブロッキングするために使用されることができる。ＰＱＲ情報は、画像中の端部の内容を決定するために使用される。ブロック中の端部情報が多くなるほど、ブロック・サイズはより小さくなり、ＰＱＲコードはより長くなる。図１４は、ＡＢＳＤＣＴを使用して圧縮された画像を処理するための一例のプロセス１４００を示し、図１５は、プロセス１４００において使用される変数の定義を示す。
【００３６】
デブロッキング・フィルタが２個の隣接ブロックに対して使用されるべきかどうかを決定する場合に、ＰＱＲ情報が、各ブロックに対して取得される（１４１０）。もし、両方のＰＱＲビットが５ビットより大きければ（１４１５）、プロセスは終了する。すなわち、両方のブロックは、細分化されるように決定され、そして十分な端部情報を含むように判断される。それ以外は、複数のＰＱＲビットのうちの１個が５ビットより大きければ、２点平均化フィルタが、｛ｘ１，ｙ１｝に使用される（１４２０及び１４２５）。ＰＱＲビットのいずれもが５ビットより大きくないのであれば、差異値ｄ１、ｄ２及びｄ３が取得される（１４３０）。もし、ｄ１、ｄ２及びｄ３がしきい値ＴＤより大きければ、６点ガウシアン・フィルタが｛ｘ１，ｘ２，ｘ３，ｙ１，ｙ２，ｙ３｝に使用される（１４３５及び１４４０）。もし、ｄ１及びｄ２がしきい値ＴＤより大きければ、４点ガウシアン・フィルタが｛ｘ１，ｘ２，ｙ１，ｙ２｝に使用される（１４４５及び１４５０）。もし、ｄ１がしきい値ＴＤより大きければ、２点平均化フィルタが、｛ｘ１，ｙ１｝に使用される（１４５５及び１４６０）。
【００３７】
プロセス１４００では、本実施形態は、平均化フィルタ及び／又はガウシアン・フィルタに限定されない。平均化フィルタ及び／又はガウシアン・フィルタ以外の各種のフィルタが、使用されることができる。
【００３８】
示されたように、デブロッキング・フィルタ・モジュールは、デコンプレッサに容易に与えられることが可能である。したがって、アーチファクトは、著しく弱められることができ、画像の視覚品質は、改善される。デブロッキング・フィルタ・モジュール２４０が逆ＶＢＳＤＣＴモジュール２３０及びプロセッサ２５０から分離して与えられるように示されているが、デブロッキング・フィルタ・モジュール２４０、逆ＶＢＳＤＣＴモジュール２３０及びプロセッサ２５０の１個又は組み合わせが、一緒に与えられることができることに、注意する。
【００３９】
しかも、本実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、又はこれらのいずれかの組み合わせにより実施されることができる。ソフトウェア、ファームウェア、ミドルウェア又はマイクロコードにおいて実施される場合に、本実施形態の要素は、必要なタスクを実行するためのプログラム・コード又はコード・セグメントであり、機械読み取り可能な媒体（図示されず）中に記憶されることが可能である。コード・セグメントは、手順、命令、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェア・パッケージ、クラス、若しくは指示、データ構造、又はプログラム文の任意の組み合わせを表すことができる。コード・セグメントは、情報、データ、独立変数（arguments）、パラメータ、又はメモリの内容を渡すこと及び／又は受信することにより他の１つのコード・セグメント又はハードウェア回路と接続されることができる。情報、独立変数、パラメータ、データ、等は、メモリ共有、メッセージの通過、トークンの通過、ネットワーク送信、等を含む任意の好適な手段を介して渡される、転送される、又は送信されることができる。しかも、機械読み取り可能な媒体は、コンピュータ・システムにおいて使用するための製造の物品で与えられることができ、その中に組み込まれた機械読み取り可能なコード手段を有することができる。
【００４０】
付け加えると、本実施形態は、可変ブロック・サイズＤＣＴを使用して説明されてきているが、上に説明されたようにデブロッキング技術は、しかも、固定ブロック・サイズを用いるＤＣＴにおいて実施されることも可能である。そのような場合には、ＢＳＡ情報は、発生されるはずであるが、実際のＤＣＴに対して使用されないはずである。その代わりに、ＢＳＡ情報は、デブロッキングが２個の隣接ブロックに対して必要であるかどうかを決定するために、画像デコンプレッサにおいて使用されるはずである。
【００４１】
前述の実施形態は、単なる例であり、本発明を制限するように解釈されるべきではないことが、注意されるべきである。本実施形態の記述は、解説することを目的とし、特許請求範囲を制限することを意図していない。それなりに、本教示は、その他のタイプの装置に容易に適用されることができ、複数の代案、変更、及び変形は、当業者にとって明白である。
【図面の簡単な説明】
【００４２】
【図１】図１は、画像コンプレッサの一例である。
【図２】図２は、画像デコンプレッサの一例である。
【図３】図３は、ブロックが細分化されるかどうかを決定するための処理の一例である。
【図４】図４（ａ）から（ｄ）は、ブロック細分化の例を示す。
【図５】図５は、画像中の２個の隣接ブロックの一例を示す。
【図６】図６は、デブロッキング・フィルタを使用するかどうかを決定するための処理の一例である。
【図７】図７は、デブロッキング・フィルタを使用するかどうかを決定するための処理の他の一例である。
【図８】図８（ａ）から（ｄ）は、１６×１６ブロックに関するＡＢＳＤＣＴの配列を示す。
【図９】図９（ａ）及び（ｂ）は、ブロック・サイズ割当てデータの例を示す。
【図１０】図１０（ａ）及び（ｂ）は、ブロック・サイズ割当てデータのさらに別の例である。
【図１１】図１１は、ＡＢＳＤＣＴに関するブロック・サイズ割当てデータを発生させるための一例のプロセスを示す。
【図１２】図１２は、種々の分散しきい値を示す表である。
【図１３】図１３は、複数の変数の定義を示す。
【図１４】図１４は、ＡＢＳＤＣＴを使用するシステムにおいてデブロッキング・フィルタを使用するかどうかを決定するための一例のプロセスを示す。
【符号の説明】
【００４３】
１００…画像コンプレッサ，２００…画像デコンプレッサ，３００…ディジタル画像情報を分割し、処理するプロセス，６００…ブロック・ベース圧縮を使用して圧縮した画像に対する１つのプロセス，７００…ブロック・ベース圧縮を使用して圧縮された画像を処理するための他の１つのプロセス，１１００…１６×１６ブロックに対するＰＱＲ情報を発生させるための一例のプロセス，１４００…ＡＢＳＤＣＴを使用して圧縮された画像を処理するための一例のプロセス。
【図１】
0004546461.tif 000003
【図２】
0004546461.tif 000004
【図３】
0004546461.tif 000005
【図４】
0004546461.tif 000006
【図５】
0004546461.tif 000007
【図６】
0004546461.tif 000008
【図７】
0004546461.tif 000009
【図８】
0004546461.tif 000010
【図９】
0004546461.tif 000011
【図１０】
0004546461.tif 000012
【図１１】
0004546461.tif 000013
【図１２】
0004546461.tif 000014
【図１３】
0004546461.tif 000015
【図１４】
0004546461.tif 000016