(57)【特許請求の範囲】
【請求項１】
圧縮対象の画像を所定画素サイズのブロックに区切り、ブロック毎に直交変換を行い、直交変換の結果を示す直交変換係数を出力する直交変換手段と、前記直交変換係数の量子化を行い、量子化データを出力する量子化部と、前記量子化データの可変長符号化を行い、可変長符号を出力する可変長符号化部とを具備し、前記可変長符号を含む圧縮画像データを生成するデータ圧縮装置によって生成された圧縮画像データの伸張処理を行うデータ伸張装置において、
メモリと、
前記圧縮画像データから可変長符号を取り出して可変長復号化を行い、可変長符号化前の量子化データを出力する可変長復号化部と、
前記量子化データの逆量子化を行うことにより、前記ブロックの直交変換係数を生成し、前記メモリに書き込む逆量子化部と、
前記メモリから前記ブロックの直交変換係数を読み出し、この直交変換係数に対し、前記直交変換手段が行う直交変換の逆変換を施し、前記ブロックの画像を復元する逆直交変換手段とを具備し、
前記逆直交変換手段が、前記可変長復号化部による可変長復号化と前記逆量子化部による逆量子化が実行されるのと並列に、前記直交変換の逆変換を実行するように構成したことを特徴とするデータ伸張装置。
【請求項２】
圧縮対象の画像に対する複数階層のエンコード処理を順次実行する手段であって、最下位階層のエンコード処理では、前記圧縮対象の画像を所定画素サイズのブロックに区切り、ブロック毎に、当該ブロックについての離散コサイン変換を実行して離散コサイン変換係数を算出するとともに、当該ブロックの上下左右の各隣接ブロックの離散コサイン変換係数を参照することにより、当該ブロックの離散コサイン変換係数から当該ブロックの傾き相殺関数の成分を差し引いた最下位階層のブロックの離散コサイン変換係数を算出する補正処理を実行し、最下位階層より上位の各階層のエンコード処理では、当該階層の下位の階層のエンコード処理の処理対象となった各ブロックを所定個数ずつ各々包含する当該階層のブロックを構成し、複数の当該階層のブロックの各々について、当該階層のブロックに含まれる下位の階層の各ブロックの直流成分の離散コサイン変換係数を用いた離散コサイン変換を実行して離散コサイン変換係数を算出するとともに、当該階層のブロックの上下左右の各隣接ブロックの離散コサイン変換係数を参照することにより、当該階層のブロックの離散コサイン変換係数から当該階層のブロックの傾き相殺関数の成分を差し引いた当該階層のブロックの離散コサイン変換係数を算出する補正処理を実行する画素値／係数変換部を有し、各階層のエンコード処理により得られた各階層のブロックの離散コサイン変換係数を示す圧縮画像データを生成するデータ圧縮装置が生成した圧縮画像データの伸張処理を行うデータ伸張装置であって、
メモリと、
前記圧縮画像データから最上位階層のブロックおよび該ブロックに属する各階層のブロックの離散コサイン変換係数を順次取り出して前記メモリに書き込む手段と、
前記圧縮画像データが示す各階層のエンコード処理結果である離散コサイン変換係数を用いて、最上位階層から最下位階層までの各階層のデコード処理を順次実行し、圧縮前の画像の画素値を算出する手段であって、最下位階層以外の各階層のデコード処理では、当該階層の各ブロックについて、前記メモリに事前に記憶された当該ブロックの上下左右の隣接ブロックにおける当該階層の離散コサイン変換係数を参照することにより、当該ブロックの離散コサイン変換係数に当該ブロックの傾き相殺関数の離散コサイン変換係数を加える補正処理を行い、この補正処理を経た当該ブロックの離散コサイン変換係数に逆離散コサイン変換を施して当該ブロックを分割した当該階層の下位階層のブロックの直流成分の離散コサイン変換係数を算出し、この下位階層のブロックの直流成分の離散コサイン変換係数を前記メモリに書き込み、最下位階層のデコード処理では、当該階層の各ブロックについて、前記メモリに事前に記憶された当該ブロックの上下左右の隣接ブロックにおける当該階層の離散コサイン変換係数を参照することにより、当該ブロックの離散コサイン変換係数に当該ブロックの傾き相殺関数の離散コサイン変換係数を加える補正処理を行い、この補正処理を経た当該ブロックの離散コサイン変換係数に逆離散コサイン変換を施して当該ブロックの画素値を算出し、前記メモリに書き込む係数／画素値変換部とを具備し、
前記係数／画素値変換部は、下位階層のデコード処理が必要とする離散コサイン変換係数が上位階層のデコード処理によって前記メモリに書き込まれてから当該離散コサイン変換係数を用いる下位階層のデコード処理が実行されるように、各階層のデコード処理を位相差を設けて並列に実行することを特徴とするデータ伸張装置。
【請求項３】
圧縮対象の画像に対する複数階層のエンコード処理を順次実行する手段であって、最下位階層のエンコード処理では、前記圧縮対象の画像を所定画素サイズのブロックに区切り、ブロック毎に、当該ブロックについての離散コサイン変換を実行して離散コサイン変換係数を算出するとともに、当該ブロックの上下左右の各隣接ブロックの離散コサイン変換係数を参照することにより、当該ブロックの離散コサイン変換係数から当該ブロックの傾き相殺関数の成分を差し引いた最下位階層のブロックの離散コサイン変換係数を算出する補正処理を実行し、最下位階層より上位の各階層のエンコード処理では、当該階層の下位の階層のエンコード処理の処理対象となった各ブロックを所定個数ずつ各々包含する当該階層のブロックを構成し、複数の当該階層のブロックの各々について、当該階層のブロックに含まれる下位の階層の各ブロックの直流成分の離散コサイン変換係数を用いた離散コサイン変換を実行して離散コサイン変換係数を算出するとともに、当該階層のブロックの上下左右の各隣接ブロックの離散コサイン変換係数を参照することにより、当該階層のブロックの離散コサイン変換係数から当該階層のブロックの傾き相殺関数の成分を差し引いた当該階層のブロックの離散コサイン変換係数を算出する補正処理を実行し、前記各階層のエンコード処理により得られた各階層のブロックの離散コサイン変換係数を出力する画素値／係数変換部を具備し、最上位階層のブロック毎に、当該ブロックに属する各階層のブロックの離散コサイン変換係数をまとめて序列化し、圧縮画像データとして出力するデータ圧縮装置であって、
前記静止画から最上位階層のブロックのＮ行Ｍ列（ＮおよびＭはいずれも複数）の配列が得られる場合に、先頭の行から始まるＮ０行Ｍ列（Ｎ０＜Ｎであり、かつ、Ｎ０＜Ｍ）の最上位階層のブロックについて、同一列に属するＮ０個の最上位階層のブロックを選択する操作を列を順次シフトしつつ繰り返して、前記圧縮画像データにおけるＮ０行Ｍ列の最上位階層の各ブロックに対応したデータを各ブロックの選択順に出力し、その後、残ったＮ−Ｎ０行Ｍ列の最上位階層のブロックについて、同一行に属するＭ個の最上位階層のブロックを順次選択する操作を行を順次シフトしつつ繰り返して、前記圧縮画像データにおけるＮ−Ｎ０行Ｍ列の最上位階層の各ブロックに対応したデータを各ブロックの選択順に出力することを特徴とするデータ圧縮装置。
【請求項４】
圧縮対象の画像に対する複数階層のエンコード処理を順次実行する手段であって、最下位階層のエンコード処理では、前記圧縮対象の画像を所定画素サイズのブロックに区切り、ブロック毎に、当該ブロックについての離散コサイン変換を実行して離散コサイン変換係数を算出するとともに、当該ブロックの上下左右の各隣接ブロックの離散コサイン変換係数を参照することにより、当該ブロックの離散コサイン変換係数から当該ブロックの傾き相殺関数の成分を差し引いた最下位階層のブロックの離散コサイン変換係数を算出する補正処理を実行し、最下位階層より上位の各階層のエンコード処理では、当該階層の下位の階層のエンコード処理の処理対象となった各ブロックを所定個数ずつ各々包含する当該階層のブロックを構成し、複数の当該階層のブロックの各々について、当該階層のブロックに含まれる下位の階層の各ブロックの直流成分の離散コサイン変換係数を用いた離散コサイン変換を実行して離散コサイン変換係数を算出するとともに、当該階層のブロックの上下左右の各隣接ブロックの離散コサイン変換係数を参照することにより、当該階層のブロックの離散コサイン変換係数から当該階層のブロックの傾き相殺関数の成分を差し引いた当該階層のブロックの離散コサイン変換係数を算出する補正処理を実行し、前記各階層のエンコード処理により得られた各階層のブロックの離散コサイン変換係数を出力する画素値／係数変換部を具備し、最上位階層のブロック毎に、当該ブロックに属する各階層のブロックの離散コサイン変換係数をまとめて序列化し、圧縮画像データとして出力するデータ圧縮装置であって、
前記静止画を最上位階層のブロックの配列に区切った場合において、前記ブロックの配列における４隅のブロックの１つを選択し、次に選択済みのブロックの領域を囲むＬ字状のブロック列の各ブロックを選択する操作を繰り返し、最後の行または列のブロックを含むＬ字状のブロック列の各ブロックを選択した後は、残った各列または各行の各ブロックを順次選択し、前記圧縮画像データにおける最上位階層の各ブロックに対応したデータを各ブロックの選択順に出力することを特徴とするデータ圧縮装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、静止画の画像データの圧縮処理を行うデータ圧縮装置および圧縮画像データの伸張処理を行うデータ伸張装置に関する。
【背景技術】
【０００２】
ＪＰＥＧ（Joint Photographic Experts Group）による静止画の圧縮処理を行うデータ圧縮装置として、直交変換の一種であるＤＣＴ（Discrete Cosine Transform；離散コサイン変換）を利用したものが知られている。このデータ圧縮装置では、圧縮対象である画像を所定の画素サイズのブロックに区切り、ブロック毎に画素値にＤＣＴを施し、この結果、ブロック毎に得られる各ＤＣＴ係数に量子化処理、可変長符号化処理を施して、静止画の圧縮画像データを生成する。そして、このような圧縮画像データの伸張処理を行うデータ伸張装置では、圧縮画像データから可変長符号を取り出して、可変長復号化および逆量子化処理を施し、この結果得られるブロック毎のＤＣＴ係数にＩＤＣＴ（Inverse Discrete Cosine Transform；逆離散コサイン変換）を施し、元の静止画を復元する。
【特許文献１】国際公開第２００６／０５４６６７号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、上述した従来のデータ伸張装置では、可変長復号化および逆量子化処理を経たＤＣＴ係数をメモリに蓄積し、静止画を構成する全ブロックのＤＣＴ係数がメモリに蓄積されるのを待って、各ブロックのＩＤＣＴを開始していた。このため、従来のデータ伸張装置は、例えば読み出し速度の遅い外部記憶媒体から圧縮画像データを読み出して圧縮画像データの可変長復号化および逆量子化を行うような場合に、各ブロックのＩＤＣＴが開始されるのが遅れ、静止画の復元が開始されるまでの時間が長くなるという問題があった。
【０００４】
この発明は、以上説明した事情に鑑みてなされたものであり、効率的な圧縮画像データの伸張処理を可能とし、静止画の復元が開始されるまでの時間を短くする技術的手段を提供することを目的としている。
【課題を解決するための手段】
【０００５】
第１の態様において、この発明は、圧縮対象の画像を所定画素サイズのブロックに区切り、ブロック毎に直交変換を行い、直交変換の結果を示す直交変換係数を出力する直交変換手段と、前記直交変換係数の量子化を行い、量子化データを出力する量子化部と、前記量子化データの可変長符号化を行い、可変長符号を出力する可変長符号化部とを具備し、前記可変長符号を含む圧縮画像データを生成するデータ圧縮装置によって生成された圧縮画像データの伸張処理を行うデータ伸張装置において、メモリと、前記圧縮画像データから可変長符号を取り出して可変長復号化を行い、可変長符号化前の量子化データを出力する可変長復号化部と、前記量子化データの逆量子化を行うことにより、前記ブロックの直交変換係数を生成し、前記メモリに書き込む逆量子化部と、前記メモリから前記ブロックの直交変換係数を読み出し、この直交変換係数に対し、前記直交変換手段が行う直交変換の逆変換を施し、前記ブロックの画像を復元する逆直交変換手段とを具備し、前記逆直交変換手段が、前記可変長復号化部による可変長復号化と前記逆量子化部による逆量子化が実行されるのと並列に、前記直交変換の逆変換を実行するように構成したことを特徴とするデータ伸張装置を提供する。
かかるデータ伸張装置によれば、可変長復号化部による可変長復号化と逆量子化部による逆量子化が実行されるのと並列に、逆直交変換手段による逆変換が実行されるので、逆変換が開始されるのを早め、静止画の復元が開始されるまでの時間を短くすることができる。
【０００６】
ところで、上述のようにブロック毎に独立して画素値のＤＣＴを行って圧縮画像データを生成した場合、この圧縮画像データを伸張して静止画を復元すると、ブロック歪み、すなわち、ブロックの境界において画素の濃淡が不連続でぎこちないものになる不具合が生じやすい。
【０００７】
特許文献１は、このような不具合を改善するための画像圧縮伸張技術を開示している。この特許文献１に開示された技術では、次のようにして静止画の画像データの圧縮および伸張を行う。
ａ．画像データの圧縮時には、画像を所定の画素サイズのブロックに区切り、ブロック毎に画素値にＤＣＴを施してＤＣＴ係数を生成するとともに、ブロックの境界において画素値の包絡線の勾配と一致する勾配を有する傾き相殺関数のＤＣＴ係数を求め、ブロックの画素値から得たＤＣＴ係数から傾き相殺関数のＤＣＴ係数を減算したＤＣＴ係数を求め、このＤＣＴ係数に量子化処理および可変長符号化処理を施して圧縮画像データを生成する。ここで、各ブロックの傾き相殺関数のＤＣＴ係数は、当該ブロックの上下左右の各隣接ブロックの画素値のＤＣＴ係数を参照することにより算出する。
ｂ．圧縮画像データの伸張時には、圧縮画像データに可変長復号化処理および逆量子化処理を施して、各ブロックのＤＣＴ係数を復元し、ブロック毎に、当該ブロックの上下左右の各隣接ブロックのＤＣＴ係数を参照することにより、傾き相殺関数が相殺される前のＤＣＴ係数を復元し、このＤＣＴ係数にＩＤＣＴ（Inverse Discrete Cosine Transform；逆離散コサイン変換）を施し、画素値を復元する。
【０００８】
この発明の第２の態様は、この特許文献１に開示された技術を発展させたデータ圧縮伸張技術に関するものである。この第２の態様によるデータ伸張装置は、次のような圧縮アルゴリズムにより得られた圧縮画像データの伸張処理を行う。
ａ．圧縮対象の画像に対する複数階層のエンコード処理を順次実行する。
ｂ．最下位階層のエンコード処理では、圧縮対象の画像を所定画素サイズのブロックに区切り、ブロック毎に、当該ブロックについての離散コサイン変換を実行して離散コサイン変換係数を算出するとともに、当該ブロックの上下左右の各隣接ブロックの離散コサイン変換係数を参照することにより、当該ブロックの離散コサイン変換係数から当該ブロックの傾き相殺関数の成分を差し引いた最下位階層のブロックの離散コサイン変換係数を算出する補正処理を実行する。
ｃ．最下位階層より上位の各階層のエンコード処理では、当該階層の下位の階層のエンコード処理の処理対象となった各ブロックを所定個数ずつ各々包含する当該階層のブロックを構成し、複数の当該階層のブロックの各々について、当該階層のブロックに含まれる下位の階層の各ブロックの直流成分の離散コサイン変換係数を用いた離散コサイン変換を実行して離散コサイン変換係数を算出するとともに、当該階層のブロックの上下左右の各隣接ブロックの離散コサイン変換係数を参照することにより、当該階層のブロックの離散コサイン変換係数から当該階層のブロックの傾き相殺関数の成分を差し引いた当該階層のブロックの離散コサイン変換係数を算出する補正処理を実行する。
ｄ．各階層のエンコード処理により得られた各階層のブロックの離散コサイン変換係数を示す圧縮画像データを生成する。
【０００９】
そして、第２の態様によるデータ伸張装置は、メモリと、圧縮画像データから最上位階層のブロックおよび該ブロックに属する各階層のブロックの離散コサイン変換係数を順次取り出してメモリに書き込む手段と、係数／画素値変換部とを有する。ここで、係数／画素値変換部は、次のような処理を行う。
ａ．圧縮画像データが示す各階層のエンコード処理結果である離散コサイン変換係数を用いて、最上位階層から最下位階層までの各階層のデコード処理を順次実行し、圧縮前の画像の画素値を算出する。
ｂ．最下位階層以外の各階層のデコード処理では、当該階層の各ブロックについて、前記メモリに事前に記憶された当該ブロックの上下左右の隣接ブロックにおける当該階層の離散コサイン変換係数を参照することにより、当該ブロックの離散コサイン変換係数に当該ブロックの傾き相殺関数の離散コサイン変換係数を加える補正処理を行い、この補正処理を経た当該ブロックの離散コサイン変換係数に逆離散コサイン変換を施して当該ブロックを分割した当該階層の下位階層のブロックの直流成分の離散コサイン変換係数を算出し、この下位階層のブロックの直流成分の離散コサイン変換係数を前記メモリに書き込む。
ｃ．最下位階層のデコード処理では、当該階層の各ブロックについて、前記メモリに事前に記憶された当該ブロックの上下左右の隣接ブロックにおける当該階層の離散コサイン変換係数を参照することにより、当該ブロックの離散コサイン変換係数に当該ブロックの傾き相殺関数の離散コサイン変換係数を加える補正処理を行い、この補正処理を経た当該ブロックの離散コサイン変換係数に逆離散コサイン変換を施して当該ブロックの画素値を算出し、前記メモリに書き込む。
【００１０】
そして、第２の態様によるデータ伸張装置の特徴は、次の点にある。すなわち、係数／画素値変換部は、下位階層のデコード処理が必要とする離散コサイン変換係数が上位階層のデコード処理によってメモリに書き込まれてから当該離散コサイン変換係数を用いる下位階層のデコード処理が実行されるように、各階層のデコード処理を位相差を設けて並列に実行するのである。
かかるデータ伸張装置によれば、上位階層のデコード処理が全て終了するのを待たずに下位階層のデコード処理が開始されるので、静止画の復元が開始されるまでの時間が短くなる。
【００１１】
この発明の第３の態様では、第２の態様によるデータ伸張装置の伸張処理の効率を高めることができるデータ圧縮装置を提供する。
この第３の態様によるデータ圧縮装置は、第２の態様におけるものと同様な画素値／係数変換部を有する。そして、第３の態様によるデータ圧縮装置では、静止画から最上位階層のブロックのＮ行Ｍ列（ＮおよびＭはいずれも複数）の配列が得られる場合に、先頭の行から始まるＮ０行Ｍ列（Ｎ０＜Ｎであり、かつ、Ｎ０＜Ｍ）の最上位階層のブロックについて、同一列に属するＮ０個の最上位階層のブロックを選択する操作を列を順次シフトしつつ繰り返して、圧縮画像データにおけるＮ０行Ｍ列の最上位階層の各ブロックに対応したデータを各ブロックの選択順に出力し、その後、残ったＮ−Ｎ０行Ｍ列の最上位階層のブロックについて、同一行に属するＭ個の最上位階層のブロックを順次選択する操作を行を順次シフトしつつ繰り返して、圧縮画像データにおけるＮ−Ｎ０行Ｍ列の最上位階層の各ブロックに対応したデータを各ブロックの選択順に出力する。
このようにして出力された圧縮画像データを第２の態様によるデータ伸張装置に与える場合、データ伸張装置では、最上位階層のデコード処理に必要な隣接ブロックの離散コサイン変換係数がメモリに記憶され、最上位階層のデコード処理の実行が可能な最上位階層のブロックが早期に発生するため、静止画の復元開始までの時間をさらに短くすることができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照し、この発明の実施の形態を説明する。
図１はこの発明の一実施形態であるデータ伸張装置２００を含む画像圧縮伝送システムの構成を示すブロック図である。この画像圧縮伝送システムにおいて、データ圧縮装置１００は、静止画の画像データを圧縮して圧縮画像データを出力する装置である。本実施形態によるデータ伸張装置２００は、このデータ圧縮装置１００によって出力された圧縮画像データの伸張処理を行うものである。
【００１３】
データ圧縮装置１００は、撮像部１０１と、信号処理部１０２と、フレームメモリ１０３と、エンコーダ１０４と、出力部１０５と、メモリ部１０６と、操作表示部１０７と、制御部１０８とを有する。
【００１４】
ここで、撮像部１０１は、カメラ、スキャナ等であり、圧縮対象である静止画の撮像を行い、画像信号を出力する装置である。フレームメモリ１０３は、例えばＲＡＭであり、圧縮対象である静止画の画像データを記憶する役割を果たす。信号処理部１０２は、撮像部１０１から出力される画像信号をＡ／Ｄ変換することにより、一画面分の静止画を構成する各画素の画素値（画素の濃淡の程度を示す値）の集まりである画像データを生成し、フレームメモリ１０３に格納する。エンコーダ１０４は、フレームメモリ１０３に格納された画像データに圧縮処理を施し、圧縮画像データを出力する装置である。なお、このエンコーダ１０４の詳細については後述する。メモリ部１０６は、例えばＲＡＭであり、エンコーダ１０４が圧縮処理を実行する際にワークエリアとして用いられる。出力部１０５は、エンコーダ１０４から出力された圧縮画像データを外部に出力する装置である。ある態様において、出力部１０５は、通信装置であり、インターネット等のネットワークを介して、圧縮画像データのファイルを他の装置に転送する。他の態様において、出力部１０５は、ＩＣメモリ、磁気ディスク等の外部記憶媒体に圧縮画像データを書き込む装置である。操作表示部１０７は、ユーザに対してコマンドや制御パラメータの入力を促す案内を表示する液晶パネル等の表示器と、ユーザがコマンドや制御パラメータを入力するために操作するプッシュボタン等の操作子とにより構成されている。制御部１０８は、操作表示部１０７を介して各種のコマンドや制御パラメータを受け取り、データ圧縮装置１００全体の制御を行う装置である。
【００１５】
次にエンコーダ１０４について説明する。図示のように、エンコーダ１０４は、画素値／係数変換部１１１と、量子化部１１２と、可変長符号化部１１３とにより構成されている。画素値／係数変換部１１１は、フレームメモリ１０３内の処理対象である画像データを所定の画素サイズ（例えば８×８画素）の画素値のブロックに区切り、ブロック単位で画像データの圧縮処理を行う装置である。この画素値／係数変換部１１１による圧縮処理は、特許文献１に開示されたＰＨＬＣＴ（Poly-Harmonic Local Cosine Transform；多重調和局所コサイン変換）アルゴリズムを発展させたＨＰＨＬＣＴ（Hierarchical Poly-Harmonic Local Cosine Transform；階層的多重調和局所コサイン変換）アルゴリズムに従って画像データの圧縮を行うものである。
【００１６】
さらに詳述すると、ＨＰＨＬＣＴアルゴリズムによる圧縮処理では、階層的な関係にあるＬ１（レイヤ１）エンコード処理と、Ｌ２エンコード処理と、Ｌ３エンコード処理とを順次実行する。図２はＬ１エンコード処理の処理内容を、図３はＬ２エンコード処理の処理内容を、図４はＬ３エンコード処理の処理内容を各々示すものである。Ｌ１エンコード処理〜Ｌ３エンコード処理の各々は、図２（ａ）〜図４（ａ）に示す２×２ＤＣＴと、図２（ｂ）〜図４（ｂ）に示す補正処理とにより構成されている。
【００１７】
Ｌ１エンコード処理では、圧縮対象である静止画の各画素値を２×２画素のブロックであるＬ１ブロックに区切り、Ｌ１ブロック毎に、２×２ＤＣＴ処理を行い、１個の直流成分のＤＣＴ係数Ｌ１Ｆ１と、３個の交流成分のＤＣＴ係数Ｌ１Ｆ２、Ｌ１Ｆ３およびＬ１Ｆ４を生成する。
【００１８】
具体的には、Ｌ１ブロックの第１行第１列の画素値をｆ１、第２行第１列の画素値をｆ２、第１行第２列の画素値をｆ３、第２行第２列の画素値をｆ４とした場合に、次式に従い、４個のＤＣＴ係数Ｆ１、Ｆ２、Ｆ３、Ｆ４を求める。
Ｆ１＝（（ｆ１＋ｆ３）＋（ｆ２＋ｆ４））／２                          ……（１）
Ｆ２＝（（ｆ１＋ｆ３）−（ｆ２＋ｆ４））／２                          ……（２）
Ｆ３＝（（ｆ１−ｆ３）＋（ｆ２−ｆ４））／２                          ……（３）
Ｆ４＝（（ｆ１−ｆ３）−（ｆ２−ｆ４））／２                          ……（４）
【００１９】
図２（ａ）において、２×２ＤＣＴの処理結果であるＤＣＴ係数行列中、第１行第１列にある直流成分のＤＣＴ係数Ｌ１Ｆ１は上記ＤＣＴ係数Ｆ１を、第２行第１列にある交流成分のＤＣＴ係数Ｌ１Ｆ２は上記ＤＣＴ係数Ｆ２を、第１行第２列にある交流成分のＤＣＴ係数Ｌ１Ｆ３は上記ＤＣＴ係数Ｆ３を、第２行第２列にある交流成分のＤＣＴ係数Ｌ１Ｆ４は上記ＤＣＴ係数Ｆ４を各々示している。
【００２０】
次に補正処理では、ＤＣＴ係数Ｆ１〜Ｆ４の得られた各Ｌ１ブロックについて、ＤＣＴ係数Ｆ１〜Ｆ４から傾き相殺関数ｕ（ｘ、ｙ）のＤＣＴ係数Ｕ１〜Ｕ４を各々差し引いた内容のＤＣＴ係数Ｌ１Ｖ１、Ｌ１Ｖ２、Ｌ１Ｖ３およびＬ１Ｖ４を求める。ここで、傾き相殺関数ｕ（ｘ、ｙ）とは、Ｌ１ブロック内において画素値ｆ１〜ｆ４の包絡面を表す連続関数（すなわち、ブロック内の各点の画像の濃度を表す）をφ（ｘ、ｙ）とした場合に、ブロックの境界において、この連続関数φ（ｘ、ｙ）の勾配と同じ勾配を有する関数である。特許文献１は、この傾き相殺関数ｕ（ｘ，ｙ）がポアソン方程式のノイマン境界値問題の解として得られることを示している。
【００２１】
補正処理の具体的な演算内容は次の通りである。すなわち、処理対象ブロックのＤＣＴ係数Ｆ１〜Ｆ４をｃ１〜ｃ４とし、処理対象ブロックの上の隣接ブロックのＤＣＴ係数Ｆ１〜Ｆ４をｔ１〜ｔ４とし、処理対象ブロックの下の隣接ブロックのＤＣＴ係数Ｆ１〜Ｆ４をｂ１〜ｂ４とし、処理対象ブロックの左の隣接ブロックのＤＣＴ係数Ｆ１〜Ｆ４をｌ１〜ｌ４とし、処理対象ブロックの右の隣接ブロックのＤＣＴ係数Ｆ１〜Ｆ４をｒ１〜ｒ４とした場合に、次式に従い、Ｌ１ブロックの傾き相殺関数の成分が相殺されたＤＣＴ係数Ｖ１、Ｖ２、Ｖ３およびＶ４を算出するのである。
Ｖ１＝ｃ１−Ｕ１＝ｃ１                                            ……（５）
Ｖ２＝ｃ２−Ｕ２＝ｃ２−（ｔ１−ｂ１）／８                        ……（６）
Ｖ３＝ｃ３−Ｕ３＝ｃ３−（ｌ１−ｒ１）／８                        ……（７）
Ｖ４＝ｃ４−Ｕ４＝ｃ４−０．０５５１＊（ｔ３−ｂ３＋ｌ２−ｒ２）  ……（８）
【００２２】
上記式（５）にも示されているように、補正処理において、直流成分のＤＣＴ係数ｃ１については、何も補正を行わない。補正処理では、交流成分のＤＣＴ係数のみが補正される。この補正処理により得られたＤＣＴ係数Ｖ１、Ｖ２、Ｖ３およびＶ４が、Ｌ１エンコード処理の最終結果としてのＤＣＴ係数Ｌ１Ｖ１、Ｌ１Ｖ２、Ｌ１Ｖ３およびＬ１Ｖ４となる。
【００２３】
特許文献１は、任意の画素サイズのブロックについて、傾き相殺関数の成分が相殺されたＤＣＴ係数を算出するための式（１０）を示しているが、上記式（５）〜（８）は、この特許文献１における式（１０）を２×２画素のブロックに合わせて変形したものである。
【００２４】
なお、補正処理の対象であるブロックが静止画の上端に位置している場合、このブロックの上の隣接ブロックは存在しない。同様に、処理対象であるブロックが静止画の左端、右端、下端に位置している場合にも、存在しない隣接ブロックが生じる。これらの場合、補正処理では、そのような存在しない隣接ブロックのＤＣＴ係数の代わりに、処理対象のブロックのＤＣＴ係数を用いて、上記式（５）〜（８）の演算を行う。この措置は、Ｌ１以外の他の階層の補正処理でも同様である。
【００２５】
次にＬ２エンコード処理では、Ｌ１ブロックを上下方向に２個、左右方向に２個ずつまとめて、１ブロック当たり４個のＬ１ブロックを包含するＬ２ブロックを構成する。そして、このようにして構成される複数のＬ２ブロックの各々について、２×２ＤＣＴ（図３（ａ）参照）と補正処理（図３（ｂ）参照）を実行する。
【００２６】
Ｌ２エンコード処理の２×２ＤＣＴでは、１つのＬ２ブロックに含まれる４個のＬ１ブロックのうち左上のＬ１ブロックの直流成分のＤＣＴ係数Ｌ１Ｖ１を要素ｆ１とし、左下のＬ１ブロックの直流成分のＤＣＴ係数Ｌ１Ｖ１を要素ｆ２とし、右上のＬ１ブロックの直流成分のＤＣＴ係数Ｌ１Ｖ１を要素ｆ３とし、右下のＬ１ブロックの直流成分のＤＣＴ係数Ｌ１Ｖ１を要素ｆ４として、前述した式（１）〜（４）に代入して、ＤＣＴ係数Ｆ１、Ｆ２、Ｆ３およびＦ４を算出する。このようにして得られるＤＣＴ係数Ｆ１、Ｆ２、Ｆ３およびＦ４が、Ｌ２ブロックのＤＣＴ係数Ｌ２Ｆ１、Ｌ２Ｆ２、Ｌ２Ｆ３およびＬ２Ｆ４となる。
【００２７】
次にＬ２エンコード処理の補正処理では、ＤＣＴ係数Ｌ２Ｆｋ（ｋ＝１〜４）の得られた各Ｌ２ブロックについて、Ｌ２ブロックの傾き相殺関数が相殺された内容のＤＣＴ係数Ｌ２Ｖ１、Ｌ２Ｖ２、Ｌ２Ｖ３およびＬ２Ｖ４を求める。さらに詳述すると、補正処理では、処理対象であるＬ２ブロックのＤＣＴ係数Ｌ２Ｆ１〜Ｌ２Ｆ４をｃ１〜ｃ４とし、処理対象であるＬ２ブロックの上の隣接Ｌ２ブロックのＤＣＴ係数Ｌ２Ｆ１〜Ｌ２Ｆ４をｔ１〜ｔ４とし、処理対象であるＬ２ブロックの下の隣接Ｌ２ブロックのＤＣＴ係数Ｌ２Ｆ１〜Ｌ２Ｆ４をｂ１〜ｂ４とし、処理対象であるＬ２ブロックの左の隣接Ｌ２ブロックのＤＣＴ係数Ｌ２Ｆ１〜Ｌ２Ｆ４をｌ１〜ｌ４とし、処理対象であるＬ２ブロックの右の隣接Ｌ２ブロックのＤＣＴ係数Ｌ２Ｆ１〜Ｌ２Ｆ４をｒ１〜ｒ４とし、前述した式（５）〜（８）に代入して、Ｌ２ブロックの傾き相殺関数の成分が相殺された内容のＤＣＴ係数Ｖ１、Ｖ２、Ｖ３およびＶ４を算出する。このＤＣＴ係数Ｖ１、Ｖ２、Ｖ３およびＶ４が、Ｌ２エンコード処理の最終結果としてのＤＣＴ係数Ｌ２Ｖ１、Ｌ２Ｖ２、Ｌ２Ｖ３およびＬ２Ｖ４となる。
【００２８】
次にＬ３エンコード処理では、Ｌ２ブロックを上下方向に２個、左右方向に２個ずつまとめて、１ブロック当たり４個のＬ２ブロックを包含するＬ３ブロックを構成する。そして、このようにして構成される複数のＬ３ブロックの各々について、２×２ＤＣＴ（図４（ａ）参照）と補正処理（図４（ｂ）参照）を実行する。
【００２９】
Ｌ３エンコード処理の２×２ＤＣＴでは、１つのＬ３ブロックに含まれる４個のＬ２ブロックのうち左上のＬ２ブロックの直流成分のＤＣＴ係数Ｌ２Ｖ１をｆ１とし、左下のＬ２ブロックの直流成分のＤＣＴ係数Ｌ２Ｖ１をｆ２とし、右上のＬ２ブロックの直流成分のＤＣＴ係数Ｌ２Ｖ１をｆ３とし、右下のＬ２ブロックの直流成分のＤＣＴ係数Ｌ２Ｖ１をｆ４として、前述した式（１）〜（４）に代入し、ＤＣＴ係数Ｆ１、Ｆ２、Ｆ３およびＦ４を算出する。このようにして得られるＤＣＴ係数Ｆ１、Ｆ２、Ｆ３およびＦ４が、Ｌ３ブロックのＤＣＴ係数Ｌ３Ｆ１、Ｌ３Ｆ２、Ｌ３Ｆ３およびＬ３Ｆ４となる。
【００３０】
次にＬ３エンコード処理の補正処理では、ＤＣＴ係数行列Ｌ３Ｆｋ（ｋ＝１〜４）の得られた各Ｌ３ブロックについて、Ｌ３ブロックの傾き相殺関数の成分が相殺された内容のＤＣＴ係数Ｌ３Ｖ１、Ｌ３Ｖ２、Ｌ３Ｖ３およびＬ３Ｖ４を求める。さらに詳述すると、補正処理では、処理対象であるＬ３ブロックのＤＣＴ係数Ｌ３Ｆ１〜Ｌ３Ｆ４をｃ１〜ｃ４とし、処理対象であるＬ３ブロックの上の隣接Ｌ３ブロックのＤＣＴ係数Ｌ３Ｆ１〜Ｌ３Ｆ４をｔ１〜ｔ４とし、処理対象であるＬ３ブロックの下の隣接Ｌ３ブロックのＤＣＴ係数Ｌ３Ｆ１〜Ｌ３Ｆ４をｂ１〜ｂ４とし、処理対象であるＬ３ブロックの左の隣接Ｌ３ブロックのＤＣＴ係数Ｌ３Ｆ１〜Ｌ３Ｆ４をｌ１〜ｌ４とし、処理対象であるＬ３ブロックの右の隣接Ｌ３ブロックのＤＣＴ係数Ｌ３Ｆ１〜Ｌ３Ｆ４をｒ１〜ｒ４として、前述した式（５）〜（８）に代入し、Ｌ３ブロックの傾き相殺関数の成分が相殺された内容のＤＣＴ係数Ｖ１、Ｖ２、Ｖ３およびＶ４を算出する。このＤＣＴ係数Ｖ１、Ｖ２、Ｖ３およびＶ４が、Ｌ３エンコード処理の最終結果としてのＤＣＴ係数Ｌ３Ｖ１、Ｌ３Ｖ２、Ｌ３Ｖ３およびＬ３Ｖ４となる。
【００３１】
以上説明した各階層のエンコード処理のうちＬ１、Ｌ２の各階層のエンコード処理では、補正処理により得られたＤＣＴ係数のうち交流成分のＤＣＴ係数が当該階層でのエンコード結果として最終的に残り、直流成分は上位階層のエンコード処理に引き渡される。従って、Ｌ１〜Ｌ３の全階層のエンコード処理が終了すると、８×８画素の１ブロック当たり次の情報が最終的なエンコード結果として得られる。
ａ．Ｌ１ブロックの交流成分のＤＣＴ係数Ｌ１Ｖ２、Ｌ１Ｖ３、Ｌ１Ｖ４
３×（（８×８）／（２×２））＝４８個
ｂ．Ｌ２ブロックの交流成分のＤＣＴ係数Ｌ２Ｖ２、Ｌ２Ｖ３、Ｌ２Ｖ４
３×（（８×８）／（４×４））＝１２個
ｃ．Ｌ３ブロックのＤＣＴ係数Ｌ３Ｖ１、Ｌ３Ｖ２、Ｌ３Ｖ３、Ｌ３Ｖ４
以上、６４個のＤＣＴ係数が１ブロック当たりのエンコード処理結果となる。
【００３２】
図１において、量子化部１１２は、画素値／係数変換部１１１から得られる１ブロック当たり１６個のＤＣＴ係数を量子化する装置である。ここで、量子化は、ＤＣＴ係数を量子化スケール値によって除算し、除算結果の整数部を量子化データとして出力する処理である。本実施形態では、操作表示部１０７の操作により、この量子化に用いる量子化スケール値をＬ１、Ｌ２、Ｌ３の階層毎に独立して指定することが可能である。操作表示部１０７の操作により指定されたＬ１、Ｌ２、Ｌ３の各階層の量子化スケール値は、制御部１０８を介して量子化部１１２に与えられる。量子化部１１２は、Ｌ１ブロックのＤＣＴ係数Ｌ１Ｖ２、Ｌ１Ｖ３およびＬ１Ｖ４は、Ｌ１用の量子化スケール値により、Ｌ２ブロックのＤＣＴ係数Ｌ２Ｖ２、Ｌ２Ｖ３およびＬ２Ｖ４は、Ｌ２用の量子化スケール値により、Ｌ３ブロックのＤＣＴ係数Ｌ３Ｖ１、Ｌ３Ｖ２、Ｌ３Ｖ３およびＬ３Ｖ４は、Ｌ３用の量子化スケール値により各々量子化し、量子化データを出力する。
【００３３】
可変長符号化部１１３は、ハフマン符号化等の周知の可変長符号化アルゴリズムにより、量子化部１１２から出力される量子化データを可変長符号に変換し、出力部１０５に与える。出力部１０５は、可変長符号化部１１３から出力される可変長符号の列に対し、階層毎の量子化スケール値等、圧縮画像データの伸張処理に必要な情報を含むヘッダを付加し、最終的な圧縮画像データとして出力する。
以上がデータ圧縮装置１００の詳細である。
【００３４】
次に本実施形態によるデータ伸張装置２００について説明する。図１に示すように、データ伸張装置２００は、入力部２０１と、デコーダ２０２と、フレームメモリ２０３と、表示制御部２０４と、表示部２０５と、メモリ部２０６と、操作表示部２０７と、制御部２０８とを有する。
【００３５】
入力部２０１は、伸張処理の対象である圧縮画像データを外部から受け取る装置である。ある態様において、入力部２０１は、通信装置であり、インターネット等のネットワークを介して、他の装置から圧縮画像データのファイルを受信する。他の態様において、入力部２０１は、ＩＣメモリ、磁気ディスク等の外部記憶媒体から圧縮画像データを読み出す装置である。デコーダ２０２は、入力部２０１を介して受け取った圧縮画像データに伸張処理を施し、画像データを出力する装置である。なお、このデコーダ２０２の詳細については後述する。メモリ部２０６は、例えばＲＡＭであり、デコーダ２０２が伸張処理を実行する際にワークエリアとして用いられる。フレームメモリ２０３は、例えばＲＡＭであり、デコーダ２０２の伸張処理により得られた画像データを格納する役割を果たす。表示部２０５は、例えば液晶ディスプレイパネルとその駆動回路により構成されている。表示制御部２０４は、所定時間長の垂直同期周期毎に、フレームメモリ２０３に記憶された画像データを読み出して表示部２０５に与え、表示部２０５に画像を表示させる装置である。操作表示部２０７は、ユーザに対してコマンドや制御パラメータの入力を促す案内を表示する液晶パネル等の表示器と、ユーザがコマンドや制御パラメータを入力するために操作するプッシュボタン等の操作子とにより構成されている。制御部２０８は、操作表示部２０７を介して各種のコマンドや制御パラメータを受け取り、データ伸張装置２００全体の制御を行う装置である。
【００３６】
次にデコーダ２０２について説明する。図示のように、デコーダ２０２は、可変長復号化部２１１と、逆量子化部２１２と、係数／画素値変換部２１３とを有している。入力部２０１が受け取る圧縮画像データは、階層毎の量子化スケール値等を含むヘッダと、それに続くブロック毎のデータとにより構成されている。ここで、ブロック毎のデータは、各ブロック（８×８画素のブロック）について得られた各階層のＤＣＴ係数を階層毎の量子化スケール値により量子化し、さらに可変長符号化したものである。可変長復号化部２１１は、この可変長符号を可変長符号化前の量子化データに戻す装置である。また、逆量子化部２１２は、圧縮画像データのヘッダに含まれる階層毎の量子化スケール値を用いて、量子化データを逆量子化し、８×８画素のブロック毎に、逆量子化により得られた各階層のＤＣＴ係数Ｌ３Ｖ１〜Ｌ３Ｖ４、Ｌ２Ｖ２〜Ｌ２Ｖ４、Ｌ１Ｖ２〜Ｌ１Ｖ４を出力する装置である。そして、係数／画素値変換部２１３は、上述したＨＰＨＬＣＴアルゴリズムの逆変換であるＩＨＰＨＬＣＴ（Inverse Hierarchical Poly-Harmonic Local Cosine Transform；逆階層的多重調和局所コサイン変換）アルゴリズムに従って、ブロック（８×８画素のブロック）毎に、Ｌ３、Ｌ２、Ｌ１の各階層のＤＣＴ係数の伸張処理を実行し、ブロックを構成する各画素の画素値を算出する装置である。
【００３７】
係数／画素値変換部２１３は、各階層のＤＣＴ係数Ｌ３Ｖ１〜Ｌ３Ｖ４、Ｌ２Ｖ２〜Ｌ２Ｖ４、Ｌ１Ｖ２〜Ｌ１Ｖ４からブロックの各画素の画素値を求めるために、Ｌ３デコード処理、Ｌ２デコード処理およびＬ１デコード処理を実行する。図５はＬ３デコード処理の処理内容を、図６はＬ２デコード処理の処理内容を、図７はＬ１デコード処理の処理内容を各々示すものである。Ｌ３デコード処理〜Ｌ１デコード処理の各々は、図５（ａ）〜図７（ａ）に示す補正処理と、図５（ｂ）〜図７（ｂ）に示す２×２ＩＤＣＴとにより構成されている。これらの各デコード処理は、メモリ部２０６をワークエリアとして実行されるものであるが、以下では簡単のため、各デコード処理におけるメモリ部２０６の使用態様に関する説明は省略し、ＤＣＴ係数から画素値を得るまでの一連の算術演算を中心に説明する。
【００３８】
まず、Ｌ３デコード処理の補正処理では、処理対象であるＬ３ブロックのＤＣＴ係数Ｌ３Ｖ１〜Ｌ３Ｖ４をデータｃ１〜ｃ４とし、当該Ｌ３ブロックの上の隣接Ｌ３ブロックのＤＣＴ係数Ｌ３Ｖ１、Ｌ３Ｖ３をデータｔ１、ｔ３とし、当該Ｌ３ブロックの下の隣接Ｌ３ブロックのＤＣＴ係数Ｌ３Ｖ１、Ｌ３Ｖ３をデータｂ１、ｂ３とし、当該Ｌ３ブロックの左の隣接Ｌ３ブロックのＤＣＴ係数Ｌ３Ｖ１、Ｌ３Ｖ２をデータｌ１、ｌ２とし、当該Ｌ３ブロックの右の隣接Ｌ３ブロックのＤＣＴ係数Ｌ３Ｖ１、Ｌ３Ｖ２をデータｒ１、ｒ２とし、次式に従い、Ｌ３ブロックの傾き相殺関数の成分Ｕ１〜Ｕ４を加えた内容のＤＣＴ係数Ｆ１、Ｆ２、Ｆ３、Ｆ４を算出する。
Ｆ１＝ｃ１＋Ｕ１＝ｃ１                                            ……（９）
Ｆ２＝ｃ２＋Ｕ２＝ｃ２＋（ｔ１−ｂ１）／８                        ……（１０）
Ｆ３＝ｃ３＋Ｕ３＝ｃ３＋（ｌ１−ｒ１）／８                        ……（１１）
Ｆ４＝ｃ４＋Ｕ４＝ｃ４＋０．０５５１＊（ｔ３−ｂ３＋ｌ２−ｒ２）  ……（１２）
これらのＤＣＴ係数Ｆ１〜Ｆ４は、上述したＬ３エンコード処理において補正処理が施される前のＬ３ブロックのＤＣＴ係数Ｌ３Ｆ１〜Ｌ３Ｆ４に相当する（以上、図５（ａ）参照）。なお、デコード対象のＬ３ブロックが静止画の上端、下端、左端、右端のものである場合には、上下左右の一部の隣接Ｌ３ブロックが存在しない事態となるが、その場合にはデコード対象のＬ３ブロック自体のＤＣＴ係数を存在しない隣接Ｌ３ブロックのＤＣＴ係数の代わりに使用する。これはＬ２デコード処理、Ｌ１デコード処理の各補正処理においても同様である。
【００３９】
次にＬ３デコード処理の２×２ＩＤＣＴでは、次式に従い、要素ｆ１、ｆ２、ｆ３、ｆ４を算出する。
ｆ１＝（（Ｆ１＋Ｆ３）＋（Ｆ２＋Ｆ４））／２                        ……（１３）
ｆ２＝（（Ｆ１＋Ｆ３）−（Ｆ２＋Ｆ４））／２                        ……（１４）
ｆ３＝（（Ｆ１−Ｆ３）＋（Ｆ２−Ｆ４））／２                        ……（１５）
ｆ４＝（（Ｆ１−Ｆ３）−（Ｆ２−Ｆ４））／２                        ……（１６）
これらの要素ｆ１〜ｆ４は、上述したＬ３エンコード処理において２×２ＤＣＴが施される前の要素ｆ１〜ｆ４、すなわち、当該Ｌ３ブロックに包含される４個のＬ２ブロックの直流成分のＤＣＴ係数Ｌ２Ｖ１に相当する（以上、図５（ｂ）参照）。
【００４０】
Ｌ２デコード処理の補正処理では、処理対象であるＬ２ブロックのＤＣＴ係数Ｌ２Ｖ１、Ｌ２Ｖ２、Ｌ２Ｖ３およびＬ２Ｖ４をデータｃ１、ｃ２、ｃ３、ｃ４とし、当該Ｌ２ブロックの上の隣接Ｌ２ブロックのＤＣＴ係数Ｌ２Ｖ１、Ｌ２Ｖ３をデータｔ１、ｔ３とし、当該Ｌ２ブロックの下の隣接Ｌ２ブロックのＤＣＴ係数Ｌ２Ｖ１、Ｌ２Ｖ３をデータｂ１、ｂ３とし、当該Ｌ２ブロックの左の隣接Ｌ２ブロックのＤＣＴ係数Ｌ２Ｖ１、Ｌ２Ｖ２をデータｌ１、ｌ２とし、当該Ｌ２ブロックの右の隣接Ｌ２ブロックのＤＣＴ係数Ｌ２Ｖ１、Ｌ２Ｖ２をデータｒ１、ｒ２とし、上述した式（９）〜（１２）に従い、Ｌ２ブロックの傾き相殺関数の成分Ｕ１〜Ｕ４を加えた内容のＤＣＴ係数Ｆ１、Ｆ２、Ｆ３、Ｆ４を算出する。これらのＤＣＴ係数Ｆ１〜Ｆ４は、上述したＬ２エンコード処理において補正処理が施される前のＬ２ブロックのＤＣＴ係数Ｌ２Ｆ１〜Ｌ２Ｆ４に相当する（以上、図６（ａ）参照）。
【００４１】
次にＬ２デコード処理の２×２ＩＤＣＴでは、Ｌ２デコード処理の補正処理により算出したＤＣＴ係数Ｆ１〜Ｆ４を上述した式（１３）〜（１６）に代入し、要素ｆ１、ｆ２、ｆ３、ｆ４を算出する。これらの要素ｆ１〜ｆ４は、上述したＬ２エンコード処理において２×２ＤＣＴが施される前の要素ｆ１〜ｆ４、すなわち、当該Ｌ２ブロックに包含される４個のＬ１ブロックの直流成分のＤＣＴ係数Ｌ１Ｖ１に相当する（以上、図６（ｂ）参照）。
【００４２】
Ｌ１デコード処理の補正処理では、処理対象であるＬ１ブロックのＤＣＴ係数Ｌ１Ｖ１、Ｌ１Ｖ２、Ｌ１Ｖ３およびＬ１Ｖ４をデータｃ１、ｃ２、ｃ３、ｃ４とし、当該Ｌ１ブロックの上の隣接Ｌ１ブロックのＤＣＴ係数Ｌ１Ｖ１、Ｌ１Ｖ３をデータｔ１、ｔ３とし、当該Ｌ１ブロックの下の隣接Ｌ１ブロックのＤＣＴ係数Ｌ１Ｖ１、Ｌ１Ｖ３をデータｂ１、ｂ３とし、当該Ｌ１ブロックの左の隣接Ｌ１ブロックのＤＣＴ係数Ｌ１Ｖ１、Ｌ１Ｖ２をデータｌ１、ｌ２とし、当該Ｌ１ブロックの右の隣接Ｌ１ブロックのＤＣＴ係数Ｌ１Ｖ１、Ｌ１Ｖ２をデータｒ１、ｒ２とし、上述した式（９）〜（１２）に従い、Ｌ１ブロックの傾き相殺関数の成分Ｕ１〜Ｕ４を加えた内容のＤＣＴ係数Ｆ１、Ｆ２、Ｆ３、Ｆ４を算出する。これらのＤＣＴ係数Ｆ１〜Ｆ４は、上述したＬ１エンコード処理において補正処理が施される前のＬ１ブロックのＤＣＴ係数Ｌ１Ｆ１〜Ｌ１Ｆ４に相当する（以上、図７（ａ）参照）。
【００４３】
次にＬ１デコード処理の２×２ＩＤＣＴでは、Ｌ１デコード処理の補正処理により算出したＤＣＴ係数Ｆ１〜Ｆ４を上述した式（１３）〜（１６）に代入し、要素ｆ１、ｆ２、ｆ３、ｆ４を算出する。これらの要素ｆ１〜ｆ４は、上述したＬ１エンコード処理において２×２ＤＣＴが施される前の要素ｆ１〜ｆ４、すなわち、当該Ｌ１ブロックを構成する４個の画素の画素値に相当する（以上、図７（ｂ）参照）。
以上がＬ３デコード処理〜Ｌ１デコード処理の内容である。
【００４４】
図８は、可変長復号化部２１１および逆量子化部２１２からなる部分と、係数／画素値変換部２１３とにより行われる処理の内容を示している。同図に示すように、メモリ部２０６は、各々所定の記憶容量を有するプレーン２０６Ａ、２０６Ｂ、２０６Ｃおよび２０６Ｄを有する。これらのプレーン２０６Ａ〜２０６Ｄは、各々別個のＲＡＭであってもよいし、同一ＲＡＭ内の互いに重複しない別個の記憶エリアであってもよい。逆量子化部２１２は、８×８画素のブロック毎に、逆量子化により得られた各階層のＤＣＴ係数Ｌ３Ｖ１〜Ｌ３Ｖ４、Ｌ２Ｖ２〜Ｌ２Ｖ４、Ｌ１Ｖ２〜Ｌ１Ｖ４をメモリ部２０６のプレーン２０６Ａ〜２０６Ｄの全てに書き込む。係数／画素値変換部２１３は、このメモリ部２０６の各プレーン２０６Ａ〜２０６Ｄを利用して、上述したＬ３デコード処理、Ｌ２デコード処理およびＬ１デコード処理と、出力処理を実行する。
【００４５】
本実施形態の１つの特徴は、Ｌ３デコード処理、Ｌ２デコード処理およびＬ１デコード処理の実行時における各階層のＤＣＴ係数とそれらのプレーン２０６Ａ〜２０６Ｄにおける格納アドレスとの関係にある。ここで、図９を参照し、各ＤＣＴ係数とその格納アドレスとの関係について説明する。
【００４６】
本実施形態において、メモリ部２０６におけるプレーン２０６Ａ〜２０６Ｄの１アドレス分のエリアは、４ワードの記憶容量を有している。また、本実施形態において取り扱うＤＣＴ係数および画素値は、１ワードで表現される。従って、プレーン２０６Ａ〜２０６Ｄの各エリアは、各々４個のＤＣＴ係数または画素値を記憶可能であり、１回のアクセス当たり、４個のＤＣＴ係数または画素値をプレーン２０６Ａ〜２０６Ｄから読み出し、あるいはプレーン２０６Ａ〜２０６Ｄに書き込むことができる。
【００４７】
図９（ａ）および（ｂ）は、プレーン２０６Ａ〜２０６Ｄの各々のアドレスマップを示している。本実施形態において、プレーン２０６Ａ〜２０６Ｄは、各々が１６個のエリアにより構成されたマクロエリアに区分されている。図９（ａ）に示される各矩形は、プレーン２０６Ａ〜２０６Ｄの各エリアを区分したマクロエリアを各々示している。図９（ｂ）は、１個のマクロエリアの詳細を示すものである。図９（ｂ）に示すように、マクロエリア内の１６個のエリアには、連続したアドレスＡＤＲｉ，ｊ，ｋ（ｋ＝０〜１５）が与えられている。
【００４８】
逆量子化部２１２は、１つのブロック（８×８画素のブロック）を表す６４個のＤＣＴ係数を出力するとき、プレーン２０６Ａ〜２０６Ｄの各々において、アドレスＡＤＲｉ，ｊ，ｋ（ｋ＝０〜１５）に対応した各エリアに、それら６４個のＤＣＴ係数を４個ずつに分けて格納する。また、このブロックの上の隣接ブロックの６４個のＤＣＴ係数はアドレスＡＤＲｉ−１，ｊ，ｋ（ｋ＝０〜１５）を有する各エリアに、下の隣接ブロックの６４個のＤＣＴ係数はアドレスＡＤＲｉ＋１，ｊ，ｋ（ｋ＝０〜１５）を有する各エリアに、左の隣接ブロックの６４個のＤＣＴ係数はアドレスＡＤＲｉ，ｊ−１，ｋ（ｋ＝０〜１５）を有する各エリアに、右の隣接ブロックの６４個のＤＣＴ係数はアドレスＡＤＲｉ，ｊ＋１，ｋ（ｋ＝０〜１５）を有する各エリアに各々格納する。
【００４９】
図９（ｃ）は、１ブロック分の６４個のＤＣＴ係数を示している。図９（ｃ）には、各ＤＣＴ係数に対し、上下方向にスキャンを繰り返すように、１〜６４までの番号が振られているが、これらの１〜６４番のＤＣＴ係数の種類は、図９（ｃ）において、○印、△印、無印により区別した通りである。
【００５０】
この図９（ｃ）に示す６４個のＤＣＴ係数の配列は、データ圧縮装置１００の画素値／係数変換部１１１が１ブロック分のＬ１〜Ｌ３デコード処理を終えた状態のままの配列となっている。このように各階層のＤＣＴ係数を本来の配置のままプレーン２０６Ａ〜２０６Ｄに格納し、この配置状態を維持して、Ｌ３〜Ｌ１デコード処理を実行することも可能である。
【００５１】
しかし、そのようなＤＣＴ係数の格納方法を採用した場合、１ブロック分のＬ３〜Ｌ１デコード処理のためのプレーン２０６Ａ〜２０６Ｄへのアクセス回数が多くなり、Ｌ３〜Ｌ１デコード処理が非効率的なものとなる。そこで、本実施形態では、ＤＣＴ係数をプレーン２０６Ａ〜２０６Ｄに格納する際に、上位階層のものほど複数のエリアに跨らないように、各階層のＤＣＴ係数を階層毎にまとめてプレーン２０６Ａ〜２０６Ｄに格納する。
【００５２】
さらに詳述すると、例えば図９（ｄ）に示すように、１つの８×８画素のブロックに属するＬ３ブロックの４個のＤＣＴ係数をマクロエリア内の１つのエリア（アドレスＡＤＲｉ，ｊ，０）にまとめて格納し、同ブロックに属する４個のＬ２ブロックの１２個のＤＣＴ係数（交流成分）を同マクロエリア内においてアドレスＡＤＲｉ，ｊ，０のエリアを囲む３つのエリア（アドレスＡＤＲｉ，ｊ，１、ＡＤＲｉ，ｊ，４、ＡＤＲｉ，ｊ，５）に格納し、同ブロックに属する１６個のＬ１ブロックの４８個のＤＣＴ係数（交流成分）を同マクロエリア内の他の１２個のエリアに格納する。このようにすることで、１ブロック分のＬ３〜Ｌ１デコード処理のためのプレーン２０６Ａ〜２０６Ｄへのアクセス回数を大幅に減らすことができる。なお、このような効果が如何にして発生するかについては、後に詳述する。
【００５３】
ところで、図９（ｄ）に示すように各ＤＣＴ係数を各エリアに格納するためには、事前に各エリアに記憶するデータを構成する４個のＤＣＴ係数を取得し、それらを繋ぎ合わせておく必要がある。そこで、本実施形態では、この繋ぎ合わせを容易にするためのＤＣＴ係数の並び替え回路が係数／画素値変換部２１３よりも前段の位置、具体的には可変長復号化部２１１の出力部分に設けられている（図示略）。この並べ替え回路は、可変長復号化部２１１から得られる逆量子化前のＤＣＴ係数を、各階層のＤＣＴ係数が上位階層から順に並び、かつ、同一エリアに格納されるべき４個のＤＣＴ係数が連続するように並び替えを行う。
【００５４】
このような並び替えを行っておくと、逆量子化部２１２から出力される各ＤＣＴ係数を出力順に４個ずつまとめるだけで、メモリ部２０６の各エリアに格納するデータができあがる。また、逆量子化部２１２では、同一階層の逆量子化前のＤＣＴ係数が連続して入力されるため、階層毎の量子化スケール値を用いた逆量子化を効率的に進めることができる。
【００５５】
次に、再び図８を参照し、各ＤＣＴ係数の格納先に言及しつつ、Ｌ３デコード処理、Ｌ２デコード処理、Ｌ１デコード処理および出力処理について説明する。まず、Ｌ３デコード処理では、デコード対象である８×８画素のブロックに属するＬ３ブロックについて、プレーン２０６Ａに格納された当該Ｌ３ブロックのＤＣＴ係数Ｌ３Ｖ１、Ｌ３Ｖ２、Ｌ３Ｖ３、Ｌ３Ｖ４と、当該Ｌ３ブロックの上下左右の４個の隣接Ｌ３ブロックのＤＣＴ係数Ｌ３Ｖ１およびＬ３Ｖ２またはＤＣＴ係数Ｌ３Ｖ１およびＬ３Ｖ３を読み出す。なお、デコード対象のＬ３ブロックが静止画の上端、下端、左端、右端のものである場合には、上下左右の一部の隣接Ｌ３ブロックが存在しない事態となるが、その場合にはデコード対象のＬ３ブロック自体のＤＣＴ係数を存在しない隣接Ｌ３ブロックのＤＣＴ係数の代わりに使用する。そして、これらの読み出しデータに基づいて、前掲式（１３）〜（１６）のｆ１〜ｆ４に相当する４個のＤＣＴ係数Ｌ２Ｖ１、すなわち、当該Ｌ３ブロックが包含する４個のＬ２ブロックの各々の直流成分のＤＣＴ係数Ｌ２Ｖ１を算出する。そして、ｆ１〜ｆ４に相当する各ＤＣＴ係数Ｌ２Ｖ１を、プレーン２０６Ｂにおいて当該Ｌ３ブロックのＤＣＴ係数Ｌ３Ｖ１、Ｌ３Ｖ２、Ｌ３Ｖ３、Ｌ３Ｖ４が格納されていた各エリアに各々書き込む。
【００５６】
Ｌ２デコード処理では、デコード対象である８×８画素のブロックに属する４個のＬ２ブロックの各々について、当該Ｌ２ブロックのＤＣＴ係数Ｌ２Ｖ１、Ｌ２Ｖ２、Ｌ２Ｖ３、Ｌ２Ｖ４と、当該Ｌ２ブロックに隣接する４個のＬ２ブロックのＤＣＴ係数Ｌ２Ｖ１およびＬ２Ｖ２またはＤＣＴ係数Ｌ２Ｖ１およびＬ２Ｖ３をプレーン２０６Ｂから読み出す。これらのＤＣＴ係数のうち直流成分のＤＣＴ係数Ｌ２Ｖ１は、Ｌ３デコード処理によりプレーン２０６Ｂに上書きされたものである。そして、これらの読み出しデータに基づいて、前掲式（１３）〜（１６）のｆ１〜ｆ４に相当する４個のＤＣＴ係数Ｌ１Ｖ１、すなわち、当該Ｌ２ブロックが包含する４個のＬ１ブロックの各々の直流成分のＤＣＴ係数Ｌ１Ｖ１を算出する。そして、ｆ２〜ｆ４に相当する各ＤＣＴ係数Ｌ１Ｖ１を、プレーン２０６Ｃにおいて当該Ｌ２ブロックのＤＣＴ係数Ｌ２Ｖ２、Ｌ２Ｖ３、Ｌ２Ｖ４が格納されている各エリアに各々上書きする。また、プレーン２０６Ｂにおいて当該Ｌ２ブロックのＤＣＴ係数Ｌ２Ｖ１が上書きされたエリアに元々格納されていたＤＣＴ係数をＤＣＴ係数Ｌ３Ｖｋとした場合に、ｆ１に相当するＤＣＴ係数Ｌ１Ｖ１を、このＤＣＴ係数Ｌ３Ｖｋが格納されているプレーン２０６Ｃ上のエリアに上書きする。
【００５７】
Ｌ１デコード処理では、デコード対象である８×８画素のブロックに属する１６個のＬ１ブロックの各々について、当該Ｌ１ブロックのＤＣＴ係数Ｌ１Ｖ１、Ｌ１Ｖ２、Ｌ１Ｖ３、Ｌ１Ｖ４と、当該Ｌ１ブロックに隣接する４個のＬ１ブロックのＤＣＴ係数Ｌ１Ｖ１およびＬ１Ｖ２またはＤＣＴ係数Ｌ１Ｖ１およびＬ１Ｖ３をプレーン２０６Ｃから読み出す。これらのＤＣＴ係数のうち直流成分のＤＣＴ係数Ｌ１Ｖ１は、Ｌ２デコード処理によりプレーン２０６Ｃに上書きされたものである。そして、これらの読み出しデータに基づいて、当該Ｌ１ブロックの画素値ｆ１、ｆ２、ｆ３、ｆ４を算出する。そして、画素値ｆ２、ｆ３、ｆ４を、プレーン２０６Ｄにおいて当該Ｌ１ブロックのＤＣＴ係数Ｌ１Ｖ２、Ｌ１Ｖ３、Ｌ１Ｖ４が格納されている各エリアに上書きする。また、プレーン２０６Ｃにおいて当該Ｌ１ブロックのＤＣＴ係数Ｌ１Ｖ１が上書きされたエリアに元々格納されていたＤＣＴ係数をＤＣＴ係数Ｌ２Ｖｋとした場合に、画素値ｆ１を、このＤＣＴ係数Ｌ２Ｖｋが格納されているプレーン２０６Ｄ上のエリアに上書きする。
【００５８】
出力処理では、プレーン２０６Ｄに格納された各画素値を読み出し、それらの画素値をフレームメモリ２０３内において各々が占めるべき各エリアにマッピングする。さらに詳述すると、ブロック内の８×８画素の各々に例えば図９（ｃ）に示すような番号付けを行った場合、プレーン２０６Ｄでは、それらの画素の画素値が図９（ｄ）に示すように並び替えられた状態で格納されている。出力処理では、この図９（ｄ）の状態から図９（ｃ）の状態に戻す並び替えを行いつつ、プレーン２０６Ｄに格納された各画素値をフレームメモリ２０３内にマッピングする。
【００５９】
本実施形態において、係数／画素値変換部２１３は、可変長復号化部２１１および逆量子化部２１２が圧縮画像データ全体についての可変長復号化および逆量子化を終えるのを待つのではなく、可変長復号化部２１１および逆量子化部２１２の処理により、画素値への変換に用いる所定ブロックライン数分のＤＣＴ係数がプレーン２０６Ａに書き込まれたときに、Ｌ３デコード処理の実行を開始する。Ｌ３デコード処理の後に続くＬ２デコード処理、Ｌ１デコード処理、出力処理についても同様であり、係数／画素値変換部２１３は、先行する処理が全て完了するのを待つのではなく、後続の処理に用いられる所定量のデータが先行する処理により得られたときに、後続の処理を開始する。例えばＬ２デコード処理では、Ｌ３デコード処理によりプレーン２０６Ｂに書き込まれたＤＣＴ係数Ｌ２Ｖ１を参照する。従って、本実施形態において、係数／画素値変換部２１３は、Ｌ３デコード処理により１ブロックライン分のＤＣＴ係数Ｌ２Ｖ１がプレーン２０６Ｂに書き込まれた後に、そのブロックラインについてのＬ２デコード処理が開始されるように、Ｌ２デコード処理の実行開始タイミングの制御を行う。Ｌ２デコード処理とＬ１デコード処理との関係、Ｌ１デコード処理と出力処理との関係も同様である。この点に本実施形態のもう１つの特徴がある。
【００６０】
次に、図１０〜図１２を参照して、Ｌ３デコード処理〜Ｌ１デコード処理の各処理におけるメモリ部２０６へのアクセス態様を具体的に説明し、ＤＣＴ係数の並び替えを行わない場合と、本実施形態のようにＤＣＴ係数の並び替えを行った場合の各々についてメモリ部２０６へのアクセス回数を説明する。ここでは、メモリ部２０６のプレーン２０６Ａ〜２０６Ｄにおいて、デコード対象である８×８画素のブロックに属するＬ３〜Ｌ１ブロックのＤＣＴ係数を図９（ａ）におけるアドレスＡＤＲｉ，ｊ，ｋ（ｋ＝０〜１５）のマクロエリアに格納し、デコード対象のブロックの上の隣接ブロックに属するＬ３〜Ｌ１ブロックのＤＣＴ係数をアドレスＡＤＲｉ-1，ｊ，ｋ（ｋ＝０〜１５）のマクロエリアに格納し、デコード対象のブロックの下の隣接ブロックに属するＬ３〜Ｌ１ブロックのＤＣＴ係数をアドレスＡＤＲｉ+1，ｊ，ｋ（ｋ＝０〜１５）のマクロエリアに格納し、デコード対象のブロックの左の隣接ブロックに属するＬ３〜Ｌ１ブロックのＤＣＴ係数をアドレスＡＤＲｉ，ｊ-1，ｋ（ｋ＝０〜１５）のマクロエリアに格納し、デコード対象のブロックの右の隣接ブロックに属するＬ３〜Ｌ１ブロックのＤＣＴ係数をアドレスＡＤＲｉ，ｊ+1，ｋ（ｋ＝０〜１５）のマクロエリアに格納するものとする。
【００６１】
また、メモリ部２０６において、ＤＣＴ係数の並び替えを行わない場合における各マクロエリア内でのＤＣＴ係数の配置は前掲図９（ｃ）に示した通りであり、ＤＣＴ係数の並び替えを行った場合における各マクロエリア内でのＤＣＴ係数の配置は前掲図９（ｄ）に示した通りであるものとする。
【００６２】
まず、Ｌ３デコード処理におけるメモリ部２０６へのアクセス態様について説明する。
ＤＣＴ係数の並び替えを行わない場合、Ｌ３デコード処理では、次のデータ読み出し処理を行うことになる。
ａ３．図１０（ａ）に示すデコード対象のブロックに属するＬ３ブロックのＤＣＴ係数Ｌ３Ｖ１、Ｌ３Ｖ２、Ｌ３Ｖ３、Ｌ３Ｖ４（図１０（ａ）では、１、５、３３、３７）をプレーン２０６ＡにおけるアドレスＡＤＲｉ，ｊ，0、ＡＤＲｉ，ｊ，2、ＡＤＲｉ，ｊ，8、ＡＤＲｉ，ｊ，10の各エリアから読み出す。
ｂ３．図１０（ａ）に示すデコード対象のブロックの上の隣接ブロックに属するＬ３ブロックのＤＣＴ係数Ｌ３Ｖ１およびＬ３Ｖ３（図１０（ａ）では、１および３３）をプレーン２０６ＡにおけるアドレスＡＤＲｉ-1，ｊ，0、ＡＤＲｉ-1，ｊ，8の各エリアから読み出す。
ｃ３．図１０（ａ）に示すデコード対象のブロックの下の隣接ブロックに属するＬ３ブロックのＤＣＴ係数Ｌ３Ｖ１およびＬ３Ｖ３（１および３３）をプレーン２０６ＡにおけるアドレスＡＤＲｉ+1，ｊ，0、ＡＤＲｉ+1，ｊ，8の各エリアから読み出す。
ｄ３．図１０（ａ）に示すデコード対象のブロックの左の隣接ブロックに属するＬ３ブロックのＤＣＴ係数Ｌ３Ｖ１およびＬ３Ｖ２（１および５）をプレーン２０６ＡにおけるアドレスＡＤＲｉ，ｊ-1，0、ＡＤＲｉ，ｊ-1，2の各エリアから読み出す。
ｅ３．図１０（ａ）に示すデコード対象のブロックの右の隣接ブロックに属するＬ３ブロックのＤＣＴ係数Ｌ３Ｖ１およびＬ３Ｖ２（１および５）をプレーン２０６ＡにおけるアドレスＡＤＲｉ，ｊ+1，0、ＡＤＲｉ，ｊ+1，2の各エリアから読み出す（以上、図９（ａ）〜（ｃ）参照）。
従って、ＤＣＴ係数の並び替えを行わない場合、Ｌ３デコード処理において、８×８画素の１ブロック当たりのメモリ読み出し回数は１２回となる。
【００６３】
また、ＤＣＴ係数の並び替えを行わない場合、Ｌ３デコード処理では、次のデータ書き込み処理を行うことになる。
ｆ３．デコード結果である４個のＬ２ブロックの直流成分のＤＣＴ係数Ｌ２Ｖ１（図１０（ａ）では１、５、３３、３７）をプレーン２０６ＢにおけるアドレスＡＤＲｉ，ｊ，0、ＡＤＲｉ，ｊ，2、ＡＤＲｉ，ｊ，8、ＡＤＲｉ，ｊ，10の各エリアに書き込む。
従って、ＤＣＴ係数の並び替えを行わない場合、Ｌ３デコード処理において、８×８画素の１ブロック当たりのメモリ書き込み回数は４回となる。
【００６４】
これに対し、ＤＣＴ係数の並び替えを行った場合、Ｌ３デコード処理では、次のデータ読み出し処理を行うことになる。
ａ３’．図１０（ｂ）に示すデコード対象のブロックに属するＬ３ブロックのＤＣＴ係数Ｌ３Ｖ１、Ｌ３Ｖ２、Ｌ３Ｖ３、Ｌ３Ｖ４（１、５、３３、３７）をプレーン２０６ＡにおけるアドレスＡＤＲｉ，ｊ，0のエリアから読み出す。
ｂ３’．図１０（ｂ）に示すデコード対象のブロックの上の隣接ブロックに属するＬ３ブロックのＤＣＴ係数Ｌ３Ｖ１およびＬ３Ｖ３（１および３３）をプレーン２０６ＡにおけるアドレスＡＤＲｉ-1，ｊ，0のエリアから読み出す。
ｃ３’．図１０（ｂ）に示すデコード対象のブロックの下の隣接ブロックに属するＬ３ブロックのＤＣＴ係数Ｌ３Ｖ１およびＬ３Ｖ３（１および３３）をプレーン２０６ＡにおけるアドレスＡＤＲｉ+1，ｊ，0のエリアから読み出す。
ｄ３’．図１０（ｂ）に示すデコード対象のブロックの左の隣接ブロックに属するＬ３ブロックのＤＣＴ係数Ｌ３Ｖ１およびＬ３Ｖ２（１および５）をプレーン２０６ＡにおけるアドレスＡＤＲｉ，ｊ-1，0のエリアから読み出す。
ｅ３’．図１０（ｂ）に示すデコード対象のブロックの右の隣接ブロックに属するＬ３ブロックのＤＣＴ係数Ｌ３Ｖ１およびＬ３Ｖ２（１および５）をプレーン２０６ＡにおけるアドレスＡＤＲｉ，ｊ+1，0のエリアから読み出す（以上、図９（ａ）、（ｂ）、（ｄ）参照）。
従って、ＤＣＴ係数の並び替えを行った場合、Ｌ３デコード処理において、８×８画素の１ブロック当たりのメモリ読み出し回数は５回となる。
【００６５】
また、ＤＣＴ係数の並び替えを行った場合、Ｌ３デコード処理では、次のデータ書き込み処理を行うことになる。
ｆ３’．デコード結果である４個のＬ２ブロックの直流成分のＤＣＴ係数Ｌ２Ｖ１（図１０（ｂ）では１、５、３３、３７）をプレーン２０６ＢにおけるアドレスＡＤＲｉ，ｊ，0のエリアに書き込む。
従って、ＤＣＴ係数の並び替えを行った場合、Ｌ３デコード処理において、８×８画素の１ブロック当たりのメモリ書き込み回数は１回となる。
【００６６】
次にＬ２デコード処理におけるメモリアクセス回数について説明する。
ＤＣＴ係数の並び替えを行わない場合、Ｌ２デコード処理では、次のデータ読み出し処理を行うことになる。
ａ２．図１１（ａ）に示すデコード対象のブロックに属する４個のＬ２ブロックにおけるＤＣＴ係数Ｌ２Ｖ１、Ｌ２Ｖ２、Ｌ２Ｖ３、Ｌ２Ｖ４（図１１（ａ）では１、３、１７、１９、５、７、２１、２３、３３、３５、４９、５１、３７、３９、５３、５５）をプレーン２０６ＢにおけるアドレスＡＤＲｉ，ｊ，0、ＡＤＲｉ，ｊ，1、ＡＤＲｉ，ｊ，4、ＡＤＲｉ，ｊ，5、ＡＤＲｉ，ｊ，2、ＡＤＲｉ，ｊ，3、ＡＤＲｉ，ｊ，6、ＡＤＲｉ，ｊ，7、ＡＤＲｉ，ｊ，8、ＡＤＲｉ，ｊ，9、ＡＤＲｉ，ｊ，12、ＡＤＲｉ，ｊ，13、ＡＤＲｉ，ｊ，10、ＡＤＲｉ，ｊ，11、ＡＤＲｉ，ｊ，14、ＡＤＲｉ，ｊ，15の各エリアから読み出す。
ｂ２．図１１（ａ）に示すデコード対象のブロックの上の隣接ブロックに属する４個のＬ２ブロックのうち最も下側の２個のＬ２ブロックのＤＣＴ係数Ｌ２Ｖ１およびＬ２Ｖ３（図１１（ａ）では、５、２１、３７、５３）をプレーン２０６ＢにおけるアドレスＡＤＲｉ-1，ｊ，２、ＡＤＲｉ-1，ｊ，６、ＡＤＲｉ-1，ｊ，10、ＡＤＲｉ-1，ｊ，14の各エリアから読み出す。
ｃ２．図１１（ａ）に示すデコード対象のブロックの下の隣接ブロックに属する４個のＬ２ブロックのうち最も上側の２個のＬ２ブロックのＤＣＴ係数Ｌ２Ｖ１およびＬ２Ｖ３（図１１（ａ）では、１、１７、３３、４９）をプレーン２０６ＢにおけるアドレスＡＤＲｉ+1，ｊ，0、ＡＤＲｉ+1，ｊ，4、ＡＤＲｉ+1，ｊ，8、ＡＤＲｉ+1，ｊ，12の各エリアから読み出す。
ｄ２．図１１（ａ）に示すデコード対象のブロックの左の隣接ブロックに属する４個のＬ２ブロックのうち最も右側の２個のＬ２ブロックのＤＣＴ係数Ｌ２Ｖ１およびＬ２Ｖ２（図１１（ａ）では、３３、３５、３７、３９）をプレーン２０６ＢにおけるアドレスＡＤＲｉ，ｊ-1，8、ＡＤＲｉ，ｊ-1，9、ＡＤＲｉ，ｊ-1，10、ＡＤＲｉ，ｊ-1，11の各エリアから読み出す。
ｅ２．図１１（ａ）に示すデコード対象のブロックの右の隣接ブロックに属する４個のＬ２ブロックのうち最も左側の２個のＬ２ブロックのＤＣＴ係数Ｌ２Ｖ１およびＬ２Ｖ２（図１１（ａ）では、１、３、５、７）をプレーン２０６ＢにおけるアドレスＡＤＲｉ，ｊ+1，0、ＡＤＲｉ，ｊ+1，1、ＡＤＲｉ，ｊ+1，2、ＡＤＲｉ，ｊ+1，3の各エリアから読み出す（以上、図９（ａ）〜（ｃ）参照）。
従って、ＤＣＴ係数の並び替えを行わない場合、Ｌ２デコード処理において、８×８画素の１ブロック当たりのメモリ読み出し回数は３２回となる。
【００６７】
また、ＤＣＴ係数の並び替えを行わない場合、Ｌ２デコード処理では、次のデータ書き込み処理を行うことになる。
ｆ２．デコード結果である１６個のＬ１ブロックの直流成分のＤＣＴ係数Ｌ１Ｖ１（図１１（ａ）では、１、３、１７、１９、５、７、２１、２３、３３、３５、４９、５１、３７、３９、５３、５５）をプレーン２０６ＣにおけるアドレスＡＤＲｉ，ｊ，0、ＡＤＲｉ，ｊ，1、ＡＤＲｉ，ｊ，4、ＡＤＲｉ，ｊ，5、ＡＤＲｉ，ｊ，2、ＡＤＲｉ，ｊ，3、ＡＤＲｉ，ｊ，6、ＡＤＲｉ，ｊ，7、ＡＤＲｉ，ｊ，8、ＡＤＲｉ，ｊ，9、ＡＤＲｉ，ｊ，12、ＡＤＲｉ，ｊ，13、ＡＤＲｉ，ｊ，10、ＡＤＲｉ，ｊ，11、ＡＤＲｉ，ｊ，14、ＡＤＲｉ，ｊ，15の各エリアに書き込む。
従って、ＤＣＴ係数の並び替えを行わない場合、Ｌ２デコード処理において、８×８画素の１ブロック当たりのメモリ書き込み回数は１６回となる。
【００６８】
これに対し、ＤＣＴ係数の並び替えを行った場合、Ｌ２デコード処理では、次のデータ読み出し処理を行うことになる。
ａ２’．上記ａ２．において読み出し対象であった４個のＬ２ブロックのＤＣＴ係数Ｌ２Ｖ１、Ｌ２Ｖ２、Ｌ２Ｖ３、Ｌ２Ｖ４は、図１１（ｂ）に示す１、３、１７、１９、５、７、２１、２３、３３、３５、４９、５１、３７、３９、５３、５５であり、これらはプレーン２０６ＢにおけるアドレスＡＤＲｉ，ｊ，0、ＡＤＲｉ，ｊ，1、ＡＤＲｉ，ｊ，4、ＡＤＲｉ，ｊ，5の各エリアに格納されている。従って、これらの各エリアに格納されているものを読み出す。
ｂ２’．上記ｂ２．において読み出し対象であった２個のＬ２ブロックのＤＣＴ係数Ｌ２Ｖ１およびＬ２Ｖ３は、図１１（ｂ）に示す５、２１、３７、５３であり、これらはプレーン２０６ＢにおけるアドレスＡＤＲｉ-1，ｊ，0、ＡＤＲｉ-1，ｊ，4の各エリアに格納されている。従って、これらの各エリアに格納されているものを読み出す。
ｃ２’．上記ｃ２．において読み出し対象であった２個のＬ２ブロックのＤＣＴ係数Ｌ２Ｖ１およびＬ２Ｖ３は、図１１（ｂ）に示す１、１７、３３、４９であり、これらはプレーン２０６ＢにおけるアドレスＡＤＲｉ+1，ｊ，0、ＡＤＲｉ+1，ｊ，4の各エリアに格納されている。従って、これらの各エリアに格納されているものを読み出す。
ｄ２’．上記ｄ２．において読み出し対象であった２個のＬ２ブロックのＤＣＴ係数Ｌ２Ｖ１およびＬ２Ｖ２は、図１１（ｂ）に示す３３、３５、３７、３９であり、これらはプレーン２０６ＢにおけるアドレスＡＤＲｉ，ｊ-1，0、ＡＤＲｉ，ｊ-1，1の各エリアに格納されている。従って、これらの各エリアに格納されているものを読み出す。
ｅ２’．上記ｅ２．において読み出し対象であった２個のＬ２ブロックのＤＣＴ係数Ｌ２Ｖ１およびＬ２Ｖ２は、図１１（ｂ）に示す１、３、５、７であり、これらはプレーン２０６ＢにおけるアドレスＡＤＲｉ，ｊ+1，0、ＡＤＲｉ，ｊ+1，1の各エリアに格納されている。従って、これらの各エリアに格納されているものを読み出す（以上、図９（ａ）、（ｂ）、（ｄ）参照）。
従って、ＤＣＴ係数の並び替えを行わない場合、Ｌ２デコード処理において、８×８画素の１ブロック当たりのメモリ読み出し回数は１２回となる。
【００６９】
また、ＤＣＴ係数の並び替えを行った場合、Ｌ２デコード処理では、次のデータ書き込み処理を行うことになる。
ｆ２’．デコード結果である１６個のＬ１ブロックの直流成分のＤＣＴ係数Ｌ１Ｖ１（図１１（ｂ）では、１、３、１７、１９、５、７、２１、２３、３３、３５、４９、５１、３７、３９、５３、５５）をプレーン２０６ＣにおけるアドレスＡＤＲｉ，ｊ，0、ＡＤＲｉ，ｊ，1、ＡＤＲｉ，ｊ，4、ＡＤＲｉ，ｊ，5の各エリアに書き込む。
従って、ＤＣＴ係数の並び替えを行った場合、Ｌ２デコード処理において、８×８画素の１ブロック当たりのメモリ書き込み回数は４回となる。
【００７０】
Ｌ１デコード処理において、並び替えを行わない場合、並び替えを行った場合の各場合におけるメモリ部２０６のアクセスの様子は図１２（ａ）および（ｂ）に示す通りである。図１２（ａ）および（ｂ）において、数字で示されているＤＣＴ係数がアクセス対象となる。
【００７１】
Ｌ１デコード処理では、並び替えを行わない場合、並び替えを行った場合のいずれにおいても、デコード対象であるブロック内の６４個のＤＣＴ係数を読み出す。このときのプレーン２０６Ｃの読み出し回数は１６回である。また、Ｌ１デコード処理では、デコード対象のブロックの上下左右の４個の隣接ブロックの中のＬ１ブロックのうちデコード対象のブロックに最も近いＬ１ブロックのＤＣＴ係数（合計３２個）を読み出す。これらのＤＣＴ係数は、並び替えを行わない場合、並び替えを行った場合のいずれにおいても、プレーン２０６Ｃ内の１６個のエリアに格納されている。従って、このときのメモリ部２０６の読み出し回数は１６回である。よって、並び替えを行わない場合、並び替えを行った場合のいずれにおいても、Ｌ１デコード処理におけるメモリ部２０６の読み出し回数は３２回である。
【００７２】
また、Ｌ１デコード処理では、デコード対象であるブロックに対応したプレーン２０６Ｄの１６個のエリアに６４個の画素値を書き込む。よって、並び替えを行わない場合、並び替えを行った場合のいずれにおいても、Ｌ１デコード処理におけるメモリ部２０６の書き込み回数は１６回である。
【００７３】
以上、総合すると、ＤＣＴ係数の並び替えを行わない場合、Ｌ３〜Ｌ１デコード処理の全体としてのメモリ部２０６の読み出し回数は１ブロック当たり７６回、書き込み回数は１ブロック当たり３６回となる。これに対し、本実施形態のようにＤＣＴ係数の並び替えを行った場合、Ｌ３〜Ｌ１デコード処理の全体としてのメモリ部２０６の読み出し回数は１ブロック当たり４９回、書き込み回数は１ブロック当たり２１回となる。
以上が本実施形態の詳細である。
【００７４】
本実施形態によれば、次の効果が得られる。
（１）本実施形態によれば、Ｌ３〜Ｌ１デコード処理の際のメモリ部２０６へのアクセス回数が少なくて済むため、効率的に圧縮画像データの伸張処理を実行することができる。
（２）本実施形態において、係数／画素値変換部２１３は、可変長復号化部２１１および逆量子化部２１２が圧縮画像データ全体についての可変長復号化および逆量子化を終えるのを待たずに、画素値への変換に用いる所定ブロックライン数分のＤＣＴ係数がメモリ部２０６に書き込まれたときに、Ｌ３デコード処理の実行を開始する。従って、例えば外部記憶媒体から圧縮画像データを読み出して伸張処理を行うような場合において、可変長復号化部２１１および逆量子化部２１２の処理の総時間が長くなるような場合でも、迅速にＬ３デコード処理を開始し、伸張処理の結果を早く出力することができる。
【００７５】
（３）本実施形態において、係数／画素値変換部２１３は、Ｌ３デコード処理、Ｌ２デコード処理、Ｌ１デコード処理、出力処理を実行する際、各々に先行する処理が全て完了するのを待つことなく、各処理に必要なデータが先行する処理により得られた後、遅滞なく各処理を開始させる。図１３は、その例を示すものである。この例において、係数／画素値変換部２１３は、可変長復号化部２１１および逆量子化部２１２がブロックラインＹ＋４の各ブロックのデータの可変長復号化および逆量子化を行っているときに、ブロックラインＹ＋３の各ブロックのＬ３デコード処理、ブロックラインＹ＋２の各ブロックのＬ２デコード処理、ブロックラインＹ＋１の各ブロックのＬ１デコード処理、ブロックラインＹの各ブロックの出力処理を行う。従って、本実施形態によれば、データ伸張処理が開始されてから、伸張済みの画像の表示が開始されるまでの時間を短くすることができる。
【００７６】
以上、この発明の一実施形態について説明したが、この発明にはこれ以外にも他の実施形態が考えられる。例えば次の通りである。
【００７７】
（１）メモリ部２０６における各エリアの記憶容量は、４ワードに限定されるものではなく、例えば１６ワードであってもよい。メモリ部２０６として、１エリア当たり１６ワードの記憶容量を持つものを用いる場合、１エリアに１６個のＤＣＴ係数を格納することが可能である。この場合、例えば図１４に示すように、上位階層のＤＣＴ係数（図１４の例ではＬ３およびＬ２）になるほど、複数のエリアに跨らないように、階層毎にまとめて各階層のＤＣＴ係数を各エリアに格納してもよい。この場合においても、上記実施形態と同様、Ｌ３〜Ｌ１デコード処理におけるメモリ部２０６へのアクセス回数を減らすことができる、という効果が得られる。
【００７８】
（２）データ圧縮装置１００を次のような構成にしてもよい。すなわち、静止画から最上位階層のブロックのＮ行Ｍ列（ＮおよびＭはいずれも複数）の配列が得られる場合に、先頭の行から始まるＮ０行Ｍ列（Ｎ０＜Ｎであり、かつ、Ｎ０＜Ｍ）の最上位階層のブロックについて、同一列に属するＮ０個の最上位階層のブロックを選択する操作を列を順次シフトしつつ繰り返して、圧縮画像データにおけるＮ０行Ｍ列の最上位階層の各ブロックに対応したデータを各ブロックの選択順に出力し、その後、残ったＮ−Ｎ０行Ｍ列の最上位階層のブロックについて、同一行に属するＭ個の最上位階層のブロックを順次選択する操作を行を順次シフトしつつ繰り返して、圧縮画像データにおけるＮ−Ｎ０行Ｍ列の最上位階層の各ブロックに対応したデータを各ブロックの選択順に出力するのである。図１５は、このような圧縮画像データにおけるデータの並びの例を示すものである。この図１５に示す例において、圧縮画像データの先頭部分には、静止画における上端から３ブロックラインの範囲の各ブロックを上下方向に走査（主走査）しつつ、主走査の位置を左右方向に走査（副走査）し、走査順に各ブロックを圧縮したデータが配置される。そして、その後には、４ブロックライン以降の各ブロックラインについて、各ブロックラインのブロックを左右方向に走査（主走査）しつつ、走査対象であるブロックラインを上下方向に走査（副走査）し、走査順に各ブロックを圧縮したデータが配置される。圧縮画像データがこのような構成のものである場合、上下左右の隣接ブロックのＤＣＴ係数を参照してＬ３デコード処理を実行することが可能なブロックが発生するのを早めることができ、Ｌ３デコード処理の開始タイミングを早めることができる。具体的には８個のブロックのＤＣＴ係数（第１列の３ブロックライン分のブロックと、第２列の３ブロックライン分のブロックと、第３列の２ブロックライン分のブロック）の可変長復号化および逆量子化が終わり、これらのブロックのＤＣＴ係数がメモリ部２０６に書き込まれると、その時点で、第２列の２ブロックライン目のブロックは、上下左右の隣接ブロックのＤＣＴ係数がメモリ部２０６に記憶されており、Ｌ３デコード処理の実行が可能なブロックとなる。
【００７９】
（３）データ圧縮装置１００が出力する圧縮画像データにおけるデータの並びは図１６に示すものであってもよい。この図１６に示す例では、静止画から最上位階層のブロックのＮ行Ｍ列（ＮおよびＭはいずれも複数であり、Ｎ＜Ｍであるとする。）の配列が得られる場合に、データ圧縮装置１００は、最初に第１行第１列のブロックを選択し、次にこのブロックを囲むＬ字状のブロック列（具体的には第２行第１列、第２行第２列、第１行第２列のブロック）の各ブロックを選択し、次にこの選択済みの領域を囲むＬ字状のブロック列の各ブロックのデータを選択し、…という具合に、選択済みの領域の外側のＬ字状のブロック列を順次選択する。そして、第Ｎ行のブロックを含むＬ字状のブロック列のデータを選択した後は、静止画における第Ｎ＋１列から第Ｍ列までの各列のブロックを順次選択する。そして、圧縮画像データにおける最上位階層の各ブロックに対応したデータを各ブロックの選択順に出力するのである。この場合も、前掲図１５の態様と同様、データ伸張装置２００では、上下左右の隣接ブロックのＤＣＴ係数を参照してＬ３デコード処理を実行することが可能なブロックが発生するのを早めることができ、Ｌ３デコード処理の開始タイミングを早めることができる。なお、図１６に示す例では、最上位階層のブロックの配列の４隅のうち左上の隅のブロックを最初に選択したが、他のブロックを最初に選択してもよい。また、ブロックの配列の行数Ｎは列数Ｍより大きくてもよい。この場合、第Ｍ列のブロックを含むＬ字状のブロック列のデータを選択すると、もはやその外側にＬ字状のブロック列はない。そこで、ブロックの配列における第Ｍ＋１行から第Ｎ行までの各行のブロックを順次選択することとなる。
【００８０】
（４）上記実施形態では、Ｌ１〜Ｌ３の３階層のエンコード処理およびデコード処理を行ったが、エンコード処理およびデコード処理の階層数は任意であり、４階層以上のエンコード処理およびデコード処理を行ってもよい。
【００８１】
（５）上記実施形態において、係数／画素値変換部２１３は、４個のプレーン２０６Ａ〜２０６Ｄを用いてＬ３デコード処理、Ｌ２デコード処理、Ｌ１デコード処理および出力処理を実行した。しかし、図１７に示すように、２個のプレーン２０６Ａおよび２０６Ｂを交互に使用して、これらの各処理を実行するようにしてもよい。上記実施形態と同様、この図１７に示す例においても、逆量子化部２１２は、８×８画素のブロック毎に、プレーン２０６Ａおよび２０６Ｂの両方に当該ブロックに属する各階層のＤＣＴ係数Ｌ３Ｖ１〜Ｌ３Ｖ４、Ｌ２Ｖ２〜Ｌ２Ｖ４、Ｌ１Ｖ２〜Ｌ１Ｖ４を書き込む。そして、Ｌ３デコード処理では、この書き込みの行われたブロックについて、Ｌ３ブロックのＤＣＴ係数Ｌ３Ｖ１〜Ｌ３Ｖ４を４個のＬ２ブロックの直流成分のＤＣＴ係数Ｌ２Ｖ１に変換する。そして、プレーン２０６Ｂにおいて、そのＬ３ブロックのＬ３Ｖ１〜Ｌ３Ｖ４が格納されているエリアに４個のＤＣＴ係数Ｌ２Ｖ１の各々を書き込む。次にＬ２デコード処理では、プレーン２０６Ｂにおいて、Ｌ３デコード処理により直流成分のＤＣＴ係数Ｌ２Ｖ１が書き込まれたＬ２ブロックが処理対象となる。すなわち、Ｌ２デコード処理では、プレーン２０６ＢからＤＣＴ係数Ｌ２Ｖ１の書き込まれたＬ２ブロックのＤＣＴ係数Ｌ２Ｖ１〜Ｌ２Ｖ４を読み出して４個のＬ１ブロックの直流成分のＤＣＴ係数Ｌ１Ｖ１に変換する。そして、プレーン２０６Ａにおいて、そのＬ２ブロックのＤＣＴ係数Ｌ２Ｖ１〜Ｌ２Ｖ４用の格納エリア（ＤＣＴ係数Ｌ２Ｖ１については、ＤＣＴ係数Ｌ２Ｖ１が上書きされる前のＤＣＴ係数Ｌ３Ｖｋが格納されたエリア）に４個のＤＣＴ係数Ｌ２Ｖ１の各々を書き込む。次にＬ１デコード処理では、プレーン２０６Ａにおいて、Ｌ２デコード処理により直流成分のＤＣＴ係数Ｌ１Ｖ１が書き込まれたＬ１ブロックが処理対象となる。すなわち、Ｌ１デコード処理では、プレーン２０６ＡからＤＣＴ係数Ｌ１Ｖ１の書き込まれたＬ１ブロックのＤＣＴ係数Ｌ１Ｖ１〜Ｌ１Ｖ４を読み出して４個の画素値ｆ１〜ｆ４に変換する。そして、プレーン２０６Ｂにおいて、そのＬ１ブロックに対応したエリアに４個の画素値ｆ１〜ｆ４の各々を書き込む。出力処理では、プレーン２０６Ｂに画素値の書き込みが行われた８×８画素のブロックが処理対象となる。この態様によれば、使用するプレーンがプレーン２０６Ａおよび２０６Ｂの２個のみであるので、データ伸張装置２００を小規模にすることができるという利点がある。
（６）上記実施形態において、データ圧縮装置１００では直交変換としてＨＰＨＬＣＴを用い、データ伸張装置２００ではその逆変換であるＩＨＰＨＬＣＴを用いた。しかし、それ以外の直交変換および逆変換を用いてもよい。例えばデータ圧縮装置１００では、ブロックを階層化することなく、各ブロックにＤＣＴを施して、ＤＣＴ係数を用いて圧縮画像データを構成し、データ伸張装置２００では、メモリ２０６に各ブロックのＤＣＴ係数が書き込まれるのと並列に、係数／画素値変換部２１３が各ブロックのＤＣＴ係数を画素値に変換するようにしてもよい。
【図面の簡単な説明】
【００８２】
【図１】この発明の一実施形態であるデータ伸張装置２００を含む画像圧縮伝送システムの構成を示すブロック図である。
【図２】同画像圧縮伝送システムにおけるデータ圧縮装置１００の画素値／係数変換部１１１が実行するＬ１エンコード処理の内容を示す図である。
【図３】同画素値／係数変換部１１１が実行するＬ２エンコード処理の内容を示す図である。
【図４】同画素値／係数変換部１１１が実行するＬ３エンコード処理の内容を示す図である。
【図５】同データ伸張装置２００の係数／画素値変換部２１３が実行するＬ３デコード処理の内容を示す図である。
【図６】同係数／画素値変換部２１３が実行するＬ２デコード処理の内容を示す図である。
【図７】同係数／画素値変換部２１３が実行するＬ１デコード処理の内容を示す図である。
【図８】同データ伸張装置２００の可変長復号化部２１１、逆量子化部２１２、係数／画素値変換部２１３の処理内容を示す図である。
【図９】同データ伸張装置２００におけるメモリ部２０６のアドレスマップおよびＤＣＴ係数の格納態様を示す図である。
【図１０】同Ｌ３デコード処理におけるメモリ部２０６のアクセス態様を説明する図である。
【図１１】同Ｌ２デコード処理におけるメモリ部２０６のアクセス態様を説明する図である。
【図１２】同Ｌ１デコード処理におけるメモリ部２０６のアクセス態様を説明する図である。
【図１３】同実施形態におけるデータ伸張処理を構成する各処理の並列実行の例を示す図である。
【図１４】同実施形態のメモリ部２０６におけるＤＣＴ係数の格納態様の他の例を示す図である。
【図１５】この発明の他の実施形態においてデータ圧縮装置が出力する圧縮画像データにおけるデータの並びを示す図である。
【図１６】この発明の他の実施形態においてデータ圧縮装置が出力する圧縮画像データにおけるデータの並びを示す図である。
【図１７】この発明の他の実施形態における係数／画素値変換部２１３の処理内容を示す図である。
【符号の説明】
【００８３】
１００……データ圧縮装置、１０１……撮像部、１０２……信号処理部、１０３……フレームメモリ、１０４……エンコーダ、１０５……出力部、１０６……メモリ部、１０７……操作表示部、１０８……制御部、１１１……画素値／係数変換部、１１２……量子化部、１１３……可変長符号化部、２００……データ伸張装置、２０１……入力部、２０２……デコーダ、２０３……フレームメモリ、２０４……表示制御部、２０５……表示部、２０６……メモリ部、２０７……操作表示部、２０８……制御部、２１１……可変長復号化部、２１２……逆量子化部、２１３……係数／画素値変換部。
【図１】
0005194762.tif 000002
【図２】
0005194762.tif 000003
【図３】
0005194762.tif 000004
【図４】
0005194762.tif 000005
【図５】
0005194762.tif 000006
【図６】
0005194762.tif 000007
【図７】
0005194762.tif 000008
【図８】
0005194762.tif 000009
【図９】
0005194762.tif 000010
【図１０】
0005194762.tif 000011
【図１１】
0005194762.tif 000012
【図１２】
0005194762.tif 000013
【図１３】
0005194762.tif 000014
【図１４】
0005194762.tif 000015
【図１５】
0005194762.tif 000016
【図１６】
0005194762.tif 000017
【図１７】
0005194762.tif 000018