KR20220018557A - 스테레오 코딩 방법 및 디바이스, 및 스테레오 디코딩 방법 및 디바이스 - Google Patents

스테레오 코딩 방법 및 디바이스, 및 스테레오 디코딩 방법 및 디바이스 Download PDF

Info

Publication number
KR20220018557A
KR20220018557A KR1020227000340A KR20227000340A KR20220018557A KR 20220018557 A KR20220018557 A KR 20220018557A KR 1020227000340 A KR1020227000340 A KR 1020227000340A KR 20227000340 A KR20227000340 A KR 20227000340A KR 20220018557 A KR20220018557 A KR 20220018557A
Authority
KR
South Korea
Prior art keywords
channel signal
pitch period
sub
value
signal
Prior art date
Application number
KR1020227000340A
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
Priority claimed from CN201910581386.2A external-priority patent/CN112151045B/zh
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20220018557A publication Critical patent/KR20220018557A/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/008Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
    • 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
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/09Long term prediction, i.e. removing periodical redundancies, e.g. by using adaptive codebook or pitch predictor
    • 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/90Pitch determination of speech signals

Landscapes

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

Abstract

스테레오 인코딩 및 디코딩 성능을 개선하기 위한, 스테레오 인코딩 방법 및 장치, 및 스테레오 디코딩 방법 및 장치가 개시된다. 이러한 스테레오 인코딩 방법은, 현재 프레임의 좌측 채널 신호 및 현재 프레임의 우측 채널 신호에 대해 다운믹스 처리를 수행하여, 현재 프레임의 주 채널 신호 및 현재 프레임의 부 채널 신호를 획득하는 단계(401); 및 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속한다고 결정할 때, 주 채널 신호의 추정된 피치 주기 값을 사용하여 부 채널 신호의 피치 주기에 대해 차동 인코딩을 수행하여, 부 채널 신호의 피치 주기 인덱스 값을 획득하는 단계(403)- 부 채널 신호의 피치 주기 인덱스 값은 전송될 스테레오 인코딩된 비트스트림을 생성하기 위해 사용됨 -를 포함한다.

Description

