「heif 技术」是一种怎样的技术,能支持哪些图像存储需求?

论坛 期权论坛 期权     
爱的用户   2020-2-14 23:35   8687   4
  • 什么是「heif 技术」?
  • 「heif 技术」支持哪些图像存储方式?
本问题将作为「知识库」栏目的一部分,你的创作将有机会被收录在相关话题的百科简介中,为知友们解答各种十万个是什么。
分享到 :
0 人收藏

4 个回复

倒序浏览
2#
热心小回应  16级独孤 | 2020-2-14 23:35:57 发帖IP地址来自
HEIF 意为 High Efficiency Image File Format,高效率图片文件格式,它既可以用于存储单张图像,也可以用于存储一个图像序列。
它使用高效率影片编码 High Efficiency Video Coding,HEVC(即 H.265 和 MPEG-H Part 2),相较于上一代标准的高级视频编码 Advanced Video Coding,AVC(H.264)压缩率可以提高一倍,此外还能提高图像品质。
此外,HEIF 图像格式还能存储 JPEG 格式不能存储的东西,如单文件存储图片序列(连拍)、动画效果、分块加载机制、景深图、Alpha 通道、裁剪、音频、文字、10bit 图片等等。
3#
热心小回应  16级独孤 | 2020-2-14 23:35:58 发帖IP地址来自
全文转载自Soomal:HEIF图像格式介绍  内容已获得授权。这个小网站内容质量灰常高,欢迎大家访问。
从iOS11和Android 9开始,苹果和谷歌都加入了HEIF文件格式的支持,而iOS甚至将HEIF作为默认的照片存储格式。那么HEIF好处都有啥,甚至要取代横行了网络界几十年之久的JPEG呢?今天我们就结合官方网站和白皮书介绍一下这个全新的影像格式。
什么是HEIF
HEIF是一个由知名的影像机构MPEG研发的开放图像文件格式,是高效率图像文件格式[High Efficiency Image File Format]的英文缩写,有时候也叫HEIC[High Efficiency Image File Coding],文件名通常为.heif或者.heic后缀。由于是MPEG带头,而且名字和视频行业流行的HEVC很像,读者们大概花点时间就可以猜出两者的联系。在有损压缩上,HEIF确实是通过HEVC来实现的[heif的无损数据压缩也通过HEVC算法实现,但不是重点]。和JPEG不太一样的是,HEIF是一种封装格式,它不仅可以存储静态图像和EXIF信息元数据等,还可以存储动画、图像序列甚至视频、音频等等,存储的数据种类要丰富得多,这点有点类似于视频网站常见的mkv封装,而HEIF的静态图像格式特指的是以HEVC编码器进行压缩的图像数据和文件[HEVC Image File Format]。
HEIF的技术在2015年基本定型,官方网站网址是http://nokiatech.github.io,从目前公开的heif的读写工具等源代码也确实是诺基亚在维护,可以算作是HEIF专利池的主要持有者之一。在2017年的WWDC大会上,苹果也比较详细介绍了HEIF的特点和优势。
HEIF的优点

虽然JPEG已经很老,但本身也在不停发展,其有损压缩的技术和画质在不断优化,如果拿着20年前的ACDSEE 2.X和最近一两年的图像处理工具保存相同压缩比的JPEG文件,会轻易发现新的JPEG不仅画质明显更好,而且文件可以明显更小。苹果愿意在iOS上取代JPEG和常规的位图作为默认的照片文件存储格式,就一定有更多的有点才行。

