吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

算法科普:有趣的霍夫曼編碼

算法與數(shù)據(jù)結(jié)構(gòu) ? 來源:楊湘祁 ? 作者:電子發(fā)燒友 ? 2019-03-14 19:24 ? 次閱讀

霍夫曼編碼 ( Huffman coding ) 是一種可變長的前綴碼。霍夫曼編碼使用的算法是 David A. Huffman 還是在MIT 的學(xué)生時提出的,并且在 1952 年發(fā)表了名為《 A Method for the Construction of Minimum-Redundancy Codes 》的文章。

編碼這種編碼的過程叫做霍夫曼編碼,它是一種普遍的熵編碼技術(shù),包括用于無損數(shù)據(jù)壓縮領(lǐng)域。

霍夫曼編碼過程

霍夫曼編碼使用一種特別的方法為信號源中的每個符號設(shè)定二進制碼。出現(xiàn)頻率更大的符號將獲得更短的比特,出現(xiàn)頻率更小的符號將被分配更長的比特,以此來提高數(shù)據(jù)壓縮率,提高傳輸效率。

以字符串 ” ABAABACD “ 為例進行說明。

接下來,按照字符出現(xiàn)的比例從高往低對字符進行排序。

圖 1

然后,按出現(xiàn)比例低的順序查找兩個字母。在這種情況下,它是 “ C ” 12.5% 和 “ D ” 12.5% 。

通過一條線連接兩個字母拼構(gòu)成一個樹狀結(jié)果。將兩個字母合并為 “ C 或 D”,并將出現(xiàn)比率相加起來。

動畫 2

按照同樣的操作,將合并后的 “ C 或 D ” 視為一個字符,重復(fù)相同的操作。

在 “ A " "B" " C 或 D " 三個中,按照出現(xiàn)比例低的順序查找兩個字母。

圖 3

圖 4

這樣,所有的字母都變成了 " A 或 B 或 C 或 D" ,出現(xiàn)的比率為 100% 。

圖 4 就是霍夫曼編碼的樹結(jié)構(gòu)。

接下來再次顯示各個字母出現(xiàn)的比率,同時使用 0 和 1 進行編碼,代碼 0 和 1 分別分配給上下延伸的分支。

圖 5

分配完畢后,從樹的根部遍歷每個字符并確定相應(yīng)的代碼。

在 " A " 的情況下,被分配的代碼為" 0 "

在 " B " 的情況下,被分配的代碼為 " 10 "

在 " C " 的情況下,被分配的代碼為 " 110 "

在 " D " 的情況下,被分配的代碼為 " 111 "

動畫 6

就這樣,通過這樣的編碼規(guī)則, " ABAABACD " 的二進制編碼就變成了 " 01000100110111 ",只需要 14 個比特就能表示,比單純的使用 2 比特表示一個字符縮短了很多。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4630

    瀏覽量

    93356
  • 編碼
    +關(guān)注

    關(guān)注

    6

    文章

    957

    瀏覽量

    54951

原文標(biāo)題:算法科普:有趣的霍夫曼編碼