스테레오 코딩 방법 및 디바이스, 및 스테레오 디코딩 방법 및 디바이스
본 출원은 2019년 6월 29일자로 중국 특허청에 출원되고 발명의 명칭이 "STEREO ENCODING METHOD AND APPARATUS, AND STEREO DECODING METHOD AND APPARATUS"인 중국 특허 출원 제201910581386.2호에 대한 우선권을 주장하며, 이는 그 전체가 본 명세서에 참조로 원용된다.
<기술분야>
본 출원은 스테레오 기술들의 분야에, 특히, 스테레오 인코딩 방법 및 장치, 및 스테레오 디코딩 방법 및 장치에 관련된다.
현재, 모노 오디오는 고품질 오디오에 대한 사람들의 요구를 충족시킬 수 없다. 모노 오디오와 비교할 때, 스테레오 오디오는 다양한 음향 소스들에 대한 방향감 및 분포감을 갖고, 정보의 선명도, 명료도, 및 존재감을 개선할 수 있고, 따라서 사람들에게 인기가 있다.
제한된 대역폭 상에서 스테레오 신호를 더 잘 송신하기 위해, 일반적으로 스테레오 신호가 먼저 인코딩될 필요가 있고, 다음으로 인코딩-처리된 비트스트림이 채널을 통해 디코더 측에 송신된다. 디코더 측은 수신된 비트스트림에 기초하여 디코딩 처리를 수행하여, 디코딩된 스테레오 신호를 획득한다. 이러한 스테레오 신호는 재생을 위해 사용될 수 있다.
스테레오 인코딩 및 디코딩 기술을 구현하기 위한 많은 상이한 방법들이 있다. 예를 들어, 시간 도메인 신호들이 인코더 측에서 2개의 모노 신호들로 다운믹스된다. 일반적으로, 좌측 및 우측 채널 신호들이 먼저 주 채널 신호 및 부 채널 신호로 다운믹스된다. 다음으로, 주 채널 신호 및 부 채널 신호는 모노 인코딩 방법을 사용하여 인코딩된다. 주 채널 신호는 보다 많은 수량의 비트들을 사용하여 일반적으로 인코딩되고, 부 채널 신호는 보다 적은 수량의 비트들을 사용하여 일반적으로 인코딩된다. 디코딩 동안, 주 채널 신호 및 부 채널 신호는 수신된 비트스트림에 기초하는 디코딩을 통해 일반적으로 개별적으로 획득되고, 다음으로 시간 도메인 업믹스 처리가 수행되어 디코딩된 스테레오 신호를 획득한다.
스테레오 신호들에 대해, 모노 신호들과 이들을 구별하는 중요한 특징은 사운드가 음상 정보를 갖는다는 것이며, 이는 사운드가 더 강한 공간감을 갖게 한다. 스테레오 신호에서, 부 채널 신호의 정확도는 스테레오 신호의 공간감을 더 잘 반영할 수 있고, 부 채널 인코딩의 정확도 또한 스테레오 음상의 안정성에서 중요한 역할을 한다.
스테레오 인코딩에서, 인간 음성 생성의 중요한 특징으로서, 피치 주기는 주 및 부 채널 신호들의 인코딩을 위해 중요한 파라미터이다. 피치 주기 파라미터의 예측 값의 정확도는 전체 스테레오 인코딩 품질에 영향을 미친다. 시간 도메인 또는 주파수 도메인에서의 스테레오 인코딩에서, 스테레오 파라미터, 주 채널 신호, 및 부 채널 신호는 입력 신호가 분석된 후에 획득될 수 있다. 인코딩 레이트가 비교적 높을 때(예를 들어, 32 kbps 이상), 인코더는 독립적 인코딩 스킴을 사용하여 주 채널 신호 및 부 채널 신호를 개별적으로 인코딩한다. 이러한 경우, 부 채널 신호의 피치 주기를 인코딩하기 위해 비교적 많은 수량의 비트들이 사용될 필요가 있다. 결과적으로, 인코딩 비트들의 낭비가 야기되고, 스테레오 인코딩에서 다른 인코딩 파라미터들에 할당되는 비트 리소스들이 감소되고, 전체 스테레오 인코딩 성능이 비교적 낮다. 이에 대응하여, 스테레오 디코딩 성능 또한 낮다.
본 출원의 실시예들은, 스테레오 인코딩 및 디코딩 성능을 개선하기 위한, 스테레오 인코딩 방법 및 장치, 및 스테레오 디코딩 방법 및 장치를 제공한다.
전술한 기술적 문제점을 해결하기 위해, 본 출원의 실시예들은 다음과 같은 기술적 해결책들을 제공한다.
제1 양태에 따르면, 본 출원의 실시예는 스테레오 인코딩 방법을 제공하고, 이는, 현재 프레임의 좌측 채널 신호 및 현재 프레임의 우측 채널 신호에 대해 다운믹스 처리를 수행하여, 현재 프레임의 주 채널 신호 및 현재 프레임의 부 채널 신호를 획득하는 단계; 및 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속한다고 결정할 때, 주 채널 신호의 추정된 피치 주기 값을 사용하여 부 채널 신호의 피치 주기에 대해 차동 인코딩을 수행하여, 부 채널 신호의 피치 주기 인덱스 값을 획득하는 단계- 부 채널 신호의 피치 주기 인덱스 값은 전송될 스테레오 인코딩된 비트스트림을 생성하기 위해 사용됨 -를 포함한다. 본 출원의 이러한 실시예에서, 주 채널 신호의 추정된 피치 주기 값을 사용하여 부 채널 신호의 피치 주기에 대해 차동 인코딩이 수행되기 때문에, 부 채널 신호의 피치 주기는 독립적으로 인코딩될 필요가 없다. 따라서, 적은 수량의 비트 리소스들이 차동 인코딩을 위해 부 채널 신호의 피치 주기에 할당될 수 있고, 부 채널 신호의 피치 주기에 대해 차동 인코딩이 수행되어, 스테레오 신호의 공간감 및 음상 안정성이 개선될 수 있다. 또한, 본 출원의 이러한 실시예에서, 부 채널 신호의 피치 주기에 대해 차동 인코딩을 수행하기 위해 비교적 적은 수량의 비트 리소스들이 사용된다. 따라서, 절감된 비트 리소스들이 다른 스테레오 인코딩 파라미터들에 대해 사용될 수 있어서, 부 채널의 인코딩 효율이 개선되고, 최종적으로 전체 스테레오 인코딩 품질이 개선된다.
가능한 구현에서, 이러한 방법은 추가로, 주 채널 신호 및 부 채널 신호에 기초하여 신호 타입 플래그를 획득하는 단계- 신호 타입 플래그는 주 채널 신호의 신호 타입 및 부 채널 신호의 신호 타입을 식별하기 위해 사용됨 -; 및 신호 타입 플래그가 미리 설정된 제1 플래그이고 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속할 때, 부 채널 피치 주기 재사용 플래그를 제2 플래그로 구성하는 단계- 제1 플래그 및 제2 플래그는 스테레오 인코딩된 비트스트림을 생성하기 위해 사용됨 -를 포함한다. 인코더 측이 주 채널 신호 및 부 채널 신호에 기초하여 신호 타입 플래그를 획득한다. 예를 들어, 주 채널 신호 및 부 채널 신호는 신호 모드 정보를 운반하고, 이러한 신호 모드 정보에 기초하여 신호 타입 플래그의 값이 결정된다. 주 채널 신호의 신호 타입 및 부 채널 신호의 신호 타입을 식별하기 위해 이러한 신호 타입 플래그가 사용된다. 신호 타입 플래그는 주 채널 신호의 신호 타입 및 부 채널 신호의 신호 타입 양자 모두를 표시한다. 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속하는지에 기초하여 부 채널 피치 주기 재사용 플래그의 값이 구성될 수 있고, 부 채널 신호의 피치 주기에 대해 차동 인코딩 또는 독립적 인코딩을 사용하는 것을 표시하기 위해 부 채널 피치 주기 재사용 플래그가 사용된다.
가능한 구현에서, 이러한 방법은 추가로, 프레임 구조 유사도 값이 프레임 구조 유사도 구간 외에 속한다고 결정할 때, 또는 신호 타입 플래그가 미리 설정된 제3 플래그일 때, 부 채널 피치 주기 재사용 플래그를 제4 플래그로 구성하는 단계- 제4 플래그 및 제3 플래그는 스테레오 인코딩된 비트스트림을 생성하기 위해 사용됨 -; 및 부 채널 신호의 피치 주기 및 주 채널 신호의 피치 주기를 개별적으로 인코딩하는 단계를 포함한다. 부 채널 피치 주기 재사용 플래그는 복수의 방식들로 구성될 수 있다. 예를 들어, 부 채널 피치 주기 재사용 플래그는 미리 설정된 제2 플래그일 수 있거나, 또는 제4 플래그로 구성될 수 있다. 다음은 부 채널 피치 주기 재사용 플래그를 구성하는 방법을 예로 설명한다. 먼저, 신호 타입 플래그가 미리 설정된 제1 플래그인지가 결정되고; 신호 타입 플래그가 미리 설정된 제1 플래그이면, 프레임 구조 유사도 값이 미리 설정된 프레임 구조 유사도 구간 내에 속하는지가 결정되고; 프레임 구조 유사도 값이 프레임 구조 유사도 구간 외에 속한다고 결정될 때, 부 채널 피치 주기 재사용 플래그는 제4 플래그로 구성된다. 부 채널 피치 주기 재사용 플래그는 제4 플래그를 표시하여, 디코더 측이 부 채널 신호의 피치 주기에 대해 독립적 디코딩을 수행하기로 결정할 수 있다. 또한, 신호 타입 플래그가 미리 설정된 제1 플래그인지 또는 제3 플래그인지가 결정되고, 신호 타입 플래그가 미리 설정된 제3 플래그이면, 부 채널 신호의 피치 주기 및 주 채널 신호의 피치 주기는 개별적으로 직접 인코딩된다. 즉, 부 채널 신호의 피치 주기는 독립적으로 인코딩된다.
가능한 구현에서, 프레임 구조 유사도 값은 다음과 같은 방식으로 결정되고, 이는, 현재 프레임의 부 채널 신호에 대해 개방-루프 피치 주기 분석을 수행하여, 부 채널 신호의 추정된 개방-루프 피치 주기 값을 획득하는 단계; 주 채널 신호의 추정된 피치 주기 값 및 현재 프레임의 부 채널 신호가 분할되는 서브프레임들의 수량에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 결정하는 단계; 및 부 채널 신호의 추정된 개방-루프 피치 주기 값 및 부 채널 신호의 폐쇄-루프 피치 주기 참조 값에 기초하여 프레임 구조 유사도 값을 결정하는 단계를 포함한다. 본 출원의 이러한 실시예에서, 현재 프레임의 부 채널 신호가 획득된 후에, 부 채널 신호에 대해 개방-루프 피치 주기 분석이 수행되어, 부 채널 신호의 추정된 개방-루프 피치 주기 값을 획득할 수 있다. 부 채널 신호의 폐쇄-루프 피치 주기 참조 값은 주 채널 신호의 추정된 피치 주기 값을 사용하여 결정되는 참조 값이기 때문에, 부 채널 신호의 추정된 개방-루프 피치 주기 값과 부 채널 신호의 폐쇄-루프 피치 주기 참조 값 사이의 차이가 결정되는 한, 부 채널 신호의 추정된 개방-루프 피치 주기 값과 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 사용하여 주 채널 신호와 부 채널 신호 사이의 프레임 구조 유사도 값이 계산될 수 있다.
가능한 구현에서, 주 채널 신호의 추정된 피치 주기 값 및 현재 프레임의 부 채널 신호가 분할되는 서브프레임들의 수량에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 결정하는 단계는, 주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 정수 부분 loc_T0 및 부 채널 신호의 폐쇄-루프 피치 주기 분수 부분 loc_frac_prim을 결정하는 단계; 부 채널 신호의 폐쇄-루프 피치 주기 참조 값 f_pitch_prim을 다음과 같은 방식으로 계산하는 단계를 포함하고: f_pitch_prim = loc_T0 + loc_frac_prim/N이고; 여기서, N은 부 채널 신호가 분할되는 서브프레임들의 수량을 표현한다. 본 출원의 이러한 실시예에서, 주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 정수 부분 및 폐쇄-루프 피치 주기 분수 부분이 먼저 결정된다. 예를 들어, 주 채널 신호의 추정된 피치 주기 값의 정수 부분이 부 채널 신호의 폐쇄-루프 피치 주기 정수 부분으로서 직접 사용되고, 주 채널 신호의 추정된 피치 주기 값의 분수 부분이 부 채널 신호의 폐쇄-루프 피치 주기 분수 부분으로서 사용된다. 대안적으로, 주 채널 신호의 추정된 피치 주기 값은 보간 방법을 사용하여 부 채널 신호의 폐쇄-루프 피치 주기 정수 부분 및 폐쇄-루프 피치 주기 분수 부분에 매핑될 수 있다. 본 출원의 이러한 실시예에서, 부 채널 신호의 폐쇄-루프 피치 주기 참조 값의 계산이 전술한 공식에 제한되는 것은 아닐 수 있다.
가능한 구현에서, 부 채널 신호의 추정된 개방-루프 피치 주기 값 및 부 채널 신호의 폐쇄-루프 피치 주기 참조 값에 기초하여 프레임 구조 유사도 값을 결정하는 단계는, 프레임 구조 유사도 값 ol_pitch를 다음과 같은 방식으로 계산하는 단계를 포함하고: ol_pitch = T_op - f_pitch_prim이고; 여기서, T_op는 부 채널 신호의 추정된 개방-루프 피치 주기 값을 표현하고, f_pitch_prim은 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 표현한다. 본 출원의 이러한 실시예에서, T_op는 부 채널 신호의 추정된 개방-루프 피치 주기 값을 표현하고, f_pitch_prim은 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 표현하고, T_op와 f_pitch_prim 사이의 차이는 최종 프레임 구조 유사도 값 ol_pitch로서 사용될 수 있다. 부 채널 신호의 폐쇄-루프 피치 주기 참조 값은 주 채널 신호의 추정된 피치 주기 값을 사용하여 결정되는 참조 값이기 때문에, 부 채널 신호의 추정된 개방-루프 피치 주기 값과 부 채널 신호의 폐쇄-루프 피치 주기 참조 값 사이의 차이가 결정되는 한, 부 채널 신호의 추정된 개방-루프 피치 주기 값과 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 사용하여 주 채널 신호와 부 채널 신호 사이의 프레임 구조 유사도 값이 계산될 수 있다.
가능한 구현에서, 주 채널 신호의 추정된 피치 주기 값을 사용하여 부 채널 신호의 피치 주기에 대해 차동 인코딩을 수행하는 단계는, 주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 폐쇄-루프 피치 주기 탐색을 수행하여, 부 채널 신호의 추정된 피치 주기 값을 획득하는 단계; 부 채널 신호의 피치 주기 탐색 범위 조정 인자에 기초하여 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정하는 단계; 및 주 채널 신호의 추정된 피치 주기 값, 부 채널 신호의 추정된 피치 주기 값, 및 부 채널 신호의 피치 주기 인덱스 값의 상한에 기초하여 부 채널 신호의 피치 주기 인덱스 값을 계산하는 단계를 포함한다. 인코더 측은 부 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 폐쇄-루프 피치 주기 탐색을 먼저 수행하여, 부 채널 신호의 추정된 피치 주기 값을 결정한다. 부 채널 신호의 피치 주기 인덱스 값을 조정하여, 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정하기 위해 부 채널 신호의 피치 주기 탐색 범위 조정 인자가 사용될 수 있다. 부 채널 신호의 피치 주기 인덱스 값의 상한은 부 채널 신호의 피치 주기 인덱스 값이 초과할 수 없는 상한 값을 표시한다. 부 채널 신호의 피치 주기 인덱스 값을 결정하기 위해 부 채널 신호의 피치 주기 인덱스 값이 사용될 수 있다. 주 채널 신호의 추정된 피치 주기 값, 부 채널 신호의 추정된 피치 주기 값, 및 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정한 후에, 인코더 측은, 주 채널 신호의 추정된 피치 주기 값, 부 채널 신호의 추정된 피치 주기 값, 및 부 채널 신호의 피치 주기 인덱스 값의 상한에 기초하여 차동 인코딩을 수행하고, 부 채널 신호의 피치 주기 인덱스 값을 출력한다.
가능한 구현에서, 주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 폐쇄-루프 피치 주기 탐색을 수행하여, 부 채널 신호의 추정된 피치 주기 값을 획득하는 단계는, 정수 정밀도 및 분수 정밀도를 사용하여 그리고 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 부 채널 신호 폐쇄-루프 피치 주기 탐색의 시작 포인트로서 사용하여 폐쇄-루프 피치 주기 탐색을 수행하여, 부 채널 신호의 추정된 피치 주기 값을 획득하는 단계- 부 채널 신호의 폐쇄-루프 피치 주기 참조 값은 주 채널 신호의 추정된 피치 주기 값 및 현재 프레임의 부 채널 신호가 분할되는 서브프레임들의 수량에 기초하여 결정됨 -를 포함한다. 정수 정밀도 및 다운샘플링 분수 정밀도를 사용하여 그리고 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 부 채널 신호 폐쇄-루프 피치 주기 탐색의 시작 포인트로서 사용하여 폐쇄-루프 피치 주기 탐색이 수행되고, 최종적으로 부 채널 신호의 추정된 피치 주기 값을 획득하기 위해 보간된 정규화된 상관이 계산된다.
가능한 구현에서, 부 채널 신호의 피치 주기 탐색 범위 조정 인자에 기초하여 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정하는 단계는, 부 채널 신호의 피치 주기 인덱스 값의 상한 soft_reuse_index_high_limit를 다음과 같은 방식으로 계산하는 단계를 포함하고: soft_reuse_index_high_limit = 0.5 + 2Z이고; 여기서 Z는 부 채널 신호의 피치 주기 탐색 범위 조정 인자이고, Z의 값은 3, 4, 또는 5이다. 차동 인코딩에서 부 채널 신호의 피치 주기 인덱스의 상한을 계산하기 위해, 부 채널 신호의 피치 주기 탐색 범위 조정 인자 Z가 먼저 결정될 필요가 있다. 예를 들어, Z는 3, 4, 또는 5일 수 있다. Z의 구체적인 값이 본 명세서에서 제한되는 것은 아니고, 구체적인 값은 적용 시나리오에 의존한다.
가능한 구현에서, 주 채널 신호의 추정된 피치 주기 값, 부 채널 신호의 추정된 피치 주기 값, 및 부 채널 신호의 피치 주기 인덱스 값의 상한에 기초하여 부 채널 신호의 피치 주기 인덱스 값을 계산하는 단계는, 주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 정수 부분 loc_T0 및 부 채널 신호의 폐쇄-루프 피치 주기 분수 부분 loc_frac_prim을 결정하는 단계; 부 채널 신호의 피치 주기 인덱스 값 soft_reuse_index를 다음과 같은 방식으로 계산하는 단계를 포함하고: soft_reuse_index = (N * pitch_soft_reuse + pitch_frac_soft_reuse) - (N * loc_T0 + loc_frac_prim) + soft_reuse_index_high_limit/M이고; 여기서, pitch_soft_reuse는 부 채널 신호의 추정된 피치 주기 값의 정수 부분을 표현하고, pitch_frac_soft_reuse는 부 채널 신호의 추정된 피치 주기 값의 분수 부분을 표현하고, soft_reuse_index_high_limit는 부 채널 신호의 피치 주기 인덱스 값의 상한을 표현하고, N은 부 채널 신호가 분할되는 서브프레임들의 수량을 표현하고, M은 부 채널 신호의 피치 주기 인덱스 값의 상한의 조정 인자를 표현하고, M은 0이 아닌 실수이고, *는 승산 연산자를 표현하고, +는 가산 연산자를 표현하고, -는 감산 연산자를 표현한다. 구체적으로, 주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 정수 부분 loc_T0 및 부 채널 신호의 폐쇄-루프 피치 주기 분수 부분 loc_frac_prim이 먼저 결정된다. 상세사항들에 대해서는, 전술한 계산 프로세스를 참조한다. N은 부 채널 신호가 분할되는 서브프레임들의 수량을 표현하고, 예를 들어, N의 값은 3, 4, 또는 5일 수 있다. M은 부 채널 신호의 피치 주기 인덱스 값의 상한의 조정 인자를 표현하고, M은 0이 아닌 실수이고, 예를 들어, M의 값은 2 또는 3일 수 있다. N 및 M의 값들은 적용 시나리오에 의존하고, 본 명세서에서 제한되는 것은 아니다.
가능한 구현에서, 이러한 방법은 현재 프레임의 인코딩 레이트가 미리 설정된 레이트 임계값을 초과하는 스테레오 인코딩 시나리오에 적용되고, 이러한 레이트 임계값은 다음과 같은 값들: 32 kbps(kilobits per second), 48 kbps, 64 kbps, 96 kbps, 128 kbps, 160 kbps, 192 kbps, 및 256 kbps 중 적어도 하나이다. 레이트 임계값은 32 kbps 이상일 수 있다. 예를 들어, 레이트 임계값은 48 kbps, 64 kbps, 96 kbps, 128 kbps, 160 kbps, 192 kbps, 또는 256 kbps일 수 있다. 레이트 임계값의 구체적인 값은 적용 시나리오에 기초하여 결정될 수 있다. 다른 예를 들어, 본 출원의 이러한 실시예가 전술한 레이트들로 제한되는 것은 아닐 수 있다. 전술한 레이트들 외에도, 레이트 임계값은, 예를 들어, 80 kbps, 144 kbps 또는 320 kbps일 수 있다. 인코딩 레이트가 비교적 높을 때(예를 들어, 32 kbps 이상), 부 채널의 피치 주기에 대해 독립적 인코딩이 수행되지 않고, 참조 값으로서 주 채널 신호의 추정된 피치 주기 값이 사용되고, 부 채널 신호에 비트 리소스들이 재할당되어, 스테레오 인코딩 품질을 개선한다.
가능한 구현에서, 프레임 구조 유사도 구간의 최소값은 -4.0이고, 프레임 구조 유사도 구간의 최대값은 3.75이거나; 또는 프레임 구조 유사도 구간의 최소값은 -2.0이고, 프레임 구조 유사도 구간의 최대값은 1.75이거나; 또는 프레임 구조 유사도 구간의 최소값은 -1.0이고, 프레임 구조 유사도 구간의 최대값은 0.75이다. 프레임 구조 유사도 구간의 최대값 및 최소값은 복수의 값들을 각각 갖는다. 예를 들어, 본 출원의 이러한 실시예에서, 복수의 프레임 구조 유사도 구간들이 설정될 수 있고, 예를 들어, 3개의 레벨들의 프레임 구조 유사도 구간들이 설정될 수 있다. 예를 들어, 최저-레벨 프레임 구조 유사도 구간의 최소값은 -4.0이고, 최저-레벨 프레임 구조 유사도 구간의 최대값은 3.75이고; 중간-레벨 프레임 구조 유사도 구간의 최소값은 -2.0이고, 중간-레벨 프레임 구조 유사도 구간의 최대값은 1.75이고; 최고-레벨 프레임 구조 유사도 구간의 최소값은 -1.0이고, 최고-레벨 프레임 구조 유사도 구간의 최대값은 0.75이다.
제2 양태에 따르면, 본 출원의 실시예는 스테레오 디코딩 방법을 추가로 제공하고, 이는, 수신된 스테레오 인코딩된 비트스트림에 기초하여, 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행할지를 결정하는 단계; 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하기로 결정할 때, 스테레오 인코딩된 비트스트림으로부터, 현재 프레임의 주 채널 신호의 추정된 피치 주기 값 및 현재 프레임의 부 채널 신호의 피치 주기 인덱스 값을 획득하는 단계; 및 주 채널 신호의 추정된 피치 주기 값 및 부 채널 신호의 피치 주기 인덱스 값에 기초하여 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하여, 부 채널 신호의 추정된 피치 주기 값을 획득하는 단계- 부 채널 신호의 추정된 피치 주기 값은 스테레오 디코딩된 비트스트림을 획득하기 위한 디코딩에 사용됨 -를 포함한다. 본 출원의 이러한 실시예에서, 부 채널 신호의 피치 주기에 대해 차동 디코딩이 수행될 수 있을 때, 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하여, 부 채널 신호의 추정된 피치 주기 값을 획득하기 위해 주 채널 신호의 추정된 피치 주기 값 및 부 채널 신호의 피치 주기 인덱스 값이 사용될 수 있고, 부 채널 신호의 추정된 피치 주기 값은 스테레오 디코딩된 비트스트림을 획득하기 위한 디코딩에 사용될 수 있다. 따라서, 스테레오 신호의 공간감 및 음상 안정성이 개선될 수 있다.
가능한 구현에서, 수신된 스테레오 인코딩된 비트스트림에 기초하여, 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행할지를 결정하는 단계는, 현재 프레임으로부터 부 채널 신호 피치 주기 재사용 플래그 및 신호 타입 플래그를 획득하는 단계- 신호 타입 플래그는 주 채널 신호의 신호 타입 및 부 채널 신호의 신호 타입을 식별하기 위해 사용됨 -; 및 신호 타입 플래그가 미리 설정된 제1 플래그이고 부 채널 신호 피치 주기 재사용 플래그가 제2 플래그일 때, 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하기로 결정하는 단계를 포함한다. 본 출원의 이러한 실시예에서, 부 채널 피치 주기 재사용 플래그는 복수의 방식들로 구성될 수 있다. 예를 들어, 부 채널 피치 주기 재사용 플래그는 미리 설정된 제2 플래그 또는 제4 플래그일 수 있다. 예를 들어, 부 채널 피치 주기 재사용 플래그의 값은 0 또는 1일 수 있고, 여기서 제2 플래그는 1이고, 제4 플래그는 0이다. 유사하게, 신호 타입 플래그는 미리 설정된 제1 플래그 또는 제3 플래그일 수 있다. 예를 들어, 신호 타입 플래그의 값은 0 또는 1일 수 있고, 여기서 제1 플래그는 1이고, 제3 플래그는 0이다. 예를 들어, 부 채널 피치 주기 재사용 플래그의 값이 1일 때, 그리고 신호 타입 플래그의 값이 1일 때, 차동 디코딩 프로시저가 수행된다.
가능한 구현에서, 이러한 방법은 추가로, 신호 타입 플래그가 미리 설정된 제1 플래그이고 부 채널 신호 피치 주기 재사용 플래그가 제4 플래그일 때, 또는 신호 타입 플래그가 미리 설정된 제3 식별자일 때, 부 채널 신호의 피치 주기 및 주 채널 신호의 피치 주기를 개별적으로 디코딩하는 단계를 포함한다. 부 채널 피치 주기 재사용 플래그가 제1 플래그이고, 부 채널 신호 피치 주기 재사용 플래그가 제4 플래그일 때, 부 채널 신호의 피치 주기 및 주 채널 신호의 피치 주기는 개별적으로 직접 디코딩된다. 즉, 부 채널 신호의 피치 주기는 독립적으로 디코딩된다. 다른 예를 들어, 신호 타입 플래그가 미리 설정된 제3 플래그일 때, 부 채널 신호의 피치 주기 및 주 채널 신호의 피치 주기는 개별적으로 디코딩된다. 디코더 측은, 스테레오 인코딩된 비트스트림에서 운반되는 부 채널 피치 주기 재사용 플래그 및 신호 타입 플래그에 기초하여, 차동 디코딩 방법 또는 독립적 디코딩 방법을 실행하기로 결정할 수 있다.
가능한 구현에서, 주 채널 신호의 추정된 피치 주기 값 및 부 채널 신호의 피치 주기 인덱스 값에 기초하여 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하는 단계는, 주 채널 신호의 추정된 피치 주기 값 및 현재 프레임의 부 채널 신호가 분할되는 서브프레임들의 수량에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 결정하는 단계; 부 채널 신호의 피치 주기 탐색 범위 조정 인자에 기초하여 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정하는 단계; 및 부 채널 신호의 폐쇄-루프 피치 주기 참조 값, 부 채널의 피치 주기 인덱스 값, 및 부 채널 신호의 피치 주기 인덱스 값의 상한에 기초하여 부 채널 신호의 추정된 피치 주기 값을 계산하는 단계를 포함한다. 예를 들어, 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 결정하기 위해 주 채널 신호의 추정된 피치 주기 값이 사용된다. 부 채널 신호의 피치 주기 인덱스 값을 조정하여, 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정하기 위해 부 채널 신호의 피치 주기 탐색 범위 조정 인자가 사용될 수 있다. 부 채널 신호의 피치 주기 인덱스 값의 상한은 부 채널 신호의 피치 주기 인덱스 값이 초과할 수 없는 상한 값을 표시한다. 부 채널 신호의 피치 주기 인덱스 값을 결정하기 위해 부 채널 신호의 피치 주기 인덱스 값이 사용될 수 있다. 부 채널 신호의 폐쇄-루프 피치 주기 참조 값, 부 채널 신호의 피치 주기 인덱스 값, 및 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정한 후에, 디코더 측은 부 채널 신호의 폐쇄-루프 피치 주기 참조 값, 부 채널 신호의 피치 주기 인덱스 값, 및 부 채널 신호의 피치 주기 인덱스 값의 상한에 기초하여 차동 디코딩을 수행하고, 부 채널 신호의 추정된 피치 주기 값을 출력한다.
가능한 구현에서, 부 채널 신호의 폐쇄-루프 피치 주기 참조 값, 부 채널 신호의 피치 주기 인덱스 값, 및 부 채널 신호의 피치 주기 인덱스 값의 상한에 기초하여 부 채널 신호의 추정된 피치 주기 값을 계산하는 단계는, 부 채널 신호의 추정된 피치 주기 값 T0_pitch를 다음과 같은 방식으로 계산하는 단계를 포함하고: T0_pitch = f_pitch_prim + (soft_reuse_index - soft_reuse_index_high_limit/M)/N이고; 여기서, f_pitch_prim은 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 표현하고, soft_reuse_index는 부 채널 신호의 피치 주기 인덱스 값을 표현하고, N은 부 채널 신호가 분할되는 서브프레임들의 수량을 표현하고, M은 부 채널 신호의 피치 주기 인덱스 값의 상한의 조정 인자를 표현하고, M은 0이 아닌 실수이고, /는 제산 연산자를 표현하고, +는 가산 연산자를 표현하고, -는 감산 연산자를 표현한다. 구체적으로, 주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 정수 부분 loc_T0 및 부 채널 신호의 폐쇄-루프 피치 주기 분수 부분 loc_frac_prim이 결정된다. N은 부 채널 신호가 분할되는 서브프레임들의 수량을 표현하고, 예를 들어, N의 값은 3, 4, 또는 5일 수 있다. M은 부 채널 신호의 피치 주기 인덱스 값의 상한의 조정 인자를 표현하고, M은 0이 아닌 실수이고, 예를 들어, M의 값은 2 또는 3일 수 있다. N 및 M의 값들은 적용 시나리오에 의존하고, 본 명세서에서 제한되는 것은 아니다. 본 출원의 이러한 실시예에서, 부 채널 신호의 추정된 피치 주기 값의 계산이 전술한 공식에 제한되는 것은 아닐 수 있다.
제3 양태에 따르면, 본 출원의 실시예는 스테레오 인코딩 장치를 추가로 제공하고, 이는, 현재 프레임의 좌측 채널 신호 및 현재 프레임의 우측 채널 신호에 대해 다운믹스 처리를 수행하여, 현재 프레임의 주 채널 신호 및 현재 프레임의 부 채널 신호를 획득하도록 구성되는 다운믹스 모듈; 및, 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속한다고 결정될 때, 주 채널 신호의 추정된 피치 주기 값을 사용하여 부 채널 신호의 피치 주기에 대해 차동 인코딩을 수행하여, 부 채널 신호의 피치 주기 인덱스 값을 획득하도록 구성되는 차동 인코딩 모듈- 부 채널 신호의 피치 주기 인덱스 값은 전송될 스테레오 인코딩된 비트스트림을 생성하기 위해 사용됨 -을 포함한다.
가능한 구현에서, 스테레오 인코딩 장치는 추가로, 주 채널 신호 및 부 채널 신호에 기초하여 신호 타입 플래그를 획득하도록 구성되는 신호 타입 플래그 획득 모듈- 신호 타입 플래그는 주 채널 신호의 신호 타입 및 부 채널 신호의 신호 타입을 식별하기 위해 사용됨 -; 및, 신호 타입 플래그가 미리 설정된 제1 플래그이고 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속할 때, 부 채널 피치 주기 재사용 플래그를 제2 플래그로 구성하도록 구성되는 재사용 플래그 구성 모듈- 제1 플래그 및 제2 플래그는 스테레오 인코딩된 비트스트림을 생성하기 위해 사용됨 -을 포함한다.
가능한 구현에서, 스테레오 인코딩 장치는 추가로, 프레임 구조 유사도 값이 프레임 구조 유사도 구간 외에 속한다고 결정할 때, 또는 신호 타입 플래그가 미리 설정된 제3 플래그일 때, 부 채널 피치 주기 재사용 플래그를 제4 플래그로 구성하도록 추가로 구성되는 재사용 플래그 구성 모듈- 제4 플래그 및 제3 플래그는 스테레오 인코딩된 비트스트림을 생성하기 위해 사용됨 -; 및 부 채널 신호의 피치 주기 및 주 채널 신호의 피치 주기를 개별적으로 인코딩하도록 구성되는 독립적 인코딩 모듈을 포함한다.
가능한 구현에서, 스테레오 인코딩 장치는 추가로, 현재 프레임의 부 채널 신호에 대해 개방-루프 피치 주기 분석을 수행하여, 부 채널 신호의 추정된 개방-루프 피치 주기 값을 획득하도록 구성되는 개방-루프 피치 주기 분석 모듈; 주 채널 신호의 추정된 피치 주기 값 및 현재 프레임의 부 채널 신호가 분할되는 서브프레임들의 수량에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 결정하도록 구성되는 폐쇄-루프 피치 주기 분석 모듈; 및 부 채널 신호의 추정된 개방-루프 피치 주기 값 및 부 채널 신호의 폐쇄-루프 피치 주기 참조 값에 기초하여 프레임 구조 유사도 값을 결정하도록 구성되는 유사도 값 계산 모듈을 포함한다.
가능한 구현에서, 폐쇄-루프 피치 주기 분석 모듈은, 주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 정수 부분 loc_T0 및 부 채널 신호의 폐쇄-루프 피치 주기 분수 부분 loc_frac_prim을 결정하도록; 그리고 부 채널 신호의 폐쇄-루프 피치 주기 참조 값 f_pitch_prim을 다음과 같은 방식으로 계산하도록 구성되고: f_pitch_prim = loc_T0 + loc_frac_prim/N이고; 여기서, N은 부 채널 신호가 분할되는 서브프레임들의 수량을 표현한다.
가능한 구현에서, 유사도 값 계산 모듈은 프레임 구조 유사도 값 ol_pitch를 다음과 같은 방식으로 계산하도록 구성되고: ol_pitch = T_op - f_pitch_prim이고; 여기서, T_op는 부 채널 신호의 추정된 개방-루프 피치 주기 값을 표현하고, f_pitch_prim은 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 표현한다.
가능한 구현에서, 차동 인코딩 모듈은, 주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 폐쇄-루프 피치 주기 탐색을 수행하여, 부 채널 신호의 추정된 피치 주기 값을 획득하도록 구성되는 폐쇄-루프 피치 주기 탐색 모듈; 부 채널 신호의 피치 주기 탐색 범위 조정 인자에 기초하여 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정하도록 구성되는 인덱스 값 상한 결정 모듈; 및 주 채널 신호의 추정된 피치 주기 값, 부 채널 신호의 추정된 피치 주기 값, 및 부 채널 신호의 피치 주기 인덱스 값의 상한에 기초하여 부 채널 신호의 피치 주기 인덱스 값을 계산하도록 구성되는 인덱스 값 계산 모듈을 포함한다.
가능한 구현에서, 폐쇄-루프 피치 주기 탐색 모듈은, 정수 정밀도 및 분수 정밀도를 사용하여 그리고 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 부 채널 신호 폐쇄-루프 피치 주기 탐색의 시작 포인트로서 사용하여 폐쇄-루프 피치 주기 탐색을 수행하여, 부 채널 신호의 추정된 피치 주기 값을 획득하도록- 부 채널 신호의 폐쇄-루프 피치 주기 참조 값은 주 채널 신호의 추정된 피치 주기 값 및 현재 프레임의 부 채널 신호가 분할되는 서브프레임들의 수량에 기초하여 결정됨 - 구성된다.
가능한 구현에서, 인덱스 값 상한 결정 모듈은 부 채널 신호의 피치 주기 인덱스 값의 상한 soft_reuse_index_high_limit를 다음과 같은 방식으로 계산하도록 구성되고: soft_reuse_index_high_limit = 0.5 + 2Z이고; 여기서 Z는 부 채널 신호의 피치 주기 탐색 범위 조정 인자이고, Z의 값은 3, 4, 또는 5이다.
가능한 구현에서, 인덱스 값 계산 모듈은, 인덱스 값 계산 모듈은, 주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 정수 부분 loc_T0 및 부 채널 신호의 폐쇄-루프 피치 주기 분수 부분 loc_frac_prim을 결정하도록; 그리고 부 채널 신호의 피치 주기 인덱스 값 soft_reuse_index를 다음과 같은 방식으로 계산하도록 구성되고: soft_reuse_index = (N * pitch_soft_reuse + pitch_frac_soft_reuse) - (N * loc_T0 + loc_frac_prim) + soft_reuse_index_high_limit/M이고; 여기서, pitch_soft_reuse는 부 채널 신호의 추정된 피치 주기 값의 정수 부분을 표현하고, pitch_frac_soft_reuse는 부 채널 신호의 추정된 피치 주기 값의 분수 부분을 표현하고, soft_reuse_index_high_limit는 부 채널 신호의 피치 주기 인덱스 값의 상한을 표현하고, N은 부 채널 신호가 분할되는 서브프레임들의 수량을 표현하고, M은 부 채널 신호의 피치 주기 인덱스 값의 상한의 조정 인자를 표현하고, M은 0이 아닌 실수이고, *는 승산 연산자를 표현하고, +는 가산 연산자를 표현하고, -는 감산 연산자를 표현한다.
가능한 구현에서, 스테레오 인코딩 장치는 현재 프레임의 인코딩 레이트가 미리 설정된 레이트 임계값을 초과하는 스테레오 인코딩 시나리오에 적용되고, 이러한 레이트 임계값은 다음과 같은 값들: 32 kbps(kilobits per second), 48 kbps, 64 kbps, 96 kbps, 128 kbps, 160 kbps, 192 kbps, 및 256 kbps 중 적어도 하나이다.
가능한 구현에서, 프레임 구조 유사도 구간의 최소값은 -4.0이고, 프레임 구조 유사도 구간의 최대값은 3.75이거나; 또는 프레임 구조 유사도 구간의 최소값은 -2.0이고, 프레임 구조 유사도 구간의 최대값은 1.75이거나; 또는 프레임 구조 유사도 구간의 최소값은 -1.0이고, 프레임 구조 유사도 구간의 최대값은 0.75이다.
본 출원의 제3 양태에서, 스테레오 인코딩 장치의 구성 모듈들은 제1 양태 및 가능한 구현들에서 설명되는 단계들을 추가로 수행할 수 있다. 상세사항들에 대해서는, 제1 양태 및 가능한 구현들에서의 전술한 설명들을 참조한다.
제4 양태에 따르면, 본 출원의 실시예는 스테레오 디코딩 장치를 추가로 제공하고, 이는, 수신된 스테레오 인코딩된 비트스트림에 기초하여, 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행할지를 결정하도록 구성되는 결정 모듈; 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하기로 결정할 때, 스테레오 인코딩된 비트스트림으로부터, 현재 프레임의 주 채널 신호의 추정된 피치 주기 값 및 현재 프레임의 부 채널 신호의 피치 주기 인덱스 값을 획득하도록 구성되는 값 획득 모듈; 및 주 채널 신호의 추정된 피치 주기 값 및 부 채널 신호의 피치 주기 인덱스 값에 기초하여 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하여, 부 채널 신호의 추정된 피치 주기 값을 획득하도록 구성되는 차동 디코딩 모듈- 부 채널 신호의 추정된 피치 주기 값은 스테레오 디코딩된 비트스트림을 획득하기 위한 디코딩에 사용됨 -을 포함한다.
가능한 구현에서, 결정 모듈은, 현재 프레임으로부터 부 채널 신호 피치 주기 재사용 플래그 및 신호 타입 플래그를 획득하도록- 신호 타입 플래그는 주 채널 신호의 신호 타입 및 부 채널 신호의 신호 타입을 식별하기 위해 사용됨 -; 그리고 신호 타입 플래그가 미리 설정된 제1 플래그이고 부 채널 신호 피치 주기 재사용 플래그가 제2 플래그일 때, 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하기로 결정하도록 구성된다.
가능한 구현에서, 스테레오 디코딩 장치는 추가로, 신호 타입 플래그가 미리 설정된 제1 플래그이고 부 채널 신호 피치 주기 재사용 플래그가 제4 플래그일 때, 또는 신호 타입 플래그가 미리 설정된 제3 식별자이고 부 채널 신호 피치 주기 재사용 플래그가 제4 플래그일 때, 부 채널 신호의 피치 주기 및 주 채널 신호의 피치 주기를 개별적으로 디코딩하도록 구성되는 독립적 디코딩 모듈을 포함한다.
가능한 구현에서, 차동 디코딩 모듈은, 주 채널 신호의 추정된 피치 주기 값 및 현재 프레임의 부 채널 신호가 분할되는 서브프레임들의 수량에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 결정하도록 구성되는 참조 값 결정 서브모듈; 부 채널 신호의 피치 주기 탐색 범위 조정 인자에 기초하여 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정하도록 구성되는 인덱스 값 상한 결정 서브모듈; 및 부 채널 신호의 폐쇄-루프 피치 주기 참조 값, 부 채널의 피치 주기 인덱스 값, 및 부 채널 신호의 피치 주기 인덱스 값의 상한에 기초하여 부 채널 신호의 추정된 피치 주기 값을 계산하도록 구성되는 추정된 값 계산 서브모듈을 포함한다.
가능한 구현에서, 추정 값 계산 서브모듈은 부 채널 신호의 추정된 피치 주기 값 T0_pitch를 다음과 같은 방식으로 계산하도록 구성되고:
T0_pitch = f_pitch_prim + (soft_reuse_index - soft_reuse_index_high_limit/M)/N이고; 여기서,
f_pitch_prim은 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 표현하고, soft_reuse_index는 부 채널 신호의 피치 주기 인덱스 값을 표현하고, N은 부 채널 신호가 분할되는 서브프레임들의 수량을 표현하고, M은 부 채널 신호의 피치 주기 인덱스 값의 상한의 조정 인자를 표현하고, M은 0이 아닌 실수이고, /는 제산 연산자를 표현하고, +는 가산 연산자를 표현하고, -는 감산 연산자를 표현한다.
본 출원의 제4 양태에서, 스테레오 디코딩 장치의 구성 모듈들은 제2 양태 및 가능한 구현들에서 설명되는 단계들을 추가로 수행할 수 있다. 상세사항들에 대해서는, 제2 양태 및 가능한 구현들에서의 전술한 설명들을 참조한다.
제5 양태에 따르면, 본 출원의 실시예는 스테레오 처리 장치를 제공한다. 이러한 스테레오 처리 장치는 스테레오 인코딩 장치, 스테레오 디코딩 장치, 또는 칩과 같은 엔티티를 포함할 수 있고, 이러한 스테레오 처리 장치는 프로세서를 포함한다. 선택적으로, 스테레오 처리 장치는 메모리를 추가로 포함할 수 있다. 이러한 메모리는 명령어들을 저장하도록 구성되고; 프로세서는 메모리에서의 명령어들을 실행하도록 구성되어, 스테레오 처리 장치가 제1 양태 또는 제2 양태에 따른 방법을 수행한다.
제6 양태에 따르면, 본 출원의 실시예는 컴퓨터-판독가능 저장 매체를 제공한다. 이러한 컴퓨터-판독가능 저장 매체는 명령어들을 저장하고, 이러한 명령어들이 컴퓨터 상에서 실행될 때, 이러한 컴퓨터는 제1 양태 또는 제2 양태에 따른 방법을 수행하는 것이 가능하게 된다.
제7 양태에 따르면, 본 출원의 실시예는 명령어들을 포함하는 컴퓨터 프로그램 제품을 제공한다. 이러한 컴퓨터 프로그램 제품이 컴퓨터 상에서 실행될 때, 이러한 컴퓨터는 제1 양태 또는 제2 양태에 따른 방법을 수행하는 것이 가능하게 된다.
제8 양태에 따르면, 본 출원은 칩 시스템을 제공한다. 이러한 칩 시스템은 전술한 양태들에서의 기능들, 예를 들어, 전술한 방법들에서의 데이터 및/또는 정보를 전송 또는 처리하는 것을 구현함에 있어서 스테레오 인코딩 장치 또는 스테레오 디코딩 장치를 지원하도록 구성되는 프로세서를 포함한다. 가능한 설계에서, 이러한 칩 시스템은 메모리를 추가로 포함하고, 이러한 메모리는 스테레오 인코딩 장치 또는 스테레오 디코딩 장치에 필요한 프로그램 명령어들 및 데이터를 저장하도록 구성된다. 이러한 칩 시스템은 칩을 포함할 수 있거나, 또는 칩 및 다른 개별 디바이스를 포함할 수 있다.
도 1은 본 출원의 실시예에 따른 스테레오 처리 시스템의 구성 구조의 개략도이다.
도 2a는 본 출원의 실시예에 따른 단말 디바이스에 대한 스테레오 인코더 및 스테레오 디코더의 적용의 개략도이다.
도 2b는 본 출원의 실시예에 따른 무선 디바이스 또는 코어 네트워크 디바이스에 대한 스테레오 인코더의 적용의 개략도이다.
도 2c는 본 출원의 실시예에 따른 무선 디바이스 또는 코어 네트워크 디바이스에 대한 스테레오 디코더의 적용의 개략도이다.
도 3a는 본 출원의 실시예에 따른 단말 디바이스에 대한 멀티-채널 인코더 및 멀티-채널 디코더의 적용의 개략도이다.
도 3b는 본 출원의 실시예에 따른 무선 디바이스 또는 코어 네트워크 디바이스에 대한 멀티-채널 인코더의 적용의 개략도이다.
도 3c는 본 출원의 실시예에 따른 무선 디바이스 또는 코어 네트워크 디바이스에 대한 멀티-채널 디코더의 적용의 개략도이다.
도 4는 본 출원의 실시예에 따른 스테레오 인코딩 장치와 스테레오 디코딩 장치 사이의 상호작용의 개략적인 흐름도이다.
도 5a 및 도 5b는 본 출원의 실시예에 따른 스테레오 신호 인코딩의 개략적인 흐름도이다.
도 6은 본 출원의 실시예에 따른 주 채널 신호의 피치 주기 파라미터 및 부 채널 신호의 피치 주기 파라미터를 인코딩하는 흐름도이다.
도 7은 독립적 인코딩 스킴을 사용하여 획득되는 피치 주기 양자화 결과와 차동 인코딩 스킴을 사용하여 획득되는 피치 주기 양자화 결과 사이의 비교도이다.
도 8은 독립적 인코딩 스킴이 사용된 후에 고정 코드북에 할당되는 비트들의 수량과 차동 인코딩 스킴이 사용된 후에 고정 코드북에 할당되는 비트들의 수량 사이의 비교도이다.
도 9는 본 출원의 실시예에 따른 시간 도메인 스테레오 인코딩 방법의 개략도이다.
도 10은 본 출원의 실시예에 따른 스테레오 인코딩 장치의 구성 구조의 개략도이다.
도 11은 본 출원의 실시예에 따른 스테레오 디코딩 장치의 구성 구조의 개략도이다.
도 12는 본 출원의 실시예에 따른 다른 스테레오 인코딩 장치의 구성 구조의 개략도이다.
도 13은 본 출원의 실시예에 따른 다른 스테레오 디코딩 장치의 구성 구조의 개략도이다.
본 출원의 실시예들은, 스테레오 인코딩 및 디코딩 성능을 개선하기 위한, 스테레오 인코딩 방법 및 장치, 및 스테레오 디코딩 방법 및 장치를 제공한다.
다음은 본 출원의 실시예들을 첨부 도면들을 참조하여 설명한다.
본 출원의 명세서, 청구항들, 및 첨부 도면들에서, "제1(first)", "제2(second)" 등이라는 용어들은 유사한 대상들을 구별하기 위해 의도되는 것이고 반드시 구체적인 순서 또는 시퀀스를 표시하는 것은 아니다. 이러한 방식으로 사용되는 용어들은 적절한 상황들에서 교환가능하다는 점이 이해되어야 한다. 이러한 것은 단지 본 출원의 실시예들에서 동일한 속성을 갖는 대상들이 설명될 때 사용되는 구별 방식이다. 또한, "포함하는(include)", "갖는(have)"이라는 용어들, 및 이들의 임의의 다른 변형들은 비-배타적 포함을 커버하도록 의도되며, 따라서 일련의 유닛들을 포함하는 프로세스, 방법, 시스템, 제품, 또는 디바이스가 반드시 이러한 유닛들로 제한되는 것은 아니며, 명확히 열거되지 않은 또는 이러한 프로세스, 방법, 시스템, 제품, 또는 디바이스에 내재되지 않은 다른 유닛들을 포함할 수 있다.
본 출원의 실시예들에서의 기술적 해결책들은 다양한 스테레오 처리 시스템들에 적용될 수 있다. 도 1은 본 출원의 실시예에 따른 스테레오 처리 시스템의 구성 구조의 개략도이다. 스테레오 처리 시스템(100)은 스테레오 인코딩 장치(101) 및 스테레오 디코딩 장치(102)를 포함할 수 있다. 스테레오 인코딩 장치(101)는 스테레오 인코딩된 비트스트림을 생성하도록 구성될 수 있고, 다음으로 이러한 스테레오 인코딩된 비트스트림은 오디오 송신 채널을 통해 스테레오 디코딩 장치(102)에 송신될 수 있다. 스테레오 디코딩 장치(102)는 스테레오 인코딩된 비트스트림을 수신하고, 다음으로 스테레오 디코딩 장치(102)의 스테레오 디코딩 기능을 실행하여, 최종적으로 스테레오 디코딩된 비트스트림을 획득할 수 있다.
본 출원의 이러한 실시예에서, 스테레오 인코딩 장치는 오디오 통신 요건을 갖는 다양한 단말 디바이스들, 및 트랜스코딩 요건을 갖는 무선 디바이스 및 코어 네트워크 디바이스에 적용될 수 있다. 예를 들어, 스테레오 인코딩 장치는 전술한 단말 디바이스, 무선 디바이스, 또는 코어 네트워크 디바이스의 스테레오 인코더일 수 있다. 유사하게, 스테레오 디코딩 장치는 오디오 통신 요건을 갖는 다양한 단말 디바이스들, 및 트랜스코딩 요건을 갖는 무선 디바이스 및 코어 네트워크 디바이스에 적용될 수 있다. 예를 들어, 스테레오 디코딩 장치는 전술한 단말 디바이스, 무선 디바이스, 또는 코어 네트워크 디바이스의 스테레오 디코더일 수 있다.
도 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)를 사용하여 채널-인코딩되고, 다음으로 채널 인코딩이 완료된 후에 송신된다.
도 2c는 본 출원의 실시예에 따른 무선 디바이스 또는 코어 네트워크 디바이스에 대한 스테레오 디코더의 적용의 개략도이다. 무선 디바이스 또는 코어 네트워크 디바이스(25)는, 채널 디코더(251), 스테레오 디코더(255), 다른 오디오 인코더(256), 및 채널 인코더(254). 다른 오디오 인코더(256)는 스테레오 인코더 이외의 오디오 인코더이다. 무선 디바이스 또는 코어 네트워크 디바이스(25)에서, 채널 디코더(251)에 의해 디바이스에 진입하는 신호가 먼저 채널 디코딩되고, 다음으로 스테레오 디코더(255)를 사용하여 수신된 스테레오 인코딩된 비트스트림이 디코딩되고, 다음으로 다른 오디오 인코더(256)를 사용하여 (스테레오 인코딩 이외의) 오디오 인코딩이 수행된다. 최종적으로, 스테레오 신호는 채널 인코더(254)를 사용하여 채널-인코딩되고, 다음으로 채널 인코딩이 완료된 후에 송신된다. 무선 디바이스 또는 코어 네트워크 디바이스에서, 트랜스코딩이 구현될 필요가 있으면, 대응하는 스테레오 인코딩 및 디코딩 처리가 수행될 필요가 있다. 무선 디바이스는 통신 중인 무선 주파수-관련 디바이스이고, 코어 네트워크 디바이스는 통신 중인 코어 네트워크-관련 디바이스이다.
본 출원의 일부 실시예들에서, 스테레오 인코딩 장치는 오디오 통신 요건을 갖는 다양한 단말 디바이스들, 및 트랜스코딩 요건을 갖는 무선 디바이스 및 코어 네트워크 디바이스에 적용될 수 있다. 예를 들어, 스테레오 인코딩 장치는 전술한 단말 디바이스, 무선 디바이스, 또는 코어 네트워크 디바이스의 멀티-채널 인코더일 수 있다. 유사하게, 스테레오 디코딩 장치는 오디오 통신 요건을 갖는 다양한 단말 디바이스들, 및 트랜스코딩 요건을 갖는 무선 디바이스 및 코어 네트워크 디바이스에 적용될 수 있다. 예를 들어, 스테레오 디코딩 장치는 전술한 단말 디바이스, 무선 디바이스, 또는 코어 네트워크 디바이스의 멀티-채널 디코더일 수 있다.
도 3a는 본 출원의 실시예에 따른 단말 디바이스에 대한 멀티-채널 인코더 및 멀티-채널 디코더의 적용의 개략도이다. 각각의 단말 디바이스는 멀티-채널 인코더, 채널 인코더, 멀티-채널 디코더, 및 채널 디코더를 포함할 수 있다. 구체적으로, 채널 인코더는 멀티-채널 신호에 대해 채널 인코딩을 수행하기 위해 사용되고, 채널 디코더는 멀티-채널 신호에 대해 채널 디코딩을 수행하기 위해 사용된다. 예를 들어, 제1 단말 디바이스(30)는 제1 멀티-채널 인코더(301), 제1 채널 인코더(302), 제1 멀티-채널 디코더(303), 및 제1 채널 디코더(304)를 포함할 수 있다. 제2 단말 디바이스(31)는 제2 멀티-채널 디코더(311), 제2 채널 디코더(312), 제2 멀티-채널 인코더(313), 및 제2 채널 인코더(314)를 포함할 수 있다. 제1 단말 디바이스(30)는 무선 또는 유선 제1 네트워크 통신 디바이스(32)에 접속되고, 제1 네트워크 통신 디바이스(32)는 디지털 채널을 통해 무선 또는 유선 제2 네트워크 통신 디바이스(33)에 접속되고, 제2 단말 디바이스(31)는 무선 또는 유선 제2 네트워크 통신 디바이스(33)에 접속된다. 전술한 무선 또는 유선 네트워크 통신 디바이스는 신호 송신 디바이스, 예를 들어, 통신 기지국 또는 데이터 교환 디바이스를 일반적으로 지칭할 수 있다. 오디오 통신에서, 송신단으로서 역할을 하는 단말 디바이스는 수집된 멀티-채널 신호에 대해 멀티-채널 인코딩을 수행하고, 다음으로 채널 인코딩을 수행하고, 무선 네트워크 또는 코어 네트워크를 사용하여 디지털 채널 상에서 멀티-채널 신호를 송신한다. 수신단으로서 역할을 하는 단말 디바이스는 수신 신호에 기초하여 채널 디코딩을 수행하여 멀티-채널 신호 인코딩된 비트스트림을 획득하고, 다음으로 멀티-채널 디코딩을 통해 멀티-채널 신호를 복원하고, 수신단으로서 역할을 하는 단말 디바이스는 재생을 수행한다.
도 3b는 본 출원의 실시예에 따른 무선 디바이스 또는 코어 네트워크 디바이스에 대한 멀티-채널 인코더의 적용의 개략도이다. 무선 디바이스 또는 코어 네트워크 디바이스(35)는, 채널 디코더(351), 다른 오디오 디코더(352), 멀티-채널 인코더(353), 및 채널 인코더(354)를 포함한다. 도 3b는 도 2b와 유사하고, 상세사항들은 본 명세서에 다시 설명되지 않는다.
도 3c는 본 출원의 실시예에 따른 무선 디바이스 또는 코어 네트워크 디바이스에 대한 멀티-채널 디코더의 적용의 개략도이다. 무선 디바이스 또는 코어 네트워크 디바이스(35)는, 채널 디코더(351), 멀티-채널 디코더(355), 다른 오디오 인코더(356), 및 채널 인코더(354)를 포함한다. 도 3c는 도 2c와 유사하고, 상세사항들은 본 명세서에 다시 설명되지 않는다.
스테레오 인코딩 처리는 멀티-채널 인코더의 일부분일 수 있고, 스테레오 디코딩 처리는 멀티-채널 디코더의 일부분일 수 있다. 예를 들어, 수집된 멀티-채널 신호에 대해 멀티-채널 인코딩을 수행하는 것은 수집된 멀티-채널 신호에 대해 차원 축소 처리를 수행하여 스테레오 신호를 획득하고, 획득된 스테레오 신호를 인코딩하는 것일 수 있다. 디코더 측은 멀티-채널 신호 인코딩된 비트스트림에 기초하여 디코딩을 수행하여, 스테레오 신호를 획득하고, 업믹스 처리 후에 멀티-채널 신호를 복원한다. 따라서, 본 출원의 실시예들은 단말 디바이스, 무선 디바이스, 또는 코어 네트워크 디바이스에서의 멀티-채널 인코더 및 멀티-채널 디코더에 또한 적용될 수 있다. 무선 디바이스 또는 코어 네트워크 디바이스에서, 트랜스코딩이 구현될 필요가 있으면, 대응하는 멀티-채널 인코딩 및 디코딩 처리가 수행될 필요가 있다.
본 출원의 실시예들에서, 피치 주기 인코딩은 스테레오 인코딩 방법에서 중요한 단계이다. 유성음이 준-주기적 임펄스 여기(quasi-periodic impulse excitation)를 통해 생성되기 때문에, 유성음의 시간 도메인 파형은, 피치 주기라고 불리는, 명백한 주기성을 나타낸다. 피치 주기는 고품질 유성 음성을 생성함에 있어서 중요한 역할을 하고 그 이유는 유성 음성이 피치 주기에 의해 분리되는 샘플링 포인트들로 구성되는 준-주기적 신호로서 특성화되기 때문이다. 음성 처리에서, 피치 주기는 주기에 포함되는 샘플들의 수량에 의해 또한 표현될 수 있다. 이러한 경우, 피치 주기는 피치 지연이라고 불린다. 피치 지연은 적응적 코드북의 중요한 파라미터이다.
피치 주기 추정은 피치 주기를 추정하는 프로세스를 주로 지칭한다. 따라서, 피치 주기 추정의 정확도는 여기 신호의 정확성을 직접 결정하고, 따라서 합성된 음성 신호 품질을 결정한다. 주 채널 신호 및 부 채널 신호의 피치 주기들은 강한 유사도를 갖는다. 본 출원의 실시예들에서, 이러한 피치 주기들의 유사도는 인코딩 효율을 개선하기 위해 적절히 사용될 수 있다.
본 출원의 실시예들에서, 주파수 도메인에서 또는 시간-주파수 조합 경우에 수행되는 파라메트릭 스테레오 인코딩에 대해, 주 채널 신호의 피치 주기와 부 채널 신호의 피치 주기 사이에 상관이 존재한다. 부 채널 신호의 피치 주기의 인코딩을 위해, 주 채널 신호와 부 채널 신호 사이의 인코딩 프레임 구조 유사도를 측정하기 위해 프레임 구조 유사도 결정 방식이 사용되고, 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속할 때, 부 채널 신호의 피치 주기 파라미터는 차동 인코딩 방법을 사용하여 합리적으로 예측되고 차동 인코딩된다. 이러한 방식으로, 부 채널 신호의 피치 주기의 차동 인코딩을 위해 적은 수량의 비트 리소스들이 할당된다. 본 출원의 실시예들은 스테레오 신호들의 공간감 및 음상 안정성을 개선할 수 있다. 또한, 본 출원의 실시예들에서, 비교적 적은 수량의 비트 리소스들이 사용되어, 부 채널 신호에 대한 피치 주기 예측의 정확도가 보장된다. 나머지 비트 리소스들은 다른 스테레오 인코딩 파라미터들, 예를 들어, 고정 코드북에 사용된다. 따라서, 부 채널의 인코딩 효율이 개선되고, 전체 스테레오 인코딩 품질이 최종적으로 개선된다.
본 출원의 실시예들에서, 부 채널 신호의 피치 주기를 인코딩하기 위해 부 채널 신호에 대한 피치 주기 차동 인코딩 방법이 사용되고, 참조 값으로서 주 채널 신호의 피치 주기가 사용되고, 부 채널에 비트 리소스들이 재할당되어, 스테레오 인코딩 품질을 개선한다. 다음은 전술한 시스템 아키텍처, 스테레오 인코딩 장치, 및 스테레오 디코딩 장치에 기초하여 본 출원의 실시예들에서 제공되는 스테레오 인코딩 방법 및 스테레오 디코딩 방법을 설명한다. 도 4는 본 출원의 실시예에 따른 스테레오 인코딩 장치와 스테레오 디코딩 장치 사이의 상호작용의 개략적인 흐름도이다. 스테레오 인코딩 장치 (이하, 간단히 인코더 측이라고 지칭됨)에 의해 다음과 같은 단계 401 내지 단계 403이 수행될 수 있다. 스테레오 디코딩 장치(아래에 간단히 디코더 측이라고 지칭됨)에 의해 다음과 같은 단계 411 내지 단계 413이 수행될 수 있다. 상호작용은 다음과 같은 프로세스를 주로 포함한다.
401: 현재 프레임의 좌측 채널 신호 및 현재 프레임의 우측 채널 신호에 대해 다운믹스 처리를 수행하여, 현재 프레임의 주 채널 신호 및 현재 프레임의 부 채널 신호를 획득함.
본 출원의 이러한 실시예에서, 현재 프레임은 인코더 측에서 인코딩 처리가 현재 수행되는 스테레오 신호 프레임이다. 현재 프레임의 좌측 채널 신호 및 현재 프레임의 우측 채널 신호가 먼저 획득되고, 좌측 채널 신호 및 우측 채널 신호에 대해 다운믹스 처리가 수행되어, 현재 프레임의 주 채널 신호 및 현재 프레임의 부 채널 신호를 획득한다. 예를 들어, 스테레오 인코딩 및 디코딩 기술의 많은 상이한 구현들이 존재한다. 예를 들어, 인코더 측은 시간 도메인 신호들을 2개의 모노 신호들로 다운믹스한다. 좌측 및 우측 채널 신호들은 주 채널 신호 및 부 채널 신호로 먼저 다운믹스되고, 여기서 L은 좌측 채널 신호를 표현하고, R은 우측 채널 신호를 표현한다. 이러한 경우, 주 채널 신호는, 2개의 채널들 사이의 상관에 관한 정보를 표시하는, 0.5 * (L + R)일 수 있고, 부 채널 신호는, 2개의 채널 사이의 차이에 관한 정보를 표시하는, 0.5 * (L - R)일 수 있다.
주파수 도메인 스테레오 인코딩에서의 다운믹스 프로세스 및 시간 도메인 스테레오 인코딩에서의 다운믹스 프로세스가 후속 실시예들에서 상세히 설명된다는 점이 주목되어야 한다.
본 출원의 일부 실시예들에서, 인코더 측에 의해 실행되는 스테레오 인코딩 방법은 현재 프레임의 인코딩 레이트가 미리 설정된 레이트 임계값을 초과하는 스테레오 인코딩 시나리오에 적용될 수 있다. 디코더 측에 의해 실행되는 스테레오 디코딩 방법은 현재 프레임의 디코딩 레이트가 미리 설정된 레이트 임계값을 초과하는 스테레오 디코딩 시나리오에 적용될 수 있다. 현재 프레임의 인코딩 레이트는 현재 프레임의 스테레오 신호에 의해 사용되는 인코딩 레이트이고, 레이트 임계값은 스테레오 신호에 대해 명시되는 최대 레이트 값이다. 현재 프레임의 인코딩 레이트가 미리 설정된 레이트 임계값을 초과할 때, 본 출원의 이러한 실시예에서 제공되는 스테레오 인코딩 방법이 수행될 수 있다. 현재 프레임의 디코딩 레이트가 미리 설정된 레이트 임계값을 초과할 때, 본 출원의 이러한 실시예에서 제공되는 스테레오 디코딩 방법이 수행될 수 있다.
추가로, 본 출원의 일부 실시예들에서, 레이트 임계값은 다음과 같은 값들: 32 kbps(kilobits per second), 48 kbps, 64 kbps, 96 kbps, 128 kbps, 160 kbps, 192 kbps, 및 256 kbps 중 적어도 하나이다.
레이트 임계값은 32 kbps 이상일 수 있다. 예를 들어, 레이트 임계값은 48 kbps, 64 kbps, 96 kbps, 128 kbps, 160 kbps, 192 kbps, 또는 256 kbps일 수 있다. 레이트 임계값의 구체적인 값은 적용 시나리오에 기초하여 결정될 수 있다. 다른 예를 들어, 본 출원의 이러한 실시예가 전술한 레이트들로 제한되는 것은 아닐 수 있다. 전술한 레이트들 외에도, 레이트 임계값은, 예를 들어, 80 kbps, 144 kbps 또는 320 kbps일 수 있다. 인코딩 레이트가 비교적 높을 때(예를 들어, 32 kbps 이상), 부 채널의 피치 주기에 대해 독립적 인코딩이 수행되지 않고, 참조 값으로서 주 채널 신호의 추정된 피치 주기 값이 사용되고, 부 채널 신호에 비트 리소스들이 재할당되어, 스테레오 인코딩 품질을 개선한다.
402: 주 채널 신호와 부 채널 신호 사이의 프레임 구조 유사도 값이 미리 설정된 프레임 구조 유사도 구간 내에 속하는지를 결정함.
본 출원의 이러한 실시예에서, 현재 프레임의 주 채널 신호 및 현재 프레임의 부 채널 신호가 획득된 후에, 주 채널 신호와 부 채널 신호 사이의 프레임 구조 유사도 값이 계산된다. 프레임 구조 유사도 값은 프레임 구조 유사도 파라미터의 값이고, 주 채널 신호와 부 채널 신호가 프레임 구조 유사도를 갖는지를 측정하기 위해 사용될 수 있다. 프레임 구조 유사도 값은 주 채널 신호 및 부 채널 신호의 신호 특성들에 기초하여 결정된다. 프레임 구조 유사도 값을 계산하는 방식은 후속 실시예에서 설명된다.
본 출원의 이러한 실시예에서, 주 채널 신호와 부 채널 신호 사이의 프레임 구조 유사도 값이 계산된 후에, 미리 설정된 프레임 구조 유사도 구간이 획득된다. 프레임 구조 유사도 구간은 구간 범위이고, 프레임 구조 유사도 구간은 구간 범위의 좌측 및 우측 엔드포인트들을 포함할 수 있거나, 또는 구간 범위의 좌측 및 우측 엔드포인트들을 포함하지 않을 수 있다. 프레임 구조 유사도 구간의 범위는 현재 프레임의 인코딩 레이트, 차동 인코딩 트리거 조건 등에 기초하여 유연하게 결정될 수 있다. 프레임 구조 유사도 구간의 범위가 본 명세서에서 제한되는 것은 아니다.
본 출원의 일부 실시예들에서, 프레임 구조 유사도 구간의 최대값 및 최소값은 복수의 값들을 각각 갖는다. 예를 들어, 본 출원의 이러한 실시예에서, 복수의 프레임 구조 유사도 구간들이 설정될 수 있고, 예를 들어, 3개의 레벨들의 프레임 구조 유사도 구간들이 설정될 수 있다. 예를 들어, 최저-레벨 프레임 구조 유사도 구간의 최소값은 -4.0이고, 최저-레벨 프레임 구조 유사도 구간의 최대값은 3.75이고; 중간-레벨 프레임 구조 유사도 구간의 최소값은 -2.0이고, 중간-레벨 프레임 구조 유사도 구간의 최대값은 1.75이고; 최고-레벨 프레임 구조 유사도 구간의 최소값은 -1.0이고, 최고-레벨 프레임 구조 유사도 구간의 최대값은 0.75이다. 예를 들어, 프레임 구조 유사도 구간은 프레임 구조 유사도 값이 구간 내에 속하는지를 결정하기 위해 사용될 수 있다. 예를 들어, 프레임 구조 유사도 값 ol_pitch가 다음과 같은 미리 설정된 조건: down_limit < ol_pitch < up_limit를 충족하는지가 결정되고, 여기서 down_limit 및 up_limit는, 각각, 사용자 정의 프레임 구조 유사도 구간의 최소값(즉, 하한 임계값) 및 최대값(즉, 상한 임계값)이다. 예를 들어, down_limit의 값은 -4.0일 수 있고, up_limit의 값은 3.75일 수 있다. 프레임 구조 유사도 구간의 2개의 엔드포인트들의 구체적인 값들은 적용 시나리오에 기초하여 결정될 수 있다.
예를 들어, 본 출원의 이러한 실시예에서, 계산된 프레임 구조 유사도 값은 프레임 구조 유사도 구간의 최대값 및 최소값과 비교되어, 주 채널 신호와 부 채널 신호 사이의 프레임 구조 유사도 값이 미리 설정된 프레임 구조 유사도 구간 내에 속하는지를 결정할 수 있다. 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속할 때, 주 채널 신호와 부 채널 신호 사이에 프레임 구조 유사도가 있다고 결정될 수 있다. 프레임 구조 유사도 값이 프레임 구조 유사도 구간 외에 속할 때, 주 채널 신호와 부 채널 신호 사이에 프레임 구조 유사도가 없다고 결정될 수 있다.
본 출원의 이러한 실시예에서, 주 채널 신호와 부 채널 신호 사이의 프레임 구조 유사도 값이 미리 설정된 프레임 구조 유사도 구간 내에 속하는지가 결정된 후에, 결정의 결과에 기초하여, 단계 403을 수행할지가 결정된다. 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속할 때, 후속 단계 403이 실행되도록 트리거된다.
본 출원의 일부 실시예들에서, 주 채널 신호와 부 채널 신호 사이의 프레임 구조 유사도 값이 미리 설정된 프레임 구조 유사도 구간 내에 속하는지를 결정하는 단계 402 후에, 본 출원의 이러한 실시예에서 제공되는 방법은 추가로,
주 채널 신호 및 부 채널 신호에 기초하여 신호 타입 플래그를 획득하는 단계- 신호 타입 플래그는 주 채널 신호의 신호 타입 및 부 채널 신호의 신호 타입을 식별하기 위해 사용됨 -; 및
신호 타입 플래그가 미리 설정된 제1 플래그이고 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속할 때, 부 채널 피치 주기 재사용 플래그를 제2 플래그로 구성하는 단계- 제1 플래그 및 제2 플래그는 스테레오 인코딩된 비트스트림을 생성하기 위해 사용됨 -를 포함한다.
인코더 측은 주 채널 신호 및 부 채널 신호에 기초하여 신호 타입 플래그를 획득한다. 예를 들어, 주 채널 신호 및 부 채널 신호는 신호 모드 정보를 운반하고, 이러한 신호 모드 정보에 기초하여 신호 타입 플래그의 값이 결정된다. 주 채널 신호의 신호 타입 및 부 채널 신호의 신호 타입을 식별하기 위해 이러한 신호 타입 플래그가 사용된다. 신호 타입 플래그는 주 채널 신호의 신호 타입 및 부 채널 신호의 신호 타입 양자 모두를 표시한다. 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속하는지에 기초하여 부 채널 피치 주기 재사용 플래그의 값이 구성될 수 있고, 부 채널 신호의 피치 주기에 대해 차동 인코딩 또는 독립적 인코딩을 사용하는 것을 표시하기 위해 부 채널 피치 주기 재사용 플래그가 사용된다.
본 출원의 이러한 실시예에서, 부 채널 피치 주기 재사용 플래그는 복수의 방식들로 구성될 수 있다. 예를 들어, 부 채널 피치 주기 재사용 플래그는 미리 설정된 제2 플래그일 수 있거나, 또는 제4 플래그로 구성될 수 있다. 다음은 부 채널 피치 주기 재사용 플래그를 구성하는 방법을 예로 설명한다. 먼저, 신호 타입 플래그가 미리 설정된 제1 플래그인지가 결정되고; 신호 타입 플래그가 미리 설정된 제1 플래그이면, 프레임 구조 유사도 값이 미리 설정된 프레임 구조 유사도 구간 내에 속하는지를 결정하기 위해 단계 402가 수행되고; 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속한다고 결정될 때, 부 채널 피치 주기 재사용 플래그는 제2 플래그로 구성된다. 스테레오 인코딩된 비트스트림을 생성하기 위해 제1 플래그 및 제2 플래그가 사용된다. 부 채널 피치 주기 재사용 플래그는 제2 플래그를 표시하여, 디코더 측은 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하기로 결정할 수 있다. 예를 들어, 부 채널 피치 주기 재사용 플래그의 값은 0 또는 1일 수 있고, 여기서 제2 플래그는 1이고, 제4 플래그는 0이다. 유사하게, 신호 타입 플래그는 미리 설정된 제1 플래그 또는 미리 설정된 제3 플래그일 수 있다. 예를 들어, 신호 타입 플래그의 값은 0 또는 1일 수 있고, 여기서 제1 플래그는 1이고, 제3 플래그는 0이다.
예를 들어, 부 채널 피치 주기 재사용 플래그는 soft_pitch_reuse_flag이고, 주 및 부 채널들의 신호 타입 플래그는 both_chan_generic이다. 예를 들어, 부 채널 인코딩에서, soft_pitch_reuse_flag 및 both_chan_generic 각각은 0 또는 1로서 정의되고, 주 채널 신호 및 부 채널 신호가 프레임 구조 유사도를 갖는지를 표시하기 위해 사용된다. 먼저, 주 및 부 채널들의 신호 타입 플래그가 both_chan_generic라고 결정된다. both_chan_generic가 1일 때, 현재 프레임의 주 및 부 채널들 양자 모두가 일반(GENERIC) 모드에 있다. 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속하는지에 기초하여 부 채널 피치 주기 재사용 플래그 soft_pitch_reuse_flag가 설정된다. 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속할 때, soft_pitch_reuse_flag는 1이고, 본 출원의 이러한 실시예에서의 차동 인코딩 방법이 수행된다. 프레임 구조 유사도 값이 프레임 구조 유사도 구간 외에 속할 때, soft_pitch_reuse_flag는 0이고, 독립적 인코딩 방법이 수행된다.
본 출원의 일부 실시예들에서, 주 채널 신호와 부 채널 신호 사이의 프레임 구조 유사도 값이 미리 설정된 프레임 구조 유사도 구간 내에 속하는지를 결정하는 단계 402 후에, 본 출원의 이러한 실시예에서 제공되는 방법은 추가로,
프레임 구조 유사도 값이 프레임 구조 유사도 구간 외에 속한다고 결정할 때, 또는 신호 타입 플래그가 미리 설정된 제3 플래그일 때, 부 채널 피치 주기 재사용 플래그를 제4 플래그로 구성하는 단계- 제4 플래그 및 제3 플래그는 스테레오 인코딩된 비트스트림을 생성하기 위해 사용됨 -; 및
부 채널 신호의 피치 주기 및 주 채널 신호의 피치 주기를 개별적으로 인코딩하는 단계를 포함한다.
부 채널 피치 주기 재사용 플래그는 복수의 방식들로 구성될 수 있다. 예를 들어, 부 채널 피치 주기 재사용 플래그는 미리 설정된 제2 플래그일 수 있거나, 또는 제4 플래그로 구성될 수 있다. 다음은 부 채널 피치 주기 재사용 플래그를 구성하는 방법을 예로 설명한다. 먼저, 신호 타입 플래그가 미리 설정된 제1 플래그인지가 결정되고; 신호 타입 플래그가 미리 설정된 제1 플래그이면, 프레임 구조 유사도 값이 미리 설정된 프레임 구조 유사도 구간 내에 속하는지를 결정하기 위해 단계 402가 수행되고; 프레임 구조 유사도 값이 프레임 구조 유사도 구간 외에 속한다고 결정될 때, 부 채널 피치 주기 재사용 플래그는 제4 플래그로 구성된다. 부 채널 피치 주기 재사용 플래그는 제4 플래그를 표시하여, 디코더 측이 부 채널 신호의 피치 주기에 대해 독립적 디코딩을 수행하기로 결정할 수 있다. 또한, 신호 타입 플래그가 미리 설정된 제1 플래그인지 또는 제3 플래그인지가 결정되고, 신호 타입 플래그가 미리 설정된 제3 플래그이면, 단계 402는 수행되지 않고, 부 채널 신호의 피치 주기 및 주 채널 신호의 피치 주기는 개별적으로 직접 인코딩된다. 즉, 부 채널 신호의 피치 주기는 독립적으로 인코딩된다.
본 출원의 일부 실시예들에서, 인코더 측에 의해 수행되는 스테레오 인코딩 방법에서, 프레임 구조 유사도 값은 다음과 같은 방식으로 결정되고, 이는,
현재 프레임의 부 채널 신호에 대해 개방-루프 피치 주기 분석을 수행하여, 부 채널 신호의 추정된 개방-루프 피치 주기 값을 획득하는 단계;
주 채널 신호의 추정된 피치 주기 값 및 현재 프레임의 부 채널 신호가 분할되는 서브프레임들의 수량에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 결정하는 단계; 및
부 채널 신호의 추정된 개방-루프 피치 주기 값 및 부 채널 신호의 폐쇄-루프 피치 주기 참조 값에 기초하여 프레임 구조 유사도 값을 결정하는 단계를 포함한다.
현재 프레임의 부 채널 신호가 획득된 후에, 부 채널 신호에 대해 개방-루프 피치 주기 분석이 수행되어, 부 채널 신호의 추정된 개방-루프 피치 주기 값을 획득할 수 있다. 개방-루프 피치 주기 분석의 구체적인 프로세스는 상세히 설명되지 않는다. 현재 프레임의 부 채널 신호가 분할되는 서브프레임들의 수량은 부 채널 신호의 서브프레임 구성에 기초하여 결정될 수 있다. 예를 들어, 부 채널 신호는 4개의 서브프레임들 또는 3개의 서브프레임들로 분할될 수 있고, 이는 적용 시나리오를 참조하여 구체적으로 결정된다. 주 채널 신호의 추정된 피치 주기 값이 획득된 후에, 주 채널 신호의 추정된 피치 주기 값 및 부 채널 신호가 분할되는 서브프레임들의 수량은 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 계산하기 위해 사용될 수 있다. 부 채널 신호의 폐쇄-루프 피치 주기 참조 값은 주 채널 신호의 추정된 피치 주기 값에 기초하여 결정되는 참조 값이다. 부 채널 신호의 폐쇄-루프 피치 주기 참조 값은 주 채널 신호의 추정된 피치 주기 값을 참조로서 사용하여 결정되는 부 채널 신호의 폐쇄-루프 피치 주기를 표현한다. 예를 들어, 하나의 방법은 주 채널 신호의 피치 주기를 부 채널 신호의 폐쇄-루프 피치 주기 참조 값으로서 직접 사용하는 것이다. 즉, 부 채널 신호의 4개의 서브프레임들의 폐쇄-루프 피치 주기 참조 값으로서 주 채널 신호의 5개의 서브프레임들의 피치 주기로부터 4개의 값들이 선택된다. 다른 방법에서, 주 채널 신호의 5개의 서브프레임들의 피치 주기는 보간 방법을 사용하여 부 채널 신호의 4개의 서브프레임들의 폐쇄-루프 피치 주기 참조 값에 매핑된다.
부 채널 신호의 추정된 개방-루프 피치 주기 값 및 부 채널 신호의 폐쇄-루프 피치 주기 참조 값이 획득된 후에, 부 채널 신호의 폐쇄-루프 피치 주기 참조 값은 주 채널 신호의 추정된 피치 주기 값을 사용하여 결정되는 참조 값이기 때문에, 부 채널 신호의 추정된 개방-루프 피치 주기 값과 부 채널 신호의 폐쇄-루프 피치 주기 참조 값 사이의 차이가 결정되는 한, 부 채널 신호의 추정된 개방-루프 피치 주기 값과 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 사용하여 주 채널 신호와 부 채널 신호 사이의 프레임 구조 유사도 값이 계산될 수 있다.
추가로, 본 출원의 일부 실시예들에서, 주 채널 신호의 추정된 피치 주기 값 및 현재 프레임의 부 채널 신호가 분할되는 서브프레임들의 수량에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 결정하는 단계는,
주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 정수 부분 loc_T0 및 부 채널 신호의 폐쇄-루프 피치 주기 분수 부분 loc_frac_prim을 결정하는 단계; 및
부 채널 신호의 폐쇄-루프 피치 주기 참조 값 f_pitch_prim을 다음과 같은 방식으로 계산하는 단계를 포함하고:
f_pitch_prim = loc_T0 + loc_frac_prim/N이고; 여기서,
N은 부 채널 신호가 분할되는 서브프레임들의 수량을 표현한다.
구체적으로, 주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 정수 부분 및 폐쇄-루프 피치 주기 분수 부분이 먼저 결정된다. 예를 들어, 주 채널 신호의 추정된 피치 주기 값의 정수 부분이 부 채널 신호의 폐쇄-루프 피치 주기 정수 부분으로서 직접 사용되고, 주 채널 신호의 추정된 피치 주기 값의 분수 부분이 부 채널 신호의 폐쇄-루프 피치 주기 분수 부분으로서 사용된다. 대안적으로, 주 채널 신호의 추정된 피치 주기 값은 보간 방법을 사용하여 부 채널 신호의 폐쇄-루프 피치 주기 정수 부분 및 폐쇄-루프 피치 주기 분수 부분에 매핑될 수 있다. 예를 들어, 전술한 방법들 중 어느 하나에 따르면, 부 채널의 폐쇄-루프 피치 주기 정수 부분 loc_T0 및 폐쇄-루프 피치 주기 분수 부분 loc_frac_prim이 획득될 수 있다.
N은 부 채널 신호가 분할되는 서브프레임들의 수량을 표현한다. 예를 들어, N의 값은 3, 4, 5 등일 수 있다. 구체적인 값은 적용 시나리오에 의존한다. 부 채널 신호의 폐쇄-루프 피치 주기 참조 값은 전술한 공식을 사용하여 계산될 수 있다. 본 출원의 이러한 실시예에서, 부 채널 신호의 폐쇄-루프 피치 주기 참조 값의 계산이 전술한 공식에 제한되는 것은 아닐 수 있다. 예를 들어, loc_T0 + loc_frac_prim/N의 결과가 획득된 후에, 정정 인자가 추가로 설정될 수 있다. 정정 인자에 loc_T0 + loc_frac_prim/N을 승산한 결과가 최종 출력 f_pitch_prim으로서 사용될 수 있다. 다른 예를 들어, 방정식 f_pitch_prim = loc_T0 + loc_frac_prim/N의 우측의 N은 N-1로 대체될 수 있고, 최종 f_pitch_prim이 또한 계산될 수 있다.
추가로, 본 출원의 일부 실시예들에서, 부 채널 신호의 추정된 개방-루프 피치 주기 값 및 부 채널 신호의 폐쇄-루프 피치 주기 참조 값에 기초하여 프레임 구조 유사도 값을 결정하는 단계는,
프레임 구조 유사도 값 ol_pitch를 다음과 같은 방식으로 계산하는 단계를 포함하고:
ol_pitch = T_op - f_pitch_prim이고; 여기서,
T_op는 부 채널 신호의 추정된 개방-루프 피치 주기 값을 표현하고, f_pitch_prim은 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 표현한다.
구체적으로, T_op는 부 채널 신호의 추정된 개방-루프 피치 주기 값을 표현하고, f_pitch_prim은 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 표현하고, T_op와 f_pitch_prim 사이의 차이는 최종 프레임 구조 유사도 값 ol_pitch로서 사용될 수 있다. 부 채널 신호의 폐쇄-루프 피치 주기 참조 값은 주 채널 신호의 추정된 피치 주기 값을 사용하여 결정되는 참조 값이기 때문에, 부 채널 신호의 추정된 개방-루프 피치 주기 값과 부 채널 신호의 폐쇄-루프 피치 주기 참조 값 사이의 차이가 결정되는 한, 부 채널 신호의 추정된 개방-루프 피치 주기 값과 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 사용하여 주 채널 신호와 부 채널 신호 사이의 프레임 구조 유사도 값이 계산될 수 있다. 본 출원의 이러한 실시예에서, 프레임 구조 유사도 값의 계산이 전술한 공식에 제한되는 것은 아닐 수 있다. 예를 들어, T_op - f_pitch_prim의 결과가 계산된 후에, 정정 인자가 추가로 설정될 수 있고, 정정 인자에 T_op - f_pitch_prim을 승산한 결과가 최종 출력 ol_pitch로서 사용될 수 있다. 이러한 것이 제한되는 것은 아니다. 다른 예를 들어, 정정 인자가 방정식 ol_pitch = T_op - f_pitch_prim의 우측 부분에 추가로 가산될 수 있다. 정정 인자의 구체적인 값이 제한되는 것은 아니고, 최종 ol_pitch가 또한 계산될 수 있다.
403: 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속한다고 결정할 때, 주 채널 신호의 추정된 피치 주기 값을 사용하여 부 채널 신호의 피치 주기에 대해 차동 인코딩을 수행하여, 부 채널 신호의 피치 주기 인덱스 값을 획득함- 부 채널 신호의 피치 주기 인덱스 값은 전송될 스테레오 인코딩된 비트스트림을 생성하기 위해 사용됨 -.
본 출원의 이러한 실시예에서, 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속할 때, 주 채널 신호와 부 채널 신호 사이에 프레임 구조 유사도가 있다고 결정될 수 있다. 주 채널 신호 및 부 채널 신호는 프레임 구조 유사도를 갖기 때문에, 주 채널 신호의 추정된 피치 주기 값을 사용하여 부 채널 신호의 피치 주기에 대해 차동 인코딩이 수행될 수 있다. 전술한 차동 인코딩은 주 채널 신호의 추정된 피치 주기 값을 사용하기 때문에, 주 채널 신호와 부 채널 신호 사이의 피치 주기 유사도가 고려된다. 부 채널 신호의 피치 주기의 독립적 인코딩과 비교하여, 본 출원의 이러한 실시예에서의 차동 인코딩은 부 채널 신호의 피치 주기를 인코딩하기 위해 요구되는 비트 리소스 오버헤드들을 감소시킬 수 있다. 또한, 절감된 비트들은 다른 스테레오 인코딩 파라미터들에 할당되어, 부 채널의 피치 주기의 정확한 인코딩을 구현하고, 전체 스테레오 인코딩 품질을 개선한다.
본 출원의 이러한 실시예에서, 단계 401에서 현재 프레임의 주 채널 신호가 획득된 후에, 주 채널 신호에 기초하여 인코딩이 수행되어, 주 채널 신호의 추정된 피치 주기 값을 획득할 수 있다. 구체적으로, 주 채널 인코딩에서, 개방-루프 피치 분석과 폐쇄-루프 피치 탐색의 조합을 통해 피치 주기 추정이 수행되어, 피치 주기 추정의 정확도를 개선한다. 복수의 방법들을 사용하여, 예를 들어, 자기상관 함수를 사용하여, 또는 단기간 평균 진폭 차이를 사용하여 음성 신호의 피치 주기가 추정될 수 있다. 피치 주기 추정 알고리즘은 자기상관 함수에 기초한다. 자기상관 함수는 피치 주기의 정수배에서 피크를 가지며, 이러한 특징은 피치 주기를 추정하기 위해 사용될 수 있다. 피치 예측의 정확도를 개선하고 음성의 실제 피치 주기를 더 잘 근사화하기 위해, 1/3의 샘플링 해상도를 갖는 분수 지연이 피치 주기 검출을 위해 사용된다. 피치 주기 추정의 계산량을 감소하기 위해, 피치 주기 추정은 2개의 단계들: 개방-루프 피치 분석 및 폐쇄-루프 피치 탐색을 포함한다. 음성 프레임의 정수 지연을 대략 추정하여 후보 정수 지연을 획득하기 위해 개방-루프 피치 분석이 사용된다. 정수 지연 부근에서 피치 지연을 미세하게 추정하기 위해 폐쇄-루프 피치 탐색이 사용되고, 서브프레임 당 1회 폐쇄-루프 피치 탐색이 수행된다. 자기상관, 정규화, 및 최적 개방-루프 정수 지연을 계산하기 위해, 프레임 당 1회 개방-루프 피치 분석이 수행된다. 주 채널 신호의 추정된 피치 주기 값은 전술한 프로세스를 사용하여 획득될 수 있다.
본 출원의 이러한 실시예에서, 프레임 구조 유사도 값이 프레임 구조 유사도 구간 외에 속할 때, 부 채널 신호의 피치 주기에 대해 차동 인코딩이 수행될 수 없다는 점이 주목되어야 한다. 예를 들어, 주 채널 신호 및 부 채널 신호의 프레임 구조들이 유사하지 않으면, 부 채널 신호의 피치 주기를 인코딩하기 위해 부 채널에 대한 피치 주기 독립적 인코딩 방법이 사용된다.
다음은 본 출원의 이러한 실시예에서의 차동 인코딩의 구체적인 프로세스를 설명한다. 구체적으로, 주 채널 신호의 추정된 피치 주기 값을 사용하여 부 채널 신호의 피치 주기에 대해 차동 인코딩을 수행하는 단계 403은,
주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 폐쇄-루프 피치 주기 탐색을 수행하여, 부 채널 신호의 추정된 피치 주기 값을 획득하는 단계;
부 채널 신호의 피치 주기 탐색 범위 조정 인자에 기초하여 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정하는 단계; 및
주 채널 신호의 추정된 피치 주기 값, 부 채널 신호의 추정된 피치 주기 값, 및 부 채널 신호의 피치 주기 인덱스 값의 상한에 기초하여 부 채널 신호의 피치 주기 인덱스 값을 계산하는 단계를 포함한다.
인코더 측은 부 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 폐쇄-루프 피치 주기 탐색을 먼저 수행하여, 부 채널 신호의 추정된 피치 주기 값을 결정한다. 다음은 폐쇄-루프 피치 주기 탐색의 구체적인 프로세스를 상세히 설명한다. 본 출원의 일부 실시예들에서, 주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 폐쇄-루프 피치 주기 탐색을 수행하여, 부 채널 신호의 추정된 피치 주기 값을 획득하는 단계는,
정수 정밀도 및 분수 정밀도를 사용하여 그리고 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 부 채널 신호 폐쇄-루프 피치 주기 탐색의 시작 포인트로서 사용하여 폐쇄-루프 피치 주기 탐색을 수행하여, 부 채널 신호의 추정된 피치 주기 값을 획득하는 단계- 부 채널 신호의 폐쇄-루프 피치 주기 참조 값은 주 채널 신호의 추정된 피치 주기 값 및 현재 프레임의 부 채널 신호가 분할되는 서브프레임들의 수량에 기초하여 결정됨 -를 포함한다.
예를 들어, 부 채널 신호의 폐쇄-루프 피치 주기 참조 값은 주 채널 신호의 추정된 피치 주기 값을 사용하여 결정된다. 상세사항들에 대해서는, 전술한 계산 프로세스를 참조한다. 구체적으로, 정수 정밀도 및 다운샘플링 분수 정밀도를 사용하여 그리고 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 부 채널 신호 폐쇄-루프 피치 주기 탐색의 시작 포인트로서 사용하여 폐쇄-루프 피치 주기 탐색이 수행되고, 최종적으로 부 채널 신호의 추정된 피치 주기 값을 획득하기 위해 보간된 정규화된 상관이 계산된다. 부 채널 신호의 추정된 피치 주기 값을 계산하는 프로세스에 대해서는, 후속 실시예에서의 예를 참조한다.
부 채널 신호의 피치 주기 인덱스 값을 조정하여, 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정하기 위해 부 채널 신호의 피치 주기 탐색 범위 조정 인자가 사용될 수 있다. 부 채널 신호의 피치 주기 인덱스 값의 상한은 부 채널 신호의 피치 주기 인덱스 값이 초과할 수 없는 상한 값을 표시한다. 부 채널 신호의 피치 주기 인덱스 값을 결정하기 위해 부 채널 신호의 피치 주기 인덱스 값이 사용될 수 있다.
본 출원의 일부 실시예들에서, 부 채널 신호의 피치 주기 탐색 범위 조정 인자에 기초하여 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정하는 단계는,
부 채널 신호의 피치 주기 인덱스 값의 상한 soft_reuse_index_high_limit를 다음과 같은 방식으로 계산하는 단계를 포함하고:
soft_reuse_index_high_limit = 0.5 + 2Z이고; 여기서,
Z는 부 채널 신호의 피치 주기 탐색 범위 조정 인자이고, Z의 값은 3, 4, 또는 5이다.
차동 인코딩에서 부 채널 신호의 피치 주기 인덱스 상한을 계산하기 위해, 부 채널 신호의 피치 주기 탐색 범위 조정 인자 Z가 먼저 결정될 필요가 있다. 다음으로, soft_reuse_index_high_limit는 다음과 같은 공식을 사용하여 획득되고: soft_reuse_index_high_limit = 0.5 + 2Z이다. 예를 들어, 적용 시나리오에 의존하여, Z는 3, 4, 또는 5일 수 있고, Z의 구체적인 값이 본 명세서에서 제한되는 것은 아니다.
주 채널 신호의 추정된 피치 주기 값, 부 채널 신호의 추정된 피치 주기 값, 및 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정한 후에, 인코더 측은, 주 채널 신호의 추정된 피치 주기 값, 부 채널 신호의 추정된 피치 주기 값, 및 부 채널 신호의 피치 주기 인덱스 값의 상한에 기초하여 차동 인코딩을 수행하고, 부 채널 신호의 피치 주기 인덱스 값을 출력한다.
추가로, 본 출원의 일부 실시예들에서, 주 채널 신호의 추정된 피치 주기 값, 부 채널 신호의 추정된 피치 주기 값, 및 부 채널 신호의 피치 주기 인덱스 값의 상한에 기초하여 부 채널 신호의 피치 주기 인덱스 값을 계산하는 단계는,
주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 정수 부분 loc_T0 및 부 채널 신호의 폐쇄-루프 피치 주기 분수 부분 loc_frac_prim을 결정하는 단계; 및
부 채널 신호의 피치 주기 인덱스 값 soft_reuse_index를 다음과 같은 방식으로 계산하는 단계를 포함하고:
soft_reuse_index = (N * pitch_soft_reuse + pitch_frac_soft_reuse) - (N * loc_T0 + loc_frac_prim) + soft_reuse_index_high_limit/M이고; 여기서,
pitch_soft_reuse는 부 채널 신호의 추정된 피치 주기 값의 정수 부분을 표현하고, pitch_frac_soft_reuse는 부 채널 신호의 추정된 피치 주기 값의 분수 부분을 표현하고, soft_reuse_index_high_limit는 부 채널 신호의 피치 주기 인덱스 값의 상한을 표현하고, N은 부 채널 신호가 분할되는 서브프레임들의 수량을 표현하고, M은 부 채널 신호의 피치 주기 인덱스 값의 상한의 조정 인자를 표현하고, M은 0이 아닌 실수이고, *는 승산 연산자를 표현하고, +는 가산 연산자를 표현하고, -는 감산 연산자를 표현한다.
구체적으로, 주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 정수 부분 loc_T0 및 부 채널 신호의 폐쇄-루프 피치 주기 분수 부분 loc_frac_prim이 먼저 결정된다. 상세사항들에 대해서는, 전술한 계산 프로세스를 참조한다. N은 부 채널 신호가 분할되는 서브프레임들의 수량을 표현하고, 예를 들어, N의 값은 3, 4, 또는 5일 수 있다. M은 부 채널 신호의 피치 주기 인덱스 값의 상한의 조정 인자를 표현하고, M은 0이 아닌 실수이고, 예를 들어, M의 값은 2 또는 3일 수 있다. N 및 M의 값들은 적용 시나리오에 의존하고, 본 명세서에서 제한되는 것은 아니다.
본 출원의 이러한 실시예에서, 부 채널 신호의 피치 주기 인덱스 값의 계산이 전술한 공식에 제한되는 것은 아닐 수 있다. 예를 들어, (N * pitch_soft_reuse + pitch_frac_soft_reuse) - (N * loc_T0 + loc_frac_prim) + soft_reuse_index_high_limit/M의 결과가 계산된 후에, 정정 인자가 추가로 설정될 수 있고, 정정 인자에 (N * pitch_soft_reuse + pitch_frac_soft_reuse) - (N * loc_T0 + loc_frac_prim) + soft_reuse_index_high_limit/M을 승산하는 것에 의해 획득되는 결과가 최종 출력 soft_reuse_index로서 사용될 수 있다.
다른 예를 들어, 방정식: soft_reuse_index = (N * pitch_soft_reuse + pitch_frac_soft_reuse) - (N * loc_T0 + loc_frac_prim) + soft_reuse_index_high_limit/M의 우측에 정정 인자가 추가로 가산될 수 있다. 정정 인자의 구체적인 값이 제한되는 것은 아니고, 최종 soft_reuse_index가 또한 계산될 수 있다.
본 출원의 이러한 실시예에서, 인코더 측에 의해 생성되는 스테레오 인코딩된 비트스트림은 컴퓨터-판독가능 저장 매체에 저장될 수 있다.
본 출원의 이러한 실시예에서, 주 채널 신호의 추정된 피치 주기 값을 사용하여 부 채널 신호의 피치 주기에 대해 차동 인코딩이 수행되어, 부 채널 신호의 피치 주기 인덱스 값을 획득한다. 부 채널 신호의 피치 주기를 표시하기 위해 부 채널 신호의 피치 주기 인덱스 값이 사용된다. 부 채널 신호의 피치 주기 인덱스 값이 획득된 후에, 전송될 스테레오 인코딩된 비트스트림을 생성하기 위해 부 채널 신호의 피치 주기 인덱스 값이 추가로 사용될 수 있다. 스테레오 인코딩된 비트스트림을 생성한 후에, 인코더 측은 스테레오 인코딩된 비트스트림을 출력하고, 스테레오 인코딩된 비트스트림을 오디오 송신 채널을 통해 디코더 측에 전송할 수 있다.
411: 수신된 스테레오 인코딩된 비트스트림에 기초하여, 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행할지를 결정함.
본 출원의 이러한 실시예에서, 수신된 스테레오 인코딩된 비트스트림에 기초하여, 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행할지가 결정된다. 예를 들어, 디코더 측은, 스테레오 인코딩된 비트스트림에서 운반되는 표시 정보에 기초하여, 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행할지를 결정할 수 있다. 다른 예를 들어, 스테레오 신호의 송신 환경이 미리 구성된 후에, 차동 디코딩을 수행할지가 미리 구성될 수 있다. 이러한 경우, 디코더 측은, 사전 구성의 결과에 기초하여, 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행할지를 추가로 결정할 수 있다.
본 출원의 일부 실시예들에서, 수신된 스테레오 인코딩된 비트스트림에 기초하여, 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행할지를 결정하는 단계 411은,
현재 프레임으로부터 부 채널 신호 피치 주기 재사용 플래그 및 신호 타입 플래그를 획득하는 단계- 신호 타입 플래그는 주 채널 신호의 신호 타입 및 부 채널 신호의 신호 타입을 식별하기 위해 사용됨 -; 및
신호 타입 플래그가 미리 설정된 제1 플래그이고 부 채널 신호 피치 주기 재사용 플래그가 제2 플래그일 때, 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하기로 결정하는 단계를 포함한다.
본 출원의 이러한 실시예에서, 부 채널 피치 주기 재사용 플래그는 복수의 방식들로 구성될 수 있다. 예를 들어, 부 채널 피치 주기 재사용 플래그는 미리 설정된 제2 플래그일 수 있거나, 또는 제4 플래그로 구성될 수 있다. 예를 들어, 부 채널 피치 주기 재사용 플래그의 값은 0 또는 1일 수 있고, 여기서 제2 플래그는 1이고, 제4 플래그는 0이다. 유사하게, 신호 타입 플래그는 미리 설정된 제1 플래그 또는 제3 플래그일 수 있다. 예를 들어, 신호 타입 플래그의 값은 0 또는 1일 수 있고, 여기서 제1 플래그는 1이고, 제3 플래그는 0이다. 예를 들어, 부 채널 피치 주기 재사용 플래그의 값이 1일 때, 그리고 신호 타입 플래그의 값이 1일 때, 단계 412가 트리거된다.
예를 들어, 부 채널 피치 주기 재사용 플래그는 soft_pitch_reuse_flag이고, 주 및 부 채널들의 신호 타입 플래그는 both_chan_generic이다. 예를 들어, 부 채널 디코딩 동안, 주 채널 및 부 채널의 신호 타입 플래그 both_chan_generic가 비트스트림으로부터 판독된다. both_chan_generic가 1일 때, 부 채널 피치 주기 재사용 플래그 soft_pitch_reuse_flag가 비트스트림으로부터 판독된다. 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속할 때, soft_pitch_reuse_flag는 1이고, 본 출원의 이러한 실시예에서의 차동 디코딩 방법이 수행되거나; 또는 프레임 구조 유사도 값이 프레임 구조 유사도 구간 외에 속할 때, soft_pitch_reuse_flag는 0이고, 독립적 디코딩 방법이 수행된다. 예를 들어, 본 출원의 이러한 실시예에서, 단계 412 및 단계 413에서의 차동 디코딩 프로세스는 soft_pitch_reuse_flag 및 both_chan_generic 양자 모두가 1일 때에만 수행된다.
본 출원의 일부 다른 실시예들에서, 디코더 측에 의해 수행되는 스테레오 디코딩 방법은 부 채널 피치 주기 재사용 플래그 및 신호 타입 플래그의 값들에 기초하여 다음과 같은 단계:
신호 타입 플래그가 미리 설정된 제1 플래그이고 부 채널 신호 피치 주기 재사용 플래그가 제4 플래그일 때, 또는 신호 타입 플래그가 미리 설정된 제3 식별자일 때, 부 채널 신호의 피치 주기 및 주 채널 신호의 피치 주기를 개별적으로 디코딩하는 단계를 추가로 포함할 수 있다.
부 채널 피치 주기 재사용 플래그가 제1 플래그이고, 부 채널 신호 피치 주기 재사용 플래그가 제4 플래그일 때, 단계 412 및 단계 413에서의 차동 디코딩 프로세스를 수행하지 않기로 결정된다. 대신에, 부 채널 신호의 피치 주기 및 주 채널 신호의 피치 주기가 개별적으로 디코딩된다, 즉, 부 채널 신호의 피치 주기가 독립적으로 디코딩된다. 다른 예를 들어, 신호 타입 플래그가 미리 설정된 제3 플래그일 때, 단계 412 및 단계 413에서의 차동 디코딩 프로세스가 수행되지 않는다고 결정되고, 부 채널 신호의 피치 주기 및 주 채널 신호의 피치 주기가 개별적으로 디코딩된다. 디코더 측은, 스테레오 인코딩된 비트스트림에서 운반되는 부 채널 피치 주기 재사용 플래그 및 신호 타입 플래그에 기초하여, 차동 디코딩 방법 또는 독립적 디코딩 방법을 실행하기로 결정할 수 있다.
412: 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하기로 결정할 때, 스테레오 인코딩된 비트스트림으로부터, 현재 프레임의 주 채널 신호의 추정된 피치 주기 값 및 현재 프레임의 부 채널 신호의 피치 주기 인덱스 값을 획득함.
본 출원의 이러한 실시예에서, 인코더 측이 스테레오 인코딩된 비트스트림을 전송한 후에, 디코더 측은 오디오 송신 채널을 통해 스테레오 인코딩된 비트스트림을 먼저 수신하고, 다음으로 스테레오 인코딩된 비트스트림에 기초하여 채널 디코딩을 수행한다. 부 채널 신호의 피치 주기에 대해 차동 디코딩이 수행될 필요가 있으면, 현재 프레임의 부 채널 신호의 피치 주기 인덱스 값이 스테레오 인코딩된 비트스트림으로부터 획득될 수 있고, 현재 프레임의 주 채널 신호의 추정된 피치 주기 값이 스테레오 인코딩된 비트스트림으로부터 획득될 수 있다.
413: 주 채널 신호의 추정된 피치 주기 값 및 부 채널 신호의 피치 주기 인덱스 값에 기초하여 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하여, 부 채널 신호의 추정된 피치 주기 값을 획득함- 부 채널 신호의 추정된 피치 주기 값은 스테레오 디코딩된 비트스트림을 획득하기 위한 디코딩에 사용됨 -.
본 출원의 이러한 실시예에서, 단계 411에서 부 채널 신호의 피치 주기에 대해 차동 디코딩이 수행될 필요가 있다고 결정될 때, 주 채널 신호와 부 채널 신호 사이에 프레임 구조 유사도가 있다고 결정될 수 있다. 프레임 구조 유사도가 주 채널 신호와 부 채널 신호 사이에 존재하기 때문에, 주 채널 신호의 추정된 피치 주기 값 및 부 채널 신호의 피치 주기 인덱스 값을 사용하여 부 채널 신호의 피치 주기에 대해 차동 디코딩이 수행되어, 부 채널의 피치 주기의 정확한 디코딩을 구현하고 전체 스테레오 디코딩 품질을 개선할 수 있다.
다음은 본 출원의 이러한 실시예에서의 구체적인 차동 디코딩 프로세스를 설명한다. 구체적으로, 주 채널 신호의 추정된 피치 주기 값 및 부 채널 신호의 피치 주기 인덱스 값에 기초하여 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하는 단계 413은,
주 채널 신호의 추정된 피치 주기 값 및 현재 프레임의 부 채널 신호가 분할되는 서브프레임들의 수량에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 결정하는 단계; 및
부 채널 신호의 피치 주기 탐색 범위 조정 인자에 기초하여 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정하는 단계; 및
부 채널 신호의 폐쇄-루프 피치 주기 참조 값, 부 채널 신호의 피치 주기 인덱스 값, 및 부 채널 신호의 피치 주기 인덱스 값의 상한에 기초하여 부 채널 신호의 추정된 피치 주기 값을 계산하는 단계를 포함한다.
예를 들어, 부 채널 신호의 폐쇄-루프 피치 주기 참조 값은 주 채널 신호의 추정된 피치 주기 값을 사용하여 결정된다. 상세사항들에 대해서는, 전술한 계산 프로세스를 참조한다. 부 채널 신호의 피치 주기 인덱스 값을 조정하여, 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정하기 위해 부 채널 신호의 피치 주기 탐색 범위 조정 인자가 사용될 수 있다. 부 채널 신호의 피치 주기 인덱스 값의 상한은 부 채널 신호의 피치 주기 인덱스 값이 초과할 수 없는 상한 값을 표시한다. 부 채널 신호의 피치 주기 인덱스 값을 결정하기 위해 부 채널 신호의 피치 주기 인덱스 값이 사용될 수 있다.
부 채널 신호의 폐쇄-루프 피치 주기 참조 값, 부 채널 신호의 피치 주기 인덱스 값, 및 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정한 후에, 디코더 측은 부 채널 신호의 폐쇄-루프 피치 주기 참조 값, 부 채널 신호의 피치 주기 인덱스 값, 및 부 채널 신호의 피치 주기 인덱스 값의 상한에 기초하여 차동 디코딩을 수행하고, 부 채널 신호의 추정된 피치 주기 값을 출력한다.
추가로, 본 출원의 일부 실시예들에서, 부 채널 신호의 폐쇄-루프 피치 주기 참조 값, 부 채널 신호의 피치 주기 인덱스 값, 및 부 채널 신호의 피치 주기 인덱스 값의 상한에 기초하여 부 채널 신호의 추정된 피치 주기 값을 계산하는 단계는,
부 채널 신호의 추정된 피치 주기 값 T0_pitch을 다음과 같은 방식으로 계산하는 단계를 포함하고:
T0_pitch = f_pitch_prim + (soft_reuse_index - soft_reuse_index_high_limit/M)/N이고; 여기서,
f_pitch_prim은 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 표현하고, soft_reuse_index는 부 채널 신호의 피치 주기 인덱스 값을 표현하고, N은 부 채널 신호가 분할되는 서브프레임들의 수량을 표현하고, M은 부 채널 신호의 피치 주기 인덱스 값의 상한의 조정 인자를 표현하고, M은 0이 아닌 실수이고, /는 제산 연산자를 표현하고, +는 가산 연산자를 표현하고, -는 감산 연산자를 표현한다.
구체적으로, 주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 정수 부분 loc_T0 및 부 채널 신호의 폐쇄-루프 피치 주기 분수 부분 loc_frac_prim이 먼저 결정된다. 상세사항들에 대해서는, 전술한 계산 프로세스를 참조한다. N은 부 채널 신호가 분할되는 서브프레임들의 수량을 표현하고, 예를 들어, N의 값은 3, 4, 또는 5일 수 있다. M은 부 채널 신호의 피치 주기 인덱스 값의 상한의 조정 인자를 표현하고, M은 0이 아닌 실수이고, 예를 들어, M의 값은 2 또는 3일 수 있다. N 및 M의 값들은 적용 시나리오에 의존하고, 본 명세서에서 제한되는 것은 아니다.
본 출원의 이러한 실시예에서, 부 채널 신호의 추정된 피치 주기 값의 계산이 전술한 공식에 제한되는 것은 아닐 수 있다. 예를 들어, f_pitch_prim + (soft_reuse_index - soft_reuse_index_high_limit/M)/N의 결과가 계산된 후에, 정정 인자가 추가로 설정될 수 있고, 정정 인자에 f_pitch_prim + (soft_reuse_index - soft_reuse_index_high_limit/M)/N을 승산하는 것에 의해 획득되는 결과가 최종 출력 T0_pitch로서 사용될 수 있다. 다른 예를 들어, 정정 인자가 방정식: T0_pitch = f_pitch_prim + (soft_reuse_index - soft_reuse_index_high_limit/M)/N의 우측에 추가로 가산될 수 있고, 정정 인자의 구체적인 값이 제한되는 것은 아니고, 최종 T0_pitch가 또한 계산될 수 있다.
부 채널 신호의 추정된 피치 주기 값 T0_pitch가 계산된 후에, 부 채널 신호의 추정된 피치 주기 값 T0_pitch에 기초하여 부 채널 신호의 추정된 피치 주기 값의 정수 부분 T0 및 추정된 피치 주기 값의 분수 부분 T0_frac가 추가로 계산될 수 있다는 점이 주목되어야 한다. 예를 들어, T0 = INT(T0_pitch), 및 T0_frac = (T0_pitch - T0) * N이다. INT(T0_pitch)는 T0_pitch를 가장 가까운 정수로 내림하는 것을 표시하고, T0은 부 채널의 피치 주기의 정수 부분을 디코딩하는 것을 표시하고, T0_frac는 부 채널의 피치 주기의 분수 부분을 디코딩하는 것을 표시한다.
전술한 실시예의 예들의 설명에 따르면, 본 출원의 이러한 실시예에서, 주 채널 신호의 추정된 피치 주기 값을 사용하여 부 채널 신호의 피치 주기에 대해 차동 인코딩이 수행되기 때문에, 부 채널 신호의 피치 주기는 독립적으로 인코딩될 필요가 없다. 따라서, 적은 수량의 비트 리소스들이 차동 인코딩을 위해 부 채널 신호의 피치 주기에 할당될 수 있고, 부 채널 신호의 피치 주기에 대해 차동 인코딩이 수행되어, 스테레오 신호의 공간감 및 음상 안정성이 개선될 수 있다. 또한, 본 출원의 이러한 실시예에서, 부 채널 신호의 피치 주기에 대해 차동 인코딩을 수행하기 위해 비교적 적은 수량의 비트 리소스들이 사용된다. 따라서, 절감된 비트 리소스들이 다른 스테레오 인코딩 파라미터들에 대해 사용될 수 있어서, 부 채널의 인코딩 효율이 개선되고, 최종적으로 전체 스테레오 인코딩 품질이 개선된다. 본 출원의 이러한 실시예에서, 부 채널 신호의 피치 주기에 대해 차동 디코딩이 수행될 수 있을 때, 주 채널 신호의 추정된 피치 주기 값을 사용하여 부 채널 신호의 피치 주기에 대해 차동 디코딩이 수행될 수 있다. 부 채널 신호의 피치 주기에 대해 차동 디코딩이 수행되어, 스테레오 신호의 공간감 및 음상 안정성이 개선될 수 있다. 또한, 본 출원의 이러한 실시예에서, 부 채널 신호의 피치 주기의 차동 디코딩이 사용되어, 부 채널의 디코딩 효율이 개선되고, 최종적으로 전체 스테레오 디코딩 품질이 개선된다.
본 출원의 실시예들에서 전술한 해결책들을 더 잘 이해하고 구현하기 위해, 다음은 대응하는 적용 시나리오의 예를 사용하여 상세한 설명들을 제공한다.
본 출원의 이러한 실시예에서 제안되는 부 채널 신호에 대한 피치 주기 인코딩 해결책에서, 부 채널 신호의 피치 주기의 인코딩 프로세스에서 프레임 구조 유사도 계산 기준이 설정되고, 이는 프레임 구조 유사도 값을 계산하기 위해 사용될 수 있다. 프레임 구조 유사도 값이 미리 설정된 프레임 구조 유사도 구간 내에 속하는지가 결정되고, 프레임 구조 유사도 값이 미리 설정된 프레임 구조 유사도 구간 내에 속하면, 부 채널 신호의 피치 주기로 지향되는 차동 인코딩 방법을 사용하여 부 채널 신호의 피치 주기가 인코딩된다. 이러한 방식으로, 차동 인코딩을 수행하기 위해 적은 수량의 비트들이 사용되고, 절감된 비트들이 다른 스테레오 인코딩 파라미터들에 할당되어, 부 채널 신호의 피치 주기의 정확한 인코딩을 달성하고 전체 스테레오 인코딩 품질을 개선한다.
본 출원의 이러한 실시예에서, 스테레오 신호는 원래의 스테레오 신호, 또는 멀티-채널 신호에 포함되는 신호들의 2개의 채널에 의해 형성되는 스테레오 신호, 또는 멀티-채널 신호에 포함되는 신호들의 복수의 채널들에 의해 공동으로 생성되는 신호들의 2개의 채널에 의해 형성되는 스테레오 신호일 수 있다. 스테레오 인코딩 장치는 독립적 스테레오 인코더를 구성할 수 있거나, 또는 멀티-채널 인코더에서의 코어 인코딩 부분에서, 멀티-채널 신호에 포함되는 복수의 채널들의 신호에 의해 공동으로 생성되는 2개의 채널들의 신호들을 포함하는 스테레오 신호를 인코딩하기 위해 사용될 수 있다.
본 출원의 이러한 실시예에서, 스테레오 신호의 인코딩 레이트가 32 kbps인 예가 설명을 위해 사용된다. 본 출원의 이러한 실시예가 32 kbps 인코딩 레이트에서의 구현에 제한되는 것은 아니고, 더 높은 레이트에서의 스테레오 인코딩에 추가로 적용될 수 있다는 점이 이해될 수 있다. 도 5a 및 도 5b는 본 출원의 실시예에 따른 스테레오 신호 인코딩의 개략적인 흐름도이다. 본 출원의 이러한 실시예는 스테레오 코딩에서의 피치 주기 인코딩 결정 방법을 제공한다. 이러한 스테레오 코딩은 시간 도메인 스테레오 코딩일 수 있거나, 또는 주파수 도메인 스테레오 코딩일 수 있거나, 또는 시간-주파수 조합된 스테레오 코딩일 수 있다. 이러한 것이 본 출원의 이러한 실시예에서 제한되는 것은 아니다. 예로서 주파수 도메인 스테레오 코딩을 사용하여, 다음은 스테레오 코딩의 인코딩/디코딩 프로세스를 설명하고, 후속 단계들에서 부 채널 신호 코딩에서의 피치 주기의 인코딩 프로세스에 초점을 맞춘다. 구체적으로,
먼저, 주파수 도메인 스테레오 코딩의 인코더 측이 설명된다. 인코더 측의 구체적인 구현 단계들은 다음과 같다:
S01: 좌측 및 우측 채널 시간 도메인 신호들에 대해 시간 도메인 전처리를 수행함.
프레임 분할을 통해 스테레오 신호 인코딩이 일반적으로 수행된다. 스테레오 오디오 신호의 샘플링 레이트가 16 KHz이면, 신호의 각각의 프레임은 20 ms이고, 프레임 길이는 N, N = 320으로 표기된다, 즉, 프레임 길이는 320개의 샘플링 포인트들과 동일하다. 현재 프레임의 스테레오 신호는 현재 프레임의 좌측 채널 시간 도메인 신호 및 현재 프레임의 우측 채널 시간 도메인 신호를 포함한다. 현재 프레임의 좌측 채널 시간 도메인 신호는
Figure pct00001
로 표기되고, 현재 프레임의 우측 채널 시간 도메인 신호는
Figure pct00002
로 표기되며, 여기서 n은 샘플링 포인트 번호이고, n = 0, 1, ..., N-1이다. 현재 프레임의 좌측 및 우측 채널 시간 도메인 신호들은 현재 프레임의 좌측 채널 시간 도메인 신호 및 현재 프레임의 우측 채널 시간 도메인 신호에 대한 약어이다.
구체적으로, 현재 프레임의 좌측 및 우측 채널 시간 도메인 신호들에 대해 시간 도메인 전처리를 수행하는 단계는, 현재 프레임의 좌측 및 우측 채널 시간 도메인 신호들에 대해 고역 통과 필터링을 수행하여 현재 프레임의 전처리된 좌측 및 우측 채널 시간 도메인 신호들을 획득하는 단계를 포함한다. 현재 프레임의 전처리된 좌측 채널 시간 도메인 신호는
Figure pct00003
로 표기되고, 현재 프레임의 전처리된 우측 채널 시간 도메인 신호는
Figure pct00004
로 표기된다. 여기서, n은 샘플링 포인트 번호이고, n = 0, 1, ..., N-1이다. 현재 프레임의 전처리된 좌측 및 우측 채널 시간 도메인 신호들은 현재 프레임의 전처리된 좌측 채널 시간 도메인 신호 및 현재 프레임의 전처리된 우측 채널 시간 도메인 신호에 대한 약어이다. 차단 주파수가 20 Hz인 무한 임펄스 응답(infinite impulse response, IIR) 필터에 의해 고역 통과 필터링이 수행될 수 있거나, 또는 다른 타입의 필터에 의해 수행될 수 있다. 예를 들어, 샘플링 레이트가 16 KHz인 그리고 20 Hz의 차단 주파수에 대응하는 고역 통과 필터의 전달 함수는,
Figure pct00005
이고; 여기서,
b 0 = 0.994461788958195, b 1 = -1.988923577916390, b 2 = 0.994461788958195, a 1 = 1.988892905899653, a 2 = -0.988954249933127이고, z는 Z 변환의 변환 인자이다.
대응하는 시간 도메인 필터는 다음과 같다:
Figure pct00006
.
현재 프레임의 좌측 및 우측 채널 시간 도메인 신호들에 대해 시간 도메인 전처리를 수행하는 것은 필요한 단계가 아니라는 점이 이해될 수 있다. 시간 도메인 전처리 단계가 없으면, 지연 추정에 사용되는 좌측 및 우측 채널 신호들은 원래의 스테레오 신호에서의 좌측 및 우측 채널 신호들이다. 여기서, 원래의 스테레오 신호에서의 좌측 및 우측 채널 신호들은 아날로그-디지털 변환 후에 획득되는 펄스 코드 변조(pulse code modulation, PCM) 신호를 지칭한다. 이러한 신호의 샘플링 레이트는 8 KHz, 16 KHz, 32 KHz, 44.1 KHz 및 48 KHz를 포함할 수 있다. 또한, 이러한 실시예에서 설명되는 고역 통과 필터링 외에도, 전처리는 다른 처리, 예를 들어, 프리-엠퍼시스(pre-emphasis) 처리를 추가로 포함할 수 있다. 이러한 것이 본 출원의 이러한 실시예에서 제한되는 것은 아니다.
S02: 전처리된 좌측 및 우측 채널 신호들에 기초하여 시간 도메인 분석을 수행함.
구체적으로, 시간 도메인 분석은 과도 검출(transient detection) 등을 포함할 수 있다. 과도 검출은 현재 프레임의 전처리된 좌측 및 우측 채널 시간 도메인 신호들에 대해 에너지 검출을 개별적으로 수행하는 것, 예를 들어, 갑작스런 에너지 변화가 현재 프레임에서 발생하는지를 검출하는 것일 수 있다. 예를 들어, 현재 프레임의 전처리된 좌측 채널 시간 도메인 신호의 에너지
Figure pct00007
가 계산되고, 이전 프레임의 전처리된 좌측 채널 시간 도메인 신호의 에너지
Figure pct00008
과 현재 프레임의 전처리된 좌측 채널 시간 도메인 신호의 에너지
Figure pct00009
사이의 차이의 절대값에 기초하여 과도 검출이 수행되어, 현재 프레임의 전처리된 좌측 채널 시간 도메인 신호의 과도 검출 결과를 획득한다. 이와 유사하게, 현재 프레임의 전처리된 우측 채널 시간 도메인 신호에 대해 과도 검출을 수행하기 위해 동일한 방법이 사용될 수 있다. 시간 도메인 분석은 과도 검출 외에도 다른 시간 도메인 분석을 포함할 수 있다, 예를 들어, 시간 도메인 채널간 시간 차이(inter-channel time difference, ITD) 파라미터, 시간 도메인에서의 지연 정렬 처리, 및 주파수 대역 확장 전처리를 결정하는 것을 포함할 수 있다.
S03: 전처리된 좌측 및 우측 채널 신호들에 대해 시간-주파수 변환을 수행하여, 좌측 및 우측 채널 주파수 도메인 신호들을 획득함.
구체적으로, 전처리된 좌측 채널 신호에 대해 이산 푸리에 변환을 수행하여 좌측 채널 주파수 도메인 신호를 획득할 수 있고, 전처리된 우측 채널 신호에 대해 이산 푸리에 변환을 수행하여 우측 채널 주파수 도메인 신호를 획득할 수 있다. 스펙트럼 에일리어싱의 문제점을 극복하기 위해, 2개의 연속하는 이산 푸리에 변환 사이의 처리를 위해 중첩-가산 방법이 사용될 수 있고, 때때로, 이산 푸리에 변환의 입력 신호에 0이 가산될 수 있다.
이산 푸리에 변환이 프레임 당 1회 수행될 수 있다. 대안적으로, 신호의 각각의 프레임은 P개의 서브프레임들로 분할될 수 있고, 이산 푸리에 변환이 서브프레임 당 1회 수행된다. 이산 푸리에 변환이 프레임 당 1회 수행되면, 변환된 좌측 채널 주파수 도메인 신호는 L(k)로 표기될 수 있고, 여기서 k = 0, 1, ..., L/2-1이고, L은 샘플링 포인트를 표현하고; 변환된 우측 채널 주파수 도메인 신호는 R(k)로 표기될 수 있고, 여기서 k = 0, 1..., L/2-1이고, k는 주파수 빈 인덱스 값이다. 이산 푸리에 변환이 서브프레임 당 1회 수행되면, i번째 서브프레임의 변환된 좌측 채널 주파수 도메인 신호는 Li(k)로 표기될 수 있고, 여기서 k = 0, 1, ..., L/2-1이고; i번째 서브프레임의 변환된 우측 채널 주파수 도메인 신호는 Ri(k)로 표기될 수 있고, 여기서 k = 0, 1, ..., L/2-1이고, k는 주파수 빈 인덱스 값이고, i는 서브프레임 인덱스 값이고, i = 0, 1, ..., P-1이다. 예를 들어, 이러한 실시예에서, 광대역이 예로서 사용된다. 광대역은 인코딩 대역폭이 8 KHz 이상일 수 있고, 좌측 채널 신호의 각각의 프레임 또는 우측 채널 신호의 각각의 프레임이 20 ms이고, 프레임 길이가 N으로 표기된다는 점을 의미한다. 이러한 경우에, N = 320이다, 즉, 프레임 길이는 320개의 샘플링 포인트들이다. 신호의 각각의 프레임은 2개의 서브프레임들로 분할된다, 즉, P = 2이다. 신호의 각각의 서브프레임은 10 ms이고, 서브프레임 길이는 160개의 샘플링 포인트들이다. 이산 푸리에 변환이 서브프레임 당 1회 수행된다. 이산 푸리에 변환의 길이는 L로 표기되고, L = 400이다, 즉, 이산 푸리에 변환의 길이는 400개의 샘플링 포인트들이다. 이러한 경우, i번째 서브프레임의 변환된 좌측 채널 주파수 도메인 신호는 Li(k)로 표기될 수 있고, 여기서 k = 0, 1, ..., L/2-1이고; i번째 서브프레임의 변환된 우측 채널 주파수 도메인 신호는 Ri(k)로 표기될 수 있고, 여기서 k = 0, 1, ..., L/2-1이고, k는 주파수 빈 인덱스 값이고, i는 서브프레임 인덱스 값이고, i = 0, 1, ..., P-1이다.
S04: ITD 파라미터를 결정하고, ITD 파라미터를 인코딩함.
ITD 파라미터를 결정하기 위한 복수의 방법들이 있다. ITD 파라미터는 주파수 도메인에서만 결정될 수 있거나, 시간 도메인에서만 결정될 수 있거나, 또는 시간-주파수 도메인에서 결정될 수 있다. 이러한 것이 본 출원의 이러한 실시예에서 제한되는 것은 아니다.
예를 들어, 좌측 및 우측 채널들 사이의 교차-상관 계수를 사용하여 시간 도메인에서 ITD 파라미터가 추출될 수 있다. 예를 들어, 0 ≤ i ≤ Tmax의 범위에서,
Figure pct00010
Figure pct00011
이 계산된다.
Figure pct00012
이면, ITD 파라미터 값은 max(Cn(i))에 대응하는 인덱스 값의 역수이고, max(Cn(i)) 값에 대응하는 인덱스 테이블이 디폴트로 코덱에서 명시되고; 그렇지 않으면, ITD 파라미터 값은 max(Cp(i))에 대응하는 인덱스 값이다.
여기서, i는 교차-상관 계수를 계산하기 위한 인덱스 값이고, j는 샘플링 포인트의 인덱스 값이고, Tmax는 상이한 샘플링 레이트들에서의 ITD 값들의 최대값에 대응하고, N은 프레임 길이이다. ITD 파라미터는 대안적으로 좌측 및 우측 채널 주파수 도메인 신호들에 기초하여 주파수 도메인에서 결정될 수 있다. 예를 들어, 시간 도메인 신호를 주파수 도메인 신호로 변환하기 위해 이산 푸리에 변환(discrete Fourier transform, DFT), 고속 푸리에 변환(fast Fourier transform, FFT), 및 수정된 이산 코사인 변환(modified discrete cosine transform, MDCT)과 같은 시간-주파수 변환 기술들이 사용될 수 있다. 이러한 실시예에서, i번째 서브프레임의 DFT 변환된 좌측 채널 주파수 도메인 신호는 Li(k)이고, 여기서 k = 0, 1, ..., L/2-1이고, i번째 서브프레임의 변환된 우측 채널 주파수 도메인 신호는 Ri(k)이고, 여기서 k = 0, 1, ..., L/2-1이고, i = 0, 1, ..., P-1이다. i번째 서브프레임의 주파수 도메인 상관 계수가 계산된다:
Figure pct00013
.
Figure pct00014
은 i번째 서브프레임의 시간-주파수 변환된 우측 채널 주파수 도메인 신호의 켤레이다. 주파수 도메인 교차-상관 계수는 시간 도메인
Figure pct00015
로 변환되고, 여기서 n = 0, 1, ..., L-1이고,
Figure pct00016
의 최대값은
Figure pct00017
의 범위에서 탐색되어, i번째 서브프레임의 ITD 파라미터 값
Figure pct00018
을 획득한다.
다른 예를 들어, i번째 서브프레임의 DFT 변환된 좌측 채널 주파수 도메인 신호 및 i번째 서브프레임의 DFT 변환된 우측 채널 주파수 도메인 신호에 기초하여
Figure pct00019
의 탐색 범위 내에서 크기 값:
Figure pct00020
이 계산될 수 있고, ITD 파라미터 값은
Figure pct00021
이다, 즉, 최대 크기 값에 대응하는 인덱스 값이다.
ITD 파라미터가 결정된 후, 인코더에서 ITD 파라미터에 대해 잔차 인코딩 및 엔트로피 인코딩이 수행될 필요가 있고, 다음으로 ITD 파라미터는 스테레오 인코딩된 비트스트림에 기입된다.
S05: ITD 파라미터에 기초하여 좌측 및 우측 채널 주파수 도메인 신호들에 대해 시간 시프팅 조정을 수행함.
본 출원의 이러한 실시예에서, 좌측 및 우측 채널 주파수 도메인 신호들에 대해 복수의 방식들로 시간 시프팅 조정이 수행되며, 이는 예들과 함께 다음에서 설명된다.
이러한 실시예에서, 신호의 각각의 프레임이 P개의 서브프레임들로 분할되는, 그리고 P = 2인 예가 사용된다. 시간 시프팅 조정 후의 i번째 서브프레임의 좌측 채널 주파수 도메인 신호는
Figure pct00022
로 표기될 수 있고, 여기서 k = 0, 1, ..., L/2-1이다. 시간 시프팅 조정 후의 i번째 서브프레임의 우측 채널 주파수 도메인 신호는
Figure pct00023
로 표기될 수 있고, 여기서 k = 0, 1, ..., L/2-1이고, k는 주파수 빈 인덱스 값이고, i = 0, 1, ..., P-1이다.
Figure pct00024
이고; 여기서,
Figure pct00025
는 i번째 서브프레임의 ITD 파라미터 값이고, L은 이산 푸리에 변환의 길이이고, Li(k)는 i번째 서브프레임의 시간-주파수 변환된 좌측 채널 주파수 도메인 신호이고, Ri(k)는 i번째 서브프레임의 변환된 우측 채널 주파수 도메인 신호이고, i는 서브프레임 인덱스 값이고, i = 0, 1, ..., P-1이다.
DFT가 프레임 분할을 통해 수행되지 않으면, 전체 프레임에 대해 1회 시간 시프팅 조정이 수행될 수 있다는 점이 이해될 수 있다. 프레임 분할 후에, 각각의 서브프레임에 기초하여 시간 시프팅 조정이 수행된다. 프레임 분할이 수행되지 않으면, 각각의 프레임에 기초하여 시간 시프팅 조정이 수행된다.
S06: 다른 주파수 도메인 스테레오 파라미터들을 계산하고, 인코딩을 수행함.
다른 주파수 도메인 스테레오 파라미터들은 이에 제한되는 것은 아니지만, 채널간 위상 차이(inter-channel phase difference, IPD) 파라미터, 채널간 레벨 차이(채널간 진폭 차이라고 또한 지칭됨)(inter-channel level difference, ILD) 파라미터, 부대역 측 이득 등을 포함할 수 있다. 이러한 것이 본 출원의 이러한 실시예에서 제한되는 것은 아니다. 다른 주파수 도메인 스테레오 파라미터들이 계산을 통해 획득된 후, 다른 주파수 도메인 스테레오 파라미터들에 대해 잔차 인코딩 및 엔트로피 인코딩이 수행될 필요가 있고, 다음으로 다른 주파수 도메인 스테레오 파라미터들이 스테레오 인코딩된 비트스트림에 기입된다.
S07: 주 채널 신호 및 부 채널 신호를 계산함.
주 채널 신호 및 부 채널 신호가 계산된다. 구체적으로, 본 출원의 실시예들에서의 임의의 시간 도메인 다운믹스 처리 또는 주파수 도메인 다운믹스 처리 방법이 사용될 수 있다. 예를 들어, 현재 프레임의 좌측 채널 주파수 도메인 신호 및 현재 프레임의 우측 채널 주파수 도메인 신호에 기초하여 현재 프레임의 주 채널 신호 및 부 채널 신호가 계산될 수 있다. 현재 프레임의 미리 설정된 저주파수 대역에 대응하는 각각의 부대역의 좌측 채널 주파수 도메인 신호 및 현재 프레임의 미리 설정된 저주파수 대역에 대응하는 각각의 부대역의 우측 채널 주파수 도메인 신호에 기초하여 현재 프레임의 미리 설정된 저주파수 대역에 대응하는 각각의 부대역의 주 채널 신호 및 부 채널 신호가 계산될 수 있다. 대안적으로, 현재 프레임의 각각의 서브프레임의 좌측 채널 주파수 도메인 신호 및 현재 프레임의 각각의 서브프레임의 우측 채널 주파수 도메인 신호에 기초하여 현재 프레임의 각각의 서브프레임의 주 채널 신호 및 부 채널 신호가 계산될 수 있다. 대안적으로, 현재 프레임의 각각의 서브프레임에서의 미리 설정된 저주파수 대역에 대응하는 각각의 부대역의 좌측 채널 주파수 도메인 신호 및 현재 프레임의 각각의 서브프레임에서의 미리 설정된 저주파수 대역에 대응하는 각각의 부대역의 우측 채널 주파수 도메인 신호에 기초하여 현재 프레임의 각각의 서브프레임에서의 미리 설정된 저주파수 대역에 대응하는 각각의 부대역의 주 채널 신호 및 부 채널 신호가 계산될 수 있다. 현재 프레임의 좌측 채널 시간 도메인 신호와 현재 프레임의 우측 채널 시간 도메인 신호를 가산하는 것에 의해 주 채널 신호가 획득될 수 있고, 좌측 채널 시간 도메인 신호와 우측 채널 시간 도메인 신호 사이의 차이를 계산하는 것에 의해 부 채널 신호가 획득될 수 있다.
이러한 실시예에서, 프레임 분할 처리가 신호의 각각의 프레임에 대해 수행되기 때문에, 각각의 서브프레임의 주 채널 신호 및 부 채널 신호는 이산 푸리에 변환의 역변환을 통해 시간 도메인으로 변환되고, 중첩-가산 처리가 수행되어, 현재 프레임의 시간 도메인 주 채널 신호 및 부 채널 신호를 획득한다.
단계 S07에서 주 채널 신호 및 부 채널 신호를 획득하는 프로세스가 다운믹스 처리라고 지칭되고, 단계 S08로부터 시작하여, 주 채널 신호 및 부 채널 신호가 처리된다는 점이 주목되어야 한다.
S08: 다운믹스된 주 채널 신호 및 부 채널 신호를 인코딩함.
구체적으로, 이전 프레임에서의 주 채널 신호 및 부 채널 신호의 인코딩에서 획득되는 파라미터 정보 및 주 채널 신호 및 부 채널 신호를 인코딩하기 위한 비트들의 총 수량에 기초하여 주 채널 신호의 인코딩 및 부 채널 신호의 인코딩을 위해 비트 할당이 먼저 수행될 수 있다. 다음으로, 비트 할당의 결과에 기초하여 주 채널 신호 및 부 채널 신호가 개별적으로 인코딩된다. 임의의 모노 오디오 인코딩 기술을 사용하여 주 채널 신호 인코딩 및 부 채널 신호 인코딩이 구현될 수 있다. 예를 들어, 다운믹스 처리를 통해 획득되는 주 채널 신호 및 부 채널 신호를 인코딩하기 위해 ACELP 인코딩 방법이 사용된다. ACELP 인코딩 방법은 일반적으로, 선형 예측 계수(선형 예측 계수, LPC)를 결정하고, 양자화 및 인코딩을 위해 선형 예측 계수를 라인 스펙트럼 주파수(라인 스펙트럼 주파수, LSF)로 변환하는 단계; 적응적 코드 여기를 탐색하여 피치 주기 및 적응적 코드북 이득을 결정하고, 피치 주기 및 적응적 코드북 이득에 대해 개별적으로 양자화 및 인코딩을 수행하는 단계; 및 대수 코드 여기를 탐색하여 대수 코드 여기의 펄스 인덱스 및 이득을 결정하고, 대수 코드 여기의 펄스 인덱스 및 이득에 대해 개별적으로 양자화 및 인코딩을 수행하는 단계를 포함한다.
도 6은 본 출원의 실시예에 따른 주 채널 신호의 피치 주기 파라미터 및 부 채널 신호의 피치 주기 파라미터를 인코딩하는 흐름도이다. 도 6에 도시되는 프로세스는 다음과 같은 단계들 S09 내지 S12를 포함한다. 주 채널 신호의 피치 주기 파라미터 및 부 채널 신호의 피치 주기 파라미터를 인코딩하는 프로세스는 다음과 같다:
S09: 주 채널 신호의 피치 주기를 결정하고 인코딩을 수행함.
구체적으로, 주 채널 신호의 인코딩 동안, 개방-루프 피치 분석과 폐쇄-루프 피치 탐색의 조합을 통해 피치 주기 추정이 수행되어, 피치 주기 추정의 정확도를 개선한다. 복수의 방법들을 사용하여, 예를 들어, 자기상관 함수를 사용하여, 또는 단기간 평균 진폭 차이를 사용하여 음성의 피치 주기가 추정될 수 있다. 피치 주기 추정 알고리즘은 자기상관 함수에 기초한다. 자기상관 함수는 피치 주기의 정수배에서 피크를 가지며, 이러한 특징은 피치 주기를 추정하기 위해 사용될 수 있다. 피치 예측의 정확도를 개선하고 음성의 실제 피치 주기를 더 잘 근사화하기 위해, 1/3의 샘플링 해상도를 갖는 분수 지연이 피치 주기 검출을 위해 사용된다. 피치 주기 추정의 계산량을 감소하기 위해, 피치 주기 추정은 2개의 단계들: 개방-루프 피치 분석 및 폐쇄-루프 피치 탐색을 포함한다. 음성 프레임의 정수 지연을 대략 추정하여 후보 정수 지연을 획득하기 위해 개방-루프 피치 분석이 사용된다. 정수 지연 부근에서 피치 지연을 미세하게 추정하기 위해 폐쇄-루프 피치 탐색이 사용되고, 서브프레임 당 1회 폐쇄-루프 피치 탐색이 수행된다. 자기상관, 정규화, 및 최적 개방-루프 정수 지연을 계산하기 위해, 프레임 당 1회 개방-루프 피치 분석이 수행된다.
전술한 단계들을 통해 획득되는 주 채널 신호의 추정된 피치 주기 값은 주 채널 신호의 피치 주기 인코딩 파라미터로서 사용되고, 부 채널 신호의 피치 주기 참조 값으로서 추가로 사용된다.
S10: 부 채널 신호 인코딩에서의 프레임 구조 유사도를 결정함.
부 채널 신호 인코딩에서, 프레임 구조 유사도 결정 기준에 따라 부 채널 신호의 피치 주기 재사용 결정이 이루어진다.
S101: 프레임 구조 유사도를 결정함.
구체적으로, 주 채널 신호 및 부 채널 신호의 신호 타입 플래그 both_chan_generic에 기초하여 프레임 구조 유사도 값을 계산할지가 결정될 수 있고, 다음으로 프레임 구조 유사도 값이 미리 설정된 프레임 구조 유사도 구간 내에 속하는지에 기초하여 부 채널 신호 피치 주기 재사용 플래그 soft_pitch_reuse_flag의 값이 결정된다. 예를 들어, 부 채널 인코딩에서, soft_pitch_reuse_flag 및 both_chan_generic 각각은 0 또는 1로서 정의되고, 주 채널 신호 및 부 채널 신호가 프레임 구조 유사도를 갖는지를 표시하기 위해 사용된다. 먼저, 주 및 부 채널들의 신호 타입 플래그가 both_chan_generic라고 결정된다. both_chan_generic가 1일 때, 현재 프레임의 주 및 부 채널들 양자 모두가 일반(GENERIC) 모드에 있다. 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속하는지에 기초하여 부 채널 피치 주기 재사용 플래그 soft_pitch_reuse_flag가 설정된다. 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속할 때, soft_pitch_reuse_flag는 1이고, 본 출원의 이러한 실시예에서의 차동 인코딩 방법이 수행된다. 프레임 구조 유사도 값이 프레임 구조 유사도 구간 외에 속할 때, soft_pitch_reuse_flag는 0이고, 독립적 인코딩 방법이 수행된다.
S102: 프레임 구조 유사도가 없으면, 부 채널 신호에 대한 피치 주기 독립적 인코딩 방법을 사용하여 부 채널 신호의 피치 주기를 인코딩함.
S103: 프레임 구조 유사도 값을 계산함.
프레임 구조 유사도 값을 계산하는 구체적인 단계들은 다음을 포함한다:
S10301: 피치 주기 매핑을 수행함.
이러한 실시예에서, 32 kbps의 인코딩 레이트가 예로서 사용된다. 서브프레임들에 기초하여 피치 주기 인코딩이 수행되고, 주 채널 신호는 5개의 서브프레임들로 분할되고, 부 채널 신호는 4개의 서브프레임들로 분할된다. 주 채널 신호의 피치 주기에 기초하여 부 채널 신호의 피치 주기 참조 값이 결정된다. 하나의 방법은 주 채널 신호의 피치 주기를 부 채널 신호의 피치 주기 참조 값으로서 직접 사용하는 것이다. 즉, 부 채널 신호의 4개의 서브프레임들의 피치 주기 참조 값으로서, 주 채널 신호의 5개의 서브프레임들의 피치 주기로부터 4개의 값들이 선택된다. 다른 방법에서, 주 채널 신호의 5개의 서브프레임들의 피치 주기들은 보간 방법을 사용하여 부 채널 신호의 4개의 서브프레임들의 피치 주기 참조 값들에 매핑된다. 전술한 방법들 중 어느 하나에 따르면, 부 채널 신호의 폐쇄-루프 피치 주기 참조 값이 획득될 수 있고, 여기서 정수 부분은 loc_T0이고, 분수 부분은 loc_frac_prim이다.
S10302: 부 채널 신호의 피치 주기 참조 값을 계산함.
부 채널 신호의 피치 주기 참조 값 f_pitch_prim은 다음과 같은 공식을 사용하여 계산된다:
f_pitch_prim=loc_T0 + loc_frac_prim/4.0.
S10303: 프레임 구조 유사도 값을 계산함.
프레임 구조 유사도 값 ol_pitch는 다음과 같은 공식을 사용하여 계산된다:
ol_pitch = T_op - f_pitch_prim이고; 여기서,
T_op는 부 채널 신호의 개방-루프 피치 분석을 통해 획득되는 개방-루프 피치 주기이다.
S10304: 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속하는지를 결정하고, 결정 결과에 기초하여 부 채널 신호의 피치 주기를 인코딩하기 위한 대응하는 방법을 선택함.
프레임 구조 유사도가 프레임 구조 유사도 구간 내에 속하면, 부 채널 신호의 피치 주기를 인코딩하기 위해 부 채널 신호에 대한 피치 주기 차동 인코딩 방법이 사용된다. 프레임 구조 유사도가 프레임 구조 유사도 구간 외에 속하면, 부 채널 신호의 피치 주기를 인코딩하기 위해 부 채널 신호에 대한 피치 주기 독립적 인코딩 방법이 사용된다.
구체적으로, 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속하는지가 결정될 수 있다. 예를 들어, ol_pitch가 down_limit < ol_pitch < up_limit를 충족시키는지가 결정되고, 여기서 down_limit 및 up_limit는 각각 사용자 정의 프레임 구조 유사도 구간의 하한 임계값 및 상한 임계값이다. 예를 들어, 본 출원의 이러한 실시예에서, 복수의 프레임 구조 유사도 구간들이 설정될 수 있고, 예를 들어, 3개의 레벨들의 프레임 구조 유사도 구간들이 설정될 수 있다. 예를 들어, 최저-레벨 프레임 구조 유사도 구간의 최소값은 -4.0이고, 최저-레벨 프레임 구조 유사도 구간의 최대값은 3.75이고; 중간-레벨 프레임 구조 유사도 구간의 최소값은 -2.0이고, 중간-레벨 프레임 구조 유사도 구간의 최대값은 1.75이고; 최고-레벨 프레임 구조 유사도 구간의 최소값은 -1.0이고, 최고-레벨 프레임 구조 유사도 구간의 최대값은 0.75이다. 상이한 레벨들의 전술한 프레임 구조 유사도 구간들에 기초하여, 다음과 같은 결정이 개별적으로 수행될 수 있다: -4.0 < ol_pitch < 3.75,-2.0 < ol_pitch < 1.75, 또는-1.0 < ol_pitch < 0.75.
down_limit < ol_pitch < up_limit가 만족될 때, 이것은 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속한다는 것을 표시하고, 부 채널 신호에 대한 피치 주기 인코딩을 수행하는 단계 S11이 실행된다. 그렇지 않으면, 부 채널 신호에 대한 피치 주기 독립적 인코딩을 수행하는 단계 S12가 실행된다.
S11: 부 채널 신호의 피치 주기에 대해 독립적 인코딩을 수행함.
부 채널 신호가 독립적 인코딩 스킴을 사용하고, 주 채널 신호와 부 채널 신호 사이의 상관이 고려되지 않으며, 추정된 피치 주기 값이 독립적으로 탐색되고 인코딩된다. 인코딩 스킴은 전술한 단계 S08에서의 주 채널 신호 인코딩 및 피치 주기 검출의 것과 동일하다.
S12: 부 채널 신호의 피치 주기에 대해 차동 인코딩을 수행함.
이러한 실시예에서, 서브프레임들에 기초하여 피치 주기 인코딩이 수행되고, 주 채널 신호는 5개의 서브프레임들로 분할되고, 부 채널 신호는 4개의 서브프레임들로 분할된다. 이러한 실시예에서, 주 채널 신호의 5개의 서브프레임들의 피치 주기들은 보간 방법을 사용하여 주 채널 신호의 4개의 서브프레임들의 피치 주기 참조 값들에 매핑된다. 즉, 주 채널 신호의 폐쇄-루프 피치 주기 매핑 값의 정수 부분은 loc_T0이고, 분수 부분은 loc_frac_prim이다. 이러한 실시예에서, 부 채널 신호의 피치 주기에 대해 인코딩을 수행하는 프로세스는 다음과 같다:
S121: 주 채널 신호의 피치 주기에 기초하여 부 채널 신호 폐쇄-루프 피치 주기 탐색을 수행하여, 부 채널 신호의 추정된 피치 주기 값을 획득함.
S12101: 주 채널 신호의 피치 주기에 기초하여 부 채널 신호의 피치 주기 참조 값을 결정함. 하나의 방법은 주 채널 신호의 피치 주기를 부 채널 신호의 피치 주기 참조 값으로서 직접 사용하는 것이다. 즉, 부 채널 신호의 4개의 서브프레임들의 피치 주기 참조 값으로서, 주 채널 신호의 5개의 서브프레임들의 피치 주기로부터 4개의 값들이 선택된다. 다른 방법에서, 주 채널 신호의 5개의 서브프레임들의 피치 주기들은 보간 방법을 사용하여 부 채널 신호의 4개의 서브프레임들의 피치 주기 참조 값들에 매핑된다. 전술한 방법들 중 어느 하나에 따르면, 부 채널 신호의 폐쇄-루프 피치 주기 참조 값이 획득될 수 있고, 여기서 정수 부분은 loc_T0이고, 분수 부분은 loc_frac_prim이다.
S12102: 부 채널 신호의 피치 주기 참조 값에 기초하여 부 채널 신호 폐쇄-루프 피치 주기 탐색을 수행하여, 부 채널 신호의 피치 주기를 결정함. 구체적으로, 정수 정밀도 및 다운샘플링 분수 정밀도를 사용하여 그리고 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 부 채널 신호 폐쇄-루프 피치 주기 탐색의 시작 포인트로서 사용하여 폐쇄-루프 피치 주기 탐색이 수행되고, 부 채널 신호의 추정된 피치 주기 값을 획득하기 위해 보간된 정규화된 상관이 계산된다.
예를 들어, 하나의 방법은 부 채널 신호의 피치 주기의 인코딩을 위해 2 비트(bits)을 사용하는 것이다.
구체적으로, 정수 정밀도 탐색은 [loc_T0-1, loc_T0 + 1]의 범위 내의 부 채널 신호의 피치 주기에 대해, 탐색 시작 포인트로서 loc_T0을 사용하여 수행되고, 다음으로 분수 정밀도 탐색은 [loc_frac_prim + 2, loc_frac_prim + 3], [loc_frac_prim, loc_frac_prim - 3], 또는 [loc_frac_prim - 2, loc_frac_prim + 1]의 범위 내의 부 채널 신호의 피치 주기에 대해, 각각의 탐색 포인트에 대한 초기값으로서 loc_frac_prim을 사용하여 수행된다. 각각의 탐색 포인트에 대응하는 보간된 정규화된 상관이 계산되고, 하나의 프레임 내의 복수의 탐색 포인트들의 유사도가 계산된다. 보간된 정규화된 상관의 최대값이 획득될 때, 보간된 정규화된 상관에 대응하는 탐색 포인트는 부 채널 신호의 최적의 추정된 피치 주기 값이고, 여기서 정수 부분은 pitch_soft_reuse이고, 분수 부분은 pitch_frac_soft_reuse이다.
다른 예를 들어, 다른 방법은 3 비트 내지 5 비트를 사용하여 부 채널 신호의 피치 주기를 인코딩하는 것이다.
구체적으로, 부 채널 신호의 피치 주기를 인코딩하기 위해 3 비트 내지 5 비트가 사용될 때, 탐색 반경들 half_range는 각각 1, 2, 및 4이다. 탐색 시작 포인트로서 loc_T0을 사용하여, [loc_T0-half_range, loc_T0 + half_range]의 범위 내의 부 채널 신호의 피치 주기에 대해 정수 정밀도 탐색이 수행되고, 다음으로 [loc_frac_prim, loc_frac_prim + 3], [loc_frac_prim, loc_frac_prim - 1], 또는 [loc_frac_prim, loc_frac_prim + 3]의 범위 내의 각각의 탐색 포인트에 대한 초기값으로서 loc_frac_prim을 사용하여, 각각의 탐색 포인트에 대응하는 보간된 정규화된 상관이 계산된다. 보간된 정규화된 상관의 최대값이 획득될 때, 보간된 정규화된 상관에 대응하는 탐색 포인트는 부 채널 신호의 최적의 추정된 피치 주기 값이고, 여기서 정수 부분은 pitch_soft_reuse이고, 분수 부분은 pitch_frac_soft_reuse이다.
S122: 주 채널 신호의 피치 주기 및 부 채널 신호의 피치 주기를 사용하여 차동 인코딩을 수행함. 구체적으로, 다음과 같은 프로세스가 포함될 수 있다.
S12201: 차동 인코딩에서 부 채널 신호의 피치 주기 인덱스의 상한을 계산함.
부 채널 신호의 피치 주기 인덱스의 상한은 다음과 같은 공식을 사용하여 계산된다:
soft_reuse_index_high_limit = 2Z이고; 여기서,
Z는 부 채널의 피치 주기 탐색 범위 조정 인자이다. 이러한 실시예에서, Z = 3, 4, 또는 5이다.
S12202: 차동 인코딩에서 부 채널 신호의 피치 주기 인덱스 값을 계산함.
부 채널 신호의 피치 주기 인덱스는 전술한 단계에서 획득되는 부 채널 신호의 피치 주기 참조 값과 부 채널 신호의 최적 추정된 피치 주기 값 사이의 차이에 대해 차동 인코딩을 수행한 결과를 표현한다.
부 채널 신호의 피치 주기 인덱스 값 soft_reuse_index는 다음과 같은 공식을 사용하여 계산된다:
soft_reuse_index = (4 * pitch_soft_reuse + pitch_frac_soft_reuse) - (4 * loc_T0 + loc_frac_prim) + soft_reuse_index_high_limit/2.
S12203: 부 채널 신호의 피치 주기 인덱스에 대해 차동 인코딩을 수행함.
예를 들어, 부 채널 신호의 피치 주기 인덱스 soft_reuse_index에 대해 잔차 인코딩이 수행된다.
본 출원의 이러한 실시예에서, 부 채널 신호에 대한 피치 주기 인코딩 방법이 사용된다. 각각의 코딩된 프레임은 4개의 서브프레임들(subframe)로 분할되고, 각각의 서브프레임의 피치 주기에 대해 차동 인코딩이 수행된다. 이러한 방법은 부 채널 신호에 대한 피치 주기 독립적 인코딩과 비교하여 22 비트 또는 18 비트를 절감할 수 있고, 절감된 비트들은 양자화 및 인코딩을 위해 다른 인코딩 파라미터들에 할당될 수 있다. 예를 들어, 절감된 비트 오버헤드들은 고정 코드북(fixed codebook)에 할당될 수 있다.
본 출원의 이러한 실시예를 사용하여 주 채널 신호 및 부 채널 신호의 다른 파라미터들의 인코딩이 완료되어, 주 채널 신호 및 부 채널 신호의 인코딩된 비트스트림들을 획득하고, 인코딩된 데이터는 구체적인 비트스트림 포맷 요건에 기초하여 스테레오 인코딩된 비트스트림에 기입된다.
다음은 예를 사용하여 본 출원의 이러한 실시예에서의 부 채널 신호의 인코딩 오버헤드들을 감소하는 효과를 설명한다. 부 채널 신호에 대한 피치 주기 독립적 인코딩 스킴에 대해, 4개의 서브프레임들에 할당되는 피치 주기 인코딩 비트들의 수량은 각각 10, 6, 9, 및 6이다. 즉, 각각의 프레임을 인코딩하기 위해 31 비트가 요구된다. 그러나, 본 출원의 이러한 실시예에서 제공되는 부 채널 신호를 위한 피치 주기 차동 인코딩 방법에 따르면, 각각의 서브프레임에서 차동 인코딩을 위해 3 비트만이 요구되고, 프레임 구조 유사도 결정 결과 파라미터(0 또는 1의 값)를 인코딩하기 위해 하나의 추가 비트가 요구된다. 따라서, 본 출원의 이러한 실시예에서의 방법에 따르면, 부 채널 신호의 피치 주기를 인코딩하기 위해 각각의 프레임에 대해 31 - 4 x 3 = 13 비트만이 요구된다. 즉, 18 비트가 절감되고, 고정 코드북 파라미터들과 같은 다른 인코딩 파라미터들에 할당될 수 있다.
독립적 인코딩을 통해 획득되는 부 채널 피치 주기는 정확한 값이라고 가정된다. 본 출원의 이러한 실시예에서의 방법을 사용하여 획득되는 부 채널 피치 주기의 정확도가 평가된다. 부 채널 피치 주기 탐색 범위 조정 인자 Z가 3, 4, 또는 5일 때, 하이, 중간, 및 로우 레벨들의 프레임 구조 유사도 구간들에 대응하는 부 채널 피치 주기 정확도가 다음과 같은 표 1에 도시된다.
Figure pct00026
도 7은 독립적 인코딩 스킴을 사용하여 획득되는 피치 주기 양자화 결과와 차동 인코딩 스킴을 사용하여 획득되는 피치 주기 양자화 결과 사이의 비교도이다. 실선은 독립적 인코딩 후에 획득되는 양자화된 피치 주기 값이고, 파선은 차동 인코딩 후에 획득되는 양자화된 피치 주기 값이다. 도 7에서, Z=3이고 로우-레벨 프레임 구조 유사도 구간이 사용될 때, 독립적 인코딩 결과는 부 채널 신호에 대한 피치 주기 차동 인코딩 방법을 사용하여 정확하게 표현될 수 있다는 것을 알 수 있다. Z의 값이 증가함에 따라, 하이-레벨 프레임 구조 유사도 구간이 사용될 때, 독립적 인코딩 결과는 부 채널 신호에 대한 피치 주기 차동 인코딩 방법을 사용하여 더 정확하게 표현될 수 있다.
부 채널 피치 주기가 3 비트를 사용하여 인코딩될 때, 인코딩된 프레임들의 약 17%가 하이-레벨 프레임 구조 유사도 구간을 충족시키고, 이러한 경우에, 부 채널 피치 주기 인코딩의 정확도가 91%에 도달할 수 있다는 것을 알 수 있다. 부 채널 독립적 인코딩과 비교하여, 차동 인코딩은 18 비트를 절감한다. 부 채널 피치 주기가 5 비트를 사용하여 인코딩될 때, 인코딩된 프레임들의 약 55%가 로우-레벨 프레임 구조 유사도 구간을 충족시키고, 이러한 경우에, 부 채널 피치 주기 인코딩의 정확도가 95%에 도달할 수 있다. 부 채널 독립적 인코딩과 비교하여, 차동 인코딩은 10 비트를 절감한다. 따라서, 사용자는 실제 송신 대역폭 제한 및 인코딩 정밀도 요건에 기초하여 상이한 레벨들의 프레임 구조 유사도 구간들 및 부 채널 피치 주기 탐색 범위 조정 인자를 선택할 수 있다. 상이한 구성들에서, 부 채널 피치 주기를 인코딩하기 위한 비트들이 절감될 수 있다.
도 8은 독립적 인코딩 스킴이 사용된 후에 고정 코드북에 할당되는 비트들의 수량과 차동 인코딩 스킴이 사용된 후에 고정 코드북에 할당되는 비트들의 수량 사이의 비교도이다. 실선은 독립적 인코딩 후에 고정 코드북에 할당되는 비트들의 수량을 표시하고, 파선은 차동 인코딩 후에 고정 코드북에 할당되는 비트들의 수량을 표시한다. 도 8로부터, 부 채널 신호의 피치 주기로 지향되는 차동 인코딩을 사용하여 절감되는 많은 수량의 비트 리소스들이 고정 코드북의 양자화 및 인코딩을 위해 할당되어, 부 채널 신호의 인코딩 품질이 개선된다는 것을 알 수 있다.
다음은 예를 사용하여 디코더 측에 의해 실행되는 스테레오 디코딩 알고리즘을 설명하고, 다음과 같은 프로시저가 주로 수행된다.
S13: 비트스트림으로부터 soft_pitch_reuse_flag를 판독함.
S14: 다음과 같은 조건들: 부 채널이 인코딩되고 인코딩 레이트가 비교적 높고, 주 채널 및 부 채널 양자 모두가 일반 코딩 모드에 있고, soft_pitch_reuse_flag=1임이 충족될 때 부 채널의 피치 주기에 대해 차동 디코딩을 수행하고; 그렇지 않으면, 부 채널의 피치 주기에 대해 독립적 디코딩을 수행함.
예를 들어, 부 채널 피치 주기 재사용 플래그는 soft_pitch_reuse_flag이고, 주 및 부 채널들의 신호 타입 플래그는 both_chan_generic이다. 예를 들어, 부 채널 디코딩 동안, 주 채널 및 부 채널의 신호 타입 플래그 both_chan_generic가 비트스트림으로부터 판독된다. both_chan_generic가 1일 때, 부 채널 피치 주기 재사용 플래그 soft_pitch_reuse_flag가 비트스트림으로부터 판독된다. 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속할 때, soft_pitch_reuse_flag는 1이고, 본 출원의 이러한 실시예에서의 차동 디코딩 방법이 수행되거나; 또는 프레임 구조 유사도 값이 프레임 구조 유사도 구간 외에 속할 때, soft_pitch_reuse_flag는 0이고, 독립적 디코딩 방법이 수행된다. 예를 들어, 본 출원의 이러한 실시예에서, 차동 디코딩 프로세스는 soft_pitch_reuse_flag 및 both_chan_generic 양자 모두가 1일 때에만 수행된다.
S1401: 피치 주기 매핑을 수행함.
이러한 실시예에서, 서브프레임들에 기초하여 피치 주기 인코딩이 수행되고, 주 채널은 5개의 서브프레임들로 분할되고, 부 채널은 4개의 서브프레임들로 분할된다. 주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널의 피치 주기 참조 값이 결정된다. 하나의 방법은 주 채널의 피치 주기를 부 채널의 피치 주기 참조 값으로서 직접 사용하는 것이다. 즉, 부 채널의 4개의 서브프레임들의 피치 주기 참조 값들로서 주 채널의 5개의 서브프레임들의 피치 주기들로부터 4개의 값들이 선택된다. 다른 방법에서, 주 채널의 5개의 서브프레임들의 피치 주기들은 보간 방법을 사용하여 부 채널의 4개의 서브프레임들의 피치 주기 참조 값들에 매핑된다. 전술한 방법들 중 어느 하나에 따르면, 부 채널 신호의 폐쇄-루프 피치 주기의 정수 부분 loc_T0 및 분수 부분 loc_frac_prim이 획득될 수 있다.
S1402: 부 채널의 폐쇄-루프 피치 주기 참조 값을 계산함.
부 채널의 폐쇄-루프 피치 주기 참조 값 f_pitch_prim은 다음과 같은 공식을 사용하여 계산된다:
f_pitch_prim=loc_T0 + loc_frac_prim/4.0.
S1403: 차동 인코딩에서 부 채널의 피치 주기 인덱스의 상한을 계산함.
부 채널의 피치 주기 인덱스의 상한은 다음과 같은 공식을 사용하여 계산된다:
soft_reuse_index_high_limit = 0.5 + 2Z
Z는 부 채널의 피치 주기 탐색 범위 조정 인자이다. 이러한 실시예에서, Z는 3, 4, 또는 5일 수 있다.
S1404: 비트스트림으로부터 부 채널의 피치 주기 인덱스 값 soft_reuse_index를 판독함.
S1405: 부 채널 신호의 추정된 피치 주기 값을 계산함.
T0_pitch = f_pitch_prim + (soft_reuse_index - soft_reuse_index_high_limit/2.0)/4.0이고; 여기서,
T0 = INT(T0_pitch)이고,
T0_frac = (T0_pitch - T0) * 4.0이다.
INT(T0_pitch)는 T0_pitch를 가장 가까운 정수로 내림하는 것을 표시하고, T0은 부 채널의 피치 주기의 정수 부분을 디코딩하는 것을 표시하고, T0_frac는 부 채널의 피치 주기의 분수 부분을 디코딩하는 것을 표시한다.
주파수 도메인에서의 스테레오 인코딩 및 디코딩 프로세스들은 전술한 실시예들에서 설명된다. 본 출원의 실시예들이 시간 도메인 스테레오 인코딩에 적용될 때, 전술한 실시예에서의 단계들 S01 내지 S07은 다음과 같은 단계들 S21 내지 S26으로 대체된다. 도 9는 본 출원의 실시예에 따른 시간 도메인 스테레오 인코딩 방법의 개략도이다.
S21: 스테레오 시간 도메인 신호에 대해 시간 도메인 전처리를 수행하여 전처리된 스테레오 좌측 및 우측 채널 신호들을 획득함.
스테레오 오디오 신호의 샘플링 레이트가 16 KHz이고, 신호의 하나의 프레임이 20 ms이고, 프레임 길이가 N으로 표기되면, N = 320이다, 즉, 프레임 길이는 320개의 샘플링 포인트들과 동일하다. 현재 프레임의 스테레오 신호는 현재 프레임의 좌측 채널 시간 도메인 신호 및 현재 프레임의 우측 채널 시간 도메인 신호를 포함한다. 현재 프레임의 좌측 채널 시간 도메인 신호는
Figure pct00027
로 표기되고, 현재 프레임의 우측 채널 시간 도메인 신호는
Figure pct00028
로 표기되며, 여기서 n은 샘플링 포인트 번호이고, n = 0, 1, ..., N-1이다.
현재 프레임의 좌측 및 우측 채널 시간 도메인 신호들에 대해 시간 도메인 전처리를 수행하는 단계는 구체적으로, 현재 프레임의 좌측 및 우측 채널 시간 도메인 신호들에 대해 고역 통과 필터링을 수행하여, 현재 프레임의 전처리된 좌측 및 우측 채널 시간 도메인 신호들을 획득하는 단계를 포함한다. 현재 프레임의 전처리된 좌측 채널 시간 도메인 신호는
Figure pct00029
로 표기되고, 현재 프레임의 전처리된 우측 채널 시간 도메인 신호는
Figure pct00030
로 표기되며, 여기서 n은 샘플링 포인트 번호이고, n = 0, 1, ..., N-1이다.
현재 프레임의 좌측 및 우측 채널 시간 도메인 신호들에 대해 시간 도메인 전처리를 수행하는 것은 필요한 단계가 아니라는 점이 이해될 수 있다. 시간 도메인 전처리 단계가 없으면, 지연 추정에 사용되는 좌측 및 우측 채널 신호들은 원래의 스테레오 신호에서의 좌측 및 우측 채널 신호들이다. 원래의 스테레오 신호에서의 좌측 및 우측 채널 신호들은 A/D 변환 후에 획득되는 수집된 PCM 신호를 지칭한다. 이러한 신호의 샘플링 레이트는 8 KHz, 16 KHz, 32 KHz, 44.1 KHz 및 48 KHz를 포함할 수 있다.
또한, 이러한 실시예에서 설명되는 고역 통과 필터링 외에도, 전처리는 다른 처리, 예를 들어, 프리-엠퍼시스(pre-emphasis) 처리를 추가로 포함할 수 있다. 이러한 것이 본 출원의 이러한 실시예에서 제한되는 것은 아니다.
S22: 현재 프레임의 전처리된 좌측 및 우측 채널 시간 도메인 신호들에 기초하여 지연 추정을 수행하여, 현재 프레임의 추정된 채널간 지연 차이를 획득함.
구체적으로, 현재 프레임의 전처리된 좌측 및 우측 채널 시간 도메인 신호들에 기초하여 좌측 및 우측 채널들 사이의 교차-상관 함수가 계산될 수 있다. 다음으로, 현재 프레임의 추정된 채널간 지연 차이로서 교차-상관 함수의 최대값이 탐색된다.
Tmax는 현재 샘플링 레이트에서의 채널간 지연 차이의 최대값에 대응하고, Tmin은 현재 샘플링 레이트에서의 채널간 지연 차이의 최소값에 대응한다고 가정된다. Tmax 및 Tmin은 미리 설정된 실수들이고, Tmax > Tmin이다. 이러한 실시예에서, Tmax는 40과 동일하고, Tmin는 -40과 동일하고, 좌측 및 우측 채널들 사이의 교차-상관 계수
Figure pct00031
의 최대값이 Tmin ≤ i ≤ Tmax의 범위 내에서 탐색되어, 최대값에 대응하는 인덱스 값을 획득하고, 이러한 인덱스 값은 현재 프레임의 추정된 채널간 지연 차이로서 사용되고, cur_itd로 표기된다.
본 출원의 이러한 실시예에서는 많은 다른 구체적인 지연 추정 방법들이 있다. 이러한 것이 제한되는 것은 아니다. 예를 들어, 현재 프레임의 전처리된 좌측 및 우측 채널 시간 도메인 신호들에 기초하여 또는 현재 프레임의 좌측 및 우측 채널 시간 도메인 신호들에 기초하여 좌측 및 우측 채널들 사이의 교차-상관 함수가 계산될 수 있다. 다음으로, 이전 L개의 프레임들(L은 1 이상의 정수)의 좌측 및 우측 채널들 사이의 교차-상관 함수 및 현재 프레임의 좌측 및 우측 채널들 사이의 계산된 교차-상관 함수에 기초하여 장시간 평활화가 수행되어, 좌측 및 우측 채널들 사이의 평활화된 교차-상관 함수를 획득한다. 다음으로, Tmin ≤ i ≤ Tmax의 범위 내에서 좌측 및 우측 채널들 사이의 평활화된 교차-상관 계수의 최대값이 탐색되어, 최대값에 대응하는 인덱스 값을 획득하고, 이러한 인덱스 값은 현재 프레임의 추정된 채널간 지연 차이로서 사용된다. 이러한 방법들은 추가로, 이전 M개의 프레임(M은 1 이상의 정수)의 채널간 지연 차이 및 현재 프레임의 추정된 채널간 지연 차이에 대해 프레임간 평활화를 수행하고, 평활화된 채널간 지연 차이를 현재 프레임의 최종 추정된 채널간 지연 차이로서 사용하는 단계를 포함한다. 본 출원의 이러한 실시예가 전술한 지연 추정 방법들에 제한되는 것은 아니다.
현재 프레임의 추정된 채널간 지연 차이에 대해, Tmin ≤ i ≤ Tmax의 범위 내에서 좌측 및 우측 채널들 사이의 교차-상관 계수
Figure pct00032
의 최대값이 탐색되어, 최대값에 대응하는 인덱스 값을 획득한다.
S23: 현재 프레임의 추정된 채널간 지연 차이에 기초하여 스테레오 좌측 및 우측 채널 신호들에 대해 지연 정렬을 수행하여, 지연-정렬된 스테레오 신호를 획득함.
본 출원의 이러한 실시예에서, 스테레오 좌측 및 우측 채널 신호들에 대해 지연 정렬을 수행하기 위한 많은 방법들이 있다. 예를 들어, 현재 프레임의 추정된 채널간 지연 차이 및 이전 프레임의 채널간 지연 차이에 기초하여 스테레오 좌측 및 우측 채널 신호들의 하나 또는 2개의 채널이 압축 또는 신장되어, 지연-정렬된 스테레오 신호의 2개의 신호들에 채널간 지연 차이가 존재하지 않는다. 본 출원의 이러한 실시예가 전술한 지연 정렬 방법에 제한되는 것은 아니다.
현재 프레임의 지연-정렬된 좌측 채널 시간 도메인 신호는
Figure pct00033
로 표기되고, 현재 프레임의 지연-정렬된 우측 채널 시간 도메인 신호는
Figure pct00034
로 표기되며, n은 샘플링 포인트 번호이고, n = 0, 1, ..., N-1이다.
S24: 현재 프레임의 추정된 채널간 지연 차이를 양자화하고 인코딩함.
채널간 지연 차이를 양자화하는 복수의 방법들이 있을 수 있다. 예를 들어, 현재 프레임의 추정된 채널간 지연 차이에 대해 양자화 처리가 수행되어, 양자화된 인덱스를 획득하고, 다음으로 양자화된 인덱스가 인코딩된다. 양자화된 인덱스는 양자화된 후에 비트스트림에 기입된다.
S25: 지연-정렬된 스테레오 신호에 기초하여 채널 조합 비율 인자를 계산하고, 채널 조합 비율 인자에 대해 양자화 및 인코딩을 수행하고, 양자화되고 인코딩된 결과를 비트스트림에 기입함.
채널 조합 비율 인자를 계산하기 위한 많은 방법들이 있다. 예를 들어, 본 출원의 이러한 실시예에서의 채널 조합 비율 인자를 계산하기 위한 방법에서는, 현재 프레임의 지연-정렬된 좌측 및 우측 채널 시간 도메인 신호들에 기초하여 좌측 및 우측 채널들의 프레임 에너지가 먼저 계산된다.
현재 프레임의 좌측 채널의 프레임 에너지
Figure pct00035
는 다음을 충족한다:
Figure pct00036
이고;
현재 프레임의 우측 채널의 프레임 에너지
Figure pct00037
는 다음을 충족한다:
Figure pct00038
이고; 여기서,
Figure pct00039
는 현재 프레임의 지연-정렬된 좌측 채널 시간 도메인 신호이고,
Figure pct00040
는 현재 프레임의 지연-정렬된 우측 채널 시간 도메인 신호이다.
다음으로, 좌측 및 우측 채널들의 프레임 에너지에 기초하여 현재 프레임의 채널 조합 비율 인자가 계산된다.
현재 프레임의 계산된 채널 조합 비율 인자
Figure pct00041
는 다음을 충족한다:
Figure pct00042
.
최종적으로, 현재 프레임의 계산된 채널 조합 비율 인자가 양자화되어, 현재 프레임의 양자화된 채널 조합 비율 인자
Figure pct00043
및 비율 인자에 대응하는 양자화된 인덱스
Figure pct00044
를 획득한다:
Figure pct00045
이고; 여기서,
Figure pct00046
는 스칼라 양자화 코드북이다. 본 출원의 실시예들에서 임의의 스칼라 양자화 방법, 예를 들어, 균일한 스칼라 양자화 또는 불균일한 스칼라 양자화를 사용하여 양자화 및 인코딩이 수행될 수 있다. 인코딩에 사용되는 비트들의 수량은 5 비트일 수 있다. 구체적인 방법이 여기서 설명되지는 않는다.
본 출원의 이러한 실시예가 전술한 채널 조합 비율 인자 계산, 양자화, 및 인코딩 방법에 제한되는 것은 아니다.
S26: 채널 조합 비율 인자에 기초하여 지연-정렬된 스테레오 신호에 시간 도메인 다운믹스 처리를 수행하여, 주 채널 신호 및 부 채널 신호를 획득함.
구체적으로, 본 출원의 실시예들에서의 임의의 시간 도메인 다운믹스 처리 방법이 사용될 수 있다. 그러나, 채널 조합 비율 인자를 계산하는 방법에 기초하여 대응하는 시간 도메인 다운믹스 처리 방식이 선택되어, 지연-정렬된 스테레오 신호에 대해 시간 도메인 다운믹스 처리를 수행하여, 주 채널 신호 및 부 채널 신호를 획득할 필요가 있다는 점이 주목되어야 한다.
예를 들어, 단계 5에서의 채널 조합 비율 인자를 계산하기 위한 전술한 방법이 사용되고, 대응하는 시간 도메인 다운믹스 처리는, 채널 조합 비율 인자
Figure pct00047
에 기초하여 시간 도메인 다운믹스 처리를 수행하는 것일 수 있다. 제1 채널 조합 해결책에 대응하는 시간 도메인 다운믹스 처리 후에 획득되는 주 채널 신호 Y(n) 및 부 채널 신호 X(n)은 다음을 충족한다:
Figure pct00048
.
본 출원의 이러한 실시예가 전술한 시간 도메인 다운믹스 처리 방법에 제한되는 것은 아니다.
S27: 부 채널 신호에 대해 차동 인코딩을 수행함.
단계 S27에 포함되는 내용에 대해서는, 전술한 실시예에서의 단계 S10 내지 단계 S12의 설명들을 참조한다. 상세사항들이 여기서 다시 설명되지는 않는다.
전술한 예들로부터, 본 출원의 이러한 실시예에서, 주 채널 신호 타입 및 부 채널 신호 타입과 같은 파라미터들에 기초하여 프레임 구조 유사도 값이 계산되고, 다음으로 프레임 구조 유사도 값 및 프레임 구조 유사도 구간에 기초하여 부 채널 신호에 대한 피치 주기 차동 인코딩을 사용할지가 결정된다는 것을 알 수 있다. 차동 인코딩 방식에서, 부 채널 신호의 피치 주기의 인코딩 오버헤드들이 감소될 수 있다.
간단한 설명을 위해, 전술한 방법 실시예들은 일련의 액션들의 조합으로서 표현된다는 점이 주목되어야 한다. 그러나, 본 출원에 따르면, 일부 단계들이 다른 순서들로 또는 동시에 수행될 수 있기 때문에, 해당 분야에서의 기술자는 본 출원이 액션들의 설명된 순서로 제한되는 것은 아니라는 것을 이해할 것이다. 본 명세서에 설명된 실시예들은 모두 바람직한 실시예들에 속하고, 수반되는 액션들 및 모듈들이 본 출원에서 반드시 요구되는 것은 아니라는 점이 해당 분야에서의 기술자들에 의해 추가로 이해되어야 한다.
본 출원의 실시예들에서의 전술한 해결책들을 더 잘 구현하기 위해, 다음은 전술한 해결책들을 구현하도록 구성되는 관련 장치들을 추가로 제공한다.
도 10에 도시되는 바와 같이, 본 출원의 실시예에서 제공되는 스테레오 인코딩 장치(1000)는 다운믹스 모듈(1001), 유사도 값 결정 모듈(1002), 및 차동 인코딩 모듈(1003)을 포함할 수 있다.
다운믹스 모듈(1001)은 현재 프레임의 좌측 채널 신호 및 현재 프레임의 우측 채널 신호에 대해 다운믹스 처리를 수행하여, 현재 프레임의 주 채널 신호 및 현재 프레임의 부 채널 신호를 획득하도록 구성된다.
유사도 값 결정 모듈(1002)은 주 채널 신호와 부 채널 신호 사이의 프레임 구조 유사도 값이 미리 설정된 프레임 구조 유사도 구간 내에 속하는지를 결정하도록 구성된다.
차동 인코딩 모듈(1003)은, 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속한다고 결정될 때, 주 채널 신호의 추정된 피치 주기 값을 사용하여 부 채널 신호의 피치 주기에 대해 차동 인코딩을 수행하여, 부 채널 신호의 피치 주기 인덱스 값을 획득하도록- 부 채널 신호의 피치 주기 인덱스 값은 전송될 스테레오 인코딩된 비트스트림을 생성하기 위해 사용됨 - 구성된다.
본 출원의 일부 실시예들에서, 스테레오 인코딩 장치는 추가로,
주 채널 신호와 부 채널 신호 사이의 프레임 구조 유사도 값이 미리 설정된 프레임 구조 유사도 구간 내에 속하는지를 유사도 값 결정 모듈이 결정한 후에, 주 채널 신호 및 부 채널 신호에 기초하여 신호 타입 플래그를 획득하도록- 신호 타입 플래그는 주 채널 신호의 신호 타입 및 부 채널 신호의 신호 타입을 식별하기 위해 사용됨 - 구성되는 신호 타입 플래그 획득 모듈; 및
신호 타입 플래그가 미리 설정된 제1 플래그이고 프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속할 때, 부 채널 피치 주기 재사용 플래그를 제2 플래그로 구성하도록 구성되는 재사용 플래그 구성 모듈- 제1 플래그 및 제2 플래그는 스테레오 인코딩된 비트스트림을 생성하기 위해 사용됨 -을 포함한다.
본 출원의 일부 실시예들에서, 스테레오 인코딩 장치는 추가로,
프레임 구조 유사도 값이 프레임 구조 유사도 구간 외에 속한다고 결정할 때, 또는 신호 타입 플래그가 미리 설정된 제3 플래그일 때, 부 채널 피치 주기 재사용 플래그를 제4 플래그로 구성하도록 추가로 구성되는 재사용 플래그 구성 모듈- 제4 플래그 및 제3 플래그는 스테레오 인코딩된 비트스트림을 생성하기 위해 사용됨 -; 및
부 채널 신호의 피치 주기 및 주 채널 신호의 피치 주기를 개별적으로 인코딩하도록 구성되는 독립적 인코딩 모듈을 포함한다.
본 출원의 일부 실시예들에서, 스테레오 인코딩 장치는 추가로,
현재 프레임의 부 채널 신호에 대해 개방-루프 피치 주기 분석을 수행하여, 부 채널 신호의 추정된 개방-루프 피치 주기 값을 획득하도록 구성되는 개방-루프 피치 주기 분석 모듈;
주 채널 신호의 추정된 피치 주기 값 및 현재 프레임의 부 채널 신호가 분할되는 서브프레임들의 수량에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 결정하도록 구성되는 폐쇄-루프 피치 주기 분석 모듈; 및
부 채널 신호의 추정된 개방-루프 피치 주기 값 및 부 채널 신호의 폐쇄-루프 피치 주기 참조 값에 기초하여 프레임 구조 유사도 값을 결정하도록 구성되는 유사도 값 계산 모듈을 포함한다.
본 출원의 일부 실시예들에서, 폐쇄-루프 피치 주기 분석 모듈은, 주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 정수 부분 loc_T0 및 부 채널 신호의 폐쇄-루프 피치 주기 분수 부분 loc_frac_prim을 결정하도록; 부 채널 신호의 폐쇄-루프 피치 주기 참조 값 f_pitch_prim을 다음과 같은 방식으로 계산하도록 구성되고:
f_pitch_prim = loc_T0 + loc_frac_prim/N이고; 여기서,
N은 부 채널 신호가 분할되는 서브프레임들의 수량을 표현한다.
본 출원의 일부 실시예들에서, 유사도 값 계산 모듈은 프레임 구조 유사도 값 ol_pitch를 다음과 같은 방식으로 계산하도록 구성되고:
ol_pitch = T_op - f_pitch_prim이고; 여기서,
T_op는 부 채널 신호의 추정된 개방-루프 피치 주기 값을 표현하고, f_pitch_prim은 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 표현한다.
본 출원의 일부 실시예들에서, 차동 인코딩 모듈은,
주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 폐쇄-루프 피치 주기 탐색을 수행하여, 부 채널 신호의 추정된 피치 주기 값을 획득하도록 구성되는 폐쇄-루프 피치 주기 탐색 모듈;
부 채널 신호의 피치 주기 탐색 범위 조정 인자에 기초하여 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정하도록 구성되는 인덱스 값 상한 결정 모듈; 및
주 채널 신호의 추정된 피치 주기 값, 부 채널 신호의 추정된 피치 주기 값, 및 부 채널 신호의 피치 주기 인덱스 값의 상한에 기초하여 부 채널 신호의 피치 주기 인덱스 값을 계산하도록 구성되는 인덱스 값 계산 모듈을 포함한다.
본 출원의 일부 실시예들에서, 폐쇄-루프 피치 주기 탐색 모듈은, 정수 정밀도 및 분수 정밀도를 사용하여 그리고 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 부 채널 신호 폐쇄-루프 피치 주기 탐색의 시작 포인트로서 사용하여 폐쇄-루프 피치 주기 탐색을 수행하여, 부 채널 신호의 추정된 피치 주기 값을 획득하도록- 부 채널 신호의 폐쇄-루프 피치 주기 참조 값은 주 채널 신호의 추정된 피치 주기 값 및 현재 프레임의 부 채널 신호가 분할되는 서브프레임들의 수량에 기초하여 결정됨 - 구성된다.
본 출원의 일부 실시예들에서, 인덱스 값 상한 결정 모듈은 부 채널 신호의 피치 주기 인덱스 값의 상한 soft_reuse_index_high_limit를 다음과 같은 방식으로 계산하도록 구성되고:
soft_reuse_index_high_limit = 0.5 + 2Z이고; 여기서,
Z는 부 채널 신호의 피치 주기 탐색 범위 조정 인자이고, Z의 값은 3, 4, 또는 5이다.
본 출원의 일부 실시예들에서, 인덱스 값 계산 모듈은, 인덱스 값 계산 모듈은, 주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 정수 부분 loc_T0 및 부 채널 신호의 폐쇄-루프 피치 주기 분수 부분 loc_frac_prim을 결정하도록; 그리고 부 채널 신호의 피치 주기 인덱스 값 soft_reuse_index를 다음과 같은 방식으로 계산하도록 구성되고:
soft_reuse_index = (N * pitch_soft_reuse + pitch_frac_soft_reuse) - (N * loc_T0 + loc_frac_prim) + soft_reuse_index_high_limit/M이고; 여기서,
pitch_soft_reuse는 부 채널 신호의 추정된 피치 주기 값의 정수 부분을 표현하고, pitch_frac_soft_reuse는 부 채널 신호의 추정된 피치 주기 값의 분수 부분을 표현하고, soft_reuse_index_high_limit는 부 채널 신호의 피치 주기 인덱스 값의 상한을 표현하고, N은 부 채널 신호가 분할되는 서브프레임들의 수량을 표현하고, M은 부 채널 신호의 피치 주기 인덱스 값의 상한의 조정 인자를 표현하고, M은 0이 아닌 실수이고, *는 승산 연산자를 표현하고, +는 가산 연산자를 표현하고, -는 감산 연산자를 표현한다.
본 출원의 일부 실시예들에서, 스테레오 인코딩 장치는 현재 프레임의 인코딩 레이트가 미리 설정된 레이트 임계값을 초과하는 스테레오 인코딩 시나리오에 적용된다.
레이트 임계값은 다음과 같은 값들: 32 kbps(kilobits per second), 48 kbps, 64 kbps, 96 kbps, 128 kbps, 160 kbps, 192 kbps 및 256 kbps 중 적어도 하나이다.
본 출원의 일부 실시예들에서, 프레임 구조 유사도 구간의 최소값은 -4.0이고, 프레임 구조 유사도 구간의 최대값은 3.75이거나; 또는
프레임 구조 유사도 구간의 최소값은 -2.0이고, 프레임 구조 유사도 구간의 최대값은 1.75이거나; 또는
프레임 구조 유사도 구간의 최소값은 -1.0이고, 프레임 구조 유사도 구간의 최대값은 0.75이다.
도 11에 도시되는 바와 같이, 본 출원의 실시예에서 제공되는 스테레오 디코딩 장치(1100)는 결정 모듈(1101), 값 획득 모듈(1102), 및 차동 디코딩 모듈(1103)을 포함할 수 있다.
결정 모듈(1101)은, 수신된 스테레오 인코딩된 비트스트림에 기초하여, 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행할지를 결정하도록 구성된다.
값 획득 모듈(1102)은, 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하기로 결정될 때, 스테레오 인코딩된 비트스트림으로부터, 현재 프레임의 주 채널 신호의 추정된 피치 주기 값 및 현재 프레임의 부 채널 신호의 피치 주기 인덱스 값을 획득하도록 구성된다.
차동 디코딩 모듈(1103)은 주 채널 신호의 추정된 피치 주기 값 및 부 채널 신호의 피치 주기 인덱스 값에 기초하여 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하여, 부 채널 신호의 추정된 피치 주기 값을 획득하도록- 부 채널 신호의 추정된 피치 주기 값은 스테레오 디코딩된 비트스트림을 획득하기 위한 디코딩에 사용됨 -구성된다.
본 출원의 일부 실시예들에서, 결정 모듈은, 현재 프레임으로부터 부 채널 신호 피치 주기 재사용 플래그 및 신호 타입 플래그를 획득하도록- 신호 타입 플래그는 주 채널 신호의 신호 타입 및 부 채널 신호의 신호 타입을 식별하기 위해 사용됨 -; 그리고 신호 타입 플래그가 미리 설정된 제1 플래그이고 부 채널 신호 피치 주기 재사용 플래그가 제2 플래그일 때, 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하기로 결정하도록 구성된다.
본 출원의 일부 실시예들에서, 스테레오 디코딩 장치는,
신호 타입 플래그가 미리 설정된 제1 플래그이고 부 채널 신호 피치 주기 재사용 플래그가 제4 플래그일 때, 또는 신호 타입 플래그가 미리 설정된 제3 식별자이고 부 채널 신호 피치 주기 재사용 플래그가 제4 플래그일 때, 부 채널 신호의 피치 주기 및 주 채널 신호의 피치 주기를 개별적으로 디코딩하도록 구성되는 독립적 디코딩 모듈을 포함한다.
본 출원의 일부 실시예들에서, 차동 디코딩 모듈은,
주 채널 신호의 추정된 피치 주기 값 및 현재 프레임의 부 채널 신호가 분할되는 서브프레임들의 수량에 기초하여 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 결정하도록 구성되는 참조 값 결정 서브모듈;
부 채널 신호의 피치 주기 탐색 범위 조정 인자에 기초하여 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정하도록 구성되는 인덱스 값 상한 결정 서브모듈; 및
부 채널 신호의 폐쇄-루프 피치 주기 참조 값, 부 채널 신호의 피치 주기 인덱스 값, 및 부 채널 신호의 피치 주기 인덱스 값의 상한에 기초하여 부 채널 신호의 추정된 피치 주기 값을 계산하도록 구성되는 추정된 값 계산 서브모듈을 포함한다.
본 출원의 일부 실시예들에서, 추정 값 계산 서브모듈은 부 채널 신호의 추정된 피치 주기 값 T0_pitch를 다음과 같은 방식으로 계산하도록 구성되고:
T0_pitch = f_pitch_prim + (soft_reuse_index - soft_reuse_index_high_limit/M)/N이고; 여기서,
f_pitch_prim은 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 표현하고, soft_reuse_index는 부 채널 신호의 피치 주기 인덱스 값을 표현하고, N은 부 채널 신호가 분할되는 서브프레임들의 수량을 표현하고, M은 부 채널 신호의 피치 주기 인덱스 값의 상한의 조정 인자를 표현하고, M은 0이 아닌 실수이고, /는 제산 연산자를 표현하고, +는 가산 연산자를 표현하고, -는 감산 연산자를 표현한다.
전술한 실시예의 예들의 설명에 따르면, 본 출원의 이러한 실시예에서, 주 채널 신호의 추정된 피치 주기 값을 사용하여 부 채널 신호의 피치 주기에 대해 차동 인코딩이 수행되기 때문에, 부 채널 신호의 피치 주기는 독립적으로 인코딩될 필요가 없다. 따라서, 적은 수량의 비트 리소스들이 차동 인코딩을 위해 부 채널 신호의 피치 주기에 할당될 수 있고, 부 채널 신호의 피치 주기에 대해 차동 인코딩이 수행되어, 스테레오 신호의 공간감 및 음상 안정성이 개선될 수 있다. 또한, 본 출원의 이러한 실시예에서, 부 채널 신호의 피치 주기에 대해 차동 인코딩을 수행하기 위해 비교적 적은 수량의 비트 리소스들이 사용된다. 따라서, 절감된 비트 리소스들이 다른 스테레오 인코딩 파라미터들에 대해 사용될 수 있어서, 부 채널의 인코딩 효율이 개선되고, 최종적으로 전체 스테레오 인코딩 품질이 개선된다. 본 출원의 이러한 실시예에서, 부 채널 신호의 피치 주기에 대해 차동 디코딩이 수행될 수 있을 때, 주 채널 신호의 추정된 피치 주기 값을 사용하여 부 채널 신호의 피치 주기에 대해 차동 디코딩이 수행될 수 있다. 부 채널 신호의 피치 주기에 대해 차동 디코딩이 수행되어, 스테레오 신호의 공간감 및 음상 안정성이 개선될 수 있다. 또한, 부 채널의 디코딩 효율이 추가로 개선되고, 최종적으로 전체 스테레오 디코딩 품질이 개선된다.
이러한 장치의 모듈들/유닛들과 이들의 실행 프로세스들 사이의 정보 교환과 같은 내용은 본 출원의 방법 실시예들과 동일한 아이디어에 기초하고, 따라서 본 출원의 방법 실시예들과 동일한 기술적 효과들을 가져온다는 점이 주목되어야 한다. 구체적인 내용에 대해서는, 본 출원의 방법 실시예들에서의 전술한 설명들을 참조한다. 상세사항들이 본 명세서에 다시 설명되지는 않는다.
본 출원의 실시예는 컴퓨터 저장 매체를 추가로 제공한다. 이러한 컴퓨터 저장 매체는 프로그램을 저장한다. 이러한 프로그램은 전술한 방법 실시예들에서 제시되는 단계들의 일부 또는 전부를 수행하기 위해 실행된다.
다음은 본 출원의 실시예에서 제공되는 다른 스테레오 인코딩 장치를 설명한다. 도 12에 도시되는 바와 같이, 스테레오 인코딩 장치(1200)는,
수신기(1201), 송신기(1202), 프로세서(1203), 및 메모리(1204)를 포함한다(스테레오 인코딩 장치(1200)에는 하나 이상의 프로세서(1203)가 있을 수 있고, 도 12에서는 하나의 프로세서가 예로서 사용된다). 본 출원의 일부 실시예들에서, 수신기(1201), 송신기(1202), 프로세서(1203), 및 메모리(1204)는 버스를 통해 또는 다른 방식으로 접속될 수 있다. 도 12에서, 버스를 통한 접속이 예로서 사용된다.
메모리(1204)는 판독-전용 메모리 및 랜덤 액세스 메모리를 포함할 수 있고, 프로세서(1203)에 명령어 및 데이터를 제공할 수 있다. 메모리(1204)의 일부분 비-휘발성 랜덤 액세스 메모리(non-volatile random access memory, NVRAM)를 추가로 포함할 수 있다. 메모리(1204)는 운영 체제 및 동작 명령어, 실행가능 모듈 또는 데이터 구조, 이들의 서브세트, 또는 이들의 확장 세트를 저장한다. 동작 명령어는 다양한 동작들을 구현하기 위한 다양한 동작 명령어들을 포함할 수 있다. 운영 체제는 다양한 기본 서비스들을 구현하고 하드웨어-기반 작업들을 처리하기 위한 다양한 시스템 프로그램들을 포함할 수 있다.
프로세서(1203)는 스테레오 인코딩 장치의 동작들을 제어하고, 프로세서(1203)는 중앙 처리 유닛(central processing unit, CPU)이라고 또한 지칭될 수 있다. 구체적인 적용에서, 스테레오 인코딩 장치의 컴포넌트들은 버스 시스템을 사용하여 함께 연결된다. 데이터 버스 외에도, 버스 시스템은 전력 버스, 제어 버스, 상태 신호 버스 등을 포함한다. 그러나, 명확한 설명을 위해, 도면에서의 다양한 버스들은 버스 시스템이라고 지칭된다.
본 출원의 실시예들에서 개시되는 방법들은 프로세서(1203)에 적용되거나 또는 프로세서(1203)에 의해 구현될 수 있다. 프로세서(1203)는 집적 회로 칩일 수 있고, 신호 처리 능력을 갖는다. 구현 프로세스에서, 프로세서(1203)에서의 하드웨어 집적 논리 회로 또는 소프트웨어 형태의 명령어들을 사용하여 전술한 방법들에서의 단계들이 완료될 수 있다. 프로세서(1203)는 범용 프로세서, 디지털 신호 프로세서(digital signal processor, DSP), 주문형 집적 회로(application specific integrated circuit, ASIC), 필드-프로그램가능 게이트 어레이(field-programmable gate array, FPGA) 또는 다른 프로그램가능 논리 디바이스, 이산 게이트 또는 트랜지스터 논리 디바이스, 또는 이산 하드웨어 컴포넌트일 수 있다. 프로세서는 본 출원의 실시예들에서 개시되는 방법들, 단계들, 및 논리 블록도들을 구현하거나 또는 수행할 수 있다. 범용 프로세서는 마이크로프로세서일 수 있거나, 또는 프로세서는 임의의 종래의 프로세서 등일 수 있다. 본 출원의 실시예들을 참조하여 개시되는 방법들의 단계들은 하드웨어 디코딩 프로세서를 사용하여 직접 수행되고 완료될 수 있거나, 또는 디코딩 프로세서에서의 하드웨어 및 소프트웨어 모듈들의 조합을 사용하여 수행되고 완료될 수 있다. 소프트웨어 모듈은 해당 분야에서의 발달된(mature) 저장 매체, 예를 들어, 랜덤 액세스 메모리, 플래시 메모리, 판독-전용 메모리, 프로그램가능 판독-전용 메모리, 전기적으로 소거가능한 프로그램가능 메모리, 또는 레지스터에 위치될 수 있다. 저장 매체는 메모리(1204)에 위치되고, 프로세서(1203)는 메모리(1204)에서의 정보를 판독하며, 프로세서의 하드웨어와 조합하여 전술한 방법들의 단계들을 완료한다.
수신기(1201)는, 입력 디지털 또는 문자 정보를 수신하도록, 그리고 스테레오 인코딩 장치의 관련 설정 및 기능 제어에 관련되는 신호 입력을 생성하도록 구성될 수 있다. 송신기(1202)는 디스플레이 스크린과 같은 디스플레이 디바이스를 포함할 수 있고, 송신기(1202)는 외부 인터페이스를 사용하여 디지털 또는 문자 정보를 출력하도록 구성될 수 있다.
본 출원의 이러한 실시예에서, 프로세서(1203)는 전술한 실시예에서 도 4에 도시되는 스테레오 인코딩 장치에 의해 수행되는 스테레오 인코딩 방법을 수행하도록 구성된다.
다음은 본 출원의 실시예에서 제공되는 다른 스테레오 디코딩 장치를 설명한다. 도 13에 도시되는 바와 같이, 스테레오 디코딩 장치(1300)는,
수신기(1301), 송신기(1302), 프로세서(1303), 및 메모리(1304)를 포함한다(스테레오 디코딩 장치(1300)에는 하나 이상의 프로세서(1303)가 있을 수 있고, 도 13에서는 하나의 프로세서가 예로서 사용된다). 본 출원의 일부 실시예들에서, 수신기(1301), 송신기(1302), 프로세서(1303), 및 메모리(1304)는 버스를 통해 또는 다른 방식으로 접속될 수 있다. 도 13에서, 버스를 통한 접속이 예로서 사용된다.
메모리(1304)는 판독-전용 메모리 및 랜덤 액세스 메모리를 포함하고, 명령어 및 데이터를 프로세서(1303)에 제공할 수 있다. 메모리(1304)의 일부분은 NVRAM을 추가로 포함할 수 있다. 메모리(1304)는 운영 체제 및 동작 명령어, 실행가능 모듈 또는 데이터 구조, 이들의 서브세트, 또는 이들의 확장 세트를 저장한다. 동작 명령어는 다양한 동작들을 구현하기 위한 다양한 동작 명령어들을 포함할 수 있다. 운영 체제는 다양한 기본 서비스들을 구현하고 하드웨어-기반 작업들을 처리하기 위한 다양한 시스템 프로그램들을 포함할 수 있다.
프로세서(1303)는 스테레오 디코딩 장치의 동작들을 제어하고, 프로세서(1303)는 CPU라고 또한 지칭될 수 있다. 구체적인 적용에서, 스테레오 디코딩 장치의 컴포넌트들은 버스 시스템을 사용하여 함께 연결된다. 데이터 버스 외에도, 버스 시스템은 전력 버스, 제어 버스, 상태 신호 버스 등을 포함한다. 그러나, 명확한 설명을 위해, 도면에서의 다양한 버스들은 버스 시스템이라고 지칭된다.
본 출원의 전술한 실시예들에서 개시되는 방법은 프로세서(1303)에 적용될 수 있거나, 또는 프로세서(1303)에 의해 구현될 수 있다. 프로세서(1303)는 집적 회로 칩일 수 있고, 신호 처리 능력을 갖는다. 구현 프로세스에서, 프로세서(1301)에서의 하드웨어 집적 논리 회로를 사용하거나 또는 소프트웨어 형태의 명령어를 사용하여 전술한 방법에서의 단계들이 구현될 수 있다. 전술한 프로세서(1303)는 범용 프로세서, DSP, ASIC, FPGA 또는 다른 프로그램가능 논리 디바이스, 이산 게이트 또는 트랜지스터 논리 디바이스, 또는 이산 하드웨어 컴포넌트일 수 있다. 프로세서는 본 출원의 실시예들에서 개시되는 방법들, 단계들, 및 논리 블록도들을 구현하거나 또는 수행할 수 있다. 범용 프로세서는 마이크로프로세서일 수 있거나, 또는 프로세서는 임의의 종래의 프로세서 등일 수 있다. 본 출원의 실시예들을 참조하여 개시되는 방법들의 단계들은 하드웨어 디코딩 프로세서를 사용하여 직접 수행되고 완료될 수 있거나, 또는 디코딩 프로세서에서의 하드웨어 및 소프트웨어 모듈들의 조합을 사용하여 수행되고 완료될 수 있다. 소프트웨어 모듈은 해당 분야에서의 발달된(mature) 저장 매체, 예를 들어, 랜덤 액세스 메모리, 플래시 메모리, 판독-전용 메모리, 프로그램가능 판독-전용 메모리, 전기적으로 소거가능한 프로그램가능 메모리, 또는 레지스터에 위치될 수 있다. 저장 매체는 메모리(1304)에 위치되고, 프로세서(1303)는 메모리(1304)에서의 정보를 판독하며, 프로세서의 하드웨어와 조합하여 전술한 방법들의 단계들을 완료한다.
본 출원의 이러한 실시예에서, 프로세서(1303)는 전술한 실시예에서 도 4에 도시되는 스테레오 디코딩 장치에 의해 수행되는 스테레오 디코딩 방법을 수행하도록 구성된다.
다른 가능한 설계에서, 스테레오 인코딩 장치 또는 스테레오 디코딩 장치가 단말에서의 칩일 때, 이러한 칩은 처리 유닛 및 통신 유닛을 포함한다. 처리 유닛은, 예를 들어, 프로세서일 수 있다. 통신 유닛은, 예를 들어, 입력/출력 인터페이스, 핀, 또는 회로일 수 있다. 처리 유닛은 저장 유닛에 저장되는 컴퓨터 실행가능 명령어를 실행하여, 단말에서의 칩이 전술한 제1 양태의 임의의 구현에 따른 무선 통신 방법을 실행하는 것을 가능하게 할 수 있다. 선택적으로, 저장 유닛은 칩 내의 저장 유닛, 예를 들어, 레지스터 또는 버퍼이거나; 또는 저장 유닛은 대안적으로 칩 외의 그리고 단말 내의 저장 유닛, 예를 들어, 판독-전용 메모리(read-only memory, ROM), 정적 정보 및 명령어를 저장할 수 있는 다른 타입의 정적 저장 디바이스, 또는 랜덤 액세스 메모리(random access memory, RAM)일 수 있다.
위에 언급된 프로세서는 범용 중앙 처리 유닛, 마이크로프로세서, ASIC, 또는 제1 양태 또는 제2 양태에 따른 방법의 프로그램 실행을 제어하기 위한 하나 이상의 집적 회로일 수 있다.
또한, 설명된 장치 실시예는 단지 예일 뿐이라는 점이 주목되어야 한다. 개별 부분들로서 설명되는 유닛들은 물리적으로 개별일 수 있거나 또는 그렇지 않을 수 있고, 유닛들로서 디스플레이되는 부분들은 물리적 유닛들일 수 있거나 또는 그렇지 않을 수 있다, 즉, 하나의 장소에 위치될 수 있거나, 또는 복수의 네트워크 유닛들 상에 분산될 수 있다. 모듈들의 일부 또는 전부는 실시예들의 해결책들의 목적들을 달성하기 위한 실제 필요에 따라 선택될 수 있다. 또한, 본 출원에 의해 제공되는 장치 실시예들의 첨부 도면들에서, 모듈들 사이의 접속 관계들은 모듈들이 서로와의 통신 접속들을 갖는 것을 표시하고, 이는 구체적으로 하나 이상의 통신 버스 또는 신호 케이블로서 구현될 수 있다.
전술한 구현들의 설명에 기초하여, 해당 분야에서의 기술자는 본 출원이 필요한 범용 하드웨어와 조합하여 소프트웨어를 사용하여 구현될 수 있거나, 또는 물론, 전용 집적 회로, 전용 CPU, 전용 메모리, 전용 컴포넌트 등을 포함하는, 전용 하드웨어를 사용하여 구현될 수 있다는 점을 명확하게 이해할 수 있다. 일반적으로, 컴퓨터 프로그램을 사용하여 완료될 수 있는 임의의 기능은 대응하는 하드웨어를 사용하여 쉽게 구현될 수 있다. 게다가, 동일한 기능을 구현하기 위해 사용되는 구체적인 하드웨어 구조는 다양한 형태들, 예를 들어, 아날로그 회로, 디지털 회로, 전용 회로 등의 형태로 이루어질 수 있다. 그러나, 본 출원에 관해서는, 소프트웨어 프로그램 구현이 대부분의 경우들에서 더 나은 구현 방식이다. 이러한 이해에 기초하여, 본질적으로 본 출원의 기술적 해결책들 또는 종래의 기술에 기여하는 부분은 소프트웨어 제품의 형태로 구현될 수 있다. 컴퓨터 소프트웨어 제품은 컴퓨터의 플로피 디스크, USB 플래시 드라이브, 이동식 하드 디스크, ROM, RAM, 자기 디스크, 또는 광 디스크와 같은 판독가능 저장 매체에 저장되고, 컴퓨터 디바이스(개인용 컴퓨터, 서버, 네트워크 디바이스 등일 수 있음)에게 본 출원의 실시예들에서 설명되는 방법들을 수행하라고 명령하기 위한 여러 명령어들을 포함한다.
전술한 실시예들의 전부 또는 일부는, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합을 사용하여 구현될 수 있다. 실시예들을 구현하기 위해 소프트웨어가 사용될 때, 실시예들의 전부 또는 일부는 컴퓨터 프로그램 제품 형태로 구현될 수 있다.
이러한 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터 명령어를 포함한다. 이러한 컴퓨터 프로그램 명령어들이 컴퓨터 상에서 로딩되고 실행될 때, 본 출원의 실시예들에 따른 프로시저 또는 기능들이 모두 또는 부분적으로 생성된다. 이러한 컴퓨터는, 범용 컴퓨터, 전용 컴퓨터, 컴퓨터 네트워크, 또는 다른 프로그램가능 장치일 수 있다. 이러한 컴퓨터 명령어들은 컴퓨터-판독가능 저장 매체에 저장될 수 있거나 또는 컴퓨터-판독가능 저장 매체로부터 다른 컴퓨터-판독가능 저장 매체로 송신될 수 있다. 예를 들어, 이러한 컴퓨터 명령어들은, 웹 사이트, 컴퓨터, 서버, 또는 데이터 센터로부터, 유선(예를 들어, 동축 케이블, 광섬유 또는 DSL(digital subscriber line)) 또는 무선(예를 들어, 적외선, 무선, 또는 마이크로웨이브) 방식으로, 또 다른 웹 사이트, 컴퓨터, 서버 또는 데이터 센터로 송신될 수 있다. 이러한 컴퓨터-판독가능 저장 매체는 컴퓨터에 의해 액세스가능한 임의의 사용가능 매체, 또는 하나 이상의 사용가능 매체를 통합하는 서버 또는 데이터 센터와 같은 데이터 저장 디바이스일 수 있다. 이러한 사용가능 매체는, 자기 매체(예를 들어, 플로피 디스크, 하드 디스크, 또는 자기 테이프), 광학 매체(예를 들어, DVD), 반도체 매체(예를 들어, 솔리드-스테이트 드라이브(Solid State Disk, SSD)) 등일 수 있다.

