huffman-code

    0熱度

    2回答

    我正在尋找編碼user_ids在長長的通話記錄列表。佔用最多空間的這些記錄的部分是呼叫者和接收者的符號。我將創建一個映射,將最活躍的調用者分配更短的符號---這將有助於保持文件的整體大小(並因此減少I/O時間)。 我事先知道多少次的每個符號將被用於---換句話說,我所知道的相對概率分佈。此外,生成的代碼是「前綴無關」的,例如霍夫曼代碼並不重要。那麼什麼是最好的編碼方案,即能夠提供最大壓縮率和快速實

    2熱度

    1回答

    我一直在試圖實現一個huffman解碼器,並且my initial attempt由於解碼算法的次優選擇而遭受低性能。 我想我嘗試使用表查找來實現huffman解碼。但是,我在生成子表時遇到了一些困難,並希望有人能指出我正確的方向。 struct node { node* children; // 0 right, 1 left uint8_t value;

    0熱度

    1回答

    我正在做一些霍夫曼編碼的作業。我已經完成了霍夫曼算法,但需要稍微修改它以使用二進制文件。我花了一些時間閱讀相關的問題,也許是由於我對數據類型和二進制文件的理解不夠,我仍然掙扎了一下,所以希望我不會重複之前的問題(我不會發布代碼相關的問題到程序的哈夫曼部分)。 下面是關鍵短語:「您可以假設每個符號都映射到一個代碼字,是一個4字節的二進制字符串。」,我想我知道的是Char代表一個字節並且無符號int表

    3熱度

    1回答

    我已經嘗試過使用結構模塊的方法,如我的代碼中註釋掉的行所示,但它沒有解決。基本上我有兩種選擇:我可以通過代碼寫入二進制數據代碼(我的代碼是長度從3到13比特的比特序列),或者轉換整個字符串(本例中n = 25000 +),到二進制數據。但我不知道如何實現這兩種方法。代碼: import heapq import binascii import struct def createFreque

    2熱度

    1回答

    我想讀取JT文件。 JT文件可能具有使用霍夫曼算法進行壓縮的信息。 我在構建霍夫曼樹時遇到了問題。 當兩個符號具有相同的頻率時,實現中存在一個模糊性,這取決於我們在節點之間使用的比較,順序可能不同並導致樹的某些分支反轉。 所以我無法建立合適的霍夫曼樹。 有沒有人提前面對過這個問題? 有沒有解決方法?

    2熱度

    4回答

    我現在已經忍受了這個問題幾天了。你怎麼能建立一個樹的數據訪問以下網站作爲指定: http://www.impulseadventure.com/photo/jpeg-huffman-coding.html,該主題下: 在JPEG文件中的實際DHT 稍後我會在這裏重釋它的話, 您有: ,長度(bytesvector)的表 表與數據(bytesvector以及) 現在我想用這兩個參數構建一個二叉樹。每

    0熱度

    2回答

    我的問題是,我有超過10萬個不同的元素,據我瞭解,霍夫曼通過分配最常見的元素0代碼,接下來的10,下一個110,1110,11110等工作。我的問題是,如果第n個元素的代碼長度爲n位,那麼當我通過第32個元素時,如果發送32位數據類型(例如int),它的空間效率會更高。我錯過了方法論中的一些東西嗎? 非常感謝您提供的任何幫助。我目前的實施工作做 code = (code << 1) + 2;

    1熱度

    2回答

    下面的解釋來自Wikipedia關於使用包合併的長度有限的霍夫曼碼。我不明白,我對此有一些疑問。 我們如何打包? 我們如何合併? 我們如何識別符號位串的長度? 讓大號是最大長度的任何代碼字被允許有。讓p ,...,pÑ是字母表中的符號的頻率進行編碼。首先,我們的符號進行排序,以便p我≤p我 +1。對於每個符號創建大號硬幣,面額2 -1的,...,2 - 大號,每個錢幣值的p我。使用包合併算法來選擇

    1熱度

    5回答

    我想編碼每個文件的霍夫曼代碼。 我已經找到了每個符號的比特長度(它的霍夫曼碼)。 是否有可能在Java中將字符編碼到文件中:是否有任何現有的類可以一點一點讀寫文件,而不是最小維數的char?

    -1熱度

    1回答

    while(count != 25) { tail = head; new_node = (binary_node*)malloc(sizeof(binary_node)); while(tail->next != NULL) tail = tail->next; tail->next = new_node; new_node->ele