以下、添付図面を参照しながら本発明の実施形態を説明する。なお、以下において、同一又は類似の構成要素は、同一又は対応する参照符号で参照することがあり、また、複数の同一の構成要素を互いに区別する場合、参照符号に添字を付することがある。
本発明の技術的意義の理解を容易にするために、以下では、まず、ブロック圧縮における画質の劣化、特に、量子化処理において用いられるディザ値の設定に起因する画質の劣化について説明する。
図2は、圧縮処理がなされる対象であるブロック(圧縮対象ブロック)の画像データと、該圧縮処理によって得られた圧縮画像データに対して展開処理を行うことで得られる展開後画像データの例を示す概念図である。なお、図2の例では、各ブロックが2×2画素から構成されているとして定義されている。なお、以下の説明において、2×2画素からなるブロックの左上の画素を画素A、右上の画素を画素B、左下の画素を画素C、右下の画素を画素Dと呼ぶことがある。
ブロック圧縮を行う場合、ディザ値の設定によっては、展開後画像データにおいて、誤差の絶対値は小さくても、各ブロックの特定の行又は列が、他の行または列と比較して輝度値が暗くなる(又は明るく)様な誤差が生じることがある。例えば、図2に図示されているように、縦に並んだブロック#1〜#4の元の画像データに示された画素A、B、C、Dの階調値が、赤(R)、緑(G)、青(B)の全てについて100、50、50、100であり、当該画像データに対して圧縮処理及び展開処理を行って得られる展開後画像データに示された画素A、B、C、Dの階調値が、赤(R)、緑(G)、青(B)の全てについて100、49、50、99である場合を考えよう。対象ブロックの右側の列に位置する画素B、Dの階調値について誤差“1”が発生しているが、対象ブロック単独でみると圧縮処理、展開処理によって発生する誤差は小さいといってよい。
しかしながら、図2に示されているような、特定の行又は列が他の行または列よりも階調値が小さくなる(又は大きくなる)ような誤差が発生しているブロックが画面に行列に配置されると、画面にムラ(unevenness)が生じてしまい、画質が劣化してしまう。図3は、図2に図示されているような、右側の列に位置する画素B、Dにおいて階調値が小さくなるような誤差が生じているブロック#1〜#4が一列に配置された画像の例を示している。図3に図示された画像では、輝度が暗い画素の列が発生しており、当該画素の列は、画像を観測するユーザには、暗い線として認識される。
発明者の検討によれば、このような画質劣化は、量子化処理において使用されるディザ値を適正に設定することで軽減できる。以下に述べられるように、本実施形態では、あるブロックの圧縮処理において用いられるディザ値がブロック座標(当該ブロックの画像における位置)に応じて生成される。これにより、画像において、誤差が生じるブロック内の位置が分散され、画像における視認可能なムラの発生を抑制することができる。
図4は、一実施形態における画像圧縮展開システム10の構成を示すブロック図である。画像圧縮展開システム10は、ブロック圧縮回路部1と、ブロック展開回路部2とを備えている。ブロック圧縮回路部1は、画像データDIMGに対してブロック圧縮を行って圧縮画像データDCMPを生成する画像圧縮装置として動作する。本実施形態でいうブロック圧縮とは、ブロック単位で圧縮を行う圧縮処理であり、あるブロックの画像データDIMGの圧縮処理においては、隣接するブロックの情報(例えば、隣接するブロックの画像データDIMG)は、参照されない。圧縮画像データDCMPは、所定の転送経路3を経てブロック展開回路部2に転送される。ブロック展開回路部2は、受け取った圧縮画像データDCMPに対して該ブロック圧縮に対応する展開処理を行い、展開後画像データDIMG’を生成する画像展開装置として動作する。
このような構成は、転送経路3に存在する画像データの容量を小さくするためのものである。例えば、転送経路3がメモリを含む場合、本実施形態の画像圧縮展開システム10を用いることにより、該メモリに格納される画像データの容量を小さくする、即ち、メモリの容量を小さくすることができる。また、ブロック圧縮回路部1とブロック展開回路部2とが、2つの別々の半導体集積回路に集積化される場合、転送経路3は、該2つの半導体集積回路を接続する伝送線路を含み得る。この場合、本実施形態の画像圧縮展開システム10を用いることにより、該伝送線路で伝送される画像データの容量を小さくすることができる。
ブロック圧縮回路部1は、ディザ値生成回路4と、圧縮処理回路5とを備えている。ディザ値生成回路4は、ブロック圧縮回路部1による圧縮処理がなされるブロックのブロック座標xBLK、yBLKを受け取り、ブロック座標xBLK、yBLKに応じてディザ値を生成する。ここで、あるブロックのブロック座標xBLK、yBLKは、当該ブロックの画像における位置を示している。詳細には、ブロック座標xBLKは、当該ブロックの画像における水平方向の位置を示しており、ブロック座標yBLKは、当該ブロックの画像における垂直方向の位置を示している。圧縮処理回路5は、あるブロックの画像データDIMGを受け取ると、該ブロックの画像データDIMGに対してブロック圧縮を行って該ブロックに対応する圧縮画像データDCMPを生成する。圧縮処理回路5における圧縮処理では量子化処理が行われ、該量子化処理においては、ディザ値生成回路4から供給されたディザ値が用いられる。言い換えれば、あるブロックの画像データDIMGに対する圧縮処理においては、該ブロックのブロック座標xBLK、yBLKに応じて生成されたディザ値を用いた量子化処理が行われる。
ブロック展開回路部2は、ディザ値生成回路6と、展開処理回路7とを備えている。ディザ値生成回路6は、ブロック展開回路部2による展開処理がなされるブロックのブロック座標xBLK’、yBLK’を受け取り、ブロック座標xBLK’、yBLK’に応じてディザ値を生成する。あるブロックのブロック座標xBLK’、yBLK’は、当該ブロックの画像における位置を示している。詳細には、ブロック座標xBLK’は、当該ブロックの画像における水平方向の位置を示しており、ブロック座標yBLK’は、当該ブロックの画像における垂直方向の位置を示している。展開処理回路7は、あるブロックの圧縮画像データDCMPを受け取ると、該ブロックの圧縮画像データDCMPに対して展開処理を行って該ブロックに対応する展開後画像データDIMG’を生成する。展開処理回路7における展開処理では逆量子化処理が行われ、該逆量子化処理においては、ディザ値生成回路6から供給されたディザ値が用いられる。言い換えれば、あるブロックの圧縮画像データDCMPに対する展開処理においては、該ブロックのブロック座標xBLK’、yBLK’に応じて生成されたディザ値を用いた逆量子化処理が行われる。
なお、あるブロックについて圧縮処理が行われるタイミングと、当該ブロックについて展開処理が行われるタイミングは相違し得るから、本実施形態の画像圧縮展開システム10では、ブロック座標(xBLK、yBLK又はxBLK’、yBLK’)がブロック圧縮回路部1とブロック展開回路部2に別々に供給されることに留意されたい。
図5は、ブロック圧縮回路部1の圧縮処理回路5の構成の一例を示すブロック図である。一実施形態では、圧縮処理回路5が、マトリクス圧縮回路11と量子化回路12とを備えている。本実施形態では、圧縮処理回路5に入力される画像データDIMGが、RGBフォーマットを有しており、画素A、B、C、Dの画像データDA、DB、DC、DDを含んでいる。詳細には、画素Aの画像データDAは、画素Aの赤の階調を示すRデータRA、緑の階調を示すGデータGA、青の階調を示すBデータBAを含み、画素Bの画像データDBは、画素Bの赤の階調を示すRデータRB、緑の階調を示すGデータGB、青の階調を示すBデータBBを含む。同様に、画素Cの画像データDCは、画素Cの赤の階調を示すRデータRC、緑の階調を示すGデータGC、青の階調を示すBデータBCを含み、画素Dの画像データDDは、画素Dの赤の階調を示すRデータRD、緑の階調を示すGデータGD、青の階調を示すBデータBDを含む。
図5の構成の圧縮処理回路5は、画像データDA、DB、DC、DDを外部からそれぞれ受け取るための入力8A〜8Dを有している。入力8A、8B、8C、8Dには、それぞれ、画像データDA、DB、DC、DDが入力される。このような構成では、各画素と画像データとの対応が物理的に決定されるので、ブロック内における各画素の位置を示すアドレスを圧縮処理回路5に与える必要がないことに留意されたい。
マトリクス圧縮回路11は、画像データDA、DB、DC、DDのそれぞれに対してRGB−YCbCr変換を行い、画素A、B、C、Dのそれぞれについて、輝度データY、色差データCb、Crを算出する。
量子化回路12は、画素A、B、C、Dの輝度データY、色差データCb、Crから、圧縮画像データDCMPを生成する。圧縮画像データDCMPの生成においては量子化処理が行われ、該量子化処理において、ディザ値生成回路4から供給されるディザ値E0〜E3が用いられる。ここで、ディザ値E0、E1、E2、E3は、それぞれ、ブロック圧縮回路部1における圧縮処理の対象であるブロック(以下、「圧縮対象ブロック」という。)の画素A、B、C、Dに対応するディザ値であり、圧縮対象ブロックのブロック座標xBLK、yBLKから算出される。圧縮画像データDCMPの生成については、後に詳細に説明する。
図6は、ブロック展開回路部2の展開処理回路7の構成の一例を示すブロック図である。一実施形態では、展開処理回路7が、逆量子化回路13とマトリクス展開回路14とを備えている。逆量子化回路13は、圧縮画像データDCMPに対して逆量子化処理を行い、画素A、B、C、Dの輝度データY、色差データCb、Crを再生する。図6において、Y0’、Y1’、Y2’、Y3’は、それぞれ、再生された画素A、B、C、Dの輝度データYであり、Cb’、Cr’は、再生された画素A、B、C、Dの色差データCb、Crである。輝度データY0’、Y1’、Y2’、Y3’、色差データCb’、Cr’の生成については、後に詳細に説明する。
逆量子化回路13における逆量子化処理において、ディザ値生成回路6から供給されるディザ値E0’〜E3’が用いられる。ここで、ディザ値E0’、E1’、E2’、E3’は、それぞれ、ブロック展開回路部2における展開処理の対象であるブロック(以下、「展開対象ブロック」という。)の画素A、B、C、Dに対応するディザ値であり、展開対象ブロックのブロック座標xBLK’、yBLK’から算出される。
マトリクス展開回路14は、逆量子化回路13によって再生された画素A、B、C、Dの輝度データY、色差データCb、Crに対してYCbCr−RGB変換を行い、展開後画像データDIMG’を生成する。本実施形態では、展開後画像データDIMG’は、画素A、B、C、Dの画像データDA’、DB’、DC’、DD’を含んでおり、画像データDA’、DB’、DC’、DD’のそれぞれは、赤の階調を示すRデータ、緑の階調を示すGデータ、青の階調を示すBデータを含んでいる。
続いて、ブロック圧縮回路部1によって行われるブロック圧縮、及び、ブロック展開回路部2によって行われるブロック展開について詳細に説明する。
(ブロック圧縮)
ある圧縮対象ブロックの画像データDIMGのブロック圧縮においては、該圧縮対象ブロックの画像データDIMGがマトリクス圧縮回路11に供給される。マトリクス圧縮回路11は、該画像データDIMGに含まれる画像データDA、DB、DC、DDのそれぞれに対してRGB−YCbCr変換を行い、画素A、B、C、Dのそれぞれについて、輝度データY、色差データCb、Crを算出する。
一実施形態では、マトリクス圧縮回路11におけるRGB−YCbCr変換において、下記式で定義されるマトリクスM
1が用いられる:
この場合、画素A、B、C、Dのそれぞれの輝度データY、色差データCb、Crは、下記式に従って算出される。
ここで、Y0、Cb0、Cr0は、それぞれ、画素Aの輝度データY、色差データCb、Crであり、Y1、Cb1、Cr1は、それぞれ、画素Bの輝度データY、色差データCb、Crであり、Y2、Cb2、Cr2は、それぞれ、画素Cの輝度データY、色差データCb、Crであり、Y3、Cb3、Cr3は、それぞれ、画素Dの輝度データY、色差データCb、Crである。算出された画素A、B、C、Dのそれぞれの輝度データY、色差データCb、Crは、量子化回路12に供給される。
一方で、ディザ値生成回路4により、当該圧縮対象ブロックの画素A、B、C、Dに対応するディザ値E0、E1、E2、E3が、当該圧縮対象ブロックのブロック座標xBLK、yBLKに基づいて発生され、量子化回路12に供給される。一実施形態では、ディザ値E0、E1、E2、E3は、それぞれ、圧縮対象ブロックの画素A、B、C、Dの画像における座標をシード値として用いて発生した疑似乱数から生成される。例えば、画素Aに対応するディザ値E0は、下記の式(3a)で得られる疑似乱数V0の下位nビット(nは、量子化処理において必要とされるディザ値のビット数であり、2以上の整数)として生成される:
V0=77×xA+139×yA ・・・(3a)
ここで、xAは、画像の水平方向における圧縮対象ブロックの画素Aの位置を示す座標であり、yAは、画像の垂直方向における画素Aの位置を示す座標である。圧縮対象ブロック内における画素Aの位置は定義で決められているから、画素Aの座標xA、yAは、圧縮対象ブロックのブロック座標xBLK、yBLKから決定可能であることに留意されたい。上記の式(3a)は、座標xA、yAから疑似乱数を発生する簡易式である。
同様に、画素B、C、Dにそれぞれ対応するディザ値E1〜E3は、下記の式(3b)〜(3d)で得られる疑似乱数V1〜V3の下位nビットとして生成される:
V1=77×xB+139×yB ・・・(3b)
V2=77×xC+139×yC ・・・(3c)
V3=77×xD+139×yD ・・・(3d)
ここで、xBは、画像の水平方向における圧縮対象ブロックの画素Bの位置を示す座標であり、yBは、画像の垂直方向における画素Bの位置を示す座標である。また、xCは、画像の水平方向における圧縮対象ブロックの画素Cの位置を示す座標であり、yCは、画像の垂直方向における画素Cの位置を示す座標である。最後に、xDは、画像の水平方向における圧縮対象ブロックの画素Dの位置を示す座標であり、yDは、画像の垂直方向における画素Dの位置を示す座標である。画素B、C、Dの座標xB、yB、xC、yC、xD、yDも、圧縮対象ブロックのブロック座標xBLK、yBLKから決定可能である。なお、疑似乱数V0〜V3の発生において用いられる簡易式は、様々に変更され得ることに留意されたい。
量子化回路12は、マトリクス圧縮回路11から受け取った画素A、B、C、Dのそれぞれの輝度データY、色差データCb、Crから圧縮画像データDCMPを生成する。一実施形態では、圧縮対象ブロックに対応する圧縮画像データDCMPは、最小値データYmin、平均化色差データCb’、Cr’、輝度差分データYdist0〜Ydist3のうちの3つ、及び、アドレスデータYaddressを含んでいる。上述のディザ値E0〜E3は、圧縮画像データDCMPの輝度差分データYdist0〜Ydist3の算出において行われる量子化処理において使用される。
一実施形態では、最小値データYmin、平均化色差データCb’、Cr’、輝度差分データYdist0〜Ydist3、及び、アドレスデータYaddressは、それぞれ、下記の処理によって生成される。
最小値データYminについては、画素A、B、C、Dの輝度データY0〜Y3のうちの最小のものが最小値データYminとして決定される。例えば、輝度データY0〜Y3のうち、Y0が最小である場合、Ymin=Y0と決定される。
平均化色差データCb’は、画素A、B、C、Dの色差データCbの和を算出し、算出した和の下位2ビットを切り捨てる(即ち、4で除算する)ことによって算出される。同様に、平均化色差データCr’は、画素A、B、C、Dの色差データCrの和を算出し、算出した和の下位2ビットを切り捨てる(即ち、4で除算する)ことによって算出される。
輝度差分データYdist0〜Ydist3は、それぞれ、輝度データY0〜Y3から最小値データYminを減じて得られる差に対して量子化処理を行うことで算出される。詳細には、輝度差分データYdist0〜Ydist3は、下記のように算出される。
輝度差分データYdist0は、輝度データY0から最小値データYminを減じて得られる差Y0−Yminを算出し、得られた差Y0−Yminとディザ値E0の和を算出し、得られた和Y0−Ymin+E0の下位mビットを切り捨てる量子化処理によって算出される。言い換えれば、輝度差分データYdist0は、下記式(4a)に従って算出される:
Ydist0=(Y0−Ymin+E0)>>m ・・・(4a)
ここで、「>>m」は、mビットの切捨て処理(即ち、右シフト)を示す演算子である。
同様に、輝度差分データYdist1〜Ydist3は、それぞれ、下記式(4b)〜(4d)に従って算出される。
Ydist1=(Y1−Ymin+E1)>>m ・・・(4b)
Ydist2=(Y2−Ymin+E2)>>m ・・・(4c)
Ydist3=(Y3−Ymin+E3)>>m ・・・(4d)
圧縮画像データDCMPは、輝度差分データYdist0〜Ydist3のうち、輝度データY0〜Y3のうちが最小である1つの輝度データを除いた3つの輝度データから算出された3つの輝度差分データを含んでいる。例えば、輝度データY0〜Y3のうち輝度データY0が最小である場合、圧縮画像データDCMPは、(輝度差分データYdist0を除いた)輝度差分データYdist1〜Ydist3を含んでいる。
アドレスデータYaddressは、画素A〜Dのうち輝度データが最小である画素を示すデータ(即ち、輝度データY0〜Y3のうちのどれが最小であるかを示すデータ)として生成される。例えば、輝度データY0〜Y3のうちの輝度データY0が最小である場合、画素Aの輝度データY0が最小であることを示す情報を含むようにアドレスデータYaddressが生成される。
圧縮画像データDCMPは、上記のように生成された最小値データYmin、平均化色差データCb’、Cr’、輝度差分データYdist0〜Ydist3のうちの3つ、及び、アドレスデータYaddressを含んでいる。以上の処理により、ブロック圧縮が完了する。
(ブロック展開)
ある展開対象ブロックのブロック展開においては、展開対象ブロックの圧縮画像データDCMPが逆量子化回路13に供給される。加えて、ディザ値生成回路6により、当該展開対象ブロックの画素A、B、C、Dに対応するディザ値E0’、E1’、E2’、E3’が、当該展開対象ブロックのブロック座標xBLK’、yBLK’に基づいて発生され、逆量子化回路13に供給される。
ディザ値生成回路6によるディザ値E0’、E1’、E2’、E3’の生成は、圧縮対象ブロックのブロック座標xBLK、yBLKの代わりに、展開対象ブロックのブロック座標xBLK’、yBLK’が使用されることを除けば、ディザ値生成回路4によるディザ値E0、E1、E2、E3の生成と同様にして行われる。一実施形態では、ディザ値E0’、E1’、E2’、E3’は、それぞれ、展開対象ブロックの画素A、B、C、Dの画像における座標をシード値として用いて発生した疑似乱数から生成される。例えば、画素A、B、C、Dに対応するディザ値E0’、E1’、E2’、E3’は、それぞれ、下記の式(5a)〜(5d)で得られる疑似乱数V0’〜V3’の下位nビットとして生成される:
V0’=77×xA’+139×yA’ ・・・(5a)
V1’=77×xB’+139×yB’ ・・・(5b)
V2’=77×xC’+139×yC’ ・・・(5c)
V3’=77×xD’+139×yD’ ・・・(5d)
ここで、xA’は、画像の水平方向における展開対象ブロックの画素Aの位置を示す座標であり、yA’は、画像の垂直方向における画素Aの位置を示す座標である。また、xB’は、画像の水平方向における展開対象ブロックの画素Bの位置を示す座標であり、yB’は、画像の垂直方向における画素Bの位置を示す座標である。更に、xC’は、画像の水平方向における展開対象ブロックの画素Cの位置を示す座標であり、yC’は、画像の垂直方向における画素Cの位置を示す座標である。最後に、xD’は、画像の水平方向における展開対象ブロックの画素Dの位置を示す座標であり、yD ’は、画像の垂直方向における画素Dの位置を示す座標である。展開対象ブロック内における画素A、B、C、Dの位置は定義で決められているから、展開対象ブロックの画素A、B、C、Dの座標xA’、yA’、xB’、yB’、x C ’、yC’、xD’、yD’は、展開対象ブロックのブロック座標xBLK’、yBLK’から決定可能であることに留意されたい。上記の式(5a)〜(5d)は、座標xA’、yA’、xB’、yB’、x C ’、yC’、xD’、yD’から疑似乱数V0’〜V3’を発生する簡易式である。なお、疑似乱数V0’〜V3’の発生において用いられる簡易式は、様々に変更され得ることに留意されたい。
逆量子化回路13は、圧縮画像データDCMPから画素A、B、C、Dの輝度データY、色差データCb、Crを再生する。画素A、B、C、Dの輝度データY、色差データCb、Crの再生は、下記のようにして行われる。
展開処理においては、圧縮画像データDCMPに含まれる平均化色差データCb’、Cr’が、そのまま、画素A、B、C、Dの共通の色差データCb、Crとして用いられる。
一方、画素A、B、C、Dの輝度データY0’、Y1’、Y2’、Y3’は、圧縮画像データDCMPに含まれる最小値データYmin、輝度差分データYdist0〜Ydist3のうちの3つ、及び、アドレスデータYaddressから、下記のようにして再生される。
逆量子化回路13は、圧縮画像データDCMPに含まれる最小値データYminを、アドレスデータYaddressに指定されている画素の輝度データと決定する。例えば、アドレスデータYaddressが画素Aの輝度データが最小であることを示している場合、逆量子化回路13は、最小値データYminを画素Aの輝度データY0’として決定する。アドレスデータYaddressが他の画素の輝度データが最小であることを示している場合、当該他の画素の輝度データが同様にして決定される。
残りの3つの画素の輝度データは、圧縮画像データDCMPに含まれる3つの輝度差分データ(輝度差分データYdist0〜Ydist3のうちの3つ)に対する逆量子化処理によって得られたデータと最小値データYminから再生される。
詳細には、残りの3つの画素の輝度データは、下記式(6a)〜(6d)のうち、該残りの3つの画素に対応する3つの式に従って算出される:
Y0’=Ydist0<<m−E0’+Ymin・・・(6a)
Y1’=Ydist1<<m−E1’+Ymin・・・(6b)
Y2’=Ydist2<<m−E2’+Ymin・・・(6c)
Y3’=Ydist3<<m−E3’+Ymin・・・(6d)
ここで、式(6a)は、輝度データY0’を算出する場合に用いられる式であり、式(6b)は、輝度データY1’を算出する場合に用いられる式である。同様に、式(6c)は、輝度データY2’を算出する場合に用いられる式であり、式(6d)は、輝度データY3’を算出する場合に用いられる式である。式(6a)〜(6d)の演算子「<<m」は、mビットの左シフト(即ち、ビット繰上げ)を示す演算子である。
例えば、アドレスデータYaddressが画素Aの輝度データが最小であることを示している場合、圧縮画像データDCMPが輝度差分データYdist1〜Ydist3を含んでいるので、画素B、C、D(画素A以外の画素)の輝度データY1’、Y2’、Y3’が、式(6b)〜(6d)に従って再生される。また、アドレスデータYaddressが他の画素の輝度データが最小であることを示している場合も同様にして、残りの3つの画素の輝度データが再生される。以上の処理により、展開対象ブロックの画素A〜Dの輝度データY0’〜Y3’が再生される。
上記のようにして得られた展開対象ブロックの画素A〜Dの輝度データY0’〜Y3’、及び、画素A〜Dに共通に使用される色差データ(平均化色差データCb’、Cr’)は、マトリクス展開回路14に供給される。マトリクス展開回路14は、画素A、B、C、Dの輝度データY0’〜Y3’、及び色差データに対してYCbCr−RGB変換を行い、展開後画像データDIMG’を生成する。
一実施形態では、マトリクス展開回路14におけるYCbCr−RGB変換において、下記式(7)で定義されるマトリクスM
2が用いられる:
この場合、画素A、B、C、Dのそれぞれの画像データD
A’、D
B’、D
C ’、D
D’のRデータ、Gデータ、Bデータは、下記式(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データである。
展開対象ブロックの展開後画像データDIMG’は、上記のようにして算出された画素A、B、C、Dのそれぞれの画像データDA’、DB’、D C ’、DD’を含むように生成される。以上の処理により、ブロック展開が完了する。
上述された本実施形態におけるブロック圧縮及びブロック展開の利点は、画質の劣化を低減できる点にある。本実施形態のブロック圧縮及びブロック展開では、ブロックの画像における位置に依存して生成されたディザ値を用いて量子化処理及び逆量子化処理が行われるため、圧縮、展開による誤差が発生する画素のブロック内の位置を、画像において分散させることができる。例えば、図7の左部分に図示されているように、縦に並んだブロック#1〜#4の元の画像データに示された画素A、B、C、Dの階調値が、赤(R)、緑(G)、青(B)の全てについて100、50、50、100である場合を考えよう。これらのブロック#1〜#4の画像データに対して、圧縮処理及び展開処理を行った場合、ディザ値がブロックの位置に依存して生成されるため、ブロック#1〜#4の展開後画像データにおいては、異なる位置の画素に誤差が発生する。図7の例では、ブロック#1については、画素B、Dについて誤差が発生し、ブロック#2については、画素A、Bについて誤差が発生している。更に、ブロック#3については、画素B、Cについて誤差が発生し、ブロック#4については、画素A、Cについて誤差が発生している。この場合、図7の右図から理解されるように、輝度が暗い(又は明るい)画素の列は発生しないので、図3の右部分に示された画像のように、暗い線が観測者によって観測されることはない。このように、本実施形態のブロック圧縮、ブロック展開によれば、ブロック圧縮による画質の劣化を低減することができる。
以下では、画像圧縮展開システムの様々なバリエーションについて説明する。
図8は、他の実施形態における画像圧縮展開システム10Aの構成を示すブロック図である。図8の画像圧縮展開システム10Aは、各ブロックの画像データのブロック圧縮に用いられる圧縮処理が、該ブロックの画像データの特徴、例えば、該ブロックの画素の間の画像データの相関性(類似度)に応じて選択されるように構成されている。このような動作によれば、各ブロックの画像データの特徴に応じて最適な圧縮処理を選択できるので、圧縮歪みを小さくすることができる。
詳細には、画像圧縮展開システム10Aは、ブロック圧縮回路部31とブロック展開回路部32とを備えている。ブロック圧縮回路部31とブロック展開回路部32とは、転送経路33によって接続されている。ブロック圧縮回路部31とブロック展開回路部32とが、同一の半導体集積回路に集積化される場合、転送経路33は、例えば、メモリを含み得る。この構成では、ブロック圧縮回路部31は、該メモリに格納される画像データの容量を小さくするための圧縮処理のために用いられることになる。一方、ブロック圧縮回路部31とブロック展開回路部32とが、2つの別々の半導体集積回路に集積化される場合、転送経路33は、該2つの半導体集積回路を接続する伝送線路を含み得る。
ブロック圧縮回路部31は、ブロック圧縮回路部31に供給された画像データDIMGに対してブロック圧縮を行って圧縮画像データDCMPを生成する画像圧縮装置として構成されており、ブロック圧縮回路411〜413と、画素相関性判断回路42と、圧縮データ選択回路43とを備えている。
ブロック圧縮回路411〜413は、それぞれ、画像データDIMGに対してブロック圧縮を行って圧縮画像データDCMP1〜DCMP3を生成する。詳細には、ブロック圧縮回路411は、画像データDIMGに対して第1の圧縮処理(圧縮処理#1)によるブロック圧縮を行って圧縮画像データDCMP1を生成するように構成されている。同様に、ブロック圧縮回路412は、第2の圧縮処理(圧縮処理#2)によるブロック圧縮を行って圧縮画像データDCMP2を生成するように構成され、ブロック圧縮回路413は、第3の圧縮処理(圧縮処理#3)によるブロック圧縮を行って圧縮画像データDCMP3を生成するように構成されている。圧縮処理#1〜#3は、互いに異なる圧縮処理である。
ブロック圧縮回路411〜413のそれぞれは、互いに異なる圧縮処理によってブロック圧縮を行う点を除けば、図4に図示されているブロック圧縮回路部1と同様の構成を有し、同様の動作を行う。即ち、ブロック圧縮回路411〜413のそれぞれには圧縮対象ブロックのブロック座標xBLK、yBLKが供給されると共に、量子化処理において使用されるディザ値を生成するディザ値生成回路を備えている。ブロック圧縮回路411〜413のそれぞれにおける量子化処理に使用されるディザ値は、当該ディザ値生成回路により、圧縮対象ブロックのブロック座標xBLK、yBLKから生成される。
画素相関性判断回路42は、圧縮対象ブロックの画素の間の画像データの相関性(類似度)を判断し、該相関性に基づいて、圧縮処理#1〜#3のいずれを選択すべきかを示す選択データを圧縮データ選択回路43に供給する。圧縮データ選択回路43は、供給された選択データに応じてブロック圧縮回路411〜413から受け取った圧縮画像データDCMP1〜DCMP3のうちから最終的に採用すべき圧縮画像データDCMPを選択する。
ブロック展開回路部32は、圧縮画像データDCMPを展開して展開後画像データDIMG’を生成する画像展開装置として構成されており、ブロック展開回路441〜443と、圧縮処理識別回路45と、展開データ選択回路46とを備えている。
ブロック展開回路441〜443は、それぞれ、圧縮画像データDCMPに対してブロック展開を行って展開後画像データDIMG1’〜DIMG3’を生成する。詳細には、ブロック展開回路441は、圧縮画像データDCMPに対し、圧縮処理#1に対応する展開処理(展開処理#1)によるブロック展開を行って展開後画像データDIMG1’を生成するように構成されている。同様に、ブロック展開回路442は、圧縮処理#2に対応する展開処理(展開処理#2)によるブロック展開を行って展開後画像データDIMG2’を生成するように構成され、ブロック展開回路443は、圧縮処理#3に対応する展開処理(展開処理#3)によるブロック展開を行って展開後画像データDIMG3’を生成するように構成されている。
ブロック展開回路441〜443のそれぞれは、互いに異なる展開処理によってブロック展開を行う点を除けば、図4に図示されているブロック展開回路部2と同様の構成を有し、同様の動作を行う。即ち、ブロック展開回路441〜443のそれぞれには展開対象ブロックのブロック座標xBLK’、yBLK ’が供給されると共に、逆量子化処理において使用されるディザ値を生成するディザ値生成回路を備えている。ブロック展開回路441〜443のそれぞれにおける逆量子化処理に使用されるディザ値は、当該ディザ値生成回路により、展開対象ブロックのブロック座標xBLK’、yBLK’から生成される。
圧縮処理識別回路45は、圧縮画像データDCMPが圧縮処理#1〜#3のいずれによって生成されたかを識別し、圧縮画像データDCMPの生成に用いられた圧縮処理を示す圧縮処理識別データを展開データ選択回路46に供給する。例えば、圧縮画像データDCMPが、該圧縮画像データDCMPの生成に用いられた圧縮処理を識別する圧縮処理識別データを含んでいる場合には、圧縮処理識別回路45は、該圧縮処理識別データから圧縮画像データDCMPの生成に用いられた圧縮処理を認識してもよい。展開データ選択回路46は、該圧縮処理識別データに応じて、ブロック展開回路441〜443から受け取った展開後画像データDIMG1’〜D IMG3’のうちから最終的に出力すべき展開後画像データDIMG’を選択する。
図9は、更に他の実施形態における画像圧縮展開システム10Bの構成を示すブロック図である。図9の画像圧縮展開システム10Bは、図8の画像圧縮展開システム10Aと同様に、各ブロックの画像データのブロック圧縮に用いられる圧縮処理が、該ブロックの画像データの特徴に応じて選択されるように構成されている。ただし、図9の構成では、ブロック圧縮回路部31が、共通ディザ値生成回路47を備えており、ブロック展開回路部32が、共通ディザ値生成回路48を備えている。
共通ディザ値生成回路47は、圧縮対象ブロックのブロック座標xBLK、yBLKから共通のディザ値を生成する。ブロック圧縮回路411〜413のそれぞれは、それぞれが行うブロック圧縮において、該共通のディザ値を用いて量子化処理を行う。ただし、ブロック圧縮回路411〜413のそれぞれは、供給された共通のディザ値のビット数が、それぞれで行う量子化処理において用いられるディザ値のビット数より多い場合、該共通のディザ値の一部のビット(例えば、上位ビット又は下位ビット)を用いて量子化処理を行う。例えば、あるブロック圧縮回路41において行われる量子化処理において2ビットのディザ値が用いられる場合、該ブロック圧縮回路41は、共通ディザ値生成回路47が生成する共通のディザ値の上位2ビット(又は下位2ビット)をディザ値として用いて該量子化処理を行う。
同様に、共通ディザ値生成回路48は、展開対象ブロックのブロック座標xBLK’、yBLK’から共通のディザ値を生成する。ブロック展開回路441〜443のそれぞれは、それぞれが行うブロック展開において、該共通のディザ値を用いて逆量子化処理を行う。ただし、ブロック展開回路441〜443のそれぞれは、供給された共通のディザ値のビット数が、それぞれで行う逆量子化処理において用いられるディザ値のビット数より多い場合、該共通のディザ値の一部のビット(例えば、上位ビット又は下位ビット)を用いて逆量子化処理を行う。例えば、あるブロック展開回路44において行われる逆量子化処理において2ビットのディザ値が必要である場合、該ブロック展開回路44は、共通ディザ値生成回路48が生成する共通のディザ値の上位2ビット(又は下位2ビット)をディザ値として用いて該逆量子化処理を行う。
図9に図示されている画像圧縮展開システム10Bは、共通のブロック座標xBLK、yBLKから生成された共通ディザ値(又は、共通ディザ値の上位ビット)が異なる圧縮処理を行うブロック圧縮回路411〜413のそれぞれで行われる量子化処理において用いられるように構成されている。画像圧縮展開システム10Bは、ブロック座標xBLK、yBLKに応じて生成された共通ディザ値が使用されるので、異なる圧縮処理が行われる場合においても誤差が生じるブロック内の位置が分散される。加えて、画像圧縮展開システム10Bは、ブロック毎に異なる圧縮処理が使用され得る構成となっているので、画像における視認可能なムラの発生を一層効果的に抑制することができる。
上述された本実施形態における画像圧縮展開システム10、10A、10Bは、単一の半導体集積回路にモノリシックに集積化され、当該半導体集積回路の内部における画像データの圧縮及び展開、例えば、表示パネルを駆動する表示ドライバにおける画像データの圧縮及び展開に用いられてもよい。
図10は、このように構成された表示ドライバを備える表示装置50の構成の例を示すブロック図である。表示装置50は、表示パネル51(例えば、液晶表示パネルやOLED表示パネル)と、表示ドライバ52とを備えている。表示パネル51は、表示部51aとGIP(gate in panel)回路51bとを備えている。表示部51aには、画素とゲート線とソース線とが設けられている。GIP回路51bは、表示部51aに配置されたゲート線を駆動する。表示ドライバ52は、プロセッサ53(例えば、CPU(central processing unit))から受け取った画像データと制御データとに応じて表示パネル51のソース線を駆動すると共に、GIP回路51bを制御する。
表示ドライバ52は、命令制御回路61と、ブロック圧縮回路部62と、画像メモリ63と、ブロック展開回路部64と、ソース線駆動回路65と、階調発生回路66と、タイミング制御回路67とを備えている。
命令制御回路61は、プロセッサ53から受け取った画像データDIMGをブロック圧縮回路部62に転送する。命令制御回路61は、更に、プロセッサ53から受け取った制御データに応答して表示ドライバ52の各回路、例えば、階調発生回路66やタイミング制御回路67を制御する。
ブロック圧縮回路部62は、命令制御回路61から受け取った画像データDIMGに対してブロック圧縮を行って圧縮画像データDCMPを生成し、圧縮画像データDCMPを画像メモリ63に供給する画像圧縮装置として動作する。上述の画像圧縮展開システム10、10A、10Bのブロック圧縮回路部(1、31)が、図10の表示ドライバ52のブロック圧縮回路部62として用いられる。
画像メモリ63は、ブロック圧縮回路部62から供給された圧縮画像データDCMPを保存する。圧縮画像データDCMPは、画像メモリ63から読み出されてブロック展開回路部64に転送される。
ブロック展開回路部64は、画像メモリ63から読み出された圧縮画像データDCMPに対してブロック展開を行って展開後画像データDIMG’を生成し、展開後画像データDIMG’をソース線駆動回路65に供給する画像展開装置として動作する。
ソース線駆動回路65は、展開後画像データDIMG’に応答して表示パネル51の表示部51aのソース線を駆動する。詳細には、ソース線駆動回路65は、階調発生回路66から受け取った階調電圧を用いて該展開後画像データに対応する電圧レベルを有するソース電圧を生成し、該ソース電圧で各ソース線を駆動する。
階調発生回路66は、ソース電圧の生成に使用される階調電圧を発生し、ソース線駆動回路65に供給する。
タイミング制御回路67は、表示ドライバ52の各回路及び表示パネル51のGIP回路51bの動作タイミングを制御する。
図10に図示された表示ドライバ52は、画像メモリ63に保存される画像データを圧縮するように構成されており、このような構成は画像メモリ63の容量を低減するために有用である。
また、本実施形態における画像圧縮展開システム10、10A、10Bは、プロセッサから表示装置の表示ドライバに画像データを転送するために用いられてもよい。図11は、このような構成の表示システムの構成の一例を示すブロック図である。該表示システムは、表示パネル51と表示ドライバ52Aとを備える表示装置50Aと、プロセッサ53Aとを備えている。
プロセッサ53Aは、ブロック圧縮回路部54を備えている。ブロック圧縮回路部54は、表示パネル51の表示部51aに表示すべき画像に対応する画像データDIMGを受け取り、画像データDIMGを圧縮して圧縮画像データDCMPを生成する画像圧縮装置として動作する。プロセッサ53Aは、ブロック圧縮回路部54によって生成した圧縮画像データDCMPを表示ドライバ52Aに送信し、更に、表示ドライバ52Aの動作を制御する制御データを表示ドライバ52Aに送信する。
表示ドライバ52Aは、命令制御回路61と、ブロック展開回路部64と、ソース線駆動回路65と、階調発生回路66と、タイミング制御回路67とを備えている。図9Bの表示ドライバ52Aの構成及び動作は、図10に図示された表示ドライバ52の構成及び動作と類似しているが、ブロック圧縮回路部62が設けられていない点で相違する。命令制御回路61は、プロセッサ53Aから受け取った圧縮画像データDCMPを画像メモリ63に転送する。画像メモリ63は、命令制御回路61から供給された圧縮画像データDCMPを保存する。圧縮画像データDCMPは、画像メモリ63から読み出されてブロック展開回路部64に転送される。
ブロック展開回路部64は、画像メモリ63から読み出された圧縮画像データDCMPに対してブロック展開を行って展開後画像データDIMG’を生成し、展開後画像データDIMG’をソース線駆動回路65に供給する画像展開装置として動作する。
図11に図示されている表示システムでは、プロセッサ53Aから表示ドライバ52Aに転送される画像データが圧縮されるので、プロセッサ53Aと表示ドライバ52Aとを接続する伝送線路によって伝送されるデータの量を低減することができる。
以下では、各ブロックの画像データのブロック圧縮に用いられる圧縮処理が、該ブロックの画像データの特徴に応じて選択されるように構成された画像圧縮展開システムのより具体的な実施例を説明する。
図12は、本実施例における画像圧縮展開システムのブロック圧縮回路部71の構成を示すブロック図である。ブロック圧縮回路部71は、RGBフォーマットの画像データDIMGに対してブロック圧縮を行って圧縮画像データDCMPを生成する。図12に図示されているブロック圧縮回路部71は、例えば、図10の表示装置50の表示ドライバ52に搭載されたブロック圧縮回路部62や、図11の表示装置50Aのプロセッサ53Aに搭載されたブロック圧縮回路部54として使用され得る。
本実施例においても、1つのブロックが2×2画素で構成されており(図1参照)、画像データDIMGは、各画素の赤、緑、青の階調をそれぞれ8ビットで表現するデータである。1ブロックには4つの画素が含まれるから、各ブロックの画像データDIMGは、96ビットを有することになる。一方、本実施例では、各ブロックの圧縮画像データDCMPは、48ビットを有している。即ち、本実施例では、ブロック圧縮回路部71が、データ量を1/2倍に低減するブロック圧縮を行うように構成されている。
ブロック圧縮回路部71は、圧縮対象ブロックの4個の画素の画像データの相関性(類似性)に応じて複数の圧縮処理のうちから最適な圧縮処理を選択し、選択した圧縮処理を圧縮対象ブロックの画像データDIMGに対して実行することで圧縮画像データDCMPを生成する画像圧縮装置として構成されている。ここで、本実施例では、可逆圧縮、(1×4)圧縮、(2+1×2)圧縮、(2×2)圧縮、(4×1)圧縮のうちから最適な圧縮処理が選択される。
可逆圧縮とは、圧縮画像データから元の4個の画素の画像データDIMGを再生できるように圧縮する圧縮処理であり、本実施例では、圧縮対象ブロックの4個の画素の画像データが特定のパターンを有している場合に使用される。
(1×4)圧縮とは、圧縮対象ブロックの4個の画素の画像データのそれぞれについて個別に量子化処理(本実施例では、ディザ値を用いた量子化処理)を行う圧縮処理である。この(1×4)圧縮は、圧縮対象ブロックの4個の画素の画像データの相関性が低い場合に好適である。
(2+1×2)圧縮とは、圧縮対象ブロックの4個の画素の画像データのうちの2つの画素の画像データの値を代表する代表値を定め、該代表値に対して量子化処理を行う一方、他の2つの画素の画像データのそれぞれについて個別に量子化処理を行う圧縮処理である。この(2+1×2)圧縮は、4個の画素の画像データのうちの2個の画素の画像データの相関性が高く、且つ、他の2個の画素の画像データの相関性が低い場合に好適である。
(2×2)圧縮とは、圧縮対象ブロックの4個の画素の画像データを、それぞれが2個の画素の画像データからなる2つの組に分け、該2つの組のそれぞれについてデータを代表する代表値を定め、該代表値に対して量子化処理を行う圧縮処理である。この(2×2)圧縮は、4個の画素のうちの2個の画像データの相関性が高く、且つ、他の2個の画素の画像データの相関性が高い場合に好適である。
(4×1)圧縮とは、圧縮対象ブロックの4個の画素の画像データを代表する代表値を定め、該代表値に対して量子化処理を行う圧縮処理である。この(4×1)圧縮は、圧縮対象ブロックの全4画素の画像データの相関性が高い場合に好適である。
上記の5つの圧縮処理のいずれが使用されるかは、圧縮対象ブロックの4個の画像データが特定のパターンを有しているか否か、及び、4個の画素のうちから2個の画素を選択する組み合わせの全てについて算出された2個の画素の画像データの相関性に応じて決定される。例えば、全4画素の画像データの相関性が高い場合には(4×1)圧縮が使用され、4個の画素のうちの2個の画素の画像データの相関性が高く、且つ、他の2個の画素の画像データの相関性が高い場合には(2×2)圧縮が使用される。なお、上記の5つの圧縮処理の詳細については、後述する。
上記の動作を行うために、本実施例では、ブロック圧縮回路部71が、可逆圧縮回路81と、(1×4)圧縮回路82と、(2+1×2)圧縮回路83と、(2×2)圧縮回路84と、(4×1)圧縮回路85と、画素相関性判断回路86と、圧縮データ選択回路87とを備えている。
可逆圧縮回路81は、圧縮対象ブロックの画像データDIMGに対して上述の可逆圧縮を行って可逆圧縮データDCMP1を生成する。(1×4)圧縮回路82は、圧縮対象ブロックの画像データDIMGに対して上述の(1×4)圧縮を行って(1×4)圧縮データDCMP2を生成し、(2+1×2)圧縮回路83は、圧縮対象ブロックの画像データDIMGに対して上述の(2+1×2)圧縮を行って(2+1×2)圧縮データDCMP3を生成する。更に、(2×2)圧縮回路84は、圧縮対象ブロックの画像データDIMGに対して上述の(2×2)圧縮を行って(2×2)圧縮データDCMP4を生成し、(4×1)圧縮回路85は、圧縮対象ブロックの画像データDIMGに対して上述の(4×1)圧縮を行って(4×1)圧縮データDCMP5を生成する。
画素相関性判断回路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からそれぞれ受け取った圧縮画像データDCMP1〜DCMP5のうちから最終的に採用すべき圧縮画像データDCMPを選択する。
本実施例では、(1×4)圧縮回路82、(2+1×2)圧縮回路83、(2×2)圧縮回路84及び(4×1)圧縮回路85において行われるブロック圧縮において、ディザ値を用いた量子化処理が行われ、量子化処理において用いられるディザ値が、圧縮対象ブロックのブロック座標xBLK、yBLKから生成される。上記で議論したように、量子化処理において用いられるディザ値をブロック座標xBLK、yBLKから生成することにより、ブロック圧縮における画質の劣化を低減することができる。
図13は、本実施例における画像圧縮展開システムのブロック展開回路部72の構成を示すブロック図である。ブロック展開回路部72は、ブロック圧縮回路部71によって生成された圧縮画像データDCMPが、上記の5つの圧縮処理のいずれによって圧縮されたかを識別し、更に、圧縮に使用された圧縮処理に対応する展開処理によって圧縮画像データDCMPを展開して展開後画像データDIMG’を生成する画像展開装置として構成されている。図13に図示されているブロック展開回路部72は、例えば、図10の表示装置50の表示ドライバ52に搭載されたブロック展開回路部64や、図11の表示装置50Aの表示ドライバ52Aに搭載されたブロック展開回路部64として使用され得る。
本実施例では、ブロック展開回路部72は、元データ復元回路91、(1×4)展開回路92、(2+1×2)展開回路93と、(2×2)展開回路94と、(4×1)展開回路95と、圧縮処理識別回路96と、展開データ選択回路97とを備えている。元データ復元回路91は、ブロック展開回路部72に供給された圧縮画像データDCMPに対し、上述の可逆圧縮に対応する展開処理を行って展開後画像データDIMG1’を生成するように構成されている。(1×4)展開回路92は、ブロック展開回路部72に供給された圧縮画像データDCMPに対し、上述の(1×4)圧縮に対応する展開処理を行って展開後画像データDIMG2’を生成するように構成されており、(2+1×2)展開回路93は、圧縮画像データDCMPに対し、上述の(2+1×2)圧縮に対応する展開処理を行って展開後画像データDIMG3’を生成するように構成されている。更に、(2×2)展開回路94は、圧縮画像データDCMPに対し、上述の(2×2)圧縮に対応する展開処理を行って展開後画像データDIMG4’を生成するように構成されており、(4×1)展開回路95は、圧縮画像データDCMPに対し、上述の(4×1)圧縮に対応する展開処理を行って展開後画像データDIMG5’を生成するように構成されている。なお、元データ復元回路91、(1×4)展開回路92、(2+1×2)展開回路93、(2×2)展開回路94及び(4×1)展開回路95において行われる展開処理については、後で詳細に説明する。
圧縮処理識別回路96は、圧縮画像データDCMPが上記の5つの圧縮処理(可逆圧縮、(1×4)圧縮、(2+1×2)圧縮、(2×2)圧縮、(4×1)圧縮)のいずれによって生成されたかを識別し、圧縮画像データDCMPの生成に用いられた圧縮処理を示す圧縮処理識別データを展開データ選択回路97に供給する。本実施例では、圧縮画像データDCMPが、該圧縮画像データDCMPの生成に用いられた圧縮処理を識別する圧縮処理識別データを含んでおり、圧縮処理識別回路96は、該圧縮処理識別データから圧縮画像データDCMPの生成に用いられた圧縮処理を識別し、元データ復元回路91、(1×4)展開回路92、(2+1×2)展開回路93、(2×2)展開回路94及び(4×1)展開回路95からそれぞれ受け取った展開後画像データDIMG1’〜D IMG5’のうち、識別した圧縮処理に対応する展開後画像データを選択する選択データを展開データ選択回路97に供給する。展開データ選択回路97は、該選択データに応じて、展開後画像データDIMG1’〜D IMG5’のうちから最終的に出力すべき展開後画像データDIMG’を選択する。
本実施例では、(1×4)圧縮回路82、(2+1×2)圧縮回路83、(2×2)圧縮回路84及び(4×1)圧縮回路85において行われるブロック展開において、ディザ値を用いた逆量子化処理が行われ、逆量子化処理において用いられるディザ値が、展開対象ブロックのブロック座標xBLK’、yBLK’から生成される。
続いて、本実施例のブロック圧縮回路部71において実行されるブロック圧縮及びブロック展開回路部72において実行されるブロック展開の詳細について説明する。
本実施例のブロック圧縮では、圧縮対象ブロックの4画素の画像データの相関性が、下記のいずれの場合に該当するかが、ブロック圧縮回路部71の画素相関性判断回路86によって判断される:
ケースA:4画素のうちの任意の組み合わせの画素の画像データの相関性が低い(図14(a))
ケースB:2画素の画像データの間に高い相関性があり、かつ、他の2画素の画像データは、先の2画素と相関性が低く、且つ、互いに相関性が低い(図14(b))
ケースC:2画素の画像データの間に高い相関性があり、かつ、他の2画素の画像データの間に高い相関性がある(図14(c))
ケースD:4画素の画像データの間に高い相関性がある(図14(d))
図15は、画素相関性判断回路86における相関性の判断、及び、当該相関性に基づく最適な圧縮処理の選択の手順を示すフローチャートである。以下の説明では、画素A、B、C、Dの画像データに記述された赤(R)の階調値を、それぞれ、RデータRA、RB、RC、RDと記載する。同様に、画素A、B、C、Dの画像データに記述された緑(G)の階調値を、それぞれ、GデータGA、GB、GC、GDと記載し、画素A、B、C、Dの画像データに記述された青(B)の階調値をそれぞれ、BデータBA、BB、BC、BDと記載する。
まず、画素A〜Dの画像データが特定パターンに該当するかが判断され(ステップS01)、画素A〜Dの画像データが特定パターンに該当する場合、可逆圧縮が行われる。本実施例では、画素A〜Dの画像データのデータ値が5種類以下であるような所定のパターンが、可逆圧縮が行われる特定パターンとして選択されている。
一例では、画素A〜Dの画像データが、以下の4つのパターン(1)〜(4)のいずれかに該当する場合、可逆圧縮が行われる:
(1) 画素A〜Dの画像データが同一(図16A参照)
画素A〜Dが下記条件(1a)を満足する場合、可逆圧縮が行われる。
条件(1a):
RA=RB=RC=RD,
GA=GB=GC=GD,
BA=BB=BC=BD.
この場合、画素A〜Dの画像データのデータ値は3種類である。
(2) 画素A〜Dそれぞれにおいて、赤、緑、青の3つの階調値が同一(図16B参照)
画素A〜Dが下記条件(2a)を満足する場合にも可逆圧縮が行われる。
条件(2a):
RA=GA=BA,
RB=GB=BB,
RC=GC=BC,
RD=GD=BD.
この場合、画素A〜Dの画像データのデータ値は4種類である。
(3)Rデータ、Gデータ、Bデータのうちの2つの値が、画素A〜Dについて同一(図16C〜図16E参照)
下記の3つの条件(3a)〜(3c)のいずれかを満足する場合にも可逆圧縮が行われる:
条件(3a): GA=GB=GC=GD=BA=BB=BC=BD.
条件(3b): BA=BB=BC=BD=RA=RB=RC=RD.
条件(3c): RA=RB=RC=RD=GA=GB=GC=GD.
この場合、画素A〜Dのデータ値は5種類である。
(4)Rデータ、Gデータ、Bデータのうちの1つのデータ値が同一、且つ、残りの2つのデータ値が画素A〜Dについて同一(図16F〜図16H参照)
更に、下記の3つの条件(4a)〜(4c)のいずれかを満足する場合にも可逆圧縮が行われる:
条件(4a):
GA=GB=GC=GD,
RA=BA,
RB=BB,
RC=BC,
RD=BD.
条件(4b):
BA=BB=BC=BD.
RA=GA,
RB=GB,
RC=GC,
RD=GD.
条件(4c)
RA=RB=RC=RD.
GA=BA,
GB=BB,
GC=BC,
GD=BD.
この場合、画素A〜Dの画像データのデータ値は5種類である。
可逆圧縮が行われない場合、画素A〜Dの画素データの相関に応じて圧縮手法が選択される。より具体的には、画素相関性判断回路86は、画素A〜Dの画像データが、上述のケースA〜Dのいずれの場合に該当するかを判断する:
詳細には、
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)圧縮を行うと決定する。
ケースAに該当しないと判断した場合、画素相関性判断回路86は、画素A〜Dに対して第1組の2つの画素と第2組の2つの画素を規定し、前記第1組の2つの画素の画像データの各色の階調の差分が所定値よりも小さく且つ前記第2組の2つの画素の画像データの各色の階調の差分が所定値よりも小さいという条件が満足されるか否かを、第1組、第2組の画素の可能な組み合わせの全てについて、判断する。より具体的には、画素相関性判断回路86は、下記条件(B1)〜(B3)のいずれかが成立するか否かを判断する(ステップS03)。
条件(B1):
|RA―RB|≦Th2,且つ
|GA―GB|≦Th2,且つ
|BA―BB|≦Th2,且つ
|RC―RD|≦Th2,且つ
|GC―GD|≦Th2,且つ
|BC―BD|≦Th2.
条件(B2):
|RA―RC|≦Th2,且つ
|GA―GC|≦Th2,且つ
|BA―BC|≦Th2,且つ
|RB―RD|≦Th2,且つ
|GB―GD|≦Th2,且つ
|BB―BD|≦Th2.
条件(B3):
|RA―RD|≦Th2,且つ
|GA―GD|≦Th2,且つ
|BA―BD|≦Th2,且つ
|RB―RC|≦Th2,且つ
|GB―GC|≦Th2,且つ
|BB―BC|≦Th2.
上記条件(B1)〜(B3)がいずれも成立しない場合、画素相関性判断回路86は、ケースBに該当する(即ち、2つの画素の間に高い相関性があり、かつ、他の2つの画素は、互いに相関性が低い)と判断する。この場合、画素相関性判断回路86は、(2+1×2)圧縮を行うと決定する。
ケースA、Bのいずれにも該当しないと判断した場合、画素相関性判断回路86は、圧縮対象ブロックの4つの画素の各色について、4つの画素の階調値の最大値と最小値との差が所定値より小さいという条件が満足されるか否かを判断する。より具体的には、画素相関性判断回路86は、下記条件(C)が成立するか否かを判断する(ステップS04)。
条件(C):
max(RA,RB,RC,RD)−min(RA,RB,RC,RD)<Th3,且つ
max(GA,GB,GC,GD)−min(GA,GB,GC,GD)<Th3,且つ
max(BA,BB,BC,BD)−min(BA,BB,BC,BD)<Th3.
条件(C)が成立しない場合、画素相関性判断回路86は、ケースCに該当する(即ち、2つの画素の画像データの間に高い相関性があり、かつ、他の2つの画素の画像データの間に高い相関性がある)と判断する。この場合、画素相関性判断回路86は、(2×2)圧縮を行うと決定する。
一方、条件(C)が成立する場合、画素相関性判断回路86は、ケースDに該当する(4つの画素の画像データの間に高い相関性がある)と判断する。この場合、画素相関性判断回路86は、(4×1)圧縮を行うと決定する。
画素相関性判断回路86は、上記の相関性の認識結果に基づき、(1×4)圧縮、(2+1×2)圧縮、(2×2)圧縮、(4×1)圧縮のいずれを使用すべきかを指示する選択データを生成し、圧縮データ選択回路87に送る。圧縮データ選択回路87は、画素相関性判断回路86から送られてくる選択データに基づいて、可逆圧縮回路81から出力される可逆圧縮データDCMP1、(1×4)圧縮回路82から出力される(1×4)圧縮データDCMP2、(2+1×2)圧縮回路83から出力される(2+1×2)圧縮データDCMP3、(2×2)圧縮回路84から出力される(2×2)圧縮データDCMP4、及び(4×1)圧縮回路85から出力される(4×1)圧縮データDCMP5のいずれかを圧縮画像データDCMPとして出力する。
続いて、ブロック圧縮回路部71で行われる可逆圧縮、(1×4)圧縮、(2+1×2)圧縮、(2×2)圧縮、(4×1)圧縮、及び、これらの圧縮処理によって生成された圧縮画像データDCMPに対してブロック展開回路部72で行われる展開処理の例について詳細に説明する。
1.可逆圧縮及びその展開処理
本実施例では、可逆圧縮は、画素A〜Dの画像データのデータ値を並び替えることによって行われる。図17は、可逆圧縮によって生成された可逆圧縮データDCMP1のフォーマットの例を示す図である。本実施例では、可逆圧縮データDCMP1は、48ビットデータであり、圧縮処理識別データと、パターン種類データと、データ#1〜#5と、パディングデータとで構成される。
圧縮処理識別データは、圧縮に使われた圧縮処理の種類を示すデータであり、可逆圧縮データDCMP1では、4ビットが圧縮処理識別データに割り当てられる。本実施例では、可逆圧縮データDCMP1の圧縮処理識別データの値は「1111」である。
パターン種類データは、画素A〜Dの画像データが該当するパターンを指定するデータである。本実施例では、8つの特定パターン(即ち、上述の条件(1a)、(2a)、(3a)〜(3c)、(4a)〜(4c)に該当するパターン)が定義されているから、パターン種類データは3ビットである。
データ#1〜#5は、画素A〜Dの画像データのデータ値を並び替えることによって得られるデータである。データ#1〜#5は、いずれも8ビットデータである。上述のように、可逆圧縮が行われる場合、画素A〜Dの画像データのデータ値は5種類以下であるから、データ#1〜#5に全てのデータ値を格納することができる。
パディングデータは、可逆圧縮データのビット数を、他の圧縮処理で圧縮された圧縮画像データと同一にするために追加されるデータである。本実施例では、パディングデータは1ビットである。
上述の可逆圧縮によって生成された可逆圧縮データの展開は、パターン種類データを参照してデータ#1〜#5を並び替えることによって行われる。パターン種類データには、画素A〜Dの画像データが該当するパターンが記述されているから、パターン種類データを参照することにより、画素A〜Dの画像データを、何らの圧縮歪みを生じさせずに完全に再生することができる。
2.(1×4)圧縮及びその展開処理
図18は、(1×4)圧縮データDCMP2のフォーマットを示す概念図である。上述のように、(1×4)圧縮は、4画素のうちから選択された2つの画素の組み合わせの全てについて、該2つの画素の画像データの相関性が低い場合に採用される圧縮処理である。図18に示されているように、本実施例では、(1×4)圧縮データDCMP2は、圧縮処理識別データと、RA *、GA *、BA *データと、RB *、GB *、BB *データと、RC *、GC *、BC *データと、RD *、GD *、BD *データとで構成される。本実施例では、(1×4)圧縮データDCMP2は、可逆圧縮データDCMP1と同様に48ビットデータである。
圧縮処理識別データとは、圧縮に使われた圧縮処理の種類を示すデータであり、(1×4)圧縮データDCMP2では、1ビットが圧縮処理識別データに割り当てられる。本実施例では、(1×4)圧縮データD CMP2 の圧縮処理識別データの値は「0」である。
一方、RA *、GA *、BA *データは、それぞれ、画素AのRデータRA、GデータGA、BデータBAに対して量子化処理を行って得られるデータであり、RB *、GB *、BB *データは、画素BのRデータRB、GデータGB、BデータBBに対して量子化処理を行って得られるデータである。同様に、RC *、GC *、BC *データは、それぞれ、画素CのRデータRC、GデータGC、BデータBCに対して量子化処理を行って得られるデータであり、RD *、GD *、BD *データは、画素DのRデータRD、GデータGD、BデータBDに対して量子化処理を行って得られるデータである。本実施例では、画素DのBデータに対応するBD *データのみ3ビットデータであり、残りのデータ(RA *、GA *、BA *データ、RB *、GB *、BB *データ、RC *、GC *、BC *データ、及び、RD *、GD *データ)は4ビットデータである。後に詳細に説明するように、RA *、GA *、BA *データ、RB *、GB *、BB *データ、RC *、GC *、BC *データ及びRD *、GD *、BD *データを生成する量子化処理において、圧縮対象ブロックのブロック座標xBLK、yBLKから生成されるディザ値が用いられる。
図19Aは、(1×4)圧縮におけるデータ処理の例を示す概念図である。(1×4)圧縮では、画素A〜Dの画像データのそれぞれについて、ディザ値を用いた量子化処理が行われ、これにより、画素A〜Dの画像データのビット数が減少される。なお、図19Aにおいては、画素A、B、C、Dについてそれぞれに定められたディザ値E0、E1、E2、E3が、それぞれ、0、5、10、15であるとして(1×4)圧縮のデータ処理が図示されている。
詳細には、RA *、GA *、BA *データの生成においては、画素AのRデータRA、GデータGA、BデータBAのそれぞれに4ビットのディザ値E0を加算する処理が行われる。ディザ値E0は、例えば、上述の式(3a)で算出される疑似乱数V0の下位4ビットとして得ることができる。式(3a)による疑似乱数V0の算出においては、圧縮対象ブロックの画素Aの座標xA、yBが用いられるが、画素Aの座標xA、yAは、圧縮対象ブロックのブロック座標xBLK、yBLKから決定可能であることに留意されたい。
更に、ディザ値E0が加算された画素AのRデータ、Gデータ、Bデータに、丸め処理又はビット切捨て処理が行われてRA *、GA *、BA *データが生成される。図19Aの例では、ディザ値E0が加算された画素AのRデータ、Gデータ、Bデータに、値8を加算した後、下位4ビットを切り捨てる処理が行われる。
RB *、GB *、BB *データ、RC *、GC *、BC *データ及びRD *、GD *、BD *データについても同様に生成される。RB *、GB *、BB *データの生成においては、画素BのRデータRB、GデータGB、BデータBBのそれぞれに4ビットのディザ値E1を加算する処理が行われる。ディザ値E1は、例えば、上述の式(3b)で算出される疑似乱数V1の下位4ビットとして得ることができる。更に、ディザ値E1が加算された画素BのRデータ、Gデータ、Bデータに、丸め処理又はビット切捨て処理が行われてRB *、GB *、BB *データが生成される。図19Aの例では、ディザ値E1が加算された画素BのRデータ、Gデータ、Bデータに、値8を加算した後、下位4ビットを切り捨てる処理が行われる。
RC *、GC *、BC *データの生成においては、画素CのRデータRC、GデータGC、BデータBCのそれぞれに4ビットのディザ値E2を加算する処理が行われる。ディザ値E2は、例えば、上述の式(3c)で算出される疑似乱数V2の下位4ビットとして得ることができる。更に、ディザ値E2が加算された画素CのRデータ、Gデータ、Bデータに、丸め処理又はビット切捨て処理が行われてRC *、GC *、BC *データが生成される。図19Aの例では、ディザ値E2が加算された画素CのRデータ、Gデータ、Bデータに、値8を加算した後、下位4ビットを切り捨てる処理が行われる。
RD *、GD *、BD *データの生成においては、画素DのRデータRD、GデータGD、BデータBDのそれぞれに4ビットのディザ値E3を加算する処理が行われる。ディザ値E3は、例えば、上述の式(3d)で算出される疑似乱数V3の下位4ビットとして得ることができる。更に、ディザ値E3が加算された画素DのRデータ、Gデータ、Bデータに、丸め処理又はビット切捨て処理が行われてRD *、GD *、BD *データが生成される。図19Aの例では、RD *データ、GD *データは、ディザ値E3が加算された画素DのRデータ、Gデータに、値8を加算した後、下位4ビットを切り捨てる処理が行われることで生成される。また、BD *データは、ディザ値E3が加算された画素DのBデータに、値16を加算した後、下位5ビットを切り捨てる処理が行われることで生成される。
このようにして生成されたRA *、GA *、BA *データ、RB *、GB *、BB *データ、RC *、GC *、BC *データ、及びRD *、GD *、BD *データに、圧縮処理識別データとして値「0」を付加することにより、(1×4)圧縮データDCMP2が生成される。
続いて、図19Bを参照しながら、(1×4)圧縮データD CMP2 の展開処理におけるデータ処理について説明する。(1×4)圧縮データDCMP2の展開では、RA *、GA *、BA *データ、RB *、GB *、BB *データ、RC *、GC *、BC *データ、及びRD *、GD *、BD *データに対し、ディザ値を用いた逆量子化処理が行われる。
詳細には、展開後画像データDIMG2’の画素AのRデータ、Gデータ、Bデータは、それぞれ、RA *、GA *、BA *データに対して4ビットの左シフトを行い、更に、ディザ値E0’を減算することで得られる値として再生される。ディザ値E0’は、例えば、上述の式(6a)で算出される疑似乱数V0’の下位4ビットとして得ることができる。式(6a)による疑似乱数V0’の算出においては、展開対象ブロックの画素Aの座標xA’、yB’が用いられるが、画素Aの座標xA’、yB’は、展開対象ブロックのブロック座標xBLK’、yBLK’から決定可能であることに留意されたい。
同様に、展開後画像データDIMG2’の画素BのRデータ、Gデータ、Bデータは、それぞれ、RB *、GB *、BB *データに対して4ビットの左シフトを行い、更に、ディザ値E1’を減算することで得られる値として再生される。ディザ値E1’は、例えば、上述の式(6b)で算出される疑似乱数V1’の下位4ビットとして得ることができる。
また、展開後画像データDIMG2’の画素CのRデータ、Gデータ、Bデータは、それぞれ、RC *、GC *、BC *データに対して4ビットの左シフトを行い、更に、ディザ値E2’を減算することで得られる値として再生される。ディザ値E2’は、例えば、上述の式(6c)で算出される疑似乱数V2’の下位4ビットとして得ることができる。
更に、展開後画像データDIMG2’の画素DのRデータ、Gデータは、それぞれ、RD *、GD *データに対して4ビットの左シフトを行い、更に、ディザ値E3’を減算することで得られる値として再生される。ディザ値E3’は、例えば、上述の式(6d)で算出される疑似乱数V3’の下位4ビットとして得ることができる。また、展開後画像データDIMG2’の画素DのBデータは、BD *データに対して5ビットの左シフトを行い、更に、ディザ値E3’を減算することで得られる値として再生される。
以上の手順により、(1×4)圧縮データDCMP2の展開処理が完了する。
3.(2+1×2)圧縮及びその展開処理
図20は、(2+1×2)圧縮データDCMP3のフォーマットを示す概念図である。上述のように、(2+1×2)圧縮は、2つの画素の画像データの間に高い相関性があり、かつ、他の2つの画素の画像データは、先の2つの画素の画像データと相関性が低く、且つ、互いに相関性が低い場合に採用される。図20に示されているように、本実施例では、(2+1×2)圧縮データD CMP3 が、圧縮処理識別データ、形状認識データ、R代表値、G代表値、B代表値、β比較結果データ、大小認識データ、Ri *、Gi *、Bi *データ、及びRj *、Gj *、Bj *データで構成される。ここで、(2+1×2)圧縮データDCMP3は、上述の可逆圧縮データDCMP1及び(1×4)圧縮データDCMP2と同様に、48ビットデータである。
圧縮処理識別データとは、圧縮に使われた圧縮処理の種類を示すデータであり、(2+1×2)圧縮データD CMP3 では、2ビットが圧縮処理識別データに割り当てられる。本実施例では、(2+1×2)圧縮データD CMP3 の圧縮処理識別データの値は「10」である。
形状認識データとは、画素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つの組み合わせのいずれであるかを示している。
R代表値、G代表値、B代表値は、それぞれ、画像データの相関性が高い2つの画素のRデータ、Gデータ、Bデータを代表する値である。図20の例では、R代表値及びG代表値は5ビット又は6ビットのデータであり、B代表値は5ビットのデータである。
β比較データとは、画像データの相関性が高い2つの画素のRデータの差及びGデータの差が、所定の閾値βよりも大きいか否かを示すデータである。本実施例では、β比較データは2ビットのデータである。一方、大小認識データは、画像データの相関性が高い2つの画素のうち、どちらの画素のRデータが大きいか、及び、どちらの画素のGデータが大きいかを示すデータである。Rデータに対応する大小認識データは、画像データの相関性が高い2つの画素のRデータの差が閾値βよりも大きい場合にのみ生成され、Gデータに対応する大小認識データは、画像データの相関性が高い2つの画素のGデータの差が閾値βよりも大きい場合にのみ生成される。したがって、大小認識データは、0〜2ビットのデータである。
Ri *、Gi *、Bi *データ、及びRj *、Gj *、Bj *データは、画像データの相関性が低い2つの画素のRデータ、Gデータ、Bデータに対して量子化処理を行って得られるデータである。なお、i、jは、A、B、C、Dから互いに異なるように選択された2つである。本実施例では、Ri *、Gi *、Bi *データ、及びRj *、Gj *、Bj *データは、いずれも、4ビットデータである。
以下では、図21Aを参照しながら、(2+1×2)圧縮におけるデータ処理について説明する。以下の説明では、画素A、Bの画像データの相関性が高く、画素C、Dのそれぞれの画像データが画素A、Bの画像データに対して相関性が低く、且つ、画素C、Dの画像データ相互の相関性が低い場合における(2+1×2)圧縮データの生成について記述している。他の場合も同様にして(2+1×2)圧縮データが生成可能であることは、当業者には容易に理解されよう。
まず、(相関性が高い)画素A、Bの画像データの圧縮処理について説明する。まず、画素A、BのRデータ(RA、RB)、Gデータ(GA、GB)、Bデータ(BA、BB)のそれぞれの平均値が算出される。Rデータ、Gデータ、Bデータの平均値Rave、Gave、Baveは、下記式によって算出される:
Rave=(RA+RB+1)/2,
Gave=(GA+GB+1)/2,
Bave=(BA+BB+1)/2.
更に、画素A、BのRデータの差|RA−RB|及び、Gデータの差|GA−GB|が、所定の閾値βよりも大きいか否かが比較される。この比較結果を示すデータが、β比較データとして(2+1×2)圧縮データDCMP3に組み込まれる。
更に、下記の手順により、画素A、BのRデータ及びGデータについて大小認識データが作成される。画素A、BのRデータの差|RA−RB|が閾値βよりも大きい場合、画素A、BのいずれのRデータが大きいかを示すデータが、大小認識データに組み込まれる。画素A、BのRデータの差|RA−RB|が閾値β以下の場合には、画素A、BのRデータの大小関係は、大小認識データに記述されない。同様に、画素A、BのGデータの差|GA−GB|が閾値βよりも大きい場合、画素A、BのいずれのGデータが大きいかを示すデータが大小認識データに組み込まれる。画素A、BのGデータの差|GA−GB|が閾値β以下の場合には、画素A、BのGデータの大小関係は、大小認識データに記述されない。このようにして生成された大小認識データが、(2+1×2)圧縮データDCMP3に組み込まれる。
更に、画素A、BのRデータ、Gデータ、Bデータの平均値Rave、Gave、Baveに対してディザ値を用いた量子化処理が行われてR代表値、G代表値、B代表値が算出される。
R代表値、G代表値、B代表値の量子化処理においては、まず、画素A、BのRデータ、Gデータ、Bデータの平均値Rave、Gave、Baveにディザ値が加算される。本実施例では、ディザ値は、圧縮対象ブロックのブロック座標xBLK、yBLKから算出される。例えば、ディザ値は、(相関性が高い)画素A、Bのうちの一方の画素の座標を用いて、式(3a)又は(3b)から算出された疑似乱数V0又はV1の下位4ビットとして算出してもよい。図21Aには、画素Aの座標から算出されたディザ値E0が量子化処理に用いられ、且つ、該算出されたディザ値が0である例が図示されている。
更に、ディザ値が加算された平均値Rave、Gave、Baveに対して丸め処理又はビット切捨て処理が行われてR代表値、G代表値、B代表値が算出される。
ここで、R代表値、G代表値の算出における丸め処理において加算される数値、及びビット切捨て処理で切り捨てられるビット数は、それぞれ、差|RA−RB|、|GA−GB|と閾値βとの大小関係に応じて決定される。本実施例では、R代表値の算出において、Rデータの差|RA−RB|が閾値βよりも大きい場合にRデータの平均値Raveに値4を加えた後下位3ビットを切り捨てる処理が行われ、これによりR代表値が算出される。そうでない場合、平均値Raveに値2を加えた後下位2ビットを切り捨てる処理が行われ、これによりR代表値が算出される。Gデータの平均値Gaveについても同様に、Gデータの差|GA−GB|が閾値βよりも大きい場合、Gデータの平均値Gaveに値4を加えた後下位3ビットを切り捨てる処理が行われ、これによりG代表値が算出される。そうでない場合、平均値Gaveに値2を加えた後下位2ビットを切り捨てる処理が行われ、これによりG代表値が算出される。
一方、B代表値については、Bデータの平均値Baveに値4を加えた後下位3ビットを切り捨てる処理が行われ、これによりB代表値が算出される。以上により、画素A、Bの画像データについての圧縮処理が完了する。
(相関性が低い)画素C、Dについては、(1×4)圧縮と同様の処理が行われる。即ち、画素C、Dのそれぞれについて、ディザ値を用いた量子化処理が個別に行われ、これにより、画素C、DのRデータ、Gデータ、Bデータのビット数を減少する処理が行われる。詳細には、まず、画素C、DのRデータ(RC、RD)、Gデータ(GC、GD)、Bデータ(BC、BD)のそれぞれにディザ値を加算する処理が行われる。上述のように、ディザ値は、圧縮対象ブロックのブロック座標xBLK、yBLKから算出される。図21Aでは、画素C、Dについて定められたディザ値E2、E3がそれぞれ10、15であるとして(2+1×2)圧縮が図示されている。
更に、丸め処理とビット切捨て処理が行われてRC *、GC *、BC *データ、RD *、GD *、BD *データが生成される。詳細には、ディザ値E2、E3が加算された画素C、DそれぞれのR、G、Bデータのそれぞれについて、値8を加算した後、下位4ビットを切り捨てる処理が行われる。これにより、RC *、GC *、BC *データ、RD *、GD *、BD *データが算出される。
以上のようにして生成されたR代表値、G代表値、B代表値、大小認識データ、β比較結果データ、RC *、GC *、BC *データ、及びRD *、GD *、BD *データに、圧縮処理識別データ及び形状認識データを付加することにより、(2+1×2)圧縮データDCMP3が生成される。
続いて、図21Bを参照しながら、(2+1×2)圧縮データDCMP3の展開処理におけるデータ処理について説明する。以下では、画素A、Bの間の相関性が高く、画素C、Dが画素A、Bに対して相関性が低く、且つ、画素C、D相互の相関性が低い場合における(2+1×2)圧縮データDCMP3の展開処理について記述している。他の場合も同様にして(2+1×2)圧縮データDCMP3が展開可能であることは、当業者には容易に理解されよう。
まず、(相関性が高い)画素A、Bに関する展開処理について説明する。画素A、Bに関する展開処理では、R代表値、G代表値、B代表値に対してディザ値を用いた逆量子化処理が行われる。詳細には、まず、R代表値、G代表値、B代表値に対して左シフト(ビット繰上げ)が行われる。R代表値、G代表値に対する左シフトのビット数は、β比較データに記述された、階調値の差|RA−RB|、|GA−GB|と閾値βとの大小関係に応じて決定される。Rデータの差|RA−RB|が閾値βよりも大きい場合、R代表値に対して3ビットの左シフトが行われ、そうでない場合、2ビットの左シフトが行われる。同様に、Gデータの差|GA−GB|が閾値βよりも大きい場合、G代表値に対して3ビットの左シフトが行われ、そうでない場合、2ビットの左シフトが行われる。B代表値については、β比較データに関係なく、3ビットの左シフトが行われる。
更に、左シフトがなされたR代表値、G代表値、B代表値のそれぞれについて、ディザ値の減算が行われる。本実施例では、ディザ値は、展開対象ブロックのブロック座標xBLK’、yBLK’から算出される。例えば、ディザ値は、(相関性が高い)画素A、Bのうちの一方の画素の座標を用いて、式(6a)又は(6b)から算出された疑似乱数V0’又はV1’の下位4ビットとして算出してもよい。図21Bには、画素Aの座標から算出されたディザ値E0’がR代表値、G代表値、B代表値の逆量子化処理に用いられ、且つ、算出されたディザ値E0’が0である例が図示されている。以上で、R代表値、G代表値、B代表値の逆量子化処理が完了する。
R代表値に対して上述されている逆量子化処理(左シフト及びディザ値の減算)を行うことで得られた値を、以下では、逆量子化R代表値と記載する。同様に、G代表値に対して逆量子化処理を行うことで得られた値を、逆量子化G代表値と記載し、B代表値に対して逆量子化処理を行うことで得られた値を、逆量子化B代表値と記載する。
更に、逆量子化R代表値、逆量子化G代表値、逆量子化B代表値から画素A、BのRデータ、Gデータ、Bデータが再生される。
画素A、BのRデータの再生においては、β比較データ及び大小認識データが使用される。β比較データにおいて、Rデータの差|RA−RB|が閾値βよりも大きいと記述されている場合、逆量子化R代表値に一定値(例えば、5)を加えた値が、画素A、Bのうち大小認識データにおいて値が大きいと記述されている画素のRデータとして再生され、逆量子化R代表値に該一定値を減じた値が大小認識データにおいて値が小さいと記述されている画素のRデータとして再生される。一方、Rデータの差|RA−RB|が閾値βよりも小さい場合、画素A、BのRデータは、逆量子化R代表値に一致するとして再生される。
画素A、BのGデータの再生においても、β比較データ及び大小認識データを用いて同様の処理が行われる。一方、画素A、BのBデータの再生においては、β比較データ及び大小認識データに無関係に、画素A、BのBデータの値がいずれも、逆量子化R代表値に一致するとして再生される。
以上で、画素A、BのRデータ、Gデータ、Bデータの再生が完了する。
(相関性が低い)画素C、Dに対する展開処理では、上述の(1×4)圧縮データの展開処理と同様の逆量子化処理が行われる。画素C、Dに対する展開処理では、まず、RC *、GC *、BC *データ、及びRD *、GD *、BD *データのそれぞれについて、4ビットの左シフトが行われる。更に、ディザ値E2’、E3’の減算が行われ、これにより、画素C、DのRデータ、Gデータ、Bデータが再生される。
以上の過程により、展開対象ブロックの画素A〜Dの全ての画像データの再生が完了する。即ち、(2+1×2)圧縮データDCMP3 の展開処理が完了する。
4.(2×2)圧縮及びその展開処理
図22は、(2×2)圧縮データDCMP4のフォーマットを示す概念図である。上述のように、(2×2)圧縮は、2つの画素の画像データに高い相関性があり、かつ、他の2つの画素の間に高い相関性がある場合に使用される圧縮処理である。本実施例では、(2×2)圧縮データDCMP4も48ビットデータであり、圧縮処理識別データと、形状認識データと、R代表値#1と、G代表値#1と、B代表値#1と、R代表値#2と、G代表値#2と、B代表値#2と、β比較データと、大小認識データとで構成される。
圧縮処理識別データとは、圧縮に使われた圧縮処理の種類を示すデータであり、(2×2)圧縮データDCMP4では、3ビットが圧縮処理識別データに割り当てられる。本実施例では、(2×2)圧縮データD CMP4 の圧縮処理識別データの値は「110」である。
形状認識データとは、画素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つの組み合わせのいずれかを示している。
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ビットのデータである。
β比較データとは、相関性が高い2つの画素のRデータの差、Gデータの差、及び、Bデータの差が、それぞれ、所定の閾値βよりも大きいか否かを示すデータである。本実施例では、β比較データは、第1画素対及び第2画素対のそれぞれに3ビットが割り当てられた6ビットのデータである。一方、大小認識データは、第1画素対、及び第2画素対のそれぞれについて、どちらの画素のRデータの値が大きいか、どちらの画素のGデータの値が大きいか、及び、どちらの画素のBデータの値が大きいかを示すデータである。各画素対について、Rデータに対応する大小認識データは、該画素対のRデータの差が閾値βよりも大きい場合にのみ生成される。同様に、各画素対について、Gデータに対応する大小認識データは、該画素対のGデータの差が閾値βよりも大きい場合にのみ生成され、Bデータに対応する大小認識データは、該画素対のBデータの差が閾値βよりも大きい場合にのみ生成される。したがって、大小認識データは、0〜6ビットのデータである。
以下、図23Aを参照しながら、(2×2)圧縮におけるデータ処理について説明する。以下では、画素A、Bの間の相関性が高く、画素C、Dの間の相関性が高い場合における(2×2)圧縮データD CMP4 の生成について記述している。画素A、Bが第1画素対と定義され、画素C、Dが第2画素対と定義される。他の場合も同様にして(2×2)圧縮データD CMP4 が生成可能であることは、当業者には容易に理解されよう。
まず、各画素対について、Rデータ、Gデータ、Bデータの平均値が算出される。詳細には、画素A、BのRデータ、Gデータ、Bデータの平均値Rave1、Gave1、Bave1、及び画素C、DのRデータ、Gデータ、Bデータの平均値Rave2、Gave2、Bave2は、下記式によって算出される:
Rave1=(RA+RB+1)/2,
Gave1=(GA+GB+1)/2,
Bave1=(BA+BB+1)/2,
Rave2=(RA+RB+1)/2,
Gave2=(GA+GB+1)/2,
Bave1=(BA+BB+1)/2.
更に、画素A、BのRデータの差|RA−RB|、Gデータの差|GA−GB|、及び、Bデータの差|BA−BB|が、所定の閾値βよりも大きいか否かが比較される。同様に、画素C、DのRデータの差|RC−RD|、Gデータの差|GC−GD|、及び、Bデータの差|BC−BD|が、所定の閾値βよりも大きいか否かが比較される。これらの比較結果を記述するβ比較データが、(2×2)圧縮データDCMP4に組み込まれる。
更に、画素A、Bの組み合わせ、及び画素C、Dの組み合わせのそれぞれについて大小認識データが作成される。作成された大小認識データは、(2×2)圧縮データD CMP4 に組み込まれる。
詳細には、画素A、BのRデータの差|RA−RB|が閾値βよりも大きい場合、画素A、BのいずれのRデータが大きいかが、大小認識データに記述される。画素A、BのRデータの差|RA−RB|が閾値β以下の場合には、画素A、BのRデータの大小関係は、大小認識データに記述されない。同様に、画素A、BのGデータの差|GA−GB|が閾値βよりも大きい場合、画素A、BのいずれのGデータが大きいかが、大小認識データに記述される。画素A、BのGデータの差|GA−GB|が閾値β以下の場合には、画素A、BのGデータの大小関係は、大小認識データに記述されない。加えて、画素A、BのBデータの差|BA−BB|が閾値βよりも大きい場合、画素A、BのいずれのBデータが大きいかが、大小認識データに記述される。画素A、BのBデータの差|BA−BB|が閾値β以下の場合には、画素A、BのBデータの大小関係は、大小認識データに記述されない。
同様に、画素C、DのRデータの差|RC−RD|が閾値βよりも大きい場合、画素C、DのいずれのRデータが大きいかが、大小認識データに記述される。画素C、DのRデータの差|RC−RD|が閾値β以下の場合には、画素C、DのRデータの大小関係は、大小認識データに記述されない。同様に、画素C、DのGデータの差|GC−GD|が閾値βよりも大きい場合、画素C、DのいずれのGデータが大きいかが、大小認識データに記述される。画素C、DのGデータの差|GC−GD|が閾値β以下の場合には、画素C、DのGデータの大小関係は、大小認識データに記述されない。加えて、画素C、DのBデータの差|BC−BD|が閾値βよりも大きい場合、画素C、DのいずれのBデータが大きいかが、大小認識データに記述される。画素C、DのBデータの差|BC−BD|が閾値β以下の場合には、画素C、DのBデータの大小関係は、大小認識データに記述されない。
更に、画素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が算出される。
平均値Rave1、Gave1、Bave1の量子化処理においては、まず、画素A、BのRデータ、Gデータ、Bデータの平均値Rave1、Gave1、Bave1にディザ値が加算される。本実施例では、該ディザ値は、圧縮対象ブロックのブロック座標xBLK、yBLKから算出される。例えば、平均値Rave1、Gave1、Bave1に対する量子化処理で用いられるディザ値は、対応する画素A、Bのうちの一方の画素の座標を用いて、式(3a)又は(3b)から算出された疑似乱数V0又はV1の下位4ビットとして算出してもよい。本実施例では、平均値Rave1、Gave1、Bave1の量子化処理において画素Aの座標から算出されたディザ値E0が用いられ、該算出されたディザ値E0が0であるとして説明が行われる。
平均値Rave2、Gave2、Bave2の量子化処理においても同様に、画素C、DのRデータ、Gデータ、Bデータの平均値Rave2、Gave2、Bave2にディザ値が加算される。該ディザ値も、圧縮対象ブロックのブロック座標xBLK、yBLKから算出される。例えば、平均値Rave2、Gave2、Bave2に対する量子化処理で用いられるディザ値は、対応する画素C、Dのうちの一方の画素の座標を用いて、式(3c)又は(3d)から算出された疑似乱数V2又はV3の下位4ビットとして算出してもよい。本実施例では、平均値Rave2、Gave2、Bave2の量子化処理において画素Cの座標から算出されたディザ値E2が用いられ、該算出されたディザ値E2が10であるとして説明が行われる。
更に、ディザ値が加算された平均値Rave1、Gave1、Bave1、平均値Rave2、Gave2、Bave2に対して丸め処理又はビット切捨て処理が行われてR代表値、G代表値、B代表値が算出される。まず、画素A、Bについて説明すると、丸め処理において加算される数値及びビット切捨て処理で切り捨てられるビット数は、Rデータ、Gデータ、Bデータの差|RA−RB|、|GA−GB|、及び|BA−BB|と閾値βとの大小関係に応じて、2ビット又は3ビットに決定される。Rデータについては、Rデータの差|RA−RB|が閾値βよりも大きい場合、Rデータの平均値Rave1に値4を加えた後下位3ビットを切り捨てる処理が行われ、これによりR代表値#1が算出される。そうでない場合、平均値Rave1に値2を加えた後下位2ビットを切り捨てる処理が行われ、これによりR代表値#1が算出される。結果として、R代表値#1は、5ビット又は6ビットになる。Gデータ、Bデータについても同様である。Gデータの差|GA−GB|が閾値βよりも大きい場合、Gデータの平均値Gave1に値4を加えた後下位3ビットを切り捨てる処理が行われ、これによりG代表値#1が算出される。そうでない場合、平均値Gave1に値2を加えた後下位2ビットを切り捨てる処理が行われ、これによりG代表値#1が算出される。更に、Bデータの差|BA−BB|が閾値βよりも大きい場合、Bデータの平均値Bave1に値4を加えた後下位3ビットを切り捨てる処理が行われ、これによりB代表値#1が算出される。そうでない場合、平均値Bave1に値2を加えた後下位2ビットを切り捨てる処理が行われ、これによりB代表値#1が算出される。
画素C、Dの組み合わせについても同様の処理が行われてR代表値#2、G代表値#2、B代表値#2が算出される。ただし、画素C、DのGデータについては、丸め処理において加算される数値及びビット切捨て処理で切り捨てられるビット数は、1ビット又は2ビットである。Gデータの差|GC−GD|が閾値βよりも大きい場合、Gデータの平均値Gave2に値2を加えた後下位2ビットを切り捨てる処理が行われ、これによりG代表値#2が算出される。そうでない場合、平均値Gave2に値1を加えた後下位1ビットを切り捨てる処理が行われ、これによりG代表値#2が算出される。
以上により、(2×2)圧縮による圧縮処理が完了する。
続いて、図23Bを参照しながら、(2×2)圧縮データDCMP4の展開処理におけるデータ処理について説明する。以下では、画素A、Bの画像データの間の相関性が高く、且つ、画素C、Dの画像データの間の相関性が高い場合における(2×2)圧縮データDCMP4の展開について記述している。他の場合も同様にして(2×2)圧縮データDCMP4が展開可能であることは、当業者には容易に理解されよう。
まず、(2×2)圧縮データDCMP4に対する展開処理では、R代表値#1、G代表値#1、B代表値#1に対してディザ値を用いた逆量子化処理が行われる。
詳細には、まず、R代表値#1、G代表値#1、B代表値#1に対して左シフト(ビット繰上げ)が行われる。左シフトのビット数は、β比較データに記述された、画素A、BのRデータ、Gデータ、Bデータの差|RA−RB|、|GA−GB|、|BA−BB|と閾値βとの大小関係に応じて決定される。画素A、BのRデータの差|RA−RB|が閾値βよりも大きい場合、R代表値#1に対して3ビットの左シフトが行われ、そうでない場合、2ビットの左シフトが行われる。同様に、画素A、BのGデータの差|GA−GB|が閾値βよりも大きい場合、G代表値#1に対して3ビットの左シフトが行われ、そうでない場合、2ビットの左シフトが行われる。更に、画素A、BのBデータの差|BA−BB|が閾値βよりも大きい場合、B代表値#1に対して3ビットの左シフトが行われ、そうでない場合、2ビットの左シフトが行われる。
R代表値#2、G代表値#2、B代表値#2についても同様の左シフトが行われる。ただし、G代表値#2の左シフトのビット数は、1ビット又は2ビットのうちから選ばれる。画素C、DのGデータの差|GC−GD|が閾値βよりも大きい場合、G代表値#2に対して2ビットの左シフトが行われ、そうでない場合、1ビットの左シフトが行われる。
更に、左シフトがなされたR代表値#1、G代表値#1、B代表値#1、R代表値#2、G代表値#2、B代表値#2のそれぞれについて、ディザ値の減算が行われる。本実施例では、ディザ値は、展開対象ブロックのブロック座標xBLK’、yBLK’から算出される。例えば、画素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の逆量子化処理が完了する。
R代表値#1、G代表値#1、B代表値#1に対して上記のような逆量子化処理(左シフト及びディザ値の減算)を行うことで得られた値を、以下では、それぞれ、逆量子化R代表値#1、逆量子化G代表値#1、逆量子化B代表値#1と記載する。同様に、R代表値#2、G代表値#2、B代表値#2に対して上記のような逆量子化処理(左シフト及びディザ値の減算)を行うことで得られた値を、以下では、それぞれ、逆量子化R代表値#2、逆量子化G代表値#2、逆量子化B代表値#2と記載する。
更に、逆量子化R代表値#1、逆量子化G代表値#1、逆量子化B代表値#1から画素A、BのRデータ、Gデータ、Bデータが再生され、逆量子化R代表値#2、逆量子化G代表値#2、逆量子化B代表値#2から画素C、DのRデータ、Gデータ、Bデータが再生される。
各画素のRデータ、Gデータ、Bデータの再生においては、β比較データ及び大小認識データが使用される。β比較データにおいて、画素A、BのRデータの差|RA−RB|が閾値βよりも大きいと記述されている場合、逆量子化R代表値#1に一定値(例えば、5)を加えた値が、画素A、Bのうち大小認識データにおいて大きいと記述されている画素のRデータとして再生され、逆量子化R代表値#1に該一定値を減じた値が、大小認識データにおいて小さいと記述されている画素のRデータとして再生される。画素A、BのRデータの差|RA−RB|が閾値βよりも小さい場合、画素A、BのRデータは、逆量子化R代表値#1に一致するとして再生される。画素A、BのGデータ、Bデータ、及び画素C、DのRデータ、Gデータ、Bデータも同様の手順によって再生される。
以上の過程により、展開対象ブロックの画素A〜DのRデータ、Gデータ、Bデータの再生が完了する。即ち、(2×2)圧縮で圧縮された圧縮画像データDCMP4の展開処理が完了する。
5.(4×1)圧縮及びその展開処理
図24は、(4×1)圧縮データD CMP5 のフォーマットを示す概念図である。上述のように、(4×1)圧縮は、4つの画素A〜Dの画像データに高い相関性がある場合に使用される圧縮処理である。(4×1)圧縮では、図5に図示されたブロック圧縮回路部1の圧縮処理回路5により行われる圧縮処理と同様の処理が行われ、(4×1)圧縮データD CMP5 の展開処理では、図6で図示されたブロック展開回路部2の展開処理回路7により行われる展開処理と同様の展開処理が行われる。
図24に示されているように、本実施例では、(4×1)圧縮データDCMP5が、圧縮処理識別データと、最小値データYmin、輝度差分データYdist0〜Ydist3のうちの3つと、アドレスデータYaddress、平均化色差データCb’、Cr’とで構成される。(4×1)圧縮データDCMP5は、48ビットデータである。図24には、(4×1)圧縮データDCMP5が、3つの輝度差分データYdist1〜Ydist3を含む場合のフォーマットが図示されているが、4つの輝度差分データYdist0〜Ydist3の他の3つの組み合わせ(例えば、Ydist0、Ydist1、Ydist2)を含む場合もある。
圧縮処理識別データとは、圧縮に使われた圧縮処理の種類を示すデータであり、(4×1)圧縮データDCMP5では、4ビットが圧縮処理識別データに割り当てられる。本実施例では、(4×1)圧縮データDCMP5の圧縮処理識別データの値は「1110」である。
最小値データYmin、輝度差分データYdist0〜Ydist3、アドレスデータYaddress及び平均化色差データCb’、Cr’は、画素A〜DのRデータ、Gデータ、Bデータに対してYUV変換を行ってYUVデータに変換し、更に、該YUVデータについて圧縮処理を行うことによって得られるデータである。上述のように、最小値データYmin及び輝度差分データYdist0〜Ydist3は、4つの画素のYUVデータのうち、輝度データから得られるデータであり、Cb’、Cr’は、色差データから得られるデータである。Ymin、Ydist0〜Ydist3のうちの3つ及びCb’、Cr’が、画素A〜Dの代表値である。本実施例では、最小値データYminが10ビット、輝度差分データYdist0〜Ydist3のそれぞれに4ビット、アドレスデータYaddressに2ビット、Cb’、Cr’のそれぞれに10ビットが割り当てられている。
以下、図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である。また、式(2c)のY2、Cb2、Cr2は、画素Cの輝度データY、色差データCb、Crであり、式(2d)のY3、Cb3、Cr3は、画素Dの輝度データY、色差データCb、Crである。輝度データY0〜Y3、色差データCb0〜Cb3、Cr0〜Cr3は、いずれも、10ビットデータとして算出される。
更に、画素A〜Dの輝度データY、色差データCr、Cbから、最小値データYmin、輝度差分データYdist0〜Ydist3、アドレスデータYaddress、平均化色差データCb’、Cr’が生成される。
最小値データYminについては、画素A、B、C、Dの輝度データY0〜Y3のうちの最小のものが最小値データYminとして決定される。例えば、輝度データY0〜Y3のうち、Y0が最小である場合、Ymin=Y0と決定される。
平均化色差データCb’は、画素A、B、C、Dの色差データCbの和を算出し、算出した和の下位2ビットを切り捨てる(即ち、4で除算する)ことによって算出される。同様に、平均化色差データCr’は、画素A、B、C、Dの色差データCrの和を算出し、算出した和の下位2ビットを切り捨てる(即ち、4で除算する)ことによって算出される。
輝度差分データYdist0〜Ydist3は、それぞれ、輝度データY0〜Y3から最小値データYminを減じて得られる差に対してディザ値E0〜E3を用いて量子化処理を行うことで算出される。詳細には、輝度差分データYdist0〜Ydist3は、下記のように算出される。
輝度差分データYdist0は、輝度データY0から最小値データYminを減じて得られる差Y0−Yminを算出し、得られた差Y0−Yminとディザ値E0の和を算出し、得られた和Y0−Ymin+E0の下位6ビットを切り捨てる量子化処理によって算出される。言い換えれば、輝度差分データYdist0は、下記式(9a)に従って算出される:
Ydist0=(Y0−Ymin+E0)>>6 ・・・(9a)
同様に、輝度差分データYdist1〜Ydist3は、それぞれ、下記式(9b)〜(9d)に従って算出される。
Ydist1=(Y1−Ymin+E1)>>6 ・・・(9b)
Ydist2=(Y2−Ymin+E2)>>6 ・・・(9c)
Ydist3=(Y3−Ymin+E3)>>6 ・・・(9d)
画素Aに対応するディザ値E0は、圧縮対象ブロックの画素Aの座標xA、yAをシード値として用いて発生した疑似乱数V0(例えば、上述の式(3a)に従って発生した疑似乱数V0)の下位8ビットとして生成される。画素Aの座標xA、yAは、圧縮対象ブロックのブロック座標xBLK、yBLKから決定可能であることに留意されたい。同様に、画素Bに対応するディザ値E1は、圧縮対象ブロックの画素Bの座標xB、yBをシード値として用いて発生した疑似乱数V1(例えば、上述の式(3b)に従って発生した疑似乱数V1)の下位8ビットとして生成される。更に、画素Cに対応するディザ値E2は、圧縮対象ブロックの画素Cの座標xC、yCをシード値として用いて発生した疑似乱数V2(例えば、上述の式(3c)に従って発生した疑似乱数V2)の下位8ビットとして生成される。また、画素Dに対応するディザ値E3は、圧縮対象ブロックの画素Dの座標xD、yDをシード値として用いて発生した疑似乱数V3(例えば、上述の式(3d)に従って発生した疑似乱数V3)の下位8ビットとして生成される。
(4×1)圧縮データD CMP5 は、輝度差分データYdist0〜Ydist3のうち、輝度データY0〜Y3のうちが最小である1つの輝度データを除いた3つの輝度データから算出された3つの輝度差分データを含んでいる。例えば、輝度データY0〜Y3のうち輝度データY0が最小である場合、(4×1)圧縮データD CMP5 は、(輝度差分データYdist0を除いた)輝度差分データYdist1〜Ydist3を含んでいる。
アドレスデータYaddressは、画素A〜Dのうち輝度データが最小である画素を示すデータ(即ち、輝度データY0〜Y3のうちのどれが最小であるかを示すデータ)として生成される。例えば、輝度データY0〜Y3のうちの輝度データY0が最小である場合、画素Aの輝度データY0が最小であることを示す情報を含むようにアドレスデータYaddressが生成される。
(4×1)圧縮データDCMP5は、上記のように生成された最小値データYmin、平均化色差データCb’、Cr’、輝度差分データYdist0〜Ydist3のうちの3つ、及び、アドレスデータYaddressを含んでいる。以上の処理により、(4×1)圧縮が完了する。
続いて、図25Bを参照しながら、(4×1)圧縮データDCMP5の展開処理におけるデータ処理について説明する。まず、展開対象ブロックの画素A、B、C、Dの輝度データY0’、Y1’、Y2’、Y3’が、(4×1)圧縮データDCMP5に含まれる最小値データYmin、輝度差分データYdist0〜Ydist3のうちの3つ、及び、アドレスデータYaddressから、下記のようにして再生される。
まず、(4×1)圧縮データDCMP5に含まれる最小値データYminが、アドレスデータYaddressに指定されている画素の輝度データと決定される。例えば、アドレスデータYaddressが画素Aの輝度データが最小であることを示している場合、最小値データYminが画素Aの輝度データY0’として決定される。アドレスデータYaddressが他の画素の輝度データが最小であることを示している場合、当該他の画素の輝度データが同様にして決定される。
残りの3つの画素の輝度データは、(4×1)圧縮データDCMP5に含まれる3つの輝度差分データ(輝度差分データYdist0〜Ydist3のうちの3つ)に対してディザ値を用いた逆量子化処理を行って得られるデータと最小値データYminから再生される。
詳細には、残りの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ビットの左シフト(即ち、ビット繰上げ)を示す演算子である。
例えば、アドレスデータYaddressが画素Aの輝度データが最小であることを示している場合、(4×1)圧縮データDCMP5が輝度差分データYdist1〜Ydist3を含んでいるので、画素B、C、D(画素A以外の画素)の輝度データY1’、Y2’、Y3’が、式(10b)〜(10d)に従って再生される。また、アドレスデータYaddressが他の画素の輝度データが最小であることを示している場合も同様にして、残りの3つの画素の輝度データが再生される。
ここで、画素Aに対応するディザ値E0’は、展開対象ブロックの画素Aの座標xA’、yA’をシード値として用いて発生した疑似乱数V0’(例えば、上述の式(5a)に従って発生した疑似乱数V0’)の下位8ビットとして生成される。展開対象ブロックの画素Aの座標xA’、yA’は、展開対象ブロックのブロック座標xBLK’、yBLK’から決定可能であることに留意されたい。同様に、展開対象ブロックの画素Bに対応するディザ値E1’は、展開対象ブロックの画素Bの座標xB’、yB’をシード値として用いて発生した疑似乱数V1’(例えば、上述の式(5b)に従って発生した疑似乱数V1’)の下位8ビットとして生成される。更に、展開対象ブロックの画素Cに対応するディザ値E2’は、展開対象ブロックの画素Cの座標xC’、yC’をシード値として用いて発生した疑似乱数V2’(例えば、上述の式(5c)に従って発生した疑似乱数V2’)の下位8ビットとして生成される。また、展開対象ブロックの画素Dに対応するディザ値E3’は、展開対象ブロックの画素Dの座標xD ’、yD ’をシード値として用いて発生した疑似乱数V3’(例えば、上述の式(5d)に従って発生した疑似乱数V3’)の下位8ビットとして生成される。
以上の処理により、展開対象ブロックの画素A〜Dの輝度データY0’〜Y3’が再生される。
一方、展開対象ブロックの画素A〜Dの色差データCb、Crとしては、(4×1)圧縮データDCMP5に含まれる平均化色差データCb’、Cr’がそのまま用いられる。
更に、画素A、B、C、Dの輝度データY0’〜Y3’及び色差データ(即ち、平均化色差データCb’、Cr’)に対してYCbCr−RGB変換が行われ、展開後画像データDIMG5’が生成される。本実施例では、当該YCbCr−RGB変換により、展開対象ブロックの画素A、B、C、Dのそれぞれの画像データDA’、DB’、D C ’、DD’のRデータ、Gデータ、Bデータが、上記の式(8a)〜(8d)に従って算出される。上述のように、式(8a)〜(8d)において、RA’、GA’、BA’は、それぞれ、画素Aの画像データDA’に含まれるRデータ、Gデータ、Bデータであり、RB’、GB’、BB’は、それぞれ、画素Bの画像データDB’に含まれるRデータ、Gデータ、Bデータである。同様に、RC’、GC’、BC’は、それぞれ、画素Cの画像データDC’に含まれるRデータ、Gデータ、Bデータであり、RD’、GD’、BD’は、それぞれ、画素Dの画像データDD’に含まれるRデータ、Gデータ、Bデータである。
以上の過程により、展開対象ブロックの画素A〜DのRデータ、Gデータ、Bデータの再生が完了する。即ち、(4×1)圧縮データDCMP5の展開処理が完了する。
以上には、本発明の実施形態及び実施例が具体的に記述されているが、本発明は、上記の実施形態及び実施例には限定されない。本発明が、様々な変更と共に実施され得ることは、当業者には容易に理解されよう。