KR20010061285A - 엠피쓰리 디코더 칩의 입력 버퍼의 구조 - Google Patents
엠피쓰리 디코더 칩의 입력 버퍼의 구조 Download PDFInfo
- Publication number
- KR20010061285A KR20010061285A KR1019990063778A KR19990063778A KR20010061285A KR 20010061285 A KR20010061285 A KR 20010061285A KR 1019990063778 A KR1019990063778 A KR 1019990063778A KR 19990063778 A KR19990063778 A KR 19990063778A KR 20010061285 A KR20010061285 A KR 20010061285A
- Authority
- KR
- South Korea
- Prior art keywords
- audio
- header
- address
- frame
- buffer
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00007—Time or data compression or expansion
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00007—Time or data compression or expansion
- G11B2020/00014—Time or data compression or expansion the compressed signal being an audio signal
- G11B2020/00057—MPEG-1 or MPEG-2 audio layer III [MP3]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/1062—Data buffering arrangements, e.g. recording or playback buffers
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
본 발명은 엠피쓰리(mp3) 디코더 칩의 입력 버퍼에 관한 것으로 데이터(data)를 해독하여 싱크 패턴(sync pattern)을 찾아서 버퍼에 값을 저장하게 해 줌으로써 만약 시스템의 문제 혹은 통신상의 오류로 인해 싱크(sync)가 맞지 않은 프레임(frame)이 들어온다고 하더라도 그 프레임 데이터(frame data)를 버리고 다음 싱크 패턴(sync pattern)을 찾아 새로운 프레임(frame) 데이터를 채워넣어 줌으로써 실제 단방향 통신 시스템에 사용할 수 있게 하는 mp3 디코더 칩(decoder chip)의 입력 버퍼를 제공하는데 그 목적이 있다. 이를 위하여 본 발명은 mp3 디코더 칩의 입력 버퍼에 있어서, mp3 스트림(stream)을 받아들여서 싱크 패턴을 찾기 위한 싱크 발견기; 프레임(frame)의 헤더(Header) 정보로부터 사이드(Side) 정보의 크기를 계산하기 위한 헤더 길이 계산기; 상기 헤더 길이 계산기로부터 계산되어진 사이드 정보의 크기를 입력받아 헤더 버퍼의 어드레스를 생성하기 위한 헤더 어드레스 발생기; 프레임(frame)의 헤더(Header) 정보로부터 현재 프레임의 오디오 데이터의 크기를 계산하기 위한 오디오 길이 계산기; 상기 오디오 길이 계산기로부터 계산되어진 오디오 데이터의 크기를 입력받아 오디오 버퍼의 어드레스를 생성하기 위한 오디오 어드레스 발생기; 상기 싱크 발견기의 출력을 입력으로 받아서 프레임의 시작을 찾아내고 상기 헤더 길이 계산기와 상기 오디오 길이 계산기를 활성화시키기 위한 유한 상태기; 상기 헤더 어드레스 발생기와 상기 오디오 어드레스 발생기로부터 발생된 어드레스를 입력받아 하나의 입력버퍼의 어드레스로 선택하기 위한 어드레스 선택기; 및 상기 싱크 발견기와 상기 어드레스 선택기로부터 출력을 입력받아 버퍼링하기 위한 헤더 버퍼 및 오디오 버퍼를 포함하여 이루어진다.
Description
본 발명은 엠피쓰리(mp3 : MPEG audio layer 3, 이하 mp3라 칭함) 디코더 칩(decoder chip)에 관한 것으로, 특히 입력 버퍼의 구조에 관한 것이다.
현재 상용화가 활발하게 진행 중인 mp3 플레이어(player)에 광범위하게 사용될 수 있으며, 추후 개발 논의가 이루어지고 있는 차세대 오디오 프로세서에 사용될 수 있다.
싱크 비트(sync bit) mp3 데이터 스트림(data stream)의 기본 단위인 프레임(frame)의 처음 부분에 들어가는 비트 패턴(bit pattern)은 12개의 "1"로 이루어진다.
일반적으로 싱크 패턴(sync pattern)은 데이터(data)를 일정 단위로 나누어 전송할 때 사용되는 것으로 일정 단위의 처음 혹은 마지막에 붙여지는 특정 패턴(pattern)이다. 일반적인 시스템에서는 싱크 패턴(sync pattern)은 한 프레임(frame)에 한번만 나오게 되지만 mp3에서 사용되는 싱크 패턴(sync pattern)인 "1111_1111_1111"은 오디오 데이터에서도 나타나게 된다.
따라서 싱크 패턴(sync pattern)을 찾기위해서는 프레임(frame)의 길이를 계산해 주어야 하며 싱크 패턴(sync pattern)과 일반 오디오 데이터를 구분해 주어야 한다.
이러한 일련의 동작을 프로세서(예를들어 디지털 신호 처리기 DSP: Digital Signal processor)를 이용하여 처리하고자 하면 많은 연산이 필요하게 되고 실시간에 처리하기 위해서 빠른 처리 속도를 요구하게 된다.
종래의 칩에서는 이러한 처리를 해주지 않고 시스템에서 싱크(sync)를 맞추었기 때문에 통신 모드 혹은 시스템 상의 오류로 인해 mp3 데이터 스트림(data stream)의 일부 비트를 잃어버릴 경우 복구할 수 없는 문제점이 발생하게 된다.
도1은 싱크 패턴(sync pattern)의 매칭(matching)을 나타내는 블록도이다.
상기 도1을 참조하면, 싱크 패턴(sync pattern)과 입력 스트림(Input stream)을 앤딩(ANDing)하여 싱크 패턴과 매칭(matching)된 입력 스트림을 찾아낸다. 일반적으로 싱크 패턴(sync pattern)을 찾기 위해서는 싱크 패턴(sync pattern)과 패턴 일치(pattern matching)를 해줌으로써 가능하다. 이는 하드웨어로 상기 도1과 같이 간단하게 구현할 수 있지만 mp3 데이터 스트림(data stream)의 경우 싱크 패턴(sync pattern)으로 사용하는 12 bit의 "1", 즉 "1111_1111_1111"이 프레임(frame)의 처음에만 나오는 것이 아니라 실제 오디오 데이터의 중간에서도 나오기 때문에 단순히 도1에 나타낸 것과 같은 회로로 구현하기 힘들다.
따라서 mp3 디코더 칩(decoder chip)의 경우 하드웨어를 이용해서 싱크 비트(sync bit)의 패턴(pattern)을 찾기 위해서는 도1에 나와 있는 회로에 부가해서 현재 받아들이고 있는 mp3 데이터 스트림(data steam)이 어떠한 데이터인가를 알아내는 회로가 더 필요하게 된다.
본 발명은 상기와 같은 종래기술의 문제점을 해결하기 위하여 안출된 것으로써, 데이터(data)를 해독하여 싱크 패턴(sync pattern)을 찾아서 버퍼에 값을 저장하게 해 줌으로써 만약 시스템의 문제 혹은 통신상의 오류로 인해 싱크(sync)가 맞지 않은 프레임(frame)이 들어온다고 하더라도 그 프레임 데이터(frame data)를 버리고 다음 싱크 패턴(sync pattern)을 찾아 새로운 프레임(frame) 데이터를 채워넣어 줌으로써 실제 단방향 통신 시스템에 사용할 수 있게 하는 mp3 디코더 칩(decoder chip)의 입력 버퍼를 제공하는데 그 목적이 있다.
도1은 싱크 패턴(sync pattern)의 매칭(matching)을 나타내는 블록도,
도2는 mp3 디코더 칩(decoder chip)의 입력 버퍼의 전반적인 구성을 나타낸 블록도,
도3은 본 발명의 싱크 패턴 감지기를 도시한 블록도
* 도면의 주요 부분에 대한 부호의 설명 *
200 : 싱크 발견기 210 : 헤더 길이 계산기
220 : 헤더 어드레스 발생기 230 : 오디오 길이 계산기
240 : 오디오 어드레스 발생기 250 : 선택기
상기 목적을 달성하기 위하여 본 발명의 mp3 디코더 칩의 입력버퍼는 mp3 디코더 칩의 입력 버퍼에 있어서, mp3 스트림(stream)을 받아들여서 싱크 패턴을 찾기 위한 싱크 발견기; 프레임(frame)의 헤더(Header) 정보로부터 사이드(Side) 정보의 크기를 계산하기 위한 헤더 길이 계산기; 상기 헤더 길이 계산기로부터 계산되어진 사이드 정보의 크기를 입력받아 헤더 버퍼의 어드레스를 생성하기 위한 헤더 어드레스 발생기; 프레임(frame)의 헤더(Header) 정보로부터 현재 프레임의 오디오 데이터의 크기를 계산하기 위한 오디오 길이 계산기; 상기 오디오 길이 계산기로부터 계산되어진 오디오 데이터의 크기를 입력받아 오디오 버퍼의 어드레스를 생성하기 위한 오디오 어드레스 발생기; 상기 싱크 발견기의 출력을 입력으로 받아서 프레임의 시작을 찾아내고 상기 헤더 길이 계산기와 상기 오디오 길이 계산기를 활성화시키기 위한 유한 상태기; 상기 헤더 어드레스 발생기와 상기 오디오 어드레스 발생기로부터 발생된 어드레스를 입력받아 하나의 입력버퍼의 어드레스로 선택하기 위한 어드레스 선택기; 및 상기 싱크 발견기와 상기 어드레스 선택기로부터 출력을 입력받아 버퍼링하기 위한 헤더 버퍼 및 오디오 버퍼를 포함하여 이루어진다.
이와 같이 본 발명에서는 상기와 같은 해결해 주기 위하여 현재 받아들이고있는 데이터가 어떠한 데이터인가 즉, 프레임(frame)의 헤더(header) 부분인가 아니면 사이드 정보(side information) 부분 혹은 오디오 데이터인가를 유한 상태기(FSM:finite State machine)을 이용해서 도1에 나와 있는 회로에 첨가해 주었다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부한 도면을 참조하여 설명하기로 한다.
도2는 mp3 디코더 칩(decoder chip)의 입력 버퍼의 전반적인 구성을 나타낸 블록도이다.
상기 도2를 참조하면, 싱크 발견기(sync finder)(200)는 mp3 데이터 스트림(data stream)의 프레임(frame)의 처음 부분에 위치하는 싱크 패턴(sync pattern)을 찾는 블록으로 찾아진 싱크 패턴(sync pattern)으로부터 프레임(frame)이 시작하는 것으로 본다.
헤더 길이 계산기(Header length calculator)(210)는 프레임(frame)의 헤더(header) 정보로부터 사이드 정보(side information)의 크기를 계산하여 준다. 계산되어진 사이드 정보(side information)의 크기를 이용하여 헤더 버퍼(header buffer)(270)의 어드레스(address)를 헤더 어드레스 발생기(header address generator)(220)에서 만들어 주며 싱크 발견기(sync finder)(200)를 통해 입력 버퍼의 데이터로 주어진다.
오디오 길이 계산기(Audio length calculator)(230)는 헤더 길이 계산기(header length calculator)(210)와 마찬가지로 프레임(frame)의 헤더(header) 정보로부터 현재 프레임(frame)의 오디오 데이터 크기(audoi data size)를 계산하여 준다. 계산되어진 오디오 데이터 크기(audio data size)를 이용해서 오디오 버퍼(audio buffer)(280)의 어드레스(address)를 오디오 어드레스 발생기(audio address generator)에서 만들어 주며 싱크 발견기(sync finder)를 통해 입력 버퍼의 데이터로 주어진다.
유한 상태기(FSM)(260)는 전체 입력 버퍼 제어기를 제어하는 역할을 담당한다.
즉, 먼저 싱크 발견기(sync finder)(200)를 통해 프레임(frame)의 시작을 찾아낸 다음 유한 상태기(FSM)(260)에서 헤더 길이 계산기(header length calculator)(210)와 오디오 길이 계산기(audio length calculator)(230)를 활성화시켜 각각 헤더 길이(header length)와 오디오 크기(audio size)를 계산 시킨다. 계산된 헤더 크기(header size)를 카운터(counter)의 입력으로 해서 카운팅(counting)을 해가면서 헤더 버퍼(header buffer)(270)를 차례대로 채워나간다. 헤더 버퍼(Header buffer)를 모두 채운다음에는 오디오 크기(audio size)를 카운터(counter)의 입력으로 보내 마찬가지로 카운팅(counting)을 하면서 오디오 데이터(audio data)를 오디오 버퍼(audio buffer)에 실어주게 된다.
한편, 선택기(250)는 헤더 어드레스 발생기(210)과 오디오 어드레스 발생기(240)으로부터 생성된 어드레스를 입력받아 둘 중 하나를 선택하여 오디오버퍼(280)으로 보내는 역할을 한다.
본 발명의 핵심은 도1에 나타낸 일반적인 싱크 패턴 발견기(sync pattern finder)를 도2에 도시한 유한 상태기(FSM)와 헤더 길이 계산기(header length calculator) 및 오디오 길이 계산기(audio length calculator)를 이용해서 mp3 디코더 칩(decoder chip)에 적용한 것이다.
즉, mp3 데이터 스트림(data stream)을 처음으로(reset 시) 받아들일 때 먼저 12 비트의 '1"을 한 비트씩 쉬프트 시키면서 찾게된다. 가장 먼저 찾아지는 싱크 패턴(sync pattern)을 찾은 후에 다음에 들어오는 헤더(header) 정보들을 이용해서 찾아진 싱크 패턴(sync pattern)이 명확하지 않을 경우는 입력 버퍼를 다시 초기화 시켜서 다음 싱크 패턴(sync pattern)을 찾게 된다.
이렇게 한번 찾아진 싱크 패턴(sync pattern)은 각각 헤더 길이(header length)와 오디오 길이(audio length) 만큼의 데이터를 입력 버퍼에 실어준 후에 다시 작동되어 다음 싱크(sync)를 찾게 된다.
도3은 본 발명의 싱크 패턴 감지기를 도시한 블록도이다.
상기 도3을 참조하면, 싱크 패턴 감지기는 12 비트의 앤딩(ANDing) 연산을 수행하는 싱크 발견기(300)와 유한 상태기로부터 프레임의 시작을 알려주는 신호와 상기 싱크 발견기와 앤드 연산을 수행하여 상기 프레임의 시작부분에서만 싱크 패턴을 찾아주는 논리곱수단(310)과, 상기 논리곱수단(310)으로부터의 출력을 입력받아서 래치하기 위한 래치수단(320)을 구비한다.
싱크 패턴 감지기(sync pattern detector)의 또다른 기능은 바이트정렬(byte align)을 시켜주는 것이다. 즉 mp3 데이터(data)는 기본적으로 바이트 정렬(byte align)이 맞는다고 가정한다. 하지만 시스템을 구성하는 마이크로콘트롤러 유닛(MCU)의 과부하 또는 통신선로의 이상에 의해 몇 개의 비트(bit)를 잃어버린다면 바이트 얼라인(byte align)은 깨진다. 싱크 패턴 감지기(Sync pattern detector)는 이렇게 깨진 데이터 스트림(data stream)에서도 싱크 패턴(sync pattern)을 찾아서 다시 바이트 정렬(byte align)을 맞추어 줌으로써 올바른 디코딩(decoding)을 계속 수행할 수 있게 해주는 부수적인 효과가 있다.
본 발명의 기술 사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.
상기와 같이 본 발명은 mp3 데이터 스트림(data stream)의 기본단위인 프레임(frame)의 시작을 알려주는 싱크 패턴(sync pattern)을 찾아줌으로써 발생할 수 있는 입력 에러를 찾아내어 올바른 프레임(frame)을 입력 버퍼에 실어줌으로써 신뢰성있는 mp3 디코더 칩(decoder chip)을 구현할 수 있도록 한다. 또한, 통신 선로 혹은 불안정한 시스템에서도 mp3 디코더 칩(decoder chip)을 동작시킬 수 있다.
Claims (3)
- mp3 디코더 칩의 입력 버퍼에 있어서,mp3 스트림(stream)을 받아들여서 싱크 패턴을 찾기 위한 싱크 발견기;프레임(frame)의 헤더(Header) 정보로부터 사이드(Side) 정보의 크기를 계산하기 위한 헤더 길이 계산기;상기 헤더 길이 계산기로부터 계산되어진 사이드 정보의 크기를 입력받아 헤더 버퍼의 어드레스를 생성하기 위한 헤더 어드레스 발생기;프레임(frame)의 헤더(Header) 정보로부터 현재 프레임의 오디오 데이터의 크기를 계산하기 위한 오디오 길이 계산기;상기 오디오 길이 계산기로부터 계산되어진 오디오 데이터의 크기를 입력받아 오디오 버퍼의 어드레스를 생성하기 위한 오디오 어드레스 발생기;상기 싱크 발견기의 출력을 입력으로 받아서 프레임의 시작을 찾아내고 상기 헤더 길이 계산기와 상기 오디오 길이 계산기를 활성화시키기 위한 유한 상태기;상기 헤더 어드레스 발생기와 상기 오디오 어드레스 발생기로부터 발생된 어드레스를 입력받아 하나의 입력버퍼의 어드레스로 선택하기 위한 어드레스 선택기; 및상기 싱크 발견기와 상기 어드레스 선택기로부터 출력을 입력받아 버퍼링하기 위한 헤더 버퍼 및 오디오 버퍼를 포함하여 이루어진 입력 버퍼.
- mp3 디코더 칩의 데이터 스트림(stream)의 기본단위인 프레임(frame)의 시작을 검출하는 싱크 패턴(pattern) 감지기에 있어서,12 비트의 앤딩(ANDing) 연산을 수행하는 싱크 발견기;유한 상태기로부터 프레임의 시작을 알려주는 신호와 상기 싱크 발견기의 출력을 앤드 연산하여 상기 프레임의 시작부분에서만 싱크 패턴을 찾아주는 논리수단; 및상기 논리수단으로부터의 출력을 입력받아서 래치하기 위한 래치수단을 포함하여 이루어진 싱크 패턴 감지기.
- 제 2 항에 있어서,상기 논리수단은 앤드게이트임을 특징으로 하는 싱크 패턴 감지기.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990063778A KR100340070B1 (ko) | 1999-12-28 | 1999-12-28 | 엠피쓰리 디코더 칩의 입력 버퍼의 구조 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990063778A KR100340070B1 (ko) | 1999-12-28 | 1999-12-28 | 엠피쓰리 디코더 칩의 입력 버퍼의 구조 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010061285A true KR20010061285A (ko) | 2001-07-07 |
KR100340070B1 KR100340070B1 (ko) | 2002-06-12 |
Family
ID=19631098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019990063778A KR100340070B1 (ko) | 1999-12-28 | 1999-12-28 | 엠피쓰리 디코더 칩의 입력 버퍼의 구조 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100340070B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105137849B (zh) * | 2015-09-23 | 2017-10-27 | 鞍钢集团(鞍山)铁路运输设备制造有限公司 | 一种高炉铁水分装安全联锁系统及其联锁方法 |
-
1999
- 1999-12-28 KR KR1019990063778A patent/KR100340070B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR100340070B1 (ko) | 2002-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5844923A (en) | Fast framing of nude ATM by header error check | |
US7747447B2 (en) | Broadcast router having a serial digital audio data stream decoder | |
KR100648742B1 (ko) | 직렬 통신 시스템 및 방법과, 송신 장치 및 수신 장치 | |
JP3466738B2 (ja) | 非同期シリアルデータ受信装置 | |
US8161349B2 (en) | Data parallelizing receiver | |
US6546065B1 (en) | Frame synchronous circuit | |
KR100340070B1 (ko) | 엠피쓰리 디코더 칩의 입력 버퍼의 구조 | |
JP2008204284A (ja) | シリアルインタフェース回路、及びシリアル受信器 | |
US20030233609A1 (en) | Parallel error checking for multiple packets | |
US20030221082A1 (en) | Method and apparatus for byte rotation | |
KR0136821Y1 (ko) | 데이터 네트워크 | |
JPH10247919A (ja) | Atmセル同期回路 | |
JPS63164554A (ja) | デ−タ速度自動認識システム | |
JP3412927B2 (ja) | フレーム同期回路 | |
US20020184412A1 (en) | System and method for locating and aligning to framing bits | |
JPH0738630B2 (ja) | デジタルパターンデコーダおよびデコード方法 | |
KR0124600B1 (ko) | 에이치디티브이(hdtv)의 가변장 부호 복호기 | |
JPS60235548A (ja) | 信号フレ−ムの伝送方式 | |
KR200158764Y1 (ko) | 동기식 직렬 수신 장치 | |
JP3225061B2 (ja) | 符号誤り検出装置 | |
JPH071885B2 (ja) | ワ−ド同期器 | |
JP2897404B2 (ja) | データ伝送装置及び方法 | |
KR900001514Y1 (ko) | 텔리텍스트의 패키트 어드레스 검출회로 | |
KR100321735B1 (ko) | 고주파 특성을 개선한 어드레스 카운터 | |
KR20020006734A (ko) | 고속 데이터의 오류 검증회로 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20050422 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |