(57)【特許請求の範囲】
【請求項１】
オーディオデータを量子化する量子化部と、
前記量子化されたオーディオデータを蓄積する蓄積部と、
前記蓄積部内の量子化されたオーディオデータを、ストリーム内の前記オーディオデータと関連するヘッダが存在するフレームと前記ヘッダが存在するフレームに先行する１または複数のフレームのうちのいずれか一方または両方に配置するストリーム生成部とを備え、
前記ストリーム生成部は、所定のフレームについては、前記フレームに含まれるヘッダと関連する前記オーディオデータの全部を配置し、残りの領域には前記オーディオデータの後続のオーディオデータを配置し、
前記所定のフレーム以外については、前記フレームに含まれるヘッダと関連する前記オーディオデータと前記オーディオデータの後続のオーディオデータのうちのいずれか一方または両方を配置し、
前記ストリーム生成部は、ストリームのフレームをフレーム群に分割し、前記フレーム群に含まれるフレーム数は一定ではなく、１つのフレーム群の先頭のフレームを前記所定のフレームして設定し、
前記量子化部は、直前のフレーム群の最後のフレームの次のフレームである第１のフレームおよび後続の所定個数の複数のフレームのうち、前記フレームに含まれるヘッダと関連する量子化されたオーディオデータの容量が最小となるフレームを次のフレーム群に存在する所定のフレームとし、
前記量子化部は、前記所定のフレームの直前のフレームを第２のフレームとして特定し、前記第１のフレームから前記第２のフレームまでを現在のフレーム群として設定する、オーディオ符号化装置。
【請求項２】
オーディオデータを量子化する量子化部と、
前記量子化されたオーディオデータを蓄積する蓄積部と、
前記蓄積部内の量子化されたオーディオデータを、ストリーム内の前記オーディオデータと関連するヘッダが存在するフレームと前記ヘッダが存在するフレームに先行する１または複数のフレームのうちのいずれか一方または両方に配置するストリーム生成部とを備え、
前記ストリーム生成部は、所定のフレームについては、前記フレームに含まれるヘッダと関連する前記オーディオデータの全部を配置し、残りの領域には前記オーディオデータの後続のオーディオデータを配置し、
前記所定のフレーム以外については、前記フレームに含まれるヘッダと関連する前記オーディオデータと前記オーディオデータの後続のオーディオデータのうちのいずれか一方または両方を配置し、
前記ストリーム生成部は、ストリームのフレームをフレーム群に分割し、前記フレーム群に含まれるフレーム数は一定ではなく、１つのフレーム群の先頭のフレームを前記所定のフレームして設定し、
前記量子化部は、直前のフレーム群の最後のフレームの次のフレームである第１のフレームを起点として後続のフレームを順番に選択し、フレーム内のメインデータ領域の容量と前記選択したフレームに含まれるヘッダと関連する量子化されたオーディオデータの容量との差分を求め、
前記量子化部は、前記順次選択によって、差分の合計値が前記蓄積部の容量を超えることになるフレームを次のフレーム群に存在する所定のフレームとし、
前記量子化部は、前記所定のフレームの直前のフレームを第２のフレームとして特定し、前記第１のフレームから前記第２のフレームまでを現在のフレーム群として設定する、オーディオ符号化装置。
【請求項３】
前記ストリームは、ＭＰＥＧオーディオ・レイヤ３のストリームであって、
前記ストリーム生成部は、前記所定のフレーム内に「０」を示すｍａｉｎ＿ｄａｔａ＿ｂｅｇｉｎを配置する、請求項１記載のオーディオ符号化装置。
【請求項４】
前記ストリームのすべてのフレーム長は一定であって、
前記ストリーム生成部は、前記フレーム内のメインデータ領域内の前記オーディオデータが配置されない空き領域をゼロパディングする、請求項１記載のオーディオ符号化装置。
【請求項５】
前記ストリームのすべてのフレーム長は一定であって、
前記量子化部は、前記フレーム内のメインデータ領域に空き領域が発生しないように、前記オーディオデータの量子化スケールを調整する、請求項１記載のオーディオ符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オーディオ符号化装置に関する。
【背景技術】
【０００２】
従来から、ＭＰＥＧ（Moving Picture Experts Group）オーディオレイヤ３（以下、ＭＰ３）方式で符号化されたデータを早送り再生を可能としてオーディオ符号化方法が知られている。
【０００３】
たとえば、特許文献１（特開２００６−１９０３６２号公報）には、現在再生位置情報を短時間で取得し、通常再生から早送り再生又は早戻し再生に遷移するまでの時間を短くし、聴感上のもたつき感がなくなるようにすることができるオーディオ符号化方法が開示されている。
【０００４】
このオーディオ符号化方法では、補助データ付加器により、オーディオ符号化データに、全てのビットを“０”とする３２×５ビットの補助データを付加する。そして、ＬＢＡ書き込み器により、補助データの最初の３２ビット部分にＬＢカウンタから与えられるＬＢＡの値を上書きし、更に、飛び先ＬＢＡ書き込み器により、ＬＢＡが上書きされていない補助データの残りの３２×４ビット部分に、ＬＢカウンタから与えられる飛び先ＬＢＡ_ｆ４、ＬＢＡ_ｆ８、ＬＢＡ_ｂ４、ＬＢＡ_ｂ８を上書きする。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１９０３６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１のような従来の符号化方法で符号化されたデータは、早送り再生（フレーム早送り）後に、数秒間再生不可状態に陥る可能性がある。たとえば、サンプリング周波数を２４ＫＨｚ、フレームのサイズを２４バイト、フレーム内のｍａｉｎ＿ｄａｔａのサイズを１バイト、オーディオデータのサイズを５７６バイト、ｍａｉｎ＿ｄａｔａ＿ｂｅｇｉｎが最大を示すときに先行するフレームの数が２５６フレームとしたときに、理論上、最大６．１秒分の再生不可状態に陥る可能性がある。
【０００７】
その結果、数秒間再生が停止する。早送り再生時に、リアルタイムストリーミング再生でバッファリングしたメモリに前のフレームがない場合にこの現象が発生する。
【０００８】
それゆえに、本発明の目的は、早送り再生後に、再生不可能な状態に陥ることを回避できるオーディオ符号化装置を提供することである。
【課題を解決するための手段】
【０００９】
本発明の一実施形態のオーディオ符号化装置は、オーディオデータを量子化する量子化部と、量子化されたオーディオデータを蓄積する蓄積部と、蓄積部内の量子化されたオーディオデータを、ストリーム内のオーディオデータと関連するヘッダが存在するフレームおよび／またはヘッダが存在するフレームに先行する１または複数のフレームに配置するストリーム生成部とを備える。ストリーム生成部は、所定のフレームについては、フレームに含まれるヘッダと関連するオーディオデータの全部を配置し、残りの領域には可能な限りオーディオデータの後続のオーディオデータを配置し、所定のフレーム以外については、フレームに含まれるヘッダと関連するオーディオデータおよび／またはオーディオデータの後続のオーディオデータを配置する。
【発明の効果】
【００１０】
本発明の一実施形態のオーディオ符号化装置によれば、早送り再生後に、再生不可能な状態に陥ることを回避できる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態のオーディオ符号化装置の構成を表わす図である。
【図２】第１の実施形態のオーディオ符号化装置のフィルタ処理部および量子化部の動作手順を表わすフローチャートである。
【図３】第１の実施形態のオーディオ符号化装置のストリーム生成部の動作手順を表わすフローチャートである。
【図４】第１の実施形態のオーディオ符号化装置によって生成されるストリームの例を表わす図である。
【図５】第２の実施形態のオーディオ符号化装置の構成を表わす図である。
【図６】第２の実施形態のオーディオ符号化装置のフィルタ処理部および量子化部による１つのフレーム群の処理手順を表わすフローチャートである。
【図７】第２の実施形態のオーディオ符号化装置のフィルタ処理部および量子化部による１つのフレーム群の処理手順を表わすフローチャートである。
【図８】第２の実施形態のオーディオ符号化装置のストリーム生成部による１つのフレーム群の処理手順を表わすフローチャートである。
【図９】第２の実施形態のオーディオ符号化装置によって生成されるストリームの例を表わす図である。
【図１０】第２の実施形態の変形例のオーディオ符号化装置のフィルタ処理部および量子化部による１つのフレーム群の処理手順を表わすフローチャートである。
【図１１】第２の実施形態の変形例のオーディオ符号化装置のフィルタ処理部および量子化部による１つのフレーム群の処理手順を表わすフローチャートである。
【図１２】第３の実施形態のオーディオ符号化装置のフィルタ処理部および量子化部の動作手順を表わすフローチャートである。
【図１３】第３の実施形態のオーディオ符号化装置のストリーム生成部の動作手順を表わすフローチャートである。
【図１４】第３の実施形態のオーディオ符号化装置によって生成されるストリームの例を表わす図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について図面を参照して説明する。
［第１の実施形態］
図１は、第１の実施形態のオーディオ符号化装置の構成を表わす図である。
【００１３】
図１を参照して、このオーディオ符号化装置１は、フィルタ処理部２と、量子化部３と、蓄積部７と、ストリーム生成部５とを備える。
【００１４】
フィルタ処理部２は、一定時間ごとにサンプリングされた１１５２個のオーディオデータをサブバンド信号に分割し、さらにＭＤＣＴ（Modified Discrete Cosine Transform）スペクトルに変換し、さらに折り返し歪削減バタフライで周波数領域の折返しを除去する。
【００１５】
量子化部３は、フィルタ処理部２から出力されるフィルタ処理された１１５２個のオーディオサンプルからなるオーディオデータを量子化して、蓄積部７に記憶する。すなわち、量子化部３では、心理聴覚分析部で計算された周波数帯域毎の許容量子化雑音電力に関する要求と、ビットレート、及びビットリザーバ（これにより擬似的な可変ビットレートを実現する）の蓄積ビット数を元にして決定される使用可能ビット数の制限のもとで、反復ループ処理によって、量子化ステップサイズ、周波数帯域毎の量子化ビット数を変化させ、スケールファクタを決定して、ＭＤＣＴスペクトルを量子化し、量子化インデックスのハフマン符号化を行なう。量子化部３は、ヘッダおよび付加情報を生成して、ストリーム生成部５に送る。
【００１６】
蓄積部７は、量子化部３で量子化されたオーディオデータを蓄積する。
ストリーム生成部５は、蓄積部７から量子化されたオーディオデータｍａｉｎ＿ｄａｔａを取り出して、ヘッダおよび付加情報を付加して、ＭＰＥＧオーディオレイヤ３のストリームを生成する。ＭＰＥＧオーディオレイヤ３のストリームのフレーム長は一定であって、各フレームは、ヘッダおよび付加情報を含み、メインデータ領域にｍａｉｎ＿ｄａｔａが配置される。
【００１７】
付加情報には、ＭＤＣＴの変換ブロック長に関する情報、量子化ステップサイズ、スケールファクタ関連情報、ハフマン符号化の領域・テーブルに関する情報、ｍａｉｎ＿ｄａｔａ＿ｂｅｇｉｎなどを含む。
【００１８】
各フレームのｍａｉｎ＿ｄａｔａ＿ｂｅｇｉｎは、そのフレームの先頭位置と、そのフレームのヘッダと関連するｍａｉｎ＿ｄａｔａの先頭位置との間の長さ（ヘッダ及び付加情報は除く）を表わす。したがって、ｍａｉｎ＿ｄａｔａ＿ｂｅｇｉｎが「０」の場合には、そのフレームのヘッダと関連するｍａｉｎ＿ｄａｔａがそのフレーム内にあることを示す。ｍａｉｎ＿ｄａｔａ＿ｂｅｇｉｎが「０」以外の場合には、そのフレームのヘッダと関連するｍａｉｎ＿ｄａｔａがそのフレームに先行するフレーム内にあることを示す。
【００１９】
ストリーム生成部５は、蓄積部７内の量子化されたオーディオデータを、ストリーム内のオーディオデータと関連するヘッダが存在するフレームおよび／またはそのヘッダが存在するフレームに先行する１または複数のフレームに配置する（パッケージする）。つまり、第ｉ番目のオーディオデータと関連するヘッダは、ストリームの第ｉフレームに配置されるので、第ｉ番目のオーディオデータを、第ｉフレームおよび／または第ｉフレームに先行する１または複数のフレームに配置する（パッケージする）。
【００２０】
より具体的には、ストリーム生成部５は、所定のフレームについては、そのフレームに含まれるヘッダと関連するオーディオデータの全体を配置し、残りの領域には可能な限り、上限を超えない範囲でオーディオデータの後続のオーディオデータを配置する。たとえば、所定のフレームが第３フレームとすると、第３フレームには、第３フレームに含まれるヘッダと関連する第３番目のオーディオデータの全体が配置され、第３フレームの残りの領域には可能な限り、上限を超えない範囲で第４番目以降のオーディオデータが可能な限り配置される。ここで、上限とは、たとえば、第Ｘ番目のオーディオデータを構成するビット量のうちの、第Ｘフレームに先行する１個以上のフレームに配置できるビット量の最大値である。
【００２１】
ストリーム生成部５は、所定のフレーム以外については、そのフレームに含まれるヘッダと関連するオーディオデータおよび／またはそのオーディオデータの後続のオーディオデータを配置する。ここでも、後続のオーディオデータについては、上限を超えない範囲で配置される。たとえば、所定のフレーム以外のフレームが第４フレームとすると、第４フレームには、第４フレームに含まれるヘッダと関連する第４番目のオーディオデータおよび／または第５番目以降のオーディオデータが配置される。したがって、第４フレームには、第４番目のオーディオデータの一部または全部が含まれない場合がある。
【００２２】
第１の実施形態では、所定のフレームは、一定周期ごと（たとえば、３フレームごと）に存在するものとする。
【００２３】
ストリーム生成部５は、所定のフレーム内に「０」を表わすｍａｉｎ＿ｄａｔａ＿ｂｅｇｉｎを「０」を配置する。
【００２４】
ストリーム生成部５は、フレーム内のメインデータ領域内のオーディオデータが配置されない空き領域をゼロ値で埋める（ゼロパディング）。空き領域は、後続のオーディオデータについては、上述のような上限を超えない範囲という制約が課されるためである。また、所定のフレームのｍａｉｎ＿ｄａｔａ＿ｂｅｇｉｎが「０」のため、所定のフレームおよび所定のフレームに後続するフレームに含まれるヘッダと関連するオーディオデータは、所定のフレームに先行するフレームに配置することができないためである。
【００２５】
図２は、第１の実施形態のオーディオ符号化装置のフィルタ処理部および量子化部の動作手順を表わすフローチャートである。
【００２６】
図２を参照して、まず、オーディオデータ番号ｉが「１」に設定される（ステップＳ１０１）。
【００２７】
次に、オーディオデータ番号ｉのオーディオデータがフィルタ処理部２に入力される（ステップＳ１０２）。
【００２８】
次に、フィルタ処理部２では、フィルタ処理を実行する（ステップＳ１０３）。
次に、量子化部３は、フィルタ処理されたオーディオデータを量子化する。具体的には、オーディオデータ番号ｉを周期Ｄで除算した余りが「１」の場合には、量子化部３は、量子化されたデータ量がフレーム番号ｉのフレーム内のメインデータ領域の容量Ａを超えないように、量子化スケールを調整することによって量子化する。
【００２９】
一方、オーディオデータ番号ｉを周期Ｄで除算した余りが「１」でない場合には、量子化部３は、量子化されたデータ量がフレーム番号ｉのフレーム内のメインデータ領域の容量Ａと、フレーム番号ｉのフレームに先行する１個以上の所定のフレーム内のメインデータ領域内の空き領域の和と所定の上限値のうちの小さい方Ｂとの合計（Ａ＋Ｂ）を超えないように、量子化スケールを調整することによって量子化する。ここで、１個以上の所定のフレームとは、そのフレームのフレーム番号を周期Ｄで除算した余りが「１」であり、かつフレーム番号（ｉ−Ｄ）〜フレーム番号（ｉ−１）のフレームである（ステップＳ１０４）。
【００３０】
次に、量子化部３は、量子化されたオーディオデータをｍａｉｎ＿ｄａｔａ（ｉ）として蓄積部７に保存する（ステップＳ１０５）。
【００３１】
次に、量子化部３は、ｍａｉｎ＿ｄａｔａ（ｉ）についてのヘッダおよび付加情報を生成して、ストリーム生成部５に通知する。ここで、量子化部３は、オーディオデータ番号ｉを周期Ｄで除算した余りが「１」の場合には、付加情報の一部であるｍａｉｎ＿ｄａｔａ＿ｂｅｇｉｎ（ｊ）を「０」に設定し、オーディオデータ番号ｉを周期Ｄで除算した余りが「１」でない場合には、ストリーム内のフレーム番号ｉのフレームの先頭とｍａｉｎ＿ｄａｔａ（ｉ）の先頭位置の間の長さ（付加情報およびヘッダを除く）を付加情報の一部であるｍａｉｎ＿ｄａｔａ＿ｂｅｇｉｎ（ｉ）の値に設定する。また、量子化部３は、ｍａｉｎ＿ｄａｔａ（ｉ）のデータのうち、フレーム番号ｉのフレームに先行する各フレームにどれだけのデータを配置するかの情報(割当情報）もストリーム生成部５に通知する（ステップ１０６）。
【００３２】
次に、オーディオデータ番号ｉを周期Ｄで除算した余りが「０」の場合には（ステップＳ１０７でＹＥＳ）、ストリーム生成部５での消費によって蓄積部７が空になるのを待ってから（ステップＳ１０９）、オーディオデータ番号ｉがインクリメントされて（ステップＳ１０８）、ステップＳ１０２からの処理が繰返される。
【００３３】
一方、オーディオデータ番号ｉを周期Ｄで除算した余りが「０」でない場合には（ステップＳ１０７でＮＯ）、蓄積部７が空になるのを待つことなく、オーディオデータ番号ｉがインクリメントされて（ステップＳ１０８）、ステップＳ１０２からの処理が繰返される。
【００３４】
図３は、第１の実施形態のオーディオ符号化装置のストリーム生成部の動作手順を表わすフローチャートである。
【００３５】
まず、フレーム番号ｊが「１」に設定される（ステップＳ２０１）。
次に、ストリーム生成部５は、量子化部３で作成されたｍａｉｎ＿ｄａｔａ（ｊ）についてのヘッダをフレーム番号ｊのフレームのヘッダ領域に配置する（ステップＳ２０２）。
【００３６】
次に、ストリーム生成部５は、量子化部３で作成されたｍａｉｎ＿ｄａｔａ（ｊ）についての付加情報をフレーム番号ｊのフレームの付加情報領域に配置する（ステップＳ２０３）。
【００３７】
次に、ストリーム生成部５は、量子化部３で作成された割当情報に基づいて、フレーム番号ｊのフレームのメインデータ領域の容量Ａ分のｍａｉｎ＿ｄａｔａを順次、蓄積部７から取り出して、メインデータ領域に配置し、フレームを生成する。ストリーム生成部５は、メインデータ領域内に空き領域が発生した場合には、空き部分をゼロ値で埋める（ゼロパディング）（ステップＳ２０４）。
【００３８】
次に、フレーム番号ｊがインクリメントされて（ステップＳ２０５）、ステップＳ２０２からの処理が繰り返される。
【００３９】
（ストリームの例）
図４は、第１の実施形態のオーディオ符号化装置によって生成されるストリームの例を表わす図である。
【００４０】
図４は、周期Ｄが「３」の場合の例を表わす。
フレーム１、４、７では、ｍａｉｎ＿ｄａｔａ＿ｂｅｇｉｎが「０」に設定されている。
【００４１】
フレーム１のメインデータ領域には、ｍａｉｎ＿ｄａｔａ（１）のすべてのデータが配置され、メインデータ領域の残りには、後続のｍａｉｎ＿ｄａｔａ（２）のすべてのデータと、ｍａｉｎ＿ｄａｔａ（３）の一部のデータが配置される。この例では、ｍａｉｎ＿ｄａｔａ（２）のすべてのデータとｍａｉｎ＿ｄａｔａ（３）の一部のデータの配置は、上限値を超えないという制約を満たしているものとする。
【００４２】
フレーム２のメインデータ領域には、ｍａｉｎ＿ｄａｔａ（３）の一部のデータが配置される。この例では、ｍａｉｎ＿ｄａｔａ（３）の一部のデータの配置は、上限値を超えないという制約を満たしているものとする。
【００４３】
フレーム３のメインデータ領域には、ｍａｉｎ＿ｄａｔａ（３）の一部のデータが配置される。フレーム３のメインデータ領域の空き領域がゼロパディングされる。
【００４４】
フレーム４のメインデータ領域には、ｍａｉｎ＿ｄａｔａ（４）のすべてのデータが配置され、メインデータ領域の残りには、後続のｍａｉｎ＿ｄａｔａ（５）のすべてのデータと、ｍａｉｎ＿ｄａｔａ（６）の一部のデータが配置される。この例では、ｍａｉｎ＿ｄａｔａ（５）のすべてのデータとｍａｉｎ＿ｄａｔａ（６）の一部のデータの配置は、上限値を超えないという制約を満たしているものとする。
【００４５】
フレーム５のメインデータ領域には、ｍａｉｎ＿ｄａｔａ（６）の一部のデータが配置される。この例では、ｍａｉｎ＿ｄａｔａ（６）の一部のデータの配置は、上限値を超えないという制約を満たしているものとする。
【００４６】
フレーム６のメインデータ領域には、ｍａｉｎ＿ｄａｔａ（６）の一部のデータが配置される。フレーム６のメインデータ領域の空き領域がゼロパディングされる。
【００４７】
フレーム７のメインデータ領域には、ｍａｉｎ＿ｄａｔａ（７）のすべてのデータが配置され、メインデータ領域の残りには、後続のｍａｉｎ＿ｄａｔａ（８）のすべてのデータと、ｍａｉｎ＿ｄａｔａ（９）の一部のデータが配置される。この例では、ｍａｉｎ＿ｄａｔａ（８）のすべてのデータとｍａｉｎ＿ｄａｔａ（９）の一部のデータの配置は、上限値を超えないという制約を満たしているものとする。
【００４８】
フレーム８のメインデータ領域には、ｍａｉｎ＿ｄａｔａ（９）の一部のデータが配置される。この例では、ｍａｉｎ＿ｄａｔａ（９）の一部のデータの配置は、上限値を超えないという制約を満たしているものとする。
【００４９】
フレーム９のメインデータ領域には、ｍａｉｎ＿ｄａｔａ（９）の一部のデータが配置される。フレーム９のメインデータ領域の空き領域がゼロパディングされる。
【００５０】
以上のように、本実施の形態によれば、一定周期ごとにｍａｉｎ＿ｄａｔａ＿ｂｅｇｉｎが０になるフレームを設けることによって、早送り再生後に、再生不可能な状態に陥ることを回避できる。
【００５１】
なお、本実施の形態では、図２のステップＳ１０９で蓄積部７が空になるのを待つこととしたが、これに限定するものではない。蓄積部７が空になるのを待たずに、蓄積を継続し、ｉ％Ｄ＝０になったときに、蓄積部７内のデータをクリアし、その後、再度量子化されたデータを蓄積するものとしてもよい。
【００５２】
［第２の実施形態］
図５は、第２の実施形態のオーディオ符号化装置の構成を表わす図である。
【００５３】
図５を参照して、このオーディオ符号化装置２１は、第１の実施形態のオーディオ符号化装置１の構成に加えて、中間バッファ１４を備える。
【００５４】
第１の実施形態では、ストリーム生成部５は、メインデータ領域内のオーディオデータが配置されない空き領域をゼロ値で埋める（ゼロパディング）こととした。
【００５５】
これに対して、本実施の形態では、量子化部１３は、メインデータ領域に空き領域が発生しないように、オーディオデータの量子化スケールを調整する。このような調整のために中間バッファ１４が用いられる。
【００５６】
また、本実施の形態では、量子化部１３は、ストリームのフレームをフレーム群に分割する。量子化部１３は、フレーム群に含まれるフレーム数は一定ではなく、１つのフレーム群の先頭のフレームを所定のフレームとして設定する。
【００５７】
量子化部１３は、直前のフレーム群の最後のフレームの次のフレームである第１のフレームを起点として後続のフレームを順番に選択し、フレーム内のメインデータ領域の容量Ａと選択したフレームに含まれるヘッダと関連する量子化されたオーディオデータの容量との差分を求める。
【００５８】
量子化部１３は、この順次選択によって、差分の合計値が予め設定された蓄積許容容量を超えることになるフレーム、または所定個数選択後の次のフレームを次のフレーム群に存在する所定のフレーム（先頭フレーム）とする。
【００５９】
量子化部１３は、所定のフレームの直前のフレームを第２のフレームとして特定し、第１のフレームから第２のフレームまでを現在のフレーム群として設定する。
【００６０】
図６および図７は、第２の実施形態のオーディオ符号化装置のフィルタ処理部および量子化部による１つのフレーム群の処理手順を表わすフローチャートである。
【００６１】
まず、量子化部１３は、直前のフレーム群の最後のオーディオデータ番号ＬＮに１を加算した値をオーディオデータ番号ｉに設定し、Ｓ１を０に設定する（ステップＳ３０１）。
【００６２】
次に、オーディオデータの入力がある場合には（ステップＳ３０２でＹＥＳ）、オーディオデータ番号ｉのオーディオデータがフィルタ処理部２に入力される（ステップＳ３０３）。
【００６３】
次に、フィルタ処理部２では、フィルタ処理を実行し（ステップＳ３０４）、処理結果を中間バッファ１４に蓄積する（ステップＳ３０５）。
【００６４】
次に、量子化部１３は、中間バッファ１４からデータを取り出して量子化を実行する（ステップＳ３０６）。
【００６５】
次に、量子化部１３は、量子化によって得られたデータをｍａｉｎ＿ｄａｔａ（ｉ）として蓄積部７に保存する（ステップＳ３０７）。
【００６６】
次に、量子化部１３は、ｍａｉｎ＿ｄａｔａ（ｉ）のデータ量をデータ量Ｂ（ｉ）に設定する（ステップＳ３０８）。
【００６７】
次に、量子化部１３は、メインデータ領域の容量ＡからＢ（ｉ）の値を減算した値を差分値Ｃ（ｉ）に設定する（ステップＳ３０９）。
【００６８】
次に、量子化部１３は、差分合計値Ｓ１に直前のステップＳ３０９で得られた差分値Ｃ（ｉ）を加算する（ステップＳ３１０）。
【００６９】
（ｉ−ＬＮ）を周期Ｄで除算した余りが「０」でなく（ステップＳ３１１でＮＯ）、かつ差分合計値Ｓ１が予め設定された蓄積許容容量Ｔ未満の場合（ステップＳ３１２でＮＯ）、オーディオデータ番号ｉがインクリメントされて（ステップＳ３１３）、ステップＳ３０２からの処理が繰返される。
【００７０】
量子化部１３は、（ｉ−ＬＮ）を周期Ｄで除算した余りが「０」の場合（ステップＳ３１１でＹＥＳ）、または次のオーディオデータの入力がない場合（ステップＳ３０２でＮＯ）には、変数Ｍにｉの値を設定する（ステップＳ３１４）。
【００７１】
量子化部１３は、差分合計値Ｓ１が予め設定された蓄積許容容量Ｔを超える場合（ステップＳ３１２でＹＥＳ）、変数（Ｍ＋１）にｉの値を設定する（ステップＳ３１５）。
【００７２】
ここで、量子化部１３は、この順次選択によって、差分の合計値があらかじめ設定された蓄積許容容量を超えることになるフレームの判定をなくし、所定個数選択後の次のフレームを次のフレーム群に存在する所定のフレーム（先頭フレーム）とするといった構成にしてもよい。
【００７３】
次に、量子化部１３は、フレーム番号が（Ｍ＋１）のフレームを次のフレーム群の先頭のフレーム（第１のフレーム）とし、フレーム番号がＭのフレームを第２のフレームとして設定する。量子化部１３は、現在のフレーム群をフレーム番号が（ＬＮ＋１）〜Ｍのフレームに決定する。すなわち、第１のフレームから第２のフレームまでが現在のフレーム群に属すると設定される（ステップＳ３１６）。
【００７４】
次に、量子化部１３は、差分値Ｃ（ＬＮ＋１）＋・・・＋Ｃ（Ｍ）を新たな差分値の情報をＳ２に設定する（ステップＳ３１７）。
【００７５】
次に、量子化部１３は、蓄積部７をクリアする（ステップＳ３１８）。
次に、ＬＮに１を加算した値がオーディオデータ番号ｉに設定される（ステップＳ３１９）。
【００７６】
次に、量子化部１３は、中間バッファ１４からフィルタ処理された第ｉ番目のオーディオデータを取り出して、再量子化する。第１の実施形態と同様に、量子化部１３は、オーディオデータ番号ｉを周期Ｄで除算した余りが「１」の場合には、量子化されたデータ量がフレーム番号ｉのフレーム内のメインデータ領域の容量Ａを超えないように、量子化スケールを調整することによって量子化する。また、量子化部１３は、オーディオデータ番号ｉを周期Ｄで除算した余りが「１」でない場合には、量子化されたデータ量がフレーム番号ｉのフレーム内のメインデータ領域の容量Ａと、フレーム番号ｉのフレームに先行する１個以上の所定のフレーム内のメインデータ領域内の空き領域の和と所定の上限値のうちの小さい方Ｂとの合計（Ａ＋Ｂ）を超えないように、量子化スケールを調整することによって量子化する。例えば、差分値Ｃ(ｉ+１)が正で差分値Ｃ(ｉ)が負の場合、ｉ番目に使用できる容量Ｂの量を、上限値を超えない範囲で増加し、その増加分をｉ+１番目では減らす。あるいは、オーディオデータ番号ＬＮ＋１からＭまで、差分値Ｃの値に応じて、負がなくなる、もしくは、負の部分に正の分を全て回すようにフレーム番号に対応した容量Ｂを制御する。ここで、１個以上の所定のフレームとは、フレーム番号を周期Ｄで除算した余りが「１」であり、かつフレーム番号（ｉ−Ｄ）〜フレーム番号（ｉ−１）のフレームである。さらに、第２の実施形態では、量子化部１３は、第１の実施形態で説明したような空き領域が発生しないように、差分合計値Ｓ２に基づいて、量子化スケールを調整することによって、再量子化する（ステップＳ３２０）。
【００７７】
次に、量子化部１３は、再量子化されたオーディオデータをｍａｉｎ＿ｄａｔａ（ｉ）として蓄積部７に保存する（ステップＳ３２１）。
【００７８】
次に、量子化部１３は、ｍａｉｎ＿ｄａｔａ（ｉ）についてのヘッダおよび付加情報を生成して、ストリーム生成部１５に通知する。ここで、量子化部１３は、ｉが（ＬＮ＋１）の場合には、付加情報の一部であるｍａｉｎ＿ｄａｔａ＿ｂｅｇｉｎ（ｊ）を「０」に設定し、ｉが（ＬＮ＋１）でない場合には、ストリーム内のフレーム番号ｉのフレームの先頭とｍａｉｎ＿ｄａｔａ（ｉ）の先頭位置の間の長さ（付加情報およびヘッダを除く）を付加情報の一部であるｍａｉｎ＿ｄａｔａ＿ｂｅｇｉｎ（ｉ）の値に設定する。また、量子化部１３は、ｍａｉｎ＿ｄａｔａ（ｉ）のデータのうち、フレーム番号ｉのフレームに先行する各フレームにどれだけのデータを配置するかの情報(割当情報）もストリーム生成部１５に通知する（ステップＳ３２２）。
【００７９】
オーディオデータ番号ｉがＭとなるまで（ステップＳ３２３でＹＥＳ）、オーディオデータ番号ｉがインクリメントされて（ステップＳ３２４）、ステップＳ３２０からの処理が繰り返される。
【００８０】
図８は、第２の実施形態のオーディオ符号化装置のストリーム生成部による１つのフレーム群の処理手順を表わすフローチャートである。
【００８１】
まず、ストリーム生成部１５は、直前のフレーム群の最後のオーディオデータ番号ＬＮに１を加算した値をフレーム番号ｊに設定する。フレーム番号が（ＬＮ＋１）のフレームを第１のフレームとする（ステップＳ４０１）。
【００８２】
次に、ストリーム生成部１５は、量子化部１３で作成されたｍａｉｎ＿ｄａｔａ（ｉ）についてのヘッダをフレーム番号ｊのフレームのヘッダ領域に配置する（ステップＳ４０２）。
【００８３】
次に、ストリーム生成部１５は、量子化部１３で作成されたｍａｉｎ＿ｄａｔａ（ｉ）についての付加情報をフレーム番号ｊのフレームの付加情報領域に配置する（ステップＳ４０３）。
【００８４】
次に、ストリーム生成部１５は、フレーム番号ｊのフレームのメインデータ領域の容量Ａ分のｍａｉｎ＿ｄａｔａを蓄積部７から取り出して、メインデータ領域に配置する（ステップＳ４０４）。
【００８５】
その後、フレーム番号ｊがインクリメントされて（ステップＳ４０６）、ステップＳ４０２からの処理が繰返される。
【００８６】
（ストリームの例）
図９は、第２の実施形態のオーディオ符号化装置によって生成されるストリームの例を表わす図である。
【００８７】
第１の実施形態では、図４に示すように、フレーム３、６、９がゼロパディングされていたのに対して、本実施の形態では、メインデータ領域に空き領域が発生しないように、オーディオデータの量子化スケールを調整するので、図９に示すように、ゼロパディングされるフレームが存在しない。
【００８８】
以上のように、本実施の形態によれば、ｍａｉｎ＿ｄａｔａ＿ｂｅｇｉｎが０になるフレームの直前のフレームの空き領域が発生するのを防止することによって、オーディオの品質を高くするとができる。
【００８９】
［第２の実施形態の変形例］
本変形例では、量子化部１３は、直前のフレーム群の最後のフレームの次のフレームである第１のフレームおよび後続の所定個数の複数のフレームのうち、フレームに含まれるヘッダと関連する量子化されたオーディオデータの容量が最小となるフレームを次のフレーム群に存在する所定のフレームとして設定する。量子化部１３は、所定のフレームの直前のフレームを第２のフレームとして特定し、第１のフレームから第２のフレームまでを現在のフレーム群として設定する。
【００９０】
図１０および図１１は、第２の実施形態の変形例のオーディオ符号化装置のフィルタ処理部および量子化部による１つのフレーム群の処理手順を表わすフローチャートである。
【００９１】
まず、量子化部１３は、直前のフレーム群の最後のオーディオデータ番号ＬＮに１を加算した値をオーディオデータ番号ｉに設定し、Ｓ１を０に設定する（ステップＳ５０１）。
【００９２】
次に、オーディオデータの入力がある場合には（ステップＳ５０２でＹＥＳ）、オーディオデータ番号ｉのオーディオデータがフィルタ処理部２に入力される（ステップＳ５０３）。
【００９３】
次に、フィルタ処理部２では、フィルタ処理を実行し（ステップＳ５０４）、処理結果を中間バッファ１４に蓄積する（ステップＳ５０５）。
【００９４】
次に、量子化部１３は、中間バッファ１４からデータを取り出して量子化を実行する（ステップＳ５０６）。
【００９５】
次に、量子化部１３は、量子化によって得られたデータをｍａｉｎ＿ｄａｔａ（ｉ）として蓄積部７に保存する（ステップＳ５０７）。
【００９６】
次に、量子化部１３は、ｍａｉｎ＿ｄａｔａ（ｉ）のデータ量をデータ量Ｂ（ｉ）に設定する（ステップＳ５０８）。
【００９７】
次に、量子化部１３は、メインデータ領域の容量ＡからＢ（ｉ）の値を減算した値を差分値Ｃ（ｉ）に設定する（ステップＳ５０９）。
【００９８】
次に、量子化部１３は、差分合計値Ｓ１に直前のステップＳ５０９で得られた差分値Ｃ（ｉ）を加算する（ステップＳ５１０）。
【００９９】
（ｉ−ＬＮ）を周期Ｄで除算した余りが「０」でなく（ステップＳ５１１でＮＯ）、かつ差分合計値Ｓ１が蓄積部４の容量Ｔ未満の場合（ステップＳ５１２でＮＯ）、オーディオデータ番号ｉがインクリメントされて（ステップＳ５１３）、ステップＳ５０２からの処理が繰返される。
【０１００】
量子化部１３は、（ｉ−ＬＮ）を周期Ｄで除算した余りが「０」の場合（ステップＳ５１１でＹＥＳ）、または、次のオーディオデータの入力がない場合（ステップＳ５０２でＮＯ）、または差分合計値Ｓ１が蓄積部４の容量Ｔを超える場合（ステップＳ５１２でＹＥＳ）、Ｃ（ｋ）（ｋ＝ＬＮ＋１〜ｉ）のうちの最大のｋを特定して、特定した最大のｋを変数（Ｍ＋１）の値に設定する（ステップＳ５１４）。
【０１０１】
量子化部１３は、フレーム番号が（Ｍ＋１）のフレームを次のフレーム群の先頭のフレーム（第１のフレーム）とし、フレーム番号がＭのフレームを第２のフレームとして設定する。量子化部１３は、現在のフレーム群をフレーム番号が（ＬＮ＋１）〜Ｍのフレームに決定する。すなわち、第１のフレームから第２のフレームまでが現在のフレーム群に属すると設定される（ステップＳ５１５）。
【０１０２】
次に、量子化部１３は、差分値Ｃ（ＬＮ＋１）＋・・・＋Ｃ（Ｍ）を新たな差分値の情報をＳ２に設定する（ステップＳ５１７）。
【０１０３】
次に、量子化部１３は、蓄積部７をクリアする（ステップＳ５１８）。
次に、ＬＮに１を加算した値がオーディオデータ番号ｉに設定される（ステップＳ５１９）。
【０１０４】
次に、量子化部１３は、中間バッファ１４からフィルタ処理された第ｉ番目のオーディオデータを取り出して、再量子化する。第１の実施形態と同様に、量子化部１３は、オーディオデータ番号ｉを周期Ｄで除算した余りが「１」の場合には、量子化されたデータ量がフレーム番号ｉのフレーム内のメインデータ領域の容量Ａを超えないように、量子化スケールを調整することによって量子化する。また、量子化部１３は、オーディオデータ番号ｉを周期Ｄで除算した余りが「１」でない場合には、量子化されたデータ量がフレーム番号ｉのフレーム内のメインデータ領域の容量Ａと、フレーム番号ｉのフレームに先行する１個以上の所定のフレーム内のメインデータ領域内の空き領域の和と所定の上限値のうちの小さい方Ｂとの合計（Ａ＋Ｂ）を超えないように、量子化スケールを調整することによって量子化する。例えば、差分値Ｃ(ｉ+１)が正で差分値Ｃ(ｉ)が負の場合、ｉ番目に使用できる容量Ｂの量を、上限値を超えない範囲で増加し、その増加分をｉ+１番目では減らす。あるいは、オーディオデータ番号ＬＮ＋１からＭまで、差分値Ｃの値に応じて、負がなくなる、もしくは、負の部分に正の分を全て回すようにフレーム番号に対応した容量Ｂを制御する。ここで、１個以上の所定のフレームとは、フレーム番号を周期Ｄで除算した余りが「１」であり、かつフレーム番号（ｉ−Ｄ）〜フレーム番号（ｉ−１）のフレームである。さらに、本変形例では、量子化部１３は、第１の実施形態で説明したような空き領域が発生しないように、差分合計値Ｓ２に基づいて、量子化スケールを調整することによって、再量子化する（ステップＳ５２０）。
【０１０５】
次に、量子化部１３は、再量子化されたオーディオデータをｍａｉｎ＿ｄａｔａ（ｉ）として蓄積部７に保存する（ステップＳ５２１）。
【０１０６】
次に、量子化部１３は、ｍａｉｎ＿ｄａｔａ（ｉ）についてのヘッダおよび付加情報を生成して、ストリーム生成部１５に通知する。ここで、量子化部１３は、ｉが（ＬＮ＋１）の場合には、付加情報の一部であるｍａｉｎ＿ｄａｔａ＿ｂｅｇｉｎ（ｊ）を「０」に設定し、ｉが（ＬＮ＋１）でない場合には、ストリーム内のフレーム番号ｉのフレームの先頭とｍａｉｎ＿ｄａｔａ（ｉ）の先頭位置の間の長さ（付加情報およびヘッダを除く）を付加情報の一部であるｍａｉｎ＿ｄａｔａ＿ｂｅｇｉｎ（ｉ）の値に設定する。また、量子化部１３は、ｍａｉｎ＿ｄａｔａ（ｉ）のデータのうち、フレーム番号ｉのフレームに先行する各フレームにどれだけのデータを配置するかの情報(割当情報）もストリーム生成部１５に通知する（ステップＳ５２２）。
【０１０７】
オーディオデータ番号ｉがＭとなるまで（ステップＳ５２３でＹＥＳ）、オーディオデータ番号ｉがインクリメントされて（ステップＳ５２４）、ステップＳ５２０からの処理が繰り返される。
【０１０８】
本変形例のオーディオ符号化装置のストリーム生成部１５による１つのフレーム群の処理手順は、第２の実施形態と同様なので、説明を繰り返さない。
【０１０９】
［第３の実施形態］
第３の実施形態が、第１の実施形態と相違する点は、量子化部３である。
【０１１０】
第１の実施形態では、量子化部３は、一定周期ごとに存在するフレームについては、固定長のメインデータ領域の容量Ａを超えないように、量子化スケールを調整することによって、対応のオーディオデータを量子化した。
【０１１１】
これに対して、本実施の形態では、量子化部３は、一定周期ごとに存在するフレームについては、メインデータ領域のデフォルト容量Ａを超えないように量子化スケールを調整する代わりに、メインデータ領域の大きさを可変、すなわちフレームのサイズを可変とする。これによって、オーディオデータの量子化後のデータ量がデフォルト容量Ａを超えた場合でも、メインデータ領域の大きさが増加するので、このフレームにオーディオデータの量子化後のデータを収容することができる。
【０１１２】
図１２は、第３の実施形態のオーディオ符号化装置のフィルタ処理部および量子化部の動作手順を表わすフローチャートである。
【０１１３】
図１２を参照して、まず、オーディオデータ番号ｉが「１」に設定される（ステップＳ６０１）。
【０１１４】
次に、オーディオデータ番号ｉのオーディオデータがフィルタ処理部２に入力される（ステップＳ６０２）。
【０１１５】
次に、フィルタ処理部２では、フィルタ処理を実行する（ステップＳ６０３）。
次に、量子化部３は、フィルタ処理されたオーディオデータを量子化する。具体的には、オーディオデータ番号ｉを周期Ｄで除算した余りが「１」の場合には、量子化部３は、量子化されたデータ量がフレーム番号ｉのフレーム内のメインデータ領域の容量Ａを超えるかを気にすることなく量子化する。一方、オーディオデータ番号ｉを周期Ｄで除算した余りが「１」でない場合には、量子化部３は、量子化されたデータ量がフレーム番号ｉのフレーム内のメインデータ領域の容量Ａと、フレーム番号ｉのフレームに先行する１個以上の所定のフレーム内のメインデータ領域内の空き領域の和と所定の上限値のうちの小さい方Ｂとの合計（Ａ＋Ｂ）を超えないように、量子化スケールを調整することによって量子化する。ここで、１個以上の所定のフレームとは、フレーム番号を周期Ｄで除算した余りが「１」であり、かつフレーム番号（ｉ−Ｄ）〜フレーム番号（ｉ−１）のフレームである（ステップＳ６０４）。
【０１１６】
次に、量子化部３は、量子化されたオーディオデータをｍａｉｎ＿ｄａｔａ（ｉ）として蓄積部７に保存する（ステップＳ６０５）。
【０１１７】
次に、量子化部３は、ｍａｉｎ＿ｄａｔａ（ｉ）についてのヘッダおよび付加情報を生成して、ストリーム生成部５に通知する。ここで、量子化部３は、オーディオデータ番号ｉを周期Ｄで除算した余りが「１」の場合には、付加情報の一部であるｍａｉｎ＿ｄａｔａ＿ｂｅｇｉｎ（ｊ）を「０」に設定し、オーディオデータ番号ｉを周期Ｄで除算した余りが「１」でない場合には、ストリーム内のフレーム番号ｉのフレームの先頭とｍａｉｎ＿ｄａｔａ（ｉ）の先頭位置の間の長さ（付加情報およびヘッダを除く）を付加情報の一部であるｍａｉｎ＿ｄａｔａ＿ｂｅｇｉｎ（ｉ）の値に設定する。また、量子化部３は、ｍａｉｎ＿ｄａｔａ（ｉ）のデータのうち、フレーム番号ｉのフレームに先行する各フレームにどれだけのデータを配置するかの情報(割当情報）もストリーム生成部５に通知する（ステップ６０６）。
【０１１８】
次に、オーディオデータ番号ｉを周期Ｄで除算した余りが「０」の場合には（ステップＳ６０７でＹＥＳ）、ストリーム生成部５での消費によって蓄積部７が空になるのを待ってから（ステップＳ６０９）、オーディオデータ番号ｉがインクリメントされて（ステップＳ６０８）、ステップＳ６０２からの処理が繰返される。
【０１１９】
一方、オーディオデータ番号ｉを周期Ｄで除算した余りが「０」でない場合には（ステップＳ６０７でＮＯ）、蓄積部７が空になるのを待つことなく、オーディオデータ番号ｉがインクリメントされて（ステップＳ６０８）、ステップＳ６０２からの処理が繰返される。
【０１２０】
図１３は、第３の実施形態のオーディオ符号化装置のストリーム生成部５の動作手順を表わすフローチャートである。
【０１２１】
まず、フレーム番号ｊが「１」に設定される（ステップＳ７０１）。
次に、ストリーム生成部５は、量子化部３で作成されたｍａｉｎ＿ｄａｔａ（ｊ）についてのヘッダをフレーム番号ｊのフレームのヘッダ領域に配置する（ステップＳ７０２）。
【０１２２】
次に、ストリーム生成部５は、量子化部３で作成されたｍａｉｎ＿ｄａｔａ（ｊ）についての付加情報をフレーム番号ｊのフレームの付加情報領域に配置する（ステップＳ７０３）。
【０１２３】
次に、ストリーム生成部５は、量子化部３で作成された割当情報に基づいて、フレーム番号ｊのフレームのメインデータ領域の容量Ａ分のｍａｉｎ＿ｄａｔａを蓄積部７から取り出して、メインデータ領域に配置する。ストリーム生成部５は、フレーム番号ｊを周期Ｄで除算した余りが「１」のフレームについては、フレームのサイズをｍａｉｎ＿ｄａｔａ（ｊ）の大きさだけのメインデータ領域を有するようなサイズに拡張または縮小する。また、ストリーム生成部５は、フレーム番号ｊを周期Ｄで除算した余りが「１」のフレームについては、フレームサイズを固定とするとともに、メインデータ領域内に空き領域が発生した場合には、空き部分をゼロ値で埋める（ゼロパディング）（ステップＳ７０４）。
【０１２４】
次に、フレーム番号ｊがインクリメントされて（ステップＳ７０５）、ステップＳ７０２からの処理が繰り返される。
【０１２５】
（ストリームの例）
図１４は、第３の実施形態のオーディオ符号化装置によって生成されるストリームの例を表わす図である。
【０１２６】
図１４に示すように、周期Ｄが「３」の場合の例を表わす。
フレーム１では、ｍａｉｎ＿ｄａｔａ（１）のデータ量がメインデータ領域のデフォルト容量Ａを超えないため、フレーム長がデフォルトのまま変化せず、デフォルト容量Ａのメインデータ領域にｍａｉｎ＿ｄａｔａ（１）が配置され、残りのメインデータ領域にｍａｉｎ＿ｄａｔａ（２）以降のデータが配置される。
【０１２７】
一方、フレーム４では、ｍａｉｎ＿ｄａｔａ（４）のデータ量がメインデータ領域のデフォルト容量Ａを超えるため、フレーム長がデフォルトから拡張され、拡大したメインデータ領域にｍａｉｎ＿ｄａｔａ（４）のデータが配置される。
【０１２８】
また、フレーム７では、ｍａｉｎ＿ｄａｔａ（７）のデータ量がメインデータ領域のデフォルト容量Ａを超えるため、フレーム長がデフォルトから拡張され、拡大したメインデータ領域にｍａｉｎ＿ｄａｔａ（７）のデータが配置される。
【０１２９】
以上のように、本実施の形態では、ｍａｉｎ＿ｄａｔａ＿ｂｅｇｉｎが０になるフレームの長さを可変にすることによって、このフレームのオーディオデータの品質が落ちるのを防止することができる。
【０１３０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１３１】
１，２１  オーディオ符号化装置、２  フィルタ処理部、３，１３  量子化部、４  蓄積部、５，１５  ストリーム生成部。
【図１】
0005814802.tif 000002
【図２】
0005814802.tif 000003
【図３】
0005814802.tif 000004
【図４】
0005814802.tif 000005
【図５】
0005814802.tif 000006
【図６】
0005814802.tif 000007
【図７】
0005814802.tif 000008
【図８】
0005814802.tif 000009
【図９】
0005814802.tif 000010
【図１０】
0005814802.tif 000011
【図１１】
0005814802.tif 000012
【図１２】
0005814802.tif 000013
【図１３】
0005814802.tif 000014
【図１４】
0005814802.tif 000015