JPEG编码大概分为5个步骤(解码是以个反过来的过程):
1. 颜色空间转换(每个像素的RGB888 都转换为 YUV444, 这个过程是可逆的,信息并没有损失);
2. 颜色降采样(YUV444 变化为 YUV420, 色度信息是求取的周围4个像素点的平均值, 到这里数据压缩到原来的一半了,查看的时候会重建RGB888,因为显示器都是RGB的,但是还原回来的RGB和编码之前的RGB是有差别的了);
3. DCT(离散余弦变换不能压缩图像大小)
4. 量化(DCT和量化的过程,使用亮度量化表和色度量化表以及64个基础图像,将原始图像的8x8块转化成很多的0)
5. 游程编码与霍夫曼编码(通过霍夫曼树,记录0出现多少次,1出现多少次的方式来进行数据压缩);
霍夫曼压缩是所有数据压缩的一个基础,且是一个无损压缩;