文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    第二屆電力電子科普作品創(chuàng)作大賽斬獲殊榮——榮獲2024年全國科普日優(yōu)秀活動表彰

    2024年12月27日,中國科協(xié)辦公廳正式發(fā)布了《關(guān)于表彰2024年全國科普日優(yōu)秀組織單位與活動的通知》,由中國電源學(xué)會科普工作委員會攜手英飛凌科技(中國)有限公司精心策劃的第二屆電力電子科普作品
    的頭像 發(fā)表于 01-11 09:05 ?128次閱讀
    第二屆電力電子<b class='flag-5'>科普</b>作品創(chuàng)作大賽斬獲殊榮——榮獲2024年全國<b class='flag-5'>科普</b>日優(yōu)秀活動表彰

    編碼器種類大觀:探索技術(shù)前沿與應(yīng)用創(chuàng)新

    器,再到集成了智能算法的智能編碼器,每一種編碼器都在其特定領(lǐng)域內(nèi)發(fā)揮著不可替代的作用。本文將帶您深入探索編碼器的多樣世界,揭示其技術(shù)奧秘與應(yīng)用創(chuàng)新。 旋轉(zhuǎn)
    的頭像 發(fā)表于 11-21 08:49 ?724次閱讀

    技術(shù)科普 | 芯片設(shè)計中的LEF文件淺析

    技術(shù)科普 | 芯片設(shè)計中的LEF文件淺析
    的頭像 發(fā)表于 11-13 01:03 ?358次閱讀
    技術(shù)<b class='flag-5'>科普</b> | 芯片設(shè)計中的LEF文件淺析

    如何優(yōu)化base64編碼的性能

    產(chǎn)生影響,特別是在處理大量數(shù)據(jù)時。以下是一些優(yōu)化Base64編碼性能的方法: 1. 選擇合適的庫和算法 使用高效的庫 :不同的編程語言和庫在Base64編碼和解碼方面有不同的性能表現(xiàn)。選擇一個經(jīng)過優(yōu)化的庫可以顯著提高性能。
    的頭像 發(fā)表于 11-10 14:17 ?1082次閱讀

    Huffman壓縮算法概述和詳細流程

    Huffman壓縮算法是一種基于字符出現(xiàn)頻率的編碼算法,通過構(gòu)建Huffman樹,將出現(xiàn)頻率高的字符用短編碼表示,出現(xiàn)頻率低的字符用長編碼
    的頭像 發(fā)表于 10-21 13:48 ?330次閱讀

    科普時報》:探索量子奧秘,跟著院士去“追光”

    科普時報》:探索量子奧秘,跟著院士去“追光”
    的頭像 發(fā)表于 10-12 08:06 ?272次閱讀
    《<b class='flag-5'>科普</b>時報》:探索量子奧秘,跟著院士去“追光”

    科技少年夢 科普粵海行|芯海科技科普基地啟迪智慧未來

    9月28日,由深圳市南山區(qū)粵海街道辦事處主辦,深圳市高科技協(xié)同創(chuàng)新促進會、深愛人才館策劃執(zhí)行的“科技少年夢科普粵海行”系列活動之“芯片探秘鏈啟未來”芯海科技產(chǎn)品體驗日成功舉行,吸引了眾多青少年及家長
    的頭像 發(fā)表于 10-01 08:07 ?325次閱讀
    科技少年夢 <b class='flag-5'>科普</b>粵海行|芯海科技<b class='flag-5'>科普</b>基地啟迪智慧未來

    短文6:關(guān)于功率因素的有趣問答

    2個關(guān)于功率因素的有趣問答。
    的頭像 發(fā)表于 09-23 12:22 ?235次閱讀

    科普 EVASH Ultra EEPROM 晶圓生產(chǎn)過程

    科普 EVASH Ultra EEPROM 晶圓生產(chǎn)過程
    的頭像 發(fā)表于 06-26 10:16 ?531次閱讀

    科普EEPROM 科普 EVASH Ultra EEPROM?科普存儲芯片

    科普EEPROM 科普 EVASH Ultra EEPROM?科普存儲芯片
    的頭像 發(fā)表于 06-25 17:14 ?647次閱讀

    全網(wǎng)最有趣的光模塊科普,請告訴我牛不牛!

    相信很多通信人,都聽說過光模塊的大名。但對于各種光模塊的種類、性能指標(biāo)、命名方式卻總是記不住,到處搜索,難以找全~所以今天文檔君就為大家全方位“盤一盤”光模塊,搞了超多有趣的例子,讓你一次性記住
    的頭像 發(fā)表于 06-24 08:04 ?164次閱讀
    全網(wǎng)最<b class='flag-5'>有趣</b>的光模塊<b class='flag-5'>科普</b>,請告訴我牛不牛!

    電感科普篇:電感的特性有哪些?

    電感科普篇:電感的特性有哪些?
    的頭像 發(fā)表于 06-16 10:31 ?1365次閱讀

    【RTC程序設(shè)計:實時音視頻權(quán)威指南】音視頻的編解碼壓縮技術(shù)

    音視頻所載有的信息在通過傳輸?shù)臅r候就需要壓縮編碼。 其中,文本壓縮是指通過使用各種算法和技術(shù),將文本數(shù)據(jù)表示為更緊湊的形式,以減少存儲空間。 霍夫曼編碼是一種無損壓縮
    發(fā)表于 04-28 21:04

    FPGA壓縮算法有哪些

    在圖像壓縮算法中可以采用哈夫曼編碼的方式對編碼冗余的信息進行壓縮,可以采用預(yù)測的方式來減少像素間冗余,可以采用量化的方式完成心理視覺冗余信息的去除
    的頭像 發(fā)表于 04-15 11:48 ?716次閱讀
    FPGA壓縮<b class='flag-5'>算法</b>有哪些

    開關(guān)電源短路的測試方法科普

    開關(guān)電源是否短路可以用電流表、萬用表和示波器進行檢測。如果發(fā)現(xiàn)開關(guān)電源短路,要及時排查造成短路的因素,并及時修復(fù)或更換,解決短路問題。
    的頭像 發(fā)表于 03-07 16:14 ?2293次閱讀
    大发888注册送| 澳门百家乐国际娱乐城| 八大胜备用网址| 澳门百家乐技巧经| 百家乐官网玩法教学视频| YY百家乐的玩法技巧和规则| 百家乐官网那里玩| 百家乐存1000送| 使用的百家乐官网软件| 大发888网站打不开| 好运来百家乐现金网| 宝格丽百家乐官网娱乐城| 麻将二八杠游戏| 百家乐官网| 闻喜县| 威尼斯人娱乐城真人百家乐| 百家乐官网正负计算| 吴桥县| 钱大发888扑克| 百家乐等投注网改单| 百家乐官网精神| 新葡京娱乐城网站| 金城百家乐买卖路| 新澳门百家乐官网的玩法技巧和规则 | 百家乐官网网上娱乐城| 百樂坊百家乐的玩法技巧和规则| 百家乐官网剁手| 尊龙备用网站| 太阳百家乐网址| 百家乐怎么玩了| 百家乐官网群121398015| 英皇国际娱乐城| 黄金城百家乐苹果版| 百家乐发牌的介绍| 金博士百家乐官网娱乐城| 世界杯赌球| 威尼斯人娱乐城提款| 宝龙百家乐娱乐城| 至尊百家乐官网20130201| 邢台县| 娱乐城开户免存送现金|