Article View: fj.lang.c
Article #394Re: 教えてください ルーチンの高速化
From: Yomei
Date: Thu, 30 Apr 1998 00:00
Date: Thu, 30 Apr 1998 00:00
23 lines
1537 bytes
1537 bytes
テトリスのソースからデジタル信号処理まで変な分野しかしらない。
ようめい@明治大学です。
> for( j=1 ; j<n ; j++ )
> {
> for(sigma=i=0 ; i<n ; i++) sigma += x[i] * cosTable[(( 2 * i + 1 ) *
>j)%nn] ;
>
> y[j] = nrm * sigma;
> }
式からすると離散コサイン変換(DCT)ですよね?
これは離散フーリエ変換(DCT)と同じで高速フーリエ変換(FFT)を使えば高
速化できたと思います。確かDCTの厚い本によく載っています。
それと、cosTable[]を求めるときも全てのcosを計算するのではなく、z変換を用いて
差分式に変換するのが良いでしょう。最初だけcos()を求めてあとは差分を計算すれ
ば高速でcosTableを求められます。(差分の場合、誤差がでますけれど。)
この辺も、僕が全く理解不能な「デジタル信号処理うんぬん」とか「Z変換うんぬ
ん」とか書いてある本によく載っています。でもこれらの本は理論ばかり書いてあっ
て実際のことはあまり書いてないのでよくわからないです.
Technical Details
Message-ID:
<6i8mdr$2nq$1@news.t3.rim.or.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<35467E52.545A@mxb.meshnet.or.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 106434,5daf7c1d07ca6629 X-Google-Attributes: gid106434,public From: "Yomei" <yomei@t3.rim.or.jp> Subject: Re: 教えてください ルーチンの高速化 Date: 1998/04/30 Message-ID: <6i8mdr$2nq$1@news.t3.rim.or.jp> X-Deja-AN: 348979318 Content-Transfer-Encoding: 7bit References: <35467E52.545A@mxb.meshnet.or.jp> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-2022-jp" X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4 Organization: RIMNET Newsgroups: fj.lang.c