(57)【要約】【課題】  タップ数の異なるフィルを少なくとも２つ用意し、符号化対象の画像のサイズ、並びに、離散ウェーブレット変換の再帰実行回数に応じて、いずれのフィルタを用いるかを適応的に決定する。【解決手段】  離散ウェーブレット変換部は、第１のタップ数の第１のフィルタ、又は、前記第１のタップ数より少ないタップ数の第２のフィルタを有し、且つ、離散ウェーブレット変換を行う対象のデータを一時的に記憶するためのメモリを有する。そして、符号化対象の画像データのサイズ、ウェーブレット変換の再帰実行回数、並びに、前記メモリの容量に基づき、離散ウェーブレット変換の再帰実行回数における各回にて、第１のフィルタ、第２のフィルタのいずれを用いるか、或いは、フィルタを用いた処理をスキップするかを決定する。【選択図】  図１
2017085320.tif 000002
【特許請求の範囲】
【請求項１】
画像データを離散ウェーブレット変換し、符号化する画像処理装置であって、
離散ウェーブレット変換用の、第１のタップ数の第１のフィルタ、及び、前記第１のタップ数より少ないタップ数の第２のフィルタと、
離散ウェーブレット変換を行う対象のデータを、一時的に記憶するためのメモリと、
符号化対象の画像データのサイズ、ウェーブレット変換の再帰実行回数、並びに、前記メモリの容量に基づき、前記再帰実行回数における各回にて、前記第１のフィルタ、前記第２のフィルタのいずれを用いるか、或いは、フィルタを用いた処理をスキップするかを決定する決定手段と
該決定手段による決定に従ったフィルタ処理を行い、複数のサブバンドの変換係数データを生成するウェーブレット変換手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記画像データのサイズには、水平方向の画素数と、１画素当たりのビット数が含まれることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
更に、ベイヤ配列のＲＡＷ画像データを入力し、Ｒ成分の画素のみで構成されるＲプレーン、Ｂ成分の画素のみで構成されるＢプレーン、Ｇ０成分の画素のみで構成されるＧ０プレーン、Ｇ１成分の画素のみで構成されるＧ１プレーンを形成するプレーン形成手段を有し、
各プレーンを符号化対象の画像データとすることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記ウェーブレット変換手段は、
垂直方向に並ぶデータをウェーブレット変換し、変換係数データを生成する垂直ウェーブレット変換手段と、
当該垂直ウェーブレット変換手段で得られた変換係数データで構成される、水平方向に並ぶ変換係数データに対してウェーブレット変換することで、サブバンドの変換係数データを生成する水平ウェーブレット変換手段と、
を含み、
前記決定手段は、前記再帰実行回数における各回において、前記垂直ウェーブレット変換手段にて、前記第１のフィルタ、第２のフィルタのいずれを用いるか、或いは、フィルタを用いた処理をスキップするかを決定する
ことを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記決定手段は、
（１）前記再帰実行回数における全ての回にて、前記第１のフィルタを用いる、
（２）前記再帰実行回数における所定回までは前記第２のフィルタを用い、前記所定回以降では前記第１のフィルタを用いる、
（３）前記再帰実行回数における全ての回にて、前記第２のフィルタを用いる、
（４）前記再帰実行回数における所定回まではフィルタ処理をスキップし、前記所定回以降では前記第２のフィルタを用いる
の優先順位の１つを決定することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記ウェーブレット変換手段は、前記Ｒプレーン、Ｂプレーン、Ｇ０プレーン、Ｇ１プレーンを並列に変換し、
前記決定手段は、前記メモリの容量に基づき、
（１）前記全ての回で、前記第１のフィルタを用いる
（２）前記Ｒプレーン及び前記Ｂプレーンについては所定回まで前記第２のフィルタを用い、前記Ｒプレーン及び前記Ｂプレーンの前記所定回以降、並びに、前記Ｇ０プレーン及びＧ１プレーンについては全ての回で前記第１のフィルタを用いる、
（３）前記Ｒプレーン及び前記Ｂプレーンについては所定回までフィルタ処理をスキップし、前記Ｒプレーン及び前記Ｂプレーンの前記所定回以降、並びに、前記Ｇ０プレーン及びＧ１プレーンについては全ての回で前記第１のフィルタを用いる、
（４）所定回まで、前記Ｒプレーン及び前記Ｂプレーンについてのフィルタ処理をスキップし、前記Ｇ０プレーン及び前記Ｇ１プレーンについては前記第２のフィルタを用い、前記所定回以降では各プレーンについて前記第１のフィルタを用いる、
（５）所定回まで、全てのプレーンのフィルタ処理をスキップし、前記所定回以降では全プレーンについて前記第１のフィルタを用いる、
の優先順位の１つを決定することを特徴とする請求項４に記載の画像処理装置。
【請求項７】
離散ウェーブレット変換用の、第１のタップ数の第１のフィルタ、及び、前記第１のタップ数より少ないタップ数の第２のフィルタと、離散ウェーブレット変換を行う対象のデータを、一時的に記憶するためのメモリとを有し、画像を符号化する画像処理装置の制御方法であって、
符号化対象の画像データのサイズ、ウェーブレット変換の再帰実行回数、並びに、前記メモリの容量に基づき、前記再帰実行回数における各回にて、前記第１のフィルタ、前記第２のフィルタのいずれを用いるか、或いは、フィルタを用いた処理をスキップするかを決定する決定工程と
該決定工程による決定に従ったフィルタ処理を行い、複数のサブバンドの変換係数データを生成するウェーブレット変換工程と
を有することを特徴とする画像処理装置の制御方法。
【請求項８】
コンピュータに読み込ませ実行させることで、前記コンピュータを、請求項１乃至６のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【請求項９】
請求項８に記載のプログラムを格納した、コンピュータが読み込み可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、離散ウェーブレット変換を用いて画像を符号化する技術に関するものである。
【背景技術】
【０００２】
現在、高効率なデータ圧縮を実現するために様々な符号化手法が提案されている。その中の代表的な符号化方式として、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）が挙げられる。このＪＰＥＧ方式では、周波数変換にＤＣＴ（離散コサイン変換：Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）が用いられる。ＤＣＴは、８×８画素の固定ブロック単位の変換である。このため、低ビットレート（高い圧縮率）では、ブロック歪みが発生しやすい。
【０００３】
一方、このＪＰＥＧの後継として規格化されたＪＰＥＧ２０００と呼ばれる符号化方式では、周波数変換にＤＷＴ（離散ウェーブレット変換：Ｄｉｓｃｒｅｔｅ  Ｗａｖｅｌｅｔ  Ｔｒａｎｓｆｏｒｍ、以降ＤＷＴと呼ぶ）が用いられている。ＤＷＴは、ハイパスフィルタとローパスフィルタを組み合わせたフィルタバンクと呼ばれるフィルタを用い、画像データを複数の周波数帯域成分（サブバンド）に分割する。そして、ＪＰＥＧ２０００では、ＤＷＴによって得られた各周波数帯域成分を符号化する。ＤＣＴが８×８画素の固定ブロックサイズの周波数変換であるのに対し、ＤＷＴはそれより十分に大きい画面単位の周波数変換である。それ故、ＪＰＥＧ２０００の符号化データを復号した画像には、符号化時の量子化に伴うブロック歪みは発生しない。また、ＪＰＥＧ２０００では、ＤＷＴを再帰的に実行することで、複数の分解レベルの周波数帯域成分を生成できる。このため、ＪＰＥＧ２０００の符号化データからは、オリジナルの解像度の画像だけでなく、その解像度以下の画像を復号することも可能となる。つまり、ＪＰＥＧ２０００は、適応的な解像度スケーラビリティを実現している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２２８１１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＪＰＥＧ２０００には、５タップのローパスフィルタと、３タップのハイパスフィルタで構成される整数型５／３タップフィルタが規定されている。今、この５／３タップフィルタを用いて、画像の垂直方向ＤＷＴを行う場合について考察する。この場合、ＤＷＴを行う場合には、最低でも４ライン分のラインバッファ（バッファメモリ）が必要になる。つまり、ラスタースキャン順に入力した４ライン分の画像データは一旦ラインバッファに格納される。そして、５ライン目の或る画素データを入力したとき、その画素データと、ラインバッファに既に格納されている垂直方向に並ぶ４つの画素データの計５個の画素データに対してフィルタリング処理が実行される。昨今では、４Ｋコンテンツの需要拡大等、画像サイズは増える傾向にあるため、上記ラインメモリのサイズも必然的に大きくなってしまう。
【０００６】
特許文献１では、通常のＤＷＴと、高周波成分を０とみなした一部のフィルタ演算を省いたＤＷＴを、画像の性質に応じて選択的に用いるＤＷＴの構成が記載されている。しかし、この特許文献１では、入力画像の水平サイズと、自身のメモリリソースに応じた適応的なフィルタ演算の切り替えができない。そのため、サイズが大きい画像データが入力される場合に、相対的にラインメモリサイズが増加する構成となっている。
【０００７】
本発明は、上記の問題に鑑みなされたものである。そして、本発明は、タップ数の異なるフィルタを少なくとも２つ用意し、符号化対象の画像に応じて、いずれのフィルタを用いるかを決定することで、限られたメモリ容量での離散ウェーブレット変換のフィルタ処理を実行可能とする技術を提供する。
【課題を解決するための手段】
【０００８】
この課題を解決するため、例えば本発明の画像処理装置は以下の構成を備える。すなわち、
画像データを離散ウェーブレット変換し、符号化する画像処理装置であって、
離散ウェーブレット変換用の、第１のタップ数の第１のフィルタ、及び、前記第１のタップ数より少ないタップ数の第２のフィルタと、
離散ウェーブレット変換を行う対象のデータを、一時的に記憶するためのメモリと、
符号化対象の画像データのサイズ、ウェーブレット変換の再帰実行回数、並びに、前記メモリの容量に基づき、前記再帰実行回数における各回にて、前記第１のフィルタ、前記第２のフィルタのいずれを用いるか、或いは、フィルタを用いた処理をスキップするかを決定する決定手段と
該決定手段による決定に従ったフィルタ処理を行い、複数のサブバンドの変換係数データを生成するウェーブレット変換手段とを有する。
【発明の効果】
【０００９】
本発明によれば、タップ数の異なるフィルを少なくとも２つ用意し、符号化対象の画像のサイズ、並びに、離散ウェーブレット変換の再帰実行回数に応じて、いずれのフィルタを用いるかを適応的に決定する。この結果、限られたメモリ容量での離散ウェーブレット変換のフィルタ処理が可能になる。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係る画像処理装置のブロック構成図。
【図２】垂直５タップフィルタを用いた処理を説明するための図。
【図３】フィルタバンクの構成を説明するための図。
【図４】画像とサブバンドとの関係を示す図。
【図５】整数型５／３タップフィルタの構成を説明するための図。
【図６】Ｈａａｒ型２／２タップフィルタの構成を説明するための図。
【図７】実施形態における離散ウェーブレット変換部のブロック構成図。
【図８】第１の実施形態における制御部に処理内容を示すフローチャート。
【図９】第１の実施形態の変形例における情報処理装置のブロック構成図。
【図１０】第１の実施形態の変形例における処理内容を示すフローチャート。
【図１１】第２の実施形態における離散ウェーブレット変換で用いるフィルタ種類の決定方法を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１２】
［第１の実施形態］
本第１の実施形態の画像処理装置は、画像データ供給源としての撮像部を有する撮像装置（デジタルカメラ等）に実装する例を説明する。ただし、符号化対象の画像データは記憶媒体から供給されても良く、その供給源の種類は問わない。あくまで、理解を容易にするためのものであると理解されたい。
【００１３】
図１は、第１の実施形態における撮像装置における符号化に係る主要部のブロック構成図である。本装置は、撮像部１０１、プレーン形成部１０２、ＤＷＴ部（離散ウェーブレット変換部）１０３、量子化部１０４、エントロピー符号化部１０５、出力部１０６を有する。ＤＷＴ部１０３は、内部にバッファメモリ１０７を有する。また、本装置は、更に装置全体の制御を司る制御部１１０、並びにユーザインターフェースとして機能する操作部１１１を有する。
【００１４】
撮像部１０１は、光を電気信号に変換するセンサが２次元に配列された構造を有する。そして、各センサの前面には赤（Ｒ）、緑（Ｇ）、青（Ｂ）のいずれかのカラーフィルターが配置されている。そして、撮像部１０１は、各センサで得られた各色成の電気信号をデジタルデータとしてプレーン形成部２０２に供給する。撮像部１０１に配置されるカラーフィルターの並びはベイヤ配列である。ベイヤ配列における局所的な２×２画素のフィルタは、赤色のＲフィルタが１つ、青色のＢフィルタが１つ、そして２つの緑色のＧ０フィルタ、Ｇ１フィルタで構成されるものである。ベイヤ配列とは、この２×２画素が１セットとし、そのセットが周期的に並んだものと理解されたい。通常、撮像装置は、ベイヤ配列の画像データを現像処理（デモザイク処理とも呼ばれる）することで、１画素がＲ、Ｇ，Ｂ等の３成分で表現される画像データを生成する。これに対し、本第１の実施形態における符号化対象の画像データは、現像処理を行う前段階のベイヤ配列の画像データであって、未加工のデータである。それ故、以降、このベイヤ配列の画像データをＲＡＷ画像データと言う。
【００１５】
プレーン形成部１０２は、ＲＡＷ画像データを、Ｒ成分の画素のみで構成されるＲプレーン、Ｇ０成分の画素のみで構成されるＧ０プレーン、Ｇ１成分の画素のみで構成されるＧ１プレーン、青成分の画素のみで構成されるＢプレーンを形成（分離）する。そして、プレーン形成部１０２は、形成したＲプレーン、Ｇ０プレーン、Ｇ１プレーン、Ｂプレーンを、例えばこの順番に離散ウェーブレット変換部２０３に供給する。なお、プレーン単位に供給すれば良いので、特にプレーンの供給順番はこれに限らない。また、プレーン形成部１０２は、ＤＷＴ部１０３に供給する或るプレーンの画素の順番はラスタースキャン順とする。
【００１６】
ＤＷＴ部（離散ウェーブレット変換部）１０３は、離散ウェーブレット変換用の２つフィルタと、その変換の対象となるデータ（画素データもしくは前回の変換で得られた変換係数データ）を一時的に記憶するバッファメモリ１０７を有する。そして。ＤＷＴ部１０３は、そのバッファメモリ１０７を用いて、プレーン形成部２０２から１つの色成分のプレーンを入力しては、そのプレーンに対して２次元のＤＷＴを行う。そしてＤＷＴ部１０３は得られた変換係数データを量子化部１０４に供給する。
【００１７】
ここで、入力する１プレーンに対して５／３タップフィルタを用いた垂直方向ＤＷＴを図２を参照して説明する。垂直方向に対して５タップのフィルタを用いるわけであるから、図２に示すように、少なくとも４ライン分のラインメモリをバッファメモリ１０７に確保する。ここで、１つのラインメモリに格納される画素数は、入力するプレーンの水平方向の画素数Ｗである。よって、ＲＡＷ画像データの１画素がＮビットで表されるとしたとき、ラインバッファは４×Ｗ×Ｎビットの容量が必要になる。そして、プレーン形成部１０２から５ライン目の画素データ（図示の＊印）を入力したとき、垂直方向に隣接する５画素が揃ったことになるので、ＤＷＴ部１０３は５／３タップフィルタを用いたフィルタ処理を実行する。なお、５画素に対するフィルタ処理を行った直後、最古の画素データ（図示の場合は、１ライン目の＃印の画素データ）は用済みであるので、その位置に現入力の５ライン目の画素データ（＊印）を格納する。以降、ＤＷＴ部１０３は、プレーン形成部１０２からラスタースキャン順に画素データを入力する度に、５／３タップフィルタを行う位置を１画素分だけ図示の右方向にずらしてフィルタ処理を行う。このようにして、４ライン分のラインメモリを用いながらも、１プレーン分の垂直方向ＤＷＴを行うことになる。
【００１８】
第１の実施形態においては、ＤＷＴ部１０４が用いるＦＩＲフィルタは複数種類ある。説明を単純化するため、第１の実施形態におけるＤＷＴ部１０３が使用するフィルタの種類は２つであり、１つは５／３タップフィルタ、もう１つがＨａａｒ型の２／２タップフィルタであるものとする。５／３タップフィルタは、ＪＰＥＧ２０００に規定されている整数型５／３タップフィルタであり、タップ数が「５」のローパスフィルタと、タップ数が「３」のハイパスフィルタで構成される。一方、Ｈａａｒ型２／２タップフィルタは、タップ数が共に「２」のローパスフィルタとハイパスフィルタで構成される。ＤＷＴ部１０３が上記２つフィルタのうちのいずれを用いてＤＷＴを行うかは、制御部１１０が決定する。なお、上記以外として、ＪＰＥＧ２０００にて規定されている９／７タップフィルタも選択候補に入れても良いが、単純化のため上記の２種類とする。
【００１９】
ここで、このＤＷＴの基本的なフィルタバンク構成を図３に示す。図示において表記『Ｈ0（ｚ）』、『Ｈ1（ｚ）』は、共に、ＦＩＲ型フィルタで構成されたフィルタを示している。『Ｈ0（ｚ）』がローパスフィルタ、『Ｈ1（ｚ）』がハイパスフィルタである。また、『↓２』はダウンサンプラを示している。ローパスフィルタＨ1（ｚ）からの出力係数を入力するダウンサンプラは、出力係数列の偶数番目のサンプルだけを保持し、奇数番目のサンプルを破棄するという間引き処理を実行する。また、ハイパスフィルタＨ0（ｚ）からの出力係数を入力するダウンサンプラは、出力係数列の奇数番目のサンプルだけを保持し、偶数番目のサンプルを破棄するという間引き処理を実行する。このように、ローパスフィルタＨ0（ｚ）、ハイパスフィルタＨ1（ｚ）から出力された係数データは、それぞれのダウンサンプラにて引き処理されることになり、その個数は半分となる。
【００２０】
しかし、このようにフィルタＨ0（ｚ）、Ｈ1（ｚ）が、偶数番目と奇数番目とに関係無く全ての入力データに関してフィルタ処理を行うのは効率的では無い。第１の実施形態では、ローパスフィルタＨ0（ｚ）は偶数番目の係数列についてのみフィルタ処理を実行し、ハイパスフィルタＨ1（ｚ）は奇数番目のデータ列についてのみフィルタ処理を実行するものとする。その結果、各フィルタＨ0（ｚ）、Ｈ1（ｚ）は、フィルタ処理と間引き処理とを同時並行に実行することになる。図３で示す、「Ｌ」は低周波成分を意味し、「Ｈ」は高周波成分を意味する。例えば、ＨＨ成分は、垂直方向と水平方向についてハイパスフィルタ処理を施して得られた変換係数の集合である。プレーン形成部１０２が形成した１つのプレーン全体に対して上記フィルタ処理を行うことで、ＨＨ成分データの集合、ＬＨ成分データの集合、ＨＬ成分データの集合、ＬＬ成分データの集合が得られる。これらの集合は一般にサブバンドと呼ばれる。各ダウンサンプラは垂直、又は、水平方向に間引き処理するので、１つのサブバンドのサイズは、プレーン形成部１０２が形成した１プレーンの水平、垂直とも１／２（データの個数で言えば１／４）のサイズになる。そして、ここまでの処理がＤＷＴ分解レベル１の処理となる。また、ＤＷＴ分解レベル１の処理で得られたサブバンドＬＬに対して２回目のＤＷＴを行うことができる。この２回目のＤＷＴの処理を、ＤＷＴ分解レベル２の処理という。このＤＷＴ分解レベル２の処理によって、分解レベル１の処理と同様に、更なるサブバンドが得られる。それ故、分解レベル１と分解レベル２とのサブバンドを区別するため、分解レベル１のサブバンドを１ＨＨ，１ＬＨ，１ＨＬ，１ＬＬと表記し、分解レベル２のサブバンドを２ＨＨ，２ＬＨ，２ＨＬ，２ＬＬと表記する。
【００２１】
１つのプレーン（Ｒ，Ｇ０，Ｇ１，Ｂプレーンのいずれか）、ＤＷＴを１回実行して生成したサブバンド、ＤＷＴを２回実行した場合のサブバンドの関係は、図４（ａ）乃至図ｃ）のようになる。分解レベル１の各サブバンドのサイズは、オリジナルのプレーンの水平、垂直の１／２のサイズとなる。図示から、分解レベル２のサブバンド分解は、分解レベル１のサブバンド１ＬＬに対して行われること、分解レベル２の各サブバンドのサイズは、分解レベル１の１つのサブバンドの水平、垂直とも１／２となっていることが理解できよう。因に、分解レベル２の１つのサブバンドは、オリジナルのプレーンの水平、垂直とも１／４のサイズでもある。
【００２２】
次に、実施形態におけるＤＷＴ部１０３が用いる２種のＦＩＲ型フィルタ（整数型５／３タップフィルタとＨａａｒ型２／２タップフィルタ）の説明をする。図５（ａ），（ｂ）は、整数型５／３タップフィルタの構成を示す模式図である。タップ数が５であるので、演算対象の５つの連続するデータ（以下データ列）はＸ（２ｎ−２）、Ｘ（２ｎ−１）、Ｘ（２ｎ）、Ｘ（２ｎ＋１）、Ｘ（２ｎ＋１）（ｎ：整数）と表記される。なお、ここで言うＸ（）は、レベル１のサブバンド分解の処理時では、プレーン形成部１０２から供給される画素データであり、レベル２のサブバンド分解の処理時では、レベル１のサブバンド分解で得られたサブバンド１ＬＬの係数データである。図５（ａ）に示すローパスフィルタＨ0（ｚ）は、５タップに対応したフィルタ係数ｈ0（−２）、ｈ0（−１）、ｈ0（０）、ｈ0（１）、ｈ0（２）を有する。そして、ローパスフィルタは、入力したデータ列とフィルタ係数ｈ0（−２）〜ｈ0（２）とを畳み込み演算する。このため、ローパスフィルタは、５つの乗算器と４つの加算器を有する。このローパスフィルタＨ0（ｚ）は、次式（１）に従って、偶数番目のデータＸ（２ｎ）に関して畳み込み演算を実行し、低周波の係数データＹ（２ｎ）を出力する。なお、ＪＰＥＧ２０００では、フィルタ係数ｈ0（−２）とｈ0（２）は−１／８、ｈ0（−１）とｈ0（１）は２／８、ｈ0（０）は６／８と規定されている。
【数１】
2017085320.tif 000003
【００２３】
また、図５（ｂ）のハイパスフィルタＨ1（ｚ）は、３タップに対応したフィルタ係数ｈ1（−１）、ｈ1（０）、ｈ1（１）を有する。そして、ハイパスフィルタＨ1（ｚ）は、入力データ列Ｘ（２ｎ），Ｘ（２ｎ＋１）、Ｘ（２ｎ＋２）と、フィルタ係数ｈ1（−１）、ｈ1（０）、ｈ1（１）とを畳み込み演算する。このため、ハイパスフィルタＨ1（ｚ）は、３つの乗算器と２つの加算器を有する。このハイパスフィルタＨ1（ｚ）は、次式（２）に従って、奇数番目の入力データＸ（２ｎ＋１）に関して畳み込み演算を実行し、高周波の係数データＹ（２ｎ＋１）を出力する。なお、ＪＰＥＧ２０００では、フィルタ係数ｈ1（−１）とｈ1（１）は−１／２、ｈ1（０）は１と規定されている。
【数２】
2017085320.tif 000004
【００２４】
次に、実施形態におけるＤＷＴ部１０３が用いるもう１つのフィルタ、Ｈａａｒ型２／２タップフィルタを説明する。図６（ａ）、（ｂ）にその模式図を示す。図６（ａ）に示すローパスフィルタＨ0（ｚ）は、２タップに対応したフィルタ係数ｈ0（０）、ｈ0（１）を有する。そして、ローパスフィルタＨ0（ｚ）は、入力データ列Ｘ（２ｎ），Ｘ（２ｎ＋１）と、フィルタ係数ｈ0（０）、ｈ0（１）とを畳み込み演算する。このため、ローパスフィルタＨ0（ｚ）は、２つの乗算器と、１つの加算器を有する。このローパスフィルタＨ0（ｚ）は、次式（３）に従って、偶数番目の入力データＸ（２ｎ）に関して選択的に畳み込み演算を実行し、係数データＹ（２ｎ）を出力する。なお、フィルタ係数は、ｈ0（０）とｈ0（１）は１／２となっている。
【数３】
2017085320.tif 000005
【００２５】
また、Ｈａａｒ型２／２タップフィルタのハイパスフィルタＨ1（ｚ）は、図６（ｂ）に示すように、２タップに対応したフィルタ係数ｈ1（０）、ｈ1（１）を有する。そして、ハイパスフィルタＨ1（ｚ）は、入力データ列Ｘ（２ｎ），Ｘ（２ｎ＋１）と、フィルタ係数ｈ1（０）、ｈ1（１）とを畳み込み演算する。このため、ハイパスフィルタＨ1（ｚ）は、２つの乗算器と、１つの加算器を有する。このハイパスフィルタＨ1（ｚ）は、次式（４）に従って、偶数番目の入力データＸ（２ｎ＋１）に関して選択的に畳み込み演算を実行し、係数データＹ（２ｎ＋１）を出力する。なお、フィルタ係数は、ｈ1（０）は１／２、ｈ1（１）は−１／２となっている。
【数４】
2017085320.tif 000006
【００２６】
以上、実施形態のＤＷＴ部１０３が用いる、タップ数の異なる２種類のＦＩＲフィルタを説明した。このいずれのフィルタを用いるかの決定は、制御部１１０が行うものとし、その詳細は後述する。
【００２７】
図１の説明に戻る。量子化部１０４は、ＤＷＴ部１０３から供給された各サブバンドの変換係数データを、各サブバンド毎に定めた量子化ステップで量子化し、量子化後の変換係数データをエントロピー符号化部１０５に共有する。エントロピー符号化部２０５は、量子化後の変換係数データを算術符号化に従ってエントロピー符号化し、生成した符号化データを出力部１０６に供給する。出力部１０６は、エントロピー符号化部１０５から供給された各サブバンド毎の符号化データを、予め設定した順番に結合する。また、出力部１０６は、復号に必要な情報を収めたヘッダを生成する。そして、出力部１０６は、生成したヘッダを出力し、それに後続するように、結合した符号化データを出力する。出力先は特に問わないが、典型的にはメモリカードである。メモリカードに出力した場合には、ファイルとして保存されることになる。なお、ヘッダに格納される情報には、ＲＡＷ画像データの符号化であることを示す情報、各プレーンの順番と、１つのプレーンの水平、素直方向の画素数、各画素が深さを示すビット数、更には、ＤＷＴ部１０３が用いたフィルタを特定する情報が含まれる。また、ヘッダに後続するペイロードには、プレーン毎の符号化データが格納されることになる。
【００２８】
図７は、第１の実施形態におけるＤＷＴ部１０３のブロック構成図を示している。ＤＷＴ部１０３は、バッファメモリ１０７、スイッチ部４０２、垂直５／３タップフィルタ４０３、Ｈａａｒ型の垂直２／２タップフィルタ４０４、水平５／３タップフィルタ４０５を有する。つまり、ＤＷＴ部１０３は、垂直ウェーブレット変換を行い、その後で水平ウェーブレット変換を行うように構成される。ＤＷＴ分解レベル２の分解処理対象は、ＤＷＴ分解レベル１のサブバンド１ＬＬである。それ故、水平５／３タップフィルタ４０５からバッファメモリ１０７にサブバンド１ＬＬの変換係数データを転送するライン４０６が設けられる。
【００２９】
ＤＷＴ部１０３、特に、スイッチ部４０２は、制御部１１０からの制御信号に従った処理を行う。この制御信号には、いずれの垂直方向ＤＷＴフィルタを用いるのかを示す信号が含まれる。なお、説明が前後するが、制御部１１０は、ＣＰＵ、ＲＯＭ、並びにＲＡＭで構成される。そして、ＲＯＭには、図８に示すフローチャートに係るプログラムが格納されている。また、ユーザは、操作部１１１を操作して、撮像する画像の水平、垂直方向の解像度を規定する撮影モード、更には、ＤＷＴの実行回数を設定しているものとする。これら設定された情報は、制御部１１０内のＲＡＭに格納されているものとする。そして、操作部１１１のレリーズボタンを操作した場合、制御部１１０は、ＤＷＴ部１０３においていずれの垂直方向ＤＷＴフィルタを用いるかを決定し、制御信号をＤＷＴ部１０３に供給する。
【００３０】
以下、図８のフローチャートに従い、制御部１１０の処理手順を説明するともに、実施形態におけるＤＷＴ部１０３の処理内容を説明する。なお、以下では、ＤＷＴの再帰実行回数が２回として設定された場合の処理を、具体的な数値例を用いた効果の検証も行う。
【００３１】
撮影が開始されると、制御部１１０は、ステップＳ５０１にて、内部のＲＡＭから、現在設定されている情報を読み出す。これにより、制御部１１０は、解像度、ＤＷＴの再帰実行回数を取得する。
【００３２】
実施形態における撮影モードにて選択可能な撮像解像度は、ＱＨＤ（９６０×５４０画素）、ＦＨＤ（１９２０×１０８０画素）、４Ｋ（３８４０×２１６０画素）、８Ｋ（７６８０×４３２０画素）の４種とする。また、ＲＡＷ画像データにおける１画素は１０ビットであるものとする。
【００３３】
また、プレーン形成部１０２が生成する各色成分のプレーンのサイズ（画素数）は、上記の各モードの解像度の水平、垂直とも１／２となる。つまり、ユーザが選択したモードが例えばＱＨＤであった場合、プレーン形成部１０２がＤＷＴ部１０３に供給する１プレーンのサイズは４８０×２７０画素となる。
【００３４】
制御部１１０は、ステップＳ５０２にて、１つプレーンの符号化処理のすべてのＤＷＴに整数型５／３タップフィルタを適用した場合に要するラインメモリサイズを算出する。整数型５／３タップフィルタは、５ライン目が入力されると同時にフィルタ実行が可能な５タップフィルタであるため、最低でも４ライン分のメモリ領域が必要となる。それぞれの入力画像サイズで必要なラインメモリサイズは下記の通りである。なお、ラインメモリサイズは、プレーン形成部２０２が出力した、１プレーン分単位で算出する。
＜ＱＨＤ＞
ＤＷＴ１回目ラインメモリサイズ：４８０×４×１０＝１９２００（ビット）
ＤＷＴ２回目ラインメモリサイズ：２４０×４×１０＝９６００（ビット）
ラインメモリサイズ計：２８８００（ビット）
＜ＦＨＤ＞
ＤＷＴ１回目ラインメモリサイズ：９６０×４×１０＝３８４００（ビット）
ＤＷＴ２回目ラインメモリサイズ：４８０×４×１０＝１９２００（ビット）
ラインメモリサイズ計：５７６００（ビット）
＜４Ｋ＞
ＤＷＴ１回目ラインメモリサイズ：１９２０×４×１０＝７６８００（ビット）
ＤＷＴ２回目ラインメモリサイズ：９６０×４×１０＝３８４００（ビット）
ラインメモリサイズ計：１１５２００（ビット）
＜８Ｋ＞
ＤＷＴ１回目ラインメモリサイズ：３８４０×４×１０＝１５３６００（ビット）
ＤＷＴ２回目ラインメモリサイズ：１９２０×４×１０＝７６８００（ビット）
ラインメモリサイズ計：２３０４００（ビット）
【００３５】
制御部１１０は、ステップＳ５０３にて、現在のモードで符号化する際に必要なラインメモリのサイズが、ＤＷＴ部１０３のバッファメモリ１０７におけるラインメモリに割り当て可能なメモリリソースのサイズよりも大きいかどうかを判定する。ステップＳ５０２で算出したラインメモリサイズがメモリリソースのサイズより大きい場合は、処理はステップＳ５０５に進め、そうでなければ、ステップＳ５０４に処理を進める。
【００３６】
ここで、第１の実施形態では、バッファメモリ１０７におけるラインメモリとして活用可能なメモリリソースは、４００００ビットであものとする。従って、選択したモードの解像度がＱＨＤサイズの場合は、ラインメモリサイズがメモリリソース以下となるため、制御部１１０は、処理をステップＳ５０４に進める。また、選択したモードがＦＨＤ、４Ｋ、８Ｋのいずれかの場合、５／３タップフィルタを用いた場合に必要なラインメモリサイズがメモリリソースを超えるため、ステップＳ５０５に処理を進める。
【００３７】
ステップＳ５０４にて、制御部１１０は、全ＤＷＴに適用するフィルタ種類を、整数型５／３タップ型フィルタとして決定する。そして制御部１１０は、ＤＷＴ部１０３に対して、１回目、２回目の垂直方向ＤＷＴに５／３タップ垂直フィルタ４０３を用いることを示す制御信号を出力する。
【００３８】
ここで、制御部１１０がステップＳ５０４の処理を行った場合の、ＤＷＴ部１０３の具体的な処理を以下に説明する。
【００３９】
ＤＷＴ部１０３は、バッファメモリ１０７内に、４８００ビットの容量を有するラインメモリを４つ確保する。この４つのラインメモリは、１回目のＤＷＴにおける５／３タップ垂直フィルタに適用するためである。以降、１回目のＤＷＴの垂直フィルタに適用する、これら４つのラインメモリを第１ラインメモリ群と呼ぶ。また、ＤＷＴ部１０３は、バッファメモリ１０７内に、１ラインが２４００ビットの容量を有するラインメモリを４つ確保する。この４つのラインメモリは、２回目のＤＷＴにおける５／３タップ垂直フィルタに適用するためである。以降、２回目のＤＷＴの垂直フィルタに適用する、これら４つのラインメモリを第２ラインメモリ群と呼ぶ。
【００４０】
プレーン形成部１０２からラスタースキャン順に供給された画素データは、バッファメモリ１０７に確保された第１ラインメモリ群に格納される。そして、プレーン形成部１０２から５ライン目以降の画素データ（以下、現入力画素データという）が供給されたとする。この場合、スイッチ部４０２は、第１ラインメモリ群に格納された垂直方向に並ぶ４画素の画素データと、現入力画素データの計５画素分の画素データを、５／３タップ垂直フィルタ４０３に供給する。また、この際スイッチ部４０２は、第１ラインメモリ群内の、５／３タップ垂直フィルタ４０３に供給した５画素の中で最も古い画素データを格納していた位置に、現入力画素データで上書き保存する。５／３タップ垂直フィルタ４０３は、供給された５画素に対して５／３タップ垂直フィルタを適用し、高周波成分データと低周波成分データを生成する。そして、５／３タップ垂直フィルタ４０３は、生成した高周波成分データと低周波成分データを５／３タップ水平フィルタ４０５に供給する。
【００４１】
５／３タップ水平フィルタ４０５は、内部に、適当な個数（実施形態ではＤＷＴを２回行うので１６個）のレジスタを有する。そして、５／３タップ水平フィルタ４０５は、現入力の高周波成分データと、それ以前に入力し、４個のレジスタに格納された高周波成分データの計５個に対して、５／３タップ水平フィルタ処理を適用し、サブバンド１ＨＨ，１ＬＨの変換係数データを生成する。また、５／３タップ水平フィルタ４０５は、現入力の低周波成分データと、それ以前に入力し、４個のレジスタに格納された低周波成分データの計５個に対して、５／３タップ水平フィルタ処理を適用し、サブバンド１ＨＬ，１ＬＬの変換係数データを生成する。そして、５／３タップ水平フィルタ４０５は、サブバンド１ＨＨ，１ＬＨ，１ＨＬの変換係数データを量子化部１０４に供給する。また、５／３タップ水平フィルタ４０５は、サブバンド１ＬＬの変換係数データをライン４０６を介し、バッファメモリ１０７に供給する。
【００４２】
５／３タップ水平フィルタ４０５から供給されたサブバンド１ＬＬの変換係数データは、バッファメモリ１０７に確保された第２ラインメモリ群にラスタースキャン順に格納されていく。ここで、サブバンド１ＬＬの５ライン目以降の変換係数データ（以下、現入力変換係数データという）が供給されたとする。この場合、スイッチ部４０２は、第２ラインメモリ群に格納された垂直方向に並ぶ４個の変換係数データと、現入力変換係数データの計５個の変換係数データを、５／３タップ垂直フィルタ４０３に供給する。また、この際、スイッチ部４０２は、第２ラインメモリ群内の、５／３タップ垂直フィルタ４０３に供給した５個の変換係数データの中で最も古い変換係数データを格納していた位置に、現入力変換係数データを上書き保存する。５／３タップ垂直フィルタ４０３は、供給された５個の変換係数データに対して５／３タップ垂直フィルタを適用し、高周波成分データと低周波成分データを生成する。そして、５／３タップ垂直フィルタ４０３は、生成した高周波成分データと低周波成分データを５／３タップ水平フィルタ４０５に供給する。
【００４３】
５／３タップ水平フィルタ４０５は、現入力の高周波成分データと、それ以前に入力し、４個のレジスタに格納された高周波成分データの計５個に対して、５／３タップ水平フィルタ処理を適用し、サブバンド２ＨＨ，２ＬＨの変換係数データを生成する。また、５／３タップ水平フィルタ４０５は、現入力の低周波成分データと、それ以前に入力し、４個のレジスタに格納された低周波成分データの計５個に対して、５／３タップ水平フィルタ処理を適用し、サブバンド２ＨＬ，２ＬＬの変換係数データを生成する。そして、５／３タップ水平フィルタ４０５は、サブバンド２ＨＨ，２ＬＨ，２ＨＬ、２ＬＬの変換係数データを量子化部１０４に供給する。
【００４４】
１プレーンに対する分解レベル１、２のＤＷＴを行っている最中、バッファメモリ１０７の第１ラインメモリ群への画素データの格納と、第２ラインメモリ群へのサブバンド１ＬＬの変換係数データの格納は並列に行われる。つまり、プレーン形成部１０２から１個の画素データが供給されるたびに、５／３タップ垂直フィルタ４０３、及び、５／３タップ垂直フィルタ４０５それぞれは、分解レベル１のＤＷＴのフィルタ処理、分解レベル２のＤＷＴのフィルタ処理を行うことになる。よって、５／３タップ水平フィルタ４０５は、生成した変換係数データを量子化部１０４に供給するとき、その変換係数データが分解レベル１、２のいずれであるのかを示す情報も併せて供給する。量子化部１０４が、各サブバンドの変換係数を解像度レベルごとに分類し、それぞれを量子化するためである。
【００４５】
以上が、制御部１１０がステップＳ５０４の処理を行った場合の、ＤＷＴ部１０３の具体的な処理の説明である。
【００４６】
図８の説明に戻る。制御部１１０は、ステップＳ５０５にて、ＤＷＴの再帰実行回数のうち、所定回までのＤＷＴにＨａａｒ型２／２タップフィルタを適用し、その所定回以降では整数型５／３タップフィルタを用いた場合に要するラインメモリサイズを算出する。具体的には、制御部１１０は、分解レベル１（１回目のＤＷＴ）におけるＤＷＴではＨａａｒ型２／２タップフィルタ、分解レベル２（２回目のＤＷＴ）以降のＤＷＴでは整数型５／３タップフィルタを適用する場合の、ラインメモリサイズを算出する。Ｈａａｒ型２／２タップフィルタでは、２ライン目が入力されると同時にフィルタ実行が可能な２タップフィルタであるため、ラインメモリとして必要なサイズは１ライン分を格納する容量で良い。ここで、分解レベル１におけるＤＷＴに対してのみ、Ｈａａｒ型２／２タップフィルタを適用し、分解レベル２におけるＤＷＴでは整数型５／３タップフィルタを適用する場合の、入力画像サイズに対する必要なラインメモリサイズは下記の通りである。
＜ＦＨＤ＞
ＤＷＴ１回目ラインメモリサイズ：９６０×１×１０＝９６００（ビット）
ＤＷＴ２回目ラインメモリサイズ：４８０×４×１０＝１９２００（ビット）
ラインメモリサイズ計：２８８００（ビット）
＜４Ｋ＞
ＤＷＴ１回目ラインメモリサイズ：１９２０×１×１０＝１９２００（ビット）
ＤＷＴ２回目ラインメモリサイズ：９６０×４×１０＝３８４００（ビット）
ラインメモリサイズ計：５７６００（ビット）
＜８Ｋ＞
ＤＷＴ１回目ラインメモリサイズ：３８４０×１×１０＝３８４００（ビット）
ＤＷＴ２回目ラインメモリサイズ：１９２０×４×１０＝７６８００（ビット）
ラインメモリサイズ計：１１５２００（ビット）
【００４７】
ステップＳ５０６にて、制御部１１０は、ステップＳ５０５で算出したラインメモリサイズが、バッファメモリ１０７におけるラインメモリに割り当て可能なメモリリソースのサイズよりも大きいかどうかを判定する。算出したラインメモリサイズの方がメモリリソースより大きい場合は、制御部１１０は、ステップＳ５０８に処理を進める。また、算出したラインメモリサイズがメモリリソース以下であれば、ステップＳ５０７に処理を進める。実施形態の場合、入力画像がＦＨＤサイズの場合は、算出したラインメモリサイズがメモリリソース（４００００ビット）以下であるのでステップＳ５０７に処理を進める。一方、選択した撮影モードによる解像度が、４Ｋ、８Ｋの場合は、算出したラインメモリサイズがメモリリソースを超えるため、制御部１１０は処理をステップＳ５０８に処理を進める。
【００４８】
ステップＳ５０７にて、制御部１１０は、所定分解レベル（実施形態では分解レベル１）のＤＷＴに適用するフィルタ種類をＨａａｒ型２／２タップフィルタに決定し、所定分解レベル以降では整数型５／３タップフィルタを利用するとして決定する。そして、制御部１１０は、ＤＷＴ部１０３に対し、１回目の垂直方向ＤＷＴでＨａａｒ型２／２フィルタ、２回目の垂直方向ＤＷＴで５／３タップフィルタを用いることを示す制御信号を供給する。この制御信号を受信したＤＷＴ部１０３の具体的な処理を以下に説明する。
【００４９】
ＤＷＴ部１０３は、バッファメモリ１０７内に、９６００ビットの容量を有するラインメモリを１つ、４８００ビットのラインメモリを４つ確保する。先のステップＳ５０４での説明に合わせるため、９６００ビットの１ラインメモリを便宜的に第１ラインメモリ群と呼ぶ。また、４８００ビットの容量を有するラインメモリの４つを第２ラインメモリ群と呼ぶ。
【００５０】
プレーン形成部１０２からラスタースキャン順に供給された画素データは、バッファメモリ１０７に確保された第１ラインメモリ群に格納される。そして、プレーン形成部１０２から２ライン目以降の画素データ（以下、現入力画素データという）が供給されたとする。この場合、スイッチ部４０２は、第１ラインメモリ群に格納された垂直方向に隣接する１個の画素データと、現入力画素データの計２画素分の画素データを、２／２タップ垂直フィルタ４０４に供給する。また、この際スイッチ部４０２は、第１ラインメモリ群内の、２／２タップ垂直フィルタ４０４に供給した２画素の中で最も古い画素データを格納していた位置に、現入力画素データで上書き保存する。２／２タップ垂直フィルタ４０４は、供給された２画素に対してＨａａｒ型の２／２タップ垂直フィルタを適用し、高周波成分データと低周波成分データを生成する。そして、２／２タップ垂直フィルタ４０４は、生成した高周波成分データと低周波成分データを５／３タップ水平フィルタ４０５に供給する。
【００５１】
５／３タップ水平フィルタ４０５の処理は、ステップＳ５０４の場合と同じである。そして、１回目のＤＷＴにて得られたサブバンド１ＬＬの変換係数データが、バッファメモリ１０７に供給される点もステップＳ５０４の場合と同じである。サブバンド１ＬＬの５ライン目以降の変換係数データが、５／３タップ水平フィルタ４０５からバッファメモリ１０７に供給されたとする。この場合、スイッチ部４０２は、現入力変換係数データと、第２ラインメモリ群に格納された垂直方向に並ぶ４個の変換係数データとの計５個の変換係数データを、５／３タップ垂直フィルタ４０３に供給する。また、この際、スイッチ部４０２は、第２ラインメモリ群内の、５／３タップ垂直フィルタ４０３に供給した５個の変換係数データの中で最も古い変換係数データを格納していた位置に、現入力変換係数データを上書き保存する。これ以降はステップＳ５０４の場合と同じである。ただし、この例の場合、５／３タップ垂直フィルタ４０３と、２／２タップ垂直フィルタ４０４が並列に処理することも可能になる。
【００５２】
図８の説明に戻る。制御部１１０は、ステップＳ５０８にて、全て回の垂直ＤＷＴ（垂直ウェーブレット変換）にＨａａｒ型２／２タップフィルタを適用した場合に要するラインメモリサイズを算出する。全て回の垂直ＤＷＴで、Ｈａａｒ型２／２タップフィルタを適用した場合に、それぞれの入力画像サイズで必要なラインメモリサイズは下記の通りである。
＜４Ｋ＞
ＤＷＴ１回目ラインメモリサイズ：１９２０×１×１０＝１９２００（ビット）
ＤＷＴ２回目ラインメモリサイズ：９６０×１×１０＝９６００（ビット）
ラインメモリサイズ計：２８８００（ビット）
＜８Ｋ＞
ＤＷＴ１回目ラインメモリサイズ：３８４０×１×１０＝３８４００（ビット）
ＤＷＴ２回目ラインメモリサイズ：１９２０×１×１０＝１９２００（ビット）
ラインメモリサイズ計：５７６００（ビット）
【００５３】
ステップＳ５０９では、制御部１１０は、ステップＳ５０８で算出したラインメモリサイズが、バッファメモリ１０７におけるラインメモリに割り当て可能なメモリリソースのサイズよりも大きいかどうかを判定する。算出したラインメモリサイズの方がメモリリソースより大きい場合は、ステップＳ５１１に処理を進め、そうでなければ、ステップＳ５１０に処理を進める。撮影モードの解像度が４Ｋの場合は、ラインメモリサイズがメモリリソース以下であるため、ステップＳ５１０に処理を進める。また、撮影モードの解像度が８Ｋの場合は、ラインメモリサイズがメモリリソースを超えるため、ステップＳ５１１に処理を進める。
【００５４】
制御部１１０は、ステップＳ５１０にて、全て回の垂直ＤＷＴに適用するフィルタ種類を、Ｈａａｒ型２／２タップ型フィルタに決定する。そして、制御部１１０は、対応する制御信号をＤＷＴ部１０３に供給する。この制御信号を受信したＤＷＴ部１０３の具体的な処理を以下に説明する。
【００５５】
ＤＷＴ部１０３は、バッファメモリ１０７内に、９６００ビットの容量を有するラインメモリを１つ、４８００ビットのラインメモリを１つ確保する。先のステップＳ５０４での説明に合わせるため、９６００ビットの１ラインメモリを便宜的に第１ラインメモリ群と呼ぶ。また、４８００ビットの容量を有する１ラインメモリを第２ラインメモリ群と呼ぶ。
【００５６】
プレーン形成部１０２からラスタースキャン順に供給された画素データは、バッファメモリ１０７に確保された第１ラインメモリ群に格納される。そして、プレーン形成部１０２から２ライン目以降の画素データ（以下、現入力画素データという）が供給されたとする。この場合、スイッチ部４０２は、第１ラインメモリ群に格納された垂直方向に隣接する１個の画素データと、現入力画素データの計２画素分の画素データを、２／２タップ垂直フィルタ４０４に供給する。また、この際スイッチ部４０２は、第１ラインメモリ群内の、２／２タップ垂直フィルタ４０４に供給した２画素の中で最も古い画素データを格納していた位置に、現入力画素データで上書き保存する。２／２タップ垂直フィルタ４０４は、供給された２画素に対してＨａａｒ型の２／２タップ垂直フィルタを適用し、高周波成分データと低周波成分データを生成する。そして、２／２タップ垂直フィルタ４０４は、生成した高周波成分データと低周波成分データを５／３タップ水平フィルタ４０５に供給する。
【００５７】
５／３タップ水平フィルタ４０５の処理は、ステップＳ５０４の場合と同じである。そして、１回目のＤＷＴにて得られたサブバンド１ＬＬの変換係数データが、バッファメモリ１０７に供給される点もステップＳ５０４の場合と同じである。サブバンド１ＬＬの２ライン目以降の変換係数データが、５／３タップ水平フィルタ４０５からバッファメモリ１０７に供給されたとする。この場合、スイッチ部４０２は、現入力変換係数データと、第２ラインメモリ群に格納された垂直方向に隣接する１個の変換係数データとの計２個の変換係数データを、２／２タップ垂直フィルタ４０４に供給する。また、この際、スイッチ部４０２は、第２ラインメモリ群内の、４／４タップ垂直フィルタ４０４に供給した２個の変換係数データの中で最も古い変換係数データを格納していた位置に、現入力変換係数データを上書き保存する。これ以降はステップＳ５０４の場合と同じである。ただし、１回目、２回目とも、２／２タップ垂直フィルタ４０４を利用することになる。
【００５８】
図８の説明に戻る。制御部１１０は、ステップＳ５１１にて、所定分解レベルの垂直ＤＷＴを実行しない方式を選択する。具体的には、制御部１１０は、入力画像が８Ｋサイズの場合は、分解レベル１の垂直ＤＷＴは実施せず、分解レベル２のＤＷＴはＨａａｒ型２／２タップフィルタを適用して、２回のＤＷＴを実行するものとして決定する。そして、制御部１１０は、ＤＷＴ部１０３に対応する制御信号を供給する。分解レベル１での垂直ＤＷＴを実行せず、分解レベル２での垂直ＤＷＴにＨａａｒ型２／２タップフィルタを適用した場合の、撮影モードが８Ｋの場合において、必要なラインメモリサイズは下記の通りである。
＜８Ｋ＞
ＤＷＴ１回目ラインメモリサイズ：０（ビット）
ＤＷＴ２回目ラインメモリサイズ：３８４０×１×１０＝３８４００（ビット）
ラインメモリサイズ計：３８４００（ビット）
【００５９】
制御部１１０がステップＳ５１１の処理を実行した場合の、ＤＷＴ部１０３の具体的な処理内容は次の通りでさる。
【００６０】
ＤＷＴ部１０３は、バッファメモリ１０７に、３８４００ビットの容量を有するラインメモリを１つ確保する。このラインメモリは、先のステップＳ５０４での説明した第２ラインメモリ群に相当するものである。また、この場合、ＤＷＴ部１０３は、第１ラインメモリ群に相当するラインメモリをバッファメモリ１０７に確保しない。
【００６１】
スイッチ部４０２は、プレーン形成部１０２から画素データを受信した場合、垂直ＤＷＴをスキップするため、入力した画素データをライン４０７を介して、ダイレクトに５／３タップフィルタ４０５に供給する。５／３タップフィルタ４０５は、フィルタリングして生成された水平方向の高周波の変換係数データを量子化部１０４に供給する。また、５／３タップフィルタ４０５は、低周波の変換係数データを、バッファも襟１０７に確保した第２ラインメモリ群に格納する。ここで、５／３タップ水平フィルタ４０５から２ライン目以降の変換係数データが第２ラインメモリ群に供給されたとする。この場合、スイッチ部４０２は、現入力変換係数データと、第２ラインメモリ群に格納された垂直方向に隣接する１個の変換係数データとの計２個の変換係数データを、２／２タップ垂直フィルタ４０４に供給する。また、この際、スイッチ部４０２は、第２ラインメモリ群内の、２／２タップ垂直フィルタ４０４に供給した２個の変換係数データの中で最も古い変換係数データを格納していた位置に、現入力変換係数データを上書き保存する。これ以降はステップＳ５０４の場合と同じである。
【００６２】
以上、第１の実施形態における制御部１１０の処理と、ＤＷＴ部１０３の処理を説明した。上記実施形態によれば、限られたメモリリソースの範囲内で、異なるタップ数のフィルタの中から適応的に利用する１つを選択してウェーブレット変換を行い、符号化を行うことが可能になる。つまり、入力画像のサイズに依存することなくメモリサイズの増大を防ぐことが可能になる。なお、第１の実施形態では、フィルタの種類として整数型５／３タップフィルタ、Ｈａａｒ型２／２タップフィルタの２種類の例を説明したが、フィルタの種類はこれ以上でも構わない。また、ＤＷＴの再帰実行回数を２回としたが、この回数も２回に限らず１回、或いは３回以上であっても良い。ＤＷＴの再帰実行回数が多くなっても、より多く回数で、タップ数の多いフィルタを利用することに優先順位を置いて決定する。また、実施形態では符号化対象のＲＡＷ画像データは、１枚の静止画像として説明したが、時間軸に連続した動画像であっても構わない。
【００６３】
［第１の実施形態の変形例］
上記第１の実施形態は撮像装置に適用する例であった。以下では、パーソナルコンピュータなどの汎用の情報処理装置で実行するアプリケーションプログラムで実現する例を、第１の実施形態の変形例として説明する。
【００６４】
図９は、本変形例における情報処理装置のブロック構成図である。本装置の電源がＯＮになると、ＣＰＵ９０１はＲＯＭ９０２に格納されたブートプログラムを実行し、ＨＤＤ（ハードディスクドライブ）９０４からＯＳ（オペレーティングシステム）９０５をＲＡＭ９０３にロードし、ＯＳを実行する。この結果、ＣＰＵ９０１は、キーボード９０９、マウス９１０を介してユーザからの指示の受け付けと、表示制御部９１１を制御した表示装置９１２へのメニュー等の表示が可能となる。つまり、本装置がユーザが利用する情報処理装置として機能する。そして、ユーザがマウス９１０等からアプリケーションプログラム９０６の起動を指示すると、ＣＰＵ９０１はそのアプリケーションプログラム９０６をＲＡＭ９０２にロードし、実行する。この結果、本装置が画像符号化装置として機能する。そして、ＨＤＤ１７０４に格納されたＲＡＷ画像データファイル９０７に含まれる未符号化ＲＡＷデータを符号化し、符号化ファイル９０８として生成する。
【００６５】
図１０は、アプリケーションプログラム９０６の一部のウェーブレット変換に用いるフィルタの決定処理を示している。以下、同図に従って、ＣＰＵ９０１によるフィルタ決定処理を説明する。なお、ここでも利用可能なフィルタは整数型５／３タップフィルタ、Ｈａａｒ型２／２タップフィルタの２種類であるものとする
まず、ＣＰＵ９０１は、ステップＳ３０１にて、ＲＡＷ画像データファイル９０７をファイルヘッダを解析し、ＲＡＷ画像データの水平方向画素数Ｗ、１画素のビット数Ｄを取得する。ＣＰＵ９０１は、ステップＳ３０３にて、ユーザによるキーボード９０９やマウス９１０の操作から、ＤＷＴの再帰実行回数（解像度レベル数）Ｍを取得する。次に、ＣＰＵ９０１は、ＲＡＭ９０３にラインメモリとして確保可能な最大サイズＲを、例えばＯＳに要求し取得する。ここで言う最大サイズＲは、第１の実施形態で言及した「メモリリソース」に相当する。それ故、以降、Ｒをメモリリソースと呼ぶ。なお、ＲＡＭ９０３は、ここで説明する画像符号化アプリケーション以外にも、様々なアプリケーションが実行し得るので、メモリリソースＲは状況に応じたものとなる点に注意されたい。
【００６６】
次にＣＰＵ９０１は、ステップＳ３０４にて、ＤＷＴの再帰実行回数Ｍにおける垂直ＤＷＴで５／３タップフィルタを用いた場合に必要なメモリサイズＡを算出する。
【００６７】
ＲＡＷ画像データ内の画素は既に説明したようにベイヤ配列となっている。また、水平方向の画素数ＷのＲＡＷ画像データから形成される、１つのプレーン（Ｒ，Ｇ０、Ｇ１、Ｂプレーンのいずれか）の水平方向の画素数は、その半分のＷ／２となる。５／３タップ垂直フィルタを適用する場合には、４ライン分のラインメモリを必要となるのは既に説明した通りである。よって、１プレーンに対する１回目の垂直ＤＷＴで必要なメモリサイズは次式で与えられる。
（Ｗ／２）×４×Ｄ（ビット）
また、一般に、第ｘ回目のウェーブレット変換を行って得られたサブバンドの水平方向の変換係数データの個数は、直前の第ｘ−１回目のウェーブレット変換で得られたサブバンドのそれの１／２となる。よって、１回目からＭ回目までの全ての回で、垂直ＤＷＴで５／３タップ垂直フィルタを用いる場合に必要なラインデータのメモリサイズＡは次式で得られる。
【数５】
2017085320.tif 000007
【００６８】
ＣＰＵ９０１は、ステップＳ３０５にて、算出したメモリサイズＡと、メモリリソースＲとを比較し、条件『Ｒ≧Ａ』を満たすか否かを判定する。この条件が満たされる場合、ＣＰＵ９０１は、ステップＳ３０６にて、Ｍ回の全の垂直ＤＷＴで５／３タップ垂直フィルタを使用するとして決定し、本処理を終える。
【００６９】
ＣＰＵ９０１は、ステップＳ３０５にて、条件『Ｒ≧Ａ』を満たさないと判定した場合、処理はステップＳ３０７に進む。
【００７０】
１乃至Ｋ回目までの垂直ＤＷＴでＨａａｒ型２／２タップフィルタ、Ｋ＋１乃至Ｍ回目で整数型５／３タップフィルタを用いると仮定した場合に必要になるラインメモリのサイズＡは次式で与えられる。
【数６】
2017085320.tif 000008
【００７１】
ＣＰＵ９０１は、上式を満たし、且つ、１以上Ｍ以下の範囲内の最小Ｋを求める。そして、ＣＰＵ９０１はこの条件を満たすＫが存在するかを、ステップＳ３０７にて判定する。Ｋを求めることができた場合、ＣＰＵ９０１は処理をステップＳ３０８に進める。このステップＳ３０８では、ＣＰＵ９０１は、１乃至Ｋ回目の垂直ＤＷＴではＨａａｒ型２／２タップフィルタを用い、Ｋ＋１乃至Ｍ回目の垂直ＤＷＴでは整数型５／３タップフィルタを用いるとして決定する。
【００７２】
一方、ステップＳ３０７の条件を満たすＫが存在しなかった場合、ＣＰＵ９０１は処理をステップＳ３０９に進める。１乃至Ｋ回目までの垂直ＤＷＴはスキップし、Ｋ＋１乃至Ｍ回目でＨａａｒ型２／２タップフィルタを用いると仮定した場合のラインメモリのサイズＡは、次式で与えられる。
【数７】
2017085320.tif 000009
【００７３】
ＣＰＵ９０１は、上式を満たし、且つ、１以上Ｍ−１以下の範囲内の最小Ｋを求める。そして、ＣＰＵ９０１はこの条件を満たすＫが存在するかを、ステップＳ３０９にて判定する。なお、Ｋの取り得る最大値を「Ｍ−１」としたのは、最低でも垂直ＤＷＴを１回は行うこととするためである。Ｋを求めることができた場合、ＣＰＵ９０１は処理をステップＳ３１０に進める。このステップＳ３１０にて、ＣＰＵ９０１は、１乃至Ｋ−１回目の垂直ＤＷＴはスキップし、Ｋ乃至Ｍ回目の垂直ＤＷＴではＨａａｒ型２／２タップフィルタを用いるとして決定する。
【００７４】
また、ステップＳ３０９の条件を満たすＫが存在しない場合、ＣＰＵ９０１はステップＳ３１１にてエラー終了する。例えば、メモリ不足で正常な符号化処理を行えない旨のメッセージを表示し、アプリケーションプログラム９０６をアボートとする。
【００７５】
以上の結果、ＲＡＷ画像データファイル９０７の符号化する際の、限られたメモリリソースを有効活用しながら、各垂直ＤＷＴで利用するフィルタを決定することが可能になる。なお、エラー以外では、ＲＡＭ９０３には、ラインメモリが確保されることが約束されている。よってＣＰＵ９０１は、ＲＡＭ９０３にラインメモリを確保する処理を行い、決定したフィルタを用いてフィルタ処理、量子化、エントロピー符号化を行い、符号化ファイル９０８を生成する。また、ＣＰＵ９０１は、符号化ファイル９０８のファイルヘッダに、復号に必要な情報（ＲＡＷ画像データのサイズ、１画素当たりのビット数、ＤＷＴの再帰実行回数、各ＤＷＴで用いたフィルタの種類を示す情報）を格納する。
【００７６】
以上説明したように、本変形例のごとく、アプリケーションプログラム９０６によって第１の実施形態と同等の処理を行うことが可能である。
【００７７】
［第２の実施形態］
上記第１の実施形態（及びその変形例）では、フィルタの走査方向や分解レベル毎にタップ数の異なるフィルタを適応的に選択した。この結果、ＤＷＴ部１０３内のバッファメモリ１０７のうち、ラインメモリとして利用可能なメモリリソースを上回ることなくＤＷＴが実現できた。
【００７８】
本第２の実施形態では、入力プレーンの色成分に応じたＤＷＴ処理を行う例を説明する。なお、装置構成は図１と同じであり、撮像装置に適用する例である。ただし、本第２の実施形態におけるプレーン形成部１０２は、４つの色プレーンを、同ＤＷＴ部１０３に供給する。そして、ＤＷＴ部１０３は、各色プレーンに対するＤＷＴを並列に実行するものとする。また、本第２の実施形態におけるＤＷＴ部１０３が用いる垂直並びに水平方向のフィルタは、第１の実施形態と同様、整数型５／３タップフィルタと、Ｈａａｒ型２／２タップフィルタの２種類であるものとする。また、第１の実施形態と同様、ユーザが設定した撮影モード（解像度や１画素当たりのビット数）は、制御部１１０内のＲＡＭに格納されているものとする。
【００７９】
以下、本第２の実施形態における制御部１１０における利用するフィルタの決定する処理を図１１のフローチャートに従って説明する。
【００８０】
ステップＳ６０１において、制御部１１０は、ＲＡＭから、ユーザは設定した撮影モードに基づき、プレーン形成部２０２から出力される各色プレーンの水平方向サイズ、１画素当たりのビット数を判定する。そして、ステップＳ６０２にて、４つの色プレーンの、全レベルのＤＷＴに整数型５／３タップフィルタを適用した場合に要するラインメモリサイズを算出する。整数型５／３タップフィルタを垂直ＤＷＴに適用する場合、最低でも４ライン分のラインバッファが必要である。
【００８１】
ステップＳ６０３にて、制御部１１０は、ステップＳ６０２で算出したラインメモリサイズが、バッファメモリ１０７からラインメモリに割り当て可能なメモリリソースよりも大きいかどうかを判定する。算出したラインメモリサイズがメモリリソースより大きい場合は、制御部１１０は処理をステップＳ６０５に処理を進める。また、算出したラインメモリサイズがメモリリソース以下である場合、制御部１１０は処理をステップＳ６０４に処理を進める。
【００８２】
ステップＳ６０４では、全ての色プレーンの全レベルの垂直ＤＷＴに、整数型５／３タップ型フィルタを用いるものとして決定する。
【００８３】
ステップＳ６０５に処理が進んだ場合、制御部１１０は、２プレーンの所定分解レベルまでのＤＷＴにＨａａｒ型２／２タップフィルタを適用すると仮定した場合のラインメモリサイズを算出する。そして、制御部１１０は、ステップＳ６０６にて、ステップＳ６０５で算出したラインメモリサイズがメモリリソースよりも大きいかどうかを判定する。算出したラインメモリサイズがメモリリソースより大きい場合は、制御部１１０は処理をステップＳ６０８に処理を進める。また、算出したラインメモリのサイズがメモリリソース以下の場合、制御部１１０は処理をステップＳ６０７に進める。
【００８４】
ステップＳ６０７にて、制御部１１０は、Ｒ，Ｂプレーンの所定分解レベルのＤＷＴに適用するフィルタ種類を、Ｈａａｒ型２／２タップ型フィルタに決定する。そして、制御部１１０、Ｒ，Ｂプレーンの所定分解レベルより高いレベルでは、整数型５／３タップフィルタを用いるとして決定する。更に、制御部１１０は、他の２つのＧ０、Ｇ１プレーンについては、全レベルで、整数型５／３タップフィルタを用いるとして決定する。
ステップＳ６０８にて、制御部１１０は、２プレーンについては、所定分解レベルまでは垂直ＤＷＴを行わない場合に要するラインメモリサイズを算出する。そして、ステップＳ６０９にて、制御部１１０は、ステップＳ６０８で算出したラインメモリサイズがメモリリソースよりも大きいかどうかを判定する。算出したラインメモリサイズがメモリリソースより大きい場合、制御部１１０は処理をステップＳ６１１に処理を進める。また、算出したラインメモリサイズがメモリリソース以下の場合、制御部１１０は処理をステップＳ６１０に処理を進める。
【００８５】
ステップＳ６１０にて、制御部１１０は、Ｒ，Ｂプレーンについては所定分解レベルの垂直ＤＷＴを実行せず、且つ、所定分解レベル以降の垂直ＤＷＴではＨａａｒ型２／２タップフィルタを用いるものとして決定する。また、制御部１１０は、Ｇ０，Ｇ１プレーンについては全レベルで整数型５／３タップフィルタを用いるとして決定する。
【００８６】
ステップＳ６１１にて、制御部１１０は、Ｒ，Ｂプレーンについては所定分解レベルの垂直ＤＷＴを実行せず、更にＧ０，Ｇ１プレーンについては所定分解レベルのＤＷＴにＨａａｒ型２／２タップフィルタを適用する場合のラインメモリサイズを算出する。
【００８７】
そして、ステップＳ６１２にて、制御部１１０は、ステップＳ６１１で算出したラインメモリサイズがメモリリソースよりも大きいかどうかを判定する。算出したラインメモリサイズがメモリリソースより大きい場合、制御部１１０は処理をステップＳ６１４に処理を進める。また、算出したラインメモリサイズがメモリリソース以下の場合、制御部１１０は処理をステップＳ６１３に進める。
【００８８】
ステップＳ６１３にて、制御部１１０は、Ｒ，Ｂプレーンについては、所定分解レベルまでは垂直ＤＷＴは行なわず、所定分解レベルより高いレベルでは整数型５／３タップフィルタを用いるものとして決定する。また、制御部１１０は、Ｇ０，Ｇ１プレーンに対し、所定分解レベルの垂直ＤＷＴではＨａａｒ型２／２タップ型フィルタとし、しょいぇい分解レベルより高いレベルでは整数型５／３タップフィルタを用いるものとして決定する。
【００８９】
また、ステップＳ６１４にて、制御部１１０は、全ての色プレーンの所定分解レベルまでは垂直ＤＷＴを実行せず、所定分解レベルよりも高いレベルでの垂直ＤＷＴでは整数型５／３タップフィルタを用いるとして決定する。
【００９０】
ここで、第１の実施形態と同様に、具体的な数値例を用いて、入力画像によるラインメモリの増大抑制の効果検証を実施する。第２の実施形態では、ＤＷＴの再帰実行回数を１回、解像度を指定する撮影モードとして、ＱＨＤ（９６０×５４０）、ＦＨＤ（１９２０×１０８０）の２種の画像サイズが選択可能として説明する。
【００９１】
まず、ＱＨＤサイズの画像データに対して、全ての色成分に全ての色成分に整数型５／３タップフィルタを適用した場合に必要なメモリサイズは下記の通りである。
Ｒプレーンのラインメモリサイズ  ：４８０×４×１０＝１９２００[ビット]
Ｇ０プレーンのラインメモリサイズ：４８０×４×１０＝１９２００[ビット]
Ｇ１プレーンのラインメモリサイズ：４８０×４×１０＝１９２００[ビット]
Ｂプレーンのラインメモリサイズ  ：４８０×４×１０＝１９２００[ビット]
ラインメモリサイズ計：７６８００[ビット]
また、ＦＨＤサイズの画像データのＤＷＴにおいて、全ての色成分に整数型５／３タップフィルタを適用した場合のラインメモリサイズは次の通りである。
Ｒプレーンのラインメモリサイズ  ：  ９６０×４×１０＝３８４００[ビット]
Ｇ０プレーンのラインメモリサイズ：９６０×４×１０＝３８４００[ビット]
Ｇ１プレーンのラインメモリサイズ：９６０×４×１０＝３８４００[ビット]
Ｂプレーンのラインメモリサイズ  ：  ９６０×４×１０＝３８４００[ビット]
ラインメモリサイズ計：１５３６００[ビット]
【００９２】
上記の計算結果から、メモリリソースが仮に８００００ビットであった場合、ユーザがＱＨＤサイズを指定した場合には、全プレーンに対して整数型５／３タップフィルタを適用できることになる。一方、ユーザがＦＨＤサイズを指定した場合、全ての色成分に整数型５／３タップフィルタを適用したＤＷＴを実行する場合、ラインメモリサイズがメモリリソースを上回ることが分かる。従って、ＦＨＤサイズが指定された場合には、以下に示す処理に移ることになる。
【００９３】
続いて、ＦＨＤサイズの画像データのＤＷＴにおいて、色成分がＲ又はＢのＤＷＴにＨａａｒ型２／２タップフィルタを適用した場合に要するラインメモリサイズを算出する。Ｒプレーンのラインメモリサイズ  ：９６０×１×１０＝９６００[ビット]
Ｇ０プレーンのラインメモリサイズ：９６０×４×１０＝３８４００[ビット]
Ｇ１プレーンのラインメモリサイズ：９６０×４×１０＝３８４００[ビット]
Ｂプレーンのラインメモリサイズ  ：９６０×１×１０＝９６００[ビット]
ラインメモリサイズ計：９６０００[ビット]
上で示した計算結果から、ＦＨＤサイズの画像データに対して、Ｇ成分に整数型５／３タップフィルタを適用し、Ｒ又はＢ成分にＨａａｒ型２／２タップフィルタを適用したＤＷＴを実行する場合、ラインメモリサイズがメモリリソースを上回ることが分かる。
【００９４】
続いて、ＦＨＤサイズの画像データのＤＷＴにおいて、色成分がＲ又はＢの垂直ＤＷＴを実行しない場合に要するラインメモリサイズを算出する。
Ｒプレーンのラインメモリサイズ  ：０[ビット]
Ｇ０プレーンのラインメモリサイズ：９６０×４×１０＝３８４００[ビット]
Ｇ１プレーンのラインメモリサイズ：９６０×４×１０＝３８４００[ビット]
Ｂプレーンのラインメモリサイズ  ：０[ビット]
ラインメモリサイズ計：７６８００[ビット]
【００９５】
上で示した計算結果から、ＦＨＤサイズの画像データに対して、Ｒ又はＢ成分の垂直ＤＷＴを実行しない場合、ラインメモリサイズはメモリリソース以下となることが分かる。従って、本第２の実施形態では、ＦＨＤサイズのＤＷＴの実行方法は、Ｇ成分に整数型５／３タップフィルタを適用したＤＷＴを実行し、Ｒ又はＢ成分の垂直ＤＷＴを実行しないと方式に決定する。
【００９６】
このように、第２の実施形態での撮像装置におけるＤＷＴでは、ＤＷＴ部１０３内のバッファメモリ１０７内のラインメモリに割り当て可能なメモリリーソースを上回らないように、色成分Ｇに対してはフィルタタップ数の多いフィルタを優先的に適用する。一方、色成分がＲやＢ成分のＤＷＴに対しては、フィルタタップ数の少ないフィルタを優先的に適用するように動作する。これは、人間の眼の、輝度色差に対する感度は、輝度成分の寄与度が高く、色差成分の寄与度が小さいという視感度特性を利用したもので、とりわけ、緑成分の輝度情報が最も敏感である。一般的なＦＩＲ型フィルタでは、フィルタタップ数が多いと急峻な周波数特性を持ち、周波数の分解性能が高いことは既知である。従って、緑成分に対してフィルタタップ数の多いフィルタを適用し、赤成分や青成分に対してフィルタタップ数の少ないフィルタを適用させることで、主観画質の大幅な劣化を抑制することが可能である。
【００９７】
なお、先に説明した第１の実施形態の変形例と同様、上記第２の実施形態と等価の処理をアプリケーションプログラムでもって実現することも可能である。この場合、各プレーンのＤＷＴは、それぞれスレッドとして並列実行すれば良い。
【００９８】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００９９】
１０１…撮像部、１０２…プレーン形成部、１０３…ＤＷＴ部、１０４…エントロピー符号化部、１０６…出力部、１０７…バッファメモリ、１１０…制御部、１１１…操作部
【図１】
2017085320.tif 000010
【図２】
2017085320.tif 000011
【図３】
2017085320.tif 000012
【図４】
2017085320.tif 000013
【図５】
2017085320.tif 000014
【図６】
2017085320.tif 000015
【図７】
2017085320.tif 000016
【図８】
2017085320.tif 000017
【図９】
2017085320.tif 000018
【図１０】
2017085320.tif 000019
【図１１】
2017085320.tif 000020