問題タブ [lzw]
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.
php - PHPLZWバイナリ解凍関数
私はインターネットを探していましたが、これらのjavascript関数によって出力されたデータを処理するPHPのLZW解凍実装を見つけることができませんでした。
上記の圧縮javascript関数で動作できるPHPの解凍アルゴリズムが本当に必要です。
上記のlzw_encode関数は、「これは圧縮関数のテストです」を「これは圧縮関数のテストです」としてエンコードします。
私が見つけたライブラリはバグがあるか(http://code.google.com/p/php-lzw/)、UTC文字を入力しません。
どんな助けでも大歓迎です、
ありがとう!
php - PHPマルチバイトUTF-8文字列はゆっくりと劣化しています
次のJavaScript関数をPHPに変換しようとしています。
これは私の変換されたコードです:
この関数は一部のLZWエンコード文字列で機能しますが、十分な長さの文字列を使用すると、100%正確ではないことがわかります。私の推測では、それはマルチバイト文字列と私の不注意の問題だと思います。誰かアイデアはありますか?
algorithm - LZW 解凍アルゴリズム
LZW 圧縮/解凍を実装する必要がある割り当てのプログラムを作成しています。これには次のアルゴリズムを使用しています。
-圧縮
-減圧
圧縮段階では、辞書エントリのインデックスを表す int を出力するだけです。また、開始辞書は ascii 文字 (0 ~ 255) で構成されます。しかし、解凍段階になると、このエラーが発生します。たとえば、「ブープ」のみで構成されるテキスト ファイルを圧縮すると、次の手順を実行して出力ファイルが生成されます。
output.txt: 98 111 257 112
次に、ファイルを解凍するときに
257 (oo) はまだ追加されていません。私が困惑しているので、ここでどこが間違っているのか誰にもわかりますか。アルゴリズムがおかしい?
parallel-processing - lzwの圧縮/解凍を並列にすることは可能ですか?
LZWを使用してデータを圧縮/解凍する方法についてこの記事を読みましたが、複数のスレッドを使用するようにしたいと思っています...しかし、それは不可能だと思います。どう思いますか?このテーマに関する論文や記事はありますか?またはそれを行う方法についてのヒントさえ。
c# - C#でのGIFLZW圧縮
私は現在、画像デコーダーを作成するためにC#でプログラミングの自己学習演習に取り組んでいます。いくつかの実用的なソリューションを作成したので、より複雑なPNGおよびJPEG形式に進む前にGIFに取り組む必要があると思いました。私の問題は、LZWサブブロックを解凍するための実際の解決策を思いつくのに頭を悩ませていることです。私はそれを試みる方法を見つけるのに苦労しています。いくつかの大まかな擬似コードの例を見てきましたが、それらは私がC#で実際に出会ったことのない用語や、頭を動かすのが難しいと感じているプロセスを使用しているようです。ほとんどは圧縮にも焦点を当てていますが、解凍は私が最も興味を持っているものです。
たとえば、C#でコードテーブルを作成するための最良の方法は何ですか?バイト配列、辞書、または他の何か?次に、データを解凍するにはどうすればよいですか?私は必ずしもコードを求めているわけではなく、他の人が行った例へのヘルプやリンクを求めているだけです(画像のデコードは、オンラインのリソースや教材をいくらか無視していることがわかります)。
ありがとう。
perl - Perl を使用して 8 ビット以外の GIF 画像を PDF に追加する
Perlを使用してビットストリームを完全にデコードせずに、8 ビット以外のノンインターレース GIF 画像を PDF ドキュメントに追加しようとしています。PDF::Create
PDF 標準のLZWDecode一部であるアルゴリズムでは、すべての画像が 8 ビットの最小 LZW コード サイズを持つ必要があり、8 ビット画像のみを埋め込むようにハードコードされています。PDF::Create
これまでのところ、5 ビット イメージを読み取り、LZW ストリームを完全にデコードするようにイメージ ローダーを調整しました。PDF::Createその後、エンコーダ アルゴリズムを使用してPDF::Create、イメージを 8 ビットとして再パックできます。
私がやりたいのは、メモリを大量に消費するデコード/エンコードのステップをなくすことです。このスレッドは、「ビットを拡大またはシフト」して LZW コードを適切な長さにすることで、これが可能であることを示唆していますLZWDecode。
スレッドの作成者に連絡したところ、彼はいくつかの追加の詳細を提供してくれました。特に、カラー インデックスのコードは同じままですが、ゼロが埋め込まれている[10000](たとえば、 256 - 元のコード。[000010000]<Clear><End><256><257><Clear>
しかし、雇用主の制限により、彼はこれ以上詳しく説明することができませんでした。特に、変更された値が<4095>(LZW コード テーブルの最大インデックス) を超えた場合のコードの処理方法がわかりません。また、改訂されたコードをビットストリームに再パックする方法もわかりません。
私が現在使用しているアルゴリズムは以下のとおりです。
perl - Perl を使用してビットストリームを変更する
Perl でビットを変更した後、ビットをビットストリームに再パックするにはどうすればよいですか?
私は現在、以下を使用して解凍しています。
たとえば、出力は 16 になる場合があります。
編集:
この質問は、GIF 画像のデータ ブロックに関するものです。
私がやろうとしているのは、LZW コードをパディングして、PDF のLZWDecode方法で必要な長さに合わせることです。
LZWDecode<Clear>は、コードが 256 で<End>コードが 257の8 ビット イメージを予期します ( PDF リファレンス、44 ページ)。
5 ビット イメージの場合、コード 0 ~ 31 はイメージのグローバル カラー テーブルの色にマップされ、<Clear>32 と<End>33 です。
したがって、コード 0 ~ 31 は同じままで、32+ は 256 ~ 32 だけオフセットされるように、ビットストリームを再パックする必要があります。
Windows 用の ActiveState Perl を使用しています。
c++ - LZW圧縮と辞書
LZW圧縮をC++で実装することを検討していますが、最適な辞書の実装がわかりません。
ハッシュテーブルは理にかなっていますが、値を「再割り当て」する方法がわかりません。テーブルがいっぱいになった場合、以前の(最も古い)複数文字の辞書エントリの上書きを開始できるようにする必要があります。ハッシュテーブルでは、これらを追跡し、見つけて削除し、新しいものを挿入する必要があります。
助言がありますか?
function - LuaでのLZW圧縮
これがLempel-Ziv-Welch圧縮の擬似コードです。
これをLuaでコーディングしようとしていますが、実際には機能していません。これがPythonのLZW関数をモデルにしたコードですが、8行目に「文字列値を呼び出そうとしました」というエラーが表示されます。
コードを実行するか、LuaでLZW圧縮をコーディングするのを手伝ってもらいたいです。どうもありがとう!
function - LuaでのLZWデータ圧縮
重複の可能性:
LuaでのLZW圧縮
これは、LZW圧縮方式を使用してLuaでデータを圧縮するための私のコードです。私の問題は、関数が完全に圧縮された文字列'TOBEORNOTTOBEORNOT'を返すのではなく、文字'T'を返すことです。ありがとう!