(57)【特許請求の範囲】
【請求項１】
Ｎ（Ｎは自然数）個の入力信号に対し離散コサイン変換及び離散サイン変換の直交変換処理を行い、Ｎ個の離散コサイン変換係数及びＮ個の離散サイン変換係数を生成する直交変換処理装置において、
前記Ｎ個の入力信号を用いて第１段階の積和演算を行い、第２段階以降の積和演算を、１つ前の段階の積和演算の結果を用いて段階的にそれぞれ行うことで、前記Ｎ個の離散コサイン変換係数及びＮ個の離散サイン変換係数を生成する処理部を備え、
前記処理部は、前記積和演算の結果の一部を、前記Ｎ個の離散コサイン変換係数及びＮ個の離散サイン変換係数を生成するための共通の結果として、次の段階の積和演算に用いる、ことを特徴とする直交変換処理装置。
【請求項２】
請求項１に記載の直交変換処理装置において、
前記処理部は、前記Ｎ個の入力信号のうちのいずれかの入力信号を用いて積和演算を行い、第１段階の結果を求め、前記第１段階の結果を、前記離散コサイン変換係数及び離散サイン変換係数を生成するための共通の結果として、第２段階の積和演算に用いる、ことを特徴とする直交変換処理装置。
【請求項３】
請求項２に記載の直交変換処理装置において、
前記処理部は、さらに、第２段階以降の積和演算の結果の一部を、前記離散コサイン変換係数及び離散サイン変換係数を生成するための共通の結果として、次の段階の積和演算の一部に用いる、ことを特徴とする直交変換処理装置。
【請求項４】
請求項１から３までのいずれか一項に記載の直交変換処理装置において、
前記処理部は、前記Ｎ個の入力信号を用いて第１段階の積和演算を行い、第２段階以降の積和演算を、１つ前の段階の積和演算の結果を用いて段階的にそれぞれ行うことで、前記Ｎ個の離散コサイン変換係数を生成する処理を示す段階的な離散コサイン変換フローと、前記Ｎ個の入力信号を用いて第１段階の積和演算を行い、第２段階以降の積和演算を、１つ前の段階の積和演算の結果を用いて段階的にそれぞれ行うことで、前記Ｎ個の離散サイン変換係数を生成する処理を示す段階的なフローであって、かつ前記離散コサイン変換フローと同じ形態の離散サイン変換フローとを結合した処理により、前記積和演算の結果の一部を、前記Ｎ個の離散コサイン変換係数及びＮ個の離散サイン変換係数を生成するための共通の結果として、次の段階の積和演算に用いる、ことを特徴とする直交変換処理装置。
【請求項５】
請求項１から４までのいずれか一項に記載の直交変換処理装置において、
前記Ｎを、４、８、１６、３２のうちのいずれかとする、ことを特徴とする直交変換処理装置。
【請求項６】
Ｎ（Ｎは自然数）個の入力信号に対し離散コサイン変換及び離散サイン変換の直交変換処理を行い、Ｎ個の離散コサイン変換係数及びＮ個の離散サイン変換係数を生成する処理部と、離散コサイン変換係数を量子化するＤＣＴ量子化処理部と、離散サイン変換係数を量子化するＤＳＴ量子化処理部と、離散コサイン変換係数または離散サイン変換係数のいずれか一方を選択する選択部とを備えた直交変換処理装置による直交変換処理方法において、
前記処理部が、前記Ｎ個の入力信号を用いて第１段階の積和演算を行い、第２段階以降の積和演算を、１つ前の段階の積和演算の結果を用いて段階的にそれぞれ行う第１のステップと、
前記処理部が、前記積和演算の結果の一部を、前記Ｎ個の離散コサイン変換係数及びＮ個の離散サイン変換係数を生成するための共通の結果として、次の段階の積和演算に用いる第２のステップと、
前記処理部が、最終段階の積和演算を行い、前記Ｎ個の離散コサイン変換係数であるＤＣＴ係数列及び前記Ｎ個の離散サイン変換係数であるＤＳＴ係数列を生成する第３のステップと、
前記ＤＣＴ量子化処理部が、前記処理部により第３のステップにて生成されたＤＣＴ係数列に対し、予め設定された定数を乗算して量子化を行う第４のステップと、
前記ＤＳＴ量子化処理部が、前記処理部により第３のステップにて生成されたＤＳＴ係数列に対し、予め設定された定数を乗算して量子化を行う第５のステップと、
前記選択部が、前記ＤＣＴ量子化処理部により第４のステップにて量子化されたＤＣＴ係数列、または前記ＤＳＴ量子化処理部により第５のステップにて量子化されたＤＳＴ係数列のいずれか一方を選択する第６のステップと、
を有することを特徴とする直交変換処理方法。
【請求項７】
Ｎ（Ｎは自然数）個の入力信号に対し離散コサイン変換及び離散サイン変換の直交変換処理を行い、Ｎ個の離散コサイン変換係数及びＮ個の離散サイン変換係数を生成し、前記Ｎ個の離散コサイン変換係数またはＮ個の離散サイン変換係数のうちのいずれか一方の係数列を出力する直交変換処理装置を構成するコンピュータを、
前記Ｎ個の入力信号を用いて第１段階の積和演算を行い、第２段階以降の積和演算を、１つ前の段階の積和演算の結果を用いて段階的にそれぞれ行う際に、前記積和演算の結果の一部を、前記Ｎ個の離散コサイン変換係数及びＮ個の離散サイン変換係数を生成するための共通の結果として、次の段階の積和演算に用い、最終段階の積和演算を行い、前記Ｎ個の離散コサイン変換係数であるＤＣＴ係数列及びＮ個の離散サイン変換係数であるＤＳＴ係数列を生成する処理部、
前記処理部により生成されたＤＣＴ係数列に対し、予め設定された定数を乗算して量子化を行うＤＣＴ量子化処理部、
前記処理部により生成されたＤＳＴ係数列に対し、予め設定された定数を乗算して量子化を行うＤＳＴ量子化処理部、及び、
前記ＤＣＴ量子化処理部により量子化されたＤＣＴ係数列または前記ＤＳＴ量子化処理部により量子化されたＤＳＴ係数列のいずれか一方を選択する選択部として機能させるための直交変換処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像または音声等の信号を符号化する直交変換技術に関し、特に、離散コサイン変換処理及び離散サイン変換処理を行う直交変換処理装置、方法及びプログラムに関する。
【背景技術】
【０００２】
従来、画像または音声等の信号の符号化分野において、画像等の離散信号に対し直交変換処理を行って符号化する技術が広く知られている。例えば、画像圧縮方式を規定するＪＰＥＧ及び音声圧縮方式を規定するＭＰ３には、直交変換として離散コサイン変換が用いられている。また、符号化における直交変換処理として、離散コサイン変換と離散サイン変換とを適応的に用いることが知られており、両者の結果を比較するために、これらの２種類の直交変換処理を行う必要がある。
【０００３】
従来、直交変換処理を行う際に、離散コサイン変換及び離散サイン変換を高速に実現する方法として、Ｃｈｅｎのバタフライ演算アルゴリズム（非特許文献１）を用いたもの、バタフライ演算アルゴリズムを改良したもの（特許文献１）等が知られている。非特許文献１には、離散コサイン変換による直交変換処理を高速化する方法が記載されている。また、特許文献１には、バタフライ演算アルゴリズムの改良により、離散コサイン変換及び離散サイン変換の２種類の直交変換処理を、１つの装置で処理する方法が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０２−１１６９６９号公報
【非特許文献】
【０００５】
【非特許文献１】W．Chen，C．H．Smith，and  S．C．Fralick，“A  fast  computational  algorithm  for  the  discrete  cosine  transform”，IEEE  Trans．  Commun．，vol．COMM-25，pp．1004−1009，Sept．1977．
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非特許文献１に記載された方法は、前述のとおり、離散コサイン変換による直交変換処理を高速化するものである。しかしながら、複数種類の直交変換を処理するためには、異なる複数のバタフライ演算回路を備える必要があり、回路規模が増大するという問題があった。
【０００７】
また、特許文献１に記載された方法は、前述のとおり、離散コサイン変換及び離散サイン変換の２種類の直交変換を１つの装置で処理するものである。しかしながら、２種類の直交変換処理を行うためには、回路を２回動作させるか、または２つの回路を備える必要があり、演算時間及び消費電力が増大するという問題があった。
【０００８】
そこで、本発明はかかる課題を解決するためになされたものであり、その目的は、離散コサイン変換処理及び離散サイン変換処理を、少ない演算回数で同時に行うことが可能な直交変換処理装置、方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
前記目的を達成するために、本発明による直交変換処理装置は、Ｎ（Ｎは自然数）個の入力信号に対し離散コサイン変換及び離散サイン変換の直交変換処理を行い、Ｎ個の離散コサイン変換係数及びＮ個の離散サイン変換係数を生成する直交変換処理装置において、前記Ｎ個の入力信号を用いて第１段階の積和演算を行い、第２段階以降の積和演算を、１つ前の段階の積和演算の結果を用いて段階的にそれぞれ行うことで、前記Ｎ個の離散コサイン変換係数及びＮ個の離散サイン変換係数を生成する処理部を備え、前記処理部が、前記積和演算の結果の一部を、前記Ｎ個の離散コサイン変換係数及びＮ個の離散サイン変換係数を生成するための共通の結果として、次の段階の積和演算に用いる、ことを特徴とする。
【００１０】
また、本発明による直交変換処理装置は、前記処理部が、前記Ｎ個の入力信号のうちのいずれかの入力信号を用いて積和演算を行い、第１段階の結果を求め、前記第１段階の結果を、前記離散コサイン変換係数及び離散サイン変換係数を生成するための共通の結果として、第２段階の積和演算に用いる、ことを特徴とする。
【００１１】
また、本発明による直交変換処理装置は、前記処理部が、さらに、第２段階以降の積和演算の結果の一部を、前記離散コサイン変換係数及び離散サイン変換係数を生成するための共通の結果として、次の段階の積和演算の一部に用いる、ことを特徴とする。
【００１２】
また、本発明による直交変換処理装置は、前記処理部が、前記Ｎ個の入力信号を用いて第１段階の積和演算を行い、第２段階以降の積和演算を、１つ前の段階の積和演算の結果を用いて段階的にそれぞれ行うことで、前記Ｎ個の離散コサイン変換係数を生成する処理を示す段階的な離散コサイン変換フローと、前記Ｎ個の入力信号を用いて第１段階の積和演算を行い、第２段階以降の積和演算を、１つ前の段階の積和演算の結果を用いて段階的にそれぞれ行うことで、前記Ｎ個の離散サイン変換係数を生成する処理を示す段階的なフローであって、かつ前記離散コサイン変換フローと同じ形態の離散サイン変換フローとを結合した処理により、前記積和演算の結果の一部を、前記Ｎ個の離散コサイン変換係数及びＮ個の離散サイン変換係数を生成するための共通の結果として、次の段階の積和演算に用いる、ことを特徴とする、ことを特徴とする。
【００１３】
また、本発明による直交変換処理装置は、前記Ｎを、４、８、１６、３２のうちのいずれかとする、ことを特徴とする。
【００１４】
さらに、本発明による直交変換処理方法は、Ｎ（Ｎは自然数）個の入力信号に対し離散コサイン変換及び離散サイン変換の直交変換処理を行い、Ｎ個の離散コサイン変換係数及びＮ個の離散サイン変換係数を生成する処理部と、離散コサイン変換係数を量子化するＤＣＴ量子化処理部と、離散サイン変換係数を量子化するＤＳＴ量子化処理部と、離散コサイン変換係数または離散サイン変換係数のいずれか一方を選択する選択部とを備えた直交変換処理装置による直交変換処理方法において、前記処理部が、前記Ｎ個の入力信号を用いて第１段階の積和演算を行い、第２段階以降の積和演算を、１つ前の段階の積和演算の結果を用いて段階的にそれぞれ行う第１のステップと、前記処理部が、前記積和演算の結果の一部を、前記Ｎ個の離散コサイン変換係数及びＮ個の離散サイン変換係数を生成するための共通の結果として、次の段階の積和演算に用いる第２のステップと、前記処理部が、最終段階の積和演算を行い、前記Ｎ個の離散コサイン変換係数であるＤＣＴ係数列及び前記Ｎ個の離散サイン変換係数であるＤＳＴ係数列を生成する第３のステップと、前記ＤＣＴ量子化処理部が、前記処理部により第３のステップにて生成されたＤＣＴ係数列に対し、予め設定された定数を乗算して量子化を行う第４のステップと、前記ＤＳＴ量子化処理部が、前記処理部により第３のステップにて生成されたＤＳＴ係数列に対し、予め設定された定数を乗算して量子化を行う第５のステップと、前記選択部が、前記ＤＣＴ量子化処理部により第４のステップにて量子化されたＤＣＴ係数列、または前記ＤＳＴ量子化処理部により第５のステップにて量子化されたＤＳＴ係数列のいずれか一方を選択する第６のステップと、を有することを特徴とする。
【００１５】
また、本発明による直交変換処理プログラムは、Ｎ（Ｎは自然数）個の入力信号に対し離散コサイン変換及び離散サイン変換の直交変換処理を行い、Ｎ個の離散コサイン変換係数及びＮ個の離散サイン変換係数を生成し、前記Ｎ個の離散コサイン変換係数またはＮ個の離散サイン変換係数のうちのいずれか一方の係数列を出力する直交変換処理装置を構成するコンピュータを、前記Ｎ個の入力信号を用いて第１段階の積和演算を行い、第２段階以降の積和演算を、１つ前の段階の積和演算の結果を用いて段階的にそれぞれ行う際に、前記積和演算の結果の一部を、前記Ｎ個の離散コサイン変換係数及びＮ個の離散サイン変換係数を生成するための共通の結果として、次の段階の積和演算に用い、最終段階の積和演算を行い、前記Ｎ個の離散コサイン変換係数であるＤＣＴ係数列及びＮ個の離散サイン変換係数であるＤＳＴ係数列を生成する処理部、前記処理部により生成されたＤＣＴ係数列に対し、予め設定された定数を乗算して量子化を行うＤＣＴ量子化処理部、前記処理部により生成されたＤＳＴ係数列に対し、予め設定された定数を乗算して量子化を行うＤＳＴ量子化処理部、及び、前記ＤＣＴ量子化処理部により量子化されたＤＣＴ係数列または前記ＤＳＴ量子化処理部により量子化されたＤＳＴ係数列のいずれか一方を選択する選択部として機能させることを特徴とする。
【発明の効果】
【００１６】
以上のように、本発明によれば、離散コサイン変換処理及び離散サイン変換処理の一部を共有化するようにしたから、これらの処理を少ない演算回数で同時に行うことができ、回路規模、演算時間及び消費電力を削減することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態による直交変換処理装置（直交変換部）を含む符号化装置の構成を示すブロック図である。
【図２】本発明の実施形態による直交変換処理装置（直交変換部）の構成を示すブロック図である。
【図３】Ｎ＝４のＤＣＴバタフライ線図である。
【図４】Ｎ＝４のＤＳＴバタフライ線図である。
【図５】ＤＣＴから求めたＮ＝４のＤＳＴバタフライ線図である。
【図６】（１）は、入力信号を−ｘからｘに変更する場合の、バタフライ線図の変形規則を示す図である。（２）は、出力信号を−ｙからｙに変更する場合の、バタフライ線図の変形規則を示す図である。
【図７】（１）は、ＤＣＴから求めたＮ＝４のＤＳＴバタフライ線図である。（２）は、入力信号の−ｘ１，−ｘ３をｘ１，ｘ３に変更した場合の、Ｎ＝４のＤＳＴバタフライ線図である。（３）は、出力信号のＳ３，Ｓ１，Ｓ２，Ｓ０をＳ０，Ｓ２，Ｓ１，Ｓ３の順番に変更した場合の、Ｎ＝４のＤＳＴバタフライ線図である。
【図８】Ｎ＝４のＤＣＴ・ＤＳＴバタフライ線図である。
【図９】Ｎ＝４のＤＣＴプログラムの概要を示す図である。
【図１０】Ｎ＝４のＤＳＴプログラムの概要を示す図である。
【図１１】Ｎ＝４のＤＣＴ・ＤＳＴプログラムの概要を示す図である。
【図１２】Ｎ＝８のＤＣＴ・ＤＳＴバタフライ線図である。
【図１３】Ｎ＝１６のＤＣＴ・ＤＳＴプログラムの概要を示す図である。
【図１４】図１３のＤＣＴ・ＤＳＴプログラムの続きを示す図である。
【図１５】Ｎ＝３２のＤＣＴ・ＤＳＴプログラムの概要を示す図である。
【図１６】図１５のＤＣＴ・ＤＳＴプログラムの続きを示す図である。
【図１７】図１６のＤＣＴ・ＤＳＴプログラムの続きを示す図である。
【図１８】図１７のＤＣＴ・ＤＳＴプログラムの続きを示す図である。
【図１９】図１８のＤＣＴ・ＤＳＴプログラムの続きを示す図である。
【図２０】シミュレーション結果を示す図である。
【発明を実施するための形態】
【００１８】
以下、本発明を実施するための形態について図面を用いて詳細に説明する。本発明は、離散コサイン変換（以下、ＤＣＴという。）及び離散サイン変換（以下、ＤＳＴという。）の直交変換処理を、段階的な積和演算のフローを示す線図（以下、バタフライ線図という。）で表した場合に、ＤＳＴのバタフライ線図をＤＣＴのバタフライ線図と同じ形態になるように構成し、ＤＣＴ及びＤＳＴの積和演算における途中の演算結果を相互に利用して共有化することを特徴とする。これにより、ＤＣＴ及びＤＳＴの処理を別々に行う場合に比べ、これらの処理を少ない演算回数で同時に行うことができる。
【００１９】
〔符号化装置〕
まず、本発明の実施形態による直交変換処理装置を含む符号化装置について説明する。図１は、本発明の実施形態による直交変換処理装置（直交変換部）を含む符号化装置の構成を示すブロック図である。この符号化装置１１は、前処理部１、減算部２、直交変換部３、量子化部４、逆量子化部５、逆直交変換部６、加算部７、フレームメモリ８、信号予測部９及びエントロピー符号化部１０を備えている。
【００２０】
前処理部１は、符号化対象となる信号を入力し、この入力信号に対し、符号化のために必要な所定の前処理を行う。前処理については既知であるから、ここでは説明を省略する。減算部２は、前処理部１から前処理後の信号を入力すると共に、後述する信号予測部９から予測信号を入力し、前処理後の信号から予測信号を減算する。
【００２１】
直交変換部３は、減算部１から減算結果の信号を入力し、ＤＣＴ及びＤＳＴの直交変換を行い、ＤＣＴの直交変換結果であるＤＣＴ係数またはＤＳＴの直交変換結果であるＤＳＴ係数のいずれか一方を、符号化効率の観点から最適な信号として選択する。直交変換部３の詳細については後述する。
【００２２】
量子化部４は、直交変換部３からＤＣＴ係数またはＤＳＴ係数の信号を入力し、量子化を行う。逆量子化部５は、量子化部４から量子化した信号を入力し、逆量子化を行い、逆量子化した信号を逆直交変換部６に出力する。逆直交変換部６は、逆量子化部５から逆量子化された信号を入力し、この信号を、直交変換部３により選択されたＤＣＴ係数またはＤＳＴ係数に対応する逆離散コサイン変換（ＩＤＣＴ）または逆離散サイン変換（ＩＤＳＴ）の逆直交変換を行う。加算部７は、逆直交変換部６からＩＤＣＴ係数またはＩＤＳＴ係数の信号を入力すると共に、後述する信号予測部９から予測信号を入力し、両信号を加算する。
【００２３】
フレームメモリ８は、加算部７から加算結果の信号を入力し、復号信号として記憶する。フレームメモリ８に記憶された復号信号は、後述する信号予測部９により、予測信号を生成する際の参照信号として読み出される。
【００２４】
信号予測部９は、フレームメモリ８から参照信号を読み出し、参照信号に基づいて、所定の予測方式により予測信号を生成し、減算部２及び加算部７に出力する。エントロピー符号化部１０は、量子化部４から量子化した信号を入力し、エントロピー符号化し、符号化信号を出力する。
【００２５】
本発明の実施形態では、符号化装置１１の直交変換部３において、ＤＣＴ及びＤＳＴの直交変換を行う際に、減算部２からの信号に対する積和演算における途中の演算結果を、ＤＣＴ及びＤＳＴの両処理に共通して利用する。これにより、ＤＣＴ及びＤＳＴの処理を別々に行う場合に比べ、これらの処理を少ない演算回数で同時に行うことができ、直交変換部３としても符号化装置１１全体としても、回路規模、演算時間及び消費電力を削減することができる。
【００２６】
〔直交変換部〕
次に、図１に示した直交変換部３について詳細に説明する。図２は、直交変換部３の構成を示すブロック図である。この直交変換部３は、ＤＣＴ・ＤＳＴ処理部３１、ＤＣＴ量子化処理部３２−１、ＤＳＴ量子化処理部３２−２及び選択部３３を備えている。ＤＣＴ・ＤＳＴ処理部３１は、減算部２から減算結果の信号を入力し、ＤＣＴ及びＤＳＴの直交変換を行う際に、例えば１次元Ｎ点ＤＣＴ及びＤＳＴにおいてＮ＝４の場合、後述する図８のＤＣＴ・ＤＳＴバタフライ線図（後述する図１１のＤＣＴ・ＤＳＴプログラム）に示すように、ＤＣＴ及びＤＳＴの積和演算における途中の演算結果を相互に利用し、ＤＣＴ係数列及びＤＳＴ係数列を生成する。ＤＣＴ・ＤＳＴ処理部３１におけるＤＣＴ及びＤＳＴの直交変換の詳細については後述する。
【００２７】
ＤＣＴ量子化処理部３２−１は、ＤＣＴ・ＤＳＴ処理部３１からＤＣＴ係数列を入力し、ＤＣＴ係数列に対し、予め設定されたそれぞれの定数（ＤＣＴ用の定数）を乗算して量子化（スケーリング処理）を行う。また、ＤＳＴ量子化処理部３２−２は、ＤＣＴ・ＤＳＴ処理部３１からＤＳＴ係数列を入力し、ＤＳＴ係数列に対し、予め設定されたそれぞれの定数（ＤＳＴ用の定数）を乗算して量子化を行う。尚、ＤＣＴ量子化処理部３２−１及びＤＳＴ量子化処理部３２−２による量子化処理については既知であるから、ここでは詳細な説明を省略する。詳しくは、「矢ヶ崎陽一、他３名、株式会社トリケップス、“次世代画像符号化方式  ＭＰＥＧ−４  ＡＶＣ｜Ｈ．２６４”、ｐ．７２」を参照されたい。
【００２８】
ＤＣＴ・ＤＳＴ処理部３１及びＤＣＴ量子化処理部３２−１により、１次元Ｎ点ＤＣＴの演算式（後述する式（４））にて表されるＤＣＴ係数が求められる。また、ＤＣＴ・ＤＳＴ処理部３１及びＤＳＴ量子化処理部３２−２により、１次元Ｎ点ＤＳＴの演算式（後述する式（１））にて表されるＤＳＴ係数が求められる。
【００２９】
選択部３３は、ＤＣＴ量子化処理部３２−１からＤＣＴ係数列を入力すると共に、ＤＳＴ量子化処理部３２−２からＤＳＴ係数列を入力し、例えばＲＤ最適化法（Rate−Distortion  Optimization）によって、入力信号の特性に応じて直交変換後の信号の符号化効率が最も高くなる信号を、ＤＣＴ係数列またはＤＳＴ係数列から選択し、出力信号として出力する。
【００３０】
〔ＤＣＴ及びＤＳＴ〕
次に、ＤＣＴ及びＤＳＴの関係について説明する。ＤＣＴ及びＤＳＴは、三角関数を変換核とするフーリエ変換から派生した方式の１つである。サイン関数及びコサイン関数は、互いに直交する周期関数であり、この性質を利用することにより、以下に示すように、ＤＳＴの演算式をＤＣＴの演算式から導出することができる。
【００３１】
１次元Ｎ点ＤＳＴの演算式にて表されるｕ次のＤＳＴ係数Ｇ（ｕ）は、以下の式により求められる。Ｎは自然数である。
【数１】
0005588381.tif 000002
但し、Ｃ（ｕ）は以下のとおりである。
【数２】
0005588381.tif 000003
【００３２】
ここで、次数の範囲を０からＮ−１とするために、ｕをＮ−ｕに置き換えて変形すると以下の式となる。
【数３】
0005588381.tif 000004
【００３３】
前記式（３）から、ｕ次のＤＳＴ係数Ｇ（Ｎ−ｕ）は、１ステップ毎に符号反転した信号を入力信号とすると、ＤＣＴの演算式の成分が含まれることがわかる。１次元Ｎ点ＤＣＴの演算式にて表されるｕ次のＤＣＴ係数Ｆ（ｕ）が、以下の式で求められるからである。
【数４】
0005588381.tif 000005
【００３４】
このように、ＤＳＴの演算式をＤＣＴの演算式から導出することができ、ＤＳＴ係数は、入力信号を１ステップ毎に符号反転させ、その１ステップ毎に符号反転した信号を入力信号としてＤＣＴを行うことにより生成されることがわかる。
【００３５】
〔Ｎ＝４のＤＣＴバタフライ線図〕
次に、Ｎ＝４のＤＣＴを実現するための高速処理アルゴリズムである、非特許文献１に記載されたＣｈｅｎのバタフライ演算について説明する。図３は、Ｎ＝４のＤＣＴバタフライ線図である。入力信号をｘ０〜ｘ３、出力信号であるＤＣＴ係数をＣ０〜Ｃ３とする。図３及び後述する図４〜図８（Ｎ＝４）、図１２（Ｎ＝８）において、矢印近傍の数値は乗算の係数を示しており、映像符号化方式を規定するＨ．２６４等で用いられている整数化されたＤＣＴ及びＤＳＴを例としているが、従来から知られているように、±ｃｏｓ（ｉπ／Ｎ），±ｓｉｎ（ｉπ／Ｎ）（ｉは１からＮまでの整数）としてもよい。これは、Ｎ＝１６，３２の場合も同様である。また、丸印○はノードを示しており、入力信号ｘ０〜ｘ３を入力するノードを入力点、途中のノードを分岐点、出力信号であるＤＣＴ係数Ｃ０〜Ｃ３を出力するノードを出力点とする。尚、ノードでは基本的に加算演算が行われるが、入力点では加算演算は行われず、加算演算を行わない分岐点及び出力点も存在する。分岐点及び出力点において、入力する矢印が１個の場合は、入力した信号をそのまま出力し、入力する矢印が２個の場合は、加算演算を行いその加算結果を出力することを示している。
【００３６】
例えば、分岐点α３では、矢印の向きに従って、入力点α１からｘ０を入力し、入力点α２から係数−１が乗算されたｘ３を入力し、ｘ０＋（−ｘ３）の加算を行う。この分岐点α３の加算結果は、係数２が乗算されて出力点α４に出力される。また、この分岐点α３の加算結果は、出力点α５に出力される。出力点α５のＤＣＴ係数Ｃ３は、以下の演算により求められる。
Ｃ３＝−２×｛ｘ１＋（−ｘ２）｝＋｛ｘ０＋（−ｘ３）｝
【００３７】
このように、図３に示したＮ＝４のＤＣＴバタフライ線図における入力点、分岐点及び出力点間の矢印及び係数が、積和演算を表しており、入力信号ｘ０〜ｘ３に対し段階的に積和演算が行われ、出力信号であるＤＣＴ係数Ｃ０〜Ｃ３が演算される。具体的には、入力点から分岐点までの間の第１段階において、入力信号ｘ０〜ｘ３に対する積和演算が行われ、次に、第１段階の積和演算の結果を用いて、次の第２段階の積和演算が行われ、第２段階の積和演算の結果であるＤＣＴ係数Ｃ０〜Ｃ３が求められる。
【００３８】
尚、図３に示したＮ＝４のＤＣＴバタフライ線図は、整数ＤＣＴを行うものであり、次世代符号化方式を規定するＨＥＶＣ（High  Efficiency  Video  Coding）のテストモデルＨＭ（High  Efficiency  Video  Coding  Test  Model)のプログラムに基づいている。後述するＮ＝８，１６，３２の場合も同様である。
【００３９】
〔Ｎ＝４のＤＳＴバタフライ線図〕
次に、Ｎ＝４のＤＳＴを実現するための高速処理アルゴリズムのバタフライ演算について説明する。図４は、Ｎ＝４のＤＳＴバタフライ線図である。入力信号をｘ０〜ｘ３、出力信号であるＤＳＴ係数をＳ０〜Ｓ３とする。このＮ＝４のＤＳＴバタフライ線図は、図３に示したＮ＝４のＤＣＴバタフライ線図（非特許文献１に記載されたＣｈｅｎのバタフライ演算の線図）を用いて、このＤＣＴバタフライ線図の段階的な積和演算のフローと同じ形態のフローになるように構成したものである。図３及び図４から、入力点、分岐点及び出力点の数及び配置、並びに矢印の数及び向きが同一であるから、Ｎ＝４のＤＣＴバタフライ線図及びＤＳＴバタフライ線図は、同じ形態のフローにより段階的に構成されていることがわかる。
【００４０】
このように、図４に示したＮ＝４のＤＳＴバタフライ線図における入力点、分岐点及び出力点間の矢印及び係数が、図３と同様に積和演算を表しており、入力信号ｘ０〜ｘ３に対し段階的に積和演算が行われ、出力信号であるＤＳＴ係数Ｓ０〜Ｓ３が演算される。具体的には、入力点から分岐点までの間の第１段階において、入力信号ｘ０〜ｘ３に対する積和演算が行われ、次に、第１段階の積和演算の結果を用いて、次の第２段階の積和演算が行われ、第２段階の積和演算の結果であるＤＳＴ係数Ｓ０〜Ｓ３が求められる。
【００４１】
次に、Ｎ＝４のＤＳＴバタフライ演算が、図３に示したＮ＝４のＤＣＴバタフライ線図を変形して図４のＤＳＴバタフライ線図で表される理由について説明する。図５は、ＤＣＴから求めたＮ＝４のＤＳＴバタフライ線図である。ＤＳＴ係数Ｓ０〜Ｓ３は、入力信号ｘ０〜ｘ３を１ステップ毎に符号反転させ、ＤＣＴを行って出力信号を生成し、出力信号の順番を逆にすることにより生成される。そこで、図５に示すように、図３に示したＮ＝４のＤＣＴバタフライ線図に対し、入力信号ｘ０〜ｘ３を１ステップ毎に符号反転させることで、ＤＳＴ係数Ｓ３，Ｓ１，Ｓ２，Ｓ０が生成される。つまり、図５に示すＮ＝４のＤＳＴバタフライ線図は、図３のＤＣＴバタフライ線図と同じ矢印及び係数の線図において、入力信号がｘ０，−ｘ１，ｘ２，−ｘ３となり、ＤＳＴ係数がＳ３，Ｓ１，Ｓ２，Ｓ０となる。後述するように、図５に示したＮ＝４のＤＳＴバタフライ線図が、図４に示したＮ＝４のＤＳＴバタフライ線図に変形される。
【００４２】
図６（１）は、入力信号を−ｘからｘに変更する場合の、バタフライ線図の変形規則を示す図であり、図６（２）は、出力信号を−ｙからｙに変更する場合の、バタフライ線図の変形規則を示す図である。図６（１）において、左側のバタフライ線図と右側のバタフライ線図とは等価である。入力点β１の入力信号が−ｘ、入力点β１から分岐点β２への矢印における乗算の係数がａ、入力点β１から分岐点β３への矢印における乗算の係数がｂとすると、入力信号をｘに変更した場合、入力点β１から分岐点β２への矢印における乗算の係数は−ａ、入力点β１から分岐点β３への矢印における乗算の係数は−ｂとなる。逆に、入力点β１の入力信号がｘ、入力点β１から分岐点β２への矢印における乗算の係数が−ａ、入力点β１から分岐点β３への矢印における乗算の係数が−ｂとすると、入力信号を−ｘに変更した場合、入力点β１から分岐点β２への矢印における乗算の係数はａ、入力点β１から分岐点β３への矢印における乗算の係数はｂとなる。
【００４３】
また、図６（２）において、左側のバタフライ線図と右側のバタフライ線図とは等価である。分岐点γ１から出力点γ３への矢印における乗算の係数がａ、分岐点γ２から出力点γ３への矢印における乗算の係数がｂ、出力点γ３の出力信号が−ｙとすると、分岐点γ１から出力点γ３への矢印における乗算の係数を−ａ、分岐点γ２から出力点γ３への矢印における乗算の係数を−ｂに変更した場合、出力点γ３の出力信号はｙとなる。逆に、分岐点γ１から出力点γ３への矢印における乗算の係数が−ａ、分岐点γ２から出力点γ３への矢印における乗算の係数が−ｂ、出力点γ３の出力信号がｙとすると、分岐点γ１から出力点γ３への矢印における乗算の係数をａ、分岐点γ２から出力点γ３への矢印における乗算の係数をｂに変更した場合、出力点γ３の出力信号は−ｙとなる。尚、β１を入力点としたが分岐点であってもよく、γ３を出力点としたが分岐点であってもよい。
【００４４】
図７（１）は、ＤＣＴから求めたＮ＝４のＤＳＴバタフライ線図であり、図５に示したＤＳＴバタフライ線図と同じである。図７（２）は、図７（１）における入力信号の−ｘ１，−ｘ３をｘ１，ｘ３に変更した場合の、Ｎ＝４のＤＳＴバタフライ線図である。図７（３）は、出力信号のＳ３，Ｓ１，Ｓ２，Ｓ０をＳ０，Ｓ２，Ｓ１，Ｓ３の順番に変更した場合の、Ｎ＝４のＤＳＴバタフライ線図であり、図４に示したＤＳＴバタフライ線図と同じである。図７（１）から図７（２）への変形及び図７（２）から図（３）への変形は、図６（１）（２）の変形規則に基づいている。
【００４５】
このように、図４に示したＮ＝４のＤＳＴバタフライ線図は、図３に示したＮ＝４のＤＣＴバタフライ線図に対して、入力信号ｘ０〜ｘ３を１ステップ毎に符号反転させると共に、出力信号Ｃ０〜Ｃ３を出力信号Ｓ３〜Ｓ０の逆順にさせ、図６（１）（２）の変形規則に従って変形することにより、Ｎ＝４のＤＣＴバタフライ線図における段階的な積和演算のフローと同じ形態のフローになるように構成することができる。
【００４６】
〔Ｎ＝４のＤＣＴ・ＤＳＴバタフライ線図〕
次に、Ｎ＝４のＤＣＴ・ＤＳＴバタフライ線図について説明する。このＤＣＴ・ＤＳＴバタフライ線図の演算は、入力信号ｘ０〜ｘ３に対し、ＤＣＴ及びＤＳＴの積和演算における途中の演算結果を相互に利用し、ＤＣＴ係数Ｃ０〜Ｃ３及びＤＳＴ係数Ｓ０〜Ｓ３を生成する処理であり、図２に示した直交変換部３のＤＣＴ・ＤＳＴ処理部３１により行われる。
【００４７】
ここで、前述したとおり、図３に示したＮ＝４のＤＣＴバタフライ線図と、図４に示したＮ＝４のＤＳＴバタフライ線図とを比較すると、同様の形態（形状）になっている。具体的には、矢印が入力点から分岐点へ、分岐点から出力点へ同じ方向に流れており、さらに、左側の４個の入力点と中央の４個の分岐点との間に存在する係数が同一である。つまり、ＤＣＴバタフライ演算及びＤＳＴバタフライ演算は、同様の積和演算の形態をとることになり、例えば、４個の入力点と中央の４個の分岐点の間の積和演算は、同一となる。したがって、図３のＤＣＴバタフライ演算及び図４のＤＳＴバタフライ演算は、ＤＣＴ及びＤＳＴの直交変換を行う積和演算における途中の演算結果を相互に利用することで、実現することができるといえる。図３及び図４における個別の演算では、Ｎ点のＤＣＴ及びＤＳＴは、いずれも｛３Ｎ（ｌｏｇ２Ｎ−１）＋４｝回の積和演算（合計で２｛３Ｎ（ｌｏｇ２Ｎ−１）＋４｝回の積和演算）により求めることができる。
【００４８】
図８は、Ｎ＝４のＤＣＴ・ＤＳＴバタフライ線図である。このＤＣＴ・ＤＳＴバタフライ線図は、図３に示したＮ＝４のＤＣＴバタフライ線図と、図４に示したＮ＝４のＤＳＴバタフライ線図とを結合したものであり、４個の入力点と中央左の４個の分岐点との間の積和演算が共通化されており（図８の＊の箇所を参照）、ＤＣＴ用の演算及びＤＳＴ用の演算を別々に行わなくても済むようになっている。
【００４９】
図９は、図３に示したＮ＝４のＤＣＴバタフライ線図を実行するＤＣＴプログラムの概要を示す図であり、図１０は、図４に示したＮ＝４のＤＳＴバタフライ線図を実行するＤＳＴプログラムの概要を示す図であり、図１１は、図８に示したＮ＝４のＤＣＴ・ＤＳＴバタフライ線図を実行するＤＣＴ・ＤＳＴプログラムの概要を示す図である。図９〜図１１におけるパラメータは図３、図４及び図８に対応しており、入力信号がｘ０〜ｘ３であり、ＤＣＴ係数がＣ０〜Ｃ３であり、ＤＳＴ係数がＳ０〜Ｓ３であり、ｔｍｐ１〜ｔｍｐ４は、図３及び図４において中央の４個の分岐点における積和演算結果であり、図８において中央左の分岐点における積和演算結果である。図１１のＤＣＴ・ＤＳＴプログラムは、図９のＤＣＴプログラムと図１０のＤＳＴプログラムとを結合したものであり、入力信号ｘ０〜ｘ３からｔｍｐ１〜ｔｍｐ４を求める積和演算式は共通化されており（図９〜図１１の四角で囲った箇所を参照）、ＤＣＴ用の演算及びＤＳＴ用の演算を別々に行わなくても済むようになっている。これは、図３、図４及び図８に示したバタフライ線図と同様である。
【００５０】
したがって、図２に示した直交変換部３のＤＣＴ・ＤＳＴ処理部３１は、入力信号ｘ０〜ｘ３を入力し、ＤＣＴ及びＤＳＴの直交変換を行う積和演算の際に、途中の演算結果ｔｍｐ１〜ｔｍｐ４を相互に利用するバタフライ演算を行い、ＤＣＴ係数Ｃ０〜Ｃ３及びＤＳＴ係数Ｓ０〜Ｓ３を生成する。つまり、ＤＣＴ・ＤＳＴ処理部３１は、入力信号ｘ０〜ｘ３に対し段階的に積和演算を行い、ＤＣＴ係数Ｃ０〜Ｃ３及びＤＳＴ係数Ｓ０〜Ｓ３を生成する際に、第１段階では、入力信号ｘ０〜ｘ３に対する積和演算を行い、第２段階では、第１段階の積和演算の結果を用いて積和演算を行い、第２段階の積和演算の結果であるＤＣＴ係数Ｃ０〜Ｃ３及びＤＳＴ係数Ｓ０〜Ｓ３を生成する。この場合、第１段階の積和演算の結果が、ＤＣＴ係数Ｃ０〜Ｃ３及びＤＳＴ係数Ｓ０〜Ｓ３を生成するための共通の結果として用いられる。
【００５１】
図３に示したＮ＝４のＤＣＴバタフライ線図及び図４に示したＮ＝４のＤＳＴバタフライ線図による個別演算では、合計の積和演算回数がそれぞれ３２回である。これに対し、図８に示したＮ＝４のＤＣＴ・ＤＳＴバタフライ線図による共通化演算では、積和演算回数が２４回である（後述する図２０を参照）。
【００５２】
このように、本発明の実施形態による直交変換部３のＤＣＴ・ＤＳＴ処理部３１によれば、Ｎ＝４のＤＣＴ及びＤＳＴを行う際に、８回（＝２Ｎ）の積和演算を減らすことができる。これは、入力信号ｘ０〜ｘ３の積和演算結果ｔｍｐ１〜ｔｍｐ４を、ＤＣＴ及びＤＳＴの双方の処理に用いるようにし、一部の処理を共通化して一方の処理を省略したからである。
【００５３】
〔Ｎ＝８のＤＣＴ・ＤＳＴバタフライ線図〕
次に、Ｎ＝８のＤＣＴ・ＤＳＴバタフライ線図について説明する。このＤＣＴ・ＤＳＴバタフライ線図の演算は、入力信号ｘ０〜ｘ７に対し、ＤＣＴ及びＤＳＴの積和演算における途中の演算結果を相互に利用し、ＤＣＴ係数Ｃ０〜Ｃ７及びＤＳＴ係数Ｓ０〜Ｓ７を生成する処理であり、図２に示した直交変換部３のＤＣＴ・ＤＳＴ処理部３１により行われる。
【００５４】
ここで、Ｎ＝８のＤＣＴバタフライ線図は、非特許文献１に示したＣｈｅｎのバタフライ演算のアルゴリズムから得ることができる。そして、Ｎ＝８のＤＳＴバタフライ線図は、図３〜図５及び図７に示したＮ＝４の場合と同様に、Ｎ＝８のＤＣＴバタフライ線図に基づいて、入力信号ｘ０〜ｘ７を１ステップ毎に符号反転させ、ＤＣＴを行って出力信号を生成し、出力信号の順番を逆にしてＤＳＴ係数Ｓ０〜Ｓ７を生成することにより、得ることができる。つまり、Ｎ＝８のＤＳＴバタフライ線図は、Ｎ＝８のＤＣＴバタフライ線図における段階的な積和演算のフローと同じ形態のフローになるように構成することができる。
【００５５】
図１２は、Ｎ＝８のＤＣＴ・ＤＳＴバタフライ線図である。このＤＣＴ・ＤＳＴバタフライ線図は、Ｎ＝８のＤＣＴバタフライ線図と、Ｎ＝８のＤＳＴバタフライ線図とを結合したものであり、８個の入力点と中央左の８個の分岐点との間の積和演算が共通化されており（図１２の＊の箇所を参照）、ＤＣＴ用の演算及びＤＳＴ用の演算を別々に行わなくても済むようになっている。具体的には、ｔｍｐ１−１〜ｔｍｐ１−８を、図１２において中央左の８個の分岐点（＃１の箇所の分岐点）におけるそれぞれの積和演算結果とすると、Ｎ＝８のＤＣＴ・ＤＳＴバタフライ線図（すなわち、このＤＣＴ・ＤＳＴバタフライ線図を実行するＤＣＴ・ＤＳＴプログラム）において、入力信号ｘ０〜ｘ７からｔｍｐ１−１〜ｔｍｐ１−８を求める積和演算式は共通化されている。また、ｔｍｐ２−１〜ｔｍｐ２−１６を、図１２において中央右の１６個の分岐点（＃２の箇所の分岐点）におけるそれぞれの積和演算結果とすると、途中の積和演算結果ｔｍｐ２−１〜ｔｍｐ２−４，ｔｍｐ２−１３〜ｔｍｐ２−１６は共通化されており、これらを求める積和演算式も共通化されている。
【００５６】
したがって、図２に示した直交変換部３のＤＣＴ・ＤＳＴ処理部３１は、入力信号ｘ０〜ｘ７を入力し、ＤＣＴ及びＤＳＴの直交変換を行う積和演算の際に、途中の演算結果ｔｍｐ１−１〜ｔｍｐ１−８，ｔｍｐ２−１〜ｔｍｐ２−４，ｔｍｐ２−１３〜ｔｍｐ２−１６を相互に利用するバタフライ演算を行い、ＤＣＴ係数Ｃ０〜Ｃ７及びＤＳＴ係数Ｓ０〜Ｓ７を生成する。つまり、ＤＣＴ・ＤＳＴ処理部３１は、入力信号ｘ０〜ｘ７に対し段階的に積和演算を行い、ＤＣＴ係数Ｃ０〜Ｃ７及びＤＳＴ係数Ｓ０〜Ｓ７を生成する際に、第１段階では、入力信号ｘ０〜ｘ７に対する積和演算を行い、第２段階では、第１段階の積和演算の結果を用いて次の積和演算を行い、第３段階では、第２段階の積和演算の結果を用いて次の積和演算を行い、第４段階では、第３段階の積和演算の結果を用いて次の積和演算を行い、第３段階における積和演算の結果の一部及び第４段階の積和演算の結果であるＤＣＴ係数Ｃ０〜Ｃ７及びＤＳＴ係数Ｓ０〜Ｓ７を生成する。この場合、第１段階の積和演算の結果（ｔｍｐ１−１〜ｔｍｐ１−８）、及び第２段階の積和演算の結果の一部（ｔｍｐ２−１〜ｔｍｐ２−４，ｔｍｐ２−１３〜ｔｍｐ２−１６）が、ＤＣＴ係数Ｃ０〜Ｃ３及びＤＳＴ係数Ｓ０〜Ｓ３を生成するための共通の結果として用いられる。
【００５７】
Ｎ＝８のＤＣＴバタフライ線図及びＮ＝８のＤＳＴバタフライ線図による個別演算では、合計の積和演算回数が１０４回である。これに対し、図１２に示したＮ＝８のＤＣＴ・ＤＳＴバタフライ線図による共通化演算では、積和演算回数が８０回である（後述する図２０を参照）。
【００５８】
このように、本発明の実施形態による直交変換部３のＤＣＴ・ＤＳＴ処理部３１によれば、Ｎ＝８のＤＣＴ及びＤＳＴを行う際に、２４回（＞２Ｎ）の積和演算を減らすことができる。これは、入力信号ｘ０〜ｘ７の積和演算結果ｔｍｐ１−１〜ｔｍｐ１−８を、ＤＣＴ及びＤＳＴの双方の処理に用いるようにし、また、途中の積和演算結果ｔｍｐ２−１〜ｔｍｐ２−４，ｔｍｐ２−１３〜ｔｍｐ２−１６も双方の処理に用いるようにし、処理の一部を共通化して一方の処理を省略したからである。
【００５９】
〔Ｎ＝１６，３２のＤＣＴ・ＤＳＴバタフライ線図〕
次に、Ｎ＝１６，３２のＤＣＴ・ＤＳＴバタフライ線図について、それを実行するプログラムを挙げて説明する。Ｎ＝１６，３２のＤＣＴ・ＤＳＴバタフライ線図の演算も、前述したＮ＝４，８の場合と同様に、入力信号に対し、ＤＣＴ及びＤＳＴの積和演算における途中の演算結果を相互に利用し、ＤＣＴ係数及びＤＳＴ係数を生成する処理であり、図２に示した直交変換部３のＤＣＴ・ＤＳＴ処理部３１により行われる。
【００６０】
ここで、Ｎ＝１６，３２のＤＣＴバタフライ線図は、非特許文献１に示したＣｈｅｎのバタフライ演算のアルゴリズムから得ることができる。そして、Ｎ＝１６，３２のＤＳＴバタフライ線図は、図３〜図５及び図７に示したＮ＝４の場合と同様に、Ｎ＝１６，３２のＤＣＴバタフライ線図に基づいて、入力信号を１ステップ毎に符号反転させ、ＤＣＴを行って出力信号を生成し、出力信号の順番を逆にしてＤＳＴ係数を生成することにより、得ることができる。つまり、Ｎ＝１６，３２のＤＳＴバタフライ線図は、Ｎ＝１６，３２のＤＣＴバタフライ線図における段階的な積和演算のフローと同じ形態のフローになるように構成することができる。
【００６１】
図１３は、Ｎ＝１６のＤＣＴ・ＤＳＴバタフライ線図を実行するＤＣＴ・ＤＳＴプログラムの概要を示す図であり、図１４は、図１３のＤＣＴ・ＤＳＴプログラムの続きを示す図である。図１３及び図１４に示すＮ＝１６のＤＣＴ・ＤＳＴプログラムから、Ｎ＝１６のＤＣＴ・ＤＳＴバタフライ線図を得ることができる。図１３及び図１４において、入力信号がｘ０〜ｘ１５であり、ＤＣＴ係数がＤＣＴ０〜ＤＣＴ１５であり、ＤＳＴ係数がＤＳＴ０〜ＤＳＴ１５であり、Ｂ，Ｃ，Ｈ，Ｄ，Ｅ，Ｆ，Ｉ，Ｊ，Ｋが、入力信号ｘ０〜ｘ１５の入力点と出力信号であるＤＣＴ０〜ＤＣＴ１５及びＤＳＴ０〜ＤＳＴ１５の出力点との間に位置する分岐点における積和演算結果である。このＤＣＴ・ＤＳＴプログラムは、Ｎ＝１６のＤＣＴバタフライ線図を実行するＤＣＴプログラムと、Ｎ＝１６のＤＳＴバタフライ線図を実行するＤＳＴプログラムとを結合したものであり、入力信号ｘ０〜ｘ１５からＢ０〜Ｂ１５を求める第１段階の積和演算式等（図１３の四角で囲った箇所を参照）が共通化されており、ＤＣＴ用の演算及びＤＳＴ用の演算を別々に行わなくても済むようになっている。これは、図９に示したＮ＝４のＤＣＴプログラム、図１０に示したＮ＝４のＤＳＴプログラム及び図１１に示したＮ＝４のＤＣＴ・ＤＳＴプログラムと同様である。
【００６２】
したがって、図２に示した直交変換部３のＤＣＴ・ＤＳＴ処理部３１は、入力信号ｘ０〜ｘ１５を入力し、ＤＣＴ及びＤＳＴの直交変換を行う積和演算の際に、途中の演算結果Ｂ０〜Ｂ１５等を相互に利用するバタフライ演算を行い、ＤＣＴ係数であるＤＣＴ０〜ＤＣＴ１５及びＤＳＴ係数であるＤＳＴ０〜ＤＳＴ１５を生成する。
【００６３】
図１５は、Ｎ＝３２のＤＣＴ・ＤＳＴバタフライ線図を実行するＤＣＴ・ＤＳＴプログラムの概要を示す図であり、図１６〜図１９は、それぞれ図１５〜図１８のＤＣＴ・ＤＳＴプログラムの続きを示す図である。図１５〜図１９に示すＮ＝３２のＤＣＴ・ＤＳＴプログラムから、Ｎ＝３２のＤＣＴ・ＤＳＴバタフライ線図を得ることができる。このＤＣＴ・ＤＳＴプログラムにおいて、入力信号がｘ０〜ｘ３１であり、ＤＣＴ係数がＤＣＴ０〜ＤＣＴ３１であり、ＤＳＴ係数がＤＳＴ０〜ＤＳＴ３１であり、Ａ，Ｂ，Ｉ，Ｃ，Ｊ，Ｄ，Ｋ，Ｅ，Ｌ，Ｆ，Ｍ，Ｇ，Ｎが、入力信号ｘ０〜ｘ３１の入力点と出力信号であるＤＣＴ０〜ＤＣＴ３１及びＤＳＴ０〜ＤＳＴ３１の出力点との間に位置する分岐点における積和演算結果である。このＤＣＴ・ＤＳＴプログラムは、Ｎ＝３２のＤＣＴバタフライ線図を実行するＤＣＴプログラムと、Ｎ＝３２のＤＳＴバタフライ線図を実行するＤＳＴプログラムとを結合したものであり、入力信号ｘ０〜ｘ３１からＡ０〜Ａ３１を求める第１段階の積和演算式等（図１５及び図１６の四角で囲った箇所を参照）が共通化されており、ＤＣＴ用の演算及びＤＳＴ用の演算を別々に行わなくても済むようになっている。これは、図９〜図１１に示したＮ＝４のＤＣＴ・ＤＳＴプログラム、並びに図１３及び図１４に示したＮ＝１６のＤＣＴ・ＤＳＴプログラムと同様である。
【００６４】
したがって、図２に示した直交変換部３のＤＣＴ・ＤＳＴ処理部３１は、入力信号ｘ０〜ｘ３１を入力し、ＤＣＴ及びＤＳＴの直交変換を行う積和演算の際に、途中の演算結果Ａ０〜Ａ３１等を相互に利用するバタフライ演算を行い、ＤＣＴ係数であるＤＣＴ０〜ＤＣＴ３１及びＤＳＴ係数であるＤＳＴ０〜ＤＳＴ３１を生成する。
【００６５】
Ｎ＝１６のＤＣＴバタフライ演算及びＮ＝１６のＤＳＴバタフライ演算の個別演算による合計の積和演算回数は２９６回である。これに対し、図１３及び図１４に示したＮ＝１６のＤＣＴ・ＤＳＴプログラム（ＤＣＴ・ＤＳＴバタフライ演算）の共通化演算による積和演算回数は２５６回である。また、Ｎ＝３２のＤＣＴバタフライ演算及びＮ＝３２のＤＳＴバタフライ演算の個別演算による合計の積和演算回数は７７６回である。これに対し、図１５〜図１９に示したＮ＝３２のＤＣＴ・ＤＳＴプログラム（ＤＣＴ・ＤＳＴバタフライ演算）の共通化演算による積和演算回数は６８０回である（後述する図２０を参照）。
【００６６】
このように、本発明の実施形態による直交変換部３のＤＣＴ・ＤＳＴ処理部３１によれば、Ｎ＝１６，３２のＤＣＴ及びＤＳＴを行う際に、４０，９６回（＞２Ｎ）の積和演算を減らすことができる。これは、入力信号の積和演算結果を、ＤＣＴ及びＤＳＴの双方の処理に用いるようにし、また、途中の積和演算結果も双方の処理に用いるようにし、処理の一部を共通化して一方の処理を省略したからである。
【００６７】
〔実験結果〕
次に、ＤＣＴ及びＤＳＴの個別演算を行う場合と、本発明の実施形態による直交変換部３のＤＣＴ・ＤＳＴ処理部３１により共通化演算を行う場合との間の性能を比較するための実験結果について説明する。図２０は、個別演算を行う場合及び本発明の実施形態による直交変換部３のＤＣＴ・ＤＳＴ処理部３１により共通化演算を行う場合のシミュレーション結果を示す図である。図２０から、Ｎ＝４，８，１６，３２における個別演算の場合の積和演算数及び本発明の実施形態による共通化演算の場合の積和演算数は、本発明の実施形態による共通化演算の方が少なくなっており、個別演算における積和演算数を１としたときの割合を示す回数比及び時間比（処理時間比）が１００％よりも小さくなっていることがわかる。つまり、本発明の実施形態による直交変換部３のＤＣＴ・ＤＳＴ処理部３１によれば、Ｎ点のＤＣＴ及びＤＳＴを行う際に、２｛３Ｎ（ｌｏｇ２Ｎ−１）＋４−Ｎ｝回以下の積和演算により、ＤＣＴ係数及びＤＳＴ係数を求めることができ、個別演算を行う場合に比べて、積和演算の数を減らすことができる。
【００６８】
以上のように、本発明の実施形態による直交変換部３によれば、ＤＣＴ・ＤＳＴ処理部３１が、ＤＣＴ及びＤＳＴの直交変換処理を行う際に、ＤＣＴ及びＤＳＴの個別演算における一部の処理を共有化するようにした。これにより、個別演算を行う場合よりも積和演算回数を２Ｎ回以上減らすことができる。したがって、ＤＣＴ及びＤＳＴの処理を、個別演算を行う場合よりも少ない演算回数で同時に行うことができ、回路規模、演算時間及び消費電力を削減することができる。
【００６９】
〔２次元の信号〕
以上、１次元の信号に対するＤＣＴ・ＤＳＴの直交変換について説明したが、画像等の２次元の信号に対してＤＣＴ・ＤＳＴの直交変換を行う場合も、同様の手法を用いることができる。具体的には、直交変換部３のＤＣＴ・ＤＳＴ処理部３１は、水平方向の入力信号に対して１次元のＤＣＴ・ＤＳＴの直交変換を行い、その後、垂直方向の入力信号に対して１次元のＤＣＴ・ＤＳＴの直交変換を行う。
【００７０】
このように、本発明の実施形態による直交変換部３のＤＣＴ・ＤＳＴ処理部３１による手法を、１次元の信号を処理する場合と同様に、２次元の信号を処理する場合に適用し、水平方向及び垂直方向に対して１次元のＤＣＴ・ＤＳＴの直交変換を行うようにした。これにより、水平方向の１次元の信号に対するＤＣＴ・ＤＳＴの直交変換、及び、垂直方向の１次元の信号に対するＤＣＴ・ＤＳＴの直交変換について、合計４種類の２次元直交変換処理を、個別演算を行う場合よりも少ない演算回数で行うことができ、回路規模、演算時間及び消費電力を削減することができる。
【００７１】
尚、本発明の実施形態による直交変換部３である直交変換処理装置のハードウェア構成としては、通常のコンピュータを使用することができる。この直交変換処理装置は、ＣＰＵ、ＲＡＭ等の揮発性の記憶媒体、ＲＯＭ等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。直交変換処理装置に備えたＤＣＴ・ＤＳＴ処理部３１、ＤＣＴ量子化処理部３２−１、ＤＳＴ量子化処理部３２−２及び選択部３３の各機能は、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現される。また、これらのプログラムは、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリ等の記憶媒体に格納して頒布することもできる。
【００７２】
以上、実施形態を挙げて本発明を説明したが、本発明は前記実施形態に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。例えば、前記実施形態では、本発明の実施形態による直交変換処理装置（直交変換部）を含む符号化装置１１について説明したが、符号化装置１１は一例である。本発明は、符号化装置１１に適用されるだけでなく、他の装置にも適用がある。要するに、ＤＣＴ及びＤＳＴの処理を行う装置であればよい。
【００７３】
また、前記実施形態では、入力信号の数をＮ＝４，８，１６，３２として説明したが、これらは例示であり、入力信号の数は、これらよりも大きい数Ｎ＝６４，１２８等であってもよい。
【００７４】
また、前記実施形態では、ＤＣＴ・ＤＳＴバタフライ線図及びＤＣＴ・ＤＳＴプログラムについて、Ｎ＝４，８，１６，３２の場合を挙げて説明したが、これらは例示であり、本発明はこれらの例示に限定されることはなく、例えば、乗算の係数として異なる係数を用いるようにしてもよいし、異なるフローを用いるようにしてもよい。
【符号の説明】
【００７５】
１  前処理部
２  減算部
３  直交変換部
４  量子化部
５  逆量子化部
６  逆直交変換部
７  加算部
８  フレームメモリ
９  信号予測部
１０  エントロピー符号化部
１１  符号化装置
３１  ＤＣＴ・ＤＳＴ処理部
３２−１  ＤＣＴ量子化処理部
３２−２  ＤＳＴ量子化処理部
３３  選択部
【図１】
0005588381.tif 000006
【図２】
0005588381.tif 000007
【図３】
0005588381.tif 000008
【図４】
0005588381.tif 000009
【図５】
0005588381.tif 000010
【図６】
0005588381.tif 000011
【図７】
0005588381.tif 000012
【図８】
0005588381.tif 000013
【図９】
0005588381.tif 000014
【図１０】
0005588381.tif 000015
【図１１】
0005588381.tif 000016
【図１２】
0005588381.tif 000017
【図１３】
0005588381.tif 000018
【図１４】
0005588381.tif 000019
【図１５】
0005588381.tif 000020
【図１６】
0005588381.tif 000021
【図１７】
0005588381.tif 000022
【図１８】
0005588381.tif 000023
【図１９】
0005588381.tif 000024
【図２０】
0005588381.tif 000025