当前位置:  开发笔记 > 编程语言 > 正文

傅里叶变换和图像压缩

如何解决《傅里叶变换和图像压缩》经验,为你挑选了1个好方法。

我得到了所有像素的RGB值

R=[], G=[], B=[]

图片中的数组.它们是包含数组的8位[0-255]值.我需要使用傅里叶变换以有损方法压缩图像.

大段引用 傅里叶变换

N将是像素数.n是我的数组.什么是k和想象j?

我可以将这个等式实现为编程语言并获取压缩的图像文件吗?

或者我需要将转换方程用于不同的值而不是RGB?



1> Mark Adler..:

首先,是的,您应该从RGB转换为亮度空间,例如YCbCr.人眼的亮度(Y)分辨率高于颜色通道的分辨率,因此您可以比相同损耗水平的亮度抽取更多的颜色.通常首先在两个方向上将Cb和Cr通道的分辨率降低两倍,将颜色通道的尺寸减小四倍.(查找色度子采样.)

其次,你应该使用离散余弦变换(DCT),它实际上是移过半步的样本的离散傅立叶变换的真实部分.JPEG中的做法是将图像分解为每个通道的8x8块,并在每个块的每个列和行上执行DCT.然后DC组件位于左上角,当您向下和向左时,AC组件的频率会增加.您可以使用您喜欢的任何块大小,但DCT的总体计算时间将随着大小而增加,并且有损步骤中的工件将具有更广泛的范围.

现在,您可以通过量化结果系数来使其有损,在更高的频率中更是如此.结果通常会有很多小系数和零系数,然后通过游程长度和霍夫曼编码可以高度压缩.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有