KR20070105897A - Mp3 디코더의 입력 데이터 버퍼를 관리하는 방법 및 장치 - Google Patents

Mp3 디코더의 입력 데이터 버퍼를 관리하는 방법 및 장치 Download PDF

Info

Publication number
KR20070105897A
KR20070105897A KR1020070040701A KR20070040701A KR20070105897A KR 20070105897 A KR20070105897 A KR 20070105897A KR 1020070040701 A KR1020070040701 A KR 1020070040701A KR 20070040701 A KR20070040701 A KR 20070040701A KR 20070105897 A KR20070105897 A KR 20070105897A
Authority
KR
South Korea
Prior art keywords
memory
audio
main data
memory unit
audio data
Prior art date
Application number
KR1020070040701A
Other languages
English (en)
Other versions
KR100874023B1 (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 콴타 컴퓨터 인코포레이티드
Publication of KR20070105897A publication Critical patent/KR20070105897A/ko
Application granted granted Critical
Publication of KR100874023B1 publication Critical patent/KR100874023B1/ko

Links

Images

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/10Digital recording or reproducing
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/12Formatting, e.g. arrangement of data block or words on the record carriers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • 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/10537Audio or video recording
    • G11B2020/10546Audio or video recording specifically adapted for audio data
    • 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
    • G11B2020/10675Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control
    • G11B2020/10685Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control input interface, i.e. the way data enter the buffer, e.g. by informing the sender that the buffer is busy
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/60Solid state media
    • G11B2220/61Solid state media wherein solid state memory is used for storing A/V content
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/16Solid state audio

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Communication Control (AREA)

Abstract

메모리 관리 방법이 개시된다. 본 메모리는 M개의 메모리 유닛으로 구성되며, 오디오 비트 스트림 내의 적어도 하나의 오디오 프레임을 임시로 저장하는데 사용된다. 오디오 비트 스트림은 N개의 오디오 프레임을 포함한다. 오디오 비트 스트림 내의 i번째 오디오 프레임은 S i 메모리 유닛과 동일한 크기의 i번째 메인 데이터를 포함한다. (i-1) 번째 오디오 프레임의 메인 데이터를 저장하기 위한 메모리 유닛 중 최후에 사용된 메모리는 메모리 내의 L ( i -1) 번째 메모리 유닛이다. 본 방법은 먼저 i번째 오디오 프레임의 i번째 메인 데이터를 수신하며, i번째 기준값 보다 S i 값이 더 큰지를 판단한다. 그 다음 i번째 오디오 프레임의 i번째 메인 데이터를 저장하기 위한 M개의 메모리 유닛의 시작 부분을 그 판단 결과와 M, S i , L (i-1)값을 이용하여 선택한다.
MP3 디코더

Description

MP3 디코더의 입력 데이터 버퍼를 관리하는 방법 및 장치{METHOD AND APPARATUS FOR MANAGING INPUT DATA BUFFER OF MP3 DECODER}
도 1은 표준 MP3 오디오 프레임의 구성을 나타낸다.
도 2는 비트 리저버(bit-reservoir) 메커니즘에 따른 오디오 프레임의 예를 나타낸다.
도 3은 종래의 MP3 디코더의 블록도를 나타낸다.
도 4는 본 발명에 따라 메모리 내에 오디오 프레임의 메인 데이터 블록을 저장하는 방법의 일 예를 나타낸다.
도 5는 본 발명의 일 실시예에 따른 관리 방법의 흐름도를 나타낸다.
도 6은 본 실시예에 따른, MP3 디코더에 집적된 관리 장치의 블록도를 나타낸다.
* 도면의 주요부분에 대한 간단한 설명 *
30 : MP3 디코더 31 : 오디오 프레임 분석기
32 : 부가 정보 버퍼 33 : 메인 데이터 버퍼
34 : 오디오 프레임 디코더 60A : 수신 모듈
60B : 판단 모듈 60C : 선택 모듈
60D : 저장 모듈
본 발명은 데이터 버퍼(data buffer)를 제어하는 장치 및 방법에 관한 것이며, 보다 구체적으로 MP3 디코더의 입력 데이터 버퍼를 관리하는 장치 및 방법에 관한 것이다.
MP3(MPEG Layer III) 스펙(specification)은 현재의 오디오 표준으로 일반적으로 사용된다. 도 1은 표준 MP3 오디오 프레임(10)의 구성을 나타낸다. 헤더(header: 12)는 오디오 프레임(10)의 기본적인 정보, 예를 들어 MPEG 종류, 에러 정정 코드(error correction codes), 샘플링 주파수(sampling frequency), 비트율(bit rate)를 포함한다. 오디오 프레임(10)을 디코딩하기 위한 관련 정보, 예를 들어, 재양자화(re-quantization) 및 허프만 복호(Huffman decoding)에 대한 정보는 부가 정보 블록(side information block: 24) 내에 기록된다. 오디오 데이터는 메인 데이터 블록(main data block: 16) 내에 저장된다. 또한, 사용자는 오디오 프레임(10)과 연관된 정보(예를 들어 가수, 노래 제목)를 보조 데이터 블록(ancillary data block: 18) 내에 저장할 수 있다.
비록 오디오 프레임(10) 및 메인 데이터 블록(16)의 크기는 고정되어 있지만, 오디오 프레임(10)과 대응되는 오디오 데이터 길이는 가변적이다. 몇몇의 오디오 데이터는 메인 데이터 블록(16)의 최대 허용치보다 더 길다. 그리고 몇몇 오디오 데이터는 허용치보다 더 짧다. 오디오 프레임(10) 생성시, 전체 저장 효율을 증가시키기 위해서 사용자는 비트 리저버(bit-reservoir) 메커니즘을 이용할 수 있다. 이 경우 오디오 프레임(10)과 대응되는 오디오 데이터는 다른 오디오 프레임(10)의 메인 데이터 블록(16)에 선택적으로 저장될 수 있다.
비트 리저버 메커니즘이 적용되면, 소정 오디오 프레임(10)에 대응되는 오디오 데이터가 그 오디오 프레임(10)의 메인 데이터 블록(16) 내에 저장되는지 확실하지 않다. 따라서, 부가 정보 블록(14)은 오디오 프레임(10)에 대응하는 오디오 데이터의 실제 시작 위치를 나타내는 시작 인덱스(일반적으로 메인 데이터 시작으로 표시됨)를 반드시 포함해야 한다.
도 2는 비트 리저버 메커니즘에 따른 오디오 프레임의 예를 나타낸다. 본 예에서 4개의 오디오 프레임: 제1 오디오 프레임(21), 제2 오디오 프레임(22), 제3 오디오 프레임(23) 및 제4 오디오 프레임(24)이 도시된다. 각각의 오디오 프레임은 2개의 블록을 포함한다. 블록A는 헤더와 부가 정보를 포함하며, 블록 B는 메인 데이터 블록이다(도 2에 부가 정보 블록이 표시되지는 않았다). 도 2에서 제1 오디오 프레임(21)에 대응하는 오디오 데이터의 크기는 메인 데이터 블록(21B)의 크기보다 작다. 따라서 메인 데이터 블록(21B)의 일부분이 제1 오디오 프레임(22)에 대응되는 오디오 데이터를 저장하는데 사용된다. 마찬가지로 제2 오디오 프레임(22)의 메인 데이터 블록(22B)은 제3 오디오 프레임(23)에 대응하는 오디오 데이터 및 제4 오디오 프레임(24)에 대응하는 오디오 데이터 일부분을 저장한다.
도 3은 MP3 디코더(30)의 블록도를 나타낸다. MP3 디코더(30)는 오디오 프레임 분석기(audio frame analyzer: 31), 부가 정보 버퍼(side information buffer: 32), 메인 데이터 버퍼(main data buffer: 33) 및 오디오 프레임 디코더(audio frame decoder: 34)를 포함한다. MP3 디코더(30)가 오디오 프레임을 수신하면, 오디오 프레임 분석기(31)는 오디오 프레임의 시작 부분을 찾고, 오디오 프레임의 길이를 계산하며 오디오 프레임의 메인정보 및 부가 정보를 부가 정보 버퍼(21) 및 메인 데이터 버퍼(33)에 각각 전송한다. 그 다음 오디오 프레임 디코더(34)는 부가 정보 버퍼(32) 및 메인 데이터 버퍼(33)에 저장된 정보를 기초로 오디오 프레임을 디코딩한다.
비트 리저버 메커니즘에서 디코딩될 오디오 프레임에 대응되는 오디오 데이터는 이전의 오디오 프레임에 완전히 또는 부분적으로 저장될 수 있다. 이 경우 종래 기술의 대부분의 MP3 디코더는 이전의 오디오 프레임에 접근하기 위해 되돌아 간다. 그러나 이러한 비정상적 접근 방법은 처리 시간이 많이 낭비된다. 되돌아가는 빈도를 줄이기 위해 종래의 몇몇 MP3 디코더는 한번에 복수 또는 전체 오디오 프레임을 저장하도록 메인 데이터 버퍼(33)의 용량을 실체적으로 증가하였다. 그러나 이와 같은 해결책은 많은 저장 공간이 낭비된다는 문제점이 있다.
상기와 같은 문제점을 해결하기 위하여, 본 발명은, 오디오 디코더의 메인 데이터 버퍼를 관리하기 위한 방법 및 장치를 제공한다. 상기 오디오 디코더는 N개의 오디오 프레임을 포함하는 오디오 비트 스트림을 디코딩하는데 사용된다. 메인 데이터 버퍼는 M개의 메모리 유닛을 포함하며, 오디오 비트 스트림의 적어도 하나 이상의 오디오 프레임을 임시로 저장하는데 사용되는 메모리이다. N개의 오디오 프레임 중 i번째 오디오 프레임은 S i 메모리 유닛과 같은 크기의 i번째 메인 데이터 블록을 포함한다. N과 M은 양의 정수이다. S i 는 M보다 작거나 같은 양의 정수이다. i는 1부터 N까지 범위의 자연수이다. 이하의 예에서, (i-1)번째 메인 데이터 블록을 저장하기 위한 메모리 유닛 중 최후에 사용된 메모리는 메모리 내의 (L( i -1))번째 메모리라 가정한다.
본 발명의 일 실시예에 따르면, 메모리를 관리하는 방법이 제공된다. 본 방법에 따르면 i번째 오디오 프레임 내의 i번째 메인 데이터 블록이 먼저 수신된다. 그 다음에 i번째 기준값(reference value)보다 S i 값이 더 큰지 여부를 판단한다. 상 기 판단 결과와 M, S i , L( i -1)의 값에 따라 M개의 메모리 유닛으로부터 i번째 메모리 유닛 세트가 선택된다. 그리고 i번째 메인 데이터 블록이 i번째 메모리 유닛 세트에 저장된다.
다른 실시예에 따르면, 메모리를 관리하는 장치가 제공된다. 본 장치는 수신 모듈, 판단 모듈, 선택 모듈 및 저장 모듈을 포함한다. 수신 모듈은 i번째 오디오 프레임 내의 i번째 메인 데이터 블록을 수신한다. 판단 모듈은 수신 모듈과 연결되며, i번째 기준 값보다 S i 값이 더 큰지 여부를 판단한다. 선택 모듈은 판단 모듈의 판단 결과와 M, S i , L( i -1)의 값에 따라 M개의 메모리 유닛으로부터 i번째 메모리 유닛 세트를 선택한다. 그리고 저장 모듈은 i번째 메모리 유닛 세트에 i번째 메인 데이터 블록을 저장한다.
이하, 도면을 참고하여 본 발명을 상세히 설명한다.
본 발명의 목적은 MP3 디코더의 메인 데이터 버퍼를 관리하는 방법 및 장치를 제공하는 데 있다. 본 발명에 따르면 원형 입력 버퍼(circular input buffers: CIB)의 개념이 MP3 디코더의 메인 데이터 버퍼를 관리하는데 사용된다.
이하의 예에서, MP3디코더는 N개의 오디오 프레임을 포함하는 오디오 비트 스 트림을 디코딩하는데 사용되는 것으로 가정한다. 메인 데이터 버퍼는 M개의 메모리 유닛을 포함하며, 오디오 비트 스트림 내의 적어도 하나의 오디오 프레임을 임시로 저장하는데 사용되는 메모리이다. N개의 오디오 프레임 중 i번째 오디오 프레임은 S i 메모리 유닛과 동일한 크기의 i번째 메인 데이터 블록을 포함한다. N과 M은 양의 정수이다. S i 는 M보다 작거나 같은 양의 정수이다. i는 1부터 N까지 범위의 자연수이다. 또한, (i-1)번째 메인 데이터 블록을 저장하기 위한 메모리 유닛 중 최후에 사용된 메모리는 메모리 내의 L( i -1)번째 메모리 유닛이라고 가정한다.
도 4는 본 발명에 따라, 메모리 내에 오디오 프레임의 메인 데이터 블록을 저장하는 예를 나타낸다. 메모리(40)에서 데이터는 화살표 방향(42)으로 메모리 유닛에 순차적으로 저장된다. 도 4의 (a)에서, i번째 메인 데이터 블록이 메모리(40)에 저장되기 전에, (i-1)번째 오디오 프레임의 (i-1)번째 메인 데이터 블록은 메모리(40) 내에서 (L( i -2)+1)번째부터 L( i -1)번째까지의 메모리 유닛에 저장된다. 상술한 비트 리저버 메커니즘에서 i번째 오디오 프레임은 i번째 오디오 데이터에 대응된다. 그러나 i번째 오디오 데이터는 i번째 오디오 프레임 내의 i번째 메인 데이터 블록에 확실히 또는 전부 저장되는 것은 아니다. 그러므로 (i-1)번째 오디오 프레임에 대응되는 (i-1)번째 오디오 데이터를 제외하고, (i-1)번째 메인 데이터 블록은 i번째 오디오 프레임에 대응되는 i번째 오디오 데이터의 일부분을 더 포함한다.
도 4의 (a)에 표시된 상기 (i-1)번째 시작 인덱스 B( i -1)는 (i-1)번째 오디오 데이터 및 (i-1)번째 메인 데이터 블록의 상관 관계를 나타낸다. 상기의 예에서 B( i -1)는 0이다. 즉, (i-1)번째 오디오 데이터의 시작 위치는 (i-1)번째 메인 데이터 블록의 시작 위치와 같다.
MP3 디코더가 메모리(40)에 i번째 오디오 프레임의 i번째 메인 데이터 블록을 저장하기 시작할 때, 본 발명에 따른 방법 및 장치는 먼저 S i 의 값(즉, i번째 메인 데이터 블록의 크기)이 i번째 기준값 보다 큰 값인지 여부를 판단한다. i번째 기준값은 M 값과 L( i -1)값의 차이일 수 있다. 즉, i번째 기준값은 (i-1)번째 메인 데이터 블록의 끝 위치에서 메모리(40)의 끝까지의 거리와 같을 수 있다. 만약 S i i번째 기준값 보다 작다면, 이것은 (i-1)번째 메인 데이터 블록의 끝 위치와 메모리(40)의 끝 사이에 놓인 메모리 유닛의 i번째 메인 데이터 블록을 저장하기에 충분하다는 것을 의미한다. 이 경우 본 발명의 방법 및 장치는 (i-1)번째 메인 데이터 블록 다음에 i번째 메인 데이터 블록을 저장한다. 이것은 메모리(40) 내에서 (L( i -1) + 1)번째부터 (L( i -1) + S i )번째까지의 메모리 유닛에 i번째 메인 데이터가 저장됨을 의미한다.
도 4의 (b)는 S i i번째 기준값 보다 더 클 때의 상태를 나타낸다. 만약 S i i번째 기준값 보다 크다면, 이것은 (i-1)번째 데이터 블록의 끝 위치와 메모리(40)의 끝 사이에 위치한 메모리 유닛의 i번째 메인 데이터 블록을 저장하기에 충분하지 않음을 의미한다. 이 경우 본 발명의 방법 및 장치는, 도 4의 (b)에 나타난 것과 같이 i번째 메인 데이터 블록을 2개 부분(i번째 메인 데이터 블록 I 및 i번째 메인 데이터 블록 II)으로 나눈다. 두 개의 부분은 메모리(40)의 (L( i -1) + 1)번째부터 M번째까지의 메모리 유닛과 첫 번째부터 (S i - M + L( i -1))번째까지의 메모리 유닛에 각각 저장된다.
더욱이, i번째 메인 데이터 블록은 i번째 오디오 프레임에 대응되는 i번째 오디오 데이터 및 (i+1)번째 오디오 프레임에 대응되는 (i+1)번째 오디오 데이터를 포함한다.
도 4의 (b)에서, i번째 오디오 데이터의 일 부분은 (i-1)번째 메인 데이터 블록을 포함하며, i번째 오디오 데이터의 다른 부분은 i번째 메인 데이터 블록I을 포함한다. MP3 디코더가 메모리(40) 내에 i번째 오디오 데이터에 접근하기를 요청할 때 본 발명의 장치 및 발명은, i번째 시작 인덱스(B i )와 L( i -1)값을 기초로 하여 i번째 오디오 데이터의 시작 위치를 찾을 수 있다.
i번째 오디오 데이터에서, (i-1)번째 메인 데이터 블록이 포함된 일부분은 덮 어쓰기(over-written) 또는 삭제되지 않고 메모리(40)에 계속 저장된다. 본 발명에서 메모리(40)는 원형 입력 버퍼이기 때문에, MP3 디코더는 i번째 오디오 데이터의 시작 위치를 알아낸 후, 메모리(40)로부터 i번째 오디오 데이터에 순차적으로 접근할 수 있다. 더 상세히 설명하면, 본 발명에서 (i-1)번째 메인 데이터 블록이 포함된 i번째 오디오 데이터의 일 부분에 접근하기 위한 요청이 있을 때 (i-1)번째 메인 데이터 블록은 선행기술에서처럼 메모리(40)로 재로드(re-load)될 필요가 없다. 메모리(40)의 포인터(pointer)는 일반적으로 이전의 엑세싱(accessing) 연산의 끝을 표시하기 위해 사용된다. 이론상 i번째 오디오 데이터에 접근되기 전에 포인터는 (i-1)번째 오디오 데이터의 끝 위치를 가리킨다. 따라서 MP3 디코더는 (i-1)번째 오디오 데이터의 끝 위치로부터 i번째 오디오 데이터에 접근을 바로 시작할 수 있다. 게다가 본 발명의 또 다른 이점은, 메모리(40)의 크기가 오디오 스트림 내의 가장 긴 오디오 데이터를 저장하기에 충분한 크기이어야 한다는 요구 조건에 부합된다는 것이다. 선행 기술과 비교시, 본 발명은 메모리에 대한 비용을 상당히 줄일 수 있다.
i번째 데이터 블록이 저장된 이후에, 후속 오디오 프레임의 메인 데이터 블록은 메모리(40)에 순차적으로 저장될 수 있다. 도 4의 (c)는 (i+1)번째 메인 블록이 저장된 이후에 메모리(40)를 나타낸다. 도 4의 (c)에서, 만약 MP3디코더가 i번째 오디오 데이터를 성공적으로 디코딩하였다면, (i+1)번째 메인 데이터 블록은 (i-1)번째 메인 데이터 블록이 이전에 저장되었던 메모리 유닛에 덮어쓰기 될 수 있다.
도 5는 본 발명의 일실시예에 따른 관리 방법의 흐름도를 나타낸다. 본 방법에 따르면 먼저 i번째 오디오 프레임의 i번째 메인 데이터 블록이 수신된다(S51). 그 다음 S i 값이 i번째 기준값보다 큰지 여부를 판단한다(S52). 만약 단계 52의 판단 결과가 Yes라면 단계 53이 수행된다. 이에 따라, i번째 메인 데이터 블록을 저장하기 위한 i번째 메모리 유닛 세트로서 M개의 메모리 유닛 중 (L( i -1) +1)번째부터 M번째까지의 메모리 유닛 및 처음부터 (S i - M + L( i -1))번째까지의 메모리 유닛이 선택된다(S53). 만약 단계 52의 판단 결과가 No라면 단계 54가 실행된다. 이에 따라, i번째 메모리 유닛 세트로서 M개의 메모리 유닛 중 (L( i -1) + 1)번째부터 (L( i -1) + S i )번째까지의 메모리 유닛이 선택된다(S54). i번째 메인 데이터 블록은 i번째 메모리 유닛 세트에 저장된다(S55).
다른 실시예에 따르면, 메모리를 관리하는 관리 장치(60)가 제공된다. 도 6은 도 3의 MP3 디코더에 집적된 관리 장치(60)의 블록도를 나타낸다. 본 발명에 따르면, 도 6의 메인 데이터 버퍼(62)는 M개의 메모리 유닛을 포함하는 메모리이다. 관리 장치(60)는 수신 모듈(receiving module: 60A), 판단 모듈(judging module: 60B), 선택 모듈(selecting module: 60C) 및 저장 모듈(storing module: 60D)을 포함한다. 수신 모듈(60A)은 오디오 프레임 분석기(31)로부터 i번째 오디오 프레임 내의 i번째 메인 데이터 블록을 수신한다. 판단 모듈(60B)은 수신 모듈(60A)과 연 결되며, S i 값이 i번째 기준 값보다 더 큰지 여부를 판단한다. 선택 모듈(60C)은 판단 모듈 (60B)의 판단 결과 및 M, S i , L( i -1) 값에 기초하여 M개의 메모리 유닛으로부터 메모리 부의 i번째 세트를 선택한다. 그 다음 저장 모듈(60D)은 i번째 메인 데이터 블록을 i번째 메모리 유닛 세트에 저장한다. 부가 정보 버퍼(32)는 관리 장치(60)와 연결되며, i번째 오디오 프레임의 부가 정보 블록 내의 i번째 시작 인덱스(B i )를 제공한다.
구현시에는, 관리 장치(60)는 탐색 모듈(searching module)을 더 포함할 수 있다. 탐색 모듈은 사용자가 메모리에서 i번째 오디오 데이터에 접근하려고 할 때, 상기 i번째 시작 인덱스(B i ) 및 L( i -1)값에 기초하여 메인 데이터 버퍼(62) 내의 i번째 오디오 데이터의 시작 위치를 찾는다.
이상 설명한 바와 같이, 본 발명에 따르면 많은 저장공간을 낭비하지 않으면서 메모리를 관리할 수 있게 된다.
이상에서는 본 발명의 바람직한 실시예에 대해 도식하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식 을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.

Claims (18)

  1. N개의 오디오 프레임을 포함하는 오디오 비트 스트림을 디코딩하는 장치에서, M개의 메모리 유닛을 구비하여, 상기 오디오 비트 스트림 내의 적어도 하나의 오디오 프레임을 임시로 저장하기 하기 위해 사용되는 메모리를 관리하는 방법에 있어서, 상기 N과 M은 양의 정수이고, 상기 N개의 오디오 프레임 중 i번째 오디오 프레임은 S i 메모리 유닛과 동일한 크기의 i번째 메인 데이터 블록을 포함하며, 상기 i는 1부터 N까지 범위의 자연수이며, 상기 S i 는 M보다 작거나 같은 양의 정수이며, 상기 (i-1) 번째 메인 데이터 블록을 저장하기 위한 메모리 유닛 중 최후에 사용된 메모리는 메모리 내의 L( i -1)번째 메모리 유닛이며, 상기 방법은,
    a) 상기 i번째 오디오 프레임 내의 상기 i번째 메인 데이터 블록을 수신하는 단계;
    b) i번째 기준 값보다 S i 값이 더 큰지 여부를 판단하는 단계;
    c) 상기 판단 결과와 M, S i , L( i -1)의 값에 따라 상기 M개의 메모리 유닛 중 i번째 메모리 유닛 세트를 선택하는 단계; 및
    d) 상기 i번째 메모리 유닛 세트 내에 i번째 메인 데이터 블록을 저장하는 단계; 를 포함하는 방법.
  2. 제1항의 방법에 있어서,
    상기 i번째 기준값은 M값과 L( i -1)값의 차이값인 방법.
  3. 제2항의 방법에 있어서,
    상기 b) 단계의 판단 결과가 N(No)라면, 상기 i번째 메모리 유닛 세트는 상기 M개의 메모리 유닛 중 (L( i -1) + 1)번째부터 (L( i -1) + S i )번째까지의 메모리 유닛을 포함하는 방법.
  4. 제2항의 방법에 있어서,
    상기 b) 단계의 판단결과가 Y(Yes)라면, 상기 i번째 메모리 유닛 세트는 상기 M개의 메모리 유닛 중 (L( i -1) + 1)번째부터 M번째까지 메모리 유닛과 처음부터 (S i - M + L( i -1))까지의 메모리 유닛을 포함하는 방법.
  5. 제1항의 방법에 있어서,
    상기 i번째 오디오 프레임은 i번째 오디오 데이터에 대응되며, 상기 i번째 메인 데이터 블록은 i번째 오디오 데이터부터 N번째 오디오 데이터 사이에서 적어도 하나의 오디오 데이터를 선택적으로 포함하는 방법.
  6. 제5항의 방법에 있어서,
    상기 i번째 오디오 데이터에 대응되는 i번째 시작 인덱스(B i )가 기 제공되어, 상기 i번째 오디오 데이터와 상기 i번째 메인 데이터 블록 사이의 상관 관계를 나타내는 방법.
  7. 제6항의 방법에 있어서,
    e) 상기 장치가 메모리의 i번째 오디오 데이터에 접근하기를 요청한다면, 상기 i번째 시작 인덱스(B i )와 L( i -1) 값에 기초하여 상기 메모리의 i번째 오디오 데이터 시작 위치를 찾는 단계;를 더 포함하는 방법.
  8. 제7항의 방법에 있어서,
    상기 i번째 오디오 데이터 시작 위치는 상기 메모리의 (L( i -1) + B i ) 번째 메모리인 방법.
  9. 제1항의 방법에 있어서.
    상기 장치는 MP3 디코더인 방법.
  10. N개의 오디오 프레임을 포함하는 오디오 비트 스트림을 디코딩하는 장치에, M개의 메모리 유닛을 구비하여, 상기 오디오 비트 스트림 내의 적어도 하나의 오디오 프레임을 임시로 저장하기 하기 위해 사용되는 메모리를 관리하는 장치에 있어서, 상기 N과 M은 양의 정수이고, 상기 N개의 오디오 프레임 중 i번째 오디오 프레임은 S i 메모리 유닛과 동일한 크기의 i번째 메인 데이터 블록을 포함하며, 상기 i는 1부터 N까지 범위의 자연수이며, 상기 S i 는 M보다 작거나 같은 양의 정수이며, 상기 (i-1) 번째 메인 데이터 블록을 저장하기 위한 메모리 유닛 중 최후에 사용된 메모리는 메모리 내의 L( i -1)번째 메모리 유닛이며, 상기 장치는,
    상기 i번째 오디오 프레임 내의 상기 i번째 메인 데이터 블록을 수신하는 수신 모듈;
    상기 수신 모듈과 연결되며, i번째 기준 값보다 S i 값이 더 큰지 여부를 판단하는 판단 모듈;
    상기 판단 결과와 M, S i , L( i -1)의 값에 따라 상기 M개의 메모리 유닛 중 i번째 메모리 유닛 세트를 선택하는 선택 모듈; 및
    상기 i번째 메모리 유닛 세트 내에 상기 i번째 메인 데이터 블록을 저장하는 저장 모듈;을 포함하는 장치.
  11. 제10항의 장치에 있어서,
    상기 i번째 기준값은 M값과 L( i -1)값의 차이값인 장치.
  12. 제11항의 장치에 있어서,
    상기 판단 모듈의 판단 결과가 N(No)라면, 상기 i번째 메모리 유닛 세트는 상기 M개의 메모리 유닛 중 (L( i -1) + 1)번째부터 (L( i -1) + S i )번째까지의 메모리 유닛을 포함하는 장치.
  13. 제11항의 장치에 있어서,
    상기 판단 모듈의 판단 결과가 Y(Yes)라면, 상기 i번째 메모리 유닛 세트는 상기 M개의 메모리 유닛 중 (L( i -1) + 1)번째부터 M번째까지 메모리 유닛과 처음부터 (S i - M + L( i -1))까지의 메모리 유닛을 포함하는 장치.
  14. 제 10 항의 장치에 있어서,
    상기 i번째 오디오 프레임은 i번째 오디오 데이터에 대응되며, 상기 i번째 메인 데이터 블록은 i번째 오디오 데이터부터 N번째 오디오 데이터 사이에서 적어도 하나의 오디오 데이터를 선택적으로 포함하는 장치.
  15. 제 14 항의 장치에 있어서,
    상기 i번째 오디오 데이터에 대응되는 i번째 시작 인덱스(B i )가 기 제공되어, 상기 i번째 오디오 데이터와 상기 i번째 메인 데이터 블록 사이의 상관 관계를 나타내는 장치.
  16. 제 15 항의 장치에 있어서,
    사용자가 메모리의 i번째 오디오 데이터에 접근하기를 요청한다면, 상기 i번째 시작 인덱스(B i )와 L( i -1) 값에 기초하여 상기 메모리의 i번째 오디오 데이터 시작 위치를 찾는 탐색 모듈;을 더 포함하는 장치.
  17. 제 16 항의 장치에 있어서,
    상기 i번째 오디오 데이터 시작 위치는 상기 메모리의 (L( i -1) + B i ) 번째 메모리인 장치.
  18. 제 10 항의 장치에 있어서,
    상기 오디오 디코더는 MP3 디코더인 장치.
