[問題] 聲音的bit轉換。。
對聲音不是很清楚啊,還請大大指點:
現在有聲音 原為32 bit
想costdown為 16 bit ,甚至8 bit
請問程式要怎寫呢??
我是假設原本聲音為 32bit ,可用int(DWORD)表式
16就是short(WORD)
所以
int input;/*輸入*/
short output;/*輸出 被cost down的結果*/
output = (short)( SHRT_MAX*((double)input/INT_MAX) )
請問是這樣轉換的嗎
還有wave裡面的資料型態到底是signed還是unsigned啊
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.158.204
推
11/26 19:15, , 1F
11/26 19:15, 1F
→
11/26 19:23, , 2F
11/26 19:23, 2F
推
11/26 19:38, , 3F
11/26 19:38, 3F
→
11/26 19:40, , 4F
11/26 19:40, 4F
真的不是很懂啊。
32bit的最大值可以寫成 0xffffffff, 不過最大值不是 -INT_MAX嗎
還是聲音訊號是用unsigned ?
那我上面寫的 output = (short)( SHRT_MAX*((double)input/INT_MAX) )
該怎麼修正呢?
還請釋疑 謝謝。
※ 編輯: DrStein 來自: 58.115.143.194 (11/26 23:48)
→
11/27 21:48, , 5F
11/27 21:48, 5F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 4 篇):
問題
2
5