KR20190042058A - 부대역 에너지 평활화를 이용하는 변환 기반 오디오 코덱 및 방법 - Google Patents

부대역 에너지 평활화를 이용하는 변환 기반 오디오 코덱 및 방법 Download PDF

Info

Publication number
KR20190042058A
KR20190042058A KR1020197008368A KR20197008368A KR20190042058A KR 20190042058 A KR20190042058 A KR 20190042058A KR 1020197008368 A KR1020197008368 A KR 1020197008368A KR 20197008368 A KR20197008368 A KR 20197008368A KR 20190042058 A KR20190042058 A KR 20190042058A
Authority
KR
South Korea
Prior art keywords
transform
matrix
transformation
smoothing
audio signal
Prior art date
Application number
KR1020197008368A
Other languages
English (en)
Other versions
KR102553003B1 (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 KR20190042058A publication Critical patent/KR20190042058A/ko
Application granted granted Critical
Publication of KR102553003B1 publication Critical patent/KR102553003B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/165Management of the audio stream, e.g. setting of volume, audio stream path
    • 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/0212Speech 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 using orthogonal transformation
    • 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

Landscapes

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

Abstract

 인코딩 프로세스 시에 벡터 양자화 에러(예컨대, "버디")를 완화시키기 위한, 에너지 평활화를 이용하는 변환 기반 코덱 및 방법이 개시된다. 코덱 및 방법의 실시형태는 인코더를 사용해 직교 변환과 벡터 치환을 조합하여 주파수 변환 계수에 적용한다. 일부 실시형태에서는 변환이 먼저 수행된 후에 치환이 이어지지만 다른 실시형태에서는 그 순서가 반대이다. 사용된 순서는 디코더에서 역전된다. 적용될 에너지 평활화의 레벨을 포함하는 평활화 파라미터가 인코더로부터 디코더에 전달되어 변환 행렬 및 역변환 행렬 둘 다를 계산하는데 사용된다. 일부 실시형태에서, 변환 행렬은, 가역적이고 에너지 보존형이며 제어 가능하고 안정적인 부분 아다마드 행렬(fraction Hadamard matrix)이다.

Description

부대역 에너지 평활화를 이용하는 변환 기반 오디오 코덱 및 방법
디지털 오디오 코딩("디지털 오디오 압축"이라고도 함)은 저장 또는 전송에 앞서 (저장 요건을 축소하거나 대역폭 요건을 축소하기 위해) 오디오 데이터의 크기를 최소화하는 다양한 기술이다. 지각 오디오 코딩(perceptual audio coding) 기술은 인간이 실제로 사운드를 어떻게 인식하는지를 고려하여, 인간이 가장 명확하게 듣는 오디오 신호의 주파수는 더 집중하고 인간이 어떤 차이를 알아차릴 가능성이 적은 주파수에 대해서는 덜 집중한다.
디지털 오디오 코딩의 한 부류는 변환 기반 코딩(transform―based coding)으로 알려져 있다. 변환 기반 오디오 코딩은 양자화 및 인코딩에 앞서 시간 신호를 주파수 도메인 벡터의 계수로 변환한다. 일반적인 유형의 변환 중 하나가 변형 이산 코사인 변환(MDCT, modified discrete cosine transform)이다. MDCT는, 중첩된 블록에 대해 변환이 수행되는 것을 의미하는 랩트 트랜스폼(lapped transform)으로서, 블록 경계에서 발생하는 가청 아티팩트를 완화시킨다. MDCT는 여러 손실성 오디오 코덱 및 기술에 사용된다.
소정의 부대역을 나타내는 MDCT 계수는 대개 벡터 양자화(VQ, vector quantization) 기술을 이용하여 양자화된다. VQ는 이용 가능한 비트 수를 고려하여 가능한 한 많은 계수를 포착하기 위해 최소 평균 제곱 오차(MMSE, minimum mean square error) 접근법을 사용한다. MMSE 접근법은 평균 제곱 오차를 최소화하려는 추정 방법이다. 전형적인 오디오 신호의 상위 주파수 스펙트럼에서는, 부대역이 잡음과 유사하고, 각각의 상위 부대역은 다수의 넌제로 변환 계수를 포함한다.
그러나, 부대역 내의 변환 계수가 거친 방식(coarse manner)으로 양자화될 때 문제가 발생한다. 특히, 오디오 신호의 상위 부대역에는 통상적으로 하위 부대역보다 적은 수의 비트가 할당된다. VQ 기술에서는 소정의 부대역을 벡터 양자화하기 위한 가용 비트가 없다면, 대개 단일 계수만 양자화하여, 단일 계수 부대역을 효과적으로 생성할 것이다. 디코더에서는, 이 부대역에서 잡음과 유사한 신호를 재생성하는 대신, 단일 계수 부대역이 "톤" 사운드("tonal" sound)를 가질 것이다. 단일 계수는 시간과 주파수에서 이동하기 때문에, "음악 잡음(musical noise)" 또는 "버디(burdie)" 아티팩트를 생성한다. 이 음악 잡음이나 버티 아티팩트는 재생된 오디오 콘텐츠에서 무작위로 나타나고 사라지는 금속성 톤으로서 청취자에게 자신을 드러낸다.
본 개요는 상세한 설명에서 또한 후술하는 개념들의 선택을 간략화한 형태로 소개하기 위해 제공된다. 본 개요는 청구범위의 발명의 대상이 되는 주요 특징 또는 본질적 특징을 확인하기 위한 것이 아니며, 청구범위의 발명의 대상의 범위를 한정하기 위해 이용되어서도 안 된다.
에너지 평활화(energy smoothing)를 이용하는 변환 기반 코덱 및 방법의 실시형태는 버디 아티팩트 및 음악 잡음을 제거하는 방식으로 오디오 신호를 인코딩 및 디코딩하는데 이용된다. 이 코덱 및 방법의 실시형태는 치환 프로세스(permutation process)와 조합하여 변환 프로세스(transformation process)를 이용한다. 직교 변환 프로세스는 제어 가능하며, 이것은 에너지 평활화의 레벨이 원하는 대로 적용될 수 있다는 것을 의미한다. 에너지 평활화의 레벨은 인코더측에서 결정된다. 적용되는 에너지 평활화의 레벨을 포함하는 평활화 파라미터는 인코더에서 디코더로 전달된다.
평활화 파라미터는, 직교 변환 프로세스에서 인코더가 사용하는 변환 행렬 및 역변환 프로세스에서 디코더가 사용하는 역변환 행렬을 구성하는데 사용된다. 사용되는 변환 행렬은, 가역적이며, 에너지 보존형이고, 제어 가능하며(에너지 평활화 레벨을 지정할 수 있음), 행렬이 양자화 잡음에 강력할 정도로 안정적인 행렬의 부류이다. 일부 실시형태에서, 사용되는 변환 행렬의 유형은 부분 아다마드(fractional Hadamard) 행렬이다. 또한, 일부 실시형태에서, 직교 변환의 크기는 4 이상의, 2의 임의의 멱수이다.
코덱 및 방법의 실시형태는 현재의 솔루션을 능가한 여러 이점을 갖고 있다. 첫째, 다수의 기존의 솔루션과 비교해 전체 계산 복잡성이 저감된다. 이것은 부분적으로 특정 유형의 변환 행렬을 사용하는 것과 직교 변환의 크기에서 기인한다. 또한, 직교 변환과 벡터 치환의 조합을 사용하여 계산적 복잡성이 저감된다. 둘째, 코덱 및 방법의 실시형태의 전반적인 성능은 다수의 베드 믹스(bed mix) 및 비트레이트에 걸쳐 대형 데이터베이스에 대해 테스트할 때에 다소 향상되고 있다.
실시형태는 인코더를 사용하여 오디오 신호의 주파수 변환 계수에 직교 변환과 벡터 치환 둘 다를 적용함으로써 오디오 신호를 프로세싱하는 방법을 포함한다. 일부 실시형태에서는 먼저 변환이 적용된 다음에 치환이 이어진다. 다른 실시형태에서는 먼저 치환이 적용된 다음에 변환이 이어진다. 일부 실시형태에서, 변환의 크기는 4 이상의, 2의 임의의 멱수이다. 프로세싱된 계수는 양자화되고, 저장, 전송 또는 둘 다를 위해 인코딩된 비트스트림으로 팩킹된다. 디코더를 사용하여 인코딩된 비트스트림을 프로세싱하고 인코더의 동작을 반대로 하며 오디오 신호를 복원한다.
일부 실시형태에서, 직교 변환이 가변적이며, 적용되는 에너지 평활화의 레벨을 포함하는 평활화 파라미터에 의해 제어된다. 평활화 파라미터는 적어도 하나의 코덱 행렬의 함수이다. 평활화의 레벨은 디코더에 전달되고, 이에 인코더와 디코더 양쪽은 정확히 동일한 레벨의 에너지 평활화를 사용할 수 있다 평활화 레벨은 인코더에서 매 프레임마다 결정된다. 이 결정은 오디오 신호의 주파수 스펙트럼의 스펙트럼 분석에, 그리고 이 스펙트럼이 톤 구조 또는 잡음과 유사한 구조를 갖고 있는지를 측정하는 것에 기초한다. 이것을 결정하기 위해, 각 부대역에서 평탄도 척도(flatness measure)가 계산되어 전체 부대역에 걸쳐 평균환된다. 이 척도에 기초하여, 일부 실시형태에서는 4 레벨의 평활화가 결정된다. 즉, 4 레벨은 평활화 없음(no smoothing), 약 평활화(light smoothing), 중 평활화(medium smoothing), 및 강 평활화(heavy smoothing)이다.
일부 실시형태에서는 직교 변환 및 벡터 치환이 한번만 적용되고, 다른 실시형태에서는, 이들이 여러번 적용된다. 후자는 통상 주파수 변화 계수의 벡터 크기가 변환 행렬 크기의 배수가 아닌 경우에 일어난다. 또한, 일부 실시형태에서는, 벡터 치환이 인터리빙에 의해 달성된다. 인터리빙은 주어진 규칙에 따라 벡터의 계수(또는 원소)를 재배열하는 프로세스이다. 일부 실시형태에서는 규칙이 결정적이고, 다른 실시형태에서는 규칙이 확률적이다.
실시형태는 또한 오디오 신호를 복수의 주파수 부대역으로 분할하고 각 부대역마다 변환 행렬을 계산함으로써 오디오 신호를 인코딩하는 방법을 포함한다. 그런 다음 변환 행렬을 사용하여 직교 변환이 인코더에 의해 각 부대역의 주파수 변환 계수에 적용된다. 직교 변환은 4 이상의, 2의 임의의 멱수인 크기를 갖는다. 또한, 인코더는 주파수 변환 계수에 인터리빙을 적용하여 프로세싱된 주파수 변환 계수를 취득한다. 프로세싱된 계수는 벡터 양자화된 다음에, 오디오 신호를 나타내는 인코딩된 비트스트림으로 비트 팩킹된다.
또한, 인코더의 실시형태는 각 부대역마다 스펙트럼 평탄도를 계산하고, 스펙트럼 평탄도로부터, 각 부대역에 적용할 에너지 평활화의 양을 나타내는 에너지 평활화 레벨을 포함한 평활화 파라미터를 결정하는 것을 포함한다. 이 평활화 파라미터는 인코딩된 비트스트림으로 인코더로부터 디코더로 전송된다. 일부 실시형태에 있어서의 평활화 파라미터는 변환 행렬을 계산하는데 사용된다. 구체적으로, 변환 행렬을 계산하는데 사용되는 변환 파라미터는, 평활화 파라미터, 프로세싱되는 현재 부대역의 길이, 및 벡터 양자화기의 펄스 수의 함수이다.
또한, 디코더의 실시형태는 역변환 행렬 및 역치환을 오디오 신호의 각 부대역에 적용함으로써, 오디오 신호를 나타내는 인코딩된 비트스트림을 디코딩하는 것을 포함한다. 그렇게 복원된 주파수 변환 계수를 사용하여, 오디오 신호가 재구성되어 복원된 오디오 신호를 취득한다. 복원된 오디오 신호는 재생 디바이스에서 재생된다.
인코딩된 비트스트림과 함께, 역변환 행렬을 생성하기 위해 이용되는 변환 행렬을 계산하는데 사용되는 평활화 파라미터가 수신된다. 이것은 변환 행렬을 역전시켜 역변환 행렬을 취득하고 에너지 평활화의 레벨에 따라 역변환 행렬을 적용함으로써 달성된다. 또한, 디코더는 인코더에 의해 적용된 것과 역순으로 역변환 행렬 및 역치환을 적용한다.
대안의 실시형태들이 가능하고, 여기에 설명한 단계 및 요소는 특정 실시형태에 따라 변경, 추가 또는 제거될 수 있음을 알아야 한다. 이들 대안의 실시형태는 본 발명의 범위를 벗어나지 않으면서 이용할 수 있는 대안의 단계 및 대안의 요소, 및 이루어질 수 있는 구조적 변화를 포함한다.
이제, 도면 전체에서 같은 참조 번호들이 대응 부분들을 가리키는 도면을 참조한다.
도 1은 에너지 평활화를 이용하는 변환 기반 코덱 및 방법의 실시형태의 일반적인 개요를 도시하는 블록도이다.
도 2는 도 1에 도시한 에너지 평활화를 이용하는 변환 기반 코덱의 동작의 실시형태를 도시하는 흐름도이다.
도 3은 도 1에 도시한 에너지 평활화를 이용하는 변환 기반 인코더의 실시형태의 상세를 도시하는 블록도이다.
도 4는 도 1에 도시한 에너지 평활화를 이용하는 변환 기반 디코더의 실시형태의 상세를 도시하는 블록도이다.
도 5는 도 3에 도시한 직교 변환 및 치환 시스템의 실시형태를 도시하는 상세 블록도이다.
도 6은 치환 시스템과 상호작용하는 직교 변환 시스템의 실시형태를 도시하는 상세 블록도이다.
도 7은 행렬 기반 인터리빙을 이용하여 치환을 적용하는 예시적인 실시형태를 도시한다.
도 8은 도 1과 도 3에 도시한 에너지 평활화를 이용하는 변환 기반 인코더의 동작의 실시형태를 도시하는 흐름도이다.
도 9는 도 4에 도시한 직교 역 변환 및 치환 시스템의 실시형태를 도시하는 상세 블록도이다.
도 10은 역치환 시스템과 상효작용하는 직교 역변환 시스템의 실시형태를 도시하는 상세 블록도이다.
도 11은 행렬 기반 디인터리빙을 이용하여 역치환을 적용하는 예시적인 실시형태를 도시한다.
도 12는 도 1과 도 4에 도시한 에너지 평활화를 이용하는 변환 기반 디코더의 동작의 실시형태를 도시하는 흐름도이다.
도 13은 확장된 오리지널 시퀀스가 M의 배수가 아닌 경우에, 치환 시스템과 상호작용하는 직교 변환 시스템의 실시형태를 도시하는 상세 블록도이다.
이하, 첨부 도면을 참조하여, 에너지 평활화를 이용하는 변환 기반 코덱 및 방법의 실시형태에 대해 설명한다. 이들 도면에는 에너지 평활화를 이용하는 변환 기반 코덱 및 방법의 실시형태들이 어떻게 실시될 수 있는지에 관한 특정 예들을 도식으로 나타내고 있다. 청구 대상의 범위를 벗어나지 않고서 다른 실시형태들이 이용될 수 있고 구조적 변경이 이루어질 수 있음이 이해될 것이다.
I. 시스템 및 동작 개관
에너지 평활화를 이용하는 변환 기반 코덱 및 방법의 실시형태는 인코딩 시에 벡터 양자화에서 기인하는 아티팩트를 저감 및 완화시키는데 사용된다. 이것은 직교 변환 및 벡터 치환의 조합을 오디오 신호의 주파수 변환 계수에 적용함으로써 달성된다. 이제 코덱 및 방법의 실시형태들의 개요를 설명할 것이다.
도 1은 에너지 평활화를 이용하는 변환 기반 코덱 및 방법의 실시형태의 일반적인 개요를 도시하는 블록도이다. 도 1을 참조하면, 코덱(100)은 에너지 평활화를 이용하는 변환 기반 인코더(110)와 에너지 평활화를 이용하는 변환 기반 디코더(120)를 포함한다. 처음에, 오디오 콘텐츠(에컨대, 음악 또는 보컬 트랙)이 콘텐츠 작성 환경(130)에서 작성된다. 이 환경(130)은 오디오 소스를 레코딩하기 위한 복수의 마이크(135)(또는 기타 사운드 포착 디바이스)를 포함할 수 있다. 대안으로, 오디오 소스는 그 소스를 레코딩하기 위한 마이크를 사용할 필요가 없게 이미 디지털 신호로 되어 있을 수도 있다. 사운드를 작성하는 방법이 무엇이든, 콘텐츠 작성 환경(130)의 출력은 오디오 신호(140)이다.
그런 다음 오디오 신호(140)는 에너지 평활화를 이용하는 변환 기반 인코더(110)를 사용하여 인코딩된다. 통상 인코더(110)는 하나 이상의 프로세싱 디바이스를 구비하는 컴퓨팅 디바이스 상에 위치한다. 인코더(110)는 여기에서 설명하는 시스템 및 방법을 사용해서 오디오 신호(140)를 인코딩하여 인코딩된 비트스트림(150)을 생성한다.
인코딩된 비트스트림(150)은 청취자가 소비할 수 있도록 전달 환경(160)을 통해 전달된다. 네트워크(165)를 통한 스트리밍 전달을 포함한 여러 전달 옵션을 이용할 수 있다. 대안으로, 인코딩된 비트스트림(150)은 청취자가 소비하도록 매체(170)(예컨대, 광디스크) 상에 저장된다. 또한, 여기에 열거하지 않는, 인코딩된 비트스트림(150)을 전달하는데 사용되는 다른 전달 옵션도 다수이다.
전달 환경(160)의 출력은 전송된 인코딩 비트스트림(175)으로서, 에너지 평활화를 이용하는 변환 기반 디코더(120)에 입력된다. 디코더(120)는 전송된 인코딩 비트스트림(175)을 디코딩하여 복원된 오디오 신호(180)를 취득한다. 통상적 실시형태의 디코더(120)는 하나 이상의 프로세싱 디바이스를 구비하는 컴퓨팅 디바이스 상에 위치한다. 복원된 오디오 신호(180)는 재생 스피커(또는 채널) 레이아웃을 포함하는 재생 환경(185)에서 재생된다. 재생 스피커 레이아웃은 콘텐츠 작성 스피커 레이아웃과 동일할 수도 동일하지 않을 수도 있다. 도 4에 도시하는 재생 스피커 레이아웃은 11.2 레이아웃이고, 환경(185)은 청취자(190)를 포함한다. 다른 실시형태에서는, 재생 스피커 레이아웃이 헤드폰일 수 있으며, 이 경우 스피커는 사운드가 재생 환경(185)에서 발생하는 것처럼 보이는 가상 스피커일 뿐이다. 예를 들어, 청취자(190)는 헤드폰을 통해 복원된 오디오 신호(180)를 청취하고 있을 수 있다. 이 상황에서, 스피커는 (헤드폰을 제외한) 실제의 물리 스피커는 아니지만, 사운드는 예컨대 11.2 서라운드 사운드 스피커 구성에 상응하여 재생 환경(185) 내의 상이한 공간 위치로부터 발생하는 것으로 보인다.
도 2는 도 1에 도시한 에너지 평활화를 이용하는 변환 기반 코덱의 동작의 실시형태를 도시하는 흐름도이다. 동작은 프로세싱되고 있는 오디오 신호(140)로부터, 주파수 변환 계수의 블록을 입력으로서 수신하는 것에서 시작된다(박스 200). 이 오디오 신호(140)는 오디오 엔지니어(또는 다른 유형의 콘텐츠 작성자)에 의해 오리지널이 레코딩 및 믹싱된 오디오 신호이다. 일부 실시형태에서, 주파수 변환 계수의 블록은 오디오 신호(140)의 부대역 또는 부분을 위한 것이다.
인코더(110)는 주파수 변환 계수의 블록에 직교 변환 및 벡터 치환 둘 다를 적용하는데 사용된다(박스 210). 일부 실시형태에서, 직교 변환은 4 이상의, 2의 임의의 멱수이다. 그렇게 프로세싱된 주파수 변환 계수가 양자화되어 양자화된 프로세싱된 주파수 변환 계수를 취득한다(박스 220). 양자화된 프로세싱된 주파수 변환 계수는 인코딩된 비트스트림(150)으로 팩킹된다.
인코딩된 비트스트림(150)은 전송 또는 저장되는데, 일부 실시형태에서는 전송 및 저장이 모두 일어난다(박스 240). 저장 및 전송이 모두 행해지면, 이들이 행해지는 순서는, 먼저 저장이 이루어진 다음에 전송이 이루어질 수 있거나 또는 그 반대일 수도 있다. 디코더(120)는 인코딩된 비트스트림(150)을 프로세싱하고 인코더(110)의 동작을 반대로 하는데 사용된다(박스 250). 인코딩된 비트스트림(150)의 디코딩 후에, 오디오 신호가 복원된다. 일부 실시형태에서는, 복원된 오디오 신호(180)가 오디오 신호의 비트별 재생(bit―for―bit reproduction)이다. 다른 실시형태에서는, 복원된 오디오 신호(180)가 오디오 신호의 근사치(approximation)이다. 재생 디바이스는 복원된 오디오 신호(180)를 재생하는데 사용된다(박스 260).
인코더 실시형태의 개요
도 3은 도 1에 도시한 에너지 평활화를 이용하는 변환 기반 인코더의 실시형태의 상세를 도시하는 블록도이다. 도 3에 도시하는 바와 같이, 인코더(110)는 이하에서 상세하게 설명하는 직교 변환 및 치환 시스템(300)을 포함한다. 인코더(110)의 입력은 오디오 신호(140)이다. 이 신호(140)는 직교 변환 및 치환 시스템(300)에 입력되는 주파수 변환 계수의 블록(310)을 포함한다. 일부 실시형태에서는, 이들 주파수 변환 계수의 블록(310)이 정규화된 변형 이산 코사인 변환(MDCT, normalized modified discrete cosine transform) 계수이다.
이 시스템(300)의 출력은 직교 변환 및 벡터 치환이 적용된 프로세싱된 주파수 변환 계수(320)이다. 이어서, 프로세싱된 주파수 변환 계수(320)는 양자화된 프로세싱된 주파수 변환 계수를 생성하는 벡터 양자화기(330)를 사용하여 양자화된다. 이들 양자화된 계수는 비트스트림 팩킹 시스템(340)을 사용하여 비트스트림으로 팩킹된다. 인코더(110)의 출력은 인코딩된 비트스트림(150)이다.
디코더 실시형태의 개요
전술한 바와 같이, 인코딩된 비트스트림(150)은 저장 또는 전송되거나, 둘 다 모두가 행해진다. 그런 다음 인코딩된 비트스트림(150)은 렌더링을 위해 에너지 평활화를 이용하는 변환 기반 디코더(120)를 포함한 수신측 디바이스로 전달된다. 도 4는 도 1에 도시한 에너지 평활화를 이용하는 변환 기반 디코더의 실시형태의 상세를 도시하는 블록도이다. 디코더(120)는 주파수 변환 계수에 적용된 직교 변환 및 벡터 치환을 반대로 하는 직교 역 변환 및 치환 시스템(400)을 포함한다. 이에 대해서는 이하에서 더 상세하게 설명한다.
디코더(120)의 입력은 전송된(또는 저장된, 또는 전송 및 저장된) 인코딩된 비트스트림(150)이다. 인코딩된 비트스트림(150)은 먼저 비트스트림 언팩킹 시스템(410)을 사용하여 언팩킹된다. 다음으로, 역벡터 양자화기(420)를 사용하여 언팩킹된 인코딩된 비트스트림에 역벡터 양자화가 적용된다. 이 역양자화는 직교 역 변환 및 치환 시스템(400)에 입력되는 수신된 주파수 변환 계수(430)의 세트를 생성한다. 시스템(400)의 출력은 복원된 주파수 변환 계수의 블록(440)이다. 디코더(120)의 출력은 복원된 오디오 신호(180)이다.
II. 시스템 및 동작 개관
이하, 에너지 평활화를 이용하는 변환 기반 코덱 및 방법의 상세에 대해 설명한다. 다수의 변형이 가능하며, 당업자라면 본 개시내용에 기초하여 동일한 결과가 달성될 수 있는 다수의 다른 방법을 이해할 것임을 알아야 한다.
인코더
도 5는 도 3에 도시한 직교 변환 및 치환 시스템(300)의 실시형태를 도시하는 상세 블록도이다. 도 5는 시스템(300)의 예시적인 실시형태들 및 거기에 포함된 방법을 도시하며, 도 5에 도시한 것으로부터 다수의 변형이 가능함을 알아야 한다. 시스템(300)이 오디오 신호를 프로세싱하기 전에, 임의의 필터링, 프리엠퍼시스(pre―emphasis), 또는 시간 도메인 내에서 오디오 신호에 수행되는 임의의 다른 연산이 수행되는 것을 알아야 한다.
도 5에 도시하는 바와 같이, 주파수 변환 계수의 블록(310)이 시스템(300)에 의해 수신된다. 일부 실시형태에서는 이 계수가 MDCT 계수(310)이지만, 다른 실시형태에서는, 계수 유형이 이산 코사인 변환(DCT)의 임의의 변형 또는 오디오 코텍에서 사용하는 임의의 다른 주파수 변환임을 알아야 한다. 사용하는 주파수 변환 계수가 어떤 유형인지에 관계없이, 이들 계수는 치환 시스템(500) 및 직교 변환 시스템(510)에 의해 수신된다. 치환 시스템(500)과 직교 변환 시스템(510)의 조합은 치환 프로세스와 조합된 변환 프로세스이다.
인코더(110)에서의 변환 및 치환 프로세스의 순서는 그 순서가 디코더(120)에서 역전되기 때문에 중요하다. 예를 들어, 인코더(110)에서, 주파수 변환 계수(예컨대, 주파수 변화 계수의 블록(310))가 먼저 치환 시스템(500)에 의해 프로세싱된 다음에 직교 변환 시스템(510)에 의해 프로세싱되는 경우를 가정한다. 그러면, 디코더에서는 역변환이 적용된 다음에 역치환이 행해진다. 일부 실시형태에 있어서, 인코더(110)측에서 주파수 변환 계수가 먼저 치환 시스템(500)에 의해 프로세싱된 다음에 직교 변환 시스템(510)에 의해 프로세싱된다. 다른 실시형태에 있어서, 인코더(110)측에서 주파수 변환 계수가 먼저 직교 변환 시스템(510)에 의해 프로세싱된 다음에 치환 시스템(500)에 의해 프로세싱된다. 치환 시스템(500)과 직교 변환 시스템(510)에 대해서는 이하에서 상세하게 설명한다.
주파수 변환 계수는 에너지 평활화 결정 블록(520)에 의해서도 사용된다. 이 결정 블록(520)은 먼저 주파수 변환 계수의 신호 스펙트럼의 분석을 수행한다. 이 분석에 기초하여, 결정 블록(520)은 에너지 평활화가 필요한지의 여부를 결정하고, 그렇다면 어느 정도 에너지 평활화를 적용해야 할지를 결정한다. 에너지 평활화가 필요하지 않다면, 주파수 변환 계수의 블록에 적용되는 에너지 평활화는 없다.
에너지 평활화가 필요하다고 결정되면, 결정 블록(520)은 분석을 사용하여 어느 정도 에너지 평활화를 적용해야 할지를 결정한다. 에너지 평활화 결정 블록(520)의 출력은 적용할 평활화의 레벨 또는 양을 특정하는 평활화 파라미터이다. 에너지 평활화의 여부 및 평활화 레벨에 관한 결정은 인코더(110)로부터의 파라미터의 수의 함수이다. 다양한 실시형태에서는 이들 파라미터가 부대역의 길이 및 가용 비트 수의 임의의 조합을 포함한다.
에너지 평활화 결정 블록(520)은 평활화 파라미터를 변환 파라미터 시스템(530)에 전송한다. 이 시스템(530)은 변환 행렬을 생성하는데 사용되는 변환 파라미터("x" 로 표시)를 계산한다. 시스템(530)은 또한 벡터 양자화기(330)로부터의 입력을 펄스 수의 형태로 수신한다. 변환 파라미터(x)는 평활화 파라미터, 변환할 부대역의 길이, 및 벡터 양자화기(330)의 펄스 수의 함수이다. 이들 변환 파라미터는 변환 행렬을 생성하기 위해 직교 변환 시스템(510)에 전송된다. (직교 변환 시스템(510)이 먼저 주파수 변환 계수를 프로세싱하는 경우의) 치환 시스템(500)의 출력 또는 (치환 시스템(500)이 먼저 주파수 변환 계수를 프로세싱하는 경우의) 직교 변환 시스템(510)의 출력은 주어진 부대역 또는 부분에 대한 프로세싱된 주파수 변환 계수(320)이다. 그리고 나서 전술한 바와 같이, 이들 프로세싱된 주파수 변환 계수(320)는 주어진 부대역 또는 부분에 대한 양자화된 프로세싱된 주파수 변환 계수를 생성하는 벡터 양자화기(330)를 사용하여 양자화된다.
직교 변환 시스템의 상세
도 6은 치환 시스템(500)과 상호작용하는 직교 변환 시스템(510)의 실시형태를 도시하는 상세 블록도이다. 구체적으로, 도 6은 이들 실시형태에서는 인터리빙인 치환과, 변환의 조합이 어떻게 주파수 부대역 또는 부분에 적용되는지를 도시하고 있다. 도 6에 도시하는 이들 실시형태에서는, 벡터의 계수의 길이가 M의 정수배임을 가정하고 있으며, 여기서 M은 변환 행렬의 크기이다. 도 6에 도시하는 예시적인 실시형태에서는 M의 크기가 4와 같다. 또한, 도 6에 도시하는 예시적인 실시형태에서는, 치환 시스템(500)이 먼저 주파수 변환 계수를 프로세싱한 다음에 직교 변환 시스템(510)이 프로세싱한다.
도 6에 도시하는 바와 같이, 부대역 계수의 오리지널 시퀀스(600)가 치환 시스템(500)에 입력된다. 이 예에서는 시퀀스(600)의 길이가 M=4의 배수와 같다(이 경우에는 16 계수 길이). 치환 시스템(500)에 의한 첫번째 프로세싱이 전체 오리지널 시퀀스(600)에 적용되는데, 인터리빙이다. 이 인터리빙은 오리지널 시퀀스(600)의 길이(또는 이 예에서의 16 계수 길이)인 인터리빙된 시퀀스(610)를 생성한다.
이어서, 인터리빙된 시퀀스(610)는 직교 변환 시스템(510)에 의해 프로세싱된다. 시스템(510)은 인터리빙된 시퀀스의 연속 M개 포인트(이 예에서 M=4)의 각각의 세트에 변환 행렬을 적용한다. 직교 변환 시스템(510)에 의한 이 프로세싱은 도 3과 도 5에 도시한 프로세싱된 주파수 변환 계수(320)의 특정 예인, 프로세싱된 시퀀스(620)를 생성한다. 도 6에 도시하는 예에서, 프로세싱된 시퀀스(620)의 각 블록은 4x4 행렬의 계수이다. 또한, 이 예에서는 프로세싱된 시퀀스에 4 블록, 즉 제1 블록(630), 제2 블록(640), 제3 블록(650), 및 제4 블록(660)이 존재한다.
변환 행렬
일부 실시형태에 있어서, 변환 행렬은 부분 아다마르 행렬의 부류에서 유래한 유형에 속한다. 이 행렬은 변환 행렬에 대해 앞에서 또는 뒤에서 주어지는 요건을 충족한다. 구체적으로, 행렬은 다음과 같이 직교적이며,
Figure pct00001
그래서, 적절한 정규화로 에너지가 보존되고, 제어 가능하다.
예를 들어, 다음은 크기 4의 부분 아다마드 행렬(H4w)의 변환 행렬을 실현한 예이다.
Figure pct00002
여기서,
Figure pct00003
그리고 x는 0과 1 사이의 범위에 있는 변환 파라미터이다.
예를 들면, x = 0 → 평활화 없음(no_smoothing)이면, 변환 행렬은 다음과 같아진다.
Figure pct00004
x = 1 → H2f 최대 평활화(max smoothing)이면, 변환 행렬은 다음과 같아진다.
Figure pct00005
크기 4의 부분 아다마드 행렬의 또 다른 변형은 다음과 같다.
Figure pct00006
여기서,
Figure pct00007
그리고 x는 변환 파라미터이다.
전술한 2개의 예 외에도 여러 변형 및 다른 유형의 변환 행렬이 가능함을 알아야 한다. 변환 행렬에 대한 주요 요건은 가역적이어야 하는 것과 에너지 보존형이어야 하는 것이다. 뿐만 아니라, 변환 행렬은 (어느 정도의 평활화를 가능하게 하기 위해) 제어 가능해야 하며, 양자화 잡음에 안정적이고 강력해야 한다.
변환 파라미터
변환 파라미터(x)는, 부대역을 벡터 양자화하는데 사용되는 펄스의 수(K), 부대역의 길이(N)뿐만 아니라, 원하는 평활화의 레벨에 대한 세팅인 평활화 파라미터(s)의 함수로서 계산된다. 수학식으로, 변환 파라미터는 다음과 같이 작성될 수 있다.
Figure pct00008
여기서도, s는 평활화가 얼마나 많이 또는 얼마나 적게 적용되는지에 관한 세팅인 평활화 파라미터이다. 평활화 파라미터는 프레임마다(또는 각 부대역마다) 한번 결정된다. 평활화 파라미터의 상세에 대해서는 이하에 주어진다.
일부 실시형태에서는, 평활화 레벨이 3개의 개별 레벨, 즉 약, 중, 및 강으로 주어진다. 또한, 3개의 세팅 각각에 대한 값은 다음과 같이 주어진다.
s(약) = 0.35; s(중) = 0.45; s(강) = 0.75
평활화의 레벨은 디코더(120)로 전달되며, 인코더(110)와 디코더(120) 양쪽에서는 평활화 파라미터(s)를 이용하여 변환 파라미터(x)에 대한 정확히 동일한 값을 도출한다.
치환 시스템의 상세
일부 실시형태에서는 치환 시스템(500)이 인터리빙을 수행한다. 인터리빙은 주어진 규칙에 따라 벡터의 계수(또는 원소)를 재배열하는 프로세스이다. 일부 실시형태에서는 규칙이 결정적이고, 다른 실시형태에서는 규칙이 확률적이다. 당업자라면 알고 있는 바와 같이, 인터리빙은 다수의 방식으로 수행될 수 있다.
도 7은 행렬 기반 인터리빙을 이용하여 치환을 적용하는 예시적인 실시형태를 도시한다. 이 인터리빙은 인코더(110) 상의 치환 시스템(500)에 의해 행해진다. 이 예에서는, 4열 및 P행의 행렬을 이용하여 길이 Px4의 시퀀스가 인터리빙된다. 도 7에 도시하는 바와 같이, 인터리빙 시에 행렬은 행방향으로(또는 행을 따라) 충전되고, 행렬은 열방향(또는 열을 따라) 판독된다. 인터리빙을 하기 위해, 행렬은 행방향으로 충전되고, 열방향으로 판독된다.
에너지 평활화 결정 블록의 상세
에너지 평활화 결정 블록(520)의 실시형태에서는 에너지 평활화의 적용 여부를 결정하고, 에너지 평활화의 적용이 결정되면, 적용되어야 하는 평활화의 정도를 결정한다. 일부 실시형태에서는, 인코더(110)에서 각 프레임 또는 부대역마다 평활화 적용 여부가 결정된다. 일부 실시형태에서, 이 결정은 상위 주파수 스펙트럼의 분석에 기초하며, 이 스펙트럼이 톤 구조 또는 잡음과 유사한 구조를 갖는지를 측정하는 것을 수반한다.
평균 평탄도 척도에 기초한 결정
이 분석을 정량화하기 위해, 각 부대역마다 평탄도 척도가 계산되어 소정 임계치보다 높은(예를 들면 2 kHz보다 높은) 부대역에 걸쳐 평균화된다. 평균 평탄도 척도가 임계치보다 낮으면, 에너지 평활화가 그 부대역에 적용되지 않는다. 한편, 평균 평탄도 척도가 임계치 이상이면, 에너지 평활화가 그 부대역에 적용된다.
평균 평탄도 척도는 각 프레임 또는 부대역마다 평활화의 레벨을 결정하는 데에도 사용된다. 일부 실시형태에서는, 이용할 수 있는 평활화의 개별 레벨이 3개, 즉 (1) 약 에너지 평활화; (2) 중 에너지 평활화: 및 (3) 강 에너지 평활화이다. 물론 에너지 평활화를 적용하지 않는다고 결정되면, 이것은 평활화 레벨 없음으로, 어느 측에도 변환이 적용되지 않음을 암시한다.
스펙트럼 평탄도 분석을 위해, 상위 주파수 스펙트럼이 부대역으로 분할된다. 일부 실시형태에서는, 이것이 바크 스케일(Bark scale)과 같은 지각 스케일에 기초할 수 있다. 평탄도의 스펙트럼 척도는 정규화된 MDCT 대역 상에서 계산된다. 스펙트럼의 평탄도를 계산하는 데에 여러 방법이 사용될 수 있다. 일부 실시형태에서는, 이하의 수식을 사용하여 주어진 부대역에 대해 소위 엔트로피 기반 척도가 계산된다.
Figure pct00009
여기서, K는 부대역의 (빈(bin))의 길이이고,
Figure pct00010
는 이하의 수식에 의해 주어지는, 소정의 MDCT 빈의 정규화된 (절대) 값이다.
Figure pct00011
여기서, X(k)는 빈 k에서의 MDCT의 값이다.
평탄도의 선형 척도는 다음과 같이 주어진다.
Figure pct00012
이에 척도는 각 부대역마다 계산되고, 전체 부대역 및 채널에 대해 평균화되어, 단일의 척도인 평균 평탄도 척도(또는 "flat")을 산출한다. 이 척도에 기초하여, 일부 실시형태에서는 다음과 같은 휴리스틱으로부터 평활화 결정이 이루어진다.
if ((flat < 1.19)), 결정 = 없음 (적용되는 에너지 평활화 없음);
if ((flat >= 1.19) & (flat < 1.25)), 평활화 결정 = 약;
if ((flat >= 1.25) & (flat < 1.48)), 평활화 결정 = 중;
if ((flat >= 1.48)), 평활화 결정 = 강.
희박도에 기초한 결정
또 다른 실시형태에서는 스펙트럼의 희박도 척도가 평활화 레벨을 결정하는데 사용된다. 전술한 바와 마찬가지로, 이 희박도 척도는 인코더 상에서 이하의 수식을 사용하여 각 부대역마다 계산된다.
Figure pct00013
여기서,
Figure pct00014
그리고,
Figure pct00015
유사한 휴리스틱이 평활화 레벨을 결정하는데 사용될 수 있다.
에너지 평활화를 이용하는 변환 기반 인코더의 동작 상세
도 8은 도 1과 도 3에 도시한 에너지 평활화를 이용하는 변환 기반 인코더(110)의 동작의 실시형태를 도시하는 흐름도이다. 동작은 입력으로서 오디오 신호(140)를 수신하는 것에서 시작된다(박스 800). 오디오 신호(140)는 주파수 변환 계수의 블록(310)을 포함하는데, 이 예에서는 정규화된 변형 이산 코사인 변환(MDCT) 계수이다(박스 810).
이어서 인코더(110)는 오디오 신호(140)의 주파수 스펙트럼(MDCT 계수로 표현됨)을 복수의 부대역으로 분할한다. 이들 부대역은 균일한 크기일 수도 불균일한 크기일 수도 있다. 구체적으로, 일부 실시형태에서는, 부대역의 크기가, 일반적으로 사용되는 바크 스케일(Bark scale)과 같은 로그 스케일(logarithmic scale)을 따른다. 그러나, 이것은 필수적이 아니며, 다른 실시형태에서는 부대역이 불균일한 길이를 갖는다.
부대역이 균일한 길이 또는 불균일한 길이를 갖는지의 여부와 관계없이, 인코더(110)는 모든 부대역 및 채널에 대해 반복한다(박스 815). 모든 채널의 각 부대역마다, 인코더(110)는 전술한 바와 같이 스펙트럼 평탄도를 계산한다(박스 820). 각 부대역에 대한 스펙트럼 평탄도가 평균화되어, 에너지 평활화의 적용 여부 및 적용되는 평활화의 레벨을 결정하는데 사용되는 평균 평탄도 척도를 취득한다(박스 830). 이 프로세싱은 평활화의 레벨을 포함하는 평활화 파라미터를 산출한다. 전술한 바와 같이, 일부 실시형태에서는, 4개의 상이한 레벨의 평활화, 즉 평활화 없음, 약 평활화, 중 평활화, 및 강 평활화가 존재한다. 평활화 레벨을 포함하는 평활화 파라미터는 인코딩된 비트스트림(150)에 포함되어 인코더(110)와 디코더(120) 사이에서 전달된다.
인코더(110)는 변환 및 치환 프로세스에도 평활화 파라미터를 사용한다. 인코더(110)는 모든 채널에 대해 반복하고(박스 840), 각 채널 내에서, 모든 부대역에 대해 반복한다(박스 850). 각각의 반복에서, 인코더(110)는 변환 행렬을 계산하고(박스 860), 치환을 적용하는데, 이 경우에는 인터리빙이다(박스 870). 인코더(110)는 또한 변환 프로세스에 변환 행렬을 적용한다(박스 880). 전술한 바와 같이, 일부 실시형태에서는 먼저 변환 프로세싱이 적용된 다음에 치환 프로세싱이 적용되고, 다른 실시형태에서는 먼저 치환 프로세싱이 적용된 다음에 변환 프로세싱이 적용된다. 그렇게 프로세싱된 MDCT는 벡터 양자화기(330)를 사용하여 벡터 양자화된다(박스 890).
디코더
도 9는 도 4에 도시한 직교 역 변환 및 치환 시스템(400)의 실시형태를 도시하는 상세 블록도이다. 도 9는 시스템(400)의 예시적인 실시형태들 및 거기에 포함된 방법을 도시하며, 도 9에 도시한 것으로부터 다수의 변형이 가능함을 알아야 한다.
도 9에 도시하는 바와 같이, 역벡터 양자화기(420)는 수신된 벡터에 기초하여 부대역을 재생성한다. 역벡터 양자화기(420)로부터의 출력은 수신된 주파수 변환 계수(430)이다. 직교 역 변환 및 치환 시스템(400)의 입력은 수신된 주파수 변환 계수(430)이다.
직교 역 변환 및 치환 시스템(400)은 직교 역변환 시스템(900) 및 역치환 시스템(910)을 포함한다. 역변환 및 역치환이 디코더(120) 상에서 수행되는 순서가 인코더(110) 상에서 변환 및 치환이 행해진 순서에 종속되는 것에 주목하는 것이 중요하다. 전술한 바와 같이, 인코더(110) 상에서 수행된 방법은 어떤 것이나 디코더(120) 상에서 역전된다. 역치환 시스템(910)과 직교 역변환 시스템(900)에 대해서 이하에서 상세하게 설명한다.
디코더측 변환 파라미터 시스템(920)은 변환 행렬을 생성하는데 사용되는 변환 파라미터(x)를 계산한다. 이것은 인코더(110) 상에서 변환 파라미터 시스템(530)에 의해 사용되는 것과 동일한 정보이다. 평활화 파라미터는, 인코더(110)로부터 디코더(120)에 전달되며, 디코더측 변환 파라미터 시스템(920)에 포함되는 변환 파라미터 중 하나이기도 하다.
직교 역변환 시스템(900)은 또한 인코더(110)에서 행해진 주파수 도메인 변환을 반대로 한다. 뿐만 아니라, 인코더(110)에 의해 수행된 임의의 시간 도메인 프로세싱도 시스템(900)에 의해 역전된다. 시스템(900)으로부터의 출력은 복원된 주파수 변환 계수의 블록(440)이다.
직교 역변환 시스템의 상세
도 10은 역치환 시스템(910)과 상호작용하는 직교 역변환 시스템(900)의 실시형태를 도시하는 상세 블록도이다. 구체적으로, 도 10은 이들 실시형태에서는 디인터리빙(deinterleaving)인 역치환과, 역변환의 조합이 어떻게 주파수 부대역 또는 부분에 적용되는지를 도시하고 있다. 도 10에 도시하는 이들 실시형태에서는, 벡터의 계수의 길이가 M의 정수배임을 가정하고 있으며, 여기서 M은 변환 행렬의 크기이다. 도 10에 도시하는 예시적인 실시형태에서는 M의 크기가 4와 같다. 또한, 도 10에 도시하는 예시적인 실시형태에서는, 직교 역변환 시스템(900)이 먼저 주파수 변환 계수를 프로세싱한 다음에 역치환 시스템(910)이 프로세싱한다.
도 10에 도시하는 바와 같이, 부대역 계수의 전송된 프로세싱된 시퀀스(1000)가 직교 역변환 시스템(900)에 입력된다. 도 10에 도시하는 예에서, 전송된 프로세싱된 시퀀스(1000)의 각 블록은 4x4 행렬의 계수이다. 또한, 이 예에서는 프로세싱된 시퀀스에 4 블록, 즉 제1 수신 블록(1010), 제2 수신 블록(1020), 제3 수신 블록(1030), 및 제4 수신 블록(1040)이 존재한다.
직교 역변환 시스템(900)은 역변환 행렬을 적용하여 연속 M개 포인트(여기서 이 예에서는 M=4)의 세트를 갖는 복원된 인터리빙된 시퀀스(1050)를 생성한다. 그런 다음, 복원된 인터리빙된 시퀀스(1050)는 역치환 시스템(910)에 의해 프로세싱된다. 시스템(900)은 복원된 인터리빙된 시퀀스(1050)를 디인터리빙하여 복원된 오리지널 시퀀스(1060)를 취득한다. 이 예에서는 시퀀스(1060)의 길이가 M=4의 배수와 같다(이 경우에는 16 계수 길이).
역변환 행렬의 계산의 일례는 다음과 같다. 먼저, 평활화 파라미터가 인코딩된 비트스트림으로부터 취득된다. 다음으로, 변환 파라미터(x)가 계산된다. 일부 실시형태에서는, 앞에서 주어진 수식을 이용하여 x가 계산된다.
Figure pct00016
x를 계산한 후에, 변환 행렬이 계산된다. 전술한 바와 같이, 일부 실시형태에서는 변환 행렬이 다음과 같이 계산된다.
Figure pct00017
여기서,
Figure pct00018
역변환 행렬은 변환 행렬의 역(inverse)(또는 전치행렬), 즉
Figure pct00019
을 취해서 계산된다.
그런 다음 역변환 행렬이 디코더에 의해 적용된다. 이것은 역치환(이 예에서는 디인터리빙)에 앞서거나 역치환에 이어진다.
역치환 시스템의 상세
도 11은 행렬 기반 디인터리빙을 이용하여 역치환을 적용하는 예시적인 실시형태를 도시한다. 이것은 도 8에 도시한 인터리빙 연산의 반대 또는 역연산이다. 이 디인터리빙은 디코더(120) 상의 역치환 시스템(910)에 의해 행해진다. 이 예에서는, 4열 및 P행의 역행렬을 이용하여 Px4 길이의 시퀀스가 디인터리빙된다. 도 11에 도시하는 바와 같이, 디인터리빙 시에 행렬은 열방향으로 충전되고, 행방향으로 판독된다.
에너지 평활화를 이용하는 변환 기반 디코더의 동작 상세
도 12는 도 1과 도 4에 도시한 에너지 평활화를 이용하는 변환 기반 디코더(120)의 동작의 실시형태를 도시하는 흐름도이다. 동작은 입력으로서 인코딩된 비트스트림(150)을 수신하는 것에서 시작된다(박스 1200). 역양자화가 인코딩된 비트스트림에 적용된다(박스 1210). 인코딩된 비트스트림(150)은 인코더(110)로부터 디코더(120)로 전달되는 평활화 파라미터도 포함한다. 디코더(120)는 평활화 파라미터로부터 평활화 레벨을 판독한다(박스 1220).
디코더(120)는 각 채널에 대해 반복하고(박스 1230), 각 채널 내의 각 부대역에 대해 반복한다(박스 1240). 특정 채널 내의 각 부대역에 대해, 디코더(120)는 수신된 평활화 파라미터를 사용하여 변환 행렬을 계산한다(박스 1250). 변환 행렬을 역전시켜 역변환 행렬을 취득하고, 수신된 MDCT 계수에 이 역변환 행렬이 적용된다(박스 1260).
디코더(120)는 또한 MDCT 계수에 디인터리빙을 적용한다(박스 1270). 역변환 프로세싱 및 디인터리빙은 이들이 인코더(110)에 의해 적용된 순서와 역순으로 디코더(120)에 의해 적용된다. 이 역변환 및 디인터리빙의 결과가 복원된 MDCT 계수이다(박스 1280).
III. 대안의 실시형태 및 예시적인 동작 환경
직교 변환 시스템(510) 및 치환 시스템(500)의 대안의 실시형태들도 가능하다. 예를 들어, 도 13은 확장된 오리지널 시퀀스(1300)가 M의 배수가 아닌 경우에, 치환 시스템(500)과 상호작용하는 직교 변환 시스템(500)의 실시형태를 도시하는 상세 블록도이다. 구체적으로, 도 13은 벡터의 계수의 길이가 M의 배수가 아닌 경우에(여기서, M은 변환 행렬의 크기임), 이들 실시형태에서는 인터리빙인 치환과, 변환의 조합이 어떻게 주파수 부대역 또는 부분에 적용되는지를 도시하고 있다. 도 13에 도시하는 예에서는, M = 4이고, 시퀀스(1300)의 길이는 18 계수이다.
M의 배수인, 확장된 오리지널 시퀀스의 제1 부분은 격리되어 인터리빙된다. 도 6에 도시하는 경우에서와 같이, 치환(이 경우, 인터리빙)이 먼저 적용된 다음에 변환이 행해진다. 구체적으로, 18 부대역 계수의 확장된 오리지널 시퀀스(1300)가 치환 시스템(500)에 입력된다. 치환 시스템(500)의 프로세싱은 M의 배수인 확장된 오리지널 시퀀스(1300) 내의 계수의 수(이 경우에는 첫번째 16 계수)에 적용된다. 이 경우의 치환은 인터리빙이다. 이 인터리빙은 확장된 오리지널 시퀀스(1300)의 길이(또는 이 예에서의 18 계수 길이)인 쿼시인터리빙된(quasi-interleaved) 시퀀스(1310)를 생성한다.
이어서, 쿼시인터리빙된 시퀀스(1310)는 직교 변환 시스템(510)에 의해 프로세싱된다. 시스템(510)은 쿼시인터리빙된 시퀀스의 연속 M개 포인트의 각각의 세트에 변환 행렬을 적용한다. 이 예에서, 변환 행렬은 4 계수의 첫번째 4개 그룹에 적용된다. 직교 변환 시스템(510)에 의한 이 프로세싱은 첫번째 프로세싱된 쿼시인터리빙된 시퀀스(1320)를 생성한다. 도 13에 도시하는 예에서, 첫번째 프로세싱된 쿼시인터리빙된 시퀀스(1320)의 첫번째 4개 블록은 4x4 행렬의 계수이다. 이 경우에 이것은 첫번째 16 포인트만이 인터리빙되고 변환되고, 마지막 2 포인트는 인터리빙되지 않고 변환되지 않는 것을 의미한다.
마지막 2 포인트가 인터리빙되지 않고 변환되지 않았기 때문에, 추가 단계는 확장된 오리지널 시퀀스(1300)를 왼쪽에서 오른쪽으로 플립핑(flipping)하여 첫번째 플립핑된 시퀀스(1330)를 취득하는 것을 수반한다. 변환 행렬은 첫번째 플립핑된 시퀀스(1330) 내의 4 계수의 첫번째 4개 그룹에 적용된다. 직교 변환 시스템(510)에 의한 이 프로세싱은 두번째 프로세싱된 쿼시인터리빙된 시퀀스(1340)를 생성한다. 앞에서와 같이, 도 13에 도시하는 예에서, 두번째 프로세싱된 쿼시인터리빙된 시퀀스(1340)의 첫번째 4개 블록은 4x4 행렬의 계수이다.
두번째 프로세싱된 쿼시인터리빙된 시퀀스(1340)에 대해 왼쪽에서 오른쪽으로 최종 플립핑이 행해져서 계수의 시퀀스가 원래의 순서로 되돌려지고 두번째 플립핑된 시퀀스(1350)를 생성한다. 디코더(120)에서, 직교 역변환 시스템(900) 및 역치환 시스템(910)은 인코더(110)와는 역순으로 역동작을 수행한다. 쿼시인터리빙된 시퀀스를 플립핑하는 추가 동작 시퀀스를 결정하는데 필요한 정보는 디코더에서 이용할 수 있다. 따라서, 인코더(110)로부터 디코더(120)로 시그널링되거나 전달되는 추가 비트는 없다.
본 명세서에 기재된 것 외의 다수의 다른 변형도 본 명세서로부터 명백할 것이다. 예를 들어, 실시형태에 따라, 여기에 설명한 방법 및 알고리즘 중 임의의 것의 소정의 동작, 이벤트 또는 기능은 상이한 순서로 수행될 수 있고, 추가, 병합, 또는 생략될 수도 있다(설명한 동작 또는 이벤트 전부가 방법과 알고리즘의 실행에 필수적이지는 않다). 또한, 소정의 실시형태에 있어서, 동작 또는 이벤트는 예컨대, 멀티스레드 프로세싱, 인터럽트 프로세싱, 또는 다중 프로세서 또는 프로세서 코어를 통해, 또는 순차적이지 않는 다른 병렬 아키텍처를 통해, 동시에 수행될 수 있다. 또한, 상이한 태스크 또는 프로세스는 함께 작동할 수 있는 상이한 시스템 및 컴퓨팅 시스템에 의해 수행될 수 있다.
여기에 개시한 실시형태와 관련하여 설명한 다양한 예시적인 로직 블록, 모듈, 방법 및 알고리즘 프로세스 및 시퀀스는 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들 둘 다의 조합으로서 구현될 수 있다. 하드웨어 및 소프트웨어의 이러한 상호교환가능성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트, 블록, 모듈 및 프로세스 동작은 일반적으로 그 기능의 관점에서 전술되었다. 이러한 기능이 하드웨어 또는 소프트웨어로 구현되는지의 여부는 전체 시스템에 부과된 특정 애플리케이션 및 설계 제약에 종속된다. 기술한 기능은 각각의 특정 애플리케이션에 대해 다양한 방법으로 구현될 수 있지만, 이러한 구현 결정이 본 명세서의 범위를 벗어나는 것으로 해석되어서는 안 된다.
여기에 개시한 실시형태와 관련하여 설명한 다양한 예시적인 로직 블록 및 모듈은, 범용 프로세서, 프로세싱 디바이스, 하나 이상의 프로세싱 디바이스를 구비한 컴퓨팅 디바이스, 디지털 신호 프로세서(DSP), 주문형 반도체(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 또는 다른 프로그래머블 로직 디바이스, 개별 게이트 또는 트랜지스터 로직, 개별 하드웨어 컴포넌트, 또는 여기에 설명한 기능을 수행하도록 설계된 이들의 임의의 조합에 의해 구현 또는 수행될 수 있다. 범용 프로세서 및 프로세싱 디바이스는 마이크로 프로세서일 수 있지만, 대안적으로, 프로세서는 컨트롤러, 마이크로컨트롤러, 또는 스테이트 머신, 이들의 조합 등일 수 있다. 프로세서는 또한 컴퓨팅 디바이스의 조합으로서, 예컨대 DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서, DSP 코어와 결합된 하나 이상의 마이크로프로세서, 또는 기타 그러한 구성으로서 구현될 수도 있다.
여기에 설명한 에너지 평활화를 이용하는 변환 기반 코덱 및 방법의 실시형태는 다양한 유형의 범용 또는 특수 목적 컴퓨팅 시스템 환경 또는 구성 내에서 동작 가능하다. 일반적으로, 컴퓨팅 환경은, 몇몇을 거론하자면 하나 이상의 마이크로프로세서를 기반으로 한 컴퓨터 시스템, 메인프레임 컴퓨터, 디지털 신호 프로세서, 휴대용 컴퓨팅 디바이스, 개인용 오거나이저, 디바이스 컨트롤러, 어플라이언스 내의 연산 엔진, 모바일폰, 데스크탑 컴퓨터, 모바일 컴퓨터, 태블릿 컴퓨터, 스마트폰, 및 컴퓨터가 임베딩된 어플라이언스를 포함하나 이들에 한정되는 않는 임의 유형의 컴퓨터 시스템을 포함할 수 있다.
그러한 컴퓨팅 디바이스는 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드 컴퓨팅 디바이스, 랩탑 또는 모바일 컴퓨터, 셀룰러 폰 및 개인 휴대 정보 단말기(PDA) 등의 통신 디바이스, 멀티프로세서 시스템, 마이크로프로세서 기반의 시스템, 셋톱 박스, 프로그래머블 가전 제품, 네트워크 PC, 미니컴퓨터, 메인 프레임 컴퓨터, 오디오 또는 비디오 미디어 플레이어 등을 포함하나 이들에 한정되지 않는 적어도 일부의 최소한의 연산 능력을 가진 디바이스에서 통상 발견될 수 있다. 일부 실시형태에서, 컴퓨팅 디바이스는 하나 이상의 프로세서를 포함할 것이다. 각각의 프로세서는 DSP(digital signal processor), VLIW(very long instruction word), 또는 기타 마이크로컨트롤러 등의 전문적인 마이크로프로세서일 수도 있고, 멀티코어 중앙 처리 장치(CPU) 내에 전문적인 그래픽 프로세싱 유닛(GPU) 기반 코어를 포함하는, 하나 이상의 프로세싱 코어를 갖는 CPU일 수도 있다.
여기에 개시한 실시형태와 관련하여 설명한 방법, 프로세스, 블록, 또는 알고리즘의 프로세스 동작은 하드웨어로, 프로세서에 의해 실행되는 소프트웨어로, 또는 이들의 임의의 조합으로 직접 구현될 수 있다. 소프트웨어는 컴퓨팅 디바이스에 의해 액세스될 수 있는 컴퓨터 판독 가능 매체에 포함될 수 있다. 컴퓨터 판독 가능 매체는 착탈식, 고정식, 또는 이들의 임의의 조합인 휘발성 및 비휘발성 매체를 모두 포함한다. 컴퓨터 판독 가능 매체는 컴퓨터 판독 가능 또는 컴퓨터 실행 가능 명령어, 데이터 구조, 프로그램 모듈, 또는 기타 데이터 등의 정보를 저장하는데 사용된다. 비제한적인 예를 들면, 컴퓨터 판독 가능한 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다.
컴퓨터 저장 매체는, BD(Bluray disc), DVD(digital versatile disc), CD(compact disc), 플로피 디스크, 테이프 드라이브, 하드 드라이브, 광학 디스크, 솔리드 스테이트 메모리 디바이스, RAM 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 플래시 메모리 또는 기타 메모리 기술, 자기 카세트, 자기 테이프, 자기 디스크 스토리지, 또는 기타 자기 저장 디바이스, 또는 원하는 정보를 저장하는데 사용될 수 있고 하나 이상의 컴퓨팅 디바이스에 의해 액세스될 수 있는 기타 디바이스 등의, 컴퓨터 또는 머신 판독 가능 매체를 포함하나, 이들에 한정되지는 않는다.
소프트웨어는 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈식 디스크, CD―ROM, 또는 임의의 다른 형태의 비일시적 컴퓨터 판독 가능 저장 매체, 미디어, 또는 당업계에 공지된 물리적 컴퓨터 스토리지에 상주할 수 있다. 예시적인 저장 매체는 프로세서에 결합되어 프로세서가 저장 매체로부터 정보를 판독하고 저장 매체에 정보를 기록할 수 있다. 대안적으로, 저장 매체는 프로세서에 통합될 수 있다. 프로세서 및 저장 매체는 ASIC(application specific integrated circuit) 내에 상주할 수 있다. ASIC은 사용자 단말 내에 존재할 수 있다. 대안적으로, 프로세서 및 저장 매체는 사용자 단말에서 개별 컴포넌트로서 존재할 수 있다.
본 명세서에서 사용하는 "비일시적(non―transitory)"이라는 표현은 "오래가는(enduring) 또는 계속 유지되는 상태(long―lived)"를 의미한다. "비일시적 컴퓨터 판독 가능 매체"라는 표현은 일시적인 전파 신호를 제외한, 임의의 그리고 모든 컴퓨터 판독 가능 매체를 포함한다. 이것은, 한정이 아니라 예를 들면, 레지스터 메모리, 프로세서 캐시 및 RAM(random―access memory) 등의 비일시적 컴퓨터 판독 가능 매체를 포함한다.
"오디오 신호"라는 표현은 물리적인 사운드를 나타내는 신호이다. 오디오 신호를 구성하는 한가지 방법은 물리적 사운드를 포착하는 것이다. 오디오 신호는 재생 디바이스에서 재생되어, 청취자가 오디오 콘텐츠를 들을 수 있는 물리적 사운드를 생성한다. 재생 디바이스는 전자 신호를 해석하여 물리적 사운드로 변환할 수 있는 임의의 디바이스일 수 있다.
또한, 컴퓨터 판독 가능 또는 컴퓨터 실행 가능 명령어, 데이터 구조, 프로그램 모듈 등과 같은 정보의 보유(retention)는 하나 이상의 피변조 데이터 신호, 전자기파(예컨대, 반송파), 또는 다른 전송 메커니즘 또는 통신 프로토콜을 인코딩하기 위해 다양한 통신 매체를 사용하여 달성될 수 있고, 임의의 유선 또는 무선 정보 전달 메커니즘을 포함한다. 일반적으로, 이들 통신 매체는 신호 내의 정보 또는 명령어를 인코딩하는 방식으로 하나 이상의 특성이 설정되거나 변경된 신호를 지칭한다. 예를 들어, 통신 매체는 하나 이상의 피변조 데이터 신호를 전달하는 유선 네트워크 또는 직접 유선 접속 등의 유선 매체, 및 음향, 무선 주파수(RF), 적외선, 레이저, 및 하나 이상의 피변조 데이터 신호 또는 전자기파를 송신하거나,수신하거나, 또는 송신 및 수신하기 위한 기타 무선 매체 등의 무선 매체를 포함한다. 전술한 것들의 임의의 조합도 컴퓨터 판독 가능 매체의 범주 내에 포함된다.
또한, 여기에 설명하는 에너지 평활화를 이용하는 변환 기반 코덱 및 방법의 다양한 실시형태들의 일부 또는 전부를 구현하는, 소프트웨어, 프로그램, 컴퓨터 프로그램 제품 중 하나 또는 임의의 조합, 또는 그 일부는, 컴퓨터 실행 가능 명령어 또는 기타 데이터 구조의 형태로, 컴퓨터 또는 머신 판독 가능 매체 또는 저장 디바이스 및 통신 매체의 임의의 원하는 조합으로부터 저장, 수신, 송신, 또는 판독될 수 있다.
여기에 설명하는 에너지 평활화를 이용하는 변환 기반 코덱 및 방법의 실시형태는, 컴퓨팅 디바이스에 의해 실행되는, 프로그램 모듈 등의 컴퓨터 실행 가능 명령어의 일반적 맥락에서도 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 타입을 구현하는, 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 여기에 설명하는 실시형태는 하나 이상의 원격 프로세싱 디바이스에 의해 태스크가 수행되는 분산형 컴퓨팅 환경에서 또는 하나 이상의 통신 네트워크를 통해 링크되어 있는 하나 이상의 디바이스들의 클라우드 내에서 실시될 수도 있다. 분산형 컴퓨팅 환경에서는, 프로그램 모듈이 메모리 저장 디바이스를 포함한 로컬 및 원격 저장 디바이스 둘 다에 위치할 수도 있다. 또, 전술한 명령어는 프로세스를 포함할 수도 또는 포함하지 않을 수도 있는 하드웨어로직 회로로서, 일부 또는 전체가 구현될 수도 있다.
달리 명시하지 않는 한, 또는 사용한 문맥 내에서 달리 이해되지 않는 한, 여러 가지 중에서도 본문에서 사용되는 조건 언어, 예컨대 "할 수 있는", "할 수도 있는", "하기도 하는", "예컨대" 등은 일반적으로, 다른 실시형태는 포함하지 않는, 소정의 특징, 요소 및/또는 상태를 소정의 실시형태가 포함하는 것을 시사하기 위해 의도된 것이다. 따라서, 그러한 조건 언어는 일반적으로, 하나 이상의 실시형태에 대해 특징, 요소 및/또는 상태가 어떤 방식으로든 요구되는 것, 또는 하나 이상의 실시형태가 저자 입력(author input) 또는 프롬프팅의 유무에 관계없이, 이들 특징, 요소 및/또는 상태가 임의의 특정 실시형태에 포함되거나 수행되어야 하는지를 결정하기 위한 논리를 반드시 포함하는 것을 암시하는 것을 의도하지 않는다. "포함하는", "내포하는", "갖는" 등의 용어는 동의어로서, 제한없는 방식으로 포괄적으로 사용되며, 추가 요소, 특징, 동작, 연산 등을 배제하지 않는다. 또한, "또는"이라는 표현은 (배타적인 의미가 아니라) 포괄적인 의미로 사용되어, 예를 들어, 요소의 목록을 연결하는데 사용될 경우, "또는"이라는 표현은 그 목록 내의 요소들 중 하나, 일부, 또는 전부를 의미한다.
앞의 상세한 설명은 다양한 실시형태에 적용되는 신규한 특징들을 도시하고, 설명하고, 지적하였지만, 본 개시내용의 사상으로부터 벗어나지 않고서, 예시하는 디바이스 또는 알고리즘의 형태 및 상세에 있어서의 다양한 생략, 대체 및 변형이 이루어질 수 있음을 이해할 것이다. 알고 있겠지만, 여기에 설명하는 본 발명의 특정 실시형태는, 일부 특징이 다른 것들과 별도로 사용될 수 있거나 실시될 수 있기 때문에, 여기에 나타내는 모든 특징 및 이점을 제공하지 않는 형태로 구현될 수도 있다.
구조적인 특징 및/또는 방법론적인 동작 특유의 언어로 청구 대상을 설명하였지만, 첨부하는 청구범위에서 규정되는 청구 대상은 전술한 특징 또는 동작에 한정되지 않는 것을 이해해야 한다. 그보다는, 전술한 특정 특징 및 동작은 청구범위를 구현하는 실시예로서 개시되어 있다.

Claims (20)

  1. 오디오 신호를 프로세싱하는 방법에 있어서,
    인코더를 사용해 직교 변환 및 벡터 치환을 상기 오디오 신호의 주파수 변환 계수에 적용하여, 프로세싱된 주파수 변환 계수를 생성하는 단계와,
    상기 프로세싱된 주파수 변환 계수를 양자화하여 양자화된 프로세싱된 주파수 변환 계수를 취득하는 단계와,
    상기 양자화된 프로세싱된 주파수 변환 계수를 인코딩된 비트스트림으로 팩킹하는 단계와,
    디코더를 사용하여 상기 인코딩된 비트스트림을 프로세싱하고 상기 인코더의 동작을 반대로 하며 상기 오디오 신호를 복원하는 단계
    를 포함하는 오디오 신호를 프로세싱하는 방법.
  2. 제1항에 있어서, 상기 직교 변환은 4 이상의, 2의 임의의 멱수인 것인 오디오 신호를 프로세싱하는 방법.
  3. 제1항에 있어서, 상기 직교 변환 및 벡터 치환을 상기 주파수 변환 계수에 단 한번만 적용하는 단계를 더 포함하는 오디오 신호를 프로세싱하는 방법.
  4. 제1항에 있어서, 상기 직교 변환 및 벡터 치환을 상기 주파수 변환 계수에 한번보다 많이 적용하는 단계를 더 포함하는 오디오 신호를 프로세싱하는 방법.
  5. 제1항에 있어서, 상기 직교 변환은 가변적이며, 상기 방법은 적어도 하나의 코덱 행렬의 함수인 평활화 파라미터에 의해 상기 직교 변환을 제어하는 단계를 더 포함하는 오디오 신호를 프로세싱하는 방법.
  6. 제1항에 있어서, 상기 벡터 치환의 치환된 시퀀스의 크기는 상기 직교 변환의 크기 이상인 임의의 값인, 오디오 신호를 프로세싱하는 방법.
  7. 제1항에 있어서, 상기 주파수 변환 계수를 포함하는 주파수 변환 계수 벡터에 상기 벡터 치환을 적용하여, 치환 규칙에 따라 상기 주파수 변환 계수 벡터의 원소들을 재배열하는 단계를 더 포함하고, 상기 주파수 변환 계수 벡터는 벡터 길이를 갖는 것인 오디오 신호를 프로세싱하는 방법.
  8. 제7항에 있어서, 크기 M의 변환 행렬인 상기 직교 변환을 상기 주파수 변환 계수 벡터에 적용하는 단계를 더 포함하는 오디오 신호를 프로세싱하는 방법.
  9. 제8항에 있어서, 상기 주파수 변환 계수 벡터의 시간에서 상기 변환 행렬을 M개의 포인트에 적용하는 단계를 더 포함하며, 상기 벡터 길이는 M 이상인 것인 오디오 신호를 프로세싱하는 방법.
  10. 음악 잡음 아티팩트를 완화시키도록 오디오 신호를 인코딩하는 방법에 있어서,
    상기 오디오 신호를 복수의 주파수 부대역으로 분할하는 단계와,
    각 부대역마다 변환 행렬을 계산하는 단계와,
    상기 변환 행렬을 사용하여 각 부대역 내의 주파수 변환 계수에 직교 변환―상기 직교 변환은 4 이상의, 2의 임의의 멱수임―을 적용하고 상기 주파수 변환 계수에 인터리빙을 적용하여 프로세싱된 주파수 변환 계수를 취득하는 단계와,
    상기 프로세싱된 주파수 변환 계수를 벡터 양자화하고, 상기 음악 잡음 아티팩트가 완화되도록 한 오디오 신호를 나타내는 인코딩된 비트스트림으로 비트 팩킹하는 단계
    를 포함하는 오디오 신호를 인코딩하는 방법.
  11. 제10항에 있어서,
    각 부대역마다 스펙트럼 평탄도(spectrum flatness)를 계산하는 단계와,
    상기 스펙트럼 평탄도로부터, 각 부대역에 적용할 에너지 평활화의 양을 나타내는 에너지 평활화 레벨을 포함한 평활화 파라미터를 결정하는 단계
    를 더 포함하는 오디오 신호를 인코딩하는 방법.
  12. 제11항에 있어서, 상기 인코딩된 비트스트림으로 상기 평활화 파라미터를 인코더로부터 디코더에 전송하는 단계를 더 포함하는 오디오 신호를 인코딩하는 방법.
  13. 제11항에 있어서, 상기 평활화 파라미터를 사용하여 상기 변환 행렬을 계산하는 단계를 더 포함하는 오디오 신호를 인코딩하는 방법.
  14. 제13항에 있어서, 상기 각 부대역마다 변환 행렬을 계산하는 단계는,
    상기 평활화 파라미터, 프로세싱되는 부대역의 길이, 및 벡터 양자화기의 펄스의 수의 함수로서, 변환 파라미터를 계산하는 단계와,
    상기 변환 파라미터를 사용하여 상기 변환 행렬을 계산하는 단계
    를 더 포함하는 오디오 신호를 인코딩하는 방법.
  15. 제10항에 있어서, 상기 직교 변환이 먼저 상기 주파수 변환 계수에 적용되고, 상기 직교 변환이 적용된 후에 상기 인터리빙이 적용되는 것인 오디오 신호를 인코딩하는 방법.
  16. 제10항에 있어서, 상기 인터리빙이 먼저 상기 주파수 변환 계수에 적용되고, 상기 인터리빙이 적용된 후에 상기 직교 변환이 적용되는 것인 오디오 신호를 인코딩하는 방법.
  17. 오디오 신호를 나타내는 인코딩된 비트스트림을 디코딩하는 방법에 있어서,
    상기 인코딩된 비트스트림을 수신하는 단계와,
    상기 오디오 신호의 각 부대역에 역변환 행렬 및 역치환을 적용하여 복원된 주파수 변환 계수를 취득하는 단계와,
    상기 오디오 신호를 재구성하여 복원된 오디오 신호를 취득하는 단계와,
    재생 디바이스에서 상기 복원된 오디오 신호를 재생하는 단계
    를 포함하는 인코딩된 비트스트림을 디코딩하는 방법.
  18. 제17항에 있어서,
    상기 인코딩된 비트스트림과 함께 평활화 파라미터―상기 평활화 파라미터는 각 부대역에 적용될 에너지 평활화의 레벨을 포함함―를 수신하는 단계와,
    상기 평활화 파라미터를 사용하여 상기 역변환 행렬을 생성하는데 사용되는 변환 행렬을 계산하는 단계
    를 더 포함하는 인코딩된 비트스트림을 디코딩하는 방법.
  19. 제18항에 있어서,
    상기 변환 행렬을 역전시켜 상기 역변환 행렬을 취득하는 단계와,
    상기 에너지 평활화의 레벨에 따라 상기 역변환 행렬을 적용하는 단계
    를 더 포함하는 인코딩된 비트스트림을 디코딩하는 방법.
  20. 제17항에 있어서, 상기 인코딩된 비트스트림을 인코딩한 인코더에 의해 적용된 것과 역순으로 상기 역변환 행렬 및 역치환을 적용하는 단계를 더 포함하는 인코딩된 비트스트림을 디코딩하는 방법.
KR1020197008368A 2016-08-31 2017-08-30 부대역 에너지 평활화를 이용하는 변환 기반 오디오 코덱 및 방법 KR102553003B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/253,646 2016-08-31
US15/253,646 US10146500B2 (en) 2016-08-31 2016-08-31 Transform-based audio codec and method with subband energy smoothing
PCT/US2017/049484 WO2018045099A1 (en) 2016-08-31 2017-08-30 Transform-based audio codec and method with subband energy smoothing

Publications (2)

Publication Number Publication Date
KR20190042058A true KR20190042058A (ko) 2019-04-23
KR102553003B1 KR102553003B1 (ko) 2023-07-06

Family

ID=61242318

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197008368A KR102553003B1 (ko) 2016-08-31 2017-08-30 부대역 에너지 평활화를 이용하는 변환 기반 오디오 코덱 및 방법

Country Status (6)

Country Link
US (1) US10146500B2 (ko)
EP (1) EP3507800B1 (ko)
JP (1) JP7157736B2 (ko)
KR (1) KR102553003B1 (ko)
CN (1) CN109983535B (ko)
WO (1) WO2018045099A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10366698B2 (en) 2016-08-30 2019-07-30 Dts, Inc. Variable length coding of indices and bit scheduling in a pyramid vector quantizer
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
WO2024085903A1 (en) * 2022-10-20 2024-04-25 Google Llc Non-windowed dct-based audio coding using advanced quantization

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1396843A1 (en) * 2002-09-04 2004-03-10 Microsoft Corporation Mixed lossless audio compression
KR20060083125A (ko) * 2005-01-14 2006-07-20 마이크로소프트 코포레이션 중복 변환으로서 2차원 디지털 미디어 데이터를 처리하는방법 및 2차원 디지털 미디어 프로세서
US20130006645A1 (en) * 2011-06-30 2013-01-03 Zte Corporation Method and system for audio encoding and decoding and method for estimating noise level

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3047562B2 (ja) * 1991-10-23 2000-05-29 松下電器産業株式会社 高能率符号化方法及びその装置
WO1995013660A1 (fr) * 1993-11-09 1995-05-18 Sony Corporation Appareil de quantification, procede de quantification, codeur a haute efficacite, procede de codage a haute efficacite, decodeur, supports d'enregistrement et de codage a haute efficacite
TW321810B (ko) * 1995-10-26 1997-12-01 Sony Co Ltd
JPH10276095A (ja) * 1997-03-28 1998-10-13 Toshiba Corp 符号化器及び復号化器
JP4281131B2 (ja) * 1998-10-22 2009-06-17 ソニー株式会社 信号符号化装置及び方法、並びに信号復号装置及び方法
US6611212B1 (en) * 1999-04-07 2003-08-26 Dolby Laboratories Licensing Corp. Matrix improvements to lossless encoding and decoding
JP4399185B2 (ja) * 2002-04-11 2010-01-13 パナソニック株式会社 符号化装置および復号化装置
US7460990B2 (en) 2004-01-23 2008-12-02 Microsoft Corporation Efficient coding of digital media spectral data using wide-sense perceptual similarity
US7546240B2 (en) * 2005-07-15 2009-06-09 Microsoft Corporation Coding with improved time resolution for selected segments via adaptive block transformation of a group of samples from a subband decomposition
US7751488B2 (en) * 2006-08-16 2010-07-06 Harris Corporation System and method for communicating data using symbol-based randomized orthogonal frequency division multiplexing (OFDM)
US7761290B2 (en) 2007-06-15 2010-07-20 Microsoft Corporation Flexible frequency and time partitioning in perceptual transform coding of audio
US8428957B2 (en) * 2007-08-24 2013-04-23 Qualcomm Incorporated Spectral noise shaping in audio coding based on spectral dynamics in frequency sub-bands
WO2009029035A1 (en) 2007-08-27 2009-03-05 Telefonaktiebolaget Lm Ericsson (Publ) Improved transform coding of speech and audio signals
RU2010116748A (ru) 2007-09-28 2011-11-10 Войсэйдж Корпорейшн (Ca) Способ и устройство для эффективного квантования данных, преобразуемых во встроенных речевых и аудиокодеках
EP3246918B1 (en) 2008-07-11 2023-06-14 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio decoder, method for decoding an audio signal and computer program
PL2473995T3 (pl) * 2009-10-20 2015-06-30 Fraunhofer Ges Forschung Koder sygnału audio, dekoder sygnału audio, sposób dostarczania zakodowanej reprezentacji treści audio, sposób dostarczania dekodowanej reprezentacji treści audio oraz program komputerowy do wykorzystania w zastosowaniach z małym opóźnieniem
CN103329199B (zh) * 2011-01-25 2015-04-08 日本电信电话株式会社 编码方法、编码装置、周期性特征量决定方法、周期性特征量决定装置、程序、记录介质
US8838442B2 (en) 2011-03-07 2014-09-16 Xiph.org Foundation Method and system for two-step spreading for tonal artifact avoidance in audio coding
US20130132100A1 (en) 2011-10-28 2013-05-23 Electronics And Telecommunications Research Institute Apparatus and method for codec signal in a communication system
CN103493130B (zh) 2012-01-20 2016-05-18 弗劳恩霍夫应用研究促进协会 用以利用正弦代换进行音频编码及译码的装置和方法
EP2720222A1 (en) 2012-10-10 2014-04-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for efficient synthesis of sinusoids and sweeps by employing spectral patterns
RU2660605C2 (ru) 2013-01-29 2018-07-06 Фраунхофер-Гезелльшафт Цур Фердерунг Дер Ангевандтен Форшунг Е.Ф. Концепция заполнения шумом
RU2608447C1 (ru) * 2013-01-29 2017-01-18 Фраунхофер-Гезелльшафт Цур Фердерунг Дер Ангевандтен Форшунг Е.Ф. Устройство и способ для генерирования расширенного по частоте сигнала, используя временное сглаживание поддиапазонов
TWI546799B (zh) * 2013-04-05 2016-08-21 杜比國際公司 音頻編碼器及解碼器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1396843A1 (en) * 2002-09-04 2004-03-10 Microsoft Corporation Mixed lossless audio compression
KR20060083125A (ko) * 2005-01-14 2006-07-20 마이크로소프트 코포레이션 중복 변환으로서 2차원 디지털 미디어 데이터를 처리하는방법 및 2차원 디지털 미디어 프로세서
US20130006645A1 (en) * 2011-06-30 2013-01-03 Zte Corporation Method and system for audio encoding and decoding and method for estimating noise level

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Definition of the Opus Audio Codec. Internet Engineering Task Force (IETF) RFC 6716, 2012.09. *
Jean-Marc Valin, et al. High-Quality, Low-Delay Music Coding in the Opus Codec. 135th AES Convention. 2013 October 17.* *

Also Published As

Publication number Publication date
US20180060023A1 (en) 2018-03-01
KR102553003B1 (ko) 2023-07-06
US10146500B2 (en) 2018-12-04
EP3507800A4 (en) 2020-04-29
CN109983535B (zh) 2023-09-12
EP3507800A1 (en) 2019-07-10
JP7157736B2 (ja) 2022-10-20
JP2019532329A (ja) 2019-11-07
EP3507800B1 (en) 2024-01-24
WO2018045099A1 (en) 2018-03-08
CN109983535A (zh) 2019-07-05

Similar Documents

Publication Publication Date Title
US9516446B2 (en) Scalable downmix design for object-based surround codec with cluster analysis by synthesis
KR102553003B1 (ko) 부대역 에너지 평활화를 이용하는 변환 기반 오디오 코덱 및 방법
KR102300062B1 (ko) 인코딩 장치 및 인코딩 방법, 디코딩 장치 및 디코딩 방법, 및 프로그램
US8838442B2 (en) Method and system for two-step spreading for tonal artifact avoidance in audio coding
US11640825B2 (en) Time-domain stereo encoding and decoding method and related product
KR102480710B1 (ko) 다중 채널 오디오 신호 처리 방법, 장치 및 시스템
US9015042B2 (en) Methods and systems for avoiding partial collapse in multi-block audio coding
RU2702265C1 (ru) Способ и устройство обработки сигналов
JP7257965B2 (ja) デジタルオーディオ信号における差分データ
US20070033024A1 (en) Method and apparatus for encoding audio data
JP4022504B2 (ja) 少ない計算量で高周波数成分を復元するオーディオデコーディング方法及び装置
US20140358978A1 (en) Vector quantization with non-uniform distributions
KR102677399B1 (ko) 신호 처리 장치 및 방법, 그리고 프로그램
US11355131B2 (en) Time-domain stereo encoding and decoding method and related product
JP2019049745A (ja) 復号装置および方法、並びにプログラム
US20130197919A1 (en) &#34;method and device for determining a number of bits for encoding an audio signal&#34;
KR20240016461A (ko) 시간-도메인 스테레오 파라미터에 대한 코딩 방법, 및 관련 제품
KR20190045327A (ko) 오디오 코덱의 장기 예측을 위한 시스템 및 방법
KR20230035089A (ko) 패킷 손실 은닉
JP2000250598A (ja) 音声データ復号化装置、音声データ復号化方法及び記憶媒体

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant