(57)【特許請求の範囲】
【請求項１】
複数の元データから構成される元データストリームを、元データストリームの低域成分から構成される低域データストリーム及び元データストリームの高域成分から構成される高域データストリームに変換する順変換処理、並びに、上記順変換処理に対する逆変換処理を行う５×３ウェーブレット変換装置において、
データＡｉｎ０，データＡｉｎ１が入力され、下記式１に示す演算を行ってデータＡｍｉｄｄｌｅを求め、このデータＡｍｉｄｄｌｅの小数部分を０としてデータＡｏｕｔを生成し、このデータＡｏｕｔを出力する第１の演算手段と、
データＢｉｎ０及びデータＢｉｎ１が入力され、下記式２に示す演算を行ってデータＢｍｉｄｄｌｅを求め、このデータＢｍｉｄｄｌｅの小数部を０としてデータＢｏｕｔを生成し、このデータＢｏｕｔを出力する第２の演算手段と、
データＣ０ｉｎ０及びデータＣ０ｉｎ１が入力され、下記式３に示す演算を行ってデータＣ０ｏｕｔを求め、このデータＣ０ｏｕｔを出力する第３の演算手段と、
データＣ１ｉｎ０及びデータＣ１ｉｎ１が入力され、下記式４に示す演算を行ってデータＣ１ｏｕｔを求め、このデータＣ１ｏｕｔを出力する第４の演算手段とを備え、
順変換処理時には、
先頭データから最終データまで、２ステップごとに上記元データストリームが入力され、
上記第１の演算手段には、データＡｉｎ０として高域データストリームの（Ｍ−１）番目のデータ入力され、データＡｉｎ１として上記第４の演算手段から出力されたデータＣ１ｏｕｔが入力され、
上記第２の演算手段には、データＢｉｎ０として元データストリームの（Ｌ−１）番目のデータが入力され、データＢｉｎ１として元データストリームの（Ｌ＋１）番目のデータが入力され、
上記第３の演算手段には、データＣ０ｉｎ０として元データストリームの（Ｌ−１）番目のデータが入力され、データＣ０ｉｎ１として上記第１の演算手段から出力されたデータＡｏｕｔが入力され、
上記第４の演算手段には、データＣ１ｉｎ０として元データストリームの（Ｌ）番目のデータが入力され、データＣ１ｉｎ１として上記第２の演算手段から出力されるデータＢｏｕｔが入力され、
高域データストリームのＭ番目のデータとして上記第４の演算手段から出力されるデータＣ１ｏｕｔを出力し、低域データストリームのＮ番目のデータとして上記第３の演算手段から出力されるデータＣ０ｏｕｔを出力し、
逆変換処理時には、
先頭データから最終データまで、１ステップごとに上記低域データストリーム及び高域データストリームが入力され、
上記第１の演算手段には、データＡｉｎ０として高域データストリームの（Ｍ）番目のデータ入力され、データＡｉｎ１として高域データストリームの（Ｍ＋１）番目のデータが入力され、
上記第２の演算手段には、データＢｉｎ０として元データストリームの（Ｌ−１）番目のデータが入力され、データＢｉｎ１として上記第４の演算手段から出力されたデータＣ１ｏｕｔが入力され、
上記第３の演算手段には、データＣ０ｉｎ０として高域データストリームの（Ｍ）番目のデータが入力され、データＣ０ｉｎ１として上記第２の演算手段から出力されたデータＢｏｕｔが入力され、
上記第４の演算手段には、データＣ１ｉｎ０として低域データストリームの（Ｎ＋１）番目のデータが入力され、データＣ１ｉｎ１として上記第１の演算手段から出力されるデータＡｏｕｔが入力され、
元データストリームのＬ番目のデータとして上記第３の演算手段から出力されるデータＣ１ｏｕｔを出力し、元データストリームの（Ｌ＋１）番目のデータとして上記第４の演算手段から出力されるデータＣ１ｏｕｔを出力すること
を特徴とする５×３ウェーブレット変換装置。
Ａｍｉｄｄｌｅ  ＝  （Ａｉｎ０  ＋  Ａｉｎ１  ＋  Ｃｏｅｆｆ＿Ａ）２    ＞＞  ２  ・・・（式１）
Ｂｍｉｄｄｌｅ  ＝  （Ｂｉｎ０  ＋  Ｂｉｎ１）  ２  ＞＞  １                      ・・・（式２）
Ｃ０ｏｕｔ      ＝  （Ｃ０ｉｎ０  ＋  Ｃ０ｉｎ１）                              ・・・（式３）
Ｃ１ｏｕｔ      ＝  （Ｃ１ｉｎ０  −  Ｃ１ｉｎ１）                              ・・・（式４）
上記（式１），（式２），（式３），（式４）において、ＸＹ  は、数値ＸがＹ進数で表されたデータであることを示し、Ｘ２＞＞Ｙは、２進数の数値であるＸをＹビット分算術右シフト演算することを示す。
Ｃｏｅｆｆ＿Ａは、２（１０進数）である。
上記Ｌ，Ｍ，Ｎは、｛Ｌ＝２Ｍ＝２Ｎ｝又は｛（Ｌ＋１）＝２Ｍ＝２（Ｎ＋１）｝の関係を有する整数である。
【請求項２】
上記第１の演算手段には、
順変換処理時に、高域データストリームの（Ｍ−１）番目のデータが存在しない場合には、データＡｉｎ０として高域データストリームの（Ｍ）番目のデータが入力されること
を特徴とする請求項１記載の５×３ウェーブレット変換装置。
【請求項３】
上記第２の演算手段には、
順変換処理時に、元データストリームの（Ｌ−１）番目のデータが存在しない場合には、データＢｉｎ０として元データストリームの（Ｌ＋１）番目のデータが入力されること
を特徴とする請求項１記載の５×３ウェーブレット変換装置。
【請求項４】
上記第１の演算手段には、
逆変換処理時に、高域データストリームの（Ｍ）番目のデータが存在しない場合には、データＡｉｎ０として高域データストリームの（Ｍ＋１）番目のデータが入力されること
を特徴とする請求項１記載の５×３ウェーブレット変換装置。
【請求項５】
上記第２の演算手段には、
逆方向変換時に、元データストリームの（Ｌ−１）番目のデータが存在しない場合には、データＢｉｎ０として元データストリームの（Ｌ＋１）番目のデータが入力されること
を特徴とする請求項１記載の５×３ウェーブレット変換装置。
【請求項６】
上記第１の演算手段には、
順変換処理時に、第４の演算手段から出力されたデータＣ１ｏｕｔが存在しない場合には、データＡｉｎ１として高域データストリームの（Ｍ−１）番目のデータが入力されること
を特徴とする請求項１記載の５×３ウェーブレット変換装置。
【請求項７】
上記第２の演算手段には、
順変換処理時に、元データストリームの（Ｌ＋１）番目のデータが存在しない場合には、データＢｉｎ１として元データストリームの（Ｌ−１）番目のデータが入力されること
を特徴とする請求項１記載の５×３ウェーブレット変換装置。
【請求項８】
上記第１の演算手段には、
逆変換処理時に、高域データストリームの（Ｍ＋１）番目のデータが存在しない場合には、データＡｉｎ１として高域データストリームの（Ｍ）番目のデータが入力されること
を特徴とする請求項１記載の５×３ウェーブレット変換装置。
【請求項９】
上記第２の演算手段には、
逆方向変換時に、第４の演算手段から出力されたデータＣ１ｏｕｔが存在しない場合には、データＢｉｎ１として元データストリームの（Ｌ−１）番目のデータが入力されること
を特徴とする請求項１記載の５×３ウェーブレット変換装置。
【請求項１０】
複数の元データから構成される元データストリームを、元データストリームの低域成分から構成される低域データストリーム及び元データストリームの高域成分から構成される高域データストリームに変換する順変換処理、並びに、上記順変換処理に対する逆変換処理を行う５×３ウェーブレット変換装置において、
データＡｉｎ０，データＡｉｎ１が入力され、下記式１に示す演算を行ってデータＡｍｉｄｄｌｅを求め、このデータＡｍｉｄｄｌｅをデータＡｏｕｔとして出力する第１の演算手段と、
データＢｉｎ０及びデータＢｉｎ１が入力され、下記式２に示す演算を行ってデータＢｍｉｄｄｌｅを求め、このデータＢｍｉｄｄｌｅをデータＢｏｕｔとして出力する第２の演算手段と、
データＣ０ｉｎ０及びデータＣ０ｉｎ１が入力され、下記式３に示す演算を行ってデータＣ０ｏｕｔを求め、このデータＣ０ｏｕｔを出力する第３の演算手段と、
データＣ１ｉｎ０及びデータＣ１ｉｎ１が入力され、下記式４に示す演算を行ってデータＣ１ｏｕｔを求め、このデータＣ１ｏｕｔを出力する第４の演算手段とを備え、
順変換処理時には、
先頭データから最終データまで、２ステップごとに上記元データストリームが入力され、
上記第１の演算手段には、データＡｉｎ０として高域データストリームの（Ｍ−１）番目のデータ入力され、データＡｉｎ１として上記第４の演算手段から出力されたデータＣ１ｏｕｔが入力され、
上記第２の演算手段には、データＢｉｎ０として元データストリームの（Ｌ−１）番目のデータが入力され、データＢｉｎ１として元データストリームの（Ｌ＋１）番目のデータが入力され、
上記第３の演算手段には、データＣ０ｉｎ０として元データストリームの（Ｌ−１）番目のデータが入力され、データＣ０ｉｎ１として上記第１の演算手段から出力されたデータＡｏｕｔが入力され、
上記第４の演算手段には、データＣ１ｉｎ０として元データストリームの（Ｌ）番目のデータが入力され、データＣ１ｉｎ１として上記第２の演算手段から出力されるデータＢｏｕｔが入力され、
高域データストリームのＭ番目のデータとして上記第４の演算手段から出力されるデータＣ１ｏｕｔを出力し、低域データストリームのＮ番目のデータとして上記第３の演算手段から出力されるデータＣ０ｏｕｔを出力し、
逆変換処理時には、
先頭データから最終データまで、１ステップごとに上記低域データストリーム及び高域データストリームが入力され、
上記第１の演算手段には、データＡｉｎ０として高域データストリームの（Ｍ）番目のデータ入力され、データＡｉｎ１として高域データストリームの（Ｍ＋１）番目のデータが入力され、
上記第２の演算手段には、データＢｉｎ０として元データストリームの（Ｌ−１）番目のデータが入力され、データＢｉｎ１として上記第４の演算手段から出力されたデータＣ１ｏｕｔが入力され、
上記第３の演算手段には、データＣ０ｉｎ０として高域データストリームの（Ｍ）番目のデータが入力され、データＣ０ｉｎ１として上記第２の演算手段から出力されたデータＢｏｕｔが入力され、
上記第４の演算手段には、データＣ１ｉｎ０として低域データストリームの（Ｎ＋１）番目のデータが入力され、データＣ１ｉｎ１として上記第１の演算手段から出力されるデータＡｏｕｔが入力され、
元データストリームのＬ番目のデータとして上記第３の演算手段から出力されるデータＣ１ｏｕｔを出力し、元データストリームの（Ｌ＋１）番目のデータとして上記第４の演算手段から出力されるデータＣ１ｏｕｔを出力すること
を特徴とする５×３ウェーブレット変換装置。
Ａｍｉｄｄｌｅ  ＝  ０．２５＊（Ａｉｎ０  ＋  Ａｉｎ１）                        ・・・（式１）
Ｂｍｉｄｄｌｅ  ＝  ０．５＊（Ｂｉｎ０  ＋  Ｂｉｎ１）                          ・・・（式２）
Ｃ０ｏｕｔ      ＝  （Ｃ０ｉｎ０  ＋  Ｃ０ｉｎ１）                              ・・・（式３）
Ｃ１ｏｕｔ      ＝  （Ｃ１ｉｎ０  −  Ｃ１ｉｎ１）                              ・・・（式４）
上記Ｌ，Ｍ，Ｎは、｛Ｌ＝２Ｍ＝２Ｎ｝又は｛（Ｌ＋１）＝２Ｍ＝２（Ｎ＋１）｝の関係を有する整数である。
【請求項１１】
上記第１の演算手段には、
順変換処理時に、高域データストリームの（Ｍ−１）番目のデータが存在しない場合には、データＡｉｎ０として高域データストリームの（Ｍ）番目のデータが入力されること
を特徴とする請求項１０記載の５×３ウェーブレット変換装置。
【請求項１２】
上記第２の演算手段には、
順変換処理時に、元データストリームの（Ｌ−１）番目のデータが存在しない場合には、データＢｉｎ０として元データストリームの（Ｌ＋１）番目のデータが入力されること
を特徴とする請求項１０記載の５×３ウェーブレット変換装置。
【請求項１３】
上記第１の演算手段には、
逆変換処理時に、高域データストリームの（Ｍ）番目のデータが存在しない場合には、データＡｉｎ０として高域データストリームの（Ｍ＋１）番目のデータが入力されること
を特徴とする請求項１０記載の５×３ウェーブレット変換装置。
【請求項１４】
上記第２の演算手段には、
逆方向変換時に、元データストリームの（Ｌ−１）番目のデータが存在しない場合には、データＢｉｎ０として元データストリームの（Ｌ＋１）番目のデータが入力されること
を特徴とする請求項１０記載の５×３ウェーブレット変換装置。
【請求項１５】
上記第１の演算手段には、
順変換処理時に、第４の演算手段から出力されたデータＣ１ｏｕｔが存在しない場合には、データＡｉｎ１として高域データストリームの（Ｍ−１）番目のデータが入力されること
を特徴とする請求項１０記載の５×３ウェーブレット変換装置。
【請求項１６】
上記第２の演算手段には、
順変換処理時に、元データストリームの（Ｌ＋１）番目のデータが存在しない場合には、データＢｉｎ１として元データストリームの（Ｌ−１）番目のデータが入力されること
を特徴とする請求項１０記載の５×３ウェーブレット変換装置。
【請求項１７】
上記第１の演算手段には、
逆変換処理時に、高域データストリームの（Ｍ＋１）番目のデータが存在しない場合には、データＡｉｎ１として高域データストリームの（Ｍ）番目のデータが入力されること
を特徴とする請求項１０記載の５×３ウェーブレット変換装置。
【請求項１８】
上記第２の演算手段には、
逆方向変換時に、第４の演算手段から出力されたデータＣ１ｏｕｔが存在しない場合には、データＢｉｎ１として元データストリームの（Ｌ−１）番目のデータが入力されること
を特徴とする請求項１０記載の５×３ウェーブレット変換装置。
【請求項１９】
複数の元データから構成される元データストリームを、元データストリームの低域成分から構成される低域データストリーム及び元データストリームの高域成分から構成される高域データストリームに変換する順変換処理、並びに、上記順変換処理に対する逆変換処理を行う５×３ウェーブレット変換装置において、
データＡｉｎ０，データＡｉｎ１が入力され、可逆変換時には下記式１に示す演算を行ってデータＡｍｉｄｄｌｅを求め、非可逆変換時には下記式１´に示す演算を行ってデータＡｍｉｄｄｌｅを求め、可逆変換時にはこのデータＡｍｉｄｄｌｅの小数部分を０としたデータＡｏｕｔを出力し、非可逆変換時にはこのデータＡｍｉｄｄｌｅをそのままデータＡｏｕｔとして出力する第１の演算手段と、
データＢｉｎ０及びデータＢｉｎ１が入力され、下記式２に示す演算を行ってデータＢｍｉｄｄｌｅを求め、可逆変換時にはこのデータＢｍｉｄｄｌｅの小数部分を０としたデータＢｏｕｔを出力し、非可逆変換時にはこのデータＢｍｉｄｄｌｅをそのままデータＢｏｕｔとして出力する第２の演算手段と、
データＣ０ｉｎ０及びデータＣ０ｉｎ１が入力され、下記式３に示す演算を行ってデータＣ０ｏｕｔを求め、このデータＣ０ｏｕｔを出力する第３の演算手段と、
データＣ１ｉｎ０及びデータＣ１ｉｎ１が入力され、下記式４に示す演算を行ってデータＣ１ｏｕｔを求め、このデータＣ１ｏｕｔを出力する第４の演算手段とを備え、
順変換処理時には、
先頭データから最終データまで、２ステップごとに上記元データストリームが入力され、
上記第１の演算手段には、データＡｉｎ０として高域データストリームの（Ｍ−１）番目のデータ入力され、データＡｉｎ１として上記第４の演算手段から出力されたデータＣ１ｏｕｔが入力され、
上記第２の演算手段には、データＢｉｎ０として元データストリームの（Ｌ−１）番目のデータが入力され、データＢｉｎ１として元データストリームの（Ｌ＋１）番目のデータが入力され、
上記第３の演算手段には、データＣ０ｉｎ０として元データストリームの（Ｌ−１）番目のデータが入力され、データＣ０ｉｎ１として上記第１の演算手段から出力されたデータＡｏｕｔが入力され、
上記第４の演算手段には、データＣ１ｉｎ０として元データストリームの（Ｌ）番目のデータが入力され、データＣ１ｉｎ１として上記第２の演算手段から出力されるデータＢｏｕｔが入力され、
高域データストリームのＭ番目のデータとして上記第４の演算手段から出力されるデータＣ１ｏｕｔを出力し、低域データストリームのＮ番目のデータとして上記第３の演算手段から出力されるデータＣ０ｏｕｔを出力し、
逆変換処理時には、
先頭データから最終データまで、１ステップごとに上記低域データストリーム及び高域データストリームが入力され、
上記第１の演算手段には、データＡｉｎ０として高域データストリームの（Ｍ）番目のデータ入力され、データＡｉｎ１として高域データストリームの（Ｍ＋１）番目のデータが入力され、
上記第２の演算手段には、データＢｉｎ０として元データストリームの（Ｌ−１）番目のデータが入力され、データＢｉｎ１として上記第４の演算手段から出力されたデータＣ１ｏｕｔが入力され、
上記第３の演算手段には、データＣ０ｉｎ０として高域データストリームの（Ｍ）番目のデータが入力され、データＣ０ｉｎ１として上記第２の演算手段から出力されたデータＢｏｕｔが入力され、
上記第４の演算手段には、データＣ１ｉｎ０として低域データストリームの（Ｎ＋１）番目のデータが入力され、データＣ１ｉｎ１として上記第１の演算手段から出力されるデータＡｏｕｔが入力され、
元データストリームのＬ番目のデータとして上記第３の演算手段から出力されるデータＣ１ｏｕｔを出力し、元データストリームの（Ｌ＋１）番目のデータとして上記第４の演算手段から出力されるデータＣ１ｏｕｔを出力すること
を特徴とする５×３ウェーブレット変換装置。
Ａｍｉｄｄｌｅ  ＝  （Ａｉｎ０  ＋  Ａｉｎ１  ＋  Ｃｏｅｆｆ＿Ａ）２    ＞＞  ２  ・・・（式１）
Ａｍｉｄｄｌｅ  ＝  （Ａｉｎ０  ＋  Ａｉｎ１  ）２    ＞＞  ２                  ・・・（式１´）
Ｂｍｉｄｄｌｅ  ＝  （Ｂｉｎ０  ＋  Ｂｉｎ１）  ２  ＞＞  １                      ・・・（式２）
Ｃ０ｏｕｔ      ＝  （Ｃ０ｉｎ０  ＋  Ｃ０ｉｎ１）                              ・・・（式３）
Ｃ１ｏｕｔ      ＝  （Ｃ１ｉｎ０  −  Ｃ１ｉｎ１）                              ・・・（式４）
上記（式１），  （式１´），（式２），（式３），（式４）において、ＸＹ  は、数値ＸがＹ進数で表されたデータであることを示し、Ｘ２＞＞Ｙは、２進数の数値であるＸをＹビット分算術右シフト演算することを示す。
係数Ｃｏｅｆｆ＿Ａは、２（１０進数）である。
上記Ｌ，Ｍ，Ｎは、｛Ｌ＝２Ｍ＝２Ｎ｝又は｛（Ｌ＋１）＝２Ｍ＝２（Ｎ＋１）｝の関係を有する整数である。
【請求項２０】
上記第１の演算手段には、
順変換処理時に、高域データストリームの（Ｍ−１）番目のデータが存在しない場合には、データＡｉｎ０として高域データストリームの（Ｍ）番目のデータが入力されること
を特徴とする請求項１９記載の５×３ウェーブレット変換装置。
【請求項２１】
上記第２の演算手段には、
順変換処理時に、元データストリームの（Ｌ−１）番目のデータが存在しない場合には、データＢｉｎ０として元データストリームの（Ｌ＋１）番目のデータが入力されること
を特徴とする請求項１９記載の５×３ウェーブレット変換装置。
【請求項２２】
上記第１の演算手段には、
逆変換処理時に、高域データストリームの（Ｍ）番目のデータが存在しない場合には、データＡｉｎ０として高域データストリームの（Ｍ＋１）番目のデータが入力されること
を特徴とする請求項１９記載の５×３ウェーブレット変換装置。
【請求項２３】
上記第２の演算手段には、
逆方向変換時に、元データストリームの（Ｌ−１）番目のデータが存在しない場合には、データＢｉｎ０として元データストリームの（Ｌ＋１）番目のデータが入力されること
を特徴とする請求項１９記載の５×３ウェーブレット変換装置。
【請求項２４】
上記第１の演算手段には、
順変換処理時に、第４の演算手段から出力されたデータＣ１ｏｕｔが存在しない場合には、データＡｉｎ１として高域データストリームの（Ｍ−１）番目のデータが入力されること
を特徴とする請求項１９記載の５×３ウェーブレット変換装置。
【請求項２５】
上記第２の演算手段には、
順変換処理時に、元データストリームの（Ｌ＋１）番目のデータが存在しない場合には、データＢｉｎ１として元データストリームの（Ｌ−１）番目のデータが入力されること
を特徴とする請求項１９記載の５×３ウェーブレット変換装置。
【請求項２６】
上記第１の演算手段には、
逆変換処理時に、高域データストリームの（Ｍ＋１）番目のデータが存在しない場合には、データＡｉｎ１として高域データストリームの（Ｍ）番目のデータが入力されること
を特徴とする請求項１９記載の５×３ウェーブレット変換装置。
【請求項２７】
上記第２の演算手段には、
逆方向変換時に、第４の演算手段から出力されたデータＣ１ｏｕｔが存在しない場合には、データＢｉｎ１として元データストリームの（Ｌ−１）番目のデータが入力されること
を特徴とする請求項１９記載の５×３ウェーブレット変換装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばＪＰＥＧ２０００等で用いられる５×３ウェーブレット変換装置に関するものである。
【０００２】
【従来の技術】
近年、ＪＰＥＧ２０００（ＩＳＯ／ＩＥＣ  ＪＴＣ  １／ＳＣ  ２９／ＷＧ１）と呼ばれる静止画像圧縮方式が提案されている。ＪＰＥＧ２０００では、５×３フィルタリフティング演算を用いたウェーブレット変換が用いられる。元画像データを低域成分と高域成分とに分割する変換を順変換、低域成分及び高域成分を元画像に合成する変換を逆変換という。
【０００３】
また、ＪＰＥＧ２０００では、可逆ウェーブレット変換又は非可逆ウェーブレット変換の両者を採用しており、ユーザが選択的に適用できる。
【０００４】
【発明が解決しようとする課題】
ところで、５×３のウェーブレットフィルタを例えばハードウェア化やソフトウェア化してＪＰＥＧ２０００の符号化／復号装置を作成する場合、可逆順変換モジュール、非可逆順変換モジュール、可逆逆変換モジュール並びに非可逆逆変換モジュールを、それぞれ作成しなければならなく、回路規模が大きくなってしまっていた。
【０００５】
本発明は、このような実情を鑑みてなされたものであり、回路規模を削減した５×３ウェーブレット変換装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
本発明にかかる５×３ウェーブレット変換装置は、複数の元データから構成される元データストリームを、元データストリームの低域成分から構成される低域データストリーム及び元データストリームの高域成分から構成される高域データストリームに変換する順変換処理、並びに、上記順変換処理に対する逆変換処理を行う５×３ウェーブレット変換装置である。
【０００７】
本発明の５×３ウェーブレット変換装置は、データＡｉｎ０，データＡｉｎ１が入力され、下記式１に示す演算を行ってデータＡｍｉｄｄｌｅを求め、このデータＡｍｉｄｄｌｅの小数部分を０としてデータＡｏｕｔを生成し、このデータＡｏｕｔを出力する第１の演算手段と、データＢｉｎ０及びデータＢｉｎ１が入力され、下記式２に示す演算を行ってデータＢｍｉｄｄｌｅを求め、このデータＢｍｉｄｄｌｅの小数部を０としてデータＢｏｕｔを生成し、このデータＢｏｕｔを出力する第２の演算手段と、データＣ０ｉｎ０及びデータＣ０ｉｎ１が入力され、下記式３に示す演算を行ってデータＣ０ｏｕｔを求め、このデータＣ０ｏｕｔを出力する第３の演算手段と、データＣ１ｉｎ０及びデータＣ１ｉｎ１が入力され、下記式４に示す演算を行ってデータＣ１ｏｕｔを求め、このデータＣ１ｏｕｔを出力する第４の演算手段とを備える。
【０００８】
この５×３ウェーブレット変換装置では、順変換処理時には、先頭データから最終データまで、２ステップごとに上記元データストリームが入力され、上記第１の演算手段には、データＡｉｎ０として高域データストリームの（Ｍ−１）番目のデータ入力され、データＡｉｎ１として上記第４の演算手段から出力されたデータＣ１ｏｕｔが入力され、上記第２の演算手段には、データＢｉｎ０として元データストリームの（Ｌ−１）番目のデータが入力され、データＢｉｎ１として元データストリームの（Ｌ＋１）番目のデータが入力され、上記第３の演算手段には、データＣ０ｉｎ０として元データストリームの（Ｌ−１）番目のデータが入力され、データＣ０ｉｎ１として上記第１の演算手段から出力されたデータＡｏｕｔが入力され、上記第４の演算手段には、データＣ１ｉｎ０として元データストリームの（Ｌ）番目のデータが入力され、データＣ１ｉｎ１として上記第２の演算手段から出力されるデータＢｏｕｔが入力され、高域データストリームのＭ番目のデータとして上記第４の演算手段から出力されるデータＣ１ｏｕｔを出力し、低域データストリームのＮ番目のデータとして上記第３の演算手段から出力されるデータＣ０ｏｕｔを出力する。
【０００９】
この５×３ウェーブレット変換装置では、逆変換処理時には、先頭データから最終データまで、１ステップごとに上記低域データストリーム及び高域データストリームが入力され、上記第１の演算手段には、データＡｉｎ０として高域データストリームの（Ｍ）番目のデータ入力され、データＡｉｎ１として高域データストリームの（Ｍ＋１）番目のデータが入力され、上記第２の演算手段には、データＢｉｎ０として元データストリームの（Ｌ−１）番目のデータが入力され、データＢｉｎ１として上記第４の演算手段から出力されたデータＣ１ｏｕｔが入力され、上記第３の演算手段には、データＣ０ｉｎ０として高域データストリームの（Ｍ）番目のデータが入力され、データＣ０ｉｎ１として上記第２の演算手段から出力されたデータＢｏｕｔが入力され、上記第４の演算手段には、データＣ１ｉｎ０として低域データストリームの（Ｎ＋１）番目のデータが入力され、データＣ１ｉｎ１として上記第１の演算手段から出力されるデータＡｏｕｔが入力され、元データストリームのＬ番目のデータとして上記第３の演算手段から出力されるデータＣ１ｏｕｔを出力し、元データストリームの（Ｌ＋１）番目のデータとして上記第４の演算手段から出力されるデータＣ１ｏｕｔを出力する。
【００１０】
ここで、この５×３ウェーブレット変換装置で引用される各式は、以下のとおりである。
Ａｍｉｄｄｌｅ  ＝  （Ａｉｎ０  ＋  Ａｉｎ１  ＋  Ｃｏｅｆｆ＿Ａ）２    ＞＞  ２  ・・・（式１）
Ｂｍｉｄｄｌｅ  ＝  （Ｂｉｎ０  ＋  Ｂｉｎ１）  ２  ＞＞  １                      ・・・（式２）
Ｃ０ｏｕｔ      ＝  （Ｃ０ｉｎ０  ＋  Ｃ０ｉｎ１）                              ・・・（式３）
Ｃ１ｏｕｔ      ＝  （Ｃ１ｉｎ０  −  Ｃ１ｉｎ１）                              ・・・（式４）
上記（式１），（式２），（式３），（式４）において、ＸＹ  は、数値ＸがＹ進数で表されたデータであることを示し、Ｘ２＞＞Ｙは、２進数の数値であるＸをＹビット分算術右シフト演算することを示す。
【００１１】
Ｃｏｅｆｆ＿Ａは、２（１０進数）である。
【００１２】
上記Ｌ，Ｍ，Ｎは、｛Ｌ＝２Ｍ＝２Ｎ｝又は｛（Ｌ＋１）＝２Ｍ＝２（Ｎ＋１）｝の関係を有する整数である。
【００１３】
また、本発明にかかる５×３ウェーブレット変換装置は、データＡｉｎ０，データＡｉｎ１が入力され、下記式１に示す演算を行ってデータＡｍｉｄｄｌｅを求め、このデータＡｍｉｄｄｌｅをデータＡｏｕｔとして出力する第１の演算手段と、データＢｉｎ０及びデータＢｉｎ１が入力され、下記式２に示す演算を行ってデータＢｍｉｄｄｌｅを求め、このデータＢｍｉｄｄｌｅをデータＢｏｕｔとして出力する第２の演算手段と、データＣ０ｉｎ０及びデータＣ０ｉｎ１が入力され、下記式３に示す演算を行ってデータＣ０ｏｕｔを求め、このデータＣ０ｏｕｔを出力する第３の演算手段と、データＣ１ｉｎ０及びデータＣ１ｉｎ１が入力され、下記式４に示す演算を行ってデータＣ１ｏｕｔを求め、このデータＣ１ｏｕｔを出力する第４の演算手段とを備える。
【００１４】
この５×３ウェーブレット変換装置は、順変換処理時には、先頭データから最終データまで、２ステップごとに上記元データストリームが入力され、上記第１の演算手段には、データＡｉｎ０として高域データストリームの（Ｍ−１）番目のデータ入力され、データＡｉｎ１として上記第４の演算手段から出力されたデータＣ１ｏｕｔが入力され、上記第２の演算手段には、データＢｉｎ０として元データストリームの（Ｌ−１）番目のデータが入力され、データＢｉｎ１として元データストリームの（Ｌ＋１）番目のデータが入力され、上記第３の演算手段には、データＣ０ｉｎ０として元データストリームの（Ｌ−１）番目のデータが入力され、データＣ０ｉｎ１として上記第１の演算手段から出力されたデータＡｏｕｔが入力され、上記第４の演算手段には、データＣ１ｉｎ０として元データストリームの（Ｌ）番目のデータが入力され、データＣ１ｉｎ１として上記第２の演算手段から出力されるデータＢｏｕｔが入力され、高域データストリームのＭ番目のデータとして上記第４の演算手段から出力されるデータＣ１ｏｕｔを出力し、低域データストリームのＮ番目のデータとして上記第３の演算手段から出力されるデータＣ０ｏｕｔを出力する。
【００１５】
このこの５×３ウェーブレット変換装置は、逆変換処理時には、先頭データから最終データまで、１ステップごとに上記低域データストリーム及び高域データストリームが入力され、上記第１の演算手段には、データＡｉｎ０として高域データストリームの（Ｍ）番目のデータ入力され、データＡｉｎ１として高域データストリームの（Ｍ＋１）番目のデータが入力され、上記第２の演算手段には、データＢｉｎ０として元データストリームの（Ｌ−１）番目のデータが入力され、データＢｉｎ１として上記第４の演算手段から出力されたデータＣ１ｏｕｔが入力され、上記第３の演算手段には、データＣ０ｉｎ０として高域データストリームの（Ｍ）番目のデータが入力され、データＣ０ｉｎ１として上記第２の演算手段から出力されたデータＢｏｕｔが入力され、上記第４の演算手段には、データＣ１ｉｎ０として低域データストリームの（Ｎ＋１）番目のデータが入力され、データＣ１ｉｎ１として上記第１の演算手段から出力されるデータＡｏｕｔが入力され、元データストリームのＬ番目のデータとして上記第３の演算手段から出力されるデータＣ１ｏｕｔを出力し、元データストリームの（Ｌ＋１）番目のデータとして上記第４の演算手段から出力されるデータＣ１ｏｕｔを出力する。
【００１６】
ここで、この５×３ウェーブレット変換装置で引用される各式は、以下のとおりである。
Ａｍｉｄｄｌｅ  ＝  ０．２５＊（Ａｉｎ０  ＋  Ａｉｎ１）                        ・・・（式１）
Ｂｍｉｄｄｌｅ  ＝  ０．５＊（Ｂｉｎ０  ＋  Ｂｉｎ１）                          ・・・（式２）
Ｃ０ｏｕｔ      ＝  （Ｃ０ｉｎ０  ＋  Ｃ０ｉｎ１）                              ・・・（式３）
Ｃ１ｏｕｔ      ＝  （Ｃ１ｉｎ０  −  Ｃ１ｉｎ１）                              ・・・（式４）
上記Ｌ，Ｍ，Ｎは、｛Ｌ＝２Ｍ＝２Ｎ｝又は｛（Ｌ＋１）＝２Ｍ＝２（Ｎ＋１）｝の関係を有する整数である。
【００１７】
本発明にかかる５×３ウェーブレット変換装置は、データＡｉｎ０，データＡｉｎ１が入力され、可逆変換時には下記式１に示す演算を行ってデータＡｍｉｄｄｌｅを求め、非可逆変換時には下記式１´に示す演算を行ってデータＡｍｉｄｄｌｅを求め、可逆変換時にはこのデータＡｍｉｄｄｌｅの小数部分を０としたデータＡｏｕｔを出力し、非可逆変換時にはこのデータＡｍｉｄｄｌｅをそのままデータＡｏｕｔとして出力する第１の演算手段と、データＢｉｎ０及びデータＢｉｎ１が入力され、下記式２に示す演算を行ってデータＢｍｉｄｄｌｅを求め、可逆変換時にはこのデータＢｍｉｄｄｌｅの小数部分を０としたデータＢｏｕｔを出力し、非可逆変換時にはこのデータＢｍｉｄｄｌｅをそのままデータＢｏｕｔとして出力する第２の演算手段と、データＣ０ｉｎ０及びデータＣ０ｉｎ１が入力され、下記式３に示す演算を行ってデータＣ０ｏｕｔを求め、このデータＣ０ｏｕｔを出力する第３の演算手段と、データＣ１ｉｎ０及びデータＣ１ｉｎ１が入力され、下記式４に示す演算を行ってデータＣ１ｏｕｔを求め、このデータＣ１ｏｕｔを出力する第４の演算手段とを備える。
【００１８】
この５×３ウェーブレット変換装置は、順変換処理時には、先頭データから最終データまで、２ステップごとに上記元データストリームが入力され、上記第１の演算手段には、データＡｉｎ０として高域データストリームの（Ｍ−１）番目のデータ入力され、データＡｉｎ１として上記第４の演算手段から出力されたデータＣ１ｏｕｔが入力され、上記第２の演算手段には、データＢｉｎ０として元データストリームの（Ｌ−１）番目のデータが入力され、データＢｉｎ１として元データストリームの（Ｌ＋１）番目のデータが入力され、上記第３の演算手段には、データＣ０ｉｎ０として元データストリームの（Ｌ−１）番目のデータが入力され、データＣ０ｉｎ１として上記第１の演算手段から出力されたデータＡｏｕｔが入力され、上記第４の演算手段には、データＣ１ｉｎ０として元データストリームの（Ｌ）番目のデータが入力され、データＣ１ｉｎ１として上記第２の演算手段から出力されるデータＢｏｕｔが入力され、高域データストリームのＭ番目のデータとして上記第４の演算手段から出力されるデータＣ１ｏｕｔを出力し、低域データストリームのＮ番目のデータとして上記第３の演算手段から出力されるデータＣ０ｏｕｔを出力する。
【００１９】
５×３ウェーブレット変換装置は、逆変換処理時には、先頭データから最終データまで、１ステップごとに上記低域データストリーム及び高域データストリームが入力され、上記第１の演算手段には、データＡｉｎ０として高域データストリームの（Ｍ）番目のデータ入力され、データＡｉｎ１として高域データストリームの（Ｍ＋１）番目のデータが入力され、上記第２の演算手段には、データＢｉｎ０として元データストリームの（Ｌ−１）番目のデータが入力され、データＢｉｎ１として上記第４の演算手段から出力されたデータＣ１ｏｕｔが入力され、上記第３の演算手段には、データＣ０ｉｎ０として高域データストリームの（Ｍ）番目のデータが入力され、データＣ０ｉｎ１として上記第２の演算手段から出力されたデータＢｏｕｔが入力され、上記第４の演算手段には、データＣ１ｉｎ０として低域データストリームの（Ｎ＋１）番目のデータが入力され、データＣ１ｉｎ１として上記第１の演算手段から出力されるデータＡｏｕｔが入力され、元データストリームのＬ番目のデータとして上記第３の演算手段から出力されるデータＣ１ｏｕｔを出力し、元データストリームの（Ｌ＋１）番目のデータとして上記第４の演算手段から出力されるデータＣ１ｏｕｔを出力する。
【００２０】
ここで、この５×３ウェーブレット変換装置で引用される各式は、以下のとおりである。
Ａｍｉｄｄｌｅ  ＝  （Ａｉｎ０  ＋  Ａｉｎ１  ＋  Ｃｏｅｆｆ＿Ａ）２    ＞＞  ２  ・・・（式１）
Ａｍｉｄｄｌｅ  ＝  （Ａｉｎ０  ＋  Ａｉｎ１  ）２    ＞＞  ２                  ・・・（式１´）
Ｂｍｉｄｄｌｅ  ＝  （Ｂｉｎ０  ＋  Ｂｉｎ１）  ２  ＞＞  １                      ・・・（式２）
Ｃ０ｏｕｔ      ＝  （Ｃ０ｉｎ０  ＋  Ｃ０ｉｎ１）                              ・・・（式３）
Ｃ１ｏｕｔ      ＝  （Ｃ１ｉｎ０  −  Ｃ１ｉｎ１）                              ・・・（式４）
上記（式１），  （式１´），（式２），（式３），（式４）において、ＸＹ  は、数値ＸがＹ進数で表されたデータであることを示し、Ｘ２＞＞Ｙは、２進数の数値であるＸをＹビット分算術右シフト演算することを示す。
【００２１】
係数Ｃｏｅｆｆ＿Ａは、２（１０進数）である。
【００２２】
上記Ｌ，Ｍ，Ｎは、｛Ｌ＝２Ｍ＝２Ｎ｝又は｛（Ｌ＋１）＝２Ｍ＝２（Ｎ＋１）｝の関係を有する整数である。
【００２３】
【発明の実施の形態】
（５×３ウェーブレット変換処理）
５×３ウェーブレット変換の順変換処理は、図１に示すように、１次元に並べられた画素データ（又は係数であってもよい。）から構成されるデータストリームを、高周波数成分と低周波数成分に分離して、高域係数から構成されるデータストリームと低域係数から構成されるデータストリームを生成する処理である。また、５×３ウェーブレット変換の逆変換処理は、順変換処理の反対の処理を行う。すなわち、逆変換処理は、高域係数から構成されるデータストリームと低域係数から構成されるデータストリームとを合成して、元のデータストリームを生成する処理である。なお、生成される高域係数及び低域係数の数は、元の画素数（係数の数）の総数が偶数であれば、それぞれ１／２となる。また、元の画素数が奇数であれば、いずれか一方が１／  ２の小数点以下を切り上げた数、他方が１／２の小数点以下を切り下げた数となる。
【００２４】
本明細書では、順変換処理前のデータストリームを元データストリームと呼ぶものとする。また、順変換処理後の高域係数から構成されるデータストリームを高域データストリームと呼び、低域係数から構成されるデータストリームを低域データストリームと呼ぶものとする。また、元データストリームの各画素（又は係数）、並びに、高域データストリーム及び低域データストリームの各係数を次のように表すものとする。
【００２５】
高域係数は、“ｄｎｆ”で表す。下付けの“ｎ”は、その高域係数の高域データストリーム中における先頭からの位置（順番）を示している。ｎは、１以上の任意の自然数である。
【００２６】
低域係数は、“ｓｎｆ”で表す。下付けの“ｎ”は、その低域係数の低域データストリーム中における先頭からの位置（順番）を示している。ｎは、１以上の任意の自然数である。
【００２７】
元データは、“ｓｎｓ”及び“ｄｎｓ”で表す。“ｓｎｓ”は、“ｓｎｆ”と対応したピクセル位置にある画素（又は係数）であり、“ｄｎｓ”は、“ｄｎｆ”と対応したピクセル位置にある画素（又は係数）である。ここでは、“ｓｎｓ”は、元データストリーム中の奇数番目の画素（又は係数）となり、“ｄｎｓ”は元データストリーム中の偶数番目の画素（又は係数）となる。従って、“ｓｎｓ”の元データストリーム上の位置（順番）は、２ｎ−１番目となり、“ｄｎｓ”の元データストリーム上での位置（順番）は、２ｎ番目となる。
【００２８】
以下、各方向の５×３ウェーブレット変換について説明をする。なお、以下ウェーブレット変換を説明をするにあたり、ストリーム中の各データは、２進数で表されているものとする。また、演算式上で、Ｘ＞＞Ｙは、２進数の数値Ｘを、Ｙビット分算術右シフト演算することを表している。
【００２９】
（順方向可逆ウェーブレット変換）
５×３順方向可逆ウェーブレット変換では、１つの高域係数及び１つの低域係数を生成する５×３順方向可逆フィルタ演算を用いる。５×３順方向可逆ウェーブレット変換では、この５×３順方向可逆フィルタ演算を、元データストリームの先頭画素から最終画素まで順番に行っていき、高域データストリーム及び低域データストリームを生成する。具体的には、５×３順方向可逆ウェーブレット変換では、元データストリームを２データずつステップさせながら、５×３順方向可逆フィルタ演算を行って、高域データストリームと低域データストリームとを生成する。
【００３０】
図２に、ｎ番目の高域係数“ｄｎｆ”及びｎ番目の低域係数“ｓｎｆ”を求める５×３順方向可逆フィルタ演算の模式図を示す。
【００３１】
５×３順方向可逆フィルタ演算では、“ｄｎｆ”及び“ｓｎｆ”を以下の演算式により求める。
ｓｎｆ＝ｓｎｓ＋｛（ｄｎ−１ｆ＋ｄｎｆ＋２）＞＞２｝
ｄｎｆ＝ｄｎｓ−｛（ｓｎｓ＋ｓｎ＋１ｓ）＞＞１｝
なお、ｄｎ−１ｆは、前ステップでの５×３順方向可逆フィルタ演算により求められた値である。
【００３２】
ここで、ｄｎ−１ｆ＝Ｉ０，Ｓｎｓ＝Ｉ１，ｄｎｓ＝Ｉ２，ｓｎ＋１ｓ＝Ｉ３，ｓｎｆ＝Ｏ０，ｄｎｆ＝Ｏ１とした場合、上記の演算式は以下の式（１−１），（１−２）のように書き換えられる。
Ｏ０＝Ｉ１＋｛（Ｉ０＋Ｏ１＋２）＞＞２｝  ・・・式（１−１）
Ｏ１＝Ｉ２−｛（Ｉ１＋Ｉ３）＞＞１｝      ・・・式（１−２）
【００３３】
（逆方向可逆ウェーブレット変換）
５×３逆方向可逆ウェーブレット変換では、２つの元画素（係数）データを生成する５×３逆方向可逆フィルタ演算を用いる。５×３逆方向可逆ウェーブレット変換では、この５×３逆方向可逆フィルタ演算を先頭係数から最終係数まで順番に行っていき、元データストリームを生成する。すなわち、５×３逆方向可逆ウェーブレット変換では、高域データストリーム及び低域データストリームを１データずつステップさせながら、５×３逆方向可逆フィルタ演算を行って、元データストリームを生成する。
【００３４】
図３に、２ｎ番目の元データ  “ｄｎｓ”及び２ｎ＋１番目の元データ“ｓｎ＋１ｓ”を求める５×３逆方向可逆フィルタ演算の模式図を示す。
【００３５】
５×３逆方向可逆フィルタ演算では、“ｄｎｓ”及び“ｓｎ＋１ｓ”を以下の演算式により求める。
ｄｎｓ＝ｄｎｆ＋｛（ｓｎｓ＋ｓｎ＋１ｓ）＞＞１｝
ｓｎ＋１ｓ＝ｓｎ＋１ｆ−｛（ｄｎｆ＋ｄｎ＋１ｆ＋２）＞＞２｝
なお、ｓｎｓは、前ステップでの５×３逆方向可逆フィルタ演算により求められている値である。
【００３６】
ここで、ｓｎｓ＝Ｉ０，ｄｎｆ＝Ｉ１，ｓｎ＋１ｆ＝Ｉ２，ｄｎ＋１ｆ＝Ｉ３，ｄｎｓ＝Ｏ０，ｓｎ＋１ｓ＝Ｏ１とした場合、上記の演算式は以下の（２−１），（２−２）のように書き換えられる。
Ｏ０＝Ｉ１＋｛（Ｉ０＋Ｏ１）＞＞１｝        ・・・式（２−１）
Ｏ１＝Ｉ２−｛（Ｉ１＋Ｉ３＋２）＞＞２｝    ・・・式（２−２）
【００３７】
（順方向非可逆ウェーブレット変換）
５×３順方向非可逆ウェーブレット変換では、１つの高域係数及び１つの低域係数を生成する５×３順方向非可逆フィルタ演算を用いる。５×３順方向非可逆ウェーブレット変換では、５×３順方向非可逆フィルタ演算を先頭係数から最終係数まで順番に行っていき、高域データストリーム及び低域データストリームを生成する。すなわち、５×３順方向非可逆ウェーブレット変換では、元データストリームを２データずつステップさせながら、５×３順方向非可逆フィルタ演算を行って、高域データストリームと低域データストリームとを生成する。
【００３８】
図４に、ｎ番目の高域係数“ｄｎｆ”及びｎ番目の低域係数“ｓｎｆ”を求める５×３順方向非可逆フィルタ演算の模式図を示す。
【００３９】
５×３順方向非可逆フィルタ演算では、“ｄｎｆ”及び“ｓｎｆ”を以下の演算式により求める。
ｓｎｆ＝ｓｎｓ＋β×（ｄｎ−１ｆ＋ｄｎｆ）
ｄｎｆ＝ｄｎｓ−α×（ｓｎｓ＋ｓｎ＋１ｓ）
なお、α＝０．５、β＝０．２５である。また、ｄｎ−１ｆは、前ステップでの５×３順方向非可逆フィルタ演算により求められている値である。
【００４０】
ここで、ｄｎ−１ｆ＝Ｉ０，Ｓｎｓ＝Ｉ１，ｄｎｓ＝Ｉ２，ｓｎ＋１ｓ＝Ｉ３，ｓｎｆ＝Ｏ０，ｄｎｆ＝Ｏ１とした場合、上記の演算式は以下の（３−１），（３−２）のように書き換えられる。
Ｏ０＝Ｉ１＋β×（Ｉ０＋Ｏ１）            ・・・式（３−１）
Ｏ１＝Ｉ２−α×（Ｉ１＋Ｉ３）            ・・・式（３−２）
【００４１】
（逆方向非可逆ウェーブレット変換）
５×３逆方向非可逆ウェーブレット変換では、２つの元画素（係数）データを生成する５×３逆方向非可逆フィルタ演算を用いる。５×３逆方向非可逆ウェーブレット変換では、この５×３逆方向非可逆フィルタ演算を先頭係数から最終係数まで順番に行っていき、元データストリームを生成する。すなわち、５×３逆方向非可逆ウェーブレット変換では、高域データストリーム及び低域データストリームを１データずつステップさせながら、５×３逆方向非可逆フィルタ演算を行って、元データストリームを生成する。
【００４２】
図５に、２ｎ番目の元データ  “ｄｎｓ”及び２ｎ＋１番目の元データ“ｓｎ＋１ｓ”を求める５×３逆方向非可逆フィルタ演算の模式図を示す。
【００４３】
５×３逆方向非可逆フィルタ演算では、“ｄｎｓ”及び“ｓｎ＋１ｓ”を以下の演算式により求める。
ｄｎｓ＝ｄｎｆ＋α×｛（ｓｎｓ＋ｓｎ＋１ｓ）
ｓｎ＋１ｓ＝ｓｎ＋１ｆ−β×（ｄｎｆ＋ｄｎ＋１ｆ）
なお、ｓｎｓは、前ステップでの５×３逆方向非可逆フィルタ演算により求められている値である。
【００４４】
ここで、ｓｎｓ＝Ｉ０，ｄｎｆ＝Ｉ１，ｓｎ＋１ｆ＝Ｉ２，ｄｎ＋１ｆ＝Ｉ３，ｄｎｓ＝Ｏ０，ｓｎ＋１ｓ＝Ｏ１とした場合、上記の演算式は以下の（４−１），（４−２）のように書き換えられる。
Ｏ０＝Ｉ１＋α×（Ｉ０＋Ｏ１）            ・・・式（４−１）
Ｏ１＝Ｉ２−β×（Ｉ１＋Ｉ３）            ・・・式（４−２）
【００４５】
（対称拡張）
つぎに、データストリームの端部部分のデータを生成する場合について説明をする。
【００４６】
低域データストリームの先頭の係数（ｓ１ｆ）を、５×３順方向可逆ウェーブレット変換又は順方向非可逆ウェーブレット変換を行って生成する場合、図６に示すように、フィルタが参照しなければならないデータＩ０（高域係数ｄ０ｆ）が存在しない。そのため、５×３順方向ウェーブレット変換では、先頭の低域係数を生成する場合には、データＯ１（高域係数ｄ１ｆ）をデータＩ０に入力してフィルタ演算を行う。このように、データストリームの先頭部分のデータを拡張して、フィルタの参照値とすることを先頭対象拡張という。
【００４７】
画素データの総数が偶数である元データストリームを用いて、高域データストリームの終端の高域係数（ｄｍｆ）を生成する場合、図７に示すように、フィルタが参照しなければならないデータＩ３（元データｓｍ＋１ｓ）が存在しない。そのため、５×３順方向ウェーブレット変換では、終端の高域係数を生成する場合には、データＩ１（元データｓｍｓ）をデータＩ３に入力してフィルタ演算を行う。このように、データストリームの終端部分のデータを拡張して、フィルタの参照とすることを終端対象拡張という。
【００４８】
画素データの総数が奇数である元データストリームを用いて、低域データストリームの終端の低域係数（ｓｍｆ）を生成する場合、図８に示すように、フィルタが参照しなければならないデータＯ１（高域係数ｄｍｓ）が存在しない。そのため、５×３順方向ウェーブレット変換では、最終の低域係数を生成する場合には、データＩ０（高域係数ｄｍ−１ｆ）をデータＯ１に入力してフィルタ演算を行う。
【００４９】
元データストリームの先頭の元データ（ｓ１ｓ）を、５×３逆方向可逆ウェーブレット変換又は逆方向非可逆ウェーブレット変換を行って生成する場合、図９に示すように、フィルタが参照しなければならないデータＩ１（高域係数ｄ０ｆ）が存在しない。そのため、５×３逆方向ウェーブレット変換では、先頭の元データを生成する場合には、データＩ３（高域係数ｄ１ｆ）をデータＩ１に入力してフィルタ演算を行う。
【００５０】
高域係数及び低域係数のデータの総数が偶数である高域及び低域データストリームを用いて、元データストリームの終端データ（ｄｍｓ）を生成する場合、図１０に示すように、フィルタが参照しなければならないデータＯ１（元データｓｍ＋１ｓ）が存在しない。そのため、５×３逆方向ウェーブレット変換では、終端の元データ（ｄｍｓ）を生成する場合には、データＩ０（元データｓｍｓ）をデータＯ１に入力してフィルタ演算を行う。
【００５１】
高域係数及び低域係数のデータの総数が奇数である高域及び低域データストリームを用いて、元データストリームの終端データ（ｓｍｓ）を生成する場合、図１１に示すように、フィルタが参照しなければならないデータＩ３（高域係数ｄｍｆ）が存在しない。そのため、５×３逆方向ウェーブレット変換では、終端の元データ（ｓｍｓ）を生成する場合には、データＩ１（高域係数ｄｍ−１ｆ）をデータＩ３に入力してフィルタ演算を行う。
【００５２】
（ウェーブレット変換装置）
つぎに、本発明を適用した５×３ウェーブレット変換装置について説明をする。なお、以下、５×３ウェーブレット変換装置を説明するにあたり、元データ、高域係数及び低域係数は、３２ビット幅で表された２進数データであり、３２ビットのうち、最上位ビットが符号ビット、下位１２ビットが小数部、残りの１９ビットが整数部とされたデータであるものとする。また、本５×３ウェーブレット変換装置で用いられるデータバスは、図面中に特に指示がないかぎり、３２ビット幅である。
【００５３】
図１２に、ウェーブレット変換装置１の回路図を示す。
【００５４】
ウェーブレット変換装置１は、図１２に示すように、関数Ａモジュール１１と、関数Ｂモジュール１２と、関数Ｃ０モジュール１３と、関数Ｃ１モジュール１４と、係数生成モジュール１５と、第１〜第７のセレクタ２１〜２７と、第１〜第３のフリップフロップ（Ｆ／Ｆ）２８〜３０とを備えている。
【００５５】
また、ウェーブレット変換装置１は、入力端子として、Ｉ０端子，Ｉ１端子，Ｉ２端子，Ｉ３端子が設けられている。各入力端子Ｉ０，Ｉ１，Ｉ２，Ｉ３には、順方向可逆変換時には上述した式（１−１），（１−２）に対応したＩ０，Ｉ１，Ｉ２，Ｉ３が入力され、逆方向可逆変換時には上述した式（２−１），（２−２）に対応したＩ０，Ｉ１，Ｉ２，Ｉ３が入力され、順方向非可逆変換時には上述した式（３−１），（３−２）に対応したＩ０，Ｉ１，Ｉ２，Ｉ３が入力され、逆方向非可逆変換時には上述した式（４−１），（４−２）に対応したＩ０，Ｉ１，Ｉ２，Ｉ３が入力される。
【００５６】
また、ウェーブレット変換装置１は、出力端子として、Ｏ０端子，Ｏ１端子が設けられている。各出力端子Ｏ０，Ｏ１からは、順方向可逆変換時には上述した式（１−１），（１−２）に対応したＯ０，Ｏ１が出力され、逆方向可逆変換時には上述した式（２−１），（２−２）に対応したＯ０，Ｏ１が出力され、順方向非可逆変換時には上述した式（３−１），（３−２）に対応したに対応したＯ０，Ｏ１が出力され、逆方向非可逆変換時には上述した式（４−１），（４−２）に対応したに対応したＯ０，Ｏ１が出力される。
【００５７】
（関数Ａモジュール）
関数Ａモジュール１１の内部構成について説明をする。図１３に関数Ａモジュール１１の回路図を示す。
【００５８】
関数Ａモジュール１１は、加算器３１と、２ビット右シフト回路３２と、整数抽出回路３３と、小数抽出回路３４と、アンド演算回路３５と、合成回路３６とを備えて構成される。
【００５９】
関数Ａモジュール１１には、Ａｉｎ０端子、Ａｉｎ１端子、Ｃｏｅｆｆ＿Ａ端子、Ｃｏｅｆｆ＿Ｂ端子が設けられており、各端子に対して、外部から、Ａｉｎ０、Ａｉｎ１、Ｃｏｅｆｆ＿Ａ、Ｃｏｅｆｆ＿Ｂの各データが入力される。Ａｉｎ０、Ａｉｎ１、Ｃｏｅｆｆ＿Ａは、３２ビット長のデータである。Ｃｏｅｆｆ＿Ｂは、１２ビット長のデータである。
【００６０】
加算器３１は、Ａｉｎ０とＡｉｎ１とＣｏｅｆｆ＿Ａとを加算して、３２ビットのデータを出力する。すなわち、加算器３１は、（Ａｉｎ０＋Ａｉｎ１＋Ｃｏｅｆｆ＿Ａ）の演算を行う。Ｃｏｅｆｆ＿Ａは、係数発生モジュール１５から発生される係数値である。Ｃｏｅｆｆ＿Ａは、可逆変換時には、２（１０進数）とされる。すなわち、本例では、下位１２ビットが小数値であるので、Ｃｏｅｆｆ＿Ａは、１６進数表現で“０ｘ２０００”となる。また、Ｃｏｅｆｆ＿Ａは、非可逆変換時には０とされる。
【００６１】
２ビット右シフト回路３２は、加算器３１の出力値（３２ビット）に対して、２ビットの算術右シフト演算を行う。
【００６２】
整数抽出回路３３は、２ビット右シフト回路３２の出力値（３２ビット）のうち、符号ビット及び整数部を抽出する。すなわち、整数抽出回路３３は、２ビット右シフト回路３２の出力値のうちの上位２０ビットを取り出す。
【００６３】
小数抽出回路３４は、２ビット右シフト回路３２の出力値（３２ビット）のうち、小数部を抽出する。すなわち、小数抽出回路３３は、２ビット右シフト回路３２の出力値のうちの下位１２ビットを取り出す。
【００６４】
アンド演算回路３５は、小数抽出回路３４により抽出された１２ビットのデータと、Ｃｏｅｆｆ＿Ｂとのアンド論理演算を行う。Ｃｏｅｆｆ＿Ｂは、係数発生モジュール１５から発生される係数値である。Ｃｏｅｆｆ＿Ｂは、可逆変換時には０とされ、非可逆変換時には１６進数表現で“０ｘｆｆｆ”（１２ビットのデータ）とされる。すなわち、アンド演算回路３５は、可逆変換時には、小数抽出回路３３により抽出されたデータを０として出力し、非可逆変換時には、小数抽出回路３３により抽出されたデータをそのまま出力する。
【００６５】
合成回路３６は、整数抽出回路３３から出力されたデータと、アンド演算回路３５から出力されたデータとを合成する。合成部３６は、整数抽出回路３３から出力されたデータ（２０ビット）を符号ビット及び整数部とし、アンド演算回路３５から出力されたデータを小数部とした、３２ビットの出力データを生成する。
【００６６】
そして、関数Ａモジュール１１は、上記合成回路３６の出力データを、本モジュールの出力データ（Ａｏｕｔ）として、Ａｏｕｔ端子から外部に出力する。
【００６７】
従って、以上の関数Ａモジュール１１では、可逆変換時には下記式（Ａ−１）の固定小数点演算が行われ、非可逆演算時には下記式（Ａ−２）の固定小数点演算が行われることとなる。
Ａｏｕｔ  ＝  ＲｏｕｎｄＯｆｆ｛  （Ａｉｎ０  ＋  Ａｉｎ１  ＋  ０ｘ２０００）    ＞＞  ２  ｝・・・式（Ａ−１）
Ａｏｕｔ  ＝  ０．２５  ＊  （Ａｉｎ０  ＋  Ａｉｎ１）                                                  ・・・式（Ａ−２）
なお、Ｘ＞＞Ｙは、２進数の数値であるＸをＹビット分算術右シフト演算することを示す。また、ＲｏｕｎｄＯｆｆ（Ｘ）は、数値Ｘの小数点以下を切り捨てる演算をすることを示す。
【００６８】
（関数Ｂモジュール）
関数Ｂモジュール１２の内部構成について説明をする。図１４に関数Ｂモジュール１２の回路図を示す。
【００６９】
関数Ｂモジュール１２は、加算器４１と、１ビット右シフト回路４２と、整数抽出回路４３と、小数抽出回路４４と、アンド演算回路４５と、合成回路４６とを備えて構成される。
【００７０】
関数Ｂモジュール１２には、Ｂｉｎ０端子、Ｂｉｎ１端子、Ｃｏｅｆｆ＿Ｂ端子が設けられており、各端子に対して、外部から、Ｂｉｎ０、Ｂｉｎ１、Ｃｏｅｆｆ＿Ｂの各データが入力される。Ｂｉｎ０、Ｂｉｎ１は、３２ビット長のデータである。Ｃｏｅｆｆ＿Ｂは、１２ビット長のデータである。
【００７１】
加算器４１は、Ｂｉｎ０とＢｉｎ１とを加算して、３２ビットのデータを出力する。すなわち、加算器４１は、（Ｂｉｎ０＋Ｂｉｎ１）の演算を行う。
【００７２】
１ビット右シフト回路４２は、加算器４１の出力値（３２ビット）に対して、１ビットの算術右シフト演算を行う。
【００７３】
整数抽出回路４３は、１ビット右シフト回路４２の出力値（３２ビット）のうち、符号ビット及び整数部を抽出する。すなわち、整数抽出回路４３は、１ビット右シフト回路４２の出力値のうちの上位２０ビットを取り出す。
【００７４】
小数抽出回路４４は、１ビット右シフト回路４２の出力値（３２ビット）のうち、小数部を抽出する。すなわち、小数抽出回路４３は、１ビット右シフト回路４２の出力値のうちの下位１２ビットを取り出す。
【００７５】
アンド演算回路４５は、小数抽出回路４４により抽出された１２ビットのデータと、Ｃｏｅｆｆ＿Ｂとのアンド論理演算を行う。Ｃｏｅｆｆ＿Ｂは、係数発生モジュール１５から発生される係数値である。Ｃｏｅｆｆ＿Ｂは、可逆変換時には０とされ、非可逆変換時には１６進数表現で０ｘＦＦＦ（１２ビット）とされる。すなわち、アンド演算回路４５は、可逆変換時には、小数抽出回路４３により抽出されたデータを０とし、非可逆変換時には、小数抽出回路４３により抽出されたデータをそのまま出力する。
【００７６】
合成回路４６は、整数抽出回路４３から出力されたデータと、アンド演算回路４５から出力されたデータとを合成する。合成部４６は、整数抽出回路４３から出力されたデータ（２０ビット）を符号ビット及び整数部とし、アンド演算回路４５から出力されたデータを小数部とした、３２ビットの出力データを生成する。
【００７７】
そして、関数Ｂモジュール１２は、上記合成回路４６の出力データを、本モジュールの出力データ（Ｂｏｕｔ）として、Ｂｏｕｔ端子から外部に出力する。
【００７８】
従って、以上の関数Ｂモジュール１２では、可逆変換時には下記式（Ｂ−１）の固定小数点演算が行われ、非可逆演算時には下記式（Ｂ−２）の固定小数点演算が行われることとなる。
Ｂｏｕｔ  ＝  ＲｏｕｎｄＯｆｆ｛  （Ｂｉｎ０  ＋  Ｂｉｎ１）    ＞＞  １  ｝・・・式（Ｂ−１）
Ｂｏｕｔ  ＝  ０．５  ＊  （Ｂｉｎ０  ＋  Ｂｉｎ１）            ・・・式（Ｂ−２）
なお、Ｘ＞＞Ｙは、２進数の数値であるＸをＹビット分算術右シフト演算することを示す。また、ＲｏｕｎｄＯｆｆ（Ｘ）は、数値Ｘの小数点以下を切り捨てる演算をすることを示す。
【００７９】
（関数Ｃ０モジュール）
関数Ｃ０モジュール１３の内部構成について説明をする。図１５に関数Ｃ０モジュール１３の回路図を示す。
【００８０】
関数Ｃ０モジュール１３は、加算器５１を備えて構成される。関数Ｃ０モジュール１３には、Ｃ０ｉｎ０端子、Ｃ０ｉｎ１端子が設けられており、各端子に対して、外部から、Ｃ０ｉｎ０及びＣ０ｉｎ１の各データが入力される。Ｃ０ｉｎ０、Ｃ０ｉｎ１は、３２ビット長のデータである。
【００８１】
加算器５１は、Ｃ０ｉｎ０とＣ０ｉｎ１とを加算して、３２ビットのデータを出力する。すなわち、加算器５１は、（Ｃ０ｉｎ０＋Ｃ０ｉｎ１）の演算を行う。
【００８２】
そして、関数Ｃ０モジュール１３は、上記加算器５１の出力データを、本モジュールの出力データ（Ｃ０ｏｕｔ）として、Ｃ０ｏｕｔ端子から外部に出力する。
【００８３】
従って、以上の関数Ｃ０モジュール１３では、下記式（Ｃ０−１）の固定小数点演算が行われることとなる。
Ｃ０ｏｕｔ  ＝  Ｃ０ｉｎ０  ＋  Ｃ１ｉｎ１                  ・・・式（Ｃ−１）
【００８４】
（関数Ｃ１モジュール）
関数Ｃ１モジュール１４の内部構成について説明をする。図１６に関数Ｃ１モジュール１４の回路図を示す。
【００８５】
関数Ｃ１モジュール１４は、２の補数演算回路５２と、加算器５３とを備えて構成される。関数Ｃ１モジュール１４には、Ｃ１ｉｎ０端子、Ｃ１ｉｎ１端子が設けられており、各端子に対して、外部から、Ｃ１ｉｎ０及びＣ１ｉｎ１が入力される。Ｃ１ｉｎ０、Ｃ１ｉｎ１は、３２ビット長のデータである。
【００８６】
２の補数演算回路５２は、Ｃｌｉｎ１の２の補数を算出する。加算器５３は、２の補数演算回路５２の出力値と、Ｃ０ｉｎ０とを加算して、３２ビットのデータを出力する。すなわち、２の補数演算回路５２及び加算器５３は、（Ｃ０ｉｎ０−Ｃ０ｉｎ１）の演算を行う。
【００８７】
そして、関数Ｃ１モジュール１４は、上記加算器５３の出力データを、本モジュールの出力データ（Ｃ１ｏｕｔ）として、Ｃ１ｏｕｔ端子から外部に出力する。
【００８８】
従って、以上の関数Ｃ０モジュール１３では、下記式（Ｃ１−１）の固定小数点演算が行われることとなる。
Ｃ１ｏｕｔ  ＝  Ｃ０ｉｎ０  −  Ｃ１ｉｎ１                                ・・・式（Ｃ１−１）
【００８９】
（係数発生モジュール）
係数発生モジュール１５の内部構成について説明をする。図１７に係数発生モジュール１５の回路図を示す。
【００９０】
係数発生モジュール１５は、係数Ｃｏｅｆｆ＿Ａ及び係数Ｃｏｅｆｆ＿Ｂを発生する。Ｃｏｅｆｆ＿Ａは３２ビットのデータであり、Ｃｏｅｆｆ＿Ｂは１２ビットのデータである。Ｃｏｅｆｆ＿Ｂのビット長は、本装置が取り扱うデータ長の小数部のビット長に対応する。Ｃｏｅｆｆ＿Ａ及びＣｏｅｆｆ＿Ｂの切り換えは、例えば外部のコントローラにより制御される。Ｃｏｅｆｆ＿Ａ及びＣｏｅｆｆ＿Ｂは、可逆変換時と非可逆変換時とで、その値が以下のように切り換えられる。
【００９１】
可逆変換時
Ｃｏｅｆｆ＿Ａ＝０ｘ２０００（１６進数、なお、１０進数で表すと“２”となる）
Ｃｏｅｆｆ＿Ｂ＝０
非可逆変換時
Ｃｏｅｆｆ＿Ａ＝０
Ｃｏｅｆｆ＿Ｂ＝０ｘｆｆｆ（１６進数）
【００９２】
（セレクタ）
セレクタついて説明をする。
【００９３】
各モジュールは、第１から第７のセレクタ２１〜２７を介して接続されている。第１から第７のセレクタ２１〜２７は、２つの入力端子（入力端子‘０’，入力端子‘１’）に対して、１つの出力端子が設けられたセレクタである。すなわち、第１〜第７の各セレクタ２１〜２７は、２つの入力端子の入力された信号のうち、いずれか一方の信号を選択して出力するものである。
【００９４】
第１から第６のセレクタ２１〜２６は、順変換処理時と、逆変換処理とで、入力端子が切り換えられる。順変換処理時には入力端子‘０’が選択され、逆変換処理時には入力端子‘１’が選択される。また、第７のセレクタ２７は、終端対称拡張を行う際に用いられる。具体的には、第７のセレクタ２７は、順変換処理時で且つ元データストリームのデータ総数が奇数の場合、並びに、逆変換処理時で且つ元データストリームのデータ総数が偶数の場合、最終データの処理タイミングで入力端子‘１’が選択される。それ以外の場合には、入力端子‘０’が選択される。
【００９５】
（フリップフロップ）
第１〜第３のフリップフロップ２８，２９，３０は、入力端子に入力されたデータを、１クロック分遅延させ、遅延させたデータを出力端子から出力する。
【００９６】
（各モジュールの接続関係）
つぎに、各モジュールの接続関係について、再度図１２を参照して説明をする。
【００９７】
Ｉ０端子は、第１のフリップフロップ２８の入力端子及び第７のセレクタ２７の入力端子‘１’に接続されている。第１のフリップフロップ２８の出力端子は、第１のセレクタ２１の入力端子‘０’及び第３のセレクタ２３の入力端子‘１’に接続されている。
【００９８】
Ｉ１端子は、第１のセレクタ２１の入力端子‘１’、第３の入力端子２３の入力端子‘０’及び第２のフリップフロップ２９の入力端子に接続されている。第２のフリップフロップ２９の出力端子は、関数Ｃ０モジュール１３のＣ０ｉｎ０端子に接続されている。
【００９９】
Ｉ２端子は、関数Ｃ１モジュール１４のＣ１ｉｎ０端子に接続されている。
【０１００】
Ｉ３端子は、第２のセレクタ２２の入力端子‘１’及び第４のセレクタ２４の入力端子‘０’に接続されている。
【０１０１】
第１のセレクタ２１の出力端子は、関数Ａモジュール１１のＡｉｎ０端子に接続されている。第２のセレクタ２２の出力端子は、関数Ａモジュール１１のＡｉｎ１端子に接続されている。第３のセレクタ２３の出力端子は、関数Ｂモジュール１２のＢｉｎ０端子に接続されている。第４のセレクタ２４の出力端子は、関数Ｂモジュール１２のＢｉｎ１端子に接続されている。
【０１０２】
関数Ａモジュール１１のＡｏｕｔ端子は、第５のセレクタ２５の入力端子‘０’及び第６のセレクタ２６の入力端子‘１’に接続されている。関数Ｂモジュール１２のＢｏｕｔ端子は、第５のセレクタ２５の入力端子‘１’及び第６のセレクタ２６の入力端子‘０’に接続されている。
【０１０３】
第５のセレクタ２５の出力端子は、関数Ｃ０モジュール１３のＣ０ｉｎ１端子に接続されている。第６のセレクタ２６の出力端子は、関数Ｃ１モジュール１４のＣ１ｉｎ１端子に接続されている。
【０１０４】
関数Ｃ０モジュール１３のＣ０ｏｕｔ端子は、Ｏ０端子に接続されている。関数Ｃ１モジュール１４のＣ１ｏｕｔ端子は、Ｏ１端子及び第７のセレクタ２７の入力端子‘０’に接続されている。
【０１０５】
第７のセレクタ２７の出力端子は、第３のフリップフロップ３０の入力端子に接続されている。第３のフリップフロップ３０の出力端子は、第２のセレクタ２２の入力端子‘０’及び第４のセレクタ２４の入力端子‘１’に接続されている。
【０１０６】
係数発生モジュール１５から発生される係数Ｃｏｅｆｆ＿Ａは、関数Ａモジュール１１のＣｏｅｆｆ＿Ａ端子に入力される。係数発生モジュール１５から発生されるＣｏｅｆｆ＿Ｂは、関数Ａモジュール１１のＣｏｅｆｆ＿Ｂ端子及び関数Ｂモジュール１２のＣｏｅｆｆ＿Ｂ端子に入力される。
【０１０７】
（順変換処理時の動作）
順変換処理時の動作について説明をする。
【０１０８】
ウェーブレット変換装置１は、順変換処理時には、１回の処理パスごとに、１つの高域係数及び１つの低域係数を生成する５×３順方向フィルタ演算を行う。本ウェーブレット変換装置１には、外部のコントローラにより、元データストリーム及び前パスですでに生成している高域データストリームの各データが選択されて入力される。外部のコントローラは、元データストリームの各データを、先頭データから最終データまで、１パスごとに２データずつステップさせて、ウェーブレット変換装置１に入力していくことによって、高域データストリームと低域データストリームとを生成する。
【０１０９】
順変換処理時には、第１〜第６のセレクタ２１〜２６が、外部のコントローラにより入力端子‘０’に切り換えられる。
【０１１０】
このウェーブレット変換装置１には、順変換処理時には、外部のコントローラにより、Ｉ０端子にｄｎ−１ｆが入力され、Ｉ１端子にＳｎｓが入力され、Ｉ２端子にｄｎｓが入力され、Ｉ３端子にｓｎ＋１ｓが入力される。
【０１１１】
この結果、ウェーブレット変換装置１により、可逆変換時には、下記のような演算結果が得られることとなる。
ｓｎｆ＝ｓｎｓ＋｛（ｄｎ−１ｆ＋ｄｎｆ＋２）＞＞２｝
ｄｎｆ＝ｄｎｓ−｛（ｓｎｓ＋ｓｎ＋１ｓ）＞＞１｝
また、非可逆変換時は、下記のような演算結果が得られることとなる。
ｓｎｆ＝ｓｎｓ＋０．２５×（ｄｎ−１ｆ＋ｄｎｆ）
ｄｎｆ＝ｄｎｓ−０．５×（ｓｎｓ＋ｓｎ＋１ｓ）
【０１１２】
そして、Ｏ０端子からは演算結果であるｓｎｆが出力され、Ｏ１端子からは演算結果であるｄｎｆが出力される。
【０１１３】
図１８に、順変換処理時の通常の動作の入出力データのタイミングチャートを示す。この図１８に示すように、本ウェーブレット変換装置１は、２クロックで１回の処理パスが行われる。１つの処理パス内の１回目のクロックで、関数Ｂモジュール１２及び関数Ｃ１モジュール１４が動作して演算を行い、２回目のクロックで、関数Ａモジュール１１及び関数Ｃ０モジュール１３が動作して演算を行うこととなる。
【０１１４】
図１９に、低域データストリームの先頭の係数（ｓ１ｆ）を生成する際のタイミングチャートを示す。この図１９に示すように、先頭の低域データ（ｓ１ｆ）は、最初のパスの２クロック目で処理がされる。この際に、外部のコントローラは、１クロック目でＯ１端子から出力された先頭の高域データ（ｄ１ｆ）を取り出して、Ｉ０端子に入力する。このことによって、順変換処理時の先頭対称拡張を行うことができる。
【０１１５】
図２０に、画素データの総数が偶数である元データストリームを用いて、高域データストリームの終端の高域係数（ｄｍｆ）を生成する際のタイミングチャートを示す。この図２０に示すように、終端の高域係数（ｄｍｆ）は、最終パスの１クロック目で処理がされる。この際に、外部のコントローラは、Ｉ１端子に入力する元データ（ｓｍｓ）を、Ｉ３端子にも入力する。このことによって、元データストリームの画素データの総数が偶数である場合の順変換処理時の終端対称拡張を行うことができる。
【０１１６】
図２１に、画素データの総数が奇数である元データストリームを用いて、低域データストリームの終端の低域係数（ｓｍｆ）を生成する際のタイミングチャートを示す。この図２１に示すように、終端の低域係数（ｓｍｆ）は、最終パスの２クロック目で処理がされる（なお、最終パスの１クロック目のデータは生成さない。（Ｏ１）はない。）。この際に、外部のコントローラは、第７のセレクタ２７を、入力端子‘１’側に切り換え、Ｉ０端子に入力する高域係数（ｄｍ−１ｆ）を、出力端子Ｏ１から出力されるデータに代えて入力する。このことによって、元データストリームの画素データの総数が奇数である場合の順変換処理時の終端対称拡張を行うことができる。
【０１１７】
（逆変換処理時の動作）
逆変換処理時の動作について説明をする。
【０１１８】
本ウェーブレット変換装置１は、１回の処理パスが２クロックで動作する。１つの処理パス内の１回目のクロックで、関数Ｂモジュール１２及び関数Ｃ１モジュール１４が動作して演算を行い、２回目のクロックで、関数Ａモジュール１１及び関数Ｃ０モジュール１３が動作して演算を行うこととなる。
【０１１９】
ウェーブレット変換装置１は、逆変換処理時には、１回の処理パスごとに、２つの元画像データを生成する５×３逆方向フィルタ演算を行う。本ウェーブレット変換装置１には、外部のコントローラにより、低域データストリーム及び高域データストリーム、並びに、前パスですでに生成している元データストリームの各データが選択されて入力される。外部のコントローラは、低域データストリーム及び高域データストリームの各データを、先頭データから最終データまで、各１データずつステップさせて、ウェーブレット変換装置１に入力していくことによって、元データストリームとを生成する。
【０１２０】
逆変換処理時には、第１〜第６のセレクタ２１〜２６は、入力端子‘１’を選択する。
【０１２１】
このウェーブレット変換装置１には、逆変換処理時には、Ｉ０端子にｓｎｓが入力され、Ｉ１端子にｄｎｆが入力され、Ｉ２端子にｓｎ＋１ｆが入力され、Ｉ３端子にｄｎ＋１ｆが入力される。
【０１２２】
この結果、ウェーブレット変換装置１により、可逆変換時には、下記のような演算結果が得られることとなる。
ｄｎｓ＝ｄｎｆ＋｛（ｓｎｓ＋ｓｎ＋１ｓ）＞＞１｝
ｓｎ＋１ｓ＝ｓｎ＋１ｆ−｛（ｄｎｆ＋ｄｎ＋１ｆ＋２）＞＞２｝
また、非可逆変換時は、下記のような演算結果が得られることとなる。
ｄｎｓ＝ｄｎｆ＋０．５×｛（ｓｎｓ＋ｓｎ＋１ｓ）
ｓｎ＋１ｓ＝ｓｎ＋１ｆ−０．２５×（ｄｎｆ＋ｄｎ＋１ｆ）
【０１２３】
そして、Ｏ０端子からは演算結果であるｄｎｓが出力され、Ｏ１端子からは演算結果であるｓｎ＋１ｓが出力される。
【０１２４】
図２２に、逆変換処理時の通常の動作の入出力データのタイミングチャートを示す。この図２２に示すように、本ウェーブレット変換装置１は、２クロックで１回の処理パスが行われる。１つの処理パス内の１回目のクロックで、関数Ａモジュール１１及び関数Ｃ１モジュール１４が動作して演算を行い、２回目のクロックで、関数Ｂモジュール１２及び関数Ｃ０モジュール１３が動作して演算を行う。
【０１２５】
図２３に、元データストリームの先頭の係数（ｓ１ｓ）を生成する際のタイミングチャートを示す。この図２３に示すように、先頭の元データ（ｓ１ｓ）は、最初のパスの１クロック目で処理がされる（なお、最初のパスの２クロック目では、データは生成されない。）。この際に、外部のコントローラは、Ｉ３端子に入力する元データ（ｄ１ｆ）を、Ｉ１端子にも入力する。このことによって、逆変換処理時の先頭対称拡張を行うことができる。
【０１２６】
図２４に、画素データの総数が偶数である元データストリームを生成する際の終端の元データ（ｄｍｓ）を生成する際のタイミングチャートを示す。この図２４に示すように、終端の元データ（ｄｍｓ）は、最終パスの２クロック目で処理がされる（なお、最終パスの１クロック目の出力データ（Ｏ１）はない。）。この際に、外部のコントローラは、第７のセレクタ２７を、入力端子‘１’側に切り換え、Ｉ０端子に入力する元データ（ｓｍｓ）を、出力端子Ｏ１から出力されるデータに代えて入力する。このことによって、元データストリームの画素データの総数が偶数である場合の逆変換処理時の終端対称拡張を行うことができる。
【０１２７】
図２５に、画素データの総数が奇数である元データストリームを生成する際の終端の元データ（ｓｍｓ）を生成する際のタイミングチャートを示す。この図２５に示すように、終端の元データ（ｓｍｓ）は、最終パスの１クロック目で処理がされる。この際に、外部のコントローラは、Ｉ１端子に入力する高域係数（ｄｍ−１ｆ）を、Ｉ３端子にも入力する。このことによって、元データストリームの画素データの総数が奇数である場合の逆変換処理時の終端対称拡張を行うことができる。
【０１２８】
（効果及び変形例）
以上のように本ウェーブレット変換装置１では、フィルタ演算ブロックを、関数Ａモジュール１１、関数Ｂモジュール１２、関数Ｃ０モジュール１３、関数Ｃ１モジュール１４とに分離し、順変換時と逆変換時とでこれらのモジュールの接続関係をセレクタにより切り換えている。このため、ウェーブレット変換装置１では、回路規模が非常に小さくなっている。
【０１２９】
具体的には、ウェーブレット変換装置１では、以下のように演算ブロックを分割し、これらを順変換時と逆変換時とで組み合わせて、フィルタ演算を行っている。
関数Ａモジュール１１：  （Ａｉｎ０  ＋  Ａｉｎ１  ＋  Ｃｏｅｆｆ＿Ａ）    ＞＞  ２
関数Ｂモジュール１２：  （Ｂｉｎ０  ＋  Ｂｉｎ１）  ２  ＞＞  １
関数Ｃ０モジュール１３：Ｃ０ｉｎ０  ＋  Ｃ０ｉｎ１
関数Ｃ１モジュール１４：Ｃ１ｉｎ０  −  Ｃ１ｉｎ１
【０１３０】
また、ウェーブレット変換装置１では、可逆変換時と非可逆変換時とで、係数発生モジュール１５から発生される、関数Ａモジュール１１に与えるＣｏｅｆｆ＿Ａと、関数Ａモジュール１１及び関数Ｂモジュール１２の出力結果の小数部を削除するか残すかを決定する係数Ｃｏｅｆｆ＿Ｂとを、切り換えている。このため、ウェーブレット変換装置１では、１つの演算モジュールで、可逆演算と非可逆演算を行うことができ、回路規模が非常に小さくなっている。
【０１３１】
なお、本実施の形態のウェーブレット変換装置１では、低域係数と高域係数との位相順序を、図１に示したように、低域係数→高域係数の順で生成しているが、本発明はこのような位相順序に限らず、図２６に示すように、高域係数→低域係数の順でもよい。
【０１３２】
この場合、ウェーブレット変換装置１に対して入出力される元データストリーム及び低域データストリームのデータ順序、すなわち、各データに付けられた下付けのｎの値は、本実施の形態のウェーブレット変換装置１で説明したものに、相対的に１つ加算された順序となる。
【０１３３】
すなわち、元データの元データストリーム上の位置（順序）をＬ、高域係数の高域データストリーム上の位置（順序）をＭ、低域係数の低域データストリーム上の位置（順序）をＮとしたとする（Ｌ，Ｍ，Ｎは整数）。
【０１３４】
この場合、本実施の形態のウェーブレット変換装置１では、Ｌ，Ｍ，Ｎと、下付けのｎの関係は次のようになる。
２ｎ＝Ｌ＝２Ｍ＝２Ｎ
これに対して、高域係数→低域係数の順でフィルタ演算を行う場合には、Ｌ，Ｍ，Ｎと、下付けのｎの関係は、次のようになる。
２ｎ＝（Ｌ＋１）＝２Ｍ＝２（Ｎ＋１）
また、高域係数→低域係数の位相順序でフィルタ演算を行う場合にも、高域係数が存在しないため先頭対称拡張を行う際には、存在しない高域係数の１つ後の高域係数を用いて先頭対称拡張をすればよい。同様に、元データが存在しないため先頭対称拡張を行う際には、存在しない元データの２つあとの元データを用いて先頭対称拡張を行えばよい。
【０１３５】
また、高域係数→低域係数の位相順序でフィルタ演算を行う場合にも、高域係数が存在しないため終端対称拡張を行う際には、存在しない高域係数の１つ前の高域係数を用いて終端対称拡張をすればよい。同様に、元データが存在しないため終端対称拡張を行う際には、存在しない元データの２つ前の元データを用いて終端対称拡張を行えばよい。
【０１３６】
【発明の効果】
本発明にかかる５×３ウェーブレット変換装置では、順変換時と逆変換時とで、演算手段の接続関係を切り換えている。このため、本発明にかかる５×３ウェーブレット変換装置では、回路規模を小さくすることができる。
【０１３７】
また、本発明にかかる５×３ウェーブレット変換装置では、可逆変換時と非可逆変換時とで、第１の演算手段に与えるＣｏｅｆｆ＿Ａと、第１の演算手段及び第２の演算手段の出力結果の小数部を削除するか残すかを、切り換えている。このため、本発明にかかる５×３ウェーブレット変換装置では、１つの演算手段で、可逆演算と非可逆演算を行うことができ、回路規模を小さくすることができる。
【図面の簡単な説明】
【図１】ウェーブレット変換について説明するための図である。
【図２】順方向可逆ウェーブレット変換について説明をする図である。
【図３】逆方向可逆ウェーブレット変換について説明をする図である。
【図４】順方向非可逆ウェーブレット変換について説明をする図である。
【図５】逆方向非可逆ウェーブレット変換について説明をする図である。
【図６】順変換処理時の先頭対称拡張について説明をする図である。
【図７】元データの総数が偶数である場合の順変換処理時の終端対称拡張について説明をする図である。
【図８】元データの総数が奇数である場合の順変換処理時の終端対称拡張について説明をする図である。
【図９】逆変換処理時の先頭対称拡張について説明をする図である。
【図１０】元データの総数が偶数である場合の逆変換処理時の終端対称拡張について説明をする図である。
【図１１】元データの総数が奇数である場合の逆変換処理時の終端対称拡張について説明をする図である。
【図１２】ウェーブレット変換装置の回路図である。
【図１３】関数Ａモジュールの回路図である。
【図１４】関数Ｂモジュールの回路図である。
【図１５】関数Ｃ０モジュールの回路図である。
【図１６】関数Ｃ１モジュールの回路図である。
【図１７】係数発生モジュールの回路図である。
【図１８】順変換処理時の通常の入出力データのタイミングチャートを示す。
【図１９】順変換処理時の先頭対称拡張を行う場合の入出力データのタイミングチャートである。
【図２０】元データの総数が偶数の順変換処理時の終端対称拡張を行う場合の入出力データのタイミングチャートである。
【図２１】元データの総数が奇数の順変換処理時の終端対称拡張を行う場合の入出力データのタイミングチャートである。
【図２２】逆変換処理時の通常の入出力データのタイミングチャートを示す。
【図２３】逆変換処理時の先頭対称拡張を行う場合の入出力データのタイミングチャートである。
【図２４】元データの総数が偶数の逆変換処理時の終端対称拡張を行う場合の入出力データのタイミングチャートである。
【図２５】元データの総数が奇数の逆変換処理時の終端対称拡張を行う場合の入出力データのタイミングチャートである。
【図２６】高域係数→低域係数の位相順序でフィルタリングを行った場合のウェーブレット変換について説明するための図である。
【符号の説明】
１  ウェーブレット変換装置、１１  関数Ａモジュール、１２  関数Ｂモジュール、１３  関数Ｃ０モジュール、１４  関数Ｃ１モジュール、１５  係数発生モジュール
【図１】
0003608554.tif 000002
【図２】
0003608554.tif 000003
【図３】
0003608554.tif 000004
【図４】
0003608554.tif 000005
【図５】
0003608554.tif 000006
【図６】
0003608554.tif 000007
【図７】
0003608554.tif 000008
【図８】
0003608554.tif 000009
【図９】
0003608554.tif 000010
【図１０】
0003608554.tif 000011
【図１１】
0003608554.tif 000012
【図１２】
0003608554.tif 000013
【図１３】
0003608554.tif 000014
【図１４】
0003608554.tif 000015
【図１５】
0003608554.tif 000016
【図１６】
0003608554.tif 000017
【図１７】
0003608554.tif 000018
【図１８】
0003608554.tif 000019
【図１９】
0003608554.tif 000020
【図２０】
0003608554.tif 000021
【図２１】
0003608554.tif 000022
【図２２】
0003608554.tif 000023
【図２３】
0003608554.tif 000024
【図２４】
0003608554.tif 000025
【図２５】
0003608554.tif 000026
【図２６】
0003608554.tif 000027