上传者: 38684509
|
上传时间: 2021-11-18 17:17:01
|
文件大小: 1.34MB
|
文件类型: -
割点
matlab代码
HuffmanImageCompression
项目说明
项目github
项目语言
C++(std=C++11)
编写与测试操作系统平台
ubuntu
16.04
文件要求
目前项目仅可以对BMP图像文件进行压缩。
压缩后的文件的扩展名为.hfmc
,压缩后文件结构为:
原图像文件头(54字节)
编码后图像数据总位数dataBitCount(4字节,即一个32为无符号整数)
原图像文件中不同的数据单元的数目weightMapValCount(4字节,即一个32为无符号整数)
权重映射表(表中每一项包含1个字节的原数据和4个字节即32位无符号整数表示的权重值,一共5个字节,表的总大小为weightMapValCount
*
5)
编码数据,实际的编码数据位数为dataBitCount,最后一个字节的数据如果是不满8位,余下的位用0作为padding
算法流程
压缩
读取图像文件,每个像素包含RGB三个色彩通道,每个通道占1个字节,这是编码的单元。
对读取到的每个像素的色彩通道数据进行权重统计。
根据权重统计构建Huffman编码树。
从Huffman编码树的根节