KR100771401B1 - 프로그래머블 프로세서에서 mpeg-2 또는 mpeg-4aac 오디오 복호 알고리즘을 처리하기 위한 연산 회로및 연산 방법 - Google Patents

프로그래머블 프로세서에서 mpeg-2 또는 mpeg-4aac 오디오 복호 알고리즘을 처리하기 위한 연산 회로및 연산 방법 Download PDF

Info

Publication number
KR100771401B1
KR100771401B1 KR1020050070371A KR20050070371A KR100771401B1 KR 100771401 B1 KR100771401 B1 KR 100771401B1 KR 1020050070371 A KR1020050070371 A KR 1020050070371A KR 20050070371 A KR20050070371 A KR 20050070371A KR 100771401 B1 KR100771401 B1 KR 100771401B1
Authority
KR
South Korea
Prior art keywords
mpeg
huffman
data
aac
programmable processor
Prior art date
Application number
KR1020050070371A
Other languages
English (en)
Other versions
KR20070015790A (ko
Inventor
선우명훈
오종훈
문종하
Original Assignee
(주)펄서스 테크놀러지
아주대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)펄서스 테크놀러지, 아주대학교산학협력단 filed Critical (주)펄서스 테크놀러지
Priority to KR1020050070371A priority Critical patent/KR100771401B1/ko
Priority to US11/342,764 priority patent/US7333036B2/en
Publication of KR20070015790A publication Critical patent/KR20070015790A/ko
Application granted granted Critical
Publication of KR100771401B1 publication Critical patent/KR100771401B1/ko

Links

Images

Classifications

    • 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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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
    • G10L19/008Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
    • 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
    • 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
    • G10L19/04Speech 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 using predictive techniques
    • G10L19/16Vocoder architecture

Abstract

본 발명은 다채널 고음질 오디오 시스템에서 오디오 압축 알고리즘으로 사용되는 MPEG-2 AAC(Advanced Audio Coding) 또는 MPEG-4 AAC 알고리즘을 프로그래머블 프로세서에서 구현시 비선형 역양자화의 정확성과 효율성을 높이기 위한 연산 방법 및 허프만 연산 회로에 관한 것이다. 이에 따르면, 종래의 디지털 신호 처리 프로세서의 연산기 구조를 재사용하고 허프만 복호기 및 비트 처리 구조 등을 추가하여 성능을 향상시킬 수 있으므로 프로그래머블 프로세서의 설계 및 변경이 용이하다.
역양자화, 허프만 디코딩, AAC 오디오 디코딩

Description

