DCT变换能够体现出能量的关系,但是它是怎么体现点与点的关系的? :DCT变换,实际上就是一个傅里叶的变化,我们在图形处理的时候的DCT变换一般都是8*8,所以DCT变换时不针对像素的,最小的处理单元是这个8*8的矩阵。只有8*8这样的矩阵才会有能量关系。一个值是没有的。

在对已变换的数据做反变换的时候,它是怎么还原成原来的图片的?对于DTC的反变换,因为在DCT变换的时候,滤掉了高频的本分,一般图形高频部分的系数是比较小的,在量化的时候可以忽略掉,因而还原的时候就是一个反傅里叶变化,就可以得到一个图形。对于那些颜色比较绚丽的图形,在压缩的时候,高频的系数已经不能忽略了,如果量化的时候压缩比过高,就可能导致明显的失真。也是8*8的系数 到 8*8的像素数据,具体怎么还原建议看一下图形压缩的基本算法。

MPEG采用了Ahmed(一个巨牛的数学家) 等人于70年代提出的离散余弦变换(DCT-Discrete Cosine Transform)压缩算法,降低视频信号的空间冗余度。
DCT将运动补偿误差或原画面信息块转换成代表不同频率分量的系数集,这有两个优点:其一,信号常将其能量的大部分集中于频率域的1个小范围内,这样一来,描述不重要的分量只需要很少的比特数;其二,频率域分解映射了人类视觉系统的处理过程,并允许后继的 量化过程满足其灵敏度的要求。

视频信号的频谱线在0-6MHz范围内,而且1幅视频图像内包含的大多数为低频频谱线,只在占图像区域比例很低的图像边缘的视频信号中才含有高频的谱线。因此,在视频信号数字处理时,可根据频谱因素分配比特数:对包含信息量大的低频谱区域分配较多的比特数,对包含信息量低的高频 谱区域分配较少的比特数,而图像质量并没有可察觉的损伤,达到码率压缩的目的。然而,这一切要在低熵(Entropy)值的情况下,才能达到有效的编码。能否对一串数据进行有效的编码,取决于每个数据出现的概率。每个数据出现的概率差别大,就表明熵值低, 可以对该串数据进行高效编码。反之,出现的概率差别小,熵值高,则不能进行高效编码。视频信号的数字化是在规定的取样频率下由A/D转换器对视频电平转换而来的,每个像素的视频信号幅度随着每层的时间而周期性地变化。每个像素的平均信息量的总和为总平均信息量,即熵值。由于每个视频电平发生几乎具有相等的概率,所以视频信号的熵值很高。 熵值是一个定义码率压缩率的参数,视频图像的压缩率依赖于视频信号的熵值,在多数情况下视频信号为高熵值,要进行高效编码,就要将高熵值变为低熵值。怎样变成低熵值呢?这就需要分析视频频谱的特点。大多数情况下,视频频谱的幅度随着频率的升高而降低。其中 低频频谱在几乎相等的概率下获得0到最高的电平。与此相对照,高频频谱通常得到的是低电平及稀少的高电平。显然,低频频谱具有较高的熵值,高频频谱具有较低的熵值。据此,可对视频的低频分量和高频分量分别处理,获得高频的压缩值。

由上面的引用可见,码率压缩基于变换编码和熵值编码两种算法。前者用于降低熵值,后者将数据变为可降低比特数的有效编码方式。在MPEG标准中,变换编码采用的是DCT,变换过程本身虽然并不产生码率压缩作用,但是变换后的频率系数却非常有利于码率压缩。实际上压缩数字视频信号的整个过程分为块取样、DCT、量化、编码4个主要过程进行-----首先在时间域将原始图像分成N(水平)×N(垂直)取样块,根据需要可选择4×4、4×8、8×8、8×16、16×16等块,这些取样的像素块代表了原图像帧各像素的灰度值,其范围在139-163之间,并依序送入DCT编码器,以便将取样块由时间域转换为频率域的DCT系数块。DCT系统的转换分别在每个取样块中进行,这些块中每个取样是数字化后的值,表示一场中对应像素的视频信号幅度值。
DCT和它解压时的反运算的具体算法如下。

当u,v = 0 时,离散余弦正变换(DCT)后的系数若为F(0,0)=1,则离散余弦反变换(IDCT)后的重现函数f(x,y)=1/8,是个常数值,所以将F(0,0)称为直流(DC)系数;当 u,v≠0时,正变换后的系数为F(u,v)=0,则反变换后的重现函数f(x,y)不是常数,此时正变换后的系数F(u,v)为交流(AC)系数。

DCT转换的一个具体应用见下面这个图: (偶们作员工培训的一张幻灯片,刚好合适 )
http://pic.zingking.com/rzhy/kean/DCTpro.jpg

看上图变换原理可察觉两点:其一,DCT后的64个DCT频率系数与DCT前的64个像素块相对应,DCT前后都是64个点,它只是1个本身没有压缩作用的无损变换过程。其二,单独1场图像的全部DCT系数块的频谱几乎都集中在最左上角的系数块中,仅从该 块的频谱中就可以形成1幅压缩图像;DCT输出的频率系数矩阵最左上角的直流(DC)系数幅度最大,图中为315,由于代表了x轴和y轴上的DC分量,所以它表示了输入矩阵全部幅度的平均值;以DC系数为出发点向下、向右的其它DCT系数,离DC分量越远 ,频率越高,幅度值越小,图中最右下角为-0.11,即图像信息的大部分集中于直流系数及其附近的低频频谱上,离DC系数越来越远的高频频谱几乎不含图像信息,甚至于只含杂波。显然,DCT本身虽然没有压缩作用,却为以后压缩时的"取"、"舍" 奠定了必不可少的基础。

关于离散余弦变换(DCT)
离散余弦变换DCT(Discrete Cosine Transform)是数码率压缩需要常用的一个变换编码方法。任何连续的实对称函数的付立叶变换中只含余弦项,因此余弦变换与付立叶变换一样有明确的物理意义。DCT是先将整体图像分成N*N像素块,然后对N*N像素块逐一进行DCT变换。由于大多数图像的高频分量较小,相应于图像高频分量的系数经常为零,加上人眼对高频成分的失真不太敏感,所以可用更粗的量化。因此,传送变换系数的数码率要大大小于传送图像像素所用的数码率。到达接收端后通过反离散余弦变换回到样值,虽然会有一定的失真,但人眼是可以接受的。二维正反离散余弦变换的算式:

DCT 变换的一些思考相关推荐

  1. 图片相似度计算:深入理解DCT变换以及感知哈希

    缘起 Android上硬件编解码一直是个老大难问题,就解码来说,硬解码本身并不困难,只要按照MediaCodec的流程开发即可.但由于系统碎片化,硬件规格不一致,硬件解码会到黑屏,花屏,绿屏之类的显示 ...

  2. 数字图像处理报告:实验3 同态滤波、频域滤波、傅里叶变换性质、DCT变换性质

    实验3 同态滤波.频域滤波.傅里叶变换性质.DCT变换性质 一.实验主题: 学习同态滤波.频域滤波.傅里叶变换性质.DCT变换性质,掌握其原理,并学会编程,实现这些方法与性质. 二.实验目的: 1.掌 ...

  3. 基于MATLAB的数字图像K-L变换,基于DCT变换的图像编码方法研究

    分类号 密级 UDC注l 学 位 论 文 基于DCT变换的图像编码方法研究 (题名和副题名) 朱剑英 (作者姓名 指导教师姓名 副教授 中诱学位级别硕士 沦_义提交日期2004.1 专.业名称 通信与 ...

  4. 图像去噪 使用dct变换进行去噪

    因为噪声往往是高频部分,可以将图像转换到频域,进行高频处理: 把高频部分虑掉. <span style="font-size:18px;"><strong> ...

  5. 【转】DCT变换的透彻解析

    3.离散余弦变换 DCT 将图像从色彩域转换到频率域,常用的变换方法有: DCT变换的公式为: f(i,j) 经 DCT 变换之后,F(0,0) 是直流系数,其他为交流系数. 还是举例来说明一下. 8 ...

  6. H264中DCT变换,量化,反量化,反DCT变换

    H.264中采用的是整数DCT变换,在实现的时候,该变换和量化又杂糅在一起,那么这些错综复杂的关系究竟是怎样纠缠的呢?在参考H.264乐园论坛会员cs1860wd的帖子和H.264 and MPEG- ...

  7. SSE图像算法优化系列二十一:基于DCT变换图像去噪算法的进一步优化(100W像素30ms)。...

    在优化IPOL网站中基于DCT(离散余弦变换)的图像去噪算法(附源代码) 一文中,我们曾经优化过基于DCT变换的图像去噪算法,在那文所提供的Demo中,处理一副1000*1000左右的灰度噪音图像耗时 ...

  8. 图像处理——DCT变换的学习笔记

    1 DCT变换的学习笔记 DCT变换是一种可逆的变化,也就是说:DCT变换是一种一一映射:

  9. 理解JPEG图像压缩算法,DCT变换

    理解JEPG原理 JEPG不是一种文件格式,而是一类图像压缩算法. 1.彩色图像 灰度图像 灰度,一个pixel取值0-255. 彩色图像 需要比灰度图像更多的存储空间, 事实上, 所有颜色都可以用红 ...

最新文章

  1. iOS 系统分析(一) 阅读内核准备知识
  2. 项目中常用的sql整理和详细01
  3. 北京内推 | 阿里云视频处理算法团队招聘视频处理算法实习生
  4. HDU1250 Hat's Fibonacci 大数斐波那契数列
  5. B2C电子商务系统研发——商品SKU分析和设计(一)
  6. 前端学习(573):margin无效情形table无效
  7. MongoDB 学习-Windows环境搭建(一)
  8. 集成学习—Adaboost加性模型(论文研读)
  9. 最通俗易懂的JavaScript入门教程
  10. python 水晶报表_水晶报表连接Oracle做数据报表笔记
  11. 谷歌负载均衡Maglev实现简析
  12. 【STM32】实战2—用STM32产生PWM信号驱动舵机MG996R(一)
  13. 基于51单片机无线门铃控制系统设计(毕设课设)
  14. anacnda 子环境管理
  15. wps怎么把ppt里的字体一起保存_干货 | 如何快速导出PPT中的文字内容?
  16. @Deprecated(注解)
  17. group by 分页 mysql_Mysql 单表查询-排序-分页-group by初识
  18. Ubuntu 安装截图软件
  19. 华为HCIE专家认证相关简介
  20. macos使用ffpmeg批量mp4转mp3

热门文章

  1. 每日一题(2022-05-04)——找出游戏的获胜者
  2. 推荐 | 掌握这12条经验,对理解机器学习至关重要!(可下载PDF)
  3. 新秀学习51供应链管理的----模拟笔记本PC和51串行通讯1
  4. Ae动态模糊插件ReelSmart Motion Blur
  5. gcore调试一个并发问题
  6. 数据库SQLServer的视图
  7. CentOS下mysql 8.0.16 安装完整版教程
  8. 2018年最流行的十大编程语言,有你用的吗?
  9. git 切换分支提示当前有未提交?
  10. python黑客库长安十二时辰 更新_爬取3万+评论,告诉你究竟是哪些人不喜欢《长安十二时辰》?...