Главная страница

Место для вашей рекламы

про FLAC

Были тут как-то разговоры про "шум всё равно не жмётся".

Я провёл такой тест:

Сгенерировал три wav файла стерео 44.1 - 24бит длиной 60 секунд каждый.

В первом - white noise, во втором pink noise в третьем - brown noise. Все
нормализованны под 0 dbfs.

Размер всех трёх исходных файлов, разумеется одинаковый:

15.1 MB (15 876 044 bytes)

Жму все три во FLAC. Результаты таковы:

1. White Noise : 9.47 MB (9 940 002 bytes)
2. Pink Noise : 14.0 MB (14 775 608 bytes)
3. Brown Noise : 12.4 MB (13 088 609 bytes)

Коэффициент сжатия соответственно получился соответственно:
0.626 , 0.93 и 0.824

Что мы имеем? Лучше всего пожался белый шум ))) На втором месте коричневый
шум. И наихудшие результаты у розового шума.

Для сравнения, архивация в RAR дала немного худшие коэффициенты, но
закономерность та-же.

0.67 0.99 и 0.891

Группы:
 #

Re: про FLAC

Безотносительно к обсуждению, просто столкнулся с интересным фактом: сжал 21 мегабайт wav-файлов в 43-килобайтный RAR-архив:

http://www.fmpro.ru/mediafiles/time_beeps.rar

 
 #

Re: про FLAC

Ну, начнем по порядку.
В каком именно из 24-битных форматов записаны файлы?
Целочисленный или float (24bit float - это редкий формат, но иногда
встрачается)?
C паддингом?
- когда на семпл уходит 32бита для соответствия размеру машинного
слова (4 байта), из которых 24бита значмые а остальные 8 - нет;
Или без паддинга?
- чистые 24 бита, т.е. каждые посладователно идущие 3 байта
приходится на семпл.
Попытаемся выяснить из исходных данных:
Есть файл 60 секунд на 15 876 044 байт.
Cтандартный заголовок wav файла - как минимум 44 байта.
60 * 44100 - имеем 2646000 семплов.
Поделим размер файла без заголовка (15 876 000 байт) на 2646000
семплов,
имеем ровно 6 байт на семпл. Это означает что файл был стерео (!),
т.е. 2 канала
чистых 24 бита. Предположим, что фомат целочисленный.
Теперь шум. Файлы были стерео. А шум? Если шум был моно, то
результаты "идеального" сжатия должны быть не хуже чем 50% (т.к.
информация в обеих каналах повторяется).
Итак, предположим что шум в обоих каналах независимый, т.е. шум
стерео.
Классичекие алгоритмы архиваци общего назначения рассматривают
исходный файл как поток
байтов или машинных слов. Т.е. они "не знают" что там есть семплы,
особенно если размер семпла - 3 байта. Они будут строить словари из
наиболее часто повторющих байтовых последовательностей. И тут говорить
о распределениях и спектре исходного сигнала - безполезно, т.к. речь
должна идти о распределении значений и энтропии, скажем, на уровне
одного байта, а не семпла. Но и там есть какая-то зависимость (ведь
количество информации не меняется в зависимости от формы).
FLAC призван быть аудио архиватором и скорее всего распознает формат
звуковых файлов и рассматривает аудио информацию на уровне значений
семплов, а не байтов в них. Здесь, распределения о которых шла речь
должны заиграть в явном виде.
Белый шум - последовательность равномерно (uniform) распределенных и
не кореллируруемых значений. Теоретически, в чистом виде сжатся без
потерь не может, т.к. энтропия такого сигнала максимальна (т.е. такой
полностью заполняет канал при 0dBFS).
Броуновский шум
- по созвучию называется "коричневым", но ничего общего с коричневым
не имеет - его природа Броуновское движение :). Может быть получен
интеграцией (читай: последовательным суммированием) белого шума. В
этом случае значения становятся нормально распределенными (по Гауссу),
и появляется автокорелляция, т.е. возможность "предсказать" следующее
значение по предыдущим. Но такого рода предскзание - не
детерминированное, поэтому при сжатии без потерь смысла не имеет.
Наличе автокорелляции процесса отражается соответстующим "не белым"
спектром. Никаких формант, резонансных и периродическрх процессов нет.
Гауссовость распределения говорит о том, что сигнал можно более
рационально "уплотнить" по амплитуде. Например, продифиренцировав
такой сигнал (вычислив первую разность между двумя соседними семплами)
мы (опять!) получим белый шум, но существенно меньшей амплитуды.
Меньшая амплитуда для целочиесленного формата - меньшая энтропия, а
значит - можно упаковать сигнал используюя меньше бит на семпл без
потерь.
Розовый шум
- не вдаваясь в подробности, имеет Гауссовское распределение как и
Броуновский, но отличную автокорелляционную функцию. Следовательно,
тоже сущесвтует "упаковка" позволяющая
уменьшить энтропию, но гораздо меньшая т.к громкость (т.е.
спектральное заполнение) намного больше чем у Броуновского.
А теперь практика!
Пытаюсь воспроизвести эксперимент:
Генерирую 60 белого, коричневого и розового шума, независимо (!) в
каждом из каналов,
44100. Использовал Cool Pro, выбрал опцию "independent channels".
Нормализую под 0dbFS.
Сохраняю в целочисленном упакованном 24bit-ном формате wav.
Размер до сжатия: 15 876 044 (совпадает)
Жму RAR-ом (лень идти искать FLAC), сжатие максимальное, все
настройки по умолчанию, словарь 4096к.
Размеры после сжатия:
Белый - 15 328 150 (99%)
Розовый - 15 285 971 (чуть лучше, но всеравно %99)
Броуновский - 12 986 938 (82%)
Сомневаюсь, что FLAC покажет существенно лучший результат, т.к.
белый шум действительно не жмется! Кто еще не верит, может проделать
эксперименты сам.
Мой результат с теорией совпадает, а с изложеннием в начале поста -
нет. :-0
Где глюк?

 
 #

Re: про FLAC

"illya.kokshenev" wrote in message
news:gr675c$pdh$1@vz301.audiopro.ru...
>
Это означает что файл был стерео (!),
> т.е. 2 канала
> чистых 24 бита.

Ну да разумеется.

Предположим, что фомат целочисленный.
> Теперь шум. Файлы были стерео. А шум?

Стерео разумеется....каждый канал независимо.

 
 #

Re: про FLAC

Белый шум - последовательность равномерно (uniform) распределенных и
не кореллируруемых значений.
Поправлю, что белый шум может иметь любое распределение амплитуд
отсчетов, а не только равномерное. Белизна означает
некоррелированность последовательных отсчетов и с распределением не
связана. С остальным - согласен. Думаю, в самый первый эксперимент
где-то вкралась ошибка (например, нормализация занулила младшие
отсчеты по-разному в зависимости от gain).
Принцип действия FLAC и других беспотерьных компрессоров -
предсказание последующих отсчетов через предыдущие (LPC). Степень
сжатия зависит в первую очередь от предсказуемости, а не от
распределения отсчетов по амплитуде. Синусоиды и суммы синусоид в
рамках LPC-модели предсказываются практически точно, а любые шумы -
плохо. Самый трудный в этом отношении белый шум, он должен сжиматься
хуже всего (в зависимости от амплитуды и разрядности, конечно).

 
 #

Re: про FLAC

> Белый шум - последовательность равномерно (uniform) распределенных и
> не кореллируруемых значений.
> Поправлю, что белый шум может иметь любое распределение амплитуд
> отсчетов, а не только равномерное. Белизна означает
> некоррелированность последовательных отсчетов и с распределением не
> связана. С остальным - согласен. Думаю, в самый первый эксперимент
> где-то вкралась ошибка (например, нормализация занулила младшие
> отсчеты по-разному в зависимости от gain).

Я не нормализовал - сгенерил в Sound Forge шум с максимумом до 0 dbfs

Другой вопрос если форж криво генерит шумы )))))) Надо попробовать с
другими программами....

 
 #

Re: про FLAC

З.Ы: Достал FLAC, проделал тот-же тест.
Получилось:
Белый - 15 601 359 (99%), увы чудо не прозошло :)
Розовый - 14 576 162 (91%)
Броуновский - 12 096 217 (75%)
Как видно, FLAC показал слегка лучие результаты на "цветных" чем RAR,
а белый как не жался,
так и не жмется. Это закон природы.
Вывод: Чем дальше ваша музыка от белого шума - тем эффективнее
работает FLAC :)

 
 #

Re: про FLAC

Hello, illya.kokshenev!
You wrote on Fri, 3 Apr 2009 23:46:52 +0000 (UTC):

ik> Мой результат с теорией совпадает, а с изложеннием в начале поста -
ik> нет. :-0
ik> Где глюк?

В методике - не были уточнены данные по первому эксперименту.

Чао!

 
 #

Re: про FLAC

В методике - не были уточнены данные по первому эксперименту.

Именно это и предполагается, хотя я перебрал разные (не корректные)
варианты и всеравно так и не нашел способа повторить цифры. Где-то там
явно засел глюк...

 
 #

Re: про FLAC

Hello, Kirill!
You wrote on Fri, 3 Apr 2009 17:08:57 +0400:

KVT> Коэффициент сжатия соответственно получился соответственно:
KVT> 0.626 , 0.93 и 0.824

