KR20010042988A - 음성 신호를 디코딩하기 위한 방법 및 장치 - Google Patents

음성 신호를 디코딩하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20010042988A
KR20010042988A KR1020007011823A KR20007011823A KR20010042988A KR 20010042988 A KR20010042988 A KR 20010042988A KR 1020007011823 A KR1020007011823 A KR 1020007011823A KR 20007011823 A KR20007011823 A KR 20007011823A KR 20010042988 A KR20010042988 A KR 20010042988A
Authority
KR
South Korea
Prior art keywords
result
bit
shifting
rounding
precision
Prior art date
Application number
KR1020007011823A
Other languages
English (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 윌리암 제이. 버크
Publication of KR20010042988A publication Critical patent/KR20010042988A/ko

Links

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
    • G10L19/02Speech 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 spectral analysis, e.g. transform vocoders or subband vocoders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/66Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission for reducing bandwidth of signals; for improving efficiency of transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters

Abstract

본 발명은 산술 및/또는 시프팅 연산 동안 음성 디코더의 정밀도를 증가시키는 것에 관한 것이다. 포기된 비트의 최상위 비트는 라운딩 업 연산을 위해 계산 된다.

Description

음성 신호를 디코딩하기 위한 방법 및 장치{METHOD AND APPARATUS FOR DECODING AN AUDIO SIGNAL}
디지털 정보에 대한 요구가 증가함에 따라, 디지털 음성 신호는 디지털 영상 분야에서 없어서는 안되는 부분이 되었다. 디지털 음성 신호에 대한 그러한 요구는 예를 들어, DVD를 위한 AC-3 표준과 (HDTV를 포함하는)진보된 텔레비전 시스템 위원회(ATSC:Advanced Television Systems Committee) 디지털 영상 응용 그리고 DVB(유럽 디지털 영상 표준:European digital video standard) 응용에 대한 MPEG-1 및 MPEG-2(동화상 전문가 그룹:Moving Picture Expert Group)같은 잘 알려진 다양한 표준에서의 디지털 음성 필요성의 편입에 의해 증명된다.
그러나, AC-3 같은 음성 표준은 압축된 음성 표현을 나타내는데 사용되는 비트의 수를 최소화하는 반면, 디코딩되어 재생될 경우 원음 신호(예를 들어, 펄스 코드 변조 표현:Pulse Code Modulation(PCM) representation)와 비교하여 동일하거나 또는 매우 유사한 소리를 내는 음성 신호의 디지털 표현을 생성시키기 위해 통상적으로 압축 알고리즘을 설명한다. 이와 같이, 음성 디코더는 압축된 음성 표현을 디코딩하여 재생하는데 중요한 역할을 한다.
디지털 음성의 질을 보장하기 위해, 돌비 AC-3 및 MPEG-1/-2 음성 표준은 음성 디코더의 정밀도에 대한 설명서를 갖는다. 예를 들어, 돌비는 AC-3 디코더를 약 20-비트, 18-비트, 16-비트 정밀도에 대응하는 그룹A, 그룹B, 그룹C의 세 그룹으로 분류한다. 유사하게, MPEG 음성 디코더는 상이한 RMS 및 디코딩 에러의 최대 절대값에 대응하는 "ISO/IEC 13818-3 음성 디코더" 및 "제한된 정밀 ISO/IEC 13818-3 음성 디코더"로 분류될 수 있다. ISO/IEC 13818-3 음성 디코더는 약 16비트 정밀도를 가져야 한다.
통상적으로, 만일 음성 디코더가 요구되는 정밀도 보다 더 큰 워드-폭을 가진 디지털 신호 처리기(DSP)를 사용하여 구현된다면, 디코딩 정확도는 쉽게 얻어질 것이다. 예를 들어, 그룹 C 돌비 AC-3 디코더(20비트 정밀도) 또는 ISO/IEC 13818-3 음성 디코더(16비트 정밀도)를 구현하기 위해 32 비트 DSP를 사용하는 것은 가능하다. 그러나, 보다 고성능의 DSP는 비용과 복잡성을 증가시킨다. 즉, DSP의 처리 워드-폭(즉, 디코더 하드웨어에 의해 주어진 시간에 처리되는 데이터 비트의수)이 증가함에 따라, 데이터 버스는 그에 따라서 더 확장될 것이다. 따라서, 차례로 프로세싱 지연의 증가, ROM, RAM, 산술 논리장치, 곱셈기/누산기 폭 및 크기 같은 하드웨어의 필요성 증가로 인해 음성 디코더의 비용 및 파워 요구가 증가한다.
따라서, 큰 워드-폭(high word-width) DSP를 사용할 필요없이 고 레벨의 정밀도를 얻기 위한 장치 및 부수적인 방법에 대한 분야의 존재가 필요하다.
본 발명은 음성 신호를 디코딩 하기 위한 장치 및 부수적인 방법에 관한 것이다. 특히, 본 발명은 음성 신호를 디코팅하는 과정에서 수행되는 수학적 연산의 정밀도를 증가시키기 위한 방법에 관한 것이다.
도 1은 간략화된 AC-3 음성 디코더의 블록 선도이다.
도 2는 본 발명의 음성 디코딩 시스템의 블록 선도이다.
도 3은 "x"보다 큰 워드-폭을 가진 수에서 아래로는 "x"의 워드-폭을 가진 수를 스케일링하기 위한 방법의 흐름도이다.
도 4는 이진법에 기초한 곱셈의 예를 나타낸다.
본 발명의 일 실시예에서, 음성 디코더의 정밀도는 산술 및 시프팅 연산 동안 적절한 라운딩(rounding)에 의해 증가된다. 그러한 연산은 예를 들어, DSP 같은 데이터 워드-폭을 증가시키는 결과를 종종 발생시키므로, 결과로부터 비트들이 음성 디코더에 의해 음성신호를 재생할 때 종종 정밀도의 댓가로 버려(절단 정밀도 손실("truncation precision loss")이라고함)진다. 본 발명에서, 버려진 비트중 가장 유효한 비트는 라운딩 업 연산을 위해 계산된다. 그러나, 라운딩 적용에 앞서, 절단된 결과는 포화 상태가 존재하는지의 여부를 결정하기 위해 우선 계산되어야 한다. 만일 포화 상태가 존재하면, 어떠한 라운딩도 적용되지 않는다.
예를 들어, 본 발명을 사용할 때, 음성 디코더는 단지 20비트 워드-폭을 가진 DSP를 사용함으로써 돌비 AC-3 그룹B 및 그룹C 디코더와 ISO/IEC 13818-3 음성 디코더에 대해 규정된 정밀도를 성취할 수 있다. 증가된 정밀도는 산술 및 시프팅 연산동안 적절한 라운딩에 의해 성취된다.
본 발명의 사상은 덧붙인 도면과 함께 실시예를 고려함으로써 쉽게 이해될 수 있다.
용이한 이해를 위해, 동일한 참조 숫자가 가능하면 도면에서 공통된 동일한 요소를 나타내기 위해 사용된다.
도 1은 간략화된 AC-3 음성 디코더의 블록 선도를 나타내다. 비록 본 발명이 AC-3 음성 디코더에 관하여 설명되지만, 본 발명이 다른 표준에 따른 음성 디코더에서 구현될 수 있음을 이해할 것이다.
도 1은 프레임 동기화/디포맷팅 섹션(de-formatting section)(110), 비트 할당 섹션(120), 가수 탈양자화 섹션(de-quantization section)(130), 스펙트럴 포락 디코딩 섹션(spectral envelope decoding section)(140) 및 통합 필터 뱅크(synthesis filter bank)(150)를 포함하는 AC-3 음성 디코더(100)를 나타낸다. 음성 디코더(100)는 음성 엔코더의 역기능을 수행하므로, 만일 AC-3 음성 엔코딩 방법이 간략히 설명되면 음성 디코더의 다양한 섹션에 대한 이해를 도울 것이다.
AC-3 표준에 관하여, PCM 시간 샘플은 분석 필터 뱅크를 거쳐 주파수 계수의 시퀀스 블럭으로 전송된다. 즉, 예를 들어 512 같은 시간 샘플의 중첩된 블럭이 시간 윈도우에 의해 배가되어 주파수 영역으로 전송되며, 여기서 주파수 도메인 표현은 인자(2)에 의해 데시메이션(decimation) 같은 또다른 프로세싱을 수행할 수도 있다. 차례로, 각각의 주파수 계수는 2진 지수와 가수로서 2진 지수 표시법으로 나타난다. 지수의 셋은 "스펙트럴 포락"으로 알려진 신호 스펙트럼의 표현으로 엔코딩되며, 반면에 가수는 대략적으로 양자화된다. 결국, 예를 들어 6 블럭 같은 음성 블럭의 수에 대한 스펙트럴 포락 및 양자화된 가수는 AC-3 음성 프레임으로 함께 포맷팅된다.
따라서, 연산시, 디코더의 프레임 동기화/디포맷팅 섹션(110)은 경로(105)에 대해 수신된 엔코딩된 비트 스트림에 대해 우선 동기화 되어야 하며 이어 엔코딩된 스펙트럴 포락 및 양자화된 가수 같은 데이터의 다양한 타입을 디포맷팅해야 한다. 차례로, 엔코딩된 스펙트럴 포락은 스펙트럴 포락 디코딩 섹션(140)에 대해 통과되고, 여기서 스펙트럴 포락은 지수를 생성시키기 위해 디코딩되며 반면에 양자화된 가수는 가수 탈양자화 섹션(130)에 대해 통과되고, 여기서 가수는 탈양자화된다. 비트 할당 섹션(120)은 가수 탈양자화 섹션(120)에 대해 비트 할당 정보를 제공하며, 그것에 의해 언패킹(unpacking) 및 탈양자화 프로세스에 관여한다. 결국, 지수 및 가수는 경로(155)에 대해 디코딩된 PCM 시간 샘플을 생성하기 위해 통합 필터 뱅크(150)에 의해 시간 도메인으로 재전송된다.
음성 디코더(100)의 다양한 섹션은 PCM 시간 샘플이 엔코딩된 비트 스트림으로부터 재생성되기 전에 예를 들어 곱셈, 나누기, 뺄셈 및/또는 덧셈 같은 많은 산술 및 시프팅 연산을 수행해야 한다. 이와 같이, 산술 또는 시프팅 연산으로부터의 다양한 결과는 엔코딩된 음성 신호의 부분 또는 전체에(또는 중간 단계의 표현)에 나타난다.
본 발명에서, 라운딩 방법은 DSP의 최대 데이터 워드-폭 때문에 절단이 필요한 경우에 사용된다. 즉, DSP의 데이터 워드-폭은 산술 및 시프팅 연산이 수행되는 방법에 영향을 미친다. 예를 들어, 만일 음성 DSP 처리기가 x비트(예를 들어 20비트)의 데이터 워드-폭을 가지면, 각 연산 후에 최종 결과는 통상적으로 20비트 레지스터 또는 20비트 메모리 셀에 저장된다.
설명을 위해, 두 20비트 피연산자의 곱셈이 39비트 곱을 생성한다. 즉, 만일 두 20비트 이진수(1비트는 수의 부호 및 19비트는 실세의 수)의 경우, 곱셈은 기껏해야 수의 부호를 나타내는 1비트를 가진 38 비트, 즉 39비트 곱을 포함할 것이다. 그러나, DSP는 예를 들어 20비트 같은 고정된 데이터 워드-폭에 대해 작동하므로 39비트 곱은 20비트로 절단된다. 많은 산술 연산이 PCM 시간 샘플을 재생하는데 수행되므로, 절단 단계에서 정밀도의 감소는 계속적인 산술 또는 시프팅 연산으로부터 전파할 것이며, 그로 인해 결국은 음성 디코더에 의해 생성되는 PCM 시간 샘플의 생성에서 정밀도의 감소를 초래한다. 그러한 정밀도의 감소는 재생성된 음성 신호에서 성능저하로서 그 차체로 명백하며, 그로 인해 음성 신호에 대한 비효율적 계산을 초래한다.
이러한 결점을 다루기 위해 , 전술한 대로 많은 비용과 전력 소모 및 복잡도를 대가로, 더 긴 데이터 워드-폭을 다룰 수 있는 DSP를 사용한다. 유사하게, 부동 소수점 DSP는 제한된 범위에 대한 결점을 다룰 수 있을 것이나, 많은 비용과 복잡도를 대가로 치룰 것이다. 따라서, 본 발명은 필요할 때 정밀도의 감소를 줄일 수 있으며, 그로 인해 음성 디코더에서 더 낮은 비용의 DSP의 사용으로 재생된 음성 신호에서 더 높은 정밀도를 성취하도록 하는 적절한 라운딩 방법을 제공하는 것이다.
도 2는 본 발명의 음성 디코딩 시스템(200)을 나타낸다. 음성 디코딩 시스템은 범용 컴퓨터 또는 DSP 210 및 다양한 입/출력 장치(250)를 포함한다. 범용 컴퓨터는 음성 신호를 디코딩하기 위해 중앙 처리 장치(CPU)(230), 메모리(220) 및 음성 디코더(240)를 포함한다.
메모리(220)는 저장 장치로 넓게 한정된다. 이와 같이, 메모리(220)는 RAM 및/또는 하나 이상의 레지스터(224)를 포함한 것으로 도시된다.
컴퓨터(210)는 테이프 드라이브, 플로피 드라이브, 하드 디스크 드라이브 또는 컴팩트 디스크 드라이브뿐만 아니라 키보드, 음성 디코더, 카메라, 캠코더, 비디오 모니터, 스피커, 수신기, 일정 수의 이미지 장치 또는 저장 장치 같은 복수의 입력 및 출력 장치(250)와 결합될 수 있다. 입력 장치는 컴퓨터로 예를 들어 엔코딩된 비트 스트림 같은 입력을 제어 또는 제공하는 역할을 하며, 반면에 출력 장치는 재생된 PCM 시간 샘플을 수신 및/또는 제공하는 역할을 한다.
일 실시예에서, 음성 디코더(240)은 도 1에서 전술한 대로 간단히 음성 디코더(100)이다. 음성 디코더(240)는 통신 채널을 통해 CPU(230)에 결합된 물리적 장치일 수 있다. 만일 음성 디코더가 예를 들어 응용 주문형 집적회로(ASIC) 같은 하드웨어에 구현되면, 본 발명의 라운딩 방법은 산술 연산을 수행하는 소정의 섹션으로 직접 구현될 수 있다.
택일적으로, 음성 디코더(240)는 소프트웨어 응용에 의해 나타낼 수 있으며, 이는 저장 매체(예를 들어, 마그네틱 또는 광 드라이브 또는 디스켓)로부터 로딩되며 컴퓨터 메모리(220)에 상주한다. 이와 같이, 본 발명의 음성 디코더(240)는 컴퓨터 판독가능 매체 상에 저장될 수 있다.
보다 상세하게, 실시예에서 범용 컴퓨터 또는 DSP(210)는 도 1에서 전술한 대로 음성 디코더(100)의 다양한 섹션을 구현하기 위한 소프트웨어 응용을 사용하여 구현된다. 만일 산술 연산이 절단 단계를 필요로 하는 소정의 섹션에 대해 수행되면, 필요한 경우 이하에서 설명될 본 발명의 라운딩 방법이 사용될 것이다.
일 실시예에서, 산술 연산은 CPU의 산술 논리장치(ALU)에 의해 수행된다. ALU는 예를 들어, 전용 곱셈기(234), 나눗셈기, 가산기, 감산기(미도시)등과 같은 하나 이상의 서브 유닛을 통합할 수도 있다. 이와 같이, 만일 음성 디코더가 수행될 산술 연산을 필요로 하는 경우, 음성 디코더는 데이터를 CPU로 간단히 통과시켜서 CPU로부터 되돌아오는 결과를 기다린다. 본 발명에서, 라운딩은 예를 들어, 곱, 몫, 합, 차등과 같은 결과를 절단을 필요가 있는 소정의 산술 연산 또는 비트 시프팅 연산에 대해 수행된다. 즉, 유지된 마지막 비트에 대한 그 다음의 직접 최하위 비트(LSB)(즉, 절단된 비트의 최상위 비트)는 절단된 결과가 라운딩 업 될지를 결정하기 위해 계산된다.
보다 상세히는 라운딩 방법은 20비트의 워드-폭을 가진 음성 DSP를 사용하여 설명된다. 그러나, 본 발명은 소정 데이터 워드-폭의 소정의 음성 DSP에 사용될 수 있다는 것이 이해될 것이다.
우선, 스케일링은 임의로 산술 연산의 결과를 스케일하기 위해 사용된다. 즉, 산술 연산은 DSP의 워드-폭을 초과하는 폭을 가진 결과를 생성할 수도 있다. 이와 같이, 스케일링은 산술 연산으로부터의 결과의 가장 적절한 부분을 유지하기 위해 사용된다.
설명을 위해, 20비트 피연산자의 곱셈이 39비트 곱을 생성한다. 통상적으로, 고정 소수점 곱셈 연산에 대해, 39비트 곱의 20 최상위 비트(MSB)는 결과를 나타내는데 사용된다. 이는 도 4에서 제 1 곱셈 예에서 설명된다. 즉, 두 비정수의 곱에 대해 가장 중요한 정보는 대개 MSB에 위치하며, 39비트 곱의 20 최상위 비트(MSB)는 결과로 사용된다. 그럼에도 불구하고, 작은 값을 가진 피연산자는 대신에 20 최하위 비트 부분을 전용할 수도 있으므로, 두 20비트 피연산자의 동적인 영역은 스케일링 연산을 제어하는데 사용될 수 있다.
대조적으로, 정수 곱셈 연산에 대해, 20비트 LSB는 만일 곱이 20비트를 초과하지 않으면 두 정수의 정확한 곱을 얻는데 통상적으로 사용될 수 있다. 이는 도 4의 두 번째 곱셈 예에서 설명된다. 즉, 두 정수의 곱에 대한 가장 중요한 정보는 대개 소수점의 왼쪽 비트에 대개 위치하므로, 39비트 곱의 20 최하위 비트(LSB)가 결과로서 사용된다. 게다가, 예를 들어, 큰 정수 값 같은 큰 값을 가진 피연산자는 20 MSB의 선택을 통합할 수도 있으므로 20비트 피연산자의 동적인 영역은 스케일링 연산을 제어하기 위해 사용될 수 있다.
일단 고정 소수점 곱셈 연산에 대해 스케일링이 완료되면, 적절한 라운딩이 39비트 곱과 비교하여 가장 근접한 20비트 근사치를 얻기 위해 선택적으로 수행된다. 연산시, 20비트 곱하기 20비트 곱셈 연산으로부터의 결과는 P39(MSB)에서 P0(LSB)까지 번호 메겨진 40비트의 워드-폭을 가진 PREG 레지스터(224A)에 저장된다. 39비트 곱은 P38 부터 P0 까지 저장되는 반면에 비트 P39는 오버플로우 상태를 검출하기 위해 사용된다. 39비트 곱은 20비트 워드-폭을 가진 P-스케일 레지스터(224B)에서 39비트 곱에 대해 20비트 근사치로 스케일링 다운된다. 39비트 곱은 적어도 2비트의 워드-폭을 가진 상태 레지스터(224C)에 셋팅된 플래그(flag)에 관하여 스케일링된다.
보다 상세하게는, RNDM(라운딩 모드) 및 PM(곱셈 모드)의 두 플래그가 곱셈 근사치의 선택을 제어하기 위해 상태 레지스터(224C)에서 구현된다. 즉, RNDM 플래그는 39비트 곱으로부터 20비트 MSB를 얻을 때, 라운딩 연산이 수행될 지의 여부를 제어한다. PM 플래그는 39비트 곱의 20비트 또는 20비트 곱의 20비트 최하위 비트가 곱셈 연산의 곱(근사치 또는 실제값)을 나타내기 위해 메모리에 저장될 지를 제어한다. 이러한 두 플래그는 표 1에 관하여 DSP 명령을 통해 필요한 경우 프로그래머의 제어 아래 셋/리셋될 수 있다.
PM RNDM 비트 선택 및 라운딩 결정
0 0 PREG 레지스터{P19,P18,...,P0}의 하위 20비트는 누산기 또는메모리로 전송된다.
0 1 PREG 레지스터{P19,P18,...,P0}의 하위 20비트는 누산기 또는메모리로 전송된다.
1 0 P레지스터{P38,P37,...,P19}에서 곱의 상위20 비트는 누산기또는 메모리로 전송된다.
1 1 곱{P38,P37,..,P19,P18}의 상위 21비트는 20비트 결과 T를 얻기위해 라운딩 및 포화되어 누산기 또는 메모리로 전달된다.
표 1에 설명된 대로, 본 발명의 라운딩 방법은 모든 곱셈 연산에 적용되지 않는다. 즉, 본 발명은 20MSB가 "포화"되었는지를 결정해야 한다. 포화는 20MSB가 20비트 데이터 워드-폭에 대해 최대 양수 값을 나타내는 상태이다, 즉 {P38,P37,...,P19}={0,1,1,...,1,1}, 여기서 0(P38)은 통상적으로 양의 부호를 나타내는데 사용된다. 만일 라운딩 업이 포화된 양의 수에 적용되면, 수의 부호는 음의 부호로 변화할 것이며, 그에 따라 오버플로우 에러가 발생한다. 라운딩 업은 수가 더 작은 음으로 되게 하므로 전술한 상태는 포화된 음의 수에는 영향을 미치지 않음을 알아야 한다. 이와 같이, 만일 선택된 20MSB가 포화되면, 본 발명의 라운딩 방법은 실행되지 않는다.
그러나, 선택된 20MSB가 포화되지 않으면, 본 발명의 라운딩 방법은 실현되며, 여기서 비트 P18은 라운딩을 위해 계산된다. 즉, 만일 P18이 1의 값을 가지면, 선택된 20MSB는 1값에 의해 라운딩 업 된다. 만일 P18이 0의 값을 가지면, 선택된 20MSB는 라운딩 업 되지 않는다.
라운딩 및 포화 방법은 다음과 같다:
여기서, T는 39비트 곱의 20비트 근사치를 나타낸다.
정밀도 감소의 다른 소스는 고정 소수점 수의 오른쪽 시프팅 명령 동안 발생한다. 즉, 어떤 연산은 수가 "n" 비트수 만큼 오른쪽으로 시프팅되도록 요구될 수도 있으며, 이는 2n에 의해 나눈 연산과 동일하다. 이러한 시프팅 연산은 비트의 가장 오른쪽 "n"개의 수를 효과적으로 포기한다. 그러나, 정밀도 개선은 라운딩 오른쪽-시프팅을 사용하여 얻을 수 있다, 즉 여기서, 포기된 비트의 MSB는 라운딩을 위해 계산된다.
예를 들어, "n"이 오른쪽 시프팅될 비트의 수라하고 "n"은 0보다 크다고 가정하자. T는 시프팅될 20비트 고정 소수점 수이다. S는 아래에 한정된 대로 T의 중간 단계의 결과이며 "S+1"은 중간 단계의 시프팅된 결과 S에 1의 값을 더한 것이다. 이러 라운딩 오른쪽-시프팅 결과 R은 다음 단계에 의해 얻어진다:
등식 (2)의 제 3라인은 전술한 대로 포화 상태를 검출하기 위해 질문이다. 즉, 만일 포화 상태가 검출되면, 오른쪽-시프팅 결과(R)는 S의 1비트 오른쪽-시프팅과 같게 되며, 이는 라운딩 없이 n비트 오른쪽-시프팅과 등가이다.
게다가, ATSC 및 MPEG 같은 다양한 표준은 고정 소수점 계수 ROM 테이블을 통합한다. 이와 같이, 이러한 테이블에서 모든 고정 소수점 계수는 예를 들어, 전술한 라운딩 및 포화 방법에 따른 고정 소수점 수 같은 x 비트(예를 들어 20비트)로 라운딩 될 수 있다. 그러한 테이블은 이하의 내용을 포함하지만 한정되지는 않는다:
AC-3 표준에 대해:
중심 혼합 값(center mix vlaue)(ATSC Doc.A/52에서 표 5.4),
주변 혼합 레벨(surround mix level)(ATSC Doc.A/52에서 표 5.5),
대화 표준화 값(ATSC Doc.A/52의 섹션 7.6에 정의됨),
3-레벨 양자화(ATSC Doc.A/52에서 표 7.19),
5-레벨 양자화(ATSC Doc.A/52에서 표 7.20),
7-레벨 양자화(ATSC Doc.A/52에서 표 7.21),
11-레벨 양자화(ATSC Doc.A/52에서 표 7.22),
15-레벨 양자화(ATSC Doc.A/52에서 표 7.23),
전달 윈도우 시퀀스(ATSC Doc.A/52에서 표 7.33),
512-샘플 IMDCT 계수 표(ATSC Doc.A/52에서 정의된 zcos1 및 zsin1),
256-샘플 IMDCT 계수 표(ATSC Doc.A/52에서 정의된 zcos2 및 zsin2),
MPEG에 대해
층(layer)Ⅰ, Ⅱ 스케일링 요소(ISO/IEC 11172-3에서 표 3-B.1),
양자화의 층 Ⅱ 부류: 표 C 및 표 D(ISO/IEC 11172-3에서 표 3-B.4),
층Ⅰ에 대한 재양자화 표 1 (2nb/(2nb-1)),
층Ⅰ에 대한 재양자화 표 2 (2(-nb+1)),
통합 윈도우의 계수 D (ISO/IEC 11172-3에서 표 3-A.2)
MPEG의 경우, 양자화의 층 Ⅱ 부류에 대한 표 C 및 층Ⅰ에 대한 재양자화 표 1 (2nb/(2nb-1))은 우선 1에 의해 감산되며, 나머지는 스케일링, 라운딩 및 포화되어 20비트 고정 소수점 형식으로 저장된다. 이렇게 함으로써, 계수는 하나 이상 비트의 정밀도를 가진다. 디코더 시프트 소프트웨어는 디코딩 프로세스 동안 감산된 1 을 다시 가산할 것이다.
도 3은 "x"보다 큰 워드-폭을 가진 수에서 아래로는 "x"의 워드-폭을 가진 수까지를 스케일링 및 라운딩 하기 위한 방법(300)의 흐름도를 나타낸다. 보다 상세히는, 방법(300)은 음성 디코더의 재생된 음성 신호에서 정밀도의 손실을 줄이기 위해 다양한 산술 또는 시프팅 연산에 대해 스케일링 및 라운딩을 제공하는 방법이 개시되었다.
보다 상세히는, 방법(300)은 단계(305)에서 시작하여 단계(310)로 진행하며, 여기서, 방법(300)은 스케일링 연산이 결과(T)의 스케일링 업 또는 스케일링 다운을 포함하는 지를 질문한다. 즉, 스케일링 다운은 결과(T)로부터 LSB의 "x" 수의 선택을 의미하며 스케일링 업은 결과(T)의 MSB의 "x" 수의 선택을 의미한다. 다양한 인자가 예를 들어, 피연산자의 동적 영역 같은 스케일링 연산 및 산술 연산이 정수 또는 비정수를 포함하는 지를 제어하기 위해 계산된다.
만일 스케일링 연산이 스케일링 다운을 포함하면, 방법(300)은 단계(325)로 진행하며 여기서, "x" LSB가 선택되며 라운딩은 적용되지 않는다(즉, PM=0으로 셋팅). 만일 스케일링 연산이 스케일링 업을 포함하면, 방법(300)은 단계(320)으로 진행한다.
단계(320)에서, 방법(300)은 "x" MSB가 포화되었는 지를 질문한다. 만일 대답이 긍정적이면, 방법(300)은 단계(335)로 진행하며, 여기서 "x" MSB가 선택되며 라운딩은 적용되지 않는다(즉, PM=1 및 RNDM=0으로 셋팅). 만일 질문이 부정적이면, 방법(300)은 단계(330)으로 진행하며, 여기서 "x+1" MSB가 선택되며 라운딩이 적용된다(즉, PM=1 및 RNDM=1로 셋팅). 비록 본 발명이 라운딩을 실현하기 위해 "x+1" MSB를 계산하지만, 추가의 MSB(예를 들어 "x+2"MSB, "x+3" MSB등)가 임의로 사용된다.
결국, 단계(340)에서, 단계(325), 단계(330) 또는 단계(335)로부터 선택된 비트는 예를 들어 메모리에 저장된다. 방법(300)은 단계(350)에서 끝난다.
따라서, 음성 디코더의 정밀도를 증가시키는 새로운 방법이 설명되었다. 본 발명의 중요한 특징은 선택적으로 필요한 경우에 라운딩 방법을 적용하는 능력이다. 이러한 라운딩 방법은 하드웨어 비용 또는 소프트웨어 복잡도를 최소화시키는 동시에 음성 디코더의 전체적인 정밀도 및 정확도를 증가시키며, 그로 인해, 낮은 비용을 사용하여 높은 정밀도를 성취할 수 있다.
비록 본 발명의 사상을 통합시키는 다양한 실시예가 도시되고 상세히 설명되지만 기술분야의 당업자는 용이하게 본 발명의 사상에 통합되는 많은 다른 변화된 실시예를 고안할 수 있다.

Claims (10)

  1. 엔코딩된 음성 신호를 디코딩하기 위한 산술 연산을 수행하기 위해 x-비트의 데이터-폭을 갖는 프로세서를 사용하는 음성 디코더의 정밀도를 증가시키기 위한 방법에 있어서,
    (a)산술 연산의 결과를 스케일링 업 또는 다운하는 단계;
    (b)상기 스케일링 업이 적용된 경우 상기 결과로부터 적어도 x+1 최상위 비트(most significant bit)를 선택하는 단계; 및
    (c)적어도 상기 x+1 최상위 비트를 x-비트 결과로 라운딩하는 단계를 포함하는데,
    상기 결과는 상기 엔코딩된 음성 신호를 나타내며 상기 라운딩된 결과는 상기 음성 디코더의 정밀도를 증가시키는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    (a') 상기 선택 단계(b)를 수행하기 전에 포화 상태가 존재하는 지를 결정하는 단계를 더 포함하며, 만일 상기 포화 상태가 검출되면 상기 선택 단계는 상기 결과로부터 x 최상위 비트를 선택하며 상기 라운딩 단계는 생략되는 것을 특징으로 하는 방법.
  3. 제 2 항에 있어서, 상기 프로세서는 20-비트의 데이터 워드-폭을 가지며, 상기 선택 단계(b)는 상기 스케일링 업이 적용된 경우 상기 결과로부터 적어도 21 최상위 비트를 선택하며, 상기 라운딩 업 단계(c)는 적어도 상기 21 최상위 비트를 20-비트 결과로 라운딩 하는 것을 특징으로 하는 방법.
  4. 제 2 항에 있어서, 상기 포화 결정 단계(a')는 상기 포화 결정 단계로부터 레지스터로 결과를 저장하는 것을 특징으로 하는 방법.
  5. 엔코딩된 음성 신호를 디코딩하기 위한 시프팅 연산을 수행하기 위해 프로세서를 사용하는 음성 디코더의 상기 정밀도를 증가시키기 위한 방법에 있어서,
    (a)시프팅 결과를 얻기 위해 결과를 "n-1" 비트 수 만큼 시프팅하는 단계;
    (b)수정된 시프팅 결과를 얻기 위해 상기 시프팅 결과에 1의 값을 가산하는 단계; 및
    (c)상기 수정된 시프팅 결과의 1비트를 시프팅함으로써 상기 수정된 시프팅 결과를 라운딩 하는 단계를 포함하며,
    상기 결과는 음성 신호를 나타내며 "n"은 시프팅을 필요로하는 비트의 수이며, 상기 라운딩된 결과는 상기 음성 디코더의 상기 정밀도를 증가시키는 것을 특징으로 하는 방법.
  6. 제 5 항에 있어서,
    (a')상기 가산 단계를 수행하기 전에 포화 상태가 존재하는 지를 결정하는 단계를 더 포함하는데, 상기 포화 상태가 검출되면 상기 가산 단계(b)는 생략되며 상기 라운딩 단계(c)는 상기 시프팅 결과의 1비트를 시프팅함으로써 상기 시프팅 결과를 라운딩 하는 것을 특징으로 하는 방법.
  7. 제 6 항에 있어서, 상기 프로세서는 20-비트의 데이터 워드-폭을 포함하는 것을 특징으로 하는 방법.
  8. 디코딩된 음성 신호의 상기 정밀도를 증가시키기 위한 음성 디코더(210)에 있어서,
    산술 연산의 결과를 스케일링 업 또는 다운하기 위한 수단;
    상기 결과가 스케일링 업 된 경우 상기 결과로부터 적어도 x+1 최상위 비트를 선택하기 위한 수단; 및
    적어도 상기 x+1 최상위 비트를 x-비트 결과로 라운딩하기 위한 수단을 포함하는데,
    상기 결과는 상기 엔코딩된 음성 신호를 나타내며, 상기 라운딩 된 결과는 상기 디코딩된 음성 신호의 상기 정밀도를 증가시키는 것을 특징으로 하는 음성 디코더.
  9. 제 8 항에 있어서, 포화 상태가 상기 스케일링 된 결과에 대해 존재하는 지를 결정하기 위한 수단을 더 포함하는 것을 특징으로 하는 음성 디코더.
  10. 제 8 항에 있어서, 상기 복수의 수단(230)은 20-비트의 데이터 워드-폭을 가진 프로세서(230)를 사용하여 구현되는 것을 특징으로 하는 음성 디코더.
KR1020007011823A 1998-04-24 1999-04-23 음성 신호를 디코딩하기 위한 방법 및 장치 KR20010042988A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US8292998P 1998-04-24 1998-04-24
US60/082,929 1998-04-24
US09/238,562 US6360204B1 (en) 1998-04-24 1999-01-28 Method and apparatus for implementing rounding in decoding an audio signal
US09/238,562 1999-01-28
PCT/US1999/008508 WO1999056470A1 (en) 1998-04-24 1999-04-23 Method and apparatus for decoding an audio signal

Publications (1)

Publication Number Publication Date
KR20010042988A true KR20010042988A (ko) 2001-05-25

Family

ID=26768000

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007011823A KR20010042988A (ko) 1998-04-24 1999-04-23 음성 신호를 디코딩하기 위한 방법 및 장치

Country Status (7)

Country Link
US (1) US6360204B1 (ko)
EP (1) EP1080583A1 (ko)
JP (1) JP2003503740A (ko)
KR (1) KR20010042988A (ko)
CN (1) CN1164117C (ko)
TW (1) TW421971B (ko)
WO (1) WO1999056470A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001266488A (ja) * 2000-03-23 2001-09-28 Toshiba Corp 圧縮オーディオデータ再生装置および圧縮オーディオデータ再生方法
DE60028094T2 (de) * 2000-08-04 2006-11-02 Data Action Co., Ltd. Gerät und verfahren zur rundung von numerischen werten gemäss signifikanten ziffern oder rundungsintervallen
KR100517971B1 (ko) * 2002-09-07 2005-09-30 엘지전자 주식회사 이동통신 시스템의 고정점 결정장치 및 방법
DE10331803A1 (de) 2003-07-14 2005-02-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Umsetzen in eine transformierte Darstellung oder zum inversen Umsetzen der transformierten Darstellung
US7272567B2 (en) * 2004-03-25 2007-09-18 Zoran Fejzo Scalable lossless audio codec and authoring tool
JP5227794B2 (ja) 2005-06-30 2013-07-03 エルジー エレクトロニクス インコーポレイティド オーディオ信号をエンコーディング及びデコーディングするための装置とその方法
US7761289B2 (en) 2005-10-24 2010-07-20 Lg Electronics Inc. Removing time delays in signal paths
JP4457084B2 (ja) * 2006-04-07 2010-04-28 Okiセミコンダクタ株式会社 演算装置
US7769583B2 (en) * 2006-05-13 2010-08-03 International Business Machines Corporation Quantizing feature vectors in decision-making applications
US8374858B2 (en) * 2010-03-09 2013-02-12 Dts, Inc. Scalable lossless audio codec and authoring tool
US8577402B2 (en) * 2010-12-20 2013-11-05 Lsi Corporation Method for avoiding overflow of multiplication of roots-of-unity by using overflow safe approximated values table
ES2874511T3 (es) 2014-07-28 2021-11-05 Ericsson Telefon Ab L M Búsqueda de forma de cuantificador de vector en pirámide
CN106494959B (zh) * 2016-12-06 2018-11-13 宁波永良电梯技术发展有限公司 电梯系统的控制方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03104310A (ja) 1989-09-18 1991-05-01 Matsushita Electric Ind Co Ltd デジタル音声処理装置
JP3199371B2 (ja) * 1990-07-30 2001-08-20 松下電器産業株式会社 丸め装置
JP3121609B2 (ja) 1990-10-29 2001-01-09 富士通株式会社 デジタル信号処理装置
JPH09211651A (ja) * 1996-01-31 1997-08-15 Minolta Co Ltd レンズ交換可能なカメラ
GB2330226B (en) * 1997-08-30 2000-12-27 Lg Electronics Inc Digital signal processor

Also Published As

Publication number Publication date
CN1164117C (zh) 2004-08-25
CN1298608A (zh) 2001-06-06
US6360204B1 (en) 2002-03-19
EP1080583A1 (en) 2001-03-07
WO1999056470A1 (en) 1999-11-04
TW421971B (en) 2001-02-11
JP2003503740A (ja) 2003-01-28

Similar Documents

Publication Publication Date Title
JP3508146B2 (ja) ディジタル信号符号化復号化装置、ディジタル信号符号化装置及びディジタル信号復号化装置
US5862067A (en) Method and apparatus for providing high numerical accuracy with packed multiply-add or multiply-subtract operations
EP1693742A2 (en) A set of instructions for operating on packed data
US6782366B1 (en) Method for independent dynamic range control
US6360204B1 (en) Method and apparatus for implementing rounding in decoding an audio signal
JPH06164414A (ja) 直交変換演算並びに逆直交変換演算方法及びその装置、ディジタル信号符号化及び/又は復号化装置
US7188133B2 (en) Floating point number storage method and floating point arithmetic device
CN107077852B (zh) 包括与hoa数据帧表示的特定数据帧的通道信号关联的非差分增益值的编码hoa数据帧表示
US20070024472A1 (en) Computing circuits and method for running an MPEG-2 AAC or MPEG-4 AAC audio decoding algorithm on programmable processors
EP1074020B1 (en) System and method for efficient time-domain aliasing cancellation
AU2005315826B2 (en) Method for producing a representation of a calculation result that is linearly dependent on the square of a value
JP3208001B2 (ja) 副バンドコーディングシステムの信号処理装置
US7096240B1 (en) Channel coupling for an AC-3 encoder
US8788277B2 (en) Apparatus and methods for processing a signal using a fixed-point operation
JPH11212768A (ja) 対数値算出回路
US6775587B1 (en) Method of encoding frequency coefficients in an AC-3 encoder
US8064608B2 (en) Audio decoding techniques for mid-side stereo
CN113808599A (zh) 针对hoa数据帧表示的压缩确定表示非差分增益值所需的最小整数比特数的方法
US6785655B1 (en) Method for independent dynamic range control
Yen et al. A low-complexity MP3 algorithm that uses a new rate control and a fast dequantization
US20090319589A1 (en) Using fractional exponents to reduce the computational complexity of numerical operations
Abel et al. Implementation of a high-quality Dolby Digital decoder using MMX/sup TM/technology
JP3501246B2 (ja) Mpegオーディオデコーダ
JP2001043067A (ja) 演算装置
US7395300B2 (en) System, and method for calculating product of constant and mixed number power of two

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application