Pull to refresh

Конвертация музыки в формат FLAC с использованием CUDA

Sound
Недавно я наткнулся на энкодер, работающий с форматом FLAC и перекладывающий часть процесса кодирования на GPU, используя CUDA. Программа называется FlaCuda и взять её можно здесь. Несмотря на то, что написана с использованием .NET, она прекрасно работает при участии Mono. Во всяком случае, никаких трудностей с её использованием на Ubuntu 9.10 amd64 у меня не возникло.

Программка работает довольно шустро, при сжатии одного и того же аудиофайла flac, flake и flacuda показали следующие результаты (amd x2 4200+, geforce 9800 GT):

программа время кодирования размер конечного файла
flac 127 с. 425.3 Мб
flake 106 с. 425.9 Мб
flacuda 24 c. 424.1 Мб


Уровень сжатия у всех программ ставился 8. Получаем солидный пятикратный прирост в скорости. Правда, такого выигрыша можно добиться лишь на длинных файлах. На 3-6-минутных записях время кодирования сокращается примерно вдвое.

Программа умеет брать данные из стандартного ввода и выводить на стандартный вывод, что позволяет воткнуть её в конвейер. Например, я вполне успешно модифицировал cue2tracks для работы с flacuda.

Теперь о минусах.  Программа построена на основе кодека flake, поэтому 24-битный звук сжимать не умеет. Очень обидно. Больше недочётов не заметил.

Сам автор предупреждает, что программа всё ещё находится в стадии альфа, поэтому желательно перепроверять полученные файлы. Например, можно полученный .flac перегнать обратно в .wav и сравнить его с исходным, посчитав контрольную сумму того и другого. За развитием можно следить форуме www.hydrogenaudio.org, и там же можно связаться с автором.

Ну и напоследок — бонус для пользователей linux, изменённый скрипт cue2tracks, в который добавлена поддержка FlaCuda. Для работы скрипта нужно поместить исполняемый файл «CUETools.FlaCuda.exe» в "/usr/bin" под именем flacuda, а dll-библиотеки — в "/usr/lib".

Upd. Для пользователей Gentoo powerman добавил пакеты для flacuda и изменённого cue2tracks в оверлей powerman.

Скачать скрипт.
Tags:
Hubs:
Total votes 62: ↑58 and ↓4 +54
Views 4K
Comments Comments 64