問題タブ [huffman-code]
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.
c++ - ハフマン符号化のバイト度数分布表
私は、任意のバイナリファイルで動作する必要があるハフマンコンプレッサーとデコンプレッサー(C ++)を書いています。データ構造に関するアドバイスが少し必要です。現在、私の圧縮プロセスは次のとおりです。
- ファイルのバイトをバイナリ形式でchar*バッファに読み込みます
- std :: mapを使用して、ファイル内の各バイトパターンの頻度をカウントします。(これは私がトラブルを求めていると思うところです。)
- 頻度ヒストグラムに基づいて二分木を構築します。各内部ノードにはその子の頻度の合計があり、各リーフノードには実際のバイトを表すchar*があります。
これは私が今のところいるところです。
私の質問は、char *からintへのマップを使用した場合、正確に何を測定しているのかということです。私が正しければ、これは実際に私が必要としているものではありません。私が実際に行っているのは、char*を使用して実際の4バイトのポインター値を追跡することです。
したがって、私が計画しているのは、ヒストグラムにマップを使用し、リーフノードに格納されているデータに文字を使用することです。私の論理はここに聞こえますか?私の推論はそうですが、バイナリデータを扱うのはこれが初めてなので、奇妙な方法でしか現れない落とし穴に注意したいと思います。
ありがとう。
compression - Dictionary Huffman 圧縮アルゴリズムのオープンソース実装はありますか?
私は、Mobipocket 形式の電子ブック ファイルを操作するライブラリに取り組んでおり、LZ77 スタイルの PalmDoc 解凍および圧縮が機能しています。ただし、PalmDoc 圧縮は、現在電子ブックで実際に使用されている 2 種類のテキスト圧縮のうちの 1 つにすぎません。もう 1 つは Dictionary Huffman 別名 huffcdic です。
huffcdic デコード アルゴリズムの実装をいくつか見つけましたが、同じ形式に圧縮できるようにしたいのですが、これまでのところ、それを行う方法の例をまだ見つけることができませんでした。他の誰かがすでにこれを理解し、コードを公開していますか?
algorithm - 圧縮のための HTML 属性の最適化された順序
HTML 属性を特定の順序で整理すると、HTML ドキュメントの圧縮率が向上するという記事をどこかで読みました。(私はこれを Google または Yahoo のより高速なサイトに関する推奨事項から読んだと思います)。私の記憶が正しければ、最も一般的な属性 (id
など) を最初に配置し、残りをアルファベット順に配置することをお勧めしました。
私はこれに少し混乱しています。たとえば、すべてのタグのid
直後に属性を配置すると、一意の値が含まれます。したがって、複製された文字列は次のように制限されます: ( と があったとします)。の値は一意である必要があるため、これは実際には圧縮に悪影響を及ぼしていると考えています。p
id
<p id="
<p id="1">
<p id="2"/>
id
私が間違っている?
属性がランダムに並べられた静的な Web ページを通過する必要がある場合、最大の圧縮を達成するために属性を整理するにはどのようなロジックを使用すればよいですか?
注: GZIP 圧縮について話している (問題がある場合): http://www.gzip.org/algorithm.txt
huffman-code - 最長ハフマン符号語
特定の周波数セットのハフマン符号化で可能な最長のコードワードを特定する方法がよくわかりません。
何か案は?
javascript - base64エンコーディングの前に文字列を短くして短くするロスレス圧縮方法?
base64でエンコードされたデータにHTML(およびすべてのインラインCSSとJavascript)を含むURLを生成するHTMLドキュメントをプレビューするための小さなWebアプリを構築しました。問題は、URLがすぐに長くなることです。データを失うことなく最初に文字列を圧縮するための「事実上の」標準的な方法(できればJavascriptによる)は何ですか?
PS; しばらく前に学校でハフマンとレンペルジブについて読んだことがありますが、LZWを本当に楽しんだことを覚えています:)
編集:
解決策が見つかりました。rawStr => utf8Str => lzwStr=>base64Strが進むべき道のようです。私はさらに、utf8とlzwの間にハフマン圧縮を実装することに取り組んでいます。これまでの問題は、base64にエンコードすると非常に多くの文字が非常に長くなることです。
delphi - 圧縮された文字列をハフマン アルゴリズムで解凍する
http://www.explainth.at/downloads/huff.zipからハフマンアルゴリズムを使用しようとしています
ユニットには 2 つの機能があります。
function Compress(ASource:TMemoryStream):TMemoryStream;
関数 DeCompress(ASource:TMemoryStream):TMemoryStream;
ファイルの各行を別のファイルに圧縮することに成功しました。
また、圧縮された各行をファイルから文字列に解凍したいと考えています。
文字列を解凍するために私がしたことは次のとおりです
Button2Click 手順が機能しません。簡単な質問は、圧縮された文字列を解凍するにはどうすればよいですか?
DeCompress のパラメーターは TMemoryStream ですが、パラメーターとして文字列を使用するにはどうすればよいですか?
DeCompress の出力を文字列として作成するには?
c - リターン0/fclose/freeでのプログラムセグメンテーション違反。メモリリークがあると思いますが、見つかりません。助けてください!
テキストファイルを圧縮するハフマン符号化プログラムを作成しようとしています。完了すると、プログラムはreturnステートメントで終了するか、読み取っていたファイルを閉じようとすると終了します。メモリリークがあると思いますが、見つかりません。それらを見つけることができたら、私に知らせてください(そしてそれらを修正する方法をいただければ幸いです!)。
(注:small1.txtは標準のテキストファイルです)
これがメインプログラムです
python - .txtファイルを読んで分析する
私は任意の.txtファイルのハフマンコーディングを行っているので、最初にこのテキストファイルを分析する必要があります。私はそれを読んでから分析する必要があります。テーブルのような「出口」が必要です。
手紙| 頻度(同じ後者が何回繰り返されるか)| ハフマンコード(これは後で来るでしょう)
私は始めました:
ファイルからの読み取り文字をアルファベット順に並べ替えるにはどうすればよいですか。
???どうもありがとう
しかし、コンパイラは私に「エラー」を返しますここにコードを入力してください
周波数で終わるのではなく、forループでこのアルファベット順が必要です...
java - Java: int[] メソッドのヘルプ...ハフマン木と関係があります
ハフマン ツリーのコードワードを作成する方法を作成しています。コードワードを取得するノードのシンボルがメソッドに渡されます。int[] を返さなければならないので、どうすればよいのか、私ははっきりとは確信が持てません。うまくいくと思われるものをコーディングしました。00101 などの出力を作成できるように int[] を適切に使用するにはどうすればよいですか? ありがとう
わかりましたので、サイズの初期化については理解していますが、この方法を使用して 01011 の行に沿って何かを印刷したり、int[] 配列で正しい位置のインクリメントを行う方法などの他の組み合わせを使用したりできるかどうか疑問に思っています. それは私が探しているものを印刷しますか?
c++ - C++ STL : priority_queue でマップを使用する
文字とそれに対応する値をマップに保存し、そのマップを優先キューに挿入することで、ハフマンコーディングを実装しようとしています。キューを宣言しようとすると、パラメーター変換エラーが発生します。パラメータとして正確に何を入力する必要がありますか?ここにあるのは私の最善の推測です。
これを尋ねるのはちょっとばかげているように感じますが、徹底的にグーグルで調べても答えが得られませんでした。助けてくれてありがとう!