KVT> Что мы имеем? Лучше всего пожался белый шум ))) На втором месте
KVT> коричневый
KVT> шум. И наихудшие результаты у розового шума.

KVT> Для сравнения, архивация в RAR дала немного худшие коэффициенты, но
KVT> закономерность та-же.

KVT> 0.67 0.99 и 0.891

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

Чао!

 
 #

Re: про FLAC

"Eugene A. Petroff" wrote in message
news:gr53ml$9vh$1@vz301.audiopro.ru...

> А всё просто - лосслесс архиваторы работают по принципу сокращения длины наиболее часто
> употребляемых битовых последовательностей. Ну, скажем, можно откидывать незачащие ноли
> "сверху" в отсчётах с малой амплитудой.
> Таким образом сжатие возможно для сигналов с ненулевым матожиданием - только и всего.
> Чем более детерминирован сигнал - тем лучше жмётся...

и в чём же, интересно, белый шум детерминированней розового? :)

 
 #

Re: про FLAC

Hello, Andy!
You wrote on Fri, 3 Apr 2009 17:52:50 +0400:

AR> и в чём же, интересно, белый шум детерминированней розового? :)

Посчитай распределение вероятности в функции от амплитуды...

Чао!

 
 #

Re: про FLAC

"Eugene A. Petroff" wrote in message
news:gr556q$d3q$1@vz301.audiopro.ru...
> Hello, Andy!
> You wrote on Fri, 3 Apr 2009 17:52:50 +0400:
>
>
> AR> и в чём же, интересно, белый шум детерминированней розового? :)
>
> Посчитай распределение вероятности в функции от амплитуды...

ну-ну :)
Как раз розовый более предсказуем, чем белый.
Гауссова кривая, мой друг.

 
 #

Re: про FLAC

Hello, Andy!
You wrote on Fri, 3 Apr 2009 18:24:49 +0400:

AR> "Eugene A. Petroff" wrote in message
AR> news:gr556q$d3q$1@vz301.audiopro.ru...
>> Hello, Andy!
>> You wrote on Fri, 3 Apr 2009 17:52:50 +0400:

>> AR> и в чём же, интересно, белый шум детерминированней розового? :)

>> Посчитай распределение вероятности в функции от амплитуды...

AR> ну-ну :)
AR> Как раз розовый более предсказуем, чем белый.
AR> Гауссова кривая, мой друг.

Гаусс - это для каждого конкретного значения. Звук - это всё же спектральная
зависимость...

В общем - всё не так, как кажется на первый взгляд. Вот, к примеру - какова
функция вероятности для синусоидального сигнала? Где вероятность выше - в
нуле или на пике амплитуды?

Чао!

 
 #

Re: про FLAC

"Eugene A. Petroff" wrote in message
news:gr578a$tta$1@vz301.audiopro.ru...
> Hello, Andy!
> You wrote on Fri, 3 Apr 2009 18:24:49 +0400:
>
> AR> "Eugene A. Petroff" wrote in message
> AR> news:gr556q$d3q$1@vz301.audiopro.ru...
>>> Hello, Andy!
>>> You wrote on Fri, 3 Apr 2009 17:52:50 +0400:
>
>
>>> AR> и в чём же, интересно, белый шум детерминированней розового? :)
>
>>> Посчитай распределение вероятности в функции от амплитуды...
>
> AR> ну-ну :)
> AR> Как раз розовый более предсказуем, чем белый.
> AR> Гауссова кривая, мой друг.
>
>
> Гаусс - это для каждого конкретного значения. Звук - это всё же спектральная
> зависимость...
>
> В общем - всё не так, как кажется на первый взгляд. Вот, к примеру - какова функция
> вероятности для синусоидального сигнала? Где вероятность выше - в нуле или на пике
> амплитуды?

причем тут амплитуда синуса вообще???
На краях и за пределами форманты розововго шума
вероятность обнаружения этого самого шума ниже, чем в центре форманты.
Причем, чем дальше от центра, тем ниже вероятность.
Вот и все.

 
 #

Re: про FLAC

"Andy Rodionov" wrote in message
news:gr59eh$9fl$1@vz301.audiopro.ru...

> На краях и за пределами форманты розововго шума
> вероятность обнаружения этого самого шума ниже, чем в центре форманты.
> Причем, чем дальше от центра, тем ниже вероятность.
> Вот и все.

Какой предел форманты вы чо???? Ровный спад 3дБ на октаву. Снизу до 0 герц
равномерно, сверху огранение частотой Найквиста.

 
 #

Re: про FLAC

