范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

解密三星苹果和小米10用的HEIF照片格式,诺基亚华为贡献大

  前段时间发布的小米10系列手机采用了一种新的图片格式:HEIF,能够在保持画质不变的前提下缩减至少50%的文件体积。
  ▲图自:HEIF官网
  HEIF格式照片的文件扩展名一般是.HEIC(也有其他的格式)。看到这个格式名,用iPhone的小伙伴一定很熟悉。
  没错,苹果在2017年iOS 11系统上就已经开始支持这种图片格式,大家可以去翻翻IT之家的老文章(点此前往)。
  据汐元所知,苹果应该是最早在手机上广泛应用HEIF图片格式的了,不过当时很多小伙伴对这个图片格式不太了解,加上当年兼容性不好,给大家导图片带来诸多不便,所以,很多小伙伴对苹果当时的决定表示不屑,甚至不满。
  感受一下当年很多网友的评论:
  包括汐元也是,因为做评测经常需要把图片导到自己的Windows电脑上,结果在电脑上打不开这个格式,还要转格式,任务着急的时候真心想给苹果寄刀片。
  不过,时间证明,苹果的决定是对的,我错了。
  后来,Windows 10系统和安卓9系统在2018年也开始支持HEIF图片格式。同年,三星Note9其实也已经支持.HEIC照片。
  小米10发布前,雷军甚至表示,等HEIF普及后,估计JPEG和GIF就可以淘汰了。
  汐元觉得,未来如果HEIF普及了,也许真的可以取代JPEG和GIF。
  写这句话的时候,汐元觉得脸上火辣辣得疼。
  说到这里,相信大家都很好奇,HEIF究竟是怎么够做到保证画质不变而缩小文件体积的?
  汐元翻了一下网上的资料,大多没有明确针对这个问题进行说明。所以这篇文章打算聚焦这个问题来为大家介绍。
  为什么HEIF相比JPEG能够在画质不变的情况下将文件体积大幅缩小?
  我们首先要明白JPEG的图片格式具体是怎么样的。
  所谓JPEG格式的图片,其实说的是一种图像压缩的技术标准, 使用这种标准压缩出来的图片,就叫"JPEG文件"。
  JPEG文件后缀名包括JPG、JPEG、JPE、JFIF以及JIF。都是我们熟悉的。
  那么JPEG标准是怎么压缩图片的呢?
  我们知道,一张图片放大后,就可以看到一个一个的像素点。
  每个像素点,都包含了描述这个像素点颜色的一组数值,这个叫色彩空间,例如我们熟悉的RGB色彩空间,还有CMYK色彩空间等。
  一般照片用的是RGB色彩空间,而JPEG标准采用的是一种叫做YCbCr的色彩空间。所以压缩之前,要先进行色彩空间转换。
  ▲图自:wikimedia
  YCbCr色彩空间中,Y表示的是亮度,Cb代表蓝色的彩度,Cr表示的是红色的彩度。
  换句话说,Y代表亮度,CbCr代表色彩。
  转换之后,每个像素背后变成了另一组数值。
  因为人眼对亮度敏感,对色彩不那么敏感,所以实际压缩的时候,JPEG标准不会对亮度信息做太多改变,主要对色彩信息做压缩。
  压缩有两种,一种是有损压缩,一种是无损压缩。JPEG在压缩时,两种都会用,一般先进行有损压缩,然后进行无损压缩。
  有损压缩第一步是对Cb通道和Cr通道的色彩数据按照一定的比例进行取样。这个过程就损失了一部分数据。
  第二步,就是将一张图片中的像素分成无数个8×8像素的方块,每个方块里有64个像素,对应64组数据。
  然后,将这64组数据进行一种叫离散余弦变换(DCT)的数学处理,处理后,这64组数据就变成了数据更简洁一些的系数矩阵。
  至于这个离散余弦变换怎么搞,就不用了解了,懂高数的IT之家小伙伴可以自行去学习。
  总之,在经过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。这就起到了压缩作用。
  哈夫曼编码,它的大体思想在一串数据里,用短字符表示出现频率多的数字,用稍长的字符表示出现频率少的数字。
  假如有下面这句话:"IT之家网友在IT之家讨论IT之家小编",这句话里"IT之家"几个字反复出现,那我们就用"1"来表示"IT之家",然后这句话就成了"1网友在1讨论1小编",这样是不是就被压缩了?
  注意,上面这个例子并不严谨, 只是为了方便大家理解哈夫曼编码的思想,实际操作很复杂的,要考虑概率、做二叉树等步骤的。如果有IT之家小伙伴感兴趣可自行学习。
  行程编码,这就很简单了,直接用例子说明。假如有一串字符"aaabbbccccdddddd",它包括3个a,3个b,4个c,6个d,所以就把它编码为"3a3b4c6d"。
  很明显,要想让这些无损编码最大限度发挥压缩作用,需要保证数据有一定特性,例如大面积相同的字符、有很多出现频率较高的字符或者有很多相似的字符等。
  讲到这,相信大家也就理解了为什么前面要大费周章做那么多有损的处理了,一部分原因就是为了得到适合进行无损压缩的数据。
  通常情况下,一张图片里面,其实是有很多相同或相近的像素点的,这意味着它们背后的数据有很大可以压缩的空间。
  JPEG目的就是要干这个事儿的,这么说相信大家能理解。
  说了那么多JPEG,那HEIF呢?
  别急,当我们掌握了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,还有一些比较基础的知识,大家可以比较轻松地了解到。IT之家之前也转了小米官方对HEIF格式介绍的文章。
  HEIF的全名是高效率图像格式(High Efficiency Image Format),是运动图像专家组(MPEG)在2013年推出的。它和前面的JPEG不是一个组织。
  值得一提的是,HEIF的相关技术是诺基亚的技术人员制定的, 在2015年基本定型,现在也是诺基亚在维护(HEIF官网:点此前往)。
  有意思的是,HEIF的关键编码技术HEVC,华为正是主要推动者之一,手握大量专利, 还在今年1月加入了HEVC Advance专利池。HEVC Advance专利池中的关键成员还有三星、联发科、皇家飞利浦等等。
  当然啦,小米10凭借自身的话题性,对HEIF图片格式的进一步普及确实也起到了推动作用。
  无论如何,汐元还是期待HEIF图片格式能够克服困难,尽快普及,毕竟现在智能手机摄像头像素已经能达到亿级了,JPG格式下手机的存储空间确实吃紧。
  毕竟,总不能只因为要存照片就非得买更大存储空间的手机吧。
  参考
  中国大学MOOC-长江大学公开课,2019-08-05,《静态图像压缩技术:JPEG编码(视频)》。
  中国大学MOOC-长江大学公开课,2019-08-05,《静态图像压缩技术:Huffman编码》。
  金山视频云,2017-11-14,《HEIF格式解析》。
  CSDN-打怪升级ing,2018-11-29,《H.264和H.265(HEVC)深度解析及对比》。

