問題タブ [lossless-compression]
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.
ffmpeg - ffmpegを使用してm4aファイルから先頭と末尾の両方の無音を削除する
先頭と末尾の無音の両方があり、次の仕様を持つオーディオ ファイルがあります。
コーデック: MPEG AAC オーディオ (mp4a) チャンネル: ステレオ サンプルレート: 44100 Hz ビットレート: 253 kbps
沈黙を取り除き、品質を損なわないようにしたい.
これまで私は試しました
これは、先頭と末尾の無音の両方を削除することになっています。しかし、何らかの理由で、後続の無音は削除されません。これは繰り返し発生する問題のようです。別のフォーラムで以下を見つけました。
http://ffmpeg-users.933282.n4.nabble.com/How-to-delete-digital-silence-tp4667256p4667356.html
また、ffmpeg はビットレートを 128kbps に減らします。これは、-ab 253kを追加してコマンドを作成することで修正できます。
ここでの問題は、末尾の無音部分が削除されず、ファイルのバッチを処理したいときに、すべてのファイルに同じビットレート ( 253kbps など) を使用できないことです。この場合に VBR をどのように使用できるか知りたいです。
sox を使用し、サイレンス機能とリバース機能を使用してサイレンスをトリミングできることを知っています。
http://digitalcardboard.com/blog/2009/08/25/the-sox-of-silence「この投稿の例 3」
しかし、ソックスには次の問題があります。
- m4a ファイルを処理できないため、すべてのファイルを mp3 に変換する必要がありました。
sox でサイレンス フィルターを使用すると、ビットレートが 128kbps に制限されます。
/li>
algorithm - 連分数項の適切な圧縮方式は?
そこで、二次整数と有理数のサブセットを処理するための連分数ライブラリを実装しています。連分数項は符号なし整数で表されます。連分数を扱うとき、次の一般的なパターンに気付きました。
- ほとんどの用語は 1 桁の小さな数字で、1 が最も一般的です。
- 一部の用語は非常に大きくなる可能性があり、私のアプリケーションで可能な最大値は 366 ビットですが、これらは非常にまれです。
- 大きな項は、特に優れた数の近似を表します。これは、通常、大きな分数に対して全体的に少ない項があることを意味します。
- 連分数の最悪の可能性は黄金比であり、366 ビットの精度での有理近似は、約 525 個の 1 の連続に相当します。
- 乱数の有理数は、通常、同じ数の大きな連続はありませんが、2 つから 4 つ連続して存在する場合があり、1 が最も一般的です。
そのため、用語の数と用語のサイズの両方に制限があり、用語の数はそれらのサイズにほぼ反比例します。したがって、これらの項を機械語またはバイト単位で格納することは通常、スペースを非常に浪費し、最悪の場合でも複数語の演算を処理する必要があります。項のサイズと項の数の間のほぼ逆の関係 (どちらも分数の分子と分母のサイズにも依存します) を考えると、無駄にならないように、適切な圧縮スキームを見つけようとしてきました。整数項を格納する非常に多くのスペース。
エンコードとデコードの速度が優れているため、 Huffman encodingを検討しましたが、コード値の確率をどのように計算するかわかりません。連分数と直接的な関係を持つ二分木であるため、スターン-ブロコ木がヒントになるかもしれないという漠然とした直感があります。
同じ数の実行が通常短い(ただし、まれに長くなる可能性がある)ときどき巨大なものを使用して、多数の小さな数を処理するための優れた圧縮アプローチを知っている人はいますか? 特に、かなり高速にエンコードおよびデコードできる必要があり (たとえば、O(n*lg(n)) は私が許容できる最悪の速度であり、O(n) またはそれ以上の速度が望ましい)、個々のタームの位置を調べて、どのターム番号 (第 4 ターム、第 5 タームなど) で操作しているかがわかるようにします。
また、サードパーティの実数または連分数ライブラリの使用には興味がありません。私はいくつかを見てきましたが、それらは私のニーズに対して不十分かやり過ぎであり、私自身の啓発のためにこれを自分でコーディングする経験が欲しいです.
アップデート
また、0 と 1 の間で一様に分布する乱数の特定の連分数項の確率分布を与えるガウス クズミン分布についても学びました。k
P(k) = -lg(1.0 - 1.0/((k + 1.0)**2)
Python 疑似コードでは、lg は 2 を底とする対数です。これはk
無限に近づく限界であるため、私のケースはやや制限されています2**366
(まだ巨大ですが)。Linas Vepstas による「連分数のエントロピー」は、ガウス クズミン分布の (情報) エントロピーを約 3.43 ビットとして提供します。私の分母の最大値は十分に大きいので、連分数の情報エントロピーはおそらくその限界に近くなりますが、リンクされた記事のグラフは限界に非常にゆっくりと近づいていることを示しており、分母が比較的小さい場合は異なります。
lossless-compression - データの圧縮または暗号化
2 バイトあり、キーを使用してそれらを 1 バイトに圧縮したい (キーの長さは最大 64 ビット)。さらに、圧縮されたバイトと同じキーを使用して、2 バイトを取得できるようにしたいと考えています。誰かがそれを行う方法を知っていますか?
ありがとう。
python - ジャンゴで画像を可逆圧縮する
私は最適化を行っており、Google は画像に可逆圧縮を推奨しており、これを Django に実装する方法を探しています。
これが彼らが指定した画像です。効果的に行うには、おそらくミドルウェアクラスを使用してシステム全体に実装する必要があると思います。pagespeed の Google アナリティクスへのリンクは次のとおりですhttps://developers.google.com/speed/pagespeed/insights/?url=www.kenyabuzz.com
画像の最適化 画像を適切にフォーマットして圧縮すると、何バイトものデータを節約できます。次の画像を最適化して、サイズを 627.3KiB (74% 削減) 縮小します。
opencv - OpenCLロスレスビデオ圧縮
OpenCL で可逆ビデオ圧縮を探しています。プロジェクトの要件であるため、ロスレスである必要があります。OpenCV および ffmpeg で記述されたロスレス アルゴリズムがいくつか見つかりましたが、いずれも OpenCL エンコーディング/デコーディングをサポートしていません。Apple コンピュータを使用していますが、CUDA をサポートしていない ATI グラフィック カードが付属しています。
どんな助けでも大歓迎です。
c++ - 境界チェック - 境界外
少しデバッグが必要です。コードは 100% コンパイル可能です。ただし、圧縮するドキュメントの小さな断片を指定するとクラッシュし、解凍すると境界チェックに関するエラーが発生します。私もそれを実行するのは少し怖いです。危険ではありませんが、これが今の私の代表作です。それはまさに圧縮技術のスイートスポットです。これは私が作ったものです。微積分導出アルゴリズムを使用して、使用する数百万の一意のキーを取得します。これらはすべて予測可能です。そして、それらは一意であるため、ハッシュでキーを複数回取得して台無しにすることはできません。このコードの目的は、完全に再生可能で、圧縮時に損失を与えないハッシュを生成することです。ありがとうございました。
java - 部分的に解凍し、実際に解凍されたデータ メッセージのサイズを見積もる
X バイトの上限を超えた場合にメッセージをドロップするか、処理しないという単純な要件があります。ただし、送信者はメッセージを圧縮して送信できます。圧縮エントロピーは、ユーザーがすべて 0 または 1 などのランダムなメッセージを作成した場合に大きく変化します。ただし、信頼できる送信者が圧縮されたメッセージを覗いて、解凍時の実際のサイズを推定する方法があると仮定します。私は java.util.zip を使用して Zip プロトコルを使用していますが、他のライブラリまたは言語のソリューションに対してオープンです。