(57)【要約】【課題】  ハードウェアを構成した場合の回路規模を小さくすることができるとともに，ソフトウェアを構成した場合，三角関数の導出を単純な加減算のみで行うことが可能なデータ処理装置を提供する。【解決手段】  ８画素×８画素のＤＣＴブロックに対して離散コサイン変換を行うための１次元ＤＣＴ変換装置（８００）は，画素データｆ（０）〜ｆ（７）が入力されて，所定の組み合わせを選択して加減算を行う入力選択加減算部（８１０）と，初期値としての係数Ｃ１，Ｃ２を計算する初期値演算部（８２０）と，Ｃｎ＋１＝２・ｃｏｓβ・Ｃｎ−Ｃｎ−１を再帰的に適用して，係数Ｃ３〜Ｃ７の演算を行う係数演算部（８３０，８４０）と，係数Ｃ１〜Ｃ７が入力されて，所定の組み合わせを選択して加減算を行い，ＤＣＴ係数データＦ（０）〜Ｆ（７）を出力する加減算出力選択部（８５０）とを備える。【選択図】  図８
2007299221.tif 000002
【特許請求の範囲】
【請求項１】
８画素×８画素のブロックに対して離散コサイン変換を行うためのデータ処理装置であって，
画素データｆ（０）〜ｆ（７）が入力されて，所定の組み合わせを選択して加減算を行う入力選択加減算部と，
前記入力選択加減算部の出力に基づいて，初期値としての係数Ｃ１，Ｃ２を計算する初期値演算部と，
前記係数Ｃ１，Ｃ２に基づいて，Ｃｎ＋１＝２・ｃｏｓβ・Ｃｎ−Ｃｎ−１（βは任意の値）を再帰的に適用して，係数Ｃ３〜Ｃ７の演算を行う係数演算部と，
前記係数Ｃ１〜Ｃ７が入力されて，所定の組み合わせを選択して加減算を行い，ＤＣＴ係数データＦ（０）〜Ｆ（７）を出力する加減算出力選択部と，
を備えたことを特徴とする，データ処理装置。
【請求項２】
前記初期値演算部は，第１〜第５のビットシフト回路と第１〜第５の加算器のみから構成され，入力データから出力データを演算し，
前記第１のビットシフト回路は，前記入力データを左１ビットシフトし，
前記第２のビットシフト回路は，前記入力データを左７ビットシフトし，
前記第３のビットシフト回路は，前記入力データを左１３ビットシフトし，
前記第１の加算器は，入力データと前記第１のビットシフト回路の出力とを入力としこれらを加算し，
前記第２の加算器は，前記第２のビットシフト回路の出力と前記第３のビットシフト回路の出力とを入力としこれらを加算し，
前記第４のビットシフト回路は，前記第１の加算器の出力を左１０ビットシフトし，
前記第５のビットシフト回路は，前記第１の加算器の出力を左１４ビットシフトし，
前記第３の加算器は，前記第４のビットシフト回路の出力と前記第５のビットシフト回路の出力とを入力としこれらを加算し，
前記第４の加算器は，前記第１の加算器の出力と前記第２の加算器の出力とを入力としこれらを加算し，
前記第５の加算器は，前記第３の加算器の出力と前記第４の加算器の出力とを入力としこれらを加算して前記出力データとすることを特徴とする，請求項１に記載のデータ処理装置。
【請求項３】
前記初期値演算部は，第１〜第６のビットシフト回路と第１〜第５の加算器のみから構成され，入力データから出力データを演算し，
前記第１のビットシフト回路は，前記入力データを左２ビットシフトし，
前記第２のビットシフト回路は，前記入力データを左８ビットシフトし，
前記第１の加算器は，前記入力データと前記第１のビットシフト回路の出力とを入力としこれらを加算し，
前記第３のビットシフト回路は，前記第１の加算器の出力を左２ビットシフトし，
前記第４のビットシフト回路は，前記第１の加算器の出力を左９ビットシフトし，
前記第５のビットシフト回路は，前記第１の加算器の出力を左１２ビットシフトし，
前記第６のビットシフト回路は，前記第１の加算器の出力を左１３ビットシフトし，
前記第２の加算器は，前記第３のビットシフト回路の出力と前記第４のビットシフト回路の出力とを入力としこれらを加算し，
前記第３の加算器は，前記第５のビットシフト回路の出力と前記第６のビットシフト回路の出力とを入力としこれらを加算し，
前記第４の加算器は，前記第３の加算器の出力と前記第２のビットシフト回路の出力とを入力としこれらを加算し，
前記第５の加算器は，前記第２の加算器の出力と前記第４の加算器の出力とを入力としこれらを加算して前記出力データとすることを特徴とする，請求項１に記載のデータ処理装置。
【請求項４】
前記βは２・π／１６であり，
前記係数演算部は，第１〜第６のビットシフト回路と第１〜第６の加算器のみから構成され，
前記第１のビットシフト回路は，前記Ｃｎを左１ビットシフトし，
前記第２のビットシフト回路は，前記Ｃｎを左７ビットシフトし，
前記第３のビットシフト回路は，前記Ｃｎを左１３ビットシフトし，
前記第１の加算器は，前記Ｃｎと前記第１のビットシフト回路の出力とを入力としこれらを加算し，
前記第２の加算器は，前記第２のビットシフト回路の出力と前記第３のビットシフト回路の出力とを入力としこれらを加算し，
前記第４のビットシフト回路は，前記第１の加算器の出力を左１０ビットシフトし，
前記第５のビットシフト回路は，前記第１の加算器の出力を左１４ビットシフトし，
前記第３の加算器は，前記第４のビットシフト回路の出力と前記第５のビットシフト回路の出力とを入力としこれらを加算し，
前記第４の加算器は，前記第１の加算器の出力と前記第２の加算器の出力とを入力としこれらを加算し，
前記第５の加算器は，前記第３の加算器の出力と前記第４の加算器の出力とを入力としこれらを加算し，
前記第６のビットシフト回路は，前記第５の加算器の出力を左１ビットシフトし，
前記第６の加算器は，前記第６のビットシフト回路の出力と前記Ｃｎ−１とを入力とし前記Ｃｎ−１から前記第６のビットシフト回路の出力を減算して前記Ｃｎ＋１とすることを特徴とする，請求項１に記載のデータ処理装置。
【請求項５】
前記βはπ／１６であり，
前記係数演算部は，第１〜第７のビットシフト回路と第１〜第６の加算器のみから構成され，
前記第１のビットシフト回路は，前記Ｃｎを左２ビットシフトし，
前記第２のビットシフト回路は，前記Ｃｎを左８ビットシフトし，
前記第１の加算器は，前記Ｃｎと前記第１のビットシフト回路の出力とを入力としこれらを加算し，
前記第３のビットシフト回路は，前記第１の加算器の出力を左２ビットシフトし，
前記第４のビットシフト回路は，前記第１の加算器の出力を左９ビットシフトし，
前記第５のビットシフト回路は，前記第１の加算器の出力を左１２ビットシフトし，
前記第６のビットシフト回路は，前記第１の加算器の出力を左１３ビットシフトし，
前記第２の加算器は，前記第３のビットシフト回路の出力と前記第４のビットシフト回路の出力とを入力としこれらを加算し，
前記第３の加算器は，前記第５のビットシフト回路の出力と前記第６のビットシフト回路の出力とを入力としこれらを加算し，
前記第４の加算器は，前記第３の加算器の出力と前記第２のビットシフト回路の出力とを入力としこれらを加算し，
前記第５の加算器は，前記第２の加算器の出力と前記第４の加算器の出力とを入力としこれらを加算し，
前記第７のビットシフト回路は，前記第５の加算器の出力を左１ビットシフトし，
前記第６の加算器は，前記第７のビットシフト回路の出力と前記Ｃｎ−１とを入力とし前記Ｃｎ−１から前記第７のビットシフト回路の出力を減算して前記Ｃｎ＋１とすることを特徴とする，請求項１に記載のデータ処理装置。
【請求項６】
前記βは２・π／１６であり，
前記係数演算部は，第１〜第６のビットシフト回路と第１〜第５の加算器のみから構成され，
前記第１のビットシフト回路は，前記Ｃｎを左１ビットシフトし，
前記第２のビットシフト回路は，前記Ｃｎを左３ビットシフトし，
前記第３のビットシフト回路は，前記Ｃｎを左９ビットシフトし，
前記第１の加算器は，前記Ｃｎと前記第１のビットシフト回路の出力とを入力としこれらを加算し，
前記第２の加算器は，前記第２のビットシフト回路の出力と前記第３のビットシフト回路の出力とを入力としこれらを加算し，
前記第４のビットシフト回路は，前記第１の加算器の出力を左６ビットシフトし，
前記第５のビットシフト回路は，前記第１の加算器の出力を左１０ビットシフトし，
前記第３の加算器は，前記第４のビットシフト回路の出力と前記第５のビットシフト回路の出力とを入力としこれらを加算し，
前記第４の加算器は，前記第２の加算器の出力と前記第３の加算器の出力とを入力としこれらを加算し，
前記第６のビットシフト回路は，前記第４の加算器の出力を左１ビットシフトし，
前記第５の加算器は，前記第６のビットシフト回路の出力と前記Ｃｎ−１とを入力とし前記Ｃｎ−１から前記第６のビットシフト回路の出力を減算して前記Ｃｎ＋１とすることを特徴とする，請求項１に記載のデータ処理装置。
【請求項７】
８画素×８画素のブロックに対して逆離散コサイン変換を行うためのデータ処理装置であって，
ＤＣＴ係数データＦ（０）〜Ｆ（７）が入力されて，所定の組み合わせを選択する入力選択部と，
前記入力選択部の出力に基づいて，初期値としての係数Ｃ１，Ｃ２を計算する初期値演算部と，
前記係数Ｃ１，Ｃ２に基づいて，Ｃｎ＋１＝２・ｃｏｓβ・Ｃｎ−Ｃｎ−１（βは任意の値）を再帰的に適用して，係数Ｃ３〜Ｃ７の演算を行う係数演算部と，
前記係数Ｃ１〜Ｃ７が入力されて，所定の組み合わせを選択して加減算を行い，画素データｆ（０）〜ｆ（７）を出力する加減算出力選択部と，
を備えたことを特徴とする，データ処理装置。
【請求項８】
前記初期値演算部は，第１〜第５のビットシフト回路と第１〜第５の加算器のみから構成され，入力データから出力データを演算し，
前記第１のビットシフト回路は，前記入力データを左１ビットシフトし，
前記第２のビットシフト回路は，前記入力データを左７ビットシフトし，
前記第３のビットシフト回路は，前記入力データを左１３ビットシフトし，
前記第１の加算器は，入力データと前記第１のビットシフト回路の出力とを入力としこれらを加算し，
前記第２の加算器は，前記第２のビットシフト回路の出力と前記第３のビットシフト回路の出力とを入力としこれらを加算し，
前記第４のビットシフト回路は，前記第１の加算器の出力を左１０ビットシフトし，
前記第５のビットシフト回路は，前記第１の加算器の出力を左１４ビットシフトし，
前記第３の加算器は，前記第４のビットシフト回路の出力と前記第５のビットシフト回路の出力とを入力としこれらを加算し，
前記第４の加算器は，前記第１の加算器の出力と前記第２の加算器の出力とを入力としこれらを加算し，
前記第５の加算器は，前記第３の加算器の出力と前記第４の加算器の出力とを入力としこれらを加算して前記出力データとすることを特徴とする，請求項７に記載のデータ処理装置。
【請求項９】
前記初期値演算部は，第１〜第６のビットシフト回路と第１〜第５の加算器のみから構成され，入力データから出力データを演算し，
前記第１のビットシフト回路は，前記入力データを左２ビットシフトし，
前記第２のビットシフト回路は，前記入力データを左８ビットシフトし，
前記第１の加算器は，前記入力データと前記第１のビットシフト回路の出力とを入力としこれらを加算し，
前記第３のビットシフト回路は，前記第１の加算器の出力を左２ビットシフトし，
前記第４のビットシフト回路は，前記第１の加算器の出力を左９ビットシフトし，
前記第５のビットシフト回路は，前記第１の加算器の出力を左１２ビットシフトし，
前記第６のビットシフト回路は，前記第１の加算器の出力を左１３ビットシフトし，
前記第２の加算器は，前記第３のビットシフト回路の出力と前記第４のビットシフト回路の出力とを入力としこれらを加算し，
前記第３の加算器は，前記第５のビットシフト回路の出力と前記第６のビットシフト回路の出力とを入力としこれらを加算し，
前記第４の加算器は，前記第３の加算器の出力と前記第２のビットシフト回路の出力とを入力としこれらを加算し，
前記第５の加算器は，前記第２の加算器の出力と前記第４の加算器の出力とを入力としこれらを加算して前記出力データとすることを特徴とする，請求項７に記載のデータ処理装置。
【請求項１０】
前記βは２・π／１６であり，
前記係数演算部は，第１〜第６のビットシフト回路と第１〜第６の加算器のみから構成され，
前記第１のビットシフト回路は，前記Ｃｎを左１ビットシフトし，
前記第２のビットシフト回路は，前記Ｃｎを左７ビットシフトし，
前記第３のビットシフト回路は，前記Ｃｎを左１３ビットシフトし，
前記第１の加算器は，前記Ｃｎと前記第１のビットシフト回路の出力とを入力としこれらを加算し，
前記第２の加算器は，前記第２のビットシフト回路の出力と前記第３のビットシフト回路の出力とを入力としこれらを加算し，
前記第４のビットシフト回路は，前記第１の加算器の出力を左１０ビットシフトし，
前記第５のビットシフト回路は，前記第１の加算器の出力を左１４ビットシフトし，
前記第３の加算器は，前記第４のビットシフト回路の出力と前記第５のビットシフト回路の出力とを入力としこれらを加算し，
前記第４の加算器は，前記第１の加算器の出力と前記第２の加算器の出力とを入力としこれらを加算し，
前記第５の加算器は，前記第３の加算器の出力と前記第４の加算器の出力とを入力としこれらを加算し，
前記第６のビットシフト回路は，前記第５の加算器の出力を左１ビットシフトし，
前記第６の加算器は，前記第６のビットシフト回路の出力と前記Ｃｎ−１とを入力とし前記Ｃｎ−１から前記第６のビットシフト回路の出力を減算して前記Ｃｎ＋１とすることを特徴とする，請求項７に記載のデータ処理装置。
【請求項１１】
前記βはπ／１６であり，
前記係数演算部は，第１〜第７のビットシフト回路と第１〜第６の加算器のみから構成され，
前記第１のビットシフト回路は，前記Ｃｎを左２ビットシフトし，
前記第２のビットシフト回路は，前記Ｃｎを左８ビットシフトし，
前記第１の加算器は，前記Ｃｎと前記第１のビットシフト回路の出力とを入力としこれらを加算し，
前記第３のビットシフト回路は，前記第１の加算器の出力を左２ビットシフトし，
前記第４のビットシフト回路は，前記第１の加算器の出力を左９ビットシフトし，
前記第５のビットシフト回路は，前記第１の加算器の出力を左１２ビットシフトし，
前記第６のビットシフト回路は，前記第１の加算器の出力を左１３ビットシフトし，
前記第２の加算器は，前記第３のビットシフト回路の出力と前記第４のビットシフト回路の出力とを入力としこれらを加算し，
前記第３の加算器は，前記第５のビットシフト回路の出力と前記第６のビットシフト回路の出力とを入力としこれらを加算し，
前記第４の加算器は，前記第３の加算器の出力と前記第２のビットシフト回路の出力とを入力としこれらを加算し，
前記第５の加算器は，前記第２の加算器の出力と前記第４の加算器の出力とを入力としこれらを加算し，
前記第７のビットシフト回路は，前記第５の加算器の出力を左１ビットシフトし，
前記第６の加算器は，前記第７のビットシフト回路の出力と前記Ｃｎ−１とを入力とし前記Ｃｎ−１から前記第７のビットシフト回路の出力を減算して前記Ｃｎ＋１とすることを特徴とする，請求項７に記載のデータ処理装置。
【請求項１２】
前記βは２・π／１６であり，
前記係数演算部は，第１〜第６のビットシフト回路と第１〜第５の加算器のみから構成され，
前記第１のビットシフト回路は，前記Ｃｎを左１ビットシフトし，
前記第２のビットシフト回路は，前記Ｃｎを左３ビットシフトし，
前記第３のビットシフト回路は，前記Ｃｎを左９ビットシフトし，
前記第１の加算器は，前記Ｃｎと前記第１のビットシフト回路の出力とを入力としこれらを加算し，
前記第２の加算器は，前記第２のビットシフト回路の出力と前記第３のビットシフト回路の出力とを入力としこれらを加算し，
前記第４のビットシフト回路は，前記第１の加算器の出力を左６ビットシフトし，
前記第５のビットシフト回路は，前記第１の加算器の出力を左１０ビットシフトし，
前記第３の加算器は，前記第４のビットシフト回路の出力と前記第５のビットシフト回路の出力とを入力としこれらを加算し，
前記第４の加算器は，前記第２の加算器の出力と前記第３の加算器の出力とを入力としこれらを加算し，
前記第６のビットシフト回路は，前記第４の加算器の出力を左１ビットシフトし，
前記第５の加算器は，前記第６のビットシフト回路の出力と前記Ｃｎ−１とを入力とし前記Ｃｎ−１から前記第６のビットシフト回路の出力を減算して前記Ｃｎ＋１とすることを特徴とする，請求項７に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，データ処理装置にかかり，特に，変換符号化に離散コサイン変換を用いるデータ処理装置に関する。
【背景技術】
【０００２】
近年，情報処理技術の高度化とマルチメディアの急速な普及に伴い，ＪＰＥＧ（Joint Photographic Experts Group）やＭＰＥＧ（Moving Picture Experts Group）などディジタル画像圧縮伸長処理の開発が行われている。ＭＰＥＧなどのデータ圧縮に用いられているＤＣＴ演算を行うデータ処理装置として，特開平９−２２３１２４号公報（特許文献１），特開平８−３１４８９６号公報（特許文献２）に開示の技術がある。特許文献１は，データ圧縮伸張装置における離散余弦変換及び逆離散余弦変換方法及び装置に関するものである。特許文献２は，直交関数発生回路および直交関数発生方法ならびにデータ処理装置に関するものである。いずれも三角関数の性質を利用して再帰的に係数を導出するものである。
【０００３】
【特許文献１】特開平９−２２３１２４号公報
【特許文献２】特開平８−３１４８９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで，ＤＣＴ演算は多くの乗算，加減算を必要とすることから，回路規模の削減，処理の低遅延化が要求されている。回路規模の削減，処理の低遅延化のためには，例えば乗算，加算の回数の低減などを行うことも考えられるが，ハードウェアとしては演算の回数よりも乗算器，加算器の個数を少なくする方が回路規模削減には有効である。
【０００５】
本発明は，従来のデータ処理装置が有する上記問題点に鑑みてなされたものであり，本発明の目的は，ハードウェアを構成した場合の回路規模を小さくすることができるとともに，ソフトウェアを構成した場合，三角関数の導出を単純な加減算のみで行うことが可能な，新規かつ改良されたデータ処理装置を提供することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するため，本発明の第１の観点によれば，８画素×８画素のブロック（ＤＣＴブロック）に対して離散コサイン変換を行うためのデータ処理装置が提供される。本発明のデータ処理装置（８００）は，画素データｆ（０）〜ｆ（７）が入力されて，所定の組み合わせを選択して加減算を行う入力選択加減算部（８１０）と，前記入力選択加減算部の出力に基づいて，初期値としての係数Ｃ１，Ｃ２を計算する初期値演算部（８２０）と，前記係数Ｃ１，Ｃ２に基づいて，下記（式＊）を再帰的に適用して，係数Ｃ３〜Ｃ７の演算を行う係数演算部（８４０）と，前記係数Ｃ１〜Ｃ７が入力されて，所定の組み合わせを選択して加減算を行い，ＤＣＴ係数データＦ（０）〜Ｆ（７）を出力する加減算出力選択部（８５０）と，を備えたことを特徴とする（請求項１）。
【０００７】
係数演算部（８４０）が係数Ｃ３〜Ｃ７の演算を行う際に適用する（式＊）は，Ｃｎ＋１＝２・ｃｏｓβ・Ｃｎ−Ｃｎ−１である。ここで，βは任意の値であり，（式＊）が角度βの差を持つコサイン値を再帰的に算出できることを意味する。
【０００８】
かかる構成によれば，三角関数の性質を利用して再帰的にＤＣＴ係数を計算し，ハードウェアを構成した場合の回路規模を小さくすることができる。かかる本発明のデータ処理装置は１次元ＤＣＴ変換装置（離散コサイン変換装置）と称されることがある。１次元ＤＣＴ変換を行い，その後行列の転置を行った後に再度１次元ＤＣＴ変換を行うことにより，２次元ＤＣＴ変換を行うことが可能である。
【０００９】
なお上記において，構成要素に付随して括弧書きで記した参照符号は，理解を容易にするため，後記の「発明を実施するための最良の形態」および図面における対応する構成要素を一例として記したに過ぎず，本発明がこれに限定されるものではない。
【００１０】
初期値演算部は，複数のビットシフト回路と複数の加算器のみから構成することが可能である。かかる構成によれば，ソフトウェアを構成した場合に，三角関数の導出を単純な加減算のみで行うことが可能である。初期値演算部については，様々な構成を採用することが可能である（請求項２，３）。具体的な回路構成については，後記の「発明を実施するための最良の形態」において詳細に説明する。
【００１１】
また，上記の（式＊）によれば，係数演算部は，複数のビットシフト回路と複数の加算器のみから構成することが可能である。かかる構成によれば，ソフトウェアを構成した場合に，三角関数の導出を単純な加減算のみで行うことが可能である。係数演算部については，様々な構成を採用することが可能である（請求項４〜６）。具体的な回路構成については，後記の「発明を実施するための最良の形態」において詳細に説明する。
【００１２】
上記課題を解決するため，本発明の第２の観点によれば，８画素×８画素の画素ブロックに対して逆離散コサイン変換を行うためのデータ処理装置が提供される。本発明のデータ処理装置（９００）は，ＤＣＴ係数データＦ（０）〜Ｆ（７）が入力されて，所定の組み合わせを選択する入力選択部（９１０）と，前記入力選択部の出力に基づいて，初期値としての係数Ｃ１，Ｃ２を計算する初期値演算部（９２０）と，前記係数Ｃ１，Ｃ２に基づいて，下記（式＊）を再帰的に適用して，係数Ｃ３〜Ｃ７の演算を行う係数演算部（９４０）と，前記係数Ｃ１〜Ｃ７が入力されて，所定の組み合わせを選択して加減算を行い，画素データｆ（０）〜ｆ（７）を出力する加減算出力選択部（９５０）と，を備えたことを特徴とする（請求項７）。
【００１３】
係数演算部（８４０）が係数Ｃ３〜Ｃ７の演算を行う際に適用する（式＊）は，Ｃｎ＋１＝２・ｃｏｓβ・Ｃｎ−Ｃｎ−１である。ここで，βは任意の値であり，（式＊）が角度βの差を持つコサイン値を再帰的に算出できることを意味する。
【００１４】
かかる構成によれば，三角関数の性質を利用して再帰的にＤＣＴ係数を計算し，ハードウェアを構成した場合の回路規模を小さくすることができる。かかる本発明のデータ処理装置は１次元逆ＤＣＴ変換装置（逆離散コサイン変換装置）と称されることがある。１次元逆ＤＣＴ変換を行い，その後行列の転置を行った後に再度１次元逆ＤＣＴ変換を行うことにより，２次元ＤＣＴ変換を行うことが可能である。
【００１５】
なお上記において，構成要素に付随して括弧書きで記した参照符号は，理解を容易にするため，後記の「発明を実施するための最良の形態」および図面における対応する構成要素を一例として記したに過ぎず，本発明がこれに限定されるものではない。
【００１６】
初期値演算部は，複数のビットシフト回路と複数の加算器のみから構成することが可能である。かかる構成によれば，ソフトウェアを構成した場合に，三角関数の導出を単純な加減算のみで行うことが可能である。初期値演算部については，様々な構成を採用することが可能である（請求項８，９）。具体的な回路構成については，「発明を実施するための最良の形態」の項において詳述する。
【００１７】
また，上記の（式＊）によれば，係数演算部は，複数のビットシフト回路と複数の加算器のみから構成することが可能である。かかる構成によれば，ソフトウェアを構成した場合に，三角関数の導出を単純な加減算のみで行うことが可能である。係数演算部については，様々な構成を採用することが可能である（請求項１０〜１２）。具体的な回路構成については，「発明を実施するための最良の形態」の項において詳述する。
【００１８】
また，本発明の他の観点によれば，コンピュータを，上記本発明にかかるデータ処理装置として機能させるためのプログラムと，そのプログラムを記録した，コンピュータにより読み取り可能な記録媒体が提供される。ここで，プログラムはいかなるプログラム言語により記述されていてもよい。また，記録媒体としては，例えば，ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭ，フレキシブルディスクなど，プログラムを記録可能な記録媒体として現在一般に用いられている記録媒体，あるいは将来用いられるいかなる記録媒体をも採用することができる。
【発明の効果】
【００１９】
以上のように，本発明によれば，ハードウェアを構成した場合の回路規模を小さくすることができるとともに，ソフトウェアを構成した場合，三角関数の導出を単純な加減算のみで行うことが可能である。
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照しながら，本発明にかかるデータ処理装置の好適な実施形態について詳細に説明する。なお，本明細書および図面において，実質的に同一の機能構成を有する構成要素については，同一の符号を付することにより重複説明を省略する。
【００２１】
（１）２次元ＤＣＴ変換
画像処理等でＮ画素×Ｎ画素のブロック（以後，ＤＣＴブロック）に対する２次元ＤＣＴ変換は（式１）で行われ，２次元逆ＤＣＴ変換は（式２）で行われる。ここでｆ（ｘ，ｙ）は画素データ，Ｆ（ｕ，ｖ）はＤＣＴ係数データである。
【００２２】
【数１】
2007299221.tif 000003
・・・（式１）
【００２３】
【数２】
2007299221.tif 000004
・・・（式２）
【００２４】
ＪＰＥＧ，ＭＰＥＧ等の画像標準規格ではＤＣＴブロックは８画素×８画素で処理しており，この場合の離散コサイン変換および逆離散コサイン変換は各々（式３），（式４）となる。
【００２５】
【数３】
2007299221.tif 000005
・・・（式３）
【００２６】
【数４】
2007299221.tif 000006
・・・（式４）
【００２７】
（２）２次元ＤＣＴ変換装置（図１）
２次元ＤＣＴ変換を行うための装置構成としては，まず１次元ＤＣＴ変換を行い，その後に行列の転置を行った後に再度１次元ＤＣＴ変換を行って２次元ＤＣＴを実現する方法が知られている。具体的には図１に示したように，２次元ＤＣＴ変換装置１００は，１次元ＤＣＴ変換装置１１０と，行列転置装置１２０と，１次元ＤＣＴ変換装置１３０とを備えて構成することができる。なお本実施形態では，一つのまとまった処理を行う機能ブロックを「装置」または「部」と称する。「装置」は必ずしも物理的に独立のものである必要はなく，他の装置の一部であってもよい。本実施形態の「装置」には，一般に「回路」，「機構」，「機能部」などと称されるものも含むものとする。
【００２８】
１次元ＤＣＴ変換装置１１０，１３０は，（式５）により１次元ＤＣＴ変換を行う。
【００２９】
【数５】
2007299221.tif 000007
・・・（式５）
【００３０】
（式５）を行列で表すと（式６）となる。ここでＣｉ＝ＣＯＳ（ｉ・π／１６）である。
【００３１】
【数６】
2007299221.tif 000008
・・・（式６）
【００３２】
（式６）を単純に計算していくと５６回の乗算と５６回の加減算が必要となるが，（式６）を展開して（式７），（式８）の形にすると，２８回の乗算と３２回の加減算に減らすことができる。
【００３３】
【数７】
2007299221.tif 000009
・・・（式７）
【００３４】
【数８】
2007299221.tif 000010
・・・（式８）
【００３５】
さらに（式７）は（式９）に，（式８）は（式１０），（式１１）に変形することができる。
【００３６】
【数９】
2007299221.tif 000011
・・・（式９）
【００３７】
【数１０】
2007299221.tif 000012
・・・（式１０）
【００３８】
【数１１】
2007299221.tif 000013
・・・（式１１）
【００３９】
（３）ＤＣＴの高速アルゴリズム（図２）
（式９），（式１０），（式１１）をもとにしたＤＣＴの高速アルゴリズムについて，図２のデータフロー（図２）を参照しながら説明する。図２に示したデータフローは，２２個の加算器２１１〜２３２と，１６個の乗算器２５１〜２６６により構成される。
【００４０】
加算器２１１は，ｆ（０）とｆ（７）とを入力とし，これらを加算する。乗算器２５１は，加算器２１１の出力を入力とし，これにＣ４を乗ずる。加算器２１２は，乗算器２５１の出力と乗算器２５２の出力とを入力とし，これらを加算したＦ（０）を出力とする。
【００４１】
加算器２１３は，ｆ（１）とｆ（６）とを入力とし，これらを加算する。乗算器２５２は，加算器２１３の出力を入力とし，これにＣ４を乗ずる。加算器２１４は，乗算器２５１の出力と乗算器２５２の出力とを入力とし，これらを加算したＦ（２）を出力とする。
【００４２】
加算器２１５は，ｆ（２）とｆ（５）とを入力とし，これらを加算する。乗算器２５３は，加算器２１５の出力を入力とし，これにＣ６を乗ずる。加算器２１６は，乗算器２５３の出力と乗算器２５６の出力とを入力とし，これらを加算したＦ（４）を出力とする。
【００４３】
加算器２１７は，ｆ（３）とｆ（４）とを入力とし，これらを加算する。乗算器２５５は，加算器２１７の出力を入力とし，これにＣ６を乗ずる。加算器２１８は，乗算器２５４の出力と乗算器２５５の出力とを入力とし，これらを加算したＦ（６）を出力とする。
【００４４】
加算器２１９は，ｆ（３）とｆ（４）とを入力とし，これらを加算する。加算器２２０は，加算器２１９の出力と加算器２２３の出力とを入力とし，これらを加算する。乗算器２５７は，加算器２２０の出力を入力とし，これにＣ７を乗ずる。乗算器２５８は，加算器２２０の出力を入力とし，これにＣ７を乗ずる。加算器２２１は，乗算器２５７の出力と乗算器２６６の出力とを入力とし，これらを加算したＦ（７）を出力とする。
【００４５】
加算器２２２は，ｆ（２）とｆ（５）とを入力とし，これらを加算する。乗算器２５９は，加算器２２２の出力を入力とし，これにＣ４を乗ずる。加算器２２３は，乗算器２５９の出力と乗算器２６２の出力とを入力とし，これらを加算する。加算器２２４は，加算器２１９の出力と加算器２２３の出力とを入力とし，これらを加算する。乗算器２６０は，加算器２２４の出力を入力とし，これにＣ３を乗ずる。乗算器２６１は，加算器２２４の出力を入力とし，これにＣ５を乗ずる。加算器２２５は，乗算器２６０の出力と乗算器２６４の出力とを入力とし，これらを加算したＦ（５）を出力とする。
【００４６】
加算器２２６は，ｆ（１）とｆ（６）とを入力とし，これらを加算する。乗算器２６２は，加算器２２６の出力を入力とし，これにＣ４を乗ずる。加算器２２７は，乗算器２５９の出力と乗算器２６２の出力とを入力とし，これらを加算する。加算器２２８は，加算器２２７の出力と加算器２３０の出力とを入力とし，これらを加算する。乗算器２６３は，加算器２２８の出力を入力とし，これにＣ３を乗ずる。乗算器２６４は，加算器２２８の出力を入力とし，これにＣ５を乗ずる。加算器２２９は，乗算器２６１の出力と乗算器２６３の出力とを入力とし，これらを加算したＦ（３）を出力とする。
【００４７】
加算器２３０は，ｆ（０）とｆ（７）とを入力とし，これらを加算する。加算器２３１は，加算器２２７の出力と加算器２３０の出力とを入力とし，これらを加算する。乗算器２６５は，加算器２３１の出力を入力とし，これにＣ１を乗ずる。乗算器２６６は，加算器２３１の出力を入力とし，これにＣ７を乗ずる。加算器２３２は，乗算器２５８の出力と乗算器２６５の出力とを入力とし，これらを加算したＦ（１）を出力とする。
【００４８】
図２に示したデータフローでは乗算器を１６個，加減算器を２２個まで減らすことができる。このように，式の変形のみで，ある程度は乗算器，加減算器を減らすことができるが，本実施形態ではさらにこれらを減らす方法について説明する。特に，回路規模の削減に有効である乗算器を減らす方法について説明する。
【００４９】
三角関数の積和の公式として，以下の（式１２）の関係が知られている。
【００５０】
【数１２】
2007299221.tif 000014
・・・（式１２）
【００５１】
（式１２）を変形すると（式１３）が得られる。
【００５２】
【数１３】
2007299221.tif 000015
・・・（式１３）
【００５３】
（式１３）に示すように，“β”に着目すれば，コサイン（余弦）の角度を公差βとした等差数列とみなすことができる。すなわち，（式１３）から（式１４）の漸化式が得られる。
【００５４】
【数１４】
2007299221.tif 000016
・・・（式１４）
【００５５】
（式１４）はＣＯＳβを適切な値とすれば過去の演算結果から角度βの差をもつコサイン値を再帰的に導出できることを示している。例えばβ＝２・π／１６とすると（式１４）は（式１５）となる。
【００５６】
【数１５】
2007299221.tif 000017
・・・（式１５）
【００５７】
これを回路に実装する場合，シフト回路と加算器で図３に示す構成とすることができる。図３は，β＝２・π／１６の場合の回路例である。なお，βは特定の値としなくともよく任意の値とすることが可能である。また，図３中“＜＜ｎ”は，ｎビット分の左シフトを示している。
【００５８】
（４）係数演算部の構成例１（図３）
係数演算部３００は，図３に示したように，シフト回路３１１〜３１６と，加算器３２１〜３２６とにより構成される。
【００５９】
１ビットシフト回路３１１と７ビットシフト回路３１２と１３ビットシフト回路３１３は，それぞれＸｎを入力とする。加算器３２１は，Ｘｎと１ビットシフト回路３１１の出力とを入力とし，これらを加算する。加算器３２２は，７ビットシフト回路３１２の出力と１３ビットシフト回路３１３の出力とを入力とし，これらを加算する。１０ビットシフト回路３１４と１４ビットシフト回路３１５は，それぞれ加算器３２１の出力を入力とする。加算器３２３は，１０ビットシフト回路３１４の出力と１４ビットシフト回路３１５の出力とを入力とし，これらを加算する。加算器３２４は，加算器３２１の出力と加算器３２２の出力とを入力とし，これらを加算する。加算器３２５は，加算器３２３の出力と加算器３２４の出力とを入力とし，これらを加算する。１ビットシフト回路３１６は，加算器３２５の出力を入力とする。加算器３２６は，１ビットシフト回路３１６の出力とＸｎ−１とを入力とし，Ｘｎ＋１を出力とする。
【００６０】
β＝π／１６とすると（式１４）は（式１６）となり，この場合の実装構成は図４となる。
【００６１】
【数１６】
2007299221.tif 000018
・・・（式１６）
【００６２】
（５）係数演算部の構成例２（図４）
係数演算部４００は，図４に示したように，シフト回路４１１〜４１７と，加算器４２１〜４２６とにより構成される。
【００６３】
２ビットシフト回路４１１と８ビットシフト回路４１２は，それぞれＸｎを入力とする。加算器４２１は，Ｘｎと２ビットシフト回路４１１の出力とを入力とし，これらを加算する。２ビットシフト回路４１３と９ビットシフト回路４１４と１２ビットシフト回路４１５と１３ビットシフト回路４１６は，それぞれ加算器４２１の出力を入力とする。加算器４２２は，２ビットシフト回路４１３の出力と９ビットシフト回路４１４の出力とを入力とし，これらを加算する。加算器４２３は，１２ビットシフト回路４１５の出力と１３ビットシフト回路４１６の出力とを入力とし，これらを加算する。加算器４２４は，加算器４２３の出力と８ビットシフト回路４１２の出力とを入力とし，これらを加算する。加算器４２５は，加算器４２２の出力と加算器４２４の出力とを入力とし，これらを加算する。１ビットシフト回路４１７は，加算器４２５の出力を入力とする。加算器４２６は，１ビットシフト回路４１７の出力とＸｎ−１とを入力とし，Ｘｎ＋１を出力とする。
【００６４】
図３，図４の構成例は演算精度を１６ビットとした場合の例であるが，演算精度はこれに限定されることはない。図５にβ＝２・π／１６の場合で演算精度１２ビットとした場合の構成を示す。
【００６５】
（６）係数演算部の構成例３（図５）
係数演算部５００は，図５に示したように，シフト回路５１１〜５１６と，加算器５２１〜５２５とにより構成される。
【００６６】
１ビットシフト回路５１１と３ビットシフト回路５１２と９ビットシフト回路５１３は，それぞれＸｎを入力とする。加算器５２１は，１ビットシフト回路５１１の出力とＸｎとを入力とし，これらを加算する。加算器５２２は，３ビットシフト回路５１２の出力と９ビットシフト回路５１３の出力とを入力とし，これらを加算する。６ビットシフト回路５１４と１０ビットシフト回路５１５は，それぞれ加算器５２１の出力を入力とする。加算器５２３は，６ビットシフト回路５１４の出力と１０ビットシフト回路５１５の出力とを入力とし，これらを加算する。加算器５２４は，加算器５２２の出力と加算器５２３の出力とを入力とし，これらを加算する。１ビットシフト回路５１６は，加算器５２４の出力を入力とする。加算器５２５は，１ビットシフト回路５１６の出力とＸｎ−１とを入力とし，Ｘｎ＋１を出力とする。
【００６７】
演算精度１２ビットの場合の構成所望のＸｎ＋１はＸｎ，Ｘｎ−１の入力をセレクタで切り換え供給することにより，Ｃ３〜Ｃ７までの係数を再帰的に計算していくことができる。Ｃ１，Ｃ２については初期値として計算する必要があるが，そのための回路は図３〜図５と同等の構成・規模となる。
【００６８】
Ｃ１，Ｃ２を初期値として計算する構成例を各々図６，図７に示す。
【００６９】
（７）Ｃ２初期値演算部の構成例（図６）
初期値演算部６００は，図６に示したように，シフト回路６１１〜６１５と，加算器６２１〜６２５とにより構成される。
【００７０】
１ビットシフト回路６１１と７ビットシフト回路６１２と１３ビットシフト回路６１３は，それぞれ入力データを入力とする。加算器６２１は，入力データと１ビットシフト回路６１１の出力とを入力とし，これらを加算する。加算器６２２は，７ビットシフト回路６１２の出力と１３ビットシフト回路６１３の出力とを入力とし，これらを加算する。１０ビットシフト回路６１４と１４ビットシフト回路６１５は，それぞれ加算器６２１の出力を入力とする。加算器６２３は，１０ビットシフト回路６１４の出力と１４ビットシフト回路６１５の出力とを入力とし，これらを加算する。加算器６２４は，加算器６２１の出力と加算器６２２の出力とを入力とし，これらを加算する。加算器６２５は，加算器６２３の出力と加算器６２４の出力とを入力とし，Ｃ２×入力データを出力とする。
【００７１】
（８）Ｃ１初期値演算部の構成例（図７）
初期値演算部７００は，図７に示したように，シフト回路７１１〜７１６と，加算器７２１〜７２５とにより構成される。
【００７２】
２ビットシフト回路７１１と８ビットシフト回路７１２は，それぞれ入力データを入力とする。加算器７２１は，入力データと２ビットシフト回路７１１の出力とを入力とし，これらを加算する。２ビットシフト回路７１３と９ビットシフト回路７１４と１２ビットシフト回路７１５と１３ビットシフト回路７１６は，それぞれ加算器７２１の出力を入力とする。加算器７２２は，２ビットシフト回路７１３の出力と９ビットシフト回路７１４の出力とを入力とし，これらを加算する。加算器７２３は，１２ビットシフト回路７１５の出力と１３ビットシフト回路７１６の出力とを入力とし，これらを加算する。加算器７２４は，加算器７２３の出力と８ビットシフト回路７１２の出力とを入力とし，これらを加算する。加算器７２５は，加算器７２２の出力と加算器７２４の出力とを入力とし，Ｃ１×入力データを出力とする。
【００７３】
初期値算出回路Ｃ３〜Ｃ７を求める具体的な計算式は（式１７）となる。
【００７４】
【数１７】
2007299221.tif 000019
・・・（式１７）
【００７５】
また，（式１７）はＣ１，Ｃ２からＣ３〜Ｃ７を求めているが，逆にＣ７，Ｃ６からＣ５〜Ｃ１を求めてもよい。その場合の計算式は（式１８）となる。
【００７６】
【数１８】
2007299221.tif 000020
・・・（式１８）
【００７７】
１次元ＤＣＴの構成は（式７），（式８）をもとにすると図８の構成となる。
【００７８】
（９）１次元ＤＣＴ変換装置の構成（図８）
１次元ＤＣＴ変換装置８００は，図８に示したように，入力選択加減算部８１０と，初期値演算部８２０と，入力選択部８３０と，係数演算部８４０と，加減算出力選択部８５０を備えて構成される。
【００７９】
入力選択加減算部８１０は，画素データｆ（０）〜ｆ（７）を入力とし，所定の組み合わせを選択して加減算を行う機能部である。本実施形態では，入力選択加減算部８１０は，（式７），（式８）の右辺であるｆ（０）−ｆ（７），ｆ（１）−ｆ（６），ｆ（２）−ｆ（５），ｆ（３）−ｆ（４）などの演算を行う。入力選択加減算部８１０の演算結果は，後段の初期値演算部８２０に入力される。
【００８０】
初期値演算部８２０は，入力選択加減算部８１０の出力を入力とし，初期値としての係数Ｃ１，Ｃ２を計算する。初期値演算部８２０は，具体的には，図６，図７の初期値演算部６００，７００で構成することができる。初期値演算部８２０の演算結果は，後段の入力選択部８３０に入力される。
【００８１】
入力選択部８３０は，まず初期値として，初期値演算部８２０の出力Ｃ１，Ｃ２を入力とする。その後は，係数演算部８４０からの出力を繰り返し入力とする。入力選択部８３０の出力は，後段の係数演算部８４０に入力される。
【００８２】
係数演算部８４０は，入力選択部８３０の出力を入力とし，（式１４）を再帰的に適用して，係数Ｃ３〜Ｃ７の演算を行う。入力選択部８３０は，具体的には，図３〜図５の係数演算部３００，４００，５００で構成することができる。初期値演算部８２０の演算結果は，前段の入力選択部８３０に入力されるとともに，後段の加減算出力選択部８５０に入力される。
【００８３】
加減算出力選択部８５０は，係数演算部８４０の出力を入力とし，所定の組み合わせを選択して加減算を行い，ＤＣＴ係数データＦ（０）〜Ｆ（７）を出力とする。
【００８４】
入力信号は入力選択・加減算部で（式７），（式８）の右辺列ベクトルを計算する。初期値演算部は入力選択・加減算部から入力するデータに対してＣ１，Ｃ２を乗算した値を算出する（Ｃ１，Ｃ２からＣ３〜Ｃ７を算出する場合）。その後，図３で示した回路とその前段に接続される入力選択部の処理でＣ３〜Ｃ７までの係数の演算を行う。最後段の加減算，出力選択部において最終的なＤＣＴ係数を演算し出力する。なお，逆離散コサイン変換に関しても原理的には全く同様に構成することが可能である。
【００８５】
離散コサイン変換の図８の実施例では（式８），（式９）をもとに構成したが，逆離散コサイン変換では同様に（式１９），（式２０）をもとにして構成できる。構成を図９に示す。
【００８６】
【数１９】
2007299221.tif 000021
・・・（式１９）
【００８７】
【数２０】
2007299221.tif 000022
・・・（式２０）
【００８８】
（１０）逆離散コサイン変換（図９）
１次元ＤＣＴ変換装置９００は，図９に示したように，入力選択部９１０と，初期値演算部９２０と，入力選択部９３０と，係数演算部９４０と，加減算出力選択部９５０を備えて構成される。上記１次元ＤＣＴ変換装置８００（図８）（離散コサイン変換）との相違点は，初段の入力選択部から加減算の機能が無くなり，出力選択部にそれに相当する加減算機能が追加されることである。初期値演算部９２０，入力選択部９３０，係数演算部９４０の構成は，上記１次元ＤＣＴ変換装置８００（図８）における初期値演算部８２０，入力選択部８３０，係数演算部８４０の構成と実質的に同一である。
【００８９】
以上，本発明のデータ処理装置の一例として，１次元ＤＣＴ変換装置８００，９００について説明した。かかる１次元ＤＣＴ変換装置８００，９００は，コンピュータに上記機能を実現するためのコンピュータプログラムを組み込むことで，コンピュータを１次元ＤＣＴ変換装置８００，９００として機能させることが可能である。かかるコンピュータプログラムは，所定の記録媒体（例えば，ＣＤ−ＲＯＭ）に記録された形で，あるいは，電子ネットワークを介したダウンロードの形で市場を流通させることが可能である。
【００９０】
（本実施形態の効果）
以上説明したように，本実施形態によれば，三角関数の性質を利用して再帰的にＤＣＴ係数を計算し，ハードウェアを構成した場合の回路規模を小さくすることができるとともに，ソフトウェアを構成した場合，三角関数の導出を単純な加減算のみで行うことが可能である。
【００９１】
以上，添付図面を参照しながら本発明にかかるデータ処理装置の好適な実施形態について説明したが，本発明はかかる例に限定されない。当業者であれば，特許請求の範囲に記載された技術的思想の範疇内において各種の変更例または修正例に想到し得ることは明らかであり，それらについても当然に本発明の技術的範囲に属するものと了解される。
【産業上の利用可能性】
【００９２】
本発明は，データ処理装置に利用可能であり，特に，変換符号化に離散コサイン変換を用いるデータ処理装置に利用可能である。
【図面の簡単な説明】
【００９３】
【図１】２次元ＤＣＴ変換装置の構成例を示す説明図である。
【図２】ＤＣＴの高速アルゴリズムを示す説明図である。
【図３】係数演算部の構成例１を示す説明図である。
【図４】係数演算部の構成例２を示す説明図である。
【図５】係数演算部の構成例３を示す説明図である。
【図６】初期値演算部の構成例を示す説明図である。
【図７】初期値演算部の構成例を示す説明図である。
【図８】１次元ＤＣＴ変換装置の構成例を示す説明図である。
【図９】１次元逆ＤＣＴ変換装置の構成例を示す説明図である。
【符号の説明】
【００９４】
１００  ２次元ＤＣＴ変換装置
１１０  １次元ＤＣＴ変換装置
１２０  行列転置部
１３０  １次元ＤＣＴ変換装置
３００，４００，５００  係数変換部
６００，７００  初期値演算部
８００  １次元ＤＣＴ変換装置
８１０  入力選択加減算部
８２０  初期値演算部
８３０  入力選択部
８４０  係数演算部
８５０  加減算出力選択部
９００  １次元逆ＤＣＴ変換装置
９１０  入力選択部
９２０  初期値演算部
９３０  入力選択部
９４０  係数演算部
９５０  加減算出力選択部
【図１】
2007299221.tif 000023
【図２】
2007299221.tif 000024
【図３】
2007299221.tif 000025
【図４】
2007299221.tif 000026
【図５】
2007299221.tif 000027
【図６】
2007299221.tif 000028
【図７】
2007299221.tif 000029
【図８】
2007299221.tif 000030
【図９】
2007299221.tif 000031