Claims (46)

  1. 스테레오 인코딩 방법으로서,
    현재 프레임의 좌측 채널 신호 및 상기 현재 프레임의 우측 채널 신호에 대해 다운믹스 처리를 수행하여, 상기 현재 프레임의 주 채널 신호 및 상기 현재 프레임의 부 채널 신호를 획득하는 단계; 및
    프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속한다고 결정할 때, 상기 주 채널 신호의 추정된 피치 주기 값을 사용하여 상기 부 채널 신호의 피치 주기에 대해 차동 인코딩을 수행하여, 상기 부 채널 신호의 피치 주기 인덱스 값을 획득하는 단계- 상기 부 채널 신호의 피치 주기 인덱스 값은 전송될 스테레오 인코딩된 비트스트림을 생성하기 위해 사용됨 -를 포함하는 방법.
  2. 제1항에 있어서, 상기 방법은 추가로,
    상기 주 채널 신호 및 상기 부 채널 신호에 기초하여 신호 타입 플래그를 획득하는 단계- 상기 신호 타입 플래그는 상기 주 채널 신호의 신호 타입 및 상기 부 채널 신호의 신호 타입을 식별하기 위해 사용됨 -; 및
    상기 신호 타입 플래그가 미리 설정된 제1 플래그이고 상기 프레임 구조 유사도 값이 상기 프레임 구조 유사도 구간 내에 속할 때, 부 채널 피치 주기 재사용 플래그를 제2 플래그로 구성하는 단계- 상기 제1 플래그 및 상기 제2 플래그는 상기 스테레오 인코딩된 비트스트림을 생성하기 위해 사용됨 -를 포함하는 방법.
  3. 제2항에 있어서, 상기 방법은 추가로,
    상기 프레임 구조 유사도 값이 상기 프레임 구조 유사도 구간 외에 속한다고 결정할 때, 또는 상기 신호 타입 플래그가 미리 설정된 제3 플래그일 때, 상기 부 채널 피치 주기 재사용 플래그를 제4 플래그로 구성하는 단계- 상기 제4 플래그 및 상기 제3 플래그는 상기 스테레오 인코딩된 비트스트림을 생성하기 위해 사용됨 -; 및
    상기 부 채널 신호의 피치 주기 및 상기 주 채널 신호의 피치 주기를 개별적으로 인코딩하는 단계를 포함하는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 프레임 구조 유사도 값은 다음과 같은 방식으로 결정되고, 이는,
    상기 현재 프레임의 부 채널 신호에 대해 개방-루프 피치 주기 분석을 수행하여, 상기 부 채널 신호의 추정된 개방-루프 피치 주기 값을 획득하는 단계;
    상기 주 채널 신호의 추정된 피치 주기 값 및 상기 현재 프레임의 부 채널 신호가 분할되는 서브프레임들의 수량에 기초하여 상기 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 결정하는 단계; 및
    상기 부 채널 신호의 추정된 개방-루프 피치 주기 값 및 상기 부 채널 신호의 폐쇄-루프 피치 주기 참조 값에 기초하여 상기 프레임 구조 유사도 값을 결정하는 단계를 포함하는 방법.
  5. 제4항에 있어서, 상기 주 채널 신호의 추정된 피치 주기 값 및 상기 현재 프레임의 부 채널 신호가 분할되는 서브프레임들의 수량에 기초하여 상기 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 결정하는 단계는,
    상기 주 채널 신호의 추정된 피치 주기 값에 기초하여 상기 부 채널 신호의 폐쇄-루프 피치 주기 정수 부분 loc_T0 및 상기 부 채널 신호의 폐쇄-루프 피치 주기 분수 부분 loc_frac_prim을 결정하는 단계; 및
    상기 부 채널 신호의 폐쇄-루프 피치 주기 참조 값 f_pitch_prim을 다음과 같은 방식으로 계산하는 단계를 포함하고:
    f_pitch_prim = loc_T0 + loc_frac_prim/N이고; 여기서,
    N은 상기 부 채널 신호가 분할되는 서브프레임들의 수량을 표현하는 방법.
  6. 제4항에 있어서, 상기 부 채널 신호의 추정된 개방-루프 피치 주기 값 및 상기 부 채널 신호의 폐쇄-루프 피치 주기 참조 값에 기초하여 상기 프레임 구조 유사도 값을 결정하는 단계는,
    상기 프레임 구조 유사도 값 ol_pitch를 다음과 같은 방식으로 계산하는 단계를 포함하고:
    ol_pitch = T_op - f_pitch_prim이고; 여기서,
    T_op는 상기 부 채널 신호의 추정된 개방-루프 피치 주기 값을 표현하고, f_pitch_prim은 상기 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 표현하는 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 주 채널 신호의 추정된 피치 주기 값을 사용하여 상기 부 채널 신호의 피치 주기에 대해 차동 인코딩을 수행하는 단계는,
    상기 주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 폐쇄-루프 피치 주기 탐색을 수행하여, 상기 부 채널 신호의 추정된 피치 주기 값을 획득하는 단계;
    상기 부 채널 신호의 피치 주기 탐색 범위 조정 인자에 기초하여 상기 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정하는 단계; 및
    상기 주 채널 신호의 추정된 피치 주기 값, 상기 부 채널 신호의 추정된 피치 주기 값, 및 상기 부 채널 신호의 피치 주기 인덱스 값의 상한에 기초하여 상기 부 채널 신호의 피치 주기 인덱스 값을 계산하는 단계를 포함하는 방법.
  8. 제7항에 있어서, 상기 주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 폐쇄-루프 피치 주기 탐색을 수행하여, 상기 부 채널 신호의 추정된 피치 주기 값을 획득하는 단계는,
    정수 정밀도 및 분수 정밀도를 사용하여 그리고 상기 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 상기 부 채널 신호 폐쇄-루프 피치 주기 탐색의 시작 포인트로서 사용하여 폐쇄-루프 피치 주기 탐색을 수행하여, 상기 부 채널 신호의 추정된 피치 주기 값을 획득하는 단계- 상기 부 채널 신호의 폐쇄-루프 피치 주기 참조 값은 상기 주 채널 신호의 추정된 피치 주기 값 및 상기 현재 프레임의 부 채널 신호가 분할되는 서브프레임들의 수량에 기초하여 결정됨 -를 포함하는 방법.
  9. 제7항에 있어서, 상기 부 채널 신호의 피치 주기 탐색 범위 조정 인자에 기초하여 상기 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정하는 단계는,
    상기 부 채널 신호의 피치 주기 인덱스 값의 상한 soft_reuse_index_high_limit를 다음과 같은 방식으로 계산하는 단계를 포함하고:
    soft_reuse_index_high_limit = 0.5 + 2Z이고; 여기서,
    Z는 상기 부 채널 신호의 피치 주기 탐색 범위 조정 인자인 방법.
  10. 제9항에 있어서, Z의 값은 3, 4, 또는 5인 방법.
  11. 제7항에 있어서, 상기 주 채널 신호의 추정된 피치 주기 값, 상기 부 채널 신호의 추정된 피치 주기 값, 및 상기 부 채널 신호의 피치 주기 인덱스 값의 상한에 기초하여 상기 부 채널 신호의 피치 주기 인덱스 값을 계산하는 단계는,
    상기 주 채널 신호의 추정된 피치 주기 값에 기초하여 상기 부 채널 신호의 폐쇄-루프 피치 주기 정수 부분 loc_T0 및 상기 부 채널 신호의 폐쇄-루프 피치 주기 분수 부분 loc_frac_prim을 결정하는 단계; 및
    상기 부 채널 신호의 피치 주기 인덱스 값 soft_reuse_index를 다음과 같은 방식으로 계산하는 단계를 포함하고:
    soft_reuse_index = (N * pitch_soft_reuse + pitch_frac_soft_reuse) - (N * loc_T0 + loc_frac_prim) + soft_reuse_index_high_limit/M이고; 여기서,
    pitch_soft_reuse는 상기 부 채널 신호의 추정된 피치 주기 값의 정수 부분을 표현하고, pitch_frac_soft_reuse는 상기 부 채널 신호의 추정된 피치 주기 값의 분수 부분을 표현하고, soft_reuse_index_high_limit는 상기 부 채널 신호의 피치 주기 인덱스 값의 상한을 표현하고, N은 상기 부 채널 신호가 분할되는 서브프레임들의 수량을 표현하고, M은 상기 부 채널 신호의 피치 주기 인덱스 값의 상한의 조정 인자를 표현하고, M은 0이 아닌 실수이고, *는 승산 연산자를 표현하고, +는 가산 연산자를 표현하고, -는 감산 연산자를 표현하는 방법.
  12. 제11항에 있어서, 상기 부 채널 신호의 피치 주기 인덱스 값의 상한의 조정 인자의 값은 2 또는 3인 방법.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서, 상기 방법은 상기 현재 프레임의 인코딩 레이트가 미리 설정된 레이트 임계값을 초과하는 스테레오 인코딩 시나리오에 적용되고,
    상기 레이트 임계값은 다음과 같은 값들: 32 kbps(kilobits per second), 48 kbps, 64 kbps, 96 kbps, 128 kbps, 160 kbps, 192 kbps 및 256 kbps 중 적어도 하나인 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서, 상기 프레임 구조 유사도 구간의 최소값은 -4.0이고, 상기 프레임 구조 유사도 구간의 최대값은 3.75이거나; 또는
    상기 프레임 구조 유사도 구간의 최소값은 -2.0이고, 상기 프레임 구조 유사도 구간의 최대값은 1.75이거나; 또는
    상기 프레임 구조 유사도 구간의 최소값은 -1.0이고, 상기 프레임 구조 유사도 구간의 최대값은 0.75인 방법.
  15. 스테레오 디코딩 방법으로서,
    수신된 스테레오 인코딩된 비트스트림에 기초하여, 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행할지를 결정하는 단계;
    상기 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하기로 결정할 때, 상기 스테레오 인코딩된 비트스트림으로부터, 현재 프레임의 주 채널 신호의 추정된 피치 주기 값 및 상기 현재 프레임의 부 채널 신호의 피치 주기 인덱스 값을 획득하는 단계; 및
    상기 주 채널 신호의 추정된 피치 주기 값 및 상기 부 채널 신호의 피치 주기 인덱스 값에 기초하여 상기 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하여, 상기 부 채널 신호의 추정된 피치 주기 값을 획득하는 단계- 상기 부 채널 신호의 추정된 피치 주기 값은 스테레오 디코딩된 비트스트림을 획득하기 위한 디코딩에 사용됨 -를 포함하는 방법.
  16. 제15항에 있어서, 수신된 스테레오 인코딩된 비트스트림에 기초하여, 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행할지를 결정하는 단계는,
    상기 현재 프레임으로부터 부 채널 신호 피치 주기 재사용 플래그 및 신호 타입 플래그를 획득하는 단계- 상기 신호 타입 플래그는 상기 주 채널 신호의 신호 타입 및 부 채널 신호의 신호 타입을 식별하기 위해 사용됨 -; 및
    상기 신호 타입 플래그가 미리 설정된 제1 플래그이고 상기 부 채널 신호 피치 주기 재사용 플래그가 제2 플래그일 때, 상기 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하기로 결정하는 단계를 포함하는 방법.
  17. 제15항에 있어서, 상기 방법은 추가로,
    상기 신호 타입 플래그가 미리 설정된 제1 플래그이고 상기 부 채널 신호 피치 주기 재사용 플래그가 제4 플래그일 때, 또는 상기 신호 타입 플래그가 미리 설정된 제3 식별자일 때, 상기 부 채널 신호의 피치 주기 및 상기 주 채널 신호의 피치 주기를 개별적으로 디코딩하는 단계를 포함하는 방법.
  18. 제15항 내지 제17항 중 어느 한 항에 있어서, 상기 주 채널 신호의 추정된 피치 주기 값 및 상기 부 채널 신호의 피치 주기 인덱스 값에 기초하여 상기 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하는 단계는,
    상기 주 채널 신호의 추정된 피치 주기 값 및 상기 현재 프레임의 부 채널 신호가 분할되는 서브프레임들의 수량에 기초하여 상기 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 결정하는 단계;
    상기 부 채널 신호의 피치 주기 탐색 범위 조정 인자에 기초하여 상기 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정하는 단계; 및
    상기 부 채널 신호의 폐쇄-루프 피치 주기 참조 값, 상기 부 채널의 피치 주기 인덱스 값, 및 상기 부 채널 신호의 피치 주기 인덱스 값의 상한에 기초하여 상기 부 채널 신호의 추정된 피치 주기 값을 계산하는 단계를 포함하는 방법.
  19. 제18항에 있어서, 상기 부 채널 신호의 폐쇄-루프 피치 주기 참조 값, 상기 부 채널 신호의 피치 주기 인덱스 값, 및 상기 부 채널 신호의 피치 주기 인덱스 값의 상한에 기초하여 상기 부 채널 신호의 추정된 피치 주기 값을 계산하는 단계는,
    상기 부 채널 신호의 추정된 피치 주기 값 T0_pitch을 다음과 같은 방식으로 계산하는 단계를 포함하고:
    T0_pitch = f_pitch_prim + (soft_reuse_index - soft_reuse_index_high_limit/M)/N이고; 여기서,
    f_pitch_prim은 상기 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 표현하고, soft_reuse_index는 상기 부 채널 신호의 피치 주기 인덱스 값을 표현하고, N은 상기 부 채널 신호가 분할되는 서브프레임들의 수량을 표현하고, M은 상기 부 채널 신호의 피치 주기 인덱스 값의 상한의 조정 인자를 표현하고, M은 0이 아닌 실수이고, /는 제산 연산자를 표현하고, +는 가산 연산자를 표현하고, -는 감산 연산자를 표현하는 방법.
  20. 제19항에 있어서, 상기 부 채널 신호의 피치 주기 인덱스 값의 상한의 조정 인자의 값은 2 또는 3인 방법.
  21. 스테레오 인코딩 장치로서,
    현재 프레임의 좌측 채널 신호 및 상기 현재 프레임의 우측 채널 신호에 대해 다운믹스 처리를 수행하여, 상기 현재 프레임의 주 채널 신호 및 상기 현재 프레임의 부 채널 신호를 획득하도록 구성되는 다운믹스 모듈; 및
    프레임 구조 유사도 값이 프레임 구조 유사도 구간 내에 속한다고 결정될 때, 상기 주 채널 신호의 추정된 피치 주기 값을 사용하여 상기 부 채널 신호의 피치 주기에 대해 차동 인코딩을 수행하여, 상기 부 채널 신호의 피치 주기 인덱스 값을 획득하도록 구성되는 차동 인코딩 모듈- 상기 부 채널 신호의 피치 주기 인덱스 값은 전송될 스테레오 인코딩된 비트스트림을 생성하기 위해 사용됨 -을 포함하는 장치.
  22. 제21항에 있어서, 상기 스테레오 인코딩 장치는 추가로,
    상기 주 채널 신호 및 상기 부 채널 신호에 기초하여 신호 타입 플래그를 획득하도록 구성되는 신호 타입 플래그 획득 모듈- 상기 신호 타입 플래그는 상기 주 채널 신호의 신호 타입 및 상기 부 채널 신호의 신호 타입을 식별하기 위해 사용됨 -; 및
    상기 신호 타입 플래그가 미리 설정된 제1 플래그이고 상기 프레임 구조 유사도 값이 상기 프레임 구조 유사도 구간 내에 속할 때, 상기 부 채널 피치 주기 재사용 플래그를 제2 플래그로 구성하도록 구성되는 재사용 플래그 구성 모듈- 상기 제1 플래그 및 상기 제2 플래그는 상기 스테레오 인코딩된 비트스트림을 생성하기 위해 사용됨 -을 포함하는 장치.
  23. 제22항에 있어서, 상기 스테레오 인코딩 장치는 추가로,
    상기 프레임 구조 유사도 값이 상기 프레임 구조 유사도 구간 외에 속한다고 결정할 때, 또는 상기 신호 타입 플래그가 미리 설정된 제3 플래그일 때, 상기 부 채널 피치 주기 재사용 플래그를 제4 플래그로 구성하도록 구성되는 재사용 플래그 구성 모듈- 상기 제4 플래그 및 상기 제3 플래그는 상기 스테레오 인코딩된 비트스트림을 생성하기 위해 사용됨 -; 및
    상기 부 채널 신호의 피치 주기 및 상기 주 채널 신호의 피치 주기를 개별적으로 인코딩하도록 구성되는 독립적 인코딩 모듈을 포함하는 장치.
  24. 제21항 내지 제23항 중 어느 한 항에 있어서, 상기 스테레오 인코딩 장치는 추가로,
    상기 현재 프레임의 부 채널 신호에 대해 개방-루프 피치 주기 분석을 수행하여, 상기 부 채널 신호의 추정된 개방-루프 피치 주기 값을 획득하도록 구성되는 개방-루프 피치 주기 분석 모듈;
    상기 주 채널 신호의 추정된 피치 주기 값 및 상기 현재 프레임의 부 채널 신호가 분할되는 서브프레임들의 수량에 기초하여 상기 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 결정하도록 구성되는 폐쇄-루프 피치 주기 분석 모듈; 및
    상기 부 채널 신호의 추정된 개방-루프 피치 주기 값 및 상기 부 채널 신호의 폐쇄-루프 피치 주기 참조 값에 기초하여 상기 프레임 구조 유사도 값을 결정하도록 구성되는 유사도 값 계산 모듈을 포함하는 장치.
  25. 제24항에 있어서, 상기 폐쇄-루프 피치 주기 분석 모듈은, 상기 주 채널 신호의 추정된 피치 주기 값에 기초하여 상기 부 채널 신호의 폐쇄-루프 피치 주기 정수 부분 loc_T0 및 상기 부 채널 신호의 폐쇄-루프 피치 주기 분수 부분 loc_frac_prim을 결정하도록; 상기 부 채널 신호의 폐쇄-루프 피치 주기 참조 값 f_pitch_prim을 다음과 같은 방식으로 계산하도록 구성되고:
    f_pitch_prim = loc_T0 + loc_frac_prim/N이고; 여기서,
    N은 상기 부 채널 신호가 분할되는 서브프레임들의 수량을 표현하는 장치.
  26. 제24항에 있어서, 상기 유사도 값 계산 모듈은 상기 프레임 구조 유사도 값 ol_pitch를 다음과 같은 방식으로 계산하도록 구성되고:
    ol_pitch = T_op - f_pitch_prim이고; 여기서,
    T_op는 상기 부 채널 신호의 추정된 개방-루프 피치 주기 값을 표현하고, f_pitch_prim은 상기 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 표현하는 장치.
  27. 제21항 내지 제26항 중 어느 한 항에 있어서, 상기 차동 인코딩 모듈은,
    상기 주 채널 신호의 추정된 피치 주기 값에 기초하여 부 채널 폐쇄-루프 피치 주기 탐색을 수행하여, 상기 부 채널 신호의 추정된 피치 주기 값을 획득하도록 구성되는 폐쇄-루프 피치 주기 탐색 모듈;
    상기 부 채널 신호의 피치 주기 탐색 범위 조정 인자에 기초하여 상기 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정하도록 구성되는 인덱스 값 상한 결정 모듈; 및
    상기 주 채널 신호의 추정된 피치 주기 값, 상기 부 채널 신호의 추정된 피치 주기 값, 및 상기 부 채널 신호의 피치 주기 인덱스 값의 상한에 기초하여 상기 부 채널 신호의 피치 주기 인덱스 값을 계산하도록 구성되는 인덱스 값 계산 모듈을 포함하는 장치.
  28. 제27항에 있어서, 상기 폐쇄-루프 피치 주기 탐색 모듈은, 정수 정밀도 및 분수 정밀도를 사용하여 그리고 상기 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 상기 부 채널 신호 폐쇄-루프 피치 주기 탐색의 시작 포인트로서 사용하여 폐쇄-루프 피치 주기 탐색을 수행하여, 상기 부 채널 신호의 추정된 피치 주기 값을 획득하도록- 상기 부 채널 신호의 폐쇄-루프 피치 주기 참조 값은 상기 주 채널 신호의 추정된 피치 주기 값 및 상기 현재 프레임의 부 채널 신호가 분할되는 서브프레임들의 수량에 기초하여 결정됨 - 구성되는 장치.
  29. 제27항에 있어서, 상기 인덱스 값 상한 결정 모듈은 상기 부 채널 신호의 피치 주기 인덱스 값의 상한 soft_reuse_index_high_limit를 다음과 같은 방식으로 계산하도록 구성되고:
    soft_reuse_index_high_limit = 0.5 + 2Z이고; 여기서,
    Z는 상기 부 채널 신호의 피치 주기 탐색 범위 조정 인자인 장치.
  30. 제29항에 있어서, Z의 값은 3, 4, 또는 5인 장치.
  31. 제27항에 있어서, 상기 인덱스 값 계산 모듈은, 상기 주 채널 신호의 추정된 피치 주기 값에 기초하여 상기 부 채널 신호의 폐쇄-루프 피치 주기 정수 부분 loc_T0 및 상기 부 채널 신호의 폐쇄-루프 피치 주기 분수 부분 loc_frac_prim을 결정하도록; 그리고 상기 부 채널 신호의 피치 주기 인덱스 값 soft_reuse_index를 다음과 같은 방식으로 계산하도록 구성되고:
    soft_reuse_index = (N * pitch_soft_reuse + pitch_frac_soft_reuse) - (N * loc_T0 + loc_frac_prim) + soft_reuse_index_high_limit/M이고; 여기서,
    pitch_soft_reuse는 상기 부 채널 신호의 추정된 피치 주기 값의 정수 부분을 표현하고, pitch_frac_soft_reuse는 상기 부 채널 신호의 추정된 피치 주기 값의 분수 부분을 표현하고, soft_reuse_index_high_limit는 상기 부 채널 신호의 피치 주기 인덱스 값의 상한을 표현하고, N은 상기 부 채널 신호가 분할되는 서브프레임들의 수량을 표현하고, M은 상기 부 채널 신호의 피치 주기 인덱스 값의 상한의 조정 인자를 표현하고, M은 0이 아닌 실수이고, *는 승산 연산자를 표현하고, +는 가산 연산자를 표현하고, -는 감산 연산자를 표현하는 장치.
  32. 제31항에 있어서, 상기 부 채널 신호의 피치 주기 인덱스 값의 상한의 조정 인자의 값은 2 또는 3인 장치.
  33. 제21항 내지 제32항 중 어느 한 항에 있어서, 상기 스테레오 인코딩 장치는 상기 현재 프레임의 인코딩 레이트가 미리 설정된 레이트 임계값을 초과하는 스테레오 인코딩 시나리오에 적용되고,
    상기 레이트 임계값은 다음과 같은 값들: 32 kbps(kilobits per second), 48 kbps, 64 kbps, 96 kbps, 128 kbps, 160 kbps, 192 kbps 및 256 kbps 중 적어도 하나인 장치.
  34. 제21항 내지 제33항 중 어느 한 항에 있어서, 상기 프레임 구조 유사도 구간의 최소값은 -4.0이고, 상기 프레임 구조 유사도 구간의 최대값은 3.75이거나; 또는
    상기 프레임 구조 유사도 구간의 최소값은 -2.0이고, 상기 프레임 구조 유사도 구간의 최대값은 1.75이거나; 또는
    상기 프레임 구조 유사도 구간의 최소값은 -1.0이고, 상기 프레임 구조 유사도 구간의 최대값은 0.75인 장치.
  35. 스테레오 디코딩 장치로서,
    수신된 스테레오 인코딩된 비트스트림에 기초하여, 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행할지를 결정하도록 구성되는 결정 모듈;
    상기 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하기로 결정할 때, 상기 스테레오 인코딩된 비트스트림으로부터, 현재 프레임의 주 채널 신호의 추정된 피치 주기 값 및 상기 현재 프레임의 부 채널 신호의 피치 주기 인덱스 값을 획득하도록 구성되는 값 획득 모듈; 및
    상기 주 채널 신호의 추정된 피치 주기 값 및 상기 부 채널 신호의 피치 주기 인덱스 값에 기초하여 상기 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하여, 상기 부 채널 신호의 추정된 피치 주기 값을 획득하도록 구성되는 차동 디코딩 모듈- 상기 부 채널 신호의 추정된 피치 주기 값은 스테레오 디코딩된 비트스트림을 획득하기 위한 디코딩에 사용됨 -을 포함하는 장치.
  36. 제35항에 있어서, 상기 결정 모듈은, 상기 현재 프레임으로부터 부 채널 신호 피치 주기 재사용 플래그 및 신호 타입 플래그를 획득하도록- 상기 신호 타입 플래그는 상기 주 채널 신호의 신호 타입 및 부 채널 신호의 신호 타입을 식별하기 위해 사용됨 -; 그리고 상기 신호 타입 플래그가 미리 설정된 제1 플래그이고 상기 부 채널 신호 피치 주기 재사용 플래그가 제2 플래그일 때, 상기 부 채널 신호의 피치 주기에 대해 차동 디코딩을 수행하기로 결정하도록 구성되는 장치.
  37. 제35항에 있어서, 상기 스테레오 디코딩 장치는 추가로,
    상기 신호 타입 플래그가 미리 설정된 제1 플래그이고 상기 부 채널 신호 피치 주기 재사용 플래그가 제4 플래그일 때, 또는 상기 신호 타입 플래그가 미리 설정된 제3 식별자이고 상기 부 채널 신호 피치 주기 재사용 플래그가 제4 플래그일 때, 상기 부 채널 신호의 피치 주기 및 상기 주 채널 신호의 피치 주기를 개별적으로 디코딩하도록 구성되는 독립적 디코딩 모듈을 포함하는 장치.
  38. 제35항 내지 제37항 중 어느 한 항에 있어서, 상기 차동 디코딩 모듈은,
    상기 주 채널 신호의 추정된 피치 주기 값 및 상기 현재 프레임의 부 채널 신호가 분할되는 서브프레임들의 수량에 기초하여 상기 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 결정하도록 구성되는 참조 값 결정 서브모듈;
    상기 부 채널 신호의 피치 주기 탐색 범위 조정 인자에 기초하여 상기 부 채널 신호의 피치 주기 인덱스 값의 상한을 결정하도록 구성되는 인덱스 값 상한 결정 서브모듈; 및
    상기 부 채널 신호의 폐쇄-루프 피치 주기 참조 값, 상기 부 채널 신호의 피치 주기 인덱스 값, 및 상기 부 채널 신호의 피치 주기 인덱스 값의 상한에 기초하여 상기 부 채널 신호의 추정된 피치 주기 값을 계산하도록 구성되는 추정된 값 계산 서브모듈을 포함하는 장치.
  39. 제38항에 있어서, 상기 추정 값 계산 서브모듈은 상기 부 채널 신호의 추정된 피치 주기 값 T0_pitch를 다음과 같은 방식으로 계산하도록 구성되고:
    T0_pitch = f_pitch_prim + (soft_reuse_index - soft_reuse_index_high_limit/M)/N이고; 여기서,
    f_pitch_prim은 상기 부 채널 신호의 폐쇄-루프 피치 주기 참조 값을 표현하고, soft_reuse_index는 상기 부 채널 신호의 피치 주기 인덱스 값을 표현하고, N은 상기 부 채널 신호가 분할되는 서브프레임들의 수량을 표현하고, M은 상기 부 채널 신호의 피치 주기 인덱스 값의 상한의 조정 인자를 표현하고, M은 0이 아닌 실수이고, /는 제산 연산자를 표현하고, +는 가산 연산자를 표현하고, -는 감산 연산자를 표현하는 장치.
  40. 제39항에 있어서, 상기 부 채널 신호의 피치 주기 인덱스 값의 상한의 조정 인자의 값은 2 또는 3인 장치.
  41. 스테레오 인코딩 장치로서, 상기 스테레오 인코딩 장치는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는 메모리에 연결되도록, 그리고 상기 메모리에서의 명령어들을 판독 및 실행하여, 제1항 내지 제14항 중 어느 한 항에 따른 방법을 구현하도록 구성되는 스테레오 인코딩 장치.
  42. 제41항에 있어서, 상기 스테레오 인코딩 장치는 상기 메모리를 추가로 포함하는 스테레오 인코딩 장치.
  43. 스테레오 디코딩 장치로서, 상기 스테레오 디코딩 장치는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는 메모리에 연결되도록, 그리고 상기 메모리에서의 명령어들을 판독 및 실행하여, 제15항 내지 제20항 중 어느 한 항에 따른 방법을 구현하도록 구성되는 스테레오 디코딩 장치.
  44. 제43항에 있어서, 상기 스테레오 디코딩 장치는 상기 메모리를 추가로 포함하는 스테레오 디코딩 장치.
  45. 컴퓨터-판독가능 저장 매체로서, 명령어들을 포함하고, 상기 명령어들이 컴퓨터 상에서 실행될 때, 상기 컴퓨터는 제1항 내지 제14항 또는 제15항 내지 제20항 중 어느 한 항에 따른 방법을 수행하는 것이 가능하게 되는 컴퓨터-판독가능 저장 매체.
  46. 컴퓨터-판독가능 저장 매체로서, 제1항 내지 제14항 중 어느 한 항에 따른 방법에서 생성되는 스테레오 인코딩된 비트스트림을 포함하는 컴퓨터-판독가능 저장 매체.
