学习资料:(10 封私信 / 80 条消息) 图像压缩中,为什么要将图像从空间域转换到频率域?【Reducible】 - 知乎 (zhihu.com)
JPEG有损压缩
利用色度子采样
取图片某一行,然后每个像素点的值的范围都是0-255,然后把他画成表格
基于两个事实理论:
- 真实世界的图片往往有更多低频的部分
- 人们的视觉对低频信息更敏感
所以压缩的思路就是:去除图片中的高频信息。
那怎么才能从图片中提取频率分量呢
DCT
X0~X7是权重系数
使用了哪些余弦波?
波如何跟图里的像素建立联系?
先从最简单的cos(x)
来看,取八个样本点
这里采样的方式是,0~ π \pi π平均分成8份,每份取中间点。
然后通过DCT变换,只有 X 1 X_1 X1的系数不为0
跟踪实验:
-
假设我把左边函数的振幅增加,那对应 X 1 X_1 X1的系数也会相应增加
-
假设我把左边函数乘以系数-1翻转,那对应的 X 1 X_1 X1的系数也会变成负数
-
假设我把左边函数进行上下平移,那对应的 X 0 X_0 X0的系数会发生相应的变化,如下图所示
-
假设我们改变左边函数的频率
发现当左边函数变为 c o s ( 2 x ) cos(2x) cos(2x)时,右边的只有 X 2 X_2 X2不为0
即 c o s ( k x ) → X k cos(kx)\rightarrow X_k cos(kx)→Xk
假设频率为0,即对应的就是常值信号。
JPEG如何使用DCT
JPEG把一张图片分割成多个8*8的矩阵,然后把各个元素减去128,使得值域中心为零。
然后对每一行每一列做DCT变换
左上角的系数是最大的,这个性质叫做能量集中
然后量化,编码