离散余弦变换DCT

傅里叶变换的参数是复数,在数据的描述上相当于实数的两倍,若仅用实函数对称延拓成一个实偶函数,则其傅里叶变换也为实偶函数且仅包含余弦项,连续函数和离散函数的余弦变换都是基于这个原理。离散余弦变换是傅里叶变换的一个简化,本质上仍然是傅里叶变换,常常用在数据压缩中。

一维离散余弦变换

给定实信号序列{f(x)∣x=0,1,...,N−1}\{f(x) | x=0,1,...,N-1\}{f(x)∣x=0,1,...,N−1},可以按下列式将其延拓为偶对称序列g(x)={f(x−12),x=12,(12+1),...,(12+N−1)f(−x+12),x=−12,(−12−1),...,(−12−N+1)g(x) = \begin{cases} f(x-\frac{1}{2}), & x=\frac{1}{2},(\frac{1}{2}+1),...,(\frac{1}{2}+N-1) \\ f(-x+\frac{1}{2}), & x=-\frac{1}{2},(-\frac{1}{2}-1),...,(-\frac{1}{2}-N+1) \end{cases}g(x)={f(x−21​),f(−x+21​),​x=21​,(21​+1),...,(21​+N−1)x=−21​,(−21​−1),...,(−21​−N+1)​实函数延拓举例:
一维离散余弦变换定义为:FC(μ)∑x=0N−1f(x)C(x,μ)F_C(\mu)\sum_{x=0}^{N-1}f(x)C(x,\mu)FC​(μ)x=0∑N−1​f(x)C(x,μ)f(x)=∑μ=0N−1FC(μ)C(x,μ)f(x)=\sum_{\mu=0}^{N-1}F_C(\mu)C(x,\mu)f(x)=μ=0∑N−1​FC​(μ)C(x,μ)其中,x=0,1,...,N−1x=0,1,...,N-1x=0,1,...,N−1;变换核C(x,μ)=α(μ)cos⁡[(2x+1μπ)2N]C(x,\mu)=\alpha(\mu)\cos[\frac{(2x+1\mu\pi)}{2N}]C(x,μ)=α(μ)cos[2N(2x+1μπ)​];
归一化参数α(μ)={1/N,μ=02/N,μ≠0\alpha(\mu)=\begin{cases} \sqrt{1/N}, & \mu=0 \\ \sqrt{2/N}, & \mu\neq 0 \end{cases}α(μ)={1/N​,2/N​,​μ=0μ̸​=0​
表达为矩阵形式:FC=CfF_C=CfFC​=Cff=CTFCf=C^TF_Cf=CTFC​

离散余弦变换的推导
对实偶函数g(x)g(x)g(x)求2N2N2N点的一维傅里叶变换得:
G(μ)=12N∑x=−12−(N−1)12+(N−1)g(x)e−j2πμx2NG(\mu)=\frac{1}{\sqrt{2N}}\sum_{x=-\frac{1}{2}-(N-1)}^{\frac{1}{2}+(N-1)}g(x)e^{\frac{-j2\pi\mu x}{2N}}G(μ)=2N​1​x=−21​−(N−1)∑21​+(N−1)​g(x)e2N−j2πμx​=12N∑x=−12−(N−1)−12g(x)e−jπμxN+12N∑x=1212+(N−1)g(x)e−jπμxN=\frac{1}{\sqrt{2N}}\sum_{x=-\frac{1}{2}-(N-1)}^{-\frac{1}{2}}g(x)e^{\frac{-j\pi\mu x}{N}}+\frac{1}{\sqrt{2N}}\sum_{x=\frac{1}{2}}^{\frac{1}{2}+(N-1)}g(x)e^{\frac{-j\pi\mu x}{N}}=2N​1​x=−21​−(N−1)∑−21​​g(x)eN−jπμx​+2N​1​x=21​∑21​+(N−1)​g(x)eN−jπμx​=12N∑x=12+(N−1)12g(−x)ejπμxN+12N∑x=1212+(N−1)g(x)e−jπμxN=\frac{1}{\sqrt{2N}}\sum_{x=\frac{1}{2}+(N-1)}^{\frac{1}{2}}g(-x)e^{\frac{j\pi\mu x}{N}}+\frac{1}{\sqrt{2N}}\sum_{x=\frac{1}{2}}^{\frac{1}{2}+(N-1)}g(x)e^{\frac{-j\pi\mu x}{N}}=2N​1​x=21​+(N−1)∑21​​g(−x)eNjπμx​+2N​1​x=21​∑21​+(N−1)​g(x)eN−jπμx​=12N∑x=1212+(N−1)g(−x)ejπμxN+12N∑x=1212+(N−1)g(x)e−jπμxN=\frac{1}{\sqrt{2N}}\sum^{\frac{1}{2}+(N-1)}_{x=\frac{1}{2}}g(-x)e^{\frac{j\pi\mu x}{N}}+\frac{1}{\sqrt{2N}}\sum_{x=\frac{1}{2}}^{\frac{1}{2}+(N-1)}g(x)e^{\frac{-j\pi\mu x}{N}}=2N​1​x=21​∑21​+(N−1)​g(−x)eNjπμx​+2N​1​x=21​∑21​+(N−1)​g(x)eN−jπμx​=12N∑x=1212+(N−1)f(x−12)(ejπμxN+e−jπμxN)=\frac{1}{\sqrt{2N}}\sum_{x=\frac{1}{2}}^{\frac{1}{2}+(N-1)}f(x-\frac{1}{2})(e^{\frac{j\pi\mu x}{N}}+e^{\frac{-j\pi\mu x}{N}})=2N​1​x=21​∑21​+(N−1)​f(x−21​)(eNjπμx​+eN−jπμx​)=2N∑x=1212+(N−1)f(x−12)cos⁡πμxN=2N∑x′=0N−1f(x′)cos⁡πμ(x′+12)N=\sqrt{\frac{2}{N}}\sum_{x=\frac{1}{2}}^{\frac{1}{2}+(N-1)}f(x-\frac{1}{2})\cos\frac{\pi\mu x}{N}=\sqrt{\frac{2}{N}}\sum_{x'=0}^{N-1}f(x')\cos\frac{\pi\mu (x'+\frac{1}{2})}{N}=N2​​x=21​∑21​+(N−1)​f(x−21​)cosNπμx​=N2​​x′=0∑N−1​f(x′)cosNπμ(x′+21​)​=2N∑x′=0N−1f(x′)cos⁡πμ(2x′+1)2N=\sqrt{\frac{2}{N}}\sum_{x'=0}^{N-1}f(x')\cos\frac{\pi\mu (2x'+1)}{2N}=N2​​x′=0∑N−1​f(x′)cos2Nπμ(2x′+1)​

二维离散余弦变换

实函数先做水平镜像再做垂直镜像,形成二维实偶函数:f(x,y)={f(x,y),x,y⩾0f(−1−x,y),x&lt;0,y⩾0f(x,−1−y),x⩾0,y&lt;0f(−1−x,−1−y),x&lt;0,y&lt;0f(x,y)=\begin{cases} f(x,y), &amp; x,y\geqslant 0 \\ f(-1-x,y), &amp; x&lt;0,y\geqslant 0 \\ f(x,-1-y), &amp; x\geqslant 0, y&lt;0\\ f(-1-x,-1-y), &amp; x&lt;0,y&lt;0\\ \end{cases}f(x,y)=⎩⎪⎪⎪⎨⎪⎪⎪⎧​f(x,y),f(−1−x,y),f(x,−1−y),f(−1−x,−1−y),​x,y⩾0x<0,y⩾0x⩾0,y<0x<0,y<0​

二维离散余弦变换的定义:FC(μ,ν)=∑x=0N−1∑y=0M−1f(x,y)C(x,y,μ,ν)F_C(\mu,\nu)=\sum_{x=0}^{N-1}\sum_{y=0}^{M-1}f(x,y)C(x,y,\mu,\nu)FC​(μ,ν)=x=0∑N−1​y=0∑M−1​f(x,y)C(x,y,μ,ν)f(x,y)=∑μ=0N−1∑ν=0M−1FC(μ,ν)C(x,y,μ,ν)f(x,y)=\sum_{\mu=0}^{N-1}\sum_{\nu=0}^{M-1}F_C(\mu,\nu)C(x,y,\mu,\nu)f(x,y)=μ=0∑N−1​ν=0∑M−1​FC​(μ,ν)C(x,y,μ,ν)其中,C(x,y,μ,ν)=α(μ)α(ν)cos⁡[(2x+1)μπ2N]cos⁡[(2y+1)νπ2M]C(x,y,\mu,\nu)=\alpha(\mu)\alpha(\nu)\cos[\frac{(2x+1)\mu\pi}{2N}]\cos[\frac{(2y+1)\nu\pi}{2M}]C(x,y,μ,ν)=α(μ)α(ν)cos[2N(2x+1)μπ​]cos[2M(2y+1)νπ​]α(μ)=α(ν)={1/N,μ=02/N,μ≠0\alpha(\mu)=\alpha(\nu)=\begin{cases} \sqrt{1/N}, &amp; \mu=0 \\ \sqrt{2/N}, &amp; \mu\neq 0 \end{cases}α(μ)=α(ν)={1/N​,2/N​,​μ=0μ̸​=0​变换核CCC也称为离散余弦变换的基函数或者基图像,对于一幅8*8的图像,有64个基图像的线性组合表示

表达为矩阵形式为:FC=CfCTF_C=CfC^TFC​=CfCTf=CTFCCf=C^TF_CCf=CTFC​C

离散余弦变换的性质

1、可分离性
二维离散余弦变换的正反变换核是相同的,且可分离g(x,y,μ,ν)=g1(x,μ)g2(y,ν)=2Ncos⁡(2x+1)μπ2N⋅2Mcos⁡(2y+1)νπ2Mg(x,y,\mu,\nu)=g_1(x,\mu)g_2(y,\nu)=\sqrt{\frac{2}{N}}\cos\frac{(2x+1)\mu\pi}{2N}\cdot\sqrt{\frac{2}{M}}\cos\frac{(2y+1)\nu\pi}{2M}g(x,y,μ,ν)=g1​(x,μ)g2​(y,ν)=N2​​cos2N(2x+1)μπ​⋅M2​​cos2M(2y+1)νπ​

2、离散余弦变换为实正交变换
C=C∗C=C^*C=C∗C−1=CTC^{-1}=C^TC−1=CT

3、存在快速变换算法

4、能集中高度相关的数据信息

二维离散余弦变换的频谱分布特点

二维离散余弦变换相当于对带有中心偏移的偶函数进行二维傅里叶变换,因此其谱域与傅里叶变换相比差一倍

离散余弦变换的应用

离散余弦变换主要应用于图像压缩,例如国际压缩标准JPEG格式中就用到了DCT变换,于DFT变换相似,DCT变换会将高频成分压缩多一点,低频成分压缩少一点,由于高频成分反应细节,因此虽然压缩后的图像质量下降了,但是对于人眼的感觉来说区别不大,充分利用了人眼分辨的局限性。

实例:

频域滤波—离散余弦变换相关推荐

  1. python实现傅里叶变换求幅值和相位_Python 实现图像快速傅里叶变换和离散余弦变换...

    图像的正交变换在数字图像的处理与分析中起着很重要的作用,被广泛应用于图像增强.去噪.压缩编码等众多领域.本文手工实现了二维离散傅里叶变换和二维离散余弦变换算法,并在多个图像样本上进行测试,以探究二者的 ...

  2. 利用python对图像进行傅里叶变换_Python 实现图像快速傅里叶变换和离散余弦变换...

    图像的正交变换在数字图像的处理与分析中起着很重要的作用,被广泛应用于图像增强.去噪.压缩编码等众多领域.本文手工实现了 二维离散傅里叶变换 和 二维离散余弦变换 算法,并在多个图像样本上进行测试,以探 ...

  3. 图像处理 有损压缩变换-离散余弦变换

    文章目录 离散余弦变换概念 形式 应用 图像处理过程: 特征 变换步骤 离散余弦变换概念 离散余弦变换(英语:discrete cosine transform, DCT)是与傅里叶变换相关的一种变换 ...

  4. Python 实现图像快速傅里叶变换和离散余弦变换

    图像的正交变换在数字图像的处理与分析中起着很重要的作用,被广泛应用于图像增强.去噪.压缩编码等众多领域.本文手工实现了二维离散傅里叶变换和二维离散余弦变换算法,并在多个图像样本上进行测试,以探究二者的 ...

  5. 图像处理 离散余弦变换

    什么是DCT 一维DCT变换 一维DCT变换时二维DCT变换的基础,所以我们先来讨论下一维DCT变换.一维DCT变换共有8种形式,其中最常用的是第二种形式,由于其运算简单.适用范围广.我们在这里只讨论 ...

  6. 【matlab 图像处理】离散傅里叶变换离散余弦变换K-L变换小波变换

    [matlab 图像处理]离散傅里叶变换&离散余弦变换&K-L变换&小波变换 正交变换是信号处理的一种有效工具.图像信号不仅可以在空间域表示,也可以在频域表示,后者将有利于许多 ...

  7. 语音信号处理(九)——离散余弦变换

    文章目录 1.定义 2.用C语言实现离散余弦变换 1.定义 DCT(Discrete Cosine Transform)离散余弦变换,其常见用途是对音视频进行数据压缩.离散余弦变换具有信号谱分量丰富. ...

  8. 理解DCT与DST【二】:离散余弦变换

    本文主要是将先前的博客 离散傅里叶变换DFT.离散余弦变换DCT.离散正弦变换DST,原理与公式推导 从图片修改为 Markdown 脚本,方便读者浏览,同时增加了部分内容.但由于文章字符过多,无法全 ...

  9. 数字图像处理与Python实现-离散余弦变换

    离散余弦变换 离散余弦变换 1. 前言 2.数学表达 3. 代码实现 1. 前言     离散余弦变换(DCT for Discrete Cosine Transform)是与傅里叶变换相关的一种变换 ...

最新文章

  1. golang中的pprof支持
  2. 关于第三周——回顾与修正
  3. C/C++面试题—序列化二叉树
  4. 设计模式07----代理模式
  5. OSError: [Errno 22] Invalid argument: ‘
  6. Linux基础-1.Linux命令及获取帮助
  7. linux台式机双屏幕怎么连接,台式机Linux/Unix多系统安装详细教程
  8. 虚拟机ping百度失败:PING www.a.shifen.com (163.177.151.110) 56(84) bytes of data.光标就一直闪
  9. 微信小程序动态更改标题栏_微信小程序动态改变导航栏标题和背景颜色
  10. 进入故障恢复控制台从此不需要密码
  11. 试验设计方法与Design-Expert软件应用目录
  12. 声扬科技声纹识别技术,为工商银行构建多模态反欺诈能力
  13. OpenXLive支持 Windows Phone上的SNS 分享
  14. Matlab(三)——图像处理实例:去除背景,提取指纹
  15. C语言位运算 Bitwise Operator
  16. 数据库--交叉连接查询
  17. 戴森设计大奖,以可持续化设计改变世界
  18. 猜数字游戏C++代码
  19. GITLAB 下载指定 commit 的代码仓库
  20. Deform多孔材料的滚珠轴承环成形

热门文章

  1. 临江中学召开读书沙龙活动
  2. 字节跳动Android实习面试凉凉经,面试总结
  3. 江苏省C语言二级备考(5/20)
  4. 21天学通Python,从入门到上手,学习方式+学习资料+学习视频汇总,零基础转行自学必备
  5. 骨传导式蓝牙耳机、好用的骨传导蓝牙耳机推荐
  6. 渗透测试 ( 5 ) --- 扫描之王 nmap、渗透测试工具实战技巧合集
  7. C语言基础Day02数据类型及运算符
  8. 融跃CMA:乐视退市,传统财务会计向管理会计转型已成必然
  9. Unity3D之Tween Position(动画效果)实现
  10. python 怎么部署_如何把Python项目部署到服务器上