HEIF相较于JPEG的压缩比容量优势:如果是经常混共享视频网站的老玩家,一定会经常见过一些压缩比高得惊人的HEVC视频文件,可以在文件尺寸接近DVD容量的情况下实现蓝光级别的画质,这也是新的计算机算法和数学理论在不停进步的结果,得益于HEVC的超高压缩比,到今天已经成为了现在视频网站的主流格式,就是因为视频网站的运营成本大头在于存储和网络流量上,相对而言现在服务器的处理性能明显过剩而导致VM虚拟机服务器泛滥,在大幅减少网络流量的前提下实现更好的画质对网站和用户都是利好的。而HEVC在压缩静态图像时同样有非常理想的表现,MPEG声称在文件大小相同的情况下可以保留的信息是JPEG的两倍,或者说画质相同时HEIF容量只有不到JPG的一半。和分散的Android阵营不同,苹果稳定的iPhone用户群留下的各种艳照对于iCloud云存储的压力相当巨大。鼓励用户使用压缩比大幅提高的HEIF别的好处不说,至少在服务器上可以省一笔大钱。

画质优势:JPG虽然算法一直在改善,但本质上还是几十年前的静态位图存储格式,但面对越来越先进的拍摄和显示设备已经逐渐力不从心,而发展到8K UHD的视频编码带来的更高的上限。HEVC图像和视频一样,支持高达16bit色深保存,而且和HDR图像、广色域等新技术的应用能更好地无缝配合,如果使用JPEG存储照片还需要另外的辅助文件进行高动态显示、景深、色深等信息的保存,而HEIF可以将这些元数据封装至同一个文件中,记录和显示更明亮、更鲜艳生动的照片和视频。另外在社交网络上,各种沙雕动图也是网友们必不可少的交流元素,而GIF则是比JPEG更加落后时代的东西,不仅画质差而且文件体积庞大,得益于HEVC的视频压缩技术,HEIF在存储动图上在画质和文件大小则更是碾压级别的优势。


内容灵活:由于HEIF是一种封装格式,因此能保存的信息要远远比JPEG丰富,除了缩略图、exif、元数据等信息外,还可以保存并显示各种各样的数据信息。在图形技术和人工智能大发展的前提下,手机的拍照已经不再是简单的快门眨眼了,例如手机的超级夜景、HDR照片就是通过多帧合成来实现高动态图像,在HEIF中就可以直接把这些快门前后连拍图像全部保存起来且得益于HEVC超高的压缩比,文件大小还能在合理范围内,给用户的显示和后期留下巨大的空间,另外HEIF支持透明图层,拍照的景深图像等都可以存储成数据,或者单一文件直接保存多张图像。从后期和可玩性来说,HEIF也比普通的JPEG甚至所谓的RAW、DNG等“原始数据”更为丰富。




由于手机性能越来越强大,已经出现了拍照时同时保存视频和录音的玩法,但因为文件容量和格式等局限性,图像和视频无法合并成一个文件,而在HEIF中,照片、视频、音频可以封装成单一文件。
对比和总结

相比其他格式图像,上表也比较直观的展示了HEIF相较于其它静态图像格式和封装具有更多的特点和优势,可以看出即使是相比出现时间较晚、谷歌主推过的webp格式,HEVC在功能和技术方面仍具备比较突出。虽然更高的压缩比意味着需要更多的CPU和GPU进行编解码工作,但目前手机和电脑硬件应付这些已经是绰绰有余。更高的压缩比意味着节省网络空间和网络流量,对于手机厂商、网络服务商和消费者都是三赢的局面。另外更灵活的文件封装,一张照片不再仅仅是一张照片,还能将一段短视频和动图保留在文件当中,不但管理保存更便利,还能在多年后为用户记录下更多美好的回忆。
当然,对新技术不能光说优点,也难免会带来新的问题。首先是HEIF需要比较新的操作系统才能支持,从iOS11、Android 9.0开始就支持HEIF文件,桌面系统最新的MacOS和Windows10 1803以后的系统才开始支持。在图像工具方面,商业化的Photoshop CC和Lightroom、http://Paint.NET、Affinity Photo以及开源免费的GIMP、ImageMagick都已经全面支持HEIF。在数量和质量方面并不是问题,但硬件和软件要足够新,老设备和老软件似乎只能打出GG了。当然毕竟编解码工具都是开放源代码的,为旧系统和软件提供兼容性接口并不是大问题,应用和工具也会越来越多。但开源不等于可以免费商用,很多盈利企业和个人开发者需要的并不一定是先进或者开源,而是能在二次商用上进行白嫖,这也是很多老技术老设备在商业领域仍大行其道的原因之一。HEIF和HEVC的专利授权限制会对大规模普及带来一定阻碍。

