图像的编码与解码

参考: Wiki-Pixel(像素) > Wiki-Image resolution(分辨率) > Wiki-Raster graphics(光栅图像)

图像的编码 和 字符的编码 其实本质上都是使用二进制来进行 编/解码。

图像

想要了解图像的编码/解码,首先要明确一下图片的组成

encoding.png

这个图,如果放到编辑器中,然后无限放大,会看到这种效果:

image.png

从这里可以看到,一张图片,其实就是很多很多的小方块组成的,每个小方块,都称之为 Pixel(像素)

Piexl(像素)

Picture Element(图像元素,简称 Pel),也就是常常听说的 Piexl(像素)。在数字成像中,像素是光栅图像中最小的可寻址元素,或者是全点可寻址 显示设备中的最小可寻址元素;因此,它是屏幕上所显示图片的最小可控元素。

每个像素都是原始图像的样本;通常,更多的样本会提供对原件的更准确的表示。每个像素的强度是可变的。在彩色成像系统中,颜色通常由三个或四个分量强度来表示,例如红色,绿色和蓝色,或青色,品红色,黄色和黑色

在一些语境中(如描述相机传感器),_像素 指的是多组分表示的单个标量元素(称为_感光点_在相机传感器上下文中,虽然传感器个体_有时使用),[3]而在其它上下文中它可以指的是空间位置的一组分量强度。

一般情况下,电脑中的颜色都是使用三原色混合而成,比如:

image.png

可以看到,每个颜色都有一个数字表示,而 RGB 就是三原色,不用强度的三原色,就会组成不同强度的新颜色。

Image Resolution(图像分辨率)

Image Resolution(图像分辨率) 指图像可以存在的细节,分辨率仅适用于 光栅图像。一般是指单位英寸中所包含的像素个数。 用白话说,分辨率就是判断一张图片清晰度的重要标志,而上文提到的 像素,就是分辨率的一部分。通常,分辨率可以通过如下几种方式来判断

  • 像素数
  • 空间分辨率
  • 光谱分辨率
  • 时间分辨率
  • 辐射分辨率

大部分时候,其实主要就是以像素的数量来决定一张图像的分辨率,比如:

image.png

而 像素密度 与 像素总数,又是判断分辨率所具有像素数的两个重要指标

  • 像素密度 # 单位长度内的像素数量除以单位长度,单位为 PPI(Pixels Per Inch)。像素密度越高,说明像素越密集,5PPI 表示每英寸有 5 个像素,500PPI 表示每英寸有 500 个像素,PPI 的数值高,图片和视频的清晰度就更高。
  • 像素总数 # 图片、影像的单独一帧图所含像素的数量,单位为像素,计算方式为长边的像素个数乘以短边的像素个数。

宽度为 2048 像素,高度为 1536 像素的图像总计 2048×1536 = 3,145,728 像素或 3.1 兆像素。人们可以将其称为 2048 x 1536 或 3.1 兆像素的图像。如果以大约 28.5 英寸宽打印,则图像将是质量很差的图像(72ppi),但是如果以大约 7 英寸宽打印,则图像的质量将非常好(300ppi)

这也就解释了,为什么一张图像,放在很小的地方看上去很清晰,而放在很大的地方,看上去就就相当模糊(其实就是代表像素的小方块都显示出来了)

人眼可以识别的图形是有限的,当一个像素一直缩小,从人类眼中,就好像是一个点,而很多很多不用颜色的点,组成了一张图像,也就是我们所说的非常清晰的图像。

图像的组成

像素是组成图像最小单位,每个像素都是一个纯色的色块

位图 与 矢量图

上文描述的图像,都是指位图

Raster Graphic(光栅图像) 是一种点阵数据结构,它表示可通过计算机显示器、纸张或其他显示介质查看的大致矩形的像素网络(像素点)。也称为 Bitmap(位图)

Vector Graphics(矢量图象) 是根据笛卡尔平面上的点定义的计算机图像,这些点通过直线和曲线连接以形成多边形和其他形状。

位图无法无限放大,不管放大到多少,最后都是一个一个的像素。而矢量图则不会出现这种问题,矢量图是基于数学方程的几何图形,不管放大多少倍,也不会失真。 可是矢量图一般只能表示一些简单的图形,因为需要很明显的线条曲线。常用来制作品牌 logo、指示牌等等。而色彩丰富的图像,比如人像等等,就无法使用简单的图形或者数学方程来表示了。

所以矢量图常用来做设计,而位图则一般用来描述照片。

图像的编码

图像编码的原理,就是把每个像素的颜色,转换成数字,然后按照顺序,把所有像素的颜色数值都存储起来。并且给每一个像素一个坐标,由 像素坐标 与 像素颜色 组成的,就是电脑中的一张图像,而 像素坐标 与 像素颜色 都是可以使用字符表示,进而转换为二进制的。

图像的清晰度越高,像素数也就越多,转换成二进制所需要占用的空间也就越高。。。这也是为什么一张图片要比一串字符占用空间要大这么多的重要原因。

因此,也就催生出了图像压缩的需求。需要根据某种算法,可以缩小图像所占用的空间。

图像压缩

那些 jpeg、png 等等格式,都是指压缩的方式,与字符编码中 UTF-8 之于 Unicode 类似。


最后修改 October 4, 2023: 合并 commit (98ba273b)