問題タブ [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.
audio - デジタル オーディオへのダウンサンプリングとローパス フィルターの適用
16 ビット PCM サンプルの配列として表される CD から 44Khz オーディオ ストリームを取得しました。11KHz ストリームにカットしたいと思います。それ、どうやったら出来るの?何年も前のエンジニアリング クラスの時代から、ストリームが 5500Hz を超えるものを正確に記述できないことを知っているので、それを超えるものもすべてカットしたいと思います。何か案は?ありがとう。
更新:このページには、単純なアルゴリズムと { 1, 4, 12, 12, 4, 1 } のような係数配列を使用して 48KHz から 8KHz に変換するコードがいくつかあります。それが必要だと思いますが、6倍ではなく4倍にする必要があります。これらの定数がどのように計算されるか考えていますか? また、最終的には 16 バイトのサンプルを float に変換することになるので、ショートではなく float でダウンサンプリングを行うことができます。
java - Java - wav オーディオ ファイルのダウンサンプリング
こんにちは、wav オーディオ ファイルのサンプル レートを 44.1kHz から 8kHz にダウンサンプリングする必要があります。バイト配列を使用してすべての作業を手動で行う必要があります...これは学術目的のためです。
現在、Sink と Source の 2 つのクラスを使用して、バイト配列をポップおよびプッシュしています。線形補間を使用してデータ チャンクをダウンサンプリングする必要がある部分に到達するまで、すべてがうまくいきます。
44100 から 8000 Hz にダウンサンプリングしているため、128 000 000 バイトなどを含むバイト配列を補間するにはどうすればよいですか? 現在、i%2 == 0、i%2 == 1、および i%80 == 0 に応じて 5、6、または 7 バイトをポップし、これらの 5、6、または 7 バイトの平均を新しいファイルにプッシュしています。 .
結果は確かにオリジナルよりも小さいオーディオ ファイルですが、Windows Media Player で再生できず (ファイルの読み取り中にエラーが発生したと表示されます)、多くのノイズが含まれていますが、ノイズの背後に正しいトラックが聞こえます。
要約すると、線形補間部分に関する助けが必要です。前もって感謝します。
algorithm - 知覚画像のダウンサンプリング
だからここに私の問題があります:
その画像は大きく(高解像度)、小さくする必要があります(はるかに低い解像度)。
だから私は素朴なことをします(他のすべてのピクセルを殺します)そして結果は貧弱に見えます.
そのため、よりインテリジェントな処理 (フーリエ変換を使用したローパス フィルタリングとフーリエ空間での再サンプリング) を試みたところ、結果は少し良くなりましたが、それでもかなり貧弱でした。
私の質問は、知覚的に動機付けられた画像のダウンサンプリング アルゴリズム (または実装) はありますか?
編集: 私は多くのリサンプリング手法を認識していますが、私のアプリケーションは、滑らかな画像を生成することよりも、知覚機能を維持することに重点を置いています。
edit2:デジタル信号処理、畳み込み、ウェーブレット変換などにある程度精通していると想定しても安全です
matlab - MATLABで行列をサンプリングするにはどうすればよいですか?
他のすべてのエントリをサンプリングしたいMATLABの行列があります。
そして私は欲しい:
forループなしでこれを行うにはどうすればよいですか?
image-processing - ハーフトーンコミック画像をダウンサンプリングする際のモアレの低減
iPhone または iPad でライブ ズーム中にハーフトーンのコミック ブック イメージをダウンサンプリングするとき、モアレ効果を減らすにはどうすればよいですか?
私はコミックブックビューアを書いています。より高い解像度の画像を提供し、ユーザーが漫画本を読みながら拡大できるようにするとよいでしょう。ただし、私のクライアントはモアレ効果を嫌うため、ズーム中に目立つモアレ アーティファクトがある場合は、この機能を許可しません。
モアレの影響を受けにくくなるように画像を変更しても、変更が認識できない場合にのみ機能します。愛するハーフトーン ドットを削除するものと同様に、ぼかしは特に禁止されていました。
画像は白黒のハーフトーンと線画です。オリジナルは 600 dpi ですが、アプリケーションと共に出荷されるものはせいぜいその半分なので、おそらく 2500 ピクセル以下の高さになります。
それで、私のオプションは何ですか?カスタム ダウンサンプリング アルゴリズムを記述した場合、これらのデバイスでリアルタイムに十分高速になるでしょうか? 他にできるトリックはありますか?最も視覚的なモアレ効果を持つサイズ比を避けるだけでうまくいくでしょうか?
ズームインまたはズームアウトすると、モアレ効果が最悪になるピークが確実に存在します。それらのポイントが何であるかを計算し、それほど悪くない近くのスケールにズームする方法はありますか?
どんな提案でも大歓迎です。画像と信号処理の経験はほとんどありませんが、学ぶ機会を楽しんでいます。ウェーブレットやアキュータンス、その他の専門用語については何も知らないので、詳しく説明してください。
編集:
今のところ、少なくとも動的ズームを使用しています。最大倍率までのズームインはサポートしますが、任意のスケーリングはサポートしません。これについては今後再検討したいと思います。
python - リスト内のエントリ数のダウンサンプリング (補間なし)
次のいずれかを使用してダウンサンプリングする必要がある、多数のエントリを含む Python リストがあります。
- 最大行数。たとえば、1234 エントリのリストを 1000 に制限します。
- 元の行の割合。たとえば、リストを元の長さの 1/3 にします。
(両方の方法を実行できる必要がありますが、一度に使用できるのは 1 つだけです)。
行の最大数については、必要な比率を計算し、それを比例ダウンサイザーに渡すことができると思います。
...だから、本当に必要なダウンサンプリング関数は 1 つだけです。ヒントはありますか?
編集:リストには数値ではなくオブジェクトが含まれているため、補間する必要はありません。オブジェクトのドロップは問題ありません。
解決:
ありがとう。
audio - symbianC++ダウンサイジングライブラリ
Symbianデバイスで32kHzでオーディオを録音したいのですが、48kHzしかサポートしていません。インターネットを検索することから、私がやろうとしていることの用語はダウンサイジングと呼ばれていると思います。これを実行するNokiaSymbian電話でコンパイルおよび実行されるC++ライブラリはありますか?それとも、アルゴリズムは私が自分で実装するのに十分単純ですか?
audio - ノイズを導入するChebyshevLPF
このサイトで生成された係数に基づいて、単純なチェビシェフローパスフィルターを作成しました:http : //www-users.cs.york.ac.uk/~fisher/mkfilter/、4kHzを超える周波数をフィルターで除去するために使用しています8kHzにダウンサンプリングする前の16kHzサンプルレートオーディオ信号。これが私のコードです(これはC#ですが、この質問はC#固有ではありません。別の言語で、他の言語を自由に使用してください)。
それをテストするために、Audacityを使用して20Hzから8kHzまでの正弦波「チャープ」を作成しました。テスト信号は次のようになります。
それをフィルタリングした後、私は得ます:
波形は、フィルターが実際に4kHzを超える周波数の振幅を低減していることを示していますが、信号に大量のノイズが追加されています。これは、私が実装しようとしているフィルタータイプ(バターワース、レイズドコサインなど)のいずれにも当てはまるようです。
私は何か間違ったことをしていますか、それともこれらのフィルターは単に他の周波数でアーティファクトを導入しますか?サンプルのすべてのペアを平均化するという単純なアプローチを使用してダウンサンプリングした場合、このノイズはまったく発生しません(ただし、エイリアシングは明らかにはるかに悪いです)。
c - C での画像/2D 配列のリサンプリング
2D配列のリサンプリングアルゴリズムを実装しようとしています(グレースケール画像または浮動小数点値の2D配列である可能性があります)。
この特定の操作に含まれる手順は次のとおりです。
2D 配列が与えられた場合、まず何らかのダウンサンプリング方法 (できれば前のアンチエイリアシング フィルタリングを使用) を使用して、8x8 または 16x16 のサイズにダウンサンプリングします。
これに関するいくつかの数値操作。
次に、バイリニア補間を実行して元のサイズにアップサンプリングします。
プロトタイプとして、Octave で以下のようにコーディングしました。それはまともな結果をもたらします。C 実装に関する参考資料を探しています。
imresize.m のコードを確認しようとしましたが、しばらくすると複雑になり、そこから C コードを抽出できませんでした。
アップサンプリングを実行する双一次補間の C コードを参照するための任意のポインター。
また、バイリニア法を使用したアンチエイリアシング フィルタとダウンサンプリング法に関するいくつかのポインタを取得することも検討しています。
java - オーディオファイルのダウンサンプル
オーディオファイルの操作中に問題が発生しました。オーディオファイルを処理するアルゴリズムを実装しています。このアルゴリズムでは、入力が5KHzのモノラルオーディオファイルである必要があります。
私が持っているオーディオファイルのほとんどはPCM44.1KHz 16ビットステレオです。私の問題は、44.1KHzステレオファイルを5KHzモノラルファイルに変換する方法です。
アイデアの背後にあるDSPの基本やJAVAライブラリを説明するチュートリアルを誰かが提供してくれれば幸いです。