Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
3 / 3 / 1
Регистрация: 25.10.2010
Сообщений: 45
1

wav byte[] в flac byte[]

06.01.2013, 23:05. Просмотров 1927. Ответов 9
Метки нет (Все метки)

Ситуация такая:
С микрофона каждую 0.1 сек идет byte[] где то по 3к значений.
Если я пишу его в файл то получается как бы wav файл. Только без заголовка.
Мне нужно эти byte[] кодировать в byte[] только как в формате flac.

Нужен сам алгоритм сжатия.

Помогите пожалуйста в данном вопросе.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2013, 23:05
Ответы с готовыми решениями:

преобразование ref byte в byte[] или в IntPtr без использования неуправляемого кода
есть COM интерфейс с методом: virtual /* */ HRESULT STDMETHODCALLTYPE OnReceivePacket( ...

Как перевести byte[] или переменную типа IntPtr к типу byte[] (ассемблерные инструкции)?
Наткнулась на проблему, нужно перевести тип IntPtr в массив ассемблерной инструкции. Вот пример...

Пердача byte[] COM-функции, ожидающей ref byte
Привет, наше приложение в C# использует несколько COM-интерфейсов. В одном из них есть метод,...

Варианты конвертации bool/byte/int в byte/int
В Си, если мне не изменяет память можно наоборот любые данные интерпретировать как true/false. А...

9
22 / 8 / 2
Регистрация: 06.01.2013
Сообщений: 113
06.01.2013, 23:30 2
что-то мне подсказывает, что если этот алгоритм будет выполняться в CLR, а не в нативном виде, то тормозить будет очень здорово
так что лучше, наверное, воспользоваться готовыми нативными библиотеками для этих целей
0
Эксперт С++
1755 / 1624 / 234
Регистрация: 03.05.2011
Сообщений: 3,638
Записей в блоге: 6
07.01.2013, 00:07 3
Цитата Сообщение от Black Devil Посмотреть сообщение
Нужен сам алгоритм сжатия.
Сжатие без потерь в частности посмотрите Алгоритм Хаффмана.
0
3 / 3 / 1
Регистрация: 25.10.2010
Сообщений: 45
07.01.2013, 10:47  [ТС] 4
Цитата Сообщение от _lunar_ Посмотреть сообщение
Сжатие без потерь в частности посмотрите Алгоритм Хаффмана.
ну получается сжатие как у Flac?

Добавлено через 3 минуты
Цитата Сообщение от hinst Посмотреть сообщение
что-то мне подсказывает, что если этот алгоритм будет выполняться в CLR, а не в нативном виде, то тормозить будет очень здорово
так что лучше, наверное, воспользоваться готовыми нативными библиотеками для этих целей
ну а про сам алгоритм можно поподробнее?
0
22 / 8 / 2
Регистрация: 06.01.2013
Сообщений: 113
07.01.2013, 11:25 5
ну а что вы гуглом не пользуетесь,
вот тут http://flac.sourceforge.net/ru/format.html есть
описание формата, даже на русском
как по мне, так очень сложно это всё, легче организовать взаимодействие между C#.NET и этой библиотекой, которая уже написана на C++, чем реализовывать этот сложный формат на C# с нуля, точнее, с этого описания, в котором как всегда наверняка чего-нибудь забыто или упущено или не точно или намеренно опущено по причине что для автора это и так "интуитивно очевидно"
0
1301 / 974 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
07.01.2013, 11:43 6
http://cuetoolsnet.svn.sourcef... ecs.FLAKE/
0
957 / 760 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
07.01.2013, 12:02 7
что-то мне подсказывает, что если этот алгоритм будет выполняться в CLR, а не в нативном виде, то тормозить будет очень здорово
то что-то вам не верно подсказывает....

Тут играет роль так званая динамическая перекомпиляция и оптимизация по участкам памяти... Если интересно - прочитайте про CLR
0
3 / 3 / 1
Регистрация: 25.10.2010
Сообщений: 45
07.01.2013, 12:07  [ТС] 8
в чем проблема, поток как бы byte[] он по 3200 значений приходит каждую 0.1 сек. Мне его нужно перекодировать в flac byte[] и писать в поток.
0
22 / 8 / 2
Регистрация: 06.01.2013
Сообщений: 113
07.01.2013, 13:19 9
Цитата Сообщение от Konctantin Посмотреть сообщение
то что-то вам не верно подсказывает....

Тут играет роль так званая динамическая перекомпиляция и оптимизация по участкам памяти... Если интересно - прочитайте про CLR
есть только один способ проверить: написать перекодировщик из wav в flac на C# и проверить насколько он будет тормозить в сравнении с оригинальным

а насчёт "в чём проблема", проблема у вас, вам же писать это... нельзя просто так взять и описать алгоритм flac в двух словах. он сложный и сложный. я бы всё таки рекомендовал прикрутить ту готовую библиотеку. это быстрее сделать и быстрее работать наверное будет
0
3 / 3 / 1
Регистрация: 25.10.2010
Сообщений: 45
07.01.2013, 22:18  [ТС] 10
Спасибо за советы, попробую.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.01.2013, 22:18

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

double в byte[]
В проекте преобразование из byte в double осуществляется следующим образом: private double...

FileStream to byte[]
У меня есть функция для декрипта файла с помощью AES. private static void...

int в byte
как перевести int в byte а потом обратно в int???

byte[]---->GIF
Всем привет. Столкнулся с маленькой проблемкой. Сокет получает массив byte(это по идее gif...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.