Re: [問題] 聲音的bit轉換。。
※ 引述《DrStein (啤酒肚)》之銘言:
: 對聲音不是很清楚啊,還請大大指點:
: 現在有聲音 原為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,
11/26 19:15
→
11/26 19:23,
11/26 19:23
推
11/26 19:38,
11/26 19:38
→
11/26 19:40,
11/26 19:40
真的不是很懂啊。
32bit的最大值可以寫成 0xffffffff, 不過最大值不是 -INT_MAX嗎
0xffffffff不是-1這數字嗎?
還是聲音訊號是用unsigned ?
那我上面寫的 output = (short)( SHRT_MAX*((double)input/INT_MAX) )
該怎麼修正呢?
& 0xFFFF 為何要按位,與1做與操作啊。。這什麼意思呢?
還請釋疑 謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 58.115.143.194
※ 編輯: DrStein 來自: 58.115.143.194 (11/28 01:05)
→
11/28 01:16, , 1F
11/28 01:16, 1F
→
11/28 01:17, , 2F
11/28 01:17, 2F
→
11/28 01:17, , 3F
11/28 01:17, 3F
→
11/28 01:18, , 4F
11/28 01:18, 4F
→
11/28 01:19, , 5F
11/28 01:19, 5F
→
11/28 01:20, , 6F
11/28 01:20, 6F
→
11/28 01:20, , 7F
11/28 01:20, 7F
→
11/28 01:23, , 8F
11/28 01:23, 8F
→
11/28 01:37, , 9F
11/28 01:37, 9F
→
11/28 01:46, , 10F
11/28 01:46, 10F
討論串 (同標題文章)