KR20070105897A - Mp3 디코더의 입력 데이터 버퍼를 관리하는 방법 및 장치 - Google Patents
Mp3 디코더의 입력 데이터 버퍼를 관리하는 방법 및 장치 Download PDFInfo
- 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
Links
Images
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/10—Digital recording or reproducing
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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/12—Formatting, e.g. arrangement of data block or words on the record carriers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- 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/10537—Audio or video recording
- G11B2020/10546—Audio or video recording specifically adapted for audio data
-
- 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
- G11B2020/10675—Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control
- G11B2020/10685—Data 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/60—Solid state media
- G11B2220/61—Solid state media wherein solid state memory is used for storing A/V content
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/16—Solid 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
도 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)
- 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번째 메인 데이터 블록을 저장하는 단계; 를 포함하는 방법.
- 제1항의 방법에 있어서,상기 i번째 기준값은 M값과 L( i -1)값의 차이값인 방법.
- 제2항의 방법에 있어서,상기 b) 단계의 판단 결과가 N(No)라면, 상기 i번째 메모리 유닛 세트는 상기 M개의 메모리 유닛 중 (L( i -1) + 1)번째부터 (L( i -1) + S i )번째까지의 메모리 유닛을 포함하는 방법.
- 제2항의 방법에 있어서,상기 b) 단계의 판단결과가 Y(Yes)라면, 상기 i번째 메모리 유닛 세트는 상기 M개의 메모리 유닛 중 (L( i -1) + 1)번째부터 M번째까지 메모리 유닛과 처음부터 (S i - M + L( i -1))까지의 메모리 유닛을 포함하는 방법.
- 제1항의 방법에 있어서,상기 i번째 오디오 프레임은 i번째 오디오 데이터에 대응되며, 상기 i번째 메인 데이터 블록은 i번째 오디오 데이터부터 N번째 오디오 데이터 사이에서 적어도 하나의 오디오 데이터를 선택적으로 포함하는 방법.
- 제5항의 방법에 있어서,상기 i번째 오디오 데이터에 대응되는 i번째 시작 인덱스(B i )가 기 제공되어, 상기 i번째 오디오 데이터와 상기 i번째 메인 데이터 블록 사이의 상관 관계를 나타내는 방법.
- 제6항의 방법에 있어서,e) 상기 장치가 메모리의 i번째 오디오 데이터에 접근하기를 요청한다면, 상기 i번째 시작 인덱스(B i )와 L( i -1) 값에 기초하여 상기 메모리의 i번째 오디오 데이터 시작 위치를 찾는 단계;를 더 포함하는 방법.
- 제7항의 방법에 있어서,상기 i번째 오디오 데이터 시작 위치는 상기 메모리의 (L( i -1) + B i ) 번째 메모리인 방법.
- 제1항의 방법에 있어서.상기 장치는 MP3 디코더인 방법.
- 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번째 메인 데이터 블록을 저장하는 저장 모듈;을 포함하는 장치.
- 제10항의 장치에 있어서,상기 i번째 기준값은 M값과 L( i -1)값의 차이값인 장치.
- 제11항의 장치에 있어서,상기 판단 모듈의 판단 결과가 N(No)라면, 상기 i번째 메모리 유닛 세트는 상기 M개의 메모리 유닛 중 (L( i -1) + 1)번째부터 (L( i -1) + S i )번째까지의 메모리 유닛을 포함하는 장치.
- 제11항의 장치에 있어서,상기 판단 모듈의 판단 결과가 Y(Yes)라면, 상기 i번째 메모리 유닛 세트는 상기 M개의 메모리 유닛 중 (L( i -1) + 1)번째부터 M번째까지 메모리 유닛과 처음부터 (S i - M + L( i -1))까지의 메모리 유닛을 포함하는 장치.
- 제 10 항의 장치에 있어서,상기 i번째 오디오 프레임은 i번째 오디오 데이터에 대응되며, 상기 i번째 메인 데이터 블록은 i번째 오디오 데이터부터 N번째 오디오 데이터 사이에서 적어도 하나의 오디오 데이터를 선택적으로 포함하는 장치.
- 제 14 항의 장치에 있어서,상기 i번째 오디오 데이터에 대응되는 i번째 시작 인덱스(B i )가 기 제공되어, 상기 i번째 오디오 데이터와 상기 i번째 메인 데이터 블록 사이의 상관 관계를 나타내는 장치.
- 제 15 항의 장치에 있어서,사용자가 메모리의 i번째 오디오 데이터에 접근하기를 요청한다면, 상기 i번째 시작 인덱스(B i )와 L( i -1) 값에 기초하여 상기 메모리의 i번째 오디오 데이터 시작 위치를 찾는 탐색 모듈;을 더 포함하는 장치.
- 제 16 항의 장치에 있어서,상기 i번째 오디오 데이터 시작 위치는 상기 메모리의 (L( i -1) + B i ) 번째 메모리인 장치.
- 제 10 항의 장치에 있어서,상기 오디오 디코더는 MP3 디코더인 장치.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102768834B (zh) * | 2012-03-21 | 2018-06-26 | 新奥特(北京)视频技术有限公司 | 一种实现音频帧解码的方法 |
Family Cites Families (6)
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 |
-
2006
- 2006-04-26 TW TW095114804A patent/TW200741537A/zh unknown
-
2007
- 2007-01-12 US US11/653,048 patent/US20070255888A1/en not_active Abandoned
- 2007-04-26 KR KR1020070040701A patent/KR100874023B1/ko not_active IP Right Cessation
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 |