特許第6348746号(P6348746)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社メガチップスの特許一覧

<>
  • 特許6348746-画像圧縮回路および画像圧縮方法 図000004
  • 特許6348746-画像圧縮回路および画像圧縮方法 図000005
  • 特許6348746-画像圧縮回路および画像圧縮方法 図000006
  • 特許6348746-画像圧縮回路および画像圧縮方法 図000007
  • 特許6348746-画像圧縮回路および画像圧縮方法 図000008
  • 特許6348746-画像圧縮回路および画像圧縮方法 図000009
  • 特許6348746-画像圧縮回路および画像圧縮方法 図000010
  • 特許6348746-画像圧縮回路および画像圧縮方法 図000011
  • 特許6348746-画像圧縮回路および画像圧縮方法 図000012
  • 特許6348746-画像圧縮回路および画像圧縮方法 図000013
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6348746
(24)【登録日】2018年6月8日
(45)【発行日】2018年6月27日
(54)【発明の名称】画像圧縮回路および画像圧縮方法
(51)【国際特許分類】
   H04N 1/41 20060101AFI20180618BHJP
   H04N 19/124 20140101ALI20180618BHJP
   H04N 19/176 20140101ALI20180618BHJP
   H04N 19/154 20140101ALI20180618BHJP
【FI】
   H04N1/41
   H04N19/124
   H04N19/176
   H04N19/154
