久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2357|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

STM32下幾種無(wú)損音樂格式比較

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:780108 發(fā)表于 2021-8-7 17:27 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
常見的無(wú)損音樂有好幾種(不討論類似mp3(愛夢(mèng)屁三)之類的有損壓縮格式)

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


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

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

WAVPACK(娃夫怕客)
(請(qǐng)手工把點(diǎn)替換成.)
www點(diǎn)wavpack點(diǎn)com/downloads.html

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

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

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

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

TTA True Audio 和  FLAC  卡 沒法播放


STM32F407

WAVPACK fast  96khz 24bits

TTA True Audio 96khz 24bits  

  FLAC 96khz 24bits 0級(jí)

STM32F746

WAVPACK  very-high  96khz 24bits

TTA True Audio  96khz 24bits  

FLAC  96khz 24bits 8級(jí)

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

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


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

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

所以后面所有的crc值全錯(cuò) 導(dǎo)致錄出來(lái)的只能在不校驗(yàn)crc的播放器上播放 好比VLC(微了測(cè))這種比較矯情的播放器軟件就放不了


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

(請(qǐng)手工把點(diǎn)替換成.)
bellard點(diǎn)org/tcc/

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

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

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

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产伦精品一区二区三区高清 | 国产一区h | 国产黄色在线观看 | 欧美一级在线观看 | 亚洲综合大片69999 | 久久久噜噜噜www成人网 | 91tv在线观看 | 亚洲一区二区在线播放 | 九九精品影院 | 黄视频在线网站 | 成人久久网 | 日韩三区| 久综合| 一区二区日本 | 色视频网站在线观看 | 欧美成ee人免费视频 | 嫩草视频入口 | 成人国产精品久久 | 东京av男人的天堂 | 一区二区三区视频在线 | 亚州av | 国产一在线观看 | 九九色综合 | 久久久久久国模大尺度人体 | 国产精品毛片一区二区三区 | 欧美精品在线一区二区三区 | 国产日韩欧美在线观看 | 精品国产青草久久久久96 | 欧美一级免费观看 | 欧美一级三级 | 午夜成人免费视频 | 成人精品鲁一区一区二区 | 青青草精品 | 香蕉久久网 | 日韩无| 97中文视频 | 久在线视频播放免费视频 | 天天拍夜夜爽 | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 91亚洲国产精品 | 欧美一级在线免费观看 |