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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2464|回復: 0
打印 上一主題 下一主題
收起左側

STM32下幾種無損音樂格式比較

[復制鏈接]
跳轉到指定樓層
樓主
ID:780108 發表于 2021-8-7 17:27 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
常見的無損音樂有好幾種(不討論類似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

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美亚洲综合久久 | 男女网站免费 | 99婷婷 | 欧美激情精品久久久久久 | 国内久久精品 | 久久久久久久综合色一本 | 午夜合集 | 精品视频在线免费观看 | 天堂影院av | 麻豆精品久久久 | 日本小电影在线 | 在线观看日韩精品视频 | 国产一区二区三区免费观看视频 | 欧美午夜精品 | 国产日韩精品一区二区 | 国产日韩一区二区三区 | 男女网站免费 | 欧美一区二区大片 | 91精品国产一区二区三区 | 亚洲欧美在线观看 | av在线黄 | 九九亚洲精品 | 亚洲精品电影网在线观看 | 美女亚洲一区 | 中国一级特黄毛片大片 | 在线一区| 九九九久久国产免费 | 黄色片网站在线观看 | 最新黄色在线观看 | 91综合网 | 欧美一区二区在线观看 | 日本精品一区二区 | 久久久黑人 | 狠狠干夜夜草 | 国产精品久久久久久久7电影 | 色婷婷国产精品综合在线观看 | 日韩精品久久 | 日韩欧美操 | 一区视频在线 | 日韩精品一区二区三区中文在线 | 99久久久国产精品 |