프로그래머블 프로세서에서 MPEG-2 또는 MPEG-4 AAC 오디오 복호 알고리즘을 처리하기 위한 연산 회로 및 연산 방법{ COMPUTING CIRCUITS AND METHOD FOR RUNNING AN MPEG-2 AAC OR MPEG-4 AAC AUDIO DECODING ALGORITHM ON PROGRAMMABLE PROCESSORS }
도 1은 종래 기술에 따른 MPEG-2 AAC 오디오 복호화 알고리즘의 과정을 나타낸 블록도이다.
도 2는 ISO/IEC에서 명시하는 MPEG-2 AAC LC 프로파일의 연산량을 나타낸 그래프이다.
도 3은 종래 기술에 따른 허프만 복호기를 나타낸 구성도이다.
도 4는 본 발명에 따른 허프만 복호기를 나타낸 구성도이다.
도 5는 역양자화 알고리즘을 본 발명에 따른 방법으로 구현했을 때 나타나는 오차값을 1부터 8191 샘플 구간에서 나타낸 그래프이다.
도 6은 본 발명에 따른 방법과 직접구현 방법에 따른 역양자화 알고리즘의 오차값을 동시에 나타낸 그래프이다.
도 7은 본 발명에 따른 프로그래머블 프로세서를 나타낸 구성도이다.
도 8은 본 발명에 따른 허프만 복호과정을 나타낸 블록도이다.
도 9는 본 발명에 따른 허프만 복호기를 나타낸 구성도이다.
도 10은 본 발명에 따른 산술논리 연산기 내부에서의 비트를 추출하기 위한 구조를 나타낸 구성도이다.
도 11은 본 발명에 따른 비트 추출 방법에 있어서 가우스 함수와 rem 함수를 계산하는 방법을 나타낸 구성도이다.
도 12는 본 발명에 따른 데이터 처리 장치의 구조를 나타낸 구성도이다.
도 13은 본 발명에 따른 역양자화 알고리즘의 SQNR 시뮬레이션 결과를 나타낸 그래프이다.
도 14는 본 발명에 따른 역양자화 알고리즘에 대해 오차값 차이를 나타낸 그래프이다.
*도면의 주요부분에 대한 설명*
110 : 프로그램 제어장치 120 : 주소 생성기
130 : 데이터 처리 장치 140 : 프로그램 메모리
150, 160 : 데이터 메모리 170, 180 : 데이터 롬
190 : 허프만 복호기 201 : 테이블 레지스터
202 : 코드 워드 누적기 203 : 허프만 복호기
204 : 인덱스 레지스터 205 : 코드 길이 레지스터
206 : 배럴 쉬프터 207 : 누적기
301 : 스케일 팩터 코드북 302 ~ 313 : 스펙트럼 코드북
314 : 인덱스 멀티플렉서 315 : 코드 길이 멀티플렉서
400 : 입력 레지스터 401 : 마스크(MASK) 레지스터
402 : 2-입력 AND 게이트 403 : 제어신호 생성기
404 : 배럴 쉬프터 405 : 비트 리버스 회로
406 : 멀티플렉서 407 : 누적기
본 발명은 다채널 고음질 오디오 시스템에서 오디오 압축 알고리즘으로 사용되는 MPEG-2 AAC 또는 MPEG-4 AAC 알고리즘의 복호 연산을 디지털 신호 처리 프로세서 또는 마이크로프로세서 등과 같은 프로그래머블 프로세서에서 비선형 역양자화를 정확하고 효율적으로 처리할 수 있는 연산 회로 및 연산 방법에 관한 것이다.
최근 다채널 고음질 오디오에 대한 수요가 증가하면서 디지털 다채널 압축 오디오 알고리즘에 대한 관심이 증가하고 있다. ISO/IEC (International Standards Organization/International Electrotechnical Commission)는 1998년에 디지털 오디오와 비디오에 관한 압축기술을 연구하기 위한 ISO/MPEG(Moving Pictures Expert Group)을 창설하였다. 이 그룹은 1994년부터 MPEG-1 스테레오 포맷과의 호환이 필요 없는 응용 분야에서 사용할 수 있는 새로운 표준화 작업을 시작하였는데, 표준화 과정에서 붙여진 명칭은 MPEG-2 NBC(Non-Backward Compatible)였다. 표준화 과정에 들어가기 전에 MPEG은 MPEG-1과 호환되는 MPEG-2 BC(Backward Compatible)를 Dolby의 AC-3, AT&T의 MPAC과 비교 시험하였고, 그 결과 역 방향 호환 조건을 없앰으로써 부호화기의 성능을 향상시킬 수 있다는 결론을 얻었다. MPEG-2 NBC는 5채널 전대역폭 오디오 신호가 384kbit/s이하의 비트율로 ITU-R(International Telecommunication Union, Radiocommunication Bureau)에서 정의한 “청각적으로 구분할 수 없는(indistinguishable)” 오디오 품질에 도달하는 것을 목표로 하였다. 이후 MPEG-2 NBC는 1997년 4월에 새로운 다채널 오디오 부호화 방식의 국제 표준으로 발표되었는데, 발표될 때 그 명칭이 MPEG-2 AAC(Advanced (ISO/IEC 13818-7)로 바뀌었다. MPEG-2 AAC는 이러한 배경에 의해 규격화된 부호화 방식으로 5채널의 신호를 320kbps(1채널당 64kbps)의 고음질로 부호화하는 오디오 부호화 방식이다.
도 1은 종래 기술에 따른 MPEG-2 AAC 오디오 복호화 알고리즘의 과정을 나타낸 블록도이다. 도 1을 참조하면, MPEG-2 AAC 오디오 알고리즘은 384kbit/s이하의 비트율로 원음과 “청각적으로 구분할 수 없는” 오디오 음질을 제공하기 위해 고해상도 필터 뱅크, 예측 부호화, 음압 스테레오 부호화, TNS(Temporal noise shaping), 허프만 부호화(Huffman coding) 등을 결합시켜 사용한다. 이러한 MPEG-2 AAC 오디오 압축 알고리즘은 MDCT(Modified Discrete Cosine Transform)를 이용한 변환 부호화(Transform coding) 방식으로서, 변환된 신호를 압축하기 위해 심리 음향 모델을 기반으로 한 비트 할당 방식을 사용하여 변환된 신호를 압축한다.
한편, MPEG-2 AAC 오디오 시스템은 음질, 메모리 사용량 및 전력 요구량 사이의 손익을 고려하여 메인 프로파일(Main profile), LC 프로파일(Low complexity profile) 및 SSR 프로파일(Scalable sampling rate)의 3가지 프로파일을 지원한다.
먼저, 메인 프로파일은 주어진 비트율에서 최상의 음질을 제공하는 것으로서 이득 제어(Gain control) 툴을 제외한 AAC의 모든 툴이 사용된다. 메인 프로파일은 후술하게 될 LC 프로파일의 비트 스트림을 복호화할 수 있다.
다음으로, LC 프로파일은 일반적으로 가장 많이 사용되는 것으로, 예측 툴과 이득 제어 툴은 사용되지 않고 TNS의 차수도 제한되어 사용된다. LC 프로파일의 메모리의 사용량과 요구 전력은 메인 프로파일과 비교하여 상당히 작다는 것이 특징인데, 음질은 상대적으로 우수한 편이다.
마지막으로, SSR(Scalable sampling rate) 프로파일은 LC 프로파일에 이득 제어 툴을 추가한 것이다. 예측 툴은 사용되지 않고, TNS(Temporal noise shaping)의 차수와 대역폭도 제한되어 사용된다. SSR 프로파일은 메인 프로파일과 LC 프로파일보다 복잡도(Complexity)가 낮지만 주파수 가변 신호를 제공하는 장점이 있다.
도 2는 ISO/IEC에서 명시하는 MPEG-2 AAC LC 프로파일의 연산량을 나타낸 그래프이다. 도 2에 도시된 바와 같이 AAC 복호 시스템에서 전체 연산량의 약 30%를 차지하는 과정은 AAC 복호화 과정 중 첫 단계에서 수행되는 허프만 복호 과정이다. 허프만 복호 과정은 범용 프로그래머블 프로세서에서 소프트웨어로 구현할 경우, 입력 샘플의 특성에 따라 최악의 경우 최대 289 번의 비교 연산을 수행해야 한다. 또한, 상기 비교 연산을 수행하기 위해 비트열 추출 연산과 XOR, OR 연산, 쉬프트 연산 등이 추가적으로 필요하게 되어, 소프트웨어로만 구현하게 되면 전체 AAC 복호 연산량의 약 30%를 차지하는 큰 연산 사이클을 소모하게 된다.
이러한 허프만 복호화 과정은 비트열에 포함되어 있는 허프만 코드 워드에 대해서 MPEG-2 또는 MPEG-4 AAC 표준 문서에 정의된 허프만 인덱스를 구하는 것이 목적이다. 먼저 비트열의 부가 정보열에 나타난 코드북 정보를 이용하여 12개의 허프만 테이블 중 하나를 선택하고, 선택된 테이블에 있는 코드 워드와 비트열을 비교하여 일치하는 코드의 인덱스를 하나의 코드 워드에 대한 허프만 복호 출력값으로 사용한다.
현재 개발된 오디오 전용 DSP칩 중에는 소프트웨어 방법을 사용하지 않고, 허프만 복호 과정의 연산량 및 복잡도를 줄이기 위해 전용 허프만 복호기를 사용하는 것도 있다. 소프트웨어 방법을 사용하면 코드 워드를 하나씩 각각 1비트씩 비교하며 허프만 인덱스를 찾아가게 되지만, 전용 하드웨어 복호기는 일반적으로 12개의 허프만 테이블과 코드 워드값을 모두 저장하고 있는 특정 하드웨어를 통해 짧은 연산 사이클에 바로 허프만 인덱스 값을 출력하는 구조를 갖는다. 상기한 바와 같은 전용 허프만 복호기는 주로 오디오 신호 처리용 DSP 칩에 적용되며, 관련 명령어도 제공한다.
도 3은 종래 기술의 일예에 따른 허프만 복호기를 나타낸 구성도이다. 허프만 복호 과정의 출력 데이터인 허프만 인덱스 값은 DSP 칩의 누적기에 최종적으로 저장된다. 대부분의 전용 하드웨어 허프만 복호기의 경우, 일반적으로 하나의 허프만 인덱스 값을 구하는데 1, 2 연산 사이클 정도가 소모된다. 그러나, 허프만 인덱스 값은 양자화된 스펙트럼 값으로 변경되기 전에 언그룹핑 (ungrouping)과정을 거쳐야 하는데, 이 과정을 위해 누적기에 저장된 허프만 인덱스 값은 일반 레지스터로 옮겨져야 한다. 그러나, 이러한 과정은 XOR 연산, OR 연산, 쉬프트 연산, 데이터 이동 명령어들이 필요하므로 최종적으로 허프만 복호 결과값이 일반 레지스터에 저장되기까지 약 5, 6 연산 사이클 정도가 소모되는 문제점이 발생된다. 즉, 통상적인 전용 허프만 복호기는 허프만 복호 과정의 다음 단계인 언그룹핑 과정에 바로 적용되어 연산 사이클을 줄이는 구조가 아니므로 불필요한 연산 사이클이 존재하게 된다.
허프만 복호 이후의 양자화된 샘플 데이터는 스케일 팩터(scalefactor) 값이 적용되어 원래의 실수값인 스펙트럼 데이터로 변환된다. 상기 과정은 역 양자화(dequantization 또는 inverse quantization)라 불리며, 하기의 수학식 1 및 수학식 2에 의해 수행된다.
Figure 112005042532454-pat00001
Figure 112005042532454-pat00002
상기 수학식 1에서 x_quant 값은 허프만 복호 과정의 출력값을 언그룹핑한 데이터로서, 양자화된 스펙트럼 데이터이다. x_invquant 값은 역양자화된 스펙트럼 데이터이다. 상기 수학식 2에서 sf[g][sfb]는 각 그룹의 스케일팩터 값으로 구성된 배열이며, SF_OFFSET은 상수 100이다. 역양자화 과정은 비선형 양자화 방식을 사용하고, 부호화기에서 양자화하여 정수의 형태로 표현되어 있는 샘플값들을 원래의 실수 데이터로 복호하는 과정이다. 즉, 상기 수학식 2에서 구해진 이득값을 상기 수학식 1의 x_invquant와 곱하여 연산에 필요한 최종적인 실수의 스펙트럼 데이터가 얻어진다.
상기 역양자화 과정은 도 2에 도시된 바와 같이, 실제 연산량은 많지 않지만 AAC 복호화 과정의 처음 단계에 위치하여 이후 복호 단계의 연산에 필요한 실수 스펙트럼 데이터를 생성하는 역할을 하게 되므로, 데이터의 정확도가 중요하다. 만약, 비선형 역양자화된 실수 데이터가 정확하지 않으면 이때 발생한 오차값은 이후 MPEG-2 또는 MPEG-4 AAC 복호화 과정에서 초기 누적 오차값의 역할을 하기 때문에 정확한 연산 결과가 필요하게 되는 것이다.
뿐만 아니라, 역양자화 과정은 상기 수학식 1에 나타낸 바와 같이 4/3 제곱이 포함되어 있다. 4/3 제곱 연산은 일반적으로 고정 소수점 DSP에서 구현하는 것이 불가능하므로 미리 만들어져 있는 테이블로부터 입력에 따른 값을 불러 사용하는 LUT(Lookup Table) 방식이 주로 사용된다. AAC의 표준 규격에 따르면, 역양자화 과정의 입력값으로 사용되는 |x_quant| 값은 그 범위가 8191 이하의 값을 가지도록 정의된다. 그러나, 4/3 제곱 연산을 위해 8191개의 데이터를 갖는 테이블을 사용하면, 전체 프로세서의 하드웨어 크기가 너무 커지는 단점이 있다. 그러므로, 일반적으로 256 개 또는 128 개의 데이터를 갖는 테이블을 하드웨어로 구현하고, 나머지 값은 보간법(interpolation method)에 의해 계산된 값이 사용된다.
상기 보간법에는 여러 가지가 있는데, 그 중 일예를 소개하면 다음과 같다.
수학식 3은 256개의 데이터를 갖는 테이블을 이용하는 직접 구현 방법( direct linear interpolation method)을 나타내고, 수학식 4는 256개의 데이터를 갖는 테이블로 8191개의 데이터를 생성하는 보간법의 기본 특성을 나타낸 것이다.
Figure 112005042532454-pat00003
Figure 112005042532454-pat00004
상기 수학식 3에서 LUT(·) 함수는 미리 저장된 테이블 값을 나타내는 함수이고, rem(·) 함수는 나눌 때 나타나는 나머지 값을 출력하는 함수이다. 상기 수학식 3과 같이 1에서 256까지의 구간은 테이블에 저장된 데이터를 그대로 사용하기 때문에 실제 데이터와 오차값은 거의 발생하지 않는다. 그러나, 257부터 8191까지의 데이터는 1에서 256까지의 데이터를 입력값으로 하여 보간 과정을 수행한 결과 얻은 값을 사용하기 때문에 실제 257부터 8191까지의 값을 4/3 제곱한 데이터와 오차값이 발생한다. 시뮬레이션 결과 직접 구현 방법에 의한 최대 오차값은 257에서 2047 구간까지는 0.04365를 갖고, 2048부터 8191구간에서는 0.69832의 값을 갖는다.
Figure 112005042532454-pat00005
Figure 112005042532454-pat00006
상기 수학식 5는 역양자화 과정에서 보간된(interpolated) 데이터의 오차값을 효율적으로 줄일 수 있도록 개선된 알고리즘이다. 개선된 알고리즘의 특징은 추가적인 함수 fa와 fb를 사용하는 것인데, 이러한 함수 fa와 fb는 상기 수학식 6에 나타낸 바와 같다. 256개의 테이블을 사용하는 개선된 알고리즘의 최대 오차값은 257에서 2047구간까지 0.02538이고, 2048부터 8191구간에서는 0.35389의 값이다. 그러나, 개선된 알고리즘은 상기 수학식 5에 나타낸 바와 같이 나머지를 출력하는 함수인 rem(·) 함수가 각 샘플값을 구하기 위해 매번 조건문으로 사용되므로, 257에서 8191구간까지의 X4 / 3값을 계산하기 위해 프로세서의 조건 명령어가 연산마다 계속 사용되어 연산 사이클이 길어지는 단점이 있으며, 상대적으로 직접 구현 방법 보다 연산해야 할 수식의 양이 많아지므로 이에 따라 연산량이 증가하는 문제점도 발생한다.
현재 다채널 고음질 오디오 처리를 위한 상용 신호처리 프로세서(DSP)는 SHARC DSP 의 ASDSP-21065L, Cirrus Logic 의 CS49300, CS49500, TI (Texas Instrument)의 TMSc55x, TMSc64x, TMSc67x 시리즈, LSI Logic 의 ZSP40x, CLARKSPUR 의 CD2450, CD2480, 필립스 TriMedia 의 TM-1300, PNX1500, Tensilica 의 Xtensa 등이 있다. 뿐만 아니라, ARM사의 ARM9M, ARM9E 등도 AAC 처리가 가능하다. 상기 상용 DSP 또는 프로세서는 대부분 다채널 또는 스테레오 채널에 대한 LC프로파일까지 지원하며, TI TMSc67x, LSI Logic ZSP 시리즈, SHARC DSP ASDSP-21065L 등은 AAC 의 메인 프로파일까지 지원이 가능하다.
일반적으로 오디오 처리를 위한 상용 DSP의 특징은 24비트 또는 32비트의 데이터 표현 범위를 갖고 있고, 다채널 오디오 처리가 가능하도록 충분한 메모리 공간 또는 외부 오디오 신호의 I/O 가 자유롭도록 설계되어 있다. 뿐만 아니라, 대부분의 다채널 오디오용 DSP 는 5.1채널 이상의 오디오 데이터를 실시간으로 처리하기 위해 많은 하드웨어 자원을 병렬적으로 처리하는 방법이 사용된다. 예를 들어, SHARC DSP의 ASDSP-21065L 프로세서는 SIMD(Single instruction multiple data)와 SISD(Single instruction single data)처리가 모두 가능한 슈퍼 하버드 구조를 가지며, 많은 하드웨어 자원들이 병렬적으로 처리 가능하다.
또한, TMS320c64x, TMS320c67x, TM-1300, PNX1500 등은 VLIW(Very long instruction word) 프로세서로 비교적 많은 하드웨어 자원을 소프트웨어인 컴파일 러를 사용한 프로그램 제어를 통해 하드웨어를 병렬적으로 처리한다. 즉, 상용 DSP칩 개발사가 출시하는 대부분의 오디오 전용 DSP는 DSP 연산 코어가 슈퍼 하버드 구조 및 VLIW 구조를 가지며, 기본적으로 다양한 오디오 알고리즘에 대해 고속으로 동작할 수 있는 많은 연산기 및 하드웨어 자원을 가지고 있는 경우가 많다. 또한, DSP코어보다는 주변 장치(Peripheral apparatus)가 오디오 I/O 처리 등에 전용화되어 있으므로, 오디오 신호 처리 연산을 위한 전용 명령어가 아니라 오디오 신호의 입/출력을 위한 주변 장치 제어가 가능한 전용 명령어들이 존재하는 경우가 많다.
그러나, 이와 같은 대부분의 상용 DSP코어는 그 구조의 특성상 상대적으로 코어의 크기 및 전력 사용량이 크며, SoC(System on a Chip)로 칩을 구현할 경우 그 크기로 인해 구현의 효율성이 떨어지는 문제점이 있었다.
따라서, 본 발명은 고음질 다채널 오디오 시스템에서 MPEG-2 AAC 또는 MPEG-4 AAC 알고리즘을 프로그래머블 프로세서 기반으로 구현하는 경우, 고속의 고품질 오디오 신호 처리에 적합하면서 작은 칩 크기와 적은 전력 소모를 가지는 효율적인 오디오 복호 연산을 지원하는 연산 회로 및 연산 방법을 제공하는 것을 목적으로 한다. 하기에 개시될 연산 회로 및 연산 방법은 MPEG-2 또는 MPEG-4 AAC 알고리즘에 기초하여 프로그래머블 프로세서에서 허프만 복호 및 효율적인 역양자화 연산을 지원하는 것을 목적으로 한다.
상술한 목적을 달성하기 위한 본 발명에 따른 프로그래머블 프로세서의 MPEG-2 또는 MPEG-4 AAC 디코딩 연산 회로는, 프로그래머블 프로세서에서 효율적인 허프만 디코딩 연산방법을 실행하기 위하여, 허프만 복호 연산시에 허프만 코드 워드를 입력받아 허프만 인덱스 값을 출력하는 허프만 복호기와 MPEG-2 또는 MPEG-4 AAC 디코딩 연산을 수행하기 위한 상태 레지스터를 포함하는 것을 특징으로 한다.
또한, 본 발명에 따른 프로그래머블 프로세서의 MPEG-2 또는 MPEG-4 AAC 디코딩 연산 방법은, 프로그래머블 프로세서에서 효율적인 역양자화 과정을 수행하기 위하여 256개의 LUT를 사용하고, 1부터 256 샘플구간, 257부터 2047샘플 구간, 2048부터 8191샘플 구간으로 나누어 각각 다른 수식을 적용하는 단계; 상기 2048부터 8191샘플 구간에서 rem 함수가 32보다 작은지 큰지를 비교하여 각각 다른 수식을 적용하는 단계; 상기 257부터 2047샘플 구간에서 오차값을 감소시키기 위해 수식
Figure 112005042532454-pat00007
을 사용하는 단계; 및 상기 2048부터 8191샘플 구간에서 오차값을 감소시키기 위해 수식
Figure 112005042532454-pat00008
을 사용하는 단계;를 포함하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명하기로 한다.
도 4는 본 발명에 따른 허프만 복호기를 나타낸 구성도이다. 이를 참조하면, 허프만 복호화 과정에서 XOR 연산, OR 연산, 쉬프트 연산 및 데이터 이동 연산 등 부가적인 조작을 하지 않는 전용 허프만 복호기의 구조이다. 개선된 허프만 복호기 는 출력 인덱스 값을 특별한 조작 없이 바로 다음 연산 사이클에 ㅇ언그룹핑 복호 과정을 수행할 수 있도록 하는 구조를 갖는다. 도 4에 도시된 구조를 사용할 경우, 어떠한 오디오 신호라도 하나의 허프만 코드 워드를 복호하여 부호화기에서 양자화시킨 정수 데이터 출력값을 1사이클에 출력하여, 다음 단계의 연산 소스로 사용될 수 있도록 일반 레지스터로 출력된다.
도 5는 역양자화 알고리즘을 본 발명에 따른 방법으로 구현했을 때 나타나는 오차값을 1부터 8191 샘플 구간에서 나타낸 그래프이다. 역양자화 과정은 AAC 전체 복호 연산량 중에서 그다지 많은 연산량을 차지하지 않지만 그 값이 정확하지 않으며 이후 복호화 과정에서 초기 오차값의 역할을 하며, 그 오차값이 계속 누적되어 커질 우려가 있으므로 우수한 음질을 확보하기 위해서는 정확한 연산값을 필요로 한다. 제안된 보간 알고리즘은 다른 알고리즘에 비해 오차값을 더욱 낮추어서 계산할 수 있다.
도 6은 본 발명에 따른 방법과 직접구현 방법에 따른 역양자화 알고리즘의 오차값을 동시에 나타낸 그래프이다. 도 6에 도시된 바와 같이 제안된 보간 알고리즘을 사용할 경우, 256개의 테이블만을 사용하여 전체 8191개의 데이터를 매우 작은 오차값을 가지도록 출력할 수 있으므로 이후 복호화 과정에서 발생하는 누적 오차값을 최소화할 수 있다. 개선된 알고리즘은 DSP칩의 연산량을 고려하여 곱셈 및 나눗셈을 사용하지 않고 덧셈 및 쉬프트 연산 등으로 구성이 가능하다. 또한, 상기한 수학식 5에서 이미 제안된 알고리즘보다 조건문 사용이 적기 때문에 DSP의 조건 명령어 사용이 줄어들어 프로그램 제어에 의한 연산량이 더욱 줄어들게 된다. 뿐만 아니라, 도 6에 도시된 바와 같이 오차값이 각 샘플마다 양수 또는 음수값을 번갈아 가지게 되므로 이후 복호 단계에서 누적 오차값이 감소된다.
도 7은 본 발명에 따른 프로그래머블 프로세서를 나타낸 구성도이다. MPEG-2 또는 MPEG-4 AAC 알고리즘의 연산 시작 신호를 발생시키고 프로그래머블 프로세서를 제어하는 프로그램 제어장치(110)와, 상기 프로그래머블 프로세서의 응용 프로그램이 저장되는 프로그램 메모리(140)와, 데이터 메모리의 주소를 계산하는 주소 생성기(120)와, 데이터가 저장되어 있는 데이터 메모리(150, 160)와, 데이터를 저장하고 있는 데이터 롬(170, 180)과, 상기 데이터 메모리(150, 160)와 데이터 롬(170, 180)의 데이터를 이용하여 산술 논리 연산을 수행하는 데이터 처리 장치(130)와, AAC의 허프만 복호 과정을 전용으로 계산하기 위한 허프만 복호기(190)로 구성된다. 이 때, 상기 데이터 처리 장치(130)는 데이터의 곱셈 연산 후 이를 누적하는 2개의 곱셈 누적기와 1개의 산술 논리 연산 장치, 데이터 메모리의 값을 저장하는 입력 레지스터, 연산 결과를 저장하고 다시 연산에 이용할 수 있도록 하는 누적기로 구성된다.
본 발명에 따른 명령어들은 AAC 허프만 복호기를 동작시켜 허프만 복호 과정을 수행하게 하는 HFMD(Huffman Decoding)와 역양자화 과정에서 가우스 함수값과 나눗셈의 나머지를 구하는 함수를 효율적으로 처리하는 EXTB(Extract Bit)이다. 상기 명령어들을 이용하면 MPEG-2 또는 MPEG-4 AAC 알고리즘을 복호하기 위해 사용되는 프로그래머블 프로세서의 연산량이 기존의 프로그래머블 프로세서의 단점을 개선하여 보다 효율적으로 수행하게 되며, 상용 DSP보다 비교적 적은 하드웨어 면적을 지원한다.
상기 프로그램 제어장치(110)는 종래 프로그래머블 프로세서에서 프로그램을 제어하는 역할을 수행하며, 프로그램 제어장치(110)는 HFMD 명령어를 디코딩하여 허프만 복호기(190)에 허프만 복호 연산의 시작을 알리고 허프만 코드북 선택 신호를 상기 허프만 복호기(190)에 전달한다.
도 8은 본 발명에 따른 허프만 복호과정을 나타낸 블록도이다. 도 8의 내부 구성 요소는 입력 데이터인 허프만 코드 워드가 저장된 소스 누적기(202)와 MPEG-2 또는 MPEG-4 AAC 비트열의 부가 정보 데이터로 저장되어 있는 허프만 테이블 선택 정보(201), 허프만 복호기(203), 허프만 복호 과정의 출력 데이터인 허프만 인덱스 데이터가 출력되는 목적 누적기(204), 사용된 코드 워드의 길이 정보가 출력되는 일반 레지스터(205), 입력으로 사용된 소스 누적기에서 코드 길이만큼 오른쪽 쉬프트한 데이터로 업데이트하기 위한 산술논리 연산 장치내의 배럴 쉬프터(206) 및 연결선으로 구성된다.
도 9는 본 발명에 따른 허프만 복호기를 나타낸 구성도로서, 상기 도 8의 허프만 복호기(203)의 구성 요소를 나타낸다. 도 9의 내부 구성 요소는 스케일팩터의 허프만 복호에 사용되는 코드북(301)과 스펙트럼 데이터의 허프만 복호에 사용되는 코드북 12개(302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313), 허프만 인덱스를 테이블 정보에 따라 선택하는 허프만 인덱스 출력 멀티플렉서(314), 사용된 허프만 코드 워드의 길이를 출력하는 멀티플렉서(315) 및 연결선으로 구성된다.
상기 허프만 복호기에서 복호를 수행하는 방법은 프로그램 제어장치에서 HFMD 명령어 디코딩이 끝나면 테이블 선택 정보가 들어있는 일반 레지스터와 허프만 코드 워드 데이터가 들어있는 소스 누적기의 데이터가 허프만 복호기로 입력되는 단계와; 동시에 소스 누적기의 워드 데이터가 산술논리 연산 장치내의 배럴 쉬프터로 입력되는 단계와; 허프만 복호기에서 선택된 테이블로 허프만 인덱스 데이터를 찾는 단계와; 동시에 사용된 코드 워드의 길이를 출력하는 단계와; 출력된 코드 길이만큼 배럴 쉬프터에서 누적기의 데이터를 오른쪽으로 쉬프트하는 단계로 이루어진다.
상기 허프만 복호기 내에 위치한 12개의 허프만 테이블은 논리 회로로 구성되어 있기 때문에, 롬테이블을 이용할 경우보다 연산 속도가 빠르며, 구성된 테이블은 MPEG-2 또는 MPEG-4 AAC의 표준 문서에 나타난 순서가 아닌 코드 길이값이 작은 코드 워드부터 배열되어 논리 회로로 구성된다. 상기 허프만 복호기를 사용할 경우, 출력 데이터인 허프만 인덱스 값과 허프만 코드 길이값이 누적기로 출력되지 않고 각각 일반 레지스터로 나누어서 출력되므로 다음 연산의 입력값으로 추가의 연산 사이클 없이 사용이 가능하다. 또한, 입력 소스로 사용된 소스 누적기의 코드 워드는 허프만 복호기에서 출력된 허프만 코드길이만큼 산술논리 연산 장치내의 배럴 쉬프터에서 오른쪽으로 쉬프트되므로 비트열 버퍼에서 새로운 코드워드를 채울 때 누적기를 추가적으로 조작하지 않아도 되는 장점이 있다.
하기의 수학식 7은 본 발명의 MPEG-2 또는 MPEG-4 AAC 복호 알고리즘에서 사용되는 역양자화 과정을 연산량과 정확도 관점에서 개선시킨 것이다.
Figure 112007013485990-pat00028
Figure 112005042532454-pat00010
상기 수학식 7은 1부터 256까지, 257부터 2047까지, 2048부터 8191까지의 3개의 구간으로 나누어진다. 사용된 LUT는 1부터 256까지의 256개이며, 나머지는 수학식 7에 의해 계산되어 사용된다. 각 수식은 프로그래머블 프로세서의 연산량을 줄이기 위해 곱셈 및 나눗셈 과정을 쉬프트 연산을 통해 처리할 수 있도록 고안되었으며, 최대의 정수값을 나타내는 gauss[·]와 나눗셈의 나머지를 나타내는 rem(·) 함수의 경우 EXTB 명령어를 통해 비트 추출 연산으로 결과값 처리가 가능하도록 구현하였다. 또한, 어셈블리 프로그램에서 프로그램 제어 과정을 최소화하기 위해 각 구간의 조건문 사용을 최소화하였으며, 제안된 알고리즘으로 계산된 데이터와 실제 실수 데이터와의 차이값이 +와 -의 값을 교대로 가지므로 오디오 복호 과정의 후 처리 단계에서 누적 에러가 감소된다.
역양자화 과정을 수행하는 방법은 우선 입력 데이터 X값이 1부터 256까지인지, 257부터 2047까지인지, 2048부터 8191까지인지를 판단하는 단계와; 만약 2048부터 8191까지 일 경우 다시 rem(X/64)값이 32보다 큰지 또는 작거나 같은지를 판단하는 단계와; 판단된 구간에서 결과값을 지정된 수식에 따라 연산하는 단계로 구성된다. 상기 수학식 7에서 일반적인 2의 제곱의 나눗셈 및 곱셈 연산은 쉬프트 연산으로 계산 가능하며, 가우스 함수 및 rem(·) 함수는 EXTB 명령어로 처리가 가능하다.
도 10은 본 발명에 따른 산술논리 연산기 내부에서의 비트를 추출하기 위한 구조를 나타낸 구성도이다. EXTB 명령어는 마스크 레지스터에서 1로 셋팅된 위치의 값을 소스 레지스터에서 추출하여 누적기에 저장하는 명령어이다. 도 10의 내부 구성 요소는 입력 데이터로 사용되는 일반 레지스터 2 개(400, 401)와 소스 레지스터와 마스크 레지스터를 로직 연산하는 AND 연산기(402)와 마스크 값에서부터 쉬프트(shift)할 값을 연산하는 제어신호 생성기(403)와 ALU 내에 위치한 배럴 쉬프터(404), 결과값을 왼쪽 또는 오른쪽으로 정렬시킬 수 있는 비트 리버스 회로(405), 멀티플렉서(406) 및 누적기(407)로 구성된다. 상기 제어 신호 생성기(403)는 LSB 비트 쪽에서 가장 먼저 1이 발생하는 위치를 출력시키는 일반적인 LOD(Leeding one detector)로 구성되어 있고, 비트 리버스 회로(405)는 각 비트의 LSB 쪽과 MSB 쪽의 위치를 바꾸어 주는 역할을 한다.
상기 EXTB 명령어를 이용해서 가우스 함수 및 rem(·) 함수를 연산하는 방법은 첨부된 도 11을 참조하여 설명하기로 한다. 우선, 가우스 함수를 연산하는 방법은 gauss(X/a) 수식에서 a의 값이 2의 몇 제곱임을 나타내는 log2(a)값을 구하는 단계와; 정수 위치(Integer portion)에서 log2(a)값을 제외한 부분(Rest of shift[log2(a)])을 추출하는 단계를 거치면 출력값이 가우스 함수의 출력 데이터가 된다. 예를 들어, gauss(307/64)를 계산한다고 가정하면, 307/64 = 4.796875 이므로 gauss(307/64) = 4가 원하는 출력 데이터가 된다. 307은 이진수 100110011이며, 64 = 26 이므로 log2(64) = 6 이 된다. 하위 6비트를 제외한 상위 비트를 추출하면, 이진수 100 이며 이 값은 가우스 함수의 출력 데이터인 4 값이 된다.
또한, rem(·) 함수를 연산하는 방법은 rem(X/b) 수식에서 b의 값에 대한 log2(b)값을 구하는 단계와; 정수 위치(Integer portion)에서 log2(b)값의 비트 만큼 하위 비트쪽에서 추출하는 단계를 거쳐 rem(·) 함수의 출력 데이터가 된다. 예를 들어 rem(28/8)를 계산한다고 가정하면, 28 = (8 × 3) + 4 이므로 28을 8로 나누면 몫은 3이며 나머지는 4를 가지게 된다. 따라서 rem(28/8)은 출력값으로 4를 가지게 된다. 28의 이진수는 11100이며, log2(8) = 3 이기 때문에 28값의 하위 3비트를 추출하면 이진수 100이 출력되므로 십진수로 정답인 4 값을 가짐을 알 수 있다.
도 12는 본 발명에 따른 데이터 처리 장치의 구조를 나타낸 구성도이다. 도 12를 참조하면, 데이터 처리장치(130)는 2개의 스몰 쉬프트 연산을 지원하는 2개의 곱셈 누적기(501,502)와 1개의 산술 논리 연산 장치(509) 및 최대, 최소, 절대값 값을 처리하기 위한 연산기(511), 데이터 버스 스위치(500), 16개의 입력 레지스터(511), Saturation/Limit/Round를 위한 데이터 처리 유닛(507), 허프만 복호기(510) 및 4개의 누적기(508)로 구성된다. 본 발명에 따른 곱셈 누적기는 누적기를 이용하기 위해 곱셈기를 거치지 않고 버스 스위치에서 입력을 받을 수 있는 논리 네트워크 구조를 지원한다.
데이터 처리 장치의 경우에 메모리로부터 읽은 데이터를 16개의 입력 레지스터에 저장하여 사용하며, 역양자화 과정에서 나눗셈 및 곱셈 연산을 효율적으로 처리하도록 곱셈 및 덧셈 전, 후에 쉬프트 연산을 지원하는 스몰 쉬프터를 지원한다. 전용 허프만 복호기를 이용하여 AAC 복호 연산의 허프만 복호과정을 효율적으로 수행할 수 있으며, 전체 데이터 비트수는 오디오 알고리즘에 효율적인 24비트로 구성하거나 또는 디지털 오디오의 이퀄라이져와 같은 후처리 과정을 고성능으로 처리하기 위해 32비트로도 구성이 가능하다.
본 발명은 상술한 바와 같이 MPEG-2 또는 MPEG-4 AAC 알고리즘의 효율적인 연산 회로 및 그 연산 방법을 제공하여 MPEG-2 또는 MPEG-4 AAC 알고리즘의 구현시 연산량의 비중을 많이 차지하는 허프만 복호, 역양자화 과정을 효율적으로 수행할 수 있게 하여 성능이 향상된다. 또한, 종래의 디지털 신호 처리 프로세서의 연산기 구조를 재사용하고 허프만 복호기 및 비트 처리 구조 등을 추가하여 성능을 향상시킬 수 있으므로 프로그래머블 프로세서의 설계 및 변경이 용이하다.
구문 설명
HFMD hfmd GR0, GR1, Acc0, GR[n] GR0 ← Acc0의 허프만 인덱스 값(9비트) GR1 ← 코드워드의 길이 값(5비트) 다음 사이클에서, 소스로 사용되는 Acc0는 코드워드 만큼 오른쪽으로 쉬프트되어 정렬됨
EXTB extb Acc1, GR0, GR1, r/l GR1에서 1로 SET된 위치의 값을 GR0에서 추출하여 Acc1에 저장함. right/left 비트에 따라서 Acc1에 정렬되는 방법이 결정됨
상기 표 1은 MPEG-2 또는 MPEG-4 AAC 알고리즘을 효율적으로 처리하기 위해 제안된 전용의 명령어들과 동작 내용을 상세히 나타낸 것이다. 제안된 프로그래머블 프로세서는 상기 전용의 명령어를 지원하도록 고안되어 있다.
프로세서 종류 허프만 인덱스 샘플당 요구되는 사이클 수
국내 오디오 전용 DSP 5
대만 오디오 전용 VLSI 2.5
본 발명의 구조 2
상기 표 2는 본 발명에 따른 허프만 복호기 성능을 종래의 허프만 복호기와 연산 사이클 관점에서 비교한 것이다. 각 비교는 하나의 허프만 인덱스 값을 추출하여 다음 연산 과정을 위해 사용되기 전까지 요구되는 사이클 수를 나타낸 것으로 국내 오디오 전용 DSP 와 대만의 오디오 전용 VLSI 칩과 비교하여 각각 3사이클, 0.5사이클을 더 적게 요구한다. 뿐만 아니라, 본 발명에서 사용된 허프만 복호기의 경우 출력 데이터인 허프만 인덱스 값과 허프만 코드의 길이 데이터가 각각 일반 레지스터로 출력되므로, 다음 연산 또는 메모리 저장 과정을 수행할 때 추가의 쉬프터, XOR 등의 연산이 필요하지 않은 효과가 있다.
알고리즘 종류 최대 오차값 (257 ~ 2048 샘플 구간) 최대 오차값 (2049 ~ 8191 샘플 구간) 평균 오차값
직접 구현 방법 0.08728 1.39655 0.41979
국내 오디오 DSP 0.04365 0.69832 -0.20990
대만 (256테이블) 0.02538 0.35389 0.03161
대만 (128테이블) 0.03669 0.58217 0.16233
본 발명의 방법 0.048115 0.323076 0.007963
상기 표 3은 본 발명에서 제안된 역양자화 알고리즘의 성능을 종래의 방법과 함께 오차값을 비교하여 나타낸 것이다. 역양자화 과정의 경우, 전체 MPEG-2 또는 MPEG-4 AAC 알고리즘에서 연산량은 그렇게 많지 않지만, 그 값이 정확하지 않으면 이후 복호화 과정에서 초기 오차값의 역할을 하기 때문에 정확한 연산 결과가 필요하다. 따라서, 보간법에 의해 계산된 X4 /3 제곱 연산 값과 실제 값을 비교할 때, 오차값의 관점에서 오차값이 거의 0에 가까울수록 더욱 우수한 성능을 보이게 된다.
본 발명에서 사용된 역양자화 알고리즘은 제안된 수식에 근거하여 256개의 LUT를 사용하면 되므로, 종래의 상용 프로그래머블 프로세서에서도 제안된 수학식에 의해 충분히 적용이 가능하다. 제안된 역양자화 알고리즘을 수행할 경우, 계산된 X4 /3 제곱값의 평균 오차값은 직접 구현 방법에 비해 약 98.1% 평균 오차값이 감소하였으며, 국내 오디오 전용 DSP에서 제안된 알고리 보다는 약 96.2% 평균 오차값이 감소함을 알 수 있었다. 또한, 대만에서 제안된 오디오 칩을 위해 사용된 알고리즘과 비교하여 256개 LUT, 128개 LUT를 사용했을 경우에 대해 각각의 평균 오차값이 약 74.8%와 95.1%로 감소하였다.
본 발명은 역양자화를 수행할 때 일반적인 고정 소수점 DSP로 처리하기 어려운 가우스 함수 및 rem 함수의 처리를 위해 전용의 비트 추출 명령어 EXTB을 지원한다. 제안된 비트 추출 명령어를 사용할 경우 가우스 함수 및 rem 함수의 처리를 1 사이클에 연산할 수 있다.
도 13은 본 발명에 따른 역양자화 알고리즘의 SQNR(Signal to Quantization Noise Ratio) 시뮬레이션 결과를 나타낸 그래프이다. 상기 시뮬레이션은 프로그래머블 프로세서의 데이터 비트수가 20비트에서 34비트까지일 경우를 가정해서 각각에 대해 나타내고 있으며, 24비트일 때 90dB 이상을 가지므로 매우 우수한 정확도를 가짐을 알 수 있다.
도 14는 본 발명에 따른 역양자화 알고리즘에 대해 오차값 차이를 나타낸 그래프로서, 평균 오차값과 최대 오차값에 대해 실제 보간하지 않은 원래 데이터와 비교하여 그 차이값을 각 비트에 대해 시뮬레이션 한 결과이다. 동일하게 20비트에서 34비트까지를 시뮬레이션하였으며, 일반적으로 28비트 이상의 데이터 비트수를 가질 경우 보간한 값과 실제값의 차이가 거의 없어짐을 볼 수 있으며, 22비트 이상이면 일반적으로 우수한 성능을 보임을 알 수 있다.
이상에서 설명한 바와 같은 명령어, 알고리즘 및 하드웨어 구조는 대부분 종래의 연산 모듈들을 재사용하고 데이터 처리 회로 및 허프만 복호기 등만 추가하면 되므로 설계 비용 측면에서도 경제적이며, 연산 속도 측면에서도 매우 효율적으로 MPEG-2 또는 MPEG-4 AAC 알고리즘을 구현할 수 있다.

Claims (8)

  1. 프로그래머블 프로세서에서 효율적인 허프만 디코딩 연산방법을 실행하기 위한 MPEG-2 또는 MPEG-4 AAC 디코딩 연산 회로로서,
    허프만 복호 연산시에 허프만 코드 워드를 입력받아 허프만 인덱스 값을 출력하는 허프만 복호기;
    MPEG-2 또는 MPEG-4 AAC 디코딩 연산을 수행하기 위한 상태 레지스터; 및
    입력 데이터를 데이터 메모리 및 롬에 제공하고 출력 데이터를 데이터 메모리에 쓰기 위한 데이터 버스 회로와, 데이터의 곱셈 연산 후 이를 누적하는 2개의 곱셈 누적기와 1개의 산술 논리 연산 장치와, ABS/MIN/MAX 제어 회로 및 데이터 처리 유닛으로 이루어진 연산 회로와, 데이터 메모리의 값을 저장하는 일반 레지스터와, 스몰 쉬프터를 구비하는 데이터 처리 장치
    를 포함하는 것을 특징으로 하는 프로그래머블 프로세서의 MPEG-2 또는 MPEG-4 AAC 디코딩 연산 회로.
  2. 제 1항에 있어서,
    상기 허프만 복호기는,
    시작 신호에 따라 테이블 선택 정보가 들어 있는 일반 레지스터;
    허프만 코드 워드 데이터가 들어있는 누적기 레지스터;
    허프만 복호를 수행하는 허프만 전용 복호기;
    허프만 인덱스 테이터를 출력하는 일반 레지스터;
    사용된 코드 워드의 길이 정보를 출력하는 일반 레지스터; 및
    코드 길이 정보를 쉬프트 양으로 소스 누적기를 쉬프트하여 업데이트하는 배럴 쉬프터;를 포함하는 것을 특징으로 하는 프로그래머블 프로세서의 MPEG-2 또는 MPEG-4 AAC 디코딩 연산 회로.
  3. 제 1항에 있어서,
    데이터 처리 장치 내의 비트 추출 연산을 수행하기 위한 2-입력 AND 게이트 1개;
    1의 위치를 찾아 배럴 쉬프터로 보내는 연결선; 및
    누적기에 저장시 정렬 위치를 지정하는 멀티플렉서;를 더 포함하는 것을 특징으로 하는 프로그래머블 프로세서의 MPEG-2 또는 MPEG-4 AAC 디코딩 연산 회로.
  4. 삭제
  5. 제 2항에 있어서,
    상기 허프만 전용 복호기에서 허프만 코드 워드와 인덱스 및 허프만 코드 길이 데이터를 저장하고 있는 허프만 코드북 12개;
    허프만 코드북에서 테이블 선택 정보를 참조하여 테이블에 따른 허프만 인덱 스 값을 출력하는 멀티플렉서 1개; 및
    허프만 코드북에서 테이블 선택 정보를 참조하여 테이블에 따른 허프만 코드 길이값을 출력하는 멀티플렉서 1개를 더 포함하는 것을 특징으로 하는 프로그래머블 프로세서의 MPEG-2 또는 MPEG-4 AAC 디코딩 연산 회로.
  6. 프로그래머블 프로세서에서 효율적인 역양자화 과정을 수행하기 위한 프로그래머블 프로세서의 MPEG-2 또는 MPEG-4 AAC 디코딩 연산 방법으로서,
    양자화된 스펙트럼 데이터인 X가, 1 ~ 256 샘플구간, 257 ~ 2047 샘플구간, 2048 ~ 8191 샘플구간 중 어느 구간에 속하는지 판단하는 단계;
    상기 X가 2048 ~ 8191 샘플 구간에 속하는 경우에,
    Figure 112007059281703-pat00029
    이 32 이하인지를 판단하는 단계;
    상기 X가 1 ~ 256 샘플구간에 속하는 경우에, 256개의 룩업테이블(LUT)을 사용하여
    Figure 112007059281703-pat00030
    를 결정하는 단계;
    상기 X가 257 ~ 2047 샘플구간에 속하는 경우에,
    Figure 112007059281703-pat00031
    를 계산하여
    Figure 112007059281703-pat00032
    를 결정하는 단계;
    상기 X가 2048 ~ 8191 샘플구간에 속하고
    Figure 112007059281703-pat00033
    이 32 이하인 경우에,
    Figure 112007059281703-pat00034
    를 계산하여
    Figure 112007059281703-pat00035
    를 결정하는 단계; 및
    상기 X가 2048 ~ 8191 샘플구간에 속하고
    Figure 112007059281703-pat00036
    이 32 보다 큰 경우에,
    Figure 112007059281703-pat00037
    를 계산하여
    Figure 112007059281703-pat00038
    를 결정하는 단계
    를 포함하는 것을 특징으로 하는 프로그래머블 프로세서의 MPEG-2 또는 MPEG-4 AAC 디코딩 연산 방법.
  7. 제 6항에 있어서,
    상기 MPEG-2 또는 MPEG-4 AAC 디코딩 연산의 역양자화 과정에서 EXTB(Extract Bit) 연산 명령어를 사용하는 단계;
    가우스 함수를 비트 추출 명령어로 연산하는 단계; 및
    rem 함수를 비트 추출 명령어로 연산하는 단계
    를 더 포함하는 것을 특징으로 하는 프로그래머블 프로세서의 MPEG-2 또는 MPEG-4 AAC 디코딩 연산 방법.
  8. 제 6항에 있어서,
    상기 MPEG-2 또는 MPEG-4 AAC 디코딩 연산이 HFMD 연산 명령어를 사용하여 수행되는 단계를 더 포함하는 것을 특징으로 하는 프로그래머블 프로세서의 MPEG-2 또는 MPEG-4 AAC 디코딩 연산 방법.
KR1020050070371A 2005-08-01 2005-08-01 프로그래머블 프로세서에서 mpeg-2 또는 mpeg-4aac 오디오 복호 알고리즘을 처리하기 위한 연산 회로및 연산 방법 KR100771401B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020050070371A KR100771401B1 (ko) 2005-08-01 2005-08-01 프로그래머블 프로세서에서 mpeg-2 또는 mpeg-4aac 오디오 복호 알고리즘을 처리하기 위한 연산 회로및 연산 방법
US11/342,764 US7333036B2 (en) 2005-08-01 2006-01-30 Computing circuits and method for running an MPEG-2 AAC or MPEG-4 AAC audio decoding algorithm on programmable processors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050070371A KR100771401B1 (ko) 2005-08-01 2005-08-01 프로그래머블 프로세서에서 mpeg-2 또는 mpeg-4aac 오디오 복호 알고리즘을 처리하기 위한 연산 회로및 연산 방법

Publications (2)

Publication Number Publication Date
KR20070015790A KR20070015790A (ko) 2007-02-06
KR100771401B1 true KR100771401B1 (ko) 2007-10-30

Family

ID=37693733

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050070371A KR100771401B1 (ko) 2005-08-01 2005-08-01 프로그래머블 프로세서에서 mpeg-2 또는 mpeg-4aac 오디오 복호 알고리즘을 처리하기 위한 연산 회로및 연산 방법

Country Status (2)

Country Link
US (1) US7333036B2 (ko)
KR (1) KR100771401B1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006063618A1 (en) * 2004-12-15 2006-06-22 Telefonaktiebolaget Lm Ericsson (Publ) Method and device for encoding mode changing of encoded data streams
US8515052B2 (en) 2007-12-17 2013-08-20 Wai Wu Parallel signal processing system and method
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
TWI557723B (zh) 2010-02-18 2016-11-11 杜比實驗室特許公司 解碼方法及系統
CN102136270B (zh) * 2010-12-27 2012-08-08 华为软件技术有限公司 一种音频解码方法及装置
RU2464649C1 (ru) * 2011-06-01 2012-10-20 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ обработки звукового сигнала
IN2014CN03371A (ko) 2011-12-21 2015-07-03 Intel Corporationu
US9413388B1 (en) * 2015-01-30 2016-08-09 Dell Products L.P. Modified huffman decoding
CN111899745B (zh) * 2020-06-29 2024-03-22 厦门亿联网络技术股份有限公司 一种音频编解码兼容性自动测试方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100270798B1 (ko) 1994-07-29 2000-11-01 데니스 피셸 복수의 mpeg 오디오 및 비디오 신호를 디코딩하기 위한 시스템
KR20010058369A (ko) * 1999-12-27 2001-07-05 구자홍 코드길이에 따른 허프만 코드 복호장치 및 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6865668B1 (en) * 1998-09-15 2005-03-08 Trustees Of Columbia University In The City Of New York Variable-length, high-speed asynchronous decoder circuit
US6445828B1 (en) * 1998-09-28 2002-09-03 Thomson Licensing S.A. Transform domain resizing of an image compressed with field encoded blocks
US6452969B1 (en) * 1998-09-28 2002-09-17 Thomson Licensing S.A. Transform domain inverse motion compensation having fractional pel accuracy
US6404814B1 (en) * 2000-04-28 2002-06-11 Hewlett-Packard Company Transcoding method and transcoder for transcoding a predictively-coded object-based picture signal to a predictively-coded block-based picture signal
US7525600B2 (en) * 2005-01-14 2009-04-28 Broadcom Corporation Single integrated high definition television (HDTV) chip for analog and digital reception

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100270798B1 (ko) 1994-07-29 2000-11-01 데니스 피셸 복수의 mpeg 오디오 및 비디오 신호를 디코딩하기 위한 시스템
KR20010058369A (ko) * 1999-12-27 2001-07-05 구자홍 코드길이에 따른 허프만 코드 복호장치 및 방법

Also Published As

Publication number Publication date
US7333036B2 (en) 2008-02-19
KR20070015790A (ko) 2007-02-06
US20070024472A1 (en) 2007-02-01

Similar Documents

Publication Publication Date Title
KR100771401B1 (ko) 프로그래머블 프로세서에서 mpeg-2 또는 mpeg-4aac 오디오 복호 알고리즘을 처리하기 위한 연산 회로및 연산 방법
USRE49549E1 (en) Audio or video encoder, audio or video decoder and related methods for processing multi-channel audio or video signals using a variable prediction direction
US10404984B2 (en) Method and apparatus for pyramid vector quantization indexing and de-indexing of audio/video sample vectors
CN100589657C (zh) 编码音频的节约式响度测量方法及装置
US8655670B2 (en) Audio encoder, audio decoder and related methods for processing multi-channel audio signals using complex prediction
MX2012004564A (es) Codificador de audio, decodificador de audio, metodo para codificar informacion de audio y programa de computacion que utiliza una reduccion de tamaño de intervalo interactiva.
US8200730B2 (en) Computing circuits and method for running an MPEG-2 AAC or MPEG-4 AAC audio decoding algorithm on programmable processors
US7426462B2 (en) Fast codebook selection method in audio encoding
JPH0722957A (ja) 副バンドコーディングシステムの信号処理装置
JP2003503740A (ja) 音声信号復号化方法と装置
Lee et al. High quality MPEG-audio layer III algorithm for a 16-bit DSP
Fältman et al. A hardware implementation of an MP3 decoder
Servetti et al. Fast implementation of the MPEG-4 AAC main and low complexity decoder
JPH10340099A (ja) オーディオデコーダ装置及び信号処理装置
Yen et al. An efficient implementation of a low-complexity MP3 algorithm with a stream cipher
Luckose Poondikulam et al. Efficient Implementation of Transform Based Audio Coders using SIMD Paradigm and Multifunction Computations
Kwon et al. Real time implementation of MPEG-1 Layer III audio decoder with TMS320C6201 DSP
Benavides et al. FPGAs Implementation of fast algorithms oriented to mp3 audio decompression
Benavides et al. FPGAs Implementation of fast algorithms oriented to mp3 audio decompression Implementación en FPGAs de algoritmos rápidos para descompresión de audio en formato MP3

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Publication of correction
FPAY Annual fee payment

Payment date: 20121023

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130716

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20141015

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150915

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee