备忘,以后用到好查,转:https://segmentfault.com/a/1190000015947004?utm_source=tag-newest

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)

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 的最大像素限制
支持缩略图
支持透明像素
分块加载机制

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

主要图片格式对比

Nokia HEIF?

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

Demo?

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

Demo最终实现设想?SDK方式

Android P对HEIF的支持情况?

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

有几个关心的问题:
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

兼容性问题?

由于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的手机太少

专利 专利 专利

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

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

Android P

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

Android P新的图片格式 HEIF 调研相关推荐

  1. 【Android 安装包优化】WebP 图片格式兼容与性能 ( Android 中的 WebP 图片格式兼容问题 | Android 中的 WebP 图片格式性能 )

    文章目录 一.Android 中的 WebP 图片格式兼容问题 二.Android 中的 WebP 图片格式性能 三.参考资料 一.Android 中的 WebP 图片格式兼容问题 在 Android ...

  2. 【Android Gradle 插件】自定义 Gradle 插件优化图片 ① ( Android 中的 WebP 图片格式使用 | WebP 格式转换 | WebP 参考文档 )

    文章目录 一.Android 中的 WebP 图片格式使用 二.WebP 格式转换 三.WebP 参考文档 Android Plugin DSL Reference 参考文档 : Android St ...

  3. 定义一种新的图片格式.gnet

    本人希望csdn可以定义一种新的图片格式,因为csdn一直是互联网中坚力量 本人发现,传统的图片格式已经不适应互联网时代了!!!,故本人发起定义一种新的图片格式,后缀名为 .gnet 互联网上的图片大 ...

  4. APNG面向移动与未来的新动画图片格式揭秘与制作全技巧

    动画应用的五个阶段 第一阶段:上古阶段 第二阶段:轻应用阶段 第三阶段:脚本动画时代 第四阶段:富媒体精细呈现阶段 矢量脚本动画的集大成者-Bodymovin和Lottie APNG方案 什么是apn ...

  5. android 文字转化为图片格式,Android 文字生成图片

    一直在看别人写的文章,而自己却不敢执笔来写,一是怕写得不好,二是平时也不太有写文章的习惯,所以总感觉看别人写就好啦,但是最近工作遇到点问题,本以为很简单的,但是奈何解决起来还是比较麻烦的 把Andro ...

  6. android文本框带图片格式,android 带图片的文本框

    基本原理 自定义一个IconTextView类继承自TextView,添加iconsrc属性,表示图片. 重新onDraw方法,将图片绘制到textVIew前面,然后将textView右移. 废话不多 ...

  7. android文本自动添加图片格式,Android中多行文本末尾添加图片排版问题的解决方法...

    前言 最近在项目中需要在某个多行英文文本末尾增加一个图片,尝试了很多方法,最后用了一个比较Tricky的方法解决了,当然这种方法不一定是最好最优的解决办法,记录一下. 问题 如果直接使用drawabl ...

  8. android视频格式添加,Android添加新的视频格式--媒体库扫描

    需求:在mediaprovider数据库中添加.mov后缀格式的视频文件 可以使用工具MediaInfo_GUI_0.7.67_Windows.3243836749.exe 查看mov文件编码格式类型 ...

  9. android中图片格式png,jpg和webp

    转载自:https://blog.csdn.net/fzx19910714/article/details/72877934 大家都知道同样的尺寸,png格式的图片要比jpg图片大很多,为什么Andr ...

最新文章

  1. 基于Python操作ElasticSearch
  2. SpringMVC入门案例细节分析
  3. maven打war包
  4. 你不得不了解的10款服务器监控工具
  5. linux服务器部署laravel出现putenv() has been disabled for security reasons
  6. 计算机模拟定点突变,分子模拟对接和定点突变提高10β–去乙酰巴卡亭-华南农业大学学报.PDF...
  7. VMware 下Linux无法上网 新增支持WIFI方式 无线连接
  8. python3获取网页内容_python3获取一个网页特定内容
  9. 微服务架构案例(06):通过业务、应用、技术、存储方面,聊聊架构
  10. 创建预编译头 Debug 正常 Release Link Error:预编译头已存在,使用第一个 PCH
  11. SweetAlert详解
  12. 关于SESSION如何产生,由谁产生,保存位置的记录
  13. 菜鸟教程nginx视频_Nginx教程(一) Nginx入门教程
  14. 火狐中国区linux无法同步,教大家火狐浏览器同步数据失败的几点原因
  15. 查询学过“叶平”老师所教的所有课的同学的学号、姓名
  16. 链表:递归中删除结点不发生断链
  17. 连接WiFi电脑却无法上网
  18. czl蒻蒟的OI之路4
  19. 9、Vue自定义指令
  20. SpringBoot - Lombok使用详解1(基本介绍、安装配置、var和val)

热门文章

  1. druid数据库连接池监控页面
  2. PyCharm的使用
  3. 视频教程-微信公众号开发-微信开发
  4. 电子科技大学申请计算机博士条件,电子科技大学申请考核制博士研究生招生工作试行方案...
  5. CSS rgb颜色产生原理 颜色对照表
  6. vue computed计算属性
  7. Allan Zhang,区块链里最固执的创业者
  8. Windows安装git客户端
  9. 目标检测论文阅读:YOLOv1算法笔记
  10. 化学人学python有前途吗-浅析材料化学在生活中的应用