Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
DIY综合交流区
定点的wma解压库-libwma
发布于 2009-08-20 07:50:11 浏览:12558
订阅该版
在2007 GSoC项目中,RockBox完成了libwma的定点解压库: ``` General In the summer of 2006, Paul Jones began work on converting the ffmpeg SoundCodecWMA decoder to fixed point so that it could be used with Rockbox (FS#4984). Although he did not complete the project, it raised interest in eventually getting ffmpeg's decoder working in Rockbox. This Google Summer of Code 2007 project completed his task. Status Codec is currently in SVN and functioning well above real time on all software targets. Results appear comparable to ffmpeg for nearly all files. Noise coding and line spectral pairs are implemented, and appear to function as well as ffmpeg. Seeking has been implemented and appears robust. Performance is now extremely good on ARM. Coldfire performance is also very good but could be further improved. Both WMA Std. flavors are supported. No special WMA variants are supported (Pro, Voice, Lossless) due to lack of an open source decoder. Todo: * Additional ASM optimization (requantization, etc) * Review Tremolo and see if more ASM code can be used in WMA too * Improve the makefile to allow compiling a stand alone codec for testing Who's working on this * Michael Giacomelli (saratoga) with lots of help from: * preglow * linuxstb (developed the ASF parser) * marsdaddy (Paul Jones) ``` 为了把它移植到这个网络收音机项目中来还需要修改其中的汇编代码,从ARM指令转换成Thumb2指令。
查看更多
13
个回答
默认排序
按发布时间排序
bernard
2009-08-21
这家伙很懒,什么也没写!
希望有感兴趣的兄弟来先做个移植,看看效果如何。难度应该不是太大。
bernard
2009-09-11
这家伙很懒,什么也没写!
全都移植到CM3上了,不过占用的体积很大: ``` Code (inc. data) RO Data RW Data ZI Data Debug Object Name 2314 30 8216 0 0 4760 mdct2.o 1128 14 0 0 0 612 mdct_arm.o 4756 308 166 12 70528 29134 wma.o 170 0 0 0 0 412 wma_arm.o 694 0 384 0 0 8274 wmabitstream.o 7930 218 30736 32784 112000 26410 wmadeci.o 688 46 128 0 0 5112 wmafixed.o ZI,112k + 70k RW,32k ``` 现在就看ZI怎么处理了,是全部可以放到heap上的,不过放到heap(STM32F103ZE的外扩SRAM)上速度立马慢了一大截。
bernard
2009-09-11
这家伙很懒,什么也没写!
几个用到的变量(占用空间比较大的变量) wmadeci.c中的 ```c fixed32 coefsarray[MAX_CHANNELS][BLOCK_MAX_SIZE] ; /* 16384 */ fixed32 frame_out_buf[MAX_CHANNELS][BLOCK_MAX_SIZE * 2] ; /* 32768 */ fixed32 stat0[2048], stat1[1024], stat2[512], stat3[256], stat4[128]; /* 大小分别为8192, 4096, 2048, 1024, 512,用于放fsincos的窗口,基本上是定值 */ uint16_t runtab0[1336], runtab1[1336], levtab0[1336], levtab1[1336]; /* 大小分别为2672, 2672, 2672, 2672 */ VLC_TYPE vlcbuf1[VLCBUF1SIZE][2]; /* 18392 */ VLC_TYPE vlcbuf2[VLCBUF2SIZE][2]; /* 14296 */ VLC_TYPE vlcbuf3[VLCBUF3SIZE][2]; /* 1440 */ VLC_TYPE vlcbuf4[VLCBUF4SIZE][2]; /* 2160 */ /* 用于放置vlc的一个快速查找表 */ ``` 这几个总计112000字节 而一个wma解码的上下文需要53400字节大小 wma解码时主要的函数调用流程: `wma->asf_read_packet` (读取wma原始数据), wma_decode_superframe_init(获得帧头数据)->针对每个帧做解码: `wma_decode_superframe_frame -> wma_decode_frame -> wma_decode_block -> mdct_backward (faster IMDCT), wma_window (Apply MDCT window and add into output)` 解码部分主要在`mdct_backward`,因为wma是基于MDCT的,需要做一个反变换。libwma是基于帧的方式进行解码,所以每次的数据缓存需要一个最大的超帧大小(superframe)
guanhai
2010-01-28
这家伙很懒,什么也没写!
版主,能不能发一个编译好的wma解码的程序给我,我编译好了,但是解出来的文件却不对的,还比原来小,而且解出来的文件不能听,码率竟然是1.41 Mbps!不知道为什么?我的邮箱guanhaili2008@126.com,xiexie!
aozima
2010-01-28
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
解出来的是PCM原始数据,应该确实是1.4Mbps的吧,比原文件还小就不知道了.
guanhai
2010-01-28
这家伙很懒,什么也没写!
我运行可执行文件时,./wmaplay 1.wma 2.wav执行的,但是出现这样的情况 ``` ***decode_frame: 0 size=2048 ***decode_block: 0:0 (0) 0shit ***decode_frame: 1 size=2048 ***decode_block: 1:0 (2048) ***decode_block: 1:1 (512) ***decode_frame: 2 size=2048 ***decode_block: 2:0 (128) ***decode_frame: 3 size=2048 ***decode_block: 3:0 (512) ***decode_frame: 4 size=2048 ***decode_block: 4:0 (2048) ***decode_frame: 5 size=2048 ***decode_block: 5:0 (2048) ***decode_frame: 6 size=2048 ***decode_block: 6:0 (2048) 0shit ``` 出来的2.wav只有一秒时间,然后一直在那反复的播放这一秒的音乐,而且听不出来是什么东西,解码出来的东西不对!你有没有你用过的代码,我用的是wmadeci那个代码,你有发给我一个吧!guanhaili2008@126.com,非常感谢!
guanhai
2010-01-28
这家伙很懒,什么也没写!
aozima !想和你探讨探讨,能不能留个联系方式呀!我的qq252350123
aozima
2010-01-28
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
>aozima !想和你探讨探讨,能不能留个联系方式呀!我的qq252350123 --- 嗯,我有QQ,不过,这个软件解码我是完全不懂,问了也白问,你还是BBS上面发贴吧,期待高手解答.
bernard
2010-01-28
这家伙很懒,什么也没写!
>我运行可执行文件时,./wmaplay 1.wma 2.wav执行的,但是出现这样的情况***decode_frame: 0 size=2048 >***decode_block: 0:0 (0) >0shit >***decode_frame: 1 size=2048 >***decode_block: 1:0 (2048) >***decode_block: 1:1 (512) >***decode_frame: 2 size=2048 >***decode_block: 2:0 (128) >***decode_frame: 3 size=2048 >***decode_block: 3:0 (512) >***decode_frame: 4 size=2048 >***decode_block: 4:0 (2048) >***decode_frame: 5 size=2048 >***decode_block: 5:0 (2048) >***decode_frame: 6 size=2048 >***decode_block: 6:0 (2048) >0shit >出来的2.wav只有一秒时间,然后一直在那反复的播放这一秒的音乐,而且听不出来是什么东西,解码出来的东西不对!你有没有你用过的代码,我用的是wmadeci那个代码,你有发给我一个吧!guanhaili2008@126.com,非常感谢! --- 你在什么环境下执行?
guanhai
2010-01-28
这家伙很懒,什么也没写!
gcc4.2
撰写答案
登录
注册新账号
关注者
0
被浏览
12.6k
关于作者
bernard
这家伙很懒,什么也没写!
提问
414
回答
5935
被采纳
75
关注TA
发私信
相关问题
1
[项目]搞个开源的硬件项目
2
硬件计划贴,及时更新,欢迎提意见
3
软件计划贴,及时更新,欢迎提意见::WMA,MOUNT,LWIP等问题急需解决.
4
MMS协议
5
QQ群记录 [20090821]
6
STM32网络收音机PCB报名征集
7
第一版调试记录
8
第二版硬件讨论
9
RADIO项目相关模块规格--欢迎大家自己做板时规格与此兼容,减少重复劳动
10
第一版PCB缺陷列表及第二版要注意的事项
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
【RT-Thread】记录一次对主仓的bsp进行修复并提交pr的总结
2
【请投票】嵌入式大赛Top10排名等你来选!
3
【24嵌入式设计大赛】HPM5300-EVK 网络测速仪
4
RT-Thread Nano 上线ST CubeMX
5
Nordic移植笔记: RT_Thread v5.1.0(基于Nordic nRF52840的ble_app_hids_mouse工程)
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
ART-Pi
FinSH
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
flash
packages_软件包
cubemx
PWM
freemodbus
BSP
潘多拉开发板_Pandora
定时器
ADC
socket
flashDB
中断
Debug
GD32
编译报错
msh
keil_MDK
C++_cpp
rt_mq_消息队列_msg_queue
ulog
at_device
SFUD
本月问答贡献
出出啊
1515
个答案
342
次被采纳
小小李sunny
1438
个答案
289
次被采纳
张世争
785
个答案
168
次被采纳
crystal266
546
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
6
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
2
次点赞
crystal266
2
篇文章
1
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部