【HEIF研究笔记一】HEIF简介和文件结构分析

HEIF

HEIF的简介可以参考这篇文章(作者金山视频云,首发简书 Jianshu.com)和Nokia技术介绍,介绍得比较详细。官方的相关文档可以在NOKIA的官网找到。学习HEIF的资料在此做一些记录避免遗忘,同时有些问题也可以一同探讨。
两个重要的标准文档:ISO base media file format ISO/IEC 14496-12:2015和HEIF standard ISO/IEC 23008-12:2017。
HEIF 图像的一些示例。

简介信息

从官网页面进入一个简介链接,摘录一些信息:

  • 在ISOBMFF中,连续或定时的媒体或元数据流形成一个track,而静态媒体或元数据则存储为items。
  • 静止图像存储为items。 所有图像项都是独立编码的,并且在解码时不依赖于任何其他项。 同一文件中可以包含任意数量的图像items。
  • 图像序列存储为track。 图像sequence track可以指示图像序列轨道以定时序列或以非定时方式显示,例如图像集合。 当图像之间存在编码依赖性时,可以使用图像sequence track代替图像items。
  • 一个文件内可以可以同时包括items、tracks和其他的媒体数据,比如文本或者音频文件。
  • 符合ISOBMFF的文件由一系列称为box(es)的数据结构组成,每个数据结构包含一个四字符代码(4CC)用于指示:box的类型,box的大小(以字节为单位)以及box负载的数据类型。Box(es)可以嵌套,即一个box可以包含其他boxes。 ISOBMFF和HEIF在允许的boxes顺序和层次结构上指定约束。

码流结构

待更新

FileTypeBox

符合HEIF标准的文件以ISOBMFF标准中定义的FileTypeBox开头,FileTypeBox包含文件所符合的brand(s)列表。 由于FileTypeBox位于文件的开头,因此它向媒体播放器提供了易于访问的文件内容指示。 每个brand都有其唯一的四个字符代码标识。 Brand标准可以包括符合该标准的文件和支持该标准的文件播放器的要求和约束。FileTypeBox中包含的brand允许符合brand要求的播放器播放文件。
【HEIF研究笔记一】HEIF简介和文件结构分析_第1张图片

图像角色(Image roles)

  • 封面图
  • 缩略图
  • 辅助图:alpha通道或者深度图,一般不用于显示。
  • 主图:既不是缩略图也不是辅助图,通常是可用于显示的全分辨率图像。
  • 隐藏图:不用于显示的图像,可作为派生图的输入图像。
  • 预生成图:已经从其他图像生成的已编码图,如从包围曝光的图像集中获得的高动态范围图像。
  • 已编码图:图像的已编码表示。
  • 派生图:以“通过指示操作对指示的输入图像”的形式存储在文件中的图像,并且可以通过对指示的输入图像执行指示的操作来获得图像。通俗地说就是不直接存储在文件中,但是可以从中间件通过诸如拼接等操作获得。

图像的性质

描述性

描述性属性提供有关图像项目的信息,而无需对图像本身进行修改。

变换性

变换属性提供有关需要在图像项上进行的变换修改的信息。
【HEIF研究笔记一】HEIF简介和文件结构分析_第2张图片

派生图

派生图像可以进行非破坏性图像编辑,其中原始编码图像保留在文件中,而新图像(称为派生图像)可以通过指定应用于一个或多个输入图像的转换操作来引入。HEIF指定用于将派生图像作为items存储的通用结构,以及一些特定类型的派生图像。派生图像也可以具有描述性或变换性图像属性。类型为“ dimg”的项目引用指定了派生图像的输入图像。输入图像可以是编码图像或派生图像。

比较重要的是Image Grid这个应用,在c066067_ISO_IEC_23008-12_2017中的6.6.2.3节有更详细的介绍。
【HEIF研究笔记一】HEIF简介和文件结构分析_第3张图片

图像元数据(Image Metadata)

HEIF文件允许存储可与图像和图像序列相关的元数据。 这样的元数据可以是与完整性检查,EXIF或XMP数据或MPEG-7相关的元数据有关的信息。 对于图像项目,此类元数据可以存储为元数据项目,并使用“ cdsc”项目引用来引用相关的图像项目。 对于图像序列,定时的元数据轨道可以引用带有“ cdsc”轨道参考的图像序列轨道。

图像序列(Image Sequences)

借助ISOBMFF继承的媒体轨道功能,具有特定相关性的图像(例如,图像连拍或类似电影的动画)可高效地存储在HEIF文件中。 这样的图像称为图像序列,它们可以与图像项驻留在同一文件中。 下表列出了当前定义的图像序列轨道的作用。
【HEIF研究笔记一】HEIF简介和文件结构分析_第4张图片
HEIF支持使用帧间预测来紧凑存储图像序列。 此外,解码时可能需要更快地访问单个图像,并且需要在不影响任何其他图像的情况下编辑单个图像的能力。 因此,HEIF包括以下两个功能:

  • CodingConstraintsBox指示适用于所有相关样本的预测约束。 例如,可以指示帧间预测的参考图像都是帧内编码图像。
  • DirectReferenceSamplesList使用ISOBMFF的样本分组机制对参考样本进行逐样本列出。 该特征使得能够仅解码访问特定样本所需的那些样本(也就是随机访问),并且避免了从某个帧内编码图像开始对目标图像与该帧内图像之间每个样本都需要解码的需要。

Multi-Image Application Format (MIAF)

多图像应用格式(MIAF)规范定义了其他约束条件和互操作性点,以确保更高的互操作性,同时完全符合HEIF格式。

个人理解MIAF是HEIF的一个带约束子集,暂时不研究它,后续有需要再更新相关内容。

你可能感兴趣的:(HEIF)