学习杜克大学图像和视频处理课程,了解到图像JEPG的图像压缩技术,这里借以week2测试练习题实现DCT
图像压缩与解压缩

块编码技术

DCT是一种块编码压缩技术。该技术把图像分割成大小相等且不重叠的小块,使用二维变换单独处理这些块。在块编码中,用一种可逆线性变换(如傅里叶变换)将每个子块或子图像映射为变换系数集合,然后对系数进行量化和编码。

一般步骤:子图像分解——变换——量化——编码

变换:使用最少数量的变换系数包含尽可能多的信息。
量化:以一种预定义的方式有选择地消除或更粗略地量化哪些携带最少信息的系数
编码:对量化后的系数进行编码

自适应编码:编码步骤根据局部图像内容进行调整
非自适应编码:对所有图像固定

其中经典的变换Walsh-Hadamard变换(WHT),简单易用

DCT

图像压缩中最常用的变换是DCT,信息携带能力比DFT和WHT强,但在信息携带方面最佳变化是KarHunen-loeve。DCT在信息携带能力和计算复杂性之间提供了较好的折中。

DCT核是

r(x,y,u,v)=s(x,y,u,v)=α(u)α(v)cos[(2x+1)uπ2n]cos[(2y+1)vπ2n]r(x,y,u,v) = s(x,y,u,v) = \alpha(u) \alpha(v) cos[{{(2x+1)u\pi}\over{2n}}] cos[{{(2y+1)v\pi}\over{2n}}]

其中

α(u)orα(v)={1/n,u=02/n,u=1,2,...,n1\alpha(u) or \alpha(v) = \left\{ \begin{aligned} \sqrt{1/n}, &&{u = 0}\\ \sqrt{2/n}, &&{u = 1,2,...,n-1} \end{aligned} \right.

结果展示

灰度图像处理

原始图像和压缩后解压缩图像

分别对比原始图像、使用量化矩阵、保留八个最大系数、量化阈值16、量化阈值32和使用傅里叶变化的量化阈值为128的压缩解压缩图像

对原始图像量化显示

显示不同量化方法对图像的处理

彩色图像处理

彩色原始图像与压缩后解压图像

分别展示原始图像、YCbCr均使用阈值8量化、Y使用阈值8量化CbCr使用64量化

给定图像及其预测误差直方图

分别展示仅基于(-1,0)像素预测结果、仅基于(0,1)像素预测结果和基于 (-1,0)、(-1,1) 和 (0,1) 处像素的平均值进行预测。

代码链接:https://github.com/Duder-git/JEPG_DCT