【问题标题】:Why Use Both Little and Big Endian in WAV Header为什么在 WAV 标头中同时使用 Little Endian 和 Big Endian
【发布时间】:2014-11-27 22:52:21
【问题描述】:

多年来,或者至少是我所听到的,关于是使用大端还是小端一直存在很多争论。但是,我想知道你什么时候看到这两个?奇怪的问题,对吧?

在必须解码 WAV 文件时,我注意到标头由不同的段组成,这些段可以是大端或小端。 https://ccrma.stanford.edu/courses/422/projects/WaveFormat/

在此处指定的论坛中,它指定了对大部分文件使用 little-endian 的原因(Why are an integers bytes stored backwards? Does this apply to headers only?
'WAV 文件是 little-endian(最低有效字节优先),因为这种格式起源于在基于英特尔处理器的机器上运行的操作系统,这些机器使用 little-endian 格式来存储数字。'

但是,我还没有找到为什么还要使用大端序?

提前致谢

【问题讨论】:

  • 仅供参考,斯坦福页面已不存在。

标签: audio wav endianness


【解决方案1】:

说块 ID 是大端序有点牵强。在实践中,ID 是 4 个字符的 ASCII 字符串(未终止),例如'RIFF''fmt ''data'。如果您将自己限制为字符串比较,那么您可以避免关注字节顺序。因此,waveformat 结构通常在 c 中定义如下:

typedef struct WAVHEADER
{
    char riff[4];
    int  chunkSize;
    etc...
}

【讨论】:

    猜你喜欢
    • 2019-06-30
    • 2020-12-01
    • 2018-05-15
    • 2022-06-10
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    相关资源
    最近更新 更多