村里的姑娘韩国

数据格式概述

Khronos数据格式规范

Khronos数据格式规范提供了一种开放的,免版税的,机器可读的方式来描述数据的布局,从而简化了系统组件之间以及平台之间的通信。标准表示形式还简化了文档编制,并有助于消除其他规范中的歧义。 Khronos数据格式规范支持解释像素内容所需的所有常见像素格式和关联的元数据,并且可扩展以允许用户和第三方附加其他元数据。

Khronos数据格式规范一目了然

Khronos数据格式规范于2015年7月29日发布。

专有代表权问题

计算机系统的组件通常在固定大小的小型单位(例如像素,法线或坐标)上工作,这些单位可能有几种可能的表示形式。过去,每个API都倾向于使用其自己的方案来描述其布局。这些方案通常枚举每个选项,然后需要显式实现。是否支持以这种方式实现的格式-没有方便的方法来编写可以支持以前从未见过的各种输入的灵活代码。添加支持每种格式的新功能,比较各种格式以及添加对新格式的支持非常耗时。

数据可能需要与系统的其他部分共享,这意味着需要专有表示之间的转换才能在每个接口之间进行通信。这种翻译需要大量的程序员工作,并且容易出错。这项工作依赖于文档的质量,而文档的质量通常是易于理解的并且可能不精确-格式的描述使文档本身更加复杂。

API通常设计为仅支持可能格式的子集,并就如何解释数据做出特定于域的假设。如果以后需要额外的灵活性(例如,压缩格式或多平面YUV),则比起初设计时,改造额外的灵活性可能会更加复杂。缺乏用于互操作的标准方案也使得元数据的管理变得笨拙。例如,应用程序和用户界面都可以理解颜色空间,但是如果必须通过不具有此概念表示形式的库传递图像,则正确表示图像所需的信息可能会丢失。

最后但并非最不重要的一点是,缺乏描述数据的标准方法通常会导致开发人员之间的误解和误解。当每个团队都有自己的命名约定和隐式假设时,可能会浪费大量时间来解决混乱问题。

描述性标准如何使事情变得更好

Khronos的规范旨在解决以前的数据格式方案中遇到的问题:

  • Khronos数据格式规范为描述性的
    • 该表示是机器可读的,允许开发工具并减少对文档的依赖
    • 格式由许多可以独立检查的特征描述
    • 软件和硬件可以轻松支持各种相关格式,包括开发人员未知的格式,而无需每种格式都进行明确解释
  • Khronos数据格式规范为标准化的
    • 该规范提供了规范且明确的描述,不依赖于文档的质量
    • 可以支持大量使用的单一表示意味着该规范可以在API之间形成桥梁
  • Khronos数据格式规范为灵活
    • 该规范可以支持大量通用数据表示形式,并有扩展的空间
    • 通过从一开始就支持多种格式,即使是晦涩的数据布局在逻辑上也是一致的,而不需要特殊的处理
    • 描述符支持针对用户和硬件的特定目的的扩展,描述符的每个用户都不必理解这些扩展
    • 描述符已版本化,因此可以在规范的未来版本中添加其他功能
  • Khronos数据格式规范为确定的
    • 该规范显示了一种单一清晰的方式来描述布局,避免了其他方案中的冗余
    • 格式描述符包含解释像素值所需的几种不同类型的元数据,其中许多在某些API中是隐式的
    • 提供信息以填充格式描述符可能需要开发人员解决歧义并确定假设

模块化,灵活性和可扩展性

API对应

Khronos数据格式规范定义的格式描述符足够小,简单,可以进行快速解释和轻松复制。但是,不希望在每次对实时API的函数调用时都将解释这些格式描述符,也不需要为了使用此标准而重写现有软件或硬件。大多数API将继续使用枚举方案来描述格式,但是可以选择使用此枚举作为标准格式描述符数组的索引。这允许在通用代码需要时或在API外部传输数据时访问描述符,同时在限制入口点使用的可能格式范围时保留最小的枚举。通过使此映射数组可扩展,可以增加更多的灵活性。在内部为OpenGL,Op enVX和Vulkan API生成了符合Khronos数据格式规范的描述符,证明了该方案的可能性。

恶魔般的