問題タブ [haar-wavelet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
594 参照

c - OpenMP を使用した 2D Haar ウェーブレット変換の C コードの並列化

これは私の最初の質問です。私は、openMP で C の 2d haar 変換関数を並列化しようとしています。ここで取得し、それに応じて変更しました。このプログラムは白黒画像を取得し、それを行列に入れ、haar ウェーブレット変換の 1 つのレベルを計算します。最後に、値を正規化し、変換されたイメージをディスクに書き込みます。

これはHDTの結果のイメージ1 レベルです。

私の問題は、並列化されたバージョンがシリアル バージョンよりもかなり遅く実行されることです。今のところ、並列化したい主要部分のスニペットをここに添付します (後で、周囲のすべてのコードを配置できます)。

タイミングは多かれ少なかれ次のとおりです。

プラグマをさまざまな方法で再配置しようとしました。たとえば、静的スケジュール、セクション、タスクなどを使用して、変数のデータ スコープを再配置し、並列領域内で動的に割り当てます。2 レベルの for を並列化するのは簡単だと思っていましたが、苦労して 2 日が経過しました。あなたの助けを求めて、ここで関連するすべての質問をすでにチェックアウトしましたが、まだ先に進むことができないか、少なくとも理由を理解することができません. 前もって感謝します。(CPU Intel Core i3-4005U CPU @ 1.70GHz × 4 スレッド、2 コア)

アップデート:

1)m&nについては、いつか長方形の画像も実装することになっているので、そのままにしておきました。

2) u は実際には行ごとに線形化された行列を含む通常の配列であることがわかりました (私は PGM 画像を使用しています)。

3) memcpy の方が優れたオプションであるため、現在は memcpy を使用しています。

主なトピックについてはどうですか。チャンクごとにタスクを生成することにより、ジョブをn個に分割しようとしましたが、結果はシリアルコードより少し高速です。これで、入力行列 u が適切な行優先順序になっていることがわかりました。2 つの fors はそれに応じて進行しているように見えますが、タイミングについてはわかりません: omp_get_wtime() と clock() の両方を使用する方法がわかりませんスピードアップを測定します。16x16 から 4096x4096 までのさまざまな画像サイズでテストを行いましたが、並列バージョンは clock() で遅くなり、omp_get_wtime() と gettimeofday() で速くなるようです。OpenMPで正しく処理する方法、または少なくともスピードアップを正しく測定する方法についていくつか提案がありますか?

0 投票する
0 に答える
234 参照

matlab - Matlab - Haar ウェーブレット係数の計算 - タイプ 'single' の入力引数に対して未定義の関数 'haart'?

特徴抽出コードを使用して、16 チャネルの EEG データを実行しています。

eegData は 240000x16 double (16 チャンネルにわたる EEG データの 240000 サンプル)

このコードを使用して 60 GB の EEG データを実行して、モデルをトレーニングし、他のデータを予測しています。一部のデータ ファイルでデータ ドロップアウトが発生したため、

そこで。

エラーが発生します:

タイプ 'single' の入力引数の未定義の関数 'haart'

いくつかのデータファイルで、これが考えられる理由は何ですか?

0 投票する
1 に答える
1324 参照

python - pywtを使ってhaarウェーブレットプロットを描く方法は?

私はウェーブレット変換を学び始めたばかりなので、そのような素朴な質問があります。

私は2つの非ゼロ係数のみを持つ非常に単純なスケーリング関数を持っています:

ここに画像の説明を入力

平均と差の部分を自分で計算したので、DWT を説明するプロットを描きたいと思います。

pywt間隔 [0,1] でライブラリを使用してこのプロットを表示する方法

私のベクトルはa = [8,2,1,6,3,−9,7,4]

私のグラフは、次のようになります: https://yadi.sk/i/3MIfn3tF3NRFsB