诺基亚3。2开始推送安卓11系统更新手机配骁龙429,2GB3GB内存IT之家3月25日消息外媒9to5Google报道,诺基亚手机已经确认,Android11更新现在开始为价格实惠的诺基亚3。2推出。Android11更新正在一波一波地进行,有34不再需要桌面同步,曝Spotify将支持安卓手机本地音乐或歌曲播放IT之家12月30日消息外媒MSPoweruser报道,Spotify是一个流媒体音乐服务,但在桌面系统上,该应用也会对你硬盘上的MP3进行编目并进行播放。对于不在Spotify在诺基亚新机现身ANATEL认证,有望为旗下最便宜的5G手机IT之家8月15日消息一款全新的诺基亚智能手机出现在了巴西电信局ANATEL认证中,型号为TA1394。该机之前从未出现在任何资料中。外媒NokiaPowerUser认为,这款新机诺基亚计划推出5G新机搭载1。08亿像素主摄,首发骁龙775芯片IT之家4月26日消息根据外媒GadgetsNow消息,诺基亚近日计划推出全新的中高端5G手机。这款产品是此前Nokia8。35G的继任者,有望搭载1。08亿像素主摄像头,以及超广诺基亚4004G曝光运行GAFP系统的功能机,搭载展讯芯片IT之家3月28日消息尽管HMDGlobal已经推出了多款KaiOS机型,但最新消息表明诺基亚一直在努力开发搭载GAFPOS(适用于功能手机的简化版Android)的手机。值得一提外媒诺基亚1。46。45G7。45G有望在2021年第一季度发布IT之家1月23日消息据外媒NokiaPowerUser今日报道,HMDGlobal计划在未来几个月内推出三款新的诺基亚智能手机。诺基亚1。4可能是第一个发布的产品,其次是诺基亚6虹软联发科天玑1200系列支持其超级全景AI夜景算法IT之家1月29日消息1月20日,联发科正式发布了天玑1200芯片。现在,根据虹软的官方消息,天玑1200支持其LowLightPanorama超级全景AI夜景。官方表示,LowL诺基亚新机现身Geekbench,代号QuicksilverIT之家1月22日消息据外媒gsmarena报道,诺基亚一款新机昨日现身Geekbench,该设备代号为Quicksilver,单核跑分471分,多核跑分1500分。据gsmare诺基亚1。4曝光高端产品中的入门级型号IT之家1月16日消息据外媒NokiaPowerUser报道,诺基亚1。4(TA1322)将是基于诺基亚1。3的重大升级,是诺基亚旗下高端产品中的入门级Android型号。IT之家HMD新旗舰或改名诺基亚10有望搭载骁龙875芯片继去年推出逼死密集恐惧症患者的诺基亚9PureView拍照手机后,在截至目前的一年时间内就再未更新其旗舰产品。好不容易近来开始陆续有关于诺基亚下一代旗舰诺基亚9。3PureViewHMD发布诺基亚手机Android11更新时间表,随后撤回IT之家9月29日消息来自外媒gsmarena的消息,HMDGlobal已发布诺基亚手机Android11时间表,奇怪的是,该公司在发布时间表后迅速将时间表撤回了。外媒推测,也许有
realmeGT海外发布骁龙888120HzAMOLED屏,2861元起IT之家6月15日消息今晚realme真我手机在海外举办了发布会,将此前在国内发布的realmeGT旗舰手机带到欧洲市场。这款手机与国内版本参数一致,均配备高通骁龙888处理器,搭一加NordCE手机将于6月10日在印度和欧洲发布IT之家5月28日消息一加已经确认,将于6月10日在印度和欧洲发布一加NordCE手机。同时,网上曝光了一加NordCE的时间表,该机将于6月16日开售。据外媒gsmarena,该谷歌Android12将禁止第三方分享App,默认使用原生接口IT之家5月28日消息许多AndroidApp都支持分享功能,当用户点击分享按钮,如果没有自行实现分享功能,就会调用Android系统的分享功能。此外,市面上也有许多第三方分享Ap荣耀50系列最新渲染图出炉108MP主摄,类似华为P50系列IT之家6月4日消息荣耀手机官方微博此前宣布,荣耀50系列将于6月16日在上海发布,新机定位Vlog影像至美之作。目前荣耀50系列已经上架各大商场并开启预约,且样机也已经到达体验店腾讯QQ安卓版8。8。0正式版发布魔性弹射表情新玩法,支持OPPOPush感谢IT之家网友FlowerChick的线索投递!IT之家6月2日消息昨日,腾讯向安卓用户发布了QQ8。8。0正式版。本次正式版更新带来了以下功能长按QQ小黄脸表情,解锁表情弹射新微信安卓内测版8。0。6体验拍一拍就炸可传送1GB大文件近一段时间,微信的新版本几乎都是苹果系统首发,有时还直接来个三连更。相比之下,安卓这边倒显得十分清静,就连版本号也落后人家很多。近日微信foriOS8。0。6版正式发布,AndroRedmiNote10S在印度发布联发科HelioG95芯片,售价约1300元起IT之家5月13日消息小米今日在印度发布了RedmiNote10S,该机搭载联发科HelioG95芯片,起售价14999印度卢比,约合人民币1300元起。RedmiNote10S搭爆料称高通下一代旗舰SM8450样片已送至厂商IT之家6月11日消息今日微博爆料者数码闲聊站发布消息,称高通骁龙888的下一代芯片SM8450已经送至多家国内手机厂商进行测试。这颗芯片预计将采用4nm制程工艺制造,不过由于今年谷歌宣布为Android系统提供六项新功能地震预警标星信息等等,今夏推出IT之家6月16日消息谷歌本周早些时候公布了最新的一些针对Pixel手机的功能,在今天更新的官方博文中,谷歌又宣布了更多的新功能,这次是针对整个安卓系统。总共有六项新功能,这是该公戴妃回归,摩托罗拉发布Defy2021搭载骁龙662约2500元IT之家6月18日消息在中国市场上,摩托罗拉2010年推出的Defy远比稍早的Milestone更受欢迎。这款经典之作可谓是将三防带入手机的重要功臣,也正因为一举成为了当年风靡中国摩托罗拉Defy2021手机完整规格曝光骁龙662芯片,后置48MP三摄IT之家6月17日消息据外媒GSMArena报道,摩托罗拉Defy2021手机的完整规格和图片近日流出,该手机将搭载骁龙662芯片,辅以4GB内存和64GB储存,采用后置三摄方案,