KR100903958B1 - Method and device for decoding digital audio data, and record medium for performing method of decoding digital audio data - Google Patents

Method and device for decoding digital audio data, and record medium for performing method of decoding digital audio data Download PDF

Info

Publication number
KR100903958B1
KR100903958B1 KR1020060072879A KR20060072879A KR100903958B1 KR 100903958 B1 KR100903958 B1 KR 100903958B1 KR 1020060072879 A KR1020060072879 A KR 1020060072879A KR 20060072879 A KR20060072879 A KR 20060072879A KR 100903958 B1 KR100903958 B1 KR 100903958B1
Authority
KR
South Korea
Prior art keywords
data
decoding
digital audio
memory
audio data
Prior art date
Application number
KR1020060072879A
Other languages
Korean (ko)
Other versions
KR20080012000A (en
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 KR1020060072879A priority Critical patent/KR100903958B1/en
Publication of KR20080012000A publication Critical patent/KR20080012000A/en
Application granted granted Critical
Publication of KR100903958B1 publication Critical patent/KR100903958B1/en

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6017Methods or arrangements to increase the throughput
    • H03M7/6023Parallelization

Abstract

본 발명은 디지털 오디오 데이터의 복호화에 관한 것으로서, 복호화를 위한 한 프레임 주기 중 클럭 점유 시간이 가장 긴 필터 뱅크와 클럭 점유 시간(즉, 클럭 소요량)이 일정치 않은 허프만 복호화기를 병렬 처리한다. 또한 본 발명은 병렬로 동작하는 복수의 메모리와 역양자화기 및 필터 뱅크가 공유하는 연산장치를 하드웨어로 구현한다. 복호화 장치 전체의 데이터 처리 시간이 단축되며, 클럭의 효율적인 분배 및 사용으로 인해 전체적인 복호화 시스템의 성능을 향상시킬 수 있으며 휴대용 장치에 적용할 수 있다.

Figure R1020060072879

BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to the decoding of digital audio data, in which a filter bank having the longest clock occupancy time and a Huffman decoder having a constant clock occupancy time (ie, clock requirement) are processed in parallel in one frame period for decoding. In addition, the present invention implements, in hardware, a computing device shared by a plurality of memories operating in parallel, a dequantizer, and a filter bank. The data processing time of the entire decoding apparatus is shortened, and the performance of the entire decoding system can be improved due to the efficient distribution and use of the clock and can be applied to the portable apparatus.

Figure R1020060072879

Description

디지털 오디오 데이터의 복호화 방법, 디지털 오디오 데이터의 복호화 장치 및 디지털 오디오 데이터의 복호화 방법을 수행하는 기록매체{METHOD AND DEVICE FOR DECODING DIGITAL AUDIO DATA, AND RECORD MEDIUM FOR PERFORMING METHOD OF DECODING DIGITAL AUDIO DATA}TECHNICAL AND DEVICE FOR DECODING DIGITAL AUDIO DATA, AND RECORD MEDIUM FOR PERFORMING METHOD OF DECODING DIGITAL AUDIO DATA}

도 1은 종래의 디지털 오디오 데이터 복호화 장치에 대한 개략적인 블록도이다.1 is a schematic block diagram of a conventional digital audio data decoding apparatus.

도 2는 종래의 디지털 오디오 데이터 복호화 장치의 동작 타이밍도이다.2 is an operation timing diagram of a conventional digital audio data decoding apparatus.

도 3은 본 발명의 일실시예에 따른 디지털 오디오 데이터 복호화 장치에 대한 개략적인 블록도이다.3 is a schematic block diagram of a digital audio data decoding apparatus according to an embodiment of the present invention.

도 4는 본 발명의 일실시예에 따른 디지털 오디오 데이터 복호화 방법에 대한 순서도이다.4 is a flowchart illustrating a digital audio data decoding method according to an embodiment of the present invention.

도 5는 본 발명의 일실시예에 따른 디지털 오디오 데이터 복호화 장치의 동작 타이밍도이다. 5 is an operation timing diagram of a digital audio data decoding apparatus according to an embodiment of the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

110, 210 : 입력버퍼 120, 220 : 디포맷터110, 210: Input buffer 120, 220: Deformatter

130, 230 : 허프만 복호화기 140, 240 : 역양자화기130, 230: Huffman decoder 140, 240: dequantizer

150, 250 : 필터 뱅크 260 : 제어부150, 250: filter bank 260: control unit

270 : 저장부 280 : ALU270: storage unit 280: ALU

본 발명은 디지털 오디오 데이터의 복호화 방법, 디지털 오디오 데이터의 복호화 장치 및 디지털 오디오 데이터의 복호화 방법을 수행하는 기록매체에 관한 것으로, 더욱 상세하게는 휴대용 단말기에 적용할 수 있는 디지털 오디오 데이터의 복호화 방법 및 그 장치에 관한 것이다. The present invention relates to a method for decoding digital audio data, an apparatus for decoding digital audio data, and a recording medium for performing digital audio data decoding method, and more particularly, to a method for decoding digital audio data applicable to a portable terminal. To the device.

최근 들어 MP3(MPEG1 Audio Layer-3), Dolby AC-3(Audio Coding-3), Ogg Vorvis, WMA(Window Media Audio, 이하 "WMA"라 약칭함) 등과 같은 디지털 오디오를 재생할 수 있는 디지털 오디오 전용 기기 또는 디지털 오디오의 재생 기능을 구비한 휴대용 단말기가 급속하게 확산되어 시간과 장소에 상관없이 편리하게 음악을 청취할 수 있게 되었다.Recently dedicated digital audio capable of playing digital audio such as MPEG1 Audio Layer-3 (MP3), Dolby AC-3 (Audio Coding-3), Ogg Vorvis, WMA (abbreviated as "WMA") Portable terminals equipped with devices or digital audio playback functions have been rapidly spread, allowing users to listen to music conveniently at any time and place.

디지털 오디오는 인간의 인지 능력에 기초한 지각 코딩(perceptual coding) 방법을 이용하여 압축함으로써 오디오 품질의 저하를 최소화하면서 파일의 크기를 1/10 이하로 줄일 수 있다는 장점이 있다.Digital audio has the advantage of being able to reduce the file size to less than 1/10 while minimizing the degradation of audio quality by compressing using a perceptual coding method based on human cognitive ability.

디지털 오디오 중에서 WMA는 마이크로소프트사에서 개발한 오디오 압축 포맷으로서 스트리밍의 지원이 가능하고 MP3와 동등한 오디오 품질을 유지하면서 파일의 용량은 MP3의 절반 정도로 줄일 수 있다는 특징이 있다.Among digital audio, WMA is an audio compression format developed by Microsoft that can support streaming and reduce file size to half MP3 while maintaining audio quality equivalent to MP3.

일반적으로 WMA 포맷의 파일은 역시 마이크로 소프트사에서 제작한 윈도우 미디어 플레이어라는 프로그램을 통하여 소프트웨어적인 방법으로 복호화되어 음향으로 출력된다. In general, files in WMA format are decoded by a software method through a program called Windows Media Player, also produced by Microsoft Corporation, and output as sound.

도 1은 종래의 디지털 오디오 데이터 복호화 장치에 대한 개략적인 블록도이다. 도 1을 참조하면 종래의 디지털 오디오 데이터 복호화 장치(100)는 입력버퍼(110), 디포맷터(De-formatter, 120), 허프만 복호화기(Huffman Decoder, 130), 역양자화기(Inverse Quantizer, 140), IMDCT(Inverse Modified Cosine Transform, 151)과 윈도우/오버랩 애더(Window/Overlap-Add, 155)로 구성된 필터뱅크(Filter Bank, 150), 제어부(160) 및 저장부(170)를 포함한다.1 is a schematic block diagram of a conventional digital audio data decoding apparatus. Referring to FIG. 1, a conventional digital audio data decoding apparatus 100 includes an input buffer 110, a de-formatter 120, a Huffman decoder 130, and an inverse quantizer 140. ), A filter bank (150), a control unit (160), and a storage unit (170) including an Inverse Modified Cosine Transform (IMDCT) 151 and a Window / Overlap-Add (155).

