プライマリサンプルデータ型として32ビットフロートを使用する一連のc++信号処理クラスがあります。たとえば、すべてのオシレータークラスは、要求されたすべてのサンプルに対してフロートを返します。これはすべてのクラスで同じであり、サンプルのすべての計算は浮動小数点で行われます。
私はこれらのクラスをiOSに移植しています。パフォーマンスの問題については、プロセッサを最大限に活用するために8.24固定小数点で操作したいのですが、iOSでは、浮動小数点数ではなく整数をクランチすることでパフォーマンスが大幅に向上します。 mは現在、すべての計算をfloatで実行しており、出力前に最終段階でSInt32に変換します。つまり、最終段階のすべてのサンプルを変換する必要があります。
クラス内で使用されるデータ型をFloatからSInt32に変更するだけですか。だから私のオシレーターやフィルターなどは、フロートの代わりにSInt32を内部的に渡すことによって固定小数点で計算しますか?
本当にこんなに簡単なの?または、すべての異なるアルゴリズムを完全に書き直す必要がありますか?
この使命を引き受ける前に理解する必要のある他のブードゥーはありますか?
これについてコメントする時間を見つけてくれた人に感謝します。