(57)【要約】【課題】画像の透明度データを高い効率で圧縮しつつ、伸張処理の高速化を図る。【解決手段】連結ブロック判定部５によって連結ブロックと判定されたブロックに関して、中間符号生成部７は、連結ブロックと判定されたブロックに関して、少なくとも、連結ブロックであることを示す符号と、スキャン方向の開始位置の透明度データであるスキャン開始値と、スキャン開始値が属するラインにおけるスキャン開始値のランを特定するデータと、隣接したライン間におけるスキャン開始値のランの差分を特定するデータとを中間符号として生成する。データ圧縮部３は、中間符号に対して、可変長符号化処理を施すことによって、透明度データの圧縮データを生成する。【選択図】図１
2008227934.tif 000002
【特許請求の範囲】
【請求項１】
画像の透明度データをブロック単位で圧縮する画像圧縮装置において、
特定のスキャン方向に沿って並んだ複数のラインにブロックを分割した際、それぞれのラインに属する透明度データの変化パターンがすべてのラインで共通するブロックを連結ブロックと判定する第１のブロック判定部と、
前記第１のブロック判定部によって前記連結ブロックと判定されたブロックに関して、少なくとも、前記連結ブロックであることを示す符号と、前記スキャン方向の開始位置の透明度データであるスキャン開始値と、前記スキャン開始値が属するラインにおける前記スキャン開始値のランを特定するデータと、隣接したライン間における前記スキャン開始値のランの差分を特定するデータとを中間符号として生成する中間符号生成部と、
前記中間符号生成部によって生成された前記中間符号に対して、可変長符号化処理を施すことによって、透明度データの圧縮データを生成するデータ圧縮部と
を有することを特徴とする画像圧縮装置。
【請求項２】
前記第１のブロック判定部は、前記スキャン方向として、横方向に延在するラインを順方向でスキャンする横順方向、横方向に延在するラインを逆方向でスキャンする横逆方向、縦方向に延在するラインを順方向でスキャンする縦順方向、および、縦方向に延在するラインを逆方向でスキャンする縦逆方向のそれぞれについて、前記連結ブロックのタイプ判定を行い、
前記中間符号生成部は、前記連結ブロックの前記スキャン方向を示す符号を前記中間符号として生成することを特徴とする請求項１に記載された画像圧縮装置。
【請求項３】
前記第２のブロック判定部は、前記連結ブロックと判定された前記スキャン方向が複数存在する場合、当該ブロック内における変動予測誤差の絶対値総和が最も小さいいずれかの前記スキャン方向を選択することを特徴とする請求項２に記載された画像圧縮装置。
【請求項４】
前記第２のブロック判定部は、最大値と最小値とを除く中間値を同一値と見なした場合、前記スキャン開始値の最小値から前記スキャン方向に向かって単調増加する変化パターンを有するブロック、または、前記スキャン開始値の最大値から前記スキャン方向に向かって単調減少する変化パターンを有するブロックを前記連結ブロックと判定することを特徴とする請求項１から３のいずれかに記載された画像圧縮装置。
【請求項５】
前記中間符号生成部は、
最小値と最大値との２種類の透明度データによって構成された第１の連結ブロック、最小値および最大値の一方と中間値との２種類の透明度データによって構成された第２の連結ブロック、および、最小値と最大値と中間値との３種類の透明度データによって構成された第３の連結ブロックのいずれであるかを示す符号を前記中間符号として生成し、
前記第２の連結ブロックに関しては、各ラインにおける中間値の初期値と、各ラインにおける隣接した中間値の差分とを前記中間符号として生成し、
前記第３の連結ブロックに関しては、各ラインにおける中間値の初期値と、各ラインにおける隣接した中間値の差分を特定するデータと、各ラインにおける中間値のランを特定するデータとを前記中間符号として生成することを特徴とする請求項４に記載された画像圧縮装置。
【請求項６】
ブロック内の透明度データが最大値のみで構成されたブロックをオンブロックと判定し、ブロック内の透明度データが最小値のみで構成されたブロックをオフブロックと判定する第２のブロック判定部をさらに有し、
前記中間符号生成部は、前記第２のブロック判定部によって前記オンブロックと判定されたブロックに関しては、前記オンブロックであることを示す符号を前記中間符号として生成し、前記オフブロックと判定されたブロックに関しては、前記オフブロックであることを示す符号を前記中間符号として生成することを特徴とする請求項１から５のいずれかに記載された画像圧縮装置。
【請求項７】
前記第１のブロック判定部によって前記連結ブロックと判定されず、前記第２のブロック判定部によって前記オンブロックと判定されず、かつ、前記第２のブロック判定部によって前記オフブロックとも判定されなかったブロックを非連結ブロックと判定する第３のブロック判定部をさらに有し、
前記中間符号生成部は、前記第３のブロック判定部によって前記非連結ブロックと判定されたブロックに関しては、ブロックを複数のラインに分割することなくＺスキャン順に符号化することによって、前記中間符号を生成する特徴とする請求項６に記載された画像圧縮装置。
【請求項８】
画像の透明度データをブロック単位で圧縮する画像圧縮方法をコンピュータに実行させる画像圧縮プログラムにおいて、
特定のスキャン方向に沿って並んだ複数のラインにブロックを分割した際、それぞれのラインに属する透明度データの変化パターンがすべてのラインで共通するブロックを連結ブロックと判定するステップと、
前記連結ブロックと判定されたブロックに関して、少なくとも、前記連結ブロックであることを示す符号と、前記スキャン方向の開始位置の透明度データであるスキャン開始値と、前記スキャン開始値が属するラインにおける前記スキャン開始値のランを特定するデータと、隣接したライン間における前記スキャン開始値のランの差分を特定するデータとを中間符号として生成するステップと、
前記中間符号に対して、可変長符号化処理を施すことによって、透明度データの圧縮データを生成するステップと
を有する画像圧縮方法をコンピュータに実行させることを特徴とする画像圧縮プログラム。
【請求項９】
請求項１から７のいずれかに記載された前記画像圧縮装置によって生成された前記圧縮データ、または、請求項８に記載された前記画像圧縮プログラムをコンピュータに実行させることによって生成された前記圧縮データを伸張する画像伸張装置において、
前記画像伸張装置は、画像の輝度データを用いることなく、前記圧縮データのみに基づいて、前記透明度データを伸張することを特徴とする画像伸張装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像圧縮装置、画像圧縮プログラムおよび画像伸張装置に係り、特に、画像の透明度データ（α値）の圧縮・伸張に適した新規なコーディックに関する。
【背景技術】
【０００２】
例えば、ＪＰＥＧ（Joint Photographic Expert Group）に代表されるように、画像中に設定されたブロック単位でデータの符号化を行うブロック完結型の符号化方法が広く知られている。また、特許文献１には、圧縮効率の向上を図るべく、テキスト文字や自然画像が混在した入力画像を所定サイズのブロックに分割し、ブロックのタイプに応じた符号化方法をブロック単位で適用する圧縮方法が開示されている。具体的には、まず、処理対象となるブロックが、テキスト文字のみで構成されたテキスト文字ブロック、自然画像のみで構成された自然画像ブロック、および、テキスト文字と自然画像とが混在した混在ブロックという３つのタイプのいずれかに分類される。テキスト文字ブロックに関しては、ブロック内の２値化されたデータに対して、２次元ランレングス符号化（可変長符号化）が施される。自然画像ブロックに関しては、直交変換、ジグザクスキャン、量子化、可変長符号化といった流れで、ＪＰＥＧ同様の処理が行われる。また、混在ブロックに関しては、前値予測あるいは２次元予測により画素が予測され、その差分に対して可変長符号化が施される。また、特許文献２，３には、圧縮効率の一層の向上を図るべく、水平方向（主走査方向）のみならず垂直方向（副走査方向）も考慮して、隣接データの差分演算を行うランレングス符号化方法が開示されている。
【０００３】
一方、特許文献４には、輝度データと透明度データ（α値）との間の相関性に基づいて、透明度データを圧縮する方法が開示されている。具体的には、まず、画像データに含まれる各画素のＲＧＢデータがＹＵＶデータに変換される。つぎに、画像データに含まれる透明度データが検出される。そして、ＹＵＶデータが非可逆圧縮されるとともに、この圧縮されたＹＵＶデータの輝度成分を用いて、透明度データが符号化される。
【０００４】
【特許文献１】特開平７−１１１５９５号公報
【特許文献２】特開２００４−２００８０２号公報
【特許文献３】特開昭６４−７７１５号公報
【特許文献４】特開２００４ー１５９２６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した特許文献４に開示された透明度データの圧縮方法では、輝度データとの相関性を利用しているので、伸張処理の際にも輝度データを参照する必要がある。そのため、圧縮効率の向上が期待できる反面、伸張処理の負荷が増大するという問題があった。
【０００６】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、画像の透明度データを高い効率で圧縮しつつ、伸張処理の高速化を実現することができる新規なコーディックを提供することである。
【課題を解決するための手段】
【０００７】
かかる課題を解決するために、第１の発明は、画像の透明度データをブロック単位で圧縮する画像圧縮装置を提供する。この画像圧縮装置は、第１のブロック判定部と、中間符号生成部と、データ圧縮部とを有する。第１のブロック判定部は、特定のスキャン方向に沿って並んだ複数のラインにブロックを分割した際、それぞれのラインに属する透明度データの変化パターンがすべてのラインで共通するブロックを連結ブロックと判定する。中間符号生成部は、第１のブロック判定部によって連結ブロックと判定されたブロックに関して、少なくとも、連結ブロックであることを示す符号と、スキャン方向の開始位置の透明度データであるスキャン開始値と、スキャン開始値が属するラインにおけるスキャン開始値のランを特定するデータと、隣接したライン間におけるスキャン開始値のランの差分を特定するデータとを中間符号として生成する。データ圧縮部は、中間符号生成部によって生成された中間符号に対して、可変長符号化処理を施すことによって、透明度データの圧縮データを生成する。
【０００８】
ここで、第１の発明において、第１のブロック判定部は、スキャン方向として、横方向に延在するラインを順方向でスキャンする横順方向、横方向に延在するラインを逆方向でスキャンする横逆方向、縦方向に延在するラインを順方向でスキャンする縦順方向、および、縦方向に延在するラインを逆方向でスキャンする縦逆方向のそれぞれについて、連結ブロックのタイプ判定を行うことが好ましい。この場合、中間符号生成部は、連結ブロックのスキャン方向を示す符号を中間符号として生成する。
【０００９】
第１の発明において、第２のブロック判定部は、連結ブロックと判定されたスキャン方向が複数存在する場合、このブロック内における変動予測誤差の絶対値総和が最も小さいいずれかのスキャン方向を選択することが好ましい。
【００１０】
第１の発明において、第２のブロック判定部は、最大値と最小値とを除く中間値を同一値と見なした場合、スキャン開始値の最小値からスキャン方向に向かって単調増加する変化パターンを有するブロック、または、スキャン開始値の最大値からスキャン方向に向かって単調減少する変化パターンを有するブロックを連結ブロックと判定することが好ましい。
【００１１】
第１の発明において、中間符号生成部は、最小値と最大値との２種類の透明度データによって構成された第１の連結ブロック、最小値および最大値の一方と中間値との２種類の透明度データによって構成された第２の連結ブロック、および、最小値と最大値と中間値との３種類の透明度データによって構成された第３の連結ブロックのいずれであるかを示す符号を中間符号として生成することが好ましい。この場合、中間符号生成部は、第２の連結ブロックに関しては、各ラインにおける中間値の初期値と、各ラインにおける隣接した中間値の差分とを中間符号として生成する。また、中間符号生成部は、第３の連結ブロックに関しては、各ラインにおける中間値の初期値と、各ラインにおける隣接した中間値の差分を特定するデータと、各ラインにおける中間値のランを特定するデータとを中間符号として生成する。
【００１２】
また、第１の発明において、ブロック内の透明度データが最大値のみで構成されたブロックをオンブロックと判定し、ブロック内の透明度データが最小値のみで構成されたブロックをオフブロックと判定する第２のブロック判定部をさらに設けてもよい。この場合、第２のブロック判定部によってオンブロックと判定されたブロックに関して、中間符号生成部は、オンブロックであることを示す符号を中間符号として生成する。また、第２のブロック判定部によってオフブロックと判定されたブロックに関して、中間符号生成部は、オフブロックであることを示す符号を中間符号として生成する。
【００１３】
また、第１の発明において、第１のブロック判定部によって連結ブロックと判定されず、第２のブロック判定部によってオンブロックと判定されず、かつ、第２のブロック判定部によってオフブロックとも判定されなかったブロックを非連結ブロックと判定する第３のブロック判定部をさらに設けてもよい。この場合、中間符号生成部は、第３のブロック判定部によって非連結ブロックと判定されたブロックに関しては、ブロックを複数のラインに分割することなくＺスキャン順に符号化することによって、中間符号を生成する。
【００１４】
第２の発明は、画像の透明度データをブロック単位で圧縮する画像圧縮方法をコンピュータに実行させる画像圧縮プログラムを提供する。この画像圧縮プログラムは、特定のスキャン方向に沿って並んだ複数のラインにブロックを分割した際、それぞれのラインに属する透明度データの変化パターンがすべてのラインで共通するブロックを連結ブロックと判定するステップと、連結ブロックと判定されたブロックに関して、少なくとも、連結ブロックであることを示す符号と、スキャン方向の開始位置の透明度データであるスキャン開始値と、スキャン開始値が属するラインにおけるスキャン開始値のランを特定するデータと、隣接したライン間におけるスキャン開始値のランの差分を特定するデータとを中間符号として生成するステップと、中間符号に対して、可変長符号化処理を施すことによって、透明度データの圧縮データを生成するステップとを有する画像圧縮方法をコンピュータに実行させる。
【００１５】
第３の発明は、上述した第１の発明に係る画像圧縮装置によって生成された圧縮データ、または、上述した第２の発明に係る画像圧縮プログラムをコンピュータに実行させることによって生成された圧縮データを伸張する画像伸張装置を提供する。この画像伸張装置は、画像の輝度データを用いることなく、圧縮データのみに基づいて、透明度データを伸張する。
【発明の効果】
【００１６】
本発明によれば、画像の輝度データを用いることなく、透明度データのみで圧縮処理が完結するので、これを伸張する際においても、輝度データを参照する必要がない。輝度データを参照しない分だけ伸張処理の負荷が軽減するので、伸張処理の高速化を図ることができる。また、透明度データに関しては、自然画等における輝度データと比べて、あるスキャン方向における各ラインの変化パターンに共通性を有する部分領域（ブロック）が画像平面上において集中して出現する傾向がある。このような透明度データの局所性に鑑み、変化パターンに共通性がある領域を連結ブロックとして抽出するとともに、連結ブロックに関して、ライン内のランのみならず、隣接したライン間におけるランの差分も考慮して中間符号を生成する。そして、このような二次元方向のランに関するデータを含む中間符号に対して可変長符号化処理を施す。透明度データの局所性を中間符号の出現確率の偏りに反映することで、透明度データを効率よく圧縮することができる。
【発明を実施するための最良の形態】
【００１７】
図１は、本実施形態に係る画像圧縮装置のブロック構成図である。この画像圧縮装置は、クラスタ値割当部１と、ブロック処理部２と、データ圧縮部３とを有し、画像の透明度データをブロック単位で圧縮する。クラスタ値割当部１は、圧縮処理の対象となる画像の透明度データ（入力画像）と量子化設定によりクラスタリングを行い、値を割り当てる。ブロック処理部２は、画像を縦横に分割することにより、所定サイズ（例えば８×８画素）のブロックを画像中に複数設定するとともに、ブロックのタイプ判定と中間符号の生成とをブロック単位で行う。ブロック処理部２は、ブロックのタイプを３つに分類すべく、オン・オフブロック判定部４と、連結ブロック判定部５と、非連結ブロック判定部６とを有するとともに、ブロックのタイプに応じた中間符号を生成する中間符号生成部７を有する。データ圧縮部３は、ハフマン符号テーブル作成部８と、符号・ヘッダ出力部９とを有し、生成された中間符号に対して可変長符号化処理を施すことによって、透明度データの圧縮データを生成する。
【００１８】
クラスタ値割当部１は、量子化値を初期値としたクラスタリングを行い、透明度データであるα値を減色する。クラスタリング（clustering）とは、複数のデータを、その類似度に基いて分類すること、または、そのための統計学的手法をいう。概略的には、α値が密な値域に対して多くのクラスタ値が割り当てられる一方、α値が疎な値域に対しては割り当てを省略することによって、割り当てが適応的に行われる。
【００１９】
なお、このクラスタリングは、圧縮効率を高めるための前処理に過ぎず、この処理によって、透明度データとしての本来の意味が失われる訳ではない。したがって、本発明の本質に鑑みると、このクラスタリングは必須ではなく、この処理を省略して構わない。以下の説明では、クラスタ値割当部１の処理後の透明度データ（またはα値）を単に「透明度データ」（または「α値」）という。
【００２０】
ブロック処理部２は、画像中に設定されたブロックを所定の処理順序で順番に処理する。ここでの前段処理として、まず、処理対象となるブロックのタイプが判定される。符号化の基本となるブロックタイプの判定は、３つのブロック判定部４〜６によって行われる。
【００２１】
オン・オフブロック判定部４は、「オンブロック」または「オフブロック」の判定を行う。ここで、「オンブロック」とは、図２（ａ）に示すように、ブロック内のα値が最大値（オン）のみで構成されたブロック、すなわち、ブロック内の全画素が完全不透明であるブロックである。また、「オフブロック」とは、同図（ｂ）に示すように、ブロック内のα値が最小値（オフ）のみで構成されたブロック、すなわち、ブロック内の全画素が完全透明であるブロックをいう。
【００２２】
中間符号生成部７は、オンブロックと判定されたブロックに関しては、ブロックのタイプを示すタイプ符号としてシンボル値「０」を割り当て、これを中間符号とする。タイプ符号＝「０」は、ブロックの処理順序において、同一タイプのブロックが連続する限りランをとる。タイプ符号＝「０」は、８×８のα値がすべて最大値であることを示し、タイプ符号の指定を以て、ブロック内のデータを完全に再現できることが保証される。一方、オフブロックと判定されたブロックに関しては、タイプ符号としてシンボル値「１」が割り当てられる。オンブロックの場合と同様、タイプ符号＝「１」も、ブロックの処理順序において、同一タイプのブロックが連続する限りランをとる。また、このタイプ符号の指定を以て、ブロック内におけるデータの再現性が保証される点もオンブロックの場合と同様である。オン・オフブロック判定部４によってオンブロックまたはオフブロックと判定されたブロックに関しては、以上のような中間符号の生成を以て、処理を終了する。
【００２３】
連結ブロック判定部５は、オン・オフブロック判定部４においてオンブロックおよびオフブロックのいずれとも判定されなかったブロックに関して、「連結ブロック」の判定を行う。ここで、「連結ブロック」とは、特定のスキャン方向に沿って並んだ複数のラインにブロックを分割した際、それぞれのラインに属する透明度データの変化パターンがすべてのラインで共通するブロックをいう。
【００２４】
図３は、各スキャン方向における連結ブロック判定の説明図である。同図において、白色の画素はオン（最大値）、黒色の画素はオフ（最小値）、灰色の画素は中間値であることをそれそれ示している（この点は後出する図面についても同様）。本実施形態では、連結ブロックと判定する可能性をスキャン方向の違いに応じて４通り、すなわち、横順方向、横逆方向、縦順方向および縦逆方向のそれぞれについて検討する。具体的には、４方向のスキャンを行い、下記のいずれかの条件を満足する場合に、連結ブロックと判定される。
【００２５】
［連結ブロックの判定条件］
（１）スキャン開始位置のα値が最大値（オン）であり、指定されたスキャン方向で各ラインをスキャンした際、変化パターンとして（現在値−前値）≦０、すなわち、単調減少が必ず成立するブロック
（２）スキャン開始位置のα値が最小値（オフ）であり、指定されたスキャン方向で各ラインをスキャンした際、変化パターンとして（現在値−前値）≧０、すなわち、単調増加が必ず成立するブロック
【００２６】
なお、上記判定条件において、最大値と最小値とを除く中間値については、一律に同一値と見なす。したがって、各ラインの変化パターンを検査する際、中間値については非単調的に変化していてもよい。また、上記条件には等号も含まれるため、条件を満たせば１種類のみのライン（例えば、１ラインがすべてオン）であってもよい。
【００２７】
同図（ａ）は、横順方向、すなわち、横方向に延在するラインを順方向（左→右）でスキャンするケースである。スキャン開始位置のα値はオンであり、８本のラインのすべてにおいて（現在値−前値）≦０が成立する。したがって、図示したブロックは、上記判定条件（１）に合致するので、横順方向の連結ブロックに該当する。同図（ｂ）は、横逆方向、すなわち、横方向に延在するラインを逆方向（右→左）でスキャンするケースである。スキャン開始位置のα値はオフであり、すべての水平ラインにおいて（現在値−前値）≧０が成立する。したがって、図示したブロックは、上記判定条件（２）に合致するので、横逆方向の連結ブロックに該当する。また、同図（ｃ）は、縦順方向、すなわち、縦方向に延在するラインを順方向（上→下）でスキャンするケースである。スキャン開始位置のα値はオンであるが、左から２〜４，６，７番目の垂直ラインにおいて（現在値−前値）≦０が成立しない。したがって、図示したブロックは、上記判定条件（１）に合致しないので、連結ブロックに該当しない。さらに、同図（ｄ）は、縦逆方向、すなわち、縦方向に延在するラインを逆方向（下→上）でスキャンするケースである。スキャン開始位置のα値はオフであるが、左から２〜４，６，７番目の垂直ラインにおいて（現在値−前値）≧０が成立しない。したがって、図示したブロックは、上記判定条件（２）に合致しないので、連結ブロックに該当しない。
【００２８】
スキャンは、あるスキャン方向における連結ブロックの発見の有無に関わらず、４通り行う。これにより、同図（ａ），（ｂ）のケースのように、複数のスキャン方向において連結ブロックと判定されるケースが生じ得る。このようなケースでは、ブロック内における変動予測誤差の絶対値総和が最も小さいいずれかのスキャン方向が選択される。絶対値総和が小さいスキャン方向を選択した方が、圧縮データ量を低減でき、圧縮効率を高める上で有利だからである。
【００２９】
中間符号生成部７は、連結ブロックと判定されたブロックに関しては、中間符号として、少なくとも、タイプ符号と、第１の種別符号（必要に応じて第２の種別符号も含む）と、スキャン開始値とを生成する。ここで、タイプ符号としては、シンボル値「４」〜「７」が割り当てられる。これらは、いずれも連結ブロックであることを示すと同時に、スキャン方向も表している。具体的には、タイプ符号「４」は横順方向スキャン、タイプ符号「５」は縦順方向スキャン、タイプ符号「６」は横逆方向スキャン、タイプ符号「７」は縦逆方向スキャンをそれぞれ意味する。また、第１および第２の種別符号は、いずれも連結ブロックのより詳細な種別を示している。第１の種別符号は、ブロック内のα値が３種類の場合には「０」、ブロック内のα値が２種類の場合には「１」にそれぞれ設定される。このα値の種類としては、オン、オフ、中間値の３種類が存在する。また、第２の種別符号は、中間値の有無を示しており、ブロック内に中間値が含まれない場合には「０」、これが含まれる場合には「１」にそれぞれ設定される。なお、第２の種別符号は、第１のブロック種別が「１」、すなわち２種類の場合のみ付加される。スキャン開始値は、スキャン方向の開始位置の透明度データ（α値）である。第１および第２の種別符号の内容によって、中間符号としての可変長符号の構成は、以下の３つに分類される。
【００３０】
（分類１）２種類のα値（中間値なし）
連結ブロックが、オンと、オフとの２種類によって構成されるケースである。このケースにおいて、中間符号生成部７は、上述した各種符号に加えて、スキャン開始値に関する共通ランと、その連続ＤＰＣＭランとを中間符号として更に生成する。ここで、共通ランは、スキャン開始値が属するラインにおけるスキャン開始値の連続個数（ラン）である。また、連続ＤＰＣＭランは、隣接したライン間における同一値のランの差分（具体的には、直前の値との差分）である。
【００３１】
図４は、２種類のα値（中間値なし）で構成された横順方向の連結ブロックに関する中間符号の一例を示す図である。まず、１番目の水平ラインに関しては、スキャン開始位置のα値（スキャン開始値）がオンであり、これが右に向かって２画素分だけ連続している。したがって、１番目の共通ランは２になる（スキャン開始位置は含まず）。なお、本分類１において、ライン内の残存部分については、スキャン開始値を反転した値（スキャン開始値がオンならばオフ、オフならばオン）であることが自明なので、その個数に関する符号は不要である点に留意されたい（それゆえに、この分だけ中間符号のデータ量を減らせる）。つぎに、２番目の水平ラインに関しては、これと隣接した１番目の水平ラインにおけるラン（共通ラン分の２にスキャン開始位置分の１を加えた３）との差分値（４−３＝＋１）が、連結ＤＰＣＭランとして算出される。３番目以降の水平ラインに関しても、２番目の水平ラインと同様の方法で、連結ＤＰＣＭランが算出される。
【００３２】
なお、本実施形態では、スキャン開始値のランを特定するデータ（共通ラン）として、スキャン開始値のランそのものを用いているが、これに代えて、残余部分のラン（分類１の場合、スキャン開始値の反転値のラン）を用いてもよい。水平ラインの画素数は一定（＝８）なので、残余部分のランが決まれば、スキャン開始値のランも一義的に特定されるからである。同様の理由で、スキャン開始値のランの差分を特定するデータ（連結ＤＣＰＭラン）として、スキャン開始値のランの差分の代わりに、残余部分のランの差分を用いてもよい。この点は、次に述べる分類２，３についても同様である。
【００３３】
（分類２）２種類のα値（中間値あり）
連結ブロックが、オンおよびオフの一方と、中間値との２種類によって構成されるケースである。このケースにおいて、中間符号生成部７は、上記分類１で生成される符号に加えて、ライン内で中間値が最初に出現する画素のα値である中間α初期値と、隣接した中間値の差分である中間αＤＰＣＭ値とを中間符号として更に生成する。
【００３４】
図５は、２種類のα値（中間値あり）で構成された横順方向の連結ブロックに関する中間符号の一例を示す図である。まず、１番目の水平ラインにおける共通ランは２になる。また、４番目の画素で初めて出現する中間値が中間α初期値となる。そして、５〜８番目の画素については、直前の中間値との差分が、中間αＤＰＣＭ値としてそれぞれ算出される。なお、本分類２において、ライン内の残存部分が中間値なのは自明ゆえ、その個数に関する符号は不要である点に留意されたい（それゆえに、この分だけ中間符号のデータ量を減らせる）。つぎに、２番目の水平ラインに関しては、これと隣接した１番目の水平ラインにおけるスキャン開始値のラン（＝３）との差分値（４−３＝＋１）が、共通ランして算出される。また、５番目の画素のα値（中間値）は、中間α初期値として表現され、６〜８番目の画素のα値については、中間αＤＰＣＭ値としてそれぞれ表現される。３番目以降の水平ラインに関しても、２番目の水平ラインと同様であり、中間値が存在する場合には、中間α初期値が算出されるとともに、これが連続する場合には、連結ＤＰＣＭランが画素毎に算出される。
【００３５】
（分類３）３種類のα値
連結ブロックが、最小値と、最大値と、中間値との３種類によって構成されるケースである。このケースにおいて、中間符号生成部７は、上記分類２で生成される符号に加えて、中間値に関する共通ラン、すなわち、中間値の連続個数（ラン）を中間符号として更に生成する。
【００３６】
図６は、３種類のα値で構成された横順方向の連結ブロックに関する中間符号の一例を示す図である。まず、１番目の水平ラインにおける共通ランは２となり、中間値の共通ランは３となる。また、４番目の画素で初めて出現する中間値が中間α初期値となり、５〜６番目の画素については、直前画素の中間値との差分が、中間αＤＰＣＭ値としてそれぞれ算出される。なお、本分類３において、スキャン開始値のランと中間値のランとを除いた残存部分については、スキャン開始値を反転した値であることが自明なので、その個数に関する符号は不要である点に留意されたい（それゆえに、この分だけ中間符号のデータ量を減らせる）。２番目以降の水平ラインに関しては、中間値の共通ランが必要に応じて付加される点を除けば分類２と同様なので、ここでの説明を省略する。
【００３７】
このように、連結ブロック判定部５によって連結ブロックと判定されたブロックに関しては、以上のような中間符号の生成を以て、処理を終了する。
【００３８】
非連結ブロック判定部６は、オン・オフブロック判定部４によってオンブロックおよびオフブロックのいずれとも判定されず、かつ、連結ブロック判定部５によって連結ブロックとも判定されなかったブロックを「非連結ブロック」と判定する。
【００３９】
中間符号生成部７は、非連結ブロックと判定されたブロックに関しては、ブロックのタイプを示すタイプ符号としてシンボル値「２」，「３」のいずれかを割り当て、これを中間符号とする。タイプ符号＝「２」は、非連結ブロック（ランあり）を示しており、ブロック内に占める中間値の割合が所定のしきい値よりも多い場合に設定される。また、タイプ符号＝「３」は、非連結ブロック（ランなし）を示しており、ブロック内に占める中間値の割合が所定のしきい値以下の場合に設定される。
【００４０】
中間符号生成部７は、非連結ブロック判定部６によって非連結ブロックと判定されたブロックに関しては、ブロックを複数のラインに分割することなく、Ｚスキャン順に符号化することによって、中間符号を生成する。図７は、非連結ブロック（ランなし）における中間符号の一例を示す図である。この場合、中間符号として、ブロック先頭の中間α初期値（１個）と、Ｚスキャン順で隣接した中間値の差分である中間αＤＰＣＭ値（６３個）とが生成される。また、図８は、非連結ブロック（ランあり）における中間符号の一例を示す図である。この場合、中間符号として、ブロック先頭に付与させる固定２ビットと、それ以降の固定１ビットと、共通ランと、中間α初期値と、中間αＤＰＣＭ値とが生成される。固定２ビットおよび固定１ビットは、α値の種類またはその変化情報を表す。固定２ビットは、００ｂがオフ、０１ｂが中間値、１０ｂがオンを示す。また、固定１ビットは、１ビットにて以下の変化を示す。
【００４１】
（固定１ビットの内容）
固定長符号                状  態  変  化  （変化前→変化後）
０ｂ        オフ→中間値、中間値→オン、または、オン→オフ
１ｂ        オフ→オン、中間値→オフ、または、オン→中間値
【００４２】
また、共通ランは、特定されたα値のランを表す。さらに、中間α初期値および中間αＰＣＭ値は、特定されたα値が中間値の場合に、その個数分連続して付加され、中間値の具体的な値を表す。ランが切れる度に、中間α初期値シンボルが付加される。非連結ブロック判定部６によって非連結ブロックと判定されたブロックに関しては、以上のような中間符号の生成を以て、処理を終了する。
【００４３】
ハフマンテーブル作成部８は、中間符号生成部７によって生成された中間符号の傾向に基づいて、ハフマンテーブルを作成する。ハフマンテーブルは、ブロックタイプ(タイプ符号）、共通ラン、連結ＤＰＣＭラン、中間α初期値および中間αＤＰＣＭ値のそれぞれに対して別個に作成してもよいが、複数種類のシンボルを１テーブル化してもよい。そして、符号・ヘッダ出力部９は、中間符号を可変長符号に変換するとともに、これにヘッダを生成・付加したものを圧縮データとして出力する。
【００４４】
図９は、上述した画像圧縮装置によって圧縮されたデータを伸張する画像伸張装置のブロック構成図である。この画像伸張装置は、ヘッダ読込・テーブル再構成部１０と、ブロックタイプ復号部１２およびブロックタイプ別復号処理部１３で構成されたブロック処理部１１と、α値変換・出力部１４とを有し、画像の輝度データを用いることなく、圧縮データのみに基づいて、透明度データを伸張する。
【００４５】
具体的な処理の流れとしては、まず、ヘッダ読み込み・テーブル再構成部１０は、圧縮データ中のヘッダを読み込み、これに基づいてハフマンテーブルを再構成する。つぎに、ブロックタイプ復号部１２は、ブロックのタイプ（オン・オフブロック、連結ブロック、非連結ブロック）を復号するとともに、その復号結果をブロックタイプ別復号処理部１３に引き渡す。そして、ブロックタイプ別復号処理部１３は、ブロックのタイプに応じた復号処理を行って、α値のクラスタ値を復号する。そして、α値変換・出力部１４は、復号されたクラスタ値をα値に変換した上で、最終的な復号結果として出力する。
【００４６】
このように、本実施形態によれば、画像の輝度データを用いることなく、透明度データのみで圧縮処理が完結するので、これを伸張する際においても、輝度データを参照する必要がない。輝度データを参照しない分だけ伸張処理の負荷が軽減するので、伸張処理の高速化を図ることができる。また、透明度データの一般的な傾向として、自然画等における輝度データと比べて、あるスキャン方向における各ラインの変化パターンに共通性を有する部分領域（ブロック）が集中して出現する。このような透明度データの局所性に鑑み、変化パターンに共通性がある領域を連結ブロックとして抽出するとともに、連結ブロックに関して、ライン内のランのみならず、隣接したライン間におけるランの差分も考慮して中間符号を生成する。図１０は、圧縮処理に伴うブロック内データの推移を示す図であり、同図（ａ）はα値表記、同図（ｂ）はクラスタ値表記、そして、同図（ｃ）は差分値を考慮したものである。ブロック内の変化パターンの共通性に基づいた符号化を行うことで、同図（ａ）と比較して、同図（ｃ）では符号の出現確率に大きな偏りが生じ、出現頻度が０近傍に集中することがわかる。このように、透明度データの局所性を符号の出現確率の偏りに反映させた上で、これに可変長符号化を施すことで、透明度データを効率よく圧縮することができる。その結果、透明度データの圧縮効率化と、伸張処理の高速化との両立を図ることができる。
【００４７】
また、本実施形態によれば、連結ブロックの判定を複数のスキャン方向で行うことで、これを一つのスキャン方向のみで行う場合と比較して、連結ブロックとして判定される可能性を高めることができる。したがって、透明度データの圧縮効率をより高めることが可能になる。
【００４８】
さらに、本実施形態によれば、連結ブロック、オン・オフブロックおよび非連結ブロックといったブロックのタイプに応じて、異なる符号化方法を用いている。このように、ブロックのタイプに適した符号化方法を選択的に適用することにより、透明度データの圧縮効率を一層高めることができる。なお、本発明は、連結ブロックの圧縮処理に特徴の一つがあるので、これ以外のタイプについては、どのように取り扱ってもよい。したがって、例えば、オン・オフブロックについては考慮せずに、連結ブロック以外のブロックについては非連結ブロックとして処理することもよいし、これ以外の手法によって処理することも可能である。
【００４９】
なお、上述した本実施形態では、図１に示した画像処理装置（ハードウェア）を例に説明したが、コンピュータを上記画像処理装置として機能させるコンピュータ・プログラム（ソフトウェア）も本発明の別の形態を構成する。このプログラムの詳細については、当業者であれば上述した説明より自明なので、ここでの重複した説明を省略する。
【図面の簡単な説明】
【００５０】
【図１】画像圧縮装置のブロック構成図
【図２】オンブロックおよびオフブロックの説明図
【図３】各スキャン方向における連結ブロック判定の説明図
【図４】２種類のα値（中間値なし）における中間符号の一例を示す図
【図５】２種類のα値（中間符号あり）における中間符号の一例を示す図
【図６】３種類のα値における中間符号の一例を示す図
【図７】非連結ブロック（ランなし）における中間符号の一例を示す図
【図８】非連結ブロック（ランあり）における中間符号の一例を示す図
【図９】画像伸張装置のブロック構成図
【図１０】圧縮処理に伴うブロック内データの推移を示す図
【符号の説明】
【００５１】
１  クラスタ値割当部
２  ブロック処理部
３  データ圧縮部
４  オン・オフブロック判定部
５  連結ブロック判定部
６  非連結ブロック判定部
７  中間符号生成部
８  ハフマンテーブル作成部
９  符号・ヘッダ出力部
１０  ヘッダ読込・テーブル再構成部
１１  ブロック処理部
１２  ブロックタイプ復号部
１３  ブロックタイプ別復号処理部
１４  α値変換・出力部
【図１】
2008227934.tif 000003
【図２】
2008227934.tif 000004
【図３】
2008227934.tif 000005
【図４】
2008227934.tif 000006
【図５】
2008227934.tif 000007
【図６】
2008227934.tif 000008
【図７】
2008227934.tif 000009
【図８】
2008227934.tif 000010
【図９】
2008227934.tif 000011
【図１０】
2008227934.tif 000012