「阅读需时: 21 分钟」
很长的一段时间,我在从网上保存图片素材的时候,都发现图片保存下载的格式是JFIF格式。
这种格式在win10系统下使用图片工具倒也可以正常打开,唯一让我感到苦恼的是无法直接拖进PS中处理,而且部分插入图片的组件也不支持导入JFIF格式的图片,需要先将它进行转换格式才能使用,非常不方便。
是什么原因,让浏览器和Win10系统都如此看好JFIF格式的图片?
那使用JFIF格式的图片,会不会对SEO产生什么影响?
今天,我们就说一说这个问题。
——
大家都知道,图片格式是计算机存储图片的格式,常见的存储的格式有bmp,jpeg/jpg,png,tif,gif,pcx,tga,exif,fpx,svg,psd,cdr,pcd,dxf,ufo,eps,ai,raw,wmf,webp,avif,apng、jfif、ico等。
JPEG(Joint Photographic Experts Group)是最常用的图像文件格式。
JPEG格式压缩的主要是高频信息,对色彩的信息保留较好,适合应用于互联网环境。
JPEG的性能,用质量与比特率之比来衡量,是相当优越的。
JPEG的优点是:
1.它支持极高的压缩率,因此JPEG图像的下载速度大大加快。
2.它能够轻松地处理16.8M颜色,可以很好地再现全彩色的图像。
3.在对图像的压缩处理过程中,该图像格式可以允许自由地在最小文件尺寸(最低图像质量)和最大文件尺寸(最高图像质量)之间选择。
4.该格式的文件尺寸相对较小,下载速度快,有利于在带宽并不“富裕”的情况下传输。
JPEG的缺点是:
1.并非所有的浏览器都支持将各种JPEG图像插入网页。
2.压缩时,可能使图像的质量受到损失,因此不适宜用该格式来显示高清晰度的图像。
JPEG的复杂度之低和使用时间之长,给人以深刻的印象。
以下是对于8位/像素的中等复杂画面的图像,JPEG所给出的几个等级作为衡量压缩编码效果的准则:
0.25位/像素~0.5位/像素;中~好,足以满足一些应用。
0.5位/像素~0.75位/像素;好~很好,足以满足许多应用。
0.75位/像素~1.5位/像素;优秀,足以满足大多数应用。
1.5位/像素~2.0位/像素;难于与原图像区别,足以满足绝大多数应用。
>2.0位/像素;近乎完美,满足几乎全部的应用。
其中位/像素(bit/pixel)定义为压缩图像(包括色度分量)的总位数除以亮度分量的样本数。
JPEG格式的压缩率是目前各种图像文件格式中最高的。
它用有损压缩的方式去除图像的冗余数据,但存在着一定的失真。由于其高效的压缩效率和标准化要求,目前已广泛用于彩色传真、静止图像、电话会议、印刷及新闻图片的传送。
大部分浏览器都支持JPEG这种图像格式,因此它也被广泛用于图像预览和制作HTM网页。
——
既然JPEG那么好,为什么市面上又出现了WebP、HEIF、JFIF等格式?
其实,JPEG是一种针对相片影像而广泛使用的一种失真压缩标准方法。
JPEG的压缩方式通常是破坏性资料压缩(lossycompression),意即在压缩过程中图像的品质会遭受到可见的破坏。
举个例子:
一张照片,在图片平台上上传下载90次之后,最后一张照片已经完全变了样了。
这也说明,JPEG也有其不足的地方。
——
于是,除了JPEG格式之外,更多不同的格式也被研究了出来。
(举例2种来简单说明)
WebP格式
WebP,是一种同时提供了有损压缩与无损压缩的图片文件格式,派生自图像编码格式VP8。是由Google购买On2Technologies后发展出来的格式,以BSD授权条款发布。
WebP是Google新推出的影像技术,它可让网页图档有效进行压缩,同时又不影响图片格式兼容与实际清晰度,进而让整体网页下载速度加快。
由于目前互联网上传输的数据有65%都是图片,WebP就是出于减少数据量、加速网络传输的目的而开发的。
与JPEG相同,WebP是一种有损压缩利用预测编码技术。但谷歌表示,这种格式的主要优势在于高效率。他们发现,“在质量相同的情况下,WebP格式图像的体积要比JPEG格式图像小40%。
美中不足的是,WebP格式图像的编码时间“比JPEG格式图像长8倍”。
这也限制了WebP格式的使用。
HEIF格式
HEIF格式照片的文件扩展名一般是.HEIC(也有其他的格式)。
看到这个格式名,用iPhone的小伙伴一定很熟悉。
没错,苹果在2017年iOS11系统上就已经开始支持这种图片格式。Windows10系统和安卓9系统在2018年也开始支持HEIF图片格式。同年,三星Note9其实也已经支持.HEIC照片。
目前,小米10系列手机,也是采用了HEIF。
小米10发布前,雷军曾表示,等HEIF普及后,估计JPEG和GIF就可以淘汰了。
说到这里,相信大家都很好奇,HEIF究竟是怎么够做到保证画质不变而缩小文件体积的?
我们首先要明白JPEG的图片格式具体是怎么样的。
所谓JPEG格式的图片,其实说的是一种图像压缩的技术标准,使用这种标准压缩出来的图片,就叫“JPEG文件”。
JPEG文件后缀名包括JPG、JPEG、JPE、JFIF以及JIF,都是我们熟悉的。
那么JPEG标准是怎么压缩图片的呢?
我们知道,一张图片放大后,就可以看到一个一个的像素点。
每个像素点,都包含了描述这个像素点颜色的一组数值,这个叫色彩空间,例如我们熟悉的RGB色彩空间,还有CMYK色彩空间等。
一般照片用的是RGB色彩空间,而JPEG标准采用的是一种叫做YCbCr的色彩空间。所以压缩之前,要先进行色彩空间转换。
YCbCr色彩空间中,中Y表示的是亮度,Cb代表蓝色的彩度,Cr表示的是红色的彩度。
换句话说,Y代表亮度,CbCr代表色彩。
转换之后,每个像素背后变成了另一组数值。
因为人眼对亮度敏感,对色彩不那么敏感,所以实际压缩的时候,JPEG标准不会对亮度信息做太多改变,主要对色彩信息做压缩。
压缩有两种,一种是有损压缩,一种是无损压缩。
JPEG在压缩时,两种都会用,一般先进行有损压缩,然后进行无损压缩。
有损压缩第一步是对Cb通道和Cr通道的色彩数据按照一定的比例进行取样。这个过程就损失了一部分数据。
第二步,就是将一张图片中的像素分成无数个8×8像素的方块,每个方块里有64个像素,对应64组数据。
然后,将这64组数据进行一种叫离散余弦变换(DCT)的数学处理,处理后,这64组数据就变成了数据更简洁一些的系数矩阵。
至于这个离散余弦变换怎么搞,这里就不展开了,懂高数的小伙伴可以自行去学习。
总之,在经过DCT变换后,64组像素数值变成了64个系数,这个过程又产生了数据损失。
接下来,对于这一组8×8的序数矩阵,还不能直接处理,要继续进行一步叫“量化”的处理过程。
量化是怎么进行的大家不用知道,只需要知道,量化的目的是适当减小矩阵内各个像素点之间的差别。因为人眼对小范围内差别高的像素区域辨别能力不高,所以不如削减它们的差异。
经过量化处理后,8×8的序数矩阵变成了一组更加简洁的数字矩阵,有大面积的0。
很显然,这一步,又损失了一部分数据。
好,走到这一步,接下来就是无损压缩了。
首先,我们把上一步量化后的8×8数字矩阵提取出来。提取的顺序是按照“Z”字型进行的。
提取出来后,得到64个数据。这64个数据中,第一个数字叫DC系数编码,后面63个数字叫AC系数编码。
我们要知道,一张图片里可以包含很多很多个8×8的小方块,都进行上述处理后,就有很多很多个DC系数。
我们把这很多很多个DC系数抽出来,组成一个集体,然后对它们进行差分编码和哈夫曼编码。
至于其他的AC系数,我们对他们进行行程编码。
这样,JPEG标准的压缩步骤基本就走完了。
这些步骤走完后,压缩成的.JPG文件体积就会比原图小很多,当然图片质量也会有所损失。
上面三种压缩编码的操作过程大家不需要知道太清楚,但是他们的压缩思想,大家是有必要知道的。
差分编码,就是对于一串数字,除了第一个数字,其他数字都表示为它和前一个数字的差。
例如:
100、101、103、104、107这串数据,可以表示为100、1、2、1、3。这就起到了压缩作用。
哈夫曼编码,它的大体思想在一串数据里,用短字符表示出现频率多的数字,用稍长的字符表示出现频率少的数字。
例如:“网易网友在网易讨论网易严选”,这句话里“网易”几个字反复出现,那我们就用“1”来表示“网易”,然后这句话就成了“1网友在1讨论1严选”,这样是不是就被压缩了?
上面这个例子并不严谨,只是为了方便大家理解哈夫曼编码的思想,实际操作很复杂的,要考虑概率、做二叉树等步骤。
行程编码,这就很简单了,直接用例子说明。假如有一串字符“aaabbbccccdddddd”,它包括3个a,3个b,4个c,6个d,所以就把它编码为“3a3b4c6d”。
很明显,要想让这些无损编码最大限度发挥压缩作用,需要保证数据有一定特性,例如大面积相同的字符、有很多出现频率较高的字符或者有很多相似的字符等。
讲到这,相信大家也就理解了为什么前面要大费周章做那么多有损的处理了,一部分原因就是为了得到适合进行无损压缩的数据。
通常情况下,一张图片里面,其实是有很多相同或相近的像素点的,这意味着它们背后的数据有很大可以压缩的空间。
JPEG格式设计出来,其目的就是要干这个事儿的,这么说相信大家能理解。
说了那么多JPEG,那HEIF呢?
其实HEIF做的工作和JPEG差不多,大体路径是相似的,但在一些一些细节上有改进。
我们需要先做一个简单的说明。其实所谓的HEIF,是图片的封装格式,它主要采用的是一种叫HEVC的编码方式。
打个比方,一张图片的信息,它们其实是经过HEVC的编码方式进行编码,然后将编码后的信息用一个盒子(容器)装起来,这个盒子就叫HEIF。
HEIF是把盒子和编码方式分开了,而JPEG没有。
HEIF的这种操作方式和很多视频格式很像,我们经常看到的MP4、MKV、AVI等视频格式,其实都是盒子的名字,盒子里面是编码的方式,例如MPEG-4、H.264、H.265等。
影音软件播放视频文件的时候,都是先把盒子打开,然后再解码里面的编码文件。
上面提到的H.265还有一个名字,就叫HEVC,没错,也就是HEIF格式主要采用的编码方式,所以说这个图片格式其实采用的也是视频的编码的方式。
除了HEVC,HEIF格式也可能采用其他的编码方式,但很少见。它的编码方式和对应的后缀名如下:
我们看到,小米10和iPhone用的都是HEVC的编码方式,后缀名都是.HEIC。
所以问题就变成了,HEVC的编码方式是怎么将体积缩小的呢?
其实主要有两点:
首先,根据上文的介绍,JPEG是将图片划分成很多8×8的像素块来进行压缩编码的。
而在HEVC编码方式中,这个像素块的划分方式更灵活,最大可以允许以64×64来划分,然后在64×64的像素块中,可以灵活的划分子像素块,可以划分成32×32、16×16、8×8的子块,这叫做四叉树单元划分。
这么做有什么好处呢?答案就是,在面对一张图片的时候,如果是信息量比较平缓的区域,我们可以用比较大的像素块来划分,如果是信息量比较密集的区域,就可以用比较小的像素块来划分。
这种根据实际情况来划分的编码单元,可以很大程度提高编码效率。特别是针对4K等高分辨率、像素量大的照片,优势更明显。
HEIF照片的文件体积能够缩小,大部分要归结于此。
其次是第二点。前面介绍JPEG时我们讲了它使用的几种无损编码方式,分别是差分编码、哈夫曼编码和行程编码。这其中从编码之后的数据量来说,其实最主要的是哈夫曼编码,它是可以改进的。
在HEIF标准中,这种无损编码方式主要采用了自适应的二进制算术编码(下面简称“算术编码”)。
其实,随着JPEG跟随时代的发展,算术编码也被引入到了JPEG的编码方式中,但是主要还是哈夫曼编码。
算术编码相比哈夫曼编码,可以进一步提高编码效率。
其实算术编码的思想原理和哈夫曼编码是差不多的,都是考虑数据中不同字符出现的概率,然后给不同字符以不同的编码。
算术编码具体的数学化思想很浓,难以三言两语讲清楚,这里也不方便展开说了。总之,算术编码最后得到的是一个很简洁,但是很长的小数。
正是因为数学的思想很深刻,算术编码的编码效率要比哈夫曼编码更高,最后呈现在大家面前的,就是对于同一张照片可以压缩成更小的体积。
以上,基本上就是HEIF能够在保证画质不变的前提下缩小图片体积的原因了。
HEIF的全名是高效率图像格式(HighEfficiencyImageFormat),是运动图像专家组(MPEG)在2013年推出的。它和前面的JPEG不是一个组织。
值得一提的是,HEIF的相关技术是诺基亚的技术人员制定的,在2015年基本定型,现在也是诺基亚在维护。
有意思的是,HEIF的关键编码技术HEVC,华为正是主要推动者之一,手握大量专利,还在今年1月加入了HEVCAdvance专利池。
当然啦,小米10凭借自身的话题性,对HEIF图片格式的进一步普及确实也起到了推动作用。
无论如何,我们还是期待HEIF图片格式能够克服困难,尽快普及,毕竟现在智能手机摄像头像素已经能达到亿级了,JPG格式下手机的存储空间确实吃紧。
总不能因为要存照片,就非得买更大存储空间的手机吧!
好的云盘,也是要花钱买的呀。
——
JFIF格式
JFIF文件格式即JPEG文件交换格式(JPEGFileInterchongeFormat)。
JFIF是为了使得JPEG码流能够在广泛的平台和应用见进行交换的最小文件格式。
JFIF格式的主要特征是使用标记来指示JPEG标准中未使用的参数,即像素几何,像素大小和一些其他参数。
这种简化格式的初衷就是为了方便JPEG压缩图像的交换。
(百度百科:JFIF)
所以,其实JFIF格式和我们经常使用的JPEG虽然有一些差别,但是这些差异基本上可以忽略,把他们画上=号就可以了。
——
让我们先看看搜索引擎喜欢什么样的图片:
搜索引擎不喜欢大的图片,他们喜欢可以快速加载的高质量图片。
既然JFIF格式和JPEG几乎是一样的,那么对于SEO的影响应该也是类似的。
为此,我还深入的研究了几个主流的图片网站和百度图片。
我发现:
如果你的电脑系统是采用Win10系统(其他Win系统我没去验证)的话,你所下载的图片的默认格式是.jfif。如果我们把图片默认格式换成.jpg,那么下载的图片就变成JPEG格式了。
换格式也很简单,操作如下:
首先按键盘的“Win键+R键”,弹出“运行”对话框,输入“regedit”,然后点回车进入注册表编辑器。
然后,按照下面的路径一步步进入相应的项目,也可以直接把下面的路径粘贴到地址栏里:
HKEY_CLASSES_ROOT\MIME\Database\ContentType\image/jpeg
再然后,右面的列表框中有个“Extension”选项,双击这一行点开,在“编辑字符串”对话框中,把“jfif”改为“jpg”,最后点确定就可以了。
相信大家也看出来了,只要你使用的图片格式是常规使用的一些格式,那么对SEO的影响应该都是差不多的。但是某些特定情况下,还是需要遵守一定的规则,如图标,尽量还是使用.ico格式。
——
关于图片SEO的知识
图片的SEO,主要有2方面的好处:
1.通过对图片的优化,可以直接利用图片获得流量。
2.百度搜索结果中会在搜索结果左侧展现图片,优质的配图可以吸引更多点击。
总结来说,图片SEO有如下8个技巧:
01
图片的尺寸和大小
图文并茂是百度和用户喜欢的形式,但运用图片的时候应注意图片的大小和尺寸。
百度在搜索结果页展示图片的时候,实际上不是所有页面有图就给出显示,展示图片的一个规则就是图片大小接近121:75,站长可以根据此规则调节好图片尺寸。
另外图片大小会影响页面打开的速度,图片太大页面打开太慢的话对用户体验很不友好。
据研究3秒原则,页面超过3秒用户可能就要离开你了。
02
图片清晰度
有时一篇文章的精华就是图片啦,假如一篇“xx结构图”的文章,用户就是想看清楚结构细节,文字再好内容再丰富,如果配图不清晰的话对用户的价值大大打折。
03
图片的alt标签
图片优化alt标签是最基础的东西了,最基础的也就越重要,在图片上传好之后千万不要忘了alt标签。蜘蛛判断图片内容就是靠alt,但同时也不建议在alt标签里堆砌关键词,用文章标题是个不错的选择。
04
图片的title标签
对比alt标签,title被大多数seo遗忘了,实际上笔者认为这个与alt标签相比同样重要。如下图所示,当用户鼠标停留在图片上时会显示文字,这对用户体验有很大的帮助,同时也会多出现一次关键词。
05
图片周围文字
图片下面有个类似版权申明的文字,百度除了参考alt标签同时也参考周围文字来猜测图片是关于什么的。
06
图片命名
这一点可能被大多数seoer所忽略,以为图片上传到网站就OK了。细节决定成败,图片名称也是有诀窍的。就以这篇文章为例,本文主题是“图片优化技巧”。图片形式可改为拼音,细心的seo可能发现了,文章标题“技巧”在图片也含有”jiqiao”,增加了文章的相关性,对排名有一些好处。
07
图片的原创度
百度对原创内容越来越喜欢,大量抄袭对网站有百害而无一益。但大多数seo可能只停留在内容的原创上,实际上图片也是页面的一部分,原创图片无疑是蜘蛛喜欢的。进一步想,如果站长花大量时间制作一张满意的图片,百度也会认为这篇文章的原创度和价值很高。
08
图片本地化或本地储存
虽然原创图片对排名和用户有很大的好处,但花费的时间很多,有时候借用别人的图片也是不错的选择。但我建议在盗用图片的时候最好下载到本地再上传到自己的网站。如果直接以链接的方式调用的话等于给别人做了一个外链啦,自己网站权重就分散了。
——
参考/推荐