【実施例】
【0091】
以下では、各ブロックの画像データのブロック圧縮に用いられる圧縮処理が、該ブロックの画像データの特徴に応じて選択されるように構成された画像圧縮展開システムのより具体的な実施例を説明する。
【0092】
図12は、本実施例における画像圧縮展開システムのブロック圧縮回路部71の構成を示すブロック図である。ブロック圧縮回路部71は、RGBフォーマットの画像データD
IMGに対してブロック圧縮を行って圧縮画像データD
CMPを生成する。
図12に図示されているブロック圧縮回路部71は、例えば、
図10の表示装置50の表示ドライバ52に搭載されたブロック圧縮回路部62や、
図11の表示装置50Aのプロセッサ53Aに搭載されたブロック圧縮回路部54として使用され得る。
【0093】
本実施例においても、1つのブロックが2×2画素で構成されており(
図1参照)、画像データD
IMGは、各画素の赤、緑、青の階調をそれぞれ8ビットで表現するデータである。1ブロックには4つの画素が含まれるから、各ブロックの画像データD
IMGは、96ビットを有することになる。一方、本実施例では、各ブロックの圧縮画像データD
CMPは、48ビットを有している。即ち、本実施例では、ブロック圧縮回路部71が、データ量を1/2倍に低減するブロック圧縮を行うように構成されている。
【0094】
ブロック圧縮回路部71は、圧縮対象ブロックの4個の画素の画像データの相関性(類似性)に応じて複数の圧縮処理のうちから最適な圧縮処理を選択し、選択した圧縮処理を圧縮対象ブロックの画像データD
IMGに対して実行することで圧縮画像データD
CMPを生成する画像圧縮装置として構成されている。ここで、本実施例では、可逆圧縮、(1×4)圧縮、(2+1×2)圧縮、(2×2)圧縮、(4×1)圧縮のうちから最適な圧縮処理が選択される。
【0095】
可逆圧縮とは、圧縮画像データから元の4個の画素の画像データD
IMGを再生できるように圧縮する圧縮処理であり、本実施例では、圧縮対象ブロックの4個の画素の画像データが特定のパターンを有している場合に使用される。
【0096】
(1×4)圧縮とは、圧縮対象ブロックの4個の画素の画像データのそれぞれについて個別に量子化処理(本実施例では、ディザ値を用いた量子化処理)を行う圧縮処理である。この(1×4)圧縮は、圧縮対象ブロックの4個の画素の画像データの相関性が低い場合に好適である。
【0097】
(2+1×2)圧縮とは、圧縮対象ブロックの4個の画素の画像データのうちの2つの画素の画像データの値を代表する代表値を定め、該代表値に対して量子化処理を行う一方、他の2つの画素の画像データのそれぞれについて個別に量子化処理を行う圧縮処理である。この(2+1×2)圧縮は、4個の画素の画像データのうちの2個の画素の画像データの相関性が高く、且つ、他の2個の画素の画像データの相関性が低い場合に好適である。
【0098】
(2×2)圧縮とは、圧縮対象ブロックの4個の画素の画像データを、それぞれが2個の画素の画像データからなる2つの組に分け、該2つの組のそれぞれについてデータを代表する代表値を定め、該代表値に対して量子化処理を行う圧縮処理である。この(2×2)圧縮は、4個の画素のうちの2個の画像データの相関性が高く、且つ、他の2個の画素の画像データの相関性が高い場合に好適である。
【0099】
(4×1)圧縮とは、圧縮対象ブロックの4個の画素の画像データを代表する代表値を定め、該代表値に対して量子化処理を行う圧縮処理である。この(4×1)圧縮は、圧縮対象ブロックの全4画素の画像データの相関性が高い場合に好適である。
【0100】
上記の5つの圧縮処理のいずれが使用されるかは、圧縮対象ブロックの4個の画像データが特定のパターンを有しているか否か、及び、4個の画素のうちから2個の画素を選択する組み合わせの全てについて算出された2個の画素の画像データの相関性に応じて決定される。例えば、全4画素の画像データの相関性が高い場合には(4×1)圧縮が使用され、4個の画素のうちの2個の画素の画像データの相関性が高く、且つ、他の2個の画素の画像データの相関性が高い場合には(2×2)圧縮が使用される。なお、上記の5つの圧縮処理の詳細については、後述する。
【0101】
上記の動作を行うために、本実施例では、ブロック圧縮回路部71が、可逆圧縮回路81と、(1×4)圧縮回路82と、(2+1×2)圧縮回路83と、(2×2)圧縮回路84と、(4×1)圧縮回路85と、画素相関性判断回路86と、圧縮データ選択回路87とを備えている。
【0102】
可逆圧縮回路81は、圧縮対象ブロックの画像データD
IMGに対して上述の可逆圧縮を行って可逆圧縮データD
CMP1を生成する。(1×4)圧縮回路82は、圧縮対象ブロックの画像データD
IMGに対して上述の(1×4)圧縮を行って(1×4)圧縮データD
CMP2を生成し、(2+1×2)圧縮回路83は、圧縮対象ブロックの画像データD
IMGに対して上述の(2+1×2)圧縮を行って(2+1×2)圧縮データD
CMP3を生成する。更に、(2×2)圧縮回路84は、圧縮対象ブロックの画像データD
IMGに対して上述の(2×2)圧縮を行って(2×2)圧縮データD
CMP4を生成し、(4×1)圧縮回路85は、圧縮対象ブロックの画像データD
IMGに対して上述の(4×1)圧縮を行って(4×1)圧縮データD
CMP5を生成する。
【0103】
画素相関性判断回路86は、圧縮対象ブロックの画素の画像データの相関性(類似度)を判断し、該相関性に基づいて、可逆圧縮、(1×4)圧縮、(2+1×2)圧縮、(2×2)圧縮、(4×1)圧縮のいずれを選択すべきかを示す選択データを圧縮データ選択回路87に供給する。圧縮データ選択回路87は、供給された選択データに応じて可逆圧縮回路81、(1×4)圧縮回路82、(2+1×2)圧縮回路83、(2×2)圧縮回路84及び(4×1)圧縮回路85からそれぞれ受け取った圧縮画像データD
CMP1〜D
CMP5のうちから最終的に採用すべき圧縮画像データD
CMPを選択する。
【0104】
本実施例では、(1×4)圧縮回路82、(2+1×2)圧縮回路83、(2×2)圧縮回路84及び(4×1)圧縮回路85において行われるブロック圧縮において、ディザ値を用いた量子化処理が行われ、量子化処理において用いられるディザ値が、圧縮対象ブロックのブロック座標x
BLK、y
BLKから生成される。上記で議論したように、量子化処理において用いられるディザ値をブロック座標x
BLK、y
BLKから生成することにより、ブロック圧縮における画質の劣化を低減することができる。
【0105】
図13は、本実施例における画像圧縮展開システムのブロック展開回路部72の構成を示すブロック図である。ブロック展開回路部72は、ブロック圧縮回路部71によって生成された圧縮画像データD
CMPが、上記の5つの圧縮処理のいずれによって圧縮されたかを識別し、更に、圧縮に使用された圧縮処理に対応する展開処理によって圧縮画像データD
CMPを展開して展開後画像データD
IMG’を生成する画像展開装置として構成されている。
図13に図示されているブロック展開回路部72は、例えば、
図10の表示装置50の表示ドライバ52に搭載されたブロック展開回路部64や、
図11の表示装置50Aの表示ドライバ52Aに搭載されたブロック展開回路部64として使用され得る。
【0106】
本実施例では、ブロック展開回路部72は、元データ復元回路91、(1×4)展開回路92、(2+1×2)展開回路93と、(2×2)展開回路94と、(4×1)展開回路95と、圧縮処理識別回路96と、展開データ選択回路97とを備えている。元データ復元回路91は、ブロック展開回路部72に供給された圧縮画像データD
CMPに対し、上述の可逆圧縮に対応する展開処理を行って展開後画像データD
IMG1’を生成するように構成されている。(1×4)展開回路92は、ブロック展開回路部72に供給された圧縮画像データD
CMPに対し、上述の(1×4)圧縮に対応する展開処理を行って展開後画像データD
IMG2’を生成するように構成されており、(2+1×2)展開回路93は、圧縮画像データD
CMPに対し、上述の(2+1×2)圧縮に対応する展開処理を行って展開後画像データD
IMG3’を生成するように構成されている。更に、(2×2)展開回路94は、圧縮画像データD
CMPに対し、上述の(2×2)圧縮に対応する展開処理を行って展開後画像データD
IMG4’を生成するように構成されており、(4×1)展開回路95は、圧縮画像データD
CMPに対し、上述の(4×1)圧縮に対応する展開処理を行って展開後画像データD
IMG5’を生成するように構成されている。なお、元データ復元回路91、(1×4)展開回路92、(2+1×2)展開回路93、(2×2)展開回路94及び(4×1)展開回路95において行われる展開処理については、後で詳細に説明する。
【0107】
圧縮処理識別回路96は、圧縮画像データD
CMPが上記の5つの圧縮処理(可逆圧縮、(1×4)圧縮、(2+1×2)圧縮、(2×2)圧縮、(4×1)圧縮)のいずれによって生成されたかを識別し、圧縮画像データD
CMPの生成に用いられた圧縮処理を示す圧縮処理識別データを展開データ選択回路97に供給する。本実施例では、圧縮画像データD
CMPが、該圧縮画像データD
CMPの生成に用いられた圧縮処理を識別する圧縮処理識別データを含んでおり、圧縮処理識別回路96は、該圧縮処理識別データから圧縮画像データD
CMPの生成に用いられた圧縮処理を識別し、元データ復元回路91、(1×4)展開回路92、(2+1×2)展開回路93、(2×2)展開回路94及び(4×1)展開回路95からそれぞれ受け取った展開後画像データD
IMG1’〜D
IMG5’のうち、識別した圧縮処理に対応する展開後画像データを選択する選択データを展開データ選択回路97に供給する。展開データ選択回路97は、該選択データに応じて、展開後画像データD
IMG1’〜D
IMG5’のうちから最終的に出力すべき展開後画像データD
IMG’を選択する。
【0108】
本実施例では、(1×4)圧縮回路82、(2+1×2)圧縮回路83、(2×2)圧縮回路84及び(4×1)圧縮回路85において行われるブロック展開において、ディザ値を用いた逆量子化処理が行われ、逆量子化処理において用いられるディザ値が、展開対象ブロックのブロック座標x
BLK’、y
BLK’から生成される。
【0109】
続いて、本実施例のブロック圧縮回路部71において実行されるブロック圧縮及びブロック展開回路部72において実行されるブロック展開の詳細について説明する。
【0110】
本実施例のブロック圧縮では、圧縮対象ブロックの4画素の画像データの相関性が、下記のいずれの場合に該当するかが、ブロック圧縮回路部71の画素相関性判断回路86によって判断される:
ケースA:4画素のうちの任意の組み合わせの画素の画像データの相関性が低い(
図14(a))
ケースB:2画素の画像データの間に高い相関性があり、かつ、他の2画素の画像データは、先の2画素と相関性が低く、且つ、互いに相関性が低い(
図14(b))
ケースC:2画素の画像データの間に高い相関性があり、かつ、他の2画素の画像データの間に高い相関性がある(
図14(c))
ケースD:4画素の画像データの間に高い相関性がある(
図14(d))
【0111】
図15は、画素相関性判断回路86における相関性の判断、及び、当該相間性に基づく最適な圧縮処理の選択の手順を示すフローチャートである。以下の説明では、画素A、B、C、Dの画像データに記述された赤(R)の階調値を、それぞれ、RデータR
A、R
B、R
C、R
Dと記載する。同様に、画素A、B、C、Dの画像データに記述された緑(G)の階調値を、それぞれ、GデータG
A、G
B、G
C、G
Dと記載し、画素A、B、C、Dの画像データに記述された青(B)の階調値をそれぞれ、BデータB
A、B
B、B
C、B
Dと記載する。
【0112】
まず、画素A〜Dの画像データが特定パターンに該当するかが判断され(ステップS01)、画素A〜Dの画像データ特定パターンに該当する場合、可逆圧縮が行われる。本実施例では、画素A〜Dの画像データのデータ値が5種類以下であるような所定のパターンが、可逆圧縮が行われる特定パターンとして選択されている。
【0113】
一例では、画素A〜Dの画像データが、以下の4つのパターン(1)〜(4)のいずれかに該当する場合、可逆圧縮が行われる:
(1) 画素A〜Dの画像データが同一(
図16A参照)
画素A〜Dが下記条件(1a)を満足する場合、可逆圧縮が行われる。
条件(1a):
R
A=R
B=R
C=R
D,
G
A=G
B=G
C=G
D,
B
A=B
B=B
C=B
D.
この場合、画素A〜Dの画像データのデータ値は3種類である。
【0114】
(2) 画素A〜Dそれぞれにおいて、赤、緑、青の3つの階調値が同一(
図16B参照)
画素A〜Dが下記条件(2a)を満足する場合にも可逆圧縮が行われる。
条件(2a):
R
A=G
A=B
A,
R
B=G
B=B
B,
R
C=G
C=B
C,
R
D=G
D=B
D.
この場合、画素A〜Dの画像データのデータ値は4種類である。
【0115】
(3)Rデータ、Gデータ、Bデータのうちの2つの値が、画素A〜Dについて同一(
図16C〜
図16E参照)
下記の3つの条件(3a)〜(3c)のいずれかを満足する場合にも可逆圧縮が行われる:
条件(3a): G
A=G
B=G
C=G
D=B
A=B
B=B
C=B
D.
条件(3b): B
A=B
B=B
C=B
D=R
A=R
B=R
C=R
D.
条件(3c): R
A=R
B=R
C=R
D=G
A=G
B=G
C=G
D.
この場合、画素A〜Dのデータ値は5種類である。
【0116】
(4)Rデータ、Gデータ、Bデータのうちの1つのデータ値が同一、且つ、残りの2つのデータ値が画素A〜Dについて同一(
図17F〜
図17H参照)
更に、下記の3つの条件(4a)〜(4c)のいずれかを満足する場合にも可逆圧縮が行われる:
条件(4a):
G
A=G
B=G
C=G
D,
R
A=B
A,
R
B=B
B,
R
C=B
C,
R
D=B
D.
条件(4b):
B
A=B
B=B
C=B
D.
R
A=G
A,
R
B=G
B,
R
C=G
C,
R
D=G
D.
条件(4c)
R
A=R
B=R
C=R
D.
G
A=B
A,
G
B=B
B,
G
C=B
C,
G
D=B
D.
この場合、画素A〜Dの画像データのデータ値は5種類である。
【0117】
可逆圧縮が行われない場合、画素A〜Dの画素データの相関に応じて圧縮手法が選択される。より具体的には、画素相関性判断回路86は、画素A〜Dの画像データが、上述のケースA〜Dのいずれの場合に該当するかを判断する:
【0118】
詳細には、
i∈{A,B,C,D}
j∈{A,B,C,D}
i≠j
なるi、jの全ての組み合わせについて下記条件(A)が成立しない場合、画素相関性判断回路86は、ケースAに該当する(即ち、画素A〜Dのうちから選択された2画素の可能な組み合わせの全てについて、該2画素の画素データの間の相関性が低い)と判断する(ステップS02)。
条件(A):
|Ri―Rj|≦Th1,且つ
|Gi―Gj|≦Th1,且つ
|Bi―Bj|≦Th1,
ケースAに該当する場合、画素相関性判断回路86は、(1×4)圧縮を行うと決定する。
【0119】
ケースAに該当しないと判断した場合、画素相関性判断回路86は、画素A〜Dに対して第1組の2つの画素と第2組の2つの画素を規定し、前記第1組の2つの画素の画像データの各色の階調の差分が所定値よりも小さく且つ前記第2組の2つの画素の画像データの各色の階調の差分が所定値よりも小さいという条件が満足されるか否かを、第1組、第2組の画素の可能な組み合わせの全てについて、判断する。より具体的には、画素相関性判断回路86は、下記条件(B1)〜(B3)のいずれかが成立するか否かを判断する(ステップS03)。
条件(B1):
|R
A―R
B|≦Th2,且つ
|G
A―G
B|≦Th2,且つ
|B
A―B
B|≦Th2,且つ
|R
C―R
D|≦Th2,且つ
|G
C―G
D|≦Th2,且つ
|B
C―B
D|≦Th2.
条件(B2):
|R
A―R
C|≦Th2,且つ
|G
A―G
C|≦Th2,且つ
|B
A―B
C|≦Th2,且つ
|R
B―R
D|≦Th2,且つ
|G
B―G
D|≦Th2,且つ
|B
B―B
D|≦Th2.
条件(B3):
|R
A―R
D|≦Th2,且つ
|G
A―G
D|≦Th2,且つ
|B
A―B
D|≦Th2,且つ
|R
B―R
C|≦Th2,且つ
|G
B―G
C|≦Th2,且つ
|B
B―B
C|≦Th2.
【0120】
上記条件(B1)〜(B3)がいずれも成立しない場合、画素相関性判断回路86は、ケースBに該当する(即ち、2つの画素の間に高い相関性があり、かつ、他の2つの画素は、互いに相関性が低い)と判断する。この場合、画素相関性判断回路86は、(2+1×2)圧縮を行うと決定する。
【0121】
ケースA、Bのいずれにも該当しないと判断した場合、画素相関性判断回路86は、圧縮対象ブロックの4つの画素の各色について、4つの画素の階調値の最大値と最小値との差が所定値より小さいという条件が満足されるか否かを判断する。より具体的には、画素相関性判断回路86は、下記条件(C)が成立するか否かを判断する(ステップS04)。
条件(C):
max(R
A,R
B,R
C,R
D)−min(R
A,R
B,R
C,R
D)<Th3,且つ
max(G
A,G
B,G
C,G
D)−min(G
A,G
B,G
C,G
D)<Th3,且つ
max(B
A,B
B,B
C,B
D)−min(B
A,B
B,B
C,B
D)<Th3.
【0122】
条件(C)が成立しない場合、画素相関性判断回路86は、ケースCに該当する(即ち、2つの画素の画像データの間に高い相関性があり、かつ、他の2つの画素の画像データの間に高い相関性がある)と判断する。この場合、画素相関性判断回路86は、(2×2)圧縮を行うと決定する。
【0123】
一方、条件(C)が成立する場合、画素相関性判断回路86は、ケースDに該当する(4つの画素の画像データの間に高い相関性がある)と判断する。この場合、画素相関性判断回路86は、(4×1)圧縮を行うと決定する。
【0124】
画素相関性判断回路86は、上記の相関性の認識結果に基づき、(1×4)圧縮、(2+1×2)圧縮、(2×2)圧縮、(4×1)圧縮のいずれを使用すべきかを指示する選択データを生成し、圧縮データ選択回路87に送る。圧縮データ選択回路87は、画素相関性判断回路86から送られてくる選択データに基づいて、可逆圧縮回路81から出力される可逆圧縮データD
CMP1、(1×4)圧縮回路82から出力される(1×4)圧縮データD
CMP2、(2+1×2)圧縮回路83から出力される(2+1×2)圧縮データD
CMP3、(2×2)圧縮回路84から出力される(2×2)圧縮データD
CMP4、及び(4×1)圧縮回路85から出力される(4×1)圧縮データD
CMP5のいずれかを圧縮画像データD
CMPとして出力する。
【0125】
続いて、ブロック圧縮回路部71で行われる可逆圧縮、(1×4)圧縮、(2+1×2)圧縮、(2×2)圧縮、(4×1)圧縮、及び、これらの圧縮処理によって生成された圧縮画像データD
CMPに対してブロック展開回路部72で行われる展開処理の例について詳細に説明する。
【0126】
1.可逆圧縮及びその展開処理
本実施例では、可逆圧縮は、画素A〜Dの画像データのデータ値を並び替えることによって行われる。
図17は、可逆圧縮によって生成された可逆圧縮データD
CMP1のフォーマットの例を示す図である。本実施例では、可逆圧縮データD
CMP1は、48ビットデータであり、圧縮処理識別データと、パターン種類データと、データ#1〜#5と、パディングデータとで構成される。
【0127】
圧縮処理識別データは、圧縮に使われた圧縮処理の種類を示すデータであり、可逆圧縮データD
CMP1では、4ビットが圧縮処理識別データに割り当てられる。本実施例では、可逆圧縮データD
CMP1の圧縮処理識別データの値は「1111」である。
【0128】
パターン種類データは、画素A〜Dの画像データが該当するパターンを指定するデータである。本実施例では、8つの特定パターン(即ち、上述の条件(1a)、(2a)、(3a)〜(3c)、(4a)〜(4c)に該当するパターン)が定義されているから、パターン種類データは3ビットである。
【0129】
データ#1〜#5は、画素A〜Dの画像データのデータ値を並び替えることによって得られるデータである。データ#1〜#5は、いずれも8ビットデータである。上述のように、可逆圧縮が行われる場合、画素A〜Dの画像データのデータ値は5種類以下であるから、データ#1〜#5に全てのデータ値を格納することができる。
【0130】
パディングデータは、可逆圧縮データのビット数を、他の圧縮処理で圧縮された圧縮画像データと同一にするために追加されるデータである。本実施例では、パディングデータは1ビットである。
【0131】
上述の可逆圧縮によって生成された可逆圧縮データの展開は、パターン種類データを参照してデータ#1〜#5を並び替えることによって行われる。パターン種類データには、画素A〜Dの画像データが該当するパターンが記述されているから、パターン種類データを参照することにより、画素A〜Dの画像データを、何らの圧縮歪みを生じさせずに完全に再生することができる。
【0132】
2.(1×4)圧縮及びその展開処理
図18は、(1×4)圧縮データD
CMP2のフォーマットを示す概念図である。上述のように、(1×4)圧縮は、4画素のうちから選択された2つの画素の組み合わせの全てについて、該2つの画素の画像データの相関性が低い場合に採用される圧縮処理である。
図18に示されているように、本実施例では、(1×4)圧縮データD
CMP2は、圧縮処理識別データと、R
A*、G
A*、B
A*データと、R
B*、G
B*、B
B*データと、R
C*、G
C*、B
C*データと、R
D*、G
D*、B
D*データとで構成される。本実施例では、(1×4)圧縮データD
CMP2は、可逆圧縮データD
CMP1と同様に48ビットデータである。
【0133】
圧縮処理識別データとは、圧縮に使われた圧縮処理の種類を示すデータであり、(1×4)圧縮データD
CMP2では、1ビットが圧縮処理識別データに割り当てられる。本実施例では、(1×4)圧縮データの圧縮処理識別データの値は「0」である。
【0134】
一方、R
A*、G
A*、B
A*データは、それぞれ、画素AのRデータR
A、GデータG
A、BデータB
Aに対して量子化処理を行って得られるデータであり、R
B*、G
B*、B
B*データは、画素BのRデータR
B、GデータG
B、BデータB
Bに対して量子化処理を行って得られるデータである。同様に、R
C*、G
C*、B
C*データは、それぞれ、画素CのRデータR
C、GデータG
C、BデータB
Cに対して量子化処理を行って得られるデータであり、R
D*、G
D*、B
D*データは、画素DのRデータR
D、GデータG
D、BデータB
Dに対して量子化処理を行って得られるデータである。本実施例では、画素DのBデータに対応するB
D*データのみ3ビットデータであり、残りのデータ(R
A*、G
A*、B
A*データ、R
B*、G
B*、B
B*データ、R
C*、G
C*、B
C*データ、及び、R
D*、G
D*データ)は4ビットデータである。後に詳細に説明するように、R
A*、G
A*、B
A*データ、R
B*、G
B*、B
B*データ、R
C*、G
C*、B
C*データ及びR
D*、G
D*、B
D*データを生成する量子化処理において、圧縮対象ブロックのブロック座標x
BLK、y
BLKから生成されるディザ値が用いられる。
【0135】
図19Aは、(1×4)圧縮におけるデータ処理の例を示す概念図である。(1×4)圧縮では、画素A〜Dの画像データのそれぞれについて、ディザ値を用いた量子化処理が行われ、これにより、画素A〜Dの画像データのビット数が減少される。なお、
図19Aにおいては、画素A、B、C、Dについてそれぞれに定められたディザ値E0、E1、E2、E3が、それぞれ、0、5、10、15であるとして(1×4)圧縮のデータ処理が図示されている。
【0136】
詳細には、R
A*、G
A*、B
A*データの生成においては、画素AのRデータR
A、GデータG
A、BデータB
Aのそれぞれに4ビットのディザ値E0を加算する処理が行われる。ディザ値E0は、例えば、上述の式(3a)で算出される疑似乱数V0の下位4ビットとして得ることができる。式(3a)による疑似乱数V0の算出においては、圧縮対象ブロックの画素Aの座標x
A、y
Bが用いられるが、画素Aの座標x
A、y
Aは、圧縮対象ブロックのブロック座標x
BLK、y
BLKから決定可能であることに留意されたい。
【0137】
更に、ディザ値E0が加算された画素AのRデータ、Gデータ、Bデータに、丸め処理又はビット切捨て処理が行われてR
A*、G
A*、B
A*データが生成される。
図19Aの例では、ディザ値E0が加算された画素AのRデータ、Gデータ、Bデータに、値8を加算した後、下位4ビットを切り捨てる処理が行われる。
【0138】
R
B*、G
B*、B
B*データ、R
C*、G
C*、B
C*データ及びR
D*、G
D*、B
D*データについても同様に生成される。R
B*、G
B*、B
B*データの生成においては、画素BのRデータR
B、GデータG
B、BデータB
Bのそれぞれに4ビットのディザ値E1を加算する処理が行われる。ディザ値E1は、例えば、上述の式(3b)で算出される疑似乱数V1の下位4ビットとして得ることができる。更に、ディザ値E1が加算された画素BのRデータ、Gデータ、Bデータに、丸め処理又はビット切捨て処理が行われてR
B*、G
B*、B
B*データが生成される。
図19Aの例では、ディザ値E1が加算された画素BのRデータ、Gデータ、Bデータに、値8を加算した後、下位4ビットを切り捨てる処理が行われる。
【0139】
R
C*、G
C*、B
C*データの生成においては、画素CのRデータR
C、GデータG
C、BデータB
Cのそれぞれに4ビットのディザ値E2を加算する処理が行われる。ディザ値E2は、例えば、上述の式(3c)で算出される疑似乱数V2の下位4ビットとして得ることができる。更に、ディザ値E2が加算された画素CのRデータ、Gデータ、Bデータに、丸め処理又はビット切捨て処理が行われてR
C*、G
C*、B
C*データが生成される。
図19Aの例では、ディザ値E2が加算された画素CのRデータ、Gデータ、Bデータに、値8を加算した後、下位4ビットを切り捨てる処理が行われる。
【0140】
R
D*、G
D*、B
D*データの生成においては、画素DのRデータR
D、GデータG
D、BデータB
Dのそれぞれに4ビットのディザ値E3を加算する処理が行われる。ディザ値E3は、例えば、上述の式(3d)で算出される疑似乱数V3の下位4ビットとして得ることができる。更に、ディザ値E3が加算された画素DのRデータ、Gデータ、Bデータに、丸め処理又はビット切捨て処理が行われてR
D*、G
D*、B
D*データが生成される。
図19Aの例では、R
D*データ、G
D*データは、ディザ値E3が加算された画素DのRデータ、Gデータに、値8を加算した後、下位4ビットを切り捨てる処理が行われることで生成される。また、B
D*データは、ディザ値E3が加算された画素DのBデータに、値16を加算した後、下位5ビットを切り捨てる処理が行われることで生成される。
【0141】
このようにして生成されたR
A*、G
A*、B
A*データ、R
B*、G
B*、B
B*データ、R
C*、G
C*、B
C*データ、及びR
D*、G
D*、B
D*データに、圧縮処理識別データとして値「0」を付加することにより、(1×4)圧縮データD
CMP2が生成される。
【0142】
続いて、
図19Bを参照しながら、(1×4)圧縮で圧縮された圧縮画像データD
CMP2の展開処理におけるデータ処理について説明する。(1×4)圧縮データD
CMP2の展開では、R
A*、G
A*、B
A*データ、R
B*、G
B*、B
B*データ、R
C*、G
C*、B
C*データ、及びR
D*、G
D*、B
D*データに対し、ディザ値を用いた逆量子化処理が行われる。
【0143】
詳細には、展開後画像データD
IMG2’の画素AのRデータ、Gデータ、Bデータは、それぞれ、R
A*、G
A*、B
A*データに対して4ビットの左シフトを行い、更に、ディザ値E0’を減算することで得られる値として再生される。ディザ値E0’は、例えば、上述の式(6a)で算出される疑似乱数V0’の下位4ビットとして得ることができる。式(6a)による疑似乱数V0’の算出においては、展開対象ブロックの画素Aの座標x
A’
、y
B’が用いられるが、画素Aの座標x
A’
、y
B’は、展開対象ブロックのブロック座標x
BLK’、y
BLK’から決定可能であることに留意されたい。
【0144】
同様に、展開後画像データD
IMG2’の画素BのRデータ、Gデータ、Bデータは、それぞれ、R
B*、G
B*、B
B*データに対して4ビットの左シフトを行い、更に、ディザ値E1’を減算することで得られる値として再生される。ディザ値E1’は、例えば、上述の式(6b)で算出される疑似乱数V1’の下位4ビットとして得ることができる。
【0145】
また、展開後画像データD
IMG2’の画素CのRデータ、Gデータ、Bデータは、それぞれ、R
C*、G
C*、B
C*データに対して4ビットの左シフトを行い、更に、ディザ値E2’を減算することで得られる値として再生される。ディザ値E2’は、例えば、上述の式(6c)で算出される疑似乱数V2’の下位4ビットとして得ることができる。
【0146】
更に、展開後画像データD
IMG2’の画素DのRデータ、Gデータは、それぞれ、R
D*、G
D*データに対して4ビットの左シフトを行い、更に、ディザ値E3’を減算することで得られる値として再生される。ディザ値E3’は、例えば、上述の式(6d)で算出される疑似乱数V2’の下位4ビットとして得ることができる。また、展開後画像データD
IMG2’の画素DのBデータは、B
D*データに対して5ビットの左シフトを行い、更に、ディザ値E3’を減算することで得られる値として再生される。
【0147】
以上の手順により、(1×4)圧縮で圧縮された圧縮画像データD
CMP2の展開処理が完了する。
【0148】
3.(2+1×2)圧縮及びその展開処理
図20は、(2+1×2)圧縮データD
CMP3のフォーマットを示す概念図である。上述のように、(2+1×2)圧縮は、2つの画素の画像データの間に高い相関性があり、かつ、他の2つの画素の画像データは、先の2つの画素の画像データと相関性が低く、且つ、互いに相関性が低い場合に採用される。
図20に示されているように、本実施例では、(2+1×2)圧縮データが、圧縮処理識別データ、形状認識データ、R代表値、G代表値、B代表値、β比較結果データ、大小認識データ、R
i*、G
i*、B
i*データ、及びR
j*、G
j*、B
j*データで構成される。ここで、(2+1×2)圧縮データD
CMP3は、上述の可逆圧縮データD
CMP1及び(1×4)圧縮データD
CMP2と同様に、48ビットデータである。
【0149】
圧縮処理識別データとは、圧縮に使われた圧縮処理の種類を示すデータであり、(2+1×2)圧縮データでは、2ビットが圧縮処理識別データに割り当てられる。本実施例では、(2+1×2)圧縮データの圧縮処理識別データの値は「10」である。
【0150】
形状認識データとは、画素A〜Dのうち、どの2つの画素の画像データの相関性が高いかを示す3ビットデータである。(2+1×2)圧縮が使用される場合、画素A〜Dのうち、2つの画素の画像データの相関性が高く、残りの2つの画素の画像データは他の2つの画素の画像データとの相関性が低い。したがって、画像データの相関性が高い2つの画素の組み合わせは、下記の6通りである:
・画素A、C
・画素B、D
・画素A、B
・画素C、D
・画素B、C
・画素A、D
形状認識データは、3ビットによって、画像データの相関性が高い2つの画素が、これらの6つの組み合わせのいずれであるかを示している。
【0151】
R代表値、G代表値、B代表値は、それぞれ、画像データの相関性が高い2つの画素のRデータ、Gデータ、Bデータを代表する値である。
図20の例では、R代表値及びG代表値に5ビット又は6ビットのデータであり、B代表値は5ビットのデータである。
【0152】
β比較データとは、画像データの相関性が高い2つの画素のRデータの差及びGデータの差が、所定の閾値βよりも大きいか否かを示すデータである。本実施例では、β比較データは2ビットのデータである。一方、大小認識データは、画像データの相関性が高い2つの画素のうち、どちらの画素のRデータが大きいか、及び、どちらの画素のGデータが大きいかを示すデータである。Rデータに対応する大小認識データは、画像データの相関性が高い2つの画素のRデータの差が閾値βよりも大きい場合にのみ生成され、Gデータに対応する大小認識データは、画像データの相関性が高い2つの画素のGデータの差が閾値βよりも大きい場合にのみ生成される。したがって、大小認識データは、0〜2ビットのデータである。
【0153】
R
i*、G
i*、B
i*データ、及びR
j*、G
j*、B
j*データは、画像データの相関性が低い2つの画素のRデータ、Gデータ、Bデータに対して量子化処理を行って得られるデータである。なお、i、jは、A、B、C、Dから互いに異なるように選択された2つである。本実施例では、R
i*、G
i*、B
i*データ、及びR
j*、G
j*、B
j*データは、いずれも、4ビットデータである。
【0154】
以下では、
図21Aを参照しながら、(2+1×2)圧縮におけるデータ処理について説明する。以下の説明では、画素A、Bの画像データの相関性が高く、画素C、Dのそれぞれの画像データが画素A、Bの画像データに対して相関性が低く、且つ、画素C、Dの画像データ相互の相関性が低い場合における(2+1×2)圧縮データの生成について記述している。他の場合も同様にして(2+1×2)圧縮データが生成可能であることは、当業者には容易に理解されよう。
【0155】
まず、(相関性が高い)画素A、Bの画像データの圧縮処理について説明する。まず、画素A、BのRデータ(R
A、R
B)、Gデータ(G
A、G
B)、Bデータ(B
A、B
B)のそれぞれの平均値が算出される。Rデータ、Gデータ、Bデータの平均値Rave、Gave、Baveは、下記式によって算出される:
Rave=(R
A+R
B+1)/2,
Gave=(G
A+G
B+1)/2,
Bave=(B
A+B
B+1)/2.
【0156】
更に、画素A、BのRデータの差|R
A−R
B|及び、Gデータの差|G
A−G
B|が、所定の閾値βよりも大きいか否かが比較される。この比較結果を示すデータが、β比較データとして(2+1×2)圧縮データD
CMP3に組み込まれる。
【0157】
更に、下記の手順により、画素A、BのRデータ及びGデータについて大小認識データが作成される。画素A、BのRデータの差|R
A−R
B|が閾値βよりも大きい場合、画素A、BのいずれのRデータが大きいかを示すデータが、大小認識データに組み込まれる。画素A、BのRデータの差|R
A−R
B|が閾値β以下の場合には、画素A、BのRデータの大小関係は、大小認識データに記述されない。同様に、画素A、BのGデータの差|G
A−G
B|が閾値βよりも大きい場合、画素A、BのいずれのGデータが大きいかを示すデータが大小認識データに組み込まれる。画素A、BのGデータの差|G
A−G
B|が閾値β以下の場合には、画素A、BのGデータの大小関係は、大小認識データに記述されない。このようにして生成された大小認識データが、(2+1×2)圧縮データD
CMP3に組み込まれる。
【0158】
更に、画素A、BのRデータ、Gデータ、Bデータの平均値Rave、Gave、Baveに対してディザ値を用いた量子化処理が行われてR代表値、G代表値、B代表値が算出される。
【0159】
R代表値、G代表値、B代表値の量子化処理においては、まず、画素A、BのRデータ、Gデータ、Bデータの平均値Rave、Gave、Baveにディザ値が加算される。本実施例では、ディザ値は、圧縮対象ブロックのブロック座標x
BLK、y
BLKから算出される。例えば、ディザ値は、(相関性が高い)画素A、Bのうちの一方の画素の座標を用いて、式(3a)又は(3b)から算出された疑似乱数V0又はV1の下位4ビットとして算出してもよい。
図21Aには、画素Aの座標から算出されたディザ値E0が量子化処理に用いられ、且つ、該算出されたディザ値が0である例が図示されている。
【0160】
更に、ディザ値が加算された平均値Rave、Gave、Baveに対して丸め処理又はビット切捨て処理が行われてR代表値、G代表値、B代表値が算出される。
【0161】
ここで、R代表値、G代表値の算出における丸め処理において加算される数値、及びビット切捨て処理で切り捨てられるビット数は、それぞれ、差|R
A−R
B|、|G
A−G
B|と閾値βとの大小関係に応じて決定される。本実施例では、R代表値の算出において、Rデータの差|R
A−R
B|が閾値βよりも大きい場合にRデータの平均値Raveに値4を加えた後下位3ビットを切り捨てる処理が行われ、これによりR代表値が算出される。そうでない場合、平均値Raveに値2を加えた後下位2ビットを切り捨てる処理が行われ、これによりR代表値が算出される。Gデータの平均値Gaveについても同様に、Gデータの差|G
A−G
B|が閾値βよりも大きい場合、Gデータの平均値Gaveに値4を加えた後下位3ビットを切り捨てる処理が行われ、これによりG代表値が算出される。そうでない場合、平均値Gaveに値2を加えた後下位2ビットを切り捨てる処理が行われ、これによりG代表値が算出される。
【0162】
一方、B代表値については、Bデータの平均値Baveに値4を加えた後下位3ビットを切り捨てる処理が行われ、これによりB代表値が算出される。以上により、画素A、Bの画像データについての圧縮処理が完了する。
【0163】
(相関性が低い)画素C、Dについては、(1×4)圧縮と同様の処理が行われる。即ち、画素C、Dのそれぞれについて、ディザ値を用いた量子化処理が個別に行われ、これにより、画素C、DのRデータ、Gデータ、Bデータのビット数を減少する処理が行われる。詳細には、まず、画素C、DのRデータ(R
C、R
D)、Gデータ(G
C、G
D)、Bデータ(B
C、B
D)のそれぞれにディザ値を加算する処理が行われる。上述のように、ディザ値は、圧縮対象ブロックのブロック座標x
BLK、y
BLKから算出される。
図21Aでは、画素C、Dについて定められたディザ値E2、E3がそれぞれ10、15であるとして(2+1×2)圧縮が図示されている。
【0164】
更に、丸め処理とビット切捨て処理が行われてR
C*、G
C*、B
C*データ、R
D*、G
D*、B
D*データが生成される。詳細には、ディザ値が加算された画素C、DそれぞれのR、G、Bデータのそれぞれについて、値8を加算した後、下位4ビットを切り捨てる処理が行われる。これにより、R
C*、G
C*、B
C*データ、R
D*、G
D*、B
D*データが算出される。
【0165】
以上のようにして生成されたR代表値、G代表値、B代表値、大小認識データ、β比較結果データ、R
C*、G
C*、B
C*データ、及びR
D*、G
D*、B
D*データに、圧縮処理識別データ及び形状認識データを付加することにより、(2+1×2)圧縮データD
CMP3が生成される。
【0166】
続いて、
図21Bを参照しながら、(2+1×2)圧縮で圧縮された圧縮画像データD
CMP3の展開処理におけるデータ処理について説明する。以下では、画素A、Bの間の相関性が高く、画素C、Dが画素A、Bに対して相関性が低く、且つ、画素C、D相互の相関性が低い場合における(2+1×2)圧縮データD
CMP3の展開処理について記述している。他の場合も同様にして(2+1×2)圧縮データD
CMP3が展開可能であることは、当業者には容易に理解されよう。
【0167】
まず、(相関性が高い)画素A、Bに関する展開処理について説明する。画素A、Bに関する展開処理では、R代表値、G代表値、B代表値に対してディザ値を用いた逆量子化処理が行われる。詳細には、まず、R代表値、G代表値、B代表値に対して左シフト(ビット繰上げ)が行われる。R代表値、G代表値に対する左シフトのビット数は、β比較データに記述された、階調値の差|R
A−R
B|、|G
A−G
B|と閾値βとの大小関係に応じて決定される。Rデータの差|R
A−R
B|が閾値βよりも大きい場合、R代表値に対して3ビットの左シフトが行われ、そうでない場合、2ビットの左シフトが行われる。同様に、Gデータの差|G
A−G
B|が閾値βよりも大きい場合、G代表値に対して3ビットの左シフトが行われ、そうでない場合、2ビットの左シフトが行われる。B代表値については、β比較データに関係なく、3ビットの左シフトが行われる。
【0168】
更に、左シフトがなされたR代表値、G代表値、B代表値のそれぞれについて、ディザ値の減算が行われる。本実施例では、ディザ値は、展開対象ブロックのブロック座標x
BLK’、y
BLK’から算出される。例えば、ディザ値は、(相関性が高い)画素A、Bのうちの一方の画素の座標を用いて、式(6a)又は(6b)から算出された疑似乱数V0’又はV1’の下位4ビットとして算出してもよい。
図21Bには、画素Aの座標から算出されたディザ値E0’がR代表値、G代表値、B代表値の逆量子化処理に用いられ、且つ、算出されたディザ値E0’が0である例が図示されている。以上で、R代表値、G代表値、B代表値の逆量子化処理が完了する。
【0169】
R代表値に対して上述されている逆量子化処理(左シフト及びディザ値の減算)を行うことで得られた値を、以下では、逆量子化R代表値と記載する。同様に、G代表値に対して逆量子化処理を行うことで得られた値を、逆量子化G代表値と記載し、B代表値に対して逆量子化処理を行うことで得られた値を、逆量子化B代表値と記載する。
【0170】
更に、逆量子化R代表値、逆量子化G代表値、逆量子化B代表値から画素A、BのRデータ、Gデータ、Bデータが再生される。
【0171】
画素A、BのRデータの再生においては、β比較データ及び大小認識データが使用される。β比較データにおいて、Rデータの差|R
A−R
B|が閾値βよりも大きいと記述されている場合、逆量子化R代表値に一定値(例えば、5)を加えた値が、画素A、Bのうち大小認識データにおいて値が大きいと記述されている画素のRデータとして再生され、逆量子化R代表値に該一定値を減じた値が大小認識データにおいて値が小さいと記述されている画素のRデータとして再生される。一方、Rデータの差|R
A−R
B|が閾値βよりも小さい場合、画素A、BのRデータは、逆量子化R代表値に一致するとして再生される。
【0172】
画素A、BのGデータの再生においても、β比較データ及び大小認識データを用いて同様の処理が行われる。一方、画素A、BのBデータの再生においては、β比較データ及び大小認識データに無関係に、画素A、BのBデータの値がいずれも、逆量子化R代表値に一致するとして再生される。
【0173】
以上で、画素A、BのRデータ、Gデータ、Bデータの再生が完了する。
【0174】
(相関性が低い)画素C、Dに対する展開処理では、上述の(1×4)圧縮データの展開処理と同様の逆量子化処理が行われる。画素C、Dに対する展開処理では、まず、R
C*、G
C*、B
C*データ、及びR
D*、G
D*、B
D*データのそれぞれについて、4ビットの左シフトが行われる。更に、ディザ値E2’、E3’の減算が行われ、これにより、画素C、DのRデータ、Gデータ、Bデータが再生される。
【0175】
以上の過程により、展開対象ブロックの画素A〜Dの全ての画像データの再生が完了する。即ち、(2+1×2)圧縮で圧縮された圧縮画像データD
CMP2の展開処理が完了する。
【0176】
4.(2×2)圧縮及びその展開処理
図22は、(2×2)圧縮データD
CMP4のフォーマットを示す概念図である。上述のように、(2×2)圧縮は、2つの画素の画像データに高い相関性があり、かつ、他の2つの画素の間に高い相関性がある場合に使用される圧縮処理である。本実施例では、(2×2)圧縮データD
CMP4も48ビットデータであり、圧縮処理識別データと、形状認識データと、R代表値#1と、G代表値#1と、B代表値#1と、R代表値#2と、G代表値#2と、B代表値#2と、β比較データと、大小認識データとで構成される。
【0177】
圧縮処理識別データとは、圧縮に使われた圧縮処理の種類を示すデータであり、(2×2)圧縮データD
CMP4では、3ビットが圧縮処理識別データに割り当てられる。本実施例では、(2×2)圧縮データの圧縮処理識別データの値は「110」である。
【0178】
形状認識データとは、画素A〜Dのうち、どの2つの画素の画像データの相関性が高いかを示す2ビットデータである。(2×2)圧縮が使用される場合、画素A〜Dのうち、2つの画素(以下、第1画素対という)の画像データに高い相関性があり、かつ、他の2つの画素(以下、第2画素対という)の画像データに高い相関性がある。したがって、画像データの相関性が高い2つの画素の組み合わせは、下記の3通りである:
・画素A、Bの相関性が高く、画素C、Dの相関性が高い
・画素A、Cの相関性が高く、画素B、Dの相関性が高い
・画素A、Dの相関性が高く、画素B、Cの相関性が高い
形状認識データは、2ビットによって、これらの3つの組み合わせのいずれかを示している。
【0179】
R代表値#1、G代表値#1、B代表値#1は、それぞれ、第1画素対の画素のRデータ、Gデータ、Bデータを代表する値であり、R代表値#2、G代表値#2、B代表値#2は、それぞれ、第2画素対の画素のRデータ、Gデータ、Bデータを代表する値である。
図22の例では、R代表値#1、G代表値#1、B代表値#1、R代表値#2、及びB代表値#2は、5ビット又は6ビットのデータであり、G代表値#2は6又は7ビットのデータである。
【0180】
β比較データと大小認識データとを含んでいる。β比較データとは、相関性が高い2つの画素のRデータの差、Gデータの差、及び、Bデータの差が、それぞれ、所定の閾値βよりも大きいか否かを示すデータである。本実施例では、β比較データは、第1画素対及び第2画素対のそれぞれに3ビットが割り当てられた6ビットのデータである。一方、大小認識データは、第1画素対、及び第2画素対のそれぞれについて、どちらの画素のRデータの値が大きいか、どちらの画素のGデータの値が大きいか、及び、どちらの画素のBデータの値が大きいかを示すデータである。各画素対について、Rデータに対応する大小認識データは、該画素対のRデータの差が閾値βよりも大きい場合にのみ生成される。同様に、各画素対について、Gデータに対応する大小認識データは、該画素対のGデータの差が閾値βよりも大きい場合にのみ生成され、Bデータに対応する大小認識データは、該画素対のBデータの差が閾値βよりも大きい場合にのみ生成される。したがって、大小認識データは、0〜6ビットのデータである。
【0181】
以下、
図23Aを参照しながら、(2×2)圧縮におけるデータ処理について説明する。以下では、画素A、Bの間の相関性が高く、画素C、Dの間の相関性が高い場合における(2×2)圧縮データの生成について記述している。画素A、Bが第1画素対と定義され、画素C、Dが第2画素対と定義される。他の場合も同様にして(2×2)圧縮データが生成可能であることは、当業者には容易に理解されよう。
【0182】
まず、各画素対について、Rデータ、Gデータ、Bデータの平均値が算出される。詳細には、画素A、BのRデータ、Gデータ、Bデータの平均値Rave1、Gave1、Bave1、及び画素C、DのRデータ、Gデータ、Bデータの平均値Rave2、Gave2、Bave2は、下記式によって算出される:
Rave1=(R
A+R
B+1)/2,
Gave1=(G
A+G
B+1)/2,
Bave1=(B
A+B
B+1)/2,
Rave2=(R
A+R
B+1)/2,
Gave2=(G
A+G
B+1)/2,
Bave1=(B
A+B
B+1)/2.
【0183】
更に、画素A、BのRデータの差|R
A−R
B|、Gデータの差|G
A−G
B|、及び、Bデータの差|B
A−B
B|が、所定の閾値βよりも大きいか否かが比較される。同様に、画素C、DのRデータの差|R
C−R
D|、Gデータの差|G
C−G
D|、及び、Bデータの差|B
C−B
D|が、所定の閾値βよりも大きいか否かが比較される。これらの比較結果を記述するβ比較データが、(2×2)圧縮データD
CMP4に組み込まれる。
【0184】
更に、画素A、Bの組み合わせ、及び画素C、Dの組み合わせのそれぞれについて大小認識データが作成される。作成された大小認識データは、(2+1×2)圧縮データに組み込まれる。
【0185】
詳細には、画素A、BのRデータの差|R
A−R
B|が閾値βよりも大きい場合、画素A、BのいずれのRデータが大きいかが、大小認識データに記述される。画素A、BのRデータの差|R
A−R
B|が閾値β以下の場合には、画素A、BのRデータの大小関係は、大小認識データに記述されない。同様に、画素A、BのGデータの差|G
A−G
B|が閾値βよりも大きい場合、画素A、BのいずれのGデータが大きいかが、大小認識データに記述される。画素A、BのGデータの差|G
A−G
B|が閾値β以下の場合には、画素A、BのGデータの大小関係は、大小認識データに記述されない。加えて、画素A、BのBデータの差|B
A−B
B|が閾値βよりも大きい場合、画素A、BのいずれのBデータが大きいかが、大小認識データに記述される。画素A、BのBデータの差|B
A−B
B|が閾値β以下の場合には、画素A、BのBデータの大小関係は、大小認識データに記述されない。
【0186】
同様に、画素C、DのRデータの差|R
C−R
D|が閾値βよりも大きい場合、画素C、DのいずれのRデータが大きいかが、大小認識データに記述される。画素C、DのRデータの差|R
C−R
D|が閾値β以下の場合には、画素C、DのRデータの大小関係は、大小認識データに記述されない。同様に、画素C、DのGデータの差|G
C−G
D|が閾値βよりも大きい場合、画素C、DのいずれのGデータが大きいかが、大小認識データに記述される。画素C、DのGデータの差|G
C−G
D|が閾値β以下の場合には、画素C、DのGデータの大小関係は、大小認識データに記述されない。加えて、画素C、DのBデータの差|B
C−B
D|が閾値βよりも大きい場合、画素C、DのいずれのBデータが大きいかが、大小認識データに記述される。画素C、DのBデータの差|B
C−B
D|が閾値β以下の場合には、画素C、DのBデータの大小関係は、大小認識データに記述されない。
【0187】
更に、画素A、BのRデータ、Gデータ、Bデータの平均値Rave1、Gave1、Bave1、及び、画素C、DのRデータ、Gデータ、Bデータの平均値Rave2、Gave2、Bave2に対してディザ値を用いた量子化処理が行われてR代表値#1、G代表値#1、B代表値#1、R代表値#2、G代表値#2、B代表値#2が算出される。
【0188】
平均値Rave1、Gave1、Bave1の量子化処理においては、まず、画素A、BのRデータ、Gデータ、Bデータの平均値Rave1、Gave1、Bave1にディザ値が加算される。本実施例では、該ディザ値は、圧縮処理ブロックのブロック座標x
BLK、y
BLKから算出される。例えば、平均値Rave1、Gave1、Bave1に対する量子化処理で用いられるディザ値は、対応する画素A、Bのうちの一方の画素の座標を用いて、式(3a)又は(3b)から算出された疑似乱数V0又はV1の下位4ビットとして算出してもよい。本実施例では、平均値Rave1、Gave1、Bave1の量子化処理において画素Aの座標から算出されたディザ値E0が用いられ、該算出されたディザ値E0が0であるとして説明が行われる。
【0189】
平均値Rave2、Gave2、Bave2の量子化処理においても同様に、画素C、CのRデータ、Gデータ、Bデータの平均値Rave2、Gave2、Bave2にディザ値が加算される。該ディザ値も、圧縮処理ブロックのブロック座標x
BLK、y
BLKから算出される。例えば、平均値Rave2、Gave2、Bave2に対する量子化処理で用いられるディザ値は、対応する画素C、Dのうちの一方の画素の座標を用いて、式(3c)又は(3d)から算出された疑似乱数V2又はV3の下位4ビットとして算出してもよい。本実施例では、平均値Rave2、Gave2、Bave2の量子化処理において画素Cの座標から算出されたディザ値E2が用いられ、該算出されたディザ値E2が10であるとして説明が行われる。
【0190】
更に、ディザ値が加算された平均値Rave1、Gave1、Bave1、平均値Rave2、Gave2、Bave2に対して丸め処理又はビット切捨て処理が行われてR代表値、G代表値、B代表値が算出される。まず、画素A、Bについて説明すると、丸め処理において加算される数値及びビット切捨て処理で切り捨てられるビット数は、Rデータ、Gデータ、Bデータの差|R
A−R
B|、|G
A−G
B|、及び|B
A−B
B|と閾値βとの大小関係に応じて、2ビット又は3ビットに決定される。Rデータについては、Rデータの差|R
A−R
B|が閾値βよりも大きい場合、Rデータの平均値Rave1に値4を加えた後下位3ビットを切り捨てる処理が行われ、これによりR代表値#1が算出される。そうでない場合、平均値Rave1に値2を加えた後下位2ビットを切り捨てる処理が行われ、これによりR代表値#1が算出される。結果として、R代表値#1は、5ビット又は6ビットになる。Gデータ、Bデータについても同様である。Gデータの差|G
A−G
B|が閾値βよりも大きい場合、Gデータの平均値Gave1に値4を加えた後下位3ビットを切り捨てる処理が行われ、これによりG代表値#1が算出される。そうでない場合、平均値Gave1に値2を加えた後下位2ビットを切り捨てる処理が行われ、これによりG代表値#1が算出される。更に、Bデータの差|B
A−B
B|が閾値βよりも大きい場合、Bデータの平均値Bave1に値4を加えた後下位3ビットを切り捨てる処理が行われ、これによりB代表値#1が算出される。そうでない場合、平均値Bave1に値2を加えた後下位2ビットを切り捨てる処理が行われ、これによりB代表値#1が算出される。
【0191】
画素C、Dの組み合わせについても同様の処理が行われてR代表値#2、G代表値#2、B代表値#2が算出される。ただし、画素C、DのGデータについては、丸め処理において加算される数値及びビット切捨て処理で切り捨てられるビット数は、1ビット又は2ビットである。Gデータの差|G
C−G
D|が閾値βよりも大きい場合、Gデータの平均値Gave2に値2を加えた後下位2ビットを切り捨てる処理が行われ、これによりG代表値#2が算出される。そうでない場合、平均値Gave2に値1を加えた後下位1ビットを切り捨てる処理が行われ、これによりG代表値#2が算出される。
【0192】
以上により、(2×2)圧縮による圧縮処理が完了する。
【0193】
続いて、
図23Bを参照しながら、(2×2)圧縮で圧縮された圧縮画像データD
CMP4の展開処理におけるデータ処理について説明する。以下では、画素A、Bの画像データの間の相関性が高く、且つ、画素C、Dの画像データの間の相関性が高い場合における(2×2)圧縮データD
CMP4の展開について記述している。他の場合も同様にして(2×2)圧縮データD
CMP4が展開可能であることは、当業者には容易に理解されよう。
【0194】
まず、(2×2)圧縮データD
CMP4に対する展開処理では、R代表値#1、G代表値#1、B代表値#1に対してディザ値を用いた逆量子化処理が行われる。
【0195】
詳細には、まず、R代表値#1、G代表値#1、B代表値#1に対して左シフト(ビット繰上げ)が行われる。左シフトのビット数は、β比較データに記述された、画素A、BのRデータ、Gデータ、Bデータの差|R
A−R
B|、|G
A−G
B|、|B
A−B
B|と閾値βとの大小関係に応じて決定される。画素A、BのRデータの差|R
A−R
B|が閾値βよりも大きい場合、R代表値#1に対して3ビットの左シフトが行われ、そうでない場合、2ビットのビット繰上げ処理が行われる。同様に、画素A、BのGデータの差|G
A−G
B|が閾値βよりも大きい場合、G代表値#1に対して3ビットのビット繰上げ処理が行われ、そうでない場合、2ビットのビット繰上げ処理が行われる。更に、画素A、BのBデータの差|B
A−B
B|が閾値βよりも大きい場合、B代表値#1に対して3ビットのビット繰上げ処理が行われ、そうでない場合、2ビットのビット繰上げ処理が行われる。
【0196】
R代表値#2、G代表値#2、B代表値#2についても同様の左シフトが行われる。ただし、G代表値#2の左シフトのビット数は、1ビット又は2ビットのうちから選ばれる。画素C、DのGデータの差|G
C−G
D|が閾値βよりも大きい場合、G代表値#2に対して2ビットの左シフトが行われ、そうでない場合、1ビットの左シフトが行われる。
【0197】
更に、左シフトがなされたR代表値#1、G代表値#1、B代表値#1、R代表値#2、G代表値#2、B代表値#2のそれぞれについて、ディザ値の減算が行われる。本実施例では、ディザ値は、展開対象ブロックのブロック座標x
BLK’、y
BLK’から算出される。例えば、画素A、Bに対応するR代表値#1、G代表値#1、B代表値#1の逆量子化処理に用いられるディザ値は、画素A、Bのうちの一方の画素の座標を用いて、式(6a)又は(6b)から算出された疑似乱数V0’又はV1’の下位4ビットとして算出してもよい。
図23Bには、画素Aの座標から算出されたディザ値E0’がR代表値#1、G代表値#1、B代表値#1の逆量子化処理に用いられ、且つ、算出されたディザ値E0’が0である例が図示されている。また、画素C、Dに対応するR代表値#2、G代表値#2、B代表値#2の逆量子化処理に用いられるディザ値は、画素C、Dのうちの一方の画素の座標を用いて、式(6c)又は(6d)から算出された疑似乱数V2’又はV3’の下位4ビットとして算出してもよい。
図23Bには、画素Cの座標から算出されたディザ値E2’がR代表値#2、G代表値#2、B代表値#2の逆量子化処理に用いられ、且つ、算出されたディザ値E2’が10である例が図示されている。以上で、R代表値#1、G代表値#1、B代表値#1、R代表値#2、G代表値#2、B代表値#2の逆量子化処理が完了する。
【0198】
R代表値#1、G代表値#1、B代表値#1に対して上記のような逆量子化処理(左シフト及びディザ値の減算)を行うことで得られた値を、以下では、それぞれ、逆量子化R代表値#1、逆量子化G代表値#1、逆量子化B代表値#1と記載する。同様に、R代表値#2、G代表値#2、B代表値#2に対して上記のような逆量子化処理(左シフト及びディザ値の減算)を行うことで得られた値を、以下では、それぞれ、逆量子化R代表値#2、逆量子化G代表値#2、逆量子化B代表値#2と記載する。
【0199】
更に、逆量子化R代表値#1、逆量子化G代表値#1、逆量子化B代表値#1から画素A、BのRデータ、Gデータ、Bデータが再生され、逆量子化R代表値#2、逆量子化G代表値#2、逆量子化B代表値#2から画素C、DのRデータ、Gデータ、Bデータが再生される。
【0200】
各画素のRデータ、Gデータ、Bデータの再生においては、β比較データ及び大小認識データが使用される。β比較データにおいて、画素A、BのRデータの差|R
A−R
B|が閾値βよりも大きいと記述されている場合、逆量子化R代表値#1に一定値(例えば、5)を加えた値が、画素A、Bのうち大小認識データにおいて大きいと記述されている画素のRデータとして再生され、逆量子化R代表値#1に該一定値を減じた値が、大小認識データにおいて小さいと記述されている画素のRデータとして再生される。画素A、BのRデータの差|R
A−R
B|が閾値βよりも小さい場合、画素A、BのRデータは、逆量子化R代表値#1に一致するとして再生される。画素A、BのGデータ、Bデータ、及び画素C、DのRデータ、Gデータ、Bデータも同様の手順によって再生される。
【0201】
以上の過程により、展開対象ブロックの画素A〜DのRデータ、Gデータ、Bデータの再生が完了する。即ち、(2×2)圧縮で圧縮された圧縮画像データD
CMP4の展開処理が完了する。
【0202】
5.(4×1)圧縮及びその展開処理
図24は、(4×1)圧縮データD
GMP5のフォーマットを示す概念図である。上述のように、(4×1)圧縮は、4つの画素A〜Dの画像データに高い相関性がある場合に使用される圧縮処理である。(4×1)圧縮では、
図5に図示されたブロック圧縮回路部1の圧縮処理回路5により行われる圧縮処理と同様の処理が行われ、(4×1)圧縮データD
GMP5の展開処理では、
図6で図示されたブロック展開回路部2の展開処理回路7により行われる展開処理と同様の展開処理が行われる。
【0203】
図24に示されているように、本実施例では、(4×1)圧縮データD
CMP5が、圧縮処理識別データと、最小値データYmin、輝度差分データYdist0〜Ydist3のうちの3つと、アドレスデータYaddress、平均化色差データCb’、Cr’とで構成される。(4×1)圧縮データD
CMP5は、48ビットデータである。
図24には、(4×1)圧縮データD
CMP5が、(4×1)圧縮データD
CMP5は、3つの輝度差分データYdist1〜Ydist3を含む場合のフォーマットが図示されているが、4つの輝度差分データYdist0〜Ydist3の他の3つの組み合わせ(例えば、Ydist0、Ydist1、Ydist2)を含む場合もある。
【0204】
圧縮処理識別データとは、圧縮に使われた圧縮処理の種類を示すデータであり、(4×1)圧縮データD
CMP5では、4ビットが圧縮処理識別データに割り当てられる。本実施例では、(4×1)圧縮データD
CMP5の圧縮処理識別データの値は「1110」である。
【0205】
最小値データYmin、輝度差分データYdist0〜Ydist3、アドレスデータYaddress及び平均化色差データCb’、Cr’は、画素A〜DのRデータ、Gデータ、Bデータに対してYUV変換を行ってYUVデータに変換し、更に、該YUVデータについて圧縮処理を行うことによって得られるデータである。上述のように、最小値データYmin及び輝度差分データYdist0〜Ydist3は、4つの画素のYUVデータのうち、輝度データから得られるデータであり、Cb’、Cr’は、色差データから得られるデータである。Ymin、Ydist0〜Ydist2及びCb’、Cr’が、画素A〜Dの代表値である。本実施例では、最小値データYminが10ビット、輝度差分データYdist0〜Ydist3のそれぞれに4ビット、アドレスデータYaddressに2ビット、Cb’、Cr’のそれぞれに10ビットが割り当てられている。
【0206】
以下、
図25Aを参照しながら、(4×1)圧縮におけるデータ処理について説明する。まず、画素A〜DのそれぞれのRデータ、Gデータ、Bデータについて上記の式(2a)〜(2d)に従ったマトリックス演算が行われ、画素A〜Dのそれぞれについて輝度データYと色差データCr、Cbが算出される。上述の通り、式(2a)のY0、Cb0、Cr0は、画素Aの輝度データY、色差データCb、Crであり、式(2b)のY1、Cb1、Cr1は、画素Bの輝度データY、色差データCb、Crである。また、式(2a)のY2、Cb2、Cr2は、画素Dの輝度データY、色差データCb、Crであり、式(2b)のY3、Cb3、Cr3は、画素Dの輝度データY、色差データCb、Crである。輝度データY0〜Y3、色差データCb0〜Cb3、Cr0〜Cr3は、いずれも、10ビットデータとして算出される。
【0207】
更に、画素A〜Dの輝度データY、色差データCr、Cbから、最小値データYmin、輝度差分データYdist0〜Ydist3、アドレスデータYaddress、平均化色差データCb’、Cr’が生成される。
【0208】
最小値データYminについては、画素A、B、C、Dの輝度データY0〜Y3のうちの最小のものが最小値データYminとして決定される。例えば、輝度データY0〜Y3のうち、Y0が最小である場合、Ymin=Y0と決定される。
【0209】
平均化色差データCb’は、画素A、B、C、Dの色差データCbの和を算出し、算出した和の下位2ビットを切り捨てる(即ち、4で除算する)ことによって算出される。同様に、平均化色差データCr’は、画素A、B、C、Dの色差データCrの和を算出し、算出した和の下位2ビットを切り捨てる(即ち、4で除算する)ことによって算出される。
【0210】
輝度差分データYdist0〜Ydist3は、それぞれ、輝度データY0〜Y3から最小値データYminを減じて得られる差に対してディザ値E0〜E3を用いて量子化処理を行うことで算出される。詳細には、輝度差分データYdist0〜Ydist3は、下記のように算出される。
【0211】
輝度差分データYdist0は、輝度データY0から最小値データYminを減じて得られる差Y0−Yminを算出し、得られた差Y0−Yminとディザ値E0の和を算出し、得られた和Y0−Ymin+E0の下位6ビットを切り捨てる量子化処理によって算出される。言い換えれば、輝度差分データYdist0は、下記式(9a)に従って算出される:
Ydist0=(Y0−Ymin+E0)>>6 ・・・(9a)
【0212】
同様に、輝度差分データYdist1〜Ydist3は、それぞれ、下記式(9b)〜(9d)に従って算出される。
Ydist1=(Y1−Ymin+E1)>>6 ・・・(9b)
Ydist2=(Y2−Ymin+E2)>>6 ・・・(9c)
Ydist3=(Y3−Ymin+E3)>>6 ・・・(9d)
【0213】
画素Aに対応するディザ値E0は、圧縮対象ブロックの画素Aの座標x
A、y
Aをシード値として用いて発生した疑似乱数V0(例えば、上述の式(3a)に従って発生した疑似乱数V0)の下位8ビットとして生成される。画素Aの座標x
A、y
Aは、圧縮対象ブロックのブロック座標x
BLK、y
BLKから決定可能であることに留意されたい。同様に、画素Bに対応するディザ値E1は、圧縮対象ブロックの画素Bの座標x
B、y
Bをシード値として用いて発生した疑似乱数V1(例えば、上述の式(3b)に従って発生した疑似乱数V2)の下位8ビットとして生成される。更に、画素Cに対応するディザ値E2は、圧縮対象ブロックの画素Cの座標x
C、y
Cをシード値として用いて発生した疑似乱数V2(例えば、上述の式(3c)に従って発生した疑似乱数V2)の下位8ビットとして生成される。また、画素Dに対応するディザ値E3は、圧縮対象ブロックの画素Dの座標x
D、y
Dをシード値として用いて発生した疑似乱数V3(例えば、上述の式(3d)に従って発生した疑似乱数V3)の下位8ビットとして生成される。
【0214】
圧縮画像データD
CMPは、輝度差分データYdist0〜Ydist3のうち、輝度データY0〜Y3のうちが最小である1つの輝度データを除いた3つの輝度データから算出された3つの輝度差分データを含んでいる。例えば、輝度データY0〜Y3のうち輝度データY0が最小である場合、圧縮画像データD
CMPは、(輝度差分データYdist0を除いた)輝度差分データYdist1〜Ydist3を含んでいる。
【0215】
アドレスデータYaddressは、画素A〜Dのうち輝度データが最小である画素を示すデータ(即ち、輝度データY0〜Y3のうちのどれが最小であるかを示すデータ)として生成される。例えば、輝度データY0〜Y3のうちの輝度データY0が最小である場合、画素Aの輝度データY0が最小であることを示す情報を含むようにアドレスデータYaddressが生成される。
【0216】
(4×1)圧縮データD
CMP5は、上記のように生成された最小値データYmin、平均化色差データCb’、Cr’、輝度差分データYdist0〜Ydist3のうちの3つ、及び、アドレスデータYaddressを含んでいる。以上の処理により、(4×1)圧縮が完了する。
【0217】
続いて、
図25Bを参照しながら、(4×1)圧縮で圧縮された圧縮画像データD
CMP5の展開処理におけるデータ処理について説明する。まず、展開対象ブロックの画素A、B、C、Dの輝度データY0’、Y1’、Y2’、Y3’が、圧縮画像データD
CMP5に含まれる最小値データYmin、輝度差分データYdist0〜Ydist3のうちの3つ、及び、アドレスデータYaddressから、下記のようにして再生される。
【0218】
まず、圧縮画像データD
CMP5に含まれる最小値データYminが、アドレスデータYaddressに指定されている画素の輝度データと決定される。例えば、アドレスデータYaddressが画素Aの輝度データが最小であることを示している場合、最小値データYminが画素Aの輝度データY0’として決定される。アドレスデータYaddressが他の画素の輝度データが最小であることを示している場合、当該他の画素の輝度データが同様にして決定される。
【0219】
残りの3つの画素の輝度データは、圧縮画像データD
CMP5に含まれる3つの輝度差分データ(輝度差分データYdist0〜Ydist3のうちの3つ)に対してディザ値を用いた逆量子化処理を行って得られるデータと最小値データYminから再生される。
【0220】
詳細には、残りの3つの画素の輝度データは、下記式(10a)〜(10d)のうち、残りの3つの画素に対応する3つの式に従って算出される:
Y0’=Ydist0<<m−E0’+Ymin・・・(10a)
Y1’=Ydist1<<m−E1’+Ymin・・・(10b)
Y2’=Ydist2<<m−E2’+Ymin・・・(10c)
Y3’=Ydist3<<m−E3’+Ymin・・・(10d)
ここで、式(10a)は、輝度データY0’を算出する場合に用いられる式であり、式(10b)は、輝度データY1’を算出する場合に用いられる式である。同様に、式(10c)は、輝度データY2’を算出する場合に用いられる式であり、式(10d)は、輝度データY3’を算出する場合に用いられる式である。式(10a)〜(10d)の演算子「<<m」は、mビットの左シフト(即ち、ビット繰上げ)を示す演算子である。
【0221】
例えば、アドレスデータYaddressが画素Aの輝度データが最小であることを示している場合、圧縮画像データD
CMP5が輝度差分データYdist1〜Ydist3を含んでいるので、画素B、C、D(画素A以外の画素)の輝度データY1’、Y2’、Y3’が、式(10b)〜(10d)に従って再生される。また、アドレスデータYaddressが他の画素の輝度データが最小であることを示している場合も同様にして、残りの3つの画素の輝度データが再生される。
【0222】
ここで、画素Aに対応するディザ値E0’は、展開対象ブロックの画素Aの座標x
A’、y
A’をシード値として用いて発生した疑似乱数V0’(例えば、上述の式(5a)に従って発生した疑似乱数V0’)の下位8ビットとして生成される。展開対象ブロックの画素Aの座標x
A’、y
A’は、展開対象ブロックのブロック座標x
BLK’、y
BLK’から決定可能であることに留意されたい。同様に、展開対象ブロックの画素Bに対応するディザ値E1’は、展開対象ブロックの画素Bの座標x
B’、y
B’をシード値として用いて発生した疑似乱数V1’(例えば、上述の式(5b)に従って発生した疑似乱数V2’)の下位8ビットとして生成される。更に、展開対象ブロックの画素Cに対応するディザ値E2’は、展開対象ブロックの画素Cの座標x
C’、y
C’をシード値として用いて発生した疑似乱数V2’(例えば、上述の式(5c)に従って発生した疑似乱数V2’)の下位8ビットとして生成される。また、展開対象ブロックの画素Dに対応するディザ値E3’は、展開対象ブロックの画素Dの座標x
D、y
Dをシード値として用いて発生した疑似乱数V3’(例えば、上述の式(5d)に従って発生した疑似乱数V3’)の下位8ビットとして生成される。
【0223】
以上の処理により、展開対象ブロックの画素A〜Dの輝度データY0’〜Y3’が再生される。
【0224】
一方、展開対象ブロックの画素A〜Dの色差データCb、Crとしては、圧縮画像データD
CMP5に含まれる平均化色差データCb’、Cr’がそのまま用いられる。
【0225】
更に、画素A、B、C、Dの輝度データY0’〜Y3’及び色差データ(即ち、平均化色差データCb’、Cr’)に対してYCbCr−RGB変換が行われ、展開後画像データD
IMG5’が生成される。本実施例では、当該YCbCr−RGB変換により、展開対象ブロックの画素A、B、C、Dのそれぞれの画像データD
A’、D
B’、D
D’、D
D’のRデータ、Gデータ、Bデータが、上記の式(8a)〜(8d)に従って算出される。上述のように、式(8a)〜(8d)において、R
A’、G
A’
、B
A’は、それぞれ、画素Aの画像データD
A’に含まれるRデータ、Gデータ、Bデータであり、R
B’、G
B’
、B
B’は、それぞれ、画素Bの画像データD
B’に含まれるRデータ、Gデータ、Bデータである。同様に、R
C’、G
C’
、B
C’は、それぞれ、画素Cの画像データD
C’に含まれるRデータ、Gデータ、Bデータであり、R
D’、G
D’
、B
D’は、それぞれ、画素Dの画像データD
D’に含まれるRデータ、Gデータ、Bデータである。
【0226】
以上の過程により、展開対象ブロックの画素A〜DのRデータ、Gデータ、Bデータの再生が完了する。即ち、(4×1)圧縮で圧縮された圧縮画像データD
CMP5の展開処理が完了する。
【0227】
以上には、本発明の実施形態及び実施例が具体的に記述されているが、本発明は、上記の実施形態及び実施例には限定されない。本発明が、様々な変更と共に実施され得ることは、当業者には容易に理解されよう。