(57)【特許請求の範囲】
【請求項１】
画像データを直交変換し、量子化し、さらにエントロピー符号化して得られた符号データを含む圧縮画像データを伸長する方法であって、
（Ａ）複数の画素ブロックに対する符号データと、前記複数の画素ブロックの先頭に位置する第１の画素ブロックに対して割り当てられた第１の係数コードと、前記複数の画素ブロックの配列の中の任意の位置に配置された第２の画素ブロックに対して割り当てられた第２の係数コードとを含む圧縮画像データを受け取る工程と、
（Ｂ）前記符号データをエントロピー復号化することによって、量子化された変換係数を生成するとともに、前記第１と第２の係数コードをエントロピー復号化することによって第１と第２の係数を生成する工程と、
（Ｃ）前記第１と第２の係数のそれぞれと、所定の基本量子化テーブルの基本量子化レベルとを乗ずることによって、第１と第２の量子化テーブルを作成する工程と、
（Ｄ）前記第１の画素ブロックから前記第２の画素ブロックの直前の画素ブロックまでの一連の画素ブロックに対しては前記量子化された変換係数を前記第１の量子化テーブルで逆量子化し、前記第２の画素ブロックから次の係数コードが割り当てられた画素ブロックが現れるまでの一連の画素ブロックに対しては前記量子化された変換係数を前記第２の量子化テーブルで逆量子化することによって、逆量子化された変換係数を求める工程と、
（Ｅ）前記逆量子化された変換係数を逆直交変換することによって、伸長された画像データを求める工程と、
を備え、
前記符号データは、個々の画素ブロックの圧縮画像データであるブロックデータと前記基本量子化テーブルに乗じられる係数を表す係数コードとをそれぞれ１データユニットとして前記複数の画素ブロックの配列順序に従って配列された複数のデータユニットを含むとともに、前記第１の画素ブロックに対する第１のデータユニットの直前に前記第１の係数コードが配置され、前記第２の画素ブロックに対する第２のデータユニットの直前に前記第２の係数コードが配置されており、
前記第１と第２の係数コードは、前記第１と第２の係数をそれぞれ示すエントロピー符号語であり、前記変換係数の直流成分に対する一意復号可能でかつ瞬時復号可能なエントロピー符号語を含む符号テーブルに含まれている、圧縮画像データの伸長方法。
【請求項２】
請求項１記載の圧縮画像データの伸長方法であって、前記工程（Ｃ）は、
前記第１と第２の係数のそれぞれと前記基本量子化テーブルに含まれている量子化レベルとの乗算結果が所定の最大値を超える場合には、前記乗算結果が前記最大値を超えた量子化レベルの値を前記最大値に等しく設定する工程、
を含む圧縮画像データの伸長方法。
【請求項３】
請求項１記載の圧縮画像データの伸長方法であって、前記工程（Ｃ）は、
前記基本量子化テーブル内の所定位置の基本量子化レベルをそのまま前記第１と第２の逆量子化テーブルの所定位置の量子化レベルとして使用する工程、
を含む圧縮画像データの伸長方法。
【請求項４】
請求項３記載の圧縮画像データの伸長方法であって、
前記所定の基本量子化レベルは、前記変換係数の直流成分に関する量子化レベルである、圧縮画像データの伸長方法。
【請求項５】
請求項１記載の圧縮画像データの伸長方法であって、
前記圧縮画像データは、さらに、各画素ブロック内の画像が同一であるとともに連続して配列されている複数の画素ブロックの個数を示す同一パターンブロックデータを含み、
さらに、前記工程（Ｂ）は、
前記同一パターンブロックデータで指定された個数の前記連続した複数の画素ブロックに対して共通して適用される変換係数として前記量子化された変換係数を作成する際に、前記変換係数の所定の成分を予め指定された値に設定するとともに、前記所定の成分以外の前記変換係数の成分の値をゼロに設定することによって作成する工程、
を有する圧縮画像データの伸長方法。
【請求項６】
請求項５記載の圧縮画像データの伸長方法であって、
前記所定の成分は直流成分である、圧縮画像データの伸長方法。
【請求項７】
請求項５記載の圧縮画像データの伸長方法であって、
前記工程（Ｄ）は、前記同一パターンブロックデータから復号化された前記変換係数については前記逆量子化を省略する工程、
を含む圧縮画像データの伸長方法。
【請求項８】
画像データを直交変換し、量子化し、さらにエントロピー符号化して得られた符号データを含む圧縮画像データを伸長する方法であって、
（Ａ）複数の第１の画素ブロックに対する符号データと、各画素ブロック内の画像が同一であるとともに連続して配列されている複数の第２の画素ブロックの個数を示す同一パターンブロックデータとを含む圧縮画像データを受け取る工程と、
（Ｂ）前記符号データをエントロピー復号化することによって前記複数の第１の画素ブロックに対する第１の量子化された変換係数を作成し、また、前記同一パターンブロックデータで指定された個数の前記連続した複数の画素ブロックに対して共通して適用される変換係数として前記量子化された変換係数を作成する際に、前記変換係数の所定の成分を予め指定された値に設定するとともに、前記所定の成分以外の前記変換係数の成分の値をゼロに設定することによって前記第２の量子化された変換係数を作成する工程と、
（Ｃ）前記第１と第２の量子化された変換係数を量子化テーブルを用いて逆量子化することによって、第１と第２の逆量子化された変換係数を求める工程と、
（Ｄ）前記第１と第２の逆量子化された変換係数を逆直交変換することによって、伸長された画像データを作成する工程と、
を備えることを特徴とする圧縮画像データの伸長方法。
【請求項９】
画像データを直交変換し、量子化し、さらにエントロピー符号化して得られた符号データを含む圧縮画像データを伸長する装置であって、
複数の画素ブロックに対する符号データと、前記複数の画素ブロックの先頭に位置する第１の画素ブロックに対して割り当てられた第１の係数コードと、前記複数の画素ブロックの配列の中の任意の位置に配置された第２の画素ブロックに対して割り当てられた第２の係数コードとを含む圧縮画像データを記憶する記憶手段と、
前記符号データをエントロピー復号化することによって、量子化された変換係数を生成するとともに、前記第１と第２の係数コードをエントロピー復号化することによって第１と第２の係数を生成するエントロピー復号化手段と、
前記第１と第２の係数のそれぞれと、所定の基本量子化テーブルの基本量子化レベルとを乗ずることによって、第１と第２の量子化テーブルを作成する逆量子化テーブル作成手段と、
前記第１の画素ブロックから前記第２の画素ブロックの直前の画素ブロックまでの一連の画素ブロックに対しては前記量子化された変換係数を前記第１の量子化テーブルで逆量子化し、前記第２の画素ブロックから次の係数コードが割り当てられた画素ブロックが現れるまでの一連の画素ブロックに対しては前記量子化された変換係数を前記第２の量子化テーブルで逆量子化することによって、逆量子化された変換係数を求める逆量子化手段と、
前記逆量子化された変換係数を逆直交変換することによって、伸長された画像データを求める逆直交変換手段と、
を備え、
前記符号データは、個々の画素ブロックの圧縮画像データであるブロックデータと前記基本量子化テーブルに乗じられる係数を表す係数コードとをそれぞれ１データユニットとして前記複数の画素ブロックの配列順序に従って配列された複数のデータユニットを含むとともに、前記第１の画素ブロックに対する第１のデータユニットの直前に前記第１の係数コードが配置され、前記第２の画素ブロックに対する第２のデータユニットの直前に前記第２の係数コードが配置されており、
前記第１と第２の係数コードは、前記第１と第２の係数をそれぞれ示すエントロピー符号語であり、前記変換係数の直流成分に対する一意復号可能でかつ瞬時復号可能なエントロピー符号語を含む符号テーブルに含まれている、圧縮画像データの伸長装置。
【請求項１０】
請求項９記載の圧縮画像データの伸長装置であって、前記逆量子化テーブル作成手段は、
前記第１と第２の係数のそれぞれと前記基本量子化テーブルに含まれている量子化レベルとの乗算結果が所定の最大値を超える場合には、前記乗算結果が前記最大値を超えた量子化レベルの値を前記最大値に等しく設定するクリッピング手段、
を含む圧縮画像データの伸長装置。
【請求項１１】
請求項９記載の圧縮画像データの伸長装置であって、前記逆量子化テーブル作成手段は、
前記基本量子化テーブル内の所定位置の基本量子化レベルをそのまま前記第１と第２の逆量子化テーブルの所定位置の量子化レベルとして使用する手段、
を含む圧縮画像データの伸長装置。
【請求項１２】
請求項１１記載の圧縮画像データの伸長装置であって、
前記所定の基本量子化レベルは、前記変換係数の直流成分に関する量子化レベルである、圧縮画像データの伸長装置。
【請求項１３】
請求項９記載の圧縮画像データの伸長装置であって、
前記圧縮画像データは、各画素ブロック内の画像が同一であるとともに連続して配列されている複数の画素ブロックの個数を示す同一パターンブロックデータを含み、
さらに、前記エントロピー復号化手段は、
前記同一パターンブロックデータで指定された個数の前記連続した複数の画素ブロックに対して共通して適用される変換係数として前記量子化された変換係数を作成する際に、前記変換係数の所定の成分を予め指定された値に設定するとともに、前記所定の成分以外の前記変換係数の成分の値をゼロに設定することによって作成する手段、
を有する圧縮画像データの伸長装置。
【請求項１４】
請求項１３記載の圧縮画像データの伸長装置であって、
前記所定の成分は直流成分である、圧縮画像データの伸長装置。
【請求項１５】
請求項１３記載の圧縮画像データの伸長装置であって、
前記エントロピー復号化手段は、前記同一パターンブロックデータから復号化された前記変換係数を、前記逆量子化手段をバイパスして前記逆直交変換手段に供給する手段、
を含む圧縮画像データの伸長装置。
【請求項１６】
画像データを直交変換し、量子化し、さらにエントロピー符号化して得られた符号データを含む圧縮画像データを伸長する装置であって、
複数の第１の画素ブロックに対する符号データと、各画素ブロック内の画像が同一であるとともに連続して配列されている複数の第２の画素ブロックの個数を示す同一パターンブロックデータとを含む圧縮画像データを記憶する第１の記憶手段と、
前記複数の第２の画素ブロックに関する変換係数の所定の成分に対する指定値を記憶する第２の記憶手段と、
前記符号データをエントロピー復号化することによって前記複数の第１の画素ブロックに対する第１の量子化された変換係数を作成し、また、前記同一パターンブロックデータで指定された個数の前記連続した複数の画素ブロックに対して共通して適用される変換係数として前記量子化された変換係数を作成する際に、前記変換係数の所定の成分を予め指定された値に設定するとともに、前記所定の成分以外の前記変換係数の成分の値をゼロに設定することによって前記第２の量子化された変換係数を作成するエントロピー復号化手段と、
前記第１と第２の量子化された変換係数を量子化テーブルを用いて逆量子化することによって、第１と第２の逆量子化された変換係数を求める逆量子化手段と、
前記第１と第２の逆量子化された変換係数を逆直交変換することによって、伸長された画像データを作成する逆直交変換手段と、
を備えることを特徴とする圧縮画像データの伸長装置。
【請求項１７】
画像データの圧縮方法であって、
（Ａ）画像データを画像内の複数の画素ブロック毎に直交変換して変換係数を求める工程と、
（Ｂ）前記複数の画素ブロックの先頭に位置する第１の画素ブロックに対する第１の係数と、前記複数の画素ブロックの配列の中の任意の位置に配置された第２の画素ブロックに対する第２の係数とを指定する工程と、
（Ｃ）前記第１と第２の係数のそれぞれと所定の基本量子化テーブルの基本量子化レベルとを乗ずることによって、第１と第２の量子化テーブルを作成する工程と、
（Ｄ）前記第１の画素ブロックから前記第２の画素ブロックの直前の画素ブロックまでの一連の画素ブロックに対しては前記変換係数を前記第１の量子化テーブルで量子化し、前記第２の画素ブロックから次の係数コードが割り当てられた画素ブロックが現れるまでの一連の画素ブロックに対しては前記変換係数を前記第２の量子化テーブルで量子化することによって、量子化された変換係数を求める工程と、
（Ｅ）前記量子化された変換係数をエントロピー符号化することによって符号データを作成するとともに、前記第１と第２の係数をエントロピー符号化することによって第１と第２の係数コードを作成する工程と、
（Ｆ）前記符号データと前記第１と第２の係数コードとを含む圧縮画像データを作成する工程と、
を備え、
前記符号データは、個々の画素ブロックの圧縮画像データであるブロックデータと前記基本量子化テーブルに乗じられる係数を表す係数コードとをそれぞれ１データユニットとして前記複数の画素ブロックの配列順序に従って配列された複数のデータユニットを含むとともに、前記第１の画素ブロックに対する第１のデータユニットの直前に前記第１の係数コードを含み、前記第２の画素ブロックに対する第２のデータユニットの直前に前記第２の係数コードを含み、
前記工程（Ｅ）は、
前記第１の係数と前記第２の係数と前記変換係数の直流成分とに対する一意復号可能でかつ瞬時復号可能なエントロピー符号語をそれぞれ含む符号テーブルを用いて、前記第１と第２の係数をエントロピー符号化する工程を含む、画像データの圧縮方法。
【請求項１８】
請求項１７記載の画像データの圧縮方法であって、前記工程（Ｅ）は、各画素ブロック内の画像が同一であるとともに連続して配列されている複数の画素ブロックの個数を示す同一パターンブロックデータを作成する工程を含み、
前記工程（Ｆ）は、前記符号データおよび前記第１と第２の係数コードとともに、前記同一パターンブロックデータを含む圧縮画像データを作成する工程を含む画像データの圧縮方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、画像データを圧縮・伸長する方法およびそのための装置に関する。
【０００２】
【従来の技術】
図３１は、従来の画像データの圧縮／伸長装置の構成を示すブロック図である。画像データ圧縮装置５４０は、直交変換部５４２において原画像データをＭ×Ｎ画素のブロック毎に直交変換した後、量子化部５４４において量子化を行ない、さらに、エントロピー符号化部５４６において符号化を行なって圧縮画像データを作成する。一方、画像データ伸長装置５５０は、まずエントロピー復号化部５５６において圧縮画像データを復号化し、逆量子化部５５４で逆量子化した後に、逆直交変換部５５２によって画像データを復元する。なお、量子化部５４４と逆量子化部５５４は同一の量子化テーブル５６２を使用し、また、エントロピー符号化部５４６とエントロピー復号化部５５６も同一の符号テーブル５６４を使用する。
【０００３】
【発明が解決しようとする課題】
ところで、１つの画像内に、高画質で復元したい第１の部分と低画質で復元してもよい第２の部分とを含む場合がある。このような場合には、第１の部分に対しては量子化レベルの小さな量子化テーブルを用いて量子化を行ない、第２の部分に対しては量子化レベルの大きな量子化テーブルを用いて量子化を行なえば良い。量子化テーブルは、画像データの画素ブロックと同じサイズの行列、すなわちＭ行Ｎ列の行列である。従来の画像データ圧縮／伸長装置では、１つの画像内において複数の量子化テーブルを使用する場合には、Ｍ行Ｎ列の複数の量子化テーブルを圧縮装置５４０から伸長装置５５０に転送しなければならず、圧縮画像データのデータ量を増大させるという問題があった。
【０００４】
また、画像の中に一様な色を有する画素ブロックが連続するような単純な画像部分についても、それらの画素ブロックに対するＭ行Ｎ列の直交変換係数をすべてエントロピー符号化する。従って、このような単純な画像部分を表わす圧縮画像データも、かなりのデータ量になるという問題があった。
【０００５】
この発明は、従来技術における上述の課題を解決するためになされたものであり、圧縮画像データのデータ量を従来に比べて低減することのできる技術を提供することを目的とする。
【０００６】
【課題を解決するための手段および作用】
上述の課題を解決するため、この発明による圧縮画像データ伸長方法は、
（Ａ）複数の画素ブロックに対する符号データと、前記複数の画素ブロックの先頭に位置する第１の画素ブロックに対して割り当てられた第１の係数コードと、前記複数の画素ブロックの配列の中の任意の位置に配置された第２の画素ブロックに対して割り当てられた第２の係数コードとを含む圧縮画像データを受け取る工程と、
（Ｂ）前記符号データをエントロピー復号化することによって、量子化された変換係数を生成するとともに、前記第１と第２の係数コードをエントロピー復号化することによって第１と第２の係数を生成する工程と、
（Ｃ）前記第１と第２の係数のそれぞれと、所定の基本量子化テーブルの基本量子化レベルとを乗ずることによって、第１と第２の量子化テーブルを作成する工程と、
（Ｄ）前記第１の画素ブロックから前記第２の画素ブロックの直前の画素ブロックまでの一連の画素ブロックに対しては前記量子化された変換係数を前記第１の量子化テーブルで逆量子化し、前記第２の画素ブロックから次の係数コードが割り当てられた画素ブロックが現れるまでの一連の画素ブロックに対しては前記量子化された変換係数を前記第２の量子化テーブルで逆量子化することによって、逆量子化された変換係数を求める工程と、
（Ｅ）前記逆量子化された変換係数を逆直交変換することによって、伸長された画像データを求める工程と、を備える。
【０００７】
この伸長方法によれば、第１と第２の係数を与えるだけで量子化レベルの異なる第１と第２の量子化テーブルを作成できるので、２つの量子化テーブルを圧縮画像データに含める場合に比べて圧縮画像データのデータ量を低減することができる。また、第２の係数が現われるまでの複数の画素ブロックに対して第１の係数が適用されるので、これらの複数の画素ブロックのそれぞれの符号データの前に第１の係数を含めておく必要がない。
【０００８】
前記符号データは、個々の画素ブロックの圧縮画像データであるブロックデータと前記基本量子化テーブルに乗じられる係数を表す係数コードとをそれぞれ１データユニットとして前記複数の画素ブロックの配列順序に従って配列された複数のデータユニットを含むとともに、前記第１の画素ブロックに対する第１のデータユニットの直前に前記第１の係数コードが配置され、前記第２の画素ブロックに対する第２のデータユニットの直前に前記第２の係数コードが配置されているようにしてもよい。
【０００９】
こうすれば、第１と第２の係数を第１と第２の画素ブロックにそれぞれ容易に対応づけられる。
【００１０】
また、前記第１と第２の係数コードは、前記第１と第２の係数をそれぞれ示すエントロピー符号語であり、前記変換係数の直流成分に対するエントロピー符号語を含む符号テーブルに含まれていることが好ましい。
【００１１】
こうすれば、第１と第２の係数を一意にかつ瞬時に復号することができる。
【００１４】
前記工程（Ｃ）は、前記第１と第２の係数のそれぞれと前記基本量子化テーブルに含まれている量子化レベルとの乗算結果が所定の最大値を超える場合には、前記乗算結果が前記最大値を超えた量子化レベルの値を前記最大値に等しく設定する工程、を含むようにしてもよい。
【００１５】
こうすれば、量子化レベルのビット数を一定値以下に保つことができる。
【００１６】
前記工程（Ｃ）は、前記基本量子化テーブル内の所定位置の基本量子化レベルをそのまま前記第１と第２の逆量子化テーブルの所定位置の量子化レベルとして使用する工程、を含むようにしてもよい。
【００１７】
こうすれば、所定の位置の変換係数を逆量子化する際に発生する誤差を低減することができる。
【００１８】
前記所定の基本量子化レベルは、前記変換係数の直流成分に関する量子化レベルであるようにするのが好ましい。
【００１９】
変換係数の直流成分に対する量子化レベルを変えないようにすれば、直流成分の逆量子化にともなう誤差を低減することができる。
【００２０】
前記圧縮画像データは、さらに、各画素ブロック内の画像が同一であるとともに連続して配列されている複数の画素ブロックの個数を示す同一パターンブロックデータを含み、
さらに、前記工程（Ｂ）は、
前記同一パターンブロックデータで指定された個数の前記連続した複数の画素ブロックに対して共通して適用される変換係数として前記量子化された変換係数を作成する際に、前記変換係数の所定の成分を予め指定された値に設定するとともに、前記所定の成分以外の前記変換係数の成分の値をゼロに設定することによって作成する工程、、を有するようにしてもよい。
【００２１】
こうすれば、各画素ブロック内の画像が互いに同一である連続した複数の画素ブロックを比較的少ないデータで表わすことができる。
【００２２】
前記所定の成分は直流成分であることが好ましい。
【００２３】
こうすれば、連続した複数の画素ブロックを同一の色で塗ることができる。
【００２４】
前記工程（Ｄ）は、前記同一パターンブロックデータから復号化された前記変換係数については前記逆量子化を省略する工程、を含むようにしてもよい。
【００２５】
こうすれば、逆量子化による誤差の発生を防止することができる。
【００２６】
この発明による他の圧縮画像データ伸長方法は、
（Ａ）複数の第１の画素ブロックに対する符号データと、各画素ブロック内の画像が同一であるとともに連続して配列されている複数の第２の画素ブロックの個数を示す同一パターンブロックデータとを含む圧縮画像データを受け取る工程と、
（Ｂ）前記符号データをエントロピー復号化することによって前記複数の第１の画素ブロックに対する第１の量子化された変換係数を作成し、また、前記同一パターンブロックデータで指定された個数の前記連続した複数の画素ブロックに対して共通して適用される変換係数として前記量子化された変換係数を作成する際に、前記変換係数の所定の成分を予め指定された値に設定するとともに、前記所定の成分以外の前記変換係数の成分の値をゼロに設定することによって前記第２の量子化された変換係数を作成する工程と、
（Ｃ）前記第１と第２の量子化された変換係数を量子化テーブルを用いて逆量子化することによって、第１と第２の逆量子化された変換係数を求める工程と、
（Ｄ）前記第１と第２の逆量子化された変換係数を逆直交変換することによって、伸長された画像データを作成する工程と、
を備える。
【００２７】
この方法では、各画素ブロック内の画像が互いに同一である連続した複数の画素ブロックを比較的少ないデータで表わすことができる。
【００２８】
この発明による圧縮画像データ伸長装置は、
複数の画素ブロックに対する符号データと、前記複数の画素ブロックの先頭に位置する第１の画素ブロックに対して割り当てられた第１の係数コードと、前記複数の画素ブロックの配列の中の任意の位置に配置された第２の画素ブロックに対して割り当てられた第２の係数コードとを含む圧縮画像データを記憶する記憶手段と、
前記符号データをエントロピー復号化することによって、量子化された変換係数を生成するとともに、前記第１と第２の係数コードをエントロピー復号化することによって第１と第２の係数を生成するエントロピー復号化手段と、
前記第１と第２の係数のそれぞれと、所定の基本量子化テーブルの基本量子化レベルとを乗ずることによって、第１と第２の量子化テーブルを作成する逆量子化テーブル作成手段と、
前記第１の画素ブロックから前記第２の画素ブロックの直前の画素ブロックまでの一連の画素ブロックに対しては前記量子化された変換係数を前記第１の量子化テーブルで逆量子化し、前記第２の画素ブロックから次の係数コードが割り当てられた画素ブロックが現れるまでの一連の画素ブロックに対しては前記量子化された変換係数を前記第２の量子化テーブルで逆量子化することによって、逆量子化された変換係数を求める逆量子化手段と、
前記逆量子化された変換係数を逆直交変換することによって、伸長された画像データを求める逆直交変換手段と、
を備える。
【００２９】
また、この発明による他の圧縮画像データ伸長装置は、
複数の第１の画素ブロックに対する符号データと、各画素ブロック内の画像が同一であるとともに連続して配列されている複数の第２の画素ブロックの個数を示す同一パターンブロックデータとを含む圧縮画像データを記憶する第１の記憶手段と、
前記複数の第２の画素ブロックに関する変換係数の所定の成分に対する指定値を記憶する第２の記憶手段と、
前記符号データをエントロピー復号化することによって前記複数の第１の画素ブロックに対する第１の量子化された変換係数を作成し、また、前記同一パターンブロックデータで指定された個数の前記連続した複数の画素ブロックに対して共通して適用される変換係数として前記量子化された変換係数を作成する際に、前記変換係数の所定の成分を予め指定された値に設定するとともに、前記所定の成分以外の前記変換係数の成分の値をゼロに設定することによって前記第２の量子化された変換係数を作成するエントロピー復号化手段と、
前記第１と第２の量子化された変換係数を量子化テーブルを用いて逆量子化することによって、第１と第２の逆量子化された変換係数を求める逆量子化手段と、
前記第１と第２の逆量子化された変換係数を逆直交変換することによって、伸長された画像データを作成する逆直交変換手段と、
を備える。
【００３０】
この発明による画像データの圧縮方法は、
（Ａ）画像データを画像内の複数の画素ブロック毎に直交変換して変換係数を求める工程と、
（Ｂ）前記複数の画素ブロックの先頭に位置する第１の画素ブロックに対する第１の係数と、前記複数の画素ブロックの配列の中の任意の位置に配置された第２の画素ブロックに対する第２の係数とを指定する工程と、
（Ｃ）前記第１と第２の係数のそれぞれと所定の基本量子化テーブルの基本量子化レベルとを乗ずることによって、第１と第２の量子化テーブルを作成する工程と、
（Ｄ）前記第１の画素ブロックから前記第２の画素ブロックの直前の画素ブロックまでの一連の画素ブロックに対しては前記変換係数を前記第１の量子化テーブルで量子化し、前記第２の画素ブロックから次の係数コードが割り当てられた画素ブロックが現れるまでの一連の画素ブロックに対しては前記変換係数を前記第２の量子化テーブルで量子化することによって、量子化された変換係数を求める工程と、
（Ｅ）前記量子化された変換係数をエントロピー符号化することによって符号データを作成するとともに、前記第１と第２の係数をエントロピー符号化することによって第１と第２の係数コードを作成する工程と、
（Ｆ）前記符号データと前記第１と第２の係数コードとを含む圧縮画像データを作成する工程と、
を備える。
【００３１】
第１と第２の係数を与えるだけで量子化レベルの異なる第１と第２の量子化テーブルを作成できるので、２つの量子化テーブルを圧縮画像データに含める場合に比べて圧縮画像データのデータ量を低減することができる。
【００３６】
【実施例】
以下では、次の各項目について順次説明を行なう。
Ａ．圧縮／伸長装置の全体構成と基本動作；
Ｂ．量子化レベル係数ＱＣｘによる量子化テーブルＱＴの調整；
Ｃ．ハフマン符号化と圧縮データの構成；
Ｄ．逆量子化テーブル作成部の詳細構成；
Ｅ．ヌルランデータの復号化
【００３７】
Ａ．圧縮／伸長装置の構成と動作：
図１は、この発明の一実施例を適用した画像データの圧縮装置１００と伸長装置２００の機能を示すブロック図である。
【００３８】
画像データ圧縮装置１００は、原画像データｆ（ｘ，ｙ）に対してディスクリートコサイン変換を行なうＤＣＴ部１１０と、ＤＣＴ変換で得られた変換係数Ｆ（ｕ，ｖ）を量子化する量子化部１２０と、量子化された変換係数ＱＦ（ｕ，ｖ）をハフマン符号化して圧縮画像データＺＺを作成するハフマン符号化部１３０と、量子化テーブル作成部１４０と、ハフマン符号テーブルメモリ１５０とを備えている。量子化テーブル作成部１４０は、後述するように、基本量子化テーブルＢＱＴと量子化レベル係数ＱＣｘとに基づいて量子化テーブルＱＴを作成する。圧縮画像データＺＺは、ＣＤ−ＲＯＭなどの記憶媒体に記憶されて、画像データ圧縮装置１００から画像データ伸長装置２００に供給される。
【００３９】
画像データ伸長装置２００は、圧縮画像データＺＺをハフマン復号化するハフマン復号化部２１０と、復号された量子化後の変換係数ＱＦ（ｕ，ｖ）を逆量子化する逆量子化部２２０と、逆量子化された変換係数ＦＦ（ｕ，ｖ）にディスクリートコサイン逆変換を行なって画像データｆｆ（ｘ，ｙ）を得るＩＤＣＴ部２３０と、ハフマン符号テーブルメモリ２４０と、逆量子化テーブル作成部２５０とを備えている。逆量子化テーブル作成部２５０は、圧縮画像データＺＺから復号された基本量子化テーブルＢＱＴと量子化レベル係数ＱＣｘとをハフマン復号化部２１０から受取り、これらに基づいて量子化テーブルＱＴを作成する。この量子化テーブルＱＴは、圧縮装置１００で用いられた量子化テーブルＱＴと同じである。また、ハフマン符号テーブルメモリ２４０に記憶されているハフマン符号テーブルＨＴも圧縮装置１００のハフマン符号テーブルメモリ１５０に記憶されているものと同じである。
【００４０】
図２は、画像データ圧縮装置１００の具体的な構成を示すブロック図である。この画像データ圧縮装置１００は、ＣＰＵ１０１と、メインメモリ１０２と、キーボード１０３と、マウス１０４と、磁気ディスク装置１０５と、光磁気ディスク装置１０６とを備えている。図１に示す画像データ圧縮装置１００の各処理部１１０〜１４０は、メインメモリ１０２に記憶されたソフトウェアプログラムによって実現されている。また、基本量子化テーブルＢＱＴとハフマン符号テーブルＨＴは、磁気ディスク装置１０５に記憶されている。この画像データ圧縮装置１００は、ビデオゲームを作成するためのワークステーションであり、画像データ圧縮のためのソフトウェアプログラムの他に、ビデオゲームを作成するための各種のプログラムがＣＰＵ１０１により実行される。完成したゲームプログラムは、圧縮画像データとともに光磁気ディスク装置１０６に格納される。そして、この光磁気ディスクを用いて、ビデオゲームのプログラムと圧縮画像データを含むＣＤ−ＲＯＭが製作される。
【００４１】
図３は、画像データ伸長装置２００を含むビデオゲーム装置２０の構成を示すブロック図である。このビデオゲーム装置２０は、ＳＣＳＩバス３６を介して接続されたＣＤ−ＲＯＭドライブ３２の他、画像処理とこれに関する総ての処理を統括的に司るマイクロプロセッサ（以下、ＭＰＵという）４０と、このＭＰＵ４０に直接接続されたメインメモリ（以下、Ｍ−ＲＡＭと呼ぶ）４１と、同じくＢＩＯＳプログラムを記憶したＲＯＭ４２と、ＭＰＵ４０のバス（Ｍ−ＢＵＳ）４３に接続された各種ユニット、即ち画像信号コントロールユニット４５、画像データ伸長ユニット２００、特定の画像信号を出力するＶＤＰユニット４９、ビデオ信号の合成と出力を行なうビデオエンコーダユニット５０、音声データを扱う音声データ出力ユニット５２とを備える。
【００４２】
また、このビデオゲーム装置２０内には、画像信号コントロールユニット４５のローカルバス（Ｋ−ＢＵＳ）５４に接続されたメモリ（以下、Ｋ−ＲＡＭと呼ぶ）５５、画像データ伸長ユニット２００のローカルバスに接続されたメモリ（以下、Ｒ−ＲＡＭと呼ぶ）２５１、ＶＤＰユニット４９のローカルバスに接続されたビデオメモリ（以下、Ｖ−ＲＡＭと呼ぶ）５９、ビデオエンコーダユニット５０からの出力信号を通常の映像信号（ＮＴＳＣ）に変換し、カラーテレビ２８に出力するＮＴＳＣコンバータ６０が備えられている。
【００４３】
画像信号コントロールユニット４５，画像データ伸長ユニット２００，ビデオエンコーダユニット５０および音声データ出力ユニット５２は、それぞれロジック回路により構成されている。
【００４４】
図４（Ａ）は、ゲームの背景画像となる原画像の一例を示す平面図である。この原画像は、一様な色で塗られた背景ＢＧに火山の自然画がはめ込まれた画像である。図４（Ｂ）は、１つの画素ブロックＰＢを含む原画像の一部を拡大して示している。一般に、画素ブロックＰＢは、Ｍ×Ｎ個の画素ＰＸを含むように設定できる。２つの整数Ｍ，Ｎの値としては８または１６が好ましく、この実施例では、Ｍ＝Ｎ＝８である。なお、整数ＭとＮを異なる値に設定しても良い。後述するように、圧縮画像データＺＺの中で背景ＢＧを表わすデータ部分は、一様色の画素ブロックＰＢが連続することを示す特別なデータ形式（ヌルランデータ）を有している。
【００４５】
画像データ圧縮装置１００のＤＣＴ部１１０は、次の数式１に従って、各画素ブロックＰＢ毎に２次元ＤＣＴ変換を行なう。
【数１】
0003673529.tif 000002
ここで、ｆ（ｘ，ｙ）は１つの画素ブロックＰＢに含まれる８×８個の画像データの配列、ｘ，ｙは各画素ブロックＰＢ内の各画素の位置を示す座標、Ｆ（ｕ，ｖ）は変換係数の配列、ｕ，ｖは周波数空間の座標である。
【００４６】
図５は、変換係数Ｆ（ｕ，ｖ）の配列を示す説明図である。変換係数Ｆ（ｕ，ｖ）は画素ブロックＰＢと同じ８×８の配列である。左上端の変換係数Ｆ（０，０）はＤＣ成分（またはＤＣ係数）と呼ばれており、その他の変換係数はＡＣ成分（またはＡＣ係数）と呼ばれている。ＤＣ成分は、画素ブロックＰＢにおける画像データの平均値を示している。また、ＡＣ成分は、画素ブロックＰＢ内における画像データの変化を示している。隣接する画素の画像データにはある程度の相関があるので、ＡＣ係数の中で低周波成分の値は比較的大きく、高周波成分の値は比較的小さい。また、高周波成分が画質に与える影響は比較的小さい。
【００４７】
図６は、画像データ圧縮装置１００と画像データ伸長装置２００の基本動作を示す説明図である。ＤＣＴ部１１０は、図６（ａ）に示すＤＣＴ係数Ｆ（ｕ，ｖ）を作成する。
【００４８】
量子化テーブル作成部１４０は、次の数式２に示すように、基本量子化テーブルＢＱＴ（図６（ｃ））と量子化レベル係数ＱＣｘとを乗ずることによって量子化テーブルＱＴ（図６（ｄ））を作成する。
【数２】
0003673529.tif 000003
【００４９】
図６の例ではＱＣｘ＝１なので、量子化テーブルＱＴは基本量子化テーブルＢＱＴと同一である。
【００５０】
量子化部１２０は、ＤＣＴ係数Ｆ（ｕ，ｖ）を量子化テーブルＱＴで線形量子化することによって、図６（ｂ）に示す量子化されたＤＣＴ係数ＱＦ（ｕ，ｖ）を求める。線形量子化とは、除算を行なって、その除算結果を整数に丸める処理である。
【００５１】
ハフマン符号化部１３０は、このＤＣＴ係数ＱＦ（ｕ，ｖ）をハフマン符号化することによって圧縮画像データＺＺ（図６（ｅ））を作成する。なお、ハフマン符号化の方法については更に後述する。圧縮画像データＺＺは、後述するように、基本量子化テーブルＢＱＴを表わす第１のデータと、量子化レベル係数ＱＣｘと変換係数ＱＦ（ｕ，ｖ）を表わす第２のデータとを含んでいる。
【００５２】
圧縮画像データＺＺが画像データ伸長装置２００に与えられると、ハフマン復号化部２１０が圧縮画像データＺＺを復号化してＤＣＴ係数ＱＦ（ｕ，ｖ）（図６（ｆ））を求める。ハフマン符号化は可逆符号化なので、このＤＣＴ係数ＱＦ（ｕ，ｖ）は、画像データ圧縮装置１００の量子化部１２０によって求められた量子化後のＤＣＴ係数ＱＦ（ｕ，ｖ）（図６（ｂ））と同一である。なお、ハフマン復号化部２１０は、ＤＣＴ係数ＱＦ（ｕ，ｖ）の他に、圧縮画像データＺＺに含まれている基本量子化テーブルＢＱＴ（図６（ｃ））と量子化レベル係数ＱＣｘも復号化して逆量子化テーブル作成部２５０に与える。
【００５３】
逆量子化テーブル作成部２５０は、基本量子化テーブルＢＱＴと量子化レベル係数ＱＣｘとを乗算することによって量子化テーブルＱＴ（図６（ｄ））を作成する。逆量子化部２２０は、この量子化テーブルＱＴとＤＣＴ係数ＱＦ（ｕ，ｖ）とを乗算し、図６（ｇ）に示す復号されたＤＣＴ係数ＦＦ（ｕ，ｖ）を求める。
【００５４】
ＩＤＣＴ部２３０は、このＤＣＴ係数ＦＦ（ｕ，ｖ）に対して次の数式３に示す２次元ＤＣＴ逆変換を行ない、復元された画像データｆｆ（ｘ，ｙ）を作成する。
【数３】
0003673529.tif 000004
【００５５】
Ｂ．量子化レベル係数ＱＣｘによる量子化テーブルＱＴの調整：
量子化テーブルＱＴは、前記数式２に従って基本量子化テーブルＢＱＴと量子化レベル係数ＱＣｘとを乗算することによって作成されるので、量子化レベル係数ＱＣｘの値を大きくすれば量子化テーブルＱＴ内の各量子化レベルを大きくすることができる。量子化レベル係数ＱＣｘの値は、画像データ圧縮装置１００において画像データを圧縮する際に、予め定められた複数の値（０〜１５）の中からオペレータが選択する。
【００５６】
図７は、量子化レベル係数ＱＣｘを４に指定した場合の圧縮／伸長動作を示す説明図である。量子化テーブル作成部１４０と逆量子化テーブル作成部２５０は、上記の数式２に従って、図７（ｄ）に示す量子化テーブルＱＴを作成する。但し、この実施例では量子化レベルの最大値が１５に制限されており、乗算の結果が１５以上になる量子化レベルの値はすべて強制的に１５に設定される。
【００５７】
図７（ｄ）に示す量子化テーブルＱＴを用いて図７（ａ）のＤＣＴ係数Ｆ（ｕ，ｖ）を線形量子化すると、図７（ｂ）に示すように、ＤＣ成分が１であり、ＡＣ成分がすべて０であるＤＣＴ係数ＱＦ（ｕ，ｖ）が得られる。このように、量子化レベル係数ＱＣｘの値を大きくすると、量子化されたＤＣＴ係数ＱＦ（ｕ，ｖ）における０の数が増加するので、データ圧縮率を高めることができる。但し、図７（ｇ）に示す復号されたＤＣＴ係数ＦＦ（ｕ，ｖ）は、図７（ａ）に示す元のＤＣＴ係数Ｆ（ｕ，ｖ）とかなり異なる値を示しているので、量子化レベル係数ＱＣｘが１に等しい場合（図６）よりも画質の劣化は大きい。
【００５８】
ところで、ＤＣＴ係数のＤＣ成分は画素ブロックＰＢ内における画像データの平均値を示しているので、画質に対する影響がかなり大きい。従って、量子化レベル係数ＱＣｘの値に係わらずに、ＤＣ成分用の量子化レベルを基本量子化テーブルＢＱＴにおける値と同じに保つようにするのが好ましい。図８は、このような場合の処理を示す説明図であり、ＤＣ成分用の量子化レベルＱＴ（０，０）が強制的に１に保たれている。ＱＴ（０，０）＝１の場合には、図８（ｇ）に示す復号されたＤＣＴ係数ＦＦ（ｕ，ｖ）のＤＣ成分が、図８（ａ）に示す元のＤＣＴ係数Ｆ（ｕ，ｖ）のＤＣ成分と同じ値に保たれるので、図７の場合と同程度の圧縮率で画質の劣化を比較的小さく抑えることができる。なお、ＤＣ成分用の量子化レベルＱＴ（０，０）は必ずしも１にする必要はなく、他の任意の値を設定しておいてもよい。
【００５９】
量子化レベル係数ＱＣｘとしては０を選択することも可能である。ＱＣｘ＝０の場合には、図９に示すように、量子化テーブルＱＴ内のすべての量子化レベルが１に設定される。量子化されたＤＣＴ係数ＱＦ（ｕ，ｖ）は元のＤＣＴ係数Ｆ（ｕ，ｖ）と同じであるので、圧縮率は小さいが高画質で圧縮／伸長を行なうことができる。
【００６０】
以上をまとめると、量子化テーブル作成部１４０と逆量子化テーブル作成部２５０は、次のような特徴を有している。
（１）基本量子化テーブルＢＱＴと量子化レベル係数ＱＣｘとを、数式２に従って乗算することによって量子化テーブルＱＴを作成する。
（２）乗算の結果が量子化レベルの最大値（＝１５）以上のものは、最大値に等しく設定する（図６〜図８）。
（３）ＤＣ成分用の量子化レベルＱＴ（０，０）は、量子化レベル係数ＱＣｘの値に係わらず基本量子化テーブルＢＱＴにおける値と同一に保つ（図８）。
（４）量子化レベル係数ＱＣｘが０の場合には、すべての量子化レベルを１に設定する（図９）。
【００６１】
量子化テーブルＱＴを求める上述の演算は、画像データ圧縮装置１００においてはソフトウエアプログラムによって行なわれ、画像データ伸長装置２００においては専用のハードウエアで構成された逆量子化テーブル作成部２５０によって行なわれる。逆量子化テーブル作成部２５０の具体的な回路構成については更に後述する。
【００６２】
なお、量子化レベル係数ＱＣｘは、画像データ圧縮装置１００で画像データを圧縮する際に、キーボード１０３やマウス１０４を用いて画素ブロックＰＢごとに異なる値を指定することができる。
【００６３】
Ｃ．ハフマン符号化と圧縮データの構成；
画像データ圧縮装置１００のハフマン符号化部１３０（図１）は、ＤＣ係数符号化部とＡＣ係数符号化部とで構成されている。図１０（Ａ）は、ＤＣ係数符号化部の機能を示すブロック図である。ブロック遅延部１３１と加算器１３２は、図１０（Ｂ）に示すように、各画素ブロックＰＢのＤＣ係数ＤＣi と１つ前の画素ブロックＰＢのＤＣ係数ＤＣi-1 との差分△ＤＣを算出する。
【００６４】
カテゴリ化処理部１３３は、図１１に示すカテゴリ化テーブルに従って、ＤＣ係数の差分△ＤＣに対応するカテゴリＳＳＳＳと識別データＩＤとを求める。カテゴリＳＳＳＳは、ＤＣ係数の差分△ＤＣの範囲を示す番号である。識別データＩＤは、カテゴリＳＳＳＳで指定される複数の差分△ＤＣの中の小さい方から何番目の値であるかを示すデータである。
【００６５】
カテゴリＳＳＳＳは、さらに１次元ハフマン符号化部１３４（図１０）においてＤＣ係数用のハフマン符号語ＨＦDCに変換される。図１２は、１次元ハフマン符号化部１３４によって使用されるハフマン符号テーブルＨＴDCの一例を示す説明図である。この実施例では、原画像データｆ（ｘ，ｙ）がＹＵＶ信号（輝度信号Ｙと２つの色差信号Ｕ，Ｖ）で表現されているものとする。Ｕ信号／Ｖ信号共用のＤＣ係数用ハフマン符号テーブルは、０〜９のカテゴリＳＳＳＳの符号語を含むだけである。一方、Ｙ信号用のＤＣ係数用ハフマン符号テーブルは、０〜９のカテゴリＳＳＳＳの符号語の他に、１５〜３１のカテゴリＳＳＳＳの符号語を含んでいる。ＳＳＳＳ＝１５のハフマン符号語は、後述するヌルランデータであることを示している。ヌルランデータは、一様色の画素ブロックＰＢが連続することを示すデータである。また、ＳＳＳＳ＝１６〜３１のハフマン符号語は、量子化レベル係数ＱＣｘの値を示す符号である。例えば、ＳＳＳＳ＝１６に対するハフマン符号語「 111110000」はＱＣｘ＝０を示しており、ＳＳＳＳ＝３１に対するハフマン符号語「 111111111」はＱＣｘ＝１５を示している。なお、図１２のハフマン符号語は、カテゴリＳＳＳＳ＝１〜９、および１５〜３１のすべてに関して一意復号可能で、かつ、瞬時復号可能である。
【００６６】
図１３は、ハフマン符号化部１３０内のＡＣ係数符号化部の機能を示すブロック図である。ＡＣ係数の配列Ｆ（ｕ，ｖ）（ｕ＝ｖ＝０を除く）は、まずジグザグスキャン部１３５によって１次元に並び直される。図１４は、ジグザグスキャンの順路を示す説明図である。
【００６７】
判定部１３６は、１次元に並び直されたＡＣ係数の値が０か否かを判定する。ＡＣ係数の値が０であれば、ランレングスカウンタ１３７が、連続する０のＡＣ係数をゼロラン長ＮＮＮＮに変換する。ＡＣ係数が０でなければ、そのＡＣ係数の値がカテゴリ化部１３８によってカテゴリＳＳＳＳと識別データＩＤに変換される。この際、図１１に示すカテゴリ化テーブルが参照される。
【００６８】
ゼロラン長ＮＮＮＮとカテゴリＳＳＳＳとは、２次元ハフマン符号化部１３９においてＡＣ係数用のハフマン符号語ＨＦACに変換される。図１５は、ＡＣ係数用の２次元ハフマン符号テーブルＨＴACを示す説明図である。また、図１６は、ハフマン符号テーブルＨＴACの中で、ＮＮＮＮ＝０とＮＮＮＮ＝１の部分（図１５における最上部２行）のハフマン符号語の一例を示している。なお、ＮＮＮＮ／ＳＳＳＳ＝０／０のハフマン符号語「 11111」は、１つの画素ブロックに対する符号データの終了を示している。
【００６９】
図１７は、ハフマン符号化の一例を示す説明図である。図１７（Ｂ）は、ＤＣ係数の符号化を示している。１つ前の画素ブロックにおけるＤＣ係数の値を０と仮定すると、△ＤＣ＝Ｆ（０，０）＝１２である。図１１のカテゴリ化テーブルによれば△ＤＣ＝１２のカテゴリＳＳＳＳは４であり、識別データＩＤは「1100」である。また、図１２のＤＣ係数用ハフマン符号テーブルによれば、カテゴリＳＳＳＳ＝４のハフマン符号語ＨＦDCは「 011」である。なお、ここではＹ信号用のハフマン符号テーブルを使用する。ＤＣ係数に対するハフマン符号（ＨＦ＋ＩＤ）は、図１７（Ｂ）に示すように「 0111100」となる。
【００７０】
図１７（Ｃ）はＡＣ係数の符号化を示している。まず、ジグザグスキャンによって、ＡＣ係数が一次元の配列に並べられる。この配列は、ゼロラン長ＮＮＮＮと、ゼロでない値のカテゴリＳＳＳＳ（図１１参照）とに変換される。ゼロラン長ＮＮＮＮとカテゴリＳＳＳＳの組み合わせは、図１５および図１６に示すＡＣ係数用ハフマン符号テーブルによってハフマン符号語ＨＦACに変換され、ゼロでないＡＣ係数の識別データＩＤと組み合わされて、図１７（Ｃ）に示すようにハフマン符号（ＨＦAC＋ＩＤ）が作成される。
【００７１】
図１８は、圧縮データの構成を示す説明図である。圧縮データの全体は、図１８（Ａ）に示すように、ヘッダ部と圧縮データ部とダミー部とで構成されている。ヘッダ部は、それぞれ１バイトの４つのデータＤＦＨ，ＤＦＬ，ＤＬＨ，ＤＬＬを有している。最初の２つのデータＤＦＨ，ＤＦＬは、圧縮データ部に含まれるデータの種類を示している。圧縮データ部のデータには、基本量子化テーブルＢＱＴのデータ、フルカラー自然画像圧縮データ、ランレングス画像圧縮データなどの種類がある。ヘッダの後部１６ビットのデータ（ＤＬＨ＋ＤＬＬ）は、圧縮データ部とダミー部の合計のデータ長を示している。圧縮データ部はハフマン符号を含む可変長のデータなので、ダミー部との合計のデータ長が、ワード（＝２バイト）の整数倍の長さになるように調整されている。
【００７２】
図１８（Ｂ）は、基本量子化テーブルＢＱＴを表わす圧縮データの構成を示している。この１セットの圧縮データは、Ｙ信号用の基本量子化テーブルＢＱＴを表わすデータと、Ｕ信号／Ｖ信号共用の基本量子化テーブルＢＱＴを表わすデータとを含んでいる。なお、基本量子化テーブルＢＱＴを表わすデータはハフマン符号化しておかなくてもよい。
【００７３】
図１８（Ｃ）は、フルカラー自然画像の圧縮データの構成を示している。圧縮データ部には、量子化レベル係数ＱＣｘを表わす符号データ（図１２におけるカテゴリＳＳＳＳ＝１６〜３１の符号語）と、各画素ブロックの符号データであるブロックデータと、一様色の複数の画素ブロックを示すヌルランデータとを含んでいる。
【００７４】
図１８（Ｄ）に示すように、１ユニットのブロックデータは４組のＹ信号用データと、１組のＵ信号データと、１組のＶ信号用データとで構成されている。図１９は、ＹＵＶの各信号のブロックの関係を示す説明図である。図１９（Ａ）に示すように、この実施例における１画面は、２５６画素×２４０走査線の大きさを有している。Ｙ信号に関しては、間引きをせずに、８×８画素の画素ブロック毎にＤＣＴ変換が行なわれる。一方、Ｕ信号とＶ信号に関しては、図１９（Ｂ）に示すように、横方向と縦方向に１／２に間引き（サブサンプリング）されて、間引き後の８×８画素のブロックに対してＤＣＴ変換が行なわれる。従って、図１９（Ｃ）に示すように、Ｙ信号の４つの画素ブロックＹ１〜Ｙ４の領域がＵ信号とＶ信号の１つの画素ブロックの領域に対応している。なお、Ｙ信号を間引きせずにＵ信号とＶ信号を間引きするのは、人間の目が輝度の変化（Ｙ信号の変化）には比較的敏感であるが、色の変化（Ｕ信号とＶ信号の変化）には比較的鈍感だからである。Ｕ信号とＶ信号のみを間引くことによって、画質を過度に劣化させずに圧縮率を高めることができる。なお、図１８（Ｄ）に示す１ユニットのブロックデータは、図１９（Ｃ）に示す各領域のハフマン符号データを順に並べたものである。
【００７５】
ブロックデータ内の１つの画素ブロックに対する符号データは、図１８（Ｆ）に示すように、ＤＣ係数の１つのハフマン符号データと、ＡＣ係数の複数のハフマン符号データとで構成されている。ＤＣ係数のハフマン符号データは、前述したように、カテゴリＳＳＳＳのハフマン符号語ＨＦDCと識別データＩＤとで構成される（図１８（Ｇ））。また、ＡＣ係数のハフマン符号データは、ゼロラン長ＮＮＮＮとカテゴリＳＳＳＳとの組み合わせに対するハフマン符号語ＨＦACと、識別データＩＤとで構成される（図１８（Ｈ））。
【００７６】
量子化レベル係数ＱＣｘの符号データは、圧縮データ部の先頭と、量子化レベル係数ＱＣｘの値を変更したい画素ブロックのブロックデータの直前に挿入されている。２番目の量子化レベル係数ＱＣｘが挿入される前の複数の画素ブロックに対しては、先頭の量子化レベル係数ＱＣｘが共通に使用される。また、３番目の量子化レベル係数ＱＣｘ（図示せず）が挿入される前の複数のブロックに対しては、２番目の量子化レベル係数ＱＣｘが共通に使用される。
【００７７】
なお、圧縮データ部の先頭に量子化レベル係数ＱＣｘの符号語が含まれていない場合には、ＱＣｘ＝１であると見なされる。従って、圧縮データ部の先頭に量子化レベル係数ＱＣｘが挿入されておらず、途中に量子化レベル係数ＱＣｘが１回だけ挿入されている場合にも、量子化レベル係数ＱＣｘが２つ指定されていることと等価である。
【００７８】
量子化レベル係数ＱＣｘを表わすハフマン符号は、ブロックデータの間に挿入されているので、新たな量子化レベル係数ＱＣｘが復号化された時点の次のブロックデータに対してこの新たな量子化レベル係数ＱＣｘを容易に適用することができる。また、図１２に示すように、量子化レベル係数ＱＣｘの符号データはＤＣ係数用のハフマン符号語で表わされているので、これがブロックデータの間に挿入されていても、この符号データがブロックＹ１用のＤＣ係数の符号データであるか、量子化レベル係数ＱＣｘの符号データであるかを直ちに判断することが可能である。
【００７９】
圧縮データ部に含まれているヌルランデータは、図１８（Ｅ）に示すように、ヌルランデータであることを示すＤＣ係数用符号語「ＮＲＬ」と、ブロック数と、識別データＩＤとで構成されている。
【００８０】
図２０は、ヌルランデータによって表わされる画像を示す説明図である。図２０（Ａ）の原画像の背景ＢＧは一様色で塗られている。図２０（Ａ）の楕円の部分は、図２０（Ｂ）に示すようにすべての画素が同じ画像データ値（ｆ（ｘ，ｙ）＝１２）を有する画素ブロックが１８個連続しているものと仮定する。図２０（Ｃ）は、これらの画素ブロックを表わすヌルランデータを示している。このヌルランデータは、１６画素ブロック分の第１のヌルランデータＮＲＤ１と、２画素ブロック分の第２のヌルランデータＮＲＤ２を含んでいる。
【００８１】
各ヌルランデータＮＲＤ１，ＮＲＤ２の先頭には、ヌルランデータであることを示すＤＣ係数用符号語「ＮＲＬ」（図１２のカテゴリＳＳＳＳ＝１５の符号語「 1111011」）を有している。図１８（Ｆ）に示すように、通常のブロックデータの先頭にはＤＣ係数のハフマン符号が配置されているので、先頭にあるＤＣ係数用符号語を復号化することによって、ヌルランデータと、ブロックデータと、量子化レベル係数ＱＣｘの符号データとを一意にかつ瞬時に識別することができる。
【００８２】
図２０（Ｃ）に示すように、ブロック数は、ＡＣ係数用ハフマン符号語で表わされている。図２１は、ＡＣ係数用ハフマン符号テーブル（図１５）のうちでヌルランデータに使用される部分を示す図である。ヌルランデータに使用される場合には、ゼロラン長ＮＮＮＮは（［ブロック数］−１）に等しいと設定される。また、ＡＣ係数の値は１であるとして、カテゴリＳＳＳＳ＝１のハフマン符号語が使用される。図２０（Ｃ）に示す第１のヌルランデータＮＲＤ１におけるブロック数のデータ（ＮＮＮＮ／ＳＳＳＳ＝１５／１）は一様色の画素ブロックが１６個連続していることを示している。また、第２のヌルランデータＮＲＤ２におけるブロック数のデータ（ＮＮＮＮ／ＳＳＳＳ＝１／１）は一様色の画素ブロックが２個連続していることを示している。
【００８３】
各ヌルランデータＮＲＤ１，ＮＲＤ２の後端には、識別データＩＤが付加されている。この実施例では、ＩＤ＝１に固定されている。
【００８４】
ヌルランデータは、このように、２０ビット程度のデータによって連続した複数の画素ブロックが一様色であることを表わすことが可能である。一方、通常のブロックデータによって一様色の１セットのブロック（図１９に示すＹ信号を４画素ブロック、Ｕ信号，Ｖ信号を各１画素ブロック含む）を表わすには、約３００〜約４００ビット必要である。しかも、複数セットの画素ブロックが一様色であることを示す場合にも、各セットについて約３００〜約４００ビット必要である。従って、ヌルランデータを使用すれば、連続する一様色の多数の画素ブロックを表わす圧縮データのデータ量をかなり低減することが可能である。
【００８５】
なお、ヌルランデータで表わされる一様色の画素ブロックの輝度信号Ｙや色差信号Ｕ，Ｖの値は、圧縮データには含まれておらず、ビデオゲームを記述するソフトウェアプログラムの中において指定されている。オペレータは、ビデオゲーム用のソフトウェアプログラムを作成する際に、一様色の画素ブロックの領域（図２０（Ａ）では背景ＢＧ）の範囲をマウス１０４で指定するとともに、これらのブロックの輝度や色調をキーボード１０３やマウス１０４を用いて指定する。こうすれば、例えばビデオゲーム装置２０（図３）を用いてゲームを実行している途中に特定のイベントが発生した場合に、背景ＢＧの色を時間的に変化させるなどの特殊な視覚的効果を生じさせることができる。なお、ヌルランデータを復号化する具体的な回路構成については更に後述する。
【００８６】
Ｄ．逆量子化テーブル作成部の詳細構成：
図２２は、図１に示す逆量子化テーブル作成部２５０の内部構成を示すブロック図である。逆量子化テーブル作成部２５０は、基本量子化テーブルＢＱＴを記憶するＲＡＭ２５１と、ＲＡＭ２５１のアドレスを生成するアドレス生成回路２５２と、量子化レベル係数ＱＣｘを保持するラッチ回路２５３と、量子化レベル係数ＱＣｘと基本量子化テーブルＢＱＴとを乗算して量子化テーブルＱＴを生成する乗算ユニット２５４とを備えている。乗算ユニット２５４よって作成された量子化テーブルＱＴは、逆量子化部２２０に供給される。
【００８７】
まず、ＣＤ−ＲＯＭに収納されている圧縮画像データＺＺがハフマン復号化部２１０に与えられると、基本量子化テーブルＢＱＴの符号データが最初に復号化されてＲＡＭ２５１に供給される。この基本量子化テーブルＢＱＴは、アドレス生成回路２５２から与えられるライトアドレスに従ってＲＡＭ２５１に記憶される。ＲＡＭ２５１に記憶された基本量子化テーブルＢＱＴは、すべての画素ブロックに対して使用される。
【００８８】
アドレス生成回路２５２は、ハフマン復号化部２１０から出力されるＤＣＴ係数データＱＦ（ｕ，ｖ）と同期してリードアドレスを発生し、このリードアドレスに応じてＲＡＭ２５１から基本量子化テーブルＢＱＴが読み出される。一方、ハフマン復号化部２１０で復号化された量子化レベル係数ＱＣｘは、ラッチ回路２５３でラッチされて、次の量子化レベル係数ＱＣｘが与えられるまでラッチ回路２５３に保存される。従って、量子化レベル係数ＱＣｘが新たに供給されるまでは、複数の画素ブロックに対して同じ量子化レベル係数ＱＣｘが共通に使用される。
【００８９】
図２３は、逆量子化テーブル作成部２５０（図２２）に含まれているラッチ回路２５３と乗算ユニット２５４の内部構成を示すブロック図である。ラッチ回路２５３は、２つのラッチ４０２，４０４で構成されている。乗算ユニット２５４は、同期クロック作成回路４１２と、ＡＮＤ回路４１４と、Ｕ信号スタート検出回路４１６と、Ｖ信号スタート検出回路４１８と、ＮＡＮＤ回路４２０と、セレクタ４２２と、乗算器４２４と、クリッピング回路４２６と、ゼロ値修正回路４２８とを有している。
【００９０】
図２４は、図２３に示す回路の動作を示すタイミングチャートである。ハフマン復号化部２１０（図１）で量子化レベル係数ＱＣｘが復号化されると、量子化レベル係数ＱＣｘのデータがイネーブル信号ＱＥＮとともにラッチ回路２５３に与えられる（図２４（ａ），（ｂ））。第１のラッチ４０２はイネーブル信号ＱＥＮの立ち上がりエッジで量子化レベル係数ＱＣｘをラッチして出力Ｑ１を第２のラッチ４０４に供給する（図２４（ｃ））。
【００９１】
図２４（ｄ）に示すように、ＲＡＭ２５１（図２２）からはＹ信号用の基本量子化テーブルＢＱＴが４回読出された後に、Ｕ信号／Ｖ信号共用の基本量子化テーブルＢＱＴが２回読出される。
【００９２】
同期クロック作成回路４１２（図２３）には、ＲＡＭ２５１から読出される基本量子化テーブルＢＱＴに同期して、Ｙ信号の期間でＬレベルとなり、Ｕ信号とＶ信号の期間ではＨレベルとなるブロック識別信号ＵＶ／Ｙがアドレス生成回路２５２から与えられる（図２４（ｅ））。また、この際、イネーブル信号ＥＮも同期クロック作成回路４１２に与えられる。同期クロック作成回路４１２は、ブロック識別信号ＵＶ／Ｙを反転して同期クロック信号ＳＣＫ（図２４（ｆ））を生成し、これを第２のラッチ４０４のクロック入力端子に供給する。第２のラッチ４０４は、この同期クロック信号ＳＣＫの立ち上がりエッジで第１のラッチ４０２の出力Ｑ１をラッチして、その出力Ｑ２（図２４（ｇ））をセレクタ４２２のデータ入力端子に供給する。なお、セレクタ４２２の他のデータ入力端子には、固定値「１」が与えられている。
【００９３】
Ｕ信号スタート検出回路４１６は、ブロック識別信号ＵＶ／Ｙと１０ＭＨｚの基本クロック信号ＣＬＫとに基づいて、Ｕ信号用の基本量子化テーブルＢＱＴのスタート時刻を示すＵスタート信号ＵＳＴＲＴ（図２４（ｈ））を生成する。このＵスタート信号ＵＳＴＲＴは、ブロック識別信号ＵＶ／Ｙの立ち上がりエッジから１００ナノ秒だけＬレベルになる信号である。
【００９４】
ＡＮＤ回路４１４には、６つのブロックＹ１〜Ｙ４，Ｕ，Ｖの各期間でレベルが交互に切り替わるブロック切替信号ＳＷＴＣＨ（図２４（ｉ））と、ブロック識別信号ＵＶ／Ｙとが与えられている。Ｖ信号スタート検出回路４１８は、ＡＮＤ回路４１４の出力と１０ＭＨｚの基本クロック信号ＣＬＫとに基づいて、Ｖ信号用の基本量子化テーブルＢＱＴのスタート時刻を示すＶスタート信号ＶＳＴＲＴ（図２４（ｊ））を生成する。このＶスタート信号ＶＳＴＲＴは、ブロック識別信号ＵＶ／ＹがＨレベルの期間において、ブロック切替信号ＳＷＴＣＨの立ち上がりエッジから１００ナノ秒だけＬレベルになる信号である。
【００９５】
図２５は、Ｕ信号スタート検出回路４１６とＶ信号スタート検出回路４１８の内部構成を示すブロック図である。これらの回路４１６，４１８は、どちらもＤフリップフロップとＮＡＮＤ回路とで構成されている。Ｕ信号スタート検出回路４１６のＤフリップフロップ４３２のＤ入力端子にはブロック識別信号ＵＶ／Ｙが供給されており、そのクロック入力端子には１０ＭＨｚの基本クロック信号ＣＬＫが入力されている。ＮＡＮＤ回路４３４の入力端子には、ブロック識別信号ＵＶ／ＹとＤフリップフロップ４３２の反転出力とが与えられている。なお、ブロック識別信号ＵＶ／Ｙは基本クロック信号ＣＬＫに同期している。
【００９６】
ブロック識別信号ＵＶ／ＹがＬレベルの間は、Ｄフリップフロップ４３２の反転出力がＨレベルなので、ＮＡＮＤ回路４３４の出力ＵＳＴＲＴはＨレベルに保たれる（図２４（ｈ）参照）。ブロック識別信号ＵＶ／ＹがＬレベルからＨレベルに切り替わった直後は、ＮＡＮＤ回路４３４の出力（Ｕスタート信号ＵＳＴＲＴ）がＬレベルになり、１００ナノ秒後に基本クロック信号ＣＬＫのエッジでＤフリップフロップ４３２が入力をラッチすると、ＮＡＮＤ回路４３４の出力ＵＳＴＲＴは再びＨレベルに戻る。
【００９７】
Ｖ信号スタート検出回路４１８の動作も、Ｕ信号スタート検出回路４１６の動作と同じである。ただし、Ｄフリップフロップ４３６のＤ入力端子には、ブロック識別信号ＵＶ／Ｙとブロック切替信号ＳＷＴＣＨの論理積が与えられているので、ブロック識別信号ＵＶ／ＹがＨレベルの期間において、ブロック切替信号ＳＷＴＣＨの立ち上がりエッジから１００ナノ秒だけＶスタート信号ＶＳＴＲＴがＬレベルになる。
【００９８】
ＮＡＮＤ回路４２０（図２３）には、Ｕスタート信号ＵＳＴＲＴとＶスタート信号ＶＳＴＲＴとが入力されており、その出力（選択信号ＳＥＬ）はセレクタ４２２のセレクト入力端子に供給されている。選択信号ＳＥＬ（図２４（ｋ））は、Ｕ信号用の期間の始めとＶ信号用の期間の始めに１００ナノ秒だけＨレベルになる。セレクタ４２２は、選択信号ＳＥＬがＬレベルの場合にはラッチ回路２５３から与えられた出力Ｑ２をそのまま出力し、一方、選択信号ＳＥＬがＨレベルの場合には固定値「１」を出力する。セレクタ４２２の出力Ｑ３は、乗算器４２４によって基本量子化テーブルＢＱＴと乗算される。
【００９９】
図２４（ｌ）に示すように、Ｕ信号用の期間の始めとＶ信号用の期間の始めには、セレクタ４２２の出力Ｑ３は量子化レベル係数ＱＣｘの値に係わらずに必ず「１」になる。Ｕ信号用とＶ信号用の期間の始めの１００ナノ秒の期間は、ＤＣ係数用の量子化レベルを算出するための期間である。従って、図２３の回路を使用すれば、Ｕ信号とＶ信号に使用するＤＣ係数用の量子化レベルと、指定された量子化レベル係数ＱＣｘとの乗算を実質的に行なわないようにすることができる。換言すれば、図２３に示す回路は、図８（ｃ），（ｄ）に示す演算を実現する回路である。
【０１００】
図２３に示すように、乗算器４２４の出力はクリッピング回路４２６とゼロ値修正回路４２８によって修正されて最終的な量子化テーブルＱＴとなる。図２６は、これらの２つの回路４２６，４２８の内部構成を示すブロック図である。
【０１０１】
クリッピング回路４２６は、４入力ＯＲ回路４５０と、８個の２入力ＯＲ回路４５２とで構成されている。これらの回路は、量子化レベルを９ビット（最上位ビットは符号ビット）で表現する場合の回路である。４入力ＯＲ回路４５０には、乗算器４２４（図２３）から出力された１４ビットのデータのうちで符号ビットＤ１３を除く上位４ビットＤ９〜Ｄ１２が入力されている。８個の２入力ＯＲ回路４５２の一方の入力端子には、４入力ＯＲ回路４５０の出力が与えられており、他方の入力端子には乗算器４２４の出力の下位８ビットＤ１〜Ｄ８が与えられている。上位４ビットＤ９〜Ｄ１２の少なくとも１つの値が「１」の場合には、８つの２入力ＯＲ回路４５２の出力がすべて「１」になる。従って、乗算器４２４の出力が十進数で２５５以上の場合には、クリッピング回路４２６の出力が２５５に設定される。
【０１０２】
ゼロ値修正回路４２８では、クリッピング回路４２６内の７つのビットＤ２〜Ｄ８用の７つの２入力ＯＲ回路４５２の出力がそのまま出力される。また、これらの７つの２入力ＯＲ回路４５２の出力と符号ビットＤ１３とが、８つのインバータ４６０にそれぞれ与えられている。８つのインバータ４６０の出力は８入力ＡＮＤ回路４６２に与えられており、このＡＮＤ回路４６２の出力は２入力ＯＲ回路４６４に供給されている。この２入力ＯＲ回路４６４には、最下位ビットＤ１用の２入力ＯＲ回路４５２の出力が与えられている。この結果、乗算器４２４の出力の１３ビットＤ１〜Ｄ１３の値がすべて「０」の場合には、ゼロ値修正回路４２８は、最下位ビットの値のみが「１」で他の８ビットの値が「０」の量子化レベルＱＴを出力する。換言すれば、ゼロ値修正回路４２０は、図９（ｃ），（ｄ）に示す演算を実現している。
【０１０３】
Ｅ．ヌルランデータの復号化：
図２７は、画像データ伸長装置２００におけるハフマン復号化部２１０（図１）の内部構成を示すブロック図である。ハフマン復号化部２１０は、圧縮画像データＺＺをハフマン復号化する復号化部４７０と、制御部４７２と、セレクタ４７４と、ＤＣ係数レジスタ４７６とを備えている。
【０１０４】
復号化部４７０は、与えられた圧縮データの種類が基本量子化テーブルＢＱＴ、量子化レベル係数ＱＣｘ、ブロックデータ、ヌルランデータのいずれであるかを判断し、圧縮データの種類を示す状態信号ＳＳを制御部４７２に供給する。制御部４７２は、この状態信号ＳＳに応じて制御信号ＣＴＬ１，ＣＴＬ２，ＣＴＬ３を復号化部４７０と、セレクタ４７４と、ビデオゲーム装置のＭＰＵ４０（図３）とにそれぞれ供給する。復号化された基本量子化テーブルＢＱＴと量子化レベル係数ＱＣｘは、復号化部４７０から逆量子化テーブル作成部２５０に供給される。復号後の量子化されたＤＣＴ係数ＱＦ（ｕ，ｖ）は、復号化部４７０からセレクタ４７４に供給される。
【０１０５】
セレクタ４７４のデータ入力端子には、復号化部４７０から与えられたＤＣＴ係数ＱＦ（ｕ，ｖ）の他に、ゼロデータと、ＤＣ係数レジスタ４７６に登録されたＤＣ係数ＱＦ（０，０）とが与えられている。ＤＣ係数レジスタ４７６には、ゲームのソフトウェアプログラムにおいて記述されている一様色の画素ブロックのＤＣ係数ＱＦ（０，０）の値が、ビデオゲーム装置のＭＰＵ４０によって書き込まれる。なお、ＤＣ係数ＱＦ（０，０）は、ＹＵＶ信号に対してそれぞれ異なる値が登録される。
【０１０６】
ここで、図２０（Ｃ）に示す２つのヌルランデータＮＲＤ１，ＮＲＤ２を復号化する場合を考える。第１のヌルランデータＮＲＤ１の先頭のデータＮＲＬが復号化部４７０によって検出されると、ヌルランデータであることを知らせる状態信号ＳＳが復号化部４７０から制御部４７２に出力される。制御部４７２は、状態信号ＳＳに応じて直ちに復号化部４７０とＭＰＵ４０に制御信号ＣＴＬ１，ＣＴＬ２をそれぞれ出力して復号化動作を止めるように制御する。また、制御部４７２は、セレクタ４７４に制御信号ＣＴＬ３を供給し、最初のブロックのＤＣ係数として、ＤＣ係数レジスタ４７６に登録されているＤＣ係数ＱＦ（０，０）を選択させる。図２０（Ｂ）に示すように、原画像データｆ（ｘ，ｙ）の値が１２の場合には、ＱＦ（０，０）＝１２がＤＣ係数レジスタ４７６に登録されている。制御部４７２は、さらに、６３個のＡＣ係数として、すべてゼロデータを選択するようにセレクタ４７４を制御する。図２８は、こうして作成されたＤＣＴ係数ＱＦ（ｕ，ｖ）を示している。
【０１０７】
第１のヌルランデータＮＲＤ１は、一様色のブロックが１６個連続していることを示しているので、１６個の画素ブロックのそれぞれについて、図２８に示すＤＣＴ係数ＱＦ（ｕ，ｖ）が作成される。第２のヌルランデータＮＲＤ２についても同様に、２つのブロックのそれぞれについて、図２８に示すＤＣＴ係数ＱＦ（ｕ，ｖ）が作成される。
【０１０８】
ヌルランデータの処理が終了すると、制御部４７２が復号化部４７０とＭＰＵ４０に対して制御信号ＣＴＬ１，ＣＴＬ２を出力し、復号化動作を再開するよう制御する。ヌルランデータによって一様色であることが指定されている画素ブロックの輝度信号Ｙや色差信号Ｕ，Ｖの値は、ＭＰＵ４０からＤＣ係数レジスタ４７６に書き込むＤＣ係数の値を変更することによって容易に変更することができる。言い換えれば、ヌルランデータを利用すれば、一様色の画像領域の色を圧縮画像データ以外のデータに応じて所望の色に変更することができる。この実施例では、一様色のブロックの輝度信号Ｙや色差信号Ｕ，Ｖの値は、ビデオゲームを記述するソフトウェアプログラムの中で指定されている。
【０１０９】
図２９は、ハフマン復号化部の他の構成を示すブロック図である。このハフマン復号化部２１０ａでは、復号化部４７０から出力されたＤＣＴ係数ＱＦ（ｕ，ｖ）がセレクタ４７４をバイパスして逆量子化部２２０に直接与えられている。セレクタ４７４は、ＤＣ係数レジスタ４７６から与えられるＤＣ係数ＱＦ（０，０）とゼロデータの一方を選択し、逆量子化部２２０をバイパスしてＩＤＣＴ部２３０に直接供給している。制御部４７８は、図２７と同様の３つの制御信号ＣＴＬ１〜ＣＴＬ３の他に、第４の制御信号ＣＴＬ４をＩＤＣＴ部２３０に出力している。
【０１１０】
制御部４７８は、圧縮データの種類を示す状態信号ＳＳに応じて復号化部４７０と、ＭＰＵ４０と、ＩＤＣＴ部２３０とに、制御信号ＣＴＲＬ１，ＣＴＬ２，ＣＴＬ４をそれぞれ出力する。復号化部４７０で通常のブロックデータが復号されると、復号化されたＤＣＴ係数ＱＦ（ｕ，ｖ）が逆量子化部２２０に供給される。
【０１１１】
図２０（Ｃ）に示す第１のヌルランデータＮＤＲ１の先頭のデータＮＲＬが復号化部４７０によって検出されると、ヌルランデータであることを知らせる状態信号ＳＳが復号化部４７０から制御部４７８に出力される。制御部４７８は、状態信号ＳＳに応じて直ちに復号化部４７０とＭＰＵ４０に制御信号ＣＴＬ１，ＣＴＬ２をそれぞれ出力して復号化動作を止めるように制御する。また制御部４７８は、セレクタ４７４に与える制御信号ＣＴＬ３のレベルを切換えて、ＤＣ係数レジスタ４７６に登録されているＤＣ係数ＱＦ（０，０）を選択させる。制御部４７８は、さらに、６３個のＡＣ係数として、すべてゼロデータを選択するようにセレクタ４７４を制御する。制御部４７８は、同時にＩＤＣＴ部２３０に対して制御信号ＣＴＬ４を出力し、セレクタ４７４の出力を選択して逆変換するように制御する。
【０１１２】
ヌルランデータの処理が終了すると、制御部４７８から復号化部４７０とＭＰＵ４０に制御信号ＣＴＬ１，ＣＴＬ２が出力され、復号動作を再開するよう制御する。
【０１１３】
このように、図２９に示す回路では、ヌルランデータの処理の際には、セレクタ４７４から出力されるＤＣＴ係数ＱＦ（ｕ，ｖ）が逆量子化部２２０をバイパスしてＩＤＣＴ部２３０に直接供給されるので、逆量子化による演算誤差が生じないという利点がある。例えば、特定の色の部分を検出し透明色にするクロマキ−処理をビデオエンコーダユニット５０（図３）によって行う時に、量子化による演算誤差が最小に押さえられるので、所望の色の画素ブロックを確実に透明色にすることが可能である。
【０１１４】
上記の実施例においては、ヌルランデータによってＤＣ係数のみを任意に設定できるようにしたが、ＡＣ係数の所定の部分（例えばＱＦ（１，０）とＱＦ（０，１））に対して所望の値を設定できるようにすることも可能である。この場合には、ヌルランデータは同一の画像パターンを有する一連の画素ブロックの個数を表わす。
【０１１５】
Ｆ．変形例：
なお、この発明は上記実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【０１１６】
（１）上記実施例では直交変換として２次元ＤＣＴ変換を取り上げたが、本発明には任意の直交変換（例えばＫ−Ｌ変換やアダマール変換）が利用可能である。また、エントロピー符号化としては、ハフマン符号化以外の任意の符号化（例えば算術符号化やＭＥＬ符号化）を利用することができる。
【０１１７】
（２）画像データ圧縮装置１００はハードウェアで実現してもよく、また、画像データ伸長装置２００をソフトウェアで実現してもよい。図３０は、ソフトウェアによって図１８に示す圧縮データを伸長する処理の手順を示すフローチャートである。ステップＳ１では、ヘッダ部の値から圧縮データの内容を判断する。圧縮データが基本量子化テーブルＢＱＴを表わしている場合には、ステップＳ２において基本量子化テーブルＢＱＴをメモリに記憶し、ステップＳ１に戻る。
【０１１８】
圧縮データが画像を表わしている場合には、ステップＳ３において圧縮データ部内に含まれている各データユニットの先頭データの種類が判断される。ここで、データユニットとは、図１８（Ｃ）に示す量子化レベル係数ＱＣｘの符号データ、ブロックデータ、ヌルランデータのそれぞれを意味している。図１８（Ｃ），（Ｄ），（Ｅ），（Ｆ）に示すように、データユニットの先頭データとしては、量子化レベル係数ＱＣｘを表わすハフマン符号語と、ブロックデータのＤＣ係数△ＤＣのハフマン符号語と、ヌルランを表わすハフマン符号語ＮＲＬの３種類がある。
【０１１９】
先頭データが量子化レベル係数ＱＣｘのハフマン符号語である場合には、ステップＳ４において、この量子化レベル係数ＱＣｘと基本量子化テーブルＢＱＴを乗ずることによって量子化テーブルＱＴを作成する。なお、この乗算の際に、前述した特徴、すなわち、（１）乗算結果が最大値以上の量子化レベルを最大値に設定すること、（２）ＤＣ係数は量子化しないこと、（３）量子化レベル係数ＱＣｘの値が０の時にはすべての量子化レベルを１に設定すること、が実現される。ステップＳ４において量子化テーブルＱＴが作成されると、ステップＳ３に戻る。
【０１２０】
ステップＳ３において先頭データがＤＣ係数△ＤＣのハフマン符号語であると判断された場合には、ステップＳ５において１画素ブロック分のデータが復号化されてＤＣＴ係数ＱＦ（ｕ，ｖ）が得られる。ステップＳ６では逆量子化が行なわれ、ステップＳ７では、２次元ＤＣＴ逆変換が行なわれる。１セットのブロックデータ（図１８（Ｄ））に含まれるすべての画素ブロックについてステップＳ５〜Ｓ７の処理が繰り返されると、ステップＳ８からステップＳ３に戻る。
【０１２１】
ステップＳ３において、先頭データがヌルランデータであることを示すハフマン符号語ＮＲＬであると判断された場合には、ステップＳ９において、１画素ブロックのＤＣ成分が予め指定された値に設定されるとともに、６３個のＡＣ成分がすべて０に設定される。ステップＳ１０では、こうして作成されたＤＣＴ係数に対して２次元ＤＣＴ逆変換が行なわれる。ヌルランデータで指定されたブロック数だけステップＳ９，Ｓ１０の処理が繰り返されると、ステップＳ１１からステップＳ３に戻る。こうして、ステップＳ３〜Ｓ１１の処理を圧縮データ部のすべてに亘って実行することによって画像データｆｆ（ｘ，ｙ）が復元される。
【０１２２】
（３）上記実施例では、本発明をビデオゲーム装置に適用した例を示したが、本発明はあらゆる種類の画像処理装置に適用することが可能である。
【０１２３】
（４）上記実施例では、量子化レベル係数ＱＣｘや量子化テーブルＱＴ内の各量子化レベルを整数としたが、これらは小数を含む数でもよい。
【０１２４】
【発明の効果】
以上説明したように、請求項１，１１および２１に記載した発明によれば、第１と第２の係数を与えるだけで量子化レベルの異なる第１と第２の量子化テーブルを作成できるので、２つの量子化テーブルを圧縮画像データに含める場合に比べて圧縮画像データのデータ量を低減することができるという効果がある。また、第２の係数が現われるまでの複数の画素ブロックに対して第１の係数が適用されるので、これらの複数の画素ブロックのそれぞれの符号データの前に第１の係数を含めておく必要がなく、従って、圧縮画像データのデータ量を低減することができるという効果がある。
【０１２５】
請求項２，１２および２２に記載した発明によれば、第１と第２の係数を第１と第２の画素ブロックにそれぞれ容易に対応づけられるという効果がある。
【０１２６】
請求項３，１３および２２に記載した発明によれば、第１と第２の係数を一意にかつ瞬時に復号することができるという効果がある。
【０１２８】
請求項４および１４に記載した発明によれば、量子化レベルのビット数を一定値以下に保つことができるという効果がある。
【０１２９】
請求項５および１５に記載した発明によれば、所定の位置の変換係数を逆量子化するさいに発生する誤差を低減することができるという効果がある。
【０１３０】
請求項６および１６に記載した発明によれば、変換係数の直流成分に対する量子化レベルを変えないようにすれば、直流成分の逆量子化にともなう誤差を低減することができるという効果がある。
【０１３１】
請求項７および１７に記載した発明によれば、各画素ブロック内の画像が互いに同一である連続した複数の画素ブロックを比較的少ないデータで表わすことができるという効果がある。
【０１３２】
請求項８および１８に記載した発明によれば、連続した複数の画素ブロックを同一の色で塗ることができるという効果がある。
【０１３３】
請求項９および１９に記載した発明によれば、逆量子化による誤差の発生を防止することができるという効果がある。
【０１３４】
請求項１０に記載した発明によれば、各画素ブロック内の画像が互いに同一である連続した複数の画素ブロックを比較的少ないデータで表わすことができるという効果がある。
【０１３５】
請求項２４に記載した発明によれば、各画素ブロック内の画像が互いに同一である連続した複数の画素ブロックを比較的少ないデータで表わすことができるという効果がある。
【図面の簡単な説明】
【図１】この発明の一実施例を適用した画像データの圧縮装置と伸長装置の機能を示すブロック図。
【図２】画像データ圧縮装置１００の具体的な構成を示すブロック図。
【図３】画像データ伸長装置２００の具体的な構成を示すブロック図。
【図４】原画像を示す平面図。
【図５】ＤＣＴ係数Ｆ（ｕ，ｖ）の配列を示す説明図。
【図６】圧縮／伸長の基本動作を示す説明図。
【図７】量子化レベル係数ＱＣｘが４の場合の圧縮／伸長動作を示す説明図。
【図８】量子化においてＤＣ成分を変更しない場合の動作を示す説明図。
【図９】量子化レベル係数ＱＣｘが０の場合の圧縮／伸長動作を示す説明図。
【図１０】ＤＣ係数符号化部の機能を示すブロック図。
【図１１】ハフマン符号化におけるカテゴリ化テーブルを示す図。
【図１２】ＤＣ係数用のハフマン符号テーブルＨＴDCの一例を示す説明図。
【図１３】ＡＣ係数符号化部の機能を示すブロック図。
【図１４】ＡＣ係数のジグザグスキャンの順路を示す説明図。
【図１５】ＡＣ係数用の２次元ハフマン符号テーブルを示す説明図。
【図１６】ハフマン符号テーブルの内容を示す図。
【図１７】ハフマン符号化の一例を示す説明図。
【図１８】圧縮データの構成を示す説明図。
【図１９】ＹＵＶの各信号のブロックの関係を示す説明図。
【図２０】ヌルランデータによって表わされる画像を示す説明図。
【図２１】ＡＣ係数用のハフマン符号テーブルの他の部分を示す図。
【図２２】逆量子化テーブル作成部２５０の内部構成を示すブロック図。
【図２３】ラッチ回路２５３と乗算ユニット２５４の内部構成を示すブロック図。
【図２４】図２３に示す回路の動作を示すタイミングチャート。
【図２５】Ｕ信号スタート検出回路４１６とＶ信号スタート検出回路４１８の内部構成を示すブロック図。
【図２６】クリッピング回路４２６とゼロ値修正回路４２８の内部構成を示すブロック図。
【図２７】ハフマン復号化部２１０の内部構成を示すブロック図。
【図２８】ヌルランデータを復号化して得られたＤＣＴ係数を示す図。
【図２９】ハフマン復号化部の他の構成を示すブロック図。
【図３０】ソフトウェアによって圧縮データを復号する処理の手順を示すフローチャート。
【図３１】従来の画像データ圧縮装置と伸長装置を示すブロック図。
【符号の説明】
２０…ビデオゲーム装置
２１…ＲＯＭ
２４，２６…ゲームパッド
２８…カラーテレビ
３０…ビデオ信号ケーブル
３２…ＣＤ−ＲＯＭドライブ
３４…スピーカ
３６…ＳＣＳＩバス
３８…スピーカ
４０…ＭＰＵ
４０ａ…演算部
４０ｂ…コントローラ
４１…メインメモリ
４２…ＲＯＭ
４３…Ｍ−ＢＵＳ
４５…画像信号コントロールユニット
４５ａ…ＭＰＵＩ／Ｆ
４５ｂ…ＳＣＳＩコントローラ
４５ｃ…ＡＦＦＩＮコンバータ
４５ｄ…グラフィックコントローラ
４５ｅ…サウンドコントローラ
４９…ＶＤＰユニット
５０…ビデオエンコーダユニット
５０ａ…ルックアップテーブル
５０ｂ…優先順位設定部
５０ｃ…ミキサー
５０ｃ…画像データ合成部
５０ｄ…スーパーインポーズ部
５０ｅ…ＤＡＣ
５２…音声出力ユニット
５２ａ…ＡＤＰＣＭ部
５５…ＲＡＭ
５９…ＲＡＭ
６０…ＮＴＳＣコンバータ
１００…画像データ圧縮装置
１０１…ＣＰＵ
１０２…メインメモリ
１０３…キーボード
１０４…マウス
１０５…磁気ディスク装置
１０６…光磁気ディスク装置
１１０…ＤＣＴ部
１２０…量子化部
１３０…ハフマン符号化部
１３１…ブロック遅延部
１３２…加算器
１３３…カテゴリ化処理部
１３４…１次元ハフマン符号化部
１３５…ジグザグスキャン部
１３６…判定部
１３７…ランレングスカウンタ
１３８…カテゴリ化部
１４０…量子化テーブル作成部
１５０…ハフマン符号テーブルメモリ
２００…画像データ伸長装置
２１０…ハフマン復号化部
２２０…逆量子化部
２３０…ＩＤＣＴ部
２４０…ハフマン符号テーブルメモリ
２５０…逆量子化テーブル作成部
２５１…ＲＡＭ
２５２…アドレス生成回路
２５３…ラッチ回路
２５４…乗算ユニット
４０２，４０４…ラッチ
４１２…同期クロック作成回路
４１４…ＡＮＤ回路
４１６…Ｕ信号スタート検出回路
４１８…Ｖ信号スタート検出回路
４２０…ＮＡＮＤ回路
４２２…セレクタ
４２４…乗算器
４２６…クリッピング回路
４２８…ゼロ値修正回路
４３２，４３６…Ｄフリップフロップ
４３４，４３８…ＮＡＮＤ回路
４５０…４入力ＯＲ回路
４５２…２入力ＯＲ回路
４６０…インバータ
４６２…ＡＮＤ回路
４６４…ＯＲ回路
４７０…復号化部
４７２…制御部
４７４…セレクタ
４７６…ＤＣ係数レジスタ
４７８…制御部
５４０…画像データ圧縮装置
５４２…直交変換部
５４４…量子化部
５４６…エントロピー符号化部
５５０…画像データ伸長装置
５５０…伸長装置
５５２…逆直交変換部
５５４…逆量子化部
５５６…エントロピー復号化部
５６２…量子化テーブル
５６４…符号テーブル
ＢＧ…背景
ＢＱＴ…基本量子化テーブル
ＣＬＫ…基本クロック信号
Ｄ１〜Ｄ１３…乗算器４２４の出力
Ｄ１３…符号ビット
ＥＮ…イネーブル信号
ｆ（ｘ，ｙ）…原画像データ
ｆｆ（ｘ，ｙ）…復号された画像データ
Ｆ（ｕ，ｖ）…元のＤＣＴ係数
ＦＦ（ｕ，ｖ）…復号されたＤＣＴ係数
ＨＦAC…ＡＣ係数用ハフマン符号語
ＨＦDC…ＤＣ係数用ハフマン符号語
ＨＴAC…ＡＣ係数用ハフマン符号テーブル
ＨＴDC…ＤＣ係数用ハフマン符号テーブル
ＨＴ…ハフマン符号テーブル
ＩＤ…識別データ
ＮＮＮＮ…ゼロラン長
ＮＲＬ…ヌルランデータ
ＰＢ…画素ブロック
ＰＸ…画素
ＱＣｘ…量子化レベル係数
ＱＥＮ…イネーブル信号
ＱＦ…量子化されたＤＣＴ係数
ＱＴ…量子化テーブル
ＳＣＫ…同期クロック信号
ＳＥＬ…選択信号
ＳＳ…状態信号
ＳＳＳＳ…カテゴリ
ＳＷＴＣＨ…ブロック切替信号
Ｕ，Ｖ…色差信号
ＵＳＴＲＴ…Ｕスタート信号
ＶＳＴＲＴ…Ｖスタート信号
Ｙ…輝度信号
ＺＺ…圧縮画像データ
【図１】
0003673529.tif 000005
【図２】
0003673529.tif 000006
【図３】
0003673529.tif 000007
【図４】
0003673529.tif 000008
【図５】
0003673529.tif 000009
【図６】
0003673529.tif 000010
【図７】
0003673529.tif 000011
【図８】
0003673529.tif 000012
【図９】
0003673529.tif 000013
【図１０】
0003673529.tif 000014
【図１１】
0003673529.tif 000015
【図１２】
0003673529.tif 000016
【図１３】
0003673529.tif 000017
【図１４】
0003673529.tif 000018
【図１５】
0003673529.tif 000019
【図１６】
0003673529.tif 000020
【図１７】
0003673529.tif 000021
【図１８】
0003673529.tif 000022
【図１９】
0003673529.tif 000023
【図２０】
0003673529.tif 000024
【図２１】
0003673529.tif 000025
【図２２】
0003673529.tif 000026
【図２３】
0003673529.tif 000027
【図２４】
0003673529.tif 000028
【図２５】
0003673529.tif 000029
【図２６】
0003673529.tif 000030
【図２７】
0003673529.tif 000031
【図２８】
0003673529.tif 000032
【図２９】
0003673529.tif 000033
【図３０】
0003673529.tif 000034
【図３１】
0003673529.tif 000035