(58)【調査した分野】(Int.Cl.,DB名)
複数の画素によってブロックが構成され、複数のブロックによってブロック群が構成され、複数のブロック群によってフレームが構成される静止画を圧縮する画像処理装置であって、
ブロック群を順に格納する第1の格納部と、
前記第1の格納部に格納されている圧縮対象ブロック群を圧縮する圧縮部と、
圧縮対象ブロック群を解析する解析部と、
前記圧縮部によって順に圧縮された複数のブロック群を格納することにより、圧縮後のフレームを格納する第2のデータ格納部と、
を備え、
前記解析部は、
圧縮対象ブロック群に関して、第1の圧縮フォーマットを適用可能な最大ブロック数(X)を、フレームの目標圧縮率に基づいて算出し、
圧縮対象ブロック群に関するブロック属性値に基づいて、仮の第1のしきい値を算出し、
ブロック属性値が仮の第1のしきい値以上であるブロック数がX個以上である場合には、圧縮対象ブロック群の中でブロック属性値がX番目に大きいブロックのブロック属性値を、正式な第1のしきい値として設定し、
前記圧縮部は、圧縮対象ブロック群に関して、ブロック属性値が第1のしきい値以上であるブロックに対しては、第1の圧縮フォーマットを適用することによって当該ブロックを圧縮し、ブロック属性値が第1のしきい値未満であるブロックに対しては、第1の圧縮フォーマットよりも高い圧縮率の第2の圧縮フォーマットを適用することによって当該ブロックを圧縮する、画像処理装置。
【発明の概要】
【発明が解決しようとする課題】
【0005】
近年、カメラやテレビの高解像度化が急速に進行しており、静止画の画像圧縮においても、画素数の多い画像を扱う場面が多くなりつつある。圧縮対象の画像の画素数が多くなると、それに伴って大容量かつ高帯域のフレームバッファが必要となり、製品コストが上昇する。一方、バッファ容量やデータ転送レートの削減のために過剰に高い圧縮率で圧縮すると、画質が大幅に劣化する。
【0006】
本発明はかかる事情に鑑みて成されたものであり、目標圧縮率を確実に実現することによってバッファ容量を削減できるとともに、圧縮に伴う画質の劣化を最小限に抑制することによって画質を向上することが可能な、画像処理装置を得ることを目的とするものである。
【課題を解決するための手段】
【0007】
本発明の第1の態様に係る画像処理装置は、複数の画素によってブロックが構成され、複数のブロックによってブロック群が構成され、複数のブロック群によってフレームが構成される静止画を圧縮する画像処理装置であって、ブロック群を順に格納する第1の格納部と、前記第1の格納部に格納されている圧縮対象ブロック群を圧縮する圧縮部と、圧縮対象ブロック群を解析する解析部と、前記圧縮部によって順に圧縮された複数のブロック群を格納することにより、圧縮後のフレームを格納する第2のデータ格納部と、を備え、
前記解析部は、圧縮対象ブロック群に関して、第1の圧縮フォーマットを適用可能な最大ブロック数(X)を、フレームの目標圧縮率に基づいて算出し、圧縮対象ブロック群に関するブロック属性値に基づいて、仮の第1のしきい値を算出し、ブロック属性値が仮の第1のしきい値以上であるブロック数がX個以上である場合には、圧縮対象ブロック群の中でブロック属性値がX番目に大きいブロックのブロック属性値を、正式な第1のしきい値として設定し、前記圧縮部は、圧縮対象ブロック群に関して、ブロック属性値が第1のしきい値以上であるブロックに対しては、第1の圧縮フォーマットを適用することによって当該ブロックを圧縮し、ブロック属性値が第1のしきい値未満であるブロックに対しては、第1の圧縮フォーマットよりも高い圧縮率の第2の圧縮フォーマットを適用することによって当該ブロックを圧縮することを特徴とするものである。
【0008】
第1の態様に係る画像処理装置によれば、解析部は、フレームの目標圧縮率に基づいて第1のしきい値を設定する。また、圧縮部は、ブロック属性値が第1のしきい値以上であるブロックに対しては、第1の圧縮フォーマットを適用することによって当該ブロックを圧縮し、ブロック属性値が第1のしきい値未満であるブロックに対しては、第1の圧縮フォーマットよりも高い圧縮率の第2の圧縮フォーマットを適用することによって当該ブロックを圧縮する。このように、目標圧縮率に基づいて設定された第1のしきい値を用いて、各ブロックに対する第1の圧縮フォーマット及び第2の圧縮フォーマットの適用を制御することにより、所望の目標圧縮率を実現することができる。その結果、目標圧縮率が確実に実現されるため、第2のデータ格納部のバッファ容量を削減することが可能となる。また、第1の圧縮フォーマットよりも高い圧縮率の第2の圧縮フォーマットが過剰に適用されることが回避されるため、圧縮に伴う画質の劣化が最小限に抑制され、画質を向上することが可能となる。
また、第1の態様に係る画像処理装置によれば、解析部は、ブロック属性値が仮の第1のしきい値以上であるブロック数がX個以上である場合には、圧縮対象ブロック群の中でブロック属性値がX番目に大きいブロックのブロック属性値を、正式な第1のしきい値として設定する。これにより、ブロック属性値が大きいX個のブロックに対しては第1の圧縮フォーマットが適用され、それ以外のブロックに対しては第2の圧縮フォーマットが適用される。その結果、目標圧縮率を実現しつつ、画質を最大限に向上することが可能となる。
【0011】
本発明の第
2の態様に係る画像処理装置は、第
1の態様に係る画像処理装置において特に、圧縮対象ブロック群には輝度ブロック及び色差ブロックが含まれ、前記解析部は、輝度ブロックと色差ブロックとを統合した合計の圧縮対象ブロック群を対象として、最大ブロック数を算出することを特徴とするものである。
【0012】
第
2の態様に係る画像処理装置によれば、解析部は、輝度ブロックと色差ブロックとを統合した合計の圧縮対象ブロック群を対象として、最大ブロック数を算出する。人間の目は色差よりも輝度の変化に敏感であり、輝度成分が重要視されることから、第1の圧縮フォーマットの適用が必要なブロック数は、輝度ブロックに関しては比較的多く、色差ブロックに関しては比較的少なくするのが好適である。従って、第1の圧縮フォーマットを適用可能な最大ブロック数(X)を、輝度ブロックと色差ブロックとを統合した合計の圧縮対象ブロック群を対象として算出することにより、より多くの輝度ブロックに対して第1の圧縮フォーマットを適用することができ、その結果、画質を向上することが可能となる。
【0013】
本発明の第
3の態様に係る画像処理装置は、
第1又は第2の態様に係る画像処理装置において特に、ブロック属性値はブロック誤差であり、前記解析部は、圧縮対象ブロック群に関するブロック誤差の平均値に基づいて、仮の第1のしきい値を算出し、ブロック誤差が仮の第1のしきい値以上であるブロック数がX個未満である場合には、仮の第1のしきい値を正式な第1のしきい値として設定することを特徴とするものである。
【0014】
第
3の態様に係る画像処理装置によれば、解析部は、圧縮対象ブロック群に関するブロック誤差の平均値に基づいて仮の第1のしきい値を算出し、ブロック誤差が仮の第1のしきい値以上であるブロック数がX個未満である場合には、仮の第1のしきい値を正式な第1のしきい値として設定する。このように、ブロック属性値としてブロック誤差を用い、圧縮対象ブロック群に関するブロック誤差の平均値に基づいて第1のしきい値を設定することにより、第1の圧縮フォーマット及び第2の圧縮フォーマットの適用を精度良く切り替えることができ、その結果、画質を向上することが可能となる。
【0015】
本発明の第
4の態様に係る画像処理装置は、第
1又は第
2の態様に係る画像処理装置において特に、ブロック属性値は活発性評価値であり、前記解析部は、圧縮対象ブロック群に関する活発性評価値の平均値に基づいて、仮の第1のしきい値を算出し、活発性評価値が仮の第1のしきい値以上であるブロック数がX個未満である場合には、仮の第1のしきい値を正式な第1のしきい値として設定することを特徴とするものである。
【0016】
第
4の態様に係る画像処理装置によれば、解析部は、圧縮対象ブロック群に関する活発性評価値の平均値に基づいて仮の第1のしきい値を算出し、活発性評価値が仮の第1のしきい値以上であるブロック数がX個未満である場合には、仮の第1のしきい値を正式な第1のしきい値として設定する。このように、簡易な演算によって算出可能な活発性評価値をブロック属性値として用い、圧縮対象ブロック群に関する活発性評価値の平均値に基づいて第1のしきい値を設定することにより、第1のしきい値を簡易に設定することが可能となる。
【0017】
本発明の第
5の態様に係る画像処理装置は、第
3又は第
4の態様に係る画像処理装置において特に、圧縮対象ブロック群には輝度ブロック及び色差ブロックが含まれ、前記解析部は、輝度ブロックに関する第1のしきい値の設定と、色差ブロックに関する第1のしきい値の設定とを個別に行うことを特徴とするものである。
【0018】
第
5の態様に係る画像処理装置によれば、解析部は、輝度ブロックに関する第1のしきい値の設定と、色差ブロックに関する第1のしきい値の設定とを個別に行う。これにより、輝度ブロックに関しては第1のしきい値を比較的小さな値に設定することによって、第1の圧縮フォーマットが適用される輝度ブロック数を増大することができ、また、色差ブロックに関しては第1のしきい値を比較的大きな値に設定することによって、第1の圧縮フォーマットが適用される色差ブロック数を抑制することができる。その結果、より多くの輝度ブロックに対して第1の圧縮フォーマットを適用することができるため、画質を向上することが可能となる。
【0019】
本発明の第
6の態様に係る画像処理装置は、第
1〜第
5のいずれか一つの態様に係る画像処理装置において特に、前記圧縮部は、圧縮対象ブロック群の中で第1の圧縮フォーマットを適用したブロック数が最大ブロック数未満である場合には、余剰のブロック数を次の圧縮対象ブロック群に関する最大ブロック数に加算することを特徴とするものである。
【0020】
第
6の態様に係る画像処理装置によれば、圧縮部は、圧縮対象ブロック群の中で第1の圧縮フォーマットを適用したブロック数が最大ブロック数未満である場合には、余剰のブロック数を次の圧縮対象ブロック群に関する最大ブロック数に加算する。このように、余剰のブロック数を次の圧縮対象ブロック群に繰り越すことにより、次の圧縮対象ブロック群に関しては、より多くのブロックに対して第1の圧縮フォーマットを適用することができ、その結果、画質を向上することが可能となる。
【0021】
本発明の第
10の態様に係る画像処理装置は、第1〜第
9のいずれか一つの態様に係る画像処理装置において特に、第1の圧縮フォーマットは、第1の圧縮フォーマットが適用されたブロックであることを示すブロック識別子と、ブロック内の各画素の画素値を示すビットマップと、当該ブロックの量子化ステップ値と、を含むことを特徴とするものである。
【0022】
第
10の態様に係る画像処理装置によれば、第1の圧縮フォーマットは、ブロック識別子と、ブロック内の各画素の画素値を示すビットマップと、当該ブロックの量子化ステップ値と、を含む。ブロック内の各画素の画素値を示すビットマップを用いることにより、各画素の画素値を高精度に記述することができ、その結果、画質を向上することが可能となる。また、ブロックの量子化ステップ値を含むことにより、ブロック毎に最適な量子化ステップ値を設定することができ、その結果、画質を向上することが可能となる。
【0023】
本発明の第
11の態様に係る画像処理装置は、第1〜第
10のいずれか一つの態様に係る画像処理装置において特に、第2の圧縮フォーマットは、第2の圧縮フォーマットが適用されたブロックであることを示すブロック識別子と、ブロック内の平均画素値より上位側の画素値を代表する上位代表値と、ブロック内の平均画素値より下位側の画素値を代表する下位代表値と、ブロック内の各画素に上位代表値及び下位代表値のいずれが適用されるかを示すビットマップと、を含むことを特徴とするものである。
【0024】
第
11の態様に係る画像処理装置によれば、第2の圧縮フォーマットは、ブロック識別子と、ブロック内の平均画素値より上位側の画素値を代表する上位代表値と、ブロック内の平均画素値より下位側の画素値を代表する下位代表値と、ブロック内の各画素に上位代表値及び下位代表値のいずれが適用されるかを示すビットマップと、を含む。ブロック内の各画素の画素値に代えて、上位代表値及び下位代表値を記述することにより、必要ビット数を削減でき、その結果、圧縮率を向上することが可能となる。
【0025】
本発明の第
7の態様に係る画像処理装置は、
複数の画素によってブロックが構成され、複数のブロックによってブロック群が構成され、複数のブロック群によってフレームが構成される静止画を圧縮する画像処理装置であって、ブロック群を順に格納する第1の格納部と、前記第1の格納部に格納されている圧縮対象ブロック群を圧縮する圧縮部と、圧縮対象ブロック群を解析する解析部と、前記圧縮部によって順に圧縮された複数のブロック群を格納することにより、圧縮後のフレームを格納する第2のデータ格納部と、を備え、前記解析部は、フレームの目標圧縮率に基づいて第1のしきい値を設定し、前記圧縮部は、圧縮対象ブロック群に関して、活発性評価値が第2のしきい値以下であるブロックに対しては、第2の圧縮フォーマットよりも高い圧縮率の第3の圧縮フォーマットを適用することによって当該ブロックを圧縮し、その残余のブロックのうち、ブロック内の最大画素値が第3のしきい値未満であるブロックに対しては、第2の圧縮フォーマットよりも高く第3の圧縮フォーマットよりも低い圧縮率の第4の圧縮フォーマットを適用することによって当該ブロックを圧縮し、さらに残余のブロックのうち、ブロック属性値が第1のしきい値以上であるブロックに対しては、第1の圧縮フォーマットを適用することによって当該ブロックを圧縮し、ブロック属性値が第1のしきい値未満であるブロックに対しては、
第1の圧縮フォーマットよりも高い圧縮率の第2の圧縮フォーマットを適用することによって当該ブロックを圧縮することを特徴とするものである。
【0026】
第7の態様に係る画像処理装置によれば、解析部は、フレームの目標圧縮率に基づいて第1のしきい値を設定する。また、圧縮部は、ブロック属性値が第1のしきい値以上であるブロックに対しては、第1の圧縮フォーマットを適用することによって当該ブロックを圧縮し、ブロック属性値が第1のしきい値未満であるブロックに対しては、第1の圧縮フォーマットよりも高い圧縮率の第2の圧縮フォーマットを適用することによって当該ブロックを圧縮する。このように、目標圧縮率に基づいて設定された第1のしきい値を用いて、各ブロックに対する第1の圧縮フォーマット及び第2の圧縮フォーマットの適用を制御することにより、所望の目標圧縮率を実現することができる。その結果、目標圧縮率が確実に実現されるため、第2のデータ格納部のバッファ容量を削減することが可能となる。また、第1の圧縮フォーマットよりも高い圧縮率の第2の圧縮フォーマットが過剰に適用されることが回避されるため、圧縮に伴う画質の劣化が最小限に抑制され、画質を向上することが可能となる。
また、第
7の態様に係る画像処理装置によれば、圧縮部は、活発性評価値が第2のしきい値以下であるブロックに対しては、第2の圧縮フォーマットよりも高い圧縮率の第3の圧縮フォーマットを適用することによって当該ブロックを圧縮し、また、ブロック内の最大画素値が第3のしきい値未満であるブロックに対しては、第2の圧縮フォーマットよりも高く第3の圧縮フォーマットよりも低い圧縮率の第4の圧縮フォーマットを適用することによって当該ブロックを圧縮する。このように、活発性評価値又は最大画素値が低いブロックに対しては、圧縮率が比較的高い第3の圧縮フォーマット又は第4の圧縮フォーマットが適用される。これにより、真に必要なブロックに対して、圧縮率が比較的低い第1の圧縮フォーマット又は第2の圧縮フォーマットの適用を分配することができ、その結果、画像全体として画質を向上することが可能となる。
【0027】
本発明の第
8の態様に係る画像処理装置は、第
7の態様に係る画像処理装置において特に、第3の圧縮フォーマットは、第3の圧縮フォーマットが適用されたブロックであることを示すブロック識別子と、ブロック内の全画素の画素値を代表する代表値と、を含むことを特徴とするものである。
【0028】
第
8の態様に係る画像処理装置によれば、第3の圧縮フォーマットは、ブロック識別子と、ブロック内の全画素の画素値を代表する代表値と、を含む。ブロック内の各画素の画素値に代えて一の代表値が記述され、しかもビットマップも不要であるため、必要ビット数を大幅に削減でき、その結果、圧縮率を最大限に向上することが可能となる。
【0029】
本発明の第
9の態様に係る画像処理装置は、第
7又は第
8の態様に係る画像処理装置において特に、第4の圧縮フォーマットは、第4の圧縮フォーマットが適用されたブロックであることを示すブロック識別子と、ブロック内の平均画素値より上位側の画素値を代表する上位代表値と、ブロック内の平均画素値より下位側の画素値を代表する下位代表値と、ブロック内の全画素から抜粋した所定の画素に上位代表値及び下位代表値のいずれが適用されるかを示すビットマップと、を含むことを特徴とするものである。
【0030】
第
9の態様に係る画像処理装置によれば、第4の圧縮フォーマットは、ブロック識別子と、ブロック内の平均画素値より上位側の画素値を代表する上位代表値と、ブロック内の平均画素値より下位側の画素値を代表する下位代表値と、ブロック内の全画素から抜粋した所定の画素に上位代表値及び下位代表値のいずれが適用されるかを示すビットマップと、を含む。ブロック内の各画素の画素値に代えて上位代表値及び下位代表値が記述され、しかも、ブロック内の全画素から抜粋した所定の画素に関するビットマップが記述されるため、必要ビット数を大幅に削減でき、その結果、圧縮率を向上することが可能となる。
【0031】
本発明の第
12の態様に係る画像処理装置は、第1〜第
11のいずれか一つの態様に係る画像処理装置において特に、前記第2のデータ格納部から出力された圧縮後のフレームを伸張する伸張部をさらに備えることを特徴とするものである。
【0032】
第
12の態様に係る画像処理装置によれば、第2のデータ格納部から出力された圧縮後のフレームを伸張する伸張部をさらに備える。これにより、伸張された静止画を出力又は表示すること等が可能となる。
【発明の効果】
【0033】
本発明によれば、目標圧縮率を確実に実現することによってバッファ容量を削減できるとともに、圧縮に伴う画質の劣化を最小限に抑制することによって画質を向上することが可能な、画像処理装置を得ることができる。
【発明を実施するための形態】
【0035】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【0036】
図1は、本発明の実施の形態に係る画像処理装置1の構成を示すブロック図である。
図1の接続関係で示すように、画像処理装置1は、色変換部2、ラインバッファ3(第1のデータ格納部)、圧縮部4、フレームバッファ5(第2のデータ格納部)、伸張部6、色変換部7、及び解析部8を備えて構成されている。
【0037】
図2は、画像処理装置1の圧縮対象である静止画のフレーム構成を模式的に示す図である。静止画のフレームFは複数のブロックラインLによって構成されており、各ブロックラインLは複数のブロックBによって構成されている。ブロックBは、4列×4行又は8列×8行等の複数の画素Pによって構成されており、以下の例では、各ブロックBが4列×4行の16画素によって構成されているものとする。この例によると、例えば1280列×720行の画素を有する画像を処理する場合には、フレームFは720/4=180本のブロックラインLによって構成され、各ブロックラインLは1280/4=320個のブロックBによって構成される。
【0038】
本実施の形態において、圧縮前の画像のビットレートは、所定の値(以下の例では8bit/pixelとする)と定められている。この例によると、ブロック単位でのビットレートは8×16=128bit/blockとなる。圧縮率は、圧縮前の画像のビットレートに対する圧縮後の画像のビットレートの比で定義され、例えば、圧縮後の画像のビットレートが2bit/pixel(=32bit/block)となれば、圧縮率は1/4倍となる。
【0039】
圧縮部4は、ブロック単位で画像を圧縮する。
図3は、圧縮部4によって圧縮されたブロックの圧縮フォーマットの例を示す図である。圧縮部4は、圧縮対象のブロックを、圧縮フォーマットFT1,FT2のいずれかに圧縮する。
【0040】
図3に示した例において、圧縮フォーマットFT1は、2ビットの領域R11と、80ビットの領域R21と、8ビットの領域R31とを含む、合計90ビット長のブロックである。つまり、圧縮フォーマットFT1が適用されたブロックに関しては、圧縮前に比べてビットレートが90/128倍に圧縮される。90ビットで1ブロック内の16個の画素値を表現するため、ビットレートは90/16=5.63bit/pixelとなる。
【0041】
領域R11には、圧縮フォーマットFT1が適用されたブロックであることを示すブロック識別子(例えば「11」)が記述される。領域R21には、ブロック内の16個の各画素の画素値をそれぞれ5ビットで表したビットマップが記述される。領域R31には、そのブロックに適用された量子化ステップ値が、整数部が5ビットで小数部が3ビットの固定小数点実数として記述される。なお、圧縮フォーマットの種類が二種類である場合には、領域R11には1ビットのブロック識別子を記述してもよい。
【0042】
圧縮フォーマットFT2は、2ビットの領域R12と、16ビットの領域R22と、16ビットの領域R32とを含む、合計34ビット長のブロックである。つまり、圧縮フォーマットFT2が適用されたブロックに関しては、圧縮前に比べてビットレートが34/128倍に圧縮される。34ビットで1ブロック内の16個の画素値を表現するため、ビットレートは34/16=2.13bit/pixelとなる。
【0043】
領域R12には、圧縮フォーマットFT2が適用されたブロックであることを示すブロック識別子(例えば「10」)が記述される。領域R32には、8ビットの上位代表値Hと、8ビットの下位代表値Lとが記述される。ブロック内の全画素の画素平均値Mより画素値が高い画素を上位画素として、そのブロック内の全ての上位画素の画素値の平均値が、上位代表値Hとなる。また、画素平均値M以下の画素値の画素を下位画素として、そのブロック内の全ての下位画素の画素値の平均値が、下位代表値Lとなる。領域R22には、ブロック内の各画素に上位代表値H及び下位代表値Lのいずれが適用されるかを示すビットマップが記述される。例えば、上位代表値Hを適用する画素を「1」で表し、下位代表値Lを適用する画素を「0」で表すビットマップが記述される。
【0044】
以下、本実施の形態に係る画像処理装置1の動作について説明する。
【0045】
<色変換部2>
色変換部2には、カメラ又はPC等の任意の通信装置から、RGB色空間の画像データD1(D1R,D1G,D1B)が入力される。色変換部2は、入力された画像データD1を、ITU−R BT.601の規格により定義される下記の変換式に基づき、輝度Y、色差U、及び色差Vから成るYUV色空間の画像データD2(輝度データD2Y、色差データD2U、色差データD2V)に変換して出力する。
【0046】
Y=0.29891×R+0.58661×G+0.11448×B
U=−0.16874×R−0.33126×G+0.50000×B
V=0.50000×R−0.41869×G−0.08131×B
【0047】
<ラインバッファ3>
ラインバッファ3には、色変換部2から画像データD2が入力される。ラインバッファ3は、輝度データD2Y、色差データD2U、及び色差データD2Vのそれぞれに関して、ブロックライン単位で画像データD2を格納する。つまり、ラインバッファ3には、輝度データD2Yに関するYブロックラインと、色差データD2Uに関するUブロックラインと、色差データD2Vに関するVブロックラインとが格納される。本実施の形態の例ではブロックサイズが4列×4行であるため、例えば1280列×720行の画素を有する画像を処理する場合には、Y,U,Vの合計で1280×4×3=15360個の画素値(960個のブロック)が、ラインバッファ3に格納される。ラインバッファ3に格納されているYブロックライン、Uブロックライン、及びVブロックラインが、圧縮対象のブロックラインとなる。
【0048】
<解析部8>
解析部8には、静止画のフレーム全体での目標圧縮率(1/G)が、データD12として入力される。解析部8は、入力された目標圧縮率(1/G)に基づいて、各ブロックに対する圧縮フォーマットFT1,FT2の適用を切り替えるためのしきい値TH1を算出する。
【0049】
第1の処理として、解析部8は、圧縮対象のブロックラインに含まれるYブロックライン、Uブロックライン、及びVブロックラインを統合した全てのブロックの中で、圧縮フォーマットFT1を適用することが可能なブロック数の最大値(最大ブロック数X)を求める。
【0050】
まず解析部8は、圧縮フォーマットFT1のビットレートBR1と、圧縮フォーマットFT2のビットレートBR2と、目標圧縮率(1/G)とに基づいて、圧縮フォーマットFT1を適用するブロックの占有割合RT1を算出する。
【0051】
次に解析部8は、圧縮対象のYブロックライン、Uブロックライン、及びVブロックラインに含まれる総ブロック数TBと、上記で求めた占有割合RT1とに基づいて、圧縮フォーマットFT1を適用可能な最大ブロック数Xを算出する。
【0052】
例えば、BR1=90/16、BR2=34/16、1/G=1/3、TB=960の場合には、
RT1=0.155
X=148
となる。つまり、Yブロックライン、Uブロックライン、及びVブロックラインを統合した合計960個のブロックのうち、最大148個までのブロックには圧縮フォーマットFT1を適用可能であり、残りのブロックには圧縮フォーマットFT2を適用することとなる。
【0053】
第2の処理として、解析部8は、ラインバッファ3に格納されているYブロックライン、Uブロックライン、及びVブロックラインのそれぞれに関して、圧縮対象の各ブロックのブロック属性値に基づいて仮しきい値TH1’を算出する。ブロック属性値としては、ブロック誤差を用いることができる。
【0054】
Yブロックラインを対象として、ブロック誤差を用いて仮しきい値TH1y’を算出する手法について説明する。
【0055】
まず解析部8は、Yブロックラインに含まれる各ブロックに関して、画素平均値M、上位代表値H、及び下位代表値Lをそれぞれ算出する。上記の通り、画素平均値Mはブロック内の全画素の画素値の平均値であり、上位代表値Hはブロック内の全ての上位画素の画素値の平均値であり、下位代表値Lはブロック内の全ての下位画素の画素値の平均値である。
【0056】
次に解析部8は、全ての上位画素に関する輝度値と上位代表値Hとの差分絶対値和と、全ての下位画素に関する輝度値と下位代表値Lとの差分絶対値和とをそれぞれ算出し、両差分絶対値和を加算することによって、Yブロックラインに含まれる各ブロックのブロック誤差Pを算出する。
【0057】
次に解析部8は、Yブロックラインに含まれる全てのブロックのブロック誤差Pを加算し、その加算値をブロック数で除算することにより、Yブロックラインに関するブロック誤差の平均値(平均ブロック誤差P
AVE)を算出する。
【0058】
次に解析部8は、平均ブロック誤差P
AVEに所定の係数αを乗算することにより、仮しきい値TH1y’を算出する。Yブロックラインに関しては、より多くのブロックに圧縮フォーマットFT1が適用されることとなるように、係数αの値は1未満であることが望ましい。なお、平均ブロック誤差P
AVEが極端に小さい場合(つまり、所定の下限許容値より小さい場合)には、仮しきい値TH1y’を下限許容値以上の第1定数値に設定し、同様に、平均ブロック誤差P
AVEが極端に大きい場合(つまり、所定の上限許容値より大きい場合)には、仮しきい値TH1y’を上限許容値以下の第2定数値に設定しても良い。上述した係数α、下限許容値、上限許容値、第1定数値、及び第2定数値の各々の値は、所望の圧縮率や画質等に応じて最適な値に設定される。
【0059】
仮しきい値TH1y’の算出が完了すると、次に解析部8は、Yブロックラインに含まれる全てのブロックのうち、ブロック誤差Pが仮しきい値TH1y’以上であるブロック数をカウントする。そして、そのカウント値が最大ブロック数X以上である場合には、Yブロックラインに含まれる全てのブロックの中でブロック誤差PがX番目に大きいブロックを特定し、その特定したブロックのブロック誤差Pを、正式なしきい値TH1yとして確定する。一方、カウント値が最大ブロック数X未満である場合には、仮しきい値TH1y’をそのまま正式なしきい値TH1yとして確定する。
【0060】
解析部8は、Uブロックライン及びVブロックラインに関しても、上記と同様の手法によってしきい値TH1u,TH1vをそれぞれ設定する。但し、Uブロックライン及びVブロックラインに関しては、圧縮フォーマットFT1が適用されるブロック数がなるべく少なくなるように、係数αの値は1より大きいことが望ましい。
【0061】
<圧縮部4>
圧縮部4には、Yブロックラインの各ブロックの輝度データD2Y、Uブロックラインの各ブロックの色差データD2U、及びVブロックラインの各ブロックの色差データD2Vが、ラインバッファ3から入力される。また、圧縮部4には、解析部8によって算出された最大ブロック数X及びしきい値TH1(TH1y,TH1u,TH1v)が、データD10として解析部8から入力される。
【0062】
圧縮部4は、しきい値TH1yを用いてYブロックラインの各ブロックをブロック単位で順に圧縮し、しきい値TH1uを用いてUブロックラインの各ブロックをブロック単位で順に圧縮し、しきい値TH1vを用いてVブロックラインの各ブロックをブロック単位で順に圧縮する。
【0063】
圧縮部4は、圧縮対象のブロックのブロック誤差Pがしきい値TH1未満である場合には、そのブロックに対して圧縮フォーマットFT2を適用した圧縮を行う。
【0064】
具体的に、まず圧縮部4は、圧縮対象のブロックの各画素値に基づいて、それぞれ8ビットの上位代表値H及び下位代表値Lを算出する。
【0065】
次に圧縮部4は、圧縮フォーマットFT2が適用されたブロックであることを示すブロック識別子(例えば「10」)を領域R12に記述し、ブロック内の各画素に上位代表値H及び下位代表値Lのいずれが適用されるかを示すビットマップを領域R22に記述し、上位代表値H及び下位代表値Lを領域R32に記述することにより、圧縮対象のブロックを圧縮フォーマットFT2に圧縮する。
【0066】
一方、圧縮対象のブロックのブロック誤差Pがしきい値TH1以上である場合には、圧縮部4は、そのブロックに対して圧縮フォーマットFT1を適用した圧縮を行う。
【0067】
具体的に、まず圧縮部4は、圧縮対象のブロック内の最大画素値bmaxに基づいて、そのブロックに関する量子化ステップ値Qを算出する。
【0068】
次に圧縮部4は、圧縮対象のブロック内の各画素値を量子化ステップ値Qで除算することにより、各画素値を量子化する。
【0069】
次に圧縮部4は、圧縮フォーマットFT1が適用されたブロックであることを示すブロック識別子(例えば「11」)を領域R11に記述し、量子化後の各画素値を表したビットマップを領域R21に記述し、量子化ステップ値Qを領域R31に記述することにより、圧縮対象のブロックを圧縮フォーマットFT1に圧縮する。
【0070】
また、圧縮部4は、圧縮フォーマットFT1を適用したブロック数をカウントするカウンタ(初期値は最大ブロック数X)を有しており、圧縮フォーマットFT1を用いた圧縮を行う度に、そのカウンタのカウンタ値を1ずつデクリメントする。そして、現在の圧縮対象のブロックラインに含まれる全てのブロックの圧縮が完了すると、その時点でのカウンタ値(つまり、最大ブロック数Xから実際に圧縮フォーマットFT1を適用したブロック数を差し引いた余剰のブロック数)を、データD11として解析部8に入力する。解析部8は、次の圧縮対象のブロックラインに対して割り当てられる最大ブロック数(上記の例では148ブロック)に、データD11で示される余剰のブロック数を加算することによって得られたブロック数を、当該次の圧縮対象のブロックラインに関する最大ブロック数Xとして用いる。
【0071】
<フレームバッファ5>
フレームバッファ5には、圧縮後の画像データD3が圧縮部4から順に入力される。具体的には、Yブロックラインの各ブロックの圧縮後の輝度データD3Y、Uブロックラインの各ブロックの圧縮後の色差データD3U、及びVブロックラインの各ブロックの圧縮後の色差データD3Vが、ブロック順に圧縮部4から入力される。
【0072】
全てのブロックラインに含まれる全てのブロックに関する圧縮後の画像データD3が圧縮部4からフレームバッファ5に転送されることにより、圧縮後のフレームがフレームバッファ5に格納される。
【0073】
<伸張部6>
伸張部6は、圧縮後の画像データD3をフレームバッファ5から順に読み出す。具体的には、Yブロックラインの各ブロックの圧縮後の輝度データD3Y、Uブロックラインの各ブロックの圧縮後の色差データD3U、及びVブロックラインの各ブロックの圧縮後の色差データD3Vを、ブロック順に圧縮部4から読み出す。
【0074】
伸張部6は、読み出したブロックの先頭に付加されているブロック識別子を参照することにより、各ブロックに関して圧縮フォーマットFT1,FT2のいずれが適用されているかを識別する。
【0075】
伸張部6は、圧縮フォーマットFT1が適用されているブロックに関しては、領域R21に記述されているブロック内の各画素の画素値に、領域R31に記述されている量子化ステップ値Qをそれぞれ乗算することにより、画像データを伸張する。
【0076】
また、伸張部6は、圧縮フォーマットFT2が適用されているブロックに関しては、領域R22に記述されているビットマップの値が「1」の画素に対しては、領域R32に記述されている上位代表値Hをその画素の画素値とし、ビットマップの値が「0」の画素に対しては下位代表値Lをその画素の画素値とすることにより、画像データを伸張する。
【0077】
<色変換部7>
色変換部7には、YUV色空間の画像データD4(D4Y,D4U,D4V)が、伸張部6から入力される。色変換部7は、入力された画像データD4を、ITU−R BT.601の規格により定義される上記の変換式の逆変換により、RGB色空間の画像データD5(D5R,D5G,D5B)に変換して出力する。
【0078】
<まとめ>
本実施の形態に係る画像処理装置1によれば、解析部8は、フレームの目標圧縮率(1/G)に基づいてしきい値TH1(第1のしきい値)を設定する。また、圧縮部4は、ブロック属性値がしきい値TH1以上であるブロックに対しては、圧縮フォーマットFT1(第1の圧縮フォーマット)を適用することによって当該ブロックを圧縮し、ブロック属性値がしきい値TH1未満であるブロックに対しては、圧縮フォーマットFT1よりも高い圧縮率の圧縮フォーマットFT2(第2の圧縮フォーマット)を適用することによって当該ブロックを圧縮する。このように、目標圧縮率に基づいて設定されたしきい値TH1を用いて、各ブロックに対する圧縮フォーマットFT1,FT2の適用を制御することにより、所望の目標圧縮率を実現することができる。その結果、目標圧縮率が確実に実現されるため、フレームバッファ5(第2のデータ格納部)のバッファ容量を削減することが可能となる。また、圧縮フォーマットFT1よりも高い圧縮率の圧縮フォーマットFT2が過剰に適用されることが回避されるため、圧縮に伴う画質の劣化が最小限に抑制され、画質を向上することが可能となる。
【0079】
また、本実施の形態に係る画像処理装置1によれば、解析部8は、ブロック属性値が仮しきい値TH1’以上であるブロック数がX個以上である場合には、圧縮対象のブロックライン(圧縮対象ブロック群)の中でブロック属性値がX番目に大きいブロックのブロック属性値を、正式なしきい値TH1として設定する。これにより、ブロック属性値が大きいX個のブロックに対しては圧縮フォーマットFT1が適用され、それ以外のブロックに対しては圧縮フォーマットFT2が適用される。その結果、目標圧縮率を実現しつつ、画質を最大限に向上することが可能となる。
【0080】
また、本実施の形態に係る画像処理装置1によれば、解析部8は、Yブロックライン、Uブロックライン、及びVブロックラインを統合した合計のブロックラインを対象として、最大ブロック数Xを算出する。人間の目は色差よりも輝度の変化に敏感であり、輝度成分が重要視されることから、圧縮フォーマットFT1の適用が必要なブロック数は、輝度ブロックに関しては比較的多く、色差ブロックに関しては比較的少なくするのが好適である。従って、圧縮フォーマットFT1を適用可能な最大ブロック数Xを、輝度ブロックと色差ブロックとを統合した合計のブロックラインを対象として算出することにより、より多くの輝度ブロックに対して圧縮フォーマットFT1を適用することができ、その結果、画質を向上することが可能となる。
【0081】
また、本実施の形態に係る画像処理装置1によれば、解析部8は、圧縮対象のブロックラインに関するブロック誤差の平均値(平均ブロック誤差P
AVE)に基づいて仮しきい値TH1’を算出し、ブロック誤差が仮しきい値TH1’以上であるブロック数がX個未満である場合には、仮しきい値TH1’を正式なしきい値TH1として設定する。このように、ブロック属性値としてブロック誤差を用い、圧縮対象のブロックラインに関する平均ブロック誤差P
AVEに基づいてしきい値TH1を設定することにより、圧縮フォーマットFT1,FT2の適用を精度良く切り替えることができ、その結果、画質を向上することが可能となる。
【0082】
また、本実施の形態に係る画像処理装置1によれば、解析部8は、Yブロックラインに関するしきい値TH1yの設定と、Uブロックラインに関するしきい値TH1uの設定と、Vブロックラインに関するしきい値TH1vの設定とを個別に行う。これにより、Yブロックラインに関してはしきい値TH1yを比較的小さな値に設定することによって、圧縮フォーマットFT1が適用される輝度ブロック数を増大することができ、また、Uブロックライン及びVブロックラインに関してはしきい値TH1u,TH1vを比較的大きな値に設定することによって、圧縮フォーマットFT1が適用される色差ブロック数を抑制することができる。その結果、より多くの輝度ブロックに対して圧縮フォーマットFT1を適用することができるため、画質を向上することが可能となる。
【0083】
また、本実施の形態に係る画像処理装置1によれば、圧縮部4は、圧縮対象のブロックラインの中で圧縮フォーマットFT1を適用したブロック数が最大ブロック数X未満である場合には、余剰のブロック数を、次の圧縮対象のブロックラインに関する最大ブロック数に加算する。このように、余剰のブロック数を次の圧縮対象のブロックラインに繰り越すことにより、次の圧縮対象のブロックラインに関しては、より多くのブロックに対して圧縮フォーマットFT1を適用することができ、その結果、画質を向上することが可能となる。
【0084】
また、本実施の形態に係る画像処理装置1によれば、圧縮フォーマットFT1は、ブロック識別子と、ブロック内の各画素の画素値を示すビットマップと、当該ブロックの量子化ステップ値Qと、を含む。ブロック内の各画素の画素値を示すビットマップを用いることにより、各画素の画素値を高精度に記述することができ、その結果、画質を向上することが可能となる。また、ブロックの量子化ステップ値Qを含むことにより、ブロック毎に最適な量子化ステップ値Qを設定することができ、その結果、画質を向上することが可能となる。
【0085】
また、本実施の形態に係る画像処理装置1によれば、圧縮フォーマットFT2は、ブロック識別子と、ブロック内の平均画素値より上位側の画素値を代表する上位代表値Hと、ブロック内の平均画素値より下位側の画素値を代表する下位代表値Lと、ブロック内の各画素に上位代表値H及び下位代表値Lのいずれが適用されるかを示すビットマップと、を含む。ブロック内の各画素の画素値に代えて、上位代表値H及び下位代表値Lを記述することにより、必要ビット数を削減でき、その結果、圧縮率を向上することが可能となる。
【0086】
また、本実施の形態に係る画像処理装置1によれば、フレームバッファ5から出力された圧縮後のフレームを伸張する伸張部6をさらに備える。これにより、伸張された静止画を出力又は表示すること等が可能となる。
【0087】
<変形例1>
上記実施の形態ではブロック属性値としてブロック誤差を用いる例について説明したが、ブロック誤差に代えて活発性評価値を用いてもよい。
【0088】
Yブロックラインを対象として、活発性評価値を用いて仮しきい値TH1y’を算出する手法について説明する。
【0089】
まず解析部8は、ブロック内の最大画素値から最小画素値を減算することにより、Yブロックラインに含まれる各ブロックの活発性評価値Aを算出する。
【0090】
次に解析部8は、Yブロックラインに含まれる全てのブロックの活発性評価値Aを加算し、その加算値をブロック数で除算することにより、Yブロックラインに関する活発性評価値の平均値(平均活発性評価値A
AVE)を算出する。
【0091】
次に解析部8は、平均活発性評価値A
AVEに所定の係数αを乗算することにより、仮しきい値TH1y’を算出する。Yブロックラインに関しては、より多くのブロックに圧縮フォーマットFT1が適用されることとなるように、係数αの値は1未満であることが望ましい。なお、平均活発性評価値A
AVEが極端に小さい場合(つまり、所定の下限許容値より小さい場合)には、仮しきい値TH1y’を下限許容値以上の第1定数値に設定し、同様に、平均活発性評価値A
AVEが極端に大きい場合(つまり、所定の上限許容値より大きい場合)には、仮しきい値TH1y’を上限許容値以下の第2定数値に設定しても良い。上述した係数α、下限許容値、上限許容値、第1定数値、及び第2定数値の各々の値は、所望の圧縮率や画質等に応じて最適な値に設定される。
【0092】
仮しきい値TH1y’の算出が完了すると、次に解析部8は、Yブロックラインに含まれる全てのブロックのうち、活発性評価値Aが仮しきい値TH1y’以上であるブロック数をカウントする。そして、そのカウント値が最大ブロック数X以上である場合には、Yブロックラインに含まれる全てのブロックの中で活発性評価値AがX番目に大きいブロックを特定し、その特定したブロックの活発性評価値Aを、正式なしきい値TH1yとして確定する。一方、カウント値が最大ブロック数X未満である場合には、仮しきい値TH1y’をそのまま正式なしきい値TH1yとして確定する。
【0093】
解析部8は、Uブロックライン及びVブロックラインに関しても、上記と同様の手法によってしきい値TH1u,TH1vをそれぞれ設定する。但し、Uブロックライン及びVブロックラインに関しては、圧縮フォーマットFT1が適用されるブロック数がなるべく少なくなるように、係数αの値は1より大きいことが望ましい。
【0094】
本変形例において、圧縮部4は、圧縮対象のブロックの活発性評価値Aがしきい値TH1未満である場合には、そのブロックに対して圧縮フォーマットFT2を適用した圧縮を行い、一方、圧縮対象のブロックの活発性評価値Aがしきい値TH1以上である場合には、そのブロックに対して圧縮フォーマットFT1を適用した圧縮を行う。
【0095】
本変形例に係る画像処理装置1によれば、解析部8は、圧縮対象のブロックラインに関する活発性評価値の平均値(平均活発性評価値A
AVE)に基づいて仮しきい値TH1’を算出し、活発性評価値が仮しきい値TH1’以上であるブロック数がX個未満である場合には、仮しきい値TH1’を正式なしきい値TH1として設定する。このように、簡易な演算によって算出可能な活発性評価値Aをブロック属性値として用い、圧縮対象のブロックラインに関する平均活発性評価値A
AVEに基づいてしきい値TH1を設定することにより、しきい値TH1を簡易に設定することが可能となる。
【0096】
<変形例2>
上記実施の形態では二種類の圧縮フォーマットFT1,FT2を用いる例について説明したが、三種類以上の圧縮フォーマットを用いてもよい。本変形例では、四種類の圧縮フォーマットFT1〜FT4を用いる例について説明する。
【0097】
図4は、圧縮部4によって圧縮されたブロックの圧縮フォーマットの例を示す図である。圧縮部4は、圧縮対象のブロックを、圧縮フォーマットFT1〜FT4のいずれかに圧縮する。
【0098】
図4に示した例において、圧縮フォーマットFT3は、2ビットの領域R13と、8ビットの領域R23と、8ビットの領域R33とを含む、合計18ビット長のブロックである。つまり、圧縮フォーマットFT3が適用されたブロックに関しては、圧縮前に比べてビットレートが18/128倍に圧縮される。18ビットで1ブロック内の16個の画素値を表現するため、ビットレートは18/16=1.13bit/pixelとなる。
【0099】
領域R13には、圧縮フォーマットFT3が適用されたブロックであることを示すブロック識別子(例えば「01」)が記述される。領域R33には、それぞれ4ビットの上位代表値H及び下位代表値Lが記述される。領域R23には、ブロック内の全16画素から抜粋した所定の8画素に上位代表値H及び下位代表値Lのいずれが適用されるかを示すビットマップが記述される。
図5は、ビットマップに記述される画素の位置を示す図である。1〜16の数字を付した全16画素のうち、1,3,6,8,9,11,14,16の数字を付した8画素(つまり、斜め方向で隣接する位置関係にある8画素)が、ビットマップに記述される。
【0100】
また、
図4に示した例において、圧縮フォーマットFT4は、2ビットの領域R14と8ビットの領域R24とを含む、合計10ビット長のブロックである。つまり、圧縮フォーマットFT4が適用されたブロックに関しては、圧縮前に比べてビットレートが10/128倍に圧縮される。10ビットで1ブロック内の16個の画素値を表現するため、ビットレートは10/16=0.625bit/pixelとなる。
【0101】
領域R14には、圧縮フォーマットFT4が適用されたブロックであることを示すブロック識別子(例えば「00」)が記述される。領域R24には、そのブロック内の全画素の画素値を代表する代表値として、例えばブロック内の最大画素値が記述される。
【0102】
以下、本変形例に係る画像処理装置1の動作について、上記実施の形態との相違点を中心に説明する。
【0103】
<解析部8>
解析部8には、静止画のフレーム全体での目標圧縮率(1/G)が、データD12として入力される。解析部8は、入力された目標圧縮率(1/G)に基づいて、圧縮フォーマットFT1,FT2の適用を切り替えるためのしきい値TH1を算出する。
【0104】
まず解析部8は、圧縮対象のブロックラインに含まれるYブロックライン、Uブロックライン、及びVブロックラインを統合した全てのブロックのうち、活発性評価値Aが所定のしきい値TH2以下であるブロックの占有割合RT4を算出する。本変形例において、これらのブロックには圧縮フォーマットFT4が適用される。
【0105】
次に解析部8は、圧縮対象のブロックラインに含まれるYブロックライン、Uブロックライン、及びVブロックラインを統合した全てのブロックのうち、活発性評価値Aがしきい値TH2より大きく、かつ、最大画素値が所定のしきい値TH3未満であるブロックの占有割合RT3を算出する。本変形例において、これらのブロックには圧縮フォーマットFT3が適用される。
【0106】
上述したしきい値TH2,TH3の各々の値は、所望の圧縮率や画質等に応じて最適な値に設定される。
【0107】
次に解析部8は、圧縮対象のブロックラインに含まれるYブロックライン、Uブロックライン、及びVブロックラインを統合した全てのブロックの中で、圧縮フォーマットFT1を適用することが可能な最大ブロック数Xを求める。
【0108】
まず解析部8は、圧縮フォーマットFT1のビットレートBR1と、圧縮フォーマットFT2のビットレートBR2と、圧縮フォーマットFT3のビットレートBR3及び占有割合RT3と、圧縮フォーマットFT4のビットレートBR4及び占有割合RT4と、目標圧縮率(1/G)とに基づいて、圧縮フォーマットFT1を適用するブロックの占有割合RT1を算出する。
【0109】
次に解析部8は、圧縮対象のYブロックライン、Uブロックライン、及びVブロックラインに含まれる総ブロック数TBと、上記で求めた占有割合RT1とに基づいて、圧縮フォーマットFT1を適用可能な最大ブロック数Xを算出する。
【0110】
例えば、BR1=90/16、BR2=34/16、BR3=18/16、BR4=10/16、1/G=1/3、TB=960、RT3=0.1、RT4=0.2の場合には、
RT1=0.269
X=258
となる。つまり、Yブロックライン、Uブロックライン、及びVブロックラインを統合した合計960個のブロックのうち、圧縮フォーマットFT1を適用可能なブロック数は最大258個ということになる。
【0111】
本変形例では、活発性評価値Aがしきい値TH2以下であるブロックには、圧縮フォーマットFT4が適用される。また、活発性評価値Aがしきい値TH2より大きく、かつ、最大画素値がしきい値TH3未満であるブロックには、圧縮フォーマットFT3が適用される。また、活発性評価値Aがしきい値TH2より大きく、かつ、最大画素値がしきい値TH3以上であり、かつ、ブロック属性値がしきい値TH1以上であるブロックには、圧縮フォーマットFT1が適用される。また、活発性評価値Aがしきい値TH2より大きく、かつ、最大画素値がしきい値TH3以上であり、かつ、ブロック属性値がしきい値TH1未満であるブロックには、圧縮フォーマットFT2が適用される。
【0112】
次に解析部8は、ラインバッファ3に格納されているYブロックライン、Uブロックライン、及びVブロックラインのそれぞれに関して、圧縮対象の各ブロックのブロック属性値に基づいて仮しきい値TH1’を算出する。ブロック属性値としては、ブロック誤差を用いることができる。あるいは、上記変形例1と同様に、ブロック属性値として活発性評価値を用いてもよい。
【0113】
Yブロックラインを対象として、ブロック誤差を用いて仮しきい値TH1y’を算出する手法について説明する。
【0114】
まず解析部8は、Yブロックラインに含まれる全ブロックのうち、活発性評価値Aがしきい値TH2より大きく、かつ、最大画素値がしきい値TH3以上であるブロック(以下「対象ブロック」と称す)の各々に関して、画素平均値M、上位代表値H、及び下位代表値Lをそれぞれ算出する。
【0115】
次に解析部8は、全ての上位画素に関する輝度値と上位代表値Hとの差分絶対値和と、全ての下位画素に関する輝度値と下位代表値Lとの差分絶対値和とをそれぞれ算出し、両差分絶対値和を加算することによって、Yブロックラインに含まれる各対象ブロックのブロック誤差Pを算出する。
【0116】
次に解析部8は、Yブロックラインに含まれる全ての対象ブロックのブロック誤差Pを加算し、その加算値を対象ブロックのブロック数で除算することにより、Yブロックラインに関するブロック誤差の平均値(平均ブロック誤差P
AVE)を算出する。
【0117】
次に解析部8は、平均ブロック誤差P
AVEに所定の係数αを乗算することにより、仮しきい値TH1y’を算出する。なお、上記実施の形態と同様に、平均ブロック誤差P
AVEが極端に小さい場合には仮しきい値TH1y’を第1定数値に設定し、平均ブロック誤差P
AVEが極端に大きい場合には仮しきい値TH1y’を第2定数値に設定しても良い。
【0118】
仮しきい値TH1y’の算出が完了すると、次に解析部8は、Yブロックラインに含まれる全ての対象ブロックのうち、ブロック誤差Pが仮しきい値TH1y’以上であるブロック数をカウントする。そして、そのカウント値が最大ブロック数X以上である場合には、Yブロックラインに含まれる全ての対象ブロックの中でブロック誤差PがX番目に大きいブロックを特定し、その特定したブロックのブロック誤差Pを、正式なしきい値TH1yとして確定する。一方、カウント値が最大ブロック数X未満である場合には、仮しきい値TH1y’をそのまま正式なしきい値TH1yとして確定する。
【0119】
解析部8は、Uブロックライン及びVブロックラインに関しても、上記と同様の手法によってしきい値TH1u,TH1vをそれぞれ設定する。
【0120】
<圧縮部4>
圧縮部4には、Yブロックラインの各ブロックの輝度データD2Y、Uブロックラインの各ブロックの色差データD2U、及びVブロックラインの各ブロックの色差データD2Vが、ラインバッファ3から入力される。また、圧縮部4には、解析部8によって算出された最大ブロック数X及びしきい値TH1〜TH3が、データD10として解析部8から入力される。
【0121】
圧縮部4は、活発性評価値Aがしきい値TH2以下であるブロックには、圧縮フォーマットFT4を適用した圧縮を行う。
【0122】
具体的に、圧縮部4は、圧縮フォーマットFT4が適用されたブロックであることを示すブロック識別子(例えば「00」)を領域R14に記述し、ブロック内の最大画素値を領域R24に記述することにより、圧縮対象のブロックを圧縮フォーマットFT4に圧縮する。
【0123】
また、圧縮部4は、活発性評価値Aがしきい値TH2より大きく、かつ、最大画素値がしきい値TH3未満であるブロックには、圧縮フォーマットFT3を適用した圧縮を行う。
【0124】
具体的に、まず圧縮部4は、圧縮対象のブロックの各画素値に基づいて、それぞれ4ビットの上位代表値H及び下位代表値Lを算出する。
【0125】
次に圧縮部4は、圧縮フォーマットFT3が適用されたブロックであることを示すブロック識別子(例えば「01」)を領域R13に記述し、ブロック内の全16画素から抜粋した所定の8画素の各々に上位代表値H及び下位代表値Lのいずれが適用されるかを示すビットマップを領域R23に記述し、それぞれ4ビットの上位代表値H及び下位代表値Lを領域R33に記述することにより、圧縮対象のブロックを圧縮フォーマットFT3に圧縮する。
【0126】
また、圧縮部4は、活発性評価値Aがしきい値TH2より大きく、かつ、最大画素値がしきい値TH3以上であり、かつ、ブロック誤差Pがしきい値TH1未満であるブロックには、圧縮フォーマットFT2を適用した圧縮を行う。
【0127】
具体的に、まず圧縮部4は、圧縮対象のブロックの各画素値に基づいて、それぞれ8ビットの上位代表値H及び下位代表値Lを算出する。
【0128】
次に圧縮部4は、圧縮フォーマットFT2が適用されたブロックであることを示すブロック識別子(例えば「10」)を領域R12に記述し、ブロック内の各画素に上位代表値H及び下位代表値Lのいずれが適用されるかを示すビットマップを領域R22に記述し、それぞれ8ビットの上位代表値H及び下位代表値Lを領域R32に記述することにより、圧縮対象のブロックを圧縮フォーマットFT2に圧縮する。
【0129】
また、圧縮部4は、活発性評価値Aがしきい値TH2より大きく、かつ、最大画素値がしきい値TH3以上であり、かつ、ブロック誤差Pがしきい値TH1以上であるブロックには、圧縮フォーマットFT1を適用した圧縮を行う。
【0130】
具体的に、まず圧縮部4は、圧縮対象のブロック内の最大画素値bmaxに基づいて、そのブロックに関する量子化ステップ値Qを算出する。
【0131】
次に圧縮部4は、圧縮対象のブロック内の各画素値を量子化ステップ値Qで除算することにより、各画素値を量子化する。
【0132】
次に圧縮部4は、圧縮フォーマットFT1が適用されたブロックであることを示すブロック識別子(例えば「11」)を領域R11に記述し、量子化後の各画素値を表したビットマップを領域R21に記述し、量子化ステップ値Qを領域R31に記述することにより、圧縮対象のブロックを圧縮フォーマットFT1に圧縮する。
【0133】
また、圧縮部4は、圧縮フォーマットFT1を適用したブロック数をカウントするカウンタ(初期値は最大ブロック数X)を有しており、圧縮フォーマットFT1を用いた圧縮を行う度に、そのカウンタのカウンタ値を1ずつデクリメントする。そして、現在の圧縮対象のブロックラインに含まれる全てのブロックの圧縮が完了すると、その時点でのカウンタ値(つまり、最大ブロック数Xから実際に圧縮フォーマットFT1を適用したブロック数を差し引いた余剰のブロック数)を、データD11として解析部8に入力する。解析部8は、次の圧縮対象のブロックラインに関して算出した最大ブロック数に、データD11で示される余剰のブロック数を加算することによって得られたブロック数を、当該次の圧縮対象のブロックラインに関する最大ブロック数Xとして用いる。
【0134】
<伸張部6>
伸張部6は、圧縮後の画像データD3をフレームバッファ5から順に読み出す。具体的には、Yブロックラインの各ブロックの圧縮後の輝度データD3Y、Uブロックラインの各ブロックの圧縮後の色差データD3U、及びVブロックラインの各ブロックの圧縮後の色差データD3Vを、ブロック順に圧縮部4から読み出す。
【0135】
伸張部6は、読み出したブロックの先頭に付加されているブロック識別子を参照することにより、各ブロックに関して圧縮フォーマットFT1〜FT4のいずれが適用されているかを識別する。
【0136】
伸張部6は、圧縮フォーマットFT1が適用されているブロックに関しては、領域R21に記述されているブロック内の各画素の画素値に、領域R31に記述されている量子化ステップ値Qをそれぞれ乗算することにより、画像データを伸張する。
【0137】
また、伸張部6は、圧縮フォーマットFT2が適用されているブロックに関しては、領域R22に記述されているビットマップの値が「1」の画素に対しては、領域R32に記述されている上位代表値Hをその画素の画素値とし、ビットマップの値が「0」の画素に対しては下位代表値Lをその画素の画素値とすることにより、画像データを伸張する。
【0138】
また、伸張部6は、圧縮フォーマットFT3が適用されているブロックに関しては、領域R23に記述されているビットマップの値が「1」の画素に対しては、領域R33に記述されている上位代表値Hをその画素の画素値とし、ビットマップの値が「0」の画素に対しては下位代表値Lをその画素の画素値とすることにより、画像データを伸張する。また、
図5を参照して、ビットマップへの記述が省略された画素(2,4,5,7,10,12,13,15の数字を付した画素)に関しては、その画素に隣接する複数の画素の画素値の平均値を、その画素の画素値として用いる。例えば、数字1を付した画素の画素値と、数字3を付した画素の画素値との平均値を、数字2を付した画素の画素値とする。
【0139】
また、伸張部6は、圧縮フォーマットFT4が適用されているブロックに関しては、領域R24に記述されている最大画素値を、そのブロック内の全ての画素の画素値とすることにより、画像データを伸張する。
【0140】
このように本変形例に係る画像処理装置1によれば、圧縮部4は、活発性評価値Aがしきい値TH2(第2のしきい値)以下であるブロックに対しては、圧縮フォーマットFT2よりも高い圧縮率の圧縮フォーマットFT4(第3の圧縮フォーマット)を適用することによって、当該ブロックを圧縮する。また、圧縮部4は、ブロック内の最大画素値がしきい値TH3(第3のしきい値)未満であるブロックに対しては、圧縮フォーマットFT2よりも高く圧縮フォーマットFT4よりも低い圧縮率の圧縮フォーマットFT3(第4の圧縮フォーマット)を適用することによって、当該ブロックを圧縮する。このように、活発性評価値又は最大画素値が低いブロックに対しては、圧縮率が比較的高い圧縮フォーマットFT3,FT4が適用される。これにより、真に必要なブロックに対して、圧縮率が比較的低い圧縮フォーマットFT1,FT2の適用を分配することができ、その結果、画像全体として画質を向上することが可能となる。
【0141】
また、本変形例に係る画像処理装置1によれば、圧縮フォーマットFT4は、ブロック識別子と、ブロック内の全画素の画素値を代表する代表値と、を含む。ブロック内の各画素の画素値に代えて一の代表値が記述され、しかもビットマップも不要であるため、必要ビット数を大幅に削減でき、その結果、圧縮率を最大限に向上することが可能となる。
【0142】
また、本変形例に係る画像処理装置1によれば、圧縮フォーマットFT3は、ブロック識別子と、ブロック内の平均画素値より上位側の画素値を代表する上位代表値Hと、ブロック内の平均画素値より下位側の画素値を代表する下位代表値Lと、ブロック内の全画素から抜粋した所定の画素に上位代表値H及び下位代表値Lのいずれが適用されるかを示すビットマップと、を含む。ブロック内の各画素の画素値に代えて上位代表値H及び下位代表値Lが記述され、しかも、ブロック内の全画素から抜粋した所定の画素に関するビットマップが記述されるため、必要ビット数を大幅に削減でき、その結果、圧縮率を向上することが可能となる。