theme: condensed-night-purple
本文正在参加「金石计划 . 瓜分6万现金大奖」
颜色格式
人的眼球结构:
人的晶状体只可以识别红黄蓝三种颜色,因此在显示器上也是模拟的红黄蓝三种颜色来模拟的像素点。 皮皮虾可以识别十二种颜色,对于皮皮虾来说电视显示器设备在它的眼里看来就不太正常,因为这些都是只用了红黄蓝这三种颜色
- RGB:用于扫描仪显示设备,计算机系统
- CMYK:K是Black用于打印机行业。如果用RGB模拟黑色成本会很大,因此图案的颜色是通过在反射光线时产生的
- YUV/YIQ/YCbCr:早期电视机是黑白,后面是彩色的视频。希望彩色的视频可以兼容黑白电视机,黑白电视机只需要利用亮度信息即可,因此Y就是亮度用来兼容的
- HSV/HSI:画师的调色板,根据色相,饱和度,明亮分析
数字图像的存储
数字图像数据是一个二维矩阵,每一个元素是一个像素的像素值
如何存储?
- 直接存放矩阵数据:BMP,YUV等
- 无损压缩:PNG,TIFF,GIF,RAW,TGA,PSD等
- 有损压缩:JPEG,WEBP,WMF等
图像的存储 | |
---|---|
指标数据 | 存矩阵 |
数据大小 | 最大 |
解码速度 | 最快(拷贝) |
画质 | 最好 |
JPEG的有损压缩
主要说明为什么可以压缩的这么小及压缩流程
感知编码:删掉人类无法感知到数据的方法,它依赖于人类的感知模型, 模型来自“心理物理学”领域 比如录制声音的时候可以将超声波和低音进行过滤,超声波是因为人耳听不到,低音过滤是因为对这种音人耳并不敏感,因此可以将表示这两种人体感知不到的信息进行删减的压缩叫做感知编码
人的眼睛也是如此,我们看不出颜色的细微变化,图像存储中的Rcbcr格式就是如此,用于表示cb和cr的数据有和没有对人类来说影响不是特别大,因此JPEG利用了这点来压缩的,不过因为有删减数据,也叫有损压缩
Rcbcr:这里的Y表示亮度(Luminance),Cb和Cr分别表示绿色和红色的“色差值”。
Rcbcr的空间转换&利用基底重新输出新图
- 映射产生新的8X8的块:保存过程中,把RGB空间变成Rcbcr空间,是因为在Rcbcr空间上对cb,cr空间做压缩人的眼球感受不出来。这样就可以进行修改了
这个过程中会把图片拆成8X8的小块对每一个小块都做了操作,用64X64的基底进行加权重新计算后重新映射成新的8X8的块(这个新的8X8的块如果修改了之后人眼是观测不出来的,也就是cbcr空间的压缩)
除以既定图得到最后的结果图
- 除以既定的8X8的块:映射之后新的8X8的小块会除以一个既定的8X8的块(每个映射的点除以既定8X8块上对应位置的值)既定图上的数值越大,压缩率越高除以的值也越大。
因为没有影响所以可以除以很大的数,除以完成之后会得到一个新的8X8的矩阵,这个矩阵的特点是他有大量的0的元素
这个矩阵因为有大量的0就可以用host编码进行压缩 最终目的:产生大量的0的字符串
其他图片的压缩算法
PNG算法
- 支持透明通道 本质:使用LZ77的压缩算法 有损压缩原理:减少颜色数量(颜色抖动技术),从而减少冗余信息
矢量图
- 一类特殊的数字图像:图形学领域 计算机图形学中用点,直线或者多边形等基于数学方程的几何图元表示图像
- 可以任意无损缩放,旋转
可以被无限放大,不会产生锯齿.被拉伸之后可以重新计算