Как стать автором
Обновить
164
0.3

Человек

Отправить сообщение
Есть ли уже скомпилированный кодер? В вашем проекте я не нашёл консольной версии, только под Qt.
Сжатие в данном случае не совсем корректный термин. В алгоритме отсутствует сама концепция сжатия — удаления избыточности.

Я вижу противоречие. Разве у вас в заголовке не написано — «Новый Алгоритм Сжатия»? Алгоритм сжатия без концепции сжатия?
Совершенно не похоже. В осциллограмме одному значению времени соответствует только одно значение амплитуды, в то время как в кривой Коха это не так:
Я думаю, что вы согласитесь, что во временной области аудио данные в пределах 4 семплов изменяются медленно

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

Эффект Гиббса же я упомянул прямо с противоположной целью — как искажение, которое хорошо видно графически (в jpeg) и практически не слышно в звуке — mp3.
Голливуд для кого фильмы снимает?

Очевидно для тех, кому смотреть на жизнь других (причём вымышленных) интереснее, чем жить самому. И вообще, я бы поостерёгся воспринимать голливудское кино как источник информации и уж тем более руководство к действию.

В реальной жизни самопожертвование возникает в намного менее прозаичных условиях — на войне или опасном производстве. Или когда мать голодает ради того, чтобы её ребёнок мог поесть. Но в таких случаях людьми движет вовсе не желание геройства, а чувство долга.
В такой формулировке возникает конфликт интересов — стремиться убить врага или позволить ему убить себя? Допустим, можно и убить, и умереть — но если враг только один. А если несколько? А если у тебя семья, своей смертью ты и её в жертву приносишь. А приносить в жертву других — это уже не геройство. Опять конфликт интересов.
Извините, я не совсем понял. Вы делаете сжатие во временной области или частотной? Если временной, тогда искажения, вносимые алгоритмом, будут иметь намного более разрушительный характер. Ведь природа звука, как и механизм его восприятия, принципиально отличается от графики — ведь мы воспринимаем не мгновенные значения амплитуд как таковые, а спектральную составляющую звука (в сильно упрощённой интерпретации).

А поскольку ваш алгоритм с потерями, характер вносимых искажений намного более важен, чем время работы или степень сжатия. То, что не видно на картинке, будет ясно слышно в звуке, и наоборот — пример чего, например, является эффект Гиббса.
Не совсем понятно, какой вид самопожертвования вы имеете ввиду:
1. жертвовать собой ради других,
2. другие жертвуют собой ради Вас?
Выглядит ещё менее убедительно. Если честно, выглядит так, как будто вы эту формулу взяли просто из головы. Как минимум потому, что в ней отсутствует количество суммируемых элементов. Кроме того из неё следует, что если для хранения накапливаемой погрешности вместо double взять long double, это приведёт к экспоненциальному росту точности. Что сомнительно. Ведь вычисления производятся по-прежнему в оригинальном формате.
Мы, как люди будущего, уже знаем ответ — героизм будет проявляться в борьбе с системой. «1984», «О дивный новый мир», «Матрица» и прочие наглядно демонстрируют, как вектор фантастики изменился с постройки идеального будущего на разрушение чрезмерно идеального будущего.
А вы можете обосновать, что точность увеличивается именно в 2 раза, а не, скажем, в полтора? Откуда вообще взялась эта цифра? Ни в русской, ни в английской википедии её нет.
Это все равно, что увеличить в два раза аппаратный регистр.

Это как? По моей логике, «увеличить в два раза аппаратный регистр» = «увеличить точность в 2 раза», в то время как в алгоритме Кэхэна ничего подобного не наблюдается. Там просто контролируется накопление погрешности. Опять же, с ограниченной точностью.
В статье представлен пример, когда всего за три арифметические операции с числами формата doubl мы получили ошибку в младшем разряде равную 4. Этот пример легко продолжить. А вы говорите о миллионах операций.

А это уже вопрос используемого алгоритма и контроля погрешностей. В частности, Алгоритм Кэхэна как раз и используется для суммирования большого количества элементов без фатального накопления погрешности.
Это было уточнение комментария «x87 все вычисления производит в 80-битном расширенном формате, и для double и для float».

Из этого следует, что при выполнении вычислений на FPU вы будете получать разные ответы в зависимости от того, в каком режиме точности он работает. Более того, вы будете получать различные результаты и в зависимости от того, как именно компилятор оптимизирует ваш код и в каком конкретно формате он хранит промежуточные вычисления.

Стек FPU ограничен восемью регистрами. Пока остаются свободные регистры для хранения промежуточных данных, очевидно, их точность остаётся неизменной. Но как только свободные регистры заканчиваются, компилятор вынужден сохранять их во внешней памяти — и обычно это делается в 64-х битном формате, с потерей 80-битной точности (как показало изучение ассемблерного кода от компиляторов Intel и Microsoft).
в FPU есть флаг точности с возможными режимами:

00 – 24 бита мантисса, 7 бит порядок;
10 – 53 бита мантисса, 10 бит порядок (двойная точность);
11 – 64 бита мантисса, 15 бит порядок (расширенная точность).
Стивен где-то упоминал, что в Mathematica для генерации случайных чисел используется клеточный автомат с правилом 30.
12 ...
182

Информация

В рейтинге
2 155-й
Откуда
Россия
Работает в
Зарегистрирован
Активность