对于色彩编码的简单了解

来源:互联网 发布:2016淘宝开店营业执照 编辑:程序博客网 时间:2024/06/06 04:37

对于色彩编码,最被人所熟知的可能就是RGB了。

RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。

RGB的所谓“多少”就是指亮度,并使用整数来表示。通常情况下,RGB各有256级亮度,用数字表示为从0、1、2…直到255。按照计算,256级的RGB色彩总共能组合出约256×256×256=16777216种色彩。通常也被简称为1600万色或千万色。也称为24位色(2的24次方)。

这里写图片描述

以下介绍一下最常见的JPEG格式图片的压缩方法。

整体压缩流程如下:

色彩空间转换缩减取样DCT变换量化熵编码技术

1.色彩空间转换

颜色具体显示的时候需要是RGB的形式,比如每个像素由三个8字节的数字组成。

这样的表示相当于使用三个互相独立的颜色矩阵组合成了一张图片。

每个颜色矩阵是等价的,且任何一个颜色矩阵数据有较大偏差时,我们人眼都能明显感知到。

这里采用YUV转化算法。Y维度代表一个像素的亮度,U和V维度用来代表颜色。

这个转换的好处是后续的步骤中对Y维度只能稍微抛弃一些的信息,对于UV维度可以大量的抛弃信息。

2.缩减取样

既然有损压缩代表需要抛弃部分数据,那我们主动抛弃一些数据吧。

比如一整图片像素那么多,常见的方式是在U和V维度隔一行取一个信息.这样在UV维度上数据直接较少一半了.

3.DCT变换

DCT变换的含义是离散余弦变换。

余弦变换后的效果是矩阵左上角的数据权重较高,对于右下角的数据权重较低。

这些变换和色彩空间转换一样,都是可逆的,无损的。

4.量化

量化的作用就是对于权重较低的数据进行大量有损抛弃,而对权重较高的数据稍微有损抛弃。

这里实际操作就是对矩阵的每个数据进行若干比例的缩小。

矩阵的数据缩小之后有了另外一个特性:大多连续数据是相同的了,右下角的数据大部分是0了。

这里需要提到的一点是对矩阵等比例缩小实际上就是乘以另外一个矩阵。而这个矩阵称为量化表,一般这个量化表是固定的。

5.熵编码技术

我们使用量化表抛弃了很多影响不大的信息,为这一步的压缩准备了条件。

上面提到了,量化后有个特性:大多连续数据是相同的。

于是我们就需要编排数据,然后使用Huffman算法进行无损压缩。

实际处理中为了性能,我们往往是已经有一个经验码表。

这样就不需要进行Huffman概率计算了。

唯一的缺点就是JPEG中没有储存这个码表,这样导致这个码表用于没办法更新了。

6.总结

经过上面五大步操作,JPEG图片就完成了压缩。

原创粉丝点击