問題タブ [downsampling]
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.
windows-phone-7 - ウェーブファイルをダウンサンプリングする
16000 HzPCM16ビットウェーブファイルを8000Hzにダウンサンプリングする必要があります。私はオーディオ処理についてあまり知識がありません(ほとんどありません)。すべてのプログラマーが理解しているように、ビット、バイト、シフトなどを理解しています。
これはWindowsPhoneアプリケーションです。
何を指示してるんですか?また、私が理解している限り、XNAフレームワークのMicrophoneクラスのSampleRateは、16000Hzのデータしか提供しないようにカスタマイズできません。Windows Phoneで8000Hzの生のオーディオデータを取得する方法はありますか?それははるかに簡単な解決策になるでしょう:)
ありがとうございました。
android - 22khz から 8khz への pcm/wav オーディオのダウンサンプリング
私の Android アプリケーションは PCM(22khz) を AMR に変換する必要がありますが、API AmrInputStream は 8khz の pcmのみをサポートします。
pcm を 22 khz から 8 khz にダウンサンプリングするにはどうすればよいですか?
opengl - GLSL 330: ダウン サンプル テクスチャ
入力テクスチャを 800x600 から 4 分の 1 (200x150 ピクセル) にダウンサンプリングしたいと考えています。しかし、そうすると、画像が少ししか見えなくなります。frament シェーダはテクスチャ全体をダウンサンプリングしていないようです。次の例では、被写界深度効果を作成します。
頂点シェーダー:
フラグメント シェーダー:
入力テクスチャは 800x600 で、出力テクスチャは 200x150 ピクセルです。m_InvertedScreenSize として、1/800 および 1/600 ピクセルを使用します。そうですか?
OpenGL の画面座標を表す 2 つの三角形をアップロードします。
私のスクリーンマトリックスは、直交マトリックスを介してこれらの頂点をクリッピングスペースに変換します。
次の画像は、入力テクスチャと結果を示しています。1つ目は、ダウンサンプリングなしの元の画像です。2 番目は、実際にダウン サンプリングされたテクスチャです。3 つ目は、ScreenCoords *= 4.0f; を計算してダウン サンプリングされたテクスチャです。
android - 画像を正しくダウンサンプリングするには?
バックグラウンド
多くの高品質の画像を含むアプリを作成するため、画像を必要なサイズに縮小することにしました (つまり、画像が画面よりも大きい場合は縮小します)。
問題
一部のデバイスでは、画像が縮小されている場合、画像がぼやけたりピクセル化されたりしますが、同じデバイスで、同じターゲット imageView サイズに対して、画像が縮小されていない場合は問題なく表示されることに気付きました。
私が試したこと
この問題をさらに確認することにし、問題を示す小さな POC アプリを作成しました。
コードをお見せする前に、私が話していることのデモを次に示します。
違いがわかりにくいですが、2番目は少しピクセル化されていることがわかります。これはどの画像にも表示できます。
xml:
質問
なぜ発生するのですか?
どちらの方法も、同じソースから同じ因子を使用してサンプリングするため、同じ結果になるはずです。
ダウンサンプリング法を試してみましたが、何も役に立ちませんでした。
(inSampleSizeの代わりに)inDensityを使用すると修正されるようですが、何を設定すればよいかわかりません。外部の画像(インターネットなど)の場合、使用したいサンプルサイズを掛けた画面密度に設定できると思います。
しかし、それは良い解決策ですか?画像がリソースフォルダー内にある場合はどうすればよいですか(ビットマップが配置されている密度フォルダーを取得する機能はないと思います)?推奨される方法(ここで説明)を使用してもうまくいかないのに、なぜうまくいくのですか?
編集:リソースから取得したドローアブルに使用される密度を取得するためのトリックを見つけました(リンクはこちら)。ただし、検出する密度に固有である必要があるため、将来の証明ではありません。
python - Python: 頻度データを使用して母集団をダウンサンプリングする
母集団内の要素の頻度を表すデータ系列が与えられた場合、それをダウンサンプリングする最も簡単な方法は何ですか?
次の母集団:pop = ['a', 'b', 'a', 'c', 'c', 'd', 'c', 'a', 'a', 'b', 'a']
次のように要約できます。freq = {'a': 5, 'c': 3, 'b': 2, 'd': 1}
シンプルな使用:from collections import Counter; Counter(pop)
その母集団をランダムに 5 人にダウンサンプリングするには、次のようにします。
freq
しかし、リストを作成せずに情報から直接これを行う方法を探していpop
ます。あなたは、次のような手順が必要ないことに同意するものとします:
メモリの考慮事項と速度要件のために、リストをメモリに配置することは避けたいと思いpop
ます。これは、ある種の加重乱数発生器を使用して確実に実行できます。
filtering - 間引き前後のフィルタリング
サンプリング周波数48000Hzの信号を扱っています。
8000 Hz に到達するためにデシメーションを行う必要はありません。つまり、6 次のデシメーションです。
さらに、50 Hz とその高調波を除外する必要があることもわかっています。すべてのゼロと極を使用して FIR フィルターを設計する方法が本当にわからないので、FFT-iFFT 手順の助けを借りてそれを行うつもりです...
私の質問は:
デシメートする前に高調波を除去しますか、それとも後で行うことができますか?
以前に高調波を除外する必要がある場合、24000/50=480 の高調波を除外するのは正気ではなく、デシメーションを行った後は計算メモリが倍 (4000/50=80) 減少します!
audio - フィードするサンプル数またはフレーム数を特定するために PCM データをトリミングする方法は?
libsamplerate (次の構造体を埋める必要があるオーディオデータをダウンサンプリングするためのライブラリ) をフィードしたい:
呼び出し元が入力する必要があるこの構造体のフィールドは次のとおりです。
この構造体を埋めるために、data_in がありますが、フレーム カウントがわからないため、input_frames を定義できません。PCM バイト ストリームをトリミングする簡単な方法はありますか? したがって、正しいフレーム数でもこの関数に入力できます。(したがって、この質問はlibsamplerateとは直接関係ありません)
c++ - VST インストゥルメントで 96 から 44.1 kHz のオーディオを高速 (リアルタイム) にダウンサンプリングする
VSTi (c++) で高速なダウンサンプリング関数を作成しようとしていますが、機能させるのに苦労しています。これが私が持っているものであり、私がやろうとしていることです。まずはローパスフィルターです。
上記のローパス フィルターを使用した後、96000/44100=2,1769 のステップでバッファーを再生します。pp->cOffset[o] 2, 4, 6, 8, 10, 13, 15, 17, 19, 21, 23, 26, 28, 30 .. . 96kHZ バッファから。フィルターが高周波で成功したことはわかりますが、バッファーからシリーズを読み取る方法により、より深い金属音があります。
次に、それに対処するために次を追加しようとしました(笑わないでください):
これにより、金属音の一部が消えましたが、すべてではありませんでした.私は迷っており、それを行う方法がわかりません. 昨日より頭の毛が減った!
outputs はホストへの出力バッファーで、ホストは 44.1kHz のサンプルレートに設定されていますが、私のウェーブ サンプルは 96kHz です。
先に進む方法を見つけさせてください。
monitoring - OpenTSDB はどのようにデータをダウンサンプリングしますか
OpenTSDB でのダウンサンプリングに関する 2 つの質問があります。
1つ目は、OpenTSDBがダウンサンプリングを計算するときに最後のエンドポイントを包括的または排他的に取るか、またはエンドデータポイントを2回カウントするかを誰かが知っているかどうか疑問に思っていましたか?
たとえば、時間間隔が午後 12 時 30 分~午後 1 時 30 分で、午後 12 時 29 分 44 秒から 5 分ごとに DP を取得し、ダウンサンプル間隔が 10 分ブロックごとに合計される場合、システムは 12 時 30 分から DP を取得しますか? -12:39 とそれらの合計、12:40-12:49 とそれらの合計など、または 12:30-12:40 の DP、次に 12:40-12:50 の DP などを使用しますか? はい、私はデータが 15 秒ずれていることはわかっていますが、それを制御することはできません。
手で計算しようとしましたが、私が持っているデータは役に立ちません。私が計算している数値は、上記に加算されておらず、グラフが示しているものと一致していません. 数値を OpenTSDB にプッシュするシステムにアクセスできないため、チェックするダミー データをセットアップできません。
2 番目の質問は、ダウンサンプリングが時間範囲とダウンサンプル間隔からグラフにそのポイントをどのようにプロットするかということです。10 分のブロックを合計するようにダウンサンプルを設定しました。範囲を午後 12 時 30 分~午後 1 時 30 分に設定しました。このグラフは、ダウンサンプリングされたグラフの最初のポイントが午後 12 時 35 分に始まることを示しています。それは論理的に理にかなっています。
範囲を 12:24pm から 1:29pm に変更し、最初のポイントが 12:30 に開始されることを期待していましたが、最初に表示されたポイントは 12:25pm です。
うまくいけば、誰かが私のためにこれらの質問に答えることができます. それまでの間、ダウンサンプリングがどのように機能するかを示す/証明するのに役立つデータをシステムで見つけようと試み続けます。
よろしくお願いします。