五千年(敝帚自珍)

主题:【提问】从音色想到图象压缩 -- 东方射日

共:💬5 🌺2
全看树展主题 · 分页首页 上页
/ 1
下页 末页
家园 【提问】从音色想到图象压缩

月色溶溶MM讲到了音色【sos】关于音色

引出来一个曾经GG的精华帖[原创]也来谈谈音色

在该贴中提到了傅里叶变换。不由就想起了图象压缩。

现在最主流的图象压缩算法应该是JPEG了吧,JPEG和MPEG,MJPEG的算法都是离散余弦变换(DCT: Discrete Cosine Transform)。其实就是离散傅里叶变换(DFT:傅里叶变换仅取离散值)只取其中余弦分量的一种变换。

详细的变换过程我实在不敢写下来冒充原创,大家稍稍搜搜就有大把的文章。[URL=]http://blog.sina.com.cn/u/3f2c8a2201000639 [/URL]这篇是被转载拉无数次的介绍文章,图文并茂,很容易理解。

问题是为什么图象压缩只采用其中的余弦分量呢?我找到的答案是因为如果采用DFT,在两端有比较大的失真。

为什么采用DFT,在两端有比较大的失真呢?我找到的答案是因为余弦分量是偶函数,而正弦分量是奇函数。

为什么奇函数经过变换和逆变换在两端会产生比较大的失真呢?

---懒人有懒办法,贴出来等大牛回答---

家园 初级高等数学~~~

是这么着的,一个函数f(x)用Fourier级数近似时,在连续点x处(啥叫“连续”,啥叫“连续点”?初级高等数学里的东西~~~),Fourier级数收敛到f(x);在不连续点x处,Fourier级数收敛到[f(x+)+f(x-)]/2,f(x)的左极限与右极限的平均值。

实际图象压缩时,如果不做处理,就相当于将有限的函数定义做周期扩展,这样边界上的值不连续,Fourier级数就不会收敛到原值,就会失真。

如果将图象按轴对称的方式做周期扩展,边界上的值连续,Fourier级数收敛到原值,就不会失真。而且因为扩展后的函数是偶对称的(啥叫“偶对称”,啥叫“奇对称”?初级高等数学里的东西~~~),Fourier级数中的正弦分量都是零,只剩下余弦分量。

家园 似懂非懂中......

啥叫“偶对称”,啥叫“奇对称”?

“偶对称”是关于Y轴对称

“奇对称”是关于原点对称

有点明白乐。图象展开是按轴对称方式展开的,所以只取余弦分量。如果取正弦分量,除非在两端的值为零,否则按原点对称就生成乐不连续点(自己定义的),然后

在不连续点x处,Fourier级数收敛到[f(x+)+f(x-)]/2,f(x)的左极限与右极限的平均值。

就产生乐失真!(大的偏小,小的偏大)

是这样吗?侯教中

家园 说“只取余弦”或者“只取正弦”是不太恰当的

傅立叶级数是用来对付(空间)周期性函数的,一幅图只在有限范围内有意义,因此如果要得到它对应的傅立叶级数就必须先把图延拓到整个空间/平面,这就给人无数种选择。假设有这样一幅2*2图,四个角上的灰度为1,2,3,4

1 2

3 4

最简单的延拓方案为左图,但是这样一来在边界上的灰度就不连续,结果就是还原出来的图四个角的灰度都是2.5,就是失真了。因此采取一个复杂一点的方案如右图,这样边界上灰度就是连续的了,还原出来的图跟原图完全相同。右图中的4*4小图是中心对称的,因此它对应的傅立叶级数就没有正弦项。上面说的延拓只是画外音,不需要真的作图,实际只需对原来的2*2图作计算,结果“只取余弦”就是在这个意义上说的。

1 2 1 2 1 2 2 1 1 2

3 4 3 4 3 4 4 3 3 4

1 2 1 2 3 4 4 3 3 4

3 4 3 4 1 2 2 1 1 2

1 2 2 1 1 2

3 4 4 3 3 4

傅立叶级数在原函数的连续点也不一定收敛,不过人们已经发明了各种求和法,可以从发散级数求得合理的有限和,这个问题也不再是问题。

家园 [送鲜花]
全看树展主题 · 分页首页 上页
/ 1
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河