Цифровой звук и lossless: что это, зачем это, и с чем его едят [Советую почитать новичкам]

Автор Сообщение
Михаил Сергеевич ®

Стаж: 16 лет
Сообщений: 80
Откуда: Russia

Создавать темы Михаил Сергеевич ® написал(а)
13-Дек-2009 13:29
Профиль  ЛС 
Михаил Сергеевич ®

Стаж: 16 лет
Сообщений: 80
Откуда: Russia

Создавать темы Михаил Сергеевич ® написал(а)
13-Дек-2009 13:37 (спустя 7 минут)
Для начала немного терминологии:

DAC (Digit-to-Analog Converter) -- аналого-цифровой преобразователь -- устройство, преобразующее цифровой сигнал в аналоговую волну (или наоборот). У нас приняты обе аббревиатуры [АЦП] и [ЦАП]; у буржуев, насколько я слышал, говорят [DAC], подразумевая и то и другое, в зависимости от контекста.
Итак, "lossless" переводится с английского как [без потерь]. Для начала замечу, что это не согласуется с реальностью: звук в природе существует как таковой только в аналоговом виде, то есть в виде колебаний определённой частоты. Это чисто аналоговая сущность, и наивно было бы думать, что оцифрованный сигнал можно воспроизвести так же, как оно и звучало при записи. Причин тому очень много - от неточности работы тактовых генераторов DAC до помех, возникающих в проводах, по которым передаётся аналоговый сигнал. Качественная аудиотехника (и в том числе, качественные кабели) позволяют значительно снизить (но не исключить!) влияние всяких помех. Но это выходит за рамки обсуждения -- мы будем говорить о несжатом цифровом сигнале, который не страдает от помех, а то, что он искажается при воспроизведении, придётся, скрипя зубами, пережить.

Как вообще можно хранить звук? Беда в том, что аналоговый способ хранения имеет много плюсов, но вместе с тем имеет кучу разных минусов. А именно, плёнка теряет свои магнитные свойства, винил стареет и начинает скрипеть и [цык]ать. Поэтому звук принято оцифровывать. Как это делается? Да очень просто. Вот есть у нас звуковая волна -- по сути это график функции f: R -> R. А мы вместо того, чтобы хранить её целиком, натыкаем через равные малые промежутки времени точек и запишем значения функции в этих точках (округлив, естественно, потому что вещественное число в компьютер не запишешь). Если интервалы будут маленькие, то потом функцию можно будет почти точно восстановить, проведя кривую через эти точки на графике (это называется интерполяция). Чем их больше, тем точнее будет восстановлена волна и тем точнее будет передача.

Наверное, каждый видел аудио-компакт диск (CD-DA). Так вот, на этом диске (если плюнуть на некоторые мелочи, которые нам сейчас не очень важны) записаны звуковые отсчёты с частотой 44100 гЦ по каждому каналу, при этом сами значения функции-волны представляются целым числом со знаком от -32768 до 32767. По теореме из курса функционального анализа (теорема Шеннона-Котельникова), такое квантование позволяет адекватно передавать колебания с частотой до 44100/2=22050 герц. Этого вполне достаточно для большинства ушей, однако аудиофилы считают частоту дискретизации 44 кГц недостаточной. Так оно и есть, и цифровая обработка звука ведётся на бОльших частотах дискретизации, чтобы уменьшить искажения. Кроме того, используется не 16-битный звук, а 24-битный, то есть на значения функции-волны отводится 24 бита, а не 16, как в формате CDDA. Если угодно, то частота дискретизации и разрядность звука по сути сравнимы с разрешением сканирования изображения -- чем больше, тем точнее.

Данные, которые хранятся в WAV-файле формата PCM, по сути не отличаются от того, что записано на AudioCD. То есть если бы была возможность прочитать CD как диск с данными, то мы увидели бы в явном виде то же самое, что можно увидеть в WAV-файле после того, как диск [рипнули], то есть считали с него информацию. Забудем пока про то, что сам процесс чтения может проходить с ошибками - рассмотрим некоторую идеальную ситуацию. Тогда процесс копирования и хранения музыки лишён потерь качества полностью -- что записали, то и считаем (и то же самое и будем воспроизводить). Чтобы не было проблем с ошибками чтения, используйте EAC.

Таким образом, если мы хотим хранить музыку в неизменном виде, по идее нам достаточно только уметь сграбить её в WAV-формат. Но беда в том, что стерео-аудиосигнал занимает довольно много места -- 80 минут -- около 700 мб. Поэтому придумали различные алгоритмы сжатия этого сигнала, чтобы поменьше занимало места. Так вот, все алгоритмы сжатия звука можно разделить на lossy (с потерями) и lossless (без потерь). Вот теперь название lossless полностью оправдано. Когда мы говорим lossless -- это означает, что при сжатии звука не было использовано алгоритмов, которые теряют информацию. Это значит, что мы имеем возможность восстановить цифровой сигнал до последнего бита из упакованного формата таким же, каким он и был до сжатия, а потом уже и воспроизвести его. То есть о потерьности и беспотерьности надо говорить не на уровне преобразования цифра-аналог-цифра, а на стадии хранения и упаковки цифровых данных.

Ну а что такое lossy? Разберём на примере mp3 как наиболее популярного формата. Это формат хранения звуковых данных, в котором при сжатии происходит потеря информации. Например, из спектрального разложения выбрасываются верхние частоты, потому что человек их, видите ли, плохо слышит (кстати [не слышит] не означает [не воспринимает]). Я уже писал вкратце о том, что именно происходит при сжатии в mp3, не буду повторяться -- нам важно то, что нет никакой гарантии, что исходный сигнал будет восстановлен точно.

