LINUX.ORG.RU

Потребление CPU разными аудио-кодеками (декодирование)

 , , ,


0

1

Решил поиграть(ся) с аудиофайликами через mplayer + qemu-i386

Добавил aac_fixed в /mplayer/codecs.conf

audiocodec ffaacf
  info "FFmpeg AAC nofp (MPEG-2/4 Audio)"
  status working
  fourcc mp4a,MP4A
  fourcc "VLB " ; Used in NSV, not really working
  fourcc "AAC " ; Used in NSV
  fourcc "AACP" ; Used in NSV for AACPlus
  fourcc raac,racp
  format 0xff
  format 0x1600
  format 0x706D
  format 0x4143 ; aac in asf
  format 0xA106 ; aac in avi not yet working
  format 0xAAC0 ; Borgtech nonsense tag
  driver ffmpeg
  dll aac_fixed

Результаты (на 1.4 ггц):

bash-5.1$ qemu-i386 -cpu pentium /usr/bin/mplayer -ao esd -ac ffaacf  ~/Music/jennifer_s_radio.aac
MPlayer SVN-r38448-11.2.0 (C) 2000-2024 MPlayer Team
227 audio & 469 video codecs
do_connect: could not connect to socket
connect: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing /home/guest/Music/jennifer_s_radio.aac.
libavformat version 60.20.100 (internal)
libavformat file format detected.
[aac @ 0x14ea800]Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: audio (aac), -aid 0
Load subtitles in /home/guest/Music/
==========================================================================
Forced audio codec: ffaacf
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
libavcodec version 60.39.100 (internal)
AUDIO: 32000 Hz, 2 ch, s32le, 128.0 kbit/6.25% (ratio: 15997->256000)
Selected audio codec: [ffaacf] afm: ffmpeg (FFmpeg AAC nofp (MPEG-2/4 Audio))
==========================================================================
[AO ESD] latency: [server: 0.28s, net: 0.00s] (adjust 0.28s)
AO: [esd] 44100Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A:  17.2 (17.1) of 20184.7 ( 5:36:24.6) 155.5%
bash-5.1$ qemu-i386 -cpu pentium /usr/bin/mplayer -ao esd  ~/Music/jennifer_s_radio.aac
MPlayer SVN-r38448-11.2.0 (C) 2000-2024 MPlayer Team
227 audio & 469 video codecs
do_connect: could not connect to socket
connect: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing /home/guest/Music/jennifer_s_radio.aac.
libavformat version 60.20.100 (internal)
libavformat file format detected.
[aac @ 0x14ea800]Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: audio (aac), -aid 0
Load subtitles in /home/guest/Music/
==========================================================================
Forced audio codec: mad
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
libavcodec version 60.39.100 (internal)
AUDIO: 32000 Hz, 2 ch, floatle, 128.0 kbit/6.25% (ratio: 15997->256000)
Selected audio codec: [ffaac] afm: ffmpeg (FFmpeg AAC (MPEG-2/MPEG-4 Audio))
==========================================================================
[AO ESD] latency: [server: 0.28s, net: 0.00s] (adjust 0.28s)
AO: [esd] 44100Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A:   8.8 (08.8) of 20184.7 ( 5:36:24.6) 559.2%

Exiting... (Quit)
qemu-i386 -cpu pentium /usr/bin/mplayer -ao esd  ~/Music/jennifer_s_radio.ogg
MPlayer SVN-r38448-11.2.0 (C) 2000-2024 MPlayer Team
227 audio & 469 video codecs
do_connect: could not connect to socket
connect: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing /home/guest/Music/jennifer_s_radio.ogg.
libavformat version 60.20.100 (internal)
libavformat file format detected.
[lavf] stream 0: audio (vorbis), -aid 0
Load subtitles in /home/guest/Music/
==========================================================================
Forced audio codec: mad
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
libavcodec version 60.39.100 (internal)
AUDIO: 32000 Hz, 2 ch, floatle, 379.9 kbit/18.55% (ratio: 47489->256000)
Selected audio codec: [ffvorbis] afm: ffmpeg (FFmpeg Vorbis)
==========================================================================
[AO ESD] latency: [server: 0.28s, net: 0.00s] (adjust 0.28s)
AO: [esd] 44100Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A:   6.2 (06.1) of 20182.0 ( 5:36:21.9) 262.0%

Exiting... (Quit)
bash-5.1$ qemu-i386 -cpu pentium /usr/bin/mplayer -ao esd  ~/Music/Ария\ Кипелов\ -\ Жить\ вопреки.mp3
MPlayer SVN-r38448-11.2.0 (C) 2000-2024 MPlayer Team
227 audio & 469 video codecs
do_connect: could not connect to socket
connect: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing /home/guest/Music/Ария Кипелов - Жить вопреки.mp3.
libavformat version 60.20.100 (internal)
Audio only file format detected.
Load subtitles in /home/guest/Music/
==========================================================================
Forced audio codec: mad
Opening audio decoder: [libmad] libmad mpeg audio decoder
AUDIO: 44100 Hz, 2 ch, s16le, 200.1 kbit/14.18% (ratio: 25012->176400)
Selected audio codec: [mad] afm: libmad (libMAD MPEG layer 1-2-3)
==========================================================================
[AO ESD] latency: [server: 0.28s, net: 0.00s] (adjust 0.28s)
AO: [esd] 44100Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A:  25.2 (25.1) of 274.0 (04:34.0)  6.9%
No bind found for key '0xe9    '.
A:  29.0 (29.0) of 274.0 (04:34.0)  6.9%

Exiting... (Quit)

huh? mp3 через libmad победил с большим отрывом. Ну если поставить хост cpu на max 3.98 ггц то aac_fixed играет (50%-70% CPU) …

★★★★

Ответ на: комментарий от anonymous

Таки-да, но они связаны. для меня было БОЛЬШИМ сюрпризом увидеть такой разрыв между aac и mp3. Может в rockbox’е оно и получше, но на условном десктопе вот так. (я иногда qemu-system-ppc пускаю, так там тоже плавучка меедленная, ну и на арм наверное тоже так же)

Andrew-R ★★★★
() автор топика

При воспоизведении, тем более звука, нагрузка на CPU практически мизерна, поскольку работает декодер, а при кодировании работает энкодер, он нагружает CPU со значительной разницей взависимости от формата.

xradio
()
Ответ на: комментарий от Andrew-R

Почти наверняка разное соотношение инструкий и операций с памятью у разных кодеков даст бОльшую разницу в потреблении эмулятора чем разница нагрузки на реальном железе.

Хотя на реальном железе эту разницу разве что под микроскопом искать. Я вообще плеер замечал только на Raspberry Pi 1, причём сам плеер своим интерфейсом там тожже учавствовал.

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 1)

Сравнение в qemu - бессмысленно. Надо бы сравнивать в каком-нибудь cycle-accurate эмуляторе.

подкидываю ещё кейворд для дальнейшего онанизьма: Tremor.

капча: предмет, который может лежать на столе (już ustawiony sprzęt jest na stole)

anonymous
()