JPEG图片格式
JPG(后缀名也为JPEG)采用高压缩比技术的图像存储格式,是与平台无关的格式,支持最高级别的压缩。因为JPEG是有损压缩格式,所以在对一张JPEG格式的图片反复进行修改保存时,则会让图片失真,品质下降,这种品质下降是累积的。
JPG最主要的优点是能支持上百万种颜色,从而可以用来表现照片,此外,由于JPG图片使用更有效的有损压缩算法,从而使做网站文件长度更小,下载时间更短。
但是从长远来看,JPG随着带宽的不断提高和存储介质的发展,它也应该是一种被淘汰的做网站图片格式,因为有损压缩对图像会产生不可恢复的损失,所以经过压缩的JPG的图片一般不适合打印,在备份重要图片时也最好不要使用JPG。
还有,JPG也不如GIF图像那么灵活,它不支持图形渐进、背景透明,更不支持动画。
Y表示亮度(luma,luminance),CbCr表示色度(chroma,chrominance)。
Cr:(色度红)反映了RGB输入信号部分与RGB信号亮度值的差异,即当前颜色对红色的偏移程度。
Cb:(色度蓝)反映了RGB输入信号部分与RGB信号亮度值的差异,即当前颜色对蓝色的偏移程度。
存储格式:
YUV 是一种彩色编码系统,主要用在视频、图像处理流水线中(pipeline)。像低于RGB颜色空间,设计YUV目的就是为了编码、传输的方便,减少带宽的占用和信息出错。
人眼的视觉特点是对亮度更敏感,对未知、色彩来说不敏感。在视频编码系统中位了降低带宽,可以保存更多的亮度信息(luma),保存较少的色差信息(chroma)。
Y’UV、YUV、YCbCr、YPbPr几个概念是一回事。Y’UV、YUV主要用在彩色电视中,用于模拟信号表示,YCbCr用在数字视频、图像的压缩和传输,如MPEG、JPEG。
二次采样(subsamping): 为了降低带宽,保存更多的亮度信息(luma),保存较少的色差信息(chroma),这叫做色度二次采样。原则:(1)每一个图形像素都要包含luma值(2)几个图形像素共用一个Cb+Cr值,一般是2、4、8个像素。
假设对于一个w宽,h高的像素图,在水平方向上,一行有w个像素,垂直方向上,一列有h个像素,整个图型有w*h个像素。我们把这个像素叫做图形像素。
如果用YCbCr像素格式来表示像素图,要搞清楚亮度和图形像素的关系,色度和图形像素的关系。
通常对 yuv444,yuv422,yuv420 的解释是后面三个数字分别对应前面三个字母。拿 yuv422 来说,y 对应 4,表示四个图形像素中,每个都有亮度值;u 对应 2,表示四个图形像素中,Cb 只占用两个像素;v 对应 2, 表示四个图形像素中, Cr 占用两个像素。对于 yuv422 模式,这样解释是没有问题。
4:4:0 水平方向是1/1,垂直方向是1/2,表示一个色度像素对应了两个图形像素。
4:2:2 水平方向是1/2,垂直方向是1/1,表示一个色度像素对应了两个图形像素。
4:2:0 水平方向是1/2,垂直方向是1/2,表示一个色度像素对应了四个图形像素。
右侧一列是二次采样模式记号表示, 是 J:a:b 模式,实心黑色圆圈表示包含色度像素(Cb+Cr),空心圆圈表示不包含色度像素。对于 J:a:b 模式,主要是围绕参考块的概念定义的,这个参考块是一个** J x 2 的矩形**,J 通常是 4。这样,此参考块就是宽度有 4 个像素、高度有 2 个像素的矩形。a 表示参考块的第一行包含的色度像素样本数,b 表示在参考块的第二行包含的色度像素样本数。
4:4:0 参考块第一行包含四个色度样本,第二行没有包含色度样本。
4:2:2 参考块第一行包含两个色度样本,第二行也包含两个色度样本,他们是交替出现。
4:2:0 参考块第一行包含两个色度样本,第二行没有包含色度样本。
现在我们发现 yuv444,yuv422,yuv420 yuv 等像素格式的本质是:每个图形像素都会包含亮度值,但是某几个图形像素会共用一个色度值,这个比例关系就是通过 4 x 2 的矩形参考块来定的。这样很容易理解类似 yuv440,yuv420 这样的格式了。