KR20080071845A - 엠펙 오디오 디코더의 합성필터 및 그 디코딩 방법 - Google Patents

엠펙 오디오 디코더의 합성필터 및 그 디코딩 방법 Download PDF

Info

Publication number
KR20080071845A
KR20080071845A KR1020070010248A KR20070010248A KR20080071845A KR 20080071845 A KR20080071845 A KR 20080071845A KR 1020070010248 A KR1020070010248 A KR 1020070010248A KR 20070010248 A KR20070010248 A KR 20070010248A KR 20080071845 A KR20080071845 A KR 20080071845A
Authority
KR
South Korea
Prior art keywords
window
coefficient
matrix
buffer
address
Prior art date
Application number
KR1020070010248A
Other languages
English (en)
Other versions
KR100853690B1 (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 KR1020070010248A priority Critical patent/KR100853690B1/ko
Publication of KR20080071845A publication Critical patent/KR20080071845A/ko
Application granted granted Critical
Publication of KR100853690B1 publication Critical patent/KR100853690B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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/26Pre-filtering or post-filtering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

연산량 및 연산 시간을 줄이고 신속하게 디코딩을 수행할 수 있는 엠펙 오디오 디코더의 합성필터가 제공된다. 본 발명에 의한 엠펙 오디오 디코더의 합성 필터는 입력된 엠펙 오디오 서브밴드 샘플에 대하여 매트릭스 연산 시 반복되는 덧셈 연산 값을 저장하기 위한 제1 버퍼, 제1 버퍼에 저장된 값을 이용하여 매트릭스 연산을 수행하는 매트릭스 연산부, 매트릭스 연산 결과를 소정의 주소값들에 따라 저장하는 제2 버퍼, 윈도우 연산의 각 사이클에 사용하기 위해 제2 버퍼에 곱해지는 윈도우 연산을 위한 계수의 주소를 생성하는 윈도우 계수 주소 생성부, 윈도우 계수 주소 생성부에 의해 생성된 주소에 따른 계수와 제2 버퍼에 저장된 매트릭스 연산 결과를 출력하여 윈도우 연산을 수행하는 윈도우 연산부, 및 윈도우 연산 결과를 출력하는 출력부를 포함한다. 또한, 엠펙 오디오 디코더의 합성필터의 디코딩 방법도 제공된다.
엠펙, 오디오, 디코더, 서브밴드

Description

엠펙 오디오 디코더의 합성필터 및 그 디코딩 방법{SYNTHESIS SUBBAND FILTER FOR MPEG AUDIO DECODER AND DECODING METHOD THEREOF}
도 1은 일반적인 합성필터의 연산과정을 설명하기 위한 흐름도이다.
도 2는 도 1의 합성필터의 중간 처리 결과값을 저장하는 메모리의 주소 생성 방법의 설명에 제공되는 도면이다.
도 3은 본 발명의 실시예에 따른 엠펙 오디오 디코더의 합성필터를 설명하기 위해 도시한 블록구성도이다.
도 4는 본 발명의 실시예에 따른 엠펙 오디오 디코더의 합성필터에 있어서, 매트릭스 연산 수행 과정을 설명하기 위한 도면이다.
도 5는 종래기술에 따른 엠펙 오디오 디코더의 합성필터의 중간 처리 결과값을 윈도우 계수 값의 연산 방식을 나타내는 도면이다.
도 6 및 도 7은 본 발명의 실시예에 따른 엠펙 오디오 디코더의 합성필터의 중간 처리 결과값과 윈도우 계수 값의 연산 방식을 나타내는 도면이다.
도 8은 본 발명의 실시예에 따른 엠펙 오디오 디코더의 합성필터의 디코딩 방법을 설명하기 위해 도시한 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
310: 입력부
320: 제1 버퍼
330: 매트릭스 연산부
340: 매트릭스 연산 주소 생성부
350: 매트릭스 계수 저장부
360: 제2 버퍼
370: 윈도우 연산부
380: 윈도우 계수 주소 생성부
390: 윈도우 계수 저장부
395: 출력부
본 발명은 엠펙 오디오 디코더의 합성필터 및 그 디코딩 방법에 관한 것으로서, 더욱 상세하게는 수신된 엠펙 오디오 서브밴드(Subband) 샘플을 디코딩하기 위한 합성필터의 연산 과정을 단순화하여 빠르고 효율적으로 디코딩을 수행할 수 있는 엠펙 오디오 디코더의 합성필터 및 그 디코딩 방법에 관한 것이다.
엠펙(MPEG: Moving Picture Experts Group) 오디오 디코더의 합성필터는 주파수 영역으로 변환된 서브밴드 신호를 시간 영역으로 역변환하는 역할을 한다. 합성필터는 엠펙 디코더에서 가장 많은 계산량 및 처리 시간을 차지하므로, 합성필터의 처리 속도는 전체 엠펙 오디오 디코더의 디코딩 속도에 있어서 중요한 역할을 차지한다.
일반적으로, 수신된 엠펙 오디오 신호로부터 헤더가 분리되고 엠펙-1의 경우에는 2개의 채널 별로 각각 동일한 디코딩 과정이 수행되며, 이러한 디코딩 과정 중 하나를 수행하는 합성필터는 각 오디오 채널 별로 동일한 연산을 수행한다.
하나의 엠펙 오디오 계층-2의 프레임은 채널당 1152개의 PCM(Pulse Code Modulation) 오디오 샘플에 해당하며, 각 오디오 프레임은 32-bit 헤더 부분, 비트 할당에 관한 정보를 담고 있는 비트할당부(bit allocation), SCFSI(Scale Factor Selection Information)를 에러로부터 보호하는16-bit CRC(Cyclic Redundancy Checking), 스케일팩터(scale factor)의 전송 패턴을 저장하는 SCFSI, 서브밴드 샘플의 스케일(scale value)을 지정하는 6-bit 스케일팩터, PCM 오디오 샘플을 복원하기 위해 사용되는 서브밴드 샘플, 및 엠펙 오디오 계층-2 프레임의 부가적 데이터 필드를 포함한다.
엠펙 오디오 계층-2에는 32개의 서브밴드가 존재하고, 각 서브밴드는 36개의 서브밴드 샘플로 구성된다. 또한, 36개의 서브밴드 샘플은 3개의 연속적인 서브밴드 샘플 단위로 그룹핑(grouping)되어 그래뉼(granule)을 형성하고, 그래뉼 단위로 인코딩 및 디코딩된다. 32개의 서브밴드 샘플은 한 번에 디코딩되므로, 하나의 그래뉼을 디코딩하기 위해서는 3번의 반복이 필요하고, 각 서브밴드에 대해 각각 12개의 그래뉼이 존재하므로, 결국 전체적으로 12 * 3 = 36번의 디코딩 과정이 반복된다.
도 1은 일반적인 합성필터의 연산과정을 설명하기 위한 흐름도이다.
합성필터는 매트릭스 연산을 수행하기 위한 IMDCT부(Inverse Modified Discrete Cosine Transform), 윈도우 연산을 수행하기 위한 IPQMF부(Inverse Pseudo Quadrature Mirror Filter) 및 중간 결과값을 저장할 수 있는 메모리를 이용하여 디코딩을 수행한다.
이하, 도 1을 참조하여ISO/IEC((International Standard Organization)/(International Electrotechnical Committee)) 11172-3 엠펙-1 오디오 표준에 따른 합성필터의 연산 과정을 설명한다.
우선, 합성필터는 32개의 새로운 오디오 샘플을 입력 받는다(S110). 입력된 샘플을 "Sk, (k = 0, 1, , 31)"로 나타낸다. 이어서, 매트릭스 연산 결과인 "V[i]"를 64 샘플씩 시프트(shift)하고(S120), 매트릭스 연산을 수행한다(S130).
시프트되는 매트릭스 연산 결과인 "V[i]"를 다음의 수학식 1로 나타낸다.
[수학식 1]
V[i] = V[i-64], i = 1023, , 63
여기서, "i"는 인덱스이다.
한편, 매트릭스 연산을 수학식으로 표현하면 다음의 수학식 2와 같다.
[수학식 2]
V[i] =
Figure 112007009677617-PAT00001
여기서, i = 0, 1, , 63이고, "Nik"는 필터 계수로서 다음의 수학식 3과 같다.
[수학식 3]
Nik = cos[(16 + i)(2k + 1)π/64]
여기서, i = 0, 1, , 63이고, k = 0, 1, , 31이다.
매트릭스 연산이 모두 종료되면(S140), 이어서 512개의 벡터 "Ui"를 생성한다(S150). 이를 수학식으로 표현하면 다음의 수학식 4와 같다.
[수학식 4]
U[i
Figure 112007009677617-PAT00002
64 + j] = V[i
Figure 112007009677617-PAT00003
128 + j]
U[i
Figure 112007009677617-PAT00004
64 + 32 + j] = V[i
Figure 112007009677617-PAT00005
128 + 96 + j]
여기서, i = 0, 1, , 7이고, j = 0, 1, , 31이다.
이어서, 생성된 벡터 "Ui"에 윈도우(synthesis window) 계수 "D[i]"를 곱하여 "W[i] = U[i] * D[i]"를 생성한다(S160). 여기서, i = 0, 1, , 511이다.
또한, 생성된 "W[i]"를 이용하여 32개의 샘플 "P[j]"를 계산하고(S170), 계산된 샘플을 출력한다(S180). 이를 수학식으로 표현하면 다음의 수학식 5와 같다.
[수학식 5]
Figure 112007009677617-PAT00006
여기서, j = 0, 1, , 31이다.
이와 같이, 상기 합성필터의 연산 과정은 IMDCT부에 의한 시프트 연산과 매트릭스 연산, 그리고 IPQMF부에 의한 32개의 샘플을 복원하기 위한 주소 연산과 윈도우 연산에서 많은 연산량과 처리 시간을 차지한다.
따라서, 종래의 합성필터를 이용한 디코딩에 있어서는 시프트 연산이 필요하며, 복잡한 연산 과정에 의해 결국 메모리 요구량을 줄인 효과가 반감되고 디코딩 과정이 지연되는 문제점이 있다.
이에 IPQMF 연산을 위해 IMDCT연산 시 미리 저장될 메모리의 주소를 생성하여, 연산된 값을 저장함으로써 메모리의 이동 등의 요소를 없애줄 필요가 있다.
한편, 수학식 3의 필터 계수 "Nik"는 대칭성을 가지며, 따라서 V[i] 또한 대칭성을 가진다. 이는 다음의 수학식 6과 같이 나타낼 수 있다.
[수학식 6]
Figure 112007009677617-PAT00007
Figure 112007009677617-PAT00008
Figure 112007009677617-PAT00009
따라서, 종래기술에 따르면 필터계수의 대칭성을 이용하여 IMDCT부에서 2048개의 승산 및 누적 연산(Muliply-and-accumulate:MAC)을 512개로 줄여 연산량과 메모리 요구량을 감소시킨다. 또한, V[i]의 대칭성을 이용하여 V[i] 중에서 i=0에서 511까지의 512개 만을 사용하여 메모리 요구량을 감소시킨다. 또한, i=0에서 511까지의 512개의 V[i]를 저장하는 메모리 구역은 블록으로 나뉜다.
도 2는 도 1의 합성필터의 중간 처리 결과값을 저장하는 메모리의 주소 생성 방법의 설명에 제공되는 도면이다.
도 2를 참조하면, IPQMF부의 하나의 연산 사이클에 사용되는 16개의 블록 주 소를 하나의 행으로 나타내며, 총 16개의 IPQMF 연산 사이클에 대한 16개의 열을 나타낸다. IPQMF 사이클이란 IPQMF부의 연산에 있어서 한 번에 처리되는 신호 처리 단위이다. 도2에서 하나의 IPQMF 사이클에 사용되는 16개의 블록 주소가 나타내는 값은 512개의 V[i]를 저장하는 메모리의 offset 주소값을 나타낸다. 한 개의 블록 주소는 32개의 V[i]를 저장하는 메모리를 가리키고, 오프셋(offset) 주소값은 32개의 V[i]를 저장하는 메모리의 첫번째 V[i]의 주소 값을 가리킨다.
본 발명은 상기와 같은 문제점을 해결하기 위해 안출된 것으로서, 연산량 및 연산 시간을 줄이고 신속하게 디코딩을 수행할 수 있는 엠펙 오디오 디코더의 합성 필터 및 그 디코딩 방법을 제공하는 것을 목적으로 한다.
본 발명의 다른 목적은 링 형태의 주소 인덱스 연산을 지원하지 않는 프로세서에 있어서, 생성된 주소가 유효한 주소인지를 매 연산 시마다 체크하지 않도록 하여 연산량 및 연산 시간을 더욱 감소시킬 수 있는 엠펙 오디오 디코더의 합성필터 및 그 디코딩 방법을 제공하는 것이다.
상기의 목적을 달성하고 종래기술의 문제점을 해결하기 위하여, 본 발명의 실시예에 따른 엠펙 오디오 디코더의 합성필터는, 입력된 엠펙 오디오 서브밴드 샘플에 대하여 매트릭스 연산 시 반복되는 덧셈 연산 값을 저장하기 위한 제1 버퍼; 상기 제1 버퍼에 저장된 값을 이용하여 상기 매트릭스 연산을 수행하는 매트릭스 연산부; 상기 매트릭스 연산 결과를 소정의 주소값들에 따라 저장하는 제2 버퍼; 윈도우 연산의 각 사이클에 사용하기 위해, 상기 제2 버퍼에 곱해지는 상기 윈도우 연산을 위한 계수의 주소를 생성하는 윈도우 계수 주소 생성부; 상기 윈도우 계수 주소 생성부에 의해 생성된 상기 주소에 따른 상기 계수와 상기 제2 버퍼에 저장된 상기 매트릭스 연산 결과를 출력하여 상기 윈도우 연산을 수행하는 윈도우 연산부; 및 상기 윈도우 연산 결과를 출력하는 출력부를 포함한다.
상기 제1 버퍼에 저장된 상기 반복되는 덧셈 연산 값은,
M1k = (Sk + S31-k), k = 0, 1, 2, , 15
M2k = (M1k + M115-k), k = 0, 1, 2, , 7
M3k = (M2k + M27-k), k = 0, 1, 2, 3
M4k = (M3k + M33-k), k = 0, 1
인 것이 바람직하다.
상기 제1 버퍼는 M2k, M3k, M4k 를 M1k 로 대체하거나 또는 M1k, M2k, M3k, M4k 를 Sk 로 대체하여 앞서 계산된 메모리를 재사용할 수 있다.
본 발명의 실시예에 따른 엠펙 오디오 디코더의 합성필터는, 상기 매트릭스 연산을 위한 계수를 저장하는 매트릭스 계수 저장부를 더 포함하고, 상기 매트릭스 연산부는 상기 매트릭스 계수 저장부로부터 상기 매트릭스 연산을 위한 계수를 제공받아 매트릭스 연산을 수행할 수 있다.
본 발명의 실시예에 따른 엠펙 오디오 디코더의 합성필터는, 상기 윈도우 연산을 위한 계수를 저장하는 윈도우 계수 저장부를 더 포함하고, 상기 윈도우 연산부는 상기 윈도우 계수 저장부로부터 상기 윈도우 연산을 위한 계수를 제공받아 윈 도우 연산을 수행할 수 있다.
상기 윈도우 계수 저장부는 상기 윈도우 연산 시 연산량을 줄이기 위해 계수 값을 연이어 반복하여 저장할 수 있다.
상기 윈도우 계수 주소 생성부는 IPQMF의 순환 특성을 이용하여 상기 IPQMF의 각 사이클에 따라 상기 윈도우 연산 시 곱해지는 상기 윈도우 연산을 위한 계수의 주소 값을 생성할 수 있다.
본 발명의 실시예에 따른 엠펙 오디오 디코더의 합성필터의 디코딩 방법은, 입력된 엠펙 오디오 서브밴드 샘플에 대하여 매트릭스 연산 시 반복되는 덧셈 연산 값을 저장하는 단계; 상기 반복되는 덧셈 연산 값을 이용하여 상기 매트릭스 연산을 수행하는 단계; 상기 매트릭스 연산 결과를 소정의 주소값들에 따라 저장하는 단계 윈도우 연산의 각 사이클에 사용하기 위해 상기 매트릭스 연산 결과를 저장하는 버퍼에 대한 주소를 각각 생성하는 단계; 상기 생성된 주소에 따라 생성된 윈도우 계수 값과 상기 버퍼에 저장된 상기 매트릭스 연산 결과를 출력하여 상기 윈도우 연산을 수행하는 단계; 및 상기 윈도우 연산 결과를 출력하는 단계를 포함한다.
상기 반복되는 덧셈 연산 값은,
M1k = (Sk + S31-k), k = 0, 1, 2, , 15
M2k = (M1k + M115-k), k = 0, 1, 2, , 7
M3k = (M2k + M27-k), k = 0, 1, 2, 3
M4k = (M3k + M33-k), k = 0, 1
인 것이 바람직하다.
반복되는 덧셈 연산 값을 저장하는 단계는, 상기 M2k, M3k, M4k 를 상기 M1k 로 대체하여 앞서 계산된 메모리를 재사용하는 단계 또는 상기 M1k, M2k, M3k, M4k 를 상기 Sk 로 대체하여 앞서 계산된 메모리를 재사용하는 단계를 포함할 수 있다.
본 발명의 실시예에 따른 엠펙 오디오 디코더의 합성필터의 디코딩 방법은, 상기 매트릭스 연산을 위한 계수를 저장하는 단계를 더 포함하고, 매트릭스 연산을 수행하는 상기 단계는, 상기 매트릭스 연산을 위한 계수를 제공받아 상기 매트릭스 연산을 수행하는 단계를 포함할 수 있다.
본 발명의 실시예에 따른 엠펙 오디오 디코더의 합성필터의 디코딩 방법은, 상기 윈도우 연산을 위한 계수를 저장하는 단계를 더 포함하고, 윈도우 연산을 수행하는 상기 단계는, 상기 윈도우 연산을 위한 계수를 제공받아 상기 윈도우 연산을 수행하는 단계를 포함할 수 있다.
윈도우 연산을 위한 계수를 저장하는 상기 단계는, 상기 윈도우 연산 시 연산량을 줄이기 위해 상기 윈도우 연산을 위한 계수의 값을 연이어 반복하여 저장하는 단계를 포함할 수 있다.
버퍼에 대한 주소를 생성하는 상기 단계는, IPQMF 순환 특성을 이용하여 상기 IPQMF의 각 사이클에 따라 상기 윈도우 연산 시 곱해지는 상기 윈도우 연산을 위한 계수의 주소 값을 생성하는 단계를 포함할 수 있다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 첨부 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다.
도 3은 본 발명의 실시예에 따른 엠펙 오디오 디코더의 합성필터를 설명하기 위해 도시한 블록구성도이다. 그리고, 도 4는 본 발명의 실시예에 따른 엠펙 오디오 디코더의 합성필터에 있어서, 매트릭스 연산 수행 과정을 설명하기 위한 도면이다.
도 3을 참조하면, 본 발명의 실시예에 따른 엠펙 오디오 디코더의 합성필터는 입력부(310), 제1 버퍼(320), 매트릭스 연산부(330), 매트릭스 연산 주소 생성부(340), 매트릭스 계수 저장부(350), 제2 버퍼(360), 윈도우 연산부(370), 윈도우 계수 주소 생성부(380), 윈도우 계수 저장부(390) 및 출력부(395)를 포함한다.
입력부(310)는 한 번에 32개의 서브밴드 샘플(Sk, k=0, , 31)을 입력 받는다. 여기서, 상기 서브밴드 각각은 36개의 서브밴드 샘플로 구성된다. 또한, 36개의 서브밴드 샘플은 3개의 연속적인 서브밴드 샘플 단위로 그룹핑(grouping)되어 그래뉼(granule)을 형성하고, 그래뉼 단위로 디코딩(decoding)된다.
제1 버퍼(320)는 입력부(310)를 통해 입력된 엠펙 오디오 서브밴드 샘플에 대하여 매트릭스 연산 시 반복되는 덧셈 연산 값을 저장하는 역할을 한다. 여기서, 상기 반복되는 덧셈 연산 값은 다음과 같다.
M1k = (Sk + S31-k), k = 0, 1, 2, , 15
M2k = (M1k + M115-k), k = 0, 1, 2, , 7
M3k = (M2k + M27-k), k = 0, 1, 2, 3
M4k = (M3k + M33-k), k = 0, 1
이때, 제1 버퍼(320)는 M2k, M3k, M4k 는 M1k로 대체하거나 또는 M1k, M2k, M3k, M4k 는 Sk로 대체하여 앞서 계산된 메모리를 재사용할 수 있다. 이렇게 제1 버퍼(320)는 앞서 계산된 메모리를 재사용함으로써 본 발명의 실시예에 따른 합성필터의 메모리 용량을 감소시킬 수 있다.
매트릭스 연산부(330)는 제1 버퍼(320)에 저장된 값을 이용하여 매트릭스 연산을 수행하는 역할을 한다. 즉, 매트릭스 연산부(330)는 상기 반복되는 연산 값과 매트릭스 계수 저장부(350)에 저장된 매트릭스 연산을 위한 계수 값(필터계수)을 승산 및 누적 연산하여 매트릭스 연산을 수행한다. 이러한 매트릭스 연산 수행 과정을 보다 구체적으로 설명하면 다음과 같다.
수학식 3의 필터계수"Nik"는 대칭성을 가지며, 이에 따라 V[i] 또한 대칭성을 가진다. 따라서, 매트릭스 연산을 수학식으로 표현한 수학식 2는 다음의 수학식 6과 같이 나타낼 수 있다.
[수학식 6]
Figure 112007009677617-PAT00010
그런데, 상기 수학식 6을 살펴보면 덧셈 연산이 반복되어 수행되는 것을 알 수 있다. 따라서, 이렇게 반복되는 덧셈 연산 부분을 없애 수학식 7과 같이 만들 수 있다.
[수학식 7]
Figure 112007009677617-PAT00011
Figure 112007009677617-PAT00012
Figure 112007009677617-PAT00013
Figure 112007009677617-PAT00014
Figure 112007009677617-PAT00015
Figure 112007009677617-PAT00016
Figure 112007009677617-PAT00017
Figure 112007009677617-PAT00018
Figure 112007009677617-PAT00019
Figure 112007009677617-PAT00020
Figure 112007009677617-PAT00021
Figure 112007009677617-PAT00022
Figure 112007009677617-PAT00023
이와 같이, 상기 수학식 2는 상기 수학식 7과 같이 나타낼 수 있다. 따라서, 종래에는 매트릭스 연산 시 수학식 2를 이용해 2048(64*32)번의 승산 및 누적 연산을 하였지만, 본 발명의 실시예에서는 매트릭스 연산 시 수학식 7을 이용해 342(16*16 + 8*8 + 4*4 + 2*2 + 1 + 1)번의 승산 및 누적 연산을 수행한다. 따라서, 연산량 및 메모리 요구량을 현저히 감소시킬 수 있다.
한편, 상기 수학식 7에서
Figure 112007009677617-PAT00024
Figure 112007009677617-PAT00025
Figure 112007009677617-PAT00026
Figure 112007009677617-PAT00027
은 반복되는 덧셈 연산 값으로서, 도 4에 도시한 바와 같이 제1 버퍼(320)에 저장되어 매트릭스 연산 시 매트릭스 연산부(330)에 제공된다.
따라서, 매트릭스 연산부(330)는 앞서 언급한 바와 같이 제1 버퍼(320)에 저장된 상기 반복되는 덧셈 연산 값과 매트릭스 계수 저장부(350)에 저장된 필터계수를 승산 및 누적 연산하여 매트릭스 연산을 수행한다.
매트릭스 연산 주소 생성부(340)는 매트릭스 연산부(330)의 연산 결과를 저장하기 위한 주소값을 생성한다. 따라서, 매트릭스 연산부(330)는 제1 버퍼(320)에 저장된 값과 매트릭스 계수 저장부(350)에 저장된 필터계수를 이용하여 매트릭스 연산을 수행하고, 매트릭스 연산에 의해 출력되는 "V[i]"값을 매트릭스 연산 주소 생성부(340)에서 제공되는 주소에 따라 제2 버퍼(360)에 저장한다.
도 5는 종래기술에 따른 엠펙 오디오 디코더의 합성필터의 중간 처리 결과값과 윈도우 계수값의 연산 방식을 나타내는 도면이고, 도 6 및 도 7은 본 발명의 실시예에 따른 엠펙 오디오 디코더의 합성필터의 중간 처리 결과값과 윈도우 계수 값의 연산 방식을 나타내는 도면이다.
도 5를 참조하면, 매트릭스 연산 주소 생성부(340)는 종래에는 시프 트(shift) 연산을 피하기 위해 매트릭스 연산 결과를 저장하는 주소값을 링 형태로 생성하였다. 이는 수학식 8과 같이 나타낼 수 있다.
[수학식 8]
imdct.addr = imdct.addr - 64
if(imdct.addr < 0)
imdct.addr = imdct.addr + 1024
이와 같이 하면 수학식 1에 나타나 있는 데이터의 이동(즉, 시프트 연산)이 필요 없어 연산량을 줄일 수 있다. 그러나, 수학식 8에는 여전히 imdct.addr의 주소 값이 유효한 주소인지를 비교하여 연산해야 하는 것이 남아 있다.
따라서, 본 발명의 실시예에 있어서, 매트릭스 연산 주소 생성부(340)에서 생성되는 주소 값의 일정한 패턴을 이용하여 윈도우 계수 값을 최초 주소값에서 최후 주소값까지 연이어 위치하도록 생성할 수 있고, 도 6 및 도 7에 도시한 바와 같이 매트릭스 연산 결과와 윈도우 계수를 곱하는 연산을 수행하게 함으로써 수학식 8에서와 같은 비교 연산을 제거할 수 있다.
즉, 도 5에 도시한 바와 같이,매트릭스 연산 결과를 저장하는 주소값들은 그 시작 위치가 짝수 사이클(even cycle)과 홀수 사이클(odd cycle)에서 반복하여 나타남을 볼 수 있다. 이를 도 6 및 도 7과 같이 짝수 사이클과 홀수 사이클로 각각 분리하고, 윈도우 계수 값의 주소값을 최초 주소값에서 최후 주소값까지 연이어 위치하도록 변형한다. 그러면, 윈도우 계수가 저장되어 있는 길이가 종래에 비해 448만큼 증가하게 되어 계수값을 저장하는 메모리는 약간 증가할 수 있다. 하지만, 주 소값의 유효 여부를 비교하는 연산을 제거할 수 있어 연산량을 우선시하는 시스템에 있어서는 매우 유용할 수 있다.
출력부(395)는 윈도우 연산부(370)에서 수행된 연산 결과를 출력한다. 이를 위해 출력부(395)는 버퍼(미도시)를 포함하여 연산 결과값을 임시 저장한 후 출력할 수 있다. 또한, 출력부(395)는 연산 결과를 변환하여 이를 사용할 장치의 포맷에 맞도록 변환된 신호를 출력할 수 있다.
도 8은 본 발명의 실시예에 따른 엠펙 오디오 디코더의 합성필터의 디코딩 방법을 설명하기 위해 도시한 흐름도이다.
도 3 및 도 8을 참조하면, 본 발명의 실시예에 따른 엠펙 오디오 디코더의 합성필터에는 입력부(310)를 통해 한 번에 32개의 서브밴드 샘플(Sk, k=0, , 31)이 입력된다(S810). 이어서, 입력된 엠펙 오디오 서브밴드 샘플에 대하여 매트릭스 연산 시 반복되는 덧셈 연산 값을 제1 버퍼(320)에 저장한다(S820). 여기서, 상기 반복되는 덧셈 연산 값은 수학식 7에 나타나 있는 M1k, M2k, M3k, 및 M4k을 가리킨다. 이때, M2k, M3k, M4k 는 M1k 로 대체하여 앞서 계산된 메모리를 재사용하거나 또는 M1k, M2k, M3k, M4k 는 Sk 로 대체하여 앞서 계산된 메모리를 재사용할 수 있다. 이로써, 상기 합성필터의 메모리 용량을 감소시킬 수 있다.
이후, 매트릭스 연산부(330)는 상기 반복되는 덧셈 연산 값 및 매트릭스 계수(Nik)를 이용하여 매트릭스 연산을 수행한다(S830). 이때, 매트릭스 연산은 상기 반복되는 덧셈 연산 값 및 매트릭스 계수를 승산 및 누적 연산하여 수행될 수 있다.
이후, 매트릭스 연산 주소 생성부(340)는 매트릭스 연산부(330)에서 출력된 매트릭스 연산 결과를 제2 버퍼(360)의 소정의 주소값(메모리 시작 주소값)에 저장한다. 이때, 상기 소정의 주소값들은 도 6 및 도 7에 도시한 바와 같이 최초 주소값에서 최후 주소값까지 연이어 위치하도록 생성되는 것이 바람직하다.
이후, 서브밴드 샘플 32개에 대하여 매트릭스 연산을 모두 종료한 경우(S840), 윈도우 연산부(370)는 윈도우 연산을 수행한다(S850). 이때, 윈도우 연산부(370)는 윈도우 계수 주소 생성부(380)에서 나온 주소 값에 해당하는 윈도우 계수 및 매트릭스 연산 값이 들어 있는 제2 버퍼(360)를 이용하여 윈도우 연산을 수행한다. 이후, 윈도우 연산이 수행된 32개의 서브밴드 샘플을 출력부(395)를 통해 출력한다(S860).
반면, 서브밴드 샘플 32개에 대하여 매트릭스 연산을 종료하지 못했을 경우(S840), 매트릭스 연산을 종료할 때까지 연산을 반복적으로 수행한다(S830).
이와 같이, 본 발명의 실시예에 따른 엠펙 오디오 디코더의 합성필터 및 그 디코딩 방법은 윈도우 함수를 변형하여 계수의 값을 반복하게끔 만들고 입력되는 매트릭스 연산 결과 값(V[i])의 옵셋(offset)에 따라 곱해지는 계수의 시작점(start point)을 변경하여 연산 시마다 체크하는 주소값을 루틴의 시작에서 한 번만 할 수 있게 함으로써 연산량을 현저히 감소시킬 수 있다.
본 발명의 실시예들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 로컬 데이터 구조 등을 지정하는 신호를 전송하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
본 발명의 실시예에 따른 엠펙 오디오 디코더의 합성필터 및 그 디코딩 방법에 의하면, 윈도우 함수를 변형하여 계수의 값을 반복하게끔 만들고 입력되는 매트릭스 연산 결과 값(V[i])의 옵셋(offset)에 따라 곱해지는 계수의 시작점(start point)을 변경하여 연산 시마다 체크하는 주소값을 루틴의 시작에서 한 번만 할 수 있게 함으로써 연산량 및 연산 시간을 감소시켜 신속하게 디코딩을 수행할 수 있다.
또한, 링 형태의 주소 인덱스 연산을 지원하지 않는 프로세서의 경우, 제2 버퍼의 주소값들을 최초 주소값에서 최후 주소값까지 연이어 위치하도록 생성함으로써, 생성된 주소가 유효한 주소인지를 매 연산 시마다 체크하지 않도록 하여 연산량을 더욱 감소시킬 수 있는 이점이 있다.

Claims (15)

  1. 입력된 엠펙 오디오 서브밴드 샘플에 대하여 매트릭스 연산 시 반복되는 덧셈 연산 값을 저장하기 위한 제1 버퍼;
    상기 제1 버퍼에 저장된 값을 이용하여 상기 매트릭스 연산을 수행하는 매트릭스 연산부;
    상기 매트릭스 연산 결과를 소정의 주소값들에 따라 저장하는 제2 버퍼;
    윈도우 연산의 각 사이클에 사용하기 위해,상기 제2 버퍼에 곱해지는 상기 윈도우 연산을 위한 계수의 주소를 생성하는 윈도우 계수 주소 생성부;
    상기 윈도우 계수 주소 생성부에 의해 생성된 주소에 따른 상기 계수와 상기 제 2 버퍼에 저장된 상기 매트릭스 연산 결과를 출력하여 상기 윈도우 연산을 수행하는 윈도우 연산부; 및
    상기 윈도우 연산 결과를 출력하는 출력부
    를 포함하는 엠펙 오디오 디코더의 합성필터.
  2. 제1항에 있어서,
    상기 제1 버퍼에 저장된 상기 반복되는 덧셈 연산 값은,
    M1k = (Sk + S31-k),k = 0, 1, 2, , 15
    M2k = (M1k + M115-k), k = 0, 1, 2, , 7
    M3k = (M2k + M27-k), k = 0, 1, 2, 3
    M4k = (M3k + M33-k), k = 0, 1
    인 것을 특징으로 하는 엠펙 오디오 디코더의 합성필터.
  3. 제2항에 있어서,
    상기 제1 버퍼는,
    M2k, M3k, M4k 를 M1k로 대체하거나, 또는 M1k, M2k, M3k, M4k를 Sk로 대체하여 앞서 계산된 메모리를 재사용하는 것을 특징으로 하는 엠펙 오디오 디코더의 합성필터.
  4. 제1항에 있어서,
    상기 매트릭스 연산을 위한 계수를 저장하는 매트릭스 계수 저장부를 더 포함하고,
    상기 매트릭스 연산부는,
    상기 매트릭스 계수 저장부로부터 상기 매트릭스 연산을 위한 계수를 제공받아 상기 매트릭스 연산을 수행하는 것을 특징으로 하는 엠펙 오디오 디코더의 합성필터.
  5. 제1항에 있어서,
    상기 윈도우 연산을 위한 계수를 저장하는 윈도우 계수 저장부를 더 포함하고,
    상기 윈도우 연산부는,
    상기 윈도우 계수 저장부로부터 상기 윈도우 연산을 위한 계수를 제공받아 상기 윈도우 연산을 수행하는 것을 특징으로 하는 엠펙 오디오 디코더의 합성필터.
  6. 제 5항에 있어서,
    상기 윈도우 계수 저장부는,
    상기 윈도우 연산 시 연산량을 줄이기 위해 상기 윈도우 연산을 위한 계수의 값을 연이어 반복하여 저장하는 것을 특징으로 하는 엠펙 오디오 디코더의 합성필터.
  7. 제1항에 있어서,
    상기 윈도우 계수 주소 생성부는,
    IPQMF의 순환 특성을 이용하여 상기 IPQMF의 각 사이클에 따라, 상기 윈도우 연산 시 곱해지는 상기 윈도우 연산을 위한 계수의 주소 값을 생성하는 것을 특징으로 하는 엠펙 오디오 디코더의 합성필터.
  8. 입력된 엠펙 오디오 서브밴드 샘플에 대하여 매트릭스 연산 시 반복되는 덧셈 연산 값을 저장하는 단계;
    상기 반복되는 덧셈 연산 값을 이용하여 상기 매트릭스 연산을 수행하는 단계;
    상기 매트릭스 연산 결과를 소정의 주소값들에 따라 저장하는 단계;
    윈도우 연산의 각 사이클에 사용하기 위해 상기 매트릭스 연산 결과를 저장하는 버퍼에 곱해지는 윈도우 계수의 주소를 생성하는 단계;
    상기 생성된 주소에 따른 상기 윈도우 계수와 상기 버퍼에 저장된 매트릭스 연산 결과를 출력하여 상기 윈도우 연산을 수행하는 단계; 및
    상기 윈도우 연산 결과를 출력하는 단계
    를 포함하는 엠펙 오디오 디코더의 합성필터의 디코딩 방법.
  9. 제8항에 있어서,
    상기 반복되는 덧셈 연산 값은,
    M1k = (Sk + S31-k), k = 0, 1, 2, , 15
    M2k = (M1k + M115-k), k = 0, 1, 2, , 7
    M3k = (M2k + M27-k), k = 0, 1, 2, 3
    M4k = (M3k + M33-k), k = 0, 1
    인 것을 특징으로 하는 엠펙 오디오 디코더의 합성필터의 디코딩 방법.
  10. 제9항에 있어서,
    반복되는 덧셈 연산 값을 저장하는 상기 단계는,
    M2k, M3k, M4k 를 M1k로 대체하여 앞서 계산된 메모리를 재사용하는 단계; 또는
    M1k, M2k, M3k, M4k를 Sk로 대체하여 앞서 계산된 메모리를 재사용하는 단계
    를 포함하는 것을 특징으로 하는 엠펙 오디오 디코더의 합성필터의 디코딩 방법.
  11. 제8항에 있어서,
    상기 매트릭스 연산을 위한 계수를 저장하는 단계를 더 포함하고,
    매트릭스 연산을 수행하는 상기 단계는,
    상기 매트릭스 연산을 위한 계수를 제공받아 상기 매트릭스 연산을 수행하는 단계
    를 포함하는 것을 특징으로 하는 엠펙 오디오 디코더의 합성필터의 디코딩 방법.
  12. 제8항에 있어서,
    상기 윈도우 연산을 위한 계수를 저장하는 단계를 더 포함하고,
    윈도우 연산을 수행하는 상기 단계는,
    상기 윈도우 연산을 위한 계수를 제공받아 상기 윈도우 연산을 수행하는 단계
    를 포함하는 것을 특징으로 하는 엠펙 오디오 디코더의 합성필터의 디코딩 방법.
  13. 제12항에 있어서,
    윈도우 연산을 위한 계수를 저장하는 상기 단계는,
    상기 윈도우 연산 시 연산량을 줄이기 위해 상기 윈도우 연산을 위한 계수의 값을 연이어 반복하여 저장하는 단계
    를 포함하는 것을 특징으로 하는 엠펙 오디오 디코더의 합성필터의 디코딩 방법.
  14. 제8항에 있어서,
    버퍼에 대한 주소를 생성하는 상기 단계는,
    IPQMF의 순환 특성을 이용하여 상기 IPQMF의 각 사이클에 따라 상기 윈도우 연산 시 곱해지는 상기 윈도우 계수의 주소 값을 생성하는 단계
    를 포함하는 것을 특징으로 하는 엠펙 오디오 디코더의 합성필터의 디코딩 방법.
  15. 제8항 내지 제14항 중 어느 한 항의 방법을 컴퓨터에서 실행하기 위한 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체.
KR1020070010248A 2007-01-31 2007-01-31 엠펙 오디오 디코더의 합성필터 및 그 디코딩 방법 KR100853690B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070010248A KR100853690B1 (ko) 2007-01-31 2007-01-31 엠펙 오디오 디코더의 합성필터 및 그 디코딩 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070010248A KR100853690B1 (ko) 2007-01-31 2007-01-31 엠펙 오디오 디코더의 합성필터 및 그 디코딩 방법

Publications (2)

Publication Number Publication Date
KR20080071845A true KR20080071845A (ko) 2008-08-05
KR100853690B1 KR100853690B1 (ko) 2008-08-25

Family

ID=39882447

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070010248A KR100853690B1 (ko) 2007-01-31 2007-01-31 엠펙 오디오 디코더의 합성필터 및 그 디코딩 방법

Country Status (1)

Country Link
KR (1) KR100853690B1 (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0147758B1 (ko) * 1995-09-25 1998-12-01 이준 Mpeg-2 오디오 복호화기의 합성 필터
KR20010090176A (ko) * 2000-03-23 2001-10-18 이계철 엠펙 오디오 디코더의 합성필터
KR100530377B1 (ko) * 2003-12-30 2005-11-22 삼성전자주식회사 엠펙 오디오 디코더의 합성필터 및 그 디코딩 방법

Also Published As

Publication number Publication date
KR100853690B1 (ko) 2008-08-25

Similar Documents

Publication Publication Date Title
KR101273486B1 (ko) 신호 분석 및 합성을 위한 적응형 하이브리드 변환
KR101221918B1 (ko) 신호 처리 방법 및 장치
JP6177239B2 (ja) 変換符号化または変換復号化のための分析重み付けウィンドウまたは合成重み付けウィンドウの適合化
US20110268279A1 (en) Audio encoding device, decoding device, method, circuit, and program
KR20130133847A (ko) 오디오 신호 트랙들의 펄스 포지션들의 인코딩 및 디코딩
KR102615901B1 (ko) 디지털 오디오 신호에서의 차분 데이터
KR102613282B1 (ko) 디지털 오디오 신호들에서의 가변 알파벳 크기
CN109983535B (zh) 具有子带能量平滑的基于变换的音频编解码器和方法
JP2011514561A (ja) 背景雑音生成方法および雑音処理装置
US8788555B2 (en) Method for updating an encoder by filter interpolation
JP2004184975A (ja) 少ない計算量で高周波数成分を復元するオーディオデコーディング方法及び装置
KR100853690B1 (ko) 엠펙 오디오 디코더의 합성필터 및 그 디코딩 방법
WO2019216187A1 (ja) ピッチ強調装置、その方法、およびプログラム
KR100530377B1 (ko) 엠펙 오디오 디코더의 합성필터 및 그 디코딩 방법
KR101464977B1 (ko) 메모리 관리 방법, 및 멀티 채널 데이터의 복호화 방법 및장치
CN111630594B (zh) 基音增强装置、其方法以及记录介质
US11302340B2 (en) Pitch emphasis apparatus, method and program for the same
RU2662921C2 (ru) Устройство и способ для кодирования, обработки и декодирования огибающей аудиосигнала путем моделирования представления совокупной суммы с использованием квантования и кодирования распределения
KR102244613B1 (ko) Qmf 필터링 방법 및 이를 수행하는 장치
JP2006162774A (ja) 信号処理装置
WO2013140733A1 (ja) 帯域パワー算出装置及び帯域パワー算出方法
KR0181587B1 (ko) 엠펙-1 오디오 복호기의 합성 필터링 장치 및 방법
KR20170015432A (ko) 주파수 영역 변환 기법 및 시간 영역 변환 기법을 전환하며 오디오 신호를 부호화하는 장치 및 방법
Montnémery Johannes Sandvall February 2004
KR20160030499A (ko) 주파수 영역 변환 기법 및 시간 영역 변환 기법을 전환하며 오디오 신호를 부호화하는 장치 및 방법

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

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130731

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140728

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150729

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160801

Year of fee payment: 9