KR1020070040701A 2006-04-26 2007-04-26 Mp3 디코더의 입력 데이터 버퍼를 관리하는 방법 및 장치 KR100874023B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW095114804 2006-04-26
TW095114804A TW200741537A (en) 2006-04-26 2006-04-26 Method and apparatus for managing input data buffer of MP3 decoder

Publications (2)

Publication Number Publication Date
KR20070105897A true KR20070105897A (ko) 2007-10-31
KR100874023B1 KR100874023B1 (ko) 2008-12-17

Family

ID=38649652

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070040701A KR100874023B1 (ko) 2006-04-26 2007-04-26 Mp3 디코더의 입력 데이터 버퍼를 관리하는 방법 및 장치

Country Status (3)

Country Link
US (1) US20070255888A1 (ko)
KR (1) KR100874023B1 (ko)
TW (1) TW200741537A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102768834B (zh) * 2012-03-21 2018-06-26 新奥特(北京)视频技术有限公司 一种实现音频帧解码的方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314478B1 (en) * 1998-12-29 2001-11-06 Nec America, Inc. System for accessing a space appended to a circular queue after traversing an end of the queue and upon completion copying data back to the queue
KR100515413B1 (ko) * 2000-08-31 2005-09-15 매그나칩 반도체 유한회사 비트 스트림 처리기
KR100904626B1 (ko) * 2001-04-20 2009-06-25 코닌클리케 필립스 일렉트로닉스 엔.브이. Mp3용 트릭 플레이
US7149412B2 (en) 2002-03-01 2006-12-12 Thomson Licensing Trick mode audio playback
US7317867B2 (en) * 2002-07-11 2008-01-08 Mediatek Inc. Input buffer management for the playback control for MP3 players
TWI237806B (en) * 2004-11-03 2005-08-11 Sunplus Technology Co Ltd Audio decoding system with ring buffer and method thereof