저장부(170)는 ROM 1(171), ROM 2(172) 및 ROM 3(173)으로 구성된다. 이러한 종래의 디지털 오디오 데이터 복호화 장치(100)는 오디오 비트 스트림을 입력받아 입력버퍼(110)에서 임시 저장한다. 그리고 입력버퍼(110)에 저장된 오디오 비트스트림을 디포맷터(120)로 전달한다. 디포맷터(120)는 상기 오디오 비트스트림으로부터 수신된 오디오 데이터를 복호화하기 위해 필요한 정보를 가지는 헤더를 디코딩하여 분석하고, 부호화된 데이터를 추출한다.The storage unit 170 includes a ROM 1 171, a ROM 2 172, and a ROM 3 173. The conventional digital audio data decoding apparatus 100 receives an audio bit stream and temporarily stores the audio bit stream in the input buffer 110. The audio bitstream stored in the input buffer 110 is transmitted to the formatter 120. The deformatter 120 decodes and analyzes a header having information necessary for decoding the audio data received from the audio bitstream, and extracts the encoded data.

한편 상기 부호화된 데이터는 허프만 복호화기(130)로 전달되어 허프만 테이블을 이용하여 디코딩된 후, 역양자화기(140), 필터 뱅크(150) 및 디지털-아날로그 변환기(DAC, 미도시)를 거쳐 사람이 들을 수 있는 오디오 신호 형태로 변환되어 출력된다.Meanwhile, the encoded data is transferred to the Huffman decoder 130 and decoded using the Huffman table, and then passed through a dequantizer 140, a filter bank 150, and a digital-to-analog converter (DAC, not shown). These are converted into audible audio signals and output.

허프만 ROM 1(171)은 허프만 테이블을 저장하고 있고, ROM 2(172)는 양자화 계수를 저장하고 있고, ROM 3(173)은 윈도우 계수를 저장하고 있다.Huffman ROM 1 171 stores a Huffman table, ROM 2 172 stores quantization coefficients, and ROM 3 173 stores window coefficients.

종래에는 이와 같이 입력된 오디오 비트 스트림이 허프만 복호화기(130), 역양자화기(140), IMDCT(151) 및 윈도우/오버랩 애더(155)를 순차적으로 거치면서 복호화되었다.Conventionally, the input audio bit stream is decoded while sequentially passing through the Huffman decoder 130, the dequantizer 140, the IMDCT 151, and the window / overlap adder 155.

이와 같이 순차처리를 수행하는 종래의 디지털 오디오 데이터 복호화 장치에 대한 타이밍도가 도 2에 예시되어 있다. 2 is a timing diagram of the conventional digital audio data decoding apparatus that performs the sequential processing.

도 2의 예에서 'A'는 디포맷터(120)가 동작시 점유한 클럭 구간을 나타내고, 'B'는 허프만 복호화기(130)가 동작시 점유한 클럭 구간을 나타내고, 'C'는 역양자화기(140)가 동작시 점유한 클럭 구간을 나타내고, 'D'는 필터뱅크(150)가 동작시 점유한 클럭 구간을 나타낸다. In the example of FIG. 2, 'A' indicates a clock period occupied by the deformatter 120, and 'B' indicates a clock interval occupied by the Huffman decoder 130, and 'C' indicates inverse quantization. The instrument 140 represents a clock section occupied when the filter 140 operates, and 'D' represents a clock segment occupied by the filter bank 150.

도 2를 참조하면, 종래의 디지털 오디오 데이터 복호화 장치는 한 프레임(Frame)에 포함된 클럭을 디포맷터(A), 허프만 복호화기(B), 역양자화기(C) 및 필터뱅크(D)가 순차적으로 점유하고 있다. 각 장치들이 클럭을 점유하고 있다는 것은 그 시간에 깨어나서 해당 동작을 수행함을 의미한다. 따라서, 도 2를 참조하면 종래의 디지털 오디오 데이터 복호화 장치에 포함된 디포맷터(A), 허프만 복호화기(B), 역양자화기(C) 및 필터뱅크(D)가 순차적으로 동작함을 알 수 있는 것이다.Referring to FIG. 2, in the conventional digital audio data decoding apparatus, a clock included in one frame includes a deformatter A, a Huffman decoder B, an inverse quantizer C, and a filter bank D. Occupies sequentially. Each device occupies a clock, which means it wakes up at that time and performs the action. Therefore, referring to FIG. 2, it can be seen that the deformatter A, the Huffman decoder B, the dequantizer C, and the filter bank D included in the conventional digital audio data decoding apparatus operate sequentially. It is.

그런데, 상기 장치들 중 허프만 복호화기(130)는 클럭 소요량이 일정하지가 않다. 이는 허프만 디코딩의 경우 심볼(symbol)을 찾는 시간이 입력 비트스트림의 코드워드(codeword)의 길이에 따라 다르고, 허프만 디코딩에 사용되는 코드워드가 매 프레임마다 다르기 때문이다.However, among the devices, the Huffman decoder 130 does not have a constant clock requirement. This is because, in the case of Huffman decoding, the time to find a symbol depends on the length of the codeword of the input bitstream, and the codeword used for Huffman decoding varies every frame.

이와 같이 허프만 복호화기(130)의 클럭 소요량이 일정하지 않음으로 인해 종래의 디지털 오디오 복호화기는 전체 클럭 속도를 고정하기 어려운 문제가 있다. As such, since the clock requirement of the Huffman decoder 130 is not constant, the conventional digital audio decoder has a problem that it is difficult to fix the entire clock speed.

따라서, 종래의 디지털 오디오 복호화기는 시스템의 총 클럭 사이클을 예측하기 어려운 단점이 있다. Therefore, the conventional digital audio decoder has a disadvantage in that it is difficult to predict the total clock cycle of the system.

또한, 종래에는 상기 도 1 및 도 2와 같은 처리 과정을 소프트웨어로 구현함으로써 알고리즘이 복잡한 문제가 있었다. 즉, 소프트웨어를 이용하여 WMA 포맷의 파일을 복호화한 후 음향을 출력하기 위해서는 상기 소프트웨어를 탑재한 음향 출력 장치가 대용량의 저장 공간을 가져야 하고, 가정용 컴퓨터 정도의 CPU 성능을 유지하여야 한다. 상기 소프트웨어의 동작을 지원하기 위해 요구되는 CPU 성능 및 저장 공간을 충족시키기 위해서는 WMA 포맷의 파일을 복호화하기 위한 장치의 크기가 커져야 함은 자명하다. In addition, in the related art, the algorithm has a complicated problem by implementing the process of FIG. 1 and FIG. 2 in software. That is, in order to output sound after decoding a file in WMA format using software, the sound output device equipped with the software should have a large storage space and maintain the CPU performance of a home computer. Obviously, the size of the device for decoding the file in WMA format should be increased in order to satisfy the CPU performance and the storage space required to support the operation of the software.

따라서, 소형화가 진행중인 휴대용 장치(예컨대, 휴대폰 등)에 상기 소프트웨어를 사용하여 WMA 포맷의 파일을 복호화하는 것은 부적절하다. Therefore, it is inappropriate to decrypt the WMA format file using the software on a portable device (for example, a mobile phone, etc.) in which miniaturization is in progress.

즉, 종래의 소프트웨어를 사용하여 WMA 포맷의 파일을 복호화하는 것은 복호화하는 것은 복호화 성능의 우수성에도 불구하고, 휴대용 장치에 적용하는 것이 어려운 문제가 있었다. That is, decrypting a file in WMA format using conventional software has a problem that it is difficult to apply to a portable device despite the superior decoding performance.

따라서, 본 발명의 제1 목적은 WMA 포맷의 오디오 파일을 휴대용 장치에 적용할 수 있도록 하는 디지털 오디오 데이터의 복호화 장치를 제공하는 것이다.Accordingly, a first object of the present invention is to provide an apparatus for decoding digital audio data, which makes it possible to apply an audio file of WMA format to a portable device.

또한 본 발명의 제2 목적은 WMA 포맷의 오디오 파일을 휴대용 장치에 적용할 수 있도록 하는 디지털 오디오 데이터의 복호화 방법을 제공하는 것이다. It is also a second object of the present invention to provide a method for decoding digital audio data, which makes it possible to apply an audio file of WMA format to a portable device.

또한 본 발명의 제3 목적은 상기 디지털 오디오 데이터의 복호화 방법이 기록된 기록매체를 제공하는 것이다.A third object of the present invention is to provide a recording medium on which the decoding method of the digital audio data is recorded.

