KR20240038770A - 오디오 신호 인코딩 방법 및 장치와 오디오 신호 디코딩 방법 및 장치 - Google Patents

오디오 신호 인코딩 방법 및 장치와 오디오 신호 디코딩 방법 및 장치 Download PDF

Info

Publication number
KR20240038770A
KR20240038770A KR1020247006252A KR20247006252A KR20240038770A KR 20240038770 A KR20240038770 A KR 20240038770A KR 1020247006252 A KR1020247006252 A KR 1020247006252A KR 20247006252 A KR20247006252 A KR 20247006252A KR 20240038770 A KR20240038770 A KR 20240038770A
Authority
KR
South Korea
Prior art keywords
blocks
group
spectra
transient
encoding
Prior art date
Application number
KR1020247006252A
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 KR20240038770A publication Critical patent/KR20240038770A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • 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/022Blocking, i.e. grouping of samples in time; Choice of analysis windows; Overlap factoring
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/27Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
    • G10L25/30Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Evolutionary Computation (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 출원의 실시예들은 인코딩 품질 및 오디오 신호 재구성 효과를 개선하기 위한 오디오 신호 인코딩 및 디코딩 방법 및 장치를 개시한다. 본 출원의 실시예들은 오디오 신호 인코딩 방법을 제공하며, 이 방법은: 인코딩될 오디오 신호의 현재 프레임의 M개의 블록의 스펙트럼들에 기초하여, M개의 블록의 M개의 과도 상태 식별자를 획득하는 단계- M개의 블록은 제1 블록을 포함하고, 제1 블록의 과도 상태 식별자는 제1 블록이 과도 상태 블록인 것을 표시하거나, 또는 제1 블록이 비과도 상태 블록인 것을 표시함 -; M개의 블록의 M개의 과도 상태 식별자에 기초하여 M개의 블록의 그룹 정보를 획득하는 단계; M개의 블록의 그룹 정보에 기초하여 M개의 블록의 스펙트럼들에 대해 그룹화 및 배열을 수행하여, 현재 프레임의 인코딩될 스펙트럼을 획득하는 단계; 인코딩 신경망을 사용하여 인코딩될 스펙트럼을 인코딩함으로써 스펙트럼 인코딩 결과를 획득하는 단계; 및 스펙트럼 인코딩 결과를 비트스트림에 기입하는 단계를 포함한다.

Description

오디오 신호 인코딩 방법 및 장치와 오디오 신호 디코딩 방법 및 장치
본 출원은 2021년 7월 29일자로 중국 지적 재산권 관리국에 출원되고 발명의 명칭이 "AUDIO SIGNAL ENCODING AND DECODING METHOD AND APPARATUS"인 중국 특허 출원 제202110865328.X호에 대한 우선권을 주장하며, 그 전체가 본 명세서에 참고로 포함된다.
본 출원은 오디오 처리 기술 분야에 관한 것으로, 특히, 오디오 신호 인코딩 및 디코딩 방법 및 장치에 관한 것이다.
오디오 데이터 압축은 미디어 통신 및 미디어 방송과 같은 미디어 응용들의 필수적인 부분이다. 고화질 오디오 산업 및 3차원 오디오 산업의 발전에 따라, 사람들은 오디오 품질에 대한 요건들이 점점 더 높아지고, 따라서, 미디어 응용들에서의 오디오 데이터량이 빠르게 증가한다.
현재의 오디오 데이터 압축 기술에서, 신호 처리의 기본 원리에 따르면, 오리지널 오디오 신호는 시간 및 공간의 신호 상관에 기초하여 압축되어, 데이터량을 감소시켜, 오디오 데이터의 송신 또는 저장을 용이하게 한다.
현재의 오디오 신호 인코딩 스킴에서, 오디오 신호가 과도 상태 신호일 때, 낮은 인코딩 품질의 문제점이 있다. 신호 재구성이 디코더 측에서 수행될 때, 열악한 오디오 신호 재구성 효과의 문제점이 또한 존재한다.
본 출원의 실시예들은 인코딩 품질 및 오디오 신호 재구성 효과를 개선하기 위한 오디오 신호 인코딩 및 디코딩 방법 및 장치를 제공한다.
전술한 기술적인 문제점을 해결하기 위해, 본 출원의 실시예들은 다음의 기술적 해결책들을 제공한다.
제1 양태에 따르면, 본 출원의 실시예는 오디오 신호 인코딩 방법을 제공하며, 이 방법은: 인코딩될 오디오 신호의 현재 프레임의 M개의 블록의 스펙트럼들에 기초하여, M개의 블록의 M개의 과도 상태 식별자를 획득하는 단계- M개의 블록은 제1 블록을 포함하고, 제1 블록의 과도 상태 식별자는 제1 블록이 과도 상태 블록인 것을 표시하거나, 또는 제1 블록이 비과도 상태 블록인 것을 표시함 -; M개의 블록의 M개의 과도 상태 식별자에 기초하여 M개의 블록의 그룹 정보를 획득하는 단계; M개의 블록의 그룹 정보에 기초하여 M개의 블록의 스펙트럼들에 대해 그룹화 및 배열을 수행하여, 현재 프레임의 인코딩될 스펙트럼을 획득하는 단계; 인코딩 신경망을 사용하여 인코딩될 스펙트럼을 인코딩함으로써 스펙트럼 인코딩 결과를 획득하는 단계; 및 스펙트럼 인코딩 결과를 비트스트림에 기입하는 단계를 포함한다.
전술한 해결책에서, 인코딩될 오디오 신호의 현재 프레임의 M개의 블록의 스펙트럼들에 기초하여 M개의 블록의 M개의 과도 상태 식별자가 획득되고, M개의 블록의 그룹 정보가 M개의 과도 상태 식별자에 기초하여 획득된 후에, 현재 프레임 내의 M개의 블록의 스펙트럼들은 M개의 블록의 그룹 정보를 사용하여 그룹화 및 배열될 수 있다. M개의 블록의 스펙트럼들은 그룹화 및 배열되어, 현재 프레임 내의 M개의 블록의 스펙트럼들의 배열 시퀀스가 조정될 수 있고, 현재 프레임의 인코딩될 스펙트럼이 획득된 후에, 인코딩될 스펙트럼은 인코딩 신경망을 사용하여 인코딩됨으로써, 스펙트럼 인코딩 결과를 획득하고, 스펙트럼 인코딩 결과는 비트스트림을 사용하여 운반될 수 있다. 따라서, 본 출원의 이 실시예에서, M개의 블록의 스펙트럼들은 오디오 신호의 현재 프레임 내의 M개의 과도 상태 식별자에 기초하여 그룹화 및 배열될 수 있고, 따라서 상이한 과도 상태 식별자들을 갖는 블록들이 그룹화 및 배열되고 인코딩될 수 있고, 그에 의해 오디오 신호의 인코딩 품질을 개선할 수 있다.
가능한 구현에서, 본 방법은: M개의 블록의 그룹 정보를 인코딩하여 그룹 정보 인코딩 결과를 획득하는 단계; 및 그룹 정보 인코딩 결과를 비트스트림에 기입하는 단계를 추가로 포함한다. 전술한 해결책에서, M개의 블록의 그룹 정보를 획득한 후에, 인코더 측은 비트스트림에서 그룹 정보를 운반하고, 그룹 정보를 먼저 인코딩할 수 있다. 그룹 정보에 사용되는 인코딩 방식은 본 명세서에서 제한되지 않는다. 그룹 정보를 인코딩함으로써, 그룹 정보 인코딩 결과가 획득될 수 있다. 그룹 정보 인코딩 결과는 비트스트림에 기입될 수 있어서, 비트스트림은 그룹 정보 인코딩 결과를 운반할 수 있다.
가능한 구현에서, M개의 블록의 그룹 정보는 M개의 블록의 그룹 수량 또는 그룹 수량 식별자를 포함하고; 그룹 수량 식별자는 그룹 수량을 표시하고; 그룹 수량이 1보다 클 때, M개의 블록의 그룹 정보는 M개의 블록의 M개의 과도 상태 식별자를 추가로 포함하거나; 또는 M개의 블록의 그룹 정보는 M개의 블록의 M개의 과도 상태 식별자를 포함한다. 전술한 해결책에서, M개의 블록의 그룹 정보는 M개의 블록의 그룹 수량 또는 그룹 수량 식별자를 포함하고, 그룹 수량 식별자는 그룹 수량을 표시하고, 그룹 수량이 1보다 클 때, M개의 블록의 그룹 정보는 M개의 블록의 M개의 과도 상태 식별자를 추가로 포함하거나; 또는 M개의 블록의 그룹 정보는 M개의 블록의 M개의 과도 상태 식별자를 포함한다. M개의 블록의 그룹 정보는 M개의 블록의 그룹화 상태를 표시할 수 있어서, 인코더 측은 그룹 정보를 사용하여 M개의 블록의 스펙트럼들에 대해 그룹화 및 배열을 수행할 수 있다.
가능한 구현에서, M개의 블록의 그룹 정보에 기초하여 M개의 블록의 스펙트럼들에 대해 그룹화 및 배열을 수행하여 현재 프레임의 인코딩될 스펙트럼을 획득하는 단계는: M개의 블록 중에서 M개의 과도 상태 식별자에 의해 과도 상태 블록으로서 표시되는 블록의 스펙트럼을 과도 상태 그룹에 할당하고, M개의 블록 중에서 M개의 과도 상태 식별자에 의해 비과도 상태 블록으로서 표시되는 블록의 스펙트럼을 비과도 상태 그룹에 할당하는 단계; 및 과도 상태 그룹 내의 블록의 스펙트럼을 비과도 상태 그룹 내의 블록의 스펙트럼 전에 있도록 배열하여 현재 프레임의 인코딩될 스펙트럼을 획득하는 단계를 포함한다. 전술한 해결책에서, M개의 블록의 그룹 정보를 획득한 후에, 인코더 측은 상이한 과도 상태 식별자들에 기초하여 M개의 블록을 그룹화하여, 과도 상태 그룹 및 비과도 상태 그룹을 획득하고나서, 현재 프레임의 스펙트럼 내의 M개의 블록의 위치들을 배열하고, 과도 상태 그룹 내의 블록의 스펙트럼을 비과도 그룹 내의 블록의 스펙트럼 전에 있도록 배열하여, 인코딩될 스펙트럼을 획득한다. 즉, 인코딩될 스펙트럼들 내의 모든 과도 상태 블록의 스펙트럼들은 비과도 상태 블록의 스펙트럼 전에 위치하며, 따라서 과도 상태 블록들의 스펙트럼들은 더 높은 인코딩 중요도의 포지션으로 조정될 수 있고, 따라서 신경망을 사용하여 인코딩 및 디코딩 처리 후에 재구성된 오디오 신호의 과도 상태 특징이 더 양호하게 유지될 수 있다.
가능한 구현에서, M개의 블록의 그룹 정보에 기초하여 M개의 블록의 스펙트럼들에 대해 그룹화 및 배열을 수행하여, 현재 프레임의 인코딩될 스펙트럼을 획득하는 단계는: M개의 블록 중에서 M개의 과도 상태 식별자에 의해 과도 상태 블록으로서 표시되는 블록의 스펙트럼을 M개의 블록 중에서 M개의 과도 상태 식별자에 의해 비과도 상태 블록으로서 표시되는 블록의 스펙트럼 전에 있도록 배열하여, 현재 프레임의 인코딩될 스펙트럼을 획득하는 단계를 포함한다. 전술한 해결책에서, M개의 블록의 그룹 정보를 획득한 후에, 인코더 측은 그룹 정보에 기초하여 M개의 블록 각각의 과도 상태 식별자를 결정하고, 먼저 M개의 블록으로부터 P개의 과도 상태 블록 및 Q개의 비과도 상태 블록을 찾고, 그런 다음 M=P+Q이다. M개의 블록 중에서 M개의 과도 상태 식별자에 의해 과도 상태 블록들로서 표시되는 스펙트럼을 M개의 블록 중에서 M개의 과도 상태 식별자에 의해 비과도 상태 블록들로서 표시되는 스펙트럼 전에 배열하여, 현재 프레임의 인코딩될 스펙트럼을 획득한다. 구체적으로, 인코딩될 스펙트럼들 내의 모든 과도 상태 블록의 스펙트럼들은 비과도 상태 블록들의 스펙트럼들 전에 위치하며, 따라서 과도 상태 블록들의 스펙트럼들은 더 높은 인코딩 중요도의 포지션으로 조정될 수 있고, 따라서 신경망을 사용하여 인코딩 및 디코딩 처리 후에 재구성된 오디오 신호의 과도 상태 특징이 더 양호하게 유지될 수 있다.
가능한 구현에서, 인코딩 신경망을 사용하여 인코딩될 스펙트럼을 인코딩하는 단계 전에, 본 방법은: 인코딩될 스펙트럼에 대해 인트라-그룹 인터리빙을 수행하여, M개의 블록의 인트라-그룹 인터리빙된 스펙트럼들을 획득하는 단계를 추가로 포함하고; 인코딩 신경망을 사용하여 인코딩될 스펙트럼을 인코딩하는 단계는: 인코딩 신경망을 사용하여, M개의 블록의 인트라-그룹 인터리빙된 스펙트럼들을 인코딩하는 단계를 포함한다. 전술한 해결책에서, 현재 프레임의 인코딩될 스펙트럼을 획득한 후에, 인코더 측은 M개의 블록의 그룹화에 기초하여 인트라-그룹 인터리빙을 먼저 수행하여, M개의 블록의 인트라-그룹 인터리빙된 스펙트럼들을 획득할 수 있다. 이 경우, M개의 블록의 인트라-그룹 인터리빙된 스펙트럼들은 인코딩된 신경망의 입력 데이터일 수 있다. 인트라-그룹 인터리빙 처리를 통해, 인코딩 사이드 정보가 더 감소될 수 있고, 인코딩 효율이 개선될 수 있다.
가능한 구현에서, M개의 블록 중에서 M개의 과도 상태 식별자에 의해 과도 상태 블록들로서 표시되는 블록들의 수량은 P이고, M개의 블록 중에서 M개의 과도 상태 식별자에 의해 비과도 상태 블록들로서 표시되는 블록들의 수량은 Q이고, M=P+Q이며; 인코딩될 스펙트럼에 대해 인트라-그룹 인터리빙을 수행하는 단계는: P개의 블록의 스펙트럼들을 인터리빙하여 P개의 블록의 인터리빙된 스펙트럼들을 획득하는 단계; 및 Q개의 블록의 스펙트럼들을 인터리빙하여 Q개의 블록의 인터리빙된 스펙트럼들을 획득하는 단계를 포함한다. 인코딩 신경망을 사용하여, M개의 블록의 인트라-그룹 인터리빙된 스펙트럼들을 인코딩하는 단계는: 인코딩 신경망을 사용하여, P개의 블록의 인터리빙된 스펙트럼들 및 Q개의 블록의 인터리빙된 스펙트럼들을 인코딩하는 단계를 포함한다. 전술한 해결책에서, P개의 블록의 스펙트럼들을 인터리빙하는 것은 P개의 블록의 스펙트럼들을 전체로서 인터리빙하는 것을 포함한다. 유사하게, Q개의 블록의 스펙트럼들을 인터리빙하는 것은 Q개의 블록의 스펙트럼들을 전체로서 인터리빙하는 것을 포함한다. 인코더 측은 과도 상태 그룹 및 비과도 상태 그룹에 각각 기초하여 인터리빙 처리를 수행하여, P개의 블록의 인터리빙 처리의 스펙트럼 및 Q개의 블록의 인터리빙 처리의 스펙트럼을 획득할 수 있다. P개의 블록의 인터리빙된 스펙트럼들 및 Q개의 블록의 인터리빙된 스펙트럼들은 인코딩 신경망의 입력 데이터로서 사용될 수 있다. 인트라-그룹 인터리빙을 통해, 인코딩 사이드 정보가 더 감소될 수 있고, 인코딩 효율이 개선될 수 있다.
가능한 구현에서, 인코딩될 오디오 신호의 현재 프레임의 M개의 블록의 스펙트럼들에 기초하여, M개의 블록의 M개의 과도 상태 식별자를 획득하는 단계 전에, 본 방법은: 현재 프레임의 윈도우 타입을 획득하는 단계- 윈도우 타입은 짧은 윈도우 타입 또는 짧지 않은(non-short) 윈도우 타입임 -; 및 윈도우 타입이 짧은 윈도우 타입일 때에만, 인코딩될 오디오 신호의 현재 프레임의 M개의 블록의 스펙트럼들에 기초하여, M개의 블록의 M개의 과도 상태 식별자를 획득하는 단계를 수행하는 단계를 추가로 포함한다. 전술한 해결책에서, 본 출원의 이 실시예에서, 전술한 인코딩 스킴은 현재 프레임의 윈도우 타입이 짧은 윈도우 타입일 때에만 실행되어, 오디오 신호가 과도 상태 신호일 때 인코딩을 구현할 수 있다.
가능한 구현에서, 본 방법은: 윈도우 타입을 인코딩하여 윈도우 타입의 인코딩 결과를 획득하는 단계; 및 윈도우 타입의 인코딩 결과를 비트스트림에 기입하는 단계를 추가로 포함한다. 전술한 해결책에서, 현재 프레임의 윈도우 타입을 획득한 후에, 인코더 측은 비트스트림에서 윈도우 타입을 운반하고, 윈도우 타입을 먼저 인코딩할 수 있다. 윈도우 타입에 사용되는 인코딩 방식은 본 명세서에서 제한되지 않는다. 윈도우 타입을 인코딩함으로써, 윈도우 타입 인코딩 결과가 획득될 수 있다. 윈도우 타입 인코딩 결과는 비트스트림에 기입될 수 있어서, 비트스트림은 윈도우 타입 인코딩 결과를 운반할 수 있다.
가능한 구현에서, 인코딩될 오디오 신호의 현재 프레임의 M개의 블록의 스펙트럼들에 기초하여, M개의 블록의 M개의 과도 상태 식별자를 획득하는 단계는: M개의 블록의 스펙트럼들에 기초하여 M개의 블록의 M개의 스펙트럼 에너지를 획득하는 단계; M개의 스펙트럼 에너지에 기초하여 M개의 블록의 평균 스펙트럼 에너지 값을 획득하는 단계; 및 M개의 스펙트럼 에너지 및 평균 스펙트럼 에너지 값에 기초하여 M개의 블록의 M개의 과도 상태 식별자를 획득하는 단계를 포함한다. 전술한 해결책에서, M개의 스펙트럼 에너지를 획득한 후에, 인코더 측은 M개의 스펙트럼 에너지를 평균하여 평균 스펙트럼 에너지 값을 획득하거나, 또는 M개의 스펙트럼 에너지로부터 최댓값 또는 수 개의 최댓값을 제거하고, 그 후 M개의 스펙트럼 에너지를 평균하여 평균 스펙트럼 에너지 값을 획득할 수 있다. M개의 스펙트럼 에너지 내의 각각의 블록의 스펙트럼 에너지를 평균 스펙트럼 에너지 값과 비교하여, M개의 블록 중 다른 블록의 스펙트럼과 비교된 각각의 블록의 스펙트럼의 변화를 결정하고, 추가로 M개의 블록의 M개의 과도 상태 식별자를 획득하고, 하나의 블록의 과도 상태 식별자를 사용하여 하나의 블록의 과도 상태 특징을 표시할 수 있다. 본 출원의 이 실시예에서, 각각의 블록의 과도 상태 식별자는 각각의 블록의 스펙트럼 에너지 및 평균 스펙트럼 에너지 값에 기초하여 결정될 수 있으며, 따라서 하나의 블록의 과도 상태 식별자는 블록의 그룹 정보를 결정할 수 있다.
가능한 구현에서, 제1 블록의 스펙트럼 에너지가 평균 스펙트럼 에너지 값의 K배보다 클 때, 제1 블록의 과도 상태 식별자는 제1 블록이 과도 상태 블록이라는 것을 표시하거나; 또는 제1 블록의 스펙트럼 에너지가 평균 스펙트럼 에너지 값의 K배 이하일 때, 제1 블록의 과도 상태 식별자는 제1 블록이 비과도 상태 블록이라는 것을 표시한다. K는 1 이상의 실수이다. 전술한 해결책에서, M개의 블록 중 제1 블록의 과도 상태 식별자를 결정하는 프로세스가 예로서 사용된다. 제1 블록의 스펙트럼 에너지가 평균 스펙트럼 에너지 값의 K배보다 클 때, 이는 제1 블록의 스펙트럼 변화가 M개의 블록 중 다른 블록에 비해 과도하게 크다는 것을 표시한다. 이 경우, 제1 블록의 과도 상태 식별자는 제1 블록이 과도 상태 블록인 것을 표시한다. 제1 블록의 스펙트럼 에너지가 평균 스펙트럼 에너지 값의 K배 이하일 때, 이는 제1 블록의 스펙트럼이 M개의 블록 중 다른 블록에 비해 크게 변하지 않는다는 것을 표시하고, 제1 블록의 과도 상태 식별자는 제1 블록이 비과도 상태 블록이라는 것을 표시한다.
제2 양태에 따르면, 본 출원의 실시예는 오디오 신호 디코딩 방법을 추가로 제공하며, 이 방법은: 비트스트림으로부터 오디오 신호의 현재 프레임의 M개의 블록의 그룹 정보를 획득하는 단계- 그룹 정보는 M개의 블록의 M개의 과도 상태 식별자를 표시함 -; 디코딩 신경망을 사용하여 비트스트림을 디코딩함으로써, M개의 블록의 디코딩된 스펙트럼들을 획득하는 단계; M개의 블록의 그룹 정보에 기초하여 M개의 블록의 디코딩된 스펙트럼들에 대해 역 그룹화 및 배열을 수행하여, M개의 블록의 역 그룹화 배열된 스펙트럼들을 획득하고, M개의 블록의 역 그룹화 배열된 스펙트럼들에 기초하여 현재 프레임의 재구성된 오디오 신호를 획득하는 단계를 포함한다.
전술한 해결책에서, 오디오 신호의 현재 프레임의 M개의 블록의 그룹 정보가 비트스트림으로부터 획득되고, 그룹 정보는 M개의 블록의 M개의 과도 상태 식별자를 표시하고; 디코딩 신경망을 사용하여 비트스트림을 디코딩함으로써 M개의 블록의 디코딩된 스펙트럼들을 획득하고; M개의 블록의 그룹 정보에 기초하여 M개의 블록의 디코딩된 스펙트럼들에 대해 역 그룹화 및 배열을 수행하여, M개의 블록의 역 그룹화 및 배열 처리의 스펙트럼들을 획득하고, M개의 블록의 역 그룹화 및 배열 처리의 스펙트럼들에 기초하여 현재 프레임의 재구성된 오디오 신호를 획득한다. 비트스트림에 포함된 스펙트럼 인코딩 결과는 그룹으로 배열되기 때문에, 비트스트림이 디코딩될 때 M개의 블록의 디코딩된 스펙트럼들이 획득될 수 있고, 그 후 역 그룹화 및 배열을 수행함으로써 M개의 블록의 스펙트럼들이 획득되어, 현재 프레임의 재구성된 오디오 신호를 획득할 수 있다. 신호 재구성 동안, 오디오 신호 내의 상이한 과도 상태 식별자들을 갖는 블록들에 기초하여 역 그룹화 및 배열과 디코딩이 수행될 수 있으며, 따라서 오디오 신호 재구성 효과가 개선될 수 있다.
가능한 구현에서, M개의 블록의 그룹 정보에 기초하여 M개의 블록의 디코딩된 스펙트럼들에 대해 역 그룹화 및 배열을 수행하는 단계 전에, 본 방법은: M개의 블록의 디코딩된 스펙트럼들에 대해 인트라-그룹 디-인터리빙을 수행하여, M개의 블록의 인트라-그룹 디-인터리빙된 스펙트럼들을 획득하는 단계를 추가로 포함한다. M개의 블록의 그룹 정보에 기초하여 M개의 블록의 디코딩된 스펙트럼들에 대해 역 그룹화 및 배열을 수행하는 단계는: M개의 블록의 그룹 정보에 기초하여 M개의 블록의 인트라-그룹 디-인터리빙된 스펙트럼들에 대해 역 그룹화 및 배열을 수행하는 단계를 포함한다.
가능한 구현에서, M개의 블록 중에서 M개의 과도 상태 식별자에 의해 과도 상태 블록들로서 표시되는 블록들의 수량은 P이고, M개의 블록 중에서 M개의 과도 상태 식별자에 의해 비과도 상태 블록들로서 표시되는 블록들의 수량은 Q이고, M=P+Q이다. M개의 블록의 디코딩된 스펙트럼들에 대해 인트라-그룹 디-인터리빙을 수행하는 단계는: P개의 블록의 디코딩된 스펙트럼들에 대해 디-인터리빙하는 단계; 및 Q개의 블록의 디코딩된 스펙트럼들에 대해 디-인터리빙하는 단계를 포함한다.
가능한 구현에서, M개의 블록 중에서 M개의 과도 상태 식별자에 의해 과도 상태 블록들로서 표시되는 블록들의 수량은 P이고, M개의 블록 중에서 M개의 과도 상태 식별자에 의해 비과도 상태 블록들로서 표시되는 블록들의 수량은 Q이고, M=P+Q이다. M개의 블록의 그룹 정보에 기초하여 M개의 블록의 디코딩된 스펙트럼들에 대해 역 그룹화 및 배열을 수행하는 단계는: M개의 블록의 그룹 정보에 기초하여 P개의 블록의 인덱스들을 획득하는 단계; M개의 블록의 그룹 정보에 기초하여 Q개의 블록의 인덱스들을 획득하는 단계; 및 P개의 블록의 인덱스들 및 Q개의 블록의 인덱스들에 기초하여 M개의 블록의 디코딩된 스펙트럼들에 대해 역 그룹화 및 배열을 수행하는 단계를 포함한다.
가능한 구현에서, 본 방법은, 비트스트림으로부터 현재 프레임의 윈도우 타입을 획득하는 단계- 윈도우 타입은 짧은 윈도우 타입 또는 짧지 않은 윈도우 타입임 -; 및 현재 프레임의 윈도우 타입이 짧은 윈도우 타입일 때에만, 비트스트림으로부터 현재 프레임의 M개의 블록의 그룹 정보를 획득하는 단계를 수행하는 단계를 추가로 포함한다.
가능한 구현에서, M개의 블록의 그룹 정보는 M개의 블록의 그룹 수량 또는 그룹 수량 식별자를 포함하고, 그룹 수량 식별자는 그룹 수량을 표시하고, 그룹 수량이 1보다 클 때, M개의 블록의 그룹 정보는 M개의 블록의 M개의 과도 상태 식별자를 추가로 포함하거나; 또는 M개의 블록의 그룹 정보는 M개의 블록의 M개의 과도 상태 식별자를 포함한다.
제3 양태에 따르면, 본 출원의 실시예는 오디오 신호 인코딩 장치를 추가로 제공하며, 본 장치는:
인코딩될 오디오 신호의 현재 프레임의 M개의 블록의 스펙트럼들에 기초하여, 상기 M개의 블록의 M개의 과도 상태 식별자를 획득하도록 구성된 과도 상태 식별자 획득 모듈- M개의 블록은 제1 블록을 포함하고, 제1 블록의 과도 상태 식별자는 제1 블록이 과도 상태 블록인 것을 표시하거나, 또는 제1 블록이 비과도 상태 블록인 것을 표시함 -;
M개의 블록의 M개의 과도 상태 식별자에 기초하여 M개의 블록의 그룹 정보를 획득하도록 구성된 그룹 정보 획득 모듈;
M개의 블록의 그룹 정보에 기초하여 M개의 블록의 스펙트럼들에 대해 그룹화 및 배열을 수행하여, 인코딩될 스펙트럼을 획득하도록 구성된 그룹화 및 배열 모듈; 및
인코딩 신경망을 사용하여 인코딩될 스펙트럼을 인코딩함으로써 스펙트럼 인코딩 결과를 획득하고; 스펙트럼 인코딩 결과를 비트스트림에 기입하도록 구성된 인코딩 모듈을 포함한다.
본 출원의 제3 양태에서, 오디오 신호 인코딩 장치의 구성 모듈들은 제1 양태 및 가능한 구현들에서 설명된 단계들을 추가로 수행할 수 있다. 세부사항들에 대해서는, 제1 양태 및 가능한 구현들에서의 전술한 설명들을 참조한다.
제4 양태에 따르면, 본 출원의 실시예는 오디오 신호 디코딩 장치를 추가로 제공하며, 본 장치는:
비트스트림으로부터 오디오 신호의 현재 프레임의 M개의 블록의 그룹 정보를 획득하도록 구성된 그룹 정보 획득 모듈- 그룹 정보는 M개의 블록의 M개의 과도 상태 식별자를 표시함 -;
디코딩 신경망을 사용하여 비트스트림을 디코딩함으로써 M개의 블록의 디코딩된 스펙트럼들을 획득하도록 구성된 디코딩 모듈;
M개의 블록의 그룹 정보에 기초하여 M개의 블록의 디코딩된 스펙트럼들에 대해 역 그룹화 및 배열을 수행하여, M개의 블록의 역 그룹화 배열된 스펙트럼들을 획득하도록 구성된 역 그룹화 및 배열 모듈; 및
M개의 블록의 역 그룹화 배열된 스펙트럼들에 기초하여 재구성된 오디오 신호를 획득하도록 구성된 오디오 신호 획득 모듈을 포함한다.
본 출원의 제4 양태에서, 오디오 신호 디코딩 장치의 구성 모듈들은 제1 양태 및 가능한 구현들에서 설명된 단계들을 추가로 수행할 수 있다. 세부사항들에 대해서는, 제1 양태 및 가능한 구현들에서의 전술한 설명들을 참조한다.
제5 양태에 따르면, 본 출원의 실시예는 컴퓨터 판독가능 저장 매체를 제공한다. 컴퓨터 판독가능 저장 매체는 명령어들을 저장한다. 명령어들이 컴퓨터 상에서 실행될 때, 컴퓨터는 제1 양태 또는 제2 양태에 따른 방법을 수행할 수 있게 된다.
제6 양태에 따르면, 본 출원의 실시예는 명령어들을 포함하는 컴퓨터 프로그램 제품을 제공한다. 컴퓨터 프로그램 제품이 컴퓨터 상에서 실행될 때, 컴퓨터는 제1 양태 또는 제2 양태에서의 방법을 수행할 수 있게 된다.
제7 양태에 따르면, 본 출원의 실시예는 제1 양태의 방법에 따라 생성된 비트스트림을 포함하는 컴퓨터 판독가능 저장 매체를 제공한다.
제8 양태에 따르면, 본 출원의 실시예는 통신 장치를 제공한다. 통신 장치는 단말 디바이스 또는 칩과 같은 엔티티를 포함할 수 있고, 통신 장치는 프로세서 및 메모리를 포함한다. 메모리는 명령어들을 저장하도록 구성된다. 프로세서는 메모리 내의 명령어들을 실행하도록 구성되어, 통신 장치가 제1 양태 또는 제2 양태 중 어느 하나에 따른 방법을 수행하도록 한다.
제9 양태에 따르면, 본 출원은 칩 시스템을 제공한다. 칩 시스템은 전술한 양태들에서의 기능들을, 예를 들어, 전술한 방법들에서 데이터 및/또는 정보를 전송 또는 처리하는 것을 구현함에 있어서 오디오 인코더 또는 오디오 디코더를 지원하도록 구성된 프로세서를 포함한다. 가능한 설계에서, 칩 시스템은 메모리를 추가로 포함하고, 메모리는 오디오 인코더 또는 오디오 디코더에 필요한 프로그램 명령어 및 데이터를 저장하도록 구성된다. 칩 시스템은 칩을 포함할 수 있거나, 또는 칩 및 다른 개별 컴포넌트를 포함할 수 있다.
전술한 기술적 해결책들로부터, 본 출원의 실시예들은 다음과 같은 이점들을 갖는다는 것을 알 수 있다.
본 출원의 실시예에서, 인코딩될 오디오 신호의 현재 프레임의 M개의 블록의 스펙트럼들에 기초하여 M개의 블록의 M개의 과도 상태 식별자가 획득되고, M개의 블록의 그룹 정보가 M개의 과도 상태 식별자에 기초하여 획득된 후에, M개의 블록의 그룹 정보를 사용하여 현재 프레임 내의 M개의 블록의 스펙트럼들이 그룹화 및 배열될 수 있다. M개의 블록의 스펙트럼들은 그룹화 및 배열되어, 현재 프레임 내의 M개의 블록의 스펙트럼들의 배열 시퀀스가 조정될 수 있고, 현재 프레임의 인코딩될 스펙트럼이 획득된 후에, 인코딩될 스펙트럼은 인코딩 신경망을 사용하여 인코딩됨으로써, 스펙트럼 인코딩 결과를 획득하고, 스펙트럼 인코딩 결과는 비트스트림을 사용하여 운반될 수 있다. 따라서, 본 출원의 이 실시예에서, M개의 블록의 스펙트럼들은 오디오 신호의 현재 프레임 내의 M개의 과도 상태 식별자에 기초하여 그룹화 및 배열될 수 있고, 따라서 상이한 과도 상태 식별자들을 갖는 블록들이 그룹화 및 배열되고 인코딩될 수 있고, 그에 의해 오디오 신호의 인코딩 품질을 개선할 수 있다.
본 출원의 다른 실시예에서, 오디오 신호의 현재 프레임의 M개의 블록의 그룹 정보가 비트스트림으로부터 획득되고, 그룹 정보는 M개의 블록의 M개의 과도 상태 식별자를 표시한다. 비트스트림은 디코딩 신경망을 사용하여 디코딩됨으로써 M개의 블록의 디코딩된 스펙트럼들을 획득한다. M개의 블록의 그룹 정보에 기초하여 M개의 블록의 디코딩된 스펙트럼들에 대해 역 그룹화 및 배열이 수행되어, 역 그룹화 및 배열 처리가 수행된 후에 M개의 블록의 스펙트럼들을 획득하고, 역 그룹화 및 배열이 수행된 후에 M개의 블록의 스펙트럼들에 기초하여 현재 프레임의 재구성된 오디오 신호가 획득된다. 비트스트림에 포함된 스펙트럼 인코딩 결과는 그룹으로 배열되기 때문에, 비트스트림이 디코딩될 때 M개의 블록의 디코딩된 스펙트럼들이 획득될 수 있고, 그 후 역 그룹화 및 배열을 수행함으로써 M개의 블록의 스펙트럼들이 획득되어, 현재 프레임의 재구성된 오디오 신호를 획득할 수 있다. 신호 재구성 동안, 오디오 신호 내의 상이한 과도 상태 식별자들을 갖는 블록들에 기초하여 역 그룹화 및 배열과 디코딩이 수행될 수 있으며, 따라서 오디오 신호 재구성 효과가 개선될 수 있다.
도 1은 본 출원의 실시예에 따른 오디오 처리 시스템의 구성 구조의 개략도이고;
도 2a는 본 출원의 실시예에 따라 오디오 인코더 및 오디오 디코더를 단말 디바이스에 적용하는 개략도이고;
도 2b는 본 출원의 실시예에 따라 오디오 인코더를 무선 디바이스 또는 코어 네트워크 디바이스에 적용하는 개략도이고;
도 2c는 본 출원의 실시예에 따라 오디오 디코더를 무선 디바이스 또는 코어 네트워크 디바이스에 적용하는 개략도이고;
도 3은 본 출원의 실시예에 따른 오디오 신호 인코딩 방법의 개략도이고;
도 4는 본 출원의 실시예에 따른 오디오 신호 디코딩 방법의 개략도이고;
도 5는 본 출원의 실시예에 따른 오디오 신호 인코딩 및 디코딩 시스템의 개략도이고;
도 6은 본 출원의 실시예에 따른 오디오 신호 인코딩 방법의 개략도이고;
도 7은 본 출원의 실시예에 따른 오디오 신호 디코딩 방법의 개략도이고;
도 8a 및 도 8b는 본 출원의 실시예에 따른 오디오 신호 인코딩 방법의 개략도이고;
도 9a 및 도 9b는 본 출원의 실시예에 따른 오디오 신호 디코딩 방법의 개략도이고;
도 10은 본 출원의 실시예에 따른 오디오 인코딩 장치의 구성 구조의 개략도이고;
도 11은 본 출원의 실시예에 따른 오디오 디코딩 장치의 구성 구조의 개략도이고;
도 12는 본 출원의 실시예에 따른 다른 오디오 인코딩 장치의 구성 구조의 개략도이고;
도 13은 본 출원의 실시예에 따른 다른 오디오 디코딩 장치의 구성 구조의 개략도이다.
아래에서는 첨부 도면들을 참조하여 본 출원의 실시예들을 설명한다.
본 출원의 명세서, 청구항들, 및 첨부 도면들에서, "제1(first)", "제2(second)" 등이라는 용어들은 유사한 객체 사이를 구별하기 위해 의도되는 것이지만 반드시 특정 순서 또는 시퀀스를 표시하는 것은 아니다. 이러한 방식으로 사용되는 용어들은 적절한 상황들에서 상호교환가능하며, 이는 동일한 속성을 갖는 객체들이 본 출원의 실시예들에서 설명될 때 사용되는 구별 방식일뿐이라는 점이 이해되어야 한다. 또한, 용어들 "포함하다(include)", "함유하다(contain)", 및 임의의 다른 변형들은 비배타적 포함을 커버하는 것을 의미하며, 따라서 일련의 유닛들을 포함하는 프로세스, 방법, 시스템, 제품, 또는 디바이스는 그러한 유닛들에 반드시 제한되는 것은 아니며, 이러한 프로세스, 방법, 시스템, 제품, 또는 디바이스에 고유하거나 명확히 나열되지 않은 다른 유닛들을 포함할 수 있다.
사운드(sound)는 객체의 진동에 의해 발생되는 연속파이다. 진동을 생성하고 음파를 방출하는 객체를 사운드 소스라고 지칭한다. 사운드는 음파들이 (공기, 고체 또는 액체와 같은) 매체를 통해 진행할 때 사람 또는 동물의 청각 기관에 의해 감지될 수 있다.
음파의 특성들은 피치(pitch), 사운드 세기, 및 음색을 포함한다. 피치는 사운드의 높이 레벨을 표시한다. 사운드 세기는 사운드의 크기를 표시한다. 사운드 세기는 라우드니스(loudness) 또는 볼륨이라고도 지칭될 수 있다. 사운드 세기의 단위는 데시벨(decibel, dB)이다. 음색은 음성 품질로도 알려져 있다.
음파의 주파수는 피치를 결정한다. 더 높은 주파수는 더 높은 피치를 표시한다. 1초 안에 객체가 진동하는 횟수를 주파수라고 지칭하고, 여기서 주파수의 단위는 헤르츠(hertz, Hz)이다. 인간의 귀에 의해 인식되는 사운드의 주파수는 20Hz 내지 20,000Hz이다.
음파의 진폭은 사운드 세기 레벨을 결정한다. 더 큰 진폭은 더 큰 사운드 세기를 표시한다. 사운드 소스까지의 거리가 짧을수록 더 큰 사운드 세기를 표시한다.
음파의 파형은 음색을 결정한다. 음파의 파형들은 구형파, 톱니파, 사인파, 펄스파 등을 포함한다.
음파의 특성들에 기초하여, 사운드는 규칙적인 사운드와 불규칙한 사운드로 분할될 수 있다. 불규칙한 사운드는 사운드 소스의 불규칙한 진동에 의해 생성되는 사운드를 지칭한다. 불규칙한 사운드는, 예를 들어, 사람들의 업무, 연구, 휴식 등에 영향을 미치는 잡음들이다. 규칙적인 사운드는 사운드 소스의 규칙적인 진동에 의해 생성된 사운드를 지칭한다. 규칙적인 사운드들은 음성 및 음악을 포함한다. 사운드가 전기에 의해 표현될 때, 규칙적인 사운드는 시간-주파수 도메인에서 연속적으로 변화하는 아날로그 신호이다. 아날로그 신호는 오디오 신호(audio signal)라고 지칭될 수 있다. 오디오 신호는 음성, 음악 및 음향 효과를 운반하는 일종의 정보 캐리어이다.
인간의 청력이 공간에서 사운드 소스들의 위치 분포를 구별하는 능력을 갖기 때문에, 공간에서 사운드를 들을 때, 청취자는 피치, 사운드 세기 및 사운드의 음색 이외에 사운드의 배향을 느낄 수 있다.
대안적으로, 사운드는 모노 사운드와 스테레오 사운드로 분할될 수 있다. 모노는 하나의 사운드 채널을 가지며, 하나의 마이크로폰은 사운드를 픽업하기 위해 사용되고, 하나의 스피커는 사운드를 재생하기 위해 사용된다. 스테레오는 복수의 사운드 채널을 갖고, 상이한 사운드 채널들은 상이한 사운드 파형들을 송신한다.
오디오 신호가 과도 상태 신호일 때, 현재 인코더 측은 과도 상태 특징을 추출하지 않으며, 과도 상태 특징은 비트스트림으로 송신되지 않으며, 과도 상태 특징은 오디오 신호의 과도 상태 프레임 내의 인접 블록들의 스펙트럼들의 변화를 표시한다. 따라서, 신호 재구성이 디코더 측에서 수행될 때, 재구성된 오디오 신호의 과도 특징은 비트스트림으로부터 획득될 수 없고, 열악한 오디오 신호 재구성 효과의 문제점이 존재한다.
본 출원의 실시예들은 종래의 오디오 인코딩 시스템을 개선하기 위해 오디오 처리 기술을 제공하고, 특히, 오디오 신호 지향 오디오 인코딩 기술을 제공한다. 오디오 처리는 2개의 부분: 오디오 인코딩 및 오디오 디코딩을 포함한다. 오디오 인코딩은 소스 측에서 수행되고, 오디오를 표현하기 위해, 오디오를 더 효율적으로 저장 및/또는 송신하기 위해 요구되는 데이터량을 감소시키기 위해 오리지널 오디오를 인코딩(예를 들어, 압축)하는 것을 포함한다. 오디오 디코딩은 타깃 측에서 수행되고, 인코더에 대한 역 처리를 포함하여, 오리지널 오디오를 재구성한다. 인코딩 부분 및 디코딩 부분은 또한 일괄적으로 코딩이라고 지칭된다. 다음은 첨부 도면들을 참조하여 본 출원의 실시예들의 구현들을 상세히 설명한다.
본 출원의 실시예들에서의 기술적 해결책들은 다양한 오디오 처리 시스템들에 적용될 수 있다. 도 1은 본 출원의 실시예에 따른 오디오 처리 시스템의 구성 구조의 개략도이다. 오디오 처리 시스템(100)은 오디오 인코딩 장치(101) 및 오디오 디코딩 장치(102)를 포함할 수 있다. 오디오 인코딩 장치(101)는 오디오 신호 인코딩 장치라고도 지칭될 수 있고, 비트스트림을 생성하도록 구성될 수 있다. 그 후, 오디오 인코딩 비트스트림은 오디오 송신 채널을 통해 오디오 디코딩 장치(102)에 송신될 수 있다. 오디오 디코딩 장치(102)는 오디오 신호 디코딩 장치라고도 지칭될 수 있고, 비트스트림을 수신할 수 있다. 그 후, 오디오 디코딩 장치(102)의 오디오 디코딩 기능이 실행되고, 최종적으로, 재구성된 신호가 획득된다.
본 출원의 이 실시예에서, 오디오 인코딩 장치는 오디오 통신을 필요로 하는 다양한 단말 디바이스들, 및 트랜스코딩을 필요로 하는 무선 디바이스들 및 코어 네트워크 디바이스들에 적용될 수 있다. 예를 들어, 오디오 인코딩 장치는 단말 디바이스, 무선 디바이스, 또는 코어 네트워크 디바이스의 오디오 인코더일 수 있다. 유사하게, 오디오 디코딩 장치는 오디오 통신을 필요로 하는 다양한 단말 디바이스들, 및 트랜스코딩을 필요로 하는 무선 디바이스들 및 코어 네트워크 디바이스들에 적용될 수 있다. 예를 들어, 오디오 디코딩 장치는 단말 디바이스, 무선 디바이스, 또는 코어 네트워크 디바이스의 오디오 디코더일 수 있다. 예를 들어, 오디오 인코더는 무선 액세스 네트워크 또는 코어 네트워크에서 미디어 게이트웨이, 트랜스코딩 디바이스, 미디어 리소스 서버, 모바일 단말기, 고정 네트워크 단말기 등을 포함할 수 있다. 대안적으로, 오디오 인코더는 가상 현실(virtual reality, VR) 스트리밍(streaming) 서비스에 적용되는 오디오 인코더일 수 있다.
본 출원의 이 실시예에서, 가상 현실 스트리밍(VR streaming) 서비스에 적용가능한 오디오 코딩 모듈(audio encoding and audio decoding)이 예로서 사용된다. 오디오 신호의 엔드-투-엔드 인코딩 및 디코딩 프로세스는 다음을 포함한다: 오디오 신호 A가 취득(acquisition) 모듈에 의해 취득된 후에 오디오 신호 A에 대해 오디오 전처리(audio preprocessing) 동작이 수행된다. 전처리 동작은 신호에서의 저주파수 부분을 필터링 아웃하는 것을 포함하고, 경계 포인트로서 20Hz 또는 50Hz를 사용하여 신호에서의 배향 정보를 추출하는 것일 수 있다. 그 후, 오디오 인코딩(audio encoding) 및 파일/세그먼트 캡슐화(file/segment encapsulation)가 수행된 후에, 배향 정보가 디코더 측에 전달(delivery)된다. 디코더 측은 먼저 파일/세그먼트 역캡슐화(file/segment decapsulation)를 수행한 다음, 오디오 디코딩(audio decoding)을 수행하고, 디코딩된 신호에 대해 오디오 렌더링(audio rendering) 처리를 수행한다. 렌더링 처리 후에 획득된 신호는 청취자의 헤드폰들(headphones)에 매핑된다. 헤드폰은 독립적인 헤드폰일 수 있거나, 또는 안경 디바이스 상의 헤드폰일 수 있다.
도 2a는 본 출원의 실시예에 따라 오디오 인코더 및 오디오 디코더를 단말 디바이스에 적용하는 개략도이다. 각각의 단말 디바이스는 오디오 인코더, 채널 인코더, 오디오 디코더, 및 채널 디코더를 포함할 수 있다. 구체적으로, 채널 인코더는 오디오 신호에 대해 채널 인코딩을 수행하도록 구성되고, 채널 디코더는 오디오 신호에 대해 채널 디코딩을 수행하도록 구성된다. 예를 들어, 제1 단말 디바이스(20)는 제1 오디오 인코더(201), 제1 채널 인코더(202), 제1 오디오 디코더(203), 및 제1 채널 디코더(204)를 포함할 수 있다. 제2 단말 디바이스(21)는 제2 오디오 디코더(211), 제2 채널 디코더(212), 제2 오디오 인코더(213), 및 제2 채널 인코더(214)를 포함할 수 있다. 제1 단말 디바이스(20)는 무선 또는 유선 제1 네트워크 통신 디바이스(22)에 접속되고, 제1 네트워크 통신 디바이스(22)는 디지털 채널을 통해 무선 또는 유선 제2 네트워크 통신 디바이스(23)에 접속되고, 제2 단말 디바이스(21)는 무선 또는 유선 제2 네트워크 통신 디바이스(23)에 접속된다. 무선 또는 유선 네트워크 통신 디바이스는 일반적으로 신호 송신 디바이스, 예를 들어, 통신 기지국 또는 데이터 스위칭 디바이스일 수 있다.
오디오 통신에서, 송신단으로서 사용되는 단말 디바이스는 먼저 오디오 취득을 수행하고, 취득된 오디오 신호에 오디오 인코딩 및 채널 인코딩을 수행하고, 취득된 오디오 신호를 무선 네트워크 또는 코어 네트워크를 사용하여 디지털 채널에서 송신한다. 수신단으로서 사용되는 단말 디바이스는 수신된 신호에 기초하여 채널 디코딩을 수행하여 비트스트림을 획득하고, 다음으로 오디오 디코딩을 통해 오디오 신호를 복원하고, 수신단에서의 단말 디바이스는 오디오 재생을 수행한다.
도 2b는 본 출원의 실시예에 따라 오디오 인코더를 무선 디바이스 또는 코어 네트워크 디바이스에 적용하는 개략도이다. 무선 디바이스 또는 코어 네트워크 디바이스(25)는 채널 디코더(251), 다른 오디오 디코더(252), 본 출원의 이 실시예에서 제공되는 오디오 인코더(253), 및 채널 인코더(254)를 포함한다. 다른 오디오 디코더(252)는 오디오 디코더 이외의 오디오 디코더이다. 무선 디바이스 또는 코어 네트워크 디바이스(25)에서, 채널 디코더(251)는 먼저 디바이스에 진입하는 신호에 대해 채널 디코딩을 수행한다. 그 후, 다른 오디오 디코더(252)는 오디오 디코딩을 수행한다. 그 후, 본 출원의 이 실시예에서 제공되는 오디오 인코더(253)는 오디오 인코딩을 수행한다. 최종적으로, 채널 인코더(254)는 오디오 신호에 대해 채널 인코딩을 수행한다. 채널 인코딩이 완료된 후에, 오디오 신호가 송신된다. 다른 오디오 디코더(252)는 채널 디코더(251)에 의해 디코딩된 비트스트림에 대해 오디오 디코딩을 수행한다.
도 2c는 본 출원의 실시예에 따른 오디오 디코더를 무선 디바이스 또는 코어 네트워크 디바이스에 적용하는 개략도이다. 무선 디바이스 또는 코어 네트워크 디바이스(25)는 채널 디코더(251), 본 출원의 이 실시예에서 제공되는 오디오 디코더(255), 다른 오디오 인코더(256), 및 채널 인코더(254)를 포함한다. 다른 오디오 인코더(256)는 오디오 인코더 이외의 오디오 인코더이다. 무선 디바이스 또는 코어 네트워크 디바이스(25)에서, 채널 디코더(251)는 먼저 디바이스에 진입하는 신호에 대해 채널 디코딩을 수행한다. 그 후, 오디오 디코더(255)는 수신된 오디오 인코딩 비트스트림을 디코딩한다. 그 후, 다른 오디오 인코더(256)는 오디오 인코딩을 수행한다. 최종적으로, 채널 인코더(254)는 오디오 신호에 대해 채널 인코딩을 수행한다. 채널 인코딩이 완료된 후에, 오디오 신호가 송신된다. 무선 디바이스 또는 코어 네트워크 디바이스에서, 트랜스코딩이 구현될 필요가 있는 경우, 대응하는 오디오 인코딩이 수행될 필요가 있다. 무선 디바이스는 통신 중인 무선 주파수 관련 디바이스를 지칭하고, 코어 네트워크 디바이스는 통신 중인 코어 네트워크 관련 디바이스를 지칭한다.
본 출원의 일부 실시예들에서, 오디오 인코딩 장치는 오디오 통신을 필요로 하는 다양한 단말 디바이스들, 및 트랜스코딩을 필요로 하는 무선 디바이스들 및 코어 네트워크 디바이스들에 적용될 수 있다. 예를 들어, 오디오 인코딩 장치는 단말 디바이스, 무선 디바이스, 또는 코어 네트워크 디바이스의 다채널 인코더일 수 있다. 유사하게, 오디오 디코딩 장치는 오디오 통신을 필요로 하는 다양한 단말 디바이스들, 및 트랜스코딩을 필요로 하는 무선 디바이스들 및 코어 네트워크 디바이스들에 적용될 수 있다. 예를 들어, 오디오 디코딩 장치는 단말 디바이스, 무선 디바이스, 또는 코어 네트워크 디바이스의 다채널 디코더일 수 있다.
본 출원의 실시예들에서 제공되는 오디오 신호 인코딩 방법이 먼저 설명된다. 본 방법은 단말 디바이스에 의해 수행될 수 있다. 예를 들어, 단말 디바이스는 오디오 신호 인코딩 장치(이하, 인코더 측 또는 인코더라고 지칭되며, 예를 들어, 인코더 측은 인공 지능(artificial intelligence, AI) 인코더일 수 있음)일 수 있다. 도 3에 도시된 바와 같이, 본 출원의 실시예에서 인코더 측에서 수행되는 인코딩 절차가 설명된다.
301: 인코딩될 오디오 신호의 현재 프레임의 M개의 블록의 스펙트럼들에 기초하여, M개의 블록의 M개의 과도 상태 식별자를 획득하고, 여기서 M개의 블록은 제1 블록을 포함하고, 제1 블록의 과도 상태 식별자는 제1 블록이 과도 상태 블록인 것을 표시하거나, 또는 제1 블록이 비과도 상태 블록인 것을 표시한다.
인코더 측은 먼저 인코딩될 오디오 신호를 획득하고, 인코딩될 오디오 신호를 프레임화하여 인코딩될 오디오 신호의 현재 프레임을 획득한다. 후속 실시예들에서, 현재 프레임의 인코딩은 설명을 위한 예로서 사용되고, 인코딩될 오디오 신호의 다른 프레임의 인코딩은 현재 프레임의 인코딩과 유사하다.
현재 프레임을 결정한 후에, 인코더 측은 현재 프레임에 대해 윈도잉 및 시간-주파수 변환을 수행한다. 현재 프레임이 M개의 블록을 포함하는 경우, 현재 프레임의 M개의 블록의 스펙트럼들이 획득될 수 있고, 여기서 M은 현재 프레임에 포함된 블록들의 수량을 표현한다. M의 값은 본 출원의 이 실시예에서 제한되지 않는다. 예를 들어, 인코더 측은 현재 프레임의 M개의 블록에 대해 시간-주파수 변환을 수행하여, M개의 블록의 수정된 이산 코사인 변환(modified discrete cosine transform, MDCT) 스펙트럼들을 획득한다. 후속 실시예들에서, M개의 블록의 스펙트럼들이 MDCT 스펙트럼들인 예가 사용된다. M개의 블록의 스펙트럼들은 대안적으로 다른 스펙트럼들일 수 있다. 이것은 제한되지 않는다.
M개의 블록의 스펙트럼들을 획득한 후, 인코더 측은 M개의 블록의 스펙트럼들에 기초하여 M개의 블록의 M개의 과도 상태 식별자를 개별적으로 획득한다. 각각의 블록의 스펙트럼은 블록의 과도 상태 식별자를 결정하기 위해 사용되며, 각각의 블록은 하나의 과도 상태 식별자에 대응하고, 하나의 블록의 과도 상태 식별자는 M개의 블록 내의 블록의 스펙트럼 변경 상태를 표시한다. 예를 들어, M개의 블록에 포함된 블록은 제1 블록이고, 제1 블록은 하나의 과도 상태 식별자에 대응한다.
본 출원의 일부 실시예들에서, 과도 상태 식별자의 값은 복수의 구현을 갖는다. 예를 들어, 과도 상태 식별자는 제1 블록이 과도 상태 블록인 것을 표시할 수 있거나, 또는 과도 상태 식별자는 제1 블록이 비과도 상태 블록인 것을 표시할 수 있다. 과도 상태인 블록의 과도 상태 식별자는 블록의 스펙트럼이 M개의 블록 중 다른 블록의 스펙트럼에 비해 크게 변한다는 것을 표시한다. 비과도 상태인 블록의 과도 상태 식별자는 블록의 스펙트럼이 M개의 블록 중 다른 블록의 스펙트럼에 비해 크게 변하지 않는다는 것을 표시한다. 예를 들어, 과도 상태 식별자는 하나의 비트를 점유한다. 과도 상태 식별자의 값이 0이면, 과도 상태 식별자는 과도 상태이거나; 또는 과도 상태 식별자의 값이 1이면, 과도 상태 식별자는 비과도 상태이다. 대안적으로, 과도 상태 식별자의 값이 1이면, 과도 상태 식별자는 과도 상태이거나; 또는 과도 상태 식별자의 값이 0이면, 과도 상태 식별자는 비과도 상태이다. 이것은 본 명세서에서 제한되지 않는다.
302: M개의 블록의 M개의 과도 상태 식별자에 기초하여 M개의 블록의 그룹 정보를 획득한다.
인코더 측이 M개의 블록의 M개의 과도 상태 식별자를 획득한 후, M개의 블록의 M개의 과도 상태 식별자는 M개의 블록을 그룹화하기 위해 사용되고, M개의 블록의 그룹 정보는 M개의 블록의 M개의 과도 상태 식별자에 기초하여 획득된다. M개의 블록의 그룹 정보는 M개의 블록의 그룹화 방식을 표시할 수 있고, M개의 블록의 M개의 과도 상태 식별자는 M개의 블록을 그룹화하기 위한 기초이다. 예를 들어, 동일한 과도 상태 식별자를 갖는 블록들은 하나의 그룹으로 그룹화될 수 있다. 상이한 과도 상태 식별자들을 갖는 블록들은 상이한 그룹들로 그룹화된다.
본 출원의 일부 실시예들에서, M개의 블록의 그룹 정보는 복수의 구현을 가질 수 있다. M개의 블록의 그룹 정보는 M개의 블록의 그룹 수량 또는 그룹 수량 식별자를 포함하고, 그룹 수량 식별자는 그룹 수량을 표시한다. 그룹 수량이 1보다 클 때, M개의 블록의 그룹 정보는 M개의 블록의 M개의 과도 상태 식별자를 추가로 포함한다. 대안적으로, M개의 블록의 그룹 정보는 M개의 블록의 M개의 과도 상태 식별자를 포함한다. M개의 블록의 그룹 정보는 M개의 블록의 그룹화 상태를 표시할 수 있어서, 인코더 측은 그룹 정보를 사용하여 M개의 블록의 스펙트럼들에 대해 그룹화 및 배열을 수행할 수 있다.
예를 들어, M개의 블록의 그룹 정보는 M개의 블록의 그룹 수량 및 M개의 블록의 과도 상태 식별자들을 포함한다. M개의 블록의 과도 상태 식별자들은 그룹 플래그 정보로도 지칭될 수 있다. 따라서, 본 출원의 이 실시예에서의 그룹 정보는 그룹 수량 및 그룹 플래그 정보를 포함할 수 있다. 예를 들어, 그룹 수량의 값은 1 또는 2일 수 있다. 그룹 플래그 정보는 M개의 블록의 과도 상태 식별자들을 표시한다.
예를 들어, M개의 블록의 그룹 정보는 M개의 블록의 과도 상태 식별자들을 포함한다. M개의 블록의 과도 상태 식별자들은 그룹 플래그 정보로도 지칭될 수 있다. 따라서, 본 출원의 이 실시예에서의 그룹 정보는 그룹 플래그 정보를 포함할 수 있다. 예를 들어, 그룹 플래그 정보는 M개의 블록의 과도 상태 식별자들을 표시한다.
예를 들어, M개의 블록의 그룹 정보는 다음을 포함한다: M개의 블록의 그룹 수량이 1인 경우, 즉 그룹 수량이 1과 동일할 때, M개의 블록의 그룹 정보는 M개의 과도 상태 식별자를 포함하지 않고, 그룹 수량이 1보다 클 때, M개의 블록의 그룹 정보는 M개의 블록의 M개의 과도 상태 식별자를 추가로 포함한다.
다른 예로서, M개의 블록의 그룹 정보에서의 그룹 수량은 대안적으로 그룹 수량을 표시하기 위해 그룹 수량 식별자로 대체될 수 있다. 예를 들어, 그룹 수량 식별자가 0일 때, 이는 그룹 수량이 1인 것을 표시하고, 그룹 수량 식별자가 1일 때, 이는 그룹 수량이 2인 것을 표시한다.
본 출원의 일부 실시예들에서, 인코더 측에서 수행되는 방법은 다음 단계들을 추가로 포함한다.
A1: M개의 블록의 그룹 정보를 인코딩하여 그룹 정보 인코딩 결과를 획득한다.
A2: 그룹 정보 인코딩 결과를 비트스트림에 기입한다.
M개의 블록의 그룹 정보를 획득한 후에, 인코더 측은 비트스트림에서 그룹 정보를 운반하고, 그룹 정보를 먼저 인코딩할 수 있다. 그룹 정보에 사용되는 인코딩 방식은 본 명세서에서 제한되지 않는다. 그룹 정보가 인코딩되어, 그룹 정보 인코딩 결과를 획득할 수 있다. 그룹 정보 인코딩 결과는 비트스트림에 기입될 수 있어서, 비트스트림은 그룹 정보 인코딩 결과를 운반할 수 있다.
단계 A2 및 후속 단계 305는 시퀀스에 따르지 않는다는 점에 유의해야 한다. 단계 305는 단계 A2 전에 수행될 수 있거나, 단계 A2는 단계 305 전에 수행될 수 있거나, 또는 단계 A2 및 단계 305는 동시에 수행될 수 있다. 이것은 본 명세서에서 제한되지 않는다.
303: M개의 블록의 그룹 정보에 기초하여 M개의 블록의 스펙트럼들에 대해 그룹화 배열을 수행하여, 현재 프레임의 인코딩될 스펙트럼을 획득한다.
인코딩될 스펙트럼은 M개의 블록의 그룹화 배열된 스펙트럼이라고도 지칭될 수 있다.
M개의 블록의 그룹 정보를 획득한 후에, 인코더 측은 M개의 블록의 그룹 정보를 사용하여 현재 프레임 내의 M개의 블록의 스펙트럼들에 대해 그룹화 및 배열을 수행할 수 있다. 그룹화 및 배열이 M개의 블록의 스펙트럼들에 대해 수행되어, 현재 프레임 내의 M개의 블록의 스펙트럼들의 배열 시퀀스가 조정될 수 있다. 그룹화 및 배열은 M개의 블록의 그룹 정보에 기초하여 수행되고, M개의 블록의 그룹 정보는 M개의 블록의 M개의 과도 상태 식별자에 기초하여 획득된다. 그룹화 및 배열이 M개의 블록에 대해 수행된 후에, M개의 블록의 그룹화 배열된 스펙트럼들이 획득된다. M개의 블록의 그룹화 배열된 스펙트럼들은 M개의 블록의 M개의 과도 상태 식별자를 그룹화 및 배열을 위한 기초로서 사용하며, M개의 블록의 스펙트럼들의 인코딩 시퀀스는 그룹화 및 배열을 통해 변경될 수 있다.
본 출원의 일부 실시예들에서, M개의 블록의 그룹 정보에 기초하여 M개의 블록의 스펙트럼들에 대해 그룹화 및 배열이 수행하여 현재 프레임의 인코딩될 스펙트럼을 획득하는 단계 303은 다음 단계들을 포함한다.
B1: M개의 블록 중에서 M개의 과도 상태 식별자에 의해 과도 상태 블록으로서 표시되는 블록의 스펙트럼을 과도 상태 그룹에 할당하고, M개의 블록 중에서 M개의 과도 상태 식별자에 의해 비과도 상태 블록으로서 표시되는 블록의 스펙트럼을 비과도 상태 그룹에 할당한다.
B2: 과도 상태 그룹 내의 블록의 스펙트럼을 비과도 상태 그룹 내의 블록의 스펙트럼 전에 있도록 배열하여, 인코딩될 스펙트럼을 획득한다.
M개의 블록의 그룹 정보를 획득한 후에, 인코더 측은 상이한 과도 상태 식별자들에 기초하여 M개의 블록을 그룹화하여, 과도 상태 그룹 및 비과도 상태 그룹을 획득하고; 그 후 현재 프레임의 스펙트럼 내의 M개의 블록의 위치들을 배열하고; 과도 상태 그룹 내의 블록의 스펙트럼을 비과도 그룹 내의 블록의 스펙트럼 전에 있도록 배열하여, 인코딩될 스펙트럼을 획득한다. 구체적으로, 인코딩될 스펙트럼 내의 모든 과도 상태 블록의 스펙트럼들은 비과도 상태 블록의 스펙트럼 전에 위치하며, 따라서 과도 상태 블록의 스펙트럼은 인코딩 중요도가 더 높은 위치로 조정될 수 있고, 신경망을 사용하여 인코딩 및 디코딩 후에 재구성된 오디오 신호의 과도 상태 특성이 더 양호하게 유지될 수 있다.
본 출원의 일부 실시예들에서, M개의 블록의 그룹 정보에 기초하여 M개의 블록의 스펙트럼들에 대해 그룹화 및 배열이 수행하여 현재 프레임의 인코딩될 스펙트럼을 획득하는 단계 303은 다음 단계를 포함한다.
C1: M개의 블록 중에서 M개의 과도 상태 식별자에 의해 과도 상태 블록으로서 표시되는 블록의 스펙트럼을 M개의 블록 중에서 M개의 과도 상태 식별자에 의해 비과도 상태 블록으로서 표시되는 블록의 스펙트럼 전에 있도록 배열하여, 현재 프레임의 인코딩될 스펙트럼을 획득한다.
M개의 블록의 그룹 정보를 획득한 후에, 인코더 측은 그룹 정보에 기초하여 M개의 블록 각각의 과도 상태 식별자를 결정하고, 먼저 M개의 블록으로부터 P개의 과도 상태 블록 및 Q개의 비과도 상태 블록을 찾는다. 이 경우, M=P+Q이다. M개의 블록 중에서 M개의 과도 상태 식별자에 의해 과도 상태 블록으로서 표시되는 블록의 스펙트럼은 M개의 블록 중에서 M개의 과도 상태 식별자에 의해 비과도 상태 블록으로서 표시되는 블록의 스펙트럼 전에 있도록 배열되어, 현재 프레임의 인코딩될 스펙트럼을 획득한다. 구체적으로, 인코딩될 스펙트럼 내의 모든 과도 상태 블록의 스펙트럼들은 비과도 상태 블록의 스펙트럼 전에 위치하며, 따라서 과도 상태 블록의 스펙트럼은 인코딩 중요도가 더 높은 위치로 조정될 수 있고, 따라서 신경망을 사용하여 인코딩 및 디코딩 후에 재구성된 오디오 신호의 과도 상태 특성이 더 양호하게 유지될 수 있다.
304: 인코딩 신경망을 사용하여 인코딩될 스펙트럼을 인코딩함으로써 스펙트럼 인코딩 결과를 획득한다.
305: 스펙트럼 인코딩 결과를 비트스트림에 기입한다.
본 출원의 이 실시예에서, 현재 프레임의 인코딩될 스펙트럼을 획득한 후에, 인코더 측은 인코딩 신경망을 사용하여 인코딩을 수행함으로써, 스펙트럼 인코딩 결과를 생성하고, 그 후 스펙트럼 인코딩 결과를 비트스트림에 기입할 수 있다. 인코더 측은 비트스트림을 디코더 측에 전송할 수 있다.
구현에서, 인코더 측은 인코딩될 스펙트럼을 인코딩 신경망의 입력 데이터로서 사용하거나, 또는 인코딩될 스펙트럼에 대해 다른 처리를 추가로 수행할 수 있고, 그 후에 인코딩될 스펙트럼을 인코딩 신경망의 입력 데이터로서 사용할 수 있다. 인코딩 신경망이 처리를 수행한 후에, 잠재 변수(latent variable)가 생성될 수 있고, 잠재 변수는 M개의 블록의 그룹화 배열된 스펙트럼들의 특징을 표현한다.
본 출원의 일부 실시예들에서, 인코딩될 스펙트럼이 인코딩 신경망을 사용함으로써 인코딩되는 단계 304 전에, 인코더 측에서 수행되는 방법은 다음 단계를 추가로 포함한다.
D1: 인코딩될 스펙트럼에 대해 인트라-그룹 인터리빙을 수행하여, M개의 블록의 인트라-그룹 인터리빙된 스펙트럼들을 획득한다.
이 구현 시나리오에서, 인코딩될 스펙트럼이 인코딩 신경망을 사용함으로써 인코딩되는 단계 304는 다음 단계를 포함한다.
E1: 인코딩 신경망을 사용하여, M개의 블록의 인트라-그룹 인터리빙된 스펙트럼들을 인코딩한다.
현재 프레임의 인코딩될 스펙트럼을 획득한 후에, 인코더 측은 M개의 블록의 그룹화에 기초하여 인트라-그룹 인터리빙을 먼저 수행하여, M개의 블록의 인트라-그룹 인터리빙된 스펙트럼들을 획득할 수 있다. 이 경우, M개의 블록의 인트라-그룹 인터리빙된 스펙트럼들은 인코딩 신경망의 입력 데이터일 수 있다. 인트라-그룹 인터리빙을 통해, 인코딩 사이드 정보가 더 감소될 수 있고, 인코딩 효율이 개선될 수 있다.
본 출원의 일부 실시예들에서, M개의 블록 중에서 M개의 과도 상태 식별자에 의해 과도 상태 블록들로서 표시되는 블록들의 수량은 P이고, M개의 블록 중에서 M개의 과도 상태 식별자에 의해 비과도 상태 블록들로서 표시되는 블록들의 수량은 Q이고, M=P+Q이다. P 및 Q의 값들은 본 출원의 이 실시예에서 제한되지 않는다.
구체적으로, 인코딩될 스펙트럼에 대해 인트라-그룹 인터리빙이 수행되는 단계 D1은 다음 단계들을 포함한다.
D11: P개의 블록의 스펙트럼들을 인터리빙하여 P개의 블록의 인터리빙된 스펙트럼들을 획득한다.
D12: Q개의 블록의 스펙트럼들을 인터리빙하여 Q개의 블록의 인터리빙된 스펙트럼들을 획득한다.
P개의 블록의 스펙트럼들을 인터리빙하는 것은 P개의 블록의 스펙트럼들을 전체로서 인터리빙하는 것을 포함한다. 유사하게, Q개의 블록의 스펙트럼들을 인터리빙하는 것은 Q개의 블록의 스펙트럼들을 전체로서 인터리빙하는 것을 포함한다.
단계들 D11 및 D12가 수행될 때, M개의 블록의 인트라-그룹 인터리빙된 스펙트럼들이 인코딩 신경망을 사용하여 인코딩되는 단계 E1은:
인코딩 신경망을 사용하여 P개의 블록의 인터리빙된 스펙트럼들 및 Q개의 블록의 인터리빙된 스펙트럼들을 인코딩하는 단계를 포함한다.
D11 및 D12에서, 인코더 측은 과도 상태 그룹 및 비과도 상태 그룹에 기초하여 개별적으로 인터리빙을 수행하여, P개의 블록의 인터리빙된 스펙트럼들 및 Q개의 블록의 인터리빙된 스펙트럼들을 획득할 수 있다. P개의 블록의 인터리빙된 스펙트럼들 및 Q개의 블록의 인터리빙된 스펙트럼들은 인코딩 신경망의 입력 데이터로서 사용될 수 있다. 인트라-그룹 인터리빙을 통해, 인코딩 사이드 정보가 더 감소될 수 있고, 인코딩 효율이 개선될 수 있다.
본 출원의 일부 실시예들에서, 인코딩될 오디오 신호의 현재 프레임의 M개의 블록의 스펙트럼들에 기초하여 M개의 블록의 M개의 과도 상태 식별자가 획득되는 단계 301 전에, 인코더 측에서 수행되는 방법은 다음 단계들을 추가로 포함한다.
F1: 현재 프레임의 윈도우 타입을 획득하고, 여기서 윈도우 타입은 짧은 윈도우 타입 또는 짧지 않은 윈도우 타입이다.
F2: 윈도우 타입이 짧은 윈도우 타입일 때에만, 인코딩될 오디오 신호의 현재 프레임의 M개의 블록의 스펙트럼들에 기초하여, M개의 블록의 M개의 과도 상태 식별자를 획득하는 단계를 수행한다.
인코더 측이 301을 수행하기 전에, 인코더 측은 먼저 현재 프레임의 윈도우 타입을 결정할 수 있고, 여기서 윈도우 타입은 짧은 윈도우 타입 또는 짧지 않은 윈도우 타입일 수 있다. 예를 들어, 인코더 측은 인코딩될 오디오 신호의 현재 프레임에 기초하여 윈도우 타입을 결정한다. 짧은 윈도우는 짧은 프레임으로도 지칭될 수 있고, 짧지 않은 윈도우는 짧지 않은 프레임으로도 지칭될 수 있다. 윈도우 타입이 짧은 윈도우 타입일 때, 단계 301이 트리거되고 수행된다. 본 출원의 이 실시예에서, 전술한 인코딩 스킴은 현재 프레임의 윈도우 타입이 짧은 윈도우 타입일 때에만 실행되어, 오디오 신호가 과도 상태 신호일 때 인코딩을 구현할 수 있다.
본 출원의 일부 실시예들에서, 인코더 측이 단계들 F1 및 F2를 수행할 때, 인코더 측에서 수행되는 방법은 다음 단계들을 추가로 포함한다.
G1: 윈도우 타입을 인코딩하여 윈도우 타입의 인코딩 결과를 획득한다.
G2: 윈도우 타입의 인코딩 결과를 비트스트림에 기입한다.
현재 프레임의 윈도우 타입을 획득한 후에, 인코더 측은 비트스트림에서 윈도우 타입을 운반하고, 윈도우 타입을 먼저 인코딩할 수 있다. 윈도우 타입에 사용되는 인코딩 방식은 본 명세서에서 제한되지 않는다. 윈도우 타입이 인코딩되어, 윈도우 타입의 인코딩 결과가 획득될 수 있다. 윈도우 타입의 인코딩 결과는 비트스트림에 기입될 수 있어서, 비트스트림은 윈도우 타입의 인코딩 결과를 운반할 수 있다.
본 출원의 일부 실시예들에서, 인코딩될 오디오 신호의 현재 프레임의 M개의 블록의 스펙트럼들에 기초하여 M개의 블록의 M개의 과도 상태 식별자가 획득되는 단계 301은 다음 단계들을 포함한다.
H1: M개의 블록의 스펙트럼들에 기초하여 M개의 블록의 M개의 스펙트럼 에너지를 획득한다.
H2: M개의 스펙트럼 에너지에 기초하여 M개의 블록의 평균 스펙트럼 에너지 값을 획득한다.
H3: M개의 스펙트럼 에너지 및 평균 스펙트럼 에너지 값에 기초하여 M개의 블록의 M개의 과도 상태 식별자를 획득한다.
M개의 스펙트럼 에너지를 획득한 후에, 인코더 측은 M개의 스펙트럼 에너지를 평균하여 평균 스펙트럼 에너지 값을 획득하거나, 또는 M개의 스펙트럼 에너지로부터 최댓값 또는 수 개의 최댓값을 제거하고, 그 후 나머지 스펙트럼 에너지를 평균하여 평균 스펙트럼 에너지 값을 획득할 수 있다. M개의 스펙트럼 에너지 내의 각각의 블록의 스펙트럼 에너지를 평균 스펙트럼 에너지 값과 비교하여, M개의 블록 중 다른 블록의 스펙트럼과 비교된 각각의 블록의 스펙트럼의 변화를 결정하여, M개의 블록의 M개의 과도 상태 식별자를 추가로 획득한다. 하나의 블록의 과도 상태 식별자는 블록의 과도 상태 특징을 표시하기 위해 사용될 수 있다. 본 출원의 이 실시예에서, 각각의 블록의 과도 상태 식별자는 각각의 블록의 스펙트럼 에너지 및 평균 스펙트럼 에너지 값에 기초하여 결정될 수 있으며, 따라서 하나의 블록의 과도 상태 식별자는 블록의 그룹 정보를 결정할 수 있다.
또한, 본 출원의 일부 실시예들에서, 제1 블록의 스펙트럼 에너지가 평균 스펙트럼 에너지 값의 K배보다 클 때, 제1 블록의 과도 상태 식별자는 제1 블록이 과도 상태 블록인 것을 표시하거나; 또는
제1 블록의 스펙트럼 에너지가 평균 스펙트럼 에너지 값의 K배 이하일 때, 제1 블록의 과도 상태 식별자는 제1 블록이 비과도 상태 블록인 것을 표시한다.
K는 1 이상의 실수이다.
K는 복수의 값을 가지며, 이는 본 명세서에서 제한되지 않는다. M개의 블록 중 제1 블록의 과도 상태 식별자를 결정하는 프로세스가 예로서 사용된다. 제1 블록의 스펙트럼 에너지가 평균 스펙트럼 에너지 값의 K배보다 클 때, 이는 제1 블록의 스펙트럼이 M개의 블록 중 다른 블록에 비해 크게 변한다는 것을 표시한다. 이 경우, 제1 블록의 과도 상태 식별자는 제1 블록이 과도 상태 블록인 것을 표시한다. 제1 블록의 스펙트럼 에너지가 평균 스펙트럼 에너지 값의 K배 이하일 때, 이는 제1 블록의 스펙트럼이 M개의 블록 중 다른 블록에 비해 크게 변하지 않는다는 것을 표시하고, 제1 블록의 과도 상태 식별자는 제1 블록이 비과도 상태 블록이라는 것을 표시한다.
제한 없이, 인코더 측은 대안적으로 다른 방식들로 M개의 블록의 M개의 과도 상태 식별자를 획득하고, 예를 들어, 제1 블록의 스펙트럼 에너지와 평균 스펙트럼 에너지 값 사이의 차이 또는 비율 값을 획득하고, 획득된 차이 또는 비율 값에 기초하여 M개의 블록의 M개의 과도 상태 식별자를 결정할 수 있다.
전술한 실시예들에서의 인코더 측의 예의 설명들로부터, M개의 블록의 M개의 과도 상태 식별자는 인코딩될 오디오 신호의 현재 프레임의 M개의 블록의 스펙트럼들에 기초하여 획득된다는 것을 알 수 있다. M개의 블록의 그룹 정보가 M개의 과도 상태 식별자에 기초하여 획득된 후에, M개의 블록의 그룹 정보를 사용하여 현재 프레임 내의 M개의 블록의 스펙트럼들에 대해 그룹화 및 배열이 수행될 수 있다. 그룹화 및 배열이 M개의 블록의 스펙트럼들에 대해 수행되어, 현재 프레임 내의 M개의 블록의 스펙트럼들의 배열 시퀀스가 조정될 수 있다. 인코딩될 스펙트럼이 획득된 후에, 인코딩될 스펙트럼은 인코딩 신경망을 사용하여 인코딩됨으로써, 스펙트럼 인코딩 결과를 획득하고, 스펙트럼 인코딩 결과는 비트스트림에서 운반될 수 있다. 따라서, 본 출원의 이 실시예에서, 오디오 신호의 현재 프레임 내의 M개의 과도 상태 식별자에 기초하여 M개의 블록의 스펙트럼들에 대해 그룹화 및 배열이 수행될 수 있다. 이러한 방식으로, 상이한 과도 상태 식별자들을 갖는 블록들에 대해 그룹화 및 배열과 인코딩이 수행될 수 있고, 오디오 신호의 인코딩 품질이 개선될 수 있다.
본 출원의 실시예는 오디오 신호 디코딩 방법을 추가로 제공한다. 본 방법은 단말 디바이스에 의해 수행될 수 있다. 예를 들어, 단말 디바이스는 오디오 신호 디코딩 장치(이하, 디코더 측 또는 디코더라고 지칭되며, 여기서, 예를 들어, 디코더 측은 AI 디코더일 수 있음)일 수 있다. 도 4에 도시된 바와 같이, 본 출원의 이 실시예에서 디코더 측에서 수행되는 방법은 주로 다음 단계들을 포함한다.
401: 비트스트림으로부터 오디오 신호의 현재 프레임의 M개의 블록의 그룹 정보를 획득하고, 여기서 그룹 정보는 M개의 블록의 M개의 과도 상태 식별자를 표시한다.
디코더 측은 인코더 측에 의해 전송되는 비트스트림을 수신하고, 인코더 측은 그룹 정보 인코딩 결과를 비트스트림에 기입하고, 디코더 측은 비트스트림을 파싱하여 오디오 신호의 현재 프레임의 M개의 블록의 그룹 정보를 획득한다. 디코더 측은 M개의 블록의 그룹 정보에 기초하여 M개의 블록의 M개의 과도 상태 식별자를 결정할 수 있다. 예를 들어, 그룹 정보는 그룹 수량 및 그룹 플래그 정보를 포함할 수 있다. 다른 예로서, 그룹 정보는 그룹 플래그 정보를 포함할 수 있다. 세부사항들에 대해서는, 인코더 측의 전술한 실시예들의 설명을 참조한다.
402: 디코딩 신경망을 사용하여 비트스트림을 디코딩함으써, M개의 블록의 디코딩된 스펙트럼들을 획득한다.
비트스트림을 획득한 후에, 디코더 측은 디코딩 신경망을 사용하여 비트스트림을 디코딩함으로써 M개의 블록의 디코딩된 스펙트럼들을 획득한다. 인코더 측이 M개의 블록의 스펙트럼들에 대해 그룹화 및 배열을 수행하고 스펙트럼들을 인코딩하기 때문에, 인코더 측은 스펙트럼 인코딩 결과를 비트스트림에 운반한다. M개의 블록의 디코딩된 스펙트럼들은 인코더 측에서 M개의 블록의 그룹화 배열된 스펙트럼들에 대응하고, 인코더 측에서 디코딩 신경망 및 인코딩 신경망의 실행 프로세스들은 반대이다. M개의 블록의 재구성되고 그룹화 배열된 스펙트럼들은 디코딩을 통해 획득될 수 있다.
403: M개의 블록의 그룹 정보에 기초하여 M개의 블록의 디코딩된 스펙트럼들에 대해 역 그룹화 및 배열을 수행하여, M개의 블록의 역 그룹화 배열된 스펙트럼들을 획득한다.
디코더 측은 M개의 블록의 그룹 정보를 획득하고, 디코더 측은 비트스트림을 사용하여 M개의 블록의 디코딩된 스펙트럼들을 추가로 획득한다. 인코더 측이 M개의 블록의 스펙트럼들에 대해 그룹화 및 배열을 수행하기 때문에, 인코더 측에서의 것과 반대인 프로세스가 디코더 측에서 실행될 필요가 있다. 따라서, M개의 블록의 그룹 정보에 기초하여 M개의 블록의 디코딩된 스펙트럼들에 대해 역 그룹화 및 배열을 수행하여, M개의 블록의 역 그룹화 배열된 스펙트럼들을 획득하고, 여기서 역 그룹화 및 배열은 인코더 측에서의 그룹화 및 배열과 반대이다.
404: M개의 블록의 역 그룹화 배열된 스펙트럼들에 기초하여 현재 프레임의 재구성된 오디오 신호를 획득한다.
M개의 블록의 역 그룹화 배열된 스펙트럼들을 획득한 후에, 인코더 측은 M개의 블록의 역 그룹화 배열된 스펙트럼들에 대해 주파수 도메인으로부터 시간 도메인으로의 변환을 수행하여, 현재 프레임의 재구성된 오디오 신호를 획득할 수 있다.
본 출원의 일부 실시예들에서, M개의 블록의 그룹 정보에 기초하여 M개의 블록의 디코딩된 스펙트럼들에 대해 역 그룹화 및 배열이 수행되는 단계 403 전에, 디코더 측에서 수행되는 방법은 다음 단계를 추가로 포함한다.
I1: M개의 블록의 디코딩된 스펙트럼들에 대해 인트라-그룹 디-인터리빙을 수행하여, M개의 블록의 인트라-그룹 디-인터리빙된 스펙트럼들을 획득한다.
M개의 블록의 그룹 정보에 기초하여 M개의 블록의 디코딩된 스펙트럼들에 대해 역 그룹화 및 배열이 수행되는 단계 403은 다음 단계를 포함한다.
J1: M개의 블록의 그룹 정보에 기초하여 M개의 블록의 인트라-그룹 디-인터리빙된 스펙트럼들에 대해 역 그룹화 및 배열을 수행한다.
디코더 측에서 수행되는 인트라-그룹 디-인터리빙은 인코더 측에서 수행되는 인트라-그룹 인터리빙의 역 프로세스이다. 세부사항들은 본 명세서에서 다시 설명되지 않는다.
본 출원의 일부 실시예들에서, M개의 블록 중에서 M개의 과도 상태 식별자에 의해 과도 상태 블록들로서 표시되는 블록들의 수량은 P이고, M개의 블록 중에서 M개의 과도 상태 식별자에 의해 비과도 상태 블록들로서 표시되는 블록들의 수량은 Q이고, M=P+Q이다.
M개의 블록의 디코딩된 스펙트럼들에 대해 인트라-그룹 디-인터리빙이 수행되는 단계 I1은 다음 단계들을 포함한다.
I11: P개의 블록의 디코딩된 스펙트럼들을 디-인터리빙한다.
I12: Q개의 블록의 디코딩된 스펙트럼들을 디-인터리빙한다.
P개의 블록의 스펙트럼들을 디-인터리빙하는 것은 P개의 블록의 스펙트럼들을 전체로서 디-인터리빙하는 것을 포함한다. 유사하게, Q개의 블록의 스펙트럼들을 디-인터리빙하는 것은 Q개의 블록의 스펙트럼들을 전체로서 디-인터리빙하는 것을 포함한다.
인코더 측은 과도 상태 그룹 및 비과도 상태 그룹에 기초하여 개별적으로 인터리빙을 수행하여 P개의 블록의 인터리빙된 스펙트럼들 및 Q개의 블록의 인터리빙된 스펙트럼들을 획득할 수 있다. P개의 블록의 인터리빙된 스펙트럼들 및 Q개의 블록의 인터리빙된 스펙트럼들은 인코딩 신경망의 입력 데이터로서 사용될 수 있다. 인트라-그룹 인터리빙을 통해, 인코딩 사이드 정보가 더 감소될 수 있고, 인코딩 효율이 개선될 수 있다. 인트라-그룹 인터리빙이 인코더 측에서 수행되기 때문에, 대응하는 역 프로세스가 디코더 측에서 수행될 필요가 있는데, 즉, 디-인터리빙이 디코더 측에서 수행될 수 있다.
본 출원의 일부 실시예들에서, M개의 재구성되고 그룹화 배열된 블록 중에서 M개의 과도 상태 식별자에 의해 과도 블록들로서 표시되는 블록들의 수량은 P이고, M개의 블록 중에서 M개의 과도 상태 식별자에 의해 비과도 블록들로서 표시되는 블록들의 수량은 Q이며, M=P+Q이다.
M개의 블록의 그룹 정보에 기초하여 M개의 블록의 디코딩된 스펙트럼들에 대해 역 그룹화 및 배열이 수행되는 단계 403은 다음 단계들을 포함한다.
K1: M개의 블록의 그룹 정보에 기초하여 P개의 블록의 인덱스들을 획득한다.
K2: M개의 블록의 그룹 정보에 기초하여 Q개의 블록의 인덱스들을 획득한다.
K3: P개의 블록의 인덱스들 및 Q개의 블록의 인덱스들에 기초하여 M개의 블록의 디코딩된 스펙트럼들에 대해 역 그룹화 및 배열을 수행한다.
인코더 측이 M개의 블록의 스펙트럼들에 대해 그룹화 및 배열을 수행하기 전에, M개의 블록의 인덱스들은, 예를 들어, 0에서 M-1까지 연속적이다. 인코더 측이 그룹화 및 배열을 수행한 후에, M개의 블록의 인덱스들은 더 이상 연속적이지 않다. 디코더 측은, M개의 블록의 그룹 정보에 기초하여, 재구성되고 그룹화 배열된 M개의 블록 중 P개의 블록의 인덱스들 및 재구성되고 그룹화 배열된 M개의 블록 중 Q개의 블록의 인덱스들을 획득할 수 있다. 역 그룹화 및 배열 후에, 복구될 수 있는 M개의 블록의 인덱스들은 여전히 연속적이다.
본 출원의 일부 실시예들에서, 디코더 측에서 수행되는 방법은 다음 단계들을 추가로 포함한다.
L1: 비트스트림으로부터 현재 프레임의 윈도우 타입을 획득하고, 여기서 윈도우 타입은 짧은 윈도우 타입 또는 짧지 않은 윈도우 타입이다.
L2: 현재 프레임의 윈도우 타입이 짧은 윈도우 타입일 때에만, 비트스트림으로부터 현재 프레임의 M개의 블록의 그룹 정보를 획득하는 단계를 수행한다.
본 출원의 이 실시예에서, 전술한 인코딩 스킴은 현재 프레임의 윈도우 타입이 짧은 윈도우 타입일 때에만 실행되어, 오디오 신호가 과도 상태 신호일 때 인코딩을 구현할 수 있다. 디코더 측은 인코더 측에서의 프로세스와 반대의 프로세스를 수행한다. 따라서, 디코더 측은 대안적으로 먼저 현재 프레임의 윈도우 타입을 결정할 수 있고, 여기서 윈도우 타입은 짧은 윈도우 타입 또는 짧지 않은 윈도우 타입일 수 있다. 예를 들어, 디코더 측은 비트스트림으로부터 현재 프레임의 윈도우 타입을 획득한다. 짧은 윈도우는 짧은 프레임으로도 지칭될 수 있고, 짧지 않은 윈도우는 짧지 않은 프레임으로도 지칭될 수 있다. 윈도우 타입이 짧은 윈도우 타입일 때, 단계 401이 트리거되고 수행된다.
본 출원의 일부 실시예들에서, M개의 블록의 그룹 정보는 M개의 블록의 그룹 수량 또는 그룹 수량 식별자를 포함하고, 그룹 수량 식별자는 그룹 수량을 표시한다. 그룹 수량이 1보다 클 때, M개의 블록의 그룹 정보는 M개의 블록의 M개의 과도 상태 식별자를 추가로 포함하거나; 또는
M개의 블록의 그룹 정보는 M개의 블록의 M개의 과도 상태 식별자를 포함한다.
전술한 실시예를 디코더 측에 대한 예로서 사용하여 오디오 신호의 현재 프레임의 M개의 블록의 그룹 정보가 비트스트림으로부터 획득되고, 그룹 정보는 M개의 블록의 M개의 과도 상태 식별자를 표시한다는 것을 알 수 있다. 비트스트림은 디코딩 신경망을 사용하여 디코딩되어 M개의 블록의 디코딩된 스펙트럼을 획득한다. M개의 블록의 그룹 정보에 기초하여 M개의 블록의 디코딩된 스펙트럼들에 대해 역 그룹화 및 배열 처리를 수행하여, 역 그룹화 및 배열 처리가 수행되는 M개의 블록의 스펙트럼들을 획득한다. 현재 프레임의 재구성된 오디오 신호는 역 그룹화 및 배열 처리가 수행되는 M개의 블록의 스펙트럼들에 기초하여 획득된다. 비트스트림에 포함된 스펙트럼 인코딩 결과가 배열되고 그룹화되기 때문에, 비트스트림이 디코딩될 때 M개의 블록의 디코딩된 스펙트럼들이 획득될 수 있고, 그 후 역 그룹화 및 배열 처리가 수행되는 M개의 블록의 스펙트럼들이 획득되어, 현재 프레임의 재구성된 오디오 신호를 획득할 수 있다. 신호 재구성 동안, 오디오 신호 내의 상이한 과도 상태 식별자들을 갖는 블록들에 기초하여 역 그룹화 및 배열과 디코딩이 수행될 수 있으며, 따라서 오디오 신호 재구성 효과가 개선될 수 있다.
본 출원의 실시예에서의 전술한 해결책들을 더 잘 이해하고 구현하기 위해, 이하에서는 대응하는 응용 시나리오를 특정 설명을 위한 예로서 사용한다.
도 5는 본 출원의 실시예에 따른 방송 텔레비전 분야에 적용되는 시스템 아키텍처의 개략도이다. 본 출원의 이 실시예는 대안적으로 방송 텔레비전의 라이브 방송 시나리오 및 포스트-프로덕션 시나리오에 적용될 수 있거나, 또는 단말기의 미디어 재생에서의 3차원 사운드 코덱에 적용될 수 있다.
라이브 방송 시나리오에서, 라이브 프로그램의 3차원 사운드에 의해 생성된 3차원 사운드 신호는 본 출원의 이 실시예에서 3차원 사운드 인코딩을 사용하여 비트스트림을 획득하고, 방송 네트워크를 사용하여 사용자 측에 송신된다. 셋톱 박스 내의 3차원 사운드 디코더는 3차원 사운드 신호를 디코딩 및 재구성하고, 스피커 그룹은 3차원 사운드 신호를 재생한다. 포스트-프로덕션 시나리오에서, 포스트 프로그램의 3차원 사운드에 의해 생성된 3차원 사운드 신호는 본 출원의 이 실시예에서 3차원 사운드 인코딩을 사용하여 비트스트림을 획득하고, 방송 네트워크 또는 인터넷을 사용하여 사용자 측에 송신된다. 네트워크 수신기 또는 모바일 단말기 내의 3차원 사운드 디코더는 3차원 사운드 신호를 디코딩 및 재구성하고, 스피커 그룹 또는 헤드셋은 3차원 사운드 신호를 재생한다.
본 출원의 이 실시예는 오디오 코덱을 제공한다. 오디오 코덱은 구체적으로 코어 네트워크에서의 무선 액세스 네트워크, 미디어 게이트웨이, 트랜스코딩 디바이스, 미디어 리소스 서버 등, 모바일 단말기, 고정 네트워크 단말기 등을 포함할 수 있다. 이것은 또한 방송 TV, 단말 미디어 재생, 및 VR 스트리밍 서비스들에서의 오디오 코덱에 적용될 수 있다.
다음은 본 출원의 실시예들에서 인코더 측 및 디코더 측의 응용 시나리오들을 개별적으로 설명한다.
도 6에 도시된 바와 같이, 본 출원의 실시예에서 제공되는 인코더는 다음 단계들을 포함하는 다음의 오디오 신호 인코딩 방법을 수행하기 위해 적용된다.
S11: 현재 프레임의 윈도우 타입을 결정한다.
현재 프레임의 오디오 신호가 획득되고, 현재 프레임의 오디오 신호에 기초하여 현재 프레임의 윈도우 타입이 결정되고, 윈도우 타입이 비트스트림에 기입된다.
특정 구현은 다음의 3개의 단계를 포함한다.
(1) 인코딩될 오디오 신호에 대해 프레이밍을 수행하여 현재 프레임의 오디오 신호를 획득한다.
예를 들어, 현재 프레임의 프레임 길이가 L개의 샘플링 포인트이면, 현재 프레임의 오디오 신호는 L-포인트 시간 도메인 신호이다.
(2) 현재 프레임의 오디오 신호에 기초하여 과도 상태 검출을 수행하고, 현재 프레임의 과도 상태 정보를 결정한다.
복수의 과도 상태 검출 방법이 있으며, 이들은 본 출원의 이 실시예에서 제한되지 않는다. 현재 프레임의 과도 상태 정보는 현재 프레임이 과도 상태 신호의 식별자인지 여부, 현재 프레임의 과도 상태가 발생하는 위치, 및 과도 상태 정도를 표현하는 하나 이상의 파라미터를 포함할 수 있다. 과도 상태 정도는 과도 상태 에너지 레벨, 또는 인접한 비과도 상태 위치에서의 신호 에너지에 대한 과도 상태 발생 위치에서의 신호 에너지의 비율일 수 있다.
(3) 현재 프레임의 과도 상태 정보에 기초하여 현재 프레임의 윈도우 타입을 결정하고, 현재 프레임의 윈도우 타입을 인코딩하고, 인코딩 결과를 비트스트림에 기입한다.
현재 프레임의 과도 상태 정보가 현재 프레임이 과도 상태 신호인 것을 표현하는 경우, 현재 프레임의 윈도우 타입은 짧은 윈도우이다.
현재 프레임의 과도 상태 정보가 현재 프레임이 비과도 상태 신호인 것을 표현하는 경우, 현재 프레임의 윈도우 타입은 짧은 윈도우 이외의 윈도우 타입이다. 다른 윈도우 타입은 본 출원의 이 실시예에서 제한되지 않는다. 예를 들어, 다른 윈도우 타입은 긴 윈도우, 컷인 윈도우, 및 컷아웃 윈도우를 포함할 수 있다.
S12: 현재 프레임의 윈도우 타입이 짧은 윈도우이면, 현재 프레임의 오디오 신호에 대해 짧은 윈도우 윈도잉을 수행하고, 시간-주파수 변환을 수행하여 현재 프레임의 M개의 블록의 MDCT 스펙트럼들을 획득한다.
현재 프레임의 윈도우 타입이 짧은 윈도우이면, 현재 프레임의 오디오 신호에 대해 짧은 윈도우 윈도잉이 수행되고, 시간-주파수 변환이 수행되어, M개의 블록의 MDCT 스펙트럼을 획득한다.
예를 들어, 현재 프레임의 윈도우 타입이 짧은 윈도우이면, M개의 중첩된 짧은 윈도우 함수들을 사용하여 윈도잉이 수행되어 윈도잉 후의 M개의 블록의 오디오 신호들을 획득하고, 여기서 M은 2 이상의 양의 정수이다. 예를 들어, 짧은 윈도우 함수의 윈도우 길이는 2L/M이고, L은 현재 프레임의 프레임 길이이고, 중첩된 길이는 L/M이다. 예를 들어, M은 8과 동일하고, L은 1024와 동일하고, 짧은 윈도우 함수의 윈도우 길이는 256개의 샘플링 포인트이고, 중첩된 길이는 128개의 샘플링 포인트이다.
윈도잉 후에 M개의 블록의 오디오 신호들에 대해 시간-주파수 변환을 개별적으로 수행하여 현재 프레임의 M개의 블록의 MDCT 스펙트럼들을 획득한다.
예를 들어, 윈도잉 후의 현재 블록의 오디오 신호의 길이는 256개의 샘플링 포인트이고, MDCT 변환 후에, 128개의 MDCT 계수, 즉, 현재 블록의 MDCT 스펙트럼이 획득된다.
S13: M개의 블록의 MDCT 스펙트럼에 기초하여 현재 프레임의 그룹 수량 및 그룹 플래그 정보를 획득하고, 현재 프레임의 그룹 수량 및 그룹 플래그 정보를 인코딩하고, 인코딩 결과를 비트스트림에 기입한다.
단계 S13에서 현재 프레임의 그룹 수량 및 그룹 플래그 정보가 획득되기 전에, 구현에서, 인터리빙 처리가 M개의 블록의 MDCT 스펙트럼들에 대해 먼저 수행되어 M개의 블록의 인터리빙된 MDCT 스펙트럼을 획득한다. 다음으로, M개의 블록의 인터리빙된 MDCT 스펙트럼들에 대해 인코딩 전처리 동작을 수행하여 전처리된 MDCT 스펙트럼을 획득한다. 그 후, 전처리된 MDCT 스펙트럼에 대해 디-인터리빙을 수행하여, 디-인터리빙 처리가 수행되는 M개의 블록의 MDCT 스펙트럼들을 획득한다. 최종적으로, 디-인터리빙 처리가 수행되는 M개의 블록의 MDCT 스펙트럼들에 기초하여 현재 프레임의 그룹 수량 및 그룹 플래그 정보가 결정된다.
M개의 블록의 MDCT 스펙트럼들에 대해 인터리빙을 수행하는 것은 길이들이 L/M인 M개의 MDCT 스펙트럼들을 길이들이 L인 MDCT 스펙트럼들로 인터리빙하는 것이다. M개의 블록의 MDCT 스펙트럼들에서 주파수 빈 위치들이 i인 M개의 스펙트럼 계수는 M개의 블록이 위치되는 블록들의 시퀀스 번호들에 따라 0 내지 M-1의 시퀀스로 함께 배열된다. 그 후, M개의 블록의 MDCT 스펙트럼들에서 주파수 빈 위치들이 i+1인 M개의 스펙트럼 계수는 M개의 블록이 위치하는 블록들의 시퀀스 번호들에 따라 0 내지 M-1의 시퀀스로 함께 배열되고, i의 값은 0 내지 L/M-1이다.
인코딩 전처리 동작은 주파수 도메인 잡음 성형(frequency domain noise shaping, FDNS), 시간적 잡음 성형(temporal noise shaping, TNS), 및 대역폭 확장(bandwidth extension, BWE)과 같은 처리를 포함할 수 있으며, 이는 본 명세서에서 제한되지 않는다.
디-인터리빙 처리는 인터리빙 처리의 역 프로세스이다. 전처리된 MDCT 스펙트럼의 길이는 L이고, L의 길이를 갖는 전처리된 MDCT 스펙트럼은 L/M의 길이를 갖는 M개의 MDCT 스펙트럼으로 분할되고, 각각의 블록 내의 MDCT 스펙트럼들은 주파수 빈들의 오름차순으로 배열된다. 디-인터리빙 처리가 수행되는 M개의 블록의 MDCT 스펙트럼들이 획득될 수 있다. 인터리빙된 스펙트럼에 대한 전처리는 인코딩 사이드 정보를 감소시키고, 사이드 정보의 비트 점유를 감소시키고, 인코딩 효율을 개선할 수 있다.
디-인터리빙 처리가 수행되는 M개의 블록의 MDCT 스펙트럼들에 기초하여 현재 프레임의 그룹 수량 및 그룹 플래그 정보가 결정된다. 특정 방법은 다음의 3개의 단계를 포함한다.
(a) M개의 블록의 MDCT 스펙트럼 에너지를 계산한다.
디-인터리빙 처리 후의 M개의 블록의 MDCT 스펙트럼 계수들은 mdctSpectrum[8][128]이고, 각각의 블록의 MDCT 스펙트럼 에너지가 계산되고 enerMdct[8]로 표기된다고 가정한다. 8은 M의 값이고, 128은 블록 내의 MDCT 계수들의 수량을 표시한다.
(b) M개의 블록의 MDCT 스펙트럼 에너지에 기초하여 MDCT 스펙트럼 에너지의 평균값을 계산한다. 다음의 두 가지 방법이 포함된다.
방법 1: M개의 블록의 MDCT 스펙트럼 에너지의 평균값, 즉 enerMdct[8]의 평균값을 직접 계산하고, 평균값을 MDCT 스펙트럼 에너지의 평균값 avgEner로서 사용한다.
방법 2: M개의 블록 중에서 최대 MDCT 스펙트럼 에너지를 갖는 블록을 결정하고, 가장 큰 에너지를 갖는 하나의 블록을 제외한 M-1개의 블록의 MDCT 스펙트럼 에너지의 평균값을 계산하여 MDCT 스펙트럼 에너지의 평균값 avgEner로서 계산한다. 대안적으로, 최대 에너지를 갖는 수 개의 블록을 제외한 다른 블록들의 MDCT 스펙트럼 에너지의 평균값이 계산되고, MDCT 스펙트럼 에너지의 평균값 avgEner로서 사용된다.
(c) M개의 블록의 MDCT 스펙트럼 에너지의 평균값 및 MDCT 스펙트럼 에너지에 기초하여 현재 프레임의 그룹 수량 및 그룹 플래그 정보를 결정하고, 현재 프레임의 그룹 수량 및 그룹 플래그 정보를 비트스트림에 기입한다.
구체적으로, 각각의 블록의 MDCT 스펙트럼 에너지는 MDCT 스펙트럼 에너지의 평균값과 비교된다. 현재 블록의 MDCT 스펙트럼 에너지가 MDCT 스펙트럼 에너지의 평균값의 K배보다 큰 경우, 현재 블록은 과도 상태 블록이고, 현재 블록의 과도 상태 식별자는 0이다. 그렇지 않으면, 현재 블록은 비과도 상태 블록이고, 현재 블록의 비과도 상태 식별자는 1이다. K는 1 이상이며, 예를 들어, K=2이다. M개의 블록은 블록들의 과도 상태 식별자들에 기초하여 그룹화되고, 그룹 수량 및 그룹 플래그 정보가 결정된다. 동일한 과도 상태 식별자 값을 갖는 것들이 그룹을 형성하고, M개의 블록은 N개의 그룹으로 분할되고, N은 그룹 수량이다. 그룹 플래그 정보는 M개의 블록 각각의 과도 상태 식별자 값에 의해 형성되는 정보이다.
예를 들어, 과도 상태 블록은 과도 상태 그룹을 형성하고, 비과도 상태 블록은 비과도 상태 그룹을 형성한다. 구체적으로, 블록들의 과도 상태 식별자들이 완전히 동일하지 않은 경우, 현재 프레임의 그룹 수량 numGroups는 2이고, 그렇지 않은 경우, 그룹 수량은 1이다. 그룹 수량은 그룹 수량 식별자에 의해 표현될 수 있다. 예를 들어, 그룹 수량 식별자가 1인 경우, 이것은 현재 프레임의 그룹 수량이 2인 것을 표시한다. 그룹 수량 식별자가 0인 경우, 이것은 현재 프레임의 그룹 수량이 1이라는 것을 표시한다. 현재 프레임의 그룹 플래그 정보 groupIndicator는 M개의 블록의 과도 상태 식별자들에 기초하여 결정된다. 예를 들어, M개의 블록의 과도 상태 식별자들은 순차적으로 배열되어 현재 프레임의 그룹 플래그 정보 groupIndicator를 형성한다.
단계 S13에서 그룹 수량 및 그룹 플래그 정보를 획득하기 전에, 다른 구현은: M개의 블록의 MDCT 스펙트럼들에 대해 인터리빙 처리 및 디-인터리빙 처리를 수행하지 않고, M개의 블록의 MDCT 스펙트럼들에 기초하여 현재 프레임의 그룹 수량 및 그룹 플래그 정보를 직접 결정하는 것; 현재 프레임의 그룹 수량 및 그룹 플래그 정보를 인코딩하고, 인코딩 결과를 비트스트림에 기입하는 것이다.
M개의 블록의 MDCT 스펙트럼들에 기초하여 현재 프레임의 그룹 수량 및 그룹 플래그 정보를 결정하는 것은 디-인터리빙 후의 M개의 블록의 MDCT 스펙트럼들에 기초하여 현재 프레임의 그룹 수량 및 그룹 플래그 정보를 결정하는 것과 유사하다. 세부사항들은 본 명세서에서 다시 설명되지 않는다.
현재 프레임의 그룹 수량 및 그룹 플래그 정보가 비트스트림에 기입된다.
또한, 비과도 상태 그룹은 2개 이상의 다른 그룹으로 더 분할될 수 있다. 이것은 본 출원의 이 실시예에서 제한되지 않는다. 예를 들어, 비과도 상태 그룹은 고조파 그룹과 비-고조파 그룹으로 분할될 수 있다.
S14: 현재 프레임의 그룹 수량 및 그룹 플래그 정보에 기초하여 M개의 블록의 MDCT 스펙트럼들에 대해 그룹화 및 배열을 수행하여, 그룹화 배열된 MDCT 스펙트럼들을 획득한다. 그룹화 배열된 MDCT 스펙트럼들은 현재 프레임의 인코딩될 스펙트럼들이다.
현재 프레임의 그룹 수량이 2이면, 현재 프레임의 M개의 블록의 오디오 신호 스펙트럼들이 그룹화되고 배열될 필요가 있다. 배열 방식은 다음과 같다: M개의 블록에서, 과도 상태 그룹에 속하는 수 개의 블록이 전방으로 조정되고, 비과도 상태 그룹에 속하는 수 개의 블록이 후방으로 조정된다. 인코더의 인코딩 신경망은 전방에 배열된 스펙트럼에 대해 더 나은 인코딩 효과를 갖는다. 따라서, 과도 상태 블록을 전방으로 조정하는 것은 과도 상태 블록의 인코딩 효과를 보장할 수 있다. 이것은 더 많은 과도 상태 블록들의 스펙트럼 세부사항들을 유지하고, 인코딩 품질을 개선한다.
현재 프레임의 M개의 블록의 MDCT 스펙트럼들은 현재 프레임의 그룹 수량 및 그룹 플래그 정보에 기초하여 그룹화되고 배열되거나, 또는 디-인터리빙 후의 현재 프레임의 M개의 블록의 MDCT 스펙트럼들은 현재 프레임의 그룹 수량 및 그룹 플래그 정보에 기초하여 그룹화되고 배열될 수 있다.
S15: 인코딩 신경망을 사용하여 그룹화 배열된 MDCT 스펙트럼들을 인코딩하고, MDCT 스펙트럼들을 비트스트림에 기입한다.
그룹화 및 배열 후에 MDCT 스펙트럼에 대해 인트라-그룹 인터리빙 처리를 먼저 수행하여 인트라-그룹 인터리빙된 MDCT 스펙트럼을 획득한다. 그 후, 인코딩 신경망은 인트라-그룹 인터리빙된 MDCT 스펙트럼을 인코딩하기 위해 사용된다. 인트라-그룹 인터리빙 처리는, 인터리빙된 객체가 동일한 그룹에 속하는 MDCT 스펙트럼들인 것을 제외하고는, 그룹 수량 및 그룹 플래그 정보가 획득되기 전에 M개의 블록의 MDCT 스펙트럼들에 대해 수행되는 인터리빙 처리와 유사하다. 예를 들어, 인터리빙 처리는 과도 상태 그룹에 속하는 MDCT 스펙트럼 블록에 대해 수행된다. 인터리빙 처리는 비과도 상태 그룹에 속하는 MDCT 스펙트럼 블록에 대해 수행된다.
인코딩 신경망 처리는 사전 훈련된다. 인코딩 신경망의 특정 네트워크 구조 및 훈련 방법은 본 출원의 이 실시예에서 제한되지 않는다. 예를 들어, 인코딩 신경망은 완전히 접속된 네트워크 또는 컨볼루션 신경망(convolutional neural network, CNN)을 선택할 수 있다.
도 7에 도시된 바와 같이, 인코더 측에 대응하는 디코딩 프로세스는 다음 단계들을 포함한다.
S21: 수신된 비트스트림을 디코딩하여 현재 프레임의 윈도우 타입을 획득한다.
S22: 현재 프레임의 윈도우 타입이 짧은 윈도우이면, 수신된 비트스트림을 디코딩하여 그룹 수량 및 그룹 플래그 정보를 획득한다.
비트스트림에서의 그룹 수량 식별 정보가 파싱될 수 있고, 현재 프레임의 그룹 수량은 그룹 수량 식별 정보에 기초하여 결정될 수 있다. 예를 들어, 그룹 수량 식별자가 1인 경우, 이것은 현재 프레임의 그룹 수량이 2인 것을 표시한다. 그룹 수량 식별자가 0인 경우, 이것은 현재 프레임의 그룹 수량이 1이라는 것을 표시한다.
현재 프레임의 그룹 수량이 1보다 크면, 수신된 비트스트림이 디코딩되어 그룹 플래그 정보를 획득할 수 있다.
수신된 비트스트림을 디코딩하여 그룹 플래그 정보를 획득하는 것은: 비트스트림으로부터 M 비트의 그룹 플래그 정보를 판독하는 것일 수 있다. i번째 블록이 과도 상태 블록인지는 그룹 플래그 정보에서의 i번째 비트의 값에 기초하여 결정될 수 있다. i번째 비트의 값이 0인 경우, 이는 i번째 블록이 과도 상태 블록인 것을 표시하고; i번째 비트의 값이 1인 경우, 이는 i번째 블록이 비과도 상태 블록인 것을 표시한다.
S23: 수신된 비트스트림을 디코딩 신경망을 사용하여 디코딩함으로써 디코딩된 MDCT 스펙트럼을 획득한다.
디코더 측에서의 디코딩 프로세스는 인코더 측에서의 인코딩 프로세스에 대응한다. 단계들은 다음과 같다.
먼저, 수신된 비트스트림이 디코딩되고, 디코딩 신경망이 사용되어 디코딩된 MDCT 스펙트럼을 획득한다.
그 후, 그룹 수량 및 그룹 플래그 정보에 기초하여, 동일한 그룹에 속하는 디코딩된 MDCT 스펙트럼들이 결정될 수 있다. 인트라-그룹 디-인터리빙 처리가 수행되는 MDCT 스펙트럼들을 획득하기 위해, 동일한 그룹에 속하는 MDCT 스펙트럼들에 대해 인트라-그룹 디-인터리빙 처리가 수행된다. 인트라-그룹 디-인터리빙 처리 프로세스는 인코더 측이 그룹 수량 및 그룹 플래그 정보를 획득하기 전에 인터리빙 처리를 통해 M개의 블록의 MDCT 스펙트럼들에 대해 수행되는 디-인터리빙 처리와 동일하다.
S24: 그룹 수량 및 그룹 플래그 정보에 기초하여 인트라-그룹 디-인터리빙된 MDCT 스펙트럼에 대해 역 그룹화 및 배열을 수행하여, 역 그룹화 배열된 MDCT 스펙트럼을 획득한다.
현재 프레임의 그룹 수량이 1보다 크면, 그룹 플래그 정보에 기초하여 인트라-그룹 디-인터리빙 처리를 통해 MDCT 스펙트럼에 대해 역 그룹 배열 처리가 수행될 필요가 있다. 디코더 측에서의 역 그룹 배열 처리는 인코더 측에서의 그룹 배열 처리의 역 프로세스이다.
예를 들어, 인트라-그룹 디-인터리빙 처리를 통한 MDCT 스펙트럼이 L/M 포인트를 갖는 M개의 MDCT 스펙트럼 블록에 의해 형성된다고 가정된다. i번째 과도 상태 블록의 블록 인덱스 idx0(i)은 그룹 플래그 정보에 기초하여 결정되고; 인트라-그룹 디-인터리빙 처리를 통한 MDCT 스펙트럼 내의 i번째 블록의 MDCT 스펙트럼은 역 그룹화 및 배열 처리를 통한 MDCT 스펙트럼에서 idx0(i)번째 블록의 MDCT 스펙트럼이다. i번째 과도 상태 블록의 블록 인덱스 idx0(i)은 그룹 플래그 정보에서 i번째 플래그 값이 0인 블록에 대응하는 블록 인덱스이고, i는 0부터 시작한다. 과도 상태 블록들의 수량은 그룹 플래그 정보에서 플래그 값이 0인 비트들의 수량이고, num0으로서 표기된다. 과도 상태 블록을 처리한 후에, 비과도 상태 블록은 처리될 필요가 있다. j번째 비과도 상태 블록의 블록 인덱스 idx1(j)은 그룹 플래그 정보에 기초하여 결정되고; 인트라-그룹 디-인터리빙 처리를 통한 MDCT 스펙트럼 내의 (num0+j)번째 블록의 MDCT 스펙트럼은 역 그룹화 및 배열 처리를 통한 MDCT 스펙트럼 내의 idx1(j)번째 블록의 MDCT 스펙트럼으로서 결정된다. j번째 비과도 상태 블록의 블록 인덱스 idx1(j)은 그룹 플래그 정보에서 j번째 플래그 값이 1인 블록에 대응하는 블록 인덱스이고, j는 0부터 시작한다.
S25: 역 그룹화 배열된 MDCT 스펙트럼에 기초하여 현재 프레임의 재구성된 오디오 신호를 획득한다.
재구성된 오디오 신호는 역 그룹화 및 배열 처리를 통해 MDCT 스펙트럼에 기초하여 획득되며, 여기서 특정 구현은 다음과 같다: 먼저, 역 그룹화 및 배열 처리를 통해 M개의 블록의 MDCT 스펙트럼들에 대해 인터리빙을 수행하여, M 블록의 인터리빙된 MDCT 스펙트럼을 획득하고; 다음으로, 디코더 측에서의 후처리가 M개의 블록의 인터리빙된 MDCT 스펙트럼들에 대해 수행된다. 예를 들어, 디코더 측에서의 후처리는 역 TNS, 역 FDNS, BWE 처리 등을 포함할 수 있다. 디코더 측에서의 후처리는 디코더 측에서의 후처리 후에 MDCT 스펙트럼을 획득하기 위해, 인코더 측에서의 인코딩 전처리 방식과 일대일 대응관계에 있다. 그 후, 디코더 측에서의 후처리 후에 MDCT 스펙트럼에 대해 디-인터리빙 처리를 수행하여, 디-인터리빙 처리를 통해 M개의 블록의 MDCT 스펙트럼들을 획득한다. 최종적으로, 디-인터리빙을 통해 M개의 블록의 MDCT 스펙트럼들에 대해 주파수 도메인 대 시간 도메인 변환이 수행되고, 재구성된 오디오 신호를 획득하기 위해 디-윈도잉 및 중첩된 가산 처리가 수행된다.
역 그룹화 및 배열 처리를 통해 MDCT 스펙트럼에 기초하여 재구성된 오디오 신호를 획득하는 다른 특정 구현은: M개의 블록의 MDCT 스펙트럼들에 대해 각각 주파수 도메인 대 시간 도메인 변환을 수행하고, 재구성된 오디오 신호를 획득하기 위해 디-윈도잉 및 중첩된 가산 처리를 수행하는 것이다.
도 8a 및 도 8b에 도시된 바와 같이, 인코더 측에서 수행되는 오디오 신호 인코딩 방법은 다음 단계들을 포함한다.
S31: 입력 신호를 프레임화하여 현재 프레임의 입력 신호를 획득한다.
예를 들어, 프레임 길이가 1024이면, 현재 프레임의 입력 신호는 1024-포인트 오디오 신호이다.
S32: 현재 프레임의 획득된 입력 신호에 기초하여 과도 상태 검출을 수행하여, 과도 상태 검출 결과를 획득한다.
예를 들어, 현재 프레임의 입력 신호는 L개의 블록으로 분할되고, 각각의 블록에서의 신호 에너지가 계산된다. 이웃 블록에서의 신호 에너지가 갑자기 변하면, 현재 프레임은 과도 상태 신호로서 고려된다. 예를 들어, L은 2보다 큰 양의 정수이고, L=8일 수 있다. 이웃 블록들에서의 신호 에너지 사이의 차이가 미리 설정된 임계값보다 크면, 현재 프레임은 비과도 상태 신호로서 고려된다.
S33: 과도 상태 검출 결과에 기초하여 현재 프레임의 윈도우 타입을 결정한다.
현재 프레임의 과도 상태 검출 결과가 과도 상태 신호이면, 현재 프레임의 윈도우 타입은 짧은 윈도우이고; 그렇지 않으면, 현재 프레임의 윈도우 타입은 긴 윈도우이다.
짧은 윈도우 및 긴 윈도우 이외에, 컷인 윈도우 및 컷아웃 윈도우가 대안적으로 현재 프레임의 윈도우 타입에 추가될 수 있다. 현재 프레임의 프레임 시퀀스 번호는 i이고, 현재 프레임의 윈도우 타입은 i-1 프레임 및 i-2 프레임의 과도 상태 검출 결과들 및 현재 프레임의 과도 상태 검출 결과에 기초하여 결정된다고 가정된다.
i번째 프레임, (i-1)번째 프레임, 및 (i-2)번째 프레임의 과도 상태 검출 결과들이 모두 비과도 상태 신호들이면, i번째 프레임의 윈도우 타입은 긴 윈도우이다.
i번째 프레임의 과도 상태 검출 결과가 과도 상태 신호이고, (i-1)번째 프레임 및 (i-2)번째 프레임의 과도 상태 검출 결과들이 비과도 상태 신호들이면, i번째 프레임의 윈도우 타입은 컷인 윈도우이다.
i번째 프레임 및 (i-1)번째 프레임의 과도 상태 검출 결과들이 비과도 상태 신호들이고, (i-2)번째 프레임의 과도 상태 검출 결과가 과도 상태 신호이면, i번째 프레임의 윈도우 타입은 컷아웃 윈도우이다.
i번째 프레임, (i-1)번째 프레임, 및 (i-2)번째 프레임의 과도 상태 검출 결과들이 전술한 3가지 경우 이외의 다른 경우들이면, i번째 프레임의 윈도우 타입은 짧은 윈도우이다.
S34: 현재 프레임의 MDCT 스펙트럼을 획득하기 위해 현재 프레임의 윈도우 타입에 기초하여 윈도잉 및 시간-주파수 변환을 수행한다.
긴 윈도우, 컷인 윈도우, 컷아웃 윈도우, 및 짧은 윈도우 타입들에 기초하여, 윈도잉 및 MDCT 변환이 개별적으로 수행된다. 긴 윈도우, 컷인 윈도우 및 컷아웃 윈도우의 경우, 윈도잉 후의 신호 길이가 2048인 경우, 1024개의 MDCT 계수가 획득된다. 짧은 윈도우의 경우, 256의 길이를 갖는 8개의 중첩된 짧은 윈도우가 추가되고, 각각의 짧은 윈도우에 대해 128개의 MDCT 계수가 획득된다. 각각의 짧은 윈도우의 128-포인트 MDCT 계수들은 블록이라고 불리며, 총 1024개의 MDCT 계수가 있다.
현재 프레임의 윈도우 타입이 짧은 윈도우인지가 결정된다. 현재 프레임의 윈도우 타입이 짧은 윈도우이면, 다음 단계 S35가 수행되거나; 또는 현재 프레임의 윈도우 타입이 짧은 윈도우가 아니면, 다음 단계 S312가 수행된다.
S35: 현재 프레임의 윈도우 타입이 짧은 윈도우인 경우, 인터리빙된 MDCT 스펙트럼을 획득하기 위해 현재 프레임의 MDCT 스펙트럼을 인터리빙한다.
현재 프레임의 윈도우 타입이 짧은 윈도우인 경우, 인터리빙 처리가 8개의 블록의 MDCT 스펙트럼들에 대해 수행되는데, 즉 8개의 128차원 MDCT 스펙트럼들이 1024의 길이를 갖는 MDCT 스펙트럼으로 인터리빙된다.
인터리빙된 스펙트럼 형태는: 블록 0 빈 0, 블록 1 빈 0, 블록 2 빈 0, ..., 블록 7 빈 0, 블록 0 빈 1, 블록 1 빈 1, 블록 2 빈 1, ..., 블록 7 빈 1, ...일 수 있다.
블록 0 빈 0은 0번째 블록의 0번째 주파수를 표시한다.
S36: 인터리빙된 MDCT 스펙트럼에 대해 인코딩 전처리를 수행하여 전처리된 MDCT 스펙트럼을 획득한다.
전처리는 FDNS, TNS, 및 BWE와 같은 처리를 포함할 수 있다.
S37: 전처리된 MDCT 스펙트럼을 디-인터리빙하여 M개의 블록의 MDCT 스펙트럼들을 획득한다.
디-인터리빙은 단계 S35와 반대 방식으로 수행되어 8개 블록의 MDCT 스펙트럼들을 획득하며, 여기서 각각의 블록은 128 포인트이다.
S38: M개의 블록의 MDCT 스펙트럼들에 기초하여 그룹 정보를 결정한다.
정보는 그룹 수량 numGroups 및 그룹 플래그 정보 groupIndicator를 포함할 수 있다. M개의 블록의 MDCT 스펙트럼들에 기초하여 그룹 정보를 결정하기 위한 특정 해결책은 인코더 측에서 수행되는 단계 S13 중 어느 하나일 수 있다. 예를 들어, 짧은 프레임 내의 8개의 블록의 MDCT 스펙트럼 계수들이 mdctSpectrum[8][128]이면, 각각의 블록의 MDCT 스펙트럼 에너지가 계산되고 enerMdct[8]로서 표기된다. 8개 블록의 MDCT 스펙트럼 에너지의 평균값이 계산되고 avgEner로 표기된다. 본 명세서에서, MDCT 스펙트럼 에너지의 평균값을 계산하기 위한 두 가지 방법이 있다.
방법 1: 8개 블록의 MDCT 스펙트럼 에너지의 평균값, 즉 enerMdct[8]의 평균값을 직접 계산한다.
방법 2: 8개의 블록 중에서 가장 큰 에너지를 갖는 블록이 평균값의 계산에 미치는 영향을 감소시키기 위해, 최대 블록 에너지가 제거될 수 있고, 그 후 평균값이 계산된다.
각각의 블록의 MDCT 스펙트럼 에너지는 평균 에너지와 비교된다. MDCT 스펙트럼 에너지가 평균 에너지의 수 배보다 크면, 현재 블록은 과도 상태 블록(0으로 표기됨)으로 고려되고; 그렇지 않으면, 현재 블록은 비과도 상태 블록(1로 표기됨)으로 고려된다. 모든 과도 상태 블록은 과도 상태 그룹을 형성한다. 모든 비과도 상태 블록은 비과도 상태 그룹을 형성한다.
예를 들어, 현재 프레임의 윈도우 타입이 짧은 윈도우이면, 사전에 결정함으로써 획득되는 그룹 정보는 하기와 같을 수 있다:
그룹 수량 numGroups: 2.
블록 인덱스: 0 1 2 3 4 5 6 7.
그룹 플래그 정보 groupIndicator: 1 1 1 0 0 0 0 1.
그룹 수량 및 그룹 플래그 정보는 비트스트림에 기입되고 디코더 측에 송신될 필요가 있다.
S39: 그룹 정보에 기초하여 M개의 블록의 MDCT 스펙트럼들에 대해 그룹화 및 배열을 수행하여, 그룹화 배열된 MDCT 스펙트럼들을 획득한다.
그룹 정보에 기초하여 M개의 블록의 MDCT 스펙트럼들을 그룹화하고 배열하기 위한 특정 해결책은 인코더 측에서 수행되는 단계 S14 중 어느 하나일 수 있다.
예를 들어, 짧은 프레임의 8개의 블록 중에서, 과도 상태 그룹에 속하는 수개의 블록이 전방에 배치되고, 다른 그룹들에 속하는 수개의 블록이 후방에 배치된다.
예를 들어, 단계 S38에서의 예가 여전히 사용된다. 그룹 정보가:
블록 인덱스: 0 1 2 3 4 5 6 7, 및
그룹 플래그 정보 groupIndicator: 1 1 1 0 0 0 0 1인 경우,
스펙트럼 배열 후의 스펙트럼 형태는 다음과 같다:
블록 인덱스: 3 4 5 6 0 1 2 7.
구체적으로, 배열 후의 0번째 블록의 스펙트럼은 배열 전의 3번째 블록의 스펙트럼이고, 배열 후의 1번째 블록의 스펙트럼은 배열 전의 4번째 블록의 스펙트럼이고, 배열 후의 2번째 블록의 스펙트럼은 배열 전의 5번째 블록의 스펙트럼이다. 배열 후의 3번째 블록의 스펙트럼은 배열 전의 6번째 블록의 스펙트럼이고, 배열 후의 4번째 블록의 스펙트럼은 배열 전의 0번째 블록의 스펙트럼이고, 배열 후의 5번째 블록의 스펙트럼은 배열 전의 1번째 블록의 스펙트럼이다. 배열 후의 6번째 블록의 스펙트럼은 배열 전의 2번째 블록의 스펙트럼이고, 배열 후의 7번째 블록의 스펙트럼은 배열 전의 7번째 블록의 스펙트럼이다.
S310: 그룹화 배열된 MDCT 스펙트럼들에 대해 인트라-그룹 스펙트럼 인터리빙을 수행하여, 인트라-그룹 인터리빙된 MDCT 스펙트럼들을 획득한다.
그룹화 및 배열 후에 MDCT 스펙트럼에 의해 각각의 그룹에 대해 인트라-그룹 인터리빙 처리가 수행된다. 인터리빙 처리가 동일한 그룹에 속하는 MDCT 스펙트럼들을 처리하는 것으로 제한되는 것을 제외하고는, 처리 방식은 단계 S35와 유사하다.
전술한 예를 여전히 예로서 사용하여, 배열된 스펙트럼들에서, 과도 상태 그룹(배열 전의 3번째, 4번째, 5번째, 및 6번째 블록들, 즉, 배열 후의 0번째, 1번째, 2번째, 및 3번째 블록들)에 대해 인터리빙이 수행된다. 인터리빙은 다른 그룹들(배열 전의 0번째, 1번째, 2번째, 및 7번째 블록들, 즉 배열 후의 4번째, 5번째, 6번째, 및 7번째 블록들)에 대해 수행된다.
S311: 인코딩 신경망을 사용하여 인트라-그룹 인터리빙된 MDCT 스펙트럼을 인코딩한다.
인코딩 신경망을 사용하여 인트라-그룹 인터리빙된 MDCT 스펙트럼을 인코딩하기 위한 특정 방법은 본 출원의 이 실시예에서 제한되지 않는다. 예를 들어, 인트라-그룹 인터리빙된 MDCT 스펙트럼은 인코딩 신경망을 사용하여 처리됨으로써 잠재 변수(latent variable)를 생성한다. 잠재 변수를 양자화하여 양자화된 잠재 변수를 획득한다. 양자화된 잠재 변수에 대해 산술 인코딩이 수행되고, 산술 인코딩 결과가 비트스트림에 기입된다.
S312: 현재 프레임이 짧은 프레임이 아니면, 다른 타입의 프레임에 대응하는 인코딩 방법에 따라 현재 프레임의 MDCT 스펙트럼을 인코딩한다.
다른 타입의 프레임의 인코딩을 위해, 그룹화, 배열, 및 인트라-그룹 인터리빙 처리가 수행되지 않을 수 있다. 예를 들어, 단계 S34에서 획득된 현재 프레임의 MDCT 스펙트럼은 인코딩 신경망을 사용하여 직접 인코딩된다.
예를 들어, 윈도우 타입에 대응하는 윈도우 함수가 결정되고, 현재 프레임의 오디오 신호에 대해 윈도잉 처리가 수행되어, 윈도잉 처리 후에 획득되는 신호를 획득한다. 인접 프레임들의 윈도우들이 중첩될 때, 현재 프레임의 MDCT 스펙트럼을 획득하기 위해, 윈도잉 처리, 예를 들어, MDCT 변환 후에 신호에 대해 시간-주파수 포지티브 변환이 수행되고; 현재 프레임의 MDCT 스펙트럼이 인코딩된다.
도 9a 및 도 9b에 도시된 바와 같이, 디코더 측에서 수행되는 오디오 신호 디코딩 방법은 다음 단계들을 포함한다.
S41: 수신된 비트스트림을 디코딩하여 현재 프레임의 윈도우 타입을 획득한다.
현재 프레임의 윈도우 타입이 짧은 윈도우인지가 결정된다. 현재 프레임의 윈도우 타입이 짧은 윈도우이면, 다음 단계 S42가 수행되거나; 또는 현재 프레임의 윈도우 타입이 짧은 윈도우가 아니면, 다음 단계 S410이 수행된다.
S42: 현재 프레임의 윈도우 타입이 짧은 윈도우이면, 수신된 비트스트림을 디코딩하여 그룹 수량 및 그룹 플래그 정보를 획득한다.
S43: 수신된 비트스트림을 디코딩 신경망을 사용하여 디코딩함으로써, 디코딩된 MDCT 스펙트럼을 획득한다.
디코딩 신경망은 인코딩 신경망에 대응한다. 예를 들어, 디코딩 신경망을 사용하여 디코딩하기 위한 특정 방법은 다음과 같다: 산술 디코딩이 수신된 비트스트림에 기초하여 수행되어, 양자화된 잠재 변수를 획득한다. 양자화된 잠재 변수에 대해 역양자화 처리를 수행하여 역양자화된 잠재 변수를 획득한다. 역양자화된 잠재 변수는 입력으로서 사용되고, 디코딩된 MDCT 스펙트럼을 생성하기 위해 디코딩 신경망에 의해 처리된다.
S44: 그룹 수량 및 그룹 플래그 정보에 기초하여 디코딩된 MDCT 스펙트럼에 대해 인트라-그룹 디-인터리빙을 수행하여, 인트라-그룹 디-인터리빙된 MDCT 스펙트럼을 획득한다.
그룹 수량 및 그룹 플래그 정보에 기초하여, 동일한 그룹에 속하는 MDCT 스펙트럼 블록들이 결정된다. 예를 들어, 디코딩된 MDCT 스펙트럼은 8개의 블록으로 분할된다. 그룹 수량은 2와 동일하고, 그룹 플래그 정보 groupIndicator는 1 1 1 0 0 0 0 1이다. 그룹 플래그 정보에서 플래그 값이 0인 비트들의 수량이 4개이면, 디코딩된 MDCT 스펙트럼들 중에서 처음 4개의 블록의 MDCT 스펙트럼들은 하나의 그룹이고 과도 상태 그룹에 속하며, 인트라-그룹 디-인터리빙 처리가 수행될 필요가 있다. 플래그 값이 1인 비트들의 수량이 4개이면, 마지막 4개의 블록의 MDCT 스펙트럼들은 그룹을 형성하고 비과도 상태 그룹에 속하며, 인트라-그룹 디-인터리빙 처리가 수행될 필요가 있다. 인트라-그룹 디-인터리빙 처리를 통해 획득된 8개의 블록의 MDCT 스펙트럼들은 인트라-그룹 디-인터리빙 처리를 통해 획득된 8개의 블록의 MDCT 스펙트럼들이다.
S45: 그룹 수량 및 그룹 플래그 정보에 기초하여 인트라-그룹 디-인터리빙된 MDCT 스펙트럼들에 대해 역 그룹화 및 배열을 수행하여, 역 그룹화 배열된 MDCT 스펙트럼을 획득한다.
인트라-그룹 디-인터리빙 처리를 통해 획득된 MDCT 스펙트럼들은, 그룹 플래그 정보 groupIndicator에 기초하여, 시간 시퀀스에 따라 정렬된 M개의 블록의 스펙트럼들로 정렬된다.
예를 들어, 그룹 수량이 2개와 동일하고, 그룹 플래그 정보 groupIndicator가 1 1 1 0 0 0 0 1이면, 인트라-그룹 디-인터리빙 처리를 통해 획득된 0번째 블록의 MDCT 스펙트럼은 3번째 블록의 MDCT 스펙트럼(그룹 플래그 정보에서 플래그 값이 0인 제1 비트에 대응하는 요소 위치 인덱스는 3임)으로 조정될 필요가 있다. 인트라-그룹 디-인터리빙 처리를 통해 획득된 1번째 블록의 MDCT 스펙트럼은 4번째 블록의 MDCT 스펙트럼(그룹 플래그 정보에서 플래그 값이 0인 제2 비트에 대응하는 요소 위치 인덱스는 4임)으로 조정된다. 인트라-그룹 디-인터리빙 처리를 통해 획득된 2번째 블록의 MDCT 스펙트럼은 5번째 블록의 MDCT 스펙트럼으로 조정된다(그룹 플래그 정보에서 플래그 값이 0인 제3 비트에 대응하는 요소 위치 인덱스는 5임). 인트라-그룹 디-인터리빙 처리를 통해 획득된 3번째 블록의 MDCT 스펙트럼은 6번째 블록의 MDCT 스펙트럼으로 조정된다(그룹 플래그 정보에서 플래그 값이 0인 제4 비트에 대응하는 요소 위치 인덱스는 6임). 인트라-그룹 디-인터리빙 처리를 통해 획득된 4번째 블록에서의 MDCT 스펙트럼은 0번째 블록의 MDCT 스펙트럼으로 조정된다(그룹 플래그 정보에서 플래그 값이 1인 제1 비트에 대응하는 요소 위치 인덱스는 0임). 인트라-그룹 디-인터리빙 처리를 통해 획득된 5번째 블록의 MDCT 스펙트럼은 1번째 블록의 MDCT 스펙트럼으로 조정된다(그룹 플래그 정보에서 플래그 값이 1인 제2 비트에 대응하는 요소 위치 인덱스는 1임). 인트라-그룹 디-인터리빙 처리를 통해 획득된 6번째 MDCT 스펙트럼은 2번째 MDCT 스펙트럼으로 조정된다(그룹 플래그 정보에서 플래그 값이 1인 제3 비트에 대응하는 요소 위치 인덱스는 2임). 인트라-그룹 디-인터리빙 처리를 통해 획득된 7번째 MDCT 스펙트럼은 조정 없이 7번째 MDCT 스펙트럼으로서 직접 사용된다.
인코더 측에서, 스펙트럼들이 그룹화되고 배열된 후의 짧은 프레임의 스펙트럼 형태는 다음과 같다: 블록 인덱스 3 4 5 6 0 1 2 7.
디코더 측에서, 역 그룹화 및 배열 처리 후의 짧은 프레임의 스펙트럼들은 8개의 짧은 프레임의 시간 시퀀스로 정렬된 8개의 블록의 스펙트럼들로 복원된다: 블록 인덱스 0 1 2 3 4 5 6 7.
S46: 역 그룹화 배열된 MDCT 스펙트럼을 인터리빙하여 인터리빙된 MDCT 스펙트럼을 획득한다.
현재 프레임의 윈도우 타입이 짧은 윈도우이면, 인터리빙 처리는 역 그룹화 및 배열 처리 후에 MDCT 스펙트럼에 대해 수행되고, 이러한 방법은 위에 설명된 것과 동일하다.
S47: 인터리빙된 MDCT 스펙트럼에 대해 디코딩 후처리를 수행하여 디코딩 후처리된 MDCT 스펙트럼을 획득한다.
포스트-디코딩 처리는 BWE 역 처리, TNS 역 처리, FDNS 역 처리 등과 같은 처리를 포함할 수 있다.
S48: 디코딩 후처리된 MDCT 스펙트럼을 디-인터리빙하여 재구성된 MDCT 스펙트럼을 획득한다.
S49: 재구성된 MDCT 스펙트럼에 대해 역 MDCT 변환 및 윈도잉을 수행하여 재구성된 오디오 신호를 획득한다.
재구성된 MDCT 스펙트럼은 M개의 블록의 MDCT 스펙트럼들을 포함하고, MDCT 스펙트럼의 각각의 블록에 대해 역 MDCT 변환이 수행된다. 역변환된 신호에 대해 윈도잉 및 중첩 가산 처리가 수행된 후에, 짧은 프레임의 재구성된 오디오 신호가 획득될 수 있다.
S410: 현재 프레임의 윈도우 타입이 다른 윈도우 타입이면, 재구성된 오디오 신호를 획득하기 위해, 다른 타입의 프레임에 대응하는 디코딩 방법에 따라 디코딩이 수행된다.
예를 들어, 재구성된 MDCT 스펙트럼은 디코딩 신경망을 사용하여 수신된 비트스트림을 디코딩함으로써 획득된다. 역변환 및 OLA는 윈도우 타입(긴 윈도우, 컷인 윈도우, 및 컷아웃 윈도우)에 기초하여 수행되고, 재구성된 오디오 신호가 획득된다.
본 출원의 이 실시예에서 제공되는 방법에 따르면, 현재 프레임의 윈도우 타입이 짧은 윈도우인 경우, 현재 프레임의 M개의 블록의 스펙트럼들에 기초하여 현재 프레임의 그룹 수량 및 그룹 플래그 정보가 획득된다. 현재 프레임의 M개의 블록의 스펙트럼들은 현재 프레임의 그룹 수량 및 그룹 플래그 정보에 기초하여 그룹화되고 배열되어, 배열 및 그룹화 후의 오디오 신호를 획득한다. 인코딩 신경망은 그룹화 및 배열 후에 스펙트럼을 인코딩하기 위해 사용된다. 현재 프레임의 오디오 신호가 과도 상태 신호일 때, 과도 상태 특징을 포함하는 MDCT 스펙트럼이 더 높은 인코딩 중요도를 갖는 위치로 조정될 수 있어서, 과도 상태 특징이 신경망을 사용하여 인코딩 및 디코딩 처리 후에 재구성된 오디오 신호에 더 잘 유지될 수 있는 것이 보장될 수 있다.
본 출원의 이 실시예는 대안적으로 스테레오 인코딩을 위해 사용될 수 있다. 차이는: 먼저, 스테레오의 좌측 채널 및 우측 채널이 전술한 실시예에서의 단계들 S31 내지 310에 따라 인코더 측에 의해 개별적으로 처리된 후에 좌측 채널의 인트라-그룹 인터리빙된 MDCT 스펙트럼 및 우측 채널의 인트라-그룹 인터리빙된 MDCT 스펙트럼이 획득된다는 점에 있다. 그 후, 단계 S311은 다음과 같이 변경된다: 인코딩 신경망을 사용하여 좌측 채널의 인트라-그룹 인터리빙된 MDCT 스펙트럼 및 우측 채널의 인트라-그룹 인터리빙된 MDCT 스펙트럼을 인코딩한다.
인코딩 신경망의 입력은 더 이상 모노 채널의 인트라-그룹 인터리빙된 MDCT 스펙트럼이 아니라, 스테레오의 좌측 채널 및 우측 채널이 단계들 S31 내지 310에 따라 개별적으로 처리된 후에 획득되는 좌측 채널의 인트라-그룹 인터리빙된 MDCT 스펙트럼 및 우측 채널의 인트라-그룹 인터리빙된 MDCT 스펙트럼이다.
인코딩 신경망은 CNN 네트워크일 수 있고, 좌측 채널의 인트라-그룹 인터리빙된 MDCT 스펙트럼 및 우측 채널의 인트라-그룹 인터리빙된 MDCT 스펙트럼은 CNN 네트워크의 2개의 채널의 입력들로서 사용된다.
이에 대응하여, 디코더 측에 의해 실행되는 프로세스는 다음을 포함한다:
수신된 비트스트림을 디코딩하여 현재 프레임의 좌측 채널의 윈도우 타입, 그룹 수량, 및 그룹 플래그 정보를 획득하는 것;
수신된 비트스트림을 디코딩하여 현재 프레임의 우측 채널의 윈도우 타입, 그룹 수량, 및 그룹 플래그 정보를 획득하는 것;
수신된 비트스트림을 디코딩하고 디코딩 신경망을 사용하여, 스테레오의 디코딩된 MDCT 스펙트럼을 획득하는 것;
현재 프레임의 좌측 채널의 윈도우 타입, 그룹 수량, 그룹 플래그 정보, 및 디코딩된 좌측 채널의 MDCT 스펙트럼에 기초하여 실시예 1에 따라 디코더 측에서 모노 디코딩의 단계에 따라 처리를 수행하여 재구성된 좌측 채널 신호를 획득하는 것; 및
현재 프레임의 우측 채널의 윈도우 타입, 그룹 수량, 그룹 플래그 정보, 및 디코딩된 우측 채널의 MDCT 스펙트럼에 기초하여 실시예 1에 따른 디코더 측에서 모노 디코딩의 단계에 따라 처리를 수행하여, 재구성된 우측 채널 신호를 획득하는 것를 포함한다.
간단한 설명을 위해, 전술한 방법 실시예들은 일련의 액션들로서 표현된다는 점에 유의해야 한다. 그러나, 본 기술분야의 통상의 기술자는 본 출원에 따라 일부 단계들이 다른 순서들로 또는 동시에 수행될 수 있기 때문에, 본 출원이 설명된 액션들의 순서로 제한되지 않는다는 것을 이해해야 한다. 본 명세서에 설명되는 실시예들이 모두 예시적인 실시예들에 속하고, 관여된 액션들 및 모듈들이 본 출원에 의해 반드시 요구되는 것은 아니라는 점이 본 기술분야의 통상의 기술자에 의해 추가로 인식되어야 한다.
본 출원의 실시예들에서 전술한 해결책들을 더 양호하게 구현하기 위해, 다음은 전술한 해결책들을 구현하기 위한 관련 장치를 추가로 제공한다.
도 10을 참조한다. 본 출원의 실시예에서 제공되는 오디오 인코딩 장치(1000)는: 과도 상태 식별자 획득 모듈(1001), 그룹 정보 획득 모듈(1002), 그룹화 배열 모듈(1003), 및 인코딩 모듈(1004)을 포함할 수 있다.
과도 상태 식별자 획득 모듈은 인코딩될 오디오 신호의 현재 프레임의 M개의 블록의 스펙트럼들에 기초하여 M개의 블록의 M개의 과도 상태 식별자를 획득하도록 구성되고, M개의 블록은 제1 블록을 포함하고, 제1 블록의 과도 상태 식별자는 제1 블록이 과도 상태 블록인 것을 표시하거나, 또는 제1 블록이 비과도 상태 블록인 것을 표시한다.
그룹 정보 획득 모듈은 M개의 블록의 M개의 과도 상태 식별자에 기초하여 M개의 블록의 그룹 정보를 획득하도록 구성된다.
그룹화 및 배열 모듈은 M개의 블록의 그룹 정보에 기초하여 M개의 블록의 스펙트럼들을 그룹화하고 배열하여, 현재 프레임의 인코딩될 스펙트럼을 획득하도록 구성된다.
인코딩 모듈은 인코딩 신경망을 사용하여 인코딩될 스펙트럼을 인코딩함으로써 스펙트럼 인코딩 결과를 획득하고; 스펙트럼 인코딩 결과를 비트스트림에 기입하도록 구성된다.
도 11을 참조한다. 본 출원의 실시예에서 제공되는 오디오 디코딩 장치(1100)는: 그룹 정보 획득 모듈(1101), 디코딩 모듈(1102), 역 그룹화 및 배열 모듈(1103), 및 오디오 신호 획득 모듈(1104)을 포함할 수 있다.
그룹 정보 획득 모듈은 비트스트림으로부터 오디오 신호의 현재 프레임의 M개의 블록의 그룹 정보를 획득하도록 구성되고, 여기서 그룹 정보는 M개의 블록의 M개의 과도 상태 식별자를 표시한다.
디코딩 모듈은 디코딩 신경망을 사용하여 비트스트림을 디코딩함으로써, M개의 블록의 디코딩된 스펙트럼들을 획득하도록 구성된다.
역 그룹화 및 배열 모듈은 M개의 블록의 그룹 정보에 기초하여 M개의 블록의 디코딩된 스펙트럼들에 대해 역 그룹화 및 배열을 수행하여, 역 그룹화 처리가 수행되는 M개의 블록의 스펙트럼들을 획득하도록 구성된다.
오디오 신호 획득 모듈은 역 그룹화 처리가 수행되는 M개의 블록의 스펙트럼들에 기초하여 현재 프레임의 재구성된 오디오 신호를 획득하도록 구성된다.
이러한 장치의 모듈들/유닛들 사이의 정보 교환 및 이들의 실행 프로세스들과 같은 내용은 본 출원의 방법 실시예들과 동일한 아이디어에 기초하고, 본 출원의 방법 실시예들과 동일한 기술적 효과들을 가져온다는 점에 유의해야 한다. 특정 내용에 대해서는, 본 출원의 방법 실시예들에서의 전술한 설명들을 참조한다. 세부사항들은 본 명세서에서 다시 설명되지 않는다.
본 출원의 실시예는 컴퓨터 저장 매체를 추가로 제공한다. 컴퓨터 저장 매체는 프로그램을 저장하고, 프로그램은 전술한 방법 실시예들에서 설명된 단계들의 일부 또는 전부를 수행한다.
이하에서는 본 출원의 실시예에서 제공되는 다른 오디오 인코딩 장치를 설명한다. 도 12를 참조하면, 오디오 인코딩 장치(1200)는:
수신기(1201), 송신기(1202), 프로세서(1203), 및 메모리(1204)(오디오 인코딩 장치(1200)에는 하나 이상의 프로세서(1203)가 있을 수 있고, 도 12에서는 하나의 프로세서가 예로서 사용됨)를 포함한다. 본 출원의 일부 실시예들에서, 수신기(1201), 송신기(1202), 프로세서(1203), 및 메모리(1204)는 버스를 통해 또는 다른 방식으로 접속될 수 있다. 도 12에서, 수신기(1201), 송신기(1202), 프로세서(1203), 및 메모리(1204)가 버스를 통해 접속되는 예가 사용된다.
메모리(1204)는 판독 전용 메모리 및 랜덤 액세스 메모리를 포함할 수 있고, 프로세서(1203)에 명령어들 및 데이터를 제공할 수 있다. 메모리(1204)의 일부는 비휘발성 랜덤 액세스 메모리(non-volatile random access memory, NVRAM)를 추가로 포함할 수 있다. 메모리(1204)는 운영 체제 및 동작 명령어, 실행가능 모듈 또는 데이터 구조, 또는 이들의 서브세트, 또는 이들의 확장 세트를 저장한다. 동작 명령어는 다양한 동작 명령어들을 포함할 수 있고, 다양한 동작들을 구현하기 위해 사용된다. 운영 체제는 다양한 시스템 프로그램을 포함할 수 있고, 다양한 기본 서비스를 구현하고 하드웨어 기반 작업들을 처리하도록 구성된다.
프로세서(1203)는 오디오 인코딩 장치의 동작을 제어한다. 프로세서(1203)는 중앙 처리 유닛(central processing unit, CPU)으로도 지칭될 수 있다. 특정 응용에서, 오디오 인코딩 장치의 컴포넌트들은 버스 시스템을 사용하여 함께 결합된다. 데이터 버스 이외에, 버스 시스템은 전력 버스, 제어 버스, 상태 신호 버스 등을 추가로 포함할 수 있다. 그러나, 명확한 설명을 위해, 도면에서는 다양한 버스들이 버스 시스템으로 지칭된다.
본 출원의 전술한 실시예들에 개시된 방법은 프로세서(1203)에 적용될 수 있거나, 또는 프로세서(1203)에 의해 구현될 수 있다. 프로세서(1203)는 집적 회로 칩일 수 있고, 신호 처리 능력을 갖는다. 구현 프로세스에서, 방법의 단계들은 프로세서(1203) 내의 하드웨어의 집적 논리 회로 또는 소프트웨어 형태의 명령어를 사용하여 구현될 수 있다. 프로세서(1203)는 범용 프로세서, 디지털 신호 프로세서(digital signal processing, DSP), 주문형 집적 회로(application specific integrated circuit, ASIC), 필드-프로그램가능 게이트 어레이(field-programmable gate array, FPGA) 또는 다른 프로그램가능 논리 디바이스, 이산 게이트 또는 트랜지스터 논리 디바이스, 또는 이산 하드웨어 컴포넌트일 수 있다. 이것은 본 출원의 실시예들에서 개시되는 방법들, 단계들, 및 논리 블록도들을 구현하거나 수행할 수 있다. 범용 프로세서는 마이크로프로세서일 수 있거나 또는 프로세서는 임의의 종래의 프로세서 등일 수 있다. 본 출원의 실시예들을 참조하여 개시되는 방법들의 단계들이 하드웨어 디코딩 프로세서를 사용하여 직접 실행되고 달성될 수 있거나, 또는 디코딩 프로세서 내의 하드웨어와 소프트웨어 모듈들의 조합을 사용하여 실행되고 달성될 수 있다. 소프트웨어 모듈은 랜덤 액세스 메모리, 플래시 메모리, 판독 전용 메모리, 프로그램가능 판독 전용 메모리, 전기적으로 소거가능한 프로그램가능 메모리, 또는 레지스터와 같은, 본 기술분야에서의 완전한 저장 매체에 위치될 수 있다. 저장 매체는 메모리(1204)에 위치되고, 프로세서(1203)는 메모리(1204) 내의 정보를 판독하고 프로세서의 하드웨어와 조합하여 전술한 방법의 단계들을 완료한다.
수신기(1201)는: 입력 디지털 또는 문자 정보를 수신하고, 오디오 인코딩 장치의 관련 설정들 및 기능 제어에 관련된 신호 입력을 생성하도록 구성될 수 있다. 송신기(1202)는 디스플레이와 같은 디스플레이 디바이스를 포함할 수 있다. 송신기(1202)는 외부 인터페이스를 사용하여 디지털 또는 문자 정보를 출력하도록 구성될 수 있다.
본 출원의 이 실시예에서, 프로세서(1203)는 전술한 실시예들에서 도 3, 도 6, 및 도 8a 및 도 8b에 도시된 오디오 인코딩 장치에 의해 수행되는 방법들을 수행하도록 구성된다.
이하에서는 본 출원의 실시예에서 제공되는 다른 오디오 디코딩 장치를 설명한다. 도 13을 참조한다. 오디오 디코딩 장치(1300)는:
수신기(1301), 송신기(1302), 프로세서(1303), 및 메모리(1304)(오디오 디코딩 장치(1300)에는 하나 이상의 프로세서(1303)가 있을 수 있고, 도 13에서는 하나의 프로세서가 예로서 사용됨)를 포함한다. 본 출원의 일부 실시예들에서, 수신기(1301), 송신기(1302), 프로세서(1303), 및 메모리(1304)는 버스를 통해 또는 다른 방식으로 접속될 수 있다. 도 13에서, 수신기(1301), 송신기(1302), 프로세서(1303), 및 메모리(1304)가 버스를 통해 접속되는 예가 사용된다.
메모리(1304)는 판독 전용 메모리 및 랜덤 액세스 메모리를 포함할 수 있고, 명령어들 및 데이터를 프로세서(1303)에 제공할 수 있다. 메모리(1304)의 일부는 NVRAM을 추가로 포함할 수 있다. 메모리(1304)는 운영 체제 및 동작 명령어, 실행가능 모듈 또는 데이터 구조, 또는 이들의 서브세트, 또는 이들의 확장 세트를 저장한다. 동작 명령어는 다양한 동작 명령어들을 포함할 수 있고, 다양한 동작들을 구현하기 위해 사용된다. 운영 체제는 다양한 시스템 프로그램을 포함할 수 있고, 다양한 기본 서비스를 구현하고 하드웨어 기반 작업들을 처리하도록 구성된다.
프로세서(1303)는 오디오 디코딩 장치의 동작들을 제어하고, 프로세서(1303)는 CPU라고도 지칭될 수 있다. 특정 응용에서, 오디오 디코딩 장치의 컴포넌트들은 버스 시스템을 사용하여 함께 결합된다. 데이터 버스 이외에, 버스 시스템은 전력 버스, 제어 버스, 상태 신호 버스 등을 추가로 포함할 수 있다. 그러나, 명확한 설명을 위해, 도면에서는 다양한 버스들이 버스 시스템으로 지칭된다.
본 출원의 전술한 실시예들에서 개시되는 방법은 프로세서(1303)에 적용될 수 있거나, 또는 프로세서(1303)에 의해 구현될 수 있다. 프로세서(1303)는 집적 회로 칩일 수 있고, 신호 처리 능력을 갖는다. 구현 프로세스에서, 방법의 단계들은 프로세서(1303) 내의 하드웨어의 집적 논리 회로 또는 소프트웨어 형태의 명령어를 사용하여 구현될 수 있다. 프로세서(1303)는 범용 프로세서, DSP, ASIC, FPGA 또는 다른 프로그램가능 논리 디바이스, 이산 게이트 또는 트랜지스터 논리 디바이스, 또는 이산 하드웨어 컴포넌트일 수 있다. 이것은 본 출원의 실시예들에서 개시되는 방법들, 단계들, 및 논리 블록도들을 구현하거나 수행할 수 있다. 범용 프로세서는 마이크로프로세서일 수 있거나 또는 프로세서는 임의의 종래의 프로세서 등일 수 있다. 본 출원의 실시예들을 참조하여 개시되는 방법들의 단계들이 하드웨어 디코딩 프로세서를 사용하여 직접 실행되고 달성될 수 있거나, 또는 디코딩 프로세서 내의 하드웨어와 소프트웨어 모듈들의 조합을 사용하여 실행되고 달성될 수 있다. 소프트웨어 모듈은 랜덤 액세스 메모리, 플래시 메모리, 판독 전용 메모리, 프로그램가능 판독 전용 메모리, 전기적으로 소거가능한 프로그램가능 메모리, 또는 레지스터와 같은, 본 기술분야에서의 완전한 저장 매체에 위치될 수 있다. 저장 매체는 메모리(1304)에 위치되고, 프로세서(1303)는 메모리(1304) 내의 정보를 판독하며, 프로세서의 하드웨어와 조합하여 전술한 방법의 단계들을 완료한다.
본 출원의 이 실시예에서, 프로세서(1303)는 전술한 실시예들에서 도 4, 도 7, 및 도 9a 및 도 9b에 도시된 오디오 디코딩 장치에 의해 수행되는 방법들을 수행하도록 구성된다.
다른 가능한 설계에서, 오디오 인코딩 장치 또는 오디오 디코딩 장치가 단말기 내의 칩일 때, 칩은 처리 유닛 및 통신 유닛을 포함한다. 처리 유닛은, 예를 들어, 프로세서일 수 있고, 통신 유닛은, 예를 들어, 입력/출력 인터페이스, 핀, 회로, 등일 수 있다. 처리 유닛은 저장 유닛에 저장된 컴퓨터 실행가능 명령어를 실행하여, 단말기 내의 칩이 제1 양태 중 어느 하나에 따른 오디오 인코딩 방법 또는 제2 양태 중 어느 하나에 따른 오디오 디코딩 방법을 수행할 수 있게 할 수 있다. 선택적으로, 저장 유닛은 칩에서의 저장 유닛, 예를 들어, 레지스터 또는 캐시이다. 대안적으로, 저장 유닛은 단말기 중에서 또한 칩 외부에 위치되는 저장 유닛, 예를 들어, 판독 전용 메모리(read-only memory, ROM), 또는 정적 정보 및 명령어들을 저장할 수 있는 다른 타입의 정적 저장 디바이스들, 랜덤 액세스 메모리(random access memory, RAM) 등일 수 있다.
위의 어디에서든 언급된 프로세서는 범용 중앙 처리 유닛, 마이크로프로세서, ASIC, 또는 제1 양태 또는 제2 양태에서의 방법의 프로그램 실행을 제어하도록 구성된 하나 이상의 집적 회로일 수 있다.
또한, 설명된 장치 실시예는 단지 예일 뿐이라는 점에 유의해야 한다. 개별 부분들로 설명되는 유닛들은 물리적으로 분리될 수 있거나 분리되지 않을 수 있고, 유닛들로 디스플레이되는 부분들은 물리 유닛들일 수 있거나 물리 유닛들이 아닐 수 있거나, 하나의 위치에 위치될 수 있거나, 복수의 네트워크 유닛들 상에 분산될 수 있다. 모듈들의 일부 또는 전부는 실시예들의 해결책들의 목적들을 달성하기 위하여 실제적인 요건들에 기초하여 선택될 수 있다. 또한, 본 출원에서 제공되는 장치 실시예들의 첨부 도면들에서, 모듈들 사이의 접속 관계는 모듈들 사이에 통신 접속이 있다는 것을 표시하고, 통신 접속은 구체적으로 하나 이상의 통신 버스 또는 신호 케이블로서 구현될 수 있다.
전술한 구현들의 설명에 기초하여, 본 기술분야의 통상의 기술자는, 본 출원이 필요한 범용 하드웨어 이외에도 소프트웨어에 의해, 또는 전용 집적 회로, 전용 CPU, 전용 메모리, 전용 컴포넌트 등을 포함하는, 전용 하드웨어에 의해 구현될 수 있다는 점을 명확하게 이해할 수 있다. 일반적으로, 컴퓨터 프로그램에 의해 수행될 수 있는 임의의 기능들은 대응하는 하드웨어를 사용하여 쉽게 구현될 수 있다. 또한, 동일한 기능을 달성하기 위해 사용되는 특정 하드웨어 구조는 다양한 형태들, 예를 들어, 아날로그 회로, 디지털 회로, 또는 전용 회로의 형태로 이루어질 수 있다. 그러나, 본 출원과 관련하여, 소프트웨어 프로그램 구현이 대부분의 경우에 더 나은 구현이다. 이러한 이해에 기초하여, 본질적으로 본 출원에서의 기술적 해결책들 또는 종래의 기술에 기여하는 부분은 소프트웨어 제품의 형태로 구현될 수 있다. 컴퓨터 소프트웨어 제품은 컴퓨터의 플로피 디스크, USB 플래시 드라이브, 이동식 하드 디스크, ROM, RAM, 자기 디스크, 또는 광 디스크와 같은 판독가능 저장 매체에 저장되고, 컴퓨터 디바이스(개인용 컴퓨터, 서버, 네트워크 디바이스 등일 수 있음)에게 본 출원의 실시예들에서 설명되는 방법들을 수행하게 하기 위한 여러 명령어들을 포함한다.
전술한 실시예들의 전부 또는 일부는 소프트웨어, 하드웨어, 펌웨어, 또는 이들의 임의의 조합을 사용하여 구현될 수 있다. 실시예들을 구현하기 위해 소프트웨어가 사용될 때, 실시예들의 전부 또는 일부는 컴퓨터 프로그램 제품의 형태로 구현될 수 있다.
컴퓨터 프로그램 제품은 하나 이상의 컴퓨터 명령어를 포함한다. 컴퓨터 프로그램 명령어들이 컴퓨터 상에 로딩되고 실행될 때, 본 출원의 실시예들에 따른 절차 또는 기능들은 전부 또는 부분적으로 생성된다. 이러한 컴퓨터는 범용 컴퓨터, 전용 컴퓨터, 컴퓨터 네트워크, 또는 다른 프로그램가능 장치들일 수 있다. 이러한 컴퓨터 명령어들은 컴퓨터 판독가능 저장 매체에 저장될 수 있거나 또는 컴퓨터 판독가능 저장 매체로부터 다른 컴퓨터 판독가능 저장 매체로 송신될 수 있다. 예를 들어, 컴퓨터 명령어들은, 웹 사이트, 컴퓨터, 서버, 또는 데이터 센터로부터, 유선(예를 들어, 동축 케이블, 광섬유 또는 DSL(digital subscriber line)) 또는 무선(예를 들어, 적외선, 라디오, 또는 마이크로파) 방식으로, 다른 웹 사이트, 컴퓨터, 서버 또는 데이터 센터로 송신될 수 있다. 컴퓨터 판독가능 저장 매체는 컴퓨터에 의해 액세스가능한 임의의 사용가능 매체, 또는 데이터 저장 디바이스, 예를 들어, 서버 또는 하나 이상의 사용가능 매체를 통합하는 데이터 센터일 수 있다. 사용가능 매체는 자기 매체(예를 들어, 플로피 디스크, 하드 디스크, 또는 자기 테이프), 광학 매체(예를 들어, DVD), 반도체 매체(예를 들어, 솔리드 스테이트 드라이브(Solid State D, SSD)), 등일 수 있다.

Claims (25)

  1. 오디오 신호 인코딩 방법으로서,
    인코딩될 오디오 신호의 현재 프레임의 M개의 블록의 스펙트럼들에 기초하여, 상기 M개의 블록의 M개의 과도 상태 식별자를 획득하는 단계- 상기 M개의 블록은 제1 블록을 포함하고, 상기 제1 블록의 과도 상태 식별자는 상기 제1 블록이 과도 상태 블록인 것을 표시하거나, 또는 상기 제1 블록이 비과도 상태 블록인 것을 표시함 -;
    상기 M개의 블록의 상기 M개의 과도 상태 식별자에 기초하여 상기 M개의 블록의 그룹 정보를 획득하는 단계;
    상기 M개의 블록의 그룹 정보에 기초하여 상기 M개의 블록의 스펙트럼들에 대해 그룹화 및 배열을 수행하여, 상기 현재 프레임의 인코딩될 스펙트럼을 획득하는 단계;
    스펙트럼 인코딩 결과를 획득하기 위해 인코딩 신경망을 사용하여 상기 인코딩될 스펙트럼을 인코딩하는 단계; 및
    상기 스펙트럼 인코딩 결과를 비트스트림에 기입하는 단계를 포함하는 오디오 신호 인코딩 방법.
  2. 제1항에 있어서,
    상기 방법은:
    M개의 블록의 그룹 정보를 인코딩하여 그룹 정보 인코딩 결과를 획득하는 단계; 및
    상기 그룹 정보 인코딩 결과를 상기 비트스트림에 기입하는 단계를 추가로 포함하는 오디오 신호 인코딩 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 M개의 블록의 그룹 정보는 상기 M개의 블록의 그룹 수량 또는 그룹 수량 식별자를 포함하고; 상기 그룹 수량 식별자는 상기 그룹 수량을 표시하고; 상기 그룹 수량이 1보다 클 때, 상기 M개의 블록의 그룹 정보는 상기 M개의 블록의 M개의 과도 상태 식별자를 추가로 포함하거나; 또는 상기 M개의 블록의 그룹 정보는 상기 M개의 블록의 M개의 과도 상태 식별자를 포함하는 오디오 신호 인코딩 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 M개의 블록의 그룹 정보에 기초하여 상기 M개의 블록의 스펙트럼들에 대해 그룹화 및 배열을 수행하여, 상기 현재 프레임의 인코딩될 스펙트럼을 획득하는 단계는:
    상기 M개의 블록 중에서 상기 M개의 과도 상태 식별자에 의해 과도 상태 블록으로서 표시되는 블록의 스펙트럼을 과도 상태 그룹에 할당하고, 상기 M개의 블록 중에서 상기 M개의 과도 상태 식별자에 의해 비과도 상태 블록으로서 표시되는 블록의 스펙트럼을 비과도 상태 그룹에 할당하는 단계; 및
    상기 과도 상태 그룹 내의 상기 블록의 스펙트럼을 상기 비과도 상태 그룹 내의 상기 블록의 스펙트럼 전에 있도록 배열하여, 상기 현재 프레임의 인코딩될 스펙트럼을 획득하는 단계를 추가로 포함하는 오디오 신호 인코딩 방법.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 M개의 블록의 그룹 정보에 기초하여 상기 M개의 블록의 스펙트럼들에 대해 그룹화 및 배열을 수행하여, 상기 현재 프레임의 인코딩될 스펙트럼을 획득하는 단계는:
    상기 M개의 블록 중에서 상기 M개의 과도 상태 식별자에 의해 과도 상태 블록으로서 표시되는 블록의 스펙트럼을 상기 M개의 블록 중에서 상기 M개의 과도 상태 식별자에 의해 비과도 상태 블록으로서 표시되는 블록의 스펙트럼 전에 있도록 배열하여, 상기 현재 프레임의 인코딩될 스펙트럼을 획득하는 단계를 포함하는 오디오 신호 인코딩 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    인코딩 신경망을 사용하여 상기 인코딩될 스펙트럼을 인코딩하는 단계 전에, 상기 방법은:
    상기 M개의 블록의 인트라-그룹 인터리빙된 스펙트럼들을 획득하기 위해 상기 인코딩될 스펙트럼에 대해 인트라-그룹 인터리빙을 수행하는 단계를 추가로 포함하고;
    인코딩 신경망을 사용하여 상기 인코딩될 스펙트럼을 인코딩하는 단계는:
    상기 인코딩 신경망을 사용하여, 상기 M개의 블록의 상기 인트라-그룹 인터리빙된 스펙트럼들을 인코딩하는 단계를 포함하는 오디오 신호 인코딩 방법.
  7. 제6항에 있어서,
    상기 M개의 블록 중에서 상기 M개의 과도 상태 식별자에 의해 과도 상태 블록들로서 표시되는 블록들의 수량은 P이고, 상기 M개의 블록 중에서 상기 M개의 과도 상태 식별자에 의해 비과도 상태 블록들로서 표시되는 블록들의 수량은 Q이고, M=P+Q이며;
    상기 인코딩될 스펙트럼에 대해 인트라-그룹 인터리빙을 수행하는 단계는:
    상기 P개의 블록의 스펙트럼들을 인터리빙하여 상기 P개의 블록의 인터리빙된 스펙트럼들을 획득하는 단계; 및
    상기 Q개의 블록의 스펙트럼들을 인터리빙하여 상기 Q개의 블록의 인터리빙된 스펙트럼들을 획득하는 단계를 포함하고;
    상기 인코딩 신경망을 사용하여, 상기 M개의 블록의 인트라-그룹 인터리빙된 스펙트럼들을 인코딩하는 단계는:
    상기 인코딩 신경망을 사용하여, 상기 P개의 블록의 인터리빙된 스펙트럼들 및 상기 Q개의 블록의 인터리빙된 스펙트럼들을 인코딩하는 단계를 포함하는 오디오 신호 인코딩 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    인코딩될 오디오 신호의 현재 프레임의 M개의 블록의 스펙트럼들에 기초하여, 상기 M개의 블록의 M개의 과도 상태 식별자를 획득하는 단계 전에, 상기 방법은:
    상기 현재 프레임의 윈도우 타입을 획득하는 단계- 상기 윈도우 타입은 짧은 윈도우 타입 또는 짧지 않은(non-short) 윈도우 타입임 -; 및
    상기 윈도우 타입이 상기 짧은 윈도우 타입일 때에만, 인코딩될 오디오 신호의 현재 프레임의 M개의 블록의 스펙트럼들에 기초하여, 상기 M개의 블록의 M개의 과도 상태 식별자를 획득하는 단계를 추가로 포함하는 오디오 신호 인코딩 방법.
  9. 제8항에 있어서,
    상기 방법은:
    상기 윈도우 타입을 인코딩하여 상기 윈도우 타입의 인코딩 결과를 획득하는 단계; 및
    상기 윈도우 타입의 인코딩 결과를 상기 비트스트림에 기입하는 단계를 추가로 포함하는 오디오 신호 인코딩 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    인코딩될 오디오 신호의 현재 프레임의 M개의 블록의 스펙트럼들에 기초하여, 상기 M개의 블록의 M개의 과도 상태 식별자를 획득하는 단계는:
    상기 M개의 블록의 스펙트럼들에 기초하여 상기 M개의 블록의 M개의 스펙트럼 에너지를 획득하는 단계;
    상기 M개의 스펙트럼 에너지에 기초하여 상기 M개의 블록의 평균 스펙트럼 에너지 값을 획득하는 단계; 및
    상기 M개의 스펙트럼 에너지 및 상기 평균 스펙트럼 에너지 값에 기초하여 상기 M개의 블록의 M개의 과도 상태 식별자를 획득하는 단계를 포함하는 오디오 신호 인코딩 방법.
  11. 제10항에 있어서,
    상기 제1 블록의 스펙트럼 에너지가 상기 평균 스펙트럼 에너지 값의 K배보다 클 때, 상기 제1 블록의 과도 상태 식별자는 상기 제1 블록이 과도 상태 블록인 것을 표시하거나; 또는
    상기 제1 블록의 스펙트럼 에너지가 상기 평균 스펙트럼 에너지 값의 K배 이하일 때, 상기 제1 블록의 상기 과도 상태 식별자는 상기 제1 블록이 비과도 상태 블록인 것을 표시하고,
    K는 1 이상의 실수인 오디오 신호 인코딩 방법.
  12. 오디오 신호 디코딩 방법으로서,
    비트스트림으로부터 오디오 신호의 현재 프레임의 M개의 블록의 그룹 정보를 획득하는 단계- 상기 그룹 정보는 상기 M개의 블록의 M개의 과도 상태 식별자를 표시함 -;
    디코딩 신경망을 사용하여 상기 비트스트림을 디코딩함으로써, 상기 M개의 블록의 디코딩된 스펙트럼들을 획득하는 단계;
    상기 M개의 블록의 역 그룹화 배열된 스펙트럼들을 획득하기 위해, 상기 M개의 블록의 그룹 정보에 기초하여 상기 M개의 블록의 디코딩된 스펙트럼들에 대해 역 그룹화 및 배열을 수행하는 단계; 및
    상기 M개의 블록의 상기 역 그룹화 배열된 스펙트럼들에 기초하여 상기 현재 프레임의 재구성된 오디오 신호를 획득하는 단계를 포함하는 오디오 신호 디코딩 방법.
  13. 제12항에 있어서,
    상기 M개의 블록의 그룹 정보에 기초하여 상기 M개의 블록의 디코딩된 스펙트럼들에 대해 역 그룹화 및 배열을 수행하는 단계 전에, 상기 방법은:
    상기 M개의 블록의 인트라-그룹 디-인터리빙된 스펙트럼들을 획득하기 위해, 상기 M개의 블록의 디코딩된 스펙트럼들에 대해 인트라-그룹 디-인터리빙을 수행하는 단계를 추가로 포함하고;
    상기 M개의 블록의 그룹 정보에 기초하여 상기 M개의 블록의 디코딩된 스펙트럼들에 대해 역 그룹화 및 배열을 수행하는 단계는:
    상기 M개의 블록의 그룹 정보에 기초하여 상기 M개의 블록의 인트라-그룹 디-인터리빙된 스펙트럼들에 대해 역 그룹화 및 배열을 수행하는 단계를 포함하는 오디오 신호 디코딩 방법.
  14. 제13항에 있어서,
    상기 M개의 블록 중에서 상기 M개의 과도 상태 식별자에 의해 과도 상태 블록들로서 표시되는 블록들의 수량은 P이고, 상기 M개의 블록 중에서 상기 M개의 과도 상태 식별자에 의해 비과도 상태 블록들로서 표시되는 블록들의 수량은 Q이고, M=P+Q이며;
    상기 M개의 블록의 디코딩된 스펙트럼들에 대해 인트라-그룹 디-인터리빙을 수행하는 단계는:
    상기 P개의 블록의 디코딩된 스펙트럼들에 대해 디-인터리빙하는 단계; 및
    상기 Q개의 블록의 디코딩된 스펙트럼들에 대해 디-인터리빙하는 단계를 포함하는 오디오 신호 디코딩 방법.
  15. 제12항 내지 제14항 중 어느 한 항에 있어서,
    상기 M개의 블록 중에서 상기 M개의 과도 상태 식별자에 의해 과도 상태 블록들로서 표시되는 블록들의 수량은 P이고, 상기 M개의 블록 중에서 상기 M개의 과도 상태 식별자에 의해 비과도 상태 블록들로서 표시되는 블록들의 수량은 Q이고, M=P+Q이며;
    상기 M개의 블록의 그룹 정보에 기초하여 상기 M개의 블록의 디코딩된 스펙트럼들에 대해 역 그룹화 및 배열을 수행하는 단계는:
    상기 M개의 블록의 그룹 정보에 기초하여 상기 P개의 블록의 인덱스들을 획득하는 단계;
    상기 M개의 블록의 그룹 정보에 기초하여 상기 Q개의 블록의 인덱스들을 획득하는 단계; 및
    상기 P개의 블록의 인덱스들 및 상기 Q개의 블록의 인덱스들에 기초하여 상기 M개의 블록의 디코딩된 스펙트럼들에 대해 역 그룹화 및 배열을 수행하는 단계를 포함하는 오디오 신호 디코딩 방법.
  16. 제12항 내지 제15항 중 어느 한 항에 있어서,
    상기 방법은:
    상기 비트스트림으로부터 상기 현재 프레임의 윈도우 타입을 획득하는 단계- 상기 윈도우 타입은 짧은 윈도우 타입 또는 짧지 않은 윈도우 타입임 -; 및
    현재 프레임의 윈도우 타입이 짧은 윈도우 타입일 때에만, 비트스트림으로부터 현재 프레임의 M개의 블록의 그룹 정보를 획득하는 단계를 수행하는 단계를 추가로 포함하는 오디오 신호 디코딩 방법.
  17. 제12항 내지 제16항 중 어느 한 항에 있어서,
    상기 M개의 블록의 그룹 정보는 상기 M개의 블록의 그룹 수량 또는 그룹 수량 식별자를 포함하고, 상기 그룹 수량 식별자는 상기 그룹 수량을 표시하고, 상기 그룹 수량이 1보다 클 때, 상기 M개의 블록의 그룹 정보는 상기 M개의 블록의 M개의 과도 상태 식별자를 추가로 포함하거나; 또는
    상기 M개의 블록의 그룹 정보는 상기 M개의 블록의 M개의 과도 상태 식별자를 포함하는 오디오 신호 디코딩 방법.
  18. 오디오 신호 인코딩 장치로서,
    인코딩될 오디오 신호의 현재 프레임의 M개의 블록의 스펙트럼들에 기초하여, 상기 M개의 블록의 M개의 과도 상태 식별자를 획득하도록 구성된 과도 상태 식별자 획득 모듈- 상기 M개의 블록은 제1 블록을 포함하고, 상기 제1 블록의 과도 상태 식별자는 상기 제1 블록이 과도 상태 블록인 것을 표시하거나, 또는 상기 제1 블록이 비과도 상태 블록인 것을 표시함 -;
    상기 M개의 블록의 M개의 과도 상태 식별자에 기초하여 상기 M개의 블록의 그룹 정보를 획득하도록 구성된 그룹 정보 획득 모듈;
    상기 M개의 블록의 그룹 정보에 기초하여 상기 M개의 블록의 스펙트럼들에 대해 그룹화 및 배열을 수행하여, 인코딩될 스펙트럼을 획득하도록 구성된 그룹화 및 배열 모듈; 및
    인코딩 신경망을 사용하여 상기 인코딩될 스펙트럼을 인코딩함으로써 스펙트럼 인코딩 결과를 획득하고, 상기 스펙트럼 인코딩 결과를 비트스트림에 기입하도록 구성된 인코딩 모듈을 포함하는 오디오 신호 인코딩 장치.
  19. 오디오 신호 디코딩 장치로서,
    비트스트림으로부터 오디오 신호의 현재 프레임의 M개의 블록의 그룹 정보를 획득하도록 구성된 그룹 정보 획득 모듈- 상기 그룹 정보는 상기 M개의 블록의 M개의 과도 상태 식별자를 표시함 -;
    디코딩 신경망을 사용하여 상기 비트스트림을 디코딩함으로써 상기 M개의 블록의 디코딩된 스펙트럼들을 획득하도록 구성된 디코딩 모듈;
    상기 M개의 블록의 그룹 정보에 기초하여 상기 M개의 블록의 디코딩된 스펙트럼들에 대해 역 그룹화 및 배열을 수행하여, 상기 M개의 블록의 역 그룹화 배열된 스펙트럼들을 획득하도록 구성된 역 그룹화 및 배열 모듈; 및
    상기 M개의 블록의 상기 역 그룹화 배열된 스펙트럼들에 기초하여 재구성된 오디오 신호를 획득하도록 구성된 오디오 신호 획득 모듈을 포함하는 오디오 신호 디코딩 장치.
  20. 오디오 신호 인코딩 장치로서,
    상기 오디오 신호 인코딩 장치는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는 메모리에 결합되도록 구성되고, 상기 메모리 내의 명령어들을 판독 및 실행하여, 제1항 내지 제11항 중 어느 한 항에 따른 방법을 구현하는 오디오 신호 인코딩 장치.
  21. 제20항에 있어서,
    상기 오디오 신호 인코딩 장치는 상기 메모리를 추가로 포함하는 오디오 신호 인코딩 장치.
  22. 오디오 신호 디코딩 장치로서,
    상기 오디오 신호 디코딩 장치는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는 메모리에 결합되도록 구성되고, 상기 메모리 내의 명령어들을 판독 및 실행하여, 제12항 내지 제17항 중 어느 한 항에 따른 방법을 구현하는 오디오 신호 디코딩 장치.
  23. 제22항에 있어서,
    상기 오디오 신호 디코딩 장치는 상기 메모리를 추가로 포함하는 오디오 신호 디코딩 장치.
  24. 명령어들을 포함한 컴퓨터 판독가능 저장 매체로서,
    상기 명령어들이 컴퓨터 상에서 실행될 때, 상기 컴퓨터는 제1항 내지 제11항 또는 제12항 내지 제17항 중 어느 한 항에 따른 방법을 수행할 수 있게 되는 컴퓨터 판독가능 저장 매체.
  25. 컴퓨터 판독가능 저장 매체로서,
    제1항 내지 제11항 중 어느 한 항에 따른 방법에서 생성된 비트스트림을 포함하는 컴퓨터 판독가능 저장 매체.
KR1020247006252A 2021-07-29 2022-06-01 오디오 신호 인코딩 방법 및 장치와 오디오 신호 디코딩 방법 및 장치 KR20240038770A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202110865328.XA CN115691521A (zh) 2021-07-29 2021-07-29 一种音频信号的编解码方法和装置
CN202110865328.X 2021-07-29
PCT/CN2022/096593 WO2023005414A1 (zh) 2021-07-29 2022-06-01 一种音频信号的编解码方法和装置

Publications (1)

Publication Number Publication Date
KR20240038770A true KR20240038770A (ko) 2024-03-25

Family

ID=85058542

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247006252A KR20240038770A (ko) 2021-07-29 2022-06-01 오디오 신호 인코딩 방법 및 장치와 오디오 신호 디코딩 방법 및 장치

Country Status (4)

Country Link
US (1) US20240177721A1 (ko)
KR (1) KR20240038770A (ko)
CN (1) CN115691521A (ko)
WO (1) WO2023005414A1 (ko)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101246689B (zh) * 2004-09-17 2011-09-14 广州广晟数码技术有限公司 音频编码系统
CN101694773B (zh) * 2009-10-29 2011-06-22 北京理工大学 一种基于tda域的自适应窗切换方法
CN102222505B (zh) * 2010-04-13 2012-12-19 中兴通讯股份有限公司 可分层音频编解码方法系统及瞬态信号可分层编解码方法
IES86526B2 (en) * 2013-04-09 2015-04-08 Score Music Interactive Ltd A system and method for generating an audio file
CN112037803B (zh) * 2020-05-08 2023-09-29 珠海市杰理科技股份有限公司 音频编码方法及装置、电子设备、存储介质
CN112767954A (zh) * 2020-06-24 2021-05-07 腾讯科技(深圳)有限公司 音频编解码方法、装置、介质及电子设备

Also Published As

Publication number Publication date
CN115691521A (zh) 2023-02-03
US20240177721A1 (en) 2024-05-30
WO2023005414A1 (zh) 2023-02-02

Similar Documents

Publication Publication Date Title
CA2942885C (en) System and method for decoding an encoded audio signal using selective temporal shaping
KR102493482B1 (ko) 시간-도메인 스테레오 코딩 및 디코딩 방법, 및 관련 제품
KR102664355B1 (ko) 오디오 코딩/디코딩 모드를 결정하는 방법 및 관련 제품
KR102637514B1 (ko) 시간-도메인 스테레오 인코딩 및 디코딩 방법 및 관련 제품
KR20240038770A (ko) 오디오 신호 인코딩 방법 및 장치와 오디오 신호 디코딩 방법 및 장치
EP4362012A1 (en) Encoding and decoding methods and apparatuses for multi-channel signals
KR102492600B1 (ko) 시간-도메인 스테레오 파라미터에 대한 코딩 방법, 및 관련 제품
WO2023173941A1 (zh) 一种多声道信号的编解码方法和编解码设备以及终端设备
EP4354430A1 (en) Three-dimensional audio signal processing method and apparatus
WO2023051370A1 (zh) 编解码方法、装置、设备、存储介质及计算机程序
US20240105187A1 (en) Three-dimensional audio signal processing method and apparatus
US20230154473A1 (en) Audio coding method and related apparatus, and computer-readable storage medium
CN116798438A (zh) 一种多声道信号的编解码方法和编解码设备以及终端设备
KR20240001226A (ko) 3차원 오디오 신호 코딩 방법, 장치, 및 인코더
KR20240004869A (ko) 3차원 오디오 신호 인코딩 방법 및 장치, 및 인코더
KR20240005905A (ko) 3차원 오디오 신호 코딩 방법 및 장치, 및 인코더
CN115881138A (zh) 解码方法、装置、设备、存储介质及计算机程序产品