問題タブ [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.

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

lossless-compression - 13268ビット(1.66kバイト)を保持している配列データ圧縮

つまり、アレイには、航空機ごとに100 *125ビットのデータがあります+12文字ごとに8つのアスキーメッセージそのようなデータにどの圧縮技術を適用する必要がありますか

0 投票する
8 に答える
79410 参照

javascript - JavaScript での文字列圧縮

指定された文字列が圧縮された (短い) 文字列を返す JavaScript 関数を探しています。

長い文字列 (HTML) をローカル データベースに保存する Chrome Web アプリケーションを開発しています。テスト目的で、データベースを格納するファイルを圧縮しようとしましたが、5 分の 1 に縮小されたので、格納するものを圧縮するとデータベースを小さく保つのに役立つと考えました。

ここで、JavaScript での LZSS の実装を見つけました: http://code.google.com/p/u-lzss/ (「U-LZSS」)。

短いサンプル文字列 (デコード === エンコード) を使用して「手で」テストしたところ、動作するように見えました。また、Chrome でもかなり高速です。しかし、大きな文字列 (100 ko) を指定すると、文字列の後半が文字化け/混同されているように見えます。

U-LZSS が短い文字列を想定していて、より大きな文字列を処理できない可能性はありますか? そして、その上限を動かすためにいくつかのパラメータを調整することは可能でしょうか?

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

c++ - C++ でビットセットをファイルに書き込むスペースを節約する

C ++でビットセットをファイルに書き込む(おそらくiostreamを使用して)スペースを節約するにはどうすればよいか疑問に思っていました。ビットセットをサイズ 8 のビットセットに分割し、個々のビットセットをファイルに書き込むと、スペースを節約できますか? これについてどう思いますか。これがデータ圧縮の意図です。

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

stream - 少量のデータを無損失で圧縮するときに最小サイズを達成するにはどうすればよいですか?

  1. 「小さいファイルを gzip/deflate で圧縮すると末尾にゼロが多くなるのはなぜですか?」に対する答えがわかりません。」 (小さなファイルを gzip/deflate で圧縮すると、末尾のゼロが多くなるのはなぜですか? )

  2. .NET 環境で ½ ~ 2 K バイトの少量のデータを最小サイズに圧縮するにはどうすればよいでしょうか? (ランタイムは私にとって問題ではありません。サイズと速度を交換できますか? サードパーティ製品を使用する必要がありますか? 開発者のライセンス料は問題ありませんが、ランタイム ライセンスは必要ありません。)

  3. 以下のコードを改善する方法について何か提案はあります
    か? (a) より高い圧縮率?
    (b) ストリームのより適切な使用?

改善が必要な C# コードは次のとおりです。

0 投票する
3 に答える
2043 参照

lossless-compression - 無損失圧縮のハフマン符号化

Lossless 圧縮のための Huffman Coding について本当に助けが必要です。試験が迫っていて、これを理解する必要があります。これを理解するために作成された簡単なチュートリアルを知っている人はいますか、誰かが説明してくれますか?

試験の質問は次のようになります。

アルファベットが [A, B, C] で、既知の確率分布が P(A)=0.6、P(B)=0.2、P(C)=0.2 であるとします。簡単にするために、エンコーダーとデコーダーの両方が、メッセージの長さが常に 3 であることを認識していると仮定して、ターミネーターは必要ありません。

  1. メッセージ ACB をハフマン コーディングでエンコードするには、何ビットが必要ですか? シンボルごとにハフマン ツリーとハフマン コードを提供する必要があります。(3 点)

  2. 算術符号化でメッセージ ACB をエンコードするには、何ビットが必要ですか? エンコード プロセスの詳細を提供する必要があります。(3 点)

  3. 上記の結果を使用して、ハフマン符号化に対する算術符号化の利点について説明します。(1 点)

答え:

  1. ハフマンコード:A-1、B-01、C-00。エンコード結果は10001なので5ビット必要。(3 点)

  2. 算術符号化のエンコード プロセス: シンボル 低高範囲 0.0 1.0 1.0 A 0.0 0.6 0.6 C 0.48 0.6 0.12 B 0.552 0.576 0.024 最終的なバイナリ コードワードは 0.1001、つまり 0.5625 です。したがって、4 ビットが必要です。(3 点)

  3. ハフマン符号化では、各シンボルの符号語の長さは整数でなければなりません。しかし、算術符号化では分数になる可能性があります。したがって、上に示した結果のように、算術符号化は多くの場合、ハフマン符号化よりも効率的です。(1 点)

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

java - ロスレスで同一の方法-BufferedImageからファイルへ

BufferedImageピクセル(数値)を操作したオブジェクトがあります。では、ピクセル値を変更せずに、ファイル(できればJPEGファイル)に保存するにはどうすればよいですか?

0 投票する
5 に答える
2963 参照

c++ - テキストを入力として受け取り、そのテキストを再現するプログラムを生成するプログラムを作成する

最近、私は 1 つの素晴らしい問題に出くわしました。それは、理解するのが簡単であると同時に、解決する方法を見つけるのが難しいというものでした。問題は:

入力からテキストを読み取り、出力に他のプログラムを表示するプログラムを作成します。印刷されたプログラムをコンパイルして実行すると、元のテキストを出力する必要があります。

入力テキストはかなり大きい (10000 文字以上) と想定されています。

唯一の (そして非常に強い) 要件は、アーカイブ (つまり、印刷されたプログラム)のサイズが元のテキストのサイズより厳密に小さくなければならないということです。これにより、次のような明白な解決策が不可能になります

ここでは、いくつかのアーカイブ技術が使用されると思います。

0 投票する
8 に答える
65579 参照

h.264 - h264 ロスレス コーディング

h264 で完全にロスレス エンコーディングを行うことは可能ですか? ロスレスとは、一連のフレームをフィードしてエンコードし、エンコードされたビデオからすべてのフレームを抽出すると、入力とまったく同じフレームがピクセルごと、フレームごとに取得されることを意味します. それは実際に可能ですか?次の例を見てください。

一連のフレームを生成し、イメージ シーケンスを非圧縮 AVI にエンコードし (virtualdub などを使用)、ロスレス h264 を適用します (ヘルプ ファイルでは、設定 --qp 0 を設定するとロスレス圧縮が行われると記載されていますが、つまり、プロセスのどの時点でも損失がないか、量子化だけが無損失であることを意味します)。その後、mplayer などを使用して、結果の h264 ビデオからフレームを抽出できます。

最初に Handbrake で試してみましたが、ロスレス エンコーディングをサポートしていないことがわかりました。x264 を試しましたが、クラッシュします。ソース AVI ファイルが YV12 ではなく RGB 色空間にあることが原因である可能性があります。一連の YV12 ビットマップをフィードする方法と、とにかく x264 にどのような形式でフィードするかがわからないため、試すことさえできません。

要約すると、それがそこからの道があるかどうか知りたいこと

一連のロスレス ビットマップ (任意の色空間) -> 何らかの変換 -> h264 エンコード -> h264 デコード -> 何らかの変換 -> 元の一連のロスレス ビットマップ

これを達成する方法があれば?

編集:ロスレスH264があまり意味をなさないことについて、非常に有効な点があります。圧縮されていないクリップと、H264 で高レートで圧縮された別のクリップの違いを (私の目だけで) 見分ける方法がないことは十分承知していますが、用途がないわけではないと思います。たとえば、ファイルを保存するたびに大量のスペースを使用したり、品質を低下させたり、エンコードに多くの時間を費やしたりすることなく、編集用のビデオを保存するのに役立つ場合があります。

更新 2:x264 がクラッシュしなくなりました。avisynth またはロスレス yv12 ラガリスのいずれかをソースとして使用できます (色空間圧縮の警告を回避するため)。ただし、 --qp 0 と rgb または yv12 ソースを使用しても、最小限ではあるが存在するいくつかの違いがあります。ロスレス予測コーディング (--qp 0) で見つけたすべての情報は、エンコーディング全体がロスレスであるべきだと主張しているため、これは厄介です。しかし、私はこれを検証できません。

0 投票する
3 に答える
195 参照

algorithm - 整数のリストをより人間に優しいものにする

これは、作業の修正なしの問題を解決するために私が引き受けたちょっとした副次的なプロジェクトです。私たちのシステムは、別のものの組み合わせを表すコードを出力します。いくつかのサンプルコードは次のとおりです。

9-9-0-4-4-5-4-0-2-0-0-0-2-0-0-0-0-0-2-1-2-1-2-2-2- 4

9-5-0-7-4-3-5-7-4-0-5-1-4-2-1-5-5-4-6-3-7-9-72

9-15-0-9-1-6-2-1-2-0-0-1-6-0-7

私がこれまでに見たスロットの1つの最大数は約150ですが、おそらくもっと高くなるでしょう。

システムが設計されたとき、このコードがどのように見えるかについての要件はありませんでした。しかし今、クライアントは一枚の紙から手でそれを入力できることを望んでいます。これは上記のコードには適していません。何もしないと言ったのですが、やりがいのある挑戦のようです。

私の質問は、このコードの損失のない圧縮を開始するのに適した場所はどこですか?このコードを短いキーで保存するなどの明らかな解決策はオプションではありません。私たちのデータベースは読み取り専用です。このコードをより人間に優しいものにするために、双方向のメソッドを構築する必要があります。

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

java - Javaでjpegをロスレスにする方法は?

losslessJavaで圧縮を使用して「jpeg」ファイルを書き込む方法を教えてくれる人はいますか?

以下のコードを使用してバイトを読み取り、バイトを編集します

そして、圧縮せずにバイトを「jpeg」ファイルとして再度書き込む必要がありますlossy