我是图像压缩领域的新手。在阅读各种文本时,我了解到如何使用小波变换或 DCT 将图像转换到另一个域,使其适用于有损压缩。
我一直在尝试对 MATLAB 中的示例 bmp 进行小波变换。使用 MATLAB 库函数,我使用 Daubechies 小波创建了变换系数。
现在从 bmp 读取的给定像素是uint8
格式化的,即它占用了 1 个字节的内存。这是因为在大多数图像格式中,一个像素可以取的值范围是 0 到 255。然而,在小波变换之后,变换矩阵的每个元素都会得到双精度浮点数。这通常会为每个元素消耗大约 4 个字节。
我的目标是使用量化元素的量化和熵编码来尝试一些非常基本的压缩。将变换元素的低幅度值量化为零确实提供了良好的压缩。但问题是我仍然必须使用双精度浮点。当我将所有小波系数转换为某种整数格式时,与原始图像相比,重建图像的质量变得非常差。
在标准压缩技术中,如果变换后的系数不是整数格式,它们是如何处理的?由于其双精度特性,每个转换后的系数都比原始系数占用更多的字节。您能否指出已解释此问题的资源?