KR100340070B1 - 엠피쓰리 디코더 칩의 입력 버퍼의 구조 - Google Patents

엠피쓰리 디코더 칩의 입력 버퍼의 구조 Download PDF

Info

Publication number
KR100340070B1
KR100340070B1 KR1019990063778A KR19990063778A KR100340070B1 KR 100340070 B1 KR100340070 B1 KR 100340070B1 KR 1019990063778 A KR1019990063778 A KR 1019990063778A KR 19990063778 A KR19990063778 A KR 19990063778A KR 100340070 B1 KR100340070 B1 KR 100340070B1
Authority
KR
South Korea
Prior art keywords
audio
header
address
frame
buffer
Prior art date
Application number
KR1019990063778A
Other languages
English (en)
Other versions
KR20010061285A (ko
Inventor
이종화
Original Assignee
박종섭
주식회사 하이닉스반도체
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 박종섭, 주식회사 하이닉스반도체 filed Critical 박종섭
Priority to KR1019990063778A priority Critical patent/KR100340070B1/ko
Publication of KR20010061285A publication Critical patent/KR20010061285A/ko
Application granted granted Critical
Publication of KR100340070B1 publication Critical patent/KR100340070B1/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00007Time or data compression or expansion
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00007Time or data compression or expansion
    • G11B2020/00014Time or data compression or expansion the compressed signal being an audio signal
    • G11B2020/00057MPEG-1 or MPEG-2 audio layer III [MP3]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data 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

엠피쓰리 디코더 칩의 입력 버퍼의 구조{Input buffer construction of mp3 decoder chip}
본 발명은 엠피쓰리(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)

  1. mp3 디코더 칩의 입력 버퍼에 있어서,
    mp3 스트림(stream)을 받아들여서 싱크 패턴을 찾기 위한 싱크 발견기;
    프레임(frame)의 헤더(Header) 정보로부터 사이드(Side) 정보의 크기를 계산하기 위한 헤더 길이 계산기;
    상기 헤더 길이 계산기로부터 계산되어진 사이드 정보의 크기를 입력받아 헤더 버퍼의 어드레스를 생성하기 위한 헤더 어드레스 발생기;
    프레임(frame)의 헤더(Header) 정보로부터 현재 프레임의 오디오 데이터의 크기를 계산하기 위한 오디오 길이 계산기;
    상기 오디오 길이 계산기로부터 계산되어진 오디오 데이터의 크기를 입력받아 오디오 버퍼의 어드레스를 생성하기 위한 오디오 어드레스 발생기;
    상기 싱크 발견기의 출력을 입력으로 받아서 프레임의 시작을 찾아내고 상기 헤더 길이 계산기와 상기 오디오 길이 계산기를 활성화시키기 위한 유한 상태기;
    상기 헤더 어드레스 발생기와 상기 오디오 어드레스 발생기로부터 발생된 어드레스를 입력받아 하나의 입력버퍼의 어드레스로 선택하기 위한 어드레스 선택기; 및
    상기 싱크 발견기와 상기 어드레스 선택기로부터 출력을 입력받아 버퍼링하기 위한 헤더 버퍼 및 오디오 버퍼
    를 포함하여 이루어진 입력 버퍼.
  2. mp3 디코더 칩의 데이터 스트림(stream)의 기본단위인 프레임(frame)의 시작을 검출하는 싱크 패턴(pattern) 감지기에 있어서,
    12 비트의 앤딩(ANDing) 연산을 수행하는 싱크 발견기;
    유한 상태기로부터 프레임의 시작을 알려주는 신호와 상기 싱크 발견기의 출력을 앤드 연산하여 상기 프레임의 시작부분에서만 싱크 패턴을 찾아주는 논리수단; 및
    상기 논리수단으로부터의 출력을 입력받아서 래치하기 위한 래치수단
    을 포함하여 이루어진 싱크 패턴 감지기.
  3. 제 2 항에 있어서,
    상기 논리수단은 앤드게이트임을 특징으로 하는 싱크 패턴 감지기.
KR1019990063778A 1999-12-28 1999-12-28 엠피쓰리 디코더 칩의 입력 버퍼의 구조 KR100340070B1 (ko)

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 KR20010061285A (ko) 2001-07-07
KR100340070B1 true 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105137849A (zh) * 2015-09-23 2015-12-09 鞍钢集团铁路运输设备制造公司 一种高炉铁水分装安全联锁系统及其联锁方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105137849A (zh) * 2015-09-23 2015-12-09 鞍钢集团铁路运输设备制造公司 一种高炉铁水分装安全联锁系统及其联锁方法

Also Published As

Publication number Publication date
KR20010061285A (ko) 2001-07-07

Similar Documents

Publication Publication Date Title
US5844923A (en) Fast framing of nude ATM by header error check
US6813275B1 (en) Method and apparatus for preventing underflow and overflow across an asynchronous channel
US7747447B2 (en) Broadcast router having a serial digital audio data stream decoder
US8281111B2 (en) System and method to execute a linear feedback-shift instruction
US8161349B2 (en) Data parallelizing receiver
US6546065B1 (en) Frame synchronous circuit
KR100340070B1 (ko) 엠피쓰리 디코더 칩의 입력 버퍼의 구조
US7159083B2 (en) Programmable transition state machine
US6384634B1 (en) Elastic store: recovery and boundary verification
US20030233609A1 (en) Parallel error checking for multiple packets
JPH11509658A (ja) 拡張されたチップ選択リセット装置および方法
KR980006956A (ko) 비터비 복호 신호의 동기/비동기 판단 방법 및 장치
US20030221082A1 (en) Method and apparatus for byte rotation
US20010034861A1 (en) Apparatus for processing output data of base station modem for use in IS-2000 mobile communication system
JP3063180B2 (ja) 可変長符号復号回路
KR0136821Y1 (ko) 데이터 네트워크
KR0124600B1 (ko) 에이치디티브이(hdtv)의 가변장 부호 복호기
JPS63164554A (ja) デ−タ速度自動認識システム
JPH0738630B2 (ja) デジタルパターンデコーダおよびデコード方法
KR900001514Y1 (ko) 텔리텍스트의 패키트 어드레스 검출회로
KR100365759B1 (ko) 버퍼단을포함한듀얼명령어처리복호기
KR200158764Y1 (ko) 동기식 직렬 수신 장치
KR100388943B1 (ko) 디지털 신호 처리 프로세서의 즉시 데이터 처리 장치
JPS60235548A (ja) 信号フレ−ムの伝送方式
JPH071885B2 (ja) ワ−ド同期器

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