Also Published As

Publication number Publication date
US20070255888A1 (en) 2007-11-01
TW200741537A (en) 2007-11-01
KR100874023B1 (ko) 2008-12-17

Similar Documents

Publication Publication Date Title
US8626323B2 (en) Method and apparatus for playing audio files
US7885201B2 (en) Method for finding out the frame of a multimedia sequence
CN107577436B (zh) 一种数据存储方法及装置
US7571096B2 (en) Speech recognition using a state-and-transition based binary speech grammar with a last transition value
US8706277B2 (en) Method and system for memory usage in real-time audio systems
US20140359233A1 (en) Read-write control method for memory, and corresponding memory and server
US7558806B2 (en) Method and apparatus for buffering streaming media
CN102595240B (zh) 视讯/影像解码系统与相应的视讯/影像解码方法
US20120033738A1 (en) Virtual frame buffer system and method
KR20080024187A (ko) 비-제위치 실행 플래시 메모리에서 영속 파일을 액세스하기위한 장치, 시스템 및 방법
US7533234B2 (en) Method and apparatus for storing compressed code without an index table
US9665590B2 (en) Bitmap compression for fast searches and updates
CN100520946C (zh) 存储不同数据格式的存储器件
CN1463441A (zh) Mp3的特技播放
US7317867B2 (en) Input buffer management for the playback control for MP3 players
CN102047338B (zh) 优化媒体内容中的搜索功能
US5623640A (en) Data memory system that exchanges data in data locations with other data locations based on the number of writes to the memory
KR100874023B1 (ko) Mp3 디코더의 입력 데이터 버퍼를 관리하는 방법 및 장치
KR20040069344A (ko) 데이터 디코딩 방법, 수신기 및 컴퓨터 프로그램 제품
CN109947978B (zh) 一种音频存储、播放方法及装置
KR100308134B1 (ko) 디지탈 오디오 디코더 및 그에 따른 디코딩 방법
US6765513B2 (en) Decoding bit streams compressed with compression techniques employing variable length codes
US7994948B2 (en) Table generation method for decoding variable-length codes
US7978829B2 (en) Voice file retrieval method
US20050182902A1 (en) Signal processing apparatus

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: 20111018

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140918

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee