audio device와 codec에 관한 질문 입니다.

psdlove의 이미지

저는 MicroC/OS-II를 PXA255 board에 포팅을 하고 audio device driver를 만들어
MP3 codec을 사용해서 재생을 하는 것입니다.

porting은 완료가 되었고
audio device driver를 간단히 제작 했습니다.
그런데 DMA를 사용했는데 processor를 사용한다면 어떻게 해야 하나요?

그리고 MP3 codec을 MPEG 1, 2 로 decording이 가능 한건가요??
encording은 안할 것입니다.

아직 codec 소스를 구하지 못해서 어떤 data가 input으로 들어 가는지
decording된 data들은 buffer에 저장이 되는 것입니까??

(codec을 단순히 audio device를 test하기 위함이니 이용하는 방법만 가르쳐 주세요)

그리고 포팅된 OS에 파일 시스템이나 네트워크 등 구현이 되지 않았기 때문에
mp3파일을 ram에 적재하는 것이 난감합니다.

그래서 mp3파일을 헥사 값으로 header에 저장해서 jtag으로 구워서 booting 시에 SDRAM에 copy를 할려고 하는데
가능 할 것 같습니까?
가능하다면 구체적으로 어떻게 해야 할까요??

지금 전체적으로 data의 흐름이 이해가 않되어서 머릿속이 복잡합니다.
kelp에다가도 올렸었는데 답변이 없더군요..ㅜㅜ 물어볼 사람이 없어서 질문을 올립니다.
여러분의 조언 기다릴게요...

skysign의 이미지

답글을 쓰려고 하니, 길어 질 것 같아서, 간단히만 말씀 드릴께요.

1. (codec을 단순히 audio device를 test하기 위함이니 이용하는 방법만 가르쳐 주세요)
-> audio device를 test하기 위해서 하시는 거면, MP3로 테스트 하지 마시고,
디코딩된 PCM 데이터를 가지고, audio device로 출력하시면 됩니다.
인코딩된 MP3 파일에서 PCM 데이터를 추출하려면, 윈도우에서는 골드웨이브 같은 프로그램으로 할 수 있습니다.
(리눅스용 프로그램은 딱히 잘 모르겠내요.. ^^;)

정태영의 이미지

리눅스에선 그냥 mplayer 의 ao 를 stdout 으로 하신담에 stdout 을 원하는 파일로 리다이렉션 시키시면 됩니다.

아님 mpg123 같은걸로 플레이하면서 똑같은 걸 하셔도 되고...

---
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

psdlove의 이미지

제가 리눅스에서 하는 것이 아니라 MicroC/OS에서 하는 것이기 때문에 mplayer 같은 경우 포팅을 해야 합니다.
mplayer가 오디오 재생 뿐만 아니라 비디오 재생 등 여러 기능이 있어 용량이 큽니다.
그래서 시간이 오래걸리기 때문에 직접 간단한 application을 제작 해야 합니다.
그리고 파일시스템등이 구현되지 않았기 때문에 메모리에서 직접 access 해야 합니다.

저도 리눅스에서 했으면 자료도 많고 진도가 빨리 나갈텐데....

답변 감사합니다.

Prentice의 이미지

MP3는 원래 MPEG-1 Layer 3로 출발했습니다. 그렇지만 MPEG-2 Layer 3도 나중에 MP3에 끼게 되었고 나중에는 "MPEG 2.5"라는 것도 생기고 했죠.

44.1kHz stereo 128kbps는 MPEG-1 Layer 3입니다.

공식적으로 MP3를 지원하는 플레이어라면 원칙적으로는 MP2도 "MP1"도 지원해야하지만, 이를 지원하지 않고 MP3만 지원하는 것이 보통이라고 알고 있습니다.

MP3는 PCM으로 디코딩하는 것이 보통입니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.