我觉得你还是找找有没有批量转换软件,全部解成WAV或转压成FLAC吧,一劳永逸。 gzhuli 发表于 2015-2-8 19:06
APE的优势是压缩率高,代价就是运算量大,而且是对称算法,压缩需要多少运算量,解压也要差不多的运算量, ...
解压成WAV?你搞笑吧。 考虑下flac格式吧。 转成WAV是最好的方法,而FLAC是折中的办法。 基本上每下一个APE都立刻转成FLAC,也不知积累下来浪费了多少时间了{:sweat:} 这是我以前测试过的解码程序对部分音频的解码时间:
测试条件: STM32F407@144MHz
OS: RT-Thread
输出: 44.1K/16BIT
测试输出结果是44.1K/16BIT, 所以若输出96K/24BIT, 最后一列的百分比至少需要x2.1, 按比例,High需要不到200M,Extra-High需要400多M, Insane需要1.6G以上!
当然,考虑到STM32的Flash等待对性能的削减,以及更高端处理器更高的效率,实际可能并不需要这么高的工作频率,但播放器同时需要处理别的任务,需要消耗一部分CPU,所以实际需要的工作频率和上述估算结果在数量级上应该差不多了。市面上的播放器支持High/96K应该不难,Extra-High/96K就已经吃力了, 至于Insane....借用圣手的话,何必这么狠呢... wshtyr 发表于 2015-2-8 21:19
这是我以前测试过的解码程序对部分音频的解码时间:
测试条件: STM32F407@144MHz
FLAC真是对解码硬件最友好的格式 wshtyr 发表于 2015-2-8 21:19
这是我以前测试过的解码程序对部分音频的解码时间:
测试条件: STM32F407@144MHz
晕,不要没事就拿STM32来耍。STM32不是做运算的,是用来做控制的。
手机,平板,===,MP4,随便找个芯片都能秒杀STM32。古老的RK2706能通过DSP核直接软解720P RMVB,运算量比解APE大多了。只是解APE需要单独开发程序,这个比较费时。 wye11083 发表于 2015-2-8 21:57
晕,不要没事就拿STM32来耍。STM32不是做运算的,是用来做控制的。
手机,平板,===,MP4,随便找个芯片 ...
首先,当然不是真的要拿STM32来做播放器,STM32的内存还是个瓶颈呢。拿STM32测试的原因是相比于解码所花的时间,解码以外的任务所花时间可以忽略,可以获得较“纯净”的解码时间;而Cortex-M4的效率,以及STM32 Flash的效率是有据可查的,您说的其它可以秒杀STM32的芯片的CPU的效率也是有据可查的,参考这些比例系数,结合这些数据,就能算个大概了。
其次,Cortex-M4还真不是只适合控制不适合计算的,要不然也不会多出SIMD指令和FPU,比如我的测试程序就用到了部分SIMD指令来优化了部分函数,如果是STM32F1系列,在144M下是连High/44.1k都解不了的。
至于带DSP的处理器,就不在讨论之列了,开了外挂,性能的提升就不是线性的了 wye11083 发表于 2015-2-8 19:55
解压成WAV?你搞笑吧。
不就体积大一倍么,换来所有设备都能放,有多搞笑? wye11083 发表于 2015-2-8 21:57
晕,不要没事就拿STM32来耍。STM32不是做运算的,是用来做控制的。
手机,平板,===,MP4,随便找个芯片 ...
你能找到一个带APE硬解的CPU吗?找不到就不能跟H.264那些比。 用fpga或dsp能搞定ape吧 armok 发表于 2015-2-8 16:39
无论大家多么诟病APE,但这种格式已经垄断了整个无损播放行业。
所以,应该是接受它,而不是抵制它。 ...
国内是这个多。。但是国外flac比较多。 gzhuli 发表于 2015-2-9 11:05
不就体积大一倍么,换来所有设备都能放,有多搞笑?
我就经常这样干,想听哪首就转一下,也不麻烦
所以,硬盘越换越大啊{:lol:} seazhui 发表于 2015-2-9 12:06
国内是这个多。。但是国外flac比较多。
国内的玩家比较厉害,能听出来APE比WAV和FLAC音质好{:titter:} tim 发表于 2015-2-9 12:23
国内的玩家比较厉害,能听出来APE比WAV和FLAC音质好
国内应该是APE起步早。APE确实在国内外都被喷得不行。上次下载的一套CD就是FLAC的,貌似国外现在几乎全部FLAC了。 armok 发表于 2015-2-9 13:24
主要是时间,精力。。。。
所以我说看看有没有批量转换工具嘛。 我的歌曲全部都是转成WAV的,养成习惯了,不转成WAV不自在。
就是容量太大,其他都很好。 本帖最后由 gzhuli 于 2015-2-9 15:51 编辑
刚刚用1GHz主频的Cortex-A7解压了一个51分28秒的44.1/16 Extra High APE,耗时15分15秒,解压时间和播放时长的比率是29.6%(可以理解为实时播放的CPU占用率),估计96/24的Extra High也是可以的,Insane就难说了。
再对比11楼STM32F4@144MHz的速度,1GHz / 144MHz = 7,147.5% / 7 = 21%,可见1GHz Cortex-A7的每MHz主频解算效率还比STM32F4低一些(也有可能是我用的代码没经过SIMD/NEON优化的关系)。 解压一个479.4s的44.1/16 Normal APE(文件大小15,167,487 字节),耗时21.5s,重新压缩成Insane,耗时299.4s(文件大小15,066,596 字节),再解压耗时305.1s,可见APE解压比压缩还要慢一点。
为了Insane那一丁点压缩率提升,耗费十几倍的压缩解压时间,何苦呢? 26L同一个文件,用flac最高压缩率压缩,耗时75.5s,文件大小15,746,976 字节,比Normal APE大了3.8%,解压耗时5.7s。
以上测试均在全志A20双核1GHz Cortex-A7 + Linux上进行。 nas Music # mac 'Hotel California.wav' 'Hotel California.ape' -c5000
-- Monkey's Audio Console Front End (v 3.99-u4-b5-s7) (c) Matthew T. Ashland --
Compressing (insane)...
Progress: 6.3% (2007.7 seconds remaining, 134.7 seconds total)
Insane模式压缩391s的192/24的Hotel California母带版,简直不想等下去了…… flac -8压缩上面的Hotel California用了352s,解压用了56s,压缩率57.1%。 gzhuli 发表于 2015-2-9 15:09
所以我说看看有没有批量转换工具嘛。
最好找的批量转换工具就是很老的foobar2000{:lol:}
直接加载全部的APE文件,然后点右键转为FLAC,
搞定。。。
不必通过WAV格式中转
注意要装APE的解码器。 armok 发表于 2015-2-9 18:01
我有4T无损,如果要转换成wav,可能需要8T空间。
APE也肯定保留,我就要12T的空间。
可以转FLAC嘛,只比APE大3~5%,而且压缩速度比APE快很多,花不了多少时间。
APE就没必要保留了吧,反正都是无损,实在有需要的时候重新压一下都一样。 gzhuli 发表于 2015-2-9 18:18
可以转FLAC嘛,只比APE大3~5%,而且压缩速度比APE快很多,花不了多少时间。
APE就没必要保留了吧,反正都 ...
是啊。APE/FLAC/WAV实际给人听的数据是完全一样的,所以转完后只保留FLAC就行了。
foobar2000在多核CPU下是可以并行运行N个转码器,只要弄个好电脑来转码就行了,速度不会慢~
存量太大就别一次性转了,foobar2000直接转有时候会出现错误的,我转换都是用原版的Monkey's Audio解压+原版FLAC压制,再用foobar2000导tag,并且转完校验试听之后才删原ape文件。如果图方便把不容易找到的文件弄丢了也是挺心塞的
还是弄个mini点的PC平台播放吧,我估计在产的x86 CPU没有应付不了的 armok 发表于 2015-2-9 18:38
目录如何处理?
可以保留原来的目录结构吗?
我经常用foobar转码,从来没有见到错过
转换的时候设为目标位置是源文件位置就行了,这样就自动保持了目录结构。
全部弄完了在整个目录里面查找所有ape文件,全删了就行
armok 发表于 2015-2-9 18:40
转成一个FLAC大文件+CUE, 或者直接分割成一首一首歌的flac ?
为了省事,CUE就保持原样吧
原来是什么样就什么样,只需要在cue里面把源文件后缀改了就行了,别的啥也不需要动 armok 发表于 2015-2-9 18:40
转成一个FLAC大文件+CUE, 或者直接分割成一首一首歌的flac ?
Windows下不清楚,Linux下办法还是很多的,用shell脚本就可以全目录自动转换并改写CUE中的文件名,也可以根据CUE做分割。 我就说为了省事,只是原样转换ape为flac,根本不动cue,为了不让foobar批量加入文件的时候加入cue,先把cue批量改个后缀。 转完了用ue批量查找替换被改过的cue里面的.ape为.flac。最后删了全部ape文件,这样就了事了。不管有多少文件,人工操作的工作量不变。全是批量操作 armok 发表于 2015-2-9 18:54
大家知道4T是什么概念吗?
如果一张碟需要10分钟,每天转换24小时不停,需要138天才转换完。
刚刚用foobar2000转了一张64分钟的APE Extra High到FLAC Level 6,耗时1分钟多点,CPU是i7@3.4GHz,单线程。 gzhuli 发表于 2015-2-9 19:07
刚刚用foobar2000转了一张64分钟的APE Extra High到FLAC Level 6,耗时1分钟多点,CPU是,单线程。 ...
你应该是四核8线程吧,你试试同时加入8个文件一起转,不比一个慢多少 armok 发表于 2015-2-9 19:15
好,也要20天。
用你最快的服务器,应该是2*6核共24个线程吧,1天就搞定了^_^ armok 发表于 2015-2-9 19:15
好,也要20天。
你不是全部extra high嘛,才40%左右,normal的会更快,而且上面只是单线程,i7是4核8线程的,8个并行可以达到7倍的速度,算下来两三天就完事了。
不过你的G7是AMD Turion双核,就算单核速度和i7也是没法比的,所以要转的话还是找台服务器靠谱点…… armok 发表于 2015-2-9 19:27
转换完成,还需要人工一个一个检查。
所以,100天应该是少不了的。
所以嘛,要么你就是找台x86来放,要么就是随听随转,4T一次自动化转怎么都是不太现实的。 armok 发表于 2015-2-9 19:38
所以,先用P1620迷你手提播放 :)
随听随转才现实。每天5个碟,10年就差不多转完了。
嗯,找台快的电脑,一张碟1分钟,一天听5张也才浪费5分钟,可以接受嘛。 wshtyr 发表于 2015-2-8 21:19
这是我以前测试过的解码程序对部分音频的解码时间:
测试条件: STM32F407@144MHz
请问一下, 音频帧解算时间包含读文件缓冲(解压前的音频数据)时间么? wye11083 发表于 2015-2-8 19:55
解压成WAV?你搞笑吧。
为什么?我的歌曲全都转换成WAV格式的了,只是多占用存储空间,没发现其他问题。 我用的是格式工厂,可以批量,很好用,还可以换视频和图片
页:
[1]