KR20190040063A - 인덱스 코딩 및 비트 스케줄링을 갖는 양자화기 - Google Patents

인덱스 코딩 및 비트 스케줄링을 갖는 양자화기 Download PDF

Info

Publication number
KR20190040063A
KR20190040063A KR1020197008708A KR20197008708A KR20190040063A KR 20190040063 A KR20190040063 A KR 20190040063A KR 1020197008708 A KR1020197008708 A KR 1020197008708A KR 20197008708 A KR20197008708 A KR 20197008708A KR 20190040063 A KR20190040063 A KR 20190040063A
Authority
KR
South Korea
Prior art keywords
pyramid
encoded
unsigned
value
vector
Prior art date
Application number
KR1020197008708A
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 KR20190040063A publication Critical patent/KR20190040063A/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
    • G10L19/038Vector quantisation, e.g. TwinVQ audio
    • 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/002Dynamic bit allocation
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3082Vector coding
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • 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/0017Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
    • 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
    • G10L2019/0001Codebooks
    • G10L2019/0012Smoothing of parameters of the decoder interpolation

Landscapes

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

Abstract

특정 실시예는 부호있는 피라미드의 벡터 요소를 제 1 부분 및 제 2 부분을 포함하는 인코딩된 값과 연관시킴으로써 계수의 벡터의 인코딩 및 디코딩을 개선할 수 있게 하며, 여기서 제 1 부분은 부호없는 피라미드의 대응하는 벡터 요소를 식별하며, 제 2 부분은 부호있는 피라미드의 벡터 요소의 넌제로 성분에 대한 부호 값을 특성화한다. 결과적으로, 단어 크기와 같은 계산 상의 제약 조건은 부호있는 피라미드 대신 부호없는 피라미드에 적용된다. 부호없는 피라미드의 크기가 작으면 계산 상의 제약 조건 내에서 작동할 수 있는 부호있는 피라미드 파라미터의 범위를 확장할 수 있다.

Description

인덱스 코딩 및 비트 스케줄링을 갖는 양자화기
본 출원은 2016년 8월 30일자로 출원된 미국 가출원 번호 제62/381,479호의 우선권을 주장하며, 이 미국 가출원은 그 전체가 본 명세서에 참고로 포함된다.
고레졸루션(high-resolution) 신호의 전송은 전형적으로 전송 전후에 데이터 스트림을 인코딩 및 디코딩하기 위한 코덱 장치를 통한 데이터 압축 및 복원을 포함한다. (예를 들어, 실시간 오디오 및 비디오의) 보다 빠른 속도와 더 높은 레졸루션을 위한 요구에 따라 전반적으로는 데이터 신호의 개선된 인코딩 및 디코딩과 함께 특히 고레졸루션 신호가 필요했다. 종래의 접근 방식은 레졸루션 요건에 의해 허용할 수 없을 정도로 느린 속도를 초래할 수 있는 많은 실제 애플리케이션에서 이들 요구를 수용할 능력이 제한적이었다.
특정 실시예는 부호있는 피라미드의 벡터 요소를 제 1 부분 및 제 2 부분을 포함하는 인코딩된 값과 연관시킴으로써 계수의 벡터의 인코딩 및 디코딩을 개선할 수 있게 하며, 여기서 제 1 부분은 부호없는(unsigned) 피라미드의 대응하는 벡터 요소를 식별하며, 제 2 부분은 부호있는 피라미드의 벡터 요소의 넌제로(nonzero) 성분에 대한 부호 값을 특성화한다. 결과적으로, 단어 크기와 같은 계산 상의 제약 조건은 부호있는 피라미드 대신 부호없는 피라미드에 적용된다. 부호없는 피라미드의 크기가 작으면 계산 상의 제약 조건 내에서 작동할 수 있는 부호있는 피라미드 파라미터의 범위를 확장할 수 있다.
일 실시예는 오디오 신호를 처리하는 방법에 관한 것이다. 제 1 동작은 오디오 소스로부터의 입력 오디오 신호에 액세스하는 것을 포함한다. 제 2 동작은 복수의 인코딩된 값을 결정함으로써 입력 오디오 신호를 인코딩하는 것을 포함한다. 복수의 인코딩된 값 중 하나의 인코딩된 값은 제 1 부분 및 제 2 부분을 포함하고, 제 1 부분은 벡터 크기 및 양자화 파라미터에 의해 정의되는 부호없는 피라미드의 요소에 대한 인덱스를 포함하고, 제 2 부분은 부호없는 피라미드의 요소의 각각의 넌제로 성분에 대한 대응하는 부호 값을 포함한다. 제 3 동작은 출력 오디오 신호를 생성하기 위해 입력 오디오 신호의 인코딩에 따라 인코딩된 값을 디코딩하는 것을 포함한다. 제 4 동작은 출력 오디오 신호를 오디오 플레이어에 제공하는 것을 포함한다. 인코딩된 값의 데이터 전송과 관련된 추가의 동작은 인코딩을 위한 제 2 동작과 디코딩을 위한 제 3 동작 사이에 포함될 수 있다.
다른 실시예는 전술한 방법들 중 임의의 하나를 수행하기 위한 장치에 관한 것으로, 상기 장치는 상기 방법과 관련된 명령어를 실행하기 위한 컴퓨터를 포함한다. 예를 들어, 컴퓨터는 명령어 중 적어도 일부를 실행하기 위한 프로세서를 포함할 수 있다. 부가적으로 또는 대안으로, 컴퓨터는 명령어 중 적어도 일부를 실행하기 위한 회로 또는 다른 특수 하드웨어를 포함할 수 있다. 일부 동작 설정에서, 상기 장치는 하나 이상의 유닛을 포함하는 시스템으로서 구성될 수 있으며, 각각의 유닛은 상기 방법의 일부 양태를 소프트웨어로, 하드웨어로 또는 이들의 일부의 조합으로 수행하도록 구성된다. 상기 방법의 결과에 대한 적어도 일부 값은 나중의 사용을 위해 메모리 유닛 및 저장 장치를 포함하여, 컴퓨터 판독가능 매체에 저장될 수 있다. 다른 실시예는 컴퓨터와 함께 전술한 방법들 중 임의의 하나를 수행하기 위한 컴퓨터 프로그램을 저장(예를 들어, 유형적으로 구현)하는 컴퓨터 판독가능 매체에 관한 것이다. 이러한 방식으로, 개시된 실시예의 양태는 다양한 동작 설정으로 신호의 개선된 코딩 및 디코딩을 가능하게 하고 보다 빠른 속도 및 더 높은 레졸루션에 대한 증가하는 요구에 대응하여 컴퓨터 관련 기술의 개선을 제공한다.
특정 실시예는 첨부된 도면에서 예시적으로 도시되고 제한적이지는 않다.
도 1은 벡터 크기 n = 20 및 양자화 파라미터 k의 다양한 값에 대한 부호있는 피라미드와 부호없는 피라미드의 크기를 나타내는 표이다.
도 2는 벡터 크기 n 및 양자화 파라미터 k의 선택된 값에 대한 하위 정수 경계(lower integral bounds)의 예시적인 값을 나타내는 표이다.
도 3은 일 예시적인 실시예에 따른 오디오 신호 처리 방법을 나타내는 흐름도이다.
도 4는 도 3의 방법과 관련된 일 예시적인 실시예에 따라 인코딩된 값을 결정함으로써 입력 오디오 신호를 인코딩하는 방법을 나타내는 흐름도이다.
도 5는 도 3의 방법과 관련된 일 예시적인 실시예에 따라 인코딩된 값을 디코딩하는 방법을 나타내는 흐름도이다.
도 6은 일 예시적인 실시예에 따른 도 3의 인코딩 동작과 디코딩 동작 간의 데이터 전송과 관련된 선택적 동작을 포함하는 방법을 나타내는 흐름도이다.
도 7은 도 3의 실시예와 관련된 일 예시적인 실시예에 따라 오디오 신호를 처리하기 위한 시스템을 나타내는 도면이다.
도 8은 도 3의 실시예와 관련된 일 예시적인 실시예에 따라 오디오 신호를 처리하기 위한 다른 시스템을 나타내는 도면이다.
도 9는 도 8의 인코더의 실시예에 대한 추가의 세부 사항을 나타내는 도면이다.
도 10은 도 8의 디코더의 실시예에 대한 추가의 세부 사항을 나타내는 도면이다.
도 11은 컴퓨터로 하여금 본원에서 설명되는 방법들 중 임의의 하나를 수행하게 하는 명령어 세트를 실행할 수 있는 컴퓨터 처리 시스템을 나타내는 블록도이다.
이하의 설명은 본 개시의 실시예를 도시하는 시스템, 방법, 기술, 명령어 시퀀스 및 컴퓨터 프로그램 제품을 포함한다. 설명을 목적으로 하는 아래의 설명에서는, 본 개시의 요지의 다양한 실시예의 이해를 제공하기 위해 다수의 특정 세부 사항이 설명되고 있다. 그러나, 본 개시의 요지의 실시예가 이들 특정 세부 사항 없이도 실시될 수 있음이 당업자에게는 명백할 것이다. 일반적으로, 잘 알려진 명령어 인스턴스, 프로토콜, 구조 및 기술은 상세하게 나타나는 것은 아니다.
1. 피라미드 벡터 양자화기
양의 정수들 n, k에 대하여, 부호있는 피라미드 S(n, k)는 Zn으로부터의 벡터의 서브 세트를 나타내며, Zn의 L1 놈(norm)은 k와 같으며, 여기서 Z는 아래의 정수의 세트를 나타낸다. 즉:
Figure pct00001
. (1)
피라미드 벡터 양자화기(pyramid vector quantizer, PVQ)는 Rn내의 벡터를 매핑하며, 여기서 R은 양자화기 레졸루션을 특성화하는 양자화 파라미터인 일부 양의 정수 k에 대하여, S(n, k) 내의 벡터에 대한 실수의 세트를 나타낸다. 종래의 코딩 애플리케이션에서, 벡터 x ∈ Rn은 벡터 y ∈ S(n, k)로 양자화되고,이 양자화된 벡터는 이어서 인코딩되어 디코더로 전송되고, 여기서 상기 프로세스는 역전된다.
양자화된 벡터 y를 인코딩하는 한가지 방식은 세트 S(n, k)를 열거하는 것, 즉, 그 요소를 순서대로 나열하는 것이고, 그에 따라 각각의 벡터 y ∈ S(n, k)는 고유의 인덱스 Is(y)를 가지며, 0≤Is(y)<|S(n, k)|이며, 여기서, |S|는 세트 S의 카디널리티(cardinality)를 나타낸다. 그 후, y를 인코딩하기 위해, 그의 인덱스 Is(y)가 전송된다. 수신 측에서, 디코더는 동일한 열거를 사용하여 그 인덱스로부터 y를 재구성한다. 실제의 애플리케이션의 경우, 열거는 효율적으로 계산되어야 하며, 그에 따라 소정의 벡터 y에 대해, 인덱스 ls(y)는 효율적으로 계산될 수 있고, 반대로 소정의 인덱스 Is(y)에 대해, 대응하는 벡터 y가 효율적으로 계산될 수 있다. S(n, k)의 그러한 효율적인 열거는 PVQ 코딩 기술 분야의 당업자에게 공지되어 있다. 인덱스 그 자체의 인코딩은, 예를 들어, [log|S(n, k)|](즉, 베이스-2의 로그함수의 상위 정수 경계)의 비트로 Is(y)의 이진 표현을 갖는 고정 길이 코드를 사용함으로써 달성될 수 있다. 대안으로, 일부 인덱스를 [log|S(n, k)|] 비트로 코딩하고 나머지 인덱스를 [log|S(n, k)|] 비트(즉, 베이스-2의 로그함수의 하위 정수 경계) 비트로 코딩하는 것과 함께, 최적의 2-길이 코드를 사용함으로써 다소 보다 효율적인 인코딩을 수행할 수 있으며, 여기서, 이 접근법은 S(n, k) 내의 벡터에 대해 균일한 확률 분포를 가정하고 있다.
열거 알고리즘은 대략 [log|S(n, k)|] 크기의 정수에 대한 산술 동작을 포함한다. 효율적인 컴퓨터 구현예에서는 이 정수를 사용중인 프로세서의 자연어 크기 m(예를 들어, m=32 또는 m=64 비트)에 적합하도록 하는 것이 선호될 것이다. 이것은 PVQ의 실행 가능한 파라미터 n, k에 제약 조건을 적용하여 로그|S (n, k)|≤m이 된다. 실제의 애플리케이션에서는 상대적으로 긴 벡터를 양자화하고 인코딩해야 할 필요가 있는 경우가 종종 있으며, 그 중 하나는 비트 B의 소정의 예산을 갖는다. 만약 B>m인 경우, 이는 한 인코딩에서 수행될 수 없는데, 그 이유는 크기 2B의 피라미드가 단일 인코딩 용으로는 너무 크기 때문이다. 일반적인 해결책은 벡터를 두 개의 절반으로 나누고 두 개의 절반 간에 예산을 나누는 것으로, 이는 마치, 예를 들어, B=B1+B2-c에서와 같으며, 여기서, c는 예산 할당을 설명하는 데 드는 가능한 비용 또는 디코더에 대한 다른 분할 속성을 나타낸다. 그런 다음 각각의 절반에서 양자화/인코딩을 시도할 수 있으며 프로세스는 인코딩될 벡터의 각 부분에 대한 예산 bi가 bi≤m을 충족할 때까지 반복적으로 지속될 수 있다.
2. 가변 길이 인코딩
아래에서 상세히 설명하는 바와 같이, 특정 실시예는 n 및 k에 대한 전술한 제약을 완화하는 대안의 코딩 프로세스에 기초하며, 이에 따라 2m보다 클 수 있는 크기의 피라미드를 허용하여 전술한 반복적인 세분화 프로세스에서 분할(splits)의 수를 줄일 수 있다. 양의 정수 n, k에 대해, 부호없는 피라미드 P(n, k)는 S(n, k) 내의 벡터의 서브 세트를 나타내며 S(n, k)의 성분은 모두 음수가 아니며:
Figure pct00002
. (2)
후술되는 바와 같이, 벡터 y ∈ S(n, k)의 인코딩은 두 단계로 수행되어 두개의 부분이 초래될 수 있다.
제 1 단계에서, yi'=|yi|, 1≤i≤n으로 정의되는, 대응하는 벡터 y' ∈ P(n, k)를 결정한다. 그런 다음, Ρ(n, k)의 열거에서 대응하는 Ip(y')를 찾아 인코딩한다. P(n, k)에서 균일한 분포의 벡터를 가정하면, 이는 l(y') 비트를 필요로 하며, 여기서 l(y')는 [log|P(n, k)|]≤l(y')≤[log|P(n, k)|]을 충족하고 있다. 인코딩된 벡터의 제 1 부분은 인덱스 Ip(y')이다.
제 2 단계에서, y의 각각의 넌제로 성분(예를 들어, 엔트리)의 부호는 1-비트 코드에 의해 특징지워질 수 있다. 인코딩된 벡터의 제 2 부분은 이러한 부호의 특성으로서, 가능한 한 부호 당 1 비트(예를 들어, '+'를 나타내는 '0', '-'을 나타내는 '1')를 이용하는 간단한 인코딩 부분이 된다.
제 1 단계를 수행하기 위해, 일반적으로 S(n, k)보다 훨씬 작은 Ρ(n, k)의 종래의 열거를 사용할 수 있다. 연산된 정수의 크기에 대한 제약 조건은 log|P(n, k)|≤m이 되며, 이는 제약 조건 log|S(n, k)|≤m보다 덜 엄격하다.
제 2 단계로부터의 인코딩의 제 2 부분은 비교적 작고, 산술 동작을 필요로 하지 않으며, 임의의 특정 제한을 받지 않는다. 그러나, 이 부분의 길이는, 넌제로인 것으로 가정되는 넌제로 성분의 수 m에 따라, 1 비트에서 min(n, k) 비트까지 다양할 수 있다. 결과적으로, 인코딩의 이 부분은 고정 길이 인코딩을 사용하는 종래의 방법과 비교하여 가변 길이를 가질 수 있다.
도 1의 표는 벡터 크기 n = 20 및 양자화 파라미터 k의 다양한 값에 대해, |P(n, k)|과 |S(n, k)|의 값을 나타낸다. 표의 값에 의해 예시된 바와 같이, S(n, k)의 열거에 기초한 종래의 방법은 32-비트 머신에서 k=10으로 제한되는 반면에, 상술한 2-단계 방법은 양자화 파라미터 k의 값을 32-비트 머신의 경우 최대 16까지 허용한다. 비교해 보면, 이 표는 종래의 방법이 k=6에 대해 42-비트 정수에 대한 연산을 요구하고 결과적으로 벡터는 해당 양자화 레벨에서 코딩 프로세스의 일부로서 분할(splitting)을 필요로 한다는 것을 보여주고 있다.
PVQ에 대한 실현 가능한 파라미터의 범위를 확장시킬 때의 전술한 이점에 부가하여, 주목해야 할 것은 P(n, k)는 S(n, k)와 비교하여 더 간단한 조합 객체이고, 따라서, 대응하는 열거 알고리즘 또한 더 간단하다는 것이다. 후술하는 바와 같이, P(n, k)의 요소는 한 번에 (n-1)을 취한 (n+k-1) 요소의 조합으로 식별될 수 있다.
3. 인코딩을 위한 양자화 레벨
m-비트 머신을 갖는 통상적인 고레졸루션 코딩 애플리케이션에서, 고레벨의 양자화를 위해 최대로 이용 가능한 양자화 파라미터 k로 양자화 및 인코딩하기 위해 예산 b의 비트와 길이 n의 벡터 x가 주어진다. 고정 길이 인코딩을 가진 S(n, k)의 열거에 기초한 전술한 종래의 방법의 경우에, 만약 b≤m라면, |S(n, k)|≤2b를 충족하는 k의 최대 값을 찾게 된다. b>m인 경우, 벡터는 전술한 바와 같이 분할될 수 있다.
전술한 바와 같은 가변 길이 인코딩에 기초한 실시예에 있어서, 코드 길이는 x에 크게 의존할 수 있고, 따라서 주어진 비트 예산 b 및 x의 상이한 값들에 대해 상이한 양자화 레벨이 가능할 수 있다. 대안으로, 파라미터 k에 대응하는 양자화 레벨을 발견하여 평균적으로 (예를 들어, 가능한 벡터 x로부터 균일하게 샘플링된 많은 코딩 연산에 대해) 경계가 달성되도록 하는 것에 집중할 수 있다. 즉, 장기간의 평균이 예산을 충족시키는 한 실제 비트 소비는 개별 사례에 대해 설정된 예산보다 높거나 낮을 수 있다.
특정 실시예의 경우, k의 값이 비트 예산 b에 상대적으로(또는 최적으로) 가까운 예상된 코드 길이를 산출하도록 예상된 코드 길이를 평가함으로써 주어진 벡터 길이 n에 대한 양자화 파라미터 k를 결정할 수 있다. S(n, k)의 모든 벡터가 아마도 동일할 것이라는 가정하에, 예상된 코드 길이는 위에서 아래와 같이 정의되는 Lk에 의해 제한된다:
Lk=[log|P(n, k)|]+n-Z(n, k), (3)
여기서, Z(n, k)는 P(n, k)로부터 랜덤하게 선택된 벡터에서 제로 성분의 예상된 개수이다.
Lk에 대한 이 공식의 평가를 위해, P(n, k) 내의 벡터의 수는
Figure pct00003
(4) 이다.
예를 들어, (n+k-1) 개의 요소는 시작하도록 고정된 하나의 벡터 요소 경계(예를 들어, 최좌측 또는 최우측)와 함께 벡터 요소들 간의 경계들의 위치 및 벡터 요소들에 대한 단일 기여분들(unitary contributions)의 위치를 마킹한다. 그런 다음, 벡터 요소들을 위한 (n-1) 개의 추가의 경계에 대한 위치가 (n+k-1) 개의 가능한 위치로부터 선택될 수 있다.
Z(n, k)의 값은
Figure pct00004
(5) 이다.
Z(n, k)에 대한 위의 공식에서, 인자 (
Figure pct00005
)는 j 개의 제로 성분에 대한 상이한 선택의 수이고, |P(n-j, k-n+j)|는 k로 합산되는 성분들을 가진 차원 (n-j)의 절대 양의 정수 벡터의 수이다.
상술한 공식들은 주어진 벡터 크기 n 및 비트 예산 b에 대한 최적(또는 거의 최적)의 양자화 파라미터 k를 결정하는 표현들을 도출하는 데 사용될 수 있다. 정수 n, b가 1보다 큰 경우, 함수 K(n, b)는 k의 값으로 정의되어 [Lk]는 b에 가장 가깝게 되고, k의 큰 값을 위해 결합 관계는 해체된다. 일부 동작 설정에서, 이 함수에 대한 사전 결정된 추정치는 편리한 액세스를 위해 저장될 수 있다. 예를 들어, 특정 실시예는 k의 최적 값에 대한 근사화를 위한 다음의 함수 형태를 포함한다:
Figure pct00006
, (6)
여기서, 계수 c0(n) 및 c1(n)은 관련 값의 범위에 대해 K(n, b)에 대한 근사화를 위한 최소 자승법(least-squares fit)을 통해 얻어질 수 있다. 이러한 근사화는 주어진 값의 벡터 길이 n 및 비트 예산 b에 대한 양자화 파라미터 k의 효율적인 평가를 가능하게 한다. 도 2는 n 및 b의 선택된 값에 대한 하위 정수 경계
Figure pct00007
의 예시 값을 포함하는 표를 나타낸다. 도 1의 표와 관련하여 전술한 바와 같이, 이것은 인코딩의 평균에 걸처 주어진 비트 예산에 대한 더 높은 양자화 레벨을 가능하게 한다.
4. 방법 실시예
본원에서는 오디오 신호를 참조하여 특정 실시예를 설명하지만, 데이터 처리 기술 분야의 당업자는 대안의 데이터 세트(예를 들어, 비디오 신호)로의 확장을 이해할 것이다. 도 3은 일 예시적인 실시예에 따른 오디오 신호 처리 방법(300)을 나타낸다. 제 1 동작(302)은 오디오 소스로부터의 입력 오디오 신호에 (가령, 마이크로폰을 통해) 액세스하는 것을 포함한다.
제 2 동작(304)은 인코딩된 값을 결정하기 위해 입력 오디오 신호를 인코딩하는 것을 포함한다. 인코딩된 값은 제 1 부분 및 제 2 부분을 포함하고, 제 1 부분은 벡터 크기 및 양자화 파라미터에 의해 정의되는 부호없는 피라미드의 요소에 대한 인덱스를 포함하고, 제 2 부분은 부호없는 피라미드의 요소의 각각의 넌제로 성분에 대한 대응하는 부호 값을 포함한다.
제 3 동작(306)은 출력 오디오 신호를 생성하기 위해 입력 오디오 신호의 인코딩에 따라 인코딩된 값을 디코딩하는 것을 포함한다. 제 4 동작(308)은 출력 오디오 신호를 (예를 들어, 출력 스피커를 포함하는) 오디오 플레이어에 제공하는 것을 포함한다. 후술되는 바와 같이, 데이터 전송과 관련된 선택적 동작(310)은 전형적으로 인코딩 동작(304)과 디코딩 동작(306) 사이에서 수행된다.
부호없는 피라미드는 전형적으로 식 2에서와 같이 정의된다. 즉, 부호없는 피라미드는 벡터 크기의 복수의 벡터를 포함하고, 부호없는 피라미드의 복수의 벡터 각각은 음이 아닌 정수 벡터 요소(non-negative integral vector elements)를 가지며, 음이 아닌 정수 벡터 요소의 합은 양자화 파라미터와 동일하다. 식 2와 관련하여 전술한 바와 같이, 인코딩된 값의 제 1 부분은 제 1 비트 시퀀스를 포함할 수 있고, 제 1 비트 시퀀스의 길이는 부호없는 피라미드의 크기에 기초한 하나 이상의 값으로부터 선택된다. 전술한 바와 같이, 이러한 길이는 부호없는 피라미드의 크기에 기초한 고정된 길이일 수 있거나, 또는 전술한 최적의 2-길이 코드에서와 같이 비트의 수를 최소화 또는 감소시키기 위해 다소 가변될 수 있다. 또한, 인코딩된 계수의 제 2 부분은 제 2 비트 시퀀스를 포함할 수 있고, 제 2 비트 시퀀스의 가변 길이는 제 1 비트 시퀀스에서 인코딩된 벡터의 넌제로 성분의 수에 기초한다. 즉, 제 1 부분으로부터 식별되는 부호없는 피라미드 요소는 대응하는 부호있는 피라미드 요소를 복원하기 위해 제 2 부분으로부터 부호 값(플러스 또는 마이너스)이 식별되는 다수의 넌제로 성분을 포함한다.
관련된 부호있는 피라미드는 전형적으로 식 1에서와 같이 정의된다. 즉, 관련된 부호있는 피라미드는 벡터 크기의 복수의 벡터를 포함하고, 부호있는 피라미드의 복수의 벡터 각각은 정수 벡터 요소를 가지며, 정수 벡터 요소의 크기의 합은 양자화 파라미터와 동일하다.
식 1 및 식 2에 의해 설명되는 바와 같이, 부호없는 피라미드의 각각의 요소는 벡터 요소의 절대 값(즉, 크기)을 취함으로써 부호있는 피라미드의 요소로 식별될 수 있다. 이러한 방식으로, 부호있는 피라미드의 요소는 부호없는 피라미드의 대응하는 요소를 식별하는 제 1 부분 및 벡터 요소의 생략된 부호 값을 설명하는 제 2 부분에 의해 인코딩될 수 있다. 제 1 및 제 2와 같은 단어는 본원 및 다른 곳에서 라벨링 목적으로만 사용되고 임의의 특정 공간적 또는 시간적 순서를 나타내도록 의도하는 것이 아니라는 것에 유의해야 한다. 또한, 제 1 요소의 라벨링은 제 2 요소의 존재를 의미하는 것은 아니다.
도 3의 실시예가 입력 오디오 신호로부터 출력 오디오 신호로의 동작을 개시하지만, 관련 실시예는 특히 인코딩을 위한 동작(304) 또는 디코딩을 위한 동작(306)에 집중될 수 있다.
도 4는 일 예시적인 실시예에 따라 (예를 들어, 도 3의 동작(304)에서와 같이) 인코딩된 값을 결정함으로써 입력 오디오 신호를 인코딩하는 방법(400)을 나타낸다. 제 1 동작(402)은 수정 이산 코사인 변환(Modified Discrete Cosine Transform, MDCT)에의 입력 오디오 신호의 적용에 기초하여 주파수 변환 계수를 계산하는 것을 포함한다. 예를 들어, 부호없는 피라미드의 벡터 크기는(예를 들어, 일부 주파수 성분이 무시되거나 다른 주파수 성분과 결합되거나, 완전한 MDCT 스펙트럼이 더 짧은 벡터들로 분할된다면) MDCT의 주파수 차원 또는 주파수 차원의 일부분에 대응할 수 있다.
제 2 동작(404)은 벡터 크기 및 양자화 파라미터에 의해 정의되는 부호있는 피라미드(예를 들어, 식 1)의 요소를 결정하기 위해 주파수 변환 계수의 벡터를 양자화 파라미터로 양자화하는 것을 포함한다. 즉, 주파수 성분들은, 정수 벡터 요소들의 합이 또한 정수 값인 양자화 파라미터와 동일하도록 정수 값으로 (예를 들어, 분할을 통해) 결합, 스케일링 및 매핑될 수 있다. 예를 들어, 실수값 벡터(예를 들어, 스케일링된 주파수 성분의 벡터)를 기반으로, 매핑은 최적으로 가까운 또는 충분히 가까운 정수값 벡터를 결정할 수 있다. 제 3 동작(406)은 부호있는 피라미드의 요소로부터 인코딩된 값의 제 1 부분 및 제 2 부분을 결정하는 것을 포함하며, 여기서 제 1 부분은 부호없는 피라미드(예를 들어, 식 2)의 대응하는 요소를 식별하고 제 2 부분은 부호있는 피라미드(예를 들어, 식 1)의 요소의 넌제로 성분에 대한 부호 값을 특성화한다. 인코딩 동작(304)에서 각각의 인코딩된 값을 결정하기 위해 유사한 동작들이 수행될 수 있으며, 여기서, 예를 들어, 주파수 스펙트럼의 분할 및 주파수 스펙트럼의 부분들에 대한 관련 비트 예산에 따라 상이한 피라미드가 사용될 수 있다.
도 5는 일 예시적인 실시예에 따라 (예를 들어, 도 3의 동작(306)에서와 같이) 인코딩된 값을 디코딩하는 방법(500)을 나타낸다. 제 1 동작(502)은 인코딩된 값으로부터 양자화된 주파수 변환 계수를 결정하는 것을 포함한다. 예를 들어, 도 4와 관련하여 전술한 인코딩된 값에 대해, 대응하는 양자화된 주파수 변환 계수는 벡터 크기 및 양자화 파라미터에 대한 부호없는 피라미드(예를 들어, 식 2)에 대응하는 부호있는 피라미드(예를 들어, 식 1)의 요소를 식별하기 위해 인코딩된 값의 제 1 부분 및 제 2 부분을 사용하여 결정되며, 여기서, 부호있는 피라미드의 식별된 요소는 인코딩된 값의 제 2 부분으로부터 식별되는 부호 값을 포함한다. 제 2 동작(504)은 양자화된 주파수 변환 계수로부터 출력 오디오 신호를 생성하는 것을 포함한다. 이러한 제 2 동작(504)은 도 4의 동작(404)과 관련하여 전술한 스케일링 동작의 역전을 포함하여, 관련 스케일링 인자(또는 인코딩된 벡터의 놈(norm))는 일반적으로 이 단계에서 액세스 가능하게 만들어진다.
일반적으로, 디코딩 동작(306)은 인코딩 동작(304)과 일치하여 출력 오디오 신호는 입력 오디오 신호의 양자화 파라미터 및 벡터 크기에 대한 근사치가 된다. 즉, 디코딩에 관련된 동작은 벡터 크기 및 양자화 파라미터에 따른 인코딩과 관련된 동작의 역전을 포함한다.
전술한 바와 같이, 데이터 전송과 관련된 동작(310)은 전형적으로 인코딩 동작(304)과 디코딩 동작(306) 사이에서 수행된다. 도 6은 인코딩 동작(304)과 디코딩 동작(306) 사이의 데이터 전송(예를 들어, 도 3의 동작(310))과 관련된 선택적 동작들을 포함하는 방법(600)을 나타낸다. 제 1 동작(602)은 인코딩된 값을 인코딩과 관련된 제 1 위치에서 비트스트림으로 패킹(packing)하는 것을 포함한다. 제 2 동작(604)은 비트스트림을 인코딩과 관련된 제 1 위치로부터 디코딩과 관련된 제 2 위치로 전송하는 것을 포함한다. 제 3 동작(606)은 디코딩과 관련된 제 2 위치에서 비트스트림으로부터 인코딩된 값을 언패킹(unpacking)하는 것을 포함한다.
시스템 실시예
전술한 방법 실시예에 관련된 시스템 실시예는 동작 설정의 요구 조건에 따라 복잡성이 다양할 수 있다. 도 7은 도 3의 방법(300)에 따라 오디오 신호를 처리하기 위한 시스템을 나타낸다. 입력 유닛(702)은 오디오 소스로부터의 입력 오디오 신호에 액세스하도록 구성된다. 인코더(704)는 인코딩된 값을 결정하기 위해 입력 오디오 신호를 인코딩하는 것을 포함하는 동작을 수행하도록 구성되는 하나 이상의 프로세서를 포함하며, 상기 인코딩된 값 각각은 제 1 부분 및 제 2 부분을 포함하고, 제 1 부분은 벡터 크기 및 양자화 파라미터에 의해 정의되는 부호없는 피라미드의 요소에 대한 인덱스를 포함하고, 제 2 부분은 부호없는 피라미드의 요소의 각각의 넌제로 성분에 대한 부호 값을 특성화한다. 디코더(706)는 출력 오디오 신호를 생성하기 위해 입력 오디오 신호의 인코딩에 따라 인코딩된 값을 디코딩하는 것을 포함하는 동작을 수행하도록 구성되는 하나 이상의 프로세서를 포함한다. 출력 유닛(708)은 출력 오디오 신호를 오디오 플레이어에 제공하도록 구성된다.
유사하게, 도 6과 관련하여 전술한 바와 같이, 데이터 전송을 위한 추가적인 하드웨어 유닛(710)은 인코딩된 값과 관련된 비트스트림을 인코더(704)와 관련된 제 1 위치로부터 디코더(706)와 관련된 제 2 위치로 송신하는 것과 관련된 동작을 위해, 인코더(704)와 디코더(706) 사이에 포함될 수 있다. 유사하게, 추가적인 하드웨어 요소들은 입력 유닛(702)에 의해 액세스되는 입력 오디오 신호에 대한 오디오 소스, 및 출력 유닛(708)에 의해 출력 오디오 신호가 제공되는 오디오 플레이어와 관련될 수 있다.
도 7의 실시예가 입력 오디오 신호에서 출력 오디오 신호 간의 구조적 유닛을 개시하지만, 관련 실시예는 특히 인코더(704) 또는 디코더(706)에 집중될 수 있다.
도 8은 에너지 평활화를 갖는 변환 기반 코덱을 포함하는 예시적인 실시예에 따라 오디오 신호를 처리하기 위한 보다 상세한 시스템(800)을 나타낸다. 후술되는 바와 같이, 도 8의 시스템(800)은 도 7의 시스템(700)의 보다 구체적인 버전으로서 이해될 수 있다.
처음에, (예를 들어, 도 7의 입력 유닛(702)에 대응하는) 콘텐츠 생성 환경(802)에서 (뮤지컬 또는 보컬 트랙(musical or vocal tracks)과 같은) 오디오 콘텐츠가 생성된다. 이러한 환경(802)은 오디오 소스를 레코딩하기 위해 복수의 마이크로폰(804)(또는 다른 사운드 캡처 장치)을 포함할 수 있다. 대안으로, 오디오 소스는 오디오 소스를 레코딩하기 위해 마이크로폰을 사용할 필요가 없도록 이미 디지털 신호일 수 있다. 사운드를 생성하는 방법이 무엇이든 간에, 콘텐츠 생성 환경(802)의 출력은 (예를 들어, 일부 아날로그 포맷으로 표현되는) 오디오 신호(806)이다.
그 후, 오디오 신호(806)는 (예를 들어, 도 7의 인코더(704)에 대응하는) 에너지 평활화를 갖는 변환 기반 인코더(808)를 통해 인코딩된다. 인코더(808)는 전형적으로 하나 이상의 프로세싱 장치를 갖는 컴퓨팅 장치 상에 위치한다. 인코더(808)는 오디오 신호(806)를 인코딩하여 인코딩된 비트스트림(810)을 생성한다.
인코딩된 비트스트림(810)은 청취자에 의해 소비되도록 (예를 들어, 도 7의 데이터 전송을 위한 하드웨어 유닛(710)에 대응하는) 전달 환경(812)을 통해 전달된다. 네트워크(814)를 통한 스트리밍 전달을 포함하여 여러 가지 전달 옵션이 이용 가능하다. 대안으로, 인코딩된 비트스트림(810)은 청취자에 의해 소비되도록 매체(816)(예를 들어, 광학 디스크) 상에 저장된다. 또한, 인코딩된 비트스트림(810)을 전달하는 데 사용될 수 있는 본원에는 열거되지 않은 많은 다른 전달 옵션이 있다.
전달 환경(812)의 출력은 (예를 들어, 도 7의 디코더(706)에 대응하는) 에너지 평활화를 갖는 변환 기반 디코더(820)에 입력되는 송신된 인코딩된 비트스트림(818)이다. 디코더(820)는 송신된 인코딩된 비트스트림(818)을 디코딩하여 복원된 오디오 신호(822)를 획득한다. 디코더(820)의 실시예는 전형적으로 하나 이상의 프로세싱 장치를 갖는 컴퓨팅 장치 상에 위치한다. 복원된 오디오 신호(822)는 (예를 들어, 도 7의 출력 유닛(708)에 대응하는) 재생 스피커(또는 채널) 레이아웃을 포함하는 재생 환경(824)에서 재생된다. 재생 스피커 레이아웃은 콘텐츠 생성 스피커 레이아웃과 동일하거나 다를 수 있다. 도 8에 도시된 재생 스피커 레이아웃은 11.2 레이아웃이고, 재생 환경(824)은 청취자(826)를 포함한다. 다른 실시예에서, 재생 스피커 레이아웃은 스피커가 재생 환경(824)에서 사운드가 발생하는 것처럼 보이는 가상 스피커에 불과하도록 헤드폰을 포함할 수 있다. 예를 들어, 청취자(826)는 헤드폰을 통해 복원된 오디오 신호(822)를 듣고 있을 수 있다. 이 상황에서, 스피커는 (헤드폰을 제외하고) 실제의 물리적 스피커가 아니지만, 사운드는, 예를 들어, 11.2 서라운드 사운드 스피커 구성에 대응하는 재생 환경(824)의 상이한 공간 위치로부터 발생하는 것처럼 보인다.
도 9는 예시적인 실시예에 대한 도 8의 에너지 평활화를 갖는 변환 기반 인코더(808)에 대한 추가 세부 사항을 나타낸다. (주목할 것은 일부 실시예에서 에너지 평활화가 선택적일 수 있다는 것이다.) 도 9에 도시된 바와 같이, 주파수 변환 계수의 블록(902)은 오디오 신호(806)로부터 (예를 들어, 주파수 변환 회로를 통해) 추출된다. 이 블록(902)의 주파수 변환 계수는 직교 변환 및 치환 시스템(orthogonal transformation and permutation system)(904)에 입력되고, 이 시스템은 (예를 들어, 계수 처리 회로를 통해) 처리된 주파수 변환 계수(906)를 생성한다. 그 후, 처리된 주파수 변환 계수(906)는 벡터 양자화기(908)(예를 들어, 양자화기 회로)에 의해 처리된다. 벡터 양자화기(908)의 출력(예를 들어, 인코딩된 값)은 비트스트림 패킹 시스템(910)(예를 들어, 비트스트림 패킹 회로)에 의해 처리되며, 이 비트스트림 패킹 시스템(910)은 인코딩된 비트스트림(810)을 생성한다.
주파수 변환 계수의 블록(902)은 도 4를 참조하여 상술한 바와 같이 MDCT 처리를 통해 오디오 신호(806)로부터 추출된 MDCT 계수일 수 있다. 직교 변환 및 치환 시스템(904)은 별개의 주파수 대역들로부터의 계수들을 벡터 양자화기(908)에 의한 별개의 처리를 위해 처리된 주파수 변환 계수(906)의 벡터로 결합할 수 있다. 직교 변환 및 치환 시스템(904)은 또한 아래에서 보다 상세하게 참조되고 있는 미국 특허 출원 제15/253,646호에 기술된 바와 같이 주파수 대역 내에서의 에너지 평활화를 이용할 수 있다.
이러한 맥락에서, 벡터 양자화기(908)에 의한 별개의 처리를 위해 주파수 대역을 별개의 주파수 세그먼트로 분할하는 것은 전형적으로 오디오 신호를 나타내는 데 요구되는 벡터 양자화의 수에 의존하는 전체 계산 비용에 상당한 영향을 미친다는 것을 주목해야 한다. 도 1과 관련하여 전술한 바와 같이, 개시된 실시예는 보다 적은 수의 양자화로 오디오 신호를 표현할 수 있게 하는데, 그 이유는 보다 큰 주파수 세그먼트를 나타내는 보다 큰 크기의 피라미드의 요소가 각 단계에서 인코딩될 수 있기 때문이다. 즉, 각각의 양자화에서 보다 많은 정보가 인코딩될 수 있으므로 오디오 신호를 표현하는 데 전반적으로 보다 적은 수의 양자화가 요구된다. 예를 들어, 전형적인 오디오 애플리케이션을 나타내는 계산적인 실시예에서, 종래의 방법과 비교하여 오디오 신호를 나타내는 데 필요한 양자화의 수에서 5 내지 25 %의 감소가 발견되었다. 전형적으로, 분할 및 양자화의 수는 인코딩에 이용 가능한 총 비트 수에 따라 증가하고, 따라서 재구성된 신호의 품질에 따라 증가한다. 전형적인 임베디드 애플리케이션(예를 들어, 디지털 TV 세트에 내장된 오디오 디코더)에서는 오디오 디코딩에 사용할 수 있는 계산 예산(초당 CPU 사이클 수)이 엄격하게 제한된다. 결과적으로, 개시된 실시예는 주어진 계산 예산에 대해 보다 높은 품질의 재구성을 가능하게 한다. 즉, 개시된 실시예는 오디오 처리의 증가하는 요구 조건에 대응하여 컴퓨터 관련 기술의 개선을 가능하게 하여, 속도 요구 조건을 손상시키지 않고도 보다 높은 레졸루션 신호를 처리할 수 있다.
그 후, 벡터 양자화기(908)는 도 3의 제 2 동작(302)에 따라 처리된 주파수 변환 계수(906)에 대한 인코딩된 값을 결정할 수 있다. 그 후, 비트스트림 패킹 시스템(910)은 도 6의 제 1 동작(602)에 따라 인코딩된 비트스트림(810)을 결정할 수 있다.
도 10는 예시적인 실시예에 대한 도 8의 에너지 평활화를 갖는 변환 기반 디코더(820)에 대한 추가 세부 사항을 나타낸다. (주목할 것은 일부 실시예에서 에너지 평활화가 선택적일 수 있다는 것이다.) 디코더(820)는 비트스트림 패킹 시스템(910)의 동작을 역전시키는 비트스트림 언패킹 시스템(1002)(예를 들어, 비트스트림 언패킹 회로) 및 (유사하게 도 3의 제 3 동작(306)이 도 3의 제 2 동작(304)을 역전시키듯이) 벡터 양자화기(908)의 동작을 역전시키는 역 벡터 양자화기(inverse vector quantizer)(1004)를 포함한다. 역 벡터 양자화기(1004)는 직교 역변환 및 치환 시스템(1008)에 입력되는 수신 주파수 변환 계수(1006)를 출력하고, 상기 직교 역변환 및 치환 시스템(1008)은 직교 변환 및 치환 시스템(904)의 동작을 역전시키며 (예를 들어, 역 계수 처리 회로를 통해) 복원된 주파수 변환 계수의 블록(1010)을 생성한다. 디코더(820)의 출력은 (예를 들어, 오디오 회로를 통하는) 복원된 오디오 신호(822)이다.
직교 변환 및 치환 시스템(904) 및 직교 역변환 및 치환 시스템(1008)을 포함하는 도 8 내지 도 10의 요소들과 관련된 추가의 세부 사항은 "서브 대역 에너지 평활화를 이용한 변환 기반 오디오 코덱 및 방법"이라는 명칭으로 2016 년 8 월 31 일자로 출원된 관련 미국 특허 출원 제15/253,646호에서 참조되며, 이 미국 특허 출원은 그 전체가 본원에 참고로 포함된다.
5. 추가 실시예
도 11은 머신을 예시적인 컴퓨터 시스템(1100)의 형태로 나타내며, 이 컴퓨터 시스템 내에서 상기 머신으로 하여금 본원에서 설명한 임의의 하나 이상의 방법을 수행하게 하는 명령어가 실행될 수 있다. 대안의 실시예에서, 머신은 독립형 장치로서 동작하거나 또는 다른 머신에 결합(예를 들어, 네트워크화)될 수 있다. 네트워크화된 배치에서, 머신은 서버-클라이언트 네트워크 환경에서 서버 또는 클라이언트 머신으로서 동작할 수도 있거나, 또는 피어-투-피어(또는 분산형) 네트워크 환경에서 피어 머신(peer machine)으로서 동작할 수 있다. 머신은 퍼스널 컴퓨터(PC), 태블릿 PC, 태블릿, 셋탑 박스(STB), PDA(personal digital assistant), 셀룰러 전화기, 웹 기기, 네트워크 라우터, 스위치 또는 브릿지일 수 있거나, 또는 머신에 의해 취해질 동작을 특정하는 명령어를 (순차적으로 또는 다른 방식으로) 실행할 수 있는 임의의 머신일 수 있다. 또한, 단 하나의 머신이 도시되어 있지만, "머신"이라는 용어는 본원에서 설명한 임의의 하나 이상의 방법을 수행하는 명령어의 세트(또는 다수의 세트)를 개별적으로 또는 공동으로 실행하는 머신의 임의의 집합체를 포함하는 것으로 또한 간주될 것이다.
예시적인 컴퓨터 시스템(1100)은 버스(1108)를 통해 서로 통신하는, 프로세서(1102)(예를 들어, 중앙 처리 유닛(CPU), 그래픽 처리 유닛(GPU) 또는 둘 모두), 메인 메모리(1104) 및 정적 메모리(1106)를 포함한다. 컴퓨터 시스템(1100)은 비디오 디스플레이 유닛(1110)(예를 들어, 액정 디스플레이(LCD) 또는 음극선관(CRT))을 더 포함할 수 있다. 컴퓨터 시스템(1100)은 또한 영숫자 입력 장치(1112)(예를 들어, 키보드), 사용자 인터페이스(UI) 커서 제어 장치(1114)(예를 들어, 마우스), 저장 유닛(1116)(예를 들어, 디스크 드라이브), 신호 생성 장치(1118)(예를 들어, 스피커), 및 네트워크 인터페이스 장치(1120)를 포함한다.
일부 상황에서는, 컴퓨터 판독가능 매체가 머신 판독가능 매체로서 기술될 수 있다. 저장 유닛(1116)은 본원에 설명된 임의의 하나 이상의 방법 또는 기능을 구현하거나 이용하는 하나 이상의 세트의 데이터 구조 및 명령어(1124)(예를 들어, 소프트웨어)를 저장한 머신 판독가능 매체(1122)를 포함한다. 명령어(1124)는 또한 컴퓨터 시스템(1100)에 의한 실행 동안, 정적 메모리(1106), 메인 메모리(1104), 또는 프로세서(1102) 내에 완전히 또는 적어도 부분적으로 상주할 수 있으며, 정적 메모리(1106), 메인 메모리(1104) 및 프로세서(1102)는 또한 머신 판독가능 매체를 구성한다. 예를 들어, 명령어(1124)는 전술한 방법들 중 임의의 방법의 요소에 대응할 수 있거나, 또는 전술한 방법들 중 임의의 방법을 구현하는 제어 시스템에 대응할 수 있다.
머신 판독가능 매체(1122)가 일 예시적인 실시예에서 단일 매체인 것으로 도시되고 있지만, "머신 판독가능 매체" 및 "컴퓨터 판독가능 매체"라는 용어는 하나 이상의 세트의 데이터 구조 및 명령어(1124)를 저장한 단일 저장 매체 또는 다중 저장 매체(예를 들어, 중앙 집중식 또는 분산형 데이터베이스, 및/또는 연관된 캐시 및 서버)를 각각 지칭할 수 있다. 이들 용어는 또한, 머신에 의한 실행을 위한 명령어를 저장, 인코딩 또는 전달할 수 있고, 머신으로 하여금 본원에서 설명한 임의의 하나 이상의 방법을 수행하게 하거나 또는 그 명령어에 의해 이용되거나 그 명령어와 연관되는 데이터 구조를 저장, 인코딩 또는 전달할 수 있는 임의의 유형적인 또는 비 일시적인 매체를 포함하는 것으로 간주될 것이다. 따라서 이들 용어는 고체 상태 메모리, 광학 매체, 및 자기 매체를 포함하지만 이에 국한되지는 않는 것으로 간주될 것이다. 머신 판독가능 또는 컴퓨터 저장 매체의 특정 예는 예로서 반도체 메모리 장치, 가령, 소거가능한 프로그래머블 판독 전용 메모리(EPROM), 전기적으로 소거가능한 프로그래머블 판독 전용 메모리(EEPROM), 및 플래시 메모리 장치를 포함하는 비 휘발성 메모리와; 내부 하드 디스크 및 이동식 디스크와 같은 자기 디스크와; CD-ROM 및 DVD-ROM 디스크를 포함한다. 그러나, "머신 판독가능 매체" 및 "컴퓨터 판독가능 매체"라는 용어는 비 법정 신호 그 자체를 특별히 배제하기 위한 것이다.
명령어(1124)는 또한 전송 매체를 사용하여 통신 네트워크(1126)를 통해 송신 또는 수신될 수 있다. 명령어(1124)는 네트워크 인터페이스 장치(1120), 및 다수의 잘 알려진 전송 프로토콜 중 임의의 하나(예를 들어, 하이퍼 텍스트 전송 프로토콜(HTTP))를 사용하여 송신될 수 있다. 통신 네트워크의 예는 근거리 네트워크(LAN), 광역 네트워크(WAN), 인터넷, 모바일 전화 네트워크, POTS(plain old telephone) 네트워크, 및 무선 데이터 네트워크(예를 들어,WiFi 및 WiMAX 네트워크)를 포함한다. "전송 매체"라는 용어는 머신에 의한 실행을 위한 명령어를 저장, 인코딩 또는 전달할 수 있는 임의의 무형적인 매체를 포함하는 것으로 간주될 것이며, 그러한 소프트웨어의 통신을 가능하게 하는 디지털 또는 아날로그 통신 신호 또는 다른 무형적인 매체를 포함한다.
특정 실시예는 본원에서 로직 또는 다수의 컴포넌트, 모듈 또는 메커니즘을 포함하는 것으로 기술된다. 모듈은 소프트웨어 모듈 또는 하드웨어 구현 모듈을 구성할 수 있다. 하드웨어 구현 모듈은 특정 동작을 수행할 수 있는 유형적인 유닛이며 특정 방식으로 구성 또는 배열될 수 있다. 예시적인 실시예에서, 하나 이상의 컴퓨터 시스템(예를 들어, 독립형, 클라이언트 또는 서버 컴퓨터 시스템) 또는 하나 이상의 프로세서는 소프트웨어(예를 들어, 애플리케이션 또는 애플리케이션의 일부)에 의해 본원에서 기술되는 특정 동작을 수행하도록 동작하는 하드웨어 구현 모듈로서 구성될 수 있다.
다양한 실시예에서, 하드웨어 구현 모듈(예를 들어, 컴퓨터 구현 모듈)은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들어, 하드웨어 구현 모듈은 특정 동작을 수행하도록 영구적으로 구성되는 (예를 들어, 필드 프로그래머블 게이트 어레이(FPGA) 또는 주문형 집적 회로(ASIC)와 같은 특수 목적 프로세서로서) 전용 회로 또는 로직을 포함할 수 있다. 하드웨어 구현 모듈은 또한 특정 동작을 수행하기 위해 소프트웨어에 의해 일시적으로 구성되는 (예를 들어, 범용 프로세서 또는 다른 프로그램 가능 프로세서 내에 포함되는 것과 같은) 프로그램 가능 로직 또는 회로를 포함할 수 있다. 하드웨어 구현 모듈을 기계적으로, 전용 및 영구적으로 구성된 회로로, 또는 일시적으로 구성된 회로(예를 들어, 소프트웨어에 의해 구성됨)로 구현하기 위한 결정은 비용 및 시간 고려 사항에 의해 수행될 수 있음이 이해될 것이다.
따라서, "하드웨어 구현 모듈"("컴퓨터 구현 모듈")이라는 용어는 본원에 기술된 특정의 동작을 특정 방식으로 동작 및/또는 수행하기 위해, 물리적으로 구성되거나, 영구적으로 구성되거나(예를 들어, 하드와이어로), 또는 일시적으로 또는 임시적으로 구성되는(예를 들어, 프로그래밍되는) 엔티티가 되는 유형적인 엔티티를 포함하는 것으로 이해되어야 한다. 하드웨어 구현 모듈이 일시적으로 구성되는(예를 들어, 프로그래밍되는) 실시예를 고려하면, 하드웨어 구현 모듈 각각은 임의의 한 시점에 구성되거나 인스턴스화될 필요는 없다. 예를 들어, 하드웨어 구현 모듈이 소프트웨어를 사용하여 구성된 범용 프로세서를 포함하는 경우, 범용 프로세서는 상이한 시간에 각각의 상이한 하드웨어 구현 모듈로서 구성될 수 있다. 따라서, 소프트웨어는, 예를 들어, 한 시점에 특정의 하드웨어 구현 모듈을 구성하고 다른 시점에 상이한 하드웨어 구현 모듈을 구성하기 위해, 프로세서를 구성할 수 있다.
하드웨어 구현 모듈들은 다른 하드웨어 구현 모듈들에 정보를 제공하고 다른 하드웨어 구현 모듈들로부터 정보를 수신할 수 있다. 따라서, 기술된 하드웨어 구현 모듈들은 통신가능하게 결합된 것으로 간주될 수 있다. 다수의 이러한 하드웨어 구현 모듈들이 동시에 존재하는 경우, 하드웨어 구현 모듈들을 연결하는 신호 전송(예를 들어, 적절한 회로 및 버스를 통해)을 통해 통신이 달성될 수 있다. 다수의 하드웨어 구현 모듈들이 상이한 시간에 구성되거나 인스턴스화되는 실시예에서, 그러한 하드웨어 구현 모듈 간의 통신은, 예를 들어, 다수의 하드웨어 구현 모듈이 액세스하는 메모리 구조에서 정보의 저장 및 검색을 통해 달성될 수 있다. 예를 들어, 하나의 하드웨어 구현 모듈은 동작을 수행할 수 있고 그 동작의 출력을 그 모듈에 통신가능하게 결합된 메모리 장치에 저장할 수 있다. 그 후, 다른 하드웨어 구현 모듈이 나중에 메모리 장치에 액세스하여 저장된 출력을 검색하고 처리할 수 있다. 하드웨어 구현 모듈은 또한 입력 또는 출력 장치와의 통신을 개시하고, 리소스(예를 들어, 정보 집합체) 상에서 동작할 수 있다.
본원에 기술된 예시적인 방법의 다양한 동작은 관련 동작을 수행하도록 (예를 들어, 소프트웨어에 의해) 일시적으로 구성되거나 영구적으로 구성된 하나 이상의 프로세서에 의해 적어도 부분적으로 수행될 수 있다. 일시적으로 또는 영구적으로 구성되든, 이러한 프로세서는 하나 이상의 동작 또는 기능을 수행하도록 동작하는 프로세서 구현 모듈을 구성할 수 있다. 본원에 언급된 모듈은 일부 실시예에서 프로세서 구현 모듈을 포함할 수 있다.
유사하게, 본원에서 기술된 방법은 적어도 부분적으로 프로세서로 구현될 수 있다. 예를 들어, 방법의 동작 중 적어도 일부는 하나 이상의 프로세서 또는 프로세서 구현 모듈에 의해 수행될 수 있다. 특정 동작들의 실행은 단일 머신 내에 상주할 뿐만 아니라 다수의 머신에 걸처 배치된 하나 이상의 프로세서 간에 분산될 수 있다. 일부 예시적인 실시예에서, 프로세서 또는 프로세서들은 단일 위치 내에(예를 들어, 가정 환경 내에, 사무실 환경 내에 또는 서버 팜으로서) 위치할 수 있는 반면, 다른 실시예에서, 프로세서들은 다수의 위치에 걸처 분산될 수 있다.
하나 이상의 프로세서는 또한 "클라우드 컴퓨팅" 환경에서 관련 동작의 실행을 지원하도록 동작하거나 또는 "서비스로서의 소프트웨어(software as a service: SaaS)"로서 동작할 수 있다. 예를 들어, 적어도 일부의 동작은 (프로세서를 포함하는 머신의 예로서) 컴퓨터의 그룹에 의해 수행될 수 있으며, 이러한 동작은 네트워크(예를 들어, 인터넷) 및 하나 이상의 적절한 인터페이스(예를 들어, 애플리케이션 프로그램 인터페이스(API))를 통해 액세스가능하다.
6. 결론
위에서 특정 실시예만이 상세히 설명되었지만, 당업자는 본 개시의 신규한 교시로부터 실질적으로 벗어나지 않고 많은 수정이 가능하다는 것을 쉽게 이해할 것이다. 예를 들어, 위에서 개시된 실시예의 양태들은 추가의 실시예를 형성하기 위해 다른 조합으로 결합될 수 있다. 따라서, 그러한 모든 수정은 본 개시의 범위 내에 포함되는 것으로 의도된다.

Claims (20)

  1. 오디오 신호를 처리하는 방법으로서,
    오디오 소스로부터의 입력 오디오 신호에 액세스하는 단계;
    복수의 인코딩된 값을 결정함으로써 상기 입력 오디오 신호를 인코딩하는 단계 - 상기 복수의 인코딩된 값 중 하나의 인코딩된 값은 제 1 부분 및 제 2 부분을 포함하고, 상기 제 1 부분은 벡터 크기 및 양자화 파라미터에 의해 정의되는 부호없는(unsigned) 피라미드의 요소에 대한 인덱스를 포함하고, 상기 제 2 부분은 상기 부호없는 피라미드의 요소의 각각의 넌제로(nonzero) 성분에 대한 대응하는 부호 값을 포함함 - ;
    출력 오디오 신호를 생성하기 위해 상기 입력 오디오 신호의 인코딩에 따라 상기 복수의 인코딩된 값을 디코딩하는 단계; 및
    상기 출력 오디오 신호를 오디오 플레이어에 제공하는 단계
    를 포함하는, 오디오 신호를 처리하는 방법.
  2. 제 1 항에 있어서,
    상기 부호없는 피라미드는 상기 벡터 크기의 복수의 벡터를 포함하고, 상기 부호없는 피라미드의 복수의 벡터 각각은 음이 아닌 정수 벡터 성분(non-negative integral vector components)을 가지며, 상기 음이 아닌 정수 벡터 성분의 합은 상기 양자화 파라미터와 동일한 것인, 방법.
  3. 제 1 항에 있어서,
    상기 복수의 인코딩된 값 중 하나의 인코딩된 값은 상기 벡터 크기 및 상기 양자화 파라미터에 의해 정의되는 부호있는 피라미드의 요소를 식별하고, 상기 부호없는 피라미드 요소의 넌제로 성분은 크기 값 및 부호 값을 가지며, 상기 크기 값은 상기 인코딩된 값의 제 1 부분에 의해 인덱싱되는 상기 부호있는 피라미드 요소의 대응하는 성분으로부터 식별되며, 상기 부호 값은 상기 인코딩된 값의 제 2 부분으로부터 식별되는 것인, 방법.
  4. 제 1 항에 있어서,
    상기 제 1 부분은 제 1 비트 시퀀스를 포함하며, 상기 제 1 비트 시퀀스의 길이는 상기 부호없는 피라미드의 크기에 기초한 하나 이상의 값으로부터 선택되며;
    상기 제 2 부분은 제 2 비트 시퀀스를 포함하고, 상기 제 2 비트 시퀀스의 가변 길이는 상기 벡터 크기 및 상기 양자화 파라미터에 의해 정의되는 관련된 부호있는 피라미드의 대응하는 요소의 넌제로 성분의 수에 기초하는 것인, 방법.
  5. 제 1 항에 있어서,
    상기 제 1 부분은 제 1 비트 시퀀스를 포함하고, 상기 제 1 비트 시퀀스의 길이는 상기 부호없는 피라미드의 크기에 기초한 하나 이상의 값으로부터 선택되며, 상기 부호없는 피라미드는 상기 벡터 크기의 복수의 벡터를 포함하며, 상기 부호없는 피라미드의 복수의 벡터 각각은 음이 아닌 정수 벡터 요소를 갖고, 상기 음이 아닌 정수 벡터 요소의 합은 상기 양자화 파라미터와 동일하며;
    상기 제 2 부분은 제 2 비트 시퀀스를 포함하고, 상기 제 2 비트 시퀀스의 가변 길이는 상기 벡터 크기 및 상기 양자화 파라미터에 의해 정의되는 관련된 부호있는 피라미드의 대응하는 요소의 넌제로 성분의 수에 기초하며, 상기 관련된 부호있는 피라미드는 상기 벡터 크기의 복수의 벡터를 포함하고, 상기 부호있는 피라미드의 복수의 벡터 각각은 정수 벡터 요소를 갖고, 상기 정수 벡터 요소의 크기의 합은 상기 양자화 파라미터와 동일한 것인, 방법.
  6. 제 1 항에 있어서,
    상기 복수의 인코딩된 값 중 하나의 인코딩된 값을 결정하는 것은:
    상기 벡터 크기 및 상기 양자화 파라미터에 의해 정의되는 부호있는 피라미드의 요소를 식별하는 것;
    상기 부호없는 피라미드 요소를 식별하여 상기 부호없는 피라미드 요소의 넌제로 성분의 크기가 상기 부호있는 피라미드 요소의 대응하는 성분의 크기와 동일하도록 상기 인코딩된 값의 제 1 부분을 결정하는 것; 및
    상기 부호없는 피라미드 요소의 넌제로 성분과 관련된 부호 값이 상기 부호있는 피라미드 요소의 대응하는 성분에 대한 부호 값과 동일하도록 상기 인코딩된 값의 제 2 부분을 결정하는 것
    을 포함하는 것인, 방법.
  7. 제 1 항에 있어서,
    상기 복수의 인코딩된 값 중 하나의 인코딩된 값을 결정하는 것은:
    수정 이산 코사인 변환(Modified Discrete Cosine Transform, MDCT)에의 상기 입력 오디오 신호의 적용에 기초하여 주파수 변환 계수를 계산하는 것;
    상기 벡터 크기 및 상기 양자화 파라미터에 의해 정의되는 부호있는 피라미드의 요소를 결정하기 위해 상기 주파수 변환 계수의 벡터를 상기 양자화 파라미터로 양자화하는 것; 및
    상기 부호있는 피라미드의 요소로부터 상기 인코딩된 값의 제 1 부분 및 상기 제 2 부분을 결정하는 것 - 상기 제 1 부분은 상기 부호없는 피라미드의 대응하는 요소를 식별하고 상기 제 2 부분은 상기 부호있는 피라미드의 요소의 넌제로 성분에 대한 부호 값을 특성화함 -
    을 포함하는 것인, 방법.
  8. 제 1 항에 있어서,
    상기 복수의 인코딩된 값을 디코딩하는 단계는:
    상기 복수의 인코딩된 값으로부터 양자화된 주파수 변환 계수를 결정하는 단계 - 대응하는 양자화된 주파수 변환 계수는, 상기 벡터 크기 및 상기 양자화 파라미터에 대한 상기 부호없는 피라미드에 대응하는 부호있는 피라미드의 요소를 식별하기 위해 상기 인코딩된 값의 제 1 부분 및 제 2 부분을 사용함으로써 상기 복수의 인코딩된 값 중 하나의 인코딩된 값으로부터 결정되며, 상기 부호있는 피라미드의 식별된 요소는 상기 인코딩된 값의 제 2 부분으로부터 식별되는 부호 값을 포함함 - ; 및
    상기 양자화된 주파수 변환 계수로부터 상기 출력 오디오 신호를 생성하는 단계
    를 포함하는 것인, 방법.
  9. 제 1 항에 있어서,
    상기 복수의 인코딩된 값을 상기 인코딩과 관련된 제 1 위치에서 비트스트림으로 패킹하는 단계;
    상기 비트스트림을 상기 인코딩과 관련된 상기 제 1 위치로부터 상기 디코딩과 관련된 제 2 위치로 전송하는 단계; 및
    상기 디코딩과 관련된 상기 제 2 위치에서 상기 비트스트림으로부터 상기 복수의 인코딩된 값을 언패킹하는 단계
    를 더 포함하는, 방법.
  10. 오디오 신호를 처리하는 시스템으로서,
    오디오 소스로부터의 입력 오디오 신호에 액세스하도록 구성되는 입력 유닛;
    복수의 인코딩된 값을 결정함으로써 상기 입력 오디오 신호를 인코딩하는 것을 포함하는 동작을 수행하도록 구성되는 하나 이상의 프로세서를 포함하는 인코더 - 상기 복수의 인코딩된 값 중 하나의 인코딩된 값은 제 1 부분 및 제 2 부분을 포함하고, 상기 제 1 부분은 벡터 크기 및 양자화 파라미터에 의해 정의되는 부호없는 피라미드의 요소에 대한 인덱스를 포함하고, 상기 제 2 부분은 상기 부호없는 피라미드의 요소의 각각의 넌제로 성분에 대한 대응하는 부호 값을 포함함 - ;
    출력 오디오 신호를 생성하기 위해 상기 입력 오디오 신호의 인코딩에 따라 상기 복수의 인코딩된 값을 디코딩하는 것을 포함하는 동작을 수행하도록 구성되는 하나 이상의 프로세서를 포함하는 디코더; 및
    상기 출력 오디오 신호를 오디오 플레이어에 제공하도록 구성되는 출력 유닛
    을 포함하는, 오디오 신호를 처리하는 시스템.
  11. 제 10 항에 있어서,
    상기 복수의 인코딩된 값을 디코딩하는 것은:
    상기 복수의 인코딩된 값으로부터 양자화된 주파수 변환 계수를 결정하는 것 - 대응하는 양자화된 주파수 변환 계수는, 상기 벡터 크기 및 상기 양자화 파라미터에 대한 상기 부호없는 피라미드에 대응하는 부호있는 피라미드의 요소를 식별하기 위해 상기 인코딩된 값의 제 1 부분 및 제 2 부분을 사용함으로써 상기 복수의 인코딩된 값 중 하나의 인코딩된 값으로부터 결정되며, 상기 부호있는 피라미드의 식별된 요소는 상기 인코딩된 값의 제 2 부분으로부터 식별되는 부호 값을 포함함 - ; 및
    상기 양자화된 주파수 변환 계수로부터 상기 출력 오디오 신호를 생성하는 것
    을 포함하는 것인, 시스템.
  12. 오디오 신호를 처리하는 방법으로서,
    입력 오디오 신호에 대한 복수의 인코딩된 값에 액세스하는 단계 - 상기 복수의 인코딩된 값 중 하나의 인코딩된 값은 제 1 부분 및 제 2 부분을 포함하고, 상기 제 1 부분은 벡터 크기 및 양자화 파라미터에 의해 정의되는 부호없는 피라미드의 요소에 대한 인덱스를 포함하고, 상기 제 2 부분은 상기 부호없는 피라미드의 요소의 각각의 넌제로 성분에 대한 대응하는 부호 값을 포함함 - ;
    상기 복수의 인코딩된 값으로부터 양자화된 주파수 변환 계수를 결정하는 단계 - 대응하는 주파수 변환 계수는, 상기 벡터 크기 및 상기 양자화 파라미터에 대한 상기 부호없는 피라미드에 대응하는 부호있는 피라미드의 요소를 식별하기 위해 상기 인코딩된 값의 제 1 부분 및 제 2 부분을 사용함으로써 상기 복수의 인코딩된 값 중 하나의 인코딩된 값으로부터 결정되며, 상기 부호있는 피라미드의 식별된 요소는 상기 인코딩된 값의 제 2 부분으로부터 식별되는 부호 값을 포함함 - ; 및
    상기 양자화된 주파수 변환 계수로부터 출력 오디오 신호를 생성하는 단계
    를 포함하는, 오디오 신호를 처리하는 방법.
  13. 제 12 항에 있어서,
    상기 부호없는 피라미드는 상기 벡터 크기의 복수의 벡터를 포함하고, 상기 부호없는 피라미드의 복수의 벡터 각각은 음이 아닌 정수 벡터 성분을 가지며, 상기 음이 아닌 정수 벡터 성분의 합은 상기 양자화 파라미터와 동일한 것인, 방법.
  14. 제 12 항에 있어서,
    상기 복수의 인코딩된 값 중 하나의 인코딩된 값은 상기 벡터 크기 및 상기 양자화 파라미터에 의해 정의되는 부호있는 피라미드의 요소를 식별하고, 상기 부호없는 피라미드 요소의 넌제로 성분은 크기 값 및 부호 값을 가지며, 상기 크기 값은 상기 인코딩된 값의 제 1 부분에 의해 인덱싱되는 상기 부호있는 피라미드 요소의 대응하는 성분으로부터 식별되며, 상기 부호 값은 상기 인코딩된 값의 제 2 부분으로부터 식별되는 것인, 방법.
  15. 제 12 항에 있어서,
    상기 제 1 부분은 제 1 비트 시퀀스를 포함하며, 상기 제 1 비트 시퀀스의 길이는 상기 부호없는 피라미드의 크기에 기초한 하나 이상의 값으로부터 선택되며;
    상기 제 2 부분은 제 2 비트 시퀀스를 포함하고, 상기 제 2 비트 시퀀스의 가변 길이는 상기 벡터 크기 및 상기 양자화 파라미터에 의해 정의되는 관련된 부호있는 피라미드의 대응하는 요소의 넌제로 성분의 수에 기초하는 것인, 방법.
  16. 제 12 항에 있어서,
    상기 제 1 부분은 제 1 비트 시퀀스를 포함하고, 상기 제 1 비트 시퀀스의 길이는 상기 부호없는 피라미드의 크기에 기초한 하나 이상의 값으로부터 선택되며, 상기 부호없는 피라미드는 상기 벡터 크기의 복수의 벡터를 포함하며, 상기 부호없는 피라미드의 복수의 벡터 각각은 음이 아닌 정수 벡터 요소를 갖고, 상기 음이 아닌 정수 벡터 요소의 합은 상기 양자화 파라미터와 동일하며;
    상기 제 2 부분은 제 2 비트 시퀀스를 포함하고, 상기 제 2 비트 시퀀스의 가변 길이는 상기 벡터 크기 및 상기 양자화 파라미터에 의해 정의되는 관련된 부호있는 피라미드의 대응하는 요소의 넌제로 성분의 수에 기초하며, 상기 관련된 부호있는 피라미드는 상기 벡터 크기의 복수의 벡터를 포함하고, 상기 부호있는 피라미드의 복수의 벡터 각각은 정수 벡터 요소를 갖고, 상기 정수 벡터 요소의 크기의 합은 상기 양자화 파라미터와 동일한 것인, 방법.
  17. 변환 기반 인코더로서,
    입력 오디오 신호로부터 주파수 변환 계수를 계산하도록 구성되는 주파수 변환 회로;
    상기 주파수 변환 계수의 복수의 계수 블록을 결정하도록 구성되는 계수 처리 회로;
    상기 복수의 계수 블록 중 하나의 계수 블록에 대한 인코딩된 값을 결정하도록 구성되는 양자화기 회로 - 상기 인코딩된 값은 제 1 부분 및 제 2 부분을 포함하고, 상기 제 1 부분은 상기 계수 블록의 벡터 크기 및 상기 양자화기 회로의 레졸루션(resolution)에 대응하는 양자화 파라미터에 의해 정의되는 부호없는 피라미드의 요소에 대한 인덱스를 포함하고, 상기 제 2 부분은 상기 부호없는 피라미드의 요소의 각각의 넌제로 성분에 대한 대응하는 부호 값을 포함함 - ; 및
    상기 복수의 계수 블록에 대해 상기 양자화기 회로에 의해 결정된 복수의 인코딩된 값으로부터 인코딩된 비트스트림을 생성하도록 구성되는 비트스트림 패킹 회로
    를 포함하는, 변환 기반 인코더.
  18. 제 17 항에 있어서,
    상기 계수 처리 회로는 또한, 상기 복수의 계수 블록에 대한 별개의 주파수 대역으로 상기 주파수 변환 계수의 직교 변환 및 치환을 수행하도록 구성되는 것인, 변환 기반 인코더.
  19. 변환 기반 디코더로서,
    인코딩된 비트스트림으로부터 복수의 인코딩된 값을 결정하도록 구성되는 비트스트림 언패킹 회로 - 상기 복수의 인코딩된 값 중 하나의 인코딩된 값은 제 1 부분 및 제 2 부분을 포함하고, 상기 제 1 부분은 벡터 크기 및 양자화 파라미터에 의해 정의되는 부호없는 피라미드의 요소에 대한 인덱스를 포함하고, 상기 제 2 부분은 상기 부호없는 피라미드의 요소의 각각의 넌제로 성분에 대한 대응하는 부호 값을 포함함 - ;
    상기 복수의 인코딩된 값 중 하나의 인코딩된 값으로부터 상기 양자화 파라미터에 대응하는 레졸루션에 대한 상기 벡터 크기에 대응하는 계수 블록을 결정하도록 구성되는 역 양자화기 회로 - 상기 계수 블록은, 상기 벡터 크기 및 상기 양자화 파라미터에 대한 상기 부호없는 피라미드에 대응하는 부호있는 피라미드의 요소를 식별하기 위해 상기 인코딩된 값의 제 1 부분 및 제 2 부분을 사용함으로써 상기 복수의 인코딩된 값 중 하나의 인코딩된 값으로부터 결정되며, 상기 부호있는 피라미드의 식별된 요소는 상기 인코딩된 값의 제 2 부분으로부터 식별되는 부호 값을 포함함 - ;
    상기 복수의 인코딩된 값에 대하여 상기 역 양자화기 회로에 의해 결정된 복수의 계수 블록으로부터 복수의 주파수 변환 계수를 결정하도록 구성되는 역 계수 처리 회로; 및
    상기 복수의 주파수 변환 계수로부터 오디오 신호를 생성하도록 구성되는 오디오 회로
    를 포함하는, 변환 기반 디코더.
  20. 제 19 항에 있어서,
    상기 역 계수 처리 회로는 또한, 상기 복수의 주파수 변환 계수를 결정하기 위해 상기 복수의 계수 블록의 역 직교 변환 및 치환을 수행하도록 구성되는 것인, 변환 기반 디코더.
KR1020197008708A 2016-08-30 2017-08-29 인덱스 코딩 및 비트 스케줄링을 갖는 양자화기 KR20190040063A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662381479P 2016-08-30 2016-08-30
US62/381,479 2016-08-30
PCT/US2017/049130 WO2018044897A1 (en) 2016-08-30 2017-08-29 Quantizer with index coding and bit scheduling

Publications (1)

Publication Number Publication Date
KR20190040063A true KR20190040063A (ko) 2019-04-16

Family

ID=61243263

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197008708A KR20190040063A (ko) 2016-08-30 2017-08-29 인덱스 코딩 및 비트 스케줄링을 갖는 양자화기

Country Status (6)

Country Link
US (1) US10366698B2 (ko)
EP (1) EP3507799A4 (ko)
JP (1) JP7123910B2 (ko)
KR (1) KR20190040063A (ko)
CN (1) CN110249384B (ko)
WO (1) WO2018044897A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102280943B1 (ko) 2014-02-27 2021-07-22 텔레폰악티에볼라겟엘엠에릭슨(펍) 오디오/비디오 샘플 벡터의 피라미드 벡터 양자화 인덱싱 및 디인덱싱을 위한 방법 및 장치
US10366698B2 (en) 2016-08-30 2019-07-30 Dts, Inc. Variable length coding of indices and bit scheduling in a pyramid vector quantizer
CN112154502B (zh) 2018-04-05 2024-03-01 瑞典爱立信有限公司 支持生成舒适噪声
US10586546B2 (en) 2018-04-26 2020-03-10 Qualcomm Incorporated Inversely enumerated pyramid vector quantizers for efficient rate adaptation in audio coding
US10573331B2 (en) * 2018-05-01 2020-02-25 Qualcomm Incorporated Cooperative pyramid vector quantizers for scalable audio coding
US10734006B2 (en) 2018-06-01 2020-08-04 Qualcomm Incorporated Audio coding based on audio pattern recognition

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5271089A (en) 1990-11-02 1993-12-14 Nec Corporation Speech parameter encoding method capable of transmitting a spectrum parameter at a reduced number of bits
JP3170193B2 (ja) 1995-03-16 2001-05-28 松下電器産業株式会社 画像信号の符号化装置及び復号装置
CA2239294A1 (en) 1998-05-29 1999-11-29 Majid Foodeei Methods and apparatus for efficient quantization of gain parameters in glpas speech coders
KR20020075592A (ko) 2001-03-26 2002-10-05 한국전자통신연구원 광대역 음성 부호화기용 lsf 양자화기
US6690307B2 (en) * 2002-01-22 2004-02-10 Nokia Corporation Adaptive variable length coding of digital video
JP4181887B2 (ja) 2002-05-29 2008-11-19 キヤノン株式会社 可変長符号化装置、及びその方法
CA2388358A1 (en) * 2002-05-31 2003-11-30 Voiceage Corporation A method and device for multi-rate lattice vector quantization
US7539612B2 (en) * 2005-07-15 2009-05-26 Microsoft Corporation Coding and decoding scale factor information
US7889103B2 (en) * 2008-03-13 2011-02-15 Motorola Mobility, Inc. Method and apparatus for low complexity combinatorial coding of signals
ES2650492T3 (es) 2008-07-10 2018-01-18 Voiceage Corporation Dispositivo y método de cuantificación de filtro LPC de múltiples referencias
US8175888B2 (en) * 2008-12-29 2012-05-08 Motorola Mobility, Inc. Enhanced layered gain factor balancing within a multiple-channel audio coding system
GB2466666B (en) 2009-01-06 2013-01-23 Skype Speech coding
JP2011024066A (ja) 2009-07-17 2011-02-03 Sony Corp 画像処理装置および方法
CN102081926B (zh) 2009-11-27 2013-06-05 中兴通讯股份有限公司 格型矢量量化音频编解码方法和系统
US9009036B2 (en) 2011-03-07 2015-04-14 Xiph.org Foundation Methods and systems for bit allocation and partitioning in gain-shape vector quantization for audio coding
WO2012141635A1 (en) 2011-04-15 2012-10-18 Telefonaktiebolaget L M Ericsson (Publ) Adaptive gain-shape rate sharing
US20130132100A1 (en) 2011-10-28 2013-05-23 Electronics And Telecommunications Research Institute Apparatus and method for codec signal in a communication system
US9425820B2 (en) * 2013-06-03 2016-08-23 Mozilla Corporation Vector quantization with non-uniform distributions
US20140357978A1 (en) * 2013-06-04 2014-12-04 Akshay Pai Computer Based Method for Determining the Size of an Object in an Image
KR102280943B1 (ko) 2014-02-27 2021-07-22 텔레폰악티에볼라겟엘엠에릭슨(펍) 오디오/비디오 샘플 벡터의 피라미드 벡터 양자화 인덱싱 및 디인덱싱을 위한 방법 및 장치
KR101777994B1 (ko) 2014-07-28 2017-09-13 텔레폰악티에볼라겟엘엠에릭슨(펍) 피라미드 벡터 양자화기의 형상 검색
US20160093308A1 (en) * 2014-09-26 2016-03-31 Qualcomm Incorporated Predictive vector quantization techniques in a higher order ambisonics (hoa) framework
US9747910B2 (en) 2014-09-26 2017-08-29 Qualcomm Incorporated Switching between predictive and non-predictive quantization techniques in a higher order ambisonics (HOA) framework
US10366698B2 (en) 2016-08-30 2019-07-30 Dts, Inc. Variable length coding of indices and bit scheduling in a pyramid vector quantizer
US10146500B2 (en) 2016-08-31 2018-12-04 Dts, Inc. Transform-based audio codec and method with subband energy smoothing

Also Published As

Publication number Publication date
EP3507799A4 (en) 2020-02-26
JP7123910B2 (ja) 2022-08-23
US10366698B2 (en) 2019-07-30
WO2018044897A1 (en) 2018-03-08
WO2018044897A9 (en) 2019-01-24
JP2019529979A (ja) 2019-10-17
CN110249384A (zh) 2019-09-17
US20180061428A1 (en) 2018-03-01
EP3507799A1 (en) 2019-07-10
CN110249384B (zh) 2024-01-26

Similar Documents

Publication Publication Date Title
KR20190040063A (ko) 인덱스 코딩 및 비트 스케줄링을 갖는 양자화기
US10404984B2 (en) Method and apparatus for pyramid vector quantization indexing and de-indexing of audio/video sample vectors
JP6374501B2 (ja) スペクトルエンベロープのサンプル値のコンテキストベースエントロピー符号化
US9591334B2 (en) Common copy compression
US20210297708A1 (en) Residual entropy compression for cloud-based video applications
US10699723B2 (en) Encoding and decoding of digital audio signals using variable alphabet size
CN110870005B (zh) 编码系统和解码系统
KR102553003B1 (ko) 부대역 에너지 평활화를 이용하는 변환 기반 오디오 코덱 및 방법
US20130082850A1 (en) Data encoding apparatus, data decoding apparatus and methods thereof
US9407918B2 (en) Apparatus and method for coding image, and non-transitory computer readable medium thereof
Mohamed Wireless Communication Systems: Compression and Decompression Algorithms

Legal Events

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