Войти
ПрограммированиеФорумЗвук

Как загрузить mp3 и перевести в wav, чтобы создать directsound buffer с таким звуком? (5 стр)

Страницы: 1 2 3 4 5 6 Следующая »
#60
11:23, 28 дек. 2011

Andconst
Вот:
http://narod.ru/disk/35798225001/Press.zip.html
Написал за 20 минут. Сжимает любой 16-битный WAV (можно подставить вместо in.wav свой) ровно в 2 раза. Потери не больше, чем при усечении до 12 бит. Тут же разжимает в out.wav для контроля.


#61
15:31, 28 дек. 2011

Andconst
> Вообще-то дешевле производить импульсные блоки питания.
Конечно... Но не одного импульсника в компьютерной акустике я не видел.
В основном их применяют в HI-END усилках класса D

Andconst
> 3А - это то, что возможно получить.
Мне кажется, невозможно. Настоящие амперы считаются на нагрузке до тех пор пока не начинает падать напряжение питания...

Andconst
> играет далеко не последнюю роль!
Если была бы возможность играл на 5.1

#62
16:38, 28 дек. 2011

Mikle
Красавец!
ADPCM достаточно распространенный формат :)

Кстати, выхлоп достаточно хороший получился, если его пожать энтропийным кодером, то можно ужать еще до 25-30 процентов от оригинала. Попробовал только что. Выхлоп после проги 4,8, после кодера 3,3 мб :) Вот, можно смело говорит что разработали свой звуковой формат :)

#63
16:46, 28 дек. 2011

какие вы молодцы.
но опятьже это с потерями и дожали до скольки так и не понятно 25% примерно. или 35%

#64
17:14, 28 дек. 2011

ИПавлов
> но опятьже это с потерями и дожали до скольки так и не понятно 25% примерно.
> или 35%
Там уже 50% от оригинала.
Энтропийный кодер на выходе дает еще 25-35% от половины.
Так что, это конечно не mp3, но уже лучше сжимает, без всяких конвееров сжатия.

#65
18:07, 28 дек. 2011

Mikle
Объясни работу твоего компрессора...
Если прислушаться, то в out есть небольшой шум...

Немного переделал твою прогу - www.mx255.narod.ru/files/press.rar
Вроде шум пропал...

#66
20:38, 28 дек. 2011

Короче я пробовал сжимать и в 10 бит и в 11 бит.
Итоги.
10 бит звучит лучше конечно чем 8 бит, так как значения амплитуды в 4 раза больше,
но слышен шум когда играют слабые звуки.
11 бит - присутствует легкий шум, можно не заметить в бурной игре, но всё-таки дает о себе знать.
То есть 12 бит - это уровень ниже которого опускаться не следует.
Но здесь есть один интересный момент.

Строение уха таково, что больше восприимчива к разности амплитуды в одиночных и относительно тихих звуках.
В средних частотах где-то между 1500-4000 ухо более восприимчиво чем в других частотах.
А значит появляется возможность сжать без ощутимого искажения звука, "сглаживая точность" в других частотах для
лучшей компрессии.

Использовать по крайней мере можно два момента.
1) Разность восприятия громкости в зависимости от диапозона частот
2) Ухо наименее чувствительна к разности "точек" амплитуды в громких звуках, чем в тихих.

То есть я решил усовершенствовать первый конвеер, который делает где нужно 12 бит, а где можно 11 бит и 10 бит.

То есть надеюсь подготовить уровень сжатия в диапозоне 60-65% от оригинала.

Мне понравилась идея от Мух.
Брать вставлять специальные служебные данные, в которых описан способ сжатия.
Таким образом можно приспосабливаться к характеру данных для лучшей компрессии, "двигаясь по динамичной амплитуде звука".
Пока обдумаваю техники сжатия для составления таблицы.

Mikle
Как вам удалось так быстро сделать 50% сжатия?
Как сделать декомпрессию в PCM обратно?

Я много часов убил для 75%!

#67
21:03, 28 дек. 2011

Andconst
> Как вам удалось так быстро сделать 50% сжатия?
Простейший предсказатель ADPCM, там исходники есть. Посмотри :)

> Я много часов убил для 75%!
Вот ты на своем опыте убедился, что сначала лучше посмотреть что сделано уже, и хотя бы попробовать экстрактировать лучшее из увиденного, а не придумывать откровенную фигню :)

#68
21:10, 28 дек. 2011

Andconst
http://www.wikiznanie.ru/ru-wz/index.php/Адаптивная_дифференциаль… вая_модуляция

#69
22:26, 28 дек. 2011

max255
> Объясни работу твоего компрессора...
Как видно (статья в Вики), это очередной мой велосипед. Я до этого доков не читал по данной теме, просто, пока читал этод тред, пришла в голову мысль, решил попробовать.

#70
3:34, 29 дек. 2011

Вот расписал wav
Чтобы как можно больше подключилось людей для создания неплохого сжатия.

ФОРМАТ_WAV_PCM

#71
10:44, 29 дек. 2011

max255
Так ты не переделал мой вариант, ты сделал совсем по другому - преобразовал в 22 кГц, а потом восстановил. Откуда быть шуму, ты, фактически, срезал верха выше 11 кГц, когда вступают барабаны, это слышно. Попробуй что-нибудь кислотное так конвертнуть, услышишь потерю верха сильнее.
Мух
Почитал подробнее про ADPCM - у меня не совсем то, у меня тоже дифференциальная в том смысле, что я кодирую не сигнал, а его производную. Зачем? Затем, что производная сигнала в распределении ближе сосредоточена к нулю, далее я делаю квадратичную сетку, она тоже к нулю сосредоточена, и записываю значения, округлённые до ближайшего в сетке, так я получаю бОльшую точность при слабых перепадах, и меньшую при сильных, что соответствует человеческому слуху. Можно попробовать не квадратичную, а другую подобную зависимость, например тангециальную или обратнологарифмическую.
И, опять же, берётся уровень не сигнала, а ПЕРЕПАДА, благодаря тому, что сигнал дифференцируется.
Статья про ADPCM натолкнула на мысль приделать ещё и такую адаптивность.

#72
15:28, 29 дек. 2011

Mikle
> Статья про ADPCM натолкнула на мысль приделать ещё и такую адаптивность
:) Ну это же совсем другое дело

Но я по прежнему настаиваю на банке фильтров, генерируется элементарно, все смотрим в mp3 сорцы, или в psy сорцы у ogg vorbis
Затем прогоняем через эти фильтры семпл, то что осталось после фильтра (как правило минимальные коэффициенты) сворачиваем сверткой 1D (разновидность преобразования Фурье), все что после этого вышло в семпле кодируем парами zerocount/level, и скармливаем энтропийному кодеру.
Если мы не заюзаем квантование, то мы получим flac, и сжатие у него практически такое же как ADPCM, и потерь не будет.
Заюзаем квантование получим практически mp3/ogg и прочие форматы с потерями (можно предусмотреть режим Lossless/Lossy).

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

Наш формат звука готов к использованию :)

PROFIT!

#73
18:04, 29 дек. 2011

молодец. озвучил почти всё то, что я хотел сделать.

#74
19:52, 29 дек. 2011

Вот написал
вторую статью о формате wav

РАЗБОР ФОРМАТА WAV_PCM

Более понятно должно быть чем в первой.

Страницы: 1 2 3 4 5 6 Следующая »
ПрограммированиеФорумЗвук

Тема в архиве.