Создать ответ 
 
Рейтинг темы:
  • Голосов: 0 - Средняя оценка: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Конвертирование PCM, ADPCM в WAVE формат
Автор Сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7236
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1214 раз(а) в 762 сообщ.
Сообщение: #21
RE: Конвертирование PCM, ADPCM в WAVE формат
А не пробовал с помощью ffmpeg? В нем есть кодек Yamaha ADPCM.

[Изображение: barbers.png]
27.01.2014 13:30
Вебсайт Найти все сообщения Цитировать это сообщение
gr_ander Не на форуме
Новичок
*

Сообщений: 5
Зарегистрирован: 19.01.2014
Рейтинг: 0
Сказал спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщ.
Сообщение: #22
RE: Конвертирование PCM, ADPCM в WAVE формат
(27.01.2014 13:30)SWAT писал(а):  А не пробовал с помощью ffmpeg? В нем есть кодек Yamaha ADPCM.
Не пробовал, но в курсе, что в нём есть этот кодек. Не хотелось ради этого использовать ffmpeg размером в 7 мб. Нужна утилита, которая узко заточена под определённую конвертацию, как wavecon из KatanaSDK.
Похоже, что нашёл решение: https://github.com/losinggeneration/kos/...av2adpcm.c

Правда, требуется доработка кода. Во-первых, есть ошибки в заголовке для ADPCM. Во-вторых, при кодировании PCM->ADPCM теряется один байт данных (тоже самое происходит при декодировании ADPCM->PCM).
28.01.2014 22:02
Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7236
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1214 раз(а) в 762 сообщ.
Сообщение: #23
RE: Конвертирование PCM, ADPCM в WAVE формат
Эхх думал в оригинальном репозитории KOS есть исправления, но оказалось кроме форматирования в этом файле ничего не менялось очень давно Sad
http://sourceforge.net/p/cadcdev/kallist...av2adpcm.c

[Изображение: barbers.png]
29.01.2014 09:33
Вебсайт Найти все сообщения Цитировать это сообщение
gr_ander Не на форуме
Новичок
*

Сообщений: 5
Зарегистрирован: 19.01.2014
Рейтинг: 0
Сказал спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщ.
Сообщение: #24
RE: Конвертирование PCM, ADPCM в WAVE формат
(29.01.2014 09:33)SWAT писал(а):  Эхх думал в оригинальном репозитории KOS есть исправления, но оказалось кроме форматирования в этом файле ничего не менялось очень давно Sad
http://sourceforge.net/p/cadcdev/kallist...av2adpcm.c

М-да... Кроме форматирования, никаких отличий.

По поводу неверного заголовка:

строка 234
есть:
Код:
wavhdr.format = 20;

должно быть:
Код:
wavhdr.format = 0x20;

после 235 строки, в соответствии со спецификацией Microsoft для Yamaha ADPCM, нужно вставить этот код:
Код:
wavhdr.blocksize = 1;
wavhdr.byte_per_sec = (wavhdr.channels * wavhdr.freq * wavhdr.bits) / 8;

строка 264:
есть:
Код:
|| wavhdr.format != 20

должно быть:
Код:
|| wavhdr.format!=0x20
(иначе правильный хидер не распознается утилитой)

А по поводу недостающего байта, я думаю проблема в циклах do ... while функций pcm2adpcm и adpcm2pcm. Но тут надо разбираться более подробно.

Может и сам алгоритм кодирования ADPCM неточный. Так как побайтно ADPCM-файлы, созданные при помощи wavecon от Sega и wav2adpcm сильно различаются, хотя на слух звучат одинаково и спектрограмма в GoldWave тоже смотрится идентично.
29.01.2014 19:03
Найти все сообщения Цитировать это сообщение
Создать ответ 


Похожие темы
Тема: Автор Ответов: Просмотров: Посл. сообщение
  Непонятный формат образа FRAY 4 14632 16.10.2006 21:02
Посл. сообщение: FRAY
  формат *.NIB Sanchez 1 8051 03.04.2005 05:15
Посл. сообщение: Sanchez

Переход:


Пользователи просматривают эту тему: 2 Гость(ей)