【請求項の数】8
【全頁数】14
(21)【出願番号】特願2014-69332(P2014-69332)
(22)【出願日】2014年3月28日
(65)【公開番号】特開2015-192372(P2015-192372A)
(43)【公開日】2015年11月2日
【審査請求日】2017年2月17日
(73)【特許権者】
【識別番号】591128453
【氏名又は名称】株式会社メガチップス
(74)【代理人】
【識別番号】100080159
【弁理士】
【氏名又は名称】渡辺 望稔
(74)【代理人】
【識別番号】100090217
【弁理士】
【氏名又は名称】三和 晴子
(72)【発明者】
【氏名】渡辺 祥則
(72)【発明者】
【氏名】橋本 順之
【審査官】 松永 隆志
(56)【参考文献】
【文献】 特表2010−503245(JP,A)
【文献】 特表2007−534239(JP,A)
【文献】 特開平03−167986(JP,A)
【文献】 下城 拓也 ほか3名,ヒストグラムの疎性を考慮したLloyd−Max法の効果的適用法,電子情報通信学会技術研究報告,2011年 6月23日,第111巻、第105号, p.1-6
(58)【調査した分野】(Int.Cl.,DB名)
H04N 1/00− 1/64
H04N 19/00−19/98
(57)【特許請求の範囲】
【請求項1】
入力されたRGB画像データをYUVフォーマットに変換する画像データ変換回路と、
前記画像データ変換回路により前記YUVフォーマットに変換された画像データをそれぞれ所定の画素数からなる複数の単位領域に分割し、単位領域毎にY成分およびUV成分の2系統に分けて、それぞれ、複数の仮想代表値を設定すると共に前記複数の仮想代表値から複数の第1の量子化候補値を算出し、各単位領域内の画素毎に前記複数の第1の量子化候補値の中から前記画像データの値にもっとも近い第1の量子化候補値を選択することで仮想量子化データを取得する第1の量子化回路と、
Y成分およびUV成分の2系統に分けて、それぞれ、前記第1の量子化回路により設定された前記複数の仮想代表値および前記第1の量子化回路により取得された前記仮想量子化データに基づいて前記単位領域毎にデータ圧縮の誤差を最小にする複数の最適代表値を最小二乗法により演算する最適化回路と、
Y成分およびUV成分の2系統に分けて、それぞれ、前記最適化回路で得られた前記複数の最適代表値に基づいて前記単位領域毎に量子化に用いられる複数の第2の量子化候補値を算出し、各単位領域内の画素毎に前記複数の第2の量子化候補値の中から前記画像データの値にもっとも近い第2の量子化候補値を選択することで最適量子化データを取得する第2の量子化回路と
Y成分およびUV成分の2系統に分けて、それぞれ、前記最適化回路で演算された前記複数の最適代表値および前記第2の量子化回路で得られた前記最適量子化データを所定のデータセット構造にパッキングして出力するパッキング回路と
を備えたことを特徴とする画像圧縮回路。
【請求項2】
前記第1の量子化回路は、各単位領域内の画素毎に選択された前記第1の量子化候補値を前記複数の仮想代表値に対する係数の行列で表したものを前記仮想量子化データとし、
前記第2の量子化回路は、各単位領域内の画素毎に選択された前記第2の量子化候補値を前記複数の最適代表値に対する係数の行列で表したものを前記最適量子化データとする請求項1に記載の画像圧縮回路。
【請求項3】
前記第1の量子化回路は、前記単位領域毎に画素値の最大値および最小値を前記複数の仮想代表値として設定する請求項1または2に記載の画像圧縮回路。
【請求項4】
前記第1の量子化回路は、前記複数の仮想代表値と、前記複数の仮想代表値の間の補間値を、各単位領域に対する前記複数の第1の量子化候補値として算出する請求項3に記載の画像圧縮回路。
【請求項5】
前記最適化回路は、ヤコビ法を用いて前記複数の最適代表値を演算する請求項1〜4のいずれか一項に記載の画像圧縮回路。
【請求項6】
前記最適化回路は、整数倍された前記画像データおよび前記仮想量子化データを用いた漸化計算を複数回繰り返すことにより前記複数の最適代表値を演算する請求項5に記載の画像圧縮回路。
【請求項7】
前記第2の量子化回路は、前記複数の最適代表値と、前記複数の最適代表値の間の補間値を、各単位領域に対する前記複数の第2の量子化候補値として算出する請求項1〜6のいずれか一項に記載の画像圧縮回路。
【請求項8】
入力されたRGB画像データをYUVフォーマットに変換し、
前記YUVフォーマットに変換された画像データをそれぞれ所定の画素数からなる複数の単位領域に分割し、単位領域毎にY成分およびUV成分の2系統に分けて、それぞれ、複数の仮想代表値を設定すると共に前記複数の仮想代表値から複数の第1の量子化候補値を算出し、各単位領域内の画素毎に前記複数の第1の量子化候補値の中から前記画像データの値にもっとも近い第1の量子化候補値を選択することで仮想量子化データを取得し、
Y成分およびUV成分の2系統に分けて、それぞれ、設定された前記複数の仮想代表値および取得された前記仮想量子化データに基づいて前記単位領域毎にデータ圧縮の誤差を最小にする複数の最適代表値を最小二乗法により演算し、
Y成分およびUV成分の2系統に分けて、それぞれ、前記複数の最適代表値に基づいて前記単位領域毎に量子化に用いられる複数の第2の量子化候補値を算出し、各単位領域内の画素毎に前記複数の第2の量子化候補値の中から前記画像データの値にもっとも近い第2の量子化候補値を選択することで最適量子化データを取得し、
Y成分およびUV成分の2系統に分けて、それぞれ、前記複数の最適代表値および前記最適量子化データを所定のデータセット構造にパッキングして出力する
ことを特徴とする画像圧縮方法。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、画像圧縮回路および画像圧縮方法に係り、特に、テクスチャ圧縮により画像データを圧縮する画像圧縮回路および方法に関する。
【背景技術】
【0002】
例えば、特許文献1には、圧縮処理の中間で用いられる輝度変更子と圧縮処理前の輝度との間の誤差を低減するように輝度変更子および量子化色を選択する画像処理方法が開示されている。
また、特許文献2には、液晶ディスプレイのソースドライバで用いられる画像圧縮において、所定範囲の画素ブロックを輝度および色差の変化に合致した複数のサブ領域に分割し、サブ領域毎に処理前の色との間の誤差を小さくするように代表色を決定する画像処理方法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第4444967号公報
【特許文献2】特開2009−130690号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1および2に開示された画像処理方法では、画像データの圧縮前後における誤差の低減はなされるものの、圧縮処理に先立って、輝度変更子および量子化色、あるいは、代表色を決定するのみであるので、誤差の低減は十分なものとは言い難く、圧縮による画質の劣化を伴うものであった。
【0005】
この発明は、このような従来の問題点を解消するためになされたもので、圧縮による画質の劣化を最小限に抑えることができる画像圧縮回路および画像圧縮方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
この発明に係る画像圧縮回路は、入力されたRGB画像データをYUVフォーマットに変換する画像データ変換回路と、画像データ変換回路によりYUVフォーマットに変換された画像データをそれぞれ所定の画素数からなる複数の単位領域に分割し、単位領域毎にY成分およびUV成分の2系統に分けて、それぞれ、複数の仮想代表値を設定すると共に複数の仮想代表値から複数の第1の量子化候補値を算出し、各単位領域内の画素毎に複数の第1の量子化候補値の中から画像データの値にもっとも近い第1の量子化候補値を選択することで仮想量子化データを取得する第1の量子化回路と、Y成分およびUV成分の2系統に分けて、それぞれ、第1の量子化回路により設定された複数の仮想代表値および第1の量子化回路により取得された仮想量子化データに基づいて単位領域毎にデータ圧縮の誤差を最小にする複数の最適代表値を最小二乗法により演算する最適化回路と、Y成分およびUV成分の2系統に分けて、それぞれ、最適化回路で得られた複数の最適代表値に基づいて単位領域毎に量子化に用いられる複数の第2の量子化候補値を算出し、各単位領域内の画素毎に複数の第2の量子化候補値の中から画像データの値にもっとも近い第2の量子化候補値を選択することで最適量子化データを取得する第2の量子化回路と、Y成分およびUV成分の2系統に分けて、それぞれ、最適化回路で演算された複数の最適代表値および第2の量子化回路で得られた最適量子化データを所定のデータセット構造にパッキングして出力するパッキング回路とを備えたものである。
【0007】
第1の量子化回路は、各単位領域内の画素毎に選択された第1の量子化候補値を複数の仮想代表値に対する係数の行列で表したものを仮想量子化データとし、第2の量子化回路は、各単位領域内の画素毎に選択された第2の量子化候補値を複数の最適代表値に対する係数の行列で表したものを最適量子化データとすることができる。
第1の量子化回路は、単位領域毎に画素値の最大値および最小値を複数の仮想代表値として設定することが好ましい。
この場合、第1の量子化回路は、複数の仮想代表値と、複数の仮想代表値の間の補間値を、各単位領域に対する複数の第1の量子化候補値として算出することができる。
最適化回路は、ヤコビ法を用いて複数の最適代表値を演算することが好ましい。
この場合、最適化回路は、整数倍された画像データおよび仮想量子化データを用いた漸化計算を複数回繰り返すことにより複数の最適代表値を演算することができる。
【0008】
また、第2の量子化回路は、複数の最適代表値と、複数の最適代表値の間の補間値を、各単位領域に対する複数の第2の量子化候補値として算出することができる。
なお、入力されたRGBデータをYUVフォーマットに変換し、画像データとして第1の量子化回路に出力する画像データ変換回路をさらに備えてもよい。
また、最適化回路で演算されたY成分の複数の最適代表値および第2の量子化回路で得られたY成分の最適量子化データと最適化回路で演算されたUV成分の複数の最適代表値および第2の量子化回路で得られたUV成分の最適量子化データを所定のデータセット構造にパッキングして出力するパッキング回路をさらに備えることもできる。
【0009】
この発明に係る画像圧縮方法は、入力されたRGB画像データをYUVフォーマットに変換し、YUVフォーマットに変換された画像データをそれぞれ所定の画素数からなる複数の単位領域に分割し、単位領域毎にY成分およびUV成分の2系統に分けて、それぞれ、複数の仮想代表値を設定すると共に複数の仮想代表値から複数の第1の量子化候補値を算出し、各単位領域内の画素毎に複数の第1の量子化候補値の中から画像データの値にもっとも近い第1の量子化候補値を選択することで仮想量子化データを取得し、Y成分およびUV成分の2系統に分けて、それぞれ、設定された複数の仮想代表値および取得された仮想量子化データに基づいて単位領域毎にデータ圧縮の誤差を最小にする複数の最適代表値を最小二乗法により演算し、Y成分およびUV成分の2系統に分けて、それぞれ、複数の最適代表値に基づいて単位領域毎に量子化に用いられる複数の第2の量子化候補値を算出し、各単位領域内の画素毎に複数の第2の量子化候補値の中から画像データの値にもっとも近い第2の量子化候補値を選択することで最適量子化データを取得し、Y成分およびUV成分の2系統に分けて、それぞれ、複数の最適代表値および最適量子化データを所定のデータセット構造にパッキングして出力する方法である。
【発明の効果】
【0010】
この発明によれば、複数の仮想代表値に基づいて仮想量子化データを取得した後、データ圧縮の誤差を最小にする複数の最適代表値を最小二乗法により演算し、演算された複数の最適代表値に基づいて最適量子化データを取得するので、圧縮による画質の劣化を最小限に抑えることが可能となる。
【図面の簡単な説明】
【0011】
図1】この発明の実施の形態に係る画像圧縮回路の構成を示すブロック図である。
図2】1つの単位領域における圧縮前のYデータの一例を示す図である。
図3図2に示したYデータを3倍したY成分の整数倍データを示す図である。
図4図3に示したデータに対して画素毎に選択された第1の量子化候補値を示す図である。
図5】Y成分の仮想量子化データを示す図である。
図6】単位領域における画素の並びを示す図である。
図7】UV成分の仮想量子化データを示す図である。
図8】実施の形態における最適化回路の内部構成を示す機能ブロック図である。
図9】圧縮されたY成分データを示す図である。
図10】パッキング回路でパッキングされた圧縮データを示す図である。
【発明を実施するための形態】
【0012】
以下、この発明の実施の形態を添付図面に基づいて説明する。
図1に、実施の形態に係る画像圧縮回路の構成を示す。画像圧縮回路は、画像データ変換回路1を有し、この画像データ変換回路1に第1の量子化回路2が接続され、第1の量子化回路2に最適化回路3が接続されている。さらに、最適化回路3に第2の量子化回路4が接続され、第2の量子化回路4にパッキング回路5が接続されている。
【0013】
画像データ変換回路1は、圧縮処理の対象となるRGB画像データをYUVフォーマットに変換し、変換されたYUV画像データを第1の量子化回路2に出力するものであり、汎用の変換回路を使用することができる。
一般に、画像圧縮による誤差のうち、もっとも人間の目に感じやすい誤差が輝度変化であるため、画像データ変換回路1によりRGB画像データをYUVフォーマットに変換すれば、輝度を表すY成分のデータとそれ以外の色差に関するUV成分のデータとに分けて圧縮処理を行うことで、圧縮率を維持しながら、特に輝度に関して圧縮誤差を低減することができ、人間の目から見た画質の劣化を効果的に抑制することが可能となる。
【0014】
第1の量子化回路2は、画像データ変換回路1から入力された画像データを、それぞれ所定の画素数からなる複数の単位領域に分割し、単位領域毎に複数の仮想代表値を設定して量子化を行うことで仮想量子化データを取得する回路である。具体的には、複数の仮想代表値から複数の第1の量子化候補値が算出され、各単位領域内の画素毎に複数の第1の量子化候補値の中から画像データの値にもっとも近い第1の量子化候補値を選択することで仮想量子化データが取得される。
最適化回路3は、第1の量子化回路2により設定された複数の仮想代表値および第1の量子化回路2により取得された仮想量子化データに基づき、最小二乗法により、単位領域毎にデータ圧縮の誤差を最小にする複数の最適代表値を演算する。
【0015】
第2の量子化回路4は、最適化回路3で演算された複数の最適代表値に基づいて、量子化をし直すことで最適量子化データを取得する回路である。具体的には、複数の最適代表値から複数の第2の量子化候補値が算出され、各単位領域内の画素毎に複数の第2の量子化候補値の中から画像データの値にもっとも近い第2の量子化候補値を選択することで最適量子化データが取得される。
パッキング回路5は、最適化回路3で演算された複数の最適代表値と第2の量子化回路4で得られた最適量子化データに基づき、圧縮データを所定のデータセット構造にパッキングして出力する。
【0016】
次に、具体例を挙げて、実施の形態に係る画像圧縮回路の動作について説明する。
まず、YUVデータのうち、Yデータについて、処理を行う場合を説明する。
Yデータは、画素毎に8ビットを有するデータであり、圧縮を行う単位領域を4画素×4画素の領域とする。
1つの単位領域における圧縮前のYデータの一例を図2に示す。
第1の量子化回路2は、この単位領域内のYデータから仮想代表値xとして画素値の最小値minYと最大値maxYを抽出する。すなわち、図2の例では、minY=0、maxY=100となる。
【0017】
次に、最小値minYおよび最大値maxYと、これら最小値minYおよび最大値maxYの間を線形に補間した2つの補間値(2*minY+1*maxY)/3および(1*minY+2*maxY)/3を用いて、単位領域毎にYデータに対する4つの第1の量子化候補値c0〜c3を次式(1)のように設定する。
c0=3*minY
c1=2*minY+1*maxY
c2=1*minY+2*maxY
c3=3*maxY ・・・(1)
【0018】
最小値minYおよび最大値maxYの間を線形に補間することで、圧縮誤差の低減を図っている。
なお、上記の式(1)の右辺は、圧縮前のYデータの値を3倍したものに対応している。すなわち、式(1)の右辺を「3」で除算することで、圧縮前のYデータの値に対応するものとなるが、計算における除算の導入による回路の煩雑化を回避するため、「3」で除算せずに、圧縮前のYデータの値を3倍した整数倍データbを用いて計算を進めるものとする。
【0019】
Yデータに対する第1の量子化候補値c0〜c3は、式(1)における最小値minYおよび最大値maxYの係数coefYを抜き出して以下の式(2)のような形で、第1の量子化回路2内に予め保持された係数LUT(ルックアップテーブル)に設定することができる。
(coefY) for c0=(3,0)
(coefY) for c1=(2,1)
(coefY) for c2=(1,3)
(coefY) for c3=(0,3) ・・・(2)
【0020】
図2に示したYデータでは、minY=0、maxY=100であるので、
c0=0
c1=100
c2=200
c3=300 ・・・(3)
となる。
【0021】
これらの第1の量子化候補値c0〜c3に対し、図2に示したYデータを量子化する手順を以下に示す。
上述したように、仮想代表値xおよび補間値を3倍した値で第1の量子化候補値c0〜c3を設定したため、図2に示したYデータをそれぞれ3倍して図3に示すY成分の整数倍データbを作成し、図4に示されるように、単位領域内の画素毎に第1の量子化候補値c0〜c3のうち、整数倍データbの値にもっとも近い値を有する第1の量子化候補値を選択する。さらに、選択された第1の量子化候補値に、上記の式(2)に示した係数coefYを割り当てると、図5に示されるような画素毎のY成分の仮想量子化データが得られる。
【0022】
このようにして、仮想代表値xに基づく仮想の量子化処理が行われる。処理結果として得られた画素毎の係数で表されるY成分の仮想量子化データは、図6に示されるような画素P1〜P16の並びに従って、画素P1から画素P16まで羅列した数値データとして、以下のように16行×2列の行列Aとして定義することができる。
【0023】
【数1】
【0024】
ここで、Yデータの最小値minYおよび最大値maxYからなる2値の仮想代表値を、2×1型のベクトルxとして再定義すると共に、図3に示したように、圧縮前のYデータの値を3倍した整数倍データを、16×1型のベクトルbとして再定義すると、第1の量子化回路2における仮想の量子化処理は、
・x=b ・・・(4)
にもっとも近くなるように、行列Aを選定する作業に他ならない。
【0025】
このようなYデータに対する量子化処理と同様にして、YUVデータのうち、UVデータについても量子化の処理が行われる。
圧縮前のUデータおよびVデータも、Yデータと同様に、それぞれ画素毎に8ビットを有するデータであり、圧縮を行う単位領域を4画素×4画素の領域とする。
【0026】
第1の量子化回路2は、圧縮対象の単位領域内のUデータおよびVデータから仮想代表値xとしてそれぞれの最小値minUおよびminVと最大値maxUおよびmaxVを抽出し、UおよびVを軸とした仮想2次元平面上で、これら最小値および最大値を4点で補間することにより、単位領域毎にUVデータに対する4つの第1の量子化候補値c0〜c3を次式(5)のように設定する。
c0=(2*minU,2*minV)
c1=(minU+maxU−minV+maxV,minU−maxU+minV+maxV)
c2=(−minU+maxU+minV+maxV,minU+maxU+minV−maxV)
c3=(2*maxU,2*maxV) ・・・(5)
【0027】
なお、上記の式(5)の右辺は、圧縮前のUデータおよびVデータの値を2倍したものに対応している。すなわち、式(5)の右辺を「2」で除算することで、圧縮前のUデータおよびVデータの値に対応するものとなるが、計算における除算の導入による回路の煩雑化を回避するため、「2」で除算せずに、圧縮前のUデータおよびVデータの値を2倍した整数倍データbを用いて計算を進めるものとする。
【0028】
UVデータに対する第1の量子化候補値c0〜c3は、式(5)におけるUデータの最小値minUおよび最大値maxUの係数coefUとVデータの最小値minVおよび最大値maxVの係数coefVを抜き出して以下の式(6)のような形で、第1の量子化回路2内の係数LUTに設定することができる。
(coefU,coefV) for c0=(2,0,0,0),(0,0,2,0)
(coefU,coefV) for c1=(1,1,-1,1),(1,-1,1,1)
(coefU,coefV) for c2=(-1,1,1,1),(1,1,1,-1)
(coefU,coefV) for c3=(0,2,0,0),(0,0,0,2) ・・・(6)
【0029】
これらの第1の量子化候補値c0〜c3を用いて、Yデータの際と同様に、UデータおよびVデータの量子化が行われる。仮想代表値xおよび補間値を2倍した値で第1の量子化候補値c0〜c3を設定したため、圧縮前の画素毎のUデータおよびVデータの値をそれぞれ2倍してUV成分の整数倍データbを生成し、整数倍データbの値に対して、第1の量子化候補値c0〜c3のうちもっとも近い値を有する第1の量子化候補値を選択する。選択された第1の量子化候補値に、上記の式(6)に示した係数coefUおよびcoefVを割り当てると、例えば図7に示されるような画素毎のUV成分の仮想量子化データが得られる。
【0030】
この場合、画素P1のU、画素P1のV、画素P2のU、画素P2のV・・・というように、画素毎にU成分の仮想量子化データとV成分の仮想量子化データを並べながら画素P1から画素P16まで各画素の仮想量子化データを羅列すると、以下のように32行×4列の行列Aとして定義することができる。
【0031】
【数2】
【0032】
ここで、Uデータの最小値minUおよび最大値maxUとVデータの最小値minVおよび最大値maxVからなる4値の仮想代表値を、4×1型のベクトルxとして再定義すると共に、圧縮前のUデータおよびVデータの値を2倍した整数倍データを、画素P1のU、画素P1のV、画素P2のU、画素P2のV・・・の順で並べた32×1型のベクトルbとして再定義すると、Yデータの際と同様に、UデータおよびVデータに対しても、第1の量子化回路2における仮想の量子化処理は、上記の式(4)にもっとも近くなるように、行列Aを選定する作業となる。
【0033】
このようにして演算された各画素の仮想量子化データAと仮想代表値xと整数倍データbは、圧縮による誤差のない理想的な状態においては、上記の式(4)の関係を満たすこととなるが、実際には、量子化誤差を含むため、式(4)の関係を満たなくなる。
そこで、
・x−b・・・(7)
を最小にするような代表値xを最適代表値xとして求め、この最適代表値xを用いて改めて量子化処理を実施することにより、理想的な状態に近づけることができる。
【0034】
単位領域毎にデータ圧縮の誤差を最小にする最適代表値xが、最適化回路3により演算される。
上記の式(7)を最小にすることは、CがCの転置行列を表すものとして、
(A・x−b)*(A・x−b) ・・・(8)
を最小にすることと同等であり、この式(8)をベクトルの各成分に関して微分したものが0になるという条件と等価となる。すなわち、
2A*x−2Ab=0 ・・・(9)
となり、さらに、式(9)を変形して、
*x=Ab ・・・(10)
となる。
【0035】
最適化回路3は、ヤコビ(Jacobi)法を用いて最小二乗法により式(10)を数値的に解くことで、代表値xの最適化を行い、最適代表値xを演算する。
ここで、行列B、ベクトルzおよびyが、
Bz=y ・・・(11)
の関係を満たすとき、これをzについて解いた場合に、k番目のzと(k+1)番目のzk+1に対し、以下の漸化式として表されることが知られている。
k+1=Bdiag−1(y−Bnondiag) ・・・(12)
ただし、Bdiag−1はBの対角成分の逆行列、BnondiagはBの非対角成分の行列を表す。
【0036】
式(10)と式(11)を比較すると、AがBに、xがzに、Abがyに相当する。従って、Aの対角成分の逆行列および非対角成分の行列並びにAbの値を計算し、式(12)の形に当てはめ、xを繰り返し算出することで、ヤコビ法により式(10)をxについて漸化的に解くことが可能となる。
最適化回路3は、図8に示されるように、直列に接続された第1の計算部31、第2の計算部32および第3の計算部33を有して、漸化計算をパイプライン処理する構造を備えている。第1の計算部31、第2の計算部32および第3の計算部33は、それぞれ、同一のAを用いて、式(12)による漸化計算を1回実行する回路ブロックである。
【0037】
第1の計算部31は、第1の量子化回路2で得られた画素毎の仮想量子化データの行列AによるAおよびAbと、第1の量子化回路2で設定された仮想代表値xとに基づいて、式(12)による漸化計算を1回行って新たな代表値xaを算出する。
第2の計算部32は、第1の量子化回路2で得られた画素毎の仮想量子化データの行列AによるAおよびAbと、第1の計算部31で算出された代表値xaとに基づいて、式(12)による漸化計算をさらに1回行って新たな代表値xbを算出する。
第3の計算部33は、第1の量子化回路2で得られた画素毎の仮想量子化データの行列AによるAおよびAbと、第2の計算部32で算出された代表値xbとに基づいて、式(12)による漸化計算をさらに1回行い、算出された代表値を最適化回路3で得られた最適代表値xとして第2の量子化回路4へ出力する。
このようなパイプライン処理により算出された代表値は、仮想代表値xから、xaおよびxbを経て最適代表値xに至るほど、次第に精度を増して最適化されることとなる。
【0038】
なお、この実施の形態においては、Yデータに対する仮想量子化データの行列Aは、16行×2列の行列であり、転置行列Aは、2行×16列の行列となるため、Aは、2行×2列の行列となる。さらに、整数倍データbは16×1型のベクトルであるので、Abは、2行×1列の行列となる。
また、UデータおよびVデータに対する仮想量子化データの行列Aは、32行×4列の行列であり、転置行列Aは、4行×32列の行列となるため、Aは、4行×4列の行列となる。さらに、整数倍データbは32×1型のベクトルであるので、Abは、4行×1列の行列となる。
【0039】
このようにして最適化回路3で演算された最適代表値xが第2の量子化回路4に入力されると、第2の量子化回路4は、最適代表値xを用いて改めてYデータの量子化を実施すると共に、最適代表値xを用いて改めてUデータおよびVデータの量子化を実施することでY成分の最適量子化データおよびUV成分の最適量子化データを演算する。
第2の量子化回路4における量子化処理は、仮想代表値xの代わりに最適代表値xを使用する点を除いて、第1の量子化回路2で行われた仮想の量子化処理と同様である。すなわち、最適代表値xに基づいて複数の第2の量子化候補値c0〜c3が算出され、各単位領域内の画素毎に複数の第2の量子化候補値c0〜c3の中から画像データの値にもっとも近い第2の量子化候補値を選択することで最適量子化データが取得される。
【0040】
取得された最適量子化データは、4つの第2の量子化候補値c0〜c3に対応する2ビットのデータで表すことができる。例えば、図9に示されるように、圧縮されたY成分データは、画素毎に、第2の量子化候補値c0〜c3にそれぞれ対応するデータ「00」、「01」、「10」および「11」のいずれかとなる。
この実施の形態においては、YUVのデータを、Y成分とUV成分の2系統に分けてそれぞれ圧縮を行っており、双方とも同数の第2の量子化候補値c0〜c3が用いられるので、UV成分についても、図9に示したものと同様に、画素毎に2ビットの圧縮されたUV成分データが生成される。
【0041】
このようにして第2の量子化回路4で得られた最適量子化データは、最適化回路3で演算された最適代表値xと共にパッキング回路5に入力され、所定のデータセット構造を有する圧縮データにパッキングされる。例えば、図10に示されるように、単位領域毎に、Y成分は、最適代表値xである最小値minYおよび最大値maxYと画素毎の圧縮されたY成分データY1〜Y16から構成され、UV成分は、最適代表値xである最小値minUおよびminVと最大値maxUおよびmaxVと画素毎の圧縮されたUV成分データUV1〜UV16から構成されるデータセット構造となる。
【0042】
この実施の形態においては、最適代表値xを構成するYデータの最小値および最大値、Uデータの最小値および最大値、Vデータの最小値および最大値は、それぞれ8ビットのデータであるので、Y成分とUV成分を併せて48ビットとなる。また、圧縮された成分データY1〜Y16およびUV1〜UV16は、それぞれ2ビットのデータであるので、併せて64ビットとなる。すなわち、1つの単位領域の画像データが、合計112ビットの圧縮データで表されることとなる。
【0043】
これに対して、圧縮前のデータは、それぞれ8ビットのYデータ、UデータおよびVデータを有する画素が、単位領域内に4×4=16個存在するため、合計8×3×16=384ビットであり、この実施の形態により、大幅なデータ圧縮がなされたことがわかる。さらに、最適化回路3で代表値の最適化が行われているため、圧縮の誤差は最小となり、画質の劣化が最小限に抑制されたものとなっている。
【0044】
以上のようにして圧縮され、パッキングされた圧縮データは、この圧縮データを受信した回路で伸張することにより、画像データに戻すことができる。
このとき、まず、Yデータに関して、最適代表値xである最小値minYおよび最大値maxYから、次の式(13)により量子化候補値c0〜c3を算出する。
c0=minY
c1=(2*minY+1*maxY)/3
c2=(1*minY+2*maxY)/3
c3=maxY ・・・(13)
ここでは、回路処理の煩雑化を回避するために省略した、右辺を「3」で除算する処理を行っている。
次に、各画素の圧縮されたY成分データに基づき、それぞれ該当する量子化候補値c0〜c3を参照して、式(13)によりデータの値を変換することで、画像データへの伸張を行うことができる。
【0045】
UデータおよびVデータについても、同様に、最適代表値xである最小値minUおよびminVと最大値maxUおよびmaxVから、次の式(14)により量子化候補値c0〜c3を算出する。
c0=(minU,minV)
c1=((maxU+minU+maxV−minV)/2,(−maxU+minU+maxV+minV)/2)
c2=((maxU−minU+maxV+minV)/2,(maxU+minU−maxV+minV)/2)
c3=(maxU,maxV)
・・・(14)
ここでは、回路処理の煩雑化を回避するために省略した、右辺を「2」で除算する処理を行っている。
次に、各画素の圧縮されたUV成分データに基づき、それぞれ該当する量子化候補値c0〜c3を参照して、式(14)によりデータの値を変換することで、画像データへの伸張を行うことができる。
【0046】
図10に示したデータ構造は、通常のテクスチャ圧縮で使用される汎用の構造であるため、圧縮データを受信した回路で伸張する場合も、特別な処理を必要とすることなく、汎用の処理回路で取り扱うことが可能となる。
以上説明したように、第1の量子化回路2で仮想代表値xに基づいて仮想量子化データを取得した後、最適化回路3でデータ圧縮の誤差を最小にする最適代表値xを最小二乗法により演算し、演算された複数の最適代表値xに基づいて第2の量子化回路4で最適量子化データを取得し、さらに、パッキング回路5が、最適量子化データに基づいて圧縮データを所定のデータセット構造にパッキングするので、圧縮による画質の劣化を最小限に抑えながら、画像データの圧縮を行うことが可能となる。
【0047】
また、上記の実施の形態では、最適化回路3がヤコビ法を用いて漸化計算を効率的にパイプライン処理しているので、計算処理を繰り返しているにもかかわらず、処理速度の低下が回避されている。このため、動画処理、液晶画面のパネルセルフリフレッシュ(PSR)機能等、画像データの処理に所定の速度が要求される用途において、特に有用な画像圧縮回路を提供することができる。
なお、最適化回路3では、第1の計算部31、第2の計算部32および第3の計算部33により、漸化計算を3回行ったが、これに限るものではなく、処理結果の精度と処理に必要な時間に対応して、2回以下の漸化計算あるいは4回以上の漸化計算を行ってもよい。
【0048】
また、上記の実施の形態では、式(1)および式(5)により算出された第1の量子化候補値および第2の量子化候補値を用いたが、これに限るものではなく、他の演算式により、これら第1の量子化候補値および第2の量子化候補値を算出することもできる。
上記の実施の形態においては、圧縮を行う単位領域を4画素×4画素の領域としたが、これに限るものではなく、任意の画素数を有する単位領域を設定して圧縮処理を行うことができる。
【0049】
さらに、上記の実施の形態では、RGB画像データをYUVフォーマットに変換し、輝度を表すY成分のデータとそれ以外の色差に関するUV成分のデータの2系統に分けて圧縮処理を行ったが、これに限るものではない。例えば、画像データをY成分とU成分とV成分の3系統に分けて処理してもよく、また、YUVのデータを複数系統に分けずに一度に三次元近似することもできる。さらに、YUVフォーマットに変換することなく、RGB画像データのまま、圧縮処理を行うこともできる。
【符号の説明】
【0050】
1 画像データ変換回路、2 第1の量子化回路、3 最適化回路、4 第2の量子化回路、5 パッキング回路、31 第1の計算部、32 第2の計算部、33 第3の計算部、x 仮想代表値、xa,xb 代表値、x 最適代表値、c0〜c3 第1の量子化候補値,第2の量子化候補値、b 整数倍データ、A 仮想量子化データ、A 最適量子化データ、P1〜P16 画素、minY,minU,minV 最小値、maxY,maxU,maxV 最大値、Y1〜Y16 圧縮されたY成分データ、UV1〜UV16 圧縮されたUV成分データ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10