상술한 본 발명의 제1 목적을 달성하기 위한 본 발명의 일측면에 따른 디지털 오디오 데이터의 복호화 방법은 첫번째 프레임의 디지털 오디오 데이터로부터 제1 헤더 정보와 제1 부호화된 데이터를 추출하고, 상기 제1 부호화된 데이터를 복호화하는 초기화 단계; 상기 복호화된 데이터를 역양자화하는 역양자화 단계; 및 상기 역양자화된 데이터에 대해 역이산 여현 변환 및 윈도우/오버랩-애드를 수행하고, 상기 역이산 여현 변환 및 윈도우/오버랩-애드를 수행하는 동안 병렬적으로 다음 프레임의 디지털 오디오 데이터에 대해 제2 헤더 정보와 제2 부호화된 데이터를 추출하고 상기 제2 부호화된 데이터를 복호화하는 병렬 처리 단계를 포함를 포함한다. 상기 역 양자화 단계 및 병렬 처리 단계는 상기 디지털 오디오 데이터의 복호화가 종료될 때까지 반복 수행될 수 있다. 상기 초기화 단계 및 병렬 처리 단계의 복호화는 허프만 디코딩이 될 수 있다. 상기 초기화 단계는 상기 부호화된 데이터를 제1 메모리에 기록할 수 있다. 상기 역양자화 단계는 상기 부호화된 데이터를 상기 제1 메모리로부터 읽어들여 상기 부호화된 데이터에 대해 역양자화를 수행한 후 상기 역양자화된 데이터를 제2 메모리에 기록할 수 있다. 상기 병렬처리 단계는 상기 역양자화된 데이터를 상기 제2 메모리로부터 읽어들여 상기 역양자화된 데이터에 대해 역이산 여현 변환을 수행할 수 있다. 상기 병렬처리 단계는 상기 제2 부호화된 데이터를 디코딩한 데이터를 상기 제1 메모리에 기록할 수 있다. 상기 디지 털 오디오 데이터는 윈도우 미디어 오디오(Window Media Audio)에 의해 부호화된 데이터가 될 수 있다. 상기 병렬처리 단계는 상기 윈도우/오버랩-애드를 수행시 이전 프레임의 윈도우 처리된 데이터를 제3 메모리에 기록하고, 상기 제3 메모리로부터 상기 이전 프레임의 윈도우 처리된 데이터를 읽어들여 현재 프레임의 윈도우 처리된 데이터와 오버랩-애드할 수 있다. According to an aspect of the present invention, there is provided a method of decoding digital audio data, wherein the first header information and the first encoded data are extracted from the digital audio data of the first frame. An initialization step of decoding the encoded data; An inverse quantization step of inversely quantizing the decoded data; And performing inverse discrete cosine transform and window / overlap-add on the dequantized data, and performing second inverse on digital audio data of a next frame in parallel while performing the inverse discrete cosine transform and window / overlap-add. And extracting header information and second coded data and decoding the second coded data. The inverse quantization step and the parallel processing step may be repeatedly performed until the decoding of the digital audio data ends. Decoding of the initialization and parallel processing steps may be Huffman decoding. The initialization may write the encoded data to a first memory. The dequantization step may read the encoded data from the first memory, perform inverse quantization on the encoded data, and then write the dequantized data to a second memory. The parallel processing may read inversely quantized data from the second memory and perform inverse discrete cosine transform on the inversely quantized data. In the parallel processing step, the decoded data of the second coded data may be recorded in the first memory. The digital audio data may be data encoded by window media audio. In the parallel processing step, the windowed data of the previous frame is written to a third memory when the window / overlap-add is performed, and the windowed data of the current frame is read by reading the windowed data of the previous frame from the third memory. -Added data can overlap.

또한, 본 발명의 제2 목적을 달성하기 위한 본 발명의 일측면에 따른 디지털 오디오 데이터의 복호화 장치는 제1 및 제2 메모리; 디지털 오디오 데이터로부터 제1 헤더 정보와 제1 부호화된 데이터를 추출하는 디포맷터; 상기 제1 부호화된 데이터를 복호화하여 상기 제1 메모리에 저장하는 복호화기; 상기 제1 메모리로부터 상기 복호화된 데이터를 읽어들여 역양자화한 후 역양자화된 데이터를 상기 제2 메모리에 저장하는 역양자화기; 상기 제2 메모리로부터 상기 역양자화된 데이터를 읽어들여 역이산 여현 변환을 수행한 후 윈도우/오버랩-애드를 수행하는 필터 뱅크; 및 상기 필터 뱅크의 역이산 여현 변환 및 윈도우/오버랩-애드 동작 수행 동안 다음 프레임의 디지털 오디오 데이터에 대해 제2 헤더 정보와 제2 부호화된 데이터를 추출하고 상기 제2 부호화된 데이터를 복호화하도록 상기 복호화기 및 상기 필터 뱅크를 제어하는 제어부를 포함한다. 이 때 상기 디지털 오디오 데이터의 복호화 장치는 상기 역양자화 및 역이산 여현 변환을 위한 복소수/곱셈/덧셈 연산을 수행하고 상기 역양자화기 및 상기 필터 뱅크에 의해 공유되는 연산부를 더 포함할 수 있다. 또한, 상기 필터 뱅크의 윈도우/오버랩-애드를 위한 이전 프레임의 윈도우 처리된 데이터를 저장하는 제3 메모리를 더 포함할 수 있다. 상기 제2 메모리는 상 기 필터 뱅크의 윈도우 오버랩 애드를 위한 이전 프레임의 윈도우 처리된 데이터를 저장할 수 있다. 상기 복호화기는 허프만 복호화기가 될 수 있다. 또한 상기 디지털 오디오 데이터는 윈도우 미디어 오디오(Window Media Audio)에 의해 부호화된 데이터가 될 수 있다. In addition, the apparatus for decoding digital audio data according to an aspect of the present invention for achieving the second object of the present invention comprises a first and second memory; A deformatter for extracting first header information and first encoded data from the digital audio data; A decoder which decodes the first coded data and stores the first coded data in the first memory; An inverse quantizer configured to read and dequantize the decoded data from the first memory and to store dequantized data in the second memory; A filter bank that reads the dequantized data from the second memory, performs inverse discrete cosine transform, and then performs window / overlap-add; And extracting second header information and second coded data for digital audio data of a next frame and performing decoding on the second coded data during inverse discrete cosine transform and window / overlap-add operation of the filter bank. And a controller for controlling the filter bank. In this case, the apparatus for decoding digital audio data may further include an operation unit which performs a complex / multiply / add operation for the inverse quantization and inverse discrete cosine transform and is shared by the inverse quantizer and the filter bank. The apparatus may further include a third memory configured to store windowed data of a previous frame for window / overlap-add of the filter bank. The second memory may store windowed data of a previous frame for window overlap add of the filter bank. The decoder may be a Huffman decoder. In addition, the digital audio data may be data encoded by window media audio.

또한, 본 발명의 제3 목적을 달성하기 위한 본 발명의 일측면에 따른 디지털 오디오 데이터의 복호화 방법이 기록된 기록매체는 첫번째 프레임의 디지털 오디오 데이터로부터 제1 헤더 정보와 제1 부호화된 데이터를 추출하고, 상기 제1 부호화된 데이터를 복호화하는 초기화 단계; 상기 복호화된 데이터를 역양자화하는 역양자화 단계; 및 상기 역양자화된 데이터에 대해 역이산 여현 변환 및 윈도우/오버랩-애드를 수행하고, 상기 역이산 여현 변환 및 윈도우/오버랩-애드를 수행하는 동안 병렬적으로 상기 복호화된 데이터의 다음 프레임의 디지털 오디오 데이터에 대해 제2 헤더 정보와 제2 부호화된 데이터를 추출하고 상기 제2 부호화된 데이터를 복호화하는 병렬 처리 단계를 수행하는 프로그램을 포함한다.In addition, the recording medium on which the decoding method of the digital audio data according to an aspect of the present invention for achieving the third object of the present invention is extracted the first header information and the first encoded data from the digital audio data of the first frame An initialization step of decoding the first encoded data; An inverse quantization step of inversely quantizing the decoded data; And perform inverse discrete cosine transform and window / overlap-add on the dequantized data, and digital audio of the next frame of the decoded data in parallel while performing the inverse discrete cosine transform and window / overlap-add. And extracting second header information and second encoded data from the data, and performing a parallel processing step of decoding the second encoded data.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. As the invention allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the written description. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나 의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component. The term and / or includes a combination of a plurality of related items or any item of a plurality of related items.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art, and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호 를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다. Hereinafter, with reference to the accompanying drawings, it will be described in detail a preferred embodiment of the present invention. Hereinafter, the same reference numerals are used for the same components in the drawings, and redundant description of the same components is omitted.

도 3은 본 발명의 일실시예에 따른 디지털 오디오 데이터 복호화 장치에 대한 개략적인 블록도이다. 도 3을 참조하면 본 발명의 일실시예에 따른 디지털 오디오 데이터 복호화 장치(200)는 입력버퍼(210), 디포맷터(220), 허프만 복호화기(230), 역양자화기(240), 필터뱅크(250), 제어부(260) 및 저장부(270)를 포함한다. 3 is a schematic block diagram of a digital audio data decoding apparatus according to an embodiment of the present invention. Referring to FIG. 3, the digital audio data decoding apparatus 200 according to an embodiment of the present invention includes an input buffer 210, a deformatter 220, a Huffman decoder 230, a dequantizer 240, and a filter bank. 250, a controller 260, and a storage 270.

입력버퍼(210)는 입력되는 복호화될 데이터를 입력받아 임시 저장한다. 상기 복호화될 데이터는 예를 들어 비트 스트림 형태를 가지는 디지털 오디오 데이터가 될 수 있다. The input buffer 210 temporarily receives the input decoded data. The data to be decoded may be, for example, digital audio data having a bit stream form.

제어부(260)는 입력버퍼(210)에 저장된 상기 비트 스트림 형태의 데이터(이하, '비트 스트림 데이터'라 칭함)가 디포맷터(220) 및/또는 허프만 복호화기(230)로 전달되도록 한다.The controller 260 allows the bit stream type data (hereinafter, referred to as 'bit stream data') stored in the input buffer 210 to be transmitted to the deformatter 220 and / or the Huffman decoder 230.

디포맷터(220)는 디포맷팅 동작을 수행한다. 여기서, 디포맷팅 동작이란 입력버퍼(210)를 통해 전달된 비트 스트림 데이터로부터 복호화하기 위해 필요한 정보를 가지는 헤더 및 부호화된 데이터-예를 들어 허프만 부호화된 데이터-를 파싱한다는 의미이다. 이 때, 디포맷터(220)는 WMA 데이터를 복호화하기 위한 정보를 보유하고 있는 ASF(Advanced Stream Format) 헤더를 처리하는 제1 디포맷터와, 각각의 패킷에 포함된 패킷 인포메이션 헤더를 처리하는 제2 디포맷터를 포함할 수 있다. 또한, 디포맷터(220)는 상기 헤더로부터 비트 스트림 데이터의 코딩 정보(예컨대, 손실 코딩 또는 무손실 코딩 등)와 허프만 테이블 번호 정보를 추출하여 허 프만 복호화기(230)로 전달한다. The deformatter 220 performs a deformatting operation. Here, the deformatting operation means parsing a header and coded data (eg, Huffman coded data) having information necessary for decoding from bit stream data transmitted through the input buffer 210. At this time, the deformatter 220 includes a first deformatter for processing an ASF (Advanced Stream Format) header, which holds information for decoding WMA data, and a second for processing a packet information header included in each packet. It may include a deformatter. In addition, the deformatter 220 extracts coding information (eg, lossy coding or lossless coding) and Huffman table number information of the bit stream data from the header and transfers the Huffman table number information to the Huffman decoder 230.

허프만 복호화기(230)는 디포맷터(220)로부터 전달된 코딩 정보와 허프만 테이블 번호 정보에 기초하여 입력 버퍼(210)를 통해 전달된 비트 스트림 데이터 중의 부호화된 데이터-예를 들어 허프만 데이터-를 RLC(Run-Length decoding) 또는 VLC(Variable-Length decoding) 디코딩)한다. 메모리(ROM1(271))는 복수의 허프만 테이블을 저장하고 있으며, 허프만 복호화기(230)는 ROM1(Read Only Memory 1, 271)로부터 상기 허프만 테이블 번호 정보에 대응된 허프만 테이블을 참조하여 디코딩을 수행한다. 허프만 복호화기(230)는 상기 디코딩 결과를 RAM1(Random Access Memory 1, 274)에 저장한다. The Huffman decoder 230 RLC encodes coded data in the bit stream data transferred through the input buffer 210 based on the coding information transmitted from the deformatter 220 and the Huffman table number information, for example, Huffman data. (Run-Length decoding) or VLC (Variable-Length decoding) decoding. The memory ROM1 271 stores a plurality of Huffman tables, and the Huffman decoder 230 performs decoding by referring to the Huffman table corresponding to the Huffman table number information from ROM1 (Read Only Memory 1, 271). do. The Huffman decoder 230 stores the decoding result in random access memory 1 (274).

역양자화기(240)는 허프만 복호화기(230)에 의해 복호화된 데이터를 역양자화한다. ROM2(272)는 역양자화를 수행하기 위해 사용되는 지수값들을 저장한다. 특히, 역양자화기(240)는 제어부(260)의 제어를 받아 RAM1(274)로부터 허프만 복호화기(230)의 디코딩 결과를 읽어들여 디포맷터(220)로부터 제공받은 앤트로피 정보 및 양자화 계수의 개수를 이용하여 역양자화한 후 그 결과를 RAM2(275)에 저장한다. Inverse quantizer 240 dequantizes the data decoded by Huffman decoder 230. ROM2 272 stores exponential values used to perform inverse quantization. In particular, the inverse quantizer 240 reads the decoding result of the Huffman decoder 230 from the RAM1 274 under the control of the controller 260 and receives the number of entropy information and quantization coefficients provided from the deformatter 220. Inverse quantization using a and stores the result in the RAM2 (275).

본 발명의 다른 실시예에서는, 디지털 오디오 데이터 복호화 장치는 연산부 (ALU: Arithmetic-Logic Unit)(280)를 더 포함할 수 있다. 역양자화기(240)는 상기 역양자화 수행을 위해 필요한 지수 연산 결과를 연산부(280)로부터 전달받는 것이 바람직하다. 연산부(ALU, 280)을 별도의 하드웨어 블록으로 분리하여 역양자화기(250)의 처리 알고리즘을 간소화하고 처리 속도를 높일 수 있다.In another embodiment of the present invention, the digital audio data decoding apparatus may further include an Arithmetic-Logic Unit (ALU) 280. The inverse quantizer 240 preferably receives the exponential calculation result necessary for performing the inverse quantization from the calculator 280. By separating the operation units ALU 280 into separate hardware blocks, the processing algorithm of the dequantizer 250 may be simplified and the processing speed may be increased.

연산부 (ALU: Arithmetic-Logic Unit)(280)는 역양자화기(240)와 IMDCT(251)에 의해 공유되며, 역양자화기(240)의 지수 연산 및 IMDCT(251)의 복소수/곱셈/덧셈 연산을 처리하고 그 결과를 역양자화기(240) 및 IMDCT(251) 각각에게 전달한다. 연산부(ALU, 280)을 별도의 하드웨어 블록으로 분리하고 역양자화기(240)와 IMDCT(251)에 의해 수행되는 산술 연산을 연산부(ALU, 280)에서 수행하도록 한다.Arithmetic-Logic Unit (ALU) 280 is shared by inverse quantizer 240 and IMDCT 251, and is an exponential operation of inverse quantizer 240 and a complex / multiply / add operation of IMDCT 251. And process the result to each of the inverse quantizer 240 and the IMDCT (251). The arithmetic unit ALU 280 is separated into a separate hardware block, and the arithmetic operation performed by the inverse quantizer 240 and the IMDCT 251 is performed by the arithmetic unit ALU 280.

필터 뱅크(250)는 역이산 여현 변환(IMDCT, 251) 및 윈도우/오버랩- 애드(255)를 포함한다. 필터 뱅크(250)는 RAM2(275)에 저장된 역양자화기(240)의 처리 결과를 이용하여 역이산 여현 변환 및 윈도우/오버랩-애드(Window/Overlap-Add)를 수행한다. IMDCT(251)은 역양자화기(240)에서 역양자화된 데이터를 시간 영역의 신호로 변환한다. 구체적으로, RAM2(275)에 저장된 역양자화기를 통해 출력된 데이터를 읽어들여 역이산 여현 변환(Inverse Modified Discrete Cosine Transformation)을 수행함으로써 주파수 영역의 신호를 시간 영역의 신호로 변환시킨다. 이때, IMDCT(251)는 RAM2(275)로부터 역양자화기(240)의 처리 결과를 전달받아 역이산 여현 변환을 수행한 후 그 결과를 RAM2(275)에 저장한다. 또한, IMDCT(251)은 역이산 여현 변환을 위해 필요한 복소수/곱셈/덧셈 연산 결과를 연산부(280)로부터 전달받는 것이 바람직하다. 연산부(ALU, 280)을 별도의 하드웨어 블록으로 분리하여 IMDCT(251)의 처리 알고리즘을 간소화하고 처리 속도를 높일 수 있다. Filter bank 250 includes inverse discrete cosine transform (IMDCT) 251 and window / overlap-add 255. The filter bank 250 performs inverse discrete cosine conversion and window / overlap-add by using the processing result of the inverse quantizer 240 stored in the RAM2275. The IMDCT 251 converts the dequantized data from the dequantizer 240 into a signal in the time domain. In detail, the signal output in the frequency domain is converted into the signal in the time domain by reading the data output through the inverse quantizer stored in the RAM 275 and performing inverse modified discrete cosine transformation. In this case, the IMDCT 251 receives the processing result of the inverse quantizer 240 from the RAM2 275, performs inverse discrete cosine transformation, and stores the result in the RAM2 275. In addition, the IMDCT 251 preferably receives a complex / multiply / add operation result required for inverse discrete cosine transform from the calculator 280. By separating the operation units ALU 280 into separate hardware blocks, the processing algorithm of the IMDCT 251 may be simplified and the processing speed may be increased.

한편, 윈도우/오버랩 애더(255)는 출력되는 음향을 부드럽게 하기 위해 서브 밴드 별로 윈도우(window) 처리하는 부분으로서, 일반적으로 이전 프레임의 윈도우 처리된 2N개 데이터와 현재 프레임의 윈도우 처리된 2N개 데이터를 오버랩(overlap)시켜 더한다(add). 이를 위해 윈도우/오버랩-애더(255)는 ROM3(273)으로부터 윈도우 처리를 위한 윈도우 계수를 읽어들이고, 상기 이전 프레임의 윈도우 처리된 데이터를 ROM3(273)에 기록하고, RAM3(403)으로부터 윈도우/오버랩-애드를 위한 이전 프레임의 윈도우 처리된 데이터를 읽어들여 현재 프레임의 윈도우 처리된 데이터와 오버랩-애드 동작을 수행한다. Meanwhile, the window / overlap adder 255 is a window processing part for each subband in order to soften the output sound. In general, the windowed 2N data of the previous frame and the 2N data of the current frame are windowed. Add to overlap. For this purpose, the window / overlap-adder 255 reads the window coefficient for window processing from the ROM3 273, writes the windowed data of the previous frame into the ROM3 273, and the window / overlap from the RAM3 403. The windowed data of the previous frame for the overlap-add is read and the overlap-add operation is performed with the windowed data of the current frame.

한편, 도 3의 실시예에서는 상기 이전 프레임 데이터가 별도의 메모리인 RAM3(403)에 저장된 경우를 예시하고 있다. 그러나, 상기 이전 프레임 데이터는 RAM3(403)에 저장되는 대신 RAM2(402)에 저장될 수도 있다. 즉 RAM2(402)와 RAM3(403)은 통합하여 구현하는 것도 가능하다.3 illustrates a case in which the previous frame data is stored in RAM3403, which is a separate memory. However, the previous frame data may be stored in RAM2 402 instead of in RAM3403. In other words, the RAM2 402 and the RAM3 403 may be integrated and implemented.

도 4는 본 발명의 일실시예에 따른 디지털 오디오 데이터 복호화 방법에 대한 순서도이다. 도 5는 본 발명의 일실시예에 따른 병렬처리를 수행하는 디지털 오디오 데이터 복호화 장치의 동작 타이밍도이다. 도 5를 참조하면, 'A'는 디포맷터(220)가 동작시 점유한 클럭 구간을 나타내고, 'B'는 허프만 복호화기(230)가 동작시 점유한 클럭 구간을 나타내고, 'C'는 역양자화기(240)가 동작시 점유한 클럭 구간을 나타내고, 'D'는 필터뱅크(250)가 동작시 점유한 클럭 구간을 나타낸다. 4 is a flowchart illustrating a digital audio data decoding method according to an embodiment of the present invention. 5 is an operation timing diagram of a digital audio data decoding apparatus for performing parallel processing according to an embodiment of the present invention. Referring to FIG. 5, 'A' represents a clock period occupied by the deformatter 220, 'B' represents a clock interval occupied by the Huffman decoder 230, and 'C' is an inverse. The quantizer 240 indicates a clock period occupied during operation, and 'D' indicates a clock period occupied by the filter bank 250 in operation.

이하, 도 3 내지 도 5를 참조하여 본 발명의 일실시예에 따른 디지털 오디오 데이터 복호화 방법을 설명한다. 도 3 내지 도 5를 참조하면, 먼저, 역이산 여현 변환후 윈도우/오버랩-애드를 수행하기 위해 이전 프레임의 윈도우 처리된 데이터를 저장하는 메모리(RAM3, 276)를 초기화한다(단계 S200, 도 5의 500). Hereinafter, a digital audio data decoding method according to an embodiment of the present invention will be described with reference to FIGS. 3 to 5. 3 to 5, first, to perform window / overlap-add after inverse discrete cosine conversion, the memories RAM3 and 276 storing the windowed data of the previous frame are initialized (steps S200 and 5). Of 500).

입력 버퍼(210)를 통해 디지털 오디오 데이터가 입력되면 제어부(260)는 디포맷터(220)를 제어하여 첫번째 프레임의 디지털 오디오 데이터로부터 헤더 정보와 부호화된 데이터를 추출하고(단계 S205, 도 5의 501), 허프만 복호화기(230)를 제어하여 상기 첫번째 프레임의 부호화된 데이터를 복호화한다(S210, 도 5의 503). 여기서, 부호화된 데이터는 허프만 부호화된 데이터가 될 수 있다. 이와 같이 하나의 프레임에 대한 헤더 정보와 부호화된 데이터 추출 및 복호화 과정(단계 S205 및 S210)은 본 발명의 일실시예에 따른 디지털 오디오 데이터 복호화 과정 초기에만 수행되므로 상기 과정(단계 S205 및 S210)을 이하에서는 초기화 과정이라고 정의한다. When digital audio data is input through the input buffer 210, the controller 260 controls the deformatter 220 to extract header information and encoded data from the digital audio data of the first frame (step S205, 501 of FIG. 5). The Huffman decoder 230 is controlled to decode the encoded data of the first frame (S210, 503 of FIG. 5). Here, the encoded data may be Huffman encoded data. As such, the header information and the coded data extraction and decoding process (steps S205 and S210) for one frame are performed only at the beginning of the digital audio data decoding process according to an embodiment of the present invention. Hereinafter, it is defined as an initialization process.

상기와 같이 초기화 과정을 수행한 제어부(260)는 역양자화기(240)를 제어하여 현재 프레임의 상기 복호화된 데이터에 대한 역양자화를 수행한다(단계 S215, 도 5의 503). The controller 260 performing the initialization process as described above controls the inverse quantizer 240 to perform inverse quantization on the decoded data of the current frame (step S215, 503 of FIG. 5).

제어부(260)는 필터 뱅크(250)를 제어하여 현재 프레임의 상기 역양자화된 데이터에 대한 역이산 여현 변환 및 윈도우/오버랩-애드를 수행한다(단계 S220, 도 5의 504). The controller 260 controls the filter bank 250 to perform inverse discrete cosine transform and window / overlap-add on the dequantized data of the current frame (step S220, 504 of FIG. 5).

또한, 제어부(260)는 상기 필터 뱅크(250)의 동작, 즉 역이산 여현 변환 및 윈도우 오버랩 애드을 수행하는 것과 병렬적으로 디포맷터(220)와 허프만 복호화기(230)를 제어하여 다음 프레임의 디지털 오디오 데이터에 대해 헤더 정보와 부호화된 데이터를 추출하는 과정(단계 S225, 도 5의 511)과 상기 첫번째 프레임의 부호화된 데이터를 복호화하는 과정 (단계 S230, 도 5의 512)을 수행하도록 한다. In addition, the controller 260 controls the formatter 220 and the Huffman decoder 230 in parallel with the operation of the filter bank 250, that is, performing inverse discrete cosine transform and window overlap add, so that the digital frame of the next frame is controlled. Extracting the header information and the encoded data with respect to the audio data (step S225, 511 of FIG. 5) and decoding the encoded data of the first frame (step S230, 512 of FIG. 5) are performed.

즉, 제어부(260)는 현재 프레임의 데이터에 대한 필터 뱅크(250)의 동작 수행 동안 다음 프레임의 데이터에 대한 디포맷팅 동작 및 디코딩 동작을 동시에 실행하도록 제어한다. That is, the controller 260 controls to simultaneously perform the deformatting operation and the decoding operation on the data of the next frame while the filter bank 250 performs the operation on the data of the current frame.

표 1은 도 1의 WMA 복호화 시스템의 구성 모듈별 연산량을 나타낸 테이블이다. Table 1 is a table showing the amount of calculation for each module of the WMA decoding system of FIG.

평균 연산량(소요 클럭 사이클) 비율Average amount of computation (clock cycles required) 디포맷터Deformatter 5 %5% 허프만 복호화Huffman Decryption 25 %25% 역양자화Dequantization 10 %10% 필터 뱅크Filter bank 60 %60% 합계Sum 100 %100%

표 1을 참조하면, 필터 뱅크의 동작이 한 프레임의 복호화 처리 주기의 반 이상(약 60%)을 차지하기 때문에 그 시간 동안 필터 뱅크(250)와 메모리를 공유하지 않는 다른 장치(예컨대, 디포맷터(220) 및 허프만 복호화기(230))를 함께 구동시킴으로써 한 프레임의 복호화 처리 주기를 단축할 수 있다. Referring to Table 1, since the operation of the filter bank occupies more than half (about 60%) of the decoding processing period of one frame, other devices (eg, deformatters) that do not share memory with the filter bank 250 during that time. By driving the 220 and the Huffman decoder 230 together, the decoding processing period of one frame can be shortened.

또한, 필터 뱅크(250)의 클럭 점유율(약 60%)이 허프만 복호화기(230)의 클럭 점유율(약 25%) 보다 2배 이상 크기 때문에 허프만 복호화기(230)의 클럭 점유율의 변동에 의한 시스템 사이클의 변화를 최소화할 수 있다. In addition, since the clock occupancy (about 60%) of the filter bank 250 is more than twice as large as the clock occupancy (about 25%) of the Huffman decoder 230, the system due to the variation of the clock occupancy of the Huffman decoder 230 is increased. Cycle changes can be minimized.

다시 도 3 내지 도 5를 참조하면, 제어부(260)는 다음 프레임의 데이터의 복호화(도 5의 512)가 종료되었는지 판단하여(단계 S235) 종료되면 제어부(260)는 현재 프레임의 데이터에 대해 필터 뱅크(250)의 처리가 종료되었는지 판단하여(단계 S240) 현재 프레임의 데이터에 대해 필터 뱅크(250)의 처리가 종료될 때까지 현재 프레임의 데이터에 대한 필터 뱅크(250)의 처리만을 반복 수행한다(단계 S220). 이는 필터 뱅크(250)의 동작을 위한 클럭 점유율이 일반적으로 디포맷터(220)와 허프만 복호화기(230)의 클럭 점유율 합보다 크기 때문이다. 3 to 5 again, the controller 260 determines whether the decoding of the data of the next frame (512 of FIG. 5) is finished (step S235), and when it is finished, the controller 260 filters the data of the current frame. It is determined whether the processing of the bank 250 is terminated (step S240), and only the processing of the filter bank 250 for the data of the current frame is repeatedly performed until the processing of the filter bank 250 is terminated for the data of the current frame. (Step S220). This is because the clock occupancy rate for the operation of the filter bank 250 is generally larger than the sum of the clock occupancy rates of the deformatter 220 and the Huffman decoder 230.

상기 단계 S240의 판단 결과 현재 프레임의 데이터에 대한 필터 뱅크(250)의 처리가 종료되면 제어부(260)는 다음 프레임으로 이동한 후(단계 S245) 역양자화 과정(단계 S215) 부터 반복 수행한다. 이때, 역양자화 과정(단계 S215) 부터의 반복 수행 동작은 복호화 동작이 종료할 때까지 지속된다(단계 S250).As a result of the determination of step S240, when the processing of the filter bank 250 for the data of the current frame is finished, the controller 260 moves to the next frame (step S245) and then repeats from the dequantization process (step S215). At this time, the repetitive operation from the dequantization process (step S215) continues until the decoding operation ends (step S250).

한편 상기 S245 단계의 다음 프레임으로의 이동은 프레임을 물리적으로 이동시킨다는 의미가 아니라 논리적인 이동을 의미하는 것으로서, 현재 프레임의 처리가 종료되었으므로 설명에 있어서 다음 프레임을 현재 프레임으로 변경하고 그 다음 프레임을 다음 프레임으로 변경한다는 것을 나타낸다.On the other hand, the movement to the next frame in step S245 does not mean that the frame is physically moved, but means logical movement. Since the processing of the current frame is finished, the following frame is changed to the current frame in the description and the next frame is changed. Changes to the next frame.

도 4의 설명에 있어서, 단계 S210 및 단계 S230의 디코딩은 허프만 디코딩인 것이 바람직하다. 하지만 상기 디코딩 방법은 허프만 디코딩으로 한정되는 것은 아니며, 클럭 점유율이 일정치 않은 다른 모든 디코딩 방법도 포함하는 것이다.In the description of FIG. 4, the decoding of steps S210 and S230 is preferably Huffman decoding. However, the decoding method is not limited to Huffman decoding, but also includes all other decoding methods having a constant clock occupancy rate.

그리고, 도 3에 예시된 바와 같이 허프만 복호화기(230)에 연결된 메모리(RAM(274))와 IMDCT(251) 및 윈도우/오버랩-애더(255)에 연결된 메모리(RAM(275))를 분리시킴으로써 상기 단계 S220(도 5의 504)과 단계 S225(도 5의 511) 및 단계 S230(도 5의 512)을 병렬적으로 수행할 수 있다. . As shown in FIG. 3, the memory (RAM 274) connected to the Huffman decoder 230 is separated from the memory (RAM 275) connected to the IMDCT 251 and the window / overlap-adder 255. Step S220 (504 of FIG. 5), step S225 (511 of FIG. 5), and step S230 (512 of FIG. 5) may be performed in parallel. .

도 5를 참조하면 본 발명의 디지털 오디오 데이터 복호화 장치는 첫번째 프레임을 제외하고는 디포맷터의 클럭 점유 시간(A)과 허프만 복호화기의 클럭 점유 시간 영역(B)이 독자적으로 존재하는 경우가 없다. 즉 't0' 구간에서만 디포맷터와 허프만 복호화기가 클럭을 독자적으로 점유하고 있을 뿐 그 이후에는 필터뱅크와 함께 클럭을 공유하고 있음을 알 수 있다. 다시 말해 첫 번째 이후의 프레임에서는 이전 프레임에 대한 처리를 수행 중인 필터 뱅크의 클럭 점유 시간(t2) 동안 디포맷터와 허프만 복호화기가 해당 프레임에 대한 처리를 수행하고 있음을 알 수 있다.Referring to FIG. 5, in the digital audio data decoding apparatus of the present invention, except for the first frame, the clock occupancy time A of the deformatter and the clock occupancy time region B of the Huffman decoder do not exist independently. In other words, the deformatter and the Huffman decoder occupy the clock only in the 't0' period, and after that, the clock is shared with the filter bank. In other words, it can be seen that the deformatter and the Huffman decoder perform the processing on the frame during the clock occupancy time t2 of the filter bank performing the processing on the previous frame.

따라서, 표 1 및 도 5를 참조하면, 본 발명은 첫번째 이후의 프레임에서는 한 프레임의 데이터를 처리하기 위한 시간이 역양자화기가 점유하는 시간(10%) 및 필터 뱅크에서 점유하는 시간(60%)를 합하여 매 프레임당 70%만을 소요하게 된다. 이는 종래 도1의 디지털 오디오 데이터 복호화 장치의 경우 매 프레임당 디포맷터가 점유하는 시간(5%), 허프만 복호기가 점유하는 시간(25%), 역양자화기가 점유하는 시간(10%) 및 필터 뱅크에서 점유하는 시간(60%)을 모두 합하여 매 프레임당 100%를 소요하는 것에 비하면 매 프레임당 소요되는 클럭 사이클이 30% 정도 줄어들어, 이로 인해 시스템 전체의 데이터 처리 시간이 단축되는 효과가 있다.Therefore, referring to Tables 1 and 5, in the present invention, in the first and subsequent frames, the time for processing data of one frame is occupied by the dequantizer (10%) and the time occupied by the filter bank (60%). The sum adds only 70% per frame. In the conventional digital audio data decoding apparatus of FIG. 1, this means that the time occupied by the deformatter (5%), the time occupied by the Huffman decoder (25%), the time occupied by the dequantizer (10%), and the filter bank Compared to 100% of each frame in which all of the time occupied at is 100%, the clock cycles per frame are reduced by 30%, which reduces the overall data processing time.

본 발명은 디지털 오디오 데이터의 복호화 방법 및 장치에 관한 것으로서, 복호화를 위한 한 프레임 주기 중 클럭 점유 시간이 가장 긴 필터 뱅크와 클럭 점유 시간(즉, 클럭 소요량)이 일정치 않은 허프만 복호화기를 병렬 처리함으로써 복호화 시스템 전체의 데이터 처리 시간이 단축되며, 클럭의 효율적인 분배 및 사용으로 인해 전체적인 복호화 시스템의 성능을 향상시킬 수 있다. The present invention relates to a method and apparatus for decoding digital audio data, comprising: a parallel processing of a filter bank having the longest clock occupancy time and a Huffman decoder having a constant clock occupancy time (that is, a clock requirement) in one frame period for decoding. The data processing time of the entire decoding system is shortened, and the performance of the overall decoding system can be improved due to the efficient distribution and use of the clock.

또한, 본 발명은 병렬로 동작하는 복수의 메모리와 역양자화기 및 필터 뱅크가 공유하는 연산장치를 하드웨어로 구현함으로써 복호화 처리 알고리즘을 간소화할 수 있고 처리 속도를 증가시킬 수 있다. 그 결과, WMA 포맷의 오디오 파일을 휴대용 장치에 적용하는 것을 가능하게 하는 장점이 있다.In addition, the present invention can simplify the decoding processing algorithm and increase the processing speed by implementing in hardware a computing device shared by a plurality of memories operating in parallel, a dequantizer and a filter bank. As a result, there is an advantage that makes it possible to apply an audio file in WMA format to a portable device.

이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although described with reference to the embodiments above, those skilled in the art will understand that the present invention can be variously modified and changed without departing from the spirit and scope of the invention as set forth in the claims below. Could be.

Claims (17)

휴대용 단말기에서의 디지털 오디오 데이터의 복호화 방법에 있어서,In the decoding method of digital audio data in a portable terminal, 첫번째 프레임의 디지털 오디오 데이터로부터 제1 헤더 정보와 제1 부호화된 데이터를 추출하고, 상기 제1 부호화된 데이터를 복호화하여 제1 메모리에 기록하는 초기화 단계; An initialization step of extracting first header information and first coded data from digital audio data of a first frame, decoding the first coded data, and writing the first coded data to a first memory; 상기 복호화된 데이터를 상기 제1 메모리로부터 읽어들여 상기 부호화된 데이터에 대해 역양자화를 수행한 후 상기 역양자화된 데이터를 제2 메모리에 기록하는 역양자화 단계; 및 An inverse quantization step of reading the decoded data from the first memory to perform inverse quantization on the encoded data and then writing the dequantized data to a second memory; And N(N은 2이상의 자연수)번째 프레임의 역양자화된 데이터를 상기 제2 메모리로부터 읽어들여 역이산 여현 변환을 수행한 후 윈도우/오버랩-애드를 수행하고, 상기 N번째 프레임의 역이산 여현 변환 및 윈도우/오버랩-애드를 수행하는 동안 병렬적으로 N+1번째 프레임의 디지털 오디오 데이터에 대해 제2 헤더 정보와 제2 부호화된 데이터를 추출하고 상기 제2 부호화된 데이터를 복호화하는 병렬 처리 단계를 포함하는 것을 특징으로 하는 디지털 오디오 데이터의 복호화 방법.Read inverse quantized data of Nth (N is a natural number of two or more) frames from the second memory, perform inverse discrete cosine transform, perform window / overlap-add, inverse discrete cosine transform of Nth frame, and A parallel processing step of extracting second header information and second coded data with respect to digital audio data of the N + 1th frame in parallel during window / overlap-add and decoding the second coded data And decoding the digital audio data. 제1항에 있어서, 상기 역양자화 단계 및 상기 병렬 처리 단계는The method of claim 1, wherein the dequantization step and the parallel processing step 상기 디지털 오디오 데이터의 복호화가 종료될 때까지 반복 수행되는 것을 특징으로 하는 디지털 오디오 데이터의 복호화 방법.And decoding the digital audio data repeatedly until the decoding of the digital audio data ends. 제1항에 있어서, 상기 초기화 단계 및 상기 병렬 처리 단계의 복호화는The method of claim 1, wherein the decoding of the initialization step and the parallel processing step is performed. 허프만 디코딩인 것을 특징으로 하는 디지털 오디오 데이터의 복호화 방법.And Huffman decoding. 삭제delete 삭제delete 삭제delete 제1항에 있어서, 상기 병렬처리 단계는 The method of claim 1, wherein the parallel processing step 상기 제2 부호화된 데이터를 디코딩한 데이터를 상기 제1 메모리에 기록하는 것을 특징으로 하는 디지털 오디오 데이터의 복호화 방법.And decoding the decoded data of the second coded data into the first memory. 제1항에 있어서, 상기 병렬처리 단계는The method of claim 1, wherein the parallel processing step 상기 윈도우/오버랩-애드를 수행시 이전 프레임의 윈도우 처리된 데이터를 제3 메모리에 기록하고, 상기 제3 메모리로부터 상기 이전 프레임의 윈도우 처리된 데이터를 읽어들여 현재 프레임의 윈도우 처리된 데이터와 오버랩-애드하는 것을 특징으로 하는 디지털 오디오 데이터의 복호화 방법.When performing the window / overlap-add, the windowed data of the previous frame is written to the third memory, and the windowed data of the previous frame is read from the third memory to overlap with the windowed data of the current frame. And decoding the digital audio data. 제1항에 있어서, 상기 디지털 오디오 데이터는The method of claim 1, wherein the digital audio data is 윈도우 미디어 오디오(Window Media Audio)에 의해 부호화된 데이터인 것을 특징으로 하는 디지털 오디오 데이터의 복호화 방법.A method of decoding digital audio data, characterized in that it is data encoded by Window Media Audio. 휴대용 단말기에서의 디지털 오디오 데이터의 복호화 장치에 있어서,An apparatus for decoding digital audio data in a portable terminal, 제1 및 제2 메모리;First and second memories; 디지털 오디오 데이터로부터 제1 헤더 정보와 제1 부호화된 데이터를 추출하는 디포맷터; A deformatter for extracting first header information and first encoded data from the digital audio data; 상기 제1 부호화된 데이터를 복호화하여 상기 제1 메모리에 저장하는 복호화기;A decoder which decodes the first coded data and stores the first coded data in the first memory; 상기 제1 메모리로부터 상기 복호화된 데이터를 읽어들여 역양자화한 후 역양자화된 데이터를 상기 제2 메모리에 저장하는 역양자화기;An inverse quantizer configured to read and dequantize the decoded data from the first memory and to store dequantized data in the second memory; N(N은 2이상의 자연수)번째 프레임의 역양자화된 데이터를 상기 제2 메모리로부터 읽어들여 역이산 여현 변환을 수행한 후 윈도우/오버랩-애드를 수행하는 필터 뱅크; 및 A filter bank configured to read inverse quantized data of an N (N is a natural number of two or more) frames from the second memory, perform inverse discrete cosine transform, and perform window / overlap-add; And 상기 필터 뱅크의 상기 N번째 프레임의 역이산 여현 변환 및 윈도우/오버랩-애드 동작 수행 동안 N+1번째 프레임의 디지털 오디오 데이터에 대해 제2 헤더 정보와 제2 부호화된 데이터를 추출하고 상기 제2 부호화된 데이터를 복호화하도록 상기 복호화기 및 상기 필터 뱅크를 제어하는 제어부를 포함하는 것을 특징으로 하는 디지털 오디오 데이터의 복호화 장치.Extracting second header information and second encoded data for digital audio data of an N + 1th frame during inverse discrete cosine transformation and window / overlap-add operation of the Nth frame of the filter bank, and performing the second encoding And a controller for controlling the decoder and the filter bank to decode the data. 제10항에 있어서, The method of claim 10, 상기 역양자화 및 역이산 여현 변환을 위한 복소수/곱셈/덧셈 연산을 수행하고 상기 역양자화기 및 상기 필터 뱅크에 의해 공유되는 연산부를 더 포함하는 것을 특징으로 하는 디지털 오디오 데이터의 복호화 장치.And performing a complex number / multiplication / add operation for the inverse quantization and inverse discrete cosine transform and shared by the inverse quantizer and the filter bank. 제10항에 있어서, The method of claim 10, 상기 필터 뱅크의 윈도우/오버랩-애드를 위한 이전 프레임의 윈도우 처리된 데이터를 저장하는 제3 메모리를 더 포함하는 것을 특징으로 하는 디지털 오디오 데이터의 복호화 장치.And a third memory for storing windowed data of a previous frame for window / overlap-add of the filter bank. 제10항에 있어서, 상기 제2 메모리는The method of claim 10, wherein the second memory is 상기 필터 뱅크의 윈도우 오버랩 애드를 위한 이전 프레임의 윈도우 처리된 데이터를 저장하는 것을 특징으로 하는 디지털 오디오 데이터의 복호화 장치.And windowed data of a previous frame for window overlap add of the filter bank. 제10항에 있어서, 상기 복호화기는The method of claim 10, wherein the decoder 허프만 복호화기인 것을 특징으로 하는 디지털 오디오 데이터의 복호화 장치.And a Huffman decoder. 제10항에 있어서, 상기 디지털 오디오 데이터는The method of claim 10, wherein the digital audio data is 윈도우 미디어 오디오(Window Media Audio)에 의해 부호화된 데이터인 것을 특징으로 하는 디지털 오디오 데이터의 복호화 장치.A device for decoding digital audio data, characterized in that it is data encoded by Window Media Audio. 삭제delete 휴대용 단말기에서의 디지털 오디오 데이터 복호화 수행시 병렬 처리가 가능한 디지털 처리 장치에 의해 실행될 수 있는 명령어의 프로그램이 유형적으로 구현되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록 매체에 있어서, In the recording medium in which a program of instructions executable by a digital processing apparatus capable of parallel processing when performing digital audio data decoding in a portable terminal is tangibly implemented, and which records a program that can be read by the digital processing apparatus, 첫번째 프레임의 디지털 오디오 데이터로부터 제1 헤더 정보와 제1 부호화된 데이터를 추출하고, 상기 제1 부호화된 데이터를 복호화하여 제1 메모리에 기록하는 초기화 단계; An initialization step of extracting first header information and first coded data from digital audio data of a first frame, decoding the first coded data, and writing the first coded data to a first memory; 상기 복호화된 데이터를 상기 제1 메모리로부터 읽어들여 상기 부호화된 데이터에 대해 역양자화를 수행한 후 상기 역양자화된 데이터를 제2 메모리에 기록하는 역양자화 단계; 및 An inverse quantization step of reading the decoded data from the first memory to perform inverse quantization on the encoded data and then writing the dequantized data to a second memory; And N(N은 2이상의 자연수)번째 프레임의 역양자화된 데이터를 상기 제2 메모리로부터 읽어들여 역이산 여현 변환을 수행한 후 윈도우/오버랩-애드를 수행하고, 상 상기 N번째 프레임의 역이산 여현 변환 및 윈도우/오버랩-애드를 수행하는 동안 병렬적으로 N+1번째 프레임의 디지털 오디오 데이터에 대해 제2 헤더 정보와 제2 부호화된 데이터를 추출하고 상기 제2 부호화된 데이터를 복호화하는 병렬 처리 단계를 수행하는 프로그램을 기록한 기록 매체.Inverse quantized data of N (N is a natural number of two or more) frames is read from the second memory, inverse discrete cosine transform is performed, and window / overlap-add is performed, and inverse discrete cosine transform of the Nth frame is performed. And a parallel processing step of extracting second header information and second encoded data with respect to digital audio data of the N + 1th frame in parallel while performing window / overlap-add, and decoding the second encoded data. Recording medium that records the program to run.
KR1020060072879A 2006-08-02 2006-08-02 Method and device for decoding digital audio data, and record medium for performing method of decoding digital audio data KR100903958B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060072879A KR100903958B1 (en) 2006-08-02 2006-08-02 Method and device for decoding digital audio data, and record medium for performing method of decoding digital audio data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060072879A KR100903958B1 (en) 2006-08-02 2006-08-02 Method and device for decoding digital audio data, and record medium for performing method of decoding digital audio data

