欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: STM32下幾種無損音樂格式比較 [打印本頁]

作者: ktcl7777    時間: 2021-8-7 17:27
標題: STM32下幾種無損音樂格式比較
常見的無損音樂有好幾種(不討論類似mp3(愛夢屁三)之類的有損壓縮格式)

WAV(娃夫) 無損非壓縮 最早由microsoft(賣客燒福特)定義 常見的數字無損音樂都是以此為標準 壓縮和解壓
FLAC(佛勒啊測) 這個格式很常見 壓縮和解壓的速度都不錯 免費 stm32下有牛人做出了解壓程序 我自己是用FLAC(佛勒啊次)的原生代碼改的 效果很好
APE(啊屁) 這個格式也很常見 不過現在大大落后了 STM32上處理這個垃圾貨色 基本呵呵
ALAC(啊拉客) 這個是Apple(矮破)家的垃圾貨色 破玩意兒 壓縮比 和速度都很次 Apple(矮破)家所有的東西一個鳥樣 辣雞 不討論


下面隆重推出兩款免費的 開源的 無損格式
TTA True Audio(特特啊 楚奧丟)
https://sourceforge.net/projects/tta/files/tta/

這個格式的文件非常優秀 壓縮只有一個級別 支持8字節密碼(兩個CRC16) 哈哈 也支持流壓縮 所以 假定你給你小女盆友錄一段的話 別人沒密碼是聽不到的 只有沙沙聲,而且密碼是初始化一次即可(即 不設密碼的話是8個0x00) 并不影響 壓縮和解壓的速度

WAVPACK(娃夫怕客)
(請手工把點替換成.)
www點wavpack點com/downloads.html

這個格式的文件及其優秀 共四種壓縮級別 fast(罰死特) default(得佛爾特) high(嗨) very-high(歪芮嗨) 而且支持Hybrid(嗨補芮得) 無損/有損混血模式  不過這里只討論無損

做好解壓程序后 FLAC + WAVPACK + TTA True Audio

在用STM32F103+0 SRAM 72Mhz  / STM32F407+1M SRAM 168Mhz / STM32F746+8M SRAM (受限于SRAM(四日啊摸) 的速度限制 200Mhz)  三款板子比較

最終結果如下:
STM32F103 超頻到80后 只可以正常播放 WAVPACK  fast 44khz 16bits

TTA True Audio 和  FLAC  卡 沒法播放


STM32F407

WAVPACK fast  96khz 24bits

TTA True Audio 96khz 24bits  

  FLAC 96khz 24bits 0級

STM32F746

WAVPACK  very-high  96khz 24bits

TTA True Audio  96khz 24bits  

FLAC  96khz 24bits 8級

順便說一下 我用的是正版STM32F746迪斯科(坑爹版)  這個片子用的是WM8994 我找遍了薩拉熱窩也沒有找到192Khz (需要打開Ultrasonic 優特拉鎖你客 模式)  的驅動程序 所以雖然 相信 STM32F746 可以播放192khz 24bits的WAVPACK+TTA True Audio 但是沒法測試
-------------------------------------------------------------------------------
這三款格式的壓縮比差不多 僅就壓縮比作比較的話 TTA True Audio是最好的 大多數情況下文件比 WAVPACK  very-high 和 FLAC 8級小   

WAVPACK + fast 的文件常常比TTA True Audio大3%-8% 尤其是24bit的


解壓速度
WAVPACK > TTA True Audio > FLAC
注意 這里說的是在STM32解壓的情況 ,PC上三者都有SSE或者匯編的部分 一般一首5分鐘左右44khz 16bits的音樂 都只需要不到兩秒鐘 即壓縮完成 (FLAC是最慢的)

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
做完解壓后 順便做了一個錄音程序直接存儲WAVPACK 不過這個東西很好玩 上述三款格式都提供了CRC FRAME(測啊測 夫軟木)校驗 wavpack 的crc因子從頭文件就開始了 在total_samples(頭陀桑撲了)未知的情況下 只能在頭文件給一個默認值 然后最后修改這個值

所以后面所有的crc值全錯 導致錄出來的只能在不校驗crc的播放器上播放 好比VLC(微了測)這種比較矯情的播放器軟件就放不了


音頻解壓移植到類似STM32資源比較吃力的機器上的一點心得:
1: 墻裂推薦一款編譯器 Tiny C Compiler (太膩 色 康拍了)

(請手工把點替換成.)
bellard點org/tcc/

這個世界上最小的C編譯器 基于ANSI C (昂西 色) 編譯速度太特么快了 對付上面幾種 基本上敲回車就搞定 一般來說 Tiny C Compiler能通過的編譯 可以直接用到STM32上

2:盡量去掉校驗 CRC MD5這些 解壓速度大大加快
3:STM32上面對解壓速度影響最大的是最后數據輸出
WAVPACK和 TTA True Audio都是最后 輸出 的格式直接可以存為 WAV , FLAC還要做一道手腳 因為FLAC是分聲道輸出的 (這個也是為啥FLAC在STM32上最卡的原因)
所以在輸出的時候 最好不要像網上大多數例子一樣 對輸出的數據再加工一次

最終推薦順序 WAVPACK > FLAC > TTA True Audio






歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1