Reply to comment

Применение GPGPU для сжатия аудио

В рекламе своих видеокарт NVIDIA и AMD частенько приводят возможность быстрого сжатия видео как наглядный пример полезности вычислительных возможностей GPGPU для рядового потребителя. Но об ускорении сжатия аудио с помощью GPGPU слышно гораздо меньше. Несколько лет назад NVIDIA объявляла конкурс на реализацию кодировщика mp3 с помощью технологии CUDA, но судя по отсутствию какой-либо информации о результатах конкурса, затея не удалась. Между тем, сама по себе идея ускорения сжатия аудио вполне реализуема, и актуальна для многих пользователей, тратящих массу времени на оцифровку своей коллекции компакт-дисков.

Я решил начать с анализа форматов сжатия звука без потерь (lossless), так как постоянное увеличение объёма носителей и удешевление дискового пространства уже сегодня позволяет не идти на компромиссы между экономией места и качеством звука. Идеальным кандидатом оказался популярный формат FLAC. Его главными достоинствами являются открытость стандарта и широкая аппаратная поддержка. Вдобавок он оказался удивительно хорошо приспособлен к параллельной обработке - в отличие от многих конкурирующих кодеков (ALAC, TTA...).

Первые же эксперименты показали перспективность этого начинания: буквально за пару дней удалось ускорить сжатие в некоторых режимах. Достичь же по настоящему впечатляющих результатов удалось только перенеся практически весь алгоритм, благо не очень сложный, на GPGPU, минимизировав обмен данных с видеокартой по шине PCIe. Новый flac-кодировщик, получившй название FlaCuda, сжимает быстрее чем стандартный flac в самом быстром режиме, при том что превосходит по сжатию flac в самом медленном режиме. Даже на такой скромной видеокарте, как NVIDIA GTS 250, скорость сжатия теперь лимитируется в основном скоростью жесткого диска.

К сожалению, обратная задача - быстрой декомпрессии аудио - выглядит почти безнадёжной. Алгоритм декомпресии FLAC достаточно шустро работает при последовательном декодировании, благодаря чему и получил широкую аппаратную поддержку со стороны производителей плееров и медиа-центров, однако принципиально не годится для параллельной обработки.

Reply

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <i> <table> <td> <tr> <th>
  • Lines and paragraphs break automatically.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. The supported tag styles are: <foo>, [foo].
  • Images can be added to this post.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.

Copyright © 2008-2009 Alex Tutubalin