반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 재귀함수
- vuejs
- 안드로이드
- c언어
- qt 설치
- 엑티브엑스
- 정성하
- 스타크래프트2
- 오토바이
- 고속도로
- 양평역
- 이륜차
- android SAF
- Java
- Qt4
- FFI
- QT
- 윈도우7
- Qt OpenGL
- QTcpServer
- 잡담
- 자바
- 알람프로그램
- 마영전
- 스타2
- Qt 소켓프로그래밍
- HTML
- 디자이어HD
- 바이크
- 자료구조
Archives
- Today
- Total
프로그래밍과 잡담
MP3 헤더 구조.. 본문
mp3 파일의 헤더 그림이다.
위에 자료는 위키피디아에서 가져온것이다..
http://en.wikipedia.org/wiki/MP3
보면 FF FB A0 40 이라고 써 있는데..
난 저게 어디 있나 하고 헥스 에디터를 뒤졌더니..
헥스에디터에 오프셋의 데이터를 의미 하는거 였다.
오프셋의 두자리 숫자는 1바이트를 의미한다.
고로 .. FF를 이진수로 하면 0000 0000 이 되는것이다.
위에 보면 헤더는 32비트라고 하니..
헥스 에디터로 보면 FF FB A0 40이 헤더(header)가 되는것이다.
1개의 비트를 데이터로 이용하는것이다.
위에 빨간색 네모 부분이 헤더가 된다..
난 위에 정보인 ..FF FB B1 6C를 이용해서 헤더의 정보를 볼 것이다..
처음에 F F F 는 MP3 Sync word 다.. 정확한 의미는 인터넷 검색.. 나도 잘 모른다.
B의 값이 십진수로 11이므로..
이진수로는 이것이다.
1 0 1 1
가장 처음에 1은 버전을 의미한다.
1 일 경우는 MPEG 이다.
뒤에 0과 1은 함께 쓰인다.
00 - reserved
01 - Layer 3
10 - Layer 2
11 - Layer 1
0 1 이므로 Layer 3이다..
그러니까 MP3이다.
마지막 1은 Error Protection 이다..
1일 경우는 No 이다.
0이면 Yes 일테고..
http://www.mpgedit.org/mpgedit/mpeg_format/MP3Format.html에서 보면 CRC 체크하는거란다.
그 다음에도 또 B이므로
1 0 1 1 이다.
이 4개 비트는 한꺼번에 쓰이는데..
비트레이트(Bitrate)다. 비트레이트의 경우는 많이 들어본거다..
높을 수록 음질이 좋은거 .. 혹은 화질이 좋거나..
1011이면 ..
192 이다..
bits | V1,L1 | V1,L2 | V1,L3 | V2,L1 | V2, L2 & L3 |
0000 | free | free | free | free | free |
0001 | 32 | 32 | 32 | 32 | 8 |
0010 | 64 | 48 | 40 | 48 | 16 |
0011 | 96 | 56 | 48 | 56 | 24 |
0100 | 128 | 64 | 56 | 64 | 32 |
0101 | 160 | 80 | 64 | 80 | 40 |
0110 | 192 | 96 | 80 | 96 | 48 |
0111 | 224 | 112 | 96 | 112 | 56 |
1000 | 256 | 128 | 112 | 128 | 64 |
1001 | 288 | 160 | 128 | 144 | 80 |
1010 | 320 | 192 | 160 | 160 | 96 |
1011 | 352 | 224 | 192 | 176 | 112 |
1100 | 384 | 256 | 224 | 192 | 128 |
1101 | 416 | 320 | 256 | 224 | 144 |
1110 | 448 | 384 | 320 | 256 | 160 |
1111 | bad | bad | bad | bad | bad |
NOTES: All values are in kbps
V1 - MPEG Version 1
V2 - MPEG Version 2 and Version 2.5
L1 - Layer I
L2 - Layer II
L3 - Layer III
어쟀든 다음 1이다.
1은 이진수로도 1인데 4비트로 표시하니까
0 0 0 1
이다.
두개로 나누어서 쓰이는데..
앞에 0 0 은 주파수(Frequency)다.
0 0 일 경우에는 44100Hz이다.
비트 테이블
bits | MPEG1 | MPEG2 | MPEG2.5 |
00 | 44100 | 22050 | 11025 |
01 | 48000 | 24000 | 12000 |
10 | 32000 | 16000 | 8000 |
11 | reserv. | reserv. | reserv. |
이렇게 나와있다..
뒤에 0 은 Pad. Bit 이라고 한다.
0 일 경우는 Frame is not padded. 뭔 뜻인지 모르겠다.
Padding bit
0 - frame is not padded
1 - frame is padded with one extra slot
Padding is used to fit the bit rates exactly. For an example: 128k 44.1kHz layer II uses a lot of 418 bytes and some of 417 bytes long frames to get the exact 128k bitrate. For Layer I slot is 32 bits long, for Layer II and Layer III slot is 8 bits long.
뭐 이렇게 써 있는데 영어를 잘 못해서 뭐라고 설명하기가 뭐하므로 알아서 해석 ㅋ
마지막 뒤에 1 은 Priv. Bit 이다.
Private bit. It may be freely used for specific needs of an application.
어플리케이션에서 자유롭게 사용되는 비트라는군..
고로 무슨 의미인지는 모르겠으니까 넘어간다.
다음으로 6 은 2진수로 110 이다.
0 1 1 0
첫번째와 두번재 비트는
Mode를 의미한다.
채널 모드를 의미하는 것이다.
Channel Mode
00 - Stereo
01 - Joint stereo (Stereo)
10 - Dual channel (2 mono channels)
11 - Single channel (Mono)
3번째와 4번재는
Joint Stero 일때 사용되는 부분이다.
3번째가 0이면 Intensity Stereo Off
4번째까 0이면 MS Stereo Off 이다
뭐 1이면 반대가 되겠다.
마지막으로 C이다.. C는 10진수로 12이다.
2진수로는 1100이다.
1 1 0 0
첫번째 비트는
Copy Right를 의미한다..
1이면 Copy Right이 있는거고 0이면 없는거다.
두번째 비트는
0 이면 파일복사를 했다는거고 1이면 아니라는거..
세번째 네번째 비트는
Emphasis(강조)
00 일 경우는 없다.
00 : (없음)
01 : (50/15ms)
10 : (reserved)
11 : (CCIT J.17)
위에 있는 정보들의 출처는 여기 이니까 http://www.mpgedit.org/mpgedit/mpeg_format/MP3Format.html 에 가면
자세히 나와있다..
물론 영어로 ..
근데 이게 맨 처음에 있는 헤더하고 다음에 나오는 헤더의 정보가 달라 질 수가 있다.
FF FB B1 6C 인데
다음에 는 FF FB B3 6C로 바뀐다..
그 다음은 위와 계속 같다.
반응형
'기타 게시판' 카테고리의 다른 글
스타2 최하옵과 풀옵의 차이! (0) | 2010.08.03 |
---|---|
윈도우 7 절전 문제... (0) | 2010.06.29 |
흠.. 향후 스마트폰 OS의 미래는 역시... (0) | 2010.06.06 |
[펌]동아일보와 경향신문의 이륜차 고속도로 통행금지 당시 기사입니다.(1972년 5월 23일) (2) | 2010.05.23 |
영한 사전에서 쓰이는 약어들... (0) | 2010.04.27 |
Comments