(57)【要約】【課題】画像処理にデータ圧縮率を高め、かつ、復号化時の画質の低下を防止する符号化装置を提供する。【解決手段】画像を所定の画素数で分割した画像ブロックを生成する画像分割手段と、画像ブロックに対する周波変換処理により、当該画像ブロックに含まれる画素毎の周波数変換係数を生成する周波数変換手段と、周波数変換係数を量子化した量子化係数を生成する量子化処理手段と、量子化係数に対しゼロビット符号化処理を行い、ゼロビット符号化データを生成するゼロビット符号化手段と、ゼロビット符号化データから固定長データを生成する固定長データ生成手段と、を有する符号化装置による。【選択図】図７
2020127178.tif 000002
【特許請求の範囲】
【請求項１】
画像を固定長データに符号化する符号化装置であって、
前記画像を所定の画素数で分割した画像ブロックを生成する画像分割手段と、
前記画像ブロックに対する周波変換処理により、当該画像ブロックに含まれる画素毎の周波数変換係数を生成する周波数変換手段と、
前記周波数変換係数を量子化した量子化係数を生成する量子化処理手段と、
前記量子化係数に対しゼロビット符号化処理を行い、ゼロビット符号化データを生成するゼロビット符号化手段と、
前記ゼロビット符号化データから前記固定長データを生成する固定長データ生成手段と、
を有することを特徴とする符号化装置。
【請求項２】
前記ゼロビット符号化手段は、前記画像ブロック中の画素の位置に基づいてゼロビット符号フォーマットを決定し、
当該ゼロビット符号フォーマットに基づいて当該画素に対応する前記量子化係数に対しゼロビット符号化処理を行う、
請求項１に記載の符号化装置。
【請求項３】
前記ゼロビット符号化手段は、前記画像ブロック中の画素の位置に基づいてゼロビット符号フォーマットを決定し、
当該ゼロビット符号フォーマットに基づいて、前記量子化係数のビット長よりも短いビット長からなるゼロビット符号化データを生成する、
請求項１に記載の符号化装置。
【請求項４】
前記ゼロビット符号フォーマットは、最上位ビット以下のビット列におけるゼロビットの含まれ方により、異なるビット操作を決定する、
請求項２又は３に記載の符号化装置。
【請求項５】
前記ゼロビット符号フォーマットは、最上位ビット以下のビット列における上位３ビット中におけるゼロビットの含まれ方によって、最上位ビットに続く上位２ビットへのゼロビットヘッダと、前記量子化係数を二進数に変換したビット列を前記ゼロビットヘッダに続く残りの下位ビットへ格納する規則を決定する、
請求項４に記載の符号化装置。
【請求項６】
前記ゼロビット符号フォーマットは、前記量子化係数が所定の値よりも大きいとき、前記下位ビットに格納する当該量子化係数の下位ビットを省くビットシフト操作を規定する、
請求項５に記載の符号化装置。
【請求項７】
前記画像分割手段は、前記画像を四画素単位で分割した十六画素からなる画像ブロックを生成する、
請求項１乃至６のいずれか一項に記載の符号化装置。
【請求項８】
固定長データを画像に復号化する復号化装置であって、
前記固定長データを解析し、当該固定長データのゼロビット符号化フォーマットを特定する符号解析手段と、
特定された前記ゼロビット符号化フォーマットに対応するゼロビット復号化フォーマットを用いて、前記固定長データに係るゼロビット符号化データから量子化係数を生成するゼロビット復号化手段と、
前記量子化係数に対して逆量子化処理を行い、周波数変換係数を生成する逆量子化手段と、
前記周波数変換係数に対し逆周波数変換処理を行い、所定の画素数からなる画像ブロックを生成する逆周波数変換処理手段と、
前記逆周波数変換処理手段において生成された前記画像ブロックを統合して画像を生成する画像ブロック統合手段と、
を有することを特徴とする復号化装置。
【請求項９】
画像を固定長データに符号化する符号化方法であって、
前記画像を所定の画素数で分割した画像ブロックを生成し、
前記画像ブロックに対する周波変換処理により、当該画像ブロックに含まれる画素毎の周波数変換係数を生成し、
前記周波数変換係数を量子化した量子化係数を生成し、
前記量子化係数に対しゼロビット符号化処理を行い、ゼロビット符号化データを生成し、
前記ゼロビット符号化データから前記固定長データを生成する、
ことを特徴とする符号化方法。
【請求項１０】
固定長データを画像に復号化する復号化方法であって、
前記固定長データを解析し、当該固定長データのゼロビット符号化フォーマットを特定し、
特定された前記ゼロビット符号化フォーマットに対応するゼロビット復号化フォーマットを用いて、前記固定長データに係るゼロビット符号化データから量子化係数を生成し、
前記量子化係数に対して逆量子化処理を行い、周波数変換係数を生成し、
前記周波数変換係数に対し逆周波数変換処理を行い、所定の画素数からなる画像ブロックを生成し、
生成された前記画像ブロックを統合して画像を生成する、
ことを特徴とする復号化方法。
【請求項１１】
コンピュータにおいて、画像を固定長データに符号化する処理を実行させる符号化プログラムであって、
前記画像を所定の画素数で分割した画像ブロックを生成する画像分割ステップと、
前記画像ブロックに対する周波変換処理により、当該画像ブロックに含まれる画素毎の周波数変換係数を生成する周波数変換ステップと、
前記周波数変換係数を量子化した量子化係数を生成する量子化処理ステップと、
前記量子化係数に対しゼロビット符号化処理を行い、ゼロビット符号化データを生成するゼロビット符号化ステップと、
前記ゼロビット符号化データから前記固定長データを生成する固定長データ生成ステップと、
を含むことを特徴とする符号化プログラム。
【請求項１２】
コンピュータにおいて、固定長データを画像に復号化する処理を実行させる復号化プログラムであって、
前記固定長データを解析し、当該固定長データのゼロビット符号化フォーマットを特定する符号解析ステップと、
特定された前記ゼロビット符号化フォーマットに対応するゼロビット復号化フォーマットを用いて、前記固定長データに係るゼロビット符号化データから量子化係数を生成するゼロビット復号化ステップと、
前記量子化係数に対して逆量子化処理を行い、周波数変換係数を生成する逆量子化ステップと、
前記周波数変換係数に対し逆周波数変換処理を行い、所定の画素数からなる画像ブロックを生成する逆周波数変換処理ステップと、
前記逆周波数変換処理ステップにおいて生成された前記画像ブロックを統合して画像を生成する画像ブロック統合ステップと、
を含むことを特徴とする復号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置、復号化装置、符号化方法、復号化方法、符号化プログラム及び復号化プログラムに関する。
【背景技術】
【０００２】
近年、デジタル画像の解像度が向上し、画像処理の処理対象となるデータのサイズが大きく、また、処理の内容も複雑なものになってきてことで、当該画像処理の実行時に大量のメモリアクセス処理が生ずるようになってきている。それ故、画像処理の効率を向上させるには、メモリアクセス処理の効率化が重要となってきている。
【０００３】
メモリアクセス処理の効率化を図るには、一度のメモリアクセス処理に係るデータ量を小さくすればよい。データサイズを小さくする技術として、特に画像処理の分野では、離散コサイン変換（ＤＣＴ：Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）を利用して画像データを固定長ビット列に符号化するデータ符号化処理が知られている。ＤＣＴは、離散信号である画像データを、水平及び垂直の二次元のコサイン周波数で構成された空間周波数分布を用いて、どの空間周波数がどの程度含まれているかを示すＤＣＴ係数に変換することで、データ量を圧縮する技術である。
【０００４】
例えばデジタルカメラにおける画像処理を想定する場合、光学系を介して取得された被写体像に基づくＲＧＢ画像データをＹＵＶ画像データに変換し、データサイズを圧縮して記録する一連の処理の途中で画像処理を行うことになる。画像処理には様々な種類が知られているが、例えば、幾何変換を利用して画像の歪みを補正する歪曲補正処理の場合は、処理の最中に生ずるメモリアクセス処理は多く、当該画像処理に係るメモリアクセス量は大量になる。このような大量のメモリアクセスの都度、処理対象の画像データを固定長ビット列として扱うことができれば、メモリアクセス処理におけるデータ量を削減することができるので、当該処理の効率化を図ることができる。
【０００５】
画像データを固定長ビット列にする周波数変換処理において、出力されるＤＣＴ係数から画像中のエッジの縦、横、斜めを認識し、ＤＣＴ係数のリミッタを切り替えたリミッタ処理を実行して固定長ビット列に符号化する技術が開示されている（例えば、特許文献１）。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＲＧＢ画像データから変換されたＹＵＶ画像データから生成された固定長ビット列には、輝度成分（Ｙ成分）と二つの色差成分（Ｕ成分、Ｖ成分）のそれぞれ対応するビット列が含まれる。復元後の画像の質を考慮すると、元の画像に含まれているエッジが弱い部分（ＹＵＶ成分のスカラー量が低量又は中量の部分）に係る輝度（Ｙ）のＤＣＴ成分のビット長をある程度長さ以上にしておかなければ、復号化後の画像のエッジ部分がなまった状態になってしまう。したがって、復号化の画像データに係る画質の低下を防ぐには、低中スカラー量に係る部分の輝度に係るＤＣＴ係数のビット長をある程度確保せざるを得ないが、この場合、Ｕ成分とＶ成分に係るＤＣＴ係数のビット長を短くしなければならない。しかしながら、Ｕ成分とＶ成分に係るＤＣＴ係数のビット長を短くする（データ量を少なくする）と、復号化後の画像において色の再現性が低下する、という課題が生ずる。
【０００７】
なお、特許文献１に開示されている技術では、ＤＣＴ係数から、エッジを縦、横、斜めの大きく三種類に分けて認識している。この技術では、各エッジの特徴を十分に把握することは困難である。また、特許文献１に開示されている技術は、ＤＣＴ係数を制限する制限値（リミッタ）が、ＤＣＴ係数のスカラー量に関わらず一律に設定されているので、ＤＣＴ係数に対するリミッタ処理が一律に行われる。従来技術では、復号化後の画像に含まれるエッジの再現性に課題がある。
【０００８】
すなわち、特許文献１に代表される従来技術を用いても、画像処理を行うときのメモリアクセス量を低下させるために高い圧縮率を実現しつつ、画質低下を防止するには課題がある。
【０００９】
本発明は、画像処理にデータ圧縮率を高め、かつ、復号化時の画質低下を防止する符号化装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、本発明の一態様は、画像を固定長データに符号化する符号化装置であって、前記画像を所定の画素数で分割した画像ブロックを生成する画像分割手段と、前記画像ブロックに対する周波変換処理により、当該画像ブロックに含まれる画素毎の周波数変換係数を生成する周波数変換手段と、前記周波数変換係数を量子化した量子化係数を生成する量子化処理手段と、前記量子化係数に対しゼロビット符号化処理を行い、ゼロビット符号化データを生成するゼロビット符号化手段と、前記ゼロビット符号化データから前記固定長データを生成する固定長データ生成手段と、を有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、画像処理にデータ圧縮率を高め、かつ、復号化時の画質低下を防止する。
【図面の簡単な説明】
【００１２】
【図１】本発明に係る符号化装置及び復号化装置を適用可能な画像形成システムの実施形態を示す構成図。
【図２】上記画像形成システムの機能ブロック図。
【図３】本発明に係る符号化装置の実施形態が備える画像処理ブロックの機能構成図。
【図４】本発明に係る符号化装置の実施形態が備える可変長動画圧縮ブロックの機能構成図。
【図５】本発明に係る符号化装置及び復号化装置で用いられるＤＣＴ処理のアルゴリズムとなる算出式の例を示す図。
【図６】本発明に係る符号化方法及び復号化方法の本実施形態で処理対象とする画像データの例（ａ）と画素ブロックの例（ｂ）を示す図。
【図７】本発明の実施形態である符号化装置の機能ブロックを示す図。
【図８】本実施形態に係るＤＣＴ係数の例を示す図。
【図９】本実施形態に係る量子化テーブルの例を示す図。
【図１０】本実施形態に係る符号化方法により得られる量子化後ＤＣＴ係数の例を示す図。
【図１１】本実施形態に係るゼロビット符号化テーブルの例を示す図。
【図１２】本実施形態に係るゼロビット符号化変換テーブルの第一例を示す図。
【図１３】本実施形態に係るゼロビット符号化変換テーブルの第二例を示す図。
【図１４】本実施形態に係るゼロビット符号化変換テーブルの第三例を示す図。
【図１５】本実施形態に係るゼロビット符号化処理後のＤＣＴ係数の例を示す図。
【図１６】本実施形態に係る符号化装置において生成される固定長ビット列のフォーマットの例を示す図。
【図１７】本発明の実施形態である復号化装置の機能ブロックを示す図。
【図１８】本実施形態に係るゼロビット復号化テーブルの例を示す図。
【図１９】本実施形態に係るゼロビット復号化変換テーブルの第一例を示す図。
【図２０】本実施形態に係るゼロビット復号化変換テーブルの第二例を示す図。
【図２１】本実施形態に係るゼロビット復号化変換テーブルの第三例を示す図。
【図２２】本実施形態に係る逆量子化テーブルの例を示す図。
【図２３】本実施形態に係るＤＣＴ係数の例を示す図。
【図２４】本発明に係る符号化方法及び復号化方法を含む画像処理方法の実施形態を示すフローチャート。
【図２５】本発明に係る符号化方法及び復号化方法を含む画像処理方法の詳細な実施形態を示すフローチャート。
【図２６】本実施形態に係る符号化方法の実施形態を示すフローチャート。
【図２７】本実施形態に係る符号化方法において用いられるゼロビット符号化の実施形態を示すフローチャート。
【図２８】本実施形態に係る符号化方法において用いられるゼロビット符号化の実施形態の詳細な例を示すフローチャート。
【図２９】本実施形態に係る符号化方法において用いられるゼロビット符号化の実施形態の詳細な別例を示すフローチャート。
【図３０】本実施形態に係る符号化方法において用いられるゼロビット符号化の実施形態の詳細な別例を示すフローチャート。
【図３１】本実施形態に係る復号化方法の実施形態を示すフローチャート。
【図３２】本実施形態に係る復号化方法において用いられるゼロビット符号化の実施形態を示すフローチャート。
【図３３】本実施形態に係る復号化方法において用いられるゼロビット復号化の実施形態の詳細な例を示すフローチャート。
【図３４】本実施形態に係る復号化方法において用いられるゼロビット復号化の実施形態の詳細な別例を示すフローチャート。
【図３５】本実施形態に係る復号化方法において用いられるゼロビット復号化の実施形態の詳細な別例を示すフローチャート。
【発明を実施するための形態】
【００１３】
［本発明の要旨］
本発明に係る符号化装置は、離散コサイン変換（ＤＣＴ：Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）を利用した周波数変換処理を適用して、画像データを固定長ビット列に変換する符号化処理を行う装置である。また、本発明に係る復号化装置は前記符号化装置に対応し、固定長ビット列から画像データを復号化する装置である。以下、離散コサイン変換処理を「ＤＣＴ処理」と表記する。また、ＤＣＴ処理により得られる係数を「ＤＣＴ係数」と表記する。
【００１４】
本発明に係る装置では、画像データから生成したＤＣＴ係数を１４４ｂｉｔの固定長ビット列に変換する（符号化）することで、画像処理を行うときのメモリアクセス処理に係るデータ量を減らし、メモリアクセスコストを低下させる。また、画像処理を行うＡＳＩＣ（Ａｐｐｌｉｃａｔｉｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）に本発明を適用することで、ＡＳＩＣの消費電流を低下させることもでき、ＡＳＩＣの冷却機構の簡素化や、画像処理装置の製造コストを下げることもできる。
【００１５】
本発明に係る符号化装置及び復号化装置において実行される符号化方法及び復号化方法は、画像を所定の画素数からなる画像ブロックに分割し、当該画像ブロックに係るＤＣＴ係数を固定長ビット列に符号化する処理の一部に含まれる処理において特徴を有する。より詳細には、ＤＣＴ係数を量子化してビット数を低減させる処理において、ビット数の低減度合いを従来に比べて小さくすることで復元性を高め、ＤＣＴ係数のビット列に対して「ゼロビット符号化」処理を実行することで、従来と同様のデータ圧縮率を得る。すなわち、データアクセス処理の効率化を図りつつ、従来に比べて、復元された画像の画質を向上させることができる。以下、これらの特徴を実現する本発明の実施形態について説明する。
【００１６】
［本発明に係る符号化装置／復号化装置を備える装置の実施形態］
本発明に係る符号化装置及び復号化装置は、例えば、画像を撮影して記録する画像処理システムに適用可能なものである。以下、本発明に係る符号化装置及び復号化装置の実施形態を説明するための画像処理システムの構成例を図１に示す。以下の説明において、本実施形態に係る画像処理システムは、被写体像を撮像して記録する機能を備えるデジタルカメラ１００とする。
【００１７】
本実施形態に係るデジタルカメラ１００は、光学系１０２、撮像素子１０３、Ａ／Ｄコンバータ１０４、画像処理を行うプロセッサ１０１、メモリコントローラ１０５、固定長用メモリ１０６、動画像メモリ１０７、を備える。
【００１８】
光学系１０２は、被写体像を撮像素子１０３の撮影面に結像させる光学レンズなどを備える。光学系１０２が備える光学レンズは、例えば広角レンズである。この光学レンズを二枚備えることで、３６０度の範囲の被写体の反射光を集光するように構成することもできる。すなわち、光学系１０２を介して全方向の被写体像を一つの画像データに収めるように構成することもできる。
【００１９】
撮像素子１０３は、光学系１０２により集光された被写体光を電気信号に変換して、当該画像信号を所定の時間間隔で適宜出力する光電変換素子である。撮像素子１０３は、例えば、ＣＣＤセンサやＣＭＯＳセンサなどの固体撮影素子を用いることができる。
【００２０】
Ａ／Ｄコンバータ１０４は、撮像素子１０３から出力されてくる画像信号をデジタルデジタル変換して画像データとしてプロセッサ１０１に適宜出力する。この画像データが後段のプロセッサ１０１による画像処理の対象となる。
【００２１】
いわゆるコンピュータと同様の演算処理部や記憶領域を備えるプロセッサ１０１は、例えば、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）であって、歪曲補正処理などの幾何変換処理を含む画像処理を実行する。また、プロセッサ１０１は、画像処理を行うにあたり、画像データを固定長ビット列に変換する符号化処理、固定長ビット列から画像データを復元する復号化処理を実行する。
【００２２】
メモリコントローラ１０５は、プロセッサ１０１が画像処理を行うときに生成した固定長ビット列を、固定長用メモリ１０６に格納するときのデータ格納動作を制御する。また、メモリコントローラ１０５は、プロセッサ１０１が画像処理を行うときに固定長用メモリ１０６に格納されている固定長ビット列の読出しの動作を制御する。
【００２３】
固定長用メモリ１０６は、プロセッサ１０１において実行される画像処理に用いられる固定長ビット列を、メモリコントローラ１０５の制御によって格納／読み出しを行う不揮発性メモリである。固定長用メモリ１０６には、例えば、ＤＤＲ−ＳＤＲＡＭ（Ｄｏｕｂｌｅ−ＤａｔａーＲａｔｅ  Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を用いることができる。固定長用メモリ１０６は、所定の画像処理を実行するときに処理対象のデータを一時的に格納するワークメモリとして機能する。
【００２４】
動画像メモリ１０７は、プロセッサ１０１によって画像処理が行われて生成される動画像を記憶する不揮発性メモリである。動画像メモリ１０７には、例えば、フラッシュメモリを用いることができる。
【００２５】
［プロセッサ１０１の機能ブロック］
次に、プロセッサ１０１の機能ブロックについて詳細に説明する。図２に示すように、プロセッサ１０１によって構成される画像処理ブロックは、画像処理部１１と、固定長符号化部１２と、歪曲補正部１３と、固定長復号化部１４と、可変長動画圧縮部１５と、を有する。プロセッサ１０１に係る各機能ブロックは、本発明に係る符号化プログラムおよび復号化プログラムを含む画像処理プログラムと、プロセッサ１０１が有するハードウェア資源との協働により実現される。
【００２６】
画像処理部１１は、光学系１０２、撮像素子１０３及びＡ／Ｄコンバータ１０４によって構成されるデータ入力部２０から出力されてくる画像データをＲＧＢ画像データに変換する画像処理を実行する。画像処理部１１は、ＲＧＢ画像データを生成して固定長符号化部１２に出力する。なお、画像処理部１１の詳細については、後述する。
【００２７】
固定長符号化部１２は、画像処理部１１において生成されたＲＧＢ画像データに対する固定長符号化処理を実行する。したがって、固定長符号化部１２によってＲＧＢ画像データから固定長ビット列が生成される。また、固定長符号化部１２は、歪曲補正部１３により生成された補正画像データ（補正後のＲＧＢ画像データ）に対して固定長符号化処理を実行する。固定長符号化部１２は、補正後のＲＧＢ画像データから変換された固定長ビット列を一時記憶部３０に転送する。このとき、歪曲補正部１３から指定されたアドレスに補正後の固定長ビット列を書き込むように指示する。固定長符号化部１２の詳細については後述する。固定長符号化部１２は、本発明に係る符号化装置の実施形態に相当する。
【００２８】
なお、一時記憶部３０は、プロセッサ１０１の制御により動作するメモリコントローラ１０５及び固定長用メモリ１０６によって構成される。
【００２９】
歪曲補正部１３は、一時記憶部３０に格納された補正前の固定長ビット列から固定長復号化部１４により復号化された画像データを読み込んで、歪曲補正処理を実行する。歪曲補正部１３は、歪曲補正処理によって生成された補正画像データを、固定長符号化部１２に転送する。
【００３０】
固定長復号化部１４は、歪曲補正部１３から指定された固定長ビット列を一時記憶部３０から読み出して復号化して、歪曲補正部１３に転送する。また、固定長復号化部１４は、補正後の固定長ビット列を順次読み込んで復号化し、可変長動画圧縮部１５に転送する。固定長復号化部１４の詳細については後述する。固定長復号化部１４は、本発明に係る復号化装置の実施形態に相当する。
【００３１】
可変長動画圧縮部１５は、固定長復号化部１４から転送されてきた補正後のＲＧＢ画像データに対し動画圧縮処理を実行する。可変長動画圧縮部１５において実行される処理によって、例えば、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式の動画像圧縮処理が行われる。可変長動画圧縮部１５は、動画圧縮処理により生成された動画像データを、動画像メモリ１０７によって構成される画像データ格納部４０に転送する。可変長動画圧縮部１５の詳細については、後述する。
【００３２】
［画像処理部１１の詳細な機能ブロック］
ここで、本実施形態に係る画像処理部１１の詳細な機能ブロックについて図３を用いて説明する。図３に示すように、画像処理部１１は、Ｂｙａｅｒ補正処理部１１１と、フィルタ処理部１１２と、を有する。
【００３３】
Ｂｙａｅｒ補正処理部１１１は、データ入力部２０から画像データを受け取り、ベイヤー型の画像を読み込み補正して通常のＲＧＢ値を生成する。
【００３４】
フィルタ処理部１１２は、Ｂｙａｅｒ補正処理部１１１において生成されたＲＧＢ画像データにフィルタ処理を実行する。フィルタ処理後のＲＧＢ画像データは、固定長符号化部１２に転送される。
【００３５】
［可変長動画圧縮部１５の詳細な機能ブロック］
次に、本実施形態に係る可変長動画圧縮部１５の詳細な機能ブロックについて、図４を用いて説明する。図４に示すように、可変長動画圧縮部１５は、動き検索部１５１と、ＤＣＴ部１５２と、量子化処理部１５３と、可変長符号化部１５４と、逆量子化処理部１５５と、逆ＤＣＴ部１５６と、動き補償部１５７と、を有する。
【００３６】
動き検索部１５１は、固定長復号化部１４から受け取った画像データと、動き補償部１５７からの相関が最も高い前フレームのブロックとの差分データを算出する。
【００３７】
ＤＣＴ部１５２は、動き検索部１５１で算出された差分データを空間周波数に変換するＤＣＴ処理を実行し、量子化処理部１５３に転送する。
【００３８】
量子化処理部１５３は、周波数変換済みのＤＣＴ係数を量子化し、可変長符号化部１５４に転送する。
【００３９】
可変長符号化部１５４は、量子化処理部１５３で生成された量子化データを可変長符号化して圧縮符号を生成する。可変長符号化部１５４は、生成した圧縮符号を画像データ格納部４０に格納する。
【００４０】
逆量子化処理部１５５は、量子化処理部１５３で生成された、「量子化されたブロック」に対し、逆量子化処理を実行する。逆量子化処理部１５５は、処理結果を、逆ＤＣＴ部１５６に転送する。
【００４１】
逆ＤＣＴ部１５６は、逆量子化処理部１５５から渡された逆量子化データに対して、逆周波数変換処理（逆ＤＣＴ処理）を実行する。逆ＤＣＴ部１５６は、逆周波数変換処理による処理結果を動き補償部１５７に転送する。
【００４２】
動き補償部１５７は、動き補償した前フレームのマクロブロックに、逆ＤＣＴ部１５６から渡された差分データを加算して参照フレームを作成する。動き補償部１５７は、参照フレームを動き検索部１５１に転送する。
【００４３】
［ＤＣＴ処理／逆ＤＣＴ処理］
本実施形態において用いられる、画像データをＤＣＴ係数に変換する周波数変換処理（ＤＣＴ処理）と、ＤＣＴ係数から画像データに変換する逆周波数変換処理（逆ＤＣＴ処理）について説明する。図５は、本実施形態に係るＤＣＴ処理および逆ＤＣＴ処理のアルゴリズムを例示する算術式である。本実施形態に係るＤＣＴ処理は、画像データを所定の画素数で分割した画像ブロックにおいて画素毎にＤＣＴ係数を生成する処理である。また、本実施形態に係る逆ＤＣＴ処理は、ＤＣＴ係数から画素ごとの画像データを復元する処理である。
【００４４】
［元画像データと固定長符の例］
次に、本実施形態に係る画像処理の処理対象となる画像データと当該画像データに係る固定長ビット列の関係について、図６の模式図を用いて説明する。図６（ａ）は、画像処理対象となる元画像データ２０１を模式的に示している。元画像データ２０１データは、複数の画素により構成されている。図６（ｂ）は、元画像データ２０１を所定の画素数（例えば、四画素×四画素）に分割した画像ブロックを模式的に示している。
【００４５】
デジタルカメラ１００で撮影された被写体に係る元画像データ２０１を、四画素×四画素の画像ブロック２０２に分割して、図６（ｂ）に例示するような画像ブロック２０２を固定長ビット列の処理単位とする。したがって、本実施形態に係る固定長ビット列は、元画像データ２０１の四画素×四画素で構成される画像ブロック２０２ごとに生成される値に基づくものとなる。
【００４６】
［符号化装置の実施形態］
次に、本発明に係る符号化装置の実施形態に相当する固定長符号化部１２の機能ブロックについてより詳細に説明する。図７に示すように、本実施形態に係る固定長符号化部１２は、ブロック化部１２１と、ＹＵＶ変換部１２２と、ＤＣＴ変換部１２３と、量子化部１２４と、量子化テーブル１２５と、ゼロビット符号化処理部１２６と、ゼロビット符号化テーブル１２７と、符号化フォーマット生成部１２８と、を有する。
【００４７】
ブロック化部１２１は、画像処理部１１から受け取るＲＧＢ画像データを、四画素×四画素からなる画像ブロック２０２に分割する。画像ブロック２０２のイメージは、図６を用いて説明したとおりである。ブロック化部１２１は、画像分割手段に相当し、画像分割部を構成する。
【００４８】
ＹＵＶ変換部１２２は、ブロック化部１２１から渡される画像ブロック２０２に対するＹＵＶ変換処理を実行する。したがって、ＹＵＶ変換部１２２において四画素×四画素からなるＹＵＶ画像ブロック３００（図８を参照）が生成される。このＹＵＶ画像ブロック３００が、ＹＵＶ変換部１２２からＤＣＴ変換部１２３に渡される。
【００４９】
ＤＣＴ変換部１２３は、ＹＵＶ画像ブロック３００に対し、ＤＣＴ処理を実行して、当該ＹＵＶ画像ブロック３００を構成する各画素のＤＣＴ係数を生成する。ＤＣＴ変換部１２３は、生成したＤＣＴ係数を量子化部１２４に渡す。ＤＣＴ変換部１２３は、周波数変換手段に相当し、周波数変換部を構成する。ＤＣＴ変換部１２３の詳細は後述する。
【００５０】
量子化部１２４は、量子化テーブル１２５を参照して、ＤＣＴ変換部１２３から受け取ったＤＣＴ係数ブロック３１０の各画素ブロックに対応する量子化シフト値を取得する。量子化テーブル１２５は、量子化部１２４における量子化処理に用いられる量子化シフト値を格納したテーブルデータが格納されている。量子化部１２４と量子化テーブル１２５の詳細は後述する。
【００５１】
ゼロビット符号化処理部１２６は、量子化部１２４から渡された量子化後のＤＣＴ係数ブロックの各ブロックに係るＤＣＴ係数のビット列に対して、ゼロビット符号化テーブル１２７を参照し、ゼロビット符号化処理の処理パターンを決定する。また、ゼロビット符号化処理部１２６は、決定された処理パターンに規定されるゼロビット符号フォーマットに基づいて、ゼロビット符号化処理を実行し、その結果を、符号化フォーマット生成部１２８に渡す。ゼロビット符号化処理部１２６における処理内容の詳細は後述する。
【００５２】
ゼロビット符号化テーブル１２７は、ゼロビット符号化処理部１２６が用いるゼロビット符号化ビット数変換テーブル７００を格納する。また、ゼロビット符号化テーブル１２７は、複数のゼロビット符号化フォーマットを格納する。ゼロビット符号化フォーマットなどの詳細は後述する。
【００５３】
符号化フォーマット生成部１２８は、ゼロビット符号化処理部１２６から渡された、ゼロビット符号化フォーマットに基づいて、図１５に例示するような形式に変換するフォーマット変換処理を行う。符号化フォーマット生成部１２８は、フォーマット変換処理によって生成された固定長ビット列を、一時記憶部３０を構成する固定長用メモリ１０６に記憶させる。符号化フォーマット生成部１２８は、符号化手段に相当する。固定長ビット列フォーマットの詳細については後述する。
【００５４】
［ＤＣＴ変換部１２３の詳細］
ここで、ＤＣＴ変換部１２３において生成されるＤＣＴ係数の例を模式的に示す。図８に示す例は、ＹＵＶ画像ブロック３００を構成する各画素に含まれる空間周波数の違いによって、生成されるＤＣＴ係数を模式的に示している。
【００５５】
例えば、図８（ａ）に例示するように、各ブロックに係るＤＣＴ係数は［２５５］、［１０］、［−１２５］などの値として算出される。
【００５６】
また、図８（ｂ）は、ＹＵＶ画像ブロック３００に対してＤＣＴ変換部１２３がＤＣＴ処理を実行した結果、各画素ブロックに対応して算出されたＤＣＴ係数のビット長を示したＤＣＴ係数ブロック３１０である。図８（ｂ）に示すように、本実施形態では、全ての画素ブロックにおいて、算出されたＤＣＴ係数のビット長は１０ビットとする。
【００５７】
すなわち、ＤＣＴ係数ブロック３１０の各画素ブロックにおいてＤＣＴ係数の値の大きさはそれぞれ異なるが、ビット長は１０ビットであるとする。このＤＣＴ係数ブロック３１０がＤＣＴ変換部１２３において生成されて量子化部１２４に渡される。
【００５８】
［量子化部１２４と量子化テーブル１２５の詳細］
図９（ａ）は、量子化テーブル１２５に格納されている量子化シフト値テーブル５０１を例示している。なお、図９（ｂ）は、従来例として比較するための量子化シフト値テーブル５０２を例示している。
【００５９】
図９において、ＤＣＴ係数ブロック３１０の各ブロックに対応するビットシフト値を例示しているが、符号５０１ａで示しているブロックにおける”０”は、「ビットシフト量がゼロである」という意味ではなく、当該ブロックについては固定長ビット列を生成する処理の対象としないことを意味する。これらブロックは、ＹＵＶ画像ブロック３００における対応する画素において空間周波数が高周波を多く含むことで、ＤＣＴ係数が小さくなった部分に相当する。このような画素を含まずに固定長ビット列を生成しても、復元した画像における画質への影響が小さい故、処理対象から外している。
【００６０】
量子化部１２４において、図９（ａ）に例示した量子化シフト値テーブル５０１を用いた量子化処理を実行した後のＤＣＴ係数である量子化後ＤＣＴ係数ブロック５１１を図１０（ａ）に例示する。量子化後ＤＣＴ係数ブロック５１１の各ブロックのＤＣＴ係数のビット長は、量子化シフト値テーブル５０１のシフト値に基づいてそれぞれ変化している。なお、比較のために、図９（ｂ）に例示した従来の量子化シフト値テーブル５０２を用いた量子化処理に係る量子化後ＤＣＴ係数ブロック５１２を図１０（ｂ）に例示する。
【００６１】
図１０（ａ）と図１０（ｂ）を比較すると、本実施形態に係る量子化部１２４における量子化処理は従来に比べてシフト値が小さいため、量子化後ＤＣＴ係数ブロック５１１の各ブロックのビット長が長くなる。これは、量子化処理の段階では、本実施形態の方が従来に比べてデータ圧縮率が低いことを意味する。しかしながら、本実施形態では、量子化後ＤＣＴ係数ブロック５１１に示したビット長に基づくＤＣＴ係数を用いて画像データを復元するので、復元後の画質は従来比較例に比べて向上する。量子化後ＤＣＴ係数ブロック５１１は量子化部１２４からゼロビット符号化処理部１２６に渡される。
【００６２】
［ゼロビット符号化ビット数変換テーブル７００の詳細］
図１１に、ゼロビット符号化ビット数変換テーブル７００を例示する。ゼロビット符号化ビット数変換テーブル７００は、量子化後ＤＣＴ係数ブロック５１１の各ブロックに対応するゼロビット符号化処理の処理パターンを規定する。例えば、「１０−＞９」に対応する量子化後ＤＣＴ係数ブロック５１１に対しては、第一符号化処理パターン７０１を実行する。第一符号化処理パターン７０１は、１０ビット長を９ビット長にするゼロビット符号化処理である。
【００６３】
同様に、「７−＞６」に対応する量子化後ＤＣＴ係数ブロック５１１に対しては、第二符号化処理パターン７０２を実行する。第二符号化処理パターン７０２は、７ビット長を６ビット長にするゼロビット符号化処理である。「６−＞５」に対応する量子化後ＤＣＴ係数ブロック５１１に対しては、第三符号化処理パターン７０３を実行する。第三符号化処理パターン７０３は、６ビット長を５ビット長にするゼロビット符号化処理である。
【００６４】
続いて、ゼロビット符号化処理部１２６において実行されるゼロビット符号化処理の詳細について、説明する。ゼロビット符号化処理部１２６は、ゼロビット符号化テーブル１２７を参照して、処理対象にブロックに対するゼロビット符号化フォーマットを決定し、決定したゼロビット符号化フォーマットに含まれる複数のビット演算処理を決定する。
【００６５】
［第一符号化処理パターン７０１］
図１２は、第一符号化処理パターン７０１について説明する図である。図１２（ａ）は、第一符号化処理パターン７０１によってゼロビット符号化処理が実行される前の量子化後ＤＣＴ係数のビット列を例示している。図１２（ｂ）は、第一符号化処理パターン７０１によってゼロビット符号化処理が実行された後のビット例を例示している。
【００６６】
図１２（ａ）に例示するように、画素ブロックの位置に対応して選択されたゼロビット符号化処理の種類において、複数の処理パターンから特定の処理パターンが決定される。ゼロビット符号化処理前のビット列（第一符号処理前ビット列７０１１）において、最上位ビット（ＭＳＢ：Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ）である第９ビットはサインビット（Ｓビット）である。第一符号処理前ビット列７０１１を、ＭＳＢに続く上位ビットから順番に探索し「０」が三つ連続する場合は、当該ビット列に対する処理パターンは、第一パターンとする。
【００６７】
同じく、第一符号処理前ビット列７０１１を、ＭＳＢに続く上位ビットから順番に探索し「０」が三つ連続しない場合であっても、「０」が二つ連続した後に「１」である場合は、当該ビット列に対する処理パターンは、第二パターンとする。また、第一符号処理前ビット列７０１１を、ＭＳＢに続く上位ビットから順番に探索し「０」が三つ連続しない場合であっても、一つの「０」の後に「１」に当たる場合は、当該ビット列に対する処理パターンは、第三パターンとする。そして、第一符号処理前ビット列７０１１を、ＭＳＢに続く上位ビットから順番に探索し「０」がなく「１」に当たる場合は、当該ビット列に対する処理パターンは、第四パターンとする。
【００６８】
上記のように決定された処理パターンに基づく、ゼロビット符号化処理の結果について、図１２（ｂ）の第一符号処理後ビット列７０１２を用いて説明する。上記の第一パターンの場合、第８ビットから第６ビットの「０００」を「００」にし、これを第一符号処理後ビット列７０１２における第７ビットと第６ビットとする。また、第一符号処理前ビット列７０１１の第５ビットからＭＳＢまでの６ビットを、第一符号処理後ビット列７０１２の第５ビットからＭＳＢに当てはめる。
【００６９】
また、上記の第二パターンの場合、第８ビットから第６ビットの「００１」を「０１」にし、これを第一符号処理後ビット列７０１２における第７ビットと第６ビットとする。また、第一符号処理前ビット列７０１１の第５ビットからＭＳＢまでの６ビットを、第一符号処理後ビット列７０１２の第５ビットからＭＳＢに当てはめる。
【００７０】
また、上記の第三パターンの場合、第８ビットから第７ビットが「０１」であるから、第一符号処理後ビット列７０１２における第７ビットと第６ビットを「１０」とする。また、第一符号処理前ビット列７０１１の第６ビットから第１ビットまでの６ビットを、第一符号処理後ビット列７０１２の第５ビットからＭＳＢに当てはめる。すなわち、第一符号処理前ビット列７０１１の下位６ビットを右方向に１ビットシフトさせて、これを第一符号処理後ビット列７０１２の第５ビットからＭＳＢに当てはめる。
【００７１】
また、上記の第四パターンの場合、第８ビットが「１」であるから、第一符号処理後ビット列７０１２における第７ビットと第６ビットを「１１」とする。また、第一符号処理前ビット列７０１１の第７ビットから第２ビットまでの６ビットを、第一符号処理後ビット列７０１２の第５ビットからＭＳＢに当てはめる。すなわち、第一符号処理前ビット列７０１１の下位７ビットを右方向に２ビットシフトさせて、これを第一符号処理後ビット列７０１２の第５ビットからＭＳＢに当てはめる。
【００７２】
ゼロビット符号化処理では、第一符号処理後ビット列７０１２のフォーマットは、ＭＳＢが「サインビット（Ｓ）」、続く上位２ビットがゼロビット処理のパターンを明示する「ゼロビットヘッダ」となる。ゼロビットヘッダに続きＭＳＢまでの６ビット長に量子化後ＤＣＴ係数が格納される。以上のようにすることで、第一符号化処理パターン７０１では１０ビット長であったビット列を９ビット長に圧縮することができる。
【００７３】
［第二符号化処理パターン７０２］
図１３は、第二符号化処理パターン７０２について説明する図である。図１３（ａ）は、第二符号化処理パターン７０２によってゼロビット符号化処理が実行される前の量子化後ＤＣＴ係数のビット列を例示している。図１３（ｂ）は、第二符号化処理パターン７０２によってゼロビット符号化処理が実行された後のビット例を例示している。
【００７４】
図１３（ａ）に例示するように、画素ブロックの位置に対応して選択されたゼロビット符号化処理の種類において、量子化後ＤＣＴ係数の大きさによって、複数の処理パターンから特定の処理パターンが決定される。ゼロビット符号化処理前のビット列（第二符号処理前ビット列７０２１）において、最上位ビット（ＭＳＢ：Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ）である第６ビットはサインビット（Ｓビット）である。第二符号処理前ビット列７０２１を、ＭＳＢに続く上位ビットから順番に探索し「０」が三つ連続する場合は、当該ビット列に対する処理パターンは、第一パターンとする。
【００７５】
同じく、第二符号処理前ビット列７０２１を、ＭＳＢに続く上位ビットから順番に探索し「０」が三つ連続しない場合であっても、「０」が二つ連続した後に「１」である場合は、当該ビット列に対する処理パターンは、第二パターンとする。また、第二符号処理前ビット列７０２１を、ＭＳＢに続く上位ビットから順番に探索し「０」が三つ連続しない場合であっても、一つの「０」の後に「１」に当たる場合は、当該ビット列に対する処理パターンは、第三パターンとする。そして、第二符号処理前ビット列７０２１を、ＭＳＢに続く上位ビットから順番に探索し「０」がなく「１」に当たる場合は、当該ビット列に対する処理パターンは、第四パターンとする。
【００７６】
上記のように決定された処理パターンに基づく、ゼロビット符号化処理の結果について、図１３（ｂ）の第二符号処理後ビット列７０２２を用いて説明する。上記の第一パターンの場合、第５ビットから第３ビットの「０００」を「００」にし、これを第二符号処理後ビット列７０２２における第４ビットと第３ビットとする。また、第二符号処理前ビット列７０２１の第２ビットからＭＳＢまでの３ビットを、第二符号処理後ビット列７０２２の第２ビットからＭＳＢに当てはめる。
【００７７】
また、上記の第二パターンの場合、第８ビットから第６ビットの「００１」を「０１」にし、これを第二符号処理後ビット列７０２２における第７ビットと第６ビットとする。また、第二符号処理前ビット列７０２１の第５ビットからＭＳＢまでの６ビットを、第二符号処理後ビット列７０２２の第５ビットからＭＳＢに当てはめる。
【００７８】
また、上記の第三パターンの場合、第５ビットから第４ビットが「０１」であるから、第二符号処理後ビット列７０２２における第４ビットと第３ビットを「１０」とする。また、第二符号処理前ビット列７０２１の第３ビットから第１ビットまでの３ビットを、第二符号処理後ビット列７０２２の第２ビットからＭＳＢに当てはめる。すなわち、第二符号処理前ビット列７０２１の下位４ビットを右方向に１ビットシフトさせて、これを第二符号処理後ビット列７０２２の第２ビットからＭＳＢに当てはめる。
【００７９】
また、上記の第四パターンの場合、第５ビットが「１」であるから、第二符号処理後ビット列７０２２における第４ビットと第３ビットを「１１」とする。また、第二符号処理前ビット列７０２１の第４ビットから第２ビットまでの３ビットを、第二符号処理後ビット列７０２２の第２ビットからＭＳＢに当てはめる。すなわち、第二符号処理前ビット列７０２１の下位５ビットを右方向に２ビットシフトさせて、これを第二符号処理後ビット列７０２２の第２ビットからＭＳＢに当てはめる。
【００８０】
ゼロビット符号化処理では、第二符号処理後ビット列７０２２のフォーマットは、ＭＳＢが「サインビット（Ｓ）」、続く上位２ビットがゼロビット処理のパターンを明示する「ゼロビットヘッダ」となる。ゼロビットヘッダに続きＭＳＢまでのビット列に量子化後ＤＣＴ係数が格納される。以上のようにすることで、第二符号化処理パターン７０２では７ビット長であったビット列を６ビット長に圧縮することができる。
【００８１】
［第三符号化処理パターン７０３］
図１４は、第三符号化処理パターン７０３について説明する図である。図１４（ａ）は、第三符号化処理パターン７０３によってゼロビット符号化処理が実行される前の量子化後ＤＣＴ係数のビット列を例示している。図１４（ｂ）は、第三符号化処理パターン７０３によってゼロビット符号化処理が実行された後のビット例を例示している。
【００８２】
図１４（ａ）に例示するように、画素ブロックの位置に対応して選択されたゼロビット符号化処理の種類において、量子化後ＤＣＴ係数の大きさによって、複数の処理パターンから特定の処理パターンが決定される。ゼロビット符号化処理前のビット列（第三符号処理前ビット列７０３１）において、最上位ビット（ＭＳＢ：Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ）である第５ビットはサインビット（Ｓビット）である。第三符号処理前ビット列７０３１の、ＭＳＢに続く上位ビットから順番に探索し「０」が三つ連続する場合は、当該ビット列に対する処理パターンは、第一パターンとする。
【００８３】
同じく、第三符号処理前ビット列７０３１を、ＭＳＢに続く上位ビットから順番に探索し「０」が三つ連続しない場合であっても、「０」が二つ連続した後に「１」である場合は、当該ビット列に対する処理パターンは、第二パターンとする。また、第三符号処理前ビット列７０３１を、ＭＳＢに続く上位ビットから順番に探索し「０」が三つ連続しない場合であっても、一つの「０」の後に「１」に当たる場合は、当該ビット列に対する処理パターンは、第三パターンとする。そして、第三符号処理前ビット列７０３１を、ＭＳＢに続く上位ビットから順番に探索し「０」がなく「１」に当たる場合は、当該ビット列に対する処理パターンは、第四パターンとする。
【００８４】
上記のように決定された処理パターンに基づく、ゼロビット符号化処理の結果について、図１４（ｂ）の第三符号処理後ビット列７０３２を用いて説明する。上記の第一パターンの場合、第４ビットから第２ビットの「０００」を「００」にし、これを第三符号処理後ビット列７０３２における第３ビットと第２ビットとする。また、第三符号処理前ビット列７０３１の第１ビットからＭＳＢまでの２ビットを、第三符号処理後ビット列７０３２の第１ビットからＭＳＢに当てはめる。
【００８５】
また、上記の第二パターンの場合、第４ビットから第２ビットの「００１」を「０１」にし、これを第三符号処理後ビット列７０３２における第３ビットと第２ビットとする。また、第三符号処理前ビット列７０３１の第１ビットからＭＳＢまでの２ビットを、第三符号処理後ビット列７０３２の第１ビットからＭＳＢに当てはめる。
【００８６】
また、上記の第三パターンの場合、第４ビットから第３ビットが「０１」であるから、第三符号処理後ビット列７０３２における第４ビットと第３ビットを「１０」とする。また、第三符号処理前ビット列７０３１の第２ビットから第１ビットの２ビットを、第三符号処理後ビット列７０３２の第１ビットからＭＳＢに当てはめる。すなわち、第三符号処理前ビット列７０３１の下位３ビットを右方向に１ビットシフトさせて、これを第三符号処理後ビット列７０３２の第１ビットからＭＳＢに当てはめる。
【００８７】
また、上記の第四パターンの場合、第４ビットが「１」であるから、第三符号処理後ビット列７０３２における第３ビットと第２ビットを「１１」とする。また、第三符号処理前ビット列７０３１の第３ビットから第２ビットまでの２ビットを、第三符号処理後ビット列７０３２の第１ビットからＭＳＢに当てはめる。すなわち、第三符号処理前ビット列７０３１の下位４ビットを右方向に２ビットシフトさせて、これを第三符号処理後ビット列７０３２の第１ビットとＭＳＢに当てはめる。
【００８８】
ゼロビット符号化処理では、第三符号処理後ビット列７０３２のフォーマットは、ＭＳＢが「サインビット（Ｓ）」、続く上位２ビットがゼロビット処理のパターンを明示する「ゼロビットヘッダ」となる。ゼロビットヘッダに続きＭＳＢまでのビット列に量子化後ＤＣＴ係数が格納される。以上のようにすることで、第三符号化処理パターン７０３では６ビット長であったビット列を４ビット長に圧縮することができる。
【００８９】
以上、本実施形態に係るゼロビット符号化フォーマットと、その処理パターンを例示したが、本実施形態に係るゼロビット符号化処理部１２６に適用可能なゼロビット符号化フォーマットと処理パターンは、これに限定されるものではない。例えば、９ビットを８ビットにする処理パターンも可能である。
【００９０】
いずれの処理パターンにおいても、量子化後ＤＣＴ係数のビット列においてＭＳＢに続く上位３ビットのビット列に「０」がどのように格納されているかによって処理パターンを決定している。すなわち、「０」ビットの格納パターンによって符号化処理の内容を規定している。
【００９１】
図１５は、量子化後ＤＣＴ係数ブロック５１１に対して、上記のゼロビット符号化処理を実行した後のゼロビット後ＤＣＴ係数ブロック５２１を例示している。ゼロビット後ＤＣＴ係数ブロック５２１の各ブロックの数字は、ゼロビット符号化テーブル１２７に基づいてデータ圧縮処理が行われた後における各ＤＣＴ係数のビット長を示している。図１５と図１０（ｂ）を比較すると、各ブロックにおけるビット長は同じになっている。
【００９２】
本実施形態に係る符号化処理によれば、ＤＣＴ係数の量子化段階での圧縮率を小さくして復元時の画質を向上させるとともに、ゼロビット符号化処理によって、従来と同等のデータ圧縮率をもって固定長ビット列を生成することができる。
【００９３】
［固定長ビット列フォーマットの詳細］
図１６は、本実施形態に係る符号化フォーマット生成部１２８において生成される固定長ビット列のフォーマット（固定長ビット列化フォーマット）を例示している。図１６に示すように、量子化された輝度（Ｙ）、Ｕ成分、Ｙ成分に係るＤＣＴ係数に対しゼロビット符号化処理を実行した後、これを用いて１４４ｂｉｔからなる固定長ビット列（固定長データ）が生成される。図１６に例示するように、輝度（Ｙ）に対応するｂｉｔ列は「６４ｂｉｔ」、Ｕ成分のＤＣＴ係数に対応するｂｉｔ列は「３２ｂｉｔ」、Ｖ成分のＤＣＴ係数に対応するｂｉｔ列は「３２ｂｉｔ」が割り当てられる。即ち、本実施形態に係る固定長ビット列は、１４４ｂｉｔから構成される。
【００９４】
［復号化装置の実施形態］
続いて、本発明に係る復号化装置の実施形態に相当する固定長復号化部１４の詳細な機能ブロックについて図１７を用いて説明する。図１７に示すように、本実施形態に係る固定長復号化部１４は、符号解析部１４１と、ゼロビット復号化処理部１４２と、ゼロビット復号化テーブル１４３と、逆量子化部１４４と、逆量子化テーブル１４５と、逆ＤＣＴ変換部１４６と、ＲＧＢ変換部１４７と、逆ブロック化部１４８と、を有する。
【００９５】
符号解析部１４１は、一時記憶部３０から読み出した図１５に示したフォーマットからなる固定長ビット列を読み出して、四画素×四画素の画像ブロック２０２に対応する、ゼロビット符号化フォーマットからなるビット列をゼロビット復号化処理部１４２に転送する。符号解析部１４１は、符号解析手段に相当する。
【００９６】
ゼロビット復号化処理部１４２は、符号解析部１４１から渡されたビット列に基づいてゼロビット復号化テーブル１４３を参照し、ゼロビット復号化フォーマットを特定する。また、ゼロビット復号化処理部１４２は、特定したゼロビット復号化フォーマットに基づいてゼロビット復号化テーブル１４３を参照し、ゼロビット復号化処理の処理パターンを決定する。ゼロビット復号化処理部１４２は、決定した処理パターンに基づいて、ゼロビット復号化処理を実行し、逆量子化前ＤＣＴ係数（量子化後ＤＣＴ係数）を逆量子化部１４４に渡す。ゼロビット復号化処理部１４２の詳細は後述する。
【００９７】
ゼロビット復号化テーブル１４３は、ゼロビット復号化処理部１４２が用いるゼロビット復号化ビット数変換テーブル７１０を格納する。また、ゼロビット復号化テーブル１４３は、複数のゼロビット復号化フォーマットを格納する。ゼロビット復号化テーブル１４３の詳細は後述する。
【００９８】
逆量子化部１４４は、逆量子化テーブル１４５を参照し、逆量子化処理を実行した後のＤＣＴ係数である逆量子化後ＤＣＴ係数（量子化前ＤＣＴ係数）を算出する。逆量子化部１４４は、逆量子化後ＤＣＴ係数を逆ＤＣＴ変換部１４６に渡す。逆量子化部１４４は、逆量子化手段に相当する。逆量子化テーブル１４５には、ＤＣＴ係数を逆量子化するためのシフト値が格納されている。逆量子化部１４４及び量子化テーブル１２５の詳細は後述する。
【００９９】
逆ＤＣＴ変換部１４６は、逆量子化部１４４から渡された「逆量子化処理の結果として得られた輝度、Ｕ成分、Ｖ成分のＤＣＴ係数」に基づいて逆ＤＣＴ変換処理を実行する。これによって、ＹＵＶ画像データが得られるので、このＹＵＶ画像データをＲＧＢ変換部１４７に転送する。逆ＤＣＴ変換部１４６は、逆周波数変換処理手段に相当し、逆周波数変換処理部を構成する。
【０１００】
ＲＧＢ変換部１４７は、転送されてきたＹＵＶ画像データに対するＲＧＢ画像データへの変換処理を実行する。ＲＧＢ変換部１４７によって、四画素×四画素の画素ブロックからなるＲＧＢ画像データが出力される。
【０１０１】
逆ブロック化部１４８は、ＲＧＢ変換部１４７から渡された画素ブロックを２次元の画像データに展開して、ＲＧＢ画像データを生成する。逆ブロック化部１４８は、生成したＲＧＢ画像データを一時記憶部３０に転送する。逆ブロック化部１４８は、画像ブロック統合手段に相当し、画像ブロック統合部を構成する。
【０１０２】
［ゼロビット復号化テーブル１４３の詳細］
まず、図１８において、ゼロビット復号化ビット数変換テーブル７１０を例示する。ゼロビット復号化ビット数変換テーブル７１０は、固定長ビット例であるゼロビット符号化処理後のビット列に対応するゼロビット復号化処理の処理パターンを規定する。例えば、「９−＞１０」に対応するビット列に対しては、第一復号化処理パターン７１１を実行する。第一復号化処理パターン７１１は、９ビット長の固定長ビット列を１０ビット長にするゼロビット復号化処理である。
【０１０３】
同様に、「６−＞７」に対応するビット列に対しては、第二復号化処理パターン７１２を実行する。第二復号化処理パターン７１２は、６ビット長を７ビット長にするゼロビット符号化処理である。「５−＞６」に対応するビット列に対しては、第三復号化処理パターン７１３を実行する。第三復号化処理パターン７１３は、５ビット長を６ビット長にするゼロビット符号化処理である。
【０１０４】
［ゼロビット復号化処理部１４２の詳細］
続いて、ゼロビット復号化処理部１４２において実行されるゼロビット復号化処理の詳細について、説明する。すでに説明をしたように、ゼロビット復号化テーブル１４３を参照して、処理対象にブロックに対するゼロビット復号化フォーマットを決定する。
【０１０５】
［第一復号化処理パターン７１１］
図１９は、第一復号化処理パターン７１１について説明する図である。図１９（ａ）は、第一復号化処理パターン７１１によってゼロビット復号化処理が実行される前のビット列を例示している。図１９（ｂ）は、第一復号化処理パターン７１１によってゼロビット復号化処理が実行された後のビット列（逆量子化前ＤＣＴ係数のビット列）を例示している。
【０１０６】
図１９（ａ）に例示するように、ゼロビット符号化処理が施されたビット列に対応して、複数の処理パターンから特定の処理パターンが決定される。ゼロビット復号化処理前のビット列（第一復号処理前ビット列７１１１）において、最上位ビット（ＭＳＢ：Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ）は、サインビット（Ｓビット）である。第一復号処理前ビット列７１１１を、ＭＳＢに続く上位２ビットのビットパターンから処理パターンを決定する。例えば、「００」であれば、第一パターンとする。
【０１０７】
同じく、ＭＳＢに続く上位２ビットが「０１」であれば第二パターンとし、「１０」であれば第三パターンとし、「１１」であれば第四パターンとする。
【０１０８】
上記のように決定された処理パターンに基づき、ゼロビット復号化処理を実行する。その処理結果について、図１９（ｂ）の第一復号処理後ビット列７１１２を用いて説明する。上記の第一パターンの場合、第７ビットと第６ビットが「００」なので、第一復号処理後ビット列７１１２において、ＭＳＢに続く上位ビットに「０００」を格納する。また、第一復号処理後ビット列７１１２の第５ビットからＬＳＢまでの６ビットに、第一復号処理前ビット列７１１１の第５ビットからＬＳＢまでの６ビットを当てはめる。
【０１０９】
また、第二パターンの場合、第７ビットと第６ビットが「００」なので、第一復号処理後ビット列７１１２において、ＭＳＢに続く上位ビットに「００１」を格納する。また、第一復号処理後ビット列７１１２の第５ビットからＬＳＢまでの６ビットに、第一復号処理前ビット列７１１１の第５ビットからＬＳＢまでの６ビットを当てはめる。
【０１１０】
また、上記の第三パターンの場合、第７ビットと第６ビットが「１０」なので、第一復号処理後ビット列７１１２において、ＭＳＢに続く上位ビットに「０１」を格納する。また、第一復号処理後ビット列７１１２の第６ビットから第１までの６ビットに、第一復号処理前ビット列７１１１の第５ビットからＬＳＢまでの６ビットを当てはめる。そして、ＬＳＢに「０」を格納する。
【０１１１】
また、上記の第四パターンの場合、第７ビットと第６ビットが「１１」なので、第一復号処理後ビット列７１１２において、ＭＳＢに続く上位ビットに「１」を格納するまた、第一復号処理後ビット列７１１２の第７ビットから第２ビットまでの６ビットに第一復号処理前ビット列７１１１の第５ビットからＭＳＢまでの６ビットを当てはめる。そして、第１ビットとＬＳＢに「０」を格納する。
【０１１２】
ゼロビット復号化処理では、第一復号処理前ビット列７１１１のフォーマットは、ＭＳＢが「サインビット（Ｓ）」、続く上位２ビットである「ゼロビットヘッダ」におけるビットパターンよって区別される。そして、区別される処理パターンに基づいて上記のようにビット操作を行うことにより、第一復号化処理パターン７１１では９ビット長であったビット列を１０ビット長に伸張（復元）することができる。
【０１１３】
［第二復号化処理パターン７１２］
図２０は、第二復号化処理パターン７１２について説明する図である。図２０（ａ）は、第二復号化処理パターン７１２によってゼロビット復号化処理が実行される前のビット列を例示している。図２０（ｂ）は、第二復号化処理パターン７１２によってゼロビット復号化処理が実行された後のビット列（逆量子化前ＤＣＴ係数のビット列）を例示している。
【０１１４】
図２０（ａ）及び図２０（ｂ）と、第二符号化処理パターン７０２を例示した図１３（ａ）及び図１３（ｂ）を対比すると明らかなとおり、第二復号化処理パターン７１２は、第二符号化処理パターン７０２と逆のビット操作を行うものである。すなわち、第二復号処理前ビット列７１２１のゼロビットヘッダ（第４ビットと第３ビット）に格納されている「０」のパターン（ビットパターン）によって、処理パターンを区別し、決定する。そして、決定した処理パターン（第一パターンから第四パターン）に基づいて、第二符号化処理パターン７０２とは逆のビット操作を行っている。第二復号化処理パターン７１２の詳細については省略する。
【０１１５】
［第三復号化処理パターン７１３］
図２１は、第三復号化処理パターン７１３について説明する図である。図２１（ａ）は、第三復号化処理パターン７１３によってゼロビット復号化処理が実行される前のビット列を例示している。図２１（ｂ）は、第三復号化処理パターン７１３によってゼロビット復号化処理が実行された後のビット列（逆量子化前ＤＣＴ係数のビット列）を例示している。
【０１１６】
図２１（ａ）及び図２１（ｂ）と、第三符号化処理パターン７０３を例示した図１４（ａ）及び図１４（ｂ）を対比すると明らかなとおり、第三復号化処理パターン７１３は、第三符号化処理パターン７０３と逆の処理を行うものである。すなわち、第三復号処理前ビット列７１３１のゼロビットヘッダ（第３ビットと第２ビット）に格納されている「０」のパターン（ビットパターン）によって、処理パターンを区別し、決定する。そして、決定した処理パターン（第一パターンから第四パターン）に基づいて、第三符号化処理パターン７０３とは逆のビット操作を行っている。第三復号化処理パターン７１３の詳細については省略する。
【０１１７】
以上、本実施形態に係るゼロビット符号化フォーマットと、その復号化処理パターンを例示したが、本実施形態に係るゼロビット復号化処理部１４２に適用可能なゼロビット復号化フォーマットと処理パターンは、これに限定されるものではない。例えば、８ビットを９ビットにする処理パターンも可能である。
【０１１８】
［量子化テーブル１２５の詳細］
図２２は、量子化テーブル１２５に格納されている逆量子化シフト値テーブル５４１を例示している。図２２において、ＤＣＴ係数ブロック３１０の各ブロックに対応するビットシフト値を例示しているが、符号５４１ａで示しているブロックにおける”０”は、ビットシフトを行わないという意味ではなく、当該ブロックについては処理の対象としないことを意味する。
【０１１９】
［復号化されたＤＣＴ係数の例］
図２３（ａ）は、図８（ａ）に例示したＹＵＶ画像ブロック３００に対し、上記のゼロビット符号化処理及びゼロビット復号化処理を実行して得られた復元ＹＵＶ画像ブロック３２０を例示している。図２３（ｂ）は、従来のＤＣＴ処理に基づく固定長ビット列への符号化および復号化をした結果を例示している。
【０１２０】
図８（ａ）である元データと、本実施形態に係る復元データである復元ＹＵＶ画像ブロック３２０を比較すると、本実施形態に係る復元ＹＵＶ画像ブロック３２０の方が従来例（図２３（ｂ））に比べて、ＤＣＴ係数の復元精度がより良いことが明らかである。すなわち、本実施形態によれば、復元される画像の質が向上している。
【０１２１】
［符号化方法及び復号化方法の実施形態］
次に、本発明に係る符号化方法及び復号化方法の実施形態について説明する。図２４は、上記にて説明をしたデジタルカメラ１００の動作の流れを例示している。本実施形態に係る符号化方法と復号化方法は、デジタルカメラ１００のような画像処理装置において実行される一連の画像処理の中で行われる。
【０１２２】
まず、光学系１０２を介して被写体の反射光を撮像素子１０３の撮像面に集光させ、撮像素子１０３から出力される画像信号を取り込む（Ｓ２４０１）。続いて、Ａ／Ｄコンバータ１０４によって、画像信号から画像データが生成されてプロセッサ１０１に入力される（Ｓ２４０２）。続いて、プロセッサ１０１において画像データ処理が実行される（Ｓ２４０３）。画像データ処理の詳細は後述する。プロセッサ１０１における画像データ処理によって動画像データが生成されて出力され、動画像メモリ１０７に格納される（Ｓ２４０４）。
【０１２３】
［画像データ処理の詳細］
Ｓ２４０３における画像データ処理において、本発明に係る符号化方法及び復号化方法は適用される。したがって、当該画像データ処理を実行する画像処理プログラムに、本発明に係る符号化プログラム及び復号化プログラムが含まれる。以下、画像データ処理（Ｓ２４０３）の詳細について説明しつつ、符号化方法及び復号化方法、符号化プログラム及び復号化プログラムの実行についても言及する。
【０１２４】
図２５は、Ｓ２４０３における画像データ処理の詳細な流れを示すフローチャートである。まず、固定長符号化部１２においてＲＧＢ画像データが固定長ビット列に符号化される（Ｓ２５０１）。生成された固定長ビット列は、一時記憶部３０に一旦格納される（Ｓ２５０２）。続いて、一旦格納されている固定長ビット列を歪曲補正部１３の指示に基づいて固定長復号化部１４が読み出す（Ｓ２５０３）。
【０１２５】
続いて、固定長復号化部１４が、固定長ビット列を復号化する（Ｓ２５０４）。固定長ビット列からＹＵＶ画像データに復号化されたものを用いて、歪曲補正部１３が歪曲補正処理を実行する（Ｓ２５０５）。
【０１２６】
歪曲補正処理が行われたＹＵＶ画像データに対し、再度、固定長ビット列化処理が行われる（Ｓ２５０６）。生成された固定長ビット列は、一時記憶部３０に一旦格納される（Ｓ２５０７）。続いて、一旦格納されている固定長ビット列を可変長動画圧縮部１５の指示に基づいて固定長復号化部１４が読み出す（Ｓ２５０８）。
【０１２７】
続いて、固定長復号化部１４が、固定長ビット列を復号化する（Ｓ２５０９）。固定長ビット列からＹＵＶ画像データに復号化されたものを用いて、可変長動画圧縮部１５が動画像データを生成する（Ｓ２５１０）。続いて、生成された動画像データを画像データ格納部４０に格納する（Ｓ２５１１）。
【０１２８】
［固定長符号化処理の詳細］
次に、固定長符号化処理（Ｓ２５０１、Ｓ２５０６）における詳細な処理の流れについて、図２６のフローチャートを用いながら説明する。
【０１２９】
まず、画像処理部１１によって生成されたＲＧＢ画像データをメモリから読み出して、ブロック化部１２１において、４画素×４画素の画像ブロックを生成し、ＹＵＶ変換部１２２に対して出力する（Ｓ２６０１）。
【０１３０】
続いて、ＹＵＶ変換部１２２は、各画像ブロックのそれぞれに対し、ＲＧＢ形式からＹＵＶ形式に変換するＹＵＶ変換処理を実行し、生成したＹＵＶ画像ブロック３００をＤＣＴ変換部１２３に転送する（Ｓ２６０２）。
【０１３１】
続いて、Ｓ２６０２においてＹＵＶ形式に変換された４画素×４画素のＹＵＶ画像ブロック（ＹＵＶ画像ブロック３００）に対し、ＤＣＴ変換部１２３が離散コサイン変換（ＤＣＴ）を利用した周波数変換処理を実行する（Ｓ２６０３）。ＤＣＴ変換部１２３は、周波数変換処理によりＤＣＴ係数ブロック３１０を量子化部１２４に転送する。
【０１３２】
量子化部１２４は、転送されてきたＤＣＴ係数ブロック３１０の各ブロックに対応するＤＣＴ係数に対し、量子化テーブル１２５を参照して量子化処理を実行する（Ｓ２６０４）。量子化部１２４は、量子化処理によって生成される量子化後ＤＣＴ係数ブロック５１１をゼロビット符号化処理部１２６に転送する。
【０１３３】
続いて、ゼロビット符号化処理部１２６は、量子化後ＤＣＴ係数ブロック５１１に対してゼロビット符号化処理を実行し、生成されたゼロビット符号フォーマットに基づく固定長ビット列を生成する（Ｓ２６０５）。詳細は後述する。
【０１３４】
最後に、符号化フォーマット生成部１２８において、固定長ビット列生成処理が実行される（Ｓ２６０６）。固定長ビット列生成処理の詳細は、図１６を用いて説明した符号化フォーマット生成部１２８の動作によるものである。
【０１３５】
［ゼロビット符号化処理の詳細］
次に、ゼロビット符号化処理（Ｓ２６０５）の詳細について、図２７のフローチャートを用いながら説明する。量子化部１２４によって生成された量子化後ＤＣＴ係数ブロック５１１（図１０（ａ）参照）に含まれるブロック毎にゼロビット符号化処理を実行する。
【０１３６】
まず、読み出すブロックを特定する変数（ＩＸ，ＩＹ）を初期化する（Ｓ２７０１、Ｓ２７０２）。この変数（ＩＸ，ＩＹ）は、（０，０）から（４，４）の値をとる。これは、量子化後ＤＣＴ係数ブロック５１１を構成するブロックが四画素×四画素に対応しているからである。
【０１３７】
続いて、量子化後ＤＣＴ係数ブロック５１１から、変数（ＩＸ，ＩＹ）によって決定される読出し対象（ここでは（０，０）に相当するブロック）のＤＣＴ係数をＤＣＴ（ＩＸ，ＩＹ）として、入力データ（Ｉ−ＤＡＴＡ）に入力する（Ｓ２７０３）。
【０１３８】
続いて、ゼロビット符号化テーブル１２７を参照し、Ｉ−ＤＡＴＡに基づいてゼロビット符号化ビット数変換テーブル７００を参照し、処理パターンを特定する（Ｓ２７０４）。
【０１３９】
処理対象のブロックに係る処理パターンが「１」であれば（Ｓ２７０５／ＹＥＳ、）、ゼロビット符号第一処理（Ｓ２７０６）が実行される（第一符号化処理パターン７０１相当）。
【０１４０】
処理対象のブロックに係る処理パターンが「２」であれば（Ｓ２７０７／ＹＥＳ、）、ゼロビット符号第二処理（Ｓ２７０８）が実行される（第二符号化処理パターン７０２相当）。
【０１４１】
処理対象のブロックに係る処理パターンが「３」であれば（Ｓ２７０９／ＹＥＳ、）、ゼロビット符号第三処理（Ｓ２７１０）が実行される（第三符号化処理パターン７０３相当）。
【０１４２】
続いて、各符号化のいずれかによって生成されたゼロビット符号化フォーマットに係る、サインビット（Ｓ）、ゼロビットヘッダ、と各ゼロビットフォーマットに含まれるＤＣＴ係数の実データ（Ｏ−ＤＡＴＡ）を、符号化フォーマット生成部１２８に転送する（Ｓ２７１１）。
【０１４３】
続いて、量子化後ＤＣＴ係数ブロック５１１に含まれるブロックの全てに同じ処理を行うために、まず、ＩＸに「１」を加算する（Ｓ２７１３）。加算したＩＸが「４未満」であれば（Ｓ２７１３／ＹＥＳ）、処理をＳ２７０３に戻す。ＩＸが「４未満」でなければ（Ｓ２７１３／ＮＯ）、ＩＹに「１」を加算する（Ｓ２７１４）。加算したＩＹが「４未満」であれば（Ｓ２７１５／ＹＥＳ）、処理をＳ２７０２に戻す。ＩＹが「４未満」でなければ（Ｓ２７１５／ＮＯ）、処理を終了する。
【０１４４】
［ゼロビット符号第一処理（Ｓ２７０６）の詳細フロー］
次に、ゼロビット符号第一処理（Ｓ２７０６）の詳細について、図２８のフローチャートを用いながら説明する。量子化部１２４によって生成された量子化後ＤＣＴ係数ブロック５１１（図１０（ａ）参照）に含まれるブロック毎にゼロビット符号化処理を実行する。
【０１４５】
まず、処理対象データである量子化後ＤＣＴ係数（Ｉ−ＤＡＴＡ）の値が「負」であるか否かの判定処理が行われる（Ｓ２８０１）。Ｉ−ＤＡＴＡが「負」でなければ（Ｓ２８０１／ＮＯ）、サインビット（Ｓ）を「０」とする（Ｓ２８０２）。Ｉ−ＤＡＴＡが「負」であれば（Ｓ２８０１／ＹＥＳ）、サインビット（Ｓ）を「１」とする（Ｓ２８０３）。
【０１４６】
続いて、Ｉ−ＤＡＴＡの絶対値を、「ＡＤＡＴＡ」とし（Ｓ２８０４）、「ＡＤＡＴＡ」の値によって処理パターンを切り替える。まず、「ＡＤＡＴＡ」の値が「６４未満」であれば（Ｓ２８０５／ＹＥＳ）、第７ビットと第６ビットのゼロビットヘッダを「００」（Ｓ２８０６）とする。そして、「ＡＤＡＴＡ」を「Ｏ−ＤＡＴＡ」の値として（Ｓ２８０７）、処理を終了する。
【０１４７】
「ＡＤＡＴＡ」の値が「６４未満」ではなく（Ｓ２８０５／ＮＯ）、「１２８未満」であれば（Ｓ２８０８／ＹＥＳ）、第７ビットと第６ビットのゼロビットヘッダを「０１」（Ｓ２８０９）とする。そして、「ＡＤＡＴＡ」から「６４」を減算した値を「Ｏ−ＤＡＴＡ」として（Ｓ２８１０）、処理を終了する。
【０１４８】
「ＡＤＡＴＡ」の値が「１２８未満」ではなく（Ｓ２８０８／ＮＯ）、「２５８未満」であれば（Ｓ２８１１／ＹＥＳ）、第７ビットと第６ビットのゼロビットヘッダを「１０」（Ｓ２８１２）とする。そして、「ＡＤＡＴＡ」から「１２８」を減算した値を「Ｏ−ＤＡＴＡ」する（Ｓ２８１３）。さらに、「Ｏ−ＤＡＴＡ」を右方向に１ビットシフトさせて（Ｓ２８１４）、処理を終了する。
【０１４９】
「ＡＤＡＴＡ」の値が「２５８未満」でなけば（Ｓ２８１１／ＮＯ）、第７ビットと第６ビットのゼロビットヘッダを「１１」とする（Ｓ２８１５）。そして、「ＡＤＡＴＡ」から「２５６」を減算した値を「Ｏ−ＤＡＴＡ」する（Ｓ２８１６）。さらに、「Ｏ−ＤＡＴＡ」を右方向に２ビットシフトさせて（Ｓ２８１７）、処理を終了する。
【０１５０】
以上の処理によって、量子化後ＤＣＴ係数ブロック５１１に含まれている特定のＤＣＴ係数を１０ビットから９ビットに符号化することができる。
【０１５１】
［ゼロビット符号第二処理（Ｓ２７０８）の詳細フロー］
次に、ゼロビット符号第二処理（Ｓ２７０８）の詳細について、図２９のフローチャートを用いながら説明する。ゼロビット符号第二処理（Ｓ２７０８）は、ゼロビット符号第一処理（Ｓ２７０６）と共通する処理を含む。これら共通する処理については、詳細な説明を省略する。処理対象データである量子化後ＤＣＴ係数（Ｉ−ＤＡＴＡ）の値が「負」であるか否かの判定処理（Ｓ２９０１）から、Ｉ−ＤＡＴＡの絶対値を、「ＡＤＡＴＡ」として（Ｓ２９０４）、「ＡＤＡＴＡ」の値によって処理パターンを切り替える処理の前段までは、すでに説明をしたＳ２８０１〜Ｓ２８０４と同様の処理となる。
【０１５２】
続いて、「ＡＤＡＴＡ」の値が「８未満」であれば（Ｓ２９０５／ＹＥＳ）、第７ビットと第６ビットのゼロビットヘッダを「００」（Ｓ２９０６）とする。そして、「ＡＤＡＴＡ」を「Ｏ−ＤＡＴＡ」の値として（Ｓ２９０７）、処理を終了する。
【０１５３】
「ＡＤＡＴＡ」の値が「８未満」ではなく（Ｓ２９０５／ＮＯ）、「１６未満」であれば（Ｓ２９０８／ＹＥＳ）、第７ビットと第６ビットのゼロビットヘッダを「０１」（Ｓ２９０９）とする。そして、「ＡＤＡＴＡ」から「８」を減算した値を「Ｏ−ＤＡＴＡ」として（Ｓ２９１０）、処理を終了する。
【０１５４】
「ＡＤＡＴＡ」の値が「１６未満」ではなく（Ｓ２９０８／ＮＯ）、「３２未満」であれば（Ｓ２９１１／ＹＥＳ）、第７ビットと第６ビットのゼロビットヘッダを「１０」（Ｓ２９１２）とする。そして、「ＡＤＡＴＡ」から「１６」を減算した値を「Ｏ−ＤＡＴＡ」する（Ｓ２９１３）。さらに、「Ｏ−ＤＡＴＡ」を右方向に１ビットシフトさせて（Ｓ２９１４）、処理を終了する。
【０１５５】
「ＡＤＡＴＡ」の値が「３２未満」でなけば（Ｓ２９１１／ＮＯ）、第７ビットと第６ビットのゼロビットヘッダを「１１」とする（Ｓ２９１５）。そして、「ＡＤＡＴＡ」から「３２」を減算した値を「Ｏ−ＤＡＴＡ」する（Ｓ２９１６）。さらに、「Ｏ−ＤＡＴＡ」を右方向に２ビットシフトさせて（Ｓ２９１７）、処理を終了する。
【０１５６】
以上の処理によって、量子化後ＤＣＴ係数ブロック５１１に含まれている特定のＤＣＴ係数を７ビットから６ビットに符号化することができる。
【０１５７】
［ゼロビット符号第三処理（Ｓ２７１０）の詳細フロー］
次に、ゼロビット符号第三処理（Ｓ２７１０）の詳細について、図３０のフローチャートを用いながら説明する。ゼロビット符号第三処理（Ｓ２７１０）は、ゼロビット符号第一処理（Ｓ２７０６）及びゼロビット符号第二処理（Ｓ２７０８）と共通する処理を含む。これら共通する処理については、詳細な説明を省略する。処理対象データである量子化後ＤＣＴ係数（Ｉ−ＤＡＴＡ）の値が「負」であるか否かの判定処理（Ｓ３００１）から、Ｉ−ＤＡＴＡの絶対値を、「ＡＤＡＴＡ」として（Ｓ３００４）、「ＡＤＡＴＡ」の値によって処理パターンを切り替える処理の前段までは、すでに説明をしたＳ２８０１〜Ｓ２８０４、及びＳ２８０１〜Ｓ２８０４と同様の処理となる。
【０１５８】
続いて、「ＡＤＡＴＡ」の値が「４未満」であれば（Ｓ３００５／ＹＥＳ）、第７ビットと第６ビットのゼロビットヘッダを「００」（Ｓ３００６）とする。そして、「ＡＤＡＴＡ」を「Ｏ−ＤＡＴＡ」の値として（Ｓ３００７）、処理を終了する。
【０１５９】
「ＡＤＡＴＡ」の値が「４未満」ではなく（Ｓ３００５／ＮＯ）、「８未満」であれば（Ｓ３００８／ＹＥＳ）、第７ビットと第６ビットのゼロビットヘッダを「０１」（Ｓ３００９）とする。そして、「ＡＤＡＴＡ」から「４」を減算した値を「Ｏ−ＤＡＴＡ」として（Ｓ３０１０）、処理を終了する。
【０１６０】
「ＡＤＡＴＡ」の値が「８未満」ではなく（Ｓ３００８／ＮＯ）、「１６未満」であれば（Ｓ３０１１／ＹＥＳ）、第７ビットと第６ビットのゼロビットヘッダを「１０」（Ｓ３０１２）とする。そして、「ＡＤＡＴＡ」から「８」を減算した値を「Ｏ−ＤＡＴＡ」する（Ｓ３０１３）。さらに、「Ｏ−ＤＡＴＡ」を右方向に１ビットシフトさせて（Ｓ３０１４）、処理を終了する。
【０１６１】
「ＡＤＡＴＡ」の値が「１６未満」でなけば（Ｓ３０１１／ＮＯ）、第７ビットと第６ビットのゼロビットヘッダを「１１」とする（Ｓ３０１５）。そして、「ＡＤＡＴＡ」から「３２」を減算した値を「Ｏ−ＤＡＴＡ」する（Ｓ３０１６）。さらに、「Ｏ−ＤＡＴＡ」を右方向に２ビットシフトさせて（Ｓ３０１７）、処理を終了する。
【０１６２】
以上の処理によって、量子化後ＤＣＴ係数ブロック５１１に含まれている特定のＤＣＴ係数を６ビットから５ビットに符号化することができる。
【０１６３】
一般的にＤＣＴ係数は、上記のいずれの処理パターンに該当する場合であっても、その値が小さいことが多く、ゼロビットヘッダが「００」または「０１」となる処理パターンに該当することが多い。空間周波数の振幅が大きい（ＤＣＴ係数の値が大きい）ものの精度は、量子化して情報量を減らしたとしても、それを復元したときの差はわかりにくいものとなる。
【０１６４】
［固定長復号化処理の詳細］
次に、固定長復号化処理（Ｓ２５０４、Ｓ２５０９）における詳細な処理の流れについて、図３１のフローチャートを用いながら説明する。
【０１６５】
まず、符号解析部１４１が一時記憶部３０から該当する固定長ビット列を読み出して、固定長ビット列に含まれる処理対象のビット列を解析してゼロビット復号化処理部１４２に転送する（Ｓ３１０１）。
【０１６６】
続いて、ゼロビット復号化処理部１４２が、ビット列のビット数に基づいてゼロビット復号化テーブル１４３に格納されているゼロビット復号化ビット数変換テーブル７１０に基づいて処理パターンを特定し、ゼロビット復号化処理（Ｓ３１０２）を実行する。処理結果は、逆量子化部１４４に転送される。詳細は後述する。
【０１６７】
続いて、逆量子化部１４４が、逆量子化テーブル１４５を参照して、ゼロビット復号化処理部１４２から転送されてきた量子化された輝度、Ｕ成分、Ｙ成分、のＤＣＴ係数に対して、逆量子化処理を実行し、結果を逆ＤＣＴ変換部１４６に転送する（Ｓ３１０３）。
【０１６８】
続いて、逆ＤＣＴ変換部１４６が、転送されてきたＤＣＴ係数に基づいて逆ＤＣＴ変換を行い、ＹＵＶ画像データを生成する。生成したＹＵＶ画像データはＲＧＢ変換部１４７に転送される（Ｓ３１０４）。
【０１６９】
続いて、ＲＧＢ変換部１４７は、転送されてきたＹＵＶ画像データをＲＧＢ画像データに変換する（Ｓ３１０５）。最後に、画像ブロックからなるＲＧＢ画像データ（四画素×四画素の画像ブロック）を、二次元データに展開したＲＧＢ画像データを生成し、一時記憶部３０に転送する（Ｓ３１０６）。
【０１７０】
［ゼロビット復号化処理の詳細］
次に、ゼロビット符号化処理（Ｓ３１０５）の詳細について、図３２のフローチャートを用いながら説明する。
【０１７１】
まず、符号解析部１４１から受け取った固定長ビット列が対応する量子化後ＤＣＴ係数ブロック５１１を構成するブロックを特定するための変数（ＩＸ，ＩＹ）を初期化する（Ｓ３２０１、Ｓ３２０２）。この変数（ＩＸ，ＩＹ）は、（０，０）から（４，４）の値をとる。これは、量子化後ＤＣＴ係数ブロック５１１を構成するブロックは四画素×四画素で構成されるからである。
【０１７２】
続いて、符号解析部１４１から渡された固定長ビット列に含まれる量子化後のＤＣＴ係数を変数（ＩＸ，ＩＹ）によって、復号処理の処理対象とする「Ｉ−ＤＡＴＡ」に入力する（Ｓ３２０３）。
【０１７３】
続いて、ゼロビット復号化テーブル１４３を参照し、Ｉ−ＤＡＴＡに基づいてゼロビット復号化ビット数変換テーブル７１０を参照し、処理パターンを特定する（Ｓ３２０４）。
【０１７４】
処理対象のブロックに係る処理パターンが「１」であれば（Ｓ３２０５／ＹＥＳ、）、ゼロビット復号第一処理（Ｓ３２０６）が実行される（第一復号化処理パターン７１１相当）。
【０１７５】
処理対象のブロックに係る処理パターンが「２」であれば（Ｓ３２０７／ＹＥＳ、）、ゼロビット復号第二処理（Ｓ３２０８）が実行される（第二復号化処理パターン７１２相当）。
【０１７６】
処理対象のブロックに係る処理パターンが「３」であれば（Ｓ３２０９／ＹＥＳ、）、ゼロビット復号第三処理（Ｓ３２１０）が実行される（第三復号化処理パターン７１３相当）。
【０１７７】
続いて、各復号化処理のいずれかによって生成された量子化後ＤＣＴ係数を「Ｏ−ＤＡＴＡ」として、逆量子化部１４４に転送する（Ｓ３２１１）。
【０１７８】
続いて、解析した固定長ビット列に対する処理を完了させるために、まず、ＩＸに「１」を加算する（Ｓ３２１３）。加算したＩＸが「４未満」であれば（Ｓ３２１３／ＹＥＳ）、処理をＳ３２０３に戻す。ＩＸが「４未満」でなければ（Ｓ３２１３／ＮＯ）、ＩＹに「１」を加算する（Ｓ３２１４）。加算したＩＹが「４未満」であれば（Ｓ３２１５／ＹＥＳ）、処理をＳ３２０２に戻す。ＩＹが「４未満」でなければ（Ｓ３２１５／ＮＯ）、処理を終了する。
【０１７９】
［ゼロビット復号第一処理（Ｓ３００６）の詳細フロー］
次に、ゼロビット復号第一処理（Ｓ３００６）の詳細について、図３３のフローチャートを用いながら説明する。符号解析部１４１から転送された固定長ビット列に対しゼロビット復号化処理を実行する。
【０１８０】
まず、処理対象データであるビット列（Ｉ−ＤＡＴＡ）の最上位ビット（ＭＳＢ）が「１」であるか否かの判定処理が行われる（Ｓ３３０１）。ＭＳＢが「１」でなければ（Ｓ３３０１／ＮＯ）、サインビット（Ｓ）を「０」とする（Ｓ３３０２）。ＭＳＢが「１」であれば（Ｓ３３０１／ＹＥＳ）、サインビット（Ｓ）を「１」とする（Ｓ３３０３）。
【０１８１】
続いて、Ｉ−ＤＡＴＡに含まれるゼロビットヘッダのビットパターンによって処理パターンを切り替える。まず、ゼロビットヘッダが「００」であれば（Ｓ３３０４／ＹＥＳ）、Ｉ−ＤＡＴＡを書き出しデータ（ＷＤＡＴＡ）とする。ゼロビットヘッダが「００」ではないが（Ｓ３３０４／ＮＯ）、「０１」であれば（Ｓ３３０６／ＹＥＳ）、Ｉ−ＤＡＴＡに「６４」を加算した値を「ＷＤＡＴＡ」とする（Ｓ３３０７）。ゼロビットヘッダが「０１」ではないが（Ｓ３３０６／ＮＯ）、「１０」であれば（Ｓ３３０８／ＹＥＳ）、Ｉ−ＤＡＴＡを左方向に１ビットシフトしたものに「１２８」を加算した値を「ＷＤＡＴＡ」とする（Ｓ３３１０）。ゼロビットヘッダが「１０」でなければ（Ｓ３３０８／ＹＥＳ）、Ｉ−ＤＡＴＡを左方向に２ビットシフトしたものに「２５６」を加算した値を「ＷＤＡＴＡ」とする。
【０１８２】
続いて、ＷＤＡＴＡのビット列のサインビットが「１」であるか否かの判定をする（Ｓ３３１１）。サインビットが「１」でなければ（Ｓ３３１１／ＮＯ）、ＷＤＡＴＡを出力データ「Ｏ−ＤＡＴＡ」として（Ｓ３３１３）、処理を終了する。サインビットが「１」であれば（Ｓ３３１１／ＹＥＳ）、ＷＤＡＴＡの符号を反転させたものを「Ｏ−ＤＡＴＡ」として（Ｓ３３１２）、処理を終了する。
【０１８３】
以上の処理によって、固定長ビット列のビット長が９ビットであった場合、これを１０ビットに符号化することができる。
【０１８４】
［ゼロビット復号第二処理（Ｓ３００８）の詳細フロー］
次に、ゼロビット復号第二処理（Ｓ３００８）の詳細について、図３４のフローチャートを用いながら説明する。符号解析部１４１から転送された固定長ビット列に対しゼロビット復号化処理を実行する。
【０１８５】
まず、処理対象データであるビット列（Ｉ−ＤＡＴＡ）の最上位ビット（ＭＳＢ）が「１」であるか否かの判定処理が行われる（Ｓ３４０１）。ＭＳＢが「１」でなければ（Ｓ３４０１／ＮＯ）、サインビット（Ｓ）を「０」とする（Ｓ３４０２）。ＭＳＢが「１」であれば（Ｓ３４０１／ＹＥＳ）、サインビット（Ｓ）を「１」とする（Ｓ３４０３）。
【０１８６】
続いて、Ｉ−ＤＡＴＡに含まれるゼロビットヘッダのビットパターンによって処理パターンを切り替える。まず、ゼロビットヘッダが「００」であれば（Ｓ３４０４／ＹＥＳ）、Ｉ−ＤＡＴＡを書き出しデータ（ＷＤＡＴＡ）とする（Ｓ３４０５）。ゼロビットヘッダが「００」ではないが（Ｓ３４０４／ＮＯ）、「０１」であれば（Ｓ３４０６／ＹＥＳ）、Ｉ−ＤＡＴＡに「８」を加算した値を「ＷＤＡＴＡ」とする（Ｓ３４０７）。ゼロビットヘッダが「０１」ではないが（Ｓ３４０６／ＮＯ）、「１０」であれば（Ｓ３４０８／ＹＥＳ）、Ｉ−ＤＡＴＡを左方向に１ビットシフトしたものに「１６」を加算した値を「ＷＤＡＴＡ」とする（Ｓ３４１０）。ゼロビットヘッダが「１０」でなければ（Ｓ３４０８／ＮＯ）、Ｉ−ＤＡＴＡを左方向に２ビットシフトしたものに「３２」を加算した値を「ＷＤＡＴＡ」とする（Ｓ３４０９）。
【０１８７】
続いて、ＷＤＡＴＡのビット列のサインビットが「１」であるか否かの判定をする（Ｓ３４１１）。サインビットが「１」でなければ（Ｓ３４１１／ＮＯ）、ＷＤＡＴＡを出力データ「Ｏ−ＤＡＴＡ」として（Ｓ３４１３）、処理を終了する。サインビットが「１」であれば（Ｓ３４１１／ＹＥＳ）、ＷＤＡＴＡの符号を反転させたものを「Ｏ−ＤＡＴＡ」として（Ｓ３４１２）、処理を終了する。
【０１８８】
以上の処理によって、固定長ビット列のビット長が６ビットであった場合、これを７ビットに符号化することができる。
【０１８９】
［ゼロビット復号第三処理（Ｓ３０１０）の詳細フロー］
次に、ゼロビット復号第三処理（Ｓ３０１０）の詳細について、図３５のフローチャートを用いながら説明する。符号解析部１４１から転送された固定長ビット列に対しゼロビット復号化処理を実行する。
【０１９０】
まず、処理対象データであるビット列（Ｉ−ＤＡＴＡ）の最上位ビット（ＭＳＢ）が「１」であるか否かの判定処理が行われる（Ｓ３５０１）。ＭＳＢが「１」でなければ（Ｓ３４０１／ＮＯ）、サインビット（Ｓ）を「０」とする（Ｓ３５０２）。ＭＳＢが「１」であれば（Ｓ３４０１／ＹＥＳ）、サインビット（Ｓ）を「１」とする（Ｓ３４０３）。
【０１９１】
続いて、Ｉ−ＤＡＴＡに含まれるゼロビットヘッダのビットパターンによって処理パターンを切り替える。まず、ゼロビットヘッダが「００」であれば（Ｓ３５０４／ＹＥＳ）、Ｉ−ＤＡＴＡを書き出しデータ（ＷＤＡＴＡ）とする（Ｓ３５０５）。ゼロビットヘッダが「００」ではないが（Ｓ３５０４／ＮＯ）、「０１」であれば（Ｓ３５０６／ＹＥＳ）、Ｉ−ＤＡＴＡに「４」を加算した値を「ＷＤＡＴＡ」とする（Ｓ３５０７）。ゼロビットヘッダが「０１」ではないが（Ｓ３５０６／ＮＯ）、「１０」であれば（Ｓ３５０８／ＹＥＳ）、Ｉ−ＤＡＴＡを左方向に１ビットシフトしたものに「８」を加算した値を「ＷＤＡＴＡ」とする（Ｓ３５１０）。ゼロビットヘッダが「１０」でなければ（Ｓ３５０８／ＮＯ）、Ｉ−ＤＡＴＡを左方向に２ビットシフトしたものに「１６」を加算した値を「ＷＤＡＴＡ」とする（Ｓ３５０９）。
【０１９２】
続いて、ＷＤＡＴＡのビット列のサインビットが「１」であるか否かの判定をする（Ｓ３５１１）。サインビットが「１」でなければ（Ｓ３５１１／ＮＯ）、ＷＤＡＴＡを出力データ「Ｏ−ＤＡＴＡ」として（Ｓ３５１３）、処理を終了する。サインビットが「１」であれば（Ｓ３５１１／ＹＥＳ）、ＷＤＡＴＡの符号を反転させたものを「Ｏ−ＤＡＴＡ」として（Ｓ３５１２）、処理を終了する。
【０１９３】
以上の処理によって、固定長ビット列のビット長が５ビットであった場合、これを６ビットに符号化することができる。
【０１９４】
一般的にＤＣＴ係数は、上記のいずれの処理パターンに該当する場合であっても、その値が小さいことが多く、ゼロビットヘッダが「００」または「０１」となる処理パターンに該当することが多い。空間周波数の振幅が大きい（ＤＣＴ係数の値が大きい）ものの精度は、量子化して情報量を減らしたとしても、それを復元したときの差はわかりにくいものとなる。
【０１９５】
以上のように、本実施形態に係る符号化方法及び復号化方法によれば、データの圧縮率は従来どおり確保することでデータアクセス処理に係る負荷を軽減させることができ、かつ、復元後の画像の質は従来よりも向上させることができる。
【０１９６】
なお、本発明は上述した各実施形態に限定されるものではなく、その技術的要旨を逸脱しない範囲で種々の変形が可能であり、特許請求の範囲に記載された技術思想に含まれる技術的事項の全てが本発明の対象となる。上記実施形態は、好適な例を示したものであるが、当業者であれば、開示した内容から様々な変形例を実現することが可能である。そのような変形例も、特許請求の範囲に記載された技術的範囲に含まれる。
【符号の説明】
【０１９７】
１１      ：画像処理部
１２      ：固定長符号化部
１３      ：歪曲補正部
１４      ：固定長復号化部
１５      ：可変長動画圧縮部
２０      ：データ入力部
３０      ：一時記憶部
４０      ：画像データ格納部
１００    ：デジタルカメラ
１０１    ：プロセッサ
１０２    ：光学系
１０３    ：撮像素子
１０４    ：Ａ／Ｄコンバータ
１０５    ：メモリコントローラ
１０６    ：固定長用メモリ
１０７    ：動画像メモリ
１１１    ：Ｂｙａｅｒ補正処理部
１１２    ：フィルタ処理部
１２１    ：ブロック化部
１２２    ：ＹＵＶ変換部
１２３    ：ＤＣＴ変換部
１２４    ：量子化部
１２５    ：量子化テーブル
１２６    ：ゼロビット符号化処理部
１２７    ：ゼロビット符号化テーブル
１２８    ：符号化フォーマット生成部
１４１    ：符号解析部
１４２    ：ゼロビット復号化処理部
１４３    ：ゼロビット復号化テーブル
１４４    ：逆量子化部
１４５    ：逆量子化テーブル
１４６    ：逆ＤＣＴ変換部
１４７    ：ＲＧＢ変換部
１４８    ：逆ブロック化部
１５１    ：動き検索部
１５２    ：ＤＣＴ部
１５３    ：量子化処理部
１５４    ：可変長符号化部
１５５    ：逆量子化処理部
１５６    ：逆ＤＣＴ部
１５７    ：動き補償部
２０１    ：元画像データ
２０２    ：画像ブロック
３００    ：ＹＵＶ画像ブロック
３１０    ：ＤＣＴ係数ブロック
３２０    ：復元ＹＵＶ画像ブロック
５０１    ：量子化シフト値テーブル
５０２    ：量子化シフト値テーブル
５１１    ：量子化後ＤＣＴ係数ブロック
５１２    ：量子化後ＤＣＴ係数ブロック
５２１    ：ゼロビット後ＤＣＴ係数ブロック
５４１    ：逆量子化シフト値テーブル
７００    ：ゼロビット符号化ビット数変換テーブル
７０１    ：第一符号化処理パターン
７０２    ：第二符号化処理パターン
７０３    ：第三符号化処理パターン
７１０    ：ゼロビット復号化ビット数変換テーブル
７１１    ：第一復号化処理パターン
７１２    ：第二復号化処理パターン
７１３    ：第三復号化処理パターン
７０１１  ：第一符号処理前ビット列
７０１２  ：第一符号処理後ビット列
７０２１  ：第二符号処理前ビット列
７０２２  ：第二符号処理後ビット列
７０３１  ：第三符号処理前ビット列
７０３２  ：第三符号処理後ビット列
７１１１  ：第一復号処理前ビット列
７１１２  ：第一復号処理後ビット列
７１２１  ：第二復号処理前ビット列
７１３１  ：第三復号処理前ビット列
【先行技術文献】
【特許文献】
【０１９８】
【特許文献１】特開２００４−１１２３４５号公報
【図１】
2020127178.tif 000003
【図２】
2020127178.tif 000004
【図３】
2020127178.tif 000005
【図４】
2020127178.tif 000006
【図５】
2020127178.tif 000007
【図６】
2020127178.tif 000008
【図７】
2020127178.tif 000009
【図８】
2020127178.tif 000010
【図９】
2020127178.tif 000011
【図１０】
2020127178.tif 000012
【図１１】
2020127178.tif 000013
【図１２】
2020127178.tif 000014
【図１３】
2020127178.tif 000015
【図１４】
2020127178.tif 000016
【図１５】
2020127178.tif 000017
【図１６】
2020127178.tif 000018
【図１７】
2020127178.tif 000019
【図１８】
2020127178.tif 000020
【図１９】
2020127178.tif 000021
【図２０】
2020127178.tif 000022
【図２１】
2020127178.tif 000023
【図２２】
2020127178.tif 000024
【図２３】
2020127178.tif 000025
【図２４】
2020127178.tif 000026
【図２５】
2020127178.tif 000027
【図２６】
2020127178.tif 000028
【図２７】
2020127178.tif 000029
【図２８】
2020127178.tif 000030
【図２９】
2020127178.tif 000031
【図３０】
2020127178.tif 000032
【図３１】
2020127178.tif 000033
【図３２】
2020127178.tif 000034
【図３３】
2020127178.tif 000035
【図３４】
2020127178.tif 000036
【図３５】
2020127178.tif 000037