"Kirill V.Trepakov" wrote in message
news:gr5c1t$f8v$1@vz301.audiopro.ru...
>
> "Andy Rodionov" wrote in message
> news:gr59eh$9fl$1@vz301.audiopro.ru...
>
>
>> На краях и за пределами форманты розововго шума
>> вероятность обнаружения этого самого шума ниже, чем в центре форманты.
>> Причем, чем дальше от центра, тем ниже вероятность.
>> Вот и все.
>
> Какой предел форманты вы чо???? Ровный спад 3дБ на октаву. Снизу до 0 герц равномерно,
> сверху огранение частотой Найквиста.

экстремум (пик) есть? - Значит можно рассматривать как форманту.
А какой спад (на ск. децибел) - безразлично.

 
 #

Re: про FLAC

Andy Rodionov пишет:
>
> экстремум (пик) есть? - Значит можно рассматривать как форманту.
> А какой спад (на ск. децибел) - безразлично.

нету пика - ни в случае розового, ни в случае белого. разница только в
способах отображения... в случае анализа анализатором с постоянной
шириной полооы - белый будет ровным, розовый - с подъемом снизу...
Анализатор октавный - наоборот, розовый - ровный, белый - с подъемом
вверх (или спадом вниз - как больше нравится). Нужно рассматривать
именнно с точки зрения вероятностной - я вот тут затрудняюсь.... Лукина
надо. Ну или, хотя бы, Петрова :-)

 
 #

Re: про FLAC

Hello, Andrey!
You wrote on Fri, 03 Apr 2009 22:40:21 +0400:

AS> Нужно рассматривать именнно с точки зрения вероятностной - я вот тут
AS> затрудняюсь....

О то ж - вероятностное представление весьма непривычно для _обыденного_
сознания. Там совсем другие закономерности порой вылезают.
Но зато когда поймешь - всё становится как надо...

AS> Лукина
AS> надо. Ну или, хотя бы, Петрова :-)

От ыменна! (с) Х.Моржов.
;-)

Чао!

 
 #

Re: про FLAC

"Andrey Subbotin" wrote in message
news:gr5l6m$njk$1@vz301.audiopro.ru...
> Andy Rodionov пишет:
>>
>> экстремум (пик) есть? - Значит можно рассматривать как форманту.
>> А какой спад (на ск. децибел) - безразлично.
>
> нету пика - ни в случае розового, ни в случае белого. разница только в способах
> отображения... в случае анализа анализатором с постоянной шириной полооы - белый будет
> ровным, розовый - с подъемом снизу... Анализатор октавный - наоборот, розовый - ровный,
> белый - с подъемом вверх (или спадом вниз - как больше нравится). Нужно рассматривать
> именнно с точки зрения вероятностной - я вот тут затрудняюсь.... Лукина надо. Ну или,
> хотя бы, Петрова :-)

а причем тут анализаторы?? речь идет о природе сигнала,
а не о том, как его что-то или кто-то отображает/воображает.

 
 #

Re: про FLAC

Andy Rodionov wrote:
>
> а причем тут анализаторы?? речь идет о природе сигнала,
> а не о том, как его что-то или кто-то отображает/воображает.

по природе любой шум - случаен :-) вопрос в вероятностях амплитудных
значений на отдельно взятой частоте - при разных "окрасках" - белой,
розовой.... Тут наступает арифметика, которую я честно изучал, но прямо
сейчас - не вспомню, нужен человек, который занимается этим ежедневно в
силу профессии - скажем, Лукин :-) Или Петров, который это все зачем-то
помнит :-) Т.е. у этого вопроса есть абсолютно однозначный ответ, фигли
гадать людям, которые матан сдали 20 лет назад... Пусить кто точно знает
ответят, и все :-)

 
 #

Re: про FLAC

Hello, Andrey!
You wrote on Sat, 04 Apr 2009 00:36:27 +0400:

AS> силу профессии - скажем, Лукин :-) Или Петров, который это все
AS> зачем-то
AS> помнит :-)

Скажу честно - НЕ ПОМНЮ! И многое - даже никогда не знал раньше (в силу
практической невостребованости).
Это все у меня в области т.наз. "неосознанного знания" - то есть,
_синтезируется_ по ходу дела из более общей модели являния.
Фактически, я эти вещи просто "ощущаю кишками" - то есть, это работа
воображения, оперирующего достаточно неочевидными [для других] связями.
Потому мне практически всегда по барабану - известно это явление или нет.
Мне _дешевле_ изобрести это здесь-и-сейчас, когда возникает практическая
нужда в решении конкретной задачи, чем "изучать теорию" :-)
А потом оказывается, что это кто-то когда-то вроде б уже открыл... или ещё
не открыл ;-)

Чао!

 

Настройки просмотра

Выберите удобный способ индикации записей.

Об авторе

Курилка

Для группы доступен RSS.
Подписаться на ленты сайта: