реклама на сайте
подробности

 
 
> Структура MP3 файлов, Как быстро узнать длительность?
KnightIgor
сообщение Jun 5 2011, 20:59
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Привет форумчанам.

Гоняю Helix MP3 декодер.
Если посмотреть на структуру простого MP3 файла (без всяких там расширений), то он состоит из последовательности блоков кодированных данных и не имеет общего заголовка, в отличие от, например, WAV (RIFF) файлов. Таким образом, узнать, какова длительность воспроизведения, нельзя, не прочитав весь файл или не прикинув приблизительно, поделив размер файла на размер блока. Последний метод дает, однако, ошибку, т.к. файл может иметь блоки, которые содержат всякую фигню, кроме, собственно, звука: иконки, информацию об альбоме, и пр... Может я чего проглядел? Действительно ли надо прошустрить весь файл, чтобы точно узнать его длительность звучания?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Alex_1811
сообщение Jun 6 2011, 12:09
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 178
Регистрация: 31-10-06
Из: Яблунець
Пользователь №: 21 821



Цитата(KnightIgor @ Jun 5 2011, 23:59) *
Гоняю Helix MP3 декодер.

Какой у вас камень? Битрейт 320 тянет?
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Jun 6 2011, 17:42
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(Alex_1811 @ Jun 6 2011, 14:09) *
Какой у вас камень? Битрейт 320 тянет?


@zksystem: множество файлов, как я установил, не имеют указанного тэга.

@Alex_1811: Я гоняю на SAM3U на 96MHz. 320kbps не создает никаких проблем: измерял осциллоскопом время декодирования блока в 1045 байт в выходные самплы (2304 16-битных слова), получал времена от 10.5мс до 12мс. Причем, бьется в такт басу (чем круче бас, тем больше время). 2304 слова (1152 стерео выборки) при 44.1kHz проигрываются за 26.1мс. SD-карточка, заведеная на SDIO, подчитывает очередную порцию за 1.2мс.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jun 6 2011, 19:05
Сообщение #4


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(KnightIgor @ Jun 6 2011, 21:42) *
Я гоняю на SAM3U на 96MHz. 320kbps не создает никаких проблем: измерял осциллоскопом время декодирования блока в 1045 байт в выходные самплы (2304 16-битных слова), получал времена от 10.5мс до 12мс. Причем, бьется в такт басу (чем круче бас, тем больше время). 2304 слова (1152 стерео выборки) при 44.1kHz проигрываются за 26.1мс. SD-карточка, заведеная на SDIO, подчитывает очередную порцию за 1.2мс.

То есть, получается загрузка процессора в 50%?
А декодер сколько оперативной памяти требует для работы?
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Jun 7 2011, 10:38
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(sonycman @ Jun 6 2011, 21:05) *
То есть, получается загрузка процессора в 50%?

Примерно так. То есть, 12мс на вызов к "MP3Decode(...)", который заполняет буфер на 26.1мс стереозвучания 44.1kHz. Далее буфер выплевывается через I2S в режиме DMA в кодек Wolfson 8731 (который есть точная копия кодека TLV320AIC23B от Texas Instruments, упоминаемого в известном проекте ARM MP3).

Цитата
А декодер сколько оперативной памяти требует для работы?


В "главном" файле Helix MP3 декодера "mp3dec.c" приведена следующая информация:

MP3DecInfo mp3DecInfo; // 0x7f0 = 2032
SubbandInfo sbi; // 0x2204 = 8708
IMDCTInfo mi; // 0x1b20 = 6944
HuffmanInfo hi; // 0x1210 = 4624
DequantInfo di; // 0x348 = 840
ScaleFactorInfo sfi; // 0x124 = 292
SideInfo si; // 0x148 = 328
FrameHeader fh; // 0x38 = 56
//-------------------------------------------
// 0x5d10 = 23824 bytes

Безусловно, нужна еще память на внешние буферы: 1045 байт на входной MP3 блок (320kbps), выходной буфер в 4608 байт (2х2304 PCM-16 слова), а вообще-то два таких: у меня пока в один декодируется, второй выплевывается по I2S, т.к. кольцевой буфер реализовать сложнее, не хотелось возиться. Плюс файловая система требует на себя до 4KB. Плюс стек и там всякие мои вещи по мелочам, итого в общем компиляция показывает чуть более 43KB занятого RAM.

Цитата(KRS @ Jun 6 2011, 23:12) *
К сожалению совсем быстро не получится.
Потому что может быть еще VBR.


Спасибо за ссылки.
VBR не поддерживается Helix декодером. Да и во всей своей куче MP3 музыки я пока не встречал Variable Bit Rate.

Сообщение отредактировал KnightIgor - Jun 7 2011, 10:38
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- KnightIgor   Структура MP3 файлов   Jun 5 2011, 20:59
- - zksystem   ID3 тэги в Вашем случае не помогут?   Jun 6 2011, 09:58
|- - sonycman   Цитата(KnightIgor @ Jun 7 2011, 14:38) ко...   Jun 7 2011, 13:17
|- - KnightIgor   Цитата(sonycman @ Jun 7 2011, 15:17) Поня...   Jun 7 2011, 15:20
- - KRS   К сожалению совсем быстро не получится. Потому что...   Jun 6 2011, 21:12
- - goodwin   Цитата(KnightIgor @ Jun 7 2011, 14:38) VB...   Jun 7 2011, 16:27
|- - KnightIgor   Цитата(goodwin @ Jun 7 2011, 18:27) VBR п...   Jun 7 2011, 19:47
|- - goodwin   Цитата(KnightIgor @ Jun 7 2011, 23:47) Не...   Jun 7 2011, 21:19
|- - KnightIgor   Цитата(goodwin @ Jun 7 2011, 23:19) В сос...   Jun 11 2011, 16:25
- - sonycman   LPC17xx это монстр, производительность впечатляюща...   Jun 7 2011, 20:03
|- - ViKo   Цитата(sonycman @ Jun 7 2011, 23:03) LPC1...   Jun 7 2011, 20:18
- - shemet   Кто нибудь пробовал запускать MP3 файлы моно. Не м...   Jul 27 2011, 20:29
|- - zuy   Цитата(shemet @ Jul 27 2011, 23:29) Кто н...   Jul 28 2011, 04:06
- - Ivan Kuznetzov   Использую Helix с STM32F103VET6. Играю на внутренн...   Nov 19 2011, 14:32
- - kan35   Ivan Kuznetzov, Я тут нашел, что мой helix плеер н...   Dec 2 2011, 15:48
|- - kan35   Разобрался. Дело было файловой системе. EFSL пока ...   Dec 4 2011, 18:21
- - DpInRock   А вот и простой ответ на вопрос топикастера. (Fil...   Jan 20 2012, 18:08
|- - KnightIgor   Цитата(DpInRock @ Jan 20 2012, 19:08) А в...   Jan 20 2012, 19:36
- - DpInRock   Дык вы бы поимели бы нужду реальную в узнавании дл...   Jan 20 2012, 19:55
|- - KnightIgor   Цитата(DpInRock @ Jan 20 2012, 20:55) А к...   Jan 21 2012, 20:39
|- - kan35   Цитата(KnightIgor @ Jan 22 2012, 00:39) К...   Jan 22 2012, 17:22
- - RA3WUM   Покажите пожалуйста, где исходники хеликса под ARM...   Mar 9 2012, 21:47


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 06:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01446 секунд с 7
ELECTRONIX ©2004-2016