KR20070086097A - 값의 제곱에 선형적으로 의존하는 계산 결과의 표현을생성하는 방법 - Google Patents

값의 제곱에 선형적으로 의존하는 계산 결과의 표현을생성하는 방법 Download PDF

Info

Publication number
KR20070086097A
KR20070086097A KR1020077013249A KR20077013249A KR20070086097A KR 20070086097 A KR20070086097 A KR 20070086097A KR 1020077013249 A KR1020077013249 A KR 1020077013249A KR 20077013249 A KR20077013249 A KR 20077013249A KR 20070086097 A KR20070086097 A KR 20070086097A
Authority
KR
South Korea
Prior art keywords
bit
representation
value
logarithm
spectral
Prior art date
Application number
KR1020077013249A
Other languages
English (en)
Other versions
KR100921795B1 (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 프라운호퍼-게젤샤프트 츄어 푀르더룽 데어 안게반텐 포르슝에.파우.
Publication of KR20070086097A publication Critical patent/KR20070086097A/ko
Application granted granted Critical
Publication of KR100921795B1 publication Critical patent/KR100921795B1/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/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
    • G10L19/032Quantisation or dequantisation of spectral components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49936Normalisation mentioned as feature only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)

Abstract

대수 범위로의 변환에 있어서, 값의 제곱에 선형적으로 의존하는 결과의 전체 비트 폭이 반드시 고려될 필요가 없다. 오히려, 그 결과의 x비트 보다 작은 비트를 가진 표현이 대수 표현을 얻는 데에 충분하게 되도록 x 비트를 가진 값의 결과를 스케일링할 수 있다. 그 결과적인 대수 표현에의 스케일링 팩터의 효과는, 어떠한 다이나믹스의 손실도 없이 그 스케일링된 대수 표현에 또는 그 스케일링된 대수 표현으로부터 그 스케일링 팩터에 적용된 대수 함수에 의해 얻어진 보정 값을 가산하거나 감산함으로써 보상될 수 있다. 이러한 방식으로, 값의 제곱에 선형적으로 의존하는 방법 및 장치가 제공되어, 그 계산이 더욱 간단하게 되고 및/또는 하드웨어 소모가 적어지게 될 수 있다.
선형적, 비트 표현, 대수 범위, 스케일링, 다이나믹스, 신호 에너지

Description

값의 제곱에 선형적으로 의존하는 계산 결과의 표현을 생성하는 방법{METHOD FOR PRODUCING A REPRESENTATION OF A CALCULATION RESULT THAT IS LINEARLY DEPENDENT ON THE SQUARE OF A VALUE}
본 발명은, 주파수 그룹들의 신호 에너지에 의해 추가적 인코딩을 수행하기 위해, 음향인지(psychoacoustic) 모델에 따라 주파수 라인들을 결합하여 그 주파수 그룹들을 생성하는, 예로서 오디오 인코더에서 요구되는 일 그룹의 값들의 제곱의 합과 같은 제곱 값에 선형적으로 의존하는 계산 결과의 표현의 생성에 관한 것이다.
현재, MPEG Layer-3 또는 MPEG AAC와 같은 필터뱅크-기반 오디오 인코딩 방법에 있어서, 음향인지 모델이 인코더로 이용되고 있다. 이러한 음향인지 모델에서, 주파수 범위로 변환되는 오디오 신호의 전체 스팩트럼은, 가변 폭 및/또는 주파수 그룹 당 가변 주파수 라인 수를 가진 개개의 주파수 그룹으로 분할된다. 음향인지 청취 임계치의 계산과, 중심부/측부 스테레오 인코딩을 이용하는지 여부의 결정과, 양자화 모듈에서 스케일 팩터의 평가 및/또는 계산을 위해, 개개의 주파수 그룹의 오디오 신호 부분의 신호 에너지가 음향인지 모델로 계산된다. 이것은 각각의 주파수 라인을 제곱하여, 라인 에너지를 얻고, 주파수 그룹의 대역 에너지를 형성하기 위해 주파수 그룹내의 모든 라인 에너지의 계속적인 합산을 수행함으로써 이루어지며, 예로서, MPEG ACC에서는 오디오 채널 당 약 40 내지 60개의 주파수 라인이 있다.
이하, 고정점 프로세서에서 이러한 방법의 구현의 특별한 응용이 고려된다.
고정점 표현에 있어서, 주파수 라인들은 예로서 24비트 또는 32비트의 워드 폭으로 표현된다. 단지 16비트의 워드 폭으로는 불충분하다. 글로벌 스케일링 팩터 또는 쉬프팅 팩터가 이용되면, 이들은 오디오 채널의 모든 주파수 라인들에, 또한 인코더에서 처리된 모든 오디오 채널들의 모든 주파수 라인들에 적용되며, 또한 이들은 각각의 주파수 라인 값이 좌측 또는 우측으로 얼마만큼 위치가 쉬프트하는 지를 결정하여 원시(original) 스케일링이 다시 얻어지게 되며, 이들 블록-부동점 표현이라 부른다. 즉, 적어도 하나의 오디오 채널의 모든 라인들이 동일하게 게이트 아웃되며, 그리고/또는 동일한 스케일링 레벨로 된다. 주파수 라인의 개개의 진폭의 일반적으로 높은 다이나믹스(dynamics)를 고려하면, 이것은, 예로서 24비트의 워드 폭을 가진 22개의 유효 비트 또는 32 비트의 워드 폭을 가진 30개의 유효 비트와 같이, 상대적으로 높은 정확도로 주파수 라인들의 일부가 표현되며, 반면에 그 나머지는 약간의 유효 비트로 표현되어 좀더 낮은 정확도를 가지게 된다.
고정점 프로세서에서의 전술한 필터뱅크-기반 오디오 인코딩 방법의 구현에 있어서는, 다음과 같은 문제점이 있다.
첫째로, 신호 에너지 자체의 표현과 관련된 문제점이 있다. 전체 정확도가 유지된다면,제곱 연산에 의해, 주파수라인의 제곱 값의 합산 값인 신호 에너지는, 주파수 라인에 대한 것의 두배의 다이나믹스를 얻게 된다.
신호 에너지를 표현하는 가능성에는 여러 가지가 있다. 그 하나의 가능성은, 예로서 48비트 또는 64 비트의 워드 폭을 가진 데이터 타입과 같은, 주파수 라인의 표현에 이용되는 데이터 타입의 워드 폭의 두배의 워드 폭을 가진 데이터 타입에 의한 신호 에너지의 표현이다. 예들 들면, 22 유효 비트를 가진 주파수 라인이 24 비트 데이터 타입에 의해 표현된다고 가정한다. 그 합산에 기초하여, 신호 에너지는, 다른 주파수 라인과 함께, 적어도 44 유효 비트를 가지고, 48 비트 데이터 타입으로 표현될 수 있다. 하지만, 이러한 처리는 64 비트 에너지에 대해서는 적어도 실현 가능하지 않으며, 이 경우에 주파수 라인들은 32 비트 데이터 타입으로 표현되고, 대부분의 종래의 고정점 프로세서는 64 비트 데이터 타입을 전혀 지원하지 않으면, 64 비트 데이터 타입을 이용하는 메모리 접근 연산 및 계산은, 예로서 32 비트 메모리 접근 연산 및 계산과 비교할 때, 매우 느리다. 또한, 64 비트 데이터의 경우에는, 메모리 소모량이 상당히 높다.
신호 에너지의 표현의 다른 가능성은, 가수와 지수를 이용하는 부동점 데이터에 의한 표현이다. 다시, 22개의 유효 비트를 가진 주파수 라인이 24 비트 데이터 타입에 의해 표현된다는 전술한 예의 경우를 가정한다. 각각의 그룹의 신호 에너지는, 부호 비트를 포함하는 16 비트 가수와 8 비트 지수를 가진 표준적인 또는 전유적인(proprietary) 부동점 데이터 타입으로 표현될 수도 있다. 여기서, IEEE-P754와 같은 표준적인 부동점 데이터 타입 또는 임의로 선택된 가수와 지수 폭을 가진 전유적인 부동점 데이터 타입이 고려되는 지는 중요치 않다. 부동점 계산부 가 없는 고정점 프로세서에서, 부동점 데이터 타입으로 계산하는 것은, 항상 여러 계산 단계에 의해 에뮬레이트 되어야 하며, 그래서 매우 느리게 되고, 따라서 이러한 처리는 실현 가능하지 않다.
고정점 프로세서에서 전술한 필터뱅크-기반 오디오 인코딩 방법의 실현에 있어서의 또 다는 문제점은, 그 인코딩 방법의 수행 중에 신호 에너지의 재처리에 관한 것이 있다. 신호 에너지와 그로부터 도출되는 청취 임계치는, 예로서 신호 에너지와 청취 임계치와의 사이에서 비(ratio) 와 몫(quotient)를 계산하기 위해, 그 알고리즘에서 매우 많은 서로 다른 장소에서 오디오 인코더의 루틴에 이용된다. 이러한 제산은, 고정점 프로세서에 수행하는 것이 용이하지 않다.
이러한 제산을 고정점 프로세서에서 수행하는 가능성은, 단일 비트 제산 커맨드를 이용하는 것으로서, 이것은 몇몇 고정점 프로세서에서 구현되며, 호출(call) 당 몫의 정확도의 추가적 비트를 제공한다. 예로서 48 비트의 정확도를 가진 제산에 대해, 2개의 신호 에너지 또는 단일의 신호 에너지 및 청취 임계치의 단일 제산에 대한 48개의 개개의 제산 커맨드가 요구된다. 이것은, 매우 긴 계산 시간을 소모하기 때문에, 실현되지 아니하고 비효율적이다.
고정점 프로세서에서의 제산을 실현하는 또 다른 가능성은, 그 제산 결과의 정확도를 증가시키기 위한 연속적인 반복 단계에 연계되는 테이블을 이용하는 것이다. 하지만, 이 처리는 그 제산 결과의 요구된 정확도의 관점에서 종종 실현 가능하지 않게 되고, 매우 큰 테이블이 이용되거나 또는 연속적인 반복 단계가 긴 계산 시간을 요구하게 된다.
전술한 방법 모두는, 소프트웨어 마다 에뮬레이트된 고정점 데이터 타입 또는 부동점 데이터 타입과 연계된 고정점 프로세서에서 이용되지만, 이들 경우에는, 동시적인 결과 정확도와 함께 계산 시간 및 메모리 소비의 관점에서 충분히 효율적인 응용이 전혀 제공되지 않는다.
GPP(General Purpose Processor; 범용 프로세서)를 이용하면, 전술한 문제점은 발생하지 않는다. 하지만, 많은 응용에서, 부동점 계산부를 가지지 않은 고정점 프로세서보다 더 높은 성능을 가진 프로세서를 이용하는 것은, 그 고가 및 다수의 부품 개수 때문에, 자동적으로 고려의 여지가 없게 된다. 이러한 응용의 예는, 휴대폰이나 PDA이다.
미국특허 US 6,754,618 B1에는, 신호 에너지와 청취 임계치와의 비를 계산하는 것, 즉, SMR의 문제에 대처하고, 고정점 DSP 칩의 이용의 배경에 대처하고 있다. 여기에 제안된 처리에 따르면, 우선 오디오 신호의 분해를 위한 통상의 윈도잉(windowing) 및 후속하는 푸리에 변환이 수행되며, 각각의 입력신호의 에너지 및/또는 주파수 라인 신호, 즉, 라인 에너지가 각각의 주파수 라인 값의 실수부 및 허수부로부터 계산된다. 주파수 라인의 그룹들의 신호 에너지의 생성을 하지 않고도, 이 방법은 이들 그룹의 신호 에너지에 기초하여 계속적으로 수행될 수 있다. 이 특허문헌의 내용은, 입력 데이터, 즉, 에너지가 너무 큰 동적 범위를 대부분 가진다는 문제를 제거하기 위한 시도이며, 여기서 대부분의 고정점 DSP 칩은 단지 16 내지 24 비트의 데이터 폭으로 가지고 있지만, MPEG 표준은 101dB의 동적 범위인 34 비트의 데이터 폭을 요구하고 있다. 따라서, 이 에너지는 우선적으로 스케일링 되어야 한다. 특히, 이전의 처리로부터 벗어나서 서로 두개의 스케일링 값을 이용하는 것이 제안되어 있다. 자세히 설명하면, 이 특허문헌에 따르면, 대수 범위로의 천이에서 충분한 16 비트를 가진 대수 결과를 표현할 수 있기 위해서, 그리고 16 비트의 대수 범위에서 SMR 비를 계산할 수 있기 위해서, 에너지를 임계치와 비교하여 이를 상향 또는 하향 스케일링을 한다. 상향 또는 하향 스케일링이 수행되는지의 여부에 따라, 그 임계치들에 대한 서로 다른 테이블이 이용된다. 그 대수를 취하여, 공통 대수의 10배가 이용되어, 단위 dB가 얻어진다. 상향 스케일링된 라인 에너지의 대수를 취한 결과가 0 이면, SMR 비는, 상향 스케일링된 라인 에너지의 대수에서 임계 에너지의 대수의 10배를 감산하는 것으로써 계산된다. 그렇지 않으면, 상향 스케일링된 라인 에너지의 결과와 하향 스케일링된 라인 에너지의 결과를 서로 결합한다.
미국특허 US 6,754,618 B1에 제안된 처리는, 대수 범위에서 SMR 비를 계산하는 것으로 제안하여 신호 에너지의 재처리에 관한 전술한 문제점의 일부를 방지한다. 이로써, 복잡한 제산 계산을 제거한다. 하지만, 이 처리는, 그 대수 계산이 여전히 상당히 복잡하다는 단점이 있어, 16 비트 DSP 고정점 프로세서에 적합한 16 비트 고정점 표현에 대한 값 범위가 대수 계산 후에 벗어나게 되고, 한편, 이렇게 대수를 취하는 것은 여전히 높은 다이나믹스를 가진 에너지에 대해 수행되고, 그 결과 에너지 값 당 대수를 2회 취하는 것이 필요하게 된다.
다이나믹스의 손실의 발생 없이 대수 범위로의 천이를 단순화하는 것이 바람직하다.
미국 특허 US 5,608,663은, 대수적 고정점 포맷으로의 변환, 대수 범위에서의 추가, 및 후속하는 백(back) 변환에 의한 부동점 수의 병렬적 승산의 신속한 실행을 다룬다.
미국 특허 US 5,197,024는, 지수함수/대수 계산 및 각각의 장치를 다룬다.
미국 특허 US 6,732,071은, 오디오 인코딩에서의 레이트 제어를 위한 그리고 양자화 파라미터 값의 결정을 위한 효율적인 해법을 다루며, 최대 주파수 라인 값에 의존하는 항의 대수 두얼리스(dualis)로부터 도출되는 항과 비교하는 양자화 파라미터 값에 따른 완료 조건을 가진 루프 반복을 이용한다.
미국 특허 US 6,351,730은, 오디오 인코딩에서 이득 계산을 위한 대수 두얼리스의 이용을 개시하고 있다. 이득 값은 MDCT 인코딩 오디오 코덱에서 비트 할당에 이용된다.
미국 특허 US 5,764,698은, 오디오 신호 에너지의 표현을 위한 자연 대수의 이용을 개시하고 있다. 대수 범위로의 천이에 대한 자세한 설명은 개시되어 있지 아니하다.
본 발명의 목적은, 값의 제곱에 선형적으로 의존하는 결과의 표현을 생성하기 위한 방법 및 장치를 제공하여, 더욱 간단하고 하드웨어 소비가 적은 계산을 가능케 하는 것이다.
본 발명의 이러한 목적은 청구항 1에 따른 장치 및 청구항 18에 따른 방법에 의해 성취된다.
본 발명에 따르면, 값의 제곱에 선형적으로 의존하는 계산 결과의 표현을 생성하는 장치로서, 그 계산 결과는 대수가 취해지지 않은 x 비트 표현으로 존재하고, 상기 장치는:
그 값에 선형적으로 의존하는 상기 결과를 얻기 위해 상기 값의 상기 대수가 취해지지 않은 x 비트 표현의 처리를 수행하기 처리 수단으로서, 상기 처리수단은 상기 계산 결과가 유효한 스케일링 팩터에 의존하여 스케일링되도록 상기 유효한 스케일링 팩터를 이용하도록 구성되어 있는 상기 처리 수단;
상기 계산 결과의 대수가 취해진 스케일링된 표현 및/또는 상기 스케일링된 계산 결과에 대수가 취해진 표현을 얻기 위해 상기 처리 수단에 의한 처리-예로서 비트 위치를 선택해내는 것-로부터 간접적으로 또는 직접적으로 얻어지며 대수가 취해지지 않은 상기 계산 결과의 y 비트 표현에 대수 함수를 적용하기 위한 대수를 취하는 수단으로서, 상기 y는 x의 2배 보다 작은 상기 대수를 취하는 수단; 및
상기 계산 결과 - 더 이상 스케일링된 것이 아님 -의 상기 대수가 취해진 표현을 얻기 위해, 상기 유효한 스케일링 팩터에 적용된 스케일링된 대수와 같은 대수 함수에 대응하는 상기 스케일링된 대수 표현에 또는 상기 스케일링된 대수 표현으로부터 보정 값을 가산하거나 감산하기 위한 리스케일링 수단을 포함한다.
본 발명에 따르면, 상기 대수 범위로의 변환에 있어서, 그 값의 제곱에 선형적으로 의존하는 그 결과의 전체 비트 폭이 반드시 고려될 필요는 없다. 오히려, 대수 표현에 기초하여 그 결과의 x 비트 보다 적은 표현이 충분히 얻어지도록 x 비트의 값의 결과를 스케일링하는 것이 가능하다. 그 결과적인 대수 표현에 대한 스케일링 팩터의 효과가, 상기 스케일링된 대수 표현에 또는 상기 스케일링된 대수 표현으로부터, 상기 스케일링 팩터에 적용된 대수 함수에 의해 얻어진 보정 값을 가산하거나 감산함으로써, 다이나믹스의 손실 없이 제거될 수 있다.
본 발명의 이점은, 복수의 결과가 하나의 대수 표현으로 변환되어, 다이나믹스가 실질적으로 유지되면서 계속하여 스케일링 레벨이 모두에 대해 동일하게 되도록 할 수 있다는 것이다.
본 발명에 따르면, 그 값의 x 비트 표현의 상기 처리는, 그 값에 선형적으로 의존하는 그 계산 결과를 얻기 위해 값의 그룹의 제곱의 합을 생성하는 것을 포함한다. 하지만, 제곱의 합의 계산 후에만 상기 유효한 스케일링 팩터를 수행하는 대신에, x 비트 표현이 공통의 스케일링 팩터로 미리 스케일링된다. 공통의 스케일링 팩터는, 그 값의 개수로부터 및/또는 그 값의 x 비트 표현에 의해 결정된다. 이러한 처리에 의해, 그 값의 x 비트 표현의 초기 상태로부터 시작하여, 그것은 일정하게 유지될 수 있다. 이것은 개개의 값의 제곱에 그리고 개개의 제곱의 합에 동일하게 적용된다. 여기서, 공통의 스케일링 팩터는, 제곱의 합이 그 합의 결과로서 오버플로우되지 않도록 결정된다. 본 발명의 이러한 실시예에 따르면, 대수 함수는 제곱의 합의 대수가 취해지지 않은 x 비트 표현의 섹션에 대해 수행된다. 이러한 실시예에서도, 그 처리가 여러 그룹의 값에 이용될 수 있다는 상기 효과가 유지되어, 개개의 그룹의 값이 서로 공통의 스케일링 팩터로 스케일링될 수 있고, 또한 그 후속하는 스케일링 레벨이 제곱의 합의 모두에 대한 대수 표현에 대해 동일하게 된다.
본 발명의 다른 실시예에 따르면, 대수 두얼리스가, 1/y 보다 작거나 같은 팩터와 함께 대수 함수로서 이용된다. 이러한 방식으로, 그 계산 결과의 y 비트 표현과 그 계산 결과의 대수가 취해진 스케일링된 표현과의 사이의 매핑을, 두 표현의 값 범위를 최적으로 이용하는 방식으로, 수행할 수 있다.
본 발명의 다른 실시예에 따르면, 오디오 인코딩에 대해서, 상기 그룹의 스펙트럼 라인 값이, 그룹 별로 전술한 방법으로, 상기 제곱의 합의 생성에 적용되며, 즉, 상기 주파수 라인 값이 상기 대수가 취해지지 않은 x 비트 고정점 데이터 포맷으로 존재하고 있고 제곱의 합의 계산 전에 상기 스펙트럼 라인 값을 스케일링하고, 상기 x 비트 고정점 데이터 포맷으로 존재하여야 하는 그 결과적인 단일의 제곱들을 합산하고, 대수 두얼리스로 대수를 취하는 것과 1/x 보다 작거나 같은 팩터로 스케일링을 하는 것을 포함하는 대수 함수를 상기 제곱의 합에 적용하고, 상기 대수가 취해진 그 결과의 x 비트 고정점 표현에 또는 그 x 비트 고정점 표현으로부터 상기 대수 함수에 의해 상기 공통의 스케일링 팩터로부터 얻어지는 보정 값을 가산하거나 감산하는 것을 포함한다. 이러한 방식으로서, 모든 스펙트럼 그룹의 신호 에너지는 다이나믹스를 감소시키지 않고도 동일한 스케일링 팩터를 유지하게 된다. 또한, 계산 동작의 각각은 x 비트만을 가진 고정점 수를 처리하도록 구성된 계산부에 의해 수행될 수도 있다. 이러한 실시예에 따르면, 계산 시간의 소비가 증대하게 되는 복잡한 프로그램을 필수적으로 요구하지 않고도 16 비트 또는 24 비트의 고정점 DSP로 오디오 인코더를 구현하는 것이 가능하다는 효과가 있다.
본 발명의 바람직한 실시예들은 다음과 같은 첨부된 도면을 참조하여 상세히 설명될 된다:
도 1은 32 비트 고정점 데이터 포맷의 구조를 나타내는 개략적 표현이고;
도 2A 및 도 2B는 64 비트 고정점 결과에 대해 너무 적은 값의 효과를 나타내는, 32 비트 고정점 데이터 값의 제곱 계산의 개략적 표현이고;
도 3은 본 발명의 일 실시예에 따른 대수 함수의 그래프이고;
도 4는 본 발명의 일 실시예에 따른 제곱의 합을 생성하기 위한 장치의 개략적 블록도이고;
도 5는 도 4의 장치의 가능성 있는 실현의 블록도이고;
도 6은 도 5에 따른 장치의 함수를 나타내는 플로우차트이고; 및
도 7은 본 발명의 일 실시예에 따른 오디오 인코더를 나타내는 개략적 블록이다.
이하, 본 발명이 첨부된 도면을 참조하여 설명되며, 오디오 신호 처리, 특히, 오디오 신호 인코딩의 백 드롭에 대해 설명된다. 도면의 설명에서 설명한 바와 같이, 본 발명은 이러한 응용 분야에 제한되지 아니하며, 이러한 구성은 이해를 돕기 위해서 제공되는 것이다.
본 발명의 실시예를 상세히 설명하기 전에, 다음과 같은 실시예의 개요를 제공하며, 이는 일종의 개관이며 도 1 내지 도 3을 참조하여 제공되고, 본 실시예들의 이점을 보다 더 명확히 이해시키도록 제공된다.
도 2는 가능성 있는 32 비트 고정점 데이터 포맷의 구조를 나타내며, 다음의 실시예의 설명의 예시적 기초로서 제공된다. 표현된 32 비트 고정점 데이터 포맷은 다른 비트 카운트에 용이하게 적용될 수도 있다. 도시된 바와 같이, 32 비트 고정점 데이터 포맷으로 저장된 값은 32개의 비트를 포함한다. 따라서, 32 비트 레지스터가 32 비트 고정점 데이터 포맷의 값을 저장하는 데에 충분하다. 이러한 레지스터는, 도 1에서 도면부호 10으로 지시되어 있다. 32 비트 위치는, 최상위 비트(most significant bit; MSB)로부터 최하위 비트(least significant bit; LSB)까지 개개의 제곱 값(x0, ..., x31)로 지시되어 있다. 32 비트 고정점 데이터 포맷에 따른 개개의 비트 위치의 의미는 개개의 비트 위 치아래에 지시되어 있다. 도시된 바와 같이, 최상위 비트는, 그 값의 부호, 즉, + 또는 - 를 나타낸다. 나머지 비트(x30 ..., x0)는, 그 값의 크기를 나타낸다. 도 2의 실시예에 따르면, 이들 비트는, 참인 분수(true fraction)을 나타내며, 즉, 데이터 포맷(10)은 분수형(fractional) 고정점 데이터 포맷이며, 표시법으로서, 점 또는 코머가 최좌측에, 즉, 비트 x30 전의 좌측에 위치한다. 따라서, 레지스터(10)의 값은 다음과 같이 표현된다.
Figure 112007042615245-PCT00001
용이하게 알 수 있는 바와 같이, 분수형 고정점 데이터 포맷의 표현 가능한 값의 범위는 근사적으로 배타적 -1 로부터 배타적 1까지이다.
본 발명의 상세한 설명의 도입부에서 설명한 바와 같이, 예로서 신호 에너지는 주파수 라인의 제곱 계산 및 이들 제곱된 주파수 라인, 즉 주파수 그룹의 라인 에너지의 합산에 의해 얻어진다. 주파수 그룹에 포함된 라인의 개수는, MPEG Layer 3 또는 MPEG AAC내에서 4 내지 96의 범위이다.
본 발명의 상세한 설명의 도입부에서 설명한 바와 같이, 인코더에서 처리된 오디오 채널의 모든 주파수 라인에 그리고 더 나아가 모든 오디오 채널의 모든 주파수 라인에 적용되고, 각각의 주파수 라인 값이 디코더의 좌측 또는 우측으로 얼마나 많은 위치를 쉬프트하는 지를 결정하는 글로벌 스케일링 팩터를 이용하여 고정점 데이터 포맷의 주파수 라인 값을 표현하는 것이 가능함으로써, 원시 스케일링이 다시 얻어 질 수 있다. 이러한 32 비트 고정점 데이터 값을 32 비트 데이터 워드 폭을 가진 고정점 프로세서 상에서 오디오 신호 에너지의 계산을 위한 제곱의 합산에서 처리되도록 하기 위해, 다음 기본적인 요구사항이, 주파수 라인으로부터의 오디오 신호 에너지의 계산의 효율적인 실현을 위해 만족되어야 한다.
- 주파수 라인은 32 비트의 워드 폭으로 표현되어야 한다. 16 비트로는 불충분하다.
- 오디오 신호 에너지는, 부동점 데이터 포맷이 아닌, 고정점 데이터 포맷으로 표현되어야 한다.
- 오디오 신호 에너지는 32 비트보다 크지 않은 워드 폭을 가진 데이터 타입으로 표현되어야 한다. 그 결과, 오디오 신호 에너지에 대해 32 비트의 워드 폭이 얻어진다.
다음에 설명되는 본 발명의 특별한 실시예는, 이들 기본적 요구사항을 모두 만족시키며, 이들 기본적 요구 사항이 만족되지 아니하면 효과가 크지 아니한 구현이 얻어질 수 있다는 것에 유의하여야 한다. 후술하는 바와 같이, 오디오 신호 에너지가 32 비트의 워드 폭이어야 한다는 것은, 반드시 필수적이지는 않다. 다만, 오디오 신호 에너지의 재-처리는 32 비트 고정점 표현에 한정되어야 한다.
전술한 요구사항으로부터, 다음의 문제점이 오디오 신호 에너지의 계산에서 발생한다. 32 비트 주파수 라인의 제곱 계산은, 먼저 64 비트의 워드 폭을 가진 라인 에너지를 산출하며, 여기서 32 비트(다음의 실시예에서는 하위 32 비트)가, 후속 처리에서 제거되고, 분수 연산(fractional arithmetics) 이 상위 32 비트에 대해서만 계속 수행된다.
이를 설명하기 위해, 도 2A 및 도 2B를 참조한다. 이들 도면은, 제곱기(squarer)로 이용되는 제곱기의 2개의 입력 레지스터(12a 및 12b)를 나타내며, 이들은 동일한 값을 입력 승산 레지스터(12a 및 12b)에 기입한다. 이들 레지스터(12a 및 12b)는 32 비트 레지스터이다. 또한, 도 2a 및 도 2b는 상부(14a) 및 하부(14b)로 이루어진 64 비트 출력 레지스터(14)를 나타낸다.
도 2a 및 도 2b에 도시되지 아니하였지만 제곱기는, 레지스터(12a 및 12b)의 레지스터 내용을 32 비트 고정점 데이터 포맷으로 독출하고, 이들 값에 16을 승산함으로써, 64 비트 결과가 산출되고, 이는 64 비트 고정점 데이터 포맷으로 출력 레지스터(14)로 출력된다. 따라서, 출력 레지스터(14)의 상부(14a)는 코머 후의 31 이진 위치를 커버하고, 하부(14b)는 나머지 이진 위치를 커버한다.
도 2a 및 2b는, 서로 다른 주파수 라인 값이 입력 레지스터(12a 및 12b)에 기입되어, 출력 레지스터(14)에서 서로 다른 결과가 얻어지는 상태를 나타내고 있다.
도 2a는, 특히, 주파수 라인 값이 하이, 즉, 0x12345678인 상태를 나타낸다. 주파수 라인 값이 하이 레벨로 게이트 아웃하는 경우에는, 즉, 32 비트 데이터 워드로서 다수의 유효 비트를 점유하는 경우에는, 출력 레지스터(14)에서의 실제의 64 비트 폭의 결과의 상위 32 비트는, 그 결과 및/또는 그의 제곱 값을 표현하기 위해 충분히 정확하다. 완전한 결과가 아닌, 상부(14a)에서 이용되는 때에 발생된 오차는, 도 2a의 경우에 단지 0x000000003be9b080이 된다.
도 2b는 입력 레지스터(12a 및 12b)의 적은 주파수 라인 값이 각각 0x00004321인 경우를 나타낸다. 이러한 주파수 라인 값은 또한, 전술한 바와 같이, 적어도 하나의 오디오 채널의 모든 주파수 라인이 글로벌 스케일링 팩터를 가진 경우에 발생하며, 그래서, 전형적으로, 다수의 주파수 라인이, 32 비트 데이터 워드에서만 적은 수의 유효 비트를 점유하며, 즉, 작은 진폭을 가진다. 도 2b에 도시된 바와 같이, 작은 주파수 라인 값의 경우에는, 출력 레지스터(14)의 상부 32 비트는 충분한 정확도를 가진 제곱 계산 결과를 주지 않는다. 신호 에너지 값을 형성하기 위한 수개의 이러한 라인 에너지의 합산은, 특히 부정확한 결과, 즉, 예를 들면, 0를 제공하여, 오디오 인코딩의 후속 과정에서 오디오 품질이 감소되는 결과를 준다. 도 2b의 예에서, 출력 레지스터의 상부는 예로서 0의 결과를 주고, 실제의 결과는 0x0000000023349482의 결과를 줄 수도 있다.
도 2a 및 도 2b의 예에 도시된 바와 같이, 신호 에너지의 후속하는 처리에서 출력 레지스터(14)의 모든 64 비트를 고려하여 하는 것처럼 보인다. 하지만, 이것은 매우 많은 복잡한 64 비트 데이터 연산, 즉, 64 비트 연산자를 이용한 연산을 요구하고, 효율적인 구현을 위한 전술한 기본적 요구사항을 위배하게 된다.
그러나, 출력 레지스터(14)의 각각의 신호 에너지 값의 상위 32 비트 부분이 실제로 이용되어야 한다면, 제곱 계산 전에 주파수 그룹내의 모든 주파수 라인 값을 동일한 개수의 비트만큼 좌측방향으로 쉬프팅시킴으로써 그 향상이 이루어지며, 이로써, 그 결과는 64 비트 결과의 상위 32 비트 부분에서 더 많은 개수의 유효 비트를 포함하게 된다. 또는, 그 결과를, 그 결과적인 레지스터(14)에서 쉬프팅시킴으로써, 그 향상이 이루어질 수도 있다.
각각의 신호 에너지 값의 상부(14a)는, 대수 함수의 계산을 위한 계산부를 신호 에너지의 각각의 상부(14a)에 적용함으로써, 대수 범위로 변환될 수도 있다. 이 계산부는, 32 비트 고정점 데이터 값을 얻기 위해, 32 비트 고정점 데이터 값의 대수를 취할 수 있으면 된다. 이 대수 함수는 값 x를 값 y = log2(x)/64로 변환하며, 이는 도 3에 도시되어 있다. 도 3은 x ∈]0,1[ 를 가진 대수 함수의 섹션을 나타내며, 이는 32 비트 고정점 데이터 포맷의 제곱 계산된 신호 에너지 값에 해당하는 값들만이다. 여기서, 스케일링 팩터 1/64는, 가능한 최소의 값, 즉, 2-63의 에너지 값(1 비트는 적어도 부호를 위해 보유됨)은 또한 가능한 출력 값 범위를 커버하고, 도 3의 대수 함수에 따라 대수가 취해진 에너지 신호 값이 64 비트 고정점 값이면, 이 범위는 고정점 표현의 경우에는 배타적 -1 로부터 1 배타적 1까지이다.
하지만, 이러한 처리가, 오디오 인코더 내의 오디오 인코딩의 처리 단계에서 있어서 매우 만족스러운 것은 아니며, 모든 신호 에너지가 동일한 스케일링을 가져야 하고 그래서 좌측으로의 쉬프트 및/또는 정확도를 증가시키는 스케일링 팩터가 동일한 스케일링 레벨을 방해하게 될 것이다.
이러한 점에서, 대수를 취하는 포지티브 성질의 효과가 나타난다. 전술한 바와 같이, 라인 에너지의 표현은, 주파수 라인 및/또는 진폭 영역에서의 예로서 s 비트 위치만큼 좌측으로의 소정의 쉬프트에 의해 및/또는 전술한 안전 거리가 주어지는 신호 에너지 영역에서 유효한 22s 만큼의 스케일링에 의해 최적으로 정확하게 된다. 잠정적으로는, 그 주파수 그룹에서 수행된 좌측으로의 쉬프트의 횟수, 즉, 값 s에 유의하여야 한다. 도 3에 도시된 대수 함수의 신호 에너지 값(이하, LD64( )라 하고 고 정확도로 계산된다)는 대수 범위로 변환되면(이는 이하에서 LD64 포맷이라 한다), 최대의 가능한 정확도로 동일하게 유지된다. 주파수 라인의 좌측으로의 1만큼의 쉬프트는, 선형 비-대수 범위에서의 신호 에너지의 좌측으로의 1만큼의 쉬프트, 즉, 제곱계산에 대응하며, 이는 다시 대수 범위에서 1/64의 가산, 즉 2/64=log2(22)64=LD64(22)에 대응한다.
LD64 포맷으로 신호 에너지의 원시 스케일링을 복원하기 위해, 2*s/64의 감산이 효과적이어야 하고, 여기서 s는 그룹의 주파수 라인의 값의 좌측으로의, 전술한 쉬프트에 대응한다. 이러한 감산은, 하지만, 선형 범위에서 우측으로의 쉬프트 를 가진 예와 같이, 유효 비트가 전혀 손실 및/또는 쉬프트되지 않는 것과 같은, 정확도의 손실의 결과를 주지 않는다. 그래서, 신호 에너지가 LD64 포맷으로 존재하며, 이는 다음에 후술하는 바와 같이, 모든 신호 에너지 값에 대해 고 정확도와 동일한 스케일링을 가진 오디오 인코더에서의 이후의 계산에서 이점을 준다.
지금까지 본 발명의 실시예의 원리 및 이점에 대해 설명하였고, 이제 본 발명의 바람직한 실시예를 도 4 내지 도 7을 참조하여 상세히 설명한다.
도 4는, 동적 범위를 유지하고, 또한, 하드웨어 소비를 적절한 범위로 유지할 수 있는 N개의 x 비트 고정점 값의 그룹에 대한 제곱의 합산을 계산하는데 적합한 장치의 개략적 표현을 도시한다. 이러한 장치는 전술한 원리에 기초하고 있다.
도면 부호 20으로 지시된 도 4의 장치는, N 비트 고정점 값을 저장하기 위한 x 비트 레지스터(221, 222, …, 22N), 조절가능한 효과적인 스케일링 팩터로 스케일링된 비-대수 범위에서의 레지스터(221, 222, …, 22N)에의 값의 제곱의 합을 결정하기 위한 제곱 합산 수단(24), 그 제곱 합산 수단(24)의 결과를 래치하기 위한 제1 결과 레지스터(26), 그 결과 레지스터(26)의 결과를 LD64 포맷으로 변환하기 위해 대수를 취하는 수단(28), 그 대수를 취하는 수단(28)의 결과를 래치하기 위한 제2 결과 레지스터(30), 그 결과 레지스터(30)의 결과를 리스케일링하기 위한 리스케일링 수단(32), 그 리스케일링 수단(32)에 의해 출력되는 최종 결과를 래치하기 위한 출력 레지스터(34), 및 상기 제곱 합산 수단(24)에 의한 스케일링이 그 리스케일링 수단(32)에서의 리스케일링에 의해 역전되는 것을 보장하고 공통의 스케일 링 팩터를 결정하는 제어 수단(36)을 포함한다.
장치(20)의 개개의 구성요소를 설명한 후에, 제곱의 합을 생성하기 위한 동작이 다음과 같이 설명될 것이며, 여기서 각각의 반복은 대응하는 화살표에 의해 지시된다.
전술한 바와 같이, 제곱의 합이 연산된 값은 x 비트 고정점 포맷으로 레지스터(221 내지 22N)에 존재한다. 전술한 바와 같이, 이들 값은(주파수 라인 값일 수도 있음) 유효 비트의 개수에 관하여 서로 발산할 수도 있다.
제곱 합산 수단(24)은, 레지스터(221 내지 22N)의 값을 수신하여 이를 제곱 합의 생성에 적용하기 위해, 레지스터(221 내지 22N)의 값의 제곱의 합이 제어 수단(36)에 의해 적어도 간접적으로 조절가능한 유효한 스케일링 팩터로 스케일링된 레지스터(36)내의 고정점 표현으로 존재하게 되도록 한다. 여기서, 제곱 합산 수단(24)가 제곱-합산 결과를 기입하는 결과 레지스터(26)이 2x 비트를 가진다는 것이 반드시 필요하지는 않는다. 오히려, 레지스터(26)의 부분적 쇄선 표현으로 지시된 바와 같이, 제곱 합산 수단(24)이 그 결과의 y 비트 고정점 표현을 제공하면 충분하며, 여기서 y = x가 바람직하다.
다음의 2개의 가능성은, 특히, 제곱 합산 수단(24)이 레지스터(26)내의 스케일링된 결과를 출력하기 위한 제어 수단(26)으로부터의 스케일링 팩터 정보를 어떻게 고려하는지, 그리고 제어 수단(36)이 스케일링 팩터 정보 및/또는 유효한 스케일링 팩터를 어떻게 결정하는지를 도시하기 위해 선택된 것이며, 이로써, 결과 레 지스터(26)내의 결과가 스케일링되어, 유효 비트가 오버플로우로서 손실되지 않게 된다.
전술한 설명에 기초하여, 첫 번째 가능성은, 제어 수단(36)에, 유효한 스케일링 값을 미리 결정하기 위해 레지스터(221 내지 22N)의 내용을 분석하는 것을 포함하여, 오버플로우가 레지스터(221 내지 22N)내의 값의 제곱의 후속하는 합산에 의해 생성된다. 이것은, 도 4에서 도면 부호 38로 지시되는 제곱 합산 수단(24)의 가산 계산 부에 오버플로우가 존재하지 않으면, 또는, 결국, 레지스터(26)의 경우에 오버플로우 비트를 전혀 명확히 제공하지 않는 메모리 셀에 "오버플로우된" 제곱 및/또는 에너지 값이 기입되는 경우에, 생성될 수 있다. 따라서, 제어 수단(36)은 레지스터(221 내지 22N)내의 프리 비트의 최대 개수 및 수 N에 의존하는 스케일링 팩터 및/또는 x의 최대값에서 레지스터(221 내지 22N)의 개개의 값의 유효 위치의 개수를 뺀 것을 조절하여, 레지스터(26)으로의 출력에 오버플로우가 생성되지 않고, 및/또는 그 결과가 배타적 -1로부터 배타적 1까지의 범위의 값을 남기지 않게 될 것이다.
특히, 전술한 바와 같이, 공통 스케일링 팩터는 2의 제곱에 대응하여, 레지스터(221 내지 22N)의 값의 어드밴스 스케일링이 좌측으로의 쉬프트 연산에 의해 성취될 수도 있다. 이 경우에, 전술한 바와 같이, 제곱 합산 수단(24)이, 결과 레지스터(26)의 결과를 출력하기 위해, 2x 고정점 데이터 포맷의 개개의 스케일링된 레 지스터의 내용의 제곱 계산(40)의 중간 결과를 가산(38)할 필요는 없다. 오히려, 제곱 합산 수단(24)은 중간의 제곱 결과(421 내지 42N) 만의 y 비트 고정점 표현을 요구할 수도 있다. 제곱 결과(421 내지 42N) 모두에 대한 합산(38)은 레지스터(26)내의 제곱 합산 수단(24)의 최종 결과를 산출한다.
스케일링 팩터를 결정하고 고려하는 또 다른 가능성은, 중간의 결과(421 내지 42N)를 2x 고정점 데이터 포맷으로 얻기 위해, 레지스터(221 내지 22N)의 내용에 제곱 계산(40)을 차례로 인가하는 제곱 합산 수단(24)일 수도 있다. 이는, 제곱 합산 수단(24)에 의해 합산(38)이 인가될 수도 있다. 그 결과, 2x 고정점 제곱 합산 결과는, 제곱 합산 수단(24)에 의한 2x 비트의 제곱 합산 결과에서 각각의 비트의 개수만큼의 좌측으로의 대응하는 쉬프트를 수행하기 위해, 그 결과가 제곱 합산 수단(24)에 기입되기 전에, 제어 수단(36)의해 그 미사용된 비트 및/또는 2x와 유효 위치의 개수와의 차이에 대해 조사될 수도 있다. 전술한 것과 비교하여, 이러한 처리의 불리한 점은, 제곱 합산 수단(24)의 내부적 계산 소모가, 그 값(421 내지 42N)이 2x의 워드 폭으로 처리되는 만큼, 증대할 수 있다는 것과, 특히 합산(30)에 의해 처리되어야 하기 때문이다. 그래서, 증가된 성능 능력을 가진 가산 계산부가 요구되거나, 또는 오버플로우 비트가 할당된 y 비트 고정점 데이터 포맷 가간 계산부가 때때로 제어되어야 한다. 이러한 가능성에서, 제곱 합산 수단(24)은 레지스터(221 내지 22N) 개개의 값을 제곱하고, 2x 고정점 제곱 값(421 내지 42N)을 합산하 고(38), 그 후 제어 수단(36)의 스케일링 팩터 정보에 따라 스케일링하고, 이를 레지스터(26)에 출력한다.
x = 24 비트로 바람직하게 구현된 일 실시예에서, 레지스터(26)는 y = 2x 위치의 길이를 가진다. x = 32 비트로 바람직하게 구현된 다른 실시예에서는, x 위치로 환원되는 위치가, 수단 (421 내지 42N)에서의 제곱 후에 즉시, 제곱 동안 또는 제곱 후에 레지스터에 저장하기 전에, 수행된다. 그래서, 합산은 x 비트의 워드 폭으로 유효하게 된다. 여기서, 레지스터는(26)은 단지 y = x개의 위치를 포함한다. 대수를 취하는 수단은 바람직하게는 x개의 위치를 포함할 수도 있다.
유효한 스케일링 팩터에 의해, 결과 레지스터(26)의 유효 비트의 개수는 거의 최적으로 조절될 수 있다. 이제, 대수를 취하는 수단(28)은 레지스터(26)으로부터 y 비트 고정점 표현을 수신하고, 만약 필요하다면, 고 정확도의 나머지 비트 위치가 디스카운트되고 도 3을 참조하여 전술한 LD64 포맷 변환으로 처리되어, 그 결과를 z 비트 고정점 데이터 포맷의 레지스터(30)에 기입하며, 여기서 z = y 가 바람직하고, y = x가 바람직하다.
결과 레지스터(30)내의 결과는 레지스터(221 내지 22N)내의 값의 제곱의 합의 스케일링된 대수 표현을 나타낸다. 리스케일링 수단(32)은, 레지스터(30)의 스케일링된 값으로부터, 제어 수단(36)으로부터 수신된 보정 값(44)을 감산함으로써 스케일링을 역전시킨다. LD64 포맷의 경우에, 전술한 바와 같이, 보정 값은 LD64(s)가 되며, 여기서 s는 결과 레지스터(30)내의 제곱의 합이 스케일링되는 유 효한 스케일링 팩터이다.
그 결과는 레지스터(34)에서 고정점 데이터 포맷으로 그 리스케일링 수단(32)에 의해 출력된다.
도 4를 참조하면, 가능한 하드웨어 구현을 더 구비하지 않은 본 발명의 바람직한 실시예의 기능이 개략적으로 도시되어 있다. 도 5는 도 4의 장치의 가능한 구현을 좀더 자세히 나타내고 있다. 도면부호 60으로 일반적으로 지시된 도 5의 장치는, 메모리(62), 제어 수단(64), 쉬프팅 수단(66), 제곱기(68), 합산기(70), 대수화기(72), 제산기(74), 및 감산기(76)을 포함하고 있다. 이들 모듈(62 내지 76)은 모두, 예로서 버스 또는 프로그램 인터페이스(78)을 통해 통신 가능하게 연결되어 있다. 수단(66 내지 76은 하드웨어적으로 구현되거나 또는 부분적으로는 각각의 작업을 성취하기 위해 대응하는 프로그램 코드로 구현될 수도 있다. 모듈(66 내지 76)은 x 비트 고정점 데이터 포맷 연산자를 처리할 수 있어야 한다. 모듈(66 내지 76) 중에서, 모듈(66 내지 70)은 제곱 합산 수단(80)을 구성하며, 대수화부(72)와 제산기(74)은 결합하여 대수를 취하는 수단(82)를 구성한다.
제어 수단(64)는, 예로서 프로그램 제어형일 수 있고, x 비트 메모리 개소(841 내지 84N)내에, 메모리(62)내의 x 비트 고정점 데이터 포맷으로 저장되는 값의 제곱의 합이 처리되도록 한다. 제어 수단(64)의 정확한 기능은 도 6을 참조하여 설명된다. 여기서, 메모리 개소(841 내지 84N)내의 x 비트 고정점 값은 주파수 그룹의 주파수 라인 값이다라고 특히 가정한다.
우선, 제어 수단(64)은 메모리 개소(841 내지 84N)내의 그룹의 주파수 라인 값을 조사하고, 공통의 스케일링 팩터를 조절한다. 단계(100)에서의 조절은, 전술한 바와 같이, 메모리 개소(841 내지 84N)의 개수 N 및 그 미사용된 비트 위치의 최소의 개수에 기초하여 수행된다. 특히, 이는 공통의 스케일링 팩터는 2의 승수, 즉 2s로 조절한다. 대안으로서, 제어 수단(64)은 쉬프트 값(s)를 조절하고, 이는 공통의 스케일링 팩터 2s에 대응한다. 제어 수단은 값 s 또는 2s를 내부 또는 외부 레지스터(101)에 기입하여 래치한다.
후속하는 단계(102)에서, 제어 수단(64)는, 공통의 스케일링 팩터 및/또는 쉬프트 값에 따라, 쉬프팅 수단(66)이, 그 그룹의 주파수 라인 값을 가진 메모리 개소(841 내지 84N)의 내용을 좌측으로 s만큼 쉬프트시키도록 한다.
단계(104)에서, 제어 수단(64)은, 제곱기(68)가 메모리 개소(841 내지 84N)의 각각의 값을 제곱하고 2x 비트 결과의 상위 절반을 각각의 메모리 개소(841 내지 84N)에 기입하도록 하게 한다. 제곱기(68)은 예로서 승산기이며, 제어 수단(64)는, 대응하는 값이 메모리 개소(841 내지 84N)의 하나로부터 제곱되어 얻어진 각각의 값을 승산기의 x 비트 승산 레지스터로 기입한다. 제곱기는 내부적으로, 예로서 2x 비트 결과 레지스터를 포함할 수도 있고, 여기서 제어 수단(64)은 상위 절반, 즉, x 비트 고정점 제곱 값만 각각의 메모리 개소(841 내지 84N)내에 다시 기입되도록 하게 한다. 대안으로서, 제곱기는 단 하나의 x 비트 표현을 미리 계산하고 그래서 단 하나의 x 비트 출력 레지스터를 가지게 된다.
다음에, 단계(106)에서, 제어 수단(64)는 합산기(70)에 의해 메모리 개소(841 내지 84N)내의 모든 내용에 대한 합산을 산출한다. 이는, 최초 2개의 값의 합산으로부터 시작하고, 그 결과를 x 비트 고정점 데이터 포맷으로 x 비트 합산 레지스터에 기입한다. 다음에, 제어 수단(64)는, 메모리 개소(86)을 가진 값을 후속하는 값들에 차례로 가산하고 그 메모리 위치(86)의 이전 값을 그 합산 결과로 덮어쓰기 위해 합산기(70)을 이용할 수 있다. 대안으로서, 제어 수단(64)는 메모리 개소(841 내지 84N) 중의 하나에 그 합을 기입하여 그에 누적되도록 할 수도 있다.
단계(108)에서, 제어 수단(64)은 대수화기(72)가 메모리 개소(86)내의 합에 대수를 취하게 하고, 그 후, 제산기(74)가 그 결과를 64로 제산하게 할 수도 있다. 예로서, 대수화기(72)의 중간의 결과는, 예로서 제산기(74)의 결과와 같이, 메모리 개소(86)로 다시 기입된다. 젯수가 2의 승수이면, 제산기는 간단한 쉬프팅 수단에 의해 구현될 수도 있다.
단계(108)후에, 제곱의 합에 취해진 대수로 스케일링된 표현이 메모리 개소(86)에 존재하게 된다. 단계(110)에서, 제어 수단은 감사기(76)이, 제산이 수행되고 대수가 취해진 메모리 개수(86)의 값으로부터, 래치(101)에 저장된 스케일링 팩터에 의존하는 값, 즉 2*s/64를 감산하게 한다.
본 발명의 바람직한 실시예가 도 4 내지 도 6을 참조하여 설명된 후, 오디오 인코더에 대한 실시예가 다음에서 설명되며, 여기서 이들 실시예에 따른 장치가 구현된다.
도면부호 150으로 일반적으로 지시된 도 7의 오디오 인코더는, 변환 수단(152), 그룹 에너지 계산 수단(154), 및 코드 스트림 생성기(156)을 포함하며, 이들은 인코더(150)의 입력(158)과 출력(160)과의 사이에 직렬로 연결되어 있다. 코드 스트림 생성기(156)는, 예로서 오디오 신호(164)로부터 무관한 정보를 방출시키기 위해 음향인지 모듈(162)을 이용하여 인코딩하여 입력(158)에 존재하고 인코딩된 데이터 스트림의 오디오 품질에 약간 또는 거의 영향을 미치지 않는 거리로 출력(160)에서 출력되도록 한다. 도 7에 도시되지 아니하였지만, 코드 스트림 생성기(156)는 변환 수단(152) 또는 그룹 에너지 계산 수단(154)에 피드백 라인을 통해 결합된다.
입력(158)에 존재하는 오디오 신호(164)는, 예로서 소정의 샘플링 주파수로 샘플링된 오디오 샘플링 값의 시퀀스로서 존재한다. 오디오 신호(164)는, 예로서 PCM 포맷으로 존재할 수도 있다. 오디오 신호는(164)에서 시간 t에 대한 그래프로 표현되고, 여기서 수직 축은 임의의 단위의 진폭 A를 나타낸다.
변환 수단(152)은, 스펙트럼 성분으로 오디오 신호(164)를 분해함으로써 시간 영역으로부터 스펙트럼 영역으로 오디오 신호를 변환시킨다. 변환 수단(152)은, 예로서 특히, 32 대역 필터들을 가진 분석 필터 뱅크를 포함할 수도 있다. 더 자세히 설명하면, 변환 수단(152)은 오디오 신호(164)를 스펙트럼 성분 섹션으로 섹션 별로 분해한다. 스펙트럼 분해에 의해 얻어진 이들 섹션 또는 프레임(166)은 시간에 따라 예로서 50%만큼 중첩된다. 각각의 스펙트럼 성분에서, 스펙트럼 값 및/또는 주파수 라인 값은 각각의 연속한 프레임에 대해 생성되며, 이는 변환 수단(152)에 의해 생성된 스펙트럼(168)에서 점으로 표시되어 있다. 이러한 방식으로, 주파수 라인 값의 시퀀스로부터 주파수 라인이 스펙트럼 성분 마다 생성되고, 주파수 라인은(168)에서 수평방향 화살표로서 지시되어 있고, 이는 3개의 지시된 프레임(166)만에 대한 주파수 라인 값으로 시간으로 제산된다. 스펙트럼(168)에서, 주파수 라인의 임의의 개수는 스펙트럼 축 또는 주파수 축 f를 따라 배열되지만, 주파수 라인의 실제의 개수는 더 많다
이렇게 생성된 스펙트럼(168)에 기초하여, 코드 스트림 생성기(156)는 인코딩된 데이터 스트림을 생성하게 된다. 이를 위하여, 코드 스트림 생성기(156)는 모든 스펙트럼 성분에 대해 스펙트럼 분해를 하거나 향상시킬 필요는 없다. 오히려, 음향인지 관점에 따라 주파수 라인들이, 원으로 지시된 바와 같이, 그룹(170)으로 분할된다.
각각의 그룹(170)에 대한 코드 스트림 생성을 위해, 코드 스트림 생성기(156)는, 각각의 프레임(166)에 대해, 그 관련된 신호 에너지 값, 즉, 진폭 값의 제곱의 합, 즉, 주파수 라인 값의 제곱의 합을 요구한다.
이러한 계산은, 그룹 에너지 계산 수단(154)에 의해 수행된다. 이는, 주파수 라인의 제곱의 합으로서, 주파수 라인의 각각의 그룹(170)에 대한 신호 에너지를 계산하고, 그룹 에너지 계산 수단(154)는, 예로서 도 4 및 도 5에 도시된 바와 같이 구성되거나, 및/또는 도 4 내지 도 6에서 설명된 기능에 의해 구성된다. 그 룹 에너지 계산 수단(154)의 결과는 신호 에너지 값의 시퀀스(172), 즉, 그룹(170)마다의 시퀀스(172)이다. 그래서, 신호 에너지 시퀀스(172)는 프레임(166)당 하나의 신호 에너지 값을 가지며, 이는 화살표 172를 따라 점으로 표시되어 있다.
신호 에너지 값의 이들 시퀀스(172)에 기초하여, 코드 스트림 생성기(156)는 음향인지 모듈(162)에 기초하는 인코딩된 데이터 스트림(160)을 생성한다. 여기서, 수단(156)내의 신호 에너지 값의 재처리의 이점은, 주파수 라인 값이 존재하였던 동일한 개수의 비트를 가진 고정점 데이터 포맷에 존재하는 값일 뿐만 아니라, 이들 범위가 더 간단한 승산, 지수화, 및 제산의 수행을 가능케 하고, 계산 동작이 대수 영역에서 더 간단한 가산/감산 및 승산/제산으로 변환되는 바와 같이, 대수 영역에 존재하는 값일 수도 있다.
이를 나타내기 위해, MPEG 데이터 스트림을 출력하는 도 7의 인코더의 경우가 고려된다.
도 7의 오디오 인코더는, 예로서 MPEG ACC 인코더이다. 이 경우에, 코드 스트림 생성기(156)는 TNS(temporal noise shaping) 모듈을 포함하여, 코드 스트림 생성기(156)는 에너지 가중된 스펙트럼의 효율적 계산을 수행한다. TNS 모듈은 특히, x =1/√(SE) 타임의 신호 에너지(SE)로 계산을 수행한다. 이는, 그룹 에너지 계산 수단(154)에 의해 이용되도록, 대수 포맷 LD64인 신호 에너지로서 더욱 용이하게 수행될 수도 있다. TNS 모듈은 x를 LD64-1로 간단히 계산하며(-LD64_SE >> 1), 여기서 a >> b 는, 우측의 b 비트만큼의 좌측의 연산자 a 의 우측으로의 쉬프 트 연산을 나타내며, LD64-1( )은 대수 함수 LD64( )의 역함수를 나타내며, 이는 그룹 에너지 계산 수단(154)에 의해 출력된다. 기호 ">> 1"은 1비트 만큼 우측으로의 쉬프트를 나타낸다. 대수 범위에서 수행될 때, 2로의 제산은, 선형 범위에서 역함수 1/x에 대응한다. LD64-1 함수의 계산은, 제곱근 및 그 역함수 계산보다 낮은 복잡도로 실현될 수 있고, 이는 신호 에너지가 선형 범위에서 코드 스트림 생성기(156)에 공급되면 요구될 수도 있다.
코드 스트림 생성기(156)는 또한, 인코딩된 MPEG 4 ACC 데이터 스트림을 생성할 수 있어, PNS(perceptual noise substitution) 모듈을 포함할 수도 있다. PNS 모듈은, 내부적으로 주파수 그룹(170)내의 청취 임계값과 신호 에너지와의 거리를 계산한다. PNS 모듈은 특히, 청취 임계값과 신호 에너지와의 거리에 따라, 노이즈 치환(noise substitution)이 수행되어야 하는지를 판단한다. 그룹 에너지 계산 수단(154)에서 출력되는 신호 에너지의 대수 표현의 큰 다이나믹스와 그 관련 정확도 코드, 및 스트림 생성기(156)에서의 대수 표현 LD64에 또한 제공되는 청취 임계값은, 정확한 PNS 결정에 본질적인 기여를 한다. 특히, PSN 모듈에서 코히어런스 함수에는, 제산 및 제곱 계산이 Y =(SE1/√(SE2·SE3))의 형태로 존재하고, 여기서 SE1, SE2, 및 SE3은 그룹 에너지 계산 수단(154)에 의해 출력되는 신호 에너지이다. 신호 에너지의 대수 표현은, 계산을 매우 용이하게 하고 가속화한다. 특히, 코드 스트림 생성기(156)내의 PNS 모듈은, 다음과 같은 계산에 의해, LD64_Y, 즉, LD64 포맷의 Y의 계산을 수행할 수도 있다.
LD64_Y = LD64_SE1 -((LD64_SE2 + LD64_SE3) >> 1),
여기서, LD64_SE#는, 그룹 에너지 계산 수단(154)에 의해 출력되는 각각의 신호 에너지 값 SE#의 대수 표현이다.
코드 스트림 생성기(156)는, 예로서 중심부/측부 인코딩 결정을 수행하는 중심부/측부(center/side; CS) 스테레오 모듈을 포함할 수도 있다. 이러한 CS 모듈에서, 다수의 제산 계산, 즉, 중심부/측부(C/S) 인코딩이 이용되어야 하는지 여부를 결정하기 위해 청취 임계값으로부터 신호 에너지로의 계산이 수행된다. 그룹 에너지 계산 수단(154)에 의해 출력되는 바와 같은, LD64 포맷을 이용함으로써, 이러한 제산은 더 간단한 감산 계산으로 전환된다. CS 인코딩에 이용될 임계값은 상수이고, 따라서 소스 코드에서 이미 대수 범위로 변환되며, 이로써 추가적인 계산 시간이 프로그램 실행시간에 대해 요구되지 않는다. 이는, LD64 계산과 연관된 변형된 코드에서 이용되는 더 많은 상수에 대해 적용된다. 특히, 전술한 바와 같은 내용은, MPEG Layer-3 또는 ACC 인코더의 세기(intensity) 스테레오 모듈에도 또한 적용된다.
코드 스트림 생성기(156)은, 음량을 산출하는 스케일링 팩터 평가기를 더 포함할 수도 있다. 예로서, 코드 스트림 생성기(156)의 양자화 모듈에 배치되는 스케일링 팩터 평가기에서는, 청취 임계값의 4 제곱근 계산, 즉, 음량 계산이 수행된다. 청취 임계값을 대수 데이터 포맷, 즉, LD64로 표현함으로써, 4 제곱근 계산이, 대수 평균 임계값을 2 비트만큼 우측으로 쉬프트함으로써 매우 효율적으로 수행될 수 있다. 역의 단계, 즉 4의 제곱 계산도 또한, 2 비트만큼의 죄측으로의 쉬 프트에 의해 매우 간단히 수행될 수 있다.
코드 스트림 생성기(156)의 스케일링 팩터 평가기에서, 예로서 양자화 단계 폭의 일부인 스케일링 팩터(SCF)의 계산이, 청취 임계값(LT) 및 신호 에너지(SE)로부터 계산될 수 있다. 이 계산은, SCF = log(k*LT/SE) 타입의 계산 단계를 포함하며, 여기서 log( )는 상용 대수이고, k는 상수이다. 이 계산은, LD64 포맷과 원시 계산식의 대응하는 변환을 이용하여 매우 정확하고 효율적으로 성취될 수 있다. 스케일링 팩터 평가기는, 특히 SCF = log(k) + log2*64*(LD64_LT - LD64_SE)와 같은 계산을 수행할 수도 있다.
코드 스트림 생성기(156)내의 가능한 모듈들에 대한 전술한 예에서는, 대수 데이터 포맷(LD64)이 고정점 프로세서의 효율을 증대를 촉진시키는 것을 보여준다. 많은 경우에, 대수 데이터 포맷(LD64)은, 일정한 오디오 품질이 떨어지지 않는다면, 이들 가능한 플랫폼에서 높은 오디오 품질을 가진 오디오 코덱을 거의 구현하게 한다.
코드 스트림 생성기(156)내의 가능한 모듈에 대한 전술한 예에서는, 특히, 대수 데이터 포맷의 신호 에너지, 청취 임계값, 및 에너지 값의 표현이, 신호 에너지 및 청취 임계값의 처리에서 있어서, 매우 적절하며, 대부분의 계산 단계는 제산 또는 승산에 의해 수행된다. 그래서, 제산은 감산으로, 승산은 가산으로 변환되어, 그 결과, 도시된 대수 데이터 포맷에 의한 오디오 인코더의 신호 에너지 및 청취 임계값의 효율적인 표현 및 처리를 가능케 한다. 선형 범위에서, 즉, 비-대수 범위에서 신호 에너지는 분수형 고정점 데이터 포맷으로 표현되며, 이는 -1.0 내지 +0.99999…의 범위의 값을 가진다.
전술한 실시예에서, 2를 밑으로 하는 대수로서 대수 두얼리스 LD가 이용된다. 대수 두얼리스에서는, 선형 범위의 0.25의 신호 에너지 값이 -2의 LD 값에 대응한다. 선형 범위의 0.3의 신호 에너지 값은 -1.7369656의 LD 값에 대응한다. 고정점 프로세서에서, 전형적으로 정수 값 또는 분수 값(하지만 혼합된 값은 아님)이, 전술한 실시예에서, 표현될 수도 있으며, LD 값은 분수 값으로만 얻어지는 LD64 포맷의 콘텍스트에서 스케일링되었다. 물론, 다른 가능성에서는, 정수 값만 얻어지는 스케일링이 채택될 수도 있다. 팩터 1/64의 스케일링이 특별히 선택되고, 이 팩터는 64 비트까지 모든 워드 폭에 적용가능하며, 따라서 48 비트 및 32 비트의 종래의 워드 폭을 커버한다. 1/64로 스케일링된 대수 두얼리스, 즉, LD64의 계산은 수학식 y = log2(x)/64 = LD64(x)에 따라 수행된다. 확장된 포터빌리티(portability)의 포기하며, 이러한 팩터도 물론 1/y까지 증가될 수 있고, 여기서 y는 대수가 취해지지 않은 스케일링된 제곱의 합의 비트의 개수이다.
도 3은 대수 함수의 그래프를 도시한다. 여기서, 대수 함수의 특성은, 고정점 표현에서 작아질수록, 즉, 실제로 더 부정확하게 될수록, 입력 값 x(0.0에 더 근접하게 됨)이 더 많은 출력 y의 개수를 제공하며, 즉, 대수 범위에서 해상도가 작아지게 되며, 이는 그 크기가 증가하여(즉, -1.0에 더 근접하게 됨), 고정점 표현에서 더욱 정확하게 된다는 것이 인식될 수 있다. 전술한 실시예에 따르면, 대 수 범위로의 변환 전에 신호 에너지의 계산의 정확도가 손실되는 것은, 공통의 스케일링 팩터 및/또는 제곱 계산 전의 공통의 쉬프트 값에 의해 회피되었다.
따라서, 도 7의 실시예는, 신호 에너지 및 청취 임계값의 표현 및 처리를 위한 음향인지 모듈 및/또는 양자화 모듈에서 스케일링된 또는 스케일링되지 않은 대수 데이터 포맷을 이용하는 인코더를 나타낸다. 하지만, 대수 두얼리스의 설명 및 1/64로의 스케일링의 설명은 단지 예시적인 것이라는 것은 이해되어야 한다. 어떠한 경우에도, 대수 표현은, 중심부/측부 결정 모듈에서 및 양자화 모듈의 스케일링 팩터 평가기에서와 같은 다수의 계산의 신속한 실행을 성취하는데 도움을 주며, 이는 전술한 바와 같이, 대수 포맷을 이용함으로써, 원시적으로 존재하는 제산이 단순한 감산으로 변환되고, 이는 고정점 프로세서에서 매우 빠르게 수행될 수 있다. 마찬가지로, 2 제곱 근, 4 제곱근과 같은 제곱근 계산에도 적용되고, 이는 단순한 우측으로의 쉬프트 계산으로 변환된다. 대수 범위로의 변환을 위해 취해지는 계산의 소모는, 대수화의 이후 단계에서의 속도 이득에 의해 거의 보상된다. 따라서, 전술한 실시예의 이점으로서는, 특히 대수 표현의 이용에 의해 처리 속도의 증대뿐만 아니라 대수적으로 표현되는 값의 정확도의 증대도 성취된다.
전술한 설명을 참조하면, 본 발명은 고정점 데이터 포맷에만 제한되지 아니하다는 것이 이해되어야 한다. 값의 제곱의 합의 생성과 관련된 전술한 실시예는 고정점 데이터 포맷뿐만 아니라 정수 데이터 포맷에도 존재한다. 이 경우에, 2x 비트 제곱 합산 결과로부터의 y 비트의 더 높은 값이 대수를 취하는 계산에 제공될 수도 있다.
전술한 실시예에 따르면, 1/64의 스케일링이 수행되는 대수를 취하는 함수가 이용된다. 이 스케일링 팩터는, 어떤 하나 그리고 그와 동일한 인코딩이 서로 다른 고정점 데이터 포맷을 가진 서로 플랫폼에서 실행된다면, 적절하게 된다. 하지만, 대수 함수에서의 이 팩터는 x 보다만 크다는 것, 즉, 제곱의 합산에 제공되는 값의 비트의 개수 보다 크다는 것이 또한 가능하다.
더 나아가, 전술한 실시예에 있어서, 본 발명은 제곱의 합의 생성에만 한정되지 아니한다는 것이 이해되어야 한다. 예를 들면, 단지 하나의 값을 가지는 그룹이 존재하여 단지 한번의 인코딩이 수행되더라도, 본 발명은 이점이 있다. 이 경우에, 제어 수단(36)은 물론 어떠한 방법으로도 스케일링 팩터 정보를 예측해야 할 필요는 없다. 오히려, 이 경우에, 제곱 계산 전에 그 값을 스케일링하는데 이용되는 스케일링 팩터는 유효 비트의 개수 및/또는 미사용된 비트의 개수로부터 자동적으로 산출될 수도 있다. 일반적으로, 본 발명은 값의 제곱에 선형적으로 의존하는 결과의 표현을 생성하기 위해 이용될 수 있다.
전술한 설명을 참조하면, 본 발명은 물론 오디오 인코딩의 콘텍스트에서의 이용에만 제한되지 아니하다는 것이 또한 이해되어야 한다. 오디오 인코딩과 관련된 전술한 이점, 즉, 오디오 인코딩의 소모의 감소와 동시에, 동적 범위가 유지된 개개의 신호 에너지에 대한 동일한 스케일링 레벨을 성취하는 것은 또한, 다른 응용 분야, 예를 들면 오디오 파일에 워터 마크 등을 부여하는 응용 분야에서도 얻어질 수 있다.
이러한 상황에서, 본 발명의 기법은 소프트웨어적으로 구현될 수도 있다는 것이, 특히 이해되어야 한다. 이러한 구현은, 전자적으로 판독가능한 제어 신호와 함께 디지털 저장 매체, 특히 플로피 디스크 또는 CD상에서, 각각의 방법이 수행되는 프로그램가능한 컴퓨터 시스템과 협동하여 실현될 수도 있다. 일반적으로, 본 발명은 또한, 컴퓨터 프로그램 제품이 컴퓨터에서 실행될 때, 기계 판독가능한 캐리어 상에 저장된 본 발명의 방법을 수행하기 위한 프로그램 코드가 포함하는 그 컴퓨터 프로그램 제품으로 포함한다. 다시 말하면, 본 발명은, 컴퓨터 프로그램이 컴퓨터에서 실행될 때, 그 방법을 수행하기 위한 프로그램 코드를 가진 컴퓨터 프로그램으로 실행될 수도 있다.

Claims (19)

  1. 정보 진폭 신호의 신호 에너지를 계산하기 위한 장치로서,
    정보 진폭 신호(164)를 대수가 취해지지 않은 x 비트 표현으로 존재하는 스펙트럼 값으로 분해하는 변환 수단(152);
    각각의 제곱된 스펙트럼 값을 얻기 위해 각각의 스펙트럼 값(221 내지 22N; 841 내지 84N)의 대수가 취해지지 않은 x 비트 표현에 대해 제곱 계산(40; 68)을 수행하고, 대수가 취해지지 않은 y 비트 표현(26)에서의 계산 결과로서 제곱의 합을 얻기 위해 상기 제곱된 스펙트럼 값에서 합산(38; 70)을 수행하는 처리 수단(24; 80)으로서, y는 2배의 x 와 작거나 같고, 상기 처리 수단(24; 80)은 유효한 스케일 링 팩터를 이용하도록 구성되어, 그 계산 결과가 상기 유효한 스케일링 팩터에 의존하여 스케일링되도록 하는 상기 처리수단;
    상기 계산 결과에 대수가 취해지는 스케일링된 표현(30)을 얻기 위해, 그 계산 결과의 대수가 취해지지 아니한 y 비트 표현(26)에 대수 함수를 적용시키기 위한 대수를 취하는 수단(28; 82); 및
    상기 신호 에너지로서의 계산 결과에 취해진 대수(34)를 얻기 위해, 상기 스케일링된 대수 표현(30)에 또는 그로부터 보정 값을 가산하거나 또는 감산하기 위한 리스케일링 수단(32; 76)으로서, 그 값은 계산 결과에 대수가 취해진 유효한 스케일링 팩터에 적용된 상기 대수 함수에 대응하는 상기 리스케일링 수단을,
    포함하는 정보 진폭 신호의 신호 에너지를 계산하기 위한 장치.
  2. 제1항에 있어서,
    상기 처리 수단(24; 80)은 각각의 스펙트럼 값의 x 비트 표현(221 내지 22N; 841 내지 84N)을 고정점 데이터 포맷으로 예측하도록 구성되어 있는 장치.
  3. 제1항 또는 제2항에 있어서, 상기 유효한 스케일링 팩터가 상기 값의 그룹의 스펙트럼 값의 개수(N)의 의존하도록 상기 처리 수단(24; 80)을 구동하기 위한 제어 수단(36; 64)을 더 포함하는 장치.
  4. 제1항 내지 제3항 중의 어느 한 항에 있어서, 상기 유효한 스케일링 팩터로의 상기 스케일링에 의해 상기 대수가 취해지지 아니한 y 비트 표현(26)에서의 유효 위치의 개수가 크게 되도록 상기 처리 수단(24; 80)을 구동하기 위한 제어 수단(36; 64)을 더 포함하는 장치.
  5. 제1항 내지 제4항 중의 어느 한 항에 있어서,
    상기 스펙트럼 값의 개수(N)에 의존하도록 공통 스케일링 팩터를 조절하기 위한 제어 수단(64)를 더 포함하고,
    상기 처리 수단(80)은:
    x 비트 표현으로 스케일링된 스펙트럼 값을 얻기 위해 상기 공통 스케일링 팩터에 의존하여 각각의 스펙트럼 값의, 대수가 취해지지 않은 x 비트 표현(841 내지 84N)을 스케일링하기 위한 스케일링 수단(66);
    스케일링된 제곱 계산된 스펙트럼 값을 얻기 위해 각각의 스케일링된 스펙트럼 값의 x 비트 표현을 제곱 계산하기 위한 제곱 계산 수단(68); 및
    제곱의 합을 얻기 위해 상기 스케일링된 제곱 계산된 스펙트럼 값을 합산하기 위한 합산 수단(70)을 포함하는 장치.
  6. 제5항에 있어서,
    각각의 스펙트럼 값의, 상기 대수가 취해지지 않은 x 비트 표현(841 내지 84N)은 고정점 데이터 포맷으로 표현되고,
    상기 제어 수단(64)은, 미사용된 비트 위치의 최소의 개수에 의존하여 상기 스펙트럼 값의 x 비트 표현으로 상기 조절을 더 수행하도록 구성된 장치.
  7. 제5항 또는 제6항에 있어서,
    상기 제어 수단(64)는 상기 공통 스케일링 팩터를 2의 k제곱으로 조절하도록 구성되고,
    상기 스케일링 수단(66)은 x 비트 값 레지스터내의 상기 그룹의 스펙트럼 값의 x 비트 표현을 k 비트만큼 쉬프트시키도록 구성되어 있는 장치.
  8. 제5항 내지 제7항 중의 어느 한 항에 있어서,
    상기 제곱 계산 수단(68)은 2x 결과 레지스터를 포함하고, 상기 스케일링된 제곱 계산된 스펙트럼 값들 중의 소정의 스케일링된 제곱 계산된 스펙트럼 값을 상기 2x 결과 레지스터 내에 2x 비트 표현으로 저장하도록 구성되고,
    상기 합산 수단(70)은
    나머지 스케일링된 제곱 계산된 스펙트럼 값의 y 비트 섹션과 함께 상기 y 비트 섹션을 합산하기 위해 그리고 상기 제곱의 합을 y 비트 레지스터에 기입하기 위해, 상기 나머지 비트를 상기 2x 결과 레지스터에서 제거하면서 상기 2x 결과 레지스터로부터 상기 2x 비트 표현의 y 비트 섹션을 독출하도록 구성되어 있는 장치.
  9. 제1항 내지 제8항 중의 어느 한 항에 있어서,
    상기 대수를 취하는 수단(28; 72)은, 상기 대수가 취해진 상기 스케일링된 표현이 상기 대수가 취해지지 않은 y 비트 표현(26)의 상기 대수 두얼리스의 y비트 표현을 y 보다 크거나 같은 수로 제산하여 얻어진 것에 대응하도록, 상기 대수가 취해지지 않은 y 비트 표현(26)을 처리하도록 구성되어 있고,
    상기 리스케일링 수단(32)는 상기 대수가 취해진 상기 스케일링된 표현을 가산하고, 상기 수에 의해 제산된 상기 유효한 스케일링 팩터의 상기 대수 두얼리스에 대응하는 양을 감산하도록 구성되어 있는 장치.
  10. 제1항 내지 제9항 중의 어느 한 항에 있어서, 상기 처리 수단(24; 80), 상기 대수를 취하는 수단(28; 82), 및 상기 리스케일링 수단(32)은 고정점 데이터 포맷으로 동작하도록 구성되어 있는 장치.
  11. 제1항 내지 제10항 중의 어느 한 항에 있어서, 고정점 프로세서로 구현되는 장치.
  12. 제1항 내지 제11항 중의 어느 한 항에 있어서, y는 x 또는 2x인 장치.
  13. 제1항 내지 제12항 중의 어느 한 항에 있어서,
    상기 변환 수단(152)는 스펙트럼 성분 당 하나의 스펙트럼 라인을 얻기 위해 상기 정보 진폭 신호(164)를 스펙트럼 성분으로 분해하도록 구성되고,
    각각의 스펙트럼 성분은 스펙트럼 값의 그룹을 포함하고,
    상기 스펙트럼 라인은 서로 다른 스펙트럼 그룹(170)에 할당되고,
    상기 처리 수단은, 각각의 그룹에 대해 제곱의 합을 계산 결과로서 얻기 위해 각각의 그룹(170)내의 스펙트럼 값에서 상기 제곱 계산 및 상기 합산을 각각의 그룹(170)에 대해 수행하도록 구성되고,
    상기 대수를 취하는 수단 및 상기 리스케일링 수단은 제곱의 합의 각각에 대한 신호 에너지를 얻도록 구성되어 있는 장치.
  14. 제13항에 있어서, 상기 그룹의 상기 신호 에너지 값에 기초하여, 상기 정보 진폭 신호(164)의 인코딩된 버전을 표현하는 인코딩된 데이터 스트림을 생성하기 위한 코드 스트림 생성기(156)를 더 포함하는 장치.
  15. 제14항에 있어서, 상기 정보 진폭 신호는 오디오 신호인 장치.
  16. 제14항 또는 제15항에 있어서, 상기 코드 스트림 생성기(156)는 음향인지 모듈(162)에 기초하여 상기 인코딩된 데이터 스트림을 생성하도록 구성되어 있는 장치.
  17. 제14항 또는 제15항에 있어서, 코드 스트림 생성기는 MPEG 1/2 Layer-3 인코더 또는 MPEG 2/4 ACC 인코더인 장치.
  18. 정보 진폭 신호의 신호 에너지를 계산하기 위한 방법으로서,
    정보 진폭 신호(164)를 대수가 취해지지 않은 x 비트 표현으로 존재하는 스펙트럼 값으로 분해하는 단계;
    각각의 제곱된 스펙트럼 값을 얻기 위해 각각의 스펙트럼 값(221 내지 22N; 841 내지 84N)의 대수가 취해지지 않은 x 비트 표현에 대해 제곱 계산(40; 68)을 수행하고, 대수가 취해지지 않은 y 비트 표현(26)에서의 계산 결과로서 제곱의 합을 얻기 위해 상기 제곱된 스펙트럼 값에서 합산(38; 70)을 수행하는 것으로서, y는 2배의 x 와 작거나 같고, 상기 처리하는 것(24; 80)은 유효한 스케일링 팩터를 이용하여 수행되어, 그 계산 결과가 상기 유효한 스케일링 팩터에 의존하여 스케일링되도록 하는 상기 처리하는 단계;
    상기 계산 결과에 대수가 취해지는 스케일링된 표현(30)을 얻기 위해, 그 계산 결과의 대수가 취해지지 아니한 y 비트 표현(26)에 대수 함수를 적용시키는 단계; 및
    상기 신호 에너지로서의 계산 결과에 취해진 대수(34)를 얻기 위해, 상기 스케일링된 대수 표현(30)에 또는 그로부터 보정 값을 가산하거나 또는 감산하는 것으로서, 그 값은 계산 결과에 대수가 취해진 유효한 스케일링 팩터에 적용된 상기 대수 함수에 대응하는 상기 가산하거나 또는 감산하는 단계를,
    포함하는 상기 정보 진폭 신호의 신호 에너지를 계산하기 위한 방법.
  19. 컴퓨터상에 실행되는 컴퓨터 프로그램으로서, 제18항에 따른 상기 방법을 수행하기 위한 프로그램 코드를 가진 컴퓨터 프로그램.
KR1020077013249A 2004-12-13 2005-12-13 값의 제곱에 선형적으로 의존하는 계산 결과의 표현을생성하는 방법 KR100921795B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102004059979A DE102004059979B4 (de) 2004-12-13 2004-12-13 Vorrichtung und Verfahren zur Berechnung einer Signalenergie eines Informationssignals
DE102004059979.3 2004-12-13

Publications (2)

Publication Number Publication Date
KR20070086097A true KR20070086097A (ko) 2007-08-27
KR100921795B1 KR100921795B1 (ko) 2009-10-15

Family

ID=36390168

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077013249A KR100921795B1 (ko) 2004-12-13 2005-12-13 값의 제곱에 선형적으로 의존하는 계산 결과의 표현을생성하는 방법

Country Status (19)

Country Link
US (1) US8037114B2 (ko)
EP (2) EP1843246A3 (ko)
JP (2) JP4954087B2 (ko)
KR (1) KR100921795B1 (ko)
CN (1) CN101147122B (ko)
AU (1) AU2005315826B2 (ko)
BR (1) BRPI0517176B1 (ko)
CA (1) CA2590509C (ko)
DE (1) DE102004059979B4 (ko)
ES (1) ES2596275T3 (ko)
HK (1) HK1105233A1 (ko)
IL (1) IL183835A (ko)
IN (1) IN266829B (ko)
MX (1) MX2007006805A (ko)
NO (1) NO341726B1 (ko)
PL (1) PL1825356T3 (ko)
PT (1) PT1825356T (ko)
RU (1) RU2375743C2 (ko)
WO (1) WO2006063797A2 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004059979B4 (de) 2004-12-13 2007-11-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zur Berechnung einer Signalenergie eines Informationssignals
GB0817977D0 (en) * 2008-10-01 2008-11-05 Craven Peter G Improved lossy coding of signals
US8311843B2 (en) * 2009-08-24 2012-11-13 Sling Media Pvt. Ltd. Frequency band scale factor determination in audio encoding based upon frequency band signal energy
EP2490006A4 (en) * 2009-10-14 2018-05-02 Nippon Paper Industries Co., Ltd. Method for measuring degree of contaminant deposition
JP2012235832A (ja) * 2011-05-10 2012-12-06 Canon Inc 被検体情報取得装置
EP2980801A1 (en) 2014-07-28 2016-02-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Method for estimating noise in an audio signal, noise estimator, audio encoder, audio decoder, and system for transmitting audio signals
US10020002B2 (en) * 2015-04-05 2018-07-10 Qualcomm Incorporated Gain parameter estimation based on energy saturation and signal scaling
US10559315B2 (en) * 2018-03-28 2020-02-11 Qualcomm Incorporated Extended-range coarse-fine quantization for audio coding
DE102022200283A1 (de) * 2022-01-13 2023-07-13 Robert Bosch Gesellschaft mit beschränkter Haftung Radarsystem und Verfahren zum Betreiben eines Radarsystems

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0208712B1 (en) * 1984-12-20 1993-04-07 Gte Laboratories Incorporated Adaptive method and apparatus for coding speech
JPS61188624A (ja) * 1985-02-15 1986-08-22 Fujitsu Ltd 固定小数点演算装置
US5197024A (en) 1989-06-14 1993-03-23 Pickett Lester C Method and apparatus for exponential/logarithmic computation
JP2948378B2 (ja) * 1991-09-28 1999-09-13 富士ゼロックス株式会社 重力多体系および電気力多体系用相互作用力計算用処理装置
JP3217576B2 (ja) * 1993-02-22 2001-10-09 テキサス インスツルメンツ インコーポレイテツド 集積オーディオデコーダ装置及び動作方法
US5764698A (en) * 1993-12-30 1998-06-09 International Business Machines Corporation Method and apparatus for efficient compression of high quality digital audio
US5570454A (en) * 1994-06-09 1996-10-29 Hughes Electronics Method for processing speech signals as block floating point numbers in a CELP-based coder using a fixed point processor
JPH08237497A (ja) * 1995-02-23 1996-09-13 Canon Inc 画像処理装置及び方法
US5608663A (en) * 1995-03-03 1997-03-04 Motorola, Inc. Computational array circuit for providing parallel multiplication
KR0154387B1 (ko) * 1995-04-01 1998-11-16 김주용 음성다중 시스템을 적용한 디지탈 오디오 부호화기
US5699485A (en) * 1995-06-07 1997-12-16 Lucent Technologies Inc. Pitch delay modification during frame erasures
US5719998A (en) 1995-06-12 1998-02-17 S3, Incorporated Partitioned decompression of audio data using audio decoder engine for computationally intensive processing
JP3110288B2 (ja) * 1995-07-21 2000-11-20 日本電気株式会社 指数対数変換回路
DE19638997B4 (de) * 1995-09-22 2009-12-10 Samsung Electronics Co., Ltd., Suwon Digitales Toncodierungsverfahren und digitale Toncodierungsvorrichtung
KR100335609B1 (ko) 1997-11-20 2002-10-04 삼성전자 주식회사 비트율조절이가능한오디오부호화/복호화방법및장치
JPH11242585A (ja) * 1998-02-24 1999-09-07 Sony Corp 除算回路およびグラフィック演算装置
US6351730B2 (en) * 1998-03-30 2002-02-26 Lucent Technologies Inc. Low-complexity, low-delay, scalable and embedded speech and audio coding with adaptive frame loss concealment
DE19826252C2 (de) * 1998-06-15 2001-04-05 Systemonic Ag Verfahren zur digitalen Signalverarbeitung
JP3515903B2 (ja) * 1998-06-16 2004-04-05 松下電器産業株式会社 オーディオ符号化のための動的ビット割り当て方法及び装置
JP2000151414A (ja) * 1998-11-12 2000-05-30 Matsushita Electric Ind Co Ltd ディジタルオーディオ符号化装置、同符号化方法、及び同符号化プログラムを記録した記録媒体
US6341300B1 (en) * 1999-01-29 2002-01-22 Sun Microsystems, Inc. Parallel fixed point square root and reciprocal square root computation unit in a processor
US6516049B1 (en) * 2000-06-06 2003-02-04 Ikanos Communications, Inc. Method and apparatus for insertion loss estimation in wireline communications
US6754618B1 (en) * 2000-06-07 2004-06-22 Cirrus Logic, Inc. Fast implementation of MPEG audio coding
JP2002196792A (ja) * 2000-12-25 2002-07-12 Matsushita Electric Ind Co Ltd 音声符号化方式、音声符号化方法およびそれを用いる音声符号化装置、記録媒体、ならびに音楽配信システム
US6732071B2 (en) 2001-09-27 2004-05-04 Intel Corporation Method, apparatus, and system for efficient rate control in audio encoding
DE10217297A1 (de) 2002-04-18 2003-11-06 Fraunhofer Ges Forschung Vorrichtung und Verfahren zum Codieren eines zeitdiskreten Audiosignals und Vorrichtung und Verfahren zum Decodieren von codierten Audiodaten
DE10234130B3 (de) 2002-07-26 2004-02-19 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Erzeugen einer komplexen Spektraldarstellung eines zeitdiskreten Signals
SG135920A1 (en) 2003-03-07 2007-10-29 St Microelectronics Asia Device and process for use in encoding audio data
DE102004059979B4 (de) 2004-12-13 2007-11-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zur Berechnung einer Signalenergie eines Informationssignals

Also Published As

Publication number Publication date
PT1825356T (pt) 2016-11-04
BRPI0517176A (pt) 2008-09-30
RU2375743C2 (ru) 2009-12-10
DE102004059979A1 (de) 2006-06-14
KR100921795B1 (ko) 2009-10-15
WO2006063797A2 (de) 2006-06-22
US20070276889A1 (en) 2007-11-29
IL183835A0 (en) 2007-10-31
IN266829B (ko) 2015-06-04
CN101147122B (zh) 2012-07-18
JP2008026912A (ja) 2008-02-07
AU2005315826A1 (en) 2006-06-22
CA2590509A1 (en) 2006-06-22
NO341726B1 (no) 2018-01-08
MX2007006805A (es) 2007-07-20
IL183835A (en) 2013-07-31
BRPI0517176B1 (pt) 2022-05-17
EP1843246A2 (de) 2007-10-10
US8037114B2 (en) 2011-10-11
JP4954087B2 (ja) 2012-06-13
EP1825356B1 (de) 2016-08-03
PL1825356T3 (pl) 2017-01-31
NO20072916L (no) 2007-09-13
CA2590509C (en) 2014-10-28
CN101147122A (zh) 2008-03-19
AU2005315826B2 (en) 2009-06-11
EP1825356A2 (de) 2007-08-29
EP1843246A3 (de) 2008-01-02
JP4953978B2 (ja) 2012-06-13
ES2596275T3 (es) 2017-01-05
WO2006063797A3 (de) 2006-09-21
JP2008523450A (ja) 2008-07-03
HK1105233A1 (zh) 2008-02-06
DE102004059979B4 (de) 2007-11-22
RU2007126655A (ru) 2009-01-20

Similar Documents

Publication Publication Date Title
KR100921795B1 (ko) 값의 제곱에 선형적으로 의존하는 계산 결과의 표현을생성하는 방법
CN107993673B (zh) 确定噪声混合因子的方法、系统、编码器、解码器和介质
AU2019204328B2 (en) Pyramid vector quantizer shape search
US7593851B2 (en) Precision piecewise polynomial approximation for Ephraim-Malah filter
KR100771401B1 (ko) 프로그래머블 프로세서에서 mpeg-2 또는 mpeg-4aac 오디오 복호 알고리즘을 처리하기 위한 연산 회로및 연산 방법
KR20060131798A (ko) 블록 그룹화에 기반한 오디오 코딩
Langroudi et al. Alps: Adaptive quantization of deep neural networks with generalized posits
US7983909B2 (en) Method and apparatus for encoding audio data
EP1495465B1 (en) Method for modeling speech harmonic magnitudes
CN102568484B (zh) 弯曲谱和精细估计音频编码
Murillo et al. PLAM: A Posit Logarithm-Approximate Multiplier for Power Efficient Posit-based DNNs
US20090319589A1 (en) Using fractional exponents to reduce the computational complexity of numerical operations
Sukarno et al. High Accuracy LPC Encoder Architecture for FPGA
JP2010032762A (ja) 演算処理装置および方法、並びにプログラム
Villette et al. IIIGII QUALITY SPLIT BAND LPCVOCODER AND ITS FIXED POINT REAL TIME
OA18156A (en) Pyramid vector quantizer shape search
JP2002108608A (ja) 信号処理装置、信号処理方法、プログラム記録媒体及びコンピュータプログラム

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130925

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141002

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151006

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161006

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170925

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20181002

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190927

Year of fee payment: 11