簡體   English   中英

8位(每個樣本位數)PCM WAV文件可以包含多個通道嗎?

[英]Can 8-bit (bits per sample) PCM WAV files contain more than one channel?

我意識到忽略這種想法對我來說很糟糕,因為從這個角度number of channels ,我沒有閱讀有關bits per sample number of channelsbits per sample任何信息。 我的原因是我不確定2通道8位PCM文件的樣例如何。

1 sample = 1 channel嗎? 1 sample = 4 bits (left) + 4 bits (right)

上下文:我正在編寫一個讀取WAV文件的程序,我想到如果遇到8位PCM WAV文件,並且我的代碼以這種方式讀取(請參見下文),則我的程序將無法正確讀取多個通道8位PCM WAV文件。


// read actual audio data after obtaining
// the headers
// audioData is a vector of vectors (1 vector per channel)
uint32_t temp;
while( !feof(wavFile) ) {
    for(uint16_t i = 0; i < numChannels; i++) {
        temp = 0;
        fread(&temp,sizeof(uint8_t),1,wavFile);
        audioData.at(i).push_back(temp); 
    }
}

該結構通常描述WAV音頻數據的格式,在MSDN的此處描述: WAVEFORMATEX結構

  • PCM音頻的“樣本”是一個數據塊,其中包括所有通道
  • nBlockAlign值是對應於樣本的此類塊的大小(以字節為單位)
  • 樣本以nSamplesPerSec值定義的特定固定速率進行
  • 每個樣本塊由nChannels值組成,每個wBitsPerSample

也就是說,每個樣本有8位的兩個通道文件對於音頻數據的每一秒都有nSamplesPerSec對,每對文件中的每個通道都包含兩個8位值。

是WAV文件中存在此結構的示例-盡管這是使用24位/樣本的更為復雜的情況,但您應該明白這一點)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM