JP4328363B2 - 画像圧縮装置、画像圧縮プログラムおよび画像伸張装置 - Google Patents

画像圧縮装置、画像圧縮プログラムおよび画像伸張装置 Download PDF

Info

Publication number
JP4328363B2
JP4328363B2 JP2007063591A JP2007063591A JP4328363B2 JP 4328363 B2 JP4328363 B2 JP 4328363B2 JP 2007063591 A JP2007063591 A JP 2007063591A JP 2007063591 A JP2007063591 A JP 2007063591A JP 4328363 B2 JP4328363 B2 JP 4328363B2
Authority
JP
Japan
Prior art keywords
block
value
data
scan
image compression
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007063591A
Other languages
English (en)
Other versions
JP2008227934A (ja
Inventor
幸司 蟹江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Axell Corp
Original Assignee
Axell Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Axell Corp filed Critical Axell Corp
Priority to JP2007063591A priority Critical patent/JP4328363B2/ja
Publication of JP2008227934A publication Critical patent/JP2008227934A/ja
Application granted granted Critical
Publication of JP4328363B2 publication Critical patent/JP4328363B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

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

Claims (8)

  1. 画像の透明度データをブロック単位で圧縮する画像圧縮装置において、
    特定のスキャン方向に沿って並んだ複数のラインにブロックを分割した際、前記スキャン方向に応じて特定される前記ブロック内の一点であるスキャン開始位置の透明度データが最大値であり、かつ、前記スキャン方向において、それぞれのラインに属する透明度データの変化パターンが単調減少(現在値−前値≦0(ただし、中間値を含む場合には中間値を同一値と見なす))となるブロックと、当該ブロックのスキャン開始位置の透明度データが最小値であり、かつ、前記スキャン方向において、それぞれのラインに属する透明度データの変化パターンが単調増加(現在値−前値≧0(ただし、中間値を含む場合には中間値を同一値と見なす))となるブロックとを、連結ブロックと判定する第1のブロック判定部と、
    前記第1のブロック判定部によって前記連結ブロックと判定されたブロックに関して、少なくとも、前記連結ブロックであることを示す符号と、前記スキャン開始位置の透明度データであるスキャン開始値と、前記スキャン開始値が属するラインにおける前記スキャン開始値のランを特定するデータと、隣接したライン間における前記スキャン開始値のランの差分を特定するデータと、中間値を含む場合には隣接した中間値の差分に基づき中間値を特定するデータとを中間符号として生成する中間符号生成部と、
    前記中間符号生成部によって生成された前記中間符号に対して、可変長符号化処理を施すことによって、透明度データの圧縮データを生成するデータ圧縮部と
    を有することを特徴とする画像圧縮装置。
  2. 前記第1のブロック判定部は、前記スキャン方向として、横方向に延在するラインを順方向でスキャンする横順方向、横方向に延在するラインを逆方向でスキャンする横逆方向、縦方向に延在するラインを順方向でスキャンする縦順方向、および、縦方向に延在するラインを逆方向でスキャンする縦逆方向のそれぞれについて、前記連結ブロックのタイプ判定を行い、
    前記中間符号生成部は、前記連結ブロックの前記スキャン方向を示す符号を前記中間符号として生成することを特徴とする請求項1に記載された画像圧縮装置。
  3. 前記第のブロック判定部は、前記連結ブロックと判定された前記スキャン方向が複数存在する場合、当該ブロック内における変動予測誤差の絶対値総和が最も小さいいずれかの前記スキャン方向を選択することを特徴とする請求項2に記載された画像圧縮装置。
  4. 前記中間符号生成部は、
    最小値と最大値との2種類の透明度データによって構成された第1の連結ブロック、最小値および最大値の一方と中間値との2種類の透明度データによって構成された第2の連結ブロック、および、最小値と最大値と中間値との3種類の透明度データによって構成された第3の連結ブロックのいずれであるかを示す符号を前記中間符号として生成し、
    前記第2の連結ブロックに関しては、各ラインにおける中間値の初期値と、各ラインにおける隣接した中間値の差分とを前記中間符号として生成し、
    前記第3の連結ブロックに関しては、各ラインにおける中間値の初期値と、各ラインにおける隣接した中間値の差分を特定するデータと、各ラインにおける中間値のランを特定するデータとを前記中間符号として生成することを特徴とする請求項に記載された画像圧縮装置。
  5. ブロック内の透明度データが最大値のみで構成されたブロックをオンブロックと判定し、ブロック内の透明度データが最小値のみで構成されたブロックをオフブロックと判定する第2のブロック判定部をさらに有し、
    前記中間符号生成部は、前記第2のブロック判定部によって前記オンブロックと判定されたブロックに関しては、前記オンブロックであることを示す符号を前記中間符号として生成し、前記オフブロックと判定されたブロックに関しては、前記オフブロックであることを示す符号を前記中間符号として生成することを特徴とする請求項1からのいずれかに記載された画像圧縮装置。
  6. 前記第1のブロック判定部によって前記連結ブロックと判定されず、前記第2のブロック判定部によって前記オンブロックと判定されず、かつ、前記第2のブロック判定部によって前記オフブロックとも判定されなかったブロックを非連結ブロックと判定する第3のブロック判定部をさらに有し、
    前記中間符号生成部は、前記第3のブロック判定部によって前記非連結ブロックと判定されたブロックに関しては、ブロックを複数のラインに分割することなくZスキャン順に符号化することによって、前記中間符号を生成する特徴とする請求項に記載された画像圧縮装置。
  7. 画像の透明度データをブロック単位で圧縮する画像圧縮方法をコンピュータに実行させる画像圧縮プログラムにおいて、
    特定のスキャン方向に沿って並んだ複数のラインにブロックを分割した際、前記スキャン方向に応じて特定される前記ブロック内の一点であるスキャン開始位置の透明度データが最大値であり、かつ、前記スキャン方向において、それぞれのラインに属する透明度データの変化パターンが単調減少(現在値−前値≦0(ただし、中間値を含む場合には中間値を同一値と見なす))となるブロックと、当該ブロックのスキャン開始位置の透明度データが最小値であり、かつ、前記スキャン方向において、それぞれのラインに属する透明度データの変化パターンが単調増加(現在値−前値≧0(ただし、中間値を含む場合には中間値を同一値と見なす))となるブロックとを、連結ブロックと判定するステップと、
    前記連結ブロックと判定されたブロックに関して、少なくとも、前記連結ブロックであることを示す符号と、前記スキャン開始位置の透明度データであるスキャン開始値と、前記スキャン開始値が属するラインにおける前記スキャン開始値のランを特定するデータと、隣接したライン間における前記スキャン開始値のランの差分を特定するデータと、中間値を含む場合には隣接した中間値の差分に基づき中間値を特定するデータとを中間符号として生成するステップと、
    前記中間符号に対して、可変長符号化処理を施すことによって、透明度データの圧縮データを生成するステップと
    を有する画像圧縮方法をコンピュータに実行させることを特徴とする画像圧縮プログラム。
  8. 請求項1からのいずれかに記載された前記画像圧縮装置によって生成された前記圧縮データ、または、請求項に記載された前記画像圧縮プログラムをコンピュータに実行させることによって生成された前記圧縮データを伸張する画像伸張装置において、
    前記画像伸張装置は、画像の輝度データを用いることなく、前記圧縮データのみに基づいて、前記透明度データを伸張することを特徴とする画像伸張装置。
JP2007063591A 2007-03-13 2007-03-13 画像圧縮装置、画像圧縮プログラムおよび画像伸張装置 Expired - Fee Related JP4328363B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007063591A JP4328363B2 (ja) 2007-03-13 2007-03-13 画像圧縮装置、画像圧縮プログラムおよび画像伸張装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007063591A JP4328363B2 (ja) 2007-03-13 2007-03-13 画像圧縮装置、画像圧縮プログラムおよび画像伸張装置

Publications (2)

Publication Number Publication Date
JP2008227934A JP2008227934A (ja) 2008-09-25
JP4328363B2 true JP4328363B2 (ja) 2009-09-09

Family

ID=39846008

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007063591A Expired - Fee Related JP4328363B2 (ja) 2007-03-13 2007-03-13 画像圧縮装置、画像圧縮プログラムおよび画像伸張装置

Country Status (1)

Country Link
JP (1) JP4328363B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582847B2 (en) * 2013-04-22 2017-02-28 Intel Corporation Color buffer compression

Also Published As

Publication number Publication date
JP2008227934A (ja) 2008-09-25

Similar Documents

Publication Publication Date Title
US7236636B2 (en) Image compression method, image restoration method, program and apparatus
JP4033836B2 (ja) 可変長カラー・コードを用いる、パレット化されたカラー画像の圧縮
JP4689545B2 (ja) データ圧縮装置およびデータ圧縮プログラム
US8031954B2 (en) Image encoding apparatus and control method thereof using prediction encoding and pixel classification
EP0902398B1 (en) Method and system for compressing and decompressing binary representations of dithered images
JP4328363B2 (ja) 画像圧縮装置、画像圧縮プログラムおよび画像伸張装置
JP4633576B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4173498B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP3866568B2 (ja) 画像圧縮方法
JP3854849B2 (ja) データ伸長処理方法およびデータ伸長処理装置
JP4699307B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4629512B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4181147B2 (ja) データ圧縮装置およびデータ圧縮プログラム
US7973975B2 (en) Image processing apparatus and image processing method
JP4131970B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4743884B2 (ja) 画像符号化装置及びその制御方法
JP2005252531A (ja) データ圧縮装置およびデータ圧縮プログラム
JP4435586B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4377352B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JPH07264584A (ja) 符号化復号化方法および符号化復号化装置
JP4633577B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP2006086676A (ja) 画像処理装置
JP2005260420A (ja) データ圧縮装置およびデータ圧縮プログラム
JP2006217503A (ja) データ圧縮装置およびデータ圧縮プログラム
JP2010028649A (ja) データ圧縮装置およびデータ圧縮プログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090324

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090518

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090602

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090612

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120619

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4328363

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120619

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120619

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120619

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120619

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130619

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130619

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130619

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130619

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130619

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees