Android P新的图片格式 HEIF 调研

HEIF

HEIF是什么?
HEIF format & features?
HEIF优缺点,商业价值?
Nokia HEIF?
Android P对HEIF的支持情况?
IOS对HEIF的支持情况?
兼容性问题?

HEIF是什么?

HEIF是一个新的图片格式
不同于jpeg的是,heif是容器和编码分开的,编码可以是hevc,h264,vpx等(解码一样),由于容器和编码分开的设计,heif里可以放很多信息,包括多张图片,音频,文本等

它定义了封装格式,编码格式,以及图像的展示方式,甚至涉及到与用户如何交互
所以一套完整的 HEIF解决方案,一定是平台相关的,不只包含了拆包封包,还包括了编解码,展示,这些都需要与平台的接口整合

HEIF format & features?

Format:
compatible with the ISO Base Media File Format (ISOBMFF, ISO/IEC 14496-12)
clipboard.png

Features:
Storage of burst photos.
Support for simultaneous capture of video and still images, i.e. storing still images and timed image sequences into the same file.
Efficient representation of animations and cinemagraphs.
Storage of focal and exposure stacks into the same container file.
Storage of images derived from other images of the file, either as derived images represented by non-destructive image editing operations or as pre-computed derived images.
Support for storing other media, such as audio and timed text, into the same container file with timed image sequences and synchronizing their playback.

HEIF优缺点,商业价值?

优点:
压缩比高,在相同的图片质量情况下,平比 JPEG 高两倍
能增加如图片深度信息,透明通道等辅助图片。(苹果正是通过这个就能实现动态的调整图片的景深)
支持存放多张图片,类似相册和集合。(实现多重曝光的效果)
支持多张图片实现 GIF 和 livePhoto 的动画效果
无类似 JPEG 的最大像素限制
支持缩略图
支持透明像素
分块加载机制

缺点:
应用不广泛,兼容性不好,平台应用都要支持适配,产业链条长

主要图片格式对比
clipboard.png

Nokia HEIF?

Nokia的实现只有read/writer,相当于协议的拆包封包,其他都没有
它不是一个完整的解决方案
在Android上实现这个解决方案需要较大投入,两种实现方式都要较大投入:
1.嵌入android框架
2.独立SDK
clipboard.png

Demo?

便于理解HEIF和Nokia API
实现了一个Demo,有些类型的显示方式需要投入较大精力比如grid,overlay实现不完全但是可以展示图片,static,sequences都是正常展示的
clipboard.png

Demo最终实现设想?SDK方式

clipboard.png

Android P对HEIF的支持情况?

Android P只支持静态的显示HEIF,无论什么类型的HEIF
对HEIF的解析是OK的,不论什么类型都可以解析出
只能封装静态的HEIF
由于HEIF的编解码器以hevc,avc,aac为主所以decode和encode一般都是支持的
支持HEIF扫描
clipboard.png

有几个关心的问题:
HEIF的显示,ImageDecoder/BitmapFactory + ImageView
HEIF转Jpeg,BItmapFactory
YUV,Surface,Jpeg转HEIF,androidx.heifwriter.HeifWriter
在这里HEIF的主要价值是高压缩率,其他带来的价值没有得到体现,或者只是google试水

IOS对HEIF的支持情况?

支持静态heif的展示,不支持sequence,其他格式都是静态展示
从测试情况看不支持解析sequence类型
所以也不支持sequence类型的扫描
屏幕快照 2018-08-14 下午2.25.08
clipboard.png

兼容性问题?

由于HEIF的使用还不像jpeg那么广泛,所以在用户使用环境中会有兼容的问题
比如我的手机支持HEIF,但是你的手机或电脑不支持,或者我想分享到朋友圈,微信不支持等等

苹果最先实现了HEIF商业化,它的一些做法可以借鉴:
1.分享的时候比如朋友圈,email等,把HEIF转成Jpeg
2.设备之间共享或多屏互动的时候,会查询对方是否支持HEIF,不支持的情况下转换成Jpeg

平台支持,应用适配需要一个过程

HEIF转Jpeg效率问题?
在Android P pixel XL上用bitmapfactory的方式试了下,resolution 1440x960 quality 100, 耗时在200ms左右,不同的机型CPU等效果是不一样的这个后边再次统计下,现在市面上Android P的手机太少
clipboard.png

专利 专利 专利

之前介绍了heif format是跟mpeg4-12兼容的,那mpeg4parser是可以解析heif的大部分情况的

通过mpeg4 extractor或者mp4parser是不是可以避免专利方面的问题呢,暂时不清楚,可能会部分避开,但是heif定义的展示方式可能避不开,也许是google只实现了静态展示和封装的原因,纯属猜测。
clipboard.png

Android P

上一节提到heif format是跟mpeg4-12兼容的
Android通过mediaextractor/mpeg4extractor/mediamux/mediacodec来解析解码和编码封装heif
Android8.0实际上就已经有代码加入了

### 回答1: 你可以使用图像处理软件或在线工具将PNG图片转换为HEIF格式。步骤如下: 1. 打开图像处理软件,例如Adobe Photoshop。 2. 选择要转换的PNG图片,然后点击“文件”菜单中的“保存为”选项。 3. 选择HEIF格式,并确保选择了正确的参数(例如图像质量)。 4. 按照提示保存文件即可。 如果您不想使用图像处理软件,也可以使用在线工具将PNG图片转换为HEIF格式。您可以搜索“在线PNG到HEIF转换器”,找到合适的工具,并按照提示上传和转换您的图像即可。 ### 回答2: 将PNG图片转换为HEIF格式可以通过以下步骤进行: 1. 下载并安装图像转换工具:你需要下载并安装一个支持转换HEIF格式的图像转换工具,比如XnConvert、Adobe Photoshop等。 2. 打开图像转换工具:运行图像转换工具并选择打开PNG图像文件。 3. 设置输出格式为HEIF:在图像转换工具中,找到输出格式选项,选择HEIF作为输出格式。 4. 调整图像参数(可选):你可以根据需要调整一些图像参数,如图像质量、分辨率等。这些参数根据不同的图像转换工具可能会略有不同。 5. 开始转换:点击开始转换或保存按钮,开始将PNG图像转换为HEIF格式。这个过程可能需要一些时间,具体取决于你的图像大小和计算机性能。 6. 保存HEIF图像:在转换完成后,选择保存HEIF图像到你指定的目录。 注意事项: - 在转换PNG图像为HEIF格式时,一些图像细节可能会发生变化,所以最好在转换后进行一次检查,确保图像质量符合预期。 - 某些图像转换工具可能需要付费购买才能支持HEIF格式的转换,所以在选择转换工具时要注意。 ### 回答3: 将PNG图片转换为HEIF格式有多种方法,以下是一种常用的方法: 首先,你可以从互联网上下载一个专门的软件来进行转换。一些可用的软件包括HEIC Converter、iMazing HEIC Converter等。下载并安装软件后,打开软件界面。 然后,将你想要转换的PNG图片拖拽到软件的界面上,或者点击软件界面上的添加图像按钮选择图片。 接下来,设置输出选项。这些选项通常包括选择输出文件夹、重命名输出文件、调整压缩质量等。根据你的需求进行选择和调整。 最后,点击开始转换按钮开始转换过程。等待软件将PNG图片转换为HEIF格式,转换时间取决于图片的大小和软件的性能。 转换完成后,你可以在输出文件夹中找到转换后的HEIF格式图片。你可以使用任何支持HEIF格式的设备或软件来打开和查看这些图片。 需要注意的是,HEIF格式图片相对于PNG格式图片,可以更有效地压缩图像,减小文件大小。此外,不是所有的设备和软件都支持HEIF格式,因此,在使用HEIF格式时需要确保其兼容性与可用性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值