KR100333646B1 - 동영상 전문가 그룹 오디오 레이어 3 디코더의 입력 버퍼 - Google Patents
동영상 전문가 그룹 오디오 레이어 3 디코더의 입력 버퍼 Download PDFInfo
- Publication number
- KR100333646B1 KR100333646B1 KR1019990025801A KR19990025801A KR100333646B1 KR 100333646 B1 KR100333646 B1 KR 100333646B1 KR 1019990025801 A KR1019990025801 A KR 1019990025801A KR 19990025801 A KR19990025801 A KR 19990025801A KR 100333646 B1 KR100333646 B1 KR 100333646B1
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- pointer
- data
- input buffer
- output
- Prior art date
Links
- 238000013500 data storage Methods 0.000 claims abstract description 3
- 238000000034 method Methods 0.000 claims description 4
- 230000010354 integration Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
-
- 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/10537—Audio or video recording
- G11B2020/10546—Audio or video recording specifically adapted for audio data
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
본 발명은 동영상 전문가 그룹 오디오 레이어 3 디코더의 입력 버퍼에 관한 것으로, 적은 메모리로도 구현 가능한 원형 버퍼를 이용한 mp3 디코더의 입력 버퍼를 제공하는데 그 목적이 있다. 본 발명의 일 측면에 따르면, 동영상전문가그룹 오디오 레이어 3 레코더의 입력 버퍼에 있어서, 데이터를 저장하기 위한 메모리; 상기 메모리로 원형 버퍼를 구현하기 위해 상기 메모리의 탑 부분에서 다음에 채워 넣을 데이터 포인터를 라운딩시키고, 상기 메모리의 데이터 저장 상태에 따라 데이터의 입출력을 제어하기 위한 메모리 제어부; 상기 메모리 제어부로부터 출력된 헤드 포인터를 저장하고, 이를 상기 메모리의 쓰기 어드레스 신호로서 출력하는 제1 레지스터; 및 상기 메모리 제어부로부터 출력된 테일 포인터를 저장하고, 이를 상기 메모리의 읽기 어드레스 신호로서 출력하는 제2 레지스터를 구비하는 동영상 전문가 그룹 오디오 레이어 3 디코더의 입력 버퍼가 제공된다. 본 발명에 의하면 적은 메모리 용량만으로 구현이 가능하므로 집적화시 칩면적을 크게 줄일 수 있다.
Description
본 발명은 동영상 전문가 그룹 오디오 레이어 3(MPEG audio layer 3: 이하, mp3이라 칭함) 디코더(decoder)에 관한 것으로, 특히 원형 버퍼(circular buffer)를 이용하여 구현된 mp3 디코더의 입력 버퍼에 관한 것이다.
일반적으로 mp3은 최근 들어 각광받고 있는 현재 인터넷을 통한 디지털 음악 중에 가장 널리 알려진 알고리즘으로 이용자들의 관심이 점차 늘어가는 추세다. mp3 알고리즘에 의해 압축된 오디오 데이터는 약 12배의 압축률을 가지면서도 콤팩트 디스크(Compact Disk: CD)에 가까운 음질을 나타낸다. 또한, mp3 전용 플레이어가 생산되면서 이를 집적화하기 위한 많은 연구들이 진행중이다. 이러한 mp3 전용 플레이어에 의해서 음악 감상을 하기 위해서는 mp3 알고리즘에 의해 압축된 오디오 데이터를 다시 디코딩하기 위한 mp3 디코더를 필요로 한다.
도 1은 mp3 디코딩을 위한 실시간 처리 시스템을 설명하기 위한 도면으로, 도면 부호 10은 입력 버퍼를, 20은 실시간 처리 시스템을, 그리고 30은 출력 버퍼를 나타낸 것이다.
일반적으로 실시간 시스템에서는 일반적으로 처리해야 할 데이터의 양이 방대하다. 또한, 실시간 시스템을 구현하기 위해서는 항상 적당량의 처리해야 할 데이터를 저장하고 있어야 한다. 따라서, 입력 버퍼(10)에서는 압축된 mp3 데이터 스트림(stream)을 입력받아 저장하게 하고 실시간 처리 시스템(20)(혹은 하드와이어드로직(hard-wired logic)으로 구현)을 통해 디코딩 과정을 거쳐서 출력 버퍼(30)에 PCM 형태로 저장되어 외부 디지털-아날로그 변환기(Digital to Analog Converter)에 전달되어 실제적으로 사람이 들을 수 있게 된다. 따라서, 약 12배로 압축된 오디오 데이터 스트림은 출력 데이터에 비해 1/12 정도의 속도로 입력이 되면 되지만 mp3 알고리즘의 특성상 항상 적당량의 입력 데이터를 가지고 있어야만 실시간으로 디코딩을 할 수 있다. 따라서, 입력 버퍼(10)를 구성하기 위해서 메모리가 필요하며, 이 메모리는 처음에 들어온 데이터가 처음으로 나가는 선입선출(First-In-First-Out: FIFO) 형태의 큐(queue)를 만들어 주어야 한다. 입력 버퍼(10)를 구현하려면 오디오 데이터를 담고 있어야 하는데 일반적인 방법으로 구현하려면 노래 한 곡(약 4Mbyte)의 분량을 담아야 하므로 칩 면적이 상당히 커질 수 있다. 따라서, 적은 칩면적을 차지하도록 하기 위해서는 적은 메모리로 구현 가능한 방법을 모색하여야 하며, 동시에 속도 문제를 해결하여야 한다.
본 발명은 상기 문제점을 해결하기 위하여 안출된 것으로써, 적은 메모리로도 구현 가능한 원형 버퍼를 이용한 mp3 디코더의 입력 버퍼를 제공하는데 그 목적이 있다.
도 1은 일반적인 동영상 전문가 그룹 오디오 레이어 3 디코딩을 위한 실시간 처리 시스템을 설명하기 위한 도면.
도 2는 본 발명의 이해를 돕기 위한 원형 버퍼를 설명하기 위한 도면.
도 3은 본 발명의 일 실시예에 따른 동영상 전문가 그룹 오이오 레이어 3 디코더의 입력 버퍼의 블록 구성도.
도 4는 도 3에 도시된 메모리 제어부의 상세 구성도.
* 도면의 주요 부분에 대한 설명
10 : 입력 버퍼 20 : 실시간 처리 시스템
30 : 출력 버퍼 31 : 메모리
32 : 메모리 제어부 33 : A 레지스터
34 : B 레지스터 41 : 가산기
42, 43, 45 : 비교기 44 : 상태 머신
46 : 포인터 발생기
상기 목적을 달성하기 위한 본 발명의 일 측면에 따르면, 동영상전문가그룹 오디오 레이어 3 레코더의 입력 버퍼에 있어서, 데이터를 저장하기 위한 메모리; 상기 메모리로 원형 버퍼를 구현하기 위해 상기 메모리의 탑 부분에서 다음에 채워 넣을 데이터 포인터를 라운딩시키고, 상기 메모리의 데이터 저장 상태에 따라 데이터의 입출력을 제어하기 위한 메모리 제어부; 상기 메모리 제어부로부터 출력된 헤드 포인터를 저장하고, 이를 상기 메모리의 쓰기 어드레스 신호로서 출력하는 제1 레지스터; 및 상기 메모리 제어부로부터 출력된 테일 포인터를 저장하고, 이를 상기 메모리의 읽기 어드레스 신호로서 출력하는 제2 레지스터를 구비하는 동영상 전문가 그룹 오디오 레이어 3 디코더의 입력 버퍼가 제공된다.
바람직하게, 상기 메모리 제어부는, 상기 헤드 포인터를 '1'만큼 증가시키는 가산기; 상기 헤드 포인터 및 상기 테일 포인터를 비교하는 제1 비교기; 상기 가산기의 출력과 상기 테일 포인터를 비교하는 제2 비교기; 상기 헤드 포인터 및 상기 테일 포인터가 최상위 값에 도달했는지를 비교하는 제3 비교기; 및 상기 제3 비교기의 비교 결과에 따라, 상기 헤드 포인터 및 상기 테일 포인터 값을 변경하는 포인터 발생기를 구비특히, 메모리 제어부는 상기 제1포인터를 1 증가시키는 가산기를 구비한다.
이하, 첨부된 도면을 참조하여 본 발명의 일 실시예를 소개하기로 한다.
먼저, 본 발명의 이해를 돕기 위하여 도 2를 참조하여 원형 버퍼에 대하여 살펴보기로 한다.
도 2는 원형 버퍼의 일반적인 원리를 설명하기 위한 것으로, 두 개의 포인터(HEAD, TAIL)에 의해 버퍼의 입출력이 이루어진다. 먼저, HEAD 포인터는 데이터를 기록할 위치를 가리키는 포인터이고, TAIL은 데이터를 읽을 위치를 가리키는 포인터가 된다. 즉, HEAD와 TAIL 포인터는 각각 같은 방향으로 포인터를 이동시키면서 읽기 및 쓰기를 반복한다. 이러한 방법으로 버퍼를 구성하면 이미 읽은 포인터(TAIL)는 다시 새로운 데이터를 쓸 수 있으므로 적은 양의 메모리로 큐를 구성할 수 있게 된다.
도 3은 본 발명의 일 실시예에 따른 mp3 디코더의 입력 버퍼의 블록 구성도로서, 도면 부호 31은 메모리(원형 버퍼), 32는 메모리 제어부, 33 및 34는 A 레지스터 및 B 레지스터를 각각 나타낸 것이다.
먼저, 메모리(31)는 일반적인 데이터를 저장하기 위한 것으로, A 레지스터(33) 및 B 레지스터(34)에 의해 어드레스를 입력받아 데이터(DATA)를 읽고 쓰는 동작을 수행한다. 이때, A 레지스터(33)는 전술한 HEAD 포인터를 저장하는 레지스터이며, B 레지스터(34)는 상술한 TAIL 포인터를 저장하는 레지스터가 된다. 메모리 제어부(32)는 메모리(31)가 비었는지 혹은 꽉 찼는지를 판별해서 데이터의 입출력을 제어하며, 일반 메모리를 이용하여 원형 버퍼를 구현하기 위하여 메모리(31)의 탑 부분에서 다음에 채워 넣을 데이터 포인터를 라운딩시키는 역할을 담당한다. 또한, 데이터(DATA)의 쓰기 기능을 수행하기 위해서는 A 레지스터(33)를 이용하여 HEAD 포인터를 쓰기 어드레스(Aw)로서 기록하며, 메모리(31)에 데이터 기록을 위한 제어신호도 함께 생성해준다. 반대로 데이터(DATA)의 읽기 기능을 수행하기 위해서는 B 레지스터(33)에 TAIL 포인터를 읽기 어드레스(Ar)로서 기록하며, 마찬가지로 메모리(31)에 데이터 읽기를 위한 제어신호도 함께 생성해준다. 또한, 메모리 제어부(32)는 매번 읽기/쓰기를 수행할 때마다 메모리(31)의 최상위 번지에 도달했는지를 판별해서 최상위 번지에 도달되었으면 최하위 번지로 HEAD 및 TAIL 포인터를 업데이트 한다. 그리고 업데이트시 메모리(31)가 꽉 찾는지 알기 위해서 HEAD 포인터가 TAIL 포인터의 바로 아래 부분에 있는지 확인해서 메모리(31)가 꽉 찬 상태가 되면 외부에 더 이상의 데이터(DATA)를 요구하지 않게 된다. 반면, 메모리(31)가 비어 있는지 알기 위해서 HEAD 포인터와 TAIL 포인터가 같은 값을 가지고 있다면 디코딩을 담당하는 부분에 이를 알려주게 된다.
도 4는 도 3에 도시된 메모리 제어부(32)의 상세 구성도로서, empty는 메모리(31)가 비었음을 알리는 신호를, full은 메모리(31)가 꽉 찬 상태를 알리는 신호를, write는 메모리(31)의 쓰기 제어신호를, read는 메모리(31)의 읽기 제어신호를, HEAD 및 TAIL은 각각 전술한 포인터를, 41은 가산기를, 42, 43, 및 45는 비교기를, 그리고 44는 상태 머신을 나타낸 것이다.
먼저, 메모리 제어부(32)의 구성을 살펴보면, 가산기(41)는 HEAD 포인터를 1 증가시키며, 비교기(42)는 TAIL 포인터와 HEAD 포인터를 비교하고, 그 결과로서 empty신호를 발생한다. 또한, 비교기(43)는 1 증가된 HEAD 포인터와 TAIL 포인터를 비교하고, 그 결과로서 full 신호를 발생한다. 또한, 비교기(45)는 HEAD 포인터와 TAIL 포인터를 비교한 후, 그 결과 신호를 포인터 발생기(46)에 출력한다. 이때, 포인터 발생기는 다음 HEAD 및 TAIL 포인터를 발생하게 된다. 그리고, 상태 머신(44)은 메모리(31)의 읽기/쓰기 제어신호(read, write)를 발생한다.
이어서, 메모리 제어부(32)의 동작을 상세히 설명하면 다음과 같다.
HEAD 포인터와 TAIL 포인터의 값이 같다면 메모리(31)가 비어있다는 의미이므로 비교기(42)의 출력 empty신호는 인에이블 된다. 1 증가된 HEAD 포인터와 TAIL 포인터의 같다면 메모리(31)가 다 찬 것이므로 비교기(43)의 출력 full 신호는 인에이블 된다. 비교기(45)는 HEAD 포인터 또는 TAIL 포인터가 최상위 번지를 가리키는지를 비교하여 최상위 번지를 가리키면 이 포인터들을 라운딩시키기 위한 비교신호를 발생하게 된다. 이때, 상태 머신(44)은 메모리(31)에 읽기/쓰기 제어신호(read/write)를 발생시키는 부분으로 메모리(31)가 단일 포트 램(RAM) 혹은 이중 포트 램으로 이루어졌는가에 따라 달라질 수 있다. 즉, 단일 포트인 경우에는 반드시 read 또는 write 신호 한가지만을 발생시켜야 하며, 이중 포트인 경우에는 동시에 이 제어신호를 발생시킬 수 있다. 다음에, 포인터 발생기(46)는 비교기(45)의 비교 결과에 따라서 HEAD 또는 TAIL 포인터 값을 변화시켜주는 역할을 수행한다.
이상에서 살펴본 바와 같이, 본 발명은 mp3 디코더의 입력 버퍼에 대해서 원형 버퍼를 이용하여 적은 메모리만으로도 그 기능을 충분히 수행할 수 있도록 하였다. 따라서, 집적화시 칩면적을 최소화할 수 있다. 또한, HEAD 또는 TAIL 포인터를 발생하는데 있어서 둘 혹은 어느 하나에 대해서 소프트웨어적인 방법으로 변형할 수 있음은 본 발명의 기술 분야의 통상의 전문가라면 자명하다 할 것이다. 예를 들어, 입력 버퍼(10)에 mp3 스트림을 써 주는 것은 하드웨어적으로 수행하고 반대로 읽어 가는 것은 실시간 처리 시스템(20)(예를 들어, 디지털 신호 처리기 등)에서 맡는다면 HEAD 포인터에 대한 관리와 메모리 풀(full) 상태에 대한 것은 하드웨어적으로 처리하고, TAIL 포인터의 관리와 메모리 텅빈 상태의 처리는 실시간 처리 시스템(20)에서 소프트웨어적으로 처리하도록 구현할 수 있다.
본 발명의 기술 사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며, 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.
상기와 같이 이루어지는 본 발명에 따른 mp3 디코더의 입력 버퍼는 원형 버퍼 원리를 이용하여 적은 메모리로도 성능의 저하 없이 그 기능을 충분히 수행할 수 있다. 따라서, 집적화시 적은 메모리 용량으로도 구현이 가능하므로 칩면적을 줄여주어 수율 향상의 기여할 수 있다.
Claims (2)
- 동영상전문가그룹 오디오 레이어 3 레코더의 입력 버퍼에 있어서,데이터를 저장하기 위한 메모리;상기 메모리로 원형 버퍼를 구현하기 위해 상기 메모리의 탑 부분에서 다음에 채워 넣을 데이터 포인터를 라운딩시키고, 상기 메모리의 데이터 저장 상태에 따라 데이터의 입출력을 제어하기 위한 메모리 제어부;상기 메모리 제어부로부터 출력된 헤드 포인터를 저장하고, 이를 상기 메모리의 쓰기 어드레스 신호로서 출력하는 제1 레지스터; 및상기 메모리 제어부로부터 출력된 테일 포인터를 저장하고, 이를 상기 메모리의 읽기 어드레스 신호로서 출력하는 제2 레지스터를 구비하는 동영상 전문가 그룹 오디오 레이어 3 디코더의 입력 버퍼.
- 제1항에 있어서,상기 메모리 제어부는,상기 헤드 포인터를 '1'만큼 증가시키는 가산기;상기 헤드 포인터 및 상기 테일 포인터를 비교하는 제1 비교기;상기 가산기의 출력과 상기 테일 포인터를 비교하는 제2 비교기;상기 헤드 포인터 및 상기 테일 포인터가 최상위 값에 도달했는지를 비교하는 제3 비교기; 및상기 제3 비교기의 비교 결과에 따라, 상기 헤드 포인터 및 상기 테일 포인터 값을 변경하는 포인터 발생기를 구비하는 것을 특징으로 하는 동영상 전문가 그룹 오디오 레이어 3 디코더의 입력 버퍼.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990025801A KR100333646B1 (ko) | 1999-06-30 | 1999-06-30 | 동영상 전문가 그룹 오디오 레이어 3 디코더의 입력 버퍼 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990025801A KR100333646B1 (ko) | 1999-06-30 | 1999-06-30 | 동영상 전문가 그룹 오디오 레이어 3 디코더의 입력 버퍼 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010005016A KR20010005016A (ko) | 2001-01-15 |
KR100333646B1 true KR100333646B1 (ko) | 2002-04-24 |
Family
ID=19597746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019990025801A KR100333646B1 (ko) | 1999-06-30 | 1999-06-30 | 동영상 전문가 그룹 오디오 레이어 3 디코더의 입력 버퍼 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100333646B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220070591A (ko) | 2020-11-23 | 2022-05-31 | 이재중 | 안경렌즈 연마기용 정화장치 |
-
1999
- 1999-06-30 KR KR1019990025801A patent/KR100333646B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR20010005016A (ko) | 2001-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0476131B2 (ko) | ||
CA2126903C (en) | Digital surround sound method and apparatus | |
KR100333646B1 (ko) | 동영상 전문가 그룹 오디오 레이어 3 디코더의 입력 버퍼 | |
US5918302A (en) | Digital sound-producing integrated circuit with virtual cache | |
US9015375B2 (en) | Buffer controller, codec and methods for use therewith | |
JPH1020860A (ja) | 楽音発生装置 | |
EP0995187B1 (en) | Tone generation device and method | |
US6801961B2 (en) | Method for solving intermission of streaming data and associated device thereof | |
JP2669267B2 (ja) | バッファメモリ装置 | |
KR100308134B1 (ko) | 디지탈 오디오 디코더 및 그에 따른 디코딩 방법 | |
JP2004318467A (ja) | メモリー制御方法およびメモリー制御装置 | |
US7285711B2 (en) | Music player | |
JP4254677B2 (ja) | 楽音発生装置および楽音発生処理のプログラム | |
KR0124612B1 (ko) | 가라오케 시스템의 자막 및 반주음 처리장치 및 방법 | |
JPH10271082A (ja) | 音声データ復号装置 | |
JPH0719246B2 (ja) | デジタル信号処理装置 | |
KR100345667B1 (ko) | 동영상 전문가 그룹 오디오 레이어 3 디코더의 입력 버퍼 | |
JP2604695B2 (ja) | 中間アドレス割り込み付きコンピュータ装置 | |
JP3036837U (ja) | コンピュータゲーム装置における記憶媒体再生装置 | |
JPH0395787A (ja) | デジタル音楽情報の処理装置 | |
JPH04345997A (ja) | 音声処理装置 | |
JPH10207687A (ja) | 先入れ先出しメモリ装置 | |
JP2006146553A (ja) | データ転送装置 | |
JPH0312320B2 (ko) | ||
MXPA00000524A (en) | Tone generation device and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20050322 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |