(57)【特許請求の範囲】
【請求項１】
Ｂピクチャを有する画像データを復号し、復号した画像を出力する動き補償予測復号装置であって、
動き補償予測符号化された前記画像データを復号する手段と、
この復号した画像を複数画素毎にブロック化してブロック毎に符号化する符号化回路と、この符号化した各ブロックを記憶するメモリと、このメモリ上の各ブロックの先頭アドレスを記憶する手段とを備えたデータ圧縮回路と、
このデータ圧縮回路に記憶されたデータを伸長し、この伸長したデータを出力する第１のデータ伸長回路と、
上記メモリ上の各ブロックの先頭アドレスを用いて、上記メモリに記憶された上記符号化した各ブロックの中から、動き補償予測の参照画像に対応するブロックのみを指定し伸長する第２のデータ伸長回路と、
この第２のデータ伸長回路により伸長した上記動き補償予測の参照となるブロックを用いて予測画像を作成する予測画像作成回路と
を備えたことを特徴とする動き補償予測復号装置。
【請求項２】
前記符号化回路が、画像をフィールド内でブロック化するように構成したことを特徴とする請求項１記載の動き補償予測復号装置。
【請求項３】
前記符号化回路が、画像を動き補償の最小単位であるブロックサイズと同じサイズ、または整数分の１のサイズのブロックにブロック化するように構成したことを特徴とする請求項１記載の動き補償予測復号装置。
【請求項４】
前記符号化回路が、画像を複数画素毎にブロック化して各ブロックに直交変換を施す直交変換回路と、この直交変換回路から出力される各変換係数を量子化する量子化器と、この量子化された変換係数を可変長符号化する可変長符号器とを備えたことを特徴とする請求項１記載の動き補償予測復号装置。
【請求項５】
前記直交変換がアダマール変換であることを特徴とする請求項４記載の動き補償予測復号装置。
【請求項６】
前記可変長符号器が、各ブロックの変換係数を走査する手段と、走査された変換係数が任意の位置からブロックの終わりまで連続して０であるときは、この連続した０をブロックの終わりを示すコードに置き換える手段とを備えたことを特徴とする請求項４記載の動き補償予測復号装置。
【請求項７】
前記可変長符号器が、２次元の変換係数を各成分の低次シーケンシーから順に走査する手段を備えたことを特徴とする請求項４記載の動き補償予測復号装置。
【請求項８】
前記量子化器の各変換係数に対する量子化ステップ幅が２のべき乗であることを特徴とする請求項４記載の動き補償予測復号装置。
【請求項９】
上記符号化回路が、あらかじめ定めた定数ＮのＮブロック毎に符号量を既定値以下とするレート制御手段を備え、また、上記メモリ上のブロックの先頭アドレスを記憶する手段が、Ｎブロック中の各ブロックの相対アドレスを記憶する手段を備えていることを特徴とする請求項１記載の動き補償予測復号装置。
【請求項１０】
前記符号化回路が、画像を複数画素毎にブロック化して各ブロックに直交変換を施す直交変換回路と、この直交変換回路から出力される各変換係数を量子化する量子化器と、この量子化された変換係数を可変長符号化する可変長符号器と、Ｎブロック毎に上記可変長符号器から出力される符号量を既定値以下とするレート制御手段とを備えるとともに、上記量子化器が、各変換係数に対する量子化ステップ幅を示す複数の量子化テーブルを備え、上記レート制御手段が前記量子化器の量子化テーブルの数よりも少ない数の量子化テーブルで符号量の試算を行って上記量子化器で用いる量子化テーブルを決定するように構成したことを特徴とする請求項９記載の動き補償予測復号装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は画像のデータ量を削減するデータ圧縮回路、および、圧縮された画像データを復元するデータ伸長回路、および、動き補償予測符号化された動画像を復号する動き補償予測復号装置に関する。
【０００２】
【従来の技術】
図２５と図２６は、例えば、「最新ＭＰＥＧ教科書」（アスキー出版局、ｐ．１２９〜１５５）に示された従来の動き補償予測符号化装置および復号装置を示すブロック図である。図２５において、１は入力画像を記憶するフレームメモリであり、フレームメモリ１の出力は減算器２の第一の入力に与えられる。減算器２の出力はＤＣＴ変換器３および量子化器４を介して可変長符号器５の第一の入力に与えられる。量子化器４の出力は、逆量子化器６および逆ＤＣＴ変換器７を介して、加算器８の第一の入力にも与えられる。加算器８の出力はフレームメモリ９に入力される。
【０００３】
フレームメモリ９の出力は動き検出器１０の第一の入力と予測画像作成回路１１の第一の入力に与えられる。動き検出器１０の第二の入力にはフレームメモリ１の出力が与えられる。動き検出器１０の出力は、予測画像作成回路１１の第二の入力と可変長符号器５の第二の入力に与えられる。予測画像作成回路１１の第一の出力は、減算器２の第二の入力と加算器８の第二の入力に与えられる。予測画像作成回路１１の第二の出力は可変長符号器５の第三の入力に与えられる。可変長符号器５から出力されるビットストリームは、バッファ１２を介して出力される。
【０００４】
図２６は図２５のように符号化されたビットストリームを復号する復号装置を示すブロック図である。図において、２１は入力されたビットストリームを可変長復号する可変長復号器で、可変長復号器２１の第一の出力は、逆量子化器２２および逆ＤＣＴ変換器２３を介して、加算器２４の第一の入力に与えられる。加算器２４の出力はフレームメモリ２５の第一の入力に与えられ、フレームメモリ２５から復号画像が出力される。一方、可変長復号器２１の第二の出力は予測画像作成回路２６の第一の入力に与えられる。予測画像作成回路２６の第一の出力はフレームメモリ２５の第二の入力に与えられ、フレームメモリ２５の第二の出力は予測画像作成回路２６の第二の入力に与えられる。予測画像作成回路２６の第二の出力は加算器２４の第二の入力に与えられる。
【０００５】
次に動作について説明する。動き補償予測符号化は、動画像の時間方向の冗長性を削減する符号化方式として広く用いられている。図２７に動き補償予測符号化方式の概念図を示す。入力画像は例えば１６画素×１６ラインのマクロブロックに分割され、すでに符号化した画像の復号画像を参照画像として、各マクロブロックに最も近い画像の領域が参照画像の中から探索され、予測画像が作成されるとともに、その予測画像の位置が動きベクトルとして符号化される。図２７（ａ）は片方向予測の場合を示し、図２７（ｂ）は両方向予測の場合を示している。片方向予測の場合、参照画像はすでに符号化した画像で、入力画像より時間的に前の画像である。両方向予測の場合、参照画像はすでに符号化した画像で、入力画像より時間的に前の画像と後の画像の両方を用いる。
【０００６】
すなわち、符号化する前に入力画像の順番を入れ替える必要がある。この場合、予測画像は、時間的に前の画像を参照画像としたときの予測画像と、時間的に後の画像を参照画像としたときの予測画像と、これらの予測画像の平均をとった画像の３つのうち、予測誤差の少ないものが選ばれる。入力画像と予測画像の差分は、予測誤差として、ＤＣＴ変換などを用いて符号化される。なお、片方向予測を行う画像をＰピクチャと呼び、両方向予測を行う画像をＢピクチャと呼ぶ。また、符号化の初期状態や、伝送エラーが起こった場合のために、予測を行わず、画面内で符号化することがある。この画像をＩピクチャと呼ぶ。
【０００７】
以下、図２５に従って、動き補償予測符号化装置の動作について詳しく説明する。フレームメモリ１は入力される動画像を記憶し、符号化順に出力する。たとえば、４枚の画像が入力され、第一の画像をＩピクチャとして符号化し、第二および第三の画像をＢピクチャとして符号化し、第四の画像をＰピクチャとして符号化する場合、フレームメモリ１は、第一の画像を最初に出力し、次に第四の画像を出力し、その後、第二、第三の画像を順に出力する。
【０００８】
フレームメモリ１から出力される画像は、減算器２において、予測画像作成回路１１から出力される予測画像との差分が求められる。減算器２から出力される予測誤差は、ＤＣＴ変換器３と量子化器４により符号化されて、可変長符号器５に入力される。この符号化された予測誤差は、逆量子化器６と逆ＤＣＴ変換器７により復号される。この復号された予測誤差は、加算器８において、予測画像作成回路１１から出力される予測画像と加算される。加算器８から出力される画像は復号画像であり、フレームメモリ９に入力される。
【０００９】
予測画像は、動き検出器１０と予測画像作成回路１１から作成される。まず、動き検出器１０は、フレームメモリ９に記憶されているすでに符号化した画像の復号画像を参照画像として、フレームメモリ１から出力される画像の動きを検出する。すなわち、フレームメモリ１から出力される画像を１６画素×１６ラインのマクロブロックに分割して各マクロブロックの動きベクトルを求める。このとき、入力画像がインターレースの２フィールドで構成されたフレームであるときは、フレームの１６画素×１６ラインに対する動きベクトルを求めるとともに、このマクロブロックを２つのフィールドの１６画素×８ラインに分割して２つのフィールドの動きベクトルも求め、フレームの動きベクトルとフィールドの動きベクトルのうち予測誤差の小さい方を選択する。
【００１０】
予測画像作成回路１１は、動き検出器１０から出力される動きベクトルをもとに、フレームメモリ９に記憶されている復号画像から予測画像を作成する。たとえば、動き検出器１０から出力される動きベクトルが半画素の位置を示している場合は、周辺の４画素から半画素の位置の画素値を計算する。また、フレームメモリ１から出力される画像がＢピクチャである場合は、２つの参照画像から２つの予測画像を作成し、さらに、この２つの予測画像の平均画像を作成し、合計３つの予測画像のうち予測歪みの少ないものを選択する。また、画像内符号化を行う場合には、予測画像の画素値をすべて０に設定して出力する。予測画像作成回路１１は、上記のように予測画像を作成して出力するとともに、どの予測画像を選択したかを示す予測モードを出力する。
【００１１】
可変長符号器５は、量子化器４から出力される符号化された予測誤差と、予測画像作成回路１１から出力される予測モードと、動き検出器１０から出力される動きベクトルをそれぞれ可変長符号化し、重畳してビットストリームとして、バッファ１２を介して出力する。
【００１２】
次に、図２６に従って、動き補償予測復号装置の動作について説明する。可変長復号器２１には、上記のように符号化されたビットストリームが入力され、可変長復号される。可変長復号器２１からは、符号化された予測誤差と予測モードと動きベクトルとが出力される。符号化された予測誤差は、逆量子化器２２と逆ＤＣＴ変換器２３により復号され、加算器２４において、予測画像作成回路２６から出力される予測画像と加算される。加算器２４から出力される画像は復号画像であり、フレームメモリ２５に入力される。加算器２４は符号化順に復号画像を出力するので、フレームメモリ２５は、復号画像を入力順すなわち表示順に並び換えて出力する。
【００１３】
一方、予測画像作成回路２６は、可変長復号器２１から出力される予測モードと動きベクトルに従い、フレームメモリ２５に記憶されている画像から、予測画像を作成する。すなわち、予測モードによって、フレームメモリ２５に記憶されている画像のうち参照画像とすべき画像を選択し、さらに動きベクトルにより参照画像内の領域を指定する。フレームメモリ２５は、予測画像作成回路２６から指定された画像の指定された領域を、予測画像作成回路２６へ出力する。予測画像作成回路２６は、フレームメモリ２５から出力された画像から予測画像を作成する。
【００１４】
たとえば、動きベクトルが半画素の位置を示している場合は、周辺の４画素から半画素の位置の画素値を計算する。また、予測モードがＢピクチャの平均画像である場合は、２つの参照画像から２つの予測画像を作成し、この２つの予測画像の平均画像を作成する。また、予測モードが画像内符号化を示している場合には、予測画像の画素値をすべて０に設定して出力する。
【００１５】
また、図２８と図２９は、例えば、「最新ＭＰＥＧ教科書」（アスキー出版局、ｐ．５３〜６６）に示された従来のデータ圧縮回路およびデータ伸長回路を示している。図において、入力画像はＤＣＴ変換器３１に与えられ、ＤＣＴ変換器３１の出力は量子化器３２の第一の入力に与えられる。量子化器３２の第二の入力には量子化テーブル３３の出力が与えられる。量子化器３２の出力は可変長符号器３４の第一の入力に与えられ、可変長符号器３４の第二の入力にはハフマンテーブル３５の出力が与えられる。可変長符号器３４からは、圧縮データが出力される。
【００１６】
図２９は、図２８に示されたデータ圧縮回路から出力される圧縮データを入力とするデータ伸長回路であり、入力された圧縮データは、ハフマンテーブル４１と量子化テーブル４２と可変長復号器４３の第一の入力に与えられる。可変長復号器４３の第二の入力には、ハフマンテーブル４１の出力が与えられる。可変長復号器４３の出力は逆量子化器４４の第一の入力に与えられ、逆量子化器４４の第二の入力には量子化テーブル４２の出力が与えられる。逆量子化器４４の出力は逆ＤＣＴ変換器４５を介して出力される。
【００１７】
次に動作について説明する。図２８は直交変換を用いた画像内符号化により、画像を圧縮するデータ圧縮回路である。直交変換は、画像を周波数成分に分解すると、画像の周波数が低域に集中するという性質を利用して、画像を圧縮する符号化方式として広く用いられている。本従来例も直交変換を用いた符号化であり、直交変換としてＤＣＴ変換を用いている。まず、入力画像は、ＤＣＴ変換器３１において８画素×８ラインのブロックに分割され、ＤＣＴ変換されて、変換係数が出力される。この変換係数は量子化器３２で量子化される。このとき、量子化器３２は、各変換係数の量子化ステップ幅を定めた量子化テーブル３３を参照し、この量子化ステップ幅に従って量子化を行う。
【００１８】
量子化された変換係数は、可変長符号器３４で可変長符号化される。すなわち、量子化された変換係数は、図３０に示したジグザグスキャンにより走査され、連続する０の数とその後の非零の係数の値とが、２次元ハフマン符号により符号化されて出力される。可変長符号器３４は、このようにして圧縮したデータに、量子化テーブルのデータとハフマンテーブルのデータを付け加えて出力する。
【００１９】
図２９は、上記のように圧縮されたデータを伸長するデータ伸長回路である。入力された圧縮データのうち、ハフマンテーブルのデータはハフマンテーブル４１に入力され、量子化テーブルのデータは量子化テーブル４２に入力され、他のデータは可変長復号器４３に入力される。可変長復号器４３は、ハフマンテーブル４１を参照して復号を行い、量子化された変換係数を出力する。この変換係数は逆量子化器４４で逆量子化され、逆ＤＣＴ変換器４５で変換されて、伸長された画像となって出力される。
【００２０】
【発明が解決しようとする課題】
従来の動き補償予測復号装置は、参照画像の記憶と復号画像の並び換えのために、メモリを数フレーム分必要とするので、コストが高くなるという問題があった。
【００２１】
一般に、フレームメモリを削減する手段として、画像内符号化を行うデータ圧縮回路があるが、従来のデータ圧縮回路で画像を圧縮した場合、画像内の任意の位置の領域のみを復号することができないという問題があった。
【００２２】
また、従来のデータ圧縮回路では、符号量の上限が決まっている場合、発生符号量が上限値以下となるまで、量子化テーブルを変えて符号化を繰り返さなければならないという問題があった。
【００２３】
また、従来のデータ伸長回路は、画像内の任意の位置の領域のみを復号することができないという問題があった。
【００２４】
この発明は上記のような問題点の解消を目的としてなされたもので、必要なメモリが少なく安価な動き補償予測復号装置を得ることを目的とする。
【００２５】
また、画像内の任意の位置の領域のみを復号することができるデータ圧縮回路を得ることを目的とする。
【００２６】
また、符号量制御に必要な処理時間が短く、ハードウェア規模も小さいデータ圧縮回路を得ることを目的とする。
【００２７】
また、画像内の任意の位置の領域のみを復号することができるデータ伸長回路を得ることを目的とする。
【００３７】
【課題を解決するための手段】
第１の発明に係る動き補償予測復号装置は、Ｂピクチャを有する画像データを復号し、復号した画像を出力する動き補償予測復号装置であって、動き補償予測符号化された画像データを復号する手段と、この復号した画像を複数画素毎にブロック化してブロック毎に符号化する符号化回路と、この符号化した各ブロックを記憶するメモリと、このメモリ上の各ブロックの先頭アドレスを記憶する手段とを備えたデータ圧縮回路と、
このデータ圧縮回路に記憶されたデータを伸長し、この伸長したデータを出力する第１のデータ伸長回路と、
上記メモリ上の各ブロックの先頭アドレスを用いて、上記メモリに記憶された上記符号化した各ブロックの中から、動き補償予測の参照画像に対応するブロックのみを指定し伸長する第２のデータ伸長回路と、
この第２のデータ伸長回路により伸長した上記動き補償予測の参照となるブロックを用いて予測画像を作成する予測画像作成回路とを備えたものである。
【００３９】
第２の発明は、第１の発明の動き補償予測復号装置において、前記符号化回路が画像をフィールド内でブロック化するように構成したものである。
【００４０】
第３の発明は、第１の発明の動き補償予測復号装置において、前記符号化回路が、画像を動き補償の最小単位であるブロックサイズと同じサイズ、または整数分の１のサイズのブロックにブロック化するように構成したものである。
【００４１】
第４の発明は、第１の発明の動き補償予測復号装置において、前記符号化回路が、画像を複数画素毎にブロック化して各ブロックに直交変換を施す直交変換回路と、この直交変換回路から出力される各変換係数を量子化する量子化器と、この量子化された変換係数を可変長符号化する可変長符号器を備えたものである。
【００４２】
第５の発明は、第４の発明の動き補償予測復号装置において、前記直交変換をアダマール変換としたものである。
【００４３】
第６の発明は、第４の発明の動き補償予測復号装置において、前記可変長符号器が、各ブロックの変換係数を走査する手段と、走査された変換係数が任意の位置からブロックの終わりまで連続して０であるときは、この連続した０をブロックの終わりを示すコードに置き換える手段とを備えたものである。
【００４４】
第７の発明は、第４の発明の動き補償予測復号装置において、前記可変長符号器が、２次元の変換係数を各成分の低次シーケンシーから順に走査する手段を備えたものである。
【００４５】
第８の発明は、第４の発明の動き補償予測復号装置において、前記量子化器の各変換係数に対する量子化ステップ幅を２のべき乗としたものである。
【００４６】
第９の発明は、第１の発明の動き補償予測復号装置において、上記符号化回路が、あらかじめ定めた定数ＮのＮブロック毎に符号量を既定値以下とするレート制御手段を備え、また上記メモリ上のブロックの先頭アドレスを記憶する手段が、Ｎブロック中の各ブロックの相対アドレスを記憶する手段を備えたものである。
【００４７】
第１０の発明は、第９の発明の動き補償予測復号装置において、上記符号化回路が、画像を複数画素毎にブロック化して各ブロックに直交変換を施す直交変換回路と、この直交変換回路から出力される各変換係数を量子化する量子化器と、この量子化された変換係数を可変長符号化する可変長符号器と、Ｎブロック毎に上記可変長符号器から出力される符号量を既定値以下とするレート制御手段とを備えるとともに、上記量子化器が、各変換係数に対する量子化ステップ幅を示す複数の量子化テーブルを備え、上記レート制御手段が、上記量子化器の量子化テーブルの数よりも少ない数の量子化テーブルで符号量の試算を行って上記量子化器で用いる量子化テーブルを決定するように構成したものである。
【００５９】
【発明の実施の形態】
第１の発明に係る動き補償予測復号装置は、復号画像を複数画素毎にブロック化し、ブロック毎に符号化し、メモリに記憶するとともに、メモリ上のブロックの先頭アドレスを記憶する。そして、復号画像を参照ないし出力するときに、この符号化されたデータを伸長する。
【００６１】
第２の発明は、第１の発明の動き補償予測復号装置において、復号画像をフィールド内でブロック化して符号化する。
【００６２】
第３の発明は、第１の発明の動き補償予測復号装置において、復号画像を、動き補償の最小単位であるブロックサイズと同じサイズ、または整数分の１のサイズのブロックにブロック化して符号化する。
【００６３】
第４の発明は、第１の発明の動き補償予測復号装置において、復号画像を複数画素毎にブロック化して各ブロックに直交変換を施し、変換係数を量子化して可変長符号化する。
【００６４】
第５の発明は、第４の発明の動き補償予測復号装置において、直交変換としてアダマール変換を用いる。
【００６５】
第６の発明は、第４の発明の動き補償予測復号装置において、各ブロックの量子化された変換係数を走査し、走査された変換係数が任意の位置からブロックの終わりまで連続して０であるとき、この連続した０をブロックの終わりを示すコードに置き換えて可変長符号化する。
【００６６】
第７の発明は、第４の発明の動き補償予測復号装置において、２次元のブロックの変換係数を、各成分の低次シーケンシーから順に走査し、可変長符号化する。
【００６７】
第８の発明は、第４の発明の動き補償予測復号装置において、各変換係数に対する量子化ステップ幅を２のべき乗とする。
【００６８】
第９の発明は、第１の発明の動き補償予測復号装置において、あらかじめ定めた定数ＮのＮブロック毎に符号量が既定値以下となるようにレート制御を行い、Ｎブロック中の各ブロックの相対アドレスを記憶する。
【００６９】
第１０の発明は、第９の発明の動き補償予測復号装置において、復号画像を複数画素毎にブロック化して各ブロックに直交変換を施し、変換係数を量子化して可変長符号化する。このとき、Ｎブロック毎に、可変長符号化されて出力される符号量が既定値以下となるようにレート制御を行う。このレート制御は、量子化器の量子化テーブルの数よりも少ない数の量子化テーブルで符号量の試算を行って量子化器で用いる量子化テーブルを決定する。
【００７２】
以下、この発明をその実施の形態を示す図面に基づいて具体的に説明する。
実施の形態１．
図１はこの発明の実施形態１の動き補償予測復号装置を示すブロック図で、図２６と同一符号はそれぞれ同一または相当部分を示す。図１において、２１は入力されたビットストリームを可変長復号する可変長復号器であり、可変長復号器２１の第一の出力は、逆量子化器２２および逆ＤＣＴ変換器２３を介して加算器２４の第一の入力に与えられる。加算器２４の出力は符号化回路１０１に入力され、符号化回路１０１の第一の出力はフレームメモリ１０２の第一の入力に与えられ、符号化回路１０１の第二の出力はアドレスメモリ１０３に入力される。フレームメモリ１０２の第一の出力は第一のデータ伸長回路１０５ａに入力され、第一のデータ伸長回路１０５ａから復号画像が出力される。
【００７３】
一方、可変長復号器２１の第二の出力は予測画像作成回路２６の第一の入力に与えられる。予測画像作成回路２６の第一の出力は第二のデータ伸長回路１０５ｂの第一の入力に与えられる。第二のデータ伸長回路１０５ｂの第二の入力にはアドレスメモリ１０３の出力が与えられ、第二のデータ伸長回路１０５ｂの第一の出力はフレームメモリ１０２の第二の入力に与えられる。フレームメモリ１０２の第二の出力は、第二のデータ伸長回路１０５ｂの第三の入力に与えられ、第二のデータ伸長回路１０５ｂの第二の出力は予測画像作成回路２６の第二の入力に与えられる。予測画像作成回路２６の第二の出力は加算器２４の第二の入力に与えられる。なお、上記符号化回路１０１とフレームメモリ１０２とアドレスメモリ１０３は、データ圧縮回路１０４を構成する。
【００７４】
図２は、上記符号化回路１０１を示すブロック図である。図において、２０１は加算器２４の出力を入力とする直交変換回路であり、直交変換回路２０１の出力は量子化器２０２の第一の入力に与えられる。量子化器２０２の第二の入力にはレート制御回路２０３の出力が与えられ、量子化器２０２の出力は可変長符号器２０４に入力される。可変長符号器２０４の出力はフレームメモリ１０２の第一の入力とレート制御回路２０３の入力に与えられる。可変長符号器２０４の出力はアドレス作成回路２０５にも入力され、アドレス作成回路２０５の出力はアドレスメモリ１０３に入力される。
【００７５】
図３は、上記第一のデータ伸長回路１０５ａを示すブロック図である。図において、３０１ａはフレームメモリ１０２の第一の出力を入力とする可変長復号器であり、可変長復号器３０１ａの出力は、逆量子化器３０２ａと逆直交変換回路３０３ａを介して出力される。
【００７６】
また、図４は上記第二のデータ伸長回路１０５ｂを示すブロック図である。図において、予測画像作成回路２６の第一の出力はアドレス演算回路４０１の第一の入力に与えられる。アドレス演算回路４０１の第二の入力にはアドレスメモリ１０３の出力が与えられる。アドレス演算回路４０１の出力はフレームメモリ１０２の第二の入力に与えられ、フレームメモリ１０２の第二の出力は可変長復号器３０１ｂに入力される。可変長復号器３０１ｂの出力は、逆量子化器３０２ｂと逆直交変換回路３０３ｂを介して、予測画像作成回路２６の第二の入力へ与えられる。
【００７７】
次に動作について説明する。図１は、図２５のような動き補償予測符号化装置によって符号化されたビットストリームを復号する復号装置である。入力されたビットストリームは、可変長復号器２１で可変長復号される。可変長復号器２１からは、符号化された予測誤差と予測モードと動きベクトルとが出力される。符号化された予測誤差は、逆量子化器２２と逆ＤＣＴ変換器２３により復号され、加算器２４において、予測画像作成回路２６から出力される予測画像と加算される。加算器２４から出力される画像は復号画像であり、データ圧縮回路１０４は、この画像を圧縮して記憶する。加算器２４は符号化順に復号画像を出力するので、データ圧縮回路１０４は圧縮データを表示順に並び換えて出力する。第一のデータ伸長回路１０５ａは、この出力を伸長して画像を出力する。
【００７８】
一方、予測画像作成回路２６は、可変長復号器２１から出力される予測モードと動きベクトルに従い、予測画像を作成する。すなわち、予測モードによって、データ圧縮回路１０４に記憶されている画像のうち参照画像とすべき画像を選択し、さらに動きベクトルにより参照画像内の領域を指定する。第二のデータ伸長回路１０５ｂは、予測画像作成回路２６から指定された画像の指定された領域を伸長するのに必要な圧縮データのアドレスを求め、そのデータをデータ圧縮回路１０４から読みだして伸長を行い、予測画像作成回路２６へ出力する。
【００７９】
予測画像作成回路２６は、第二のデータ伸長回路１０５ｂから出力された画像から予測画像を作成する。例えば、動きベクトルが半画素の位置を示している場合は、周辺の４画素から半画素の位置の画素値を計算する。また、予測モードがＢピクチャの平均画像である場合は、２つの参照画像から２つの予測画像を作成し、この２つの予測画像の平均画像を作成する。また、予測モードが画像内符号化を示している場合には、予測画像の画素値をすべて０に設定して出力する。
【００８０】
以下、図１、図２に基づいて、データ圧縮回路１０４の動作について、詳しく説明する。加算器２４から出力された画像は、直交変換回路２０１において複数画素毎にブロック化され、直交変換される。加算器２４は、動き補償の単位である１６画素×１６ラインのマクロブロック毎に画像を出力するので、直交変換回路２０１におけるブロック化は、このマクロブロックと同一サイズ、または整数分の１のサイズのブロックに分割することにより、ハードウェアの構成を簡単化できる。
【００８１】
また、入力画像がインターレースの２フィールドで構成されたフレームであるときは、マクロブロックを２つのフィールドの１６画素×８ラインに分割し、それぞれで動き補償を行うモードがあるので、直交変換回路２０１におけるブロック化をフィールドで行うことにより、後で述べるように、第二のデータ伸長回路１０５ｂで指定された画像領域の伸長を行うときに、必要なブロック数が少なくて済む。したがって、直交変換回路２０１は、たとえば、輝度信号をフィールドの８画素×８ラインに分割する。色差信号については、入力信号が４：２：０信号の場合、動き補償の最小単位がフィールドの８画素×４ラインとなるので、フィールドの８画素×４ラインに分割する。
【００８２】
直交変換回路２０１における直交変換としては、例えばアダマール変換を用いる。アダマール変換は、図５に示したような１と−１のみを要素とするアダマール行列で表わされる。すなわち、８画素×８ラインのブロックの場合、まず水平方向の８画素を、８次のアダマール行列に掛け、得られた変換係数を８ラインずつまとめ、再び８次のアダマール行列に掛けることで、８×８の２次元の変換係数が得られる。これは、水平方向、垂直方向を、それぞれ図５のような基底ベクトルに分解することに相当する。各基底ベクトルが０を横切る回数はシーケンシーと呼ばれる。シーケンシーは周波数に対応し、シーケンシーが高い係数は高周波成分を多く含む。画像は一般に低周波成分にパワーが集中するので、アダマール変換などの直交変換を行うと、シーケンシーの低い係数にパワーが集中する。直交変換回路２０１は、変換係数を、水平、垂直方向ともシーケンシー順に並び換えて出力する。
【００８３】
直交変換回路２０１から出力される変換係数は、量子化器２０２で量子化される。量子化器２０２は、各変換係数に対する量子化ステップ幅を示す複数の量子化テーブルを備え、レート制御回路２０３から指定された量子化テーブルに従って量子化を行う。レート制御回路２０３は、可変長符号器２０４から出力される圧縮データの符号量を検出し、発生符号量に従って量子化テーブルを決定する。量子化器２０２の量子化ステップ幅がすべて２のべき乗である場合、量子化テーブルは量子化ステップ幅の代わりに量子化ビット数を記憶すればよい。量子化テーブルの一例を図６に示す。
【００８４】
量子化された変換係数は可変長符号器２０４で可変長符号化される。例えば、量子化された変換係数は、まず、図７のような順で走査され、走査された各変換係数は、その値を示すハフマン符号に変換されて出力される。ただし、走査された変換係数は、０か否か判定され、ある位置からブロックの終わりまで連続して０であるとき、この連続した０はブロックの終わりを示すコード（ＥＯＢ）に置き換えられて、ＥＯＢを示すハフマン符号が出力される。
【００８５】
すなわち、例えば輝度信号の変換係数が図８のようになっている場合、２５０、４０、−１０、０、４、０、０、１、−３、１２、７、０、２、３、０、２１、５、０、０、０、０、０、−８を順にハフマン符号に置き換え、次にＥＯＢを示すハフマン符号を出力する。水平または垂直シーケンシーの高い係数は、パワーが小さいため、量子化により０となることが多いので、このように符号化することにより、ハフマン符号の数を減少させることができる。特に、アダマール変換を行なうと、図９のように水平・垂直の高次シーケンシーを頂点とした四角形の領域の変換係数が０となる傾向が強いので、図７のような走査をすれば、最後に０が続く確率が高く、ハフマン符号の数を削減することができる。なお、可変長符号器２０４は、量子化器２０２が選択した量子化テーブルを示す番号も、同時に符号化する。
【００８６】
可変長符号器２０４から出力される圧縮データは、フレームメモリ１０２に記憶される。また、アドレス作成回路２０５は、可変長符号器２０４から出力される圧縮データの符号量を検出し、フレームメモリ１０２内の各ブロックの圧縮データの先頭アドレスを求める。この先頭アドレスはアドレスメモリ１０３に記憶される。
【００８７】
フレームメモリ１０２は、各フレームの圧縮データを表示順に並び換えて、第一のデータ伸長回路１０５ａに出力する。また、フレームメモリ１０２は、第二のデータ伸長回路１０５ｂから指定されたアドレスの圧縮データを、第二のデータ伸長回路１０５ｂへ出力する。
【００８８】
次に、図３に基づいて、第一のデータ伸長回路１０５ａについて詳しく説明する。フレームメモリ１０２から出力された圧縮データは、可変長復号器３０１ａで可変長復号される。すなわち、各ハフマン符号から変換係数の値を求め、ハフマン符号がＥＯＢを示している場合は、その変換係数からブロックの終わりまでの変換係数を０として出力する。この変換係数は逆量子化器３０２ａで逆量子化され、逆直交変換回路３０３ａで逆変換される。直交変換回路２０１がアダマール変換である場合、逆変換も同じアダマール変換である。
【００８９】
最後に、図４に基づいて、第二のデータ伸長回路１０５ｂについて詳しく説明する。予測画像作成回路２６から出力された参照画像の指定は、アドレス演算回路４０１に入力される。アドレス演算回路４０１は、指定された画像の指定された領域を復元するのに必要なブロックを求める。すなわち、輝度信号はフィールドの８画素×８ラインのブロック、色差信号はフィールドの８画素×４ラインのブロックを単位として、圧縮されて、フレームメモリ１０２に記憶されているので、指定された領域を復元するには、いくつかのブロックの圧縮データを伸長することが必要になる。
【００９０】
例えば、フィールドの１６画素×８ライン単位の動き補償が選択されている場合、各フィールドの予測画像を作るのに、図１０のように、輝度信号は６個、色差信号は４個のブロックが必要となる。また、フレームの１６画素×１６ライン単位の動き補償が選択されている場合も、各フィールドについて１６画素×８ラインの領域が必要となるので、やはり輝度信号は６個、色差信号は４個のブロックが必要となる。また、予測モードがＢピクチャの平均画像である場合は、各参照画像の各フィールドについて、輝度信号は６個、色差信号は４個のブロックが必要となる。
【００９１】
アドレス演算回路４０１は、アドレスメモリ１０３を参照して、指定された領域を復元するのに必要なブロックのアドレスを求める。フレームメモリ１０２は、このアドレスの圧縮データを出力する。出力された圧縮データは、可変長符号器３０１ｂ、逆量子化器３０２ｂ、逆直交変換回路３０３ｂで復号され、予測画像作成回路２６へ出力される。これら可変長符号器３０１ｂ、逆量子化器３０２ｂ、逆直交変換回路３０３ｂの動作は、それぞれ可変長符号器３０１ａ、逆量子化器３０２ａ、逆直交変換回路３０３ａの動作と同じである。
【００９２】
上記実施の形態１においては、フレームメモリ１０２とアドレスメモリ１０３を別々に用意したが、フレームメモリ１０２とアドレスメモリ１０３は、同じメモリのアドレスを切り分けて使う構成としてもよい。
【００９３】
また、上記実施の形態１においては、直交変換回路２０１は、アダマール変換を行い、水平、垂直方向ともシーケンシー順に並び換えて出力するとしたが、図１１のように、あらかじめシーケンシー順に並び換えたアダマール行列を使ってもよい。また、直交変換回路２０１で行う直交変換はアダマール変換に限らず、ハール変換、ＤＣＴなどを用いてもよい。
【００９４】
さらに、可変長符号器２０４は図７のような順で変換係数の走査を行うとしたが、走査順はこれに限らず、従来のように図３０のジグザグスキャンを用いてもよい。
【００９５】
また、可変長符号器２０４は、ブロックの終わりまで連続する０係数をＥＯＢに置き換え、他の係数はその値を示すハフマン符号を出力するとしたが、変換係数の符号化方法はこれに限らず、０の個数とその後の非零の係数値の組を符号化するランレングス符号化を用いてもよい。
【００９６】
実施の形態２．
上記実施の形態１においては、データ圧縮回路１０４が各ブロックの圧縮データの先頭アドレスを記憶するとしたが、実施の形態２に係るデータ圧縮回路１０４では、Ｎブロック（Ｎ：自然数）毎に絶対アドレスを記憶し、他のブロックについてはＮブロック中の相対アドレスを記憶するよう構成する。例えば、１フレームが７２０画素×４８０ラインの輝度信号と３６０画素×２４０ラインの２つの色差信号からなる場合、上記実施の形態１のように輝度信号はフィールドで８画素×８ラインのブロック、色差信号はフィールドで８画素×４ラインのブロックに分割して符号化すると、１フレームの総ブロック数は１０８００個となる。データ圧縮回路１０４の圧縮率を例えば１／３に設定すると、１フレームの符号量は１．３２Ｍｂｉｔとなるので、フレームメモリ上の各ブロックの先頭アドレスを示すには、２１ｂｉｔ必要となる。したがって、上記実施の形態１で説明したように各ブロックの先頭アドレスを記憶すると、１フレームについて、２２１．５ｋｂｉｔのアドレスメモリが必要となる。
【００９７】
そこで、Ｎブロック毎に絶対アドレスを記憶し、他のブロックについてはＮブロック中の相対アドレスを記憶するよう構成すれば、アドレスメモリを削減できる。以下、Ｎブロックの大きさをフィールド毎の１マクロブロックとする場合について説明する。１マクロブロックをフィールドに分けると、輝度信号は１６画素×８ライン、色差信号は８画素×４ラインとなるので、フィールド毎の１マクロブロックには、図１２のように輝度信号２個、色差信号２個の計４個のブロックが含まれる。そこで、各マクロブロックの先頭アドレスは絶対アドレスで記憶し、マクロブロック内の２番目以降のブロックはマクロブロックの先頭アドレスからの相対アドレスで記憶する。
【００９８】
１フレームをフィールド毎にマクロブロックに分割すると、２７００個のマクロブロックとなる。各マクロブロックの先頭アドレスは絶対アドレスで示すので、２１ｂｉｔ必要である。一方、マクロブロック内の２番目以降のブロックの総数は、１０８００−２７００＝８１００個である。圧縮率を１／３としているので、１マクロブロックの符号量は５１２ｂｉｔであり、各ブロックの相対アドレスは９ｂｉｔで示される。したがって、アドレスメモリは、合計で、２７００×２１＋８１００×９＝１２６．６ｋｂｉｔ必要となり、アドレスメモリの容量を削減できる。
【００９９】
なお、上記実施の形態２においては、Ｎブロックの大きさをフィールド毎の１マクロブロックとしたが、Ｎの大きさはこれに限るものではなく、複数マクロブロック毎に絶対アドレスを記憶するよう構成してもよい。
【０１００】
実施の形態３．
上記実施の形態２においては、データ圧縮回路１０４がＮブロック（Ｎ：自然数）毎に絶対アドレスを記憶し、他のブロックについてはＮブロック中の相対アドレスを記憶するよう構成したが、実施の形態３に係るデータ圧縮回路１０４は、データ圧縮回路１０４がＮブロック毎に符号量を既定値以下とするレート制御を備え、Ｎブロック中の各ブロックの相対アドレスのみを記憶するよう構成したものである。
【０１０１】
例えば、Ｎブロックの大きさをフィールド毎の１マクロブロックとする場合、マクロブロック毎に符号量が既定値以下となるよう制御すれば、マクロブロック番号から各マクロブロックの先頭アドレスは算出できるので、マクロブロック内の２番目以降のブロックの相対アドレスのみを記憶すればよい。この場合、８１００×９＝７１．２ｋｂｉｔに、アドレスメモリの容量を削減できる。
【０１０２】
実施の形態４．
この発明の実施の形態４に係るデータ圧縮回路１０４は、Ｎブロックの大きさをＭ個（Ｍ：自然数）のマクロブロックとし、Ｍマクロブロック中の各マクロブロックの相対アドレスを記憶するとともに、各マクロブロック内の各ブロックの相対アドレスを記憶するよう構成したものである。
【０１０３】
例えば、Ｍマクロブロックをフィールド毎の５マクロブロックとする場合、５マクロブロック毎に符号量が既定値以下となるよう制御するとともに、５マクロブロック中の２番目以降のマクロブロックの相対アドレスを記憶する。この場合、マクロブロック番号とこの相対アドレスにより、各マクロブロックの先頭アドレスが算出できる。さらに、各マクロブロック内の２番目以降のブロックの相対アドレスを記憶することにより、各ブロックの先頭アドレスが算出できる。圧縮率を１／３とした場合、５マクロブロックの符号量は２５６０ｂｉｔであり、各マクロブロックの相対アドレスは１２ｂｉｔで表わされる。また、５マクロブロック中の２番目以降のマクロブロックの数は、２７００／５×４＝２１６０個である。一方、各マクロブロック内の２番目以降のブロックの数および相対アドレスを示すのに必要なビット数は上記と同じである。したがって、アドレスメモリの容量は合計で、２１６０×１２＋８１００×９＝９６．５ｋｂｉｔとなる。この場合、レート制御の単位を大きくできるので、画質劣化を伴うことなく、アドレスメモリの容量を削減できる。
【０１０４】
実施の形態５．
図１３は、この発明の実施の形態５に係るデータ圧縮回路１０４を示すブロック図で、図２と同一符号はそれぞれ同一または相当部分を示す。図において、２０１は加算器２４の出力を入力とする直交変換回路であり、直交変換回路２０１の出力は量子化器２０２の第一の入力と試算回路１２０１の入力に与えられる。量子化器２０２の第二の入力には試算回路１２０１の第一の出力が与えられる。量子化器２０２の出力は打ち切り回路１２０２の第一の入力に与えられる。打ち切り回路１２０２の第二の入力には試算回路１２０１の第二の出力が与えられる。打ち切り回路１２０２の出力は可変長符号器２０４に入力される。可変長符号器２０４の出力はフレームメモリ１０２の第一の入力と打ち切り回路１２０２の第三の入力に与えられる。可変長符号器２０４の出力はアドレス作成回路２０５にも入力され、アドレス作成回路２０５の出力はアドレスメモリ１０３に入力される。なお、上記試算回路１２０１と上記打ち切り回路１２０２はレート制御回路２０３ａを構成している。
【０１０５】
次に動作について説明する。加算器２４から入力される画像は、直交変換回路２０１において、複数画素毎にブロック化され、直交変換される。この直交変換回路２０１の動作は実施の形態１と同様であり、たとえば、輝度信号をフィールドの８画素×８ラインに、色差信号はフィールドの８画素×４ラインにそれぞれ分割し、アダマール変換で変換し、変換係数を出力する。直交変換回路２０１から出力される変換係数は、量子化器２０２で量子化される。量子化器２０２は、各変換係数に対する量子化ステップ幅を示す複数の量子化テーブルを備え、試算回路１２０１から指定された量子化テーブルに従って量子化を行う。量子化器２０２の量子化ステップ幅がすべて２のべき乗である場合、量子化テーブルは図６のように量子化ビット数を記憶すればよい。
【０１０６】
試算回路１２０１は、量子化器２０２が備えている量子化テーブルより少ない数の量子化テーブルを備え、それぞれの量子化テーブルで変換係数の量子化を行い、発生符号量を試算する。そして、この試算結果に基づいて量子化テーブルを決定するとともに、決定された量子化テーブルを選択したときの各ブロックの予想発生符号量または符号量の目標値も出力する。量子化された変換係数は打ち切り回路１２０２に入力される。打ち切り回路１２０２は、可変長符号器２０４から出力される各ブロックの発生符号量を検出し、発生符号量が試算回路１２０１から出力された目標値を越えたときに、そのブロックの当該係数以降の係数を０とする。
【０１０７】
例えば、５マクロブロック毎に符号量が１／３、すなわち２５６０ｂｉｔ以下となるよう制御する場合について説明する。量子化器２０２が備えている量子化テーブルは、図１４の６種類であるとする。試算回路１２０１は、このうち第１、第５、第６の量子化テーブルの３種類だけを備える。試算回路１２０１は、これら第１、第５、第６量子化テーブルで量子化を行い、それぞれの量子化係数を符号化したときの符号量を５マクロブロック毎に求める。いま、５マクロブロックの符号量の試算結果が、第１の量子化テーブルで３９５０ｂｉｔ、第５の量子化テーブルで１９５０ｂｉｔ、第６の量子化テーブルで１７４８ｂｉｔであったとする。
【０１０８】
試算回路１２０１は、試算を行わなかった量子化テーブルについて、発生符号量を予測する。一般に、図１４のような量子化テーブルを用いて係数の量子化を行うと、量子化テーブルの番号が増えるにつれ発生符号量は単調減少する。しかも、第１と第２の量子化テーブル、第３と第４の量子化テーブル、および、第５と第６の量子化テーブルは、それぞれシーケンシーの高い係数の量子化ビット数だけが異なるので、図１５のように階段状に近い形になる。そこで、上記の試算結果をもとに、次のようにして、試算を行わなかった量子化テーブルの発生符号量を予測する。まず、第３の量子化テーブルについては、第１の量子化テーブルと第５の量子化テーブルの平均をとり、２９５０ｂｉｔとする。また、第１の量子化テーブルと第２の量子化テーブルの差は、第５の量子化テーブルと第６の量子化テーブルの差より大きいと考えられるので、第２の量子化テーブルの発生符号量は、
（第１の量子化テーブルの符号量）−（第５と第６の量子化テーブルの符号量の差）
＝３９５０−（１９５０−１７４８）＝３７４８（ｂｉｔ）
と予測する。同様に、第３と第４の量子化テーブルの差は、第５と第６の量子化テーブルの差より大きいと考えられるので、第４の量子化テーブルの発生符号量は、
（第３の量子化テーブルの符号量）−（第５と第６の量子化テーブルの符号量の差）
＝２９５０−（１９５０−１７４８）＝２７４８（ｂｉｔ）
と予測する。以上の試算結果と予測結果から、符号量を既定値２５６０ｂｉｔ以下とするためには、第５の量子化テーブルを選択することになる。
【０１０９】
さらに、試算回路１２０１は、このように決定した第５の量子化テーブルを選択したときの各ブロックの予想発生符号量も出力する。すなわち、上記符号量は５マクロブロック分であるが、各マクロブロックは図１２のように４つのブロックから成っているので、各ブロック別の符号量を打ち切り回路１２０２へ出力する。また、選択した量子化テーブルが試算を行わなかった量子化テーブルである場合も、上記と同様に、各ブロック毎に符号量の予測を行い、予想発生符号量を出力する。なお、選択した量子化テーブルで発生する予想発生符号量と既定値の差が大きい場合には、この差を各ブロックの予想発生符号量に分配し、各ブロックの符号量の目標値とする。つまり、上記の例では、選択した第５の量子化テーブルで発生する符号量は１９５０ｂｉｔで、既定値とは６１０ｂｉｔの差があるので、この６１０ｂｉｔを５マクロブロック内の２０個のブロックの発生符号量に比例配分し、各ブロックの符号量の目標値とする。第６の量子化テーブルで試算した符号量が既定値を越える場合も、同様にして、差を発生符号量に比例配分し、合計が既定値以下となるように、各ブロックの符号量の目標値を定める。予想発生符号量が既定値に等しい場合には、各ブロックの予想発生符号量をそのまま符号量の目標値とする。
【０１１０】
試算回路１２０１で選択した量子化テーブルが、試算を行わなかった量子化テーブルである場合、決定に用いた発生符号量はあくまで予測値であるので、実際に可変長符号器２０４から出力される符号量は、必ずしも既定値以下とならない。そこで、打ち切り回路１２０２は、可変長符号器２０４から出力される各ブロックの発生符号量を検出し、発生符号量が試算回路１２０１から出力された符号量の予測値を越えたときには、そのブロックの変換係数の符号化を打ち切る。すなわち、変換係数は図７のように走査されてハフマン符号化されるので、この走査順で符号量の目標値を越えた変換係数以降の変換係数は０とする。この打ち切り回路１２０２により、試算を行わない量子化テーブルがあっても、発生符号量は必ず既定値以下となる。また、量子化テーブルの決定は５マクロブロック単位で行うが、打ち切りはブロック単位で行うので、打ち切りによる画質劣化が少ない。
【０１１１】
打ち切り回路１２０２から出力される変換係数は、可変長符号器２０４で可変長符号化される。可変長符号器２０４、アドレス作成回路２０５、フレームメモリ１０２、アドレスメモリ１０３の動作は、上記実施の形態１と全く同様である。
【０１１２】
なお、上記実施の形態５においては、５マクロブロック毎に符号量を既定値以下とするよう制御を行うとしたが、レート制御の単位はこれに限らず、任意のブロック数毎に制御を行うよう構成することができる。また、量子化器２０２が備えている量子化テーブルは、図１４の６種類であるとしたが、量子化テーブルはこれに限らず、何種類でも、任意の特性の量子化テーブルで、同様の動作を行うことができる。
【０１１３】
また、試算回路１２０１は３種類の量子化テーブルを備えるとしたが、試算回路１２０１が備える量子化テーブルの数はこれに限らず、量子化器２０２が備える量子化テーブルより少ない任意の数の量子化テーブルで、同様の動作を行うことができる。
【０１１４】
さらに、試算回路１２０１は試算した量子化テーブルの発生符号量から、試算しなかった量子化テーブルの発生符号量を線形予測で予測したが、予測方法はこれに限らず、例えば、図１５の量子化テーブル−符号量のグラフを２次近似し、２次関数により予測を行うよう構成してもよい。
【０１１５】
また、試算回路１２０１は、予想発生符号量と既定値の差を、各ブロックの予想発生符号量に比例配分し、各ブロックの符号量の目標値とするとしたが、この差の配分は比例配分に限らず、全ブロックに均等分配、または輝度信号のブロックだけに比例配分してもよい。
【０１１６】
実施の形態６．
図１６は、この発明の実施の形態６に係るデータ圧縮回路１０４を示すブロック図で、図２と同一符号はそれぞれ同一または相当部分を示す。図において、２０１は加算器２４の出力を入力とする直交変換回路であり、直交変換回路２０１の出力は量子化器２０２の第一の入力と試算回路１５０１の入力に与えられる。試算回路１５０１の第一の出力はカウンタ１５０２に入力される。試算回路１５０１の第二の出力は判定器１５０３の第一の入力に与えられ、判定器１５０３の第二の入力にはカウンタ１５０２の出力が与えられる。判定器１５０３の出力は量子化器２０２の第二の入力に与えられる。量子化器２０２の出力は可変長符号器２０４に入力される。可変長符号器２０４の出力はフレームメモリ１０２の第一の入力とアドレス作成回路２０５の入力に与えられる。アドレス作成回路２０５の出力はアドレスメモリ１０３に入力される。なお、上記試算回路１５０１と上記カウンタ１５０２と上記判定器１５０３はレート制御回路２０３ｂを構成している。
【０１１７】
次に動作について説明する。直交変換回路２０１、量子化器２０２、可変長符号器２０４、アドレス作成回路２０５、フレームメモリ１０２およびアドレスメモリ１０３は、上記実施の形態１と全く同様であるので、説明を省略し、レート制御回路２０３ｂについて説明する。試算回路１５０１は、量子化器２０２が備えている量子化テーブルより少ない数の量子化テーブルを備え、それぞれの量子化テーブルで変換係数の量子化を行い、発生符号量を試算する。試算回路１５０１は、この試算結果を判定器１５０３へ出力する。また、試算回路１５０１は、各量子化テーブルで量子化した変換係数をカウンタ１５０２へ出力する。カウンタ１５０２は各量子化テーブルで量子化された変換係数のうち、絶対値が０または１である係数の数を数える。判定器１５０３は、試算回路１５０１から出力される試算結果と、カウンタ１５０２から出力される絶対値が０または１の係数の数とから、試算しなかった量子化テーブルによる発生符号量を予測し、この予測結果と、入力された試算結果とから、量子化器２０２で選択する量子化テーブルを決定する。
【０１１８】
例えば、５マクロブロック毎に符号量が１／３、すなわち２５６０ｂｉｔ以下となるよう制御する場合について説明する。量子化器２０２が備えている量子化テーブルは、図１４の６種類と図１７の１種類の計７種類であるとする。試算回路１５０１は、このうち第１、第３、第５の量子化テーブルの３種類だけを備える。試算回路１５０１は、これら第１、第３、第５の量子化テーブルで量子化を行い、それぞれ量子化された変換係数を符号化したときの符号量を５マクロブロック毎に求める。いま、５マクロブロックの符号量の試算結果が、第１の量子化テーブルで３９５０ｂｉｔ、第３の量子化テーブルで２８７５ｂｉｔ、第５の量子化テーブルで１９５０ｂｉｔであったとする。
【０１１９】
試算しなかった量子化テーブルのうち、第２、第４、第６の量子化テーブルは、それぞれ、第１、第３、第５の量子化テーブルと、シーケンシーの高い係数の量子化ビット数が１ビット減少している点が異なる。一般に、量子化された変換係数の値は０近辺に集中するので、可変長符号器２０４で用いられるハフマン符号は、図１８に示すように、変換係数の絶対値が小さいほど短い符号を持ち、その符号の長さは変換係数の絶対値に対して指数関数的に増える。したがって、量子化ビット数が１ビット減ると、量子化された変換係数の値が１／２となるので、ハフマン符号の長さは少なくとも１ビット減少する。ただし、もともと量子化された変換係数値が０である場合は、量子化ビット数を減らしても符号長は変わらない。また、もともと量子化された変換係数値が１である場合も、量子化が四捨五入である場合は、量子化ビット数を１ビット減らしても値は１のままで、符号長が変わらない場合がある。以上のことから、量子化ビット数を１ビット減少させると、もとの量子化値の絶対値が０または１でない係数は、必ず符号長が１ビット以上減少する。すなわち、ブロック全体としては、少なくとも、量子化値の絶対値が０または１でない係数の数だけ符号量が減少することになる。
【０１２０】
そこで、例えば第２の量子化テーブルの場合、第１の量子化テーブルと比べるとシーケンシーの高い係数の量子化ビット数が１ビット減少しているので、この部分の係数で量子化値が０または１となる係数の数を数える。いま、５マクロブロックで、その数が８７個であったとすると、シーケンシーの高い係数は全部で（６×６＋２×６）×２×５＝４８０個であるから、量子化値の絶対値が０または１でない係数の数は、４８０−８７＝３９３個である。したがって、第２の量子化テーブルは、第１の量子化テーブルよりも符号量が少なくとも３９３ｂｉｔ減少する。そこで、第２の量子化テーブルの発生符号量を、３９５０−３９３＝３５５７ｂｉｔと予測する。
【０１２１】
同様に、第３、第５の量子化テーブルで量子化したとき、シーケンシーの高い係数で量子化値の絶対値が０または１となる係数の数を数える。この数が、それぞれ、９３個、１１７個であったとすると、このとき、第４の量子化テーブルの発生符号量を２８７５−（４８０−９３）＝２４８８ｂｉｔ、第６の量子化テーブルの発生符号量を１９５０−（４８０−１１７）＝１５８７ｂｉｔと予測する。
【０１２２】
以上の試算結果と予測結果から、符号量を既定値２５６０ｂｉｔ以下とするためには、第４の量子化テーブルを選択することになる。なお、この場合、試算しなかった量子化テーブルについては、発生しうる最大符号量を予測発生符号量としたので、実際に可変長符号器２０４から出力される符号量は必ず既定値以下となる。
【０１２３】
図１９ないし図２１は、これを実験により確認した結果を示す図で、図１９は、ある画像１フレーム分について、第２の量子化テーブルの予測発生符号量と実際の発生符号量を求めてプロットしたものである。図２０は、同様に、第４の量子化テーブルの予測発生符号量と実際の発生符号量をプロットしたものである。また、図２１は、第６の量子化テーブルの予測発生符号量と実際の発生符号量をプロットしたものである。これらの図からも、実際の発生符号量が必ず予測発生符号量以下となることがわかる。したがって、実施の形態５で用いた打ち切り回路１２０２は、この実施の形態６では不要となる。ただし、上記第６の量子化テーブルを用いても符号量が既定値以下とならない場合のために、どのようなブロックでも必ず符号量が既定値以下となる第７の量子化テーブルを量子化器２０２に備える。これにより、第６の量子化テーブルの試算結果が既定値を越える場合には、第７の量子化テーブルを選択することで、打ち切りを行わなくても、必ず符号量は既定値以下となる。
【０１２４】
ところで、どのようなブロックが入力されても符号量を１／３以下とするためには、１係数あたりの平均ビット数を２．７ビットにしなくてはならない。可変長符号器２０４は、ＤＣ係数を固定長符号で、ＡＣ係数を図１８のようなハフマン符号で符号化するので、すべての係数を符号化するならば、量子化ビット数が１ビットであっても、符号量１／３を保証することはできない。なぜなら、すべての量子化係数値が１という場合、１係数あたりのビット数が３ビットとなってしまうからである。
【０１２５】
そこで、第７の量子化テーブルは、図１７のように、シーケンシーの高い係数は強制的に０に置き換えて０ビットとし、シーケンシーの高い係数を符号化しないことで、他の係数の量子化ビット数を増やすことができるのである。図１７に示したように、第７の量子化テーブルは、輝度信号のＤＣ係数を７ビット、色差信号のＤＣ係数を６ビット、シーケンシーの低いＡＣ係数を３ビットに量子化する。この場合、図１８からシーケンシーの低いＡＣ係数は最大５ビットで表わされることがわかる。シーケンシーの高い係数はすべて０なので、ＥＯＢ１個で表わされる。したがって、第７の量子化テーブルで量子化を行うと、１ブロックあたりの発生符号量は、輝度信号で７＋５×２７＋５＝１４７ｂｉｔ、色差信号で６＋５×１９＋５＝１０６ｂｉｔとなる。よって、１マクロブロックの符号量は５０６ｂｉｔとなり、符号量は１／３以下に圧縮される。
【０１２６】
なお、上記実施の形態６においては、５マクロブロック毎に符号量を既定値以下とするように制御を行うとしたが、レート制御の単位はこれに限らず、任意のブロック数毎に制御を行うように構成することができる。
【０１２７】
また、量子化器２０２が備えている量子化テーブルは、図１４と図１７の７種類であるとしたが、量子化テーブルはこれに限らず、何種類でも、任意の特性の量子化テーブルで、同様の動作を行うことができる。特に、量子化テーブルは線形量子化だけでなく、非線形量子化を既定するものであってもよい。たとえば、上記第７の量子化テーブルにおいて、ＡＣ係数の３ビットの量子化は、４ビットの線形量子化を行って、−８から７の範囲の値を得た後、その値を−４から３にクリップするような量子化であってもよい。
【０１２８】
実施の形態７．
上記実施の形態６においては、試算回路１５０１が３種類の量子化テーブルを備えるとしたが、試算回路１５０１が備える量子化テーブルの数はこれに限らず、量子化器２０２が備える量子化テーブルより少ない任意の数の量子化テーブルで、同様の動作を行うことができる。たとえば、試算回路１５０１が図１４の第１と第４の量子化テーブルの２種類だけを備えるとする。５マクロブロックの符号量の試算結果が、第１の量子化テーブルで３９５０ｂｉｔ、第４の量子化テーブルで２４３２ｂｉｔであったとする。また、第１の量子化テーブルで量子化したとき量子化値が０または１となる係数の数が、シーケンシーの高い係数で８７個、シーケンシーの低いＡＣ係数で１３個あったとする。また、第４の量子化テーブルで量子化したとき量子化値が０または１となる係数の数が、シーケンシーの高い係数で１０３個、シーケンシーの低いＡＣ係数で３４個あったとする。
【０１２９】
第２の量子化テーブルについては、上記実施の形態６と同様に、発生符号量は３５５７ｂｉｔと予測する。第３の量子化テーブルは、第１の量子化テーブルと比べるとすべてのＡＣ係数の量子化ビット数が１ビット減少している。ＡＣ係数は全部で（６３＋３１）×２×５＝９４０個であるから、第１の量子化テーブルにおいて、量子化値の絶対値が０または１でないＡＣ係数の数は、９４０−８７−１３＝８４０個である。したがって、第３の量子化テーブルの発生符号量を、３９５０−８４０＝３１１０ｂｉｔと予測する。
【０１３０】
また、第５の量子化テーブルは、第４の量子化テーブルと比べると、シーケンシーの低いＡＣ係数の量子化ビット数が１ビット減少している。シーケンシーの低いＡＣ係数は全部で９４０−（６×６＋２×６）×２×５＝４６０個であり、これらの係数のうち第４の量子化テーブルによる量子化値の絶対値が０または１でない係数の数は、４６０−３４＝４２６個である。したがって、第５の量子化テーブルの発生符号量を、２４３２−４２６＝２００６ｂｉｔと予測する。
【０１３１】
さらに、第６の量子化テーブルは、第４の量子化テーブルと比べるとすべてのＡＣ係数の量子化ビット数が１ビット減少している。第４の量子化テーブルにおいて、量子化値の絶対値が０または１でないＡＣ係数の数は、９４０−１０３−３４＝８０３個である。したがって、第６の量子化テーブルの発生符号量を、２４３２−８０３＝１６２９ｂｉｔと予測する。以上の試算結果と予測結果から、符号量を既定値２５６０ｂｉｔ以下とするためには、第４の量子化テーブルを選択することになる。
【０１３２】
なお、上記実施の形態６および７においては、量子化値の絶対値が０または１となる係数の個数を数えるとしたが、量子化器が端数を切り捨てる場合は、量子化値が０となる係数の個数を数えるよう構成すればよい。
【０１３３】
実施の形態８．
上記実施の形態１においては、動き補償予測復号した画像をすべてデータ圧縮したが、復号画像の一部をデータ圧縮するよう構成してもよい。図２２は、この発明の実施の形態８に係る動き補償予測復号装置を示すブロック図で、復号画像のうちＢピクチャだけをデータ圧縮するよう構成したものである。図中、図１および図２６と同一符号はそれぞれ同一または相当部分を示す。図２２において、２１は入力されたビットストリームを可変長復号する可変長復号器であり、可変長復号器２１の第一の出力は、逆量子化器２２および逆ＤＣＴ変換器２３を介して、加算器２４の第一の入力に与えられる。加算器２４の出力は第一の切替器２２０１ａに入力される。第一の切替器２２０１ａの第一の出力はデータ圧縮回路１０４ａに入力され、データ圧縮回路１０４ａの出力はフレームメモリ１０２ａとデータ伸長回路１０５ａを介して、第二の切替器２２０１ｂの第一の入力に与えられる。第一の切替器２２０１ａの第二の出力は第一のフレームメモリ２５の第一の入力に与えられ、第一のフレームメモリ２５の第一の出力は第二の切替器２２０１ｂの第二の入力に与えられる。第二の切替器２２０１ｂからは復号画像が出力される。
【０１３４】
一方、可変長復号器２１の第二の出力は予測画像作成回路２６の第一の入力に与えられる。予測画像作成回路２６の第一の出力は第一のフレームメモリ２５の第二の入力に与えられる。第一のフレームメモリ２５の第二の出力は、予測画像作成回路２６の第二の入力に与えられる。予測画像作成回路２６の第二の出力は加算器２４の第二の入力に与えられる。
【０１３５】
図２３は、上記データ圧縮回路１０４ａを示すブロック図で、図２と同一符号はそれぞれ同一部分を示す。図において、２０１は第一の切替器２２０１ａの第一の出力を入力とする直交変換回路であり、直交変換回路２０１の出力は量子化器２０２の第一の入力に与えられる。量子化器２０２の第二の入力にはレート制御回路２０３の出力が与えられ、量子化器２０２の出力は可変長符号器２０４に入力される。可変長符号器２０４の出力は第二のフレームメモリ１０２ａへ出力されるとともに、レート制御回路２０３の入力に与えられる。
【０１３６】
次に動作について説明する。入力されたビットストリームは可変長復号器２１で可変長復号され、符号化された予測誤差と予測モードと動きベクトルとが出力される。符号化された予測誤差は、逆量子化器２２と逆ＤＣＴ変換器２３により復号され、加算器２４において、予測画像作成回路２６から出力される予測画像と加算される。加算器２４から出力される復号画像は、切替器２２０１ａにより、Ｂピクチャのときはデータ圧縮回路１０４ａに入力され、ＩピクチャまたはＰピクチャのときは第一のフレームメモリ２５に入力される。データ圧縮回路１０４ａは、復号されたＢピクチャを圧縮し、第二のフレームメモリ１０２ａへ出力する。データ圧縮回路１０４ａの各部の動作は実施の形態１の符号化回路１０１と同様である。第二のフレームメモリ１０２ａは、圧縮データを表示順に並び換えて出力する。データ伸長回路１０５ａは、この出力を伸長して切替器２２０１ｂへ出力する。データ伸長回路１０５ａの動作は実施の形態１と全く同様である。
【０１３７】
第一の切替器２２０１ａから出力されたＩピクチャまたはＰピクチャは、無圧縮で第一のフレームメモリ２５に記憶される。第一のフレームメモリ２５は、画像を表示順に並び換えて第二の切替器２２０１ｂへ出力する。第二の切替器２２０１ｂは、画像が表示順に並ぶように、データ伸長回路１０５ａの出力と第一のフレームメモリ２５の出力を切り替えて出力する。
【０１３８】
一方予測画像作成回路２６は、可変長復号器２１から出力される予測モードと動きベクトルに従い、第一のフレームメモリ２５に記憶されている画像から予測画像を作成する。すなわち、予測モードによってフレームメモリ２５に記憶されている画像のうち参照画像とすべき画像を選択し、さらに動きベクトルにより参照画像内の領域を指定する。第一のフレームメモリ２５は、予測画像作成回路２６から指定された画像の指定された領域を予測画像作成回路２６へ出力する。予測画像作成回路２６は、第一のフレームメモリ２５から出力された画像から予測画像を作成する。たとえば、動きベクトルが半画素の位置を示している場合は、周辺の４画素から半画素の位置の画素値を計算する。また、予測モードがＢピクチャの平均画像である場合は、２つの参照画像から２つの予測画像を作成し、この２つの予測画像の平均画像を作成する。また、予測モードが画像内符号化を示している場合には、予測画像の画像値をすべて０に設定して出力する。
【０１３９】
上記実施の形態８においては、Ｂピクチャのみを圧縮し、参照画像として用いるＩピクチャとＰピクチャは無圧縮で記憶するよう構成したので、データ圧縮による歪みの蓄積を避けることができる。しかし、圧縮する復号画像はハードウェアのメモリの大きさに応じて、例えば、参照画像として使うＩピクチャとＰピクチャを圧縮し、Ｂピクチャを圧縮しないように構成することもできる。
【０１４０】
実施の形態９．
図２４は、この実施の形態９に係る動き補償予測復号装置を示すブロック図で、図２２と同一符号はそれぞれ同一または相当部分を示しており、１０４ｂは第一のフレームメモリ２５の第一の出力を入力とする第二のデータ圧縮回路である。この実施の形態９は、第一のフレームメモリ２５の出力を、第二のデータ圧縮回路１０４ｂで圧縮し、第二のフレームメモリ１０２ａの出力と第二のデータ圧縮回路１０４ｂの出力を切り替えてデータ伸長回路１０５ａに入力している点が実施の形態８と異なる。第二のデータ圧縮回路１０４ｂの構成は図２３に示した第一の圧縮回路１０４ａと全く同様である。
【０１４１】
この実施の形態９においては、復号画像のうちＢピクチャは圧縮して記憶し、参照画像として使うＩピクチャとＰピクチャは無圧縮で記憶するが、表示される画像の画質を揃えるため、ＩピクチャとＰピクチャも最終的に出力する前に、Ｂピクチャと同じ圧縮・伸長を行うものである。
【０１４２】
【発明の効果】
この発明は、以上説明したように構成されているので、以下に示すような効果を奏する。
【０１５２】
第１の発明による動き補償予測復号装置は、復号画像を複数画素毎にブロック化し、ブロック毎に符号化して、メモリに記憶するとともに、メモリ上のブロックの先頭アドレスを記憶するように構成したので、フレームメモリの容量を削減することができ、また、参照画像を任意の領域のみ復号することができる。
【０１５４】
第２の発明は、第１の発明の動き補償予測復号装置において、復号画像をフィールド内でブロック化して符号化するように構成したので、フィールド単位の動き補償が選択されている場合も参照画像を復号するのに必要なブロック数が増加せず、ハードウェアの構成が簡単になる。
【０１５５】
第３の発明は、第１の発明の動き補償予測復号装置において、復号画像を、動き補償の最小単位であるブロックサイズと同じサイズ、または整数分の１のサイズのブロックにブロック化して符号化するように構成したので、参照画像を復号するのに必要なブロック数を最小限に抑えることができ、ハードウェアの構成が簡単になる。
【０１５６】
第４の発明は、第１の発明の動き補償予測復号装置において、復号画像を複数画素毎にブロック化して各ブロックに直交変換を施し、この変換係数を量子化して可変長符号化するように構成したので、復号画素の圧縮率が高くなり、フレームメモリの容量を削減できる。
【０１５７】
第５の発明は、第４の発明の動き補償予測復号装置において、直交変換としてアダマール変換を用いたので、ハードウェアの規模を小さくできる。
【０１５８】
第６の発明は、第４の発明の動き補償予測復号装置において、各ブロックの量子化された変換係数を走査し、走査された変換係数が任意の位置からブロックの終わりまで連続して０であるとき、この連続した０をブロックの終わりを示すコードに置き換えて、可変長符号化するように構成したので、簡単なハードウェア構成で高い圧縮率を実現することができる。
【０１５９】
第７の発明は、第４の発明の動き補償予測復号装置において、２次元のブロックの変換係数を、各成分の低次シーケンシーから順に走査して可変長符号化するように構成したので、ブロックの終わりに０が連続する確率が高くなり、高い圧縮率を実現することができる。
【０１６０】
第８の発明は、第４の発明の動き補償予測復号装置において、各変換係数に対する量子化ステップ幅を２のべき乗としたので、ハードウェア規模を小さくできる。
【０１６１】
第９の発明は、第１の発明の動き補償予測復号装置において、Ｎブロック毎に符号量が既定値以下となるようにレート制御を行い、Ｎブロック中の各ブロックの相対アドレスを記憶するように構成したので、フレームメモリの容量を削減できるだけでなく、アドレス用メモリの容量も削減できる。
【０１６２】
第１０の発明は、第９の発明の動き補償予測復号装置において、上記ブロック毎の符号化を、直交変換と量子化と可変長符号化で行うとともに、上記レート制御を、量子化器の量子化テーブルの数よりも少ない数の量子化テーブルで符号量の試算を行って量子化器で用いる量子化テーブルを決定するように構成したので、レート制御のハードウェア規模を小さくすることができる。
【図面の簡単な説明】
【図１】  この発明の実施の形態１による動き補償予測復号装置を示すブロック図である。
【図２】  実施の形態１の符号化回路を示すブロック図である。
【図３】  実施の形態１の第一のデータ伸長回路を示すブロック図である。
【図４】  実施の形態１の第二のデータ伸長回路を示すブロック図である。
【図５】  実施の形態１の直交変換回路におけるアダマール変換の行列表現と基底ベクトルを示す図である。
【図６】  実施の形態１の量子化器が備える量子化テーブルの一例を示す図である。
【図７】  実施の形態１の可変長符号器の変換係数の走査順の一例を示す図である。
【図８】  実施の形態１の可変長符号器の動作を説明するための変換係数の一例を示す図である。
【図９】  実施の形態１における変換係数の０の分布を示す概念図である。
【図１０】  実施の形態１のアドレス演算回路の動作を説明するための、指定された画像の領域とブロックの関係を示す図である。
【図１１】  実施の形態１の直交変換回路における他の行列表現を示す図である。
【図１２】  この発明の実施の形態２における１マクロブロックの構成を示す図である。
【図１３】  この発明の実施の形態５によるデータ圧縮回路を示すブロック図である。
【図１４】  実施の形態５の量子化器が備える量子化テーブルの一例を示す図である。
【図１５】  実施の形態５における量子化テーブルの番号と符号量の関係を示す概念図である。
【図１６】  この発明の実施の形態６によるデータ圧縮回路を示すブロック図である。
【図１７】  実施の形態６の量子化器が備える量子化テーブルの一例を示す図である。
【図１８】  実施の形態６の可変長符号器が用いるハフマン符号の一例を示す図である。
【図１９】  実施の形態６における第２の量子化テーブルの予測発生符号量と実際の発生符号量の関係の実測データを示す図である。
【図２０】  実施の形態６における第４の量子化テーブルの予測発生符号量と実際の発生符号量の関係の実測データを示す図である。
【図２１】  実施の形態６における第６の量子化テーブルの予測発生符号量と実際の発生符号量の関係の実測データを示す図である。
【図２２】  この発明の実施の形態８による動き補償予測復号装置を示すブロック図である。
【図２３】  実施の形態８のデータ圧縮回路を示すブロック図である。
【図２４】  この発明の実施の形態９による動き補償予測復号装置を示すブロック図である。
【図２５】  従来の動き補償予測符号化装置を示すブロック図である。
【図２６】  従来の動き補償予測復号装置を示すブロック図である。
【図２７】  従来の動き補償予測符号化方式の概念図である。
【図２８】  従来のデータ圧縮回路を示すブロック図である。
【図２９】  従来のデータ伸長回路を示すブロック図である。
【図３０】  従来のデータ圧縮回路における可変長符号器の変換係数の走査順を示す図である。
【符号の説明】
１０１，１０１ａ，１０１ｂ  符号化装置、１０２，１０２ａ  フレームメモリ、１０３  アドレスメモリ、１０４，１０４ａ，１０４ｂ  データ圧縮回路、１０５ａ，１０５ｂ  データ伸長回路、２０１  直交変換回路、２０２  量子化器、２０３，２０３ａ，２０３ｂ  レート制御回路、２０４  可変長符号器、
２０５  アドレス作成回路、４０１  アドレス演算回路、１２０１  試算回路、１２０２  打ち切り回路、１５０１  試算回路、１５０２  カウンタ、１５０３判定器、２２０１ａ，２２０１ｂ  切替器。
【図１】
0003870439.tif 000002
【図２】
0003870439.tif 000003
【図３】
0003870439.tif 000004
【図４】
0003870439.tif 000005
【図５】
0003870439.tif 000006
【図６】
0003870439.tif 000007
【図７】
0003870439.tif 000008
【図８】
0003870439.tif 000009
【図９】
0003870439.tif 000010
【図１０】
0003870439.tif 000011
【図１１】
0003870439.tif 000012
【図１２】
0003870439.tif 000013
【図１３】
0003870439.tif 000014
【図１４】
0003870439.tif 000015
【図１５】
0003870439.tif 000016
【図１６】
0003870439.tif 000017
【図１７】
0003870439.tif 000018
【図１８】
0003870439.tif 000019
【図１９】
0003870439.tif 000020
【図２０】
0003870439.tif 000021
【図２１】
0003870439.tif 000022
【図２２】
0003870439.tif 000023
【図２３】
0003870439.tif 000024
【図２４】
0003870439.tif 000025
【図２５】
0003870439.tif 000026
【図２６】
0003870439.tif 000027
【図２７】
0003870439.tif 000028
【図２８】
0003870439.tif 000029
【図２９】
0003870439.tif 000030
【図３０】
0003870439.tif 000031