2011-05-22 42 views
2

我有一個關於基本的wav文件數據塊的問題。我知道數據塊部分中的每2個字節代表單聲道,左右聲道交替存儲,但我仍然不知道如何理解2個字節的值。基本的wav數據塊

它是高還是低?

  • value 0000 =>最低?
  • value FFFF =>最高?
  • 值8FFF =>沒有聲音?

如果是這樣,當我想以減少體積的50%,是所有我剛纔classfy 和divive 2低和高呢?

+0

我修改了你的問題,使它更具可讀性。好問題,但。 – 2011-05-23 12:43:39

回答

1

WAV文件可以包含不同位深度和編碼的採樣,但最常用的是16位PCM。對於WAV文件中的16位PCM數據,每兩個字節應該被解釋爲短(即有符號的雙字節數字)。在WAV文件中,樣本總是「小端」。如果你用一種語言標記你的問題,有人可能會提供一些簡單的示例代碼。在C/C++中,您可以將從文件中讀取的數據陣列轉換爲(short *),從而可以輕鬆訪問每個樣本。

要回答你的問題的第二部分,是的,你可以減少每個樣品的值減半。

+0

我試圖從下面的代碼中使用原始的wav音頻獲取信號的所有正面和負面的組成部分... https://gist.github.com/anonymous/9937987..am我做的正確嗎? – 2014-04-02 16:47:31

0

你的理解似乎很好。我能想到的唯一的事情就是一個字節是最重要的字節,而其中一個字節是最不重要的。除此之外,你看起來很棒。

而你的問題沒有問題(反正我認爲!)雖然如果你要問一個特定的編程問題,可能會得到更多有用的答案,但我可以看到這可能是不可能的。

+0

我可以問你哪一個是最不重要的字節,爲什麼? – 2011-05-23 00:27:49