时代新宠儿——HEIF图像格式:节省50%空间
HEIF全称High Efficiency Image File Format(高效图像文件格式),是一种高效的图片封装格式,文件名通常为.heif或者.heic后缀。HEIF能够在保持画质不变的前提下缩减至少50%的文件体积,被誉为JPEG终结者。
使用iPhone的用户应该比较熟悉HEIF,苹果公司早在2017年全球开发者大会 WWDC 上详细介绍了HEIF的特点和优势,甚至将HEIF作为iOS系统默认的照片存储格式,并形容HEIF为“JPEG is ysy big but HEIF is brief."。(JPEG很大,HEIF却很精小)。在2018年Windows 10系统、Android 9系统以及三星Note9开始支持HEIF图像格式,今年发布的小米10系列、OPPO Find X2系列,也支持了HEIF图像格式,而对象存储COS近年来逐步集成了HEIF转码的高级图片压缩技术。
为什么HEIF如此备受关注呢?它和JPG相比优势点在哪里?
文件体积减少50%
HEIF采用了最先进的H.265视频编码技术,可以大幅度减少文件体积,在保证图像视觉效果不变的前提下,如下图对比,减少50%的图像大小。HEIF不单只比JPG有更小的体积,在较低体积时,JPG容易失真(如下图的蚊式噪声),而HEIF基本看不出失真。


画质更好,色深更高,颜色更丰富
JPG格式色深通常为8bit,而HEIF格式拥有最高16bit色深,大部分手机和电脑屏幕支持1600万色即8bit屏幕,HEIF格式则要求上亿色屏幕,这也是过去几年HEIF发展受限的原因。但近年来,随着图片拍摄性能的成倍增长,不少手机都支持10亿色屏幕的HEIF格式,如iPhone 12 Pro、小米骁龙855等,使图像可以展示更多的画面细节和色彩过渡。
记录内容更丰富,更灵活
相比JPG格式只能存储静态图像、EXIF和元数据等信息,HEIF格式还能存储景深、透明通道等,甚至可以存储动态图像、视频、音频等,所以有更丰富的后期处理空间。如HEIF支持透明图层、拍照的景深图像等都可以存储成数据作后期修改。随着手机性能越来越强大,可以在拍照时保存视频和录音,但因为文件容量和格式等限制,图像和音视频无法合成一个文件,而HEIF格式的照片、视频、音频可以封装成单一文件。
从90年代到现在,JPEG技术及标准被沿用了近三十年,虽然有许多工程化的优化,但核心思路及算法并没有本质的改变,也就是压缩率收益基本没太大提升。而这三十年间,数字图像从原来的240P、320P、480P,发展到现在动则1080P、2K、4K,图像数据翻了几十倍甚至上百倍,显然JPEG格式已经逐渐不能满足日新月异的图像需求。而HEIF早在2015年已开发完成,为什么直到近年来才开始展露头角,阻碍HEIF发展的关键问题之一便是算力。在HEIF提出的时代,常见的转码服务器,最多只能提供延时在200-300ms左右一张1080P图片的编码能力。在这种情况下,横向对比延时只在10ms级别的JPEG,HEIF可能就没那么香了。
但随着硬件能力的进步及工程算法的发展,HEIF在目前常见的服务器上已经缩减到150ms以内,考虑上动则几十核的服务器CPU,单台服务器的QPS已经可以达到120-500左右。如果考虑上GPU的硬件编码能力,单台异构服务器可能能达到上千QPS的能力。如今面临越来越强烈的HEIF诉求,也逐渐出现了包括ASIC、FPGA等实现,而这类实现已经可以将QPS提升到单卡轻松破千的水平。然而无论是购置专用服务器还是相应的硬件运维,对公司及企业来说,都是一笔不菲且风险较高的投资,且这还不说面临业务增长的横向扩容、冗余处理等问题,即使不考虑折旧率和运维等问题,如何充分发挥算力或最大化收益,依然是个艰巨问题。
因此,对于变革性的HEIF技术而言,最好的方法便是紧跟着上云的潮流,通过成熟的云服务供应商提供对应的PaaS能力,将运维、升级、扩容、冗余、均衡等问题统一交给可信可靠的大型云服务供应方。云服务商一方面有动则万核万卡的服务器阵列,提供高效稳定且可弹性伸缩的能力,另一方面由于云服务商本身接入海量的业务及客户,因此服务器采购、运营等成本最终均摊后到最后的使用者身上便可量化到极为廉价的按量收费或按次收费。这对云服务商和接入的公司企业来说,是一个双赢的局面。
截至目前,能提供成熟HEIF转码能力的云服务商仅有以腾讯云对象存储COS在列的寥寥几家。其中,在适用性、硬件投入、稳定性、性能等方面,COS的处理能力毫无疑问都是第一梯队。目前,以COS标准算力提供的HEIF转码图片压缩功能延时性能(不计算网络传输延时)大致如下:

