🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.lang.c
Article #394

Re: 教えてください ルーチンの高速化

#394
From: Yomei
Date: Thu, 30 Apr 1998 00:00
23 lines
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-mail
References: <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