KR1020227000340A 2019-06-29 2020-06-16 스테레오 코딩 방법 및 디바이스, 및 스테레오 디코딩 방법 및 디바이스 KR20220018557A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910581386.2 2019-06-29
CN201910581386.2A CN112151045B (zh) 2019-06-29 一种立体声编码方法、立体声解码方法和装置
PCT/CN2020/096307 WO2021000724A1 (zh) 2019-06-29 2020-06-16 一种立体声编码方法、立体声解码方法和装置

Publications (1)

Publication Number Publication Date
KR20220018557A true KR20220018557A (ko) 2022-02-15

Family

ID=73891298

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227000340A KR20220018557A (ko) 2019-06-29 2020-06-16 스테레오 코딩 방법 및 디바이스, 및 스테레오 디코딩 방법 및 디바이스

Country Status (4)

Country Link
US (1) US11887607B2 (ko)
EP (1) EP3975174A4 (ko)
KR (1) KR20220018557A (ko)
WO (1) WO2021000724A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112233682A (zh) * 2019-06-29 2021-01-15 华为技术有限公司 一种立体声编码方法、立体声解码方法和装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3343082B2 (ja) * 1998-10-27 2002-11-11 松下電器産業株式会社 Celp型音声符号化装置
JP3863706B2 (ja) * 2000-07-04 2006-12-27 三洋電機株式会社 音声符号化方法
US6584437B2 (en) * 2001-06-11 2003-06-24 Nokia Mobile Phones Ltd. Method and apparatus for coding successive pitch periods in speech signal
DE102004009954B4 (de) * 2004-03-01 2005-12-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Verarbeiten eines Multikanalsignals
CN101027718A (zh) * 2004-09-28 2007-08-29 松下电器产业株式会社 可扩展性编码装置以及可扩展性编码方法
US7953605B2 (en) * 2005-10-07 2011-05-31 Deepen Sinha Method and apparatus for audio encoding and decoding using wideband psychoacoustic modeling and bandwidth extension
US20090319263A1 (en) * 2008-06-20 2009-12-24 Qualcomm Incorporated Coding of transitional speech frames for low-bit-rate applications
US8670990B2 (en) * 2009-08-03 2014-03-11 Broadcom Corporation Dynamic time scale modification for reduced bit rate audio coding
JP5345024B2 (ja) * 2009-08-28 2013-11-20 日本放送協会 3次元音響符号化装置、3次元音響復号装置、符号化プログラム及び復号プログラム
KR101809298B1 (ko) * 2010-10-06 2017-12-14 파나소닉 주식회사 부호화 장치, 복호 장치, 부호화 방법 및 복호 방법
US8762136B2 (en) * 2011-05-03 2014-06-24 Lsi Corporation System and method of speech compression using an inter frame parameter correlation
EP2798631B1 (en) * 2011-12-21 2016-03-23 Huawei Technologies Co., Ltd. Adaptively encoding pitch lag for voiced speech
US9715880B2 (en) * 2013-02-21 2017-07-25 Dolby International Ab Methods for parametric multi-channel encoding
CN103247293B (zh) * 2013-05-14 2015-04-08 中国科学院自动化研究所 一种语音数据的编码及解码方法
CN104347077B (zh) * 2014-10-23 2018-01-16 清华大学 一种立体声编解码方法
EP3067885A1 (en) 2015-03-09 2016-09-14 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for encoding or decoding a multi-channel signal
DK3353779T3 (da) 2015-09-25 2020-08-10 Voiceage Corp Fremgangsmåde og system til kodning af et stereolydssignal ved at anvende kodningsparametre for en primær kanal til at kode en sekundær kanal
CN105405445B (zh) * 2015-12-10 2019-03-22 北京大学 一种基于声道间传递函数的参数立体声编码、解码方法
CN108206021B (zh) * 2016-12-16 2020-12-18 南京青衿信息科技有限公司 一种后向兼容式三维声编码器、解码器及其编解码方法
CN109300480B (zh) 2017-07-25 2020-10-16 华为技术有限公司 立体声信号的编解码方法和编解码装置
CN109389985B (zh) * 2017-08-10 2021-09-14 华为技术有限公司 时域立体声编解码方法和相关产品
CN112233682A (zh) 2019-06-29 2021-01-15 华为技术有限公司 一种立体声编码方法、立体声解码方法和装置