如果采用COS更高主频的机器,响应的延时还会下降20%-40%,这还没考虑COS即将上线的硬件转码能力。
近年,越来越多的终端设备开始原生支持HEIF转码,如前面提到的苹果、小米等设备厂商,极大地推动了HEIF生态圈的完善,给软件开发者、业务方提供了便利,为HEIF格式的推广打下了坚实的基础。可能适配率只有10%、20%的时候,开发者、企业们仍然在纠结,但一旦超过50%,那不需要再做任何推广普及,在利益驱动下,只会一拥而上,拥抱HEIF。随着越来越高的适配率,以及终端高性能解码的支持,HEIF替代JPEG几乎是必然的趋势。
时代新宠儿——HEIF图像格式:节省50%空间的更多相关文章
- 人力节省 50%,研发效能提升 40%,阿里 Serverless 架构落地实践
作者 | 万佳 嘉宾 | 杨皓然(不瞋) 导读:云的下一波浪潮是什么?杨皓然称"是 Serverless".作为一名阿里老兵,他早在 2010 年即加入阿里云,曾深度参与阿里云飞天 ...
- 西安活动 | 4月20日「拥抱开源,又见.NET :云时代 • 新契机」
云计算日渐兴起,成为提升企业效率和生产力的最终解决方案,而云时代也为软件开发模式带来了翻天覆地的变化.可以说 .NET Core就是这个时代催生的产物.自2016年 .NET Core 1.0 发布以 ...
- 成本节省 50%,10 人团队使用函数计算开发 wolai 在线文档应用
作者: 马锐拉 我们的日常工作场景几乎离不开"云文档".目前,人们对于文档的需求再不仅仅是简单的记录,而扩展到办公协同.信息组织.知识分享等.在国内众多在线文档中,wolai 因为 ...
- JS高级---构造函数通过原型添加方法,原型的作用: 共享数据, 节省内存空间
JS高级---构造函数,通过原型添加方法,原型的作用: 共享数据, 节省内存空间 构造函数 //构造函数 function Person(sex, age) { this.sex = sex; thi ...
- Kubernetes 新时代的宠儿
本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. Kuberne ...
- iOS 影音新格式 HEIF HEVC
苹果在 iOS 11 的发布会上,推出了两种新的媒体格式 HEIF HEVC,都是为了保证画质的情况下,大大减少视频.照片的大小. 一.简介 HEVC全称 High Efficiency Video ...
- 推荐一款自己的软件作品[豆约翰博客备份专家],新浪博客,QQ空间,CSDN,cnblogs博客备份,导出CHM,PDF(转载)
推荐一款自己的软件作品[豆约翰博客备份专 豆约翰博客备份专家是完全免费,功能强大的博客备份工具,博客电子书(PDF,CHM和TXT)生成工具,博文离线浏览工具,软件界面美观大方,支持多个主流博客网站( ...
- 大数据量场景下storm自定义分组与Hbase预分区完美结合大幅度节省内存空间
前言:在系统中向hbase中插入数据时,常常通过设置region的预分区来防止大数据量插入的热点问题,提高数据插入的效率,同时可以减少当数据猛增时由于Region split带来的资源消耗.大量的预分 ...
- Cuckoo hash算法分析——其根本思想和bloom filter一致 增加hash函数来解决碰撞 节省了空间但代价是查找次数增加
基本思想: cuckoo hash是一种解决hash冲突的方法,其目的是使用简单的hash 函数来提高hash table的利用率,同时保证O(1)的查询时间 基本思想是使用2个hash函数来处理碰撞 ...
- 物联网时代-新基建-ThingsBoard调试环境搭建
前言 2020开年之际,科比不幸离世.疫情当道.经济受到了严重的损失.人们都不幸的感慨: 2020年真是太不真实的一年,可以重新来过就好了!国家和政府出台了拯救经济和加速建设的利好消息.3月份最热的词 ...
随机推荐
- springboot起步依赖
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot ...
- 使用GRUB Multiboot2引导自制操作系统
使用GRUB Multiboot2引导自制操作系统 前言 之前花了一周时间,从头学习了传统 BIOS 的启动流程.惊讶于背后丰富的技术细节的同时,也感叹 x86 架构那厚重的历史包袱.毕竟,谁能想到, ...
- find_sys_call_table和kallsysms_lookup_name的区别
find_sys_call_table 和 kallsyms_lookup_name 都可以用于查找内核符号,但它们的具体作用和使用场景有所不同.以下是两者的详细对比: 1. find_sys_cal ...
- day10-变量、常量、作用域及命名规范
变量 变量是什么?就是可以变化的量! Java是一种强类型语言,每个变量都必须声明其类型. Java变量是程序中最基本的存储单元,其要素包括变量名.变量类型和作用域. type varName [ ...
- HiT-SR:基于层级Transformer的超分辨率,计算高效且能提取长距离关系 | ECCV'24
Transformer在计算机视觉任务中表现出了令人鼓舞的性能,包括图像超分辨率(SR).然而,流行的基于Transformer的SR方法通常采用具有二次计算复杂度的窗口自注意力机制,导致固定的小窗口 ...
- docker对的tomcat、mysql、redis、nginx的安装
本章篇章主要讲解了docker对常用软件的安装说明 总体步骤:搜索镜像.拉取镜像.查看镜像.启动镜像.停止容器.移除容器 tomcat docker seacher tomcat//也可以在docke ...
- Mongo oplog理解
转载请注明出处: oplog(操作日志)是MongoDB中用于记录所有写操作的日志.它是一个特殊的集合,存储在副本集的主节点中.oplog用于确保副本集中的副节点与主节点的数据保持一致.当主节点执行写 ...
- web端ant-design-vue-Anchor锚点组件使用小节(1)
web端ant-design-vue-Anchor锚点组件使用小节.项目开发中如果要实现前端页面平滑滚动到指定的位置,Anchor组件是一个好的选择,灵活且平滑,能满足常见的项目需求.最近开发中幸运的 ...
- 在Lua中实现Rust对象的绑定
实现目标:能将Rust对象快速的映射到lua中使用,尽可能的简化使用. 功能目标 以struct HcTestMacro为例: 类型构建,在lua调用local val = HcTestMacro.n ...
- HTML常见的文本语义标签
列举HTML里一些常用的块内语义元素.可以通过F12来查看每个示例. <strong>:即"重点内容",通常是加粗,对应Markdown中的**加粗. 示例:归约数往往 ...