(57)【要約】  【課題】  ＪＰＥＧ等の画像圧縮方式を拡張する画像符号化処理方法等を提供する。  【解決手段】  ＪＰＥＧ等の処理における空間周波数変換を行う前の画素ブロックに対して、該画素ブロックを行列で表現して、該行列のｉ列における画素値の加算データｓｃ（ｉ）とｊ行における画素値の加算データｓｒ（ｊ）とを算出し（Ｓ２２）、ｓｃ（ｉ）およびｓｒ（ｊ）が各降べきの順となるｎｃ（ｉ）およびｎｒ（ｊ）を算出し（Ｓ２３）、並べ換えが妥当であると考えられる所定の条件（Ｓ２４，Ｓ２８）が満たされるときに、行列の並べ換えを行い（Ｓ２６，Ｓ３０）、元の状態に並べ換えるために必要なｎｃ（ｉ）およびｎｒ（ｊ）を含むヘッダ情報Ｐｈ（ｎ）を生成し（Ｓ３２）、ＪＰＥＧ等の圧縮画像ファイルのヘッダに追加するようにした画像符号化処理方法等。【選択図】図５
2006050516.tif 000002
【特許請求の範囲】
【請求項１】
画素空間として記述される画像データまたは差分画像データに、空間周波数変換を施す空間周波数変換ステップと、この空間周波数変換ステップにより得られた変換結果に基づいて得られるデータに、該データに係る情報をヘッダ部分として付加するヘッダ情報生成ステップと、を含む基本符号化処理方法、に対して適用される画像符号化処理方法であって、
上記空間周波数変換ステップを行う前の画像データまたは差分画像データに対して、可逆な画素空間変換を施す空間変換ステップと、
上記空間変換ステップによる画素空間変換の逆変換を実行するために必要な空間変換パラメータを、上記ヘッダ部分に付加するヘッダ情報追加ステップと、
を含むことを特徴とする画像符号化処理方法。
【請求項２】
上記基本符号化処理方法は、上記空間周波数変換ステップにより得られた変換結果を、高周波成分側の符号量よりも低周波成分側の符号量が概略小さくなるように符号化する符号化ステップをさらに含み、
上記空間変換ステップにより行われる可逆な画素空間変換は、空間周波数変換後の高周波成分を抑圧する変換であることを特徴とする請求項１に記載の画像符号化処理方法。
【請求項３】
上記基本符号化処理方法は、画像データまたは差分画像データを画素ブロックに分割する分割ステップをさらに含むとともに、上記空間周波数変換ステップは、この分割ステップにより分割された画素ブロックに空間周波数変換を施すステップであり、
上記空間変換ステップは、上記空間周波数変換ステップを行う前の画素ブロックの少なくとも１つに対して、可逆な画素空間変換を施すステップであることを特徴とする請求項１に記載の画像符号化処理方法。
【請求項４】
上記空間変換ステップは、上記画素ブロックを行列Ｍとして表現して、この行列Ｍに対して、逆行列をもつ行列Ａと、逆行列をもつ行列Ｂと、を用いて、
Ｍ→ＡＭＢ
なる可逆な線形行列演算を行うことにより、可逆な空間変換を行うステップであることを特徴とする請求項３に記載の画像符号化処理方法。
【請求項５】
上記行列Ａと行列Ｂとの何れか一方は、行列演算を行うことにより上記行列Ｍの行の並べ換えを行う行列であり、他方は、行列演算を行うことにより上記行列Ｍの列の並べ換えを行う行列であることを特徴とする請求項４に記載の画像符号化処理方法。
【請求項６】
上記行の並べ換えを行う行列は、行同士を交換する行列同士の行列演算として表現され、上記列の並べ換えを行う行列は、列同士を交換する行列同士の行列演算として表現されることを特徴とする請求項５に記載の画像符号化処理方法。
【請求項７】
上記行同士を交換する行列は、ある行に他の行を加算する行列と、ある行に非ゼロ係数としての−１を乗算する行列と、を組み合わせて行列演算を行う行列として表現され、
上記列同士を交換する行列は、ある列に他の列を加算する行列と、ある列に非ゼロ係数としての−１を乗算する行列と、を組み合わせて行列演算を行う行列として表現されることを特徴とする請求項６に記載の画像符号化処理方法。
【請求項８】
上記行列Ｍの行の並べ換えは、列方向の画素値の和が行方向に降べきまたは昇べきとなるように並べ換えるものであり、
上記行列Ｍの列の並べ換えは、行方向の画素値の和が列方向に降べきまたは昇べきとなるように並べ換えるものであることを特徴とする請求項５に記載の画像符号化処理方法。
【請求項９】
上記空間変換ステップは、上記画像データまたは差分画像データに含まれる画素の配置を任意に変更することにより、可逆な空間変換を行うステップであることを特徴とする請求項１に記載の画像符号化処理方法。
【請求項１０】
上記空間周波数変換ステップにより得られた変換結果は、上記画像データの平均値または差分画像データの平均値に比例するＤＣ係数を含み、上記空間変換ステップにおいて行われる画素空間変換は該ＤＣ係数を不変とする変換であることを特徴とする請求項１または請求項２に記載の画像符号化処理方法。
【請求項１１】
上記空間周波数変換ステップにより得られた変換結果は、上記画素ブロックの平均値に比例するＤＣ係数を含み、上記空間変換ステップにおいて行われる画素空間変換は該ＤＣ係数を不変とする変換であることを特徴とする請求項３に記載の画像符号化処理方法。
【請求項１２】
ＪＰＥＧ符号化処理に対して適用される画像符号化処理方法であって、
少なくとも１つの画素ブロックに対して、離散コサイン変換を実行する前に可逆な画素空間変換を施す空間変換ステップと、
上記空間変換ステップによる画素空間変換の逆変換を実行するために必要な空間変換パラメータを抽出する空間変換パラメータ抽出ステップと、
上記空間パラメータ抽出ステップにより抽出された空間変換パラメータを、ＪＰＥＧファイルのヘッダ部分に付加するヘッダ情報追加ステップと、
を含むことを特徴とする画像符号化処理方法。
【請求項１３】
上記画素空間変換は、離散コサイン変換を実行することにより得られるＤＣＴ係数の内のＤＣ係数を不変とし、かつ、該ＤＣＴ係数の内の低周波側のＡＣ係数の振幅を増大させる変換であることを特徴とする請求項１２に記載の画像符号化処理方法。
【請求項１４】
画素空間として記述される画像データまたは差分画像データを、空間周波数変換し、空間周波数変換後のデータを、高周波成分側の符号量よりも低周波成分側の符号量が概略小さくなるように符号化する基本符号化処理方法、に対して適用される画像符号化処理方法であって、
空間周波数変換を行う前に、空間周波数変換後の高周波成分を抑圧するような、画素空間内の可逆な空間変換を行う空間変換ステップと、
上記空間変換の逆変換を実行するために必要な情報を、上記符号化後の画像データまたは符号化後の差分画像データに、ヘッダ情報として一体的に付加するヘッダ情報生成ステップと、
を含むことを特徴とする画像符号化処理方法。
【請求項１５】
符号化された画像データまたは差分画像データに、空間周波数変換の逆変換である周波数空間変換を施す周波数空間変換ステップ、を含む基本復号化処理方法、に対して適用され、請求項１に記載の画像符号化処理方法により符号化された画像データまたは差分画像データを復号化するための画像復号化処理方法であって、
上記ヘッダ部分から少なくとも上記空間変換パラメータを読み出すヘッダ情報読出ステップと、
上記ヘッダ情報読出ステップにより読み出した空間変換パラメータに基づいて、上記周波数空間変換ステップを行った後の画像データまたは差分画像データに対し、上記画素空間変換の逆変換を施す逆空間変換ステップと、
を含むことを特徴とする画像復号化処理方法。
【請求項１６】
上記ヘッダ部分に上記空間変換パラメータが記載されているか否かを判断するヘッダ判別ステップをさらに含み、
上記ヘッダ判別ステップにより上記空間変換パラメータが記載されていると判断された場合には、該空間変換パラメータに基づいて上記逆空間変換ステップを実行することにより得られる画像データまたは差分画像データを出力し、該ヘッダ判別ステップにより上記空間変換パラメータが記載されていないと判断された場合には、上記逆空間変換ステップを実行することなく得られる画像データまたは差分画像データを出力することを特徴とする請求項１５に記載の画像復号化処理方法。
【請求項１７】
時系列的な因果関係を有する画像フレームの集合として構成される動画像データを、１つの画像フレームに係る画像データのみに基づき圧縮するフレーム内圧縮と、複数の画像フレームに係る画像データに基づき圧縮するフレーム間圧縮と、により符号化可能であり、
上記フレーム内圧縮は、圧縮対象とする画像フレームを画素ブロックに分割する分割ステップと、この分割ステップにより分割された画素ブロックに空間周波数変換を施す空間周波数変換ステップと、この空間周波数変換ステップにより得られた変換結果に基づいて得られるデータに、該データに係る情報をヘッダ部分として付加するヘッダ情報生成ステップと、
を含む基本圧縮処理方法、に対して適用される動画圧縮処理方法であって、
上記フレーム内圧縮は、さらに、
上記空間周波数変換ステップを行う前の画素ブロックの少なくとも１つに対して、可逆な画素空間変換を施す空間変換ステップと、
上記空間変換ステップによる画素空間変換の逆変換を実行するために必要な空間変換パラメータを、上記ヘッダ部分に付加するヘッダ情報追加ステップと、
を含むものであることを特徴とする動画圧縮処理方法。
【請求項１８】
上記空間変換ステップおよび上記ヘッダ情報追加ステップを実行するか否かを選択する空間変換モード選択ステップをさらに含むことを特徴とする請求項１７に記載の動画圧縮処理方法。
【請求項１９】
時系列的な因果関係を有する画像フレームの集合として構成される動画像データを、１つの画像フレームに係る画像データのみに基づき圧縮するフレーム内圧縮と、複数の画像フレームに係る画像データに基づき圧縮するフレーム間圧縮と、により符号化可能であり、
上記フレーム間圧縮は、圧縮対象とする画像フレームを画素ブロックに分割する分割ステップと、この分割ステップにより分割された画素ブロックの内の少なくとも１つの画素ブロックと、比較対象とする画像フレームにおいて対応する画素ブロックと、の差分をとることにより差分画素ブロックを生成する差分演算ステップと、この差分演算ステップにより生成された差分画素ブロックに空間周波数変換を施す空間周波数変換ステップと、この空間周波数変換ステップにより得られた変換結果に基づいて得られるデータに、該データに係る情報をヘッダ部分として付加するヘッダ情報生成ステップと、
を含む基本圧縮処理方法、に対して適用される動画圧縮処理方法であって、
上記フレーム間圧縮は、さらに、
上記空間周波数変換ステップを行う前の差分画素ブロックの少なくとも１つに対して、可逆な画素空間変換を施す空間変換ステップと、
上記空間変換ステップによる画素空間変換の逆変換を実行するために必要な空間変換パラメータを、上記ヘッダ部分に付加するヘッダ情報追加ステップと、
を含むものであることを特徴とする動画圧縮処理方法。
【請求項２０】
上記空間変換ステップおよび上記ヘッダ情報追加ステップを実行するか否かを選択する空間変換モード選択ステップをさらに含むことを特徴とする請求項１９に記載の動画圧縮処理方法。
【請求項２１】
上記ヘッダ情報生成ステップは、符号化された複数のフレームを含むグループ毎にヘッダ部分を生成するステップであり、
上記ヘッダ情報追加ステップは、上記空間変換パラメータを、対応するグループのヘッダ部分に追加するステップであることを特徴とする請求項１９に記載の動画圧縮処理方法。
【請求項２２】
圧縮された動画像データに空間周波数変換の逆変換である周波数空間変換を施すことにより画素ブロックを生成する周波数空間変換ステップ、を含む基本伸張処理方法、に対して適用され、請求項１７に記載の動画圧縮処理方法により圧縮された動画像データを伸張するための動画伸張処理方法であって、
上記ヘッダ部分から少なくとも上記空間変換パラメータを読み出すヘッダ情報読出ステップと、
上記ヘッダ情報読出ステップにより読み出した空間変換パラメータに基づいて、上記周波数空間変換ステップを行った後の画素ブロックに対し、上記画素空間変換の逆変換を施す逆空間変換ステップと、
を含むことを特徴とする動画伸張処理方法。
【請求項２３】
圧縮された動画像データに空間周波数変換の逆変換である周波数空間変換を施すことにより差分画素ブロックを生成する周波数空間変換ステップ、を含む基本伸張処理方法、に対して適用され、請求項１９に記載の動画圧縮処理方法により圧縮された動画像データを伸張するための動画伸張処理方法であって、
上記ヘッダ部分から少なくとも上記空間変換パラメータを読み出すヘッダ情報読出ステップと、
上記ヘッダ情報読出ステップにより読み出した空間変換パラメータに基づいて、上記周波数空間変換ステップを行った後の差分画素ブロックに対し、上記画素空間変換の逆変換を施す逆空間変換ステップと、
を含むことを特徴とする動画伸張処理方法。
【請求項２４】
画素空間として記述される画像データまたは差分画像データに、空間周波数変換を施す空間周波数変換ステップと、この空間周波数変換ステップにより得られた変換結果に基づいて得られるデータに、該データに係る情報をヘッダ部分として付加するヘッダ情報生成ステップと、を含む処理をコンピュータに実行させるための基本符号化処理プログラム、に対して適用される画像符号化処理プログラムであって、
コンピュータに、
上記空間周波数変換ステップを行う前の画像データまたは差分画像データに対して、可逆な画素空間変換を施す空間変換ステップと、
上記空間変換ステップによる画素空間変換の逆変換を実行するために必要な空間変換パラメータを、上記ヘッダ部分に付加するヘッダ情報追加ステップと、
を実行させることを特徴とする画像符号化処理プログラム。
【請求項２５】
画素空間として記述される画像データまたは差分画像データに、空間周波数変換を施す空間周波数変換手段と、この空間周波数変換手段により得られた変換結果に基づいて得られるデータに、該データに係る情報をヘッダ部分として付加するヘッダ情報生成手段と、を含む基本符号化装置、に対して適用される画像符号化装置であって、
上記空間周波数変換を施す前の画像データまたは差分画像データに対して、可逆な画素空間変換を施す空間変換手段と、
上記空間変換手段による画素空間変換の逆変換を実行するために必要な空間変換パラメータを、上記ヘッダ部分に付加するヘッダ情報追加手段と、
を具備したことを特徴とする画像符号化装置。
【請求項２６】
符号化された画像データまたは差分画像データに、空間周波数変換の逆変換である周波数空間変換を施す周波数空間変換手段、を含む基本復号化装置、に対して適用され、請求項２５に記載の画像符号化装置により符号化された画像データまたは差分画像データを復号化するための画像復号化装置であって、
上記ヘッダ部分から少なくとも上記空間変換パラメータを読み出すヘッダ情報読出手段と、
上記ヘッダ情報読出手段により読み出した空間変換パラメータに基づいて、上記周波数空間変換を施した後の画像データまたは差分画像データに対し、上記画素空間変換の逆変換を施す逆空間変換手段と、
を具備したことを特徴とする画像復号化装置。
【請求項２７】
請求項２５に記載の画像符号化装置と、
請求項２６に記載の画像復号化装置と、
を具備したことを特徴とする画像符号化／復号化システム。
【請求項２８】
原画像データを画素ブロックに分割する分割手段と、この分割手段により分割された画素ブロックに空間周波数変換を施すことにより空間周波数係数を取得する空間周波数変換手段と、この空間周波数変換手段により取得された空間周波数係数を量子化する量子化手段と、この量子化手段により量子化された空間周波数係数をエントロピー符号化するエントロピー符号化手段と、このエントロピー符号化手段によりエントロピー符号化された結果に基づいて得られるデータに、該データに係る情報をヘッダ部分として付加することにより、第１の圧縮画像ファイルを生成する圧縮画像ファイル生成手段と、を有して構成される第１の画像符号化装置と、
上記第１の圧縮画像ファイルからヘッダ部分を読み出すヘッダ情報読出手段と、上記第１の圧縮画像ファイルからの上記データに基づいてエントロピー復号化することにより量子化された空間周波数係数を取得するエントロピー復号化手段と、このエントロピー復号化手段により取得された量子化された空間周波数係数を逆量子化する逆量子化手段と、この逆量子化手段により逆量子化された空間周波数係数に上記空間周波数変換の逆変換である周波数空間変換を施すことにより画素ブロックを取得する周波数空間変換手段と、この画素ブロックを展開することにより原画像データを生成する展開手段と、を有して構成される第１の画像復号化装置と、
を具備して構成される第１の画像圧縮伸張処理システムの、
上記第１の画像符号化装置に、
上記空間周波数変換手段により空間周波数変換を施す前に、上記画素ブロックに対して、空間変換パラメータにより特定可能な可逆な画素空間変換を施す空間変換手段と、上記空間変換パラメータを上記ヘッダ部分に付加するヘッダ情報追加手段と、を追加することにより得られる、第２の圧縮画像ファイルを生成するための第２の画像符号化装置と、
上記第１の画像復号化装置に、
上記空間変換パラメータを上記ヘッダ部分から追加して読み出す追加ヘッダ情報読出手段と、この追加ヘッダ情報読出手段により読み出した空間変換パラメータに基づき、上記画素空間変換の逆変換を施す逆空間変換手段と、を追加することにより得られる、上記第２の圧縮画像ファイルから原画像データを取得するための第２の画像復号化装置と、
を具備した拡張画像圧縮伸張処理システムであって、
上記第１の画像復号化装置は、処理対象となる圧縮画像ファイルが上記第２の圧縮画像ファイルである場合には、該第２の圧縮画像ファイルのヘッダ部分に記載されている空間変換パラメータを無視することにより、上記原画像データとは異なるデータを復元可能であり、
上記第２の画像復号化装置は、上記追加ヘッダ情報読出手段により上記ヘッダ部分から上記空間変換パラメータを読み出すことができない場合には、上記逆空間変換手段による処理を行うことなく、第１の画像復号化装置部分による処理のみを行うことにより原画像データを復元するものであることを特徴とする拡張画像圧縮伸張処理システム。
【請求項２９】
上記第２の画像符号化装置を有する撮像装置と、
上記第１の画像復号化装置を有するコンピュータと、
をさらに具備したことを特徴とする請求項２８に記載の拡張画像圧縮伸張処理システム。
【請求項３０】
上記空間変換ステップは、少なくとも１つの調整パラメータにより調整され得る画素空間変換を施すステップであり、
上記ヘッダ情報追加ステップは、さらに、上記調整パラメータを上記ヘッダ部分に付加するステップであることを特徴とする請求項１に記載の画像符号化処理方法。
【請求項３１】
上記基本符号化処理方法は、画像データまたは差分画像データを画素ブロックに分割する分割ステップをさらに含むとともに、上記空間周波数変換ステップは、この分割ステップにより分割された画素ブロックに空間周波数変換を施すステップであり、
上記空間変換ステップは、上記空間周波数変換ステップを行う前の画素ブロックの少なくとも１つに対して、可逆な画素空間変換を施すステップであることを特徴とする請求項３０に記載の画像符号化処理方法。
【請求項３２】
上記空間変換ステップは、上記画素ブロックを行列Ｍとして表現して、この行列Ｍに対して、逆行列をもつ行列Ａを用いた
Ｍ→ＡＭ
なる可逆な線形行列演算と、逆行列をもつ行列Ｂを用いた
Ｍ→ＭＢ
なる可逆な線形行列演算と、の少なくとも一方を行うことにより、可逆な空間変換を行うステップであることを特徴とする請求項３１に記載の画像符号化処理方法。
【請求項３３】
上記行列Ａおよび行列Ｂは、上記行列Ｍで表現される画素ブロックに対して、空間ローパスフィルタを施す行列であることを特徴とする請求項３２に記載の画像符号化処理方法。
【請求項３４】
上記調整パラメータは、上記空間ローパスフィルタのフィルタ強度を調整するためのフィルタ調整パラメータを含むことを特徴とする請求項３３に記載の画像符号化処理方法。
【請求項３５】
上記基本符号化処理方法は、上記空間周波数変換ステップにより得られた変換結果をある量子化幅で量子化する量子化ステップをさらに含み、
上記ヘッダ情報生成ステップは、上記量子化ステップにより得られた量子化の結果に基づいて得られるデータに、該データに係る情報をヘッダ部分として付加するステップであって、
上記量子化幅は、上記フィルタ調整パラメータに応じて調整されることを特徴とする請求項３４に記載の画像符号化処理方法。
【請求項３６】
上記空間周波数変換ステップにより得られた変換結果は、上記画像データの平均値または差分画像データの平均値に比例するＤＣ係数を含み、上記空間変換ステップにおいて行われる画素空間変換は該ＤＣ係数を不変とする変換であることを特徴とする請求項３０に記載の画像符号化処理方法。
【請求項３７】
請求項５に記載の画像符号化処理方法と、
請求項３３に記載の画像符号化処理方法と、
を択一的に選択して行うことを特徴とする画像符号化処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、静止画像や動画像を符号化して圧縮または／および復号化して伸張する画像符号化処理方法、画像復号化処理方法、動画圧縮処理方法、動画伸張処理方法、画像符号化処理プログラム、画像符号化装置、画像復号化装置、画像符号化／復号化システム、拡張画像圧縮伸張処理システムに関する。
【背景技術】
【０００２】
情報処理分野においては、データを圧縮する技術が種々開発されている。データの中でも、特に、画像データに関しては、静止画像ではＪＰＥＧやＪＰＥＧ２０００など、動画ではＭＰＥＧやＭＰＥＧ２やＭＰＥＧ４など、がよく知られた圧縮技術の例として挙げられる。
【０００３】
例えば、上記ＪＰＥＧによる圧縮処理は、詳しくは、例えば、CCITT Recommendations T.81,"Information technology - digital compression and coding of continuous-tone still images - requirements and guidelines",ITU,1992 に記載されているが、その概略は、次のような手順で行われるものである。
【０００４】
カラー画像を例に挙げると、まず、３色（例えば輝度信号Ｙと２つの色差信号Ｃｂ，Ｃｒと）で構成される画像を、各色毎に８×８画素ブロックにそれぞれ分割する。そして、輝度信号Ｙの画素ブロックと２つの色差信号Ｃｂ，Ｃｒの各画素ブロックとをそれぞれ個別に（つまり３回）ＤＣＴ（Discrete Cosine Transform：離散コサイン変換）する。そして、輝度信号用の量子化テーブルと色差信号用の量子化テーブル（Ｃｂ用とＣｒ用とで共通）とを用いてそれぞれ量子化し、さらに、輝度信号用のハフマンテーブルと色差信号用のハフマンテーブル（Ｃｂ用とＣｒ用とで共通）とを用いてそれぞれエントロピー符号化する。
【０００５】
静止画像データの圧縮に用いられるＪＰＥＧ２０００は、こうした従来のＪＰＥＧの問題点（例えば、可逆／非可逆圧縮／画質のスケーラビリティ、モスキートノイズ、など）を改善する優れた技術であるにも関わらず、未だに十分普及しているとはいえず、ＪＰＥＧは今後も画像圧縮に用いられる技術の第１候補として存続すると考えられる。
【０００６】
ところで、デジタルカメラや携帯電話に搭載されるカメラの画素数は、近年ますます増大する傾向にある。そして、携帯電話等に代表される身近な機器（常に携帯していることが多いような機器）の普及により、撮影を行う機会が増え、個人のデジタル画像の保有数についても増大する一方である。このような情報量の増加に対応するために、画像データのデータ量はより小さいことが望ましい。
【０００７】
しかし、圧縮画像の符号量を減らすためには、従来のＪＰＥＧでは、量子化テーブルを粗く設定する、つまり量子化幅を大きくする、しか方法がなく、これを実行すると、上述したようなモスキートノイズなどが発生して、画質が低下することが知られている。
【０００８】
圧縮率を高く設定したときにも、こうしたノイズの発生を抑制するようにする技術が、従来より提案されている。
【０００９】
例えば、特開２０００−３０８０５８号公報には、ＪＰＥＧ処理を施す前に、画像のエッジ部分の濃度差を小さくするように前処理することにより、エッジ部分に発生し易いモスキートノイズを低減するようにした技術が記載されている。
【００１０】
また、特開平８-１６３３７５号公報には、画素値分布に応じて画素ブロックを複数の領域に分割し、分割した領域毎に不足する画素を補って各１つの画素ブロックのサイズにし、それぞれをＪＰＥＧ変換する技術が記載されている。
【特許文献１】特開２０００−３０８０５８号公報
【特許文献２】特開平８-１６３３７５号公報
【非特許文献１】CCITT Recommendations T.81,"Information technology - digital compression and coding of continuous-tone still images - requirements and guidelines",ITU,1992
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、上記特開２０００−３０８０５８号公報に記載された技術では、ＪＰＥＧ処理の前処理として行う画像のエッジ部分の処理に関する情報を、該前処理を行った装置側で記憶しておく必要があるために、圧縮画像ファイル単体では、元の画像を再現することができなかった。さらに、該前処理において画素ブロック全体の画像データを低ビット変換するために、量子化誤差が増大して、画質が劣化してしまう。
【００１２】
また、上記特開平８-１６３３７５号公報に記載された技術は、単一の画素ブロックから複数の画素ブロックを生成するものであるために、従来のＪＰＥＧデコーダにより復号化処理をしようとしても、エラーとなって処理を行うことができなかった。
【００１３】
このように、圧縮画像ファイル単体をＪＰＥＧデコーダにより概略復号化可能な圧縮形式であって、かつ、量子化テーブルを細かく設定しても少ない符号量で圧縮することができる圧縮形式、または、量子化テーブルを粗く設定してもモスキートノイズがほとんど発生することのない圧縮形式は、従来、存在していなかった。
【００１４】
本発明は上記事情に鑑みてなされたものであり、空間周波数変換を施す符号化において符号量を小さくしおよび／またはノイズの発生を抑制することができる、および／または、該符号化が施されたデータを復号化することができる、画像符号化処理方法、画像復号化処理方法、動画圧縮処理方法、動画伸張処理方法、画像符号化処理プログラム、画像符号化装置、画像復号化装置、画像符号化／復号化システム、拡張画像圧縮伸張処理システムを提供することを目的としている。
【課題を解決するための手段】
【００１５】
上記の目的を達成するために、第１の発明による画像符号化処理方法は、画素空間として記述される画像データまたは差分画像データに空間周波数変換を施す空間周波数変換ステップと、この空間周波数変換ステップにより得られた変換結果に基づいて得られるデータに該データに係る情報をヘッダ部分として付加するヘッダ情報生成ステップと、を含む基本符号化処理方法、に対して適用される画像符号化処理方法であって、上記空間周波数変換ステップを行う前の画像データまたは差分画像データに対して可逆な画素空間変換を施す空間変換ステップと、上記空間変換ステップによる画素空間変換の逆変換を実行するために必要な空間変換パラメータを上記ヘッダ部分に付加するヘッダ情報追加ステップと、を含むことを特徴とする。
【００１６】
また、第２の発明による画像符号化処理方法は、上記第１の発明による画像符号化処理方法において、上記基本符号化処理方法が、上記空間周波数変換ステップにより得られた変換結果を高周波成分側の符号量よりも低周波成分側の符号量が概略小さくなるように符号化する符号化ステップをさらに含み、上記空間変換ステップにより行われる可逆な画素空間変換は、空間周波数変換後の高周波成分を抑圧する変換であることを特徴とする。
【００１７】
さらに、第３の発明による画像符号化処理方法は、上記第１の発明による画像符号化処理方法において、上記基本符号化処理方法が、画像データまたは差分画像データを画素ブロックに分割する分割ステップをさらに含むとともに、上記空間周波数変換ステップは、この分割ステップにより分割された画素ブロックに空間周波数変換を施すステップであり、上記空間変換ステップは、上記空間周波数変換ステップを行う前の画素ブロックの少なくとも１つに対して可逆な画素空間変換を施すステップであることを特徴とする。
【００１８】
第４の発明による画像符号化処理方法は、上記第３の発明による画像符号化処理方法において、上記空間変換ステップが、上記画素ブロックを行列Ｍとして表現して、この行列Ｍに対して、逆行列をもつ行列Ａと、逆行列をもつ行列Ｂと、を用いて、
Ｍ→ＡＭＢ
なる可逆な線形行列演算を行うことにより、可逆な空間変換を行うステップであることを特徴とする。
【００１９】
第５の発明による画像符号化処理方法は、上記第４の発明による画像符号化処理方法において、上記行列Ａと行列Ｂとの何れか一方が、行列演算を行うことにより上記行列Ｍの行の並べ換えを行う行列であり、他方は、行列演算を行うことにより上記行列Ｍの列の並べ換えを行う行列であることを特徴とする。
【００２０】
第６の発明による画像符号化処理方法は、上記第５の発明による画像符号化処理方法において、上記行の並べ換えを行う行列が、行同士を交換する行列同士の行列演算として表現され、上記列の並べ換えを行う行列は、列同士を交換する行列同士の行列演算として表現されることを特徴とする。
【００２１】
第７の発明による画像符号化処理方法は、上記第６の発明による画像符号化処理方法において、上記行同士を交換する行列が、ある行に他の行を加算する行列とある行に非ゼロ係数としての−１を乗算する行列とを組み合わせて行列演算を行う行列として表現され、上記列同士を交換する行列は、ある列に他の列を加算する行列とある列に非ゼロ係数としての−１を乗算する行列とを組み合わせて行列演算を行う行列として表現されることを特徴とする。
【００２２】
第８の発明による画像符号化処理方法は、上記第５の発明による画像符号化処理方法において、上記行列Ｍの行の並べ換えが、列方向の画素値の和が行方向に降べきまたは昇べきとなるように並べ換えるものであり、上記行列Ｍの列の並べ換えは、行方向の画素値の和が列方向に降べきまたは昇べきとなるように並べ換えるものであることを特徴とする。
【００２３】
第９の発明による画像符号化処理方法は、上記第１の発明による画像符号化処理方法において、上記空間変換ステップが、上記画像データまたは差分画像データに含まれる画素の配置を任意に変更することにより、可逆な空間変換を行うステップであることを特徴とする。
【００２４】
第１０の発明による画像符号化処理方法は、上記第１または第２の発明による画像符号化処理方法において、上記空間周波数変換ステップにより得られた変換結果が、上記画像データの平均値または差分画像データの平均値に比例するＤＣ係数を含み、上記空間変換ステップにおいて行われる画素空間変換は該ＤＣ係数を不変とする変換であることを特徴とする。
【００２５】
第１１の発明による画像符号化処理方法は、上記第３の発明による画像符号化処理方法において、上記空間周波数変換ステップにより得られた変換結果が、上記画素ブロックの平均値に比例するＤＣ係数を含み、上記空間変換ステップにおいて行われる画素空間変換は該ＤＣ係数を不変とする変換であることを特徴とする。
【００２６】
第１２の発明による画像符号化処理方法は、ＪＰＥＧ符号化処理に対して適用される画像符号化処理方法であって、少なくとも１つの画素ブロックに対して離散コサイン変換を実行する前に可逆な画素空間変換を施す空間変換ステップと、上記空間変換ステップによる画素空間変換の逆変換を実行するために必要な空間変換パラメータを抽出する空間変換パラメータ抽出ステップと、上記空間パラメータ抽出ステップにより抽出された空間変換パラメータをＪＰＥＧファイルのヘッダ部分に付加するヘッダ情報追加ステップと、を含むことを特徴とする。
【００２７】
第１３の発明による画像符号化処理方法は、上記第１２の発明による画像符号化処理方法において、上記画素空間変換が、離散コサイン変換を実行することにより得られるＤＣＴ係数の内のＤＣ係数を不変とし、かつ、該ＤＣＴ係数の内の低周波側のＡＣ係数の振幅を増大させる変換であることを特徴とする。
【００２８】
第１４の発明による画像符号化処理方法は、画素空間として記述される画像データまたは差分画像データを空間周波数変換し、空間周波数変換後のデータを高周波成分側の符号量よりも低周波成分側の符号量が概略小さくなるように符号化する基本符号化処理方法、に対して適用される画像符号化処理方法であって、空間周波数変換を行う前に空間周波数変換後の高周波成分を抑圧するような画素空間内の可逆な空間変換を行う空間変換ステップと、上記空間変換の逆変換を実行するために必要な情報を上記符号化後の画像データまたは符号化後の差分画像データにヘッダ情報として一体的に付加するヘッダ情報生成ステップと、を含むことを特徴とする。
【００２９】
第１５の発明による画像復号化処理方法は、符号化された画像データまたは差分画像データに空間周波数変換の逆変換である周波数空間変換を施す周波数空間変換ステップ、を含む基本復号化処理方法、に対して適用され、第１の発明に記載の画像符号化処理方法により符号化された画像データまたは差分画像データを復号化するための画像復号化処理方法であって、上記ヘッダ部分から少なくとも上記空間変換パラメータを読み出すヘッダ情報読出ステップと、上記ヘッダ情報読出ステップにより読み出した空間変換パラメータに基づいて上記周波数空間変換ステップを行った後の画像データまたは差分画像データに対し上記画素空間変換の逆変換を施す逆空間変換ステップと、を含むことを特徴とする。
【００３０】
第１６の発明による画像復号化処理方法は、上記第１５の発明による画像復号化処理方法において、上記ヘッダ部分に上記空間変換パラメータが記載されているか否かを判断するヘッダ判別ステップをさらに含み、上記ヘッダ判別ステップにより上記空間変換パラメータが記載されていると判断された場合には、該空間変換パラメータに基づいて上記逆空間変換ステップを実行することにより得られる画像データまたは差分画像データを出力し、該ヘッダ判別ステップにより上記空間変換パラメータが記載されていないと判断された場合には、上記逆空間変換ステップを実行することなく得られる画像データまたは差分画像データを出力することを特徴とする。
【００３１】
第１７の発明による動画圧縮処理方法は、時系列的な因果関係を有する画像フレームの集合として構成される動画像データを、１つの画像フレームに係る画像データのみに基づき圧縮するフレーム内圧縮と、複数の画像フレームに係る画像データに基づき圧縮するフレーム間圧縮と、により符号化可能であり、上記フレーム内圧縮は、圧縮対象とする画像フレームを画素ブロックに分割する分割ステップと、この分割ステップにより分割された画素ブロックに空間周波数変換を施す空間周波数変換ステップと、この空間周波数変換ステップにより得られた変換結果に基づいて得られるデータに該データに係る情報をヘッダ部分として付加するヘッダ情報生成ステップと、を含む基本圧縮処理方法、に対して適用される動画圧縮処理方法であって、上記フレーム内圧縮は、さらに、上記空間周波数変換ステップを行う前の画素ブロックの少なくとも１つに対して可逆な画素空間変換を施す空間変換ステップと、上記空間変換ステップによる画素空間変換の逆変換を実行するために必要な空間変換パラメータを上記ヘッダ部分に付加するヘッダ情報追加ステップと、を含むものであることを特徴とする。
【００３２】
第１８の発明による動画圧縮処理方法は、上記第１７の発明による動画圧縮処理方法において、上記空間変換ステップおよび上記ヘッダ情報追加ステップを実行するか否かを選択する空間変換モード選択ステップをさらに含むことを特徴とする。
【００３３】
第１９の発明による動画圧縮処理方法は、時系列的な因果関係を有する画像フレームの集合として構成される動画像データを、１つの画像フレームに係る画像データのみに基づき圧縮するフレーム内圧縮と、複数の画像フレームに係る画像データに基づき圧縮するフレーム間圧縮と、により符号化可能であり、上記フレーム間圧縮は、圧縮対象とする画像フレームを画素ブロックに分割する分割ステップと、この分割ステップにより分割された画素ブロックの内の少なくとも１つの画素ブロックと比較対象とする画像フレームにおいて対応する画素ブロックとの差分をとることにより差分画素ブロックを生成する差分演算ステップと、この差分演算ステップにより生成された差分画素ブロックに空間周波数変換を施す空間周波数変換ステップと、この空間周波数変換ステップにより得られた変換結果に基づいて得られるデータに該データに係る情報をヘッダ部分として付加するヘッダ情報生成ステップと、を含む基本圧縮処理方法、に対して適用される動画圧縮処理方法であって、上記フレーム間圧縮は、さらに、上記空間周波数変換ステップを行う前の差分画素ブロックの少なくとも１つに対して可逆な画素空間変換を施す空間変換ステップと、上記空間変換ステップによる画素空間変換の逆変換を実行するために必要な空間変換パラメータを上記ヘッダ部分に付加するヘッダ情報追加ステップと、を含むものであることを特徴とする。
【００３４】
第２０の発明による動画圧縮処理方法は、上記第１９の発明による動画圧縮処理方法において、上記空間変換ステップおよび上記ヘッダ情報追加ステップを実行するか否かを選択する空間変換モード選択ステップをさらに含むことを特徴とする。
【００３５】
第２１の発明による動画伸張処理方法は、上記第１９の発明による動画圧縮処理方法において、上記ヘッダ情報生成ステップが、符号化された複数のフレームを含むグループ毎にヘッダ部分を生成するステップであり、上記ヘッダ情報追加ステップは、上記空間変換パラメータを、対応するグループのヘッダ部分に追加するステップであることを特徴とする。
【００３６】
第２２の発明による動画伸張処理方法は、圧縮された動画像データに空間周波数変換の逆変換である周波数空間変換を施すことにより画素ブロックを生成する周波数空間変換ステップ、を含む基本伸張処理方法、に対して適用され、第１７の発明に記載の動画圧縮処理方法により圧縮された動画像データを伸張するための動画伸張処理方法であって、上記ヘッダ部分から少なくとも上記空間変換パラメータを読み出すヘッダ情報読出ステップと、上記ヘッダ情報読出ステップにより読み出した空間変換パラメータに基づいて上記周波数空間変換ステップを行った後の画素ブロックに対し上記画素空間変換の逆変換を施す逆空間変換ステップと、を含むことを特徴とする。
【００３７】
第２３の発明による動画伸張処理方法は、圧縮された動画像データに空間周波数変換の逆変換である周波数空間変換を施すことにより差分画素ブロックを生成する周波数空間変換ステップ、を含む基本伸張処理方法、に対して適用され、第１９の発明に記載の動画圧縮処理方法により圧縮された動画像データを伸張するための動画伸張処理方法であって、上記ヘッダ部分から少なくとも上記空間変換パラメータを読み出すヘッダ情報読出ステップと、上記ヘッダ情報読出ステップにより読み出した空間変換パラメータに基づいて上記周波数空間変換ステップを行った後の差分画素ブロックに対し上記画素空間変換の逆変換を施す逆空間変換ステップと、を含むことを特徴とする。
【００３８】
第２４の発明による画像復号化処理プログラムは、画素空間として記述される画像データまたは差分画像データに空間周波数変換を施す空間周波数変換ステップと、この空間周波数変換ステップにより得られた変換結果に基づいて得られるデータに該データに係る情報をヘッダ部分として付加するヘッダ情報生成ステップと、を含む処理をコンピュータに実行させるための基本符号化処理プログラム、に対して適用される画像符号化処理プログラムであって、コンピュータに、上記空間周波数変換ステップを行う前の画像データまたは差分画像データに対して可逆な画素空間変換を施す空間変換ステップと、上記空間変換ステップによる画素空間変換の逆変換を実行するために必要な空間変換パラメータを上記ヘッダ部分に付加するヘッダ情報追加ステップと、を実行させることを特徴とする。
【００３９】
第２５の発明による画像復号化装置は、画素空間として記述される画像データまたは差分画像データに空間周波数変換を施す空間周波数変換手段と、この空間周波数変換手段により得られた変換結果に基づいて得られるデータに該データに係る情報をヘッダ部分として付加するヘッダ情報生成手段と、を含む基本符号化装置、に対して適用される画像符号化装置であって、上記空間周波数変換を施す前の画像データまたは差分画像データに対して可逆な画素空間変換を施す空間変換手段と、上記空間変換手段による画素空間変換の逆変換を実行するために必要な空間変換パラメータを上記ヘッダ部分に付加するヘッダ情報追加手段と、を具備したことを特徴とする。
【００４０】
第２６の発明による画像復号化装置は、符号化された画像データまたは差分画像データに空間周波数変換の逆変換である周波数空間変換を施す周波数空間変換手段、を含む基本復号化装置、に対して適用され、第２５の発明に記載の画像符号化装置により符号化された画像データまたは差分画像データを復号化するための画像復号化装置であって、上記ヘッダ部分から少なくとも上記空間変換パラメータを読み出すヘッダ情報読出手段と、上記ヘッダ情報読出手段により読み出した空間変換パラメータに基づいて上記周波数空間変換を施した後の画像データまたは差分画像データに対し上記画素空間変換の逆変換を施す逆空間変換手段と、を具備したことを特徴とする。
【００４１】
第２７の発明による画像符号化／復号化システムは、第２５の発明に記載の画像符号化装置と、第２６の発明に記載の画像復号化装置と、を具備したことを特徴とする。
【００４２】
第２８の発明による拡張画像圧縮伸張処理システムは、原画像データを画素ブロックに分割する分割手段と、この分割手段により分割された画素ブロックに空間周波数変換を施すことにより空間周波数係数を取得する空間周波数変換手段と、この空間周波数変換手段により取得された空間周波数係数を量子化する量子化手段と、この量子化手段により量子化された空間周波数係数をエントロピー符号化するエントロピー符号化手段と、このエントロピー符号化手段によりエントロピー符号化された結果に基づいて得られるデータに該データに係る情報をヘッダ部分として付加することにより第１の圧縮画像ファイルを生成する圧縮画像ファイル生成手段と、を有して構成される第１の画像符号化装置と、上記第１の圧縮画像ファイルからヘッダ部分を読み出すヘッダ情報読出手段と、上記第１の圧縮画像ファイルからの上記データに基づいてエントロピー復号化することにより量子化された空間周波数係数を取得するエントロピー復号化手段と、このエントロピー復号化手段により取得された量子化された空間周波数係数を逆量子化する逆量子化手段と、この逆量子化手段により逆量子化された空間周波数係数に上記空間周波数変換の逆変換である周波数空間変換を施すことにより画素ブロックを取得する周波数空間変換手段と、この画素ブロックを展開することにより原画像データを生成する展開手段と、を有して構成される第１の画像復号化装置と、を具備して構成される第１の画像圧縮伸張処理システムの、上記第１の画像符号化装置に、上記空間周波数変換手段により空間周波数変換を施す前に上記画素ブロックに対して空間変換パラメータにより特定可能な可逆な画素空間変換を施す空間変換手段と、上記空間変換パラメータを上記ヘッダ部分に付加するヘッダ情報追加手段と、を追加することにより得られる、第２の圧縮画像ファイルを生成するための第２の画像符号化装置と、上記第１の画像復号化装置に、上記空間変換パラメータを上記ヘッダ部分から追加して読み出す追加ヘッダ情報読出手段と、この追加ヘッダ情報読出手段により読み出した空間変換パラメータに基づき上記画素空間変換の逆変換を施す逆空間変換手段と、を追加することにより得られる、上記第２の圧縮画像ファイルから原画像データを取得するための第２の画像復号化装置と、を具備した拡張画像圧縮伸張処理システムであって、上記第１の画像復号化装置は、処理対象となる圧縮画像ファイルが上記第２の圧縮画像ファイルである場合には、該第２の圧縮画像ファイルのヘッダ部分に記載されている空間変換パラメータを無視することにより上記原画像データとは異なるデータを復元可能であり、上記第２の画像復号化装置は、上記追加ヘッダ情報読出手段により上記ヘッダ部分から上記空間変換パラメータを読み出すことができない場合には、上記逆空間変換手段による処理を行うことなく第１の画像復号化装置部分による処理のみを行うことにより原画像データを復元するものであることを特徴とする。
【００４３】
第２９の発明による拡張画像圧縮伸張処理システムは、上記第２８の発明による拡張画像圧縮伸張処理システムにおいて、上記第２の画像符号化装置を有する撮像装置と、上記第１の画像復号化装置を有するコンピュータと、をさらに具備したことを特徴とする。
【００４４】
第３０の発明による画像符号化処理方法は、上記第１の発明による画像符号化処理方法において、上記空間変換ステップが少なくとも１つの調整パラメータにより調整され得る画素空間変換を施すステップであり、上記ヘッダ情報追加ステップは、さらに、上記調整パラメータを上記ヘッダ部分に付加するステップであることを特徴とする。
【００４５】
第３１の発明による画像符号化処理方法は、上記第３０の発明による画像符号化処理方法において、上記基本符号化処理方法が、画像データまたは差分画像データを画素ブロックに分割する分割ステップをさらに含むとともに、上記空間周波数変換ステップは、この分割ステップにより分割された画素ブロックに空間周波数変換を施すステップであり、上記空間変換ステップは、上記空間周波数変換ステップを行う前の画素ブロックの少なくとも１つに対して、可逆な画素空間変換を施すステップであることを特徴とする。
【００４６】
第３２の発明による画像符号化処理方法は、上記第３１の発明による画像符号化処理方法において、上記空間変換ステップが、上記画素ブロックを行列Ｍとして表現して、この行列Ｍに対して、逆行列をもつ行列Ａを用いた
Ｍ→ＡＭ
なる可逆な線形行列演算と、逆行列をもつ行列Ｂを用いた
Ｍ→ＭＢ
なる可逆な線形行列演算と、の少なくとも一方を行うことにより、可逆な空間変換を行うステップであることを特徴とする。
【００４７】
第３３の発明による画像符号化処理方法は、上記第３２の発明による画像符号化処理方法において、上記行列Ａおよび行列Ｂが、上記行列Ｍで表現される画素ブロックに対して空間ローパスフィルタを施す行列であることを特徴とする。
【００４８】
第３４の発明による画像符号化処理方法は、上記第３３の発明による画像符号化処理方法において、上記調整パラメータが、上記空間ローパスフィルタのフィルタ強度を調整するためのフィルタ調整パラメータを含むことを特徴とする。
【００４９】
第３５の発明による画像符号化処理方法は、上記第３４の発明による画像符号化処理方法において、上記基本符号化処理方法が、上記空間周波数変換ステップにより得られた変換結果をある量子化幅で量子化する量子化ステップをさらに含み、上記ヘッダ情報生成ステップは、上記量子化ステップにより得られた量子化の結果に基づいて得られるデータに、該データに係る情報をヘッダ部分として付加するステップであって、上記量子化幅は、上記フィルタ調整パラメータに応じて調整されることを特徴とする。
【００５０】
第３６の発明による画像符号化処理方法は、上記第３０の発明による画像符号化処理方法において、上記空間周波数変換ステップにより得られた変換結果が、上記画像データの平均値または差分画像データの平均値に比例するＤＣ係数を含み、上記空間変換ステップにおいて行われる画素空間変換は該ＤＣ係数を不変とする変換であることを特徴とする。
【００５１】
第３７の発明による画像符号化処理方法は、上記第５の発明による画像符号化処理方法と、上記第３３の発明による画像符号化処理方法と、を択一的に選択して行うことを特徴とする。
【発明の効果】
【００５２】
本発明の画像符号化処理方法、画像復号化処理方法、動画圧縮処理方法、動画伸張処理方法、画像符号化処理プログラム、画像符号化装置、画像復号化装置、画像符号化／復号化システム、拡張画像圧縮伸張処理システムによれば、空間周波数変換を施す符号化において符号量を小さくしおよび／またはノイズの発生を抑制することができる、および／または、該符号化が施されたデータを復号化することができる。
【発明を実施するための最良の形態】
【００５３】
本発明の実施例を具体的に説明する前に、以下の説明において用いられる用語について、その語義をより明確にしておく。
【００５４】
まず、画素は、画像を構成する要素であって、画像内における空間的位置（画素位置）を示す情報と、該空間的位置における値（画素値）と、を含むものである。なお、画像は、２次元のユークリッド空間内に画素を離散的に配置して定義される画像に限るものではなく、２次元のリーマン空間内に画素を離散的に配置して定義される画像であっても構わず、より一般的には、２次元のコンパクトな多様体Ｋに画素を離散的に配置して定義される画像であれば良い。
【００５５】
画素群は、画素の集合である。実用上は、空間的位置が隣接する画素の集合としての画素群を扱うことが多いが、これに限るものではない。この画素群は、後述するように、数学的には行列やベクトルとして表現することが可能であり、情報処理的には２次元配列や１次元配列として取り扱うことが可能である。
【００５６】
画素信号、画素データ、またはピクセルデータは、上記画素値のことである。ここに、画素信号は、画素値を処理する際の実際の回路等において、電気信号として取り扱われることをニュアンスとして示している。また、画素データあるいはピクセルデータは、画素値が、コンピュータ等による情報処理において、情報として扱われることをニュアンスとして示している。
【００５７】
画素空間は、２次元のコンパクトな多様体Ｋに画素を離散的に配置して構成される空間である。この画素空間の具体例は、画像全体が挙げられ、また、画像を分割して得られる画像の部分集合である８×８画素ブロック（これは、ＪＰＥＧの符号化／復号化で処理される単位である。）も挙げられる。さらに他の例としては、ＭＰＥＧ、ＭＰＥＧ２、ＭＰＥＧ４、Ｈ．２６４などの符号化／復号化で処理される最小画素ブロック単位が挙げられる。
【００５８】
画素空間変換は、画素空間Ａから画素空間Ｂへの写像であって、離散関数ｆとして定義可能な変換である。実施例においては、この画素空間変換として、ｆの逆関数を定義可能な可逆変換を主として扱う。該画素空間変換の具体例としては、線形可逆マッピングが挙げられ、該線形可逆マッピングのさらに具体的な一例としては線形パーミュテーションが挙げられる。線形可逆マッピングや線形パーミュテーションの具体的な数学表現については、後で実施例において説明する。この画素空間変換は、実施例においては、符号化時には空間周波数変換を実行する前の処理（前処理）として、また、復号化時には周波数空間変換を実行した後の処理（後処理）として、それぞれ行われる。
【００５９】
空間周波数変換は、画素空間から周波数空間への写像である。
【００６０】
直交変換は、内積が定義された空間Ａから、内積が定義された空間Ｂへの変換であって、内積値が変換の前後で保存されるものである。直交変換となっている空間周波数変換の一例としては、離散コサイン変換（ＤＣＴ：Discrete Cosine Transform）が挙げられる。また、アダマール変換（Hadamard transformation）も、直交変換となっている空間周波数変換の一例であり、整数演算が可能となっている。
【００６１】
パーミュテーションは、画素空間（具体例としては、画素ブロック）内における画素の置換えであり、画素空間内の関数となる。画素は、上述したように、画素値と画素位置との各情報が結合したものであり、パーミュテーションは、画素空間内における画素値と画素位置との結合関係を一旦解消して、組み合わせを換えた後に再結合したものであるといえる。例えば画素位置を主体に考えると、任意の画素位置にそれぞれ画素値が対応しているが、パーミュテーションは、ある画素位置の画素値を、他の画素位置の画素値に置き換えることである。なお、パーミュテーションの対象となる最小の画素集合単位をパーミュテーション単位（permutation unit）というが、これは一般には、画素単位そのものとなる。２つのパーミュテーション単位の交換は、基本パーミュテーション（primitive permutation）により行われる。
【００６２】
その他の用語については、実施例中において説明するか、または一般的な言葉の定義を採用するものとする。
【００６３】
以下、図面を参照して本発明の実施例を説明する。
【実施例１】
【００６４】
図１から図２７は本発明の実施例１を示したものであり、図１は拡張されたＪＰＥＧ符号器の構成を示すブロック図、図２８は従来のＪＰＥＧ符号器の構成を示すブロック図である。
【００６５】
なお、拡張されたＪＰＥＧを、以下では適宜、ＪＰＥＧｅｘｔ、ＪＰＥＧｅ、あるいはＪＥＸなどと記載することがある。
【００６６】
また、本実施例は、画像符号化処理方法、画像復号化処理方法、動画圧縮処理方法、動画伸張処理方法、画像符号化処理プログラム、画像符号化装置、画像復号化装置、画像符号化／復号化システム、拡張画像圧縮伸張処理システムの何れとしても適用し得るものとなっている。
【００６７】
この拡張ＪＰＥＧ符号器は、分割手段たるブロック化部１と、符号化制御部２と、マーカ生成部３と、空間変換手段たる列操作判定部４と、空間変換手段たる行操作判定部５と、ヘッダ情報追加手段たるヘッダ生成部６と、空間周波数変換手段たる直交変換部７と、量子化手段たる量子化部８と、量子化手段たる量子化テーブル生成部９と、エントロピー符号化手段たるエントロピー符号化（entropy coding）部１０と、圧縮画像ファイル生成手段でありヘッダ情報生成手段たる合成部１３と、を有して構成されている。
【００６８】
このように図１に示す拡張ＪＰＥＧ符号器は、図２８に示す従来のＪＰＥＧ符号器に対して、符号化制御部２と、列操作判定部４と、行操作判定部５と、ヘッダ生成部６と、を付加したものとなっている。また、図２８に示す従来の合成部１３は、符号化データとマーカとを合成するものであったが、この図１に示す合成部１３は、後述するように、さらにＪＥＸ用のヘッダ情報も合成するものとなっている。
【００６９】
上記エントロピー符号化部１０は、さらに、ジグザグスキャン部１１と、ハフマン符号化（Huffman coding）部１２と、を含んで構成されている。
【００７０】
上記ブロック化部１は、画像データを入力して、８×８画素でなるブロック単位に区分するものである。
【００７１】
上記符号化制御部２は、符号化時の圧縮度に関する設定値を読み込んで、上記列操作判定部４および行操作判定部５に各必要な設定値を送信するものである。
【００７２】
上記マーカ生成部３は、合成部１３でファイルを合成する際に必要なマーカを生成するものである。
【００７３】
上記列操作判定部４は、上記ブロック化部１から読み込んだ８×８画素ブロックの画像データに関して、列方向の画素データ並びについて、上記符号化制御部２から送信された設定値を用いながら所定の可逆な操作を行うか否かを判定し、行うと判定したときには該操作を実行するものである。
【００７４】
上記行操作判定部５は、上記列操作判定部４から出力される８×８画素ブロックの画像データに関して、行方向の画素データ並びについて、上記符号化制御部２から送信された設定値を用いながら所定の可逆な操作を行うか否かを判定し、行うと判定したときには該操作を実行するものである。
【００７５】
なお、ここでは列操作判定部４による操作を行ってから行操作判定部５による操作を行う順序としているが、後述するように、行に関する操作と列に関する操作は可換であるために、行操作判定部５による操作を行ってから列操作判定部４による操作を行う順序としても構わない。
【００７６】
上記ヘッダ生成部６は、上記列操作判定部４の操作による画像の変化と、上記行操作判定部５の操作による画像の変化と、を後の復号化時に元の状態に復元するために必要なヘッダ情報を生成するものである。
【００７７】
上記直交変換部７は、上記行操作判定部５から出力される８×８画素ブロックの画像データを、レベルシフトして０をダイナミックレンジの中心とする正負の画像データに変換した後に、ＤＣＴ（離散コサイン変換）により、空間周波数変換を行うものである。なお、レベルシフトを行うことにより、画素ブロックのデータの平均値が０に近付くために、後述するＤＣＴを行ったときに、いわゆるＤＣ係数を小さくすることができる効果がある。そして、直交変換部７は、変換後の６４個のデータを、再び８×８配列のブロックデータとして出力する。
【００７８】
上記量子化部８は、直交変換部７から出力される８×８配列のブロックデータの各要素を、同様の８×８配列でなる量子化テーブルデータの各要素でそれぞれ除算し、端数を切り捨てることにより、画素毎に異なる量子化幅で量子化を行うものである。この量子化テーブル（quantization table）は、空間周波数変換された８×８ブロック内の要素をそれぞれ量子化するための８×８の量子化係数からなるテーブルである。
【００７９】
上記量子化テーブル生成部９は、量子化部８で用いる量子化テーブルデータを生成するものであり、よく知られているように、ＤＣ係数や低周波のＡＣ係数については比較的小さい値のデータを生成し、高周波のＡＣ係数については比較的大きい値のデータを生成する。
【００８０】
上記ジグザグスキャン部１１は、量子化部８から出力される量子化後の８×８配列のブロックデータを、ＤＣ係数からＡＣ係数の高周波側へ向けてジグザグにスキャンし、６４個の１次元配列のデータとして読み出すものである。
【００８１】
上記ハフマン符号化部１２は、上記ジグザグスキャン部１１によるスキャン結果に基づいて、所定のハフマン符号化テーブルを参照することにより、可変長符号化を行い、データ量の圧縮を図るものである。
【００８２】
上記合成部１３は、ハフマン符号化部１２により符号化された画像データと、ヘッダ生成部６により生成されたヘッダ情報と、マーカ生成部３により生成されたマーカと、を１つの画像ファイル（ＪＰＥＧ拡張符号化された画像ファイル）として合成し出力するものである。
【００８３】
次に、図２は拡張されたＪＰＥＧ復号器の構成を示すブロック図、図２９は従来のＪＰＥＧ復号器の構成を示すブロック図である。
【００８４】
この拡張ＪＰＥＧ復号器は、ヘッダ情報読出手段たるマーカ判定部２１と、分割部２２と、エントロピー復号化手段たるエントロピー復号化部２３と、逆量子化手段たる逆量子化部２６と、逆量子化手段たる量子化テーブル生成部２７と、周波数空間変換手段たる直交逆変換部２８と、追加ヘッダ情報読出手段たるヘッダ復号部２９と、復号化制御部３０と、逆空間変換手段たる行操作部３１と、逆空間変換手段たる列操作部３２と、展開手段たるブロック展開部３３と、を有して構成されている。
【００８５】
このように図２に示す拡張ＪＰＥＧ復号器は、図２９に示す従来のＪＰＥＧ復号器に対して、ヘッダ復号部２９と、復号化制御部３０と、行操作部３１と、列操作部３２と、を付加したものとなっている。また、図２９に示す従来の分割部２２は、符号化データを画素ブロックに対応する部分に分割するものであったが、この図２に示す分割部２２は、後述するように、さらにＪＥＸ用のヘッダ情報をヘッダ復号部２９へ出力するものとなっている。
【００８６】
上記エントロピー復号化部２３は、さらに、ハフマン復号化部２４と、ジグザグ展開部２５と、を含んで構成されている。
【００８７】
上記マーカ判定部２１は、ＪＰＥＧ拡張符号化された画像ファイルに含まれる全てのマーカの判定を行うものである。
【００８８】
上記分割部２２は、マーカ判定部２１による判定結果に基づいて、上述した８×８画素ブロックに対応する符号化部分を抽出するものである。
【００８９】
上記ハフマン復号化部２４は、分割部２２から出力される復号化部分を、ハフマン符号化テーブルを参照することにより、復号化するものである。
【００９０】
上記ジグザグ展開部２５は、ハフマン復号化部２４により復号化されたデータをジグザグに展開して、８×８配列のブロックデータとするものである。
【００９１】
上記逆量子化部２６は、ジグザグ展開部２５から出力される８×８配列のブロックデータの各要素に、同様の８×８配列でなる量子化テーブルデータの各要素をそれぞれ乗算することにより、逆量子化を行うものである。
【００９２】
上記量子化テーブル生成部２７は、逆量子化部２６で用いる量子化テーブルデータを生成するものであり、ここで生成される量子化テーブルは、上記図１に示した量子化テーブル生成部９により生成される量子化テーブルと同一である。
【００９３】
上記直交逆変換部２８は、逆量子化部２６により逆量子化された８×８配列のブロックデータに、周波数空間変換である逆ＤＣＴを施すことにより、８×８画素ブロックの画像データを生成するものである。
【００９４】
上記ヘッダ復号部２９は、ヘッダ内に、拡張されたＪＰＥＧに係るヘッダ情報が記録されているか否かを判定するものである。
【００９５】
上記復号化制御部３０は、ヘッダ復号部２９により、拡張されたＪＰＥＧに係るヘッダ情報が記録されていると判定されたときに、画像を復元するために必要なヘッダ情報を読み出して、行操作部３１や列操作部３２へ該ヘッダ情報を出力して制御するものである。すなわち、復号化制御部３０は、上記列操作判定部４の操作による画像の変化を復元するために必要なヘッダ情報が記録されている場合には、該ヘッダ情報を行操作部３１へ出力し、上記行操作判定部５の操作による画像の変化を復元するために必要なヘッダ情報が記録されている場合には、該ヘッダ情報を列操作部３２へ出力する。
【００９６】
なお、ここでは、行操作部３１による操作を行ってから列操作部３２による操作を行う順序としているが、上述したように、行に関する操作と列に関する操作は可換であるために、列操作部３２による操作を行ってから行操作部３１による操作を行う順序としても構わない。
【００９７】
上記ブロック展開部３３は、ブロック単位で復号化された画像データを、元の１枚の画像データとして展開するものである。
【００９８】
次に、図３は、符号化処理を示すフローチャートである。この図３に示す処理は、上記図１に示したような構成の符号器によるハードウェア的な処理であっても良いが、これに限らず、コンピュータ等において符号化プログラムを実行することによりソフトウェア的に処理するものであっても構わない。
【００９９】
この処理を開始すると、まず、処理対象となる画像データをブロック化する（ステップＳ１）。図７は、ＶＧＡ画像をブロック化する例を示す図である。この図７に示す例では、６４０×４８０画素でなるＶＧＡ画像を、８×８画素ブロックに分割しており、８０×６０＝４８００個の８×８画素ブロックが生成される。
【０１００】
図８は、８×８画素ブロックの画素構成を示す図である。生成された８×８画素ブロックに関して、０行目から７行目の行番号と、０列目から７列目の列番号と、を付し、画素の座標を（列番号，行番号）として表すものとする。このときには、左上角に位置する画素の座標は（０，０）、右上角に位置する画素の座標は（７，０）、左下角に位置する画素の座標は（０，７）、右下角に位置する画素の座標は（７，７）となる。そして、座標（ｋ，ｌ）における画素データをｆ（ｋ，ｌ）で表すことにする。
【０１０１】
なお、ここでは、縦方向および横方向に配列された正方形状または長方形状の画素が配列された画像を例に挙げたが、本実施例で取り扱うことが可能な画像は、これに限るものではない。
【０１０２】
図９は、６角形の画素を敷き詰めることにより２次元状に展開される画像の例を示す図である。この図９に示すような画像であっても、該図９に示すように画素位置ａ〜ｐをとることにより、図１０に示すような行方向および列方向に配列される画素データを取得して、後述するような各種の処理を行うことが可能となる。ここに、図１０は、図９に示した配置の画素データを行方向および列方向に配列した例を示す図である。
【０１０３】
さらに、より一般には、曲がった面に配列された画素、例えば昆虫の複眼のように配列された画素であっても構わないし、各画素が同一形状である必要もない。すなわち、２次元のコンパクトな多様体に離散的に配置された画素群について、広く取り扱うことが可能である。
【０１０４】
再び図３の説明に戻って、次に、後で図５を参照して詳しく説明するような拡張ＪＰＥＧ符号（ＪＥＸ符号）化の処理を行う（ステップＳ２）。ここでは、後段の直交変換を行った後に高周波成分が小さくなるように、画素データの並べ替え（パーミュテーション）を行う。この並べ替えの処理は、上述したように、可逆な処理となっているために、復号化の際にデータが失われることはない。
【０１０５】
続いて、ＤＣＴによる直交変換を行う（ステップＳ３）。まず、画素データｆ（ｋ，ｌ）を、次の数式１に示すようなｆklとして表現する。ここに、画素データｆklは、０から（２の８乗から１を引いた値）までの値を取り得る８ビットのデータとなっている。 
［数１］
2006050516.tif 000003
【０１０６】
ＤＣＴは、この画素データｆklに対して、因子Ｋを用いて以下の数式２に示すような演算を行うことにより、周波数における値Ｄに変換することで、行われる。 
［数２］
2006050516.tif 000004
ここに、各変数に付された添え字の内の、上付の添え字は周波数を表し、下付の添え字は空間を表している。
【０１０７】
また、直交変換に用いられる因子Ｋは、次の数式３および数式４により表される。 
［数３］
2006050516.tif 000005
［数４］
2006050516.tif 000006
【０１０８】
なお、上記数式２は、行列表現をとることにより、次のような行列演算として表される。 
［数５］
2006050516.tif 000007
ここに、右辺の最後のＫの右肩に付けられた「Ｔ］は、Ｋの転置を意味している。
【０１０９】
具体的には、成分Ｄ00は、コサイン関数の角度の項が０になるために、次の数式６により算出される。 
［数６］
2006050516.tif 000008
このように成分Ｄ00は、８×８画素ブロック内の画像データの平均値を８倍したものとなっている。
【０１１０】
また、成分Ｄ00以外の成分は、コサイン関数の角度の項が存在して、これは周波数に対応するものであるために、８×８画素ブロック内の画像データの変化を、それぞれの周波数成分毎に取り出したものに対応している。具体的には、例えば成分Ｄ10は、次の数式７により算出される。 
［数７］
2006050516.tif 000009
ここに、各ベクトルＶ，Ｗは、数式７における次の部分を各表している。 
［数８］
2006050516.tif 000010
［数９］
2006050516.tif 000011
これらの数式８および数式９を参照すれば分かるように、ベクトルＷのｋ番目の要素は、ｋ番目の列の画素データの和である。また、ベクトルＶのｋ番目の要素は、ｋの不連続関数であって、厳密な単調減少関数となっている。このように、成分Ｄ10と、さらに特に数式は示さないが成分Ｄ01とは、ベクトルの内積として表現することも可能となっている。
【０１１１】
このような演算を順次行うことにより、Ｄ00からＤ77までの６４個のＤＣＴ係数が算出される。
【０１１２】
再び図３の説明に戻って、直交変換を行った後は、次に、量子化を行う（ステップＳ４）。この量子化は、上述したように算出された６４個のＤＣＴ係数を、それぞれ異なる係数（Ｑ係数）により除算して、小数点以下の端数を捨てることにより行われる。この量子化に用いる係数は、所望の値を用いることが可能であり、使用する係数の組を量子化テーブルとして予め用意しておく。一般的に、上記成分Ｄ00などのＤＣ係数や、上記成分Ｄ10，Ｄ01などの比較的低周波のＡＣ係数は、画像に関する情報の概要を含んでいるために、比較的小さなＱ係数を用いて量子化し、なるべく元の情報が正確に保存されるようにする。これに対して、例えば成分Ｄ77などの高周波のＡＣ係数は、省略しても画像全体の視覚的効果に与える影響が少ないために、比較的大きなＱ係数を用いて量子化される。
【０１１３】
こうして量子化されたＤＣＴ係数を、００成分から７７成分へジグザグにスキャンすることにより、６４個の１次元配列のデータに変換する（ステップＳ５）。
【０１１４】
そして、いわゆるハフマン符号化により、可変長符号化を行う（ステップＳ６）。このハフマン符号化は、出現頻度の高い値に短いビット長の符号を与え、出現頻度の低い値に長いビット長の符号を与えることにより、データの圧縮を行うものであるが、その方式はやや複雑であり、本実施例の発明とは直接関わるものではないために、詳細は省略する。ただし、ＤＣ係数とＡＣ係数はそれぞれ区別して符号化され、ＡＣ係数については、連続する０のＡＣ係数をラン長とし、このラン長で示される０の後のＡＣ係数を１０に分類されるカテゴリの何れかのカテゴリ値として、それぞれ符号化することについては述べておく。
【０１１５】
このような処理により符号化されたデータが、ＪＰＥＧ拡張符号データとなり、その後は上記合成部１３によりマーカやヘッダ情報とともにファイル化されることになる。なお、ヘッダには、ＪＥＸ符号に係るヘッダ情報の他に、上述した量子化テーブルやＤＣハフマン符号化テーブル、ＡＣハフマン符号化テーブルなども記録される。
【０１１６】
続いて、図４は、復号化処理を示すフローチャートである。この図４に示す処理は、上記図２に示したような構成の復号器によるハードウェア的な処理であっても良いが、これに限らず、コンピュータ等において復号化プログラムを実行することによりソフトウェア的に処理するものであっても構わない。
【０１１７】
この処理を開始すると、処理対象のＪＰＥＧ拡張符号をマーカを参照して８×８画素ブロックの画素データに対応する符号部分に分割した後に、各符号部分毎に、ヘッダに記録されているハフマン符号化テーブルを参照して、ハフマン復号化する（ステップＳ１１）。
【０１１８】
その後、６４個の１次元配列の係数を、ジグザグに展開して、８×８配列の２次元係数に変換する（ステップＳ１２）。
【０１１９】
そして、ヘッダに記録されている量子化テーブルを参照することにより、逆量子化を行う（ステップＳ１３）。
【０１２０】
続いて、逆ＤＣＴ（ＩＤＣＴ）を行うことにより、周波数における係数から、空間における画素値に変換する（ステップＳ１４）。このときには、０をダイナミックレンジの中心とする正負の画像データを、０〜（２の８乗−１）までの正の８ビットデータに変換する逆レベルシフトの処理も行われる。
【０１２１】
次に、ＪＥＸ符号化が行われた画像ファイルであるか否かを、マーカにより判定する（ステップＳ１５）。
【０１２２】
ここで、ＪＥＸ符号化が行われた画像ファイルであると判定された場合には、後で詳しく説明するようなＪＥＸ復号化の処理を行う（ステップＳ１６）。
【０１２３】
このステップＳ１６の処理を終了するか、または上記ステップＳ１５においてＪＥＸ符号化が行われておらず、通常のＪＰＥＧ画像ファイルであると判定された場合には、８×８画素ブロックの画像データを元の画像ファイルにおける所定位置に展開する処理を行う（ステップＳ１７）。このブロック展開が、全ての８×８画素ブロックについて行われると、１枚の画像が復元されることになる。
【０１２４】
次に、図５は、ＪＥＸ符号化処理を示すフローチャートである。この図５は、上記図３のステップＳ２において行われる処理の詳細を示したものである。
【０１２５】
この処理を開始すると、上記ステップＳ１においてブロック化された８×８画素ブロックの画素データｆ（ｋ，ｌ）を入力する（ステップＳ２１）。上記図３のステップＳ１で説明したように、１つの画像を複数のブロックに分割して処理を行うために、ここでは分割された内のｎ番目の画素ブロックについて処理を行うが、このｎを順次変更して、全ての画素ブロックについての処理を行うことになる。
【０１２６】
次に、画素データｆ（ｋ，ｌ）を次の数式１０により、列毎に、列内で（行番号を変化させる方向に）加算して、各ｉ列における加算データｓｃ（ｉ）を算出するとともに、画素データｆ（ｋ，ｌ）を次の数式１１により、行毎に、行内で（列番号を変化させる方向に）加算して、各ｊ行における加算データｓｒ（ｊ）を算出する（ステップＳ２２）。 
［数１０］
2006050516.tif 000012
［数１１］
2006050516.tif 000013
【０１２７】
続いて、８個の加算データｓｃ（ｉ）を降べきの順に並べるためのｉの順列ｎｃ（ｉ）を算出するとともに、８個の加算データｓｒ（ｊ）を降べきの順に並べるためのｊの順列ｎｒ（ｊ）を算出する（ステップＳ２３）。具体的には、例えば、ｓｃ（０）〜ｓｃ（７）までのデータ配列と、０〜７までの値の配列と、を例えばコンピュータのメモリ上の領域に設けておき、ｓｃ（０）〜ｓｃ（７）までのデータ配列に、プログラミングで公知となっているソートアルゴリズムの何れかを適用することにより、降べきの順にデータを並べ替える。このときに、ｓｃ（０）〜ｓｃ（７）までのデータ配列に適用したデータの並べ替えを、全く同様に０〜７までの値の配列に適用することにより、降べきのソートが完了したときの配列の状態が、ｉの順列ｎｃ（ｉ）となる。ｊの順列ｎｒ（ｊ）についても、これと同様に処理することにより、求められる。
【０１２８】
なお、ここでは加算データｓｃ（ｉ）および加算データｓｒ（ｊ）を降べきの順に並べているが、昇べきの順に並べるようにしても構わない。さらに、降べき、昇べきの各順に限らず、画像の周波数を低くするような並べ換えであれば、広く採用することが可能である。
【０１２９】
その後、８×８画素ブロックにおける列のデータを並べ換える処理が必要であるか否かを判断する。具体的には、閾値Ｔｈｃを用いた次の数式１２、
［数１２］
ｓｃ（ｎｃ（０））−ｓｃ（ｎｃ（７））≧Ｔｈｃ×８
が満たされ、かつ、閾値Ｎｃ（典型的な値の例としては、「４」が挙げられる。）を用いた次の数式１３、
［数１３］
Ｃｈｃ≧Ｎｃ
が満たされているか否かを判断する（ステップＳ２４）。
【０１３０】
ここに、ｉの順列ｎｃ（ｉ）は、加算データｓｃ（ｉ）を降べきの順に並べるための順列となっているために、ｓｃ（ｎｃ（０））は、必ずｓｃ（ｎｃ（７））よりも大きいかまたは等しく、つまり数式１２の左辺は必ず０または正である。そして、この数式１２の左辺は、列内の画素信号の和が、列が異なると最大どの程度ばらつくかを示す指標となっている。従って、この数式１２の左辺が小さい場合には、異なる列同士の（列内で加算した）信号のばらつきがほとんどないことになるために、列交換を行う必要がないと判断するようにしている。
【０１３１】
また、上記閾値Ｔｈｃは、例えば次の数式１４に示すように決定される。 
［数１４］
2006050516.tif 000014
ここに、ｎは、画素データのダイナミックレンジを示すビット値であり、８ビットの画素データの場合にはｎ＝８である。また、ｎから減算される数は、ここでは３となっているが、これは画素ブロックが８×８画素で構成されていて、列方向の画素並びが８画素、つまり（２の３乗）画素であることに起因する。従って、例えば１６×１６画素のブロックを用いる場合には、ｎから減算される数は４となる。ただし、これは閾値Ｔｈｃを求める方法の一例を記載したものであり、これに限定されるものでない。
【０１３２】
なお、後述するステップＳ２８において用いられる閾値Ｔｈｒは、この数式１４に示すように、通常は閾値Ｔｈｃと同一の値を採用するが、これも一例であって、閾値Ｔｈｃとは異なる値を用いるようにしても構わない。例えば、特定方向に相関性をもつような画像の場合には、閾値Ｔｈｃと閾値Ｔｈｒとを異ならせることが考えられる。
【０１３３】
さらに、ここでは全ての画素ブロックについて同一の閾値Ｔｈｃ、あるいは同一の閾値Ｔｈｒを用いているが、これに限らず、画素ブロック毎に異なる閾値を用いるようにしても構わない。
【０１３４】
そして、上記判定値Ｃｈｃ（および後述する判定値Ｃｈｒ）は、次の数式１５により算出される。 
［数１５］
2006050516.tif 000015
【０１３５】
この判定値Ｃｈｃ（および判定値Ｃｈｒ）は、パーミュテーションの活性度に対する指標ともいうべきものである。つまり、判定値Ｃｈｃ＝０の場合には、すでに、左から右へ行く（列番号が増加する）に従って、列内で（行番号が変化する方向に）加算した画素値が小さくなっていることになるために、列の交換が不要であることが分かる。また、判定値Ｃｈｃが大きくなるに従って、交換するべき列の数、もしくは交換先と交換元との列番号の差、が大きくなっていると推定される。
【０１３６】
そして、上記閾値Ｎｃは、活性度の下限値を表している。例えば、図１１に示すような順列ｎｃ（ｉ）が得られたとする。図１１は、順列ｎｃ（ｉ）に対して得られる判定値Ｃｈｃを計算するために必要な各要素の例を示す図表である。図示のように、より遠い列への移動が行われると、より大きな値が得られる。このような結果を用いて、数式中のウェイトＷを例えば１としたときに判定値Ｃｈｃを算出すると、
Ｃｈｃ＝４＋１＋１＋０＋４＋１＋１＋２＝１４
となる。
【０１３７】
なお、このウェイトＷの取り方に応じて、判定値Ｃｈｃとして得られる値は異なる。具体的には、図１２に示すように、ウェイトＷを１としたときに、同一の判定値Ｃｈｃ＝８が得られる２種類のｎｃ（ｉ）が、ウェイトＷを４とすると、一方の判定値Ｃｈｃは約４．８となり、他方の判定値Ｃｈｃは約１．７となって、相違が現れる。ここに図１２は、ウェイトＷを変えたときの判定値の変化の様子を示す図表である。このように、ウェイトＷ＝１の場合には、交換するべき列の総数と、交換先と交換元の列番号の差と、が同等に扱われている。これに対して、ウェイトＷを大きくすると、交換するべき列の総数よりも、交換先と交換元との列番号の差を、より重く扱うことになる。こうして、ウェイトＷを大きくすると、より遠くの列との並べ換えが行われたときに、近くの列同士の並べ換えのみが行われたときよりも、より大きな判定値Ｃｈｃが得られる傾向があることが分かる。交換先と交換元との列番号の差が大きいほど、列交換により絵柄が大きく崩れることになるために、ウェイトＷを大きくすることは、絵柄の崩れに対する判断をより重んじることに該当する。このウェイトＷは、上記符号化制御部２への圧縮度設定により、必要に応じて設定することができるようになっている。そして、ウェイトを例えば「１」に設定すると、演算が簡単になって処理の負荷を軽減することができる効果がある。
【０１３８】
なお、上記ステップＳ２４においては、２つの判定値に対して、下限だけを判定するようにしたが、上限についての判定をさらに行うようにすることも可能である。すなわち、上記２つの判定値があまり大きな値であると、パーミュテーションを実施したときに、画素ブロック内の絵柄が大きく崩れることになる。この場合には、ＪＥＸファイルを従来のＪＰＥＧデコーダで復元すると、ほとんどブロック単位でしか画像を再現することができない。従って、従来のＪＰＥＧ復号化との略互換性を重要視する場合には、上限を設けるようにすると良い。このような上限を設けることにより、ＪＥＸファイルを従来のＪＰＥＧデコーダで復元したときにも、画素ブロック内の絵柄をある程度再現することが可能となる。
【０１３９】
上記ステップＳ２４において、条件が満たされると判定された場合には、列に関するパーミュテーションが行われたことを示すデータＰｃに１を代入する（ステップＳ２５）。このデータＰｃは、後でヘッダ情報として画像ファイルのヘッダに記録されるものである。
【０１４０】
そして、ｆ（ｋ，ｌ）の列の並べ換えを実際に行う（ステップＳ２６）。ここでは、ｆ（ｋ，ｌ）のデータを一旦他のメモリ領域等に退避させた後に、該ｆ（ｋ，ｌ）のデータ位置に、ｆ（ｎｃ（ｋ），ｌ）のデータを書き込む処理を行う。このような処理を繰り返して、８×８画素ブロックのデータ配列が、
ｆ（ｎｃ（０），ｌ），ｆ（ｎｃ（１），ｌ），…，ｆ（ｎｃ（７），ｌ）
となるように並べ換えを行う。
【０１４１】
この並べ換えは、以下に説明するような線形パーミュテーション（linear permutation）の具体的な例となっている。
【０１４２】
まず、図８に示すような８×８画素ブロックの画素データｆ（０，０）〜ｆ（７，７）を、次の数式１６のような８×８の行列Ｍとして表現する。 
［数１６］
2006050516.tif 000016
【０１４３】
なお、ここでは８×８画素ブロックを、そのまま自然に解釈して、８×８の正方行列として表現したが、行列表現としてはこれに限るものではない。例えば、次の数式１７に示すように、４×１６の非正方行列Ｍ’として表現しても構わない。 
［数１７］
2006050516.tif 000017
【０１４４】
この数式１７に示す行列表現は、画素データを偶数行と奇数行とに分割する表現となっており、１フレームが偶数フィールドと奇数フィールドとに分割されるインターレースの画像データを扱うときに、利点が得られる表現である。つまり、画像を高い効率で圧縮するためには、隣接する画素同士に高い相関性があることが望ましい。従って、相関性が高いと考えられるフィールド単位で画素データを扱うことにより、より効率的なデータの符号化を図ることが可能であると考えられるためである。この数式１７に示したような４×１６の非正方行列に対する行列演算は、４×４行列を左から掛けることにより行の演算を行い、１６×１６行列を右から掛けることにより列の演算を行うことになる。そして、このような行列表現を行えば、奇数行（奇数ライン）から構成される４画素からなる列と、偶数行（偶数ライン）から構成される４画素からなる列と、の間の列変換も可能となる。
【０１４５】
さらに、他の行列表現の例としては、次の数式１８に示すＭ”のようなものが挙げられる。 
［数１８］
2006050516.tif 000018
【０１４６】
この数式１８に示した行列表現は、１行６４列の行列、つまり６４次元ベクトルとなっている。このような表現を用いたベクトルに対して、行列による演算を行うと、６４行６４列の巨大な行列演算を行うことになり、演算処理が重くなったり時間を要したりする不利益がある反面、画素に対する最も自由度の高い任意の演算を行うことが可能であるという利点がある。
【０１４７】
このような行列Ｍに対する任意の可逆な行列演算は、次の数式１９に示すように表現される。 
［数１９］
Ｍ  →  Ａ・Ｍ・Ｂ
ここに、Ａ，Ｂは、それぞれ逆行列をもつ行列である。そして、逆方向の演算を行う場合には、左からＡの逆行列を掛け、右からＢの逆行列を掛ければ良い。なお、この行列演算は、行列Ｍが正方行列であるか非正方行列であるかを問わず、適用可能な演算となっている。
【０１４８】
この数式１９に示す行列演算を、画像データとしての画素ブロックに適用するためには、特に、ＪＰＥＧの前処理として確実に適用するためには、さらに、演算後の行列成分が、画素値のダイナミックレンジ［０〜（２の８乗−１）］を満たす必要がある。この条件と、必要条件である行列Ａおよび行列Ｂが可逆であるという条件をまとめて、十分条件として言い換えると、次のようになる。
【０１４９】
まず、行列Ａに関しては、
（Ａ１）  行列Ａは逆行列をもつ（可逆である）。 
（Ａ２）  行列Ａの各要素ａは、０≦ａ≦１を満たす。 
（Ａ３）  行列Ａの各要素ａの行方向の総和Ｓｕｍａは、０≦Ｓｕｍａ≦１を満たす。
【０１５０】
次に、行列Ｂに関しても同様に、
（Ｂ１）  行列Ｂは逆行列をもつ（可逆である）。 
（Ｂ２）  行列Ｂの各要素ｂは、０≦ｂ≦１を満たす。 
（Ｂ３）  行列Ｂの各要素ｂの列方向の総和Ｓｕｍｂは、０≦Ｓｕｍｂ≦１を満たす。
【０１５１】
上記条件Ａ３と条件Ｂ３に関しては、総和が小さいほど、つまり１から離れて０に近付くほど、画素ブロック全体の信号値を抑圧していることになるために、信号間の差分が減少して、つまりローパスフィルタ（ＬＰＦ）効果が強まることになる。しかし、画素ブロック全体の信号値を抑制すると、ＤＣＴ係数も全周波数成分に渡って抑制されるために、量子化ステップによる誤差が増大する。
【０１５２】
ＪＰＥＧの場合、量子化ステップは、より高周波成分になるにつれて大きくなるために、このような量子化誤差が増大する影響は高周波成分になるほど大きくなる（後述する、特開２０００−３０８０５８号公報に関する量子化誤差の説明を参照。なお、この量子化誤差の説明は、説明を簡単にするために単純な画素ブロックの割り算を例に挙げているが、該量子化誤差に関する結論は、一般的な行列Ａ，Ｂの要素値が減少することによる量子化誤差の増大にも適用することができるものである。）。従って、条件Ａ３に示した総和Ｓｕｍａおよび条件Ｂ３に示した総和Ｓｕｍｂは、各々なるべく１に近い値となるように設定することが望ましい。
【０１５３】
さらに、条件Ａ２，Ｂ２における行列要素ａ，ｂの値が小さくなるほど、一連の符号化処理と一連の復号化処理とを経た結果の演算誤差が増加する。これは、行列Ａおよび行列Ｂが可逆であるにも関わらず、実際の画素信号がデジタル化されているためである。すなわち、行列要素ａ，ｂが０に近付くにつれて、逆行列のある要素は、１／ａまたは１／ｂ相当の値（これらは何れも１よりも大きい）になって、つまり増加する。従って、行列要素ａまたはｂが小さくなるほど、行列演算結果の小数点を四捨五入することによる演算誤差は、逆行列演算を行う際に増加する。
【０１５４】
このような理由から、演算子となる行列における列内の総和または行内の総和をなるべく１に近い値にすることが望ましいとともに、行列要素ａ，ｂ自体もなるべく１に近い値にする方が、デジタル演算の精度が良いということができる。
【０１５５】
上述したような条件Ａ１〜Ａ３または条件Ｂ１〜Ｂ３を満たすような行列の例を幾つか挙げることができる。第１の例はパーミュテーション行列、第２の例は、対角要素を含まない左下の三角配列部分の要素が全て０になる行列（より正確には、以下に説明する。）である。これらの２つの例について簡単に説明しておく。
【０１５６】
まず、第１の例におけるパーミュテーション行列は、各要素が、０または１の何れかの値をとり、各行の要素の総和が常に１、かつ各列の要素の総和が常に１、となっている。一般的なパーミュテーション行列の例を挙げると、例えば次の数式２０に示すようになる。 
［数２０］
2006050516.tif 000019
【０１５７】
従って、このようなパーミュテーション行列を用いた線形可逆変換においては、上述したＬＰＦ効果、およびこれに伴う量子化誤差の発生が最小であるといえる。このパーミュテーション行列は、各行および各列に単一の非ゼロ係数１が存在するような構造になっているために、実際に画素ブロックを表す行列にパーミュテーション行列を掛ける演算を行う場合には、行列演算を、画素ブロックを表す行列の行と列の入れ替えとして実行すればよい。なお、このパーミュテーション行列は、本実施例でＤＣＴの前処理として用いられる行列であるために、後で改めてより詳しく説明する。
【０１５８】
次に、第２の例の行列は、次のようなものである。この行列は、対角要素よりも左下の三角配列部分の各要素が全て０であり、対角要素を含む右上の三角配列部分の要素が条件Ａ２および条件Ａ３を満たすように選択され、かつ、対角要素が全て非ゼロとなる行列である。このような行列は、具体的には、次の数式２１に示すように表される。 
［数２１］
2006050516.tif 000020
ここに、０＜ａi ≦１  （ｉ＝０，…，７）、０≦ｂij＜１（ｉ＝１，…，７、ｊ＝０，…，６、ｊ＜ｉ）であり、さらに、行列Ｂの場合は次の数式２２を、行列Ａの場合には次の数式２３を、それぞれ満たすものとなっている。 
［数２２］
2006050516.tif 000021
［数２３］
2006050516.tif 000022
【０１５９】
この行列のさらに具体的な一例を挙げると、次の数式２４に示すようになる。 
［数２４］
2006050516.tif 000023
【０１６０】
このような、対角要素が全て非ゼロで、かつ左下の三角配列部分の要素が全て０になる行列は、行列式が対角要素全ての積となるために、つまり行列式≠０で、可逆であることが知られている。
【０１６１】
こうした行列は、一般に、高周波成分を低減する機能を有し、かつ可逆であるために、可逆のＬＰＦ機能を有しているということができる。このような行列を用いて、画素ブロックを表す行列Ｍを空間変換する場合には、数式上だけでなく、実際に行列演算を実行する必要があるために、行列演算機能を集積回路（ＩＣ）として実装することにより、高速演算処理が可能となるように構成することが望ましい。さらに、このような行列を上記パーミュテーション行列と組み合わせて実行する場合にも、行列演算として実行するのが最も効率が良い。
【０１６２】
次に、上記数式１９に示した行列Ａまたは行列Ｂは、逆行列をもつために、次に示すような特徴がある。
【０１６３】
すなわち、逆行列をもつ任意の行列は、次の数式２５に示すような基底行列Ｆklおよび数式２６に示すような基底行列Ｆk （α）の組み合わせの積により、
Ａ＝…Ｆkl…Ｆj （α）…Ｆmn…Ｆi （β）…
などのように表現可能であることが、数学的に示されている（例えば、Max Koecher,"Lineare Algebra und analytische Geometrie",Springer Verlag(Berlin),1985 を参照）。 
［数２５］
2006050516.tif 000024
［数２６］
2006050516.tif 000025
ただし、数式２５に示したＦklにおける非対角成分の１は、ｋ行ｌ列（ここでは、２つの添え字の内の左側の添え字が行番号を表し、右側の添え字が列番号を表していて、他の行列部分の添え字とは逆になっているので要注意。）の要素であり、数式２６に示したＦk （α）における対角成分のαは、ｋ行ｋ列の要素である。さらに、Ｆk （α）は逆行列をもつ必要があるために、αは非ゼロの実数となる。
【０１６４】
数式２５に示す基底行列Ｆklは、行列Ｍに右から掛ける（つまり、Ｍ・Ｆkl）と、行列Ｍのｋ列に、該行列Ｍのｌ列の要素をそれぞれ加算して、その結果を新たなｌ列とする演算になる。
【０１６５】
また、行列Ｍに基底行列Ｆklを左から掛ける（つまり、Ｆkl・Ｍ）と、行列Ｍのｌ行に、該行列Ｍのｋ行の要素をそれぞれ加算して、その結果を新たなｋ行とする演算になる。
【０１６６】
一方、数式２６に示す基底行列Ｆk （α）を行列Ｍに右から掛ける（つまり、Ｍ・Ｆk （α））と、該行列Ｍのｋ列の各要素にαを掛けて、その結果を新たなｋ列とする演算になる。
【０１６７】
さらに、数式２６に示す基底行列Ｆk （α）を行列Ｍに左から掛ける（つまり、Ｆk （α）・Ｍ）と、該行列Ｍのｋ行の各要素にαを掛けて、その結果を新たなｋ行とする演算になる。
【０１６８】
そして、基底行列Ｆkl，Ｆk （α）の逆行列は、該基底行列Ｆkl，Ｆk （α）自体の組み合わせを用いて、次の数式２７に示すように表現される。 
［数２７］
2006050516.tif 000026
ここに、行列Ｅは、次の数式２８に示すような単位行列である。 
［数２８］
2006050516.tif 000027
【０１６９】
また、上記数式１９に示した行列演算は、線形演算である。すなわち、行列Ｍが行列Ｍ1 と行列Ｍ2 の和として表されるとすると、次の数式２９に示すように、
［数２９］
Ａ・Ｍ・Ｂ＝Ａ・（Ｍ1 ＋Ｍ2 ）・Ｂ＝Ａ・Ｍ1 ・Ｂ＋Ａ・Ｍ2 ・Ｂ
となるために、線形性が満たされていることが分かる。従って、数式１９に示した行列演算は、線形で可逆な演算であり、画素の空間的な分布を変更するために用いる場合には、線形可逆マッピングとも呼ぶことができる。すなわち、線形可逆マッピングは、画素群を行列として表現した場合に、この行列に可逆な線形行列演算を施すことによって得られる画素空間変換であるということができる。
【０１７０】
こうして、線形可逆マッピングは、行列Ｍに、
１．第１の行または列に、第２の行または列を足す演算
２．１つの行または列に、非ゼロ係数を掛ける演算
を逐次的に施すことにより得られるマッピングとなっている。
【０１７１】
なお、数式１９に示したような線形可逆な画素空間変換を、上記数式５に示したようなＤＣＴと組み合わせると、次の数式３０に示すような行列表現となる。 
［数３０］
2006050516.tif 000028
【０１７２】
これに対して、レベルシフトに対応する行列演算は、非線形演算である。すなわち、レベルシフトは、画素データを要素とする行列Ｍに、レベルシフト量を要素とする行列Ａを加算する演算である。このときには、次の数式３１に示すように、
［数３１］
Ｍ＋Ａ＝（Ｍ1 ＋Ｍ2 ）＋Ａ＝（Ｍ1 ＋Ａ）＋（Ｍ2 ＋Ａ）−Ａ
となって、線形性を満たしていないことが分かる。
【０１７３】
また、上記背景技術で述べた特開２０００−３０８０５８号公報に記載の技術は、ＤＣＴを行う前に、次の数式３２、
［数３２］
Ｍ  →  （１／２）・Ｍ＋１２８Ｎ
に示すような変換を行うものである。ここに、行列Ｎは、全ての要素が１となる行列である。この変換は、画素値を半分のダイナミックレンジに圧縮して、元のダイナミックレンジの中央値側へシフトさせるものである。従って、該変換は、上記レベルシフトと同様のレベルシフトを含むものであり、線形性を満たしていないことが容易に示される。この変換は、その後に行われるＤＣＴと組み合わせると、次の数式３３に示すように表現することができる。 
［数３３］
2006050516.tif 000029
ここに、右辺第２項の行列Ｄ~00（このように代用表現する）は、ＤＣＴの（０，０）係数のみが１の値となる行列、つまり単に、（０，０）成分のみが１で、それ以外の成分が０となる行列である。
【０１７４】
なお、この特開２０００−３０８０５８号公報に記載の技術は、本実施例で説明しているＪＥＸと比べて量子化誤差が一般的に増大するといえるばかりでなく、従来のＪＰＥＧと比べても量子化誤差が増大する変換となっている。
【０１７５】
つまり、従来のＪＰＥＧにおけるＤＣＴ係数の絶対値を次の数式３４に示すようにｗとすると、
［数３４］
2006050516.tif 000030
これを量子化して、さらに逆量子化したときの量子化誤差△1 は、次の数式３５に示すように表される。 
［数３５］
2006050516.tif 000031
ここに、ｑは、ｑ＝Ｑ（ｕ，ｖ）であり、量子化幅を表している。
【０１７６】
これに対して、特開２０００−３０８０５８号公報に記載の技術を用いた処理をした後にＤＣＴを行い、これを量子化して、さらに逆量子化したときの量子化誤差△2 は、次の数式３６に示すように表される。 
［数３６］
2006050516.tif 000032
【０１７７】
ＤＣＴ係数の絶対値ｗを、２ｑによる商ζ（ζは、ζ≧０を満たす整数）と第１の余りとに分け、さらにこの第１の余りをｑによる商ξ（ξ＝０または１）と第２の余りη（ηは、０≦η＜ｑを満たす整数）とに分け、つまり、次の数式３７に示すように分解する。 
［数３７］
ｗ＝ζ・２ｑ＋ξ・ｑ＋η
【０１７８】
そして、△1 と△2 との差を評価すると、次の数式３８に示すように、
［数３８］
△1 −△2 ＝［ｗ／ｑ］・ｑ−［ｗ／（２ｑ）］・２ｑ
＝（２ζ＋ξ）・ｑ−ζ・２ｑ＝ξ・ｑ≧０
となって、０またはｑ（量子化幅）の量子化誤差が等しいか、または増大することが分かる。
【０１７９】
次に、上述したような線形可逆マッピングの特別な例として、線形パーミュテーションを考える。この線形パーミュテーションは、画素ブロックにおける行同士の交換と、列同士の交換と、を組み合わせることにより実現することができる変換である。従って、任意の線形パーミュテーションは、行同士の交換、または列同士の交換、という基本パーミュテーションの積により表される。このような線形パーミュテーションによる変換では、画素ブロック内のある画素値が、変換後にも、画素ブロック内の何れかの位置に発見できることになる。従って、画素ブロック内の画素値の平均値も変換後に変化することはなく、画素値に対する画素の出現頻度などの統計値にも線形パーミュテーションは影響を与えることはない。
【０１８０】
このような線形パーミュテーションは、上記線形可逆マッピングの一種であるために、当然、上述した基底行列の積により表されるが、特に、基底行列Ｆk （α）においてα＝−１とおいた基底行列Ｆk （−１）を用いることにより実現される。
【０１８１】
すなわち、図１３に示すような、値ａをもつｋ番目の列と、値ｂをもつｌ番目の列と、を交換する基本パーミュテーションを考える。ここに、図１３は行列Ｍの例を示す図である。このような行列に、図１４に示すような順に、基底行列を順次作用させていく。ここに、図１４は、列同士の基本パーミュテーションを実現するための基底行列の作用手順を示す図表である。
【０１８２】
まず、最初の状態における上記所定の値部分のみをピックアップすると、（ａ，ｂ）である。
【０１８３】
次に、第１のステップとして、右から、基底行列Ｆl （−１）を作用させると、（ａ，−ｂ）となる。
【０１８４】
第２のステップとして、右から、基底行列Ｆklを作用させると、（ａ，ａ−ｂ）となる。
【０１８５】
第３のステップとして、右から、基底行列Ｆl （−１）を作用させると、（ａ，ｂ−ａ）となる。
【０１８６】
第４のステップとして、右から、基底行列Ｆlkを作用させると、（ｂ，ｂ−ａ）となる。
【０１８７】
第５のステップとして、右から、基底行列Ｆl （−１）を作用させると、（ｂ，ａ−ｂ）となる。
【０１８８】
そして、第６のステップとして、右から、基底行列Ｆklを作用させると、（ｂ，ａ）が得られ、列同士の基本パーミュテーションが行われたことが分かる。
【０１８９】
従って、列同士の交換に係る基本パーミュテーションＰklは、基底行列の積により、次の数式３９に示すように表される。 
［数３９］
2006050516.tif 000033
なお、この基本パーミュテーションＰklの右肩に付けた添え字「ｃ」は、列に関するパーミュテーションであることを表すために付している。
【０１９０】
この基本パーミュテーションＰklは、具体的な行列として表すと、次の数式４０に示すようになる。 
［数４０］
2006050516.tif 000034
ここに、対角成分の内、１以外の値をとるのが（ｋ，ｋ）成分および（ｌ，ｌ）成分であってそれぞれ０の値をとり、非対角成分の内、０以外の値をとるのが（ｋ，ｌ）成分および（ｌ，ｋ）成分であってそれぞれ１の値をとる。
【０１９１】
この基本パーミュテーションＰklを、次の数式４１に示すように、行列Ｍに右から掛けることにより、ｋ列とｌ列との交換が行われる。 
［数４１］
2006050516.tif 000035
【０１９２】
同様に、行同士の交換に係る基本パーミュテーションＰklは、基底行列の積により、次の数式４２に示すように表される。 
［数４２］
2006050516.tif 000036
なお、この基本パーミュテーションＰklの右肩に付けた添え字「ｒ」は、行に関するパーミュテーションであることを表すために付している。
【０１９３】
そして、この基本パーミュテーションを、次の数式４３に示すように、行列Ｍに左から掛けることにより、ｋ行とｌ行との交換が行われる。 
［数４３］
2006050516.tif 000037
【０１９４】
なお、列同士の交換に係る基本パーミュテーションは、行列Ｍに右から掛ける演算で表され、行同士の交換に係る基本パーミュテーションは、行列Ｍに左から掛ける演算で表されるために、これらの演算は可換である。従って、基本パーミュテーションを組み合わせて行われる列に関する一連の交換の組と、基本パーミュテーションを組み合わせて行われる行に関する一連の交換の組と、は何れを先に行っても構わない。
【０１９５】
こうして、図５に示すＪＥＸ符号化処理（および後述する図６に示すＪＥＸ復号化処理）においては、まず列の並べ換えを行い、その後に行の並べ換えを行っているが、これらは逆の順序でも良い。
【０１９６】
一方、上記ステップＳ２４において、上述した条件が満たされないと判定された場合には、列に関するパーミュテーションが行われていないことを示すデータＰｃに０を代入する（ステップＳ２７）。
【０１９７】
上記ステップＳ２６またはステップＳ２７の処理が終了したら、次に、８×８画素ブロックにおける行のデータを並べ換える処理が必要であるか否かを判断する。具体的には、閾値Ｔｈｒを用いた次の数式４４、
［数４４］
ｓｒ（ｎｒ（０））−ｓｒ（ｎｒ（７））≧Ｔｈｒ×８
が満たされ、かつ、閾値Ｎｒ（この閾値Ｎｒは、通常は、列に関する閾値Ｎｃと同一になるようにとる。）を用いた次の数式４５、
［数４５］
Ｃｈｒ≧Ｎｒ
が満たされているか否かを判断する（ステップＳ２８）。
【０１９８】
上記ステップＳ２４およびこのステップＳ２８で説明したように、列と行とに各対応して算出される４つのパラメータ、すなわち、ｓｃ（ｎｃ（０））−ｓｃ（ｎｃ（７））、Ｃｈｃ、ｓｒ（ｎｒ（０））−ｓｒ（ｎｒ（７））、Ｃｈｒを、それぞれの閾値と比較して列のパーミュテーションと行のパーミュテーションとを実行するか否かを判断するようにしているために、画素ブロック毎の絵柄に応じて、適応的にパーミュテーションを制御しているということができる。
【０１９９】
なお、パーミュテーションを実行するか否かを、これら４つのパラメータと各対応する閾値とに基づき判断する代わりに、次の方法により行うことも可能である。すなわち、まず、画素ブロックに、パーミュテーション、ＤＣＴ、量子化、ハフマン符号化を実際に施して、符号を得る。さらに、画素ブロックに、パーミュテーションを行うことなく、ＤＣＴ、量子化、ハフマン符号化のみを実際に施して、符号を得る。そして、取得したそれぞれの符号の符号量を、ヘッダ情報分も含めて比較し、前者が後者よりも小さい場合にのみ、パーミュテーションを行った結果を採用する方法である。この場合には、各画素ブロックに対して２度の符号化処理を行うことになるために、処理時間が長くなるが、より確実なデータ圧縮効果を得ることができる。従って、符号化制御部２への圧縮度設定において、このような手段を選択することができるように構成することが考えられる。
【０２００】
このステップＳ２８において、条件が満たされると判定された場合には、行に関するパーミュテーションが行われたことを示すデータＰｒに１を代入する（ステップＳ２９）。このデータＰｒも、上記データＰｃと同様に、後でヘッダ情報として画像ファイルのヘッダに記録されるものである。
【０２０１】
そして、ｆ（ｋ，ｌ）の行の並べ換えを実際に行い、８×８画素ブロックのデータ配列が、
ｆ（ｋ，ｎｒ（０）），ｆ（ｋ，ｎｒ（１）），…，ｆ（ｋ，ｎｒ（７））
となるように並べ換えを行う（ステップＳ３０）。
【０２０２】
一方、上記ステップＳ２８において、上述した条件が満たされないと判定された場合には、列に関するパーミュテーションが行われていないことを示すデータＰｒに０を代入する（ステップＳ３１）。
【０２０３】
上記ステップＳ３０またはステップＳ３１の処理が終了したら、次に、画像ファイルのヘッダに書き込むためのヘッダ情報Ｐｈ（ｎ）を作成する（ステップＳ３２）。
【０２０４】
ここで、図２３は、ＪＰＥＧ圧縮データを格納するＥＸＩＦファイルの基本構造を示す図である。
【０２０５】
このＥＸＩＦファイルは、圧縮データスタート位置を示すマーカＳＯＩと、１個または任意の複数個を記載可能なアプリケーションマーカセグメントＡＰＰ１〜ＡＰＰｎと、量子化テーブル定義マーカＤＱＴから記述が開始される量子化テーブルデータと、ハフマンテーブル定義ＤＨＴから記述が開始されるハフマンテーブルデータと、リスタートインターバルＤＲＩから記述が開始されるリスタートマーカ挿入間隔の定義と、フレームセグメントスタートマーカＳＯＦから記述が開始されるフレームヘッダと、スキャンマーカＳＯＳから記述が開始されるスキャンヘッダと、このスキャンヘッダ後に記述される圧縮データと、圧縮データ終了位置を示すマーカＥＯＩと、を含んで基本的に構成されている。
【０２０６】
上記アプリケーションマーカセグメントＡＰＰ１〜ＡＰＰｎは、それぞれが６４Ｋバイト（ここに、Ｋは１０２４を表す。）以下のサイズとなることが規定されており、個数は無制限である。そこで、例えば、アプリケーションマーカセグメントＡＰＰ１にＥｘｉｆ用の情報を記述し、アプリケーションマーカセグメントＡＰＰ２にＦｌａｓｈｐｉｘ用の情報を記述し、アプリケーションマーカセグメントＡＰＰ３からＪＥＸ用の情報を記述することが考えられる。
【０２０７】
図２３の右側は、ＪＥＸ用の情報を記述したアプリケーションマーカセグメントＡＰＰｉのデータ構造の例を示したものである。
【０２０８】
図示のように、セグメント内の先頭に、ｉ番目のアプリケーションマーカセグメントであることを示すＡＰＰｉマーカが記述されており、その次に、バイト単位の可変長でなるこのアプリケーションマーカセグメントＡＰＰｉのバイト長が記述されている。その次に、拡張ＪＰＥＧ（ＪＥＸ）用のデータヘッダとして例えば「４Ａ  ４５  ５８」のバイナリ値を記述し、その後に上記ヘッダ情報Ｐｈ（ｎ）を記述する。
【０２０９】
このとき、ヘッダ情報Ｐｈ（ｎ）は、画像をブロック化して得られるブロック数だけ記述されるが、１つのセグメントサイズは、上述したように、マーカ等の記述部分も含めて６４Ｋバイト以下であることが要求される。従って、全てのブロックに係るＪＥＸ用のヘッダ情報Ｐｈ（ｎ）のサイズが６４Ｋバイトを超える場合には、連続する複数のアプリケーションマーカセグメントに渡って記述することになる。すなわち、上記アプリケーションマーカセグメントＡＰＰ３に、１番目の画素ブロックに係るヘッダ情報Ｐｈ（１）から順次記録して行き、該アプリケーションマーカセグメントＡＰＰ３に記述可能な上限に達したところで、次のアプリケーションマーカセグメントＡＰＰ４内に、続くヘッダ情報Ｐｈの記録を行う。なお、各アプリケーションマーカセグメントは、バイト単位のサイズでなければならないが、ヘッダ情報Ｐｈ（ｎ）はビット単位で詰めて記録するようになっているために、セグメント内の最後のデータがバイト単位では収まらないことがある。この場合には、フィラー（filler）としてのビット値０を埋めることにより、バイトサイズの単位でセグメントが終わるようにする。
【０２１０】
なお、上述では、ＥＸＩＦファイルのアプリケーションマーカセグメントに、ＪＥＸヘッダ情報を記述するようにしたが、ヘッダ内においてＪＥＸヘッダ情報を記述可能な箇所は、これに限るものではない。例えば、ＪＰＥＧ圧縮データファイルは、ヘッダにコメントを記載することができるようになっていて、そのデータ容量は６４Ｋバイトである。従って、このコメント用のヘッダ部分を用いて、ＪＥＸヘッダ情報を記録するようにしても構わない。
【０２１１】
ここで、図２４は、ＪＰＥＧ圧縮データファイルの基本構造をより詳しく示した図である。
【０２１２】
ＪＰＥＧ圧縮データファイルは、上記図２３を参照して一部述べたように、圧縮データスタート位置を示すマーカＳＯＩ（１６進数で示すバイナリ値は「ＦＦ  Ｄ８」）と、量子化テーブル定義マーカＤＱＴ（同様に、「ＦＦ  ＤＢ］）から記述が開始される量子化テーブルデータと、ハフマンテーブル定義ＤＨＴ（「ＦＦ  Ｃ４」）から記述が開始されるハフマンテーブルデータと、リスタートインターバルＤＲＩ（「ＦＦ  ＤＤ」）から記述が開始されるリスタートマーカ挿入間隔の定義と、フレームセグメントスタートマーカＳＯＦ（「ＦＦ  Ｃ０」）から記述が開始されるフレームに関する各種パラメータを示す垂直ライン数、水平画素数、および量子化テーブル指定と、スキャンマーカＳＯＳ（「ＦＦ  ＤＡ」）から記述が開始されるスキャンに関する各種パラメータを含むスキャンヘッダと、コメントマーカＣＯＭ（「ＦＦ  ＦＥ」）から記述が開始されるコメント等のデータと、リスタートマーカＲＳＴ（「ＦＦ  Ｄ０」）から記述が開始される圧縮データと、圧縮データ終了位置を示すマーカＥＯＩ（「ＦＦ  Ｄ９」）と、を含んで基本的に構成されている。
【０２１３】
これらの内のコメント部分は、コメントマーカＣＯＭ（「ＦＦ  ＦＥ」）の次に、２〜６５５３５バイトの範囲のコメントサイズが記述され（つまりバイト単位の可変長セグメントとなっている。）、その後にコメントを記載することができる。このコメント部分に、拡張ＪＰＥＧ（ＪＥＸ）用のデータヘッダとして例えば「４Ａ  ４５  ５８」のバイナリ値を記述し、その後に上記ヘッダ情報Ｐｈ（ｎ）を記述する。
【０２１４】
図２５は、ヘッダ情報Ｐｈ（ｎ）の構造と具体的なデータ例を示す図表である。
【０２１５】
１つの画素フロックに係るＪＥＸ用のヘッダ情報Ｐｈ（ｎ）は、データ開始位置を示すインディケータＩｎｄと、列に関するパーミュテーションが行われたか否かを示す上記データＰｃと、行に関するパーミュテーションが行われたか否かを示す上記データＰｒと、列に関する順列ｎｃ（０）〜ｎｃ（６）と、行に関する順列ｎｒ（０）〜ｎｒ（６）と、を基本的に含むように構成される。
【０２１６】
ここに、インディケータＩｎｄは、ブロック単位のデータ開始位置を上述したようなフィラーと区別して示すために、ビット値として１を記述するものである。すなわち、インディケータＩｎｄを設けておかないと、ある画素ブロックのヘッダ情報Ｐｈの次の２ビットが「００」であった場合に、フィラーであるのか、Ｐｃ＝０かつＰｒ＝０の画素ブロックを表しているのかを区別することができない。そのために、各画素ブロックに係るヘッダ情報Ｐｈ（ｎ）の先頭には、インディケータＩｎｄとして必ずビット値１を記述するようにしている。
【０２１７】
データＰｃ，Ｐｒは、図５に示したように、パーミュテーションが行われた場合にはビット値として１が記述され、行われていない場合にはビット値として０が記述される。そして、Ｐｃが０のときにはｎｃ（０）〜ｎｃ（６）は記述されず、Ｐｒが０のときにはｎｒ（０）〜ｎｒ（６）は記述されない。
【０２１８】
また、各ｎｃ（ｉ），ｎｒ（ｊ）は、８×８画素ブロックの場合にはそれぞれ３ビットのデータ量となるために、ｎｃ（０）〜ｎｃ（６）について２１ビット、ｎｒ（０）〜ｎｒ（６）について２１ビット、のデータ量がそれぞれ必要となる。ここに、ｎｃ（７）、ｎｒ（７）をヘッダ内に記述しない理由は、順列ｎｃ（０）〜ｎｃ（７）、および順列ｎｒ（０）〜ｎｒ（７）が、０から７までの数の並び換えであるために、ｎｃ（０）〜ｎｃ（６）までの情報があればｎｃ（７）を知ることができ、同様に、ｎｒ（０）〜ｎｒ（６）までの情報があればｎｒ（７）を知ることができるためである。従って、後述するような復号化処理においては、ｎｃ（７），ｎｒ（７）を算出する処理が行われる。
【０２１９】
図２５に示す例は、Ｐｃが１でＰｒが０となっているために、ｎｃ（０）〜ｎｃ（６）のみが記述され、ｎｒ（０）〜ｎｒ（６）は記述されていない。そして、図１１に示した例における各データが記述されている。
【０２２０】
また、上述した理由により、１つの画素ブロックに対して必要なヘッダのデータ量は、３ビット、２４ビット、４５ビットの何れかである。従って、例えば６４０×４８０画素でなるＶＧＡ画像の場合には、（６４０／８）×（４８０／８）＝８０×６０＝４８００個のブロック数となるために、最大（つまり、全てのブロックがＰｃ＝Ｐｒ＝１となる場合）で２７０００バイト、つまり約２６Ｋ（ここにＫは１０２４として計算している。）バイトのデータ量が必要となる。この場合には、１つのセグメントサイズである６４Ｋバイト内に収まるために、アプリケーションマーカセグメントにヘッダ情報を記述しても良いが、あるいはコメント用のセグメントに記述するようにしても構わない。ただし、これは白黒画像の場合である。
【０２２１】
カラー画像の場合には、ヘッダ情報として記述するのに、幾通りかの方法の何れかを採用することができる。
【０２２２】
まず、考えられるのは、Ｙ，Ｃｂ，Ｃｒの各色毎、あるいはＲ，Ｇ，Ｂの各色毎、の画素ブロックをそれぞれ個別に分析（具体的には、例えば列毎あるいは行毎の画素値の合計を比較して並べ換え順序を求め、並べ換えを行うことが適当か否かを判断する処理ステップ）し、各分析結果に基づいてパーミュテーションを決定する。そして、各色毎のパーミュテーションに対応するヘッダ情報をそれぞれ生成して、ヘッダに記述する方法である。この場合には、各色毎に最適なＪＥＸが行われるために、画像データ部分の符号量をより削減することができるが、一方で、ヘッダ情報については白黒画像の３倍のデータ量が必要になる。この場合には、ＶＧＡ画像であっても、７９Ｋバイトのデータ量が必要になるために、１つのセグメント内には収まらず、複数のアプリケーションマーカセグメントを用いる必要がある。なお、コメント用セグメントは複数を設けることを禁止されていないために、ＪＥＸのヘッダ情報を複数のコメント用セグメントに記述するようにしても構わない。
【０２２３】
また、他の方法としては、画質に主要な役割を果たす色成分、例えばＹ成分やＧ成分の８×８画素ブロックに関する分析結果に基づいてパーミュテーションを決定し、このパーミュテーションを、Ｙ，Ｃｂ，Ｃｒの全ての画素ブロック、またはＧ，Ｒ，Ｂの全ての画素ブロック、に対して適用する方法である。この場合には、ヘッダ情報として必要な情報量が、白黒画像の場合と同じになり、ＶＧＡ画像の場合には１つのセグメント内にヘッダ情報を記載することができる。一般に、輝度信号Ｙに対する人間の眼の感度は、色差信号Ｃｂ，Ｃｒに対する感度よりも高い。従って、輝度信号の再現を重視してＪＥＸを行うことにより、ヘッダ情報の情報量を削減しながら、原画像を忠実に再現することが可能となる。この方法は、特に、さほどカラフルでない画像に対して、高い効果を得られると考えられる。
【０２２４】
画素数がさらに多い画像については、画素ブロックの増加分に応じたデータ量の増加が生じるために、必要に応じて複数のセグメントを用いて情報の記述を行うことになる。
【０２２５】
なお、上述の例では、例えばデータＰｃが１のときにｎｃ（０）〜ｎｃ（６）の２１ビットのデータを記述するようにしていたが、さらにデータ量を減らすことも可能である。ｎｃ（０）〜ｎｃ（７）は、０から７までの数の順列の何れかを表しているために、順列として取り得るのは８！通りである。ここに、
８！＝（２の７乗）×３１５
＜（２の７乗）×５１２＝（２の７乗）×（２の９乗）＝（２の１６乗）
であるために、１６ビットのデータ量があれば記述可能であることが分かる。この場合には、例えば、０〜４０３１９までのシリアル番号と、各シリアル番号に対応して順列「０１２３４５６７」〜「７６５４３２１０」と、を記述した８！＝４０３２０個の要素をもつテーブルを用意しておく。そして、ヘッダにはテーブルのシリアル番号を記録し、復号化時には同一のテーブルを用いて元の順列のデータを取得するようにすればよい。
【０２２６】
この場合には、１つの画素ブロックに対して必要なヘッダのデータ量が、３ビット、１９ビット、３５ビットであるために、ＰｃとＰｒとの何れか一方が１で他方が０となるブロックに対して５ビット分のヘッダ情報量を削減することができ、さらに、Ｐｃ＝Ｐｒ＝１となるブロックに対して、１０ビット分のヘッダ情報量を削減することができることが分かる。この場合には、ＶＧＡの白黒画像で最大２１０００バイト、つまり約２１Ｋバイトのヘッダ情報量となる。
【０２２７】
なお、さらにヘッダ情報量を削減する場合には、ＪＥＸ拡張用データヘッダを除く部分のヘッダ情報Ｐｈ（ｎ）を、適宜の圧縮方式によりデータ圧縮することも考えられる。これにより、画像ファイルのサイズをより小さくすることができるとともに、より高い解像度の画像データに係るヘッダ情報を、１つのセグメント（例えばコメント用のセグメント）内に格納することも可能となる。上述した並べ換えのアルゴリズムは、絵柄によって変動するために、算出されるパーミュテーションには統計的な癖がある。このような場合には、エントロピー符号化などの可変長符号化を圧縮方式として用いると、より効率的な圧縮を行うことが可能となる。
【０２２８】
こうして、並べ換えられた画素データｆ（ｋ，ｌ）と、ステップＳ３２で作成されたヘッダ情報ｈ（ｎ）とを出力して（ステップＳ３３）、このＪＥＸ符号の処理から図３に示した処理にリターンする。
【０２２９】
なお、この図５に示した処理は、全ての画素ブロックについて行われるために、実際には、ｎを変更しながらループ処理によって上述したような処理を行うことになる。
【０２３０】
次に、図６は、ＪＥＸ復号化処理を示すフローチャートである。この図６は、上記図４のステップＳ１６において行われる処理の詳細を示したものである。
【０２３１】
この処理を開始すると、ｎ番目の逆ＤＣＴ（ＩＤＣＴ）変換ブロックｆ’（ｋ，ｌ）と、該ｎ番目のブロックに係るヘッダ情報Ｐｈ（ｎ）とを入力する（ステップＳ４１）。ここに、逆ＤＣＴ変換後のブロックデータをｆでなくｆ’とした理由は、図２に示した逆量子化部２６により逆量子化を行う際に、量子化誤差が発生して、元のブロックデータｆとは異なる値となっているためである。
【０２３２】
次に、ヘッダ情報Ｐｈ（ｎ）の第２ビットをデータＰｃの値として代入するとともに、第３ビットをデータＰｒの値として代入する（ステップＳ４２）。
【０２３３】
そして、データＰｃの値が１であるか否かを判断する（ステップＳ４３）。
【０２３４】
ここで１である場合には、ヘッダ情報Ｐｈ（ｎ）からｎｃ（０），…，ｎｃ（６）の各データを取得して（ステップＳ４４）、これらに基づいてｎｃ（７）を算出する（ステップＳ４５）。
【０２３５】
そして、これらｎｃ（０）〜ｎｃ（７）を用いて、ｆ’（ｋ，ｌ）の列を
ｆ’（ｎｃ（ｋ），ｌ）  ←  ｆ’（ｋ，ｌ）
として、逆に並べ換える（ステップＳ４６）。
【０２３６】
このステップＳ４６の処理が終了するか、または上記ステップＳ４３においてＰｃ＝０である場合には、次に、データＰｒの値が１であるか否かを判断する（ステップＳ４７）。
【０２３７】
ここで１である場合には、ヘッダ情報Ｐｈ（ｎ）からｎｒ（０），…，ｎｒ（６）の各データを取得して（ステップＳ４８）、これらに基づいてｎｒ（７）を算出する（ステップＳ４９）。
【０２３８】
そして、これらｎｒ（０）〜ｎｒ（７）を用いて、ｆ’（ｋ，ｌ）の行を
ｆ’（ｋ，ｎｒ（ｌ））  ←  ｆ’（ｋ，ｌ）
として、逆に並べ換える（ステップＳ５０）。
【０２３９】
その後、並べ換えられた画素データｆ’（ｋ，ｌ）を出力して（ステップＳ５１）、このＪＥＸ復号の処理から図４に示した処理にリターンする。
【０２４０】
なお、この図６に示した処理も、図５に示した処理と同様に、全ての画素ブロックについて行われるために、実際には、ｎを変更しながらループ処理によって上述したような処理を行うことになる。
【０２４１】
また、図３に示したようなＪＥＸ符号化処理により生成された拡張ＪＰＥＧファイルは、通常のＪＰＥＧ復号化処理によっても、その画像の概要を把握することができる程度に再生することが可能となっている。
【０２４２】
すなわち、通常のＪＰＥＧ復号化処理は、図４に示すような復号化処理において、ステップＳ１５の処理とステップＳ１６の処理とを省略したものとなる。従って、ＪＥＸ復号における並べ換えが行われないために、画像は８×８画素ブロック内の細部は必ずしも正確に再現がされないが、画素ブロックを単位とした画像全体としては、その画像の様子を把握することができる。特に、上述したような画素の並べ換えは、画素ブロック内の画像データの平均値を変更しないために、ＪＥＸ処理を行うか行わないかにかかわらず、画像全体の概要に変化が及ぼされることはない。
【０２４３】
次に、図１５から図２２を参照して、上述したような処理により、具体的なデータが変換される様子について説明する。
【０２４４】
図１５は、画像データから抽出されたオリジナルの８×８画素ブロックのデータ例を示す図表である。
【０２４５】
この画像データは、８ビット階調のモノクロ画像についてのものとなっており、０から２５５までの画素値をとるデータである。
【０２４６】
図１６は、８×８画素ブロックのデータについて、行方向の和と列方向の和とをそれぞれ算出した様子を示す図表である。
【０２４７】
すなわち、上記図５のステップＳ２２において、ｉ列における画素値の加算データｓｃ（ｉ）と、ｊ行における画素値の加算データｓｒ（ｊ）と、を算出している。
【０２４８】
ここで、ｓｃ（ｉ）の最大値は１４８０、ｓｃ（ｉ）の最小値は８０７であるために、ステップＳ２４における第１番目の判定式の左辺は６７３となる。一方、該判定式の右辺はＴｈｃが２の５乗であるために、８を掛けて２５６となる。従って、第１番目の判定式が満たされていることが分かる。
【０２４９】
これに対して、ｓｒ（ｊ）の最大値は１２４８、ｓｒ（ｊ）の最小値は１１０７であるために、ステップＳ２８における第１番目の判定式の左辺は１４１となる。これに対して、該判定式の右辺は、上記ステップＳ２４の第１番目の判定式の右辺と同じ２５６である。従って、このステップＳ２８の第１番目の判定式は満たされず、第２番目の判定式について判定を行う必要なく、ステップＳ３１へ行ってＰｒ＝０を設定することになる。
【０２５０】
一方、ステップＳ２４においては、第１番目の判定式が満たされているために、第２番目の判定式についても判定を行わなければならない。ここでは、数式１５について、ウェイトを１とし、閾値Ｎｃとして上記典型値４をとって判定を行う。この図１５および図１６に示すブロックデータの例では、ステップＳ２３により算出されるｎｃ（ｉ）は上記図１１に示すようになり、Ｃｈｃは上述したように１４となる。従って、第２の判定式も満たされることになり。ステップＳ２５へ行ってＰｃ＝１を設定することになる。
【０２５１】
その後のステップＳ２６の処理を行うことにより、画素ブロックのデータは、図１７に示すようになる。すなわち、図１７は、並べ換え後の画素ブロックのデータを示す図表である。ここに並べ換え後の画素データの下側には、列の並べ換えを示すｎｃ（ｉ）と、並べ換えを元に戻すための逆並べ換え順序とが示され、また、並べ換え後の画素データの右側には、行の並べ換えを示すｎｒ（ｊ）と、並べ換えを元に戻すための逆並べ換え順序とが示されている。ただし、上述したようにＰｒ＝０であって行の並べ換えは行わないために、ｎｒ（ｊ）もその逆も同じである。
【０２５２】
なお、ステップＳ２６の代入式を見れば分かるように、ｎｃ（ｉ）の並びは、次のように解釈される。図１７の画素ブロックの０列目には、ｎｃ（０）として「４」が入っている。従って、図１５に示したオリジナルデータの４列目が、並べ換え後に０列目に入っている。同様に、図１７の画素ブロックの１列目には、ｎｃ（１）として「２」が入っている。従って、図１５のオリジナルデータの２列目が、並べ換え後に１列目に入っている。その他も同様である。
【０２５３】
その後、図３におけるステップＳ３の処理を行ったデータが図１８に示すようになる。ここに、図１８は、レベルシフトとＤＣＴとを行ったデータを示す図表である。
【０２５４】
この図１８に示すデータに、所定の量子化テーブルを用いて、図３におけるステップＳ４の処理により量子化した結果が、図１９に示すようになる。ここに図１９は、量子化後の８×８ブロックデータを示す図表である。
【０２５５】
このように、高周波成分の多くは０となっており、その後のエントロピー符号化において高い効率でデータを圧縮可能であると期待できる。
【０２５６】
一方、図２０は、図１９に示したような量子化後のデータに、図４に示すような復号化処理において逆量子化および逆ＤＣＴ（ＩＤＣＴ）を施し、レベルシフトを行って０〜２５５の範囲のデータに丸めたときのデータを示す図表である。
【０２５７】
そして、図２１は、図２０に示すデータを逆パーミュテーションで並べ換えた画素ブロックを示す図表である。
【０２５８】
このときの、上記図１７に示した逆ｎｃ（ｉ）による並べ換えは、図２０の４列目のデータが図２１の０列目のデータとなり、図２０の２列目のデータが図２１の１列目のデータとなる、等の処理により行われる。
【０２５９】
次の図２２は、図２１に示した復号化後の画素ブロックデータから、図１５に示したオリジナルの画素ブロックデータを減算した結果を示す図表である。
【０２６０】
すなわち、この図２２は、図１５に示したオリジナルの画素ブロックデータに対する、図２１に示した復号化の画素ブロックデータの誤差を示すものとなっている。各画素における誤差の絶対値の合計を算出すると「７５６」となり、また、各誤差の２乗平均は「１２５」である。
【０２６１】
これに対して、ＪＥＸ符号化を行わない通常のＪＰＥＧファイルの場合には、図３０〜図３３に示すような処理結果が得られる。図３０は図１５に示すオリジナルの８×８画素ブロックのデータにＤＣＴを行った結果を示す図表、図３１は図３０に示すブロックデータを量子化した結果を示す図表、図３２は図３１に示すブロックデータを逆量子化し逆ＤＣＴを施しレベルシフトを行って０〜２５５の範囲のデータに丸めた結果を示す図表、図３３は図３２に示す復号化後の画素ブロックデータから図１５に示したオリジナルの画素ブロックデータを減算した結果を示す図表である。
【０２６２】
上述したように、図１５に示したようなオリジナルの画素データでは、列のみが再配列されて、行については再配列されていない。このようなケースにおいて、図１８に示したようなパーミュテーションかつＤＣＴがなされた結果を、図３０に示すようなＤＣＴのみがなされた従来の結果と比較すると、ＤＣＴ係数について次のようなことが分かる。 
（１）  Ｄ00は、不変である。 
（２）  Ｄ10（の絶対値）は、増大している。 
（３）  Ｄ1vの絶対値が、ほぼ全てのvに対して増大する。 
【０２６３】
Ｄ00は、いわゆる直流成分であって、画素ブロック内の画素値の平均に比例する量であるために、画素値の平均を変化させることがないパーミュテーションを行っても、当然にして不変である。
【０２６４】
次に、Ｄ10については、数式７に示したように、列番ｋの増加に従って単調減少するｋの離散関数からなるベクトルＶ（数式８）と、各列における、列内の画素データの総和を成分とするベクトルＷ（数式９）と、の内積であることが分かる。従って、これらベクトルＶとベクトルＷの内積は、列内の画素データの総和が高い順に列を並べ替えることにより、増加することは明らかである。
【０２６５】
さらに、Ｄ1vに関しては、Ｄ10の場合のように単純な結論を導くことはできないが、一般に、列のそれぞれの画素値が増加すると増加するために、列内の画素データの総和が高い順に列を並べ替えることにより増加する可能性が高まるといえる。
【０２６６】
ＤＣＴは直交変換であって変換の前後で内積値が保存されるために、ＤＣＴ係数の２乗の総和は、元の画素ブロックの画素値の２乗の総和と等しい。パーミュテーションは、画素ブロックの画素値の２乗の総和を変化させることがないために、パーミュテーションされた画素ブロックのＤＣＴ係数の２乗の総和も、元のＤＣＴ係数の２乗の総和に等しい。従って、ＤＣＴ係数が低周波数領域である（０，０）、（０，１）、（０，ｖ）に集中すれば、必然的に高周波成分が減少することになる。
【０２６７】
ＪＰＥＧでは、ＤＣＴ係数を量子化した後に、上述したように、ジグザグスキャンを行い、０（零）のＤＣＴ係数が連続する数であるラン長と、このラン長後のＤＣＴ係数の値と、に基づいてハフマン符号化する。一般的に、高周波の非ゼロ係数が数多く存在すると、ビット長が長い符号（最長の符号は、１６（ラン長）＋１０（ＡＣ係数）＝２６ビット）がより多く付与されることになるために、符号量が増加する。従って、ＤＣＴの高周波成分を減らすことは、符号量を減らすのに効果的である。
【０２６８】
そして、図３３において、各画素における誤差の絶対値の合計を算出すると「９００」となり、また、各誤差の２乗平均は「１５２」である。
【０２６９】
従って、図２２に示した拡張ＪＰＥＧの方が、誤差が小さく、画質が改善されていることが分かる。
【０２７０】
また、上記図１５に示したようなオリジナルの８×８画素ブロックのデータは、通常のＪＰＥＧにより符号化すると４３２ビットとなるのに対して、拡張ＪＰＥＧにより符号化すると３６８ビットとなった。該図１５のデータ例では、上述したように、ヘッダ部分に２４ビットのヘッダ情報が付加されるが、それでも４０ビット（つまり、この例では符号化後のデータ量の１割弱程度）のデータ量の削減を図ることができている。
【０２７１】
さらに、拡張ＪＰＥＧにより符号化されたデータを、通常のＪＰＥＧにより復号化してもエラー等が発生することはなく、拡張ＪＰＥＧによる復号化を行った場合ほど良好な画像を得ることはできないが、それでもブロック単位で画像の概要を把握することができる程度の画像を得ることができる。例えば、５００万画素の撮像素子により撮像された画像は、２５００×２０００程度の解像度となるが、この画像をブロック化すると約３１３×２５０ブロックになるために、従来のＪＰＥＧ復号によっても、十分に画像の概要を把握可能な画像を復号することができる。
【０２７２】
図２６は、拡張ＪＰＥＧによる処理が可能な機器と、従来のＪＰＥＧによる処理のみが可能な機器と、を組み合わせたときのシステム構成を示す図である。
【０２７３】
この図２６に示す構成例においては、ＪＰＥＧにより符号化したＪＰＥＧ画像ファイル４１ａとＪＥＸにより符号化したＪＥＸ画像ファイル４１ｂとを生成可能なデジタルカメラ４１と、ＪＰＥＧによる復号化のみが可能なパーソナルコンピュータ（ＰＣ）４２と、ＪＥＸによる復号化が可能なソフトウェア４４をインストールすることにより、ＪＰＥＧによる復号化とＪＥＸによる復号化との両方を行い得るＰＣ４３と、を組み合わせたシステムを示している。
【０２７４】
デジタルカメラ４１は、例えば、ＪＰＥＧ方式による画像圧縮と、ＪＥＸ方式による画像圧縮と、の両方、または所望に選択した一方、を行うことができるように構成されたものであるとする。このデジタルカメラ４１により、被写体を撮像してＪＰＥＧ方式により圧縮して得られた画像がＪＰＥＧ画像ファイル４１ａ、同一被写体を撮像してＪＥＸ方式により圧縮して得られた画像がＪＥＸ画像ファイル４１ｂである。ＪＥＸ画像ファイル４１ｂによる画像は、上述したように、デジタルカメラ４１の撮像素子から出力されるＲＡＷ画像とのデータ誤差が、ＪＰＥＧ画像ファイル４１ａによる画像よりも小さく、より細部まで精密に再現される画質の高い画像となっている。
【０２７５】
デジタルカメラ４１から、ＪＰＥＧ画像ファイル４１ａとＪＥＸ画像ファイル４１ｂとを、例えば無線ＬＡＮやＵＳＢケーブルやメモリカード等を介して、ＰＣ４２へ転送したとする。ＰＣ４２は、ＪＰＥＧ復号を行うことができるために、ＪＰＥＧ画像ファイル４１ａについては復号化された表示画像４２ａを得ることができる。一方、ＪＥＸ画像ファイル４１ｂについては、ＪＥＸ復号ではなくＪＰＥＧ復号を行っても、エラーが発生することもなく復号処理を行うことができるが、画素ブロック内のパーミュテーションが元の順序に戻っていない表示画像４２ｂとなるために、ブロック内の絵柄が崩れていわゆるブロックノイズが発生したような状態の画像となる。しかしながら、画像全体の絵柄は崩れることがないために、画像の概要を把握することが可能である。特に、画素数の多い高精細な画像は、生成されるブロック数も多くなるために、画像全体の様子を容易に把握することができる。
【０２７６】
次に、デジタルカメラ４１から、ＪＰＥＧ画像ファイル４１ａとＪＥＸ画像ファイル４１ｂとを、ＰＣ４３へ転送したとする。このＰＣ４３は、上述したように、例えばＣＤ−ＲＯＭやＤＶＤ、あるいは通信回線を介して供給されるソフトウェア４４をインストールすることにより、ＪＥＸによる復号化を行うことが可能となっている。従って、ＪＰＥＧ画像ファイル４１ａを通常通りの表示画像４３ａとして復号することができるとともに、ＪＥＸ画像ファイル４１ｂはこのＪＰＥＧ画像ファイル４１ａよりも画質の高い表示画像４３ｂとして再現される。
【０２７７】
また、ＰＣ４２において、ブロック状のノイズが発生したような状態で表示される表示画像４２ｂも、ＰＣ４３へ該表示画像４２ｂに対応するＪＥＸ画像ファイル４１ｂを転送することにより、画質の高い表示画像４３ｂを復号することができる。
【０２７８】
こうして、画質を向上しながら、データ量の削減を図り、しかも拡張ＪＰＥＧによって符号化した画像ファイルを、従来のＪＰＥＧ復号化処理によってもある程度の画質で再現することが可能な優れた画像圧縮方式となる。
【０２７９】
なお、上述では、拡張ＪＰＥＧファイルを生成する装置として、デジタルカメラを例に挙げたが、もちろんこれに限るものではない。拡張ＪＰＥＧファイルを生成する装置としては、例えば撮像装置を一例に挙げることができる。該撮像装置は、光学的な被写体像を電子的な撮像素子等を用いて撮像することにより、画像データを取得する装置やシステムを広く含む。撮像装置としては、例えば、電子スチルカメラ、ビデオカメラ、カメラ付携帯電話、カメラ搭載型ＰＣ、内視鏡（例えば胃カメラ）などの撮影可能な医療機器、室内・外の監視カメラとこれらのカメラから得られた信号を別の場所で信号処理することにより画像データを得る監視システム、印刷された画像等を電子的に取り込むためのスキャナ、フィルム画像を電子的に取り込むためのフィルムスキャナ、などが例に挙げられる。また、拡張ＪＰＥＧファイルを生成する撮像装置以外の装置としては、ＰＣなどのコンピュータが挙げられる。すなわち、拡張ＪＰＥＧの処理を行う対象となる画像は、撮影によって得られる自然画像に限るものではなく、コンピュータ等において生成されるコンピュータグラフィックスや、ビットマップ等に展開された文字データ、各種の画像データを合成したり加工したりして得られる画像データ、などを広く含んでいる。従って、こうした画像データを生成し得る装置は、広く、拡張ＪＰＥＧファイルを生成する装置の対象となる。
【０２８０】
また、ＰＣなどのコンピュータは、ＪＥＸ符号化／復号化ソフトウェアをインストールして実行することにより、ＪＥＸの処理をソフトウェア的に行うことができるデバイスとなり得るが、一方、ＪＥＸ符号化／復号化を行うための拡張ボード等を搭載することにより、ＪＥＸの処理をハードウェア的に行うことができるデバイスともなり得る。
【０２８１】
なお、ＪＥＸには、広義の定義と、狭義の定義とがある。広義の定義は、ＪＰＥＧの処理と、ＪＰＥＧには含まれない画素データの並べ換え等の処理と、の両方を含む処理全体をＪＥＸと呼ぶものである。すなわち、広義のＪＥＸは、ＪＰＥＧを含むものとなっている。一方、狭義のＪＥＸは、広義のＪＥＸと、従来のＪＰＥＧと、の差分を指すものである。この場合には、画素データの並べ換え等の処理に該当する部分のみをＪＥＸと呼ぶことになる。
【０２８２】
これらの定義は、ＪＥＸ符号／復号処理を行うためのソフトウェアやハードウェアの提供方法に関係するものとなっている。
【０２８３】
すなわち、広義の定義に対応するＪＥＸ符号化ソフトウェア、またはＪＥＸ復号化ソフトウェアは、該ソフトウェア単体をＰＣ等にインストールするだけで、ＪＰＥＧ画像の処理と、ＪＥＸ画像の処理と、の両方を行うことができるものである。
【０２８４】
一方、狭義の定義に対応するＪＥＸ符号化ソフトウェアまたはＪＥＸ復号化ソフトウェアは、従来のＪＰＥＧ符号化ソフトウェア（基本符号化処理プログラム）またはＪＰＥＧ復号化ソフトウェア（基本復号化処理プログラム）が既にインストールされているＰＣ等に、例えば周辺ソフトウェア、あるいはアドオンするタイプのモジュール等として追加インストールすることにより、ＪＰＥＧ画像の処理に加えて、ＪＥＸ画像の処理も行うことができるようにするものである。
【０２８５】
これらは、ソフトウェアの提供方法として、適応的に使い分け、共存することが可能である。例えば、ＪＰＥＧ符号化／復号化ソフトウェアをもっていないユーザに対しては、広義の定義に対応するＪＥＸ符号化／復号化ソフトウェアを提供することで、ユーザは２度のインストール作業を要することなく、すぐにＪＰＥＧ画像およびＪＥＸ画像を処理することができるようになる利点がある。一方、既にＪＰＥＧ符号化／復号化ソフトウェアをもっているユーザに対しては、狭義の定義に対応するＪＥＸ符号化／復号化ソフトウェアを提供することで、既存のソフトウェアを拡張して、ＪＥＸ画像の処理も行うことができるようになる利点がある。
【０２８６】
このような新しい規格は、普及を図るのが難しいという課題がある。これに対して、出願人が提案するＪＥＸは、現在既に広範に普及しているＪＰＥＧを含む上位互換に該当するものであるために、汎用性があるという点で、普及を図るにも有利となっている。
【０２８７】
さらに、例えば、ＪＥＸ符号化ソフトウェアは有料で提供するが、ＪＥＸ復号化ソフトウェアについては無料で頒布するといったビジネス手法を取り入れることにより、短期間での広い普及を図ることも可能になると考えられる。
【０２８８】
また、ハードウェアについても、例えば、広義の定義に対応するＪＥＸ符号化／復号化拡張ボードを提供したり、あるいは、ＪＰＥＧ符号化／復号化拡張ボード（基本符号化／復号化装置）を既にもっているユーザに対して、狭義の定義に対応するＪＥＸ符号化／復号化拡張ボードを提供することが考えられる。
【０２８９】
次に、図２７はＪＥＸを動画像に適用し得る符号器の構成を示すブロック図、また、図３４は、従来の動画像符号器の構成を示すブロック図である。
【０２９０】
この符号器は、減算器５１と、ＪＥＸ処理部５２と、ヘッダ情報メモリ５３と、ＤＣＴ処理部５４と、量子化部５５と、逆量子部５６と、ＩＤＣＴ処理部５７と、逆ＪＥＸ処理部５８と、加算器５９と、フレームメモリ６０と、動き補償部６１と、可変長符号化部６２と、合成部６３と、を有して構成されている。
【０２９１】
このように、ＪＥＸを適用し得る動画像符号器は、図３４に示す従来の動画像符号器に対して、ＪＥＸ処理部５２と、ヘッダ情報メモリ５３と、逆ＪＥＸ処理部５８と、を追加したものとなっている。また、図３４に示す合成部６３は、マーカなどの情報を付加するためのものであるが、この図２７に示す合成部６３は、さらに、ＪＥＸ用のヘッダ情報を付加するものとなっている。
【０２９２】
上記減算器５１は、入力信号から、後述する予測信号を減算して、予測誤差信号として出力するものである。
【０２９３】
上記ＪＥＸ処理部５２は、ＪＰＥＧにおける処理と同様に、画素ブロック内の列に関するパーミュテーションと行に関するパーミュテーションとを必要に応じて行うものである。
【０２９４】
上記ヘッダ情報メモリ５３は、ＪＥＸ処理部５３により生成されたＪＥＸ用のヘッダ情報を記憶するものである。
【０２９５】
上記ＤＣＴ５４は、ＪＥＸ処理部５２から出力される画素ブロックに、ＤＣＴによる空間周波数変換を行うものである。
【０２９６】
上記量子化部５５は、ＤＣＴ５４から出力されるブロックデータを、量子化するものである。
【０２９７】
続く逆量子化部５６から動き補償部６１までは、量子化後のブロックデータに基づいて、予測信号を生成するための処理部となっている。
【０２９８】
すなわち、上記逆量子化部５６は、量子化部５５から出力されるブロックデータを、逆量子化するものである。
【０２９９】
上記ＩＤＣＴ５７は、逆量子化部５６から出力されるブロックデータを、逆ＤＣＴ変換することにより、周波数空間変換を行うものである。
【０３００】
上記逆ＪＥＸ処理部５８は、ヘッダ情報メモリ５３に記憶されているＪＥＸ用のヘッダ情報を読み出して、ＩＤＣＴ５７から出力される画素ブロック内の列に関する逆パーミュテーションと行に関する逆パーミュテーションとを行うものである。
【０３０１】
上記加算器５９は、逆ＪＥＸ処理部５８から出力されるデータと、動き補償部６１から出力される予測信号と、を加算して局部復号信号として出力するものである。
【０３０２】
上記フレームメモリ６０は、加算器５９から出力される局部復号信号を記憶するものである。
【０３０３】
上記動き補償部６１は、フレームメモリ６０に記憶されている局部復号信号に動き補償を行うものである。そして、この動き補償部６１から出力される予測信号が、上記減算器５１と加算器５９とへそれぞれ出力されるようになっている。
【０３０４】
上記可変長符号化部６２は、量子化部５５から出力されるブロックデータに、ジグザグスキャンやハフマン符号化などの処理を行うものである。
【０３０５】
上記合成部６３は、マーカなどの情報と、可変長符号化部６２から出力される符号化データと、上記ヘッダ情報メモリ５３から読み出したＪＥＸ用のヘッダ情報と、を合成して、符号化ビット列として出力するものである。
【０３０６】
なお、動画を復号化する際にも、ほぼ同様に、ＪＥＸ用のヘッダ情報を用いて、逆ＪＥＸ処理を行えば良いために、詳しい説明は省略する。
【０３０７】
ところで、例えばＭＰＥＧファイルは、フレーム内符号化画像（画像データ）であるＩピクチャと、フレーム間順方向予測符号化画像（差分画像データ）であるＰピクチャと、双方向予測符号化画像（差分画像データ）であるＢピクチャと、で構成される。
【０３０８】
このような動画構造において、上述したようなパーミュテーションをどのピクチャに対してどのように適用するかについては、種々の方法が可能である。
【０３０９】
例えば、Ｉピクチャのみをパーミュテーションを用いた符号化により圧縮し、他のＰピクチャおよびＢピクチャは、パーミュテーションを用いない従来の符号化により圧縮する方法が考えられる。この場合には、Ｉピクチャのヘッダ部分へ、上記ＪＰＥＧの場合に説明したような前処理のパラメータを記載する必要がある。この方法を用いれば、特にＩピクチャの符号量を削減することができる。
【０３１０】
他の方法としては、Ｉピクチャを該Ｉピクチャを分析して得られるパーミュテーションを用いた符号化により圧縮し、他のＰピクチャおよびＢピクチャを、Ｉピクチャの対応する画素ブロックに対して適用したパーミュテーションと同一のパーミュテーションにより前処理することが考えられる。この方法を用いれば、より顕著に符号量を削減することが可能となる。
【０３１１】
さらに、Ｉピクチャに前処理を施すのではなく、Ｐピクチャ、Ｂピクチャの差分信号画素ブロックに施すことも可能であり、これは非常に効果的な方法である。つまり、差分信号画素ブロックにおいては、ほぼ全ての信号が０に近い小さな値となり、動きが存在する部分に限り、大きな信号値となっている。従って、例えば、信号値が大きなエントリーを含む列、または行のみを再配列することにより、信号値が大きなエントリーを容易に一箇所に集中させることができ、ＤＣＴ係数の高周波成分を減らして、符号量を減らすことができるためである。また、ＰピクチャやＢピクチャには、全ての差分信号が０に近い画素ブロックが存在するが、これらの差分信号ブロックに対しては、空間周波数変換であるＤＣＴなどの符号化は一切行われないために、当然にして空間周波数変換の前処理となるパーミュテーションも行われない。また、ＭＰＥＧ４などの動画圧縮では、コメントやユーザデータなどのヘッダ情報は、ピクチャ毎に記述するのではなく、複数のＩピクチャ、Ｐピクチャ、Ｂピクチャを含むグループ（"Group of Video Object Plane"）毎に記述される。従って、本実施例に係るパラメータに関しては、複数のピクチャ分の前処理のパラメータをまとめて、該グループのヘッダ部分に記述するようにする。
【０３１２】
なお、パーミュテーション処理が施された圧縮動画データを従来のＭＰＥＧによって再生すると、絵柄の崩れが無視し得ない程度になる。従って、動画圧縮に対してパーミュテーション前処理を施す場合は、従来のＭＰＥＧデコーダで復号されることを意図するのではなく、パーミュテーション処理を用いた拡張されたＭＰＥＧデコーダによる復号を前提とするべきである。例えば、動画圧縮時に圧縮モードを設定することができるようにし、圧縮モードを設定する際に高圧縮率を意図してパーミュテーション処理を行う（空間変換モードを設定する）か、あるいは従来のＭＰＥＧによる復号化を想定して行わない（空間変換モードを設定しない）か、を選択することができるようにすると良い。
【０３１３】
このような構成によれば、動画に関する符号化を行う際に、ＪＥＸによる処理を行うことにより、より画質が良く圧縮率の高い動画像データを得ることができる。
【０３１４】
なお、上述では、８×８画素ブロックのデータを行のパーミュテーションと、列のパーミュテーションとを組み合わせることにより、画素の置き換えを行った。この場合には、変換後に取り得る画素配置は８！×８！通りである。これに対して、６４個の画素を６４カ所の画素位置に格納する画素配置は６４！通りある。従って、行のパーミュテーションと列のパーミュテーションとの組み合わせでは成し得ない画素配置が存在することになり、最も圧縮率が高い画素配置を取り得るとは限らないことが分かる。原理的には、８×８画素ブロックを６４次元のベクトルとして表現して、このベクトルの成分同士をパーミュテーションにより例えば降べきの順（あるいは昇べきの順）に並べ換え、その後に、ジグザグスキャン部１１において行われているのと同様の方法により、８×８画素ブロック内に左上角の画素位置からジグザグに格納していくことにより、より圧縮率の高い画素配置を達成し得ると考えられる。ただし、この場合には、ヘッダ部に記載するべきＪＥＸヘッダ情報が大きなサイズのものとなって、トータルの画像ファイルサイズが大きくなってしまうことが考えられる。
【０３１５】
このような実施例１によれば、空間周波数変換を行う前の画素空間に対して、該画素空間内における画素空間変換を施すようにしたために、空間周波数変換後の高周波成分を抑制することができ、より高い圧縮率の符号化が可能になるとともに、画質の劣化が少ない高品質の符号化を行うことが可能となる。
【０３１６】
このとき、空間周波数変換として線形可逆マッピングを用いているために、復号化時に該空間周波数変換によるデータ落ちを発生させることなく、画像を復元することができる。
【０３１７】
そして、線形可逆マッピングの中でも、特に、線形可逆パーミュテーションを用いているために、演算処理を高速に行うことができ、かつ画素の平均値や統計値等を変化させることがない。
【０３１８】
さらに、この拡張ＪＰＥＧ（ＪＥＸ）により符号化した画像ファイルは、従来のＪＰＥＧ復号化処理を行うことも可能であり、このときにはブロック単位のノイズが発生するものの、画像の概要を把握するのにはさほど差し支えがない程度に画像を再現することができるという利点がある。
【実施例２】
【０３１９】
図３５から図５９は本発明の実施例２を示したものであり、図３５は拡張されたＪＰＥＧ符号器の構成を示すブロック図である。
【０３２０】
この実施例２において、上述の実施例１と同様である部分については同一の符号を付して説明を省略し、主として異なる点についてのみ説明する。
【０３２１】
上述した実施例１における拡張されたＪＰＥＧ符号器は、通常のＪＰＥＧ符号化処理の前処理としてパーミュテーションを行うものであったが、この実施例２における拡張されたＪＰＥＧ符号器は、通常のＪＰＥＧ符号化処理の前処理として可逆なローパスフィルタ（ＬＰＦ）処理（これも、可逆な画素空間変換の１つである。）を行うものとなっている。
【０３２２】
すなわち、この実施例２における拡張されたＪＰＥＧ符号器は、実施例１の図１に示した構成における列操作判定部４と行操作判定部５とを取り除いて、代わりに空間変換手段たるフィルタ部１４を設けたものとなっている。このフィルタ部１４へは、符号化制御部２から符号化を制御するために必要な制御パラメータ等が入力されるようになっている。
【０３２３】
また、該符号化制御部２から、量子化テーブル生成部９により生成される量子化テーブルを制御するための後述するスケールファクターＳＦ等が入力されるようになっている。このスケールファクターＳＦは、該量子化テーブル生成部９を介して、合成部１３へも入力され、ヘッダ情報へ付加されるようになっている。
【０３２４】
次に、図３６は、拡張されたＪＰＥＧ復号器の構成を示すブロック図である。
【０３２５】
この図３６に示す拡張されたＪＰＥＧ復号器は、上記図３５に示した拡張されたＪＰＥＧ符号器により符号化された画像データを復号化するためのものである。
【０３２６】
すなわち、この実施例２における拡張されたＪＰＥＧ復号器は、実施例１の図２に示した構成における行操作部３１と列操作部３２と復号化制御部３０とを取り除いて、代わりに逆空間変換手段たる逆フィルタ部３４を設けたものとなっている。この逆フィルタ部３４へは、ヘッダ復号部２９から復号化を制御するために必要な制御パラメータ等が入力されるようになっている。
【０３２７】
この実施例２における広義の意味でのＪＥＸ処理全体の流れは、実施例１の図３に示したものと同様である。
【０３２８】
図３７は、図３のステップＳ２におけるＪＥＸ符号の処理の概要を示すフローチャートである。
【０３２９】
この実施例２のＪＥＸ符号化処理は、ローパスフィルタ処理を行う際に必要な制御パラメータを決定するために行われるＪＥＸ（ＬＰＦ）前処理（ステップＳ６１）と、決定された制御パラメータに基づいて画像をローパスフィルタ処理するＪＥＸ（ＬＰＦ）本処理（ステップＳ６２）と、の２段階に渡って行われる。
【０３３０】
図３８は、図３７のステップＳ６１におけるＪＥＸ（ＬＰＦ）前処理の詳細を示すフローチャートである。
【０３３１】
この処理が開始されると、ユーザ入力（ステップＳ７０）と、データ入力（ステップＳ７１）と、が行われる。ユーザの設定により入力される項目としては、「Ｃｈｏｉｃｅ」と呼ばれる設定項目と、「Ｍｅｔｈｏｄ」と呼ばれる設定項目と、がある。
【０３３２】
後者の設定項目Ｍｅｔｈｏｄは、狭義のＪＥＸ符号化処理としてのローパスフィルタ処理を、圧縮率を高くすることを主眼として行うか、あるいは画質を高くすることを主眼として行うか、を選択するための項目となっている。ここで、高圧縮率が選択されたときにはＭｅｔｈｏｄ＝１が設定され、高画質が選択されたときにはＭｅｔｈｏｄ＝０が設定されるようになっている。
【０３３３】
また、前者の設定項目Ｃｈｏｉｃｅは、項目Ｍｅｔｈｏｄで選択された高圧縮率または高画質に対して、その程度をどこまで追求するかを示す尺度となっていて、Ｃｈｏｉｃｅ＝０が選択されたときには予め定められている標準の程度が設定され、Ｃｈｏｉｃｅ＝１が選択されたときには上記標準の程度よりも強い程度が設定され、Ｃｈｏｉｃｅ＝２が選択されたときには最強の程度が選択されるようになっている。
【０３３４】
一方、データ入力は、例えば符号化制御部２に予め記憶されている参照ブロック数ＮTestが入力されるようになっている。画像は上述したように８×８画素ブロック単位で処理されるようになっており、例えば６４０×４８０画素でなるＶＧＡ画像の場合には、８０×６０＝４８００がトータルブロック数ＮTotal となる。上記参照ブロック数ＮTestは、このようなトータルブロック数ＮTotal 以下の範囲内で、適宜の数が設定されるようになっている。
【０３３５】
この参照ブロック数ＮTestを決定する方法としては、例えば、次の数式４６に示すようにして、トータルブロック数ＮTotal に応じて設定することが考えられる。 
［数４６］
2006050516.tif 000038
ここに、数式４６における大括弧は、括弧内の数値を超えない最大の整数を表し、ｍａｘ（Ａ，Ｂ）は、ＡとＢとの内の大きい方をとることを意味している。
【０３３６】
この数式４６を用いた場合には、上記ＶＧＡ画像の例では、参照ブロック数ＮTestは１７となる。
【０３３７】
なお、この数式４６に示したものは一例であって、その他の手段により参照ブロック数ＮTestを決定するようにしてももちろん構わない。
【０３３８】
次に、画像を構成する全ての８×８画素ブロックの中から、上記ステップＳ７１で入力された参照ブロック数ＮTest個の８×８画素ブロックをランダムに選択する（ステップＳ７２）。なお、ここでは全画素ブロックの中からランダムに選択するようにしているが、これに限らず、適宜の位置の画素ブロックを選択するようにしても構わない。例えば、画像の中央に主要被写体がある場合に、該主要被写体に対する処理を最適化したいときには、選択する画素ブロックを画像の中央付近により高い割合で配置することが考えられる。
【０３３９】
続いて、上記ステップＳ７２で選択された各８×８画素ブロックの画像データに対して、図３９に示すような（η，ＳＦ）テーブルに基づいて、ローパスフィルタ処理を含む広義のＪＥＸ符号化処理を行う（ステップＳ７３）。
【０３４０】
ここに、図３９は、設定項目Ｃｈｏｉｃｅに応じて選択される制御パラメータの組み合わせ（η，ＳＦ）を示す図表である。この図３９に現れる制御パラメタの内のηは、ローパスフィルタの強さを設定するためのパラメータである。すなわち、この実施例２においては、８×８画素ブロックの画素データｆ（ｋ，ｌ）を８行８列の行列として表現したときに、次の数式４７に示すようなＬＰＦ行列Ｌ（ｋ，η）を掛けることにより、ローパスフィルタ処理を行うようになっている。 
［数４７］
2006050516.tif 000039
【０３４１】
この数式４７において、対角要素を左上から右下へ向けて順に見たときに最初に現れる１−ηは、ｋ行ｋ列（ｋ＝０，…，６）にあるものとする。ここに、ηは、０≦η＜（１／２）の範囲の値を取り得るようになっている。なお、η＝（１／２）は、後述する数式４８を見れば分かるように、逆行列が存在しない（非可逆である）ために除外されている。また、η＞（１／２）は、ある画素位置の画素データに、他の画素位置の画素データを、自分自身よりも大きい割合で加えることになってしまい、ローパスフィルタとしては過剰になるために除外されている。
【０３４２】
このηは、０のときには行列Ｌ（ｋ，η）が単位行列となってローパスフィルタ効果が０となり、０に近いときにはローパスフィルタ効果が小さく、（１／２）に近付くにつれて大きなローパスフィルタ効果を奏するようになっている。
【０３４３】
なお、画素データｆ（ｋ，ｌ）に対して、ＬＰＦ行列Ｌ（ｋ，η）を左から掛けると縦フィルタ演算（隣接する行同士のギャップを減らす演算）が行われ、右から掛けると横フィルタ演算（隣接する列同士のギャップを減らす演算）が行われる。つまり、画素データｆ（ｋ，ｌ）のある行におけるｋ列の要素がａ、（ｋ＋１）列の要素がｂであるとし、これにＬＰＦ行列Ｌ（ｋ，η）を例えば右から掛けたとする。すると、演算後の同行ｋ列の要素は（１−η）ａ＋ηｂとなり、演算後の同行（ｋ＋１）列の要素はηａ＋（１−η）ｂとなる。従って、演算前の横方向のギャップ｜ａ−ｂ｜に対して、演算後の横方向のギャップは（１−２η）｜ａ−ｂ｜となり、上記ηの取り得る範囲から０＜（１−２η）≦１であるために、横方向のギャップが抑制されていることが分かる。なお、ＬＰＦ行列Ｌ（ｋ，η）を左から掛けた場合も、ほぼ同様にして、縦方向のギャップが抑制されることが分かる。
【０３４４】
そして、ＤＣＴにおけるＤＣ成分は、このローパスフィルタによって変化しないという特徴を有している。
【０３４５】
また、逆ＬＰＦ演算を行うための行列を数式４８に示す。 
［数４８］
2006050516.tif 000040
【０３４６】
上記数式４７の逆行列であるこの数式４８において、対角要素を左上から右下へ向けて順に見たときに最初に現れる（１−η）／（１−２η）は、ｋ行ｋ列（ｋ＝０，…，６）にあるものとなっている。
【０３４７】
なお、これら数式４７および数式４８に示した行列は、ＬＰＦおよび逆ＬＰＦを行うための行列の一例を示したものであり、これらに限るものではない。
【０３４８】
そして、図３９に示す例においては、ηとして取り得る値が、０，（１／８），（１／６），（１／５），（１／４）の５種類となっている。これらは実用性に鑑みて設定したものであるが、もちろん一例であって、他の値を取り得るようにしても構わない。
【０３４９】
一方、図３９に示す制御パラメータの内のＳＦは、量子化テーブル（Ｑテーブル）に積算することにより、量子化ステップを制御するためのパラメータとなっている。該図３９に示す例においては、ＳＦとして取り得る値が、１，（７／８），（６／８），（５／８），（４／８），（３／８）の６種類となっている。ここに、ＳＦ＝１の場合には、オリジナルの量子化テーブルをそのまま用いることを示している。このスケールファクターＳＦについても、他の値を設定することができるようにしても構わないのは同様である。
【０３５０】
このような図３９に示すテーブルおいて、○で示される組み合わせ（η，ＳＦ）が、設定項目Ｃｈｏｉｃｅ＝０のときに選択されるデフォルト値となっている。また、□で示される組み合わせ（η，ＳＦ）が、設定項目Ｃｈｏｉｃｅ＝１のときに、上記○で示される組み合わせ（η，ＳＦ）に対して追加して選択されるオプション値となっている。さらに、△で示される組み合わせ（η，ＳＦ）が、設定項目Ｃｈｏｉｃｅ＝２のときに、上記○および□で示される組み合わせ（η，ＳＦ）に対して追加して選択される値となっている。
【０３５１】
こうして、上記ステップＳ７２で選択されたＮTest個の８×８画素ブロックｎi （ここに、変数ｎi は、全ての参照８×８画素ブロックを指し示す変数である。）のそれぞれについて、設定項目Ｃｈｏｉｃｅの値に応じて選択された各組み合わせ（η，ＳＦ）を用いて、ローパスフィルタ処理を含む広義のＪＥＸ符号化処理が行われる。これにより、各参照８×８画素ブロックデータｆ（ｋ，ｌ）に、ローパスフィルタ処理、ＤＣＴ、およびハフマン符号化が行われた画像データが得られる。
【０３５２】
その後、符号化された画像データに、広義のＪＥＸ復号化処理を行う。これにより、ハフマン復号化、逆ＤＣＴ、および逆ローパスフィルタ処理が行われた８×８画素ブロックデータｆ’（ｋ，ｌ）が得られる。そして、符号化前の８×８画素ブロックデータｆ（ｋ，ｌ）から、符号化および復号化後の８×８画素ブロックデータｆ’（ｋ，ｌ）を減算して絶対値を取り、各画素に係る絶対値の総和を取ることにより、差分の絶対値の総和Ａｂｓ（ｎi ，η，ＳＦ）を算出する。
【０３５３】
さらに、広義のＪＥＸ符号化処理により得られたハフマン符号の符号長と、該８×８画素ブロックに係るヘッダ情報のビット長と、を加算したものを、Ｂｉｔ（ｎi ，η，ＳＦ）として算出する（ステップＳ７４）。
【０３５４】
こうして得られたＡｂｓ（ｎi ，η，ＳＦ）およびＢｉｔ（ｎi ，η，ＳＦ）を用いて、全ての参照８×８画素ブロックｎi に関し、画質評価値Ａｂｓ（η，ＳＦ）および符号長評価値Ｂｉｔ（η，ＳＦ）を、次の数式４９および数式５０に示すように算出する。 
［数４９］
2006050516.tif 000041
［数５０］
2006050516.tif 000042
ここに、記号「：＝」は代入を意味している。
【０３５５】
上記画質評価値Ａｂｓ（η，ＳＦ）は、値が小さいほど高画質であることを示し、上記符号長評価値Ｂｉｔ（η，ＳＦ）は、値が小さいほど高圧縮率であることを示すものとなっている。
【０３５６】
そして、Ｃｈｏｉｃｅの値に応じて（η，ＳＦ）テーブルから選択される全ての組み合わせ（η，ＳＦ）について、処理を行ったか否かを判断し（ステップＳ７５）、まだ未処理の組み合わせ（η，ＳＦ）がある場合には、上記ステップＳ７３へ行って、次の組み合わせ（η，ＳＦ）について処理を行う。
【０３５７】
こうして、ステップＳ７５において、全ての組み合わせ（η，ＳＦ）についての処理が行われたと判断された場合には、項目Ｍｅｔｈｏｄが１であるか否かをさらに判断する（ステップＳ７６）。
【０３５８】
ここで、Ｍｅｔｈｏｄ＝１である場合には、高圧縮率が選択されていることになるために、Ａｂｓ（η，ＳＦ）≦Ａｂｓ（０，１）を満たす組み合わせ（η，ＳＦ）の内の、Ｂｉｔ（η，ＳＦ）が最小になる組み合わせ（η1 ，ＳＦ1 ）を抽出する。ここに、条件Ａｂｓ（η，ＳＦ）≦Ａｂｓ（０，１）は、通常のＪＰＥＧ処理を行ったときよりも画質が劣化することがない、という条件を、必要条件として課しているためである。なお、Ｂｉｔ（η，ＳＦ）が最小になる組み合わせ（η1 ，ＳＦ1 ）が複数ある場合には、Ａｂｓ（η，ＳＦ）がより小さくなる方を選択すると、さらに画質も合わせて向上することが可能となる。一方、Ａｂｓ（η，ＳＦ）≦Ａｂｓ（０，１）を満たす組み合わせ（η，ＳＦ）が存在しない場合には、ローパスフィルタ処理を行わないことを示す（０，１）が自動的に設定される（ステップＳ７７）。
【０３５９】
また、上記ステップＳ７６において、Ｍｅｔｈｏｄ＝１でない（つまり、このときにはＭｅｔｈｏｄ＝０となる）であると判断された場合には、高画質が選択されていることになるために、Ｂｉｔ（η，ＳＦ）≦Ｂｉｔ（０，１）を満たす組み合わせ（η，ＳＦ）の内の、Ａｂｓ（η，ＳＦ）が最小になる組み合わせ（η0 ，ＳＦ0 ）を抽出する。ここに、条件Ｂｉｔ（η，ＳＦ）≦Ｂｉｔ（０，１）は、通常のＪＰＥＧ処理を行ったときよりもデータサイズが大きくなることがない、という条件を、必要条件として課しているためである。なお、Ａｂｓ（η，ＳＦ）が最小になる組み合わせ（η0 ，ＳＦ0 ）が複数ある場合には、Ｂｉｔ（η，ＳＦ）がより小さくなる方を選択すると、さらに圧縮率も合わせて向上することが可能となる。一方、Ｂｉｔ（η，ＳＦ）≦Ｂｉｔ（０，１）を満たす組み合わせ（η，ＳＦ）が存在しない場合には、ローパスフィルタ処理を行わないことを示す（０，１）が自動的に設定される（ステップＳ７８）。
【０３６０】
上記ステップＳ７７またはステップＳ７８の処理が終了したら、選択された（η，ＳＦ）を出力してから（ステップＳ７９）、このＪＥＸ（ＬＰＦ）前処理を終了する。
【０３６１】
次に、図４０は、図３７のステップＳ６２におけるＪＥＸ（ＬＰＦ）本処理の詳細を示すフローチャートである。
【０３６２】
このＪＥＸ（ＬＰＦ）本処理は、上記図３８に示したようなＪＥＸ（ＬＰＦ）前処理において設定された（η，ＳＦ）に基づいて、画像全体にローパスフィルタ処理を行うものとなっている。
【０３６３】
すなわち、この処理を開始すると、ｎ（ここに、ｎ＝１，…，ＮTotal ）番目の８×８画素ブロックｆ（ｋ，ｌ）を入力する（ステップＳ８１）。
【０３６４】
そして、データセットＤＡを入力する（ステップＳ８２）。このデータセットＤＡは、上記ηと、Ｔｈｃ２と、Ｔｈｒ２と、Ｍｏｄｅベクトルと、Ｐｏｓベクトルと、を含んだデータの組みとなっている。ここに、Ｔｈｃ２は、後述する横方向差分の最大値Ｖｓｃが、横フィルタ演算を行う必要があるほど大きいか否かを判断するための閾値である。また、Ｔｈｒ２は、後述する縦方向差分の最大値Ｖｓｒが、縦フィルタ演算を行う必要があるほど大きいか否かを判断するための閾値である。そして、Ｍｏｄｅベクトルは、ここでは８次元のベクトルとして定義されていて、縦フィルタ演算と横フィルタ演算との何れが行われたかを示す値が設定されるようになっている。一例としては、縦フィルタ演算を示す値として「１」が、横フィルタ演算を示す値として「２」が、それぞれ設定されるようになっている。なお、ベクトルの次元数８は、縦フィルタ演算または横フィルタ演算でなるローパスフィルタ演算を、合計最大８回まで行うことを示している。ローパスフィルタ処理を何度も繰り返すと、画像は次第に平坦になっていくために、過度の平坦化を抑制するために、ここでは上限を８回と定めている。なお、この上限が８回に限るものではないことはもちろんである。さらに、Ｐｏｓベクトルは、縦フィルタ演算または横フィルタ演算が行われる対象となる８×８画素ブロックの行番号、または列番号が記録されるベクトルである。これらＭｏｄｅベクトルおよびＰｏｓベクトルの具体的な例については、後で図５５を参照して説明する。
【０３６５】
次に、ループ回数を示す変数Ｌｏｏｐに、１を代入する（ステップＳ８３）。ここに、記号「：＝」は、上述したように、代入を意味している。
【０３６６】
そして、Ｌｏｏｐが８よりも大きいか否かを判断し（ステップＳ８４）、大きくない場合には、横方向差分の最大値Ｖscと、この最大値Ｖscを与える列番号ｋの内の最小のものｋｃと、を算出する（ステップＳ８５）。
【０３６７】
続いて、縦方向差分の最大値Ｖsrと、この最大値Ｖsrを与える列番号ｌの内の最小のものｌｒと、を算出する（ステップＳ８６）。
【０３６８】
こうして算出した最大値Ｖscが、最大値Ｖsrよりも大きいか否かを判断し（ステップＳ８７）、大きい場合にはさらに最大値Ｖscが閾値Ｔｈｃ２よりも大きいか否かを判断する（ステップＳ８８）。ここで、最大値Ｖscが閾値Ｔｈｃ２よりも大きい場合には、横フィルタ演算を次の数式５１に示すように行うとともに、Ｍｏｄｅ（Ｌｏｏｐ）：＝１およびＰｏｓ（Ｌｏｏｐ）：＝ｋｃを設定する（ステップＳ９０）。 
［数５１］
2006050516.tif 000043
【０３６９】
一方、上記ステップＳ８７において、最大値Ｖscが最大値Ｖsr以下であると判断された場合には、さらに、最大値Ｖsrが閾値Ｔｈｒ２よりも大きいか否かを判断する（ステップＳ８９）。ここで、最大値Ｖsrが閾値Ｔｈｒ２よりも大きい場合には、縦フィルタ演算を次の数式５２に示すように行うとともに、Ｍｏｄｅ（Ｌｏｏｐ）：＝２およびＰｏｓ（Ｌｏｏｐ）：＝ｌｒを設定する（ステップＳ９１）。 
［数５２］
2006050516.tif 000044
【０３７０】
上記ステップＳ９０またはステップＳ９１が終了した場合、上記ステップＳ８８において最大値Ｖscが閾値Ｔｈｃ２以下であると判断された場合、上記ステップＳ８９において最大値Ｖsrが閾値Ｔｈｒ２以下であると判断された場合、には、変数Ｌｏｏｐをインクリメントしてから（ステップＳ９２）、上記ステップＳ８４へ戻って上述したような処理を繰り返して行う。
【０３７１】
こうして、上記ステップＳ８４において、変数Ｌｏｏｐが８よりも大きくなったことが確認されたところで、ヘッダ情報Ｐｈｌ（ｎ）を生成し（ステップＳ９３）、ＬＰＦが施されたｆ（ｋ，ｌ）およびヘッダ情報Ｐｈｌ（ｎ）を出力して（ステップＳ９４）、このＪＥＸ（ＬＰＦ）本処理を終了する。
【０３７２】
なお、この図４０では、１つ（ｎ番目）の８×８画素ブロックについての処理を示したが、実際の処理では、ＮTotal 個の８×８画素ブロックについてこのような処理を行うことはいうまでもない。
【０３７３】
図４１は、図４０のステップＳ８５におけるＶscおよびｋｃの算出処理の詳細を示すフローチャートである。
【０３７４】
この処理を開始すると、８×８画素ブロックｆ（ｋ，ｌ）を横シフトしたデータを算出する（ステップＳ１０１）。
【０３７５】
そして、元のデータｆ（ｋ，ｌ）から、横シフト（左シフト）したデータを減算し、絶対値をとることにより、差分絶対値を演算する（ステップＳ１０２）。ただし、元のデータはｋ＝０，…，７までの８列分あるのに対して、横シフトしたデータはｋ＝０，…，６までの７列分であるために、減算はｋ＝０，…，６の７列分について行われ、算出される差分絶対値のデータは７×８＝５６個である。
【０３７６】
こうして算出された差分絶対値の内の、最大値Ｖscを探索する（ステップＳ１０３）。この最大値Ｖscを探索する処理を数式で表すと、次の数式５３に示すようになる。 
［数５３］
2006050516.tif 000045
【０３７７】
そして、最大値Ｖscを与える列番号ｋの内の最小のものｋｃを探索して（ステップＳ１０４）、この処理を終了する。なお、ステップＳ１０４の処理は、最大値Ｖscを与える列番号ｋが複数あるときにのみ機能し、１つしかないときには探索するまでもなくその列番号ｋが選択される。
【０３７８】
図４２は、図４０のステップＳ８６におけるＶsrおよびｌｒの算出処理の詳細を示すフローチャートである。
【０３７９】
この処理を開始すると、８×８画素ブロックｆ（ｋ，ｌ）を縦シフトしたデータを算出する（ステップＳ１０５）。
【０３８０】
そして、元のデータｆ（ｋ，ｌ）から、縦シフト（上シフト）したデータを減算し、絶対値をとることにより、差分絶対値を演算する（ステップＳ１０６）。ただし、元のデータはｌ＝０，…，７までの８行分あるのに対して、横シフトしたデータはｌ＝０，…，６までの７行分であるために、減算はｌ＝０，…，６の行分について行われ、算出される差分絶対値のデータは７×８＝５６個である。
【０３８１】
こうして算出された差分絶対値の内の、最大値Ｖsrを探索する（ステップＳ１０７）。この最大値Ｖsrを探索する処理を数式で表すと、次の数式５４に示すようになる。 
［数５４］
2006050516.tif 000046
【０３８２】
そして、最大値Ｖsrを与える行番号ｌの内の最小のものｌｒを探索して（ステップＳ１０８）、この処理を終了する。なお、ステップＳ１０８の処理は、最大値Ｖsrを与える行番号ｌが複数あるときにのみ機能し、１つしかないときには探索するまでもなくその行番号ｌが選択される。
【０３８３】
次に、図４３は、ＪＥＸ（ＬＰＦ）復号処理を示すフローチャートである。
【０３８４】
この処理を開始すると、ｎ番目のＩＤＣＴ変換ブロックｆ’（ｋ，ｌ）と、ヘッダ情報Ｐｈｌ（ｎ）と、ＬＰＦの強さを示すパラメータηと、を入力する（ステップＳ１１１）。
【０３８５】
そして、Ｍｏｄｅ（１），…，Ｍｏｄｅ（８）の全てに０を代入することにより、８次元ベクトルＭｏｄｅを初期化する（ステップＳ１１２）。なお、図４３において、ｉの前に付した「Ａ」の上下を反転させた記号は、任意のｉを示す記号である。
【０３８６】
続いて、ヘッダ情報Ｐｈｌ（ｎ）の第２ビットからセパレータ「０００」までのビット情報を、２ビットずつ、Ｍｏｄｅ（１），Ｍｏｄｅ（２），…の順に代入していくとともに、セパレータ「０００」から最後のビットまでのビット情報を３ビットずつＰｏｓ（１），Ｐｏｓ（２），…の順に代入していく（図４４，図４５等参照）（ステップＳ１１３）。
【０３８７】
そして、ループ回数を示す変数Ｌｏｏｐに、１を代入する（ステップＳ１１４）。
【０３８８】
次に、ループ回数に応じたモードベクトルの成分Ｍｏｄｅ（Ｌｏｏｐ）が２であるか否かを判断し（ステップＳ１１５）、Ｍｏｄｅ（Ｌｏｏｐ）が２である場合には、次の数式５５により、逆縦フィルタ演算を行う（ステップＳ１１６）。 
［数５５］
2006050516.tif 000047
【０３８９】
一方、上記ステップＳ１１５において、Ｍｏｄｅ（Ｌｏｏｐ）が２でないと判断された場合には、次に、Ｍｏｄｅ（Ｌｏｏｐ）が１であるか否かを判断する（ステップＳ１１７）。
【０３９０】
ここで、Ｍｏｄｅ（Ｌｏｏｐ）が１である場合には、次の数式５６により、逆横フィルタ演算を行う（ステップＳ１１８）。 
［数５６］
2006050516.tif 000048
【０３９１】
上記ステップＳ１１６またはステップＳ１１８が終了した場合には、変数Ｌｏｏｐをインクリメントしてから（ステップＳ１１９）、変数Ｌｏｏｐが８よりも大きいか否かを判断する（ステップＳ１２０）。
【０３９２】
ここで、変数Ｌｏｏｐが８以下である場合には、上記ステップＳ１１５へ戻って上述したような処理を繰り返して行う。
【０３９３】
一方、変数Ｌｏｏｐが８よりも大きいと判断された場合、または上記ステップＳ１１７においてＭｏｄｅ（Ｌｏｏｐ）が１でないと判断された場合には、変換されたｆ’（ｋ，ｌ）を出力して（ステップＳ１２１）、このＪＥＸ（ＬＰＦ）復号処理を終了する。
【０３９４】
なお、この図４３では、１つ（ｎ番目）のＩＤＣＴ変換ブロックについての処理を示したが、実際の処理では、ＮTotal 個のＩＤＣＴ変換ブロックについてこのような処理を行うことはいうまでもない。
【０３９５】
図４４は、ＭｏｄｅベクトルおよびＰｏｓベクトルの例を示す図表である。
【０３９６】
この図４４に示す例は、１つの８×８画素ブロックについて、８回のＬＰＦ処理が行われた例となっている。この例では、ｉ＝４，８のときのみがＭｏｄｅ（ｉ）＝２となっていて、縦フィルタ演算が行われたことを示しており、その他は全て横フィルタ演算が行われたことを示している。このＭｏｄｅ（ｉ）は、各２ビット値となっている。また、各ｉにおけるフィルタ演算が行われた行番号または列番号は、Ｐｏｓ（ｉ）で示されており、そのビット表現も合わせて示されている。ｋ，ｌは、ともに０〜７の範囲を取るために、ビット表現は、３ビット値となっている。
【０３９７】
なお、ＬＰＦ処理は、最大で８回行われるが、８回未満で終了することもある。例えばｊ（ｊ≦７）でＬＰＦ処理が終了したとすると、このときにはＭｏｄｅ（ｊ）の次にセパレータを記録し、Ｐｏｓ（１），…，Ｐｏｓ（ｊ）をその後に記録することになる。
【０３９８】
図４５は、ヘッダ情報Ｐｈｌ（ｎ）の例を示す図表である。
【０３９９】
図示のように、ｎ番目の８×８画素ブロックに係るヘッダ情報Ｐｈｌ（ｎ）は、インディケータＩｎｄと、Ｍｏｄｅ（ｉ）と、セパレータ（Separator）と、Ｐｏｓ（ｉ）と、を含んで構成されている。
【０４００】
インディケータＩｎｄは、フィラーと区別してデータ開始位置を示すための１ビットデータであり、全ての８×８画素ブロックに対して「１」が設定される。
【０４０１】
Ｍｏｄｅ（ｉ）は、上記図４４に示した「１」または「２」のデータが、２ビット値として順に記録された部分である。
【０４０２】
セパレータは、Ｍｏｄｅ（ｉ）とＰｏｓ（ｉ）とを区分するためのものであり、３ビット値で表現された０（つまり、ビット表現で「０００」）となっている。
【０４０３】
Ｐｏｓ（ｉ）は、上記図４４に示したビット表現のデータが順に記録された部分である。
【０４０４】
また、ＬＰＦ処理が一切施されなかった場合には、Ｐｈｌ（ｎ）＝「１００」となる。
【０４０５】
図４６は、画像全体に係るグローバルヘッダの例を示す図表である。
【０４０６】
このグローバルヘッダは、上述した実施例１と同様に、例えば図２４に示したコメントＣＯＭ部分や、ＥＸＩＦファイルのアプリケーションマーカセグメント等に記録されるようになっている。
【０４０７】
該グローバルヘッダは、バイナリ（ＡＳＣＩＩデータ）として記録される「ＪＥＸ」と、４ビット値として記録されるカテゴリと、８ビット値を３個分含む値（つまり、合計２４ビット値）として記録されるグローバルパラメータと、全ブロックに対するヘッダＰｈｌ（ｎ）と、を含んで構成されていて、さらに、必要に応じてフィラーが付加されるようになっている。
【０４０８】
図４７は、グローバルヘッダのカテゴリに記録するビット値の例を示す図表である。
【０４０９】
この例においては、カテゴリを４ビットのビット値で示すようになっている。まず、カテゴリ「００００」は、狭義のＪＥＸ処理を行わないことを示し、この場合には、広義のＪＥＸ処理が、通常のＪＰＥＧ処理と一致する。
【０４１０】
次に、カテゴリ「０００１」は、狭義のＪＥＸ処理として、実施例１で説明したようなパーミュテーションを行うことを示している。
【０４１１】
カテゴリ「００１０」は、狭義のＪＥＸ処理として、この実施例２で説明している可逆ＬＰＦ処理を行うことを示している。
【０４１２】
カテゴリ「００１１」は、狭義のＪＥＸ処理として、パーミュテーションと、可逆ＬＰＦ処理と、を併用することを示している。このケースについては、後で実施例３として説明する。
【０４１３】
なお、カテゴリとして割り当て可能なその他のビット値は、その他のＪＥＸ処理のための予約領域となっている。
【０４１４】
続いて、図４８は、図４６に示したグローバルパラメータの最初の８ビット値の例を示す図表である。
【０４１５】
ここでは、グローバルパラメータの最初の８ビット値として、パラメータηに対応するビット値を記録するようになっている。例えば、図３９に示したようなηの各値に対して、η＝０のとき「００００００００」が、η＝（１／８）のとき「０００００００１」が、η＝（１／６）のとき「００００００１０」が、η＝（１／５）のとき「００００００１１」が、η＝（１／４）のとき「０００００１００」が、それぞれビット値として記録されるようになっている。
【０４１６】
また、図４９は、図４６に示したグローバルパラメータの２番目の８ビット値の例を示す図表である。
【０４１７】
ここでは、グローバルパラメータの２番目の８ビット値として、スケールファクターＳＦに対応するビット値を記録するようになっている。例えば、図３９に示したようなＳＦの各値に対して、ＳＦ＝１のとき「００００００００」が、ＳＦ＝（７／８）のとき「０００００００１」が、ＳＦ＝（６／８）のとき「００００００１０」が、ＳＦ＝（５／８）のとき「００００００１１」が、ＳＦ＝（４／８）のとき「０００００１００」が、ＳＦ＝（３／８）のとき「０００００１０１」が、それぞれビット値として記録されるようになっている。
【０４１８】
なお、図４６に示したグローバルパラメータの３番目の８ビット値は、予約領域となっている。
【０４１９】
図５０は、画像データから抽出されたオリジナルの８×８画素ブロックのデータ例を示す図である。
【０４２０】
この図５０に示す画像データは、画素値「１０」の領域と、画素値「２２２」の領域と、に分かれており、例えば文字データ等の比較的コントラストが強い画像データとなっている。
【０４２１】
まず、図５１から図５４を参照して、図５０に示す画像データを、通常のＪＰＥＧにより処理したときについて説明する。
【０４２２】
図５１は、上記図５０に示すオリジナルの８×８画素ブロックのデータにレベルシフトおよびＤＣＴを行った結果を示す図表である。
【０４２３】
また、図５２は、上記図５１に示すブロックデータを量子化した結果を示す図表である。
【０４２４】
さらに、図５３は、上記図５２に示すブロックデータを逆量子化し逆ＤＣＴを施しレベルシフトを行って０〜２５５の範囲のデータに丸めた結果を示す図表である。
【０４２５】
そして、図５４は、上記図５３に示す復号化後の画素ブロックデータから、図５０に示したオリジナルの画素ブロックデータを減算した結果を示す図表である。
【０４２６】
この図５４に示す誤差の絶対値を合計すると６８５となり、また、ＪＰＥＧ符号化後の符号長は１９３ビットとなっている。
【０４２７】
これに対して、図５５から図５９は、可逆ＬＰＦによるＪＥＸ処理を行ったときの例を示している。
【０４２８】
まず、図５５は、ヘッダ情報から抽出されたモード情報およびフィルタ位置情報の例を示す図表である。この図５５に示す例は、上記図４４に示した例に対応するものとなっている。
【０４２９】
ヘッダ情報のＭｏｄｅベクトルから抽出されるモード（ｍｏｄｅ）情報に基づいて、演算が縦フィルタ演算であるか横フィルタ演算であるかを区別することができるとともに、Ｐｏｓベクトルから抽出されるフィルタ位置ｋｃ，ｌｒの情報に基づいて、どの位置にフィルタ演算を行うかを判断することが可能となっている。
【０４３０】
次に、図５６は、上記図５０に示すオリジナルの８×８画素ブロックのデータに、上記図５５に示したような８回のローパスフィルタ処理を行った結果を示す図表である。この図５６に示す結果からは、「１０」の画素値をとる画素が少なくなって、全体的に高周波成分が低減されたことが伺える。なお、該図５６を見れば分かるように、ローパスフィルタ処理後の画素値は小数点を持つ値となっているが、これは、画素値同士を混交させるローパスフィルタ処理を高い精度で行うために、浮動小数点演算が実行されているからである。
【０４３１】
続いて、図５７は、上記図５６に示すローパスフィルタ処理後の８×８画素ブロックのデータにレベルシフトおよびＤＣＴを行った結果を示す図表である。この図５７を、上記図５１と比べれば分かるように、可逆ローパスフィルタによって、ＤＣ成分が「１１６」のまま不変に保たれている。そして、高周波成分が明らかに低減していることが分かる。
【０４３２】
そして、図５８は、上記図５７に示すブロックデータを量子化した結果を示す図表である。
【０４３３】
この例においては、スケールファクタＳＦが「１」の条件で量子化が行われており、つまり、オリジナルの量子化テーブルをそのまま用いての量子化となっている。この図５８に示す結果を、上記図５２に示す結果と比べると、高周波成分が「０」になっている部分が増加していることが分かる。これにより、より高い圧縮率を達成し得ると期待することができる。
【０４３４】
さらに、図５９は、上記図５８に示すブロックデータを逆量子化し逆ＤＣＴを施しレベルシフトを行って逆ＬＰＦ処理を行い、０〜２５５の範囲のデータに丸めた結果を示す図表である。
【０４３５】
この図５９に示す復号化後の画素ブロックデータから、図５０に示したオリジナルの画素ブロックデータを減算して、その絶対値を合計すると５２２となる。これにより、図５３に示したＪＰＥＧ復号化後の結果（誤差の絶対値の合計が６８５）よりも、画質が向上していることが分かる。
【０４３６】
また、ＪＥＸ符号化後の符号長は１２５ビットであり、上記図４５に示したヘッダ情報のビット長は４４ビットであるために、合計１６９ビットとなる。従って、従来のＪＰＥＧ符号化後の符号長である１９３ビットよりも小さく、ヘッダ情報部分を含めても、圧縮率が向上していることが分かる。
【０４３７】
このような実施例２によれば、可逆な画素空間変換として可逆ローパスフィルタ処理を行うことによっても、上述した実施例１とほぼ同様の効果を奏することが可能となる。
【実施例３】
【０４３８】
図６０から図６３は本発明の実施例３を示したものであり、図６０はローパスフィルタとパーミュテーションとを組み合わせたＪＥＸ本処理の例を示すフローチャートである。この実施例３において、上述の実施例１，２と同様である部分については同一の符号を付して説明を省略し、主として異なる点についてのみ説明する。
【０４３９】
この実施例３は、実施例１で説明したようなパーミュテーションと、実施例２で説明したようなローパスフィルタ処理と、の何れかより効果的な方を、８×８画素ブロック毎に択一的に実行するようにしたものである。従って、１つの画像データの中で、ある８×８画素ブロックにはパーミュテーションが行われ、他のある８×８画素ブロックにはローパスフィルタ処理が行われる、ということになる。
【０４４０】
なお、この図６０に示すＪＥＸ（ＬＰＦ＋パーミュテーション）本処理は、上述した実施例２の図３７に示したステップＳ６２のＪＥＸ（ＬＰＦ）本処理に代えて行われるものとなっている。従って、このＪＥＸ（ＬＰＦ＋パーミュテーション）本処理を行うときには、既にＪＥＸ（ＬＰＦ）前処理が終了していることが前提である。
【０４４１】
この処理を開始すると、まず、ＪＥＸ（パーミュテーション）に基づいて並べ換えられたｆ（ｋ，ｌ）p とヘッダ情報Ｐｈ（ｎ）とを計算し、さらに、絶対差分の和Ａｂｓ（ｎ）およびハフマン符号長Ｂｉｔ（ｎ）を計算する（ステップＳ１３１）。
【０４４２】
次に、ＪＥＸ（ＬＰＦ）に基づいてＬＰＦ処理されたｆ（ｋ，ｌ）L とヘッダ情報Ｐｈｌ（ｎ）とを計算し、さらに、絶対差分の和Ａｂｓ（ｎ，η，ＳＦ）およびハフマン符号長Ｂｉｔ（ｎ，η，ＳＦ）を計算する（ステップＳ１３２）。
【０４４３】
その後、Ｍｅｔｈｏｄが１であるか否かを判断し（ステップＳ１３３）、１である場合（つまり、高圧縮率が選択されている場合）にはパーミュテーションのハフマン符号長Ｂｉｔ（ｎ）がＬＰＦのハフマン符号長Ｂｉｔ（ｎ，η，ＳＦ）よりも小さいか否かを判断する（ステップＳ１３４）。
【０４４４】
また、上記ステップＳ１３３において、Ｍｅｔｈｏｄが１でない場合（つまり、高画質が選択されている場合）には、パーミュテーションの絶対差分の和Ａｂｓ（ｎ）がＬＰＦの絶対差分の和Ａｂｓ（ｎ，η，ＳＦ）よりも小さいか否かを判断する（ステップＳ１３５）。
【０４４５】
上記ステップＳ１３４において、パーミュテーションのハフマン符号長Ｂｉｔ（ｎ）がＬＰＦのハフマン符号長Ｂｉｔ（ｎ，η，ＳＦ）以上である場合、または、上記ステップＳ１３５において、パーミュテーションの絶対差分の和Ａｂｓ（ｎ）がＬＰＦの絶対差分の和Ａｂｓ（ｎ，η，ＳＦ）以上である場合には、ＬＰＦ処理されたｆ（ｋ，ｌ）およびヘッダ情報Ｐｈｌ（ｎ）を出力する（ステップＳ１３６）。
【０４４６】
一方、上記ステップＳ１３４において、パーミュテーションのハフマン符号長Ｂｉｔ（ｎ）がＬＰＦのハフマン符号長Ｂｉｔ（ｎ，η，ＳＦ）よりも小さい場合、または、上記ステップＳ１３５において、パーミュテーションの絶対差分の和Ａｂｓ（ｎ）がＬＰＦの絶対差分の和Ａｂｓ（ｎ，η，ＳＦ）よりも小さい場合には、パーミュテーション処理されたｆ（ｋ，ｌ）およびヘッダ情報Ｐｈ（ｎ）を出力する（ステップＳ１３７）。
【０４４７】
こうして、ステップＳ１３６またはステップＳ１３７が行われたら、このＪＥＸ（ＬＰＦ＋パーミュテーション）本処理を終了する。
【０４４８】
なお、この図６０に示したような処理を、８×８画素ブロック毎に行うのは上述した通りである。
【０４４９】
次に、図６１は上記図６０のステップＳ１３７において生成されるヘッダ情報の例を示す図表、図６２は上記図６０のステップＳ１３６において生成されるヘッダ情報の例を示す図表、である。
【０４５０】
パーミュテーション処理が行われたときに生成されるヘッダ情報Ｐｈ（ｎ）は、上述した実施例１の図２５に示したヘッダ情報Ｐｈ（ｎ）と、ＬＰＦ処理が行われたときに生成されるヘッダ情報Ｐｈｌ（ｎ）は、上述した実施例２の図４５に示したヘッダ情報Ｐｈｌ（ｎ）と、それぞれほぼ同様であるが、何れも、インディケータＩｎｄの直後に、カテゴリＣａｔが記録されるようになっている点が異なっている。これら図６１、図６２に示す例においては、カテゴリＣａｔは１ビットの情報として記録されるようになっていて、パーミュテーション処理が行われたときにはビット値として「０」が、ＬＰＦ処理が行われたときにはビット値として「１」が、それぞれ記録される。
【０４５１】
なお、上述では、数式４７に示したようなＬＰＦ行列Ｌ（ｋ，η）を用いたが、この行列は、行列で表現される画素データｆ（ｋ，ｌ）に演算することにより、該ｆ（ｋ，ｌ）の特定の行または特定の列にローパスフィルタ効果を及ぼすものとなっている。しかし、このような行列をＬＰＦとして用いるに限らず、例えば次の数式５７に示すようなＬＰＦ行列ＬT （χ）を用いることも可能である。 
［数５７］
2006050516.tif 000049
ここに、χは、フィルタ強度を示すパラメータであり、ξ＝１−２χとなっている。さらに、パラメータχに対しては、０≦χ＜（１／３）の条件が課せられている。
【０４５２】
このＬＰＦ行列ＬT （χ）は、８×８画素ブロックの全体にローパスフィルタ効果を及ぼすものとなっていて、ｆ（ｋ，ｌ）の左から行列演算することにより、行同士の間のＬＰＦ効果を生じ、ｆ（ｋ，ｌ）の右から行列演算することにより、列同士の間のＬＰＦ効果を生じるようになっている。また、χの典型値としては、（１／８）、（１／６）、（１／４）などが例として挙げられる。そして、χに上述したような０以上（１／３）未満の制限を課すことにより、ＬT （χ）は可逆な行列となっている。なお、このＬT （χ）を用いると、ＤＣ成分は不変とはならず若干変化する。
【０４５３】
図６３は、上記ローパスフィルタを用いるときのヘッダ情報の例を示す図表である。
【０４５４】
上記ＬＰＦ行列ＬT （χ）を用いて、トータルのＬＰＦを掛けるときのヘッダ情報Ｐｈｍ（ｎ）は、インディケータＩｎｄ（＝１）と、カテゴリＣａｔ（＝１）と、の直後に、モードを示すデータＭｏｄｅの記録欄が設けられ、そのビット値として、例えば「１１」を記録することが考えられる。
【０４５５】
また、上記パラメータχは、グローバルパラメータとして記録するために、ブロック毎のヘッダ情報Ｐｈｍ（ｎ）には入っていない。従って、この例では、フィルタ強度を画像全体で一定となるようにしており、ブロック単位でフィルタ強度を変化させることはしていない。
【０４５６】
このような実施例３によれば、上述した実施例１，２とほぼ同様の効果を奏するとともに、パーミュテーションによるＪＥＸ処理と、ＬＰＦによるＪＥＸ処理と、の内の、より適切な方の処理を、ブロック単位で選択することができるために、画像全体の、より高画質化、高圧縮率化を図ることが可能となる。
【０４５７】
また、画像全体にＬＰＦ処理を行う行列を用いることにより、より少ない回数の行列演算を行うだけで、処理することが可能となる。これにより、処理の高速化や処理に要する演算負荷を軽減することができる。
【０４５８】
なお、本発明は上述した実施例に限定されるものではなく、発明の主旨を逸脱しない範囲内において種々の変形や応用が可能であることは勿論である。
【産業上の利用可能性】
【０４５９】
本発明は、静止画像や動画像を符号化して圧縮または／および復号化して伸張する画像符号化処理方法、画像復号化処理方法、動画圧縮処理方法、動画伸張処理方法、画像符号化処理プログラム、画像符号化装置、画像復号化装置、画像符号化／復号化システム、拡張画像圧縮伸張処理システムに好適に利用することができる。
【図面の簡単な説明】
【０４６０】
【図１】本発明の実施例１における拡張されたＪＰＥＧ符号器の構成を示すブロック図。
【図２】上記実施例１における拡張されたＪＰＥＧ復号器の構成を示すブロック図。
【図３】上記実施例１における符号化処理を示すフローチャート。
【図４】上記実施例１における復号化処理を示すフローチャート。
【図５】上記実施例１におけるＪＥＸ符号化処理を示すフローチャート。
【図６】上記実施例１におけるＪＥＸ復号化処理を示すフローチャート。
【図７】上記実施例１において、ＶＧＡ画像をブロック化する例を示す図。
【図８】上記実施例１において、８×８画素ブロックの画素構成を示す図。
【図９】上記実施例１において、６角形の画素を敷き詰めることにより２次元状に展開される画像の例を示す図。
【図１０】上記図９に示した配置の画素データを行方向および列方向に配列した例を示す図。
【図１１】上記実施例１において、順列ｎｃ（ｉ）に対して得られる判定値Ｃｈｃを計算するために必要な各要素の例を示す図表。
【図１２】上記実施例１において、ウェイトＷを変えたときの判定値の変化の様子を示す図表。
【図１３】上記実施例１における行列Ｍの例を示す図。
【図１４】上記実施例１において、列同士の基本パーミュテーションを実現するための基底行列の作用手順を示す図表。
【図１５】上記実施例１において、画像データから抽出されたオリジナルの８×８画素ブロックのデータ例を示す図表。
【図１６】上記実施例１において、８×８画素ブロックのデータについて、行方向の和と列方向の和とをそれぞれ算出した様子を示す図表。
【図１７】上記実施例１において、並べ換え後の画素ブロックのデータを示す図表。
【図１８】上記実施例１において、レベルシフトとＤＣＴとを行ったデータを示す図表。
【図１９】上記実施例１において、量子化後の８×８ブロックデータを示す図表。
【図２０】上記図１９に示したような量子化後のデータに、図４に示すような復号化処理において逆量子化および逆ＤＣＴ（ＩＤＣＴ）を施し、レベルシフトを行って０〜２５５の範囲のデータに丸めたときのデータを示す図表。
【図２１】上記図２０に示すデータを逆パーミュテーションで並べ換えた画素ブロックを示す図表。
【図２２】上記図２１に示した復号化後の画素ブロックデータから、図１５に示したオリジナルの画素ブロックデータを減算した結果を示す図表。
【図２３】上記実施例１において、ＪＰＥＧ圧縮データを格納するＥＸＩＦファイルの基本構造を示す図。
【図２４】上記実施例１において、ＪＰＥＧ圧縮データファイルの基本構造をより詳しく示した図。
【図２５】上記実施例１において、ヘッダ情報Ｐｈ（ｎ）の構造と具体的なデータ例を示す図表。
【図２６】上記実施例１において、拡張ＪＰＥＧによる処理が可能な機器と、従来のＪＰＥＧによる処理のみが可能な機器と、を組み合わせたときのシステム構成を示す図。
【図２７】上記実施例１において、ＪＥＸを動画像に適用し得る符号器の構成を示すブロック図。
【図２８】従来のＪＰＥＧ符号器の構成を示すブロック図。
【図２９】従来のＪＰＥＧ復号器の構成を示すブロック図。
【図３０】上記図１５に示すオリジナルの８×８画素ブロックのデータにＤＣＴを行った結果を示す図表。
【図３１】上記図３０に示すブロックデータを量子化した結果を示す図表。
【図３２】上記図３１に示すブロックデータを逆量子化し逆ＤＣＴを施しレベルシフトを行って０〜２５５の範囲のデータに丸めた結果を示す図表。
【図３３】上記図３２に示す復号化後の画素ブロックデータから、図１５に示したオリジナルの画素ブロックデータを減算した結果を示す図表。
【図３４】従来の動画像符号器の構成を示すブロック図。
【図３５】本発明の実施例２における拡張されたＪＰＥＧ符号器の構成を示すブロック図。
【図３６】上記実施例２における拡張されたＪＰＥＧ復号器の構成を示すブロック図。
【図３７】上記実施例２におけるＪＥＸ符号の処理の概要を示すフローチャート。
【図３８】上記図３７のステップＳ６１におけるＪＥＸ（ＬＰＦ）前処理の詳細を示すフローチャート。
【図３９】上記実施例２において、設定項目Ｃｈｏｉｃｅに応じて選択される制御パラメータの組み合わせ（η，ＳＦ）を示す図表。
【図４０】上記図３７のステップＳ６２におけるＪＥＸ（ＬＰＦ）本処理の詳細を示すフローチャート。
【図４１】上記図４０のステップＳ８５におけるＶscおよびｋｃの算出処理の詳細を示すフローチャート。
【図４２】上記図４０のステップＳ８６におけるＶsrおよびｌｒの算出処理の詳細を示すフローチャート。
【図４３】上記実施例２におけるＪＥＸ（ＬＰＦ）復号処理を示すフローチャート。
【図４４】上記実施例２におけるＭｏｄｅベクトルおよびＰｏｓベクトルの例を示す図表。
【図４５】上記実施例２におけるヘッダ情報Ｐｈｌ（ｎ）の例を示す図表。
【図４６】上記実施例２において、画像全体に係るグローバルヘッダの例を示す図表。
【図４７】上記実施例２において、グローバルヘッダのカテゴリに記録するビット値の例を示す図表。
【図４８】上記図４６に示したグローバルパラメータの最初の８ビット値の例を示す図表。
【図４９】上記図４６に示したグローバルパラメータの２番目の８ビット値の例を示す図表。
【図５０】上記実施例２において、画像データから抽出されたオリジナルの８×８画素ブロックのデータ例を示す図。
【図５１】上記図５０に示すオリジナルの８×８画素ブロックのデータにレベルシフトおよびＤＣＴを行った結果を示す図表。
【図５２】上記図５１に示すブロックデータを量子化した結果を示す図表。
【図５３】上記図５２に示すブロックデータを逆量子化し逆ＤＣＴを施しレベルシフトを行って０〜２５５の範囲のデータに丸めた結果を示す図表。
【図５４】上記図５３に示す復号化後の画素ブロックデータから、図５０に示したオリジナルの画素ブロックデータを減算した結果を示す図表。
【図５５】上記実施例２において、ヘッダ情報から抽出されたモード情報およびフィルタ位置情報の例を示す図表。
【図５６】上記図５０に示すオリジナルの８×８画素ブロックのデータに、上記図５５に示したような８回のローパスフィルタ処理を行った結果を示す図表。
【図５７】上記図５６に示すローパスフィルタ処理後の８×８画素ブロックのデータにレベルシフトおよびＤＣＴを行った結果を示す図表。
【図５８】上記図５７に示すブロックデータを量子化した結果を示す図表。
【図５９】上記図５８に示すブロックデータを逆量子化し逆ＤＣＴを施しレベルシフトを行って逆ＬＰＦ処理を行い、０〜２５５の範囲のデータに丸めた結果を示す図表。
【図６０】本発明の実施例３において、ローパスフィルタとパーミュテーションとを組み合わせたＪＥＸ本処理の例を示すフローチャート。
【図６１】上記図６０のステップＳ１３７において生成されるヘッダ情報の例を示す図表。
【図６２】上記図６０のステップＳ１３６において生成されるヘッダ情報の例を示す図表。
【図６３】上記実施例３において、他のローパスフィルタを用いるときのヘッダ情報の例を示す図表。
【符号の説明】
【０４６１】
１…ブロック化部（分割手段）
２…符号化制御部
３…マーカ生成部
４…列操作判定部（空間変換手段）
５…行操作判定部（空間変換手段）
６…ヘッダ生成部（ヘッダ情報追加手段）
７…直交変換部（空間周波数変換手段）
８…量子化部（量子化手段）
９…量子化テーブル生成部（量子化手段）
１０…エントロピー符号化部（エントロピー符号化手段）
１１…ジグザグスキャン部
１２…ハフマン符号化部
１３…合成部（圧縮画像ファイル生成手段、ヘッダ情報生成手段）
１４…フィルタ部（空間変換手段）
２１…マーカ判定部（ヘッダ情報読出手段）
２２…分割部
２３…エントロピー復号化部（エントロピー復号化手段）
２４…ハフマン復号化部
２５…ジグザグ展開部
２６…逆量子化部（逆量子化手段）
２７…量子化テーブル生成部（逆量子化手段）
２８…直交逆変換部（周波数空間変換手段）
２９…ヘッダ復号部（追加ヘッダ情報読出手段）
３０…復号化制御部
３１…行操作部（逆空間変換手段）
３２…列操作部（逆空間変換手段）
３３…ブロック展開部（展開手段）
３４…逆フィルタ部（逆空間変換手段）
４１…デジタルカメラ
４１ａ…ＪＰＥＧ画像ファイル
４１ｂ…ＪＥＸ画像ファイル
４２…ＰＣ
４２ａ，４２ｂ…表示画像
４３…ＰＣ
４３ａ，４３ｂ…表示画像
５１…減算器
５２…ＪＥＸ処理部
５３…ヘッダ情報メモリ
５４…ＤＣＴ処理部
５５…量子化部
５６…逆量子部
５７…ＩＤＣＴ処理部
５８…逆ＪＥＸ処理部
５９…加算器
６０…フレームメモリ
６１…動き補償部
６２…可変長符号化部
６３…合成部
代理人    弁理士      伊    藤      進
【図１】
2006050516.tif 000050
【図２】
2006050516.tif 000051
【図３】
2006050516.tif 000052
【図４】
2006050516.tif 000053
【図５】
2006050516.tif 000054
【図６】
2006050516.tif 000055
【図７】
2006050516.tif 000056
【図８】
2006050516.tif 000057
【図９】
2006050516.tif 000058
【図１０】
2006050516.tif 000059
【図１１】
2006050516.tif 000060
【図１２】
2006050516.tif 000061
【図１３】
2006050516.tif 000062
【図１４】
2006050516.tif 000063
【図１５】
2006050516.tif 000064
【図１６】
2006050516.tif 000065
【図１７】
2006050516.tif 000066
【図１８】
2006050516.tif 000067
【図１９】
2006050516.tif 000068
【図２０】
2006050516.tif 000069
【図２１】
2006050516.tif 000070
【図２２】
2006050516.tif 000071
【図２３】
2006050516.tif 000072
【図２４】
2006050516.tif 000073
【図２５】
2006050516.tif 000074
【図２６】
2006050516.tif 000075
【図２７】
2006050516.tif 000076
【図２８】
2006050516.tif 000077
【図２９】
2006050516.tif 000078
【図３０】
2006050516.tif 000079
【図３１】
2006050516.tif 000080
【図３２】
2006050516.tif 000081
【図３３】
2006050516.tif 000082
【図３４】
2006050516.tif 000083
【図３５】
2006050516.tif 000084
【図３６】
2006050516.tif 000085
【図３７】
2006050516.tif 000086
【図３８】
2006050516.tif 000087
【図３９】
2006050516.tif 000088
【図４０】
2006050516.tif 000089
【図４１】
2006050516.tif 000090
【図４２】
2006050516.tif 000091
【図４３】
2006050516.tif 000092
【図４４】
2006050516.tif 000093
【図４５】
2006050516.tif 000094
【図４６】
2006050516.tif 000095
【図４７】
2006050516.tif 000096
【図４８】
2006050516.tif 000097
【図４９】
2006050516.tif 000098
【図５０】
2006050516.tif 000099
【図５１】
2006050516.tif 000100
【図５２】
2006050516.tif 000101
【図５３】
2006050516.tif 000102
【図５４】
2006050516.tif 000103
【図５５】
2006050516.tif 000104
【図５６】
2006050516.tif 000105
【図５７】
2006050516.tif 000106
【図５８】
2006050516.tif 000107
【図５９】
2006050516.tif 000108
【図６０】
2006050516.tif 000109
【図６１】
2006050516.tif 000110
【図６２】
2006050516.tif 000111
【図６３】
2006050516.tif 000112
【手続補正書】
【提出日】平成16年10月5日(2004.10.5)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０３３５
【補正方法】変更
【補正の内容】
【０３３５】
この参照ブロック数ＮTestを決定する方法としては、例えば、次の数式４６に示すようにして、トータルブロック数ＮTotal に応じて設定することが考えられる。
［数４６］
2006050516.tif 000113
ここに、数式４６における大括弧は、括弧内の数値を超えない最大の整数を表し、ｍａｘ（Ａ，Ｂ）は、ＡとＢとの内の大きい方をとることを意味している。