虽然HEIF和HEVC支持高达16bit色深和HDR高动态范围,但民用显示设备仍普遍在6bit和10bit之间反复横跳,HDR算法标准也在不停地斗争[HDR10和HLG],iPhone拍摄的照片不加处理拿到别的系统上看色彩非常惨淡就是一个比较有意思的特例。另外,目前主要的网页浏览器软件仍未提供HEIF的原生支持,很多网络应用和网站也就无法正常显示HEIF图像,例如在Facebook、微信等应用时,用户上传的图像还是必须要转换成JPG才能共享。
当然,即使画质上的代差优势展现不出来,HEIF在压缩比的上优势也会逼着苹果谷歌等提供网络存储服务器的供应商普及以省钱,对于消费者来说也同样如此。而且JPEG也实在太老了,虽然彻底取代还说得太早,但是现在也已经开始普及到正常使用的阶段,新旧共存是没问题的。
4#
热心小回应  16级独孤 | 2020-2-14 23:35:59 发帖IP地址来自


关注HEIF图像处理技术,还是2.13号x米10发布会上雷布斯宣布的

[h1]一、简介[/h1]HEIF(High Efficiency Image File Format)高效率图像文件格式。由运动图像专家组(MPEG)开发,用HEVC(H.264)编码标准对图片进行压缩,一般以.heif或者.heic结尾。

用人话解释下吧
就是一种新的图片格式,和其他图片格式(JPEG,PNG……)相比,在分辨率和清晰度不变的情况下,图片占用的存储空间更小。
举个栗子
比如你手机闪存剩余 1G,拍一张照片占 10MB,那么此刻你最多能拍102张,如果想要继续自拍,那么就只能先删除一些照片
如果你的手机照片采用HEIF格式存储,那么此时同样大小闪存,你可以拍200张照片

[h1]二、原理[/h1]这个技术是啥估计大家清楚了吧,下面说说到底是怎么实现的
Heif格式是一个容器图片格式,可以包含多个图片和和图片序列,这个容器是有一定的格式的,可以用下面的图示来解释



  • ftyp
  • meta
  • moov
  • mdat
  • ftyp
这个是HEIF文件的头,其中包含了一些标识信息,用来描述文件的类型、兼容性。
2. meta
存储了单张图片以及衍生的图片的元数据。
3. moov
如果某个HEIF图片存储的时候包含了多个图片序列,则就存储在该盒子结构中。
4. mdat
mdat代表了某个盒子图片编码( HEVC) 后的数据流.

概念确实是很绕。
[h1]三、动手实践[/h1]俗话说得好,实践出真理

作为程序员,对我来说首先当然是编译源码了
源码地址:
https://github.com/nokiatech/heif源码是Nokia(诺基亚) 技术人员用C++写的一个读写HEIF的库,极大的方便了我们进行二次开发

  • 下载源码
  1. git clone  git@github.com:nokiatech/heif_conformance.git
复制代码
2. 安装CMake
如果你电脑上安装过则跳过直接使用 【cmake】编译即可
3. 编译


编译完成,开始小试牛刀
新建demo工程,来一把小试牛刀
未完待续。。。。。

[h1]四、总结[/h1]总结下HEIF的优点
  • HEIF 图像格式压缩比高,在相同的图片质量情况下,比JPEG高2倍
  • 可以增加图像的深度信息、透明度、通道等图片辅助信息
  • 支持存放多张图片
  • 支持缩略图
  • 支持分块加载机制
HEIF作为下一代图像技术,目前的优势在iPhone上能体验的到,随着米10的发布,估计以后越来越多的android手机也会支持,大家一起期待。
[h1]五. 参考[/h1]以下是一些参考文章

