Skocz do zawartości

Dekodowanie plików JPEG na mikrokontrolerze


Pomocna odpowiedź

Dnia 21.02.2021 o 12:39, ethanak napisał:

Nie wnikałem w szczegóły (użyłem, działa i nie zaglądałem do kodu) ale zerknij do źródeł ESP8266Audio, konkretnie do libmad. Jeśli działa na ESP8266 to tym bardziej powinno działać na Pico.

Ok, na razie udało mi się uruchomić na Pico odtwarzanie dźwięku PCM z plików WAV (PWM i timer) oraz skompilować LibMAN. W wolnej chwili zabiorę się za próbę uruchomienia odtwarzania MP3. W międzyczasie chciałem zapytać, czy ktoś się orientuje jak wygląda kwestia formatu wyjściowego LibMAN. Z opisu biblioteki wygląda, że produkuje ona dane PCM 24bit. Ponieważ u mnie pracuje bardzo prosty 8 bitowy "DAC" na PWM, dałoby się ją jakoś skonfigurować, żeby na wyjściu produkowała takie dane? Czy muszę je ręcznie konwertować?

Link to post
Share on other sites
45 minut temu, atlantis86 napisał:

czy ktoś się orientuje jak wygląda kwestia formatu wyjściowego LibMAN.

E... libMAN czy może libmad?

Jesli libmad to o ile mi wiadomo trzeba po prostu skonwertować 24 bity na 8. Automatycznie, niekoniecznie ręcznie 🙂

46 minut temu, atlantis86 napisał:

odtwarzanie dźwięku PCM z plików WAV (PWM i timer)

A mnie zastanawia, czy da się do tego zaprząc DMA i PIO i wyprodukować Delta-Sigma... niestety muszę zająć się czymś innym i Pico leży i czeka 😞

Link to post
Share on other sites
2 minuty temu, ethanak napisał:

E... libMAN czy może libmad?

Jesli libmad to o ile mi wiadomo trzeba po prostu skonwertować 24 bity na 8. Automatycznie, niekoniecznie ręcznie 🙂

Libmad. Moja pomyłka. 😉

Czyli po prostu powinienem np. użyć funkcji map() celem przepisania wartości 24bitowych na zakres 0-255?

2 minuty temu, ethanak napisał:

A mnie zastanawia, czy da się do tego zaprząc DMA i PIO i wyprodukować Delta-Sigma... niestety muszę zająć się czymś innym i Pico leży i czeka 😞

Też jestem ciekaw. Na razie jeszcze nie bawiłem się z PIO,  w obecnie powstającym projekcie nie potrzebuję wysokiej jakości audio.

Link to post
Share on other sites
Przed chwilą, atlantis86 napisał:

Czyli po prostu powinienem np. użyć funkcji map() celem przepisania wartości 24bitowych na zakres 0-255?

O rety... a nie prościej po prostu upinkolić 16 bitów z prawej i dodać 128?

Link to post
Share on other sites
(edytowany)
13 minut temu, ethanak napisał:

O rety... a nie prościej po prostu upinkolić 16 bitów z prawej i dodać 128?

Hmm... W sumie racja.
Nie wiem czemu nie pomyślałem o najprostszej opcji. 🙂

Edytowano przez atlantis86
Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.