Also Published As

Publication number Publication date
EP3975174A4 (en) 2022-07-20
EP3975174A1 (en) 2022-03-30
US20220108708A1 (en) 2022-04-07
CN112151045A (zh) 2020-12-29
US11887607B2 (en) 2024-01-30
WO2021000724A1 (zh) 2021-01-07

Similar Documents

Publication Publication Date Title
RU2764287C1 (ru) Способ и система для кодирования левого и правого каналов стереофонического звукового сигнала с выбором между моделями двух и четырех подкадров в зависимости от битового бюджета
US11837242B2 (en) Support for generation of comfort noise
CN108831501B (zh) 用于带宽扩展的高频编码/高频解码方法和设备
US11640825B2 (en) Time-domain stereo encoding and decoding method and related product
US11120807B2 (en) Method for determining audio coding/decoding mode and related product
US20240153511A1 (en) Time-domain stereo encoding and decoding method and related product
US20220122619A1 (en) Stereo Encoding Method and Apparatus, and Stereo Decoding Method and Apparatus
US20230352033A1 (en) Time-domain stereo parameter encoding method and related product
US11887607B2 (en) Stereo encoding method and apparatus, and stereo decoding method and apparatus
CN112151045B (zh) 一种立体声编码方法、立体声解码方法和装置
RU2773421C2 (ru) Способ и соответствующий продукт для определения режима кодирования/декодирования аудио
KR20230152156A (ko) 스테레오 오디오 신호에 대한 인코딩 및 디코딩 방법, 인코딩 디바이스, 및 디코딩 디바이스

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal