- 博客(5)
- 收藏
- 关注
原创 数据压缩原理与应用 | 实验五 | 基于DCT量化的音频编解码
其实这次实验本来是让实现一个多相滤波的编解码器,但是我找不到具体的公式讲解,实现不了子带合成,老师给的参考项目又都是用CPP写的成熟项目,还是两个不同的项目,编解码器不兼容,里面的512点滤波器数值还对不上,实在是看不懂。AI只能给出用DCT编解码的可用代码,在跟AI缠斗十几个小时后我放弃了挣扎。
2026-06-11 16:52:50
260
原创 数据压缩原理与应用 | 实验四 | DPCM压缩系统的实现和分析
实验要求写一个自适应量化器,其实有很多种量化器可以实现,只不过非线性量化实现起来最简单,只需要把线性函数变成非线性函数就好了,而且效果也不错,只不过“自适应”得很固定。这次实验的代码还是挺简单的,但是在DPCM编码部分的代码容易搞混预测和量化两个部分的几个变量,照着DPCM编码的图来想会好很多。其实正确的量化器设置应该是按bit数设置的,巧合+方便,我就直接按位数设置了。
2026-05-02 15:40:16
367
原创 数据压缩原理与应用 | 实验三 | 基于SSIM迭代的JPEG编解码
本次实验没有用huffman编码,所以JPEG的基础算法并不难,利用AI很快就能搞定。感知优化部分采用了基于SSIM迭代恢复DCT系数的方式,没有采用Guetzli中的Butteraugli评价标准,因为Butteraugli是2017年提出的,只支持C++不支持Python直接调用。加入这部分后,代码变得十分繁杂,嵌套反复,即便看懂了AI提供的代码再做修改,仍然是越来越难看懂。
2026-04-18 22:18:49
338
原创 数据压缩原理与应用 | 实验二 | LZW编解码
编码:先构造一个包含所有ASCLL码的“字节:编号”字典,然后从输入数据中逐个取字符,再和缓存字符串拼接,如果新的字符串在字典中有编号,则继续读取,否则将旧的缓存字符串的编号输出,并把新的字符串存入字典,然后将此轮读取的字符作为缓存字符串。若字典长度大于X,则不再将未保存的字符串组合存入字典。解码:先构造一个包含所有ASCLL码的“编号:字节”字典,然后先读取一个字符作为缓存字符串,接下来再逐个读取并对称解码,如果遇到未保存的编号则取缓存字符串的首位与其自身拼接。
2026-03-31 21:25:51
400
原创 数据压缩原理与应用 | 实验一 | RLE压缩bmp文件
实验中使用的bmp文件均为常见的8bit或24bit格式,由于8bit是灰度图像,24bit是彩色图像,文件信息头和文件数据格式都不一样,在读取文件时需要注意,而且最好是直接把信息头中不会改变的部分保存下来存到.rle文件中,以避免解压后读取失败。bmp文件采用低位高序的存储方式,即低位在前、高位在后,以逻辑信息方式读取时需要倒着读。一开始我随便找了个转网站把jpg转成bmp,后来发现解压缩之后打不开,用二进制格式打开时发现这个bmp文件既不是8bit也不是24bit,而是一种更先进的bmp格式,遂弃用。
2026-03-29 19:29:25
490
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