Publications (2)

Publication Number Publication Date
KR20080012000A KR20080012000A (en) 2008-02-11
KR100903958B1 true KR100903958B1 (en) 2009-06-25

Family

ID=39340383

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060072879A KR100903958B1 (en) 2006-08-02 2006-08-02 Method and device for decoding digital audio data, and record medium for performing method of decoding digital audio data

Country Status (1)

Country Link
KR (1) KR100903958B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113112993B (en) * 2020-01-10 2024-04-02 阿里巴巴集团控股有限公司 Audio information processing method and device, electronic equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970066836A (en) * 1996-03-26 1997-10-13 구자홍 Multimedia subdevice
JPH10502586A (en) * 1994-07-07 1998-03-10 ジェフィー・パッケイジング・カンパニー・リミテッド Packaging material, packaging pad, and method of manufacturing packaging material
KR20000035332A (en) * 1998-11-09 2000-06-26 이데이 노부유끼 Data recording apparatus, data recording method, data recording and reproducing apparatus, data recording and reproducing method, data reproducing apparatus, data reproducing method, data record medium, digital data reproducing apparatus, digital data reproducing method, synchronization detecting apparatus, and synchronization detecting method
KR20020071691A (en) * 2001-03-02 2002-09-13 블루텍 주식회사 Method of editing audio data and recording medium thereof and digital audio player
WO2005057906A2 (en) * 2003-12-08 2005-06-23 Divx, Inc. Multimedia distribution system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10502586A (en) * 1994-07-07 1998-03-10 ジェフィー・パッケイジング・カンパニー・リミテッド Packaging material, packaging pad, and method of manufacturing packaging material
KR970066836A (en) * 1996-03-26 1997-10-13 구자홍 Multimedia subdevice
KR20000035332A (en) * 1998-11-09 2000-06-26 이데이 노부유끼 Data recording apparatus, data recording method, data recording and reproducing apparatus, data recording and reproducing method, data reproducing apparatus, data reproducing method, data record medium, digital data reproducing apparatus, digital data reproducing method, synchronization detecting apparatus, and synchronization detecting method
KR20020071691A (en) * 2001-03-02 2002-09-13 블루텍 주식회사 Method of editing audio data and recording medium thereof and digital audio player
WO2005057906A2 (en) * 2003-12-08 2005-06-23 Divx, Inc. Multimedia distribution system

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
10-1997-66836
10-2000-35332
10-2002-71691
10-502586

Also Published As

Publication number Publication date
KR20080012000A (en) 2008-02-11

Similar Documents

Publication Publication Date Title
JP4786903B2 (en) Low bit rate audio coding
WO2006024977A1 (en) Method and device for transcoding
WO2003007480A1 (en) Audio signal decoding device and audio signal encoding device
US6965859B2 (en) Method and apparatus for audio compression
JP4031909B2 (en) Apparatus and method for efficiently removing time domain aliasing
JP2005531014A5 (en)
JP3601473B2 (en) Digital audio compression circuit and decompression circuit
US20030014241A1 (en) Method of and apparatus for converting an audio signal between data compression formats
EP1386310A1 (en) Device to encode, decode and broadcast audio signal with reduced size spectral information
US20080133250A1 (en) Method and Related Device for Improving the Processing of MP3 Decoding and Encoding
EP3507800B1 (en) Transform-based audio codec and method with subband energy smoothing
KR100903958B1 (en) Method and device for decoding digital audio data, and record medium for performing method of decoding digital audio data
JP4639966B2 (en) Audio data compression method, audio data compression circuit, and audio data expansion circuit
KR100895100B1 (en) Method and device for decoding digital audio data
JP4888048B2 (en) Audio signal encoding / decoding method, apparatus and program for implementing the method
CN101740075B (en) Audio signal playback apparatus, method, and program
KR100359528B1 (en) Mp3 encoder/decoder
JP2002026738A (en) Audio data decoding processing unit and method, and computer-readable recording medium with audio data decoding processing program stored thereon
JP2011257575A (en) Speech processing device, speech processing method, program and recording medium
JP2005181354A (en) Device and method for decoding
JP3922411B2 (en) Audio signal reproducing apparatus and method, and audio signal recording / reproducing apparatus and method
JP4682752B2 (en) Speech coding and decoding apparatus and method, and speech decoding apparatus and method
Wu et al. MPEG-2/4 low-complexity advanced audio coding optimization and implementation on DSP
JP2000293200A (en) Audio compression coding method
KR20160112177A (en) Apparatus and method for audio metadata insertion/extraction using data hiding

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B601 Maintenance of original decision after re-examination before a trial
E801 Decision on dismissal of amendment
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20080526

Effective date: 20090529

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130530

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140528

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150526

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180528

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190527

Year of fee payment: 11