Упражнение:
Возьмите WAV-файл, сконвертируйте в mp3 разного битрейта, потом декодируйте обратно в WAV и вычтите из одного другой, используя Adobe Audition или Sound Forge. Проверьте, что при вычитании точного нуля не получилось.

-- И что делать? - спросите Вы. Не хранить же теперь 700 мегов ради какой-то там разницы, которую еле слышно? Отвечаю: во-первых, не еле слышно, а очень даже -- просто послушайте Ваши mp3 на нормальной аппаратуре, почистив уши. Качество звука будет несравнимое. Во-вторых, не всё так плохо, и держать именно 700 мб на самом деле не обязательно.

Я думаю, все пользовались архиваторами. Работает проще простого -- выделяем файлы и запаковываем в архив, который чудесным образом оказывается порой заметно меньше оригинала. Однако потом (о чудо!) мы можем извлечь оттуда все файлы в целости и сохранности, не потеряв ни бита информации. Так вот, все lossless-кодеки построены по тому же принципу. Это ЗВУКОВЫЕ АРХИВАТОРЫ. Они приспособлены именно для сжатия звука без потерь. То есть в процессе работы набор отсчётов хитроумно преобразуется, но так, что можно его полностью восстановить.

Следствие.
Раздавая аудио-диск, можно смело запаковать его чем-нибудь (lossless-кодеком). Опасения типа [ну вот он же меньше стал занимать, стало быть что-то пропало] не канают! Распаковав его, мы получим точную копию того, что Вы запаковали! Так что не стесняйтесь, жмите.

Таких кодеков сейчас уже понаписано море разливанное. Перечислю самые популярные:
APE (Monkeys Audio)
FLAC (Free Lossless Audio Codec)
WAVPack (WAVPack)
и так далее -- приводить все я даже не считаю нужным. Отмечу только, что APE - довольно популярный, хотя и не кроссплатформенный, медленный и нелокальный, FLAC -- имеет поддержку многими железными устройствами, а WAVPack -- универсальный кодек, который позволяет работать с многоканальным звуком и так далее. Чуть позже мы добавим сюда ссылки на разные сравнительные таблицы и прочее.
Профиль  ЛС 
Paul_Fear

Стаж: 15 лет
Сообщений: 59
Откуда: Land of the Metal Gods

Создавать темы Paul_Fear написал(а)
21-Дек-2009 23:37 (спустя 8 дней)
Удалено (сам нашел ответ).
Профиль  ЛС 
dennigad

Стаж: 15 лет
Сообщений: 5
Откуда: Уфа

Создавать темы dennigad написал(а)
23-Июн-2010 19:02 (спустя 6 месяцев 1 день)
Не подскажите как из lossless перекодировать в MP3 чтоб получить наилучшее качество? Где-то читал что вначале надо из lossless перевести в WAV при помощи foobar2000 а затем только в MP3, но у меня foobar не открывает APE файлы поэтому пришлось кодировать при помощи MediaCoder AudioEdition ver. 0.7.3.4625, это нормально, или надо обязательнго из WAV? Заранее спасибо!
Профиль  ЛС 
Black Evil Bear

Стаж: 14 лет
Сообщений: 233
Откуда: Уфа

Создавать темы Black Evil Bear написал(а)
07-Авг-2010 12:39 (спустя 1 месяц 13 дней)

dennigad писал(а):

Не подскажите как из lossless перекодировать в MP3 чтоб получить наилучшее качество? Где-то читал что вначале надо из lossless перевести в WAV при помощи foobar2000 а затем только в MP3, но у меня foobar не открывает APE файлы поэтому пришлось кодировать при помощи MediaCoder AudioEdition ver. 0.7.3.4625, это нормально, или надо обязательнго из WAV? Заранее спасибо!
MP3 и качество две несовместимые вещи !

ai Foobar2000 не читает APE (какой раритетной версией вы пользуетесь ? ag )

Зачем переводить в wav, когда можно напрямую из APE в MP3 ! an
Профиль  ЛС 
Paul_Fear

Стаж: 15 лет
Сообщений: 59
Откуда: Land of the Metal Gods

Создавать темы Paul_Fear написал(а)
21-Авг-2010 23:16 (спустя 14 дней)
dennigad
Вот вам, если все еще актуально - foo_input_monkey.zip - плагин для фубара, который поможет споконо работать с APE.


Последний раз редактировалось: Paul_Fear (2011-09-01 10:28), всего редактировалось 1 раз
Профиль  ЛС 
dennigad

Стаж: 15 лет
Сообщений: 5
Откуда: Уфа

Создавать темы dennigad написал(а)
12-Сен-2010 16:42 (спустя 21 день)

Black_Scorpi?on_666 писал(а):

MP3 и качество две несовместимые вещи !
Имею ввиду выжать максимум качества из MP3. Ясное дело я не расчитываю получить качество lossless в MP3.
Профиль  ЛС 
Guardman

Стаж: 15 лет
Сообщений: 3

Создавать темы Guardman написал(а)
14-Апр-2011 12:54 (спустя 7 месяцев 1 день)
А как можно lossles в AudioCD превратить,чтобы,скажем,на консоли его прослушать?
Профиль  ЛС 
Black Evil Bear

Стаж: 14 лет
Сообщений: 233
Откуда: Уфа

Создавать темы Black Evil Bear написал(а)
14-Апр-2011 18:09 (спустя 5 часов)

Guardman писал(а):

А как можно lossles в AudioCD превратить,чтобы,скажем,на консоли его прослушать?
Guardman

Например с помощью Burrrn кидаешь в нее *CUE и жмешь записать



Burrrn 1.14 Beta 2 Portable Rus.exe
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 13-Дек 01:49
Часовой пояс: UTC + 5