5#
热心小回应  16级独孤 | 2020-2-14 23:36:00 发帖IP地址来自
视频编码技术从H.262到H.264到H.265,成功的将视频分辨率以可接受的码率从SD提升到HD再提升到现在的UHD。
而静态图像的压缩算法,再过去的十几年里,不能说没有长进。但是,JPEG雷打不动的牢牢占据主流市场。过去20年里,试图推翻JPEG地位的挑战者不算少,比如Google的WebP。
至于JPEG如此稳固的原因,无非是整个世界没有向前推进的动力。JPEG直到现在(2020年2月)依然能满足绝大部分消费内容的需求。1200万-2000万像素的图像文件体积普遍不超过10MB/张,在如今几十兆的移动网络速率、几百兆的家用宽带速率、个人电脑动辄2TB机械硬盘的条件下根本不是什么大问题。
为什么在这件事情上突然集体上进了呢?
2015年,索尼发布了4240万像素的a7R2。佳能发布了5060万像素的5Ds系列。
2018年,尼康发布了4575万像素的Z 7。
2019年,索尼发布了6100万像素的a7R4。手机大规模普及QuadBayer模式的4800万/6400万高像素传感器。小米联合三星出货了第一台一亿像素手机。
2020年,三星发布搭载108MP传感器的S20u,小米发布搭载108MP传感器的mi10Pro。
飙升的数据量,带来的是飙升的储存压力。a7R3全尺寸精细JPEG文件大小在20MB上下,如果通过RAW多帧堆栈再导出,文件体积超过30MB不是问题。JPEG的压缩性能已经无法满足人类的需要。硬盘虽然廉价,但真的架不住长期这么玩。
除此之外,JPEG的以下缺陷也逐渐难以被人接受。
  • 无法储存图像序列(进而做成动态图片)
  • 无法充分利用多核运算提升加载速度
人类真的需要一个适应更高数据量满足更高画质需求的分发格式。
为什么是HEIF?
HEIF针对性的弥补了上述几个缺陷:
  • HEVC非常优秀,那么我们就用它作为压缩编码,专门针对静态图片和短动态图像设计一个文件格式(改进了压缩算法)
  • 支持最高16 bit色深
  • 允许存单张图片或者图片序列,取代画质更没眼看的GIF(避免了格式混乱)
  • 可以把图片切成好几块,分别编码,存好它们之间的位置关系,加载的时候直接并行解码最后再按位置合成。(计算得以并行化)
  • 广泛兼容元数据格式
更详细的技术信息可以阅读https://zhuanlan.zhihu.com/p/35847861
简单的测试
通过macOS自带的Preview,将一张分辨率为28730x18784的照片分别导出成最高质量的JPG与HEIF(HEIC)。



输入的TIFF文件为699.3MB,输出的JPG文件大小在467MB左右,HEIC文件大小则是300MB。(以macOS换算方法计)
注:HEIC导出质量调整滑块右端为无损,具体参数有待研究。
迁移的益处
  • 广泛实现的JPEG编码器只支持到8 bit色深,改用HEIF后有望将照片成品以更高的色深保存。
  • 相机输出的非RAW格式拥有了更大的后期调整空间。
  • 同样的画质更小的体积,或者同样的体积更好的画质。
谁跟进了?
截止2020年2月:
  • 苹果:搭载iOS 11及更高版本的iPhone 7及后续机种、搭载macOS High Sierra及以上版本系统的Macintosh可以编解码,搭载iOS 11及更高版本的设备可以解码;
  • 三星Galaxy S10/S20系列
  • 小米10系列
  • 佳能1Dx III支持10bit HEIF文件输出
  • Windows 10可通过下载扩展增加HEIF支援。
如何跟进?
Nokia开源了一个封装库的实现、一个JavaScript解码器的实现。有需要的开发者可以通过Nokia的仓库拖取相关源代码。https://github.com/nokiatech/heif
Struktur AG开源了一个HEIF的读写库libheif,可以从https://github.com/strukturag/libheif获取,macOS用户也可以从homebrew安装。(example含一个encoder)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:342608
帖子:68643
精华:1
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP