KR20090101730A - Method and apparatus for audio signal compression - Google Patents

Method and apparatus for audio signal compression

Info

Publication number
KR20090101730A
KR20090101730A KR1020080027042A KR20080027042A KR20090101730A KR 20090101730 A KR20090101730 A KR 20090101730A KR 1020080027042 A KR1020080027042 A KR 1020080027042A KR 20080027042 A KR20080027042 A KR 20080027042A KR 20090101730 A KR20090101730 A KR 20090101730A
Authority
KR
South Korea
Prior art keywords
index
tcq
radius
signal
quantizer
Prior art date
Application number
KR1020080027042A
Other languages
Korean (ko)
Other versions
KR101454867B1 (en
Inventor
토마스 알. 피셔
지에 잔
성호상
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020080027042A priority Critical patent/KR101454867B1/en
Publication of KR20090101730A publication Critical patent/KR20090101730A/en
Application granted granted Critical
Publication of KR101454867B1 publication Critical patent/KR101454867B1/en

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/022Blocking, i.e. grouping of samples in time; Choice of analysis windows; Overlap factoring
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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

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)
  • Spectroscopy & Molecular Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

PURPOSE: An audio signal compressing method and a device thereof for improving the efficiency of decoding as an efficient expression are provided to decode FFT(Fast Fourier Transform domain) domain by compressing radius and phase information for reducing entropy. CONSTITUTION: An audio signal compression method is as follows. A quantizing unit is used for the consisting of the index of positive numbers of the plural number production. The index of positive numbers is mapped with the index couple of the radius and phase(S1240). The radius information and the bit stream including the phase information are produced.

Description

오디오 신호 압축 방법 및 장치{METHOD AND APPARATUS FOR AUDIO SIGNAL COMPRESSION}Audio signal compression method and apparatus {METHOD AND APPARATUS FOR AUDIO SIGNAL COMPRESSION}

본 발명은 오디오 신호 압축 방법 및 장치에 관한 것으로, 특히 효율적인 데이터 표현으로 부호화시의 효율을 개선한 오디오 신호 압축 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for compressing an audio signal, and more particularly, to an audio signal compression method and apparatus for improving efficiency in encoding with an efficient data representation.

트렐리스 코드 양자화(TCQ: Trellis Coding Quantization) 방법은, 유니폼 또는 가우시안 소스(Marcellin and Fisher, "Trellis-coded quantization of memoryless and Gaussian- Markov sources", IEEE. Trans. on Commun., 1990)를 위하여 벡터 양자화(VQ: Vector Quantization)에 따르게 된다.The Trellis Coding Quantization (TCQ) method is used for uniform or Gaussian sources (Marcellin and Fisher, "Trellis-coded quantization of memoryless and Gaussian-Markov sources", IEEE.Trans.on Commun., 1990). Vector quantization (VQ) is followed.

TCQ에서의 코드워드(codeword)는 트렐리스 부호화(trellis code)에서 선택된 시퀀스를 말한다. 트렐리스 코드(Trellis code)는, 확장된 재생산 레벨을 가지고 서브셋(subsets)으로 나뉘는 유니폼(uniform) 또는 비-유니폼(non-uniform) 스칼라 양자화(scalar quantization)로부터 선택된다. 트렐리스 그래프(Trellis Graph)는 재생산 레벨의 경로를 결정하는 FSM(finite state machine)로부터 생성될 수 있다. 입력 백터(input vectors)에 가장 적합한 경로는, 비터비 복호화 알고리즘(Viterbi decoding algorithm)에 의하여 양자화 시퀀스로 선택된다.A codeword in TCQ refers to a sequence selected in trellis code. Trellis code is selected from uniform or non-uniform scalar quantization that has an extended reproduction level and is divided into subsets. The Trellis Graph can be generated from a finite state machine (FSM) that determines the path of reproduction levels. The path most suitable for the input vectors is selected as a quantization sequence by a Viterbi decoding algorithm.

TCQ는 부호화 이득의 향상을 제공할 수 있으나, 에러가 증가하는 것을 방지하기 위해 역-양자화기(de-quantizer)의 출력을 재구성하기 위해서는, TCQ 출력 TCQ 레벨 및 경로가 무손실 부호화(lossless coded)되어야 한다.TCQ may provide an improvement in coding gain, but in order to reconstruct the output of the de-quantizer to prevent errors from increasing, the TCQ output TCQ level and path must be lossless coded. do.

본 발명은 상기와 같은 종래 기술을 개선하기 위해 안출된 것으로서, 양자화기와 접목된 무손실 부호화 방법으로 엔트로피(entropy)를 줄이기 위해 반경(radius) 및 위상(phase) 정보를 구성 및 압축하여, 기존의 오디오 부호화기와 달리 FFT 도메인(Fast Fourier Transform domain)에서의 부호화시 효율적인 데이터 표현으로 부호화기의 효율을 개선하는 것을 목적으로 한다.SUMMARY OF THE INVENTION The present invention has been made to improve the prior art as described above. In order to reduce entropy by a lossless coding method combined with a quantizer, a radius and phase information may be configured and compressed, and the existing audio Unlike the coder, the purpose of the present invention is to improve the efficiency of the coder with efficient data representation in encoding in the FFT domain.

상기의 목적을 이루고 종래기술의 문제점을 해결하기 위하여 본 발명의 일측에 따른 오디오 신호의 부호화 방법은, 신호를 프레임화(framing)하는 단계, 복수개의 정수 인덱스(integer indices)로 구성된 셋(set)의 생성을 위해, 양자화기를 이용하여 상기 프레임을 양자화하는 단계, 상기 정수 인덱스를, 반경 및 위상의 인덱스 쌍으로 매핑시키는 단계, 및 상기 반경(radius) 정보 및 위상(phase) 정보를 포함하는 비트 스트림을 생성하는 단계를 포함한다.In order to achieve the above object and to solve the problems of the prior art, the method of encoding an audio signal according to an aspect of the present invention comprises the steps of framing the signal, a set consisting of a plurality of integer indices (set) Quantizing the frame using a quantizer, mapping the integer index into an index pair of radius and phase, and a bit stream including the radius information and phase information for generation of Generating a step.

본 발명의 또 다른 일측에 따르면, 상기 신호는 입력 파형 샘플의 특정 구간, 또는 오디오 파형의 특정 구간의 선형 예측 코딩(Linear Prediction Coding: LPC)에 의해 생성되는, 역 필터링된 잔여 신호 구간이다.According to another aspect of the present invention, the signal is an inverse filtered residual signal interval generated by linear prediction coding (LPC) of a specific section of an input waveform sample or a specific section of an audio waveform.

본 발명의 또 다른 일측에 따르면, 상기 양자화기는 USQ(Uniform Scalar Quantizer), 래티스 VQ(Lattice Vector Quantizer), Non-USQ(Non-Uniform Scalar Quantizer), VQ(Vector Quantizer), 및 TCQ(Trellis Coded Quantizer) 중에서 어느 하나이며, 상기 양자화에 의하여, 부호가 표시된 정수(signed integer) 또는 비-음수형 정수(non-negative integer)가 출력된다.According to another aspect of the invention, the quantizer is a Uniform Scalar Quantizer (USQ), Lattice Vector Quantizer (LQ), Non-Uniform Scalar Quantizer (Non-USQ), Vector Quantizer (VQ), and Trellis Coded Quantizer (TCQ) ), And a signed or non-negative integer is output by the quantization.

본 발명의 또 다른 일측에 따르면, 상기 양자화기가 TCQ(Trellis Coded Quantizer)인 경우, 상기 TCQ로부터의 정수 출력은, 상기 TCQ의 레벨 및 경로 비트이거나, 상기 TCQ의 레벨 및 경로 비트로부터 매핑되는, 상기 TCQ 상태에 따른 부호형 인덱스(signed indices) 이거나, 또는 상기 TCQ의 레벨 및 경로 비트로부터 매핑되는, 상기 TCQ 상태에 따른 비-음수형 인덱스(non-negative indices)이다.According to another aspect of the present invention, when the quantizer is a Terrellis Coded Quantizer (TCQ), the integer output from the TCQ is, or mapped from the level and path bits of the TCQ, or Signed indices according to the TCQ state, or non-negative indices according to the TCQ state, mapped from the level and path bits of the TCQ.

본 발명의 또 다른 일측에 따르면, 상기 반경 정보 값은, 상기 인덱스 쌍의 스퀘어드 서메이션(squared summation)에 의해 생성되고, 모든 반경 셋에 상기 반경 값을 제공하는 이뉴머레이션 코드인, 제2 인덱스에 맵핑된다.According to yet another aspect of the present invention, the radius information value is a second index, which is generated by a squared summation of the index pair and is an enumeration code that provides the radius value to all radius sets. Is mapped to.

본 발명의 또 다른 일측에 따르면, 상기 위상 정보 값은, 상기 반경 값의 코셋 테이블에서의 이뉴머레이션 값에 의하여 표시되고, 상기 코셋 테이블은 동일한 상기 반경 값을 가지는 인덱스들의 쌍을 포함한다.According to another aspect of the invention, the phase information value is represented by an enumeration value in the coset table of the radius value, the coset table includes a pair of indices having the same radius value.

본 발명의 또 다른 일측에 따르면, BRC(Bit Rate Control)에 의해 상기 이득 계수를 조정하여, 상기 양자화의 인터벌을 조정(tunning)하는 단계를 더 포함한다.According to another aspect of the present invention, the method further includes adjusting the gain coefficient by bit rate control (BRC) to tune the interval of the quantization.

오디오 신호의 복호화 방법은, 비트 스트림을, 반경 정보 값 및 위상 정보 값으로 디-멀티플렉스(De-multiplex)하는 단계, 상기 반경 정보 값 및 위상 정보 값에 의해 인덱스 쌍을 재구성하는 단계, 및 역-양자화기(de-quantizer)가 상기 인덱스 쌍을 이용하여 복수개의 정수 인덱스(integer indices)로 구성된 셋(set)을 복호화하는 단계를 포함한다.A method of decoding an audio signal includes de-multiplexing a bit stream into a radius information value and a phase information value, reconstructing an index pair by the radius information value and the phase information value, and inverse A de-quantizer decodes a set of a plurality of integer indices using the index pair.

본 발명의 또 다른 일측에 따르면, 상기 인덱스 쌍의 반경 정보 값은, 무손실 복호화(lossless decoding) 과정에 의하여 상기 비트 스트림으로부터 복호화되며, 상기 위상 정보 값은, 상기 인덱스 쌍의 이뉴머레이션 인덱스이고, 상기 반경 정보 값 및 상기 위상 정보 값의 이뉴머레이션 인덱스에 의해, 상기 인덱스 쌍이 반경 코셋 표 상에 리더로 재구성된다.According to another aspect of the invention, the radius information value of the index pair is decoded from the bit stream by a lossless decoding process, the phase information value is an enumeration index of the index pair, By means of the enumeration index of the radius information value and the phase information value, the index pair is reconstructed as a leader on a radius coset table.

본 발명의 일측에 따른 TCX 부호화기의 부호화 방법은, 입력 음성 신호를 시간 가변 가중 필터(time-varying weighting filter)를 통해 필터링 하여 가중 신호(weighted signla)를 얻는 단계, 상기 가중 신호에 윈도윙이 적용(adaptive windowing)되는 단계, 상기 윈도윙 된 신호에 푸리에 변환(Fourier Transform)이 적용되는 단계, 상기 윈도윙 된 신호를 프리-쉐이핑(pre-shaped)하여, 푸리에 변환 영역에서의 부호화 노이즈가 최소화되는 단계, 상기 노이즈가 최소화된 신호가 TCQ(Trellis Coded Quantizer)를 통하여 양자화되는 단계, 및 양자화된 시간 도메인 신호를 제공하기 위하여, 상기 양자화된 신호가 역 프리-쉐이핑(pre-shaped)함수에 의해 역 푸리에 변환되는 단계를 포함한다.According to an aspect of the present invention, there is provided a method of encoding a TCX encoder, the method comprising: filtering an input speech signal through a time-varying weighting filter to obtain a weighted signla; and applying windowing to the weighted signal (adaptive windowing), applying a Fourier transform to the windowed signal, pre-shaping the windowed signal, and minimizing encoding noise in a Fourier transform region. The quantized signal is inversed by an inverse pre-shaping function, to provide a quantized time domain signal, and to provide a quantized time domain signal. Fourier transform.

도 1은 본 발명의 일례에 따른 4-코셋을 이용하는 8-스테이트 트렐리스에 대응하는 컨버루션 부호화기를 도시한 블록도이다.1 is a block diagram illustrating a convolutional encoder corresponding to an 8-state trellis using a 4-corset according to an example of the present invention.

도 2는 본 발명의 일례에 따른 4-코셋을 이용하는 8-스테이트 트렐리스를 도시한 도면이다.2 shows an 8-state trellis using a 4-corset according to an example of the present invention.

도 3은 본 발명의 일례에 따른 4-코셋 TCQ 코드북을 도시한 도면이다.3 illustrates a 4-corset TCQ codebook according to an example of the present invention.

도 4는 본 발명의 일례에 따른 양자화기를 구성하는 방법을 설명하기 위한 흐름도이다.4 is a flowchart illustrating a method of configuring a quantizer according to an example of the present invention.

도 5는 본 발명의 일례에 따른 사각 반경 k의 제1사분원의 2-d 큐빅 래티스 지점(cubic lattice points)의 숫자를 도시한 도면이다.FIG. 5 shows the number of 2-d cubic lattice points of the first quadrant of square radius k in accordance with an example of the present invention.

도 6은 본 발명의 일례에 따른 부호화 과정을 설명하기 위한 도면이다.6 is a diagram for describing an encoding process according to an example of the present invention.

도 7은 본 발명의 일례에 따른 k 부터 m까지의 맵핑, 이뉴머레이션 비트의 숫자, 및 코드벡터 리더를 나타내는 이뉴머레이션 비트의 숫자, 및 k 및 m 값의 리스트를 도시한 도면이다.7 is a diagram illustrating a mapping from k to m, a number of enumeration bits, and a number of enumeration bits representing a codevector reader, and a list of k and m values according to an example of the present invention.

도 8은 본 발명의 일례에 따른 무손실 부호화 과정을 도시한 도면이다.8 illustrates a lossless encoding process according to an example of the present invention.

도 9는 인덱스 쌍의 무손실 부호화를 위한 과부하 영역을 표시한 도면이다.9 illustrates an overload region for lossless coding of index pairs.

도 10은 본 발명의 일례에 따른 무손실 복호화 방법을 도시한 도면이다.10 is a diagram illustrating a lossless decoding method according to an example of the present invention.

도 11은 본 발명의 일례에 따른 비트 레이트 제어를 위한 방법을 설명하기 위한 도면이다.11 is a diagram for describing a method for bit rate control according to an example of the present invention.

도 12는 본 발명의 일례에 따른 오디오 신호 부호화 방법을 설명하기 위한 흐름도이다.12 is a flowchart illustrating an audio signal encoding method according to an example of the present invention.

도 13은 본 발명의 일례에 따른 TCQ가 적용된 AMR-WB+ 부호화기를 도시한 도면이다.13 illustrates an AMR-WB + encoder to which TCQ is applied according to an example of the present invention.

도 14는 본 발명의 일례에 따른 TCQ가 적용된 AMR-WB+ 복호화기를 도시한 도면이다.14 illustrates an AMR-WB + decoder to which TCQ is applied according to an example of the present invention.

도 15는 본 발명의 일례에 따른 TCQ가 적용된 TCX 부호화기의 부호화 방법을 설명하기 위한 도면이다.15 is a diagram for describing a coding method of a TCX encoder to which TCQ is applied according to an example of the present invention.

이하 첨부된 도면들 및 첨부된 도면들에 기재된 내용들을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명하지만, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings and the contents described in the accompanying drawings, but the present invention is not limited or limited to the embodiments. Like reference numerals in the drawings denote like elements.

본 발명에 의한 양자화 방법은 컨버루션 부호화기(convolution encoder), 트렐리스(trellis) 및 TCQ 코드북(Trellis Coded Quantization codebook)을 이용하여 실시할 수 있다.The quantization method according to the present invention can be implemented using a convolutional encoder, a trellis, and a TCLIs coded quantization codebook.

도 1은 본 발명의 일례에 따른 4-코셋을 이용하는 8-스테이트 트렐리스에 대응하는 컨버루션 부호화기를 도시한 블록도이다.1 is a block diagram illustrating a convolutional encoder corresponding to an 8-state trellis using a 4-corset according to an example of the present invention.

컨버루션 부호화기는 경로(path)를 입력받아 소정 스테이지(stage)에 마련된 소정 스테이트(state)와 다음 스테이지에 마련된 스테이트들을 연결하는 브렌치(branch)들 가운데 어느 하나의 브렌치를 선택한다. The convolutional encoder receives a path and selects one branch among branches which connect a state provided in a predetermined stage and a state provided in a next stage.

도 1을 참조하여 설명하면, 입력단자 x(n)을 통해 경로를 나타내는 코드인 '0' 또는 '1'이 입력되고, "D"는 이전의 경로들을 나타내는 코드들을 z0, z1 및 z2가 순차적으로 일시 저장하며, 출력단자 y1(n)과 y2(n)를 통해 각 브렌치에 할당된 식별자인 코셋(coset)을 나타내는 코드를 출력한다. 예를 들어, 도 1에서 출력단자 y1(n)과 y2(n)을 통해 출력되는 코드들에 대응하는 코셋을 다음의 표 1과 같이 실시할 수 있다.Referring to FIG. 1, '0' or '1', which is a code representing a path, is input through an input terminal x (n), and "D" denotes codes indicating previous paths in which z0, z1, and z2 are sequentially. The code is temporarily stored, and a code indicating a coset, which is an identifier assigned to each branch, is output through output terminals y1 (n) and y2 (n). For example, a corset corresponding to codes output through the output terminals y1 (n) and y2 (n) in FIG. 1 may be implemented as shown in Table 1 below.

이러한 컨버루션 부호화기는 트렐리스에 마련된 스테이트의 경로에 대응하여 마련된다. 트렐리스는 복수의 스테이트(state)들로 마련되어 있으며, 소정 스테이지(stage)에 마련된 각 스테이트는 다음 스테이지에 마련된 복수의 스테이트들 가운데 적어도 하나 이상의 스테이트와 브렌치에 의해 연결되어 있고, 각 브렌치는 기 설정된 가지 수로 마련된 코셋으로 식별될 수 있다. Such a convolutional encoder is provided corresponding to the path of a state provided in the trellis. The trellis is composed of a plurality of states, each state provided in a predetermined stage is connected by a branch and at least one of the plurality of states provided in the next stage, each branch being a preset It can be identified by a number of corsets.

도 2는 도 1에 도시된 콘볼루션 부호화기에 대응하는 4-코셋을 이용하는 8-스테이트 트렐리스의 실시예를 개념도로 도시한 것이다. FIG. 2 is a conceptual diagram illustrating an embodiment of an 8-state trellis using a 4-corset corresponding to the convolutional encoder shown in FIG. 1.

도 2에서 스테이트는 0 내지 7에 해당하는 8개의 스테이트로 구성되어 있으며, 코셋은 D0, D1, D2, D3에 해당하는 4개의 코셋으로 구성되어 각 브렌치에 대응되도록 할당된다. 도 2에서 각 스테이트에 할당된 두 개의 코셋 가운데 선단에 마련된 코셋이 검출되면 도 1의 컨버루션 부호화기의 x(n)인 경로는 '0'이 되고 각 스테이트의 노드(node)에 연결된 두 개의 브렌치 가운데 상단에 마련된 브렌치가 경로로써 선택되며, 후단에 마련된 코셋이 검출되면 경로는 '1'이 되고 두 개의 브렌치 가운데 하단에 마련된 브렌치가 경로로서 선택된다. 만일 스테이트가 4에서 코셋 D0이 검출되면 후단에 마련된 코셋에 해당하며 하단에 마련된 브렌치가 선택되고 경로를 나타내는 코드 1이 선택된다.In FIG. 2, the state is composed of eight states corresponding to 0 to 7, and the corset is composed of four corsets corresponding to D0, D1, D2, and D3 and assigned to correspond to each branch. In FIG. 2, when the coset provided at the front end of the two corsets assigned to each state is detected, the path of x (n) of the converging encoder of FIG. 1 becomes '0' and two branches connected to the nodes of each state. The branch provided at the top center is selected as the path, and when the corset provided at the rear end is detected, the path is '1' and the branch provided at the bottom of the two branches is selected as the path. If the state detects the coset D0 at 4, it corresponds to the corset provided at the rear end and the branch provided at the bottom is selected, and the code 1 indicating the path is selected.

도 1, 도 2, 및 표 1을 이용하여 예를 들어 설명하면, 초기 스테이트가 '0'이라고 가정하고 도 1에 도시된 컨버루션 부호화기에 경로를 나타내는 코드 '1', '1', '1', '1', '0'가 입력단자 x(n)을 통해 순차적으로 입력될 경우 도 1에 도시된 컨버루션 부호화기에 의해 출력단자 y1(n)과 y2(n)로 출력되는 코드, 표 1에서 이 코드에 대응하는 코셋, x(n)으로 입력되는 경로에 따라 도 2에 도시된 트렐리스에 의해 결정되는 스테이트를 표 2로 마련하였다. For example, with reference to Figs. 1, 2, and 1, the codes '1', '1', and '1' representing a path to the converging encoder shown in Fig. 1 on the assumption that the initial state is '0'. When ',' 1 'and' 0 'are sequentially input through the input terminal x (n), codes outputted to the output terminals y1 (n) and y2 (n) by the converging encoder shown in FIG. Table 2 shows the states determined by the trellis shown in FIG. 2 according to the corset corresponding to this code in 1 and the path input to x (n).

z0, z1, z2가 초기값으로 모두 '0'이 할당된다고 가정하고 경로를 나타내는 코드로 x(n)에 1이 입력되면 도 1에 도시된 컨버루션 부호화기에 의해 y1(n)에서 '1'이 출력되고 y2(n)에서 '0'이 출력됨으로써 표 1의 테이블에서 이에 대응되는 코셋으로 'D2'가 선택되며 도 2에 도시된 트렐리스에 마련된 스테이트 0에서 브렌치가 'D2'가 선택되어 다음 스테이트로 '1'이 선택된다. Assuming that z0, z1, and z2 are all assigned with '0' as an initial value, if 1 is input to x (n) as a code representing a path, '1' in y1 (n) by the converging encoder shown in FIG. Is output and '0' is output from y2 (n), so that 'D2' is selected as the corresponding corset in the table in Table 1, and 'D2' is selected in state 0 provided in the trellis shown in FIG. '1' is selected as the next state.

그 후 x(n)에 1이 입력되면 이전에 입력된 x(n) 값인 '1'은 z0로 쉬프트(shift)되고 이전 z0에 저장된 값 '0'은 z1로 쉬프트되며 이전 z1에 저장된 값 '0'은 z2로 쉬프트되어 도 1에 도시된 컨버루션 부호화기에 의해 y1(n)에서 '0'이 출력되고 y2(n)에서 '0'이 출력됨으로써 표 1의 테이블에서 이에 대응되는 코셋으로 'D0'가 선택되며 도2에 도시된 트렐리스에 마련된 스테이트 1에서 브렌치가 'D0'가 선택되어 다음 스테이트로 '3'이 선택된다. 이와 동일한 방식으로 다음으로 x(n)에 '1'이 입력되면 y1(n)에서 '0'이 출력되고 y2(n)에서 '1'이 출력됨으로써 코셋 'D1'이 선택되고 다음 스테이트로 7이 선택된다. 또한, 다음으로 x(n)에 '1'이 입력되면 y1(n)에서 '1'이 출력되고 y2(n)에서 '1'이 출력됨으로써 코셋 'D3'이 선택되고 다음 스테이트로 7이 선택된다. 마지막으로 x(n)에 '0'이 입력되면 y1(n)에서 '0'이 출력되고 y2(n)에서 '1'이 출력됨으로써 코셋 'D1'이 선택된다.Then, if 1 is entered in x (n), the previously entered x (n) value '1' is shifted to z0, and the value stored in previous z0 '0' is shifted to z1 and the value stored in previous z1 ' 0 'is shifted to z2 and' 0 'is output from y1 (n) and' 0 'is output from y2 (n) by the convolutional encoder shown in FIG. D0 'is selected, and in the state 1 provided in the trellis shown in Fig. 2, the branch is selected as' D0' and '3' is selected as the next state. In the same way, when '1' is input to x (n) next, '0' is output from y1 (n) and '1' is output from y2 (n), so the corset 'D1' is selected and the next state 7 Is selected. Next, when '1' is input to x (n), '1' is output from y1 (n) and '1' is output from y2 (n), so that corset 'D3' is selected and 7 is selected as the next state. do. Finally, when '0' is input to x (n), '0' is output from y1 (n) and '1' is output from y2 (n), thereby selecting corset 'D1'.

도 2와 같은 트렐리스에 마련된 코셋들은 TCQ 코드북(Trellis Coded Quantization codebook)에 마련된 각 양자화 레벨(quantization level)에 할당된다. TCQ 코드북은 각 입력에 대응하는 양자화 레벨을 결정할 수 있으며, 각 양자화 레벨에 대응하여 트렐리스에 마련된 소정의 코셋이 할당되어 있다. 또한, TCQ 코드북에서는 소정의 단위로 연속하는 양자화 레벨들을 분류하여 각각 인덱스(index)가 할당된다. The corsets provided in the trellis as shown in FIG. 2 are allocated to each quantization level provided in the TClei coded quantization codebook. The TCQ codebook can determine the quantization level corresponding to each input, and a predetermined corset provided in the trellis is assigned corresponding to each quantization level. In addition, the TCQ codebook classifies consecutive quantization levels in a predetermined unit and is assigned an index.

도 3은 4-코셋 TCQ 코드북에 대한 실시예를 개념도로 도시한 것이다. 도 3에서 TCQ 인덱스를 예로 들어 설명하면, TCQ 인덱스 '0'에는 코셋 D0 및 D3가 할당된 양자화 레벨 '0'이 마련되어 있고, TCQ 인덱스 '-1'에는 코셋 D2가 할당된 양자화 레벨 '-1.5', 코셋 D1이 할당된 양자화 레벨 '-2.5', 코셋 D0가 할당된 양자화 레벨 '-3.5', 코셋 D3가 할당된 양자화 레벨 '-4.5'가 마련되어 있으며, TCQ 인덱스 '+1'에는 코셋 D1이 할당된 양자화 레벨 '+1.5', 코셋 D2이 할당된 양자화 레벨 '+2.5', 코셋 D3이 할당된 양자화 레벨 '+3.5', 코셋 D0이 할당된 양자화 레벨 '+4.5'가 마련되어 있다.3 conceptually illustrates an embodiment for a four-coset TCQ codebook. Referring to FIG. 3 as an example, the TCQ index '0' is provided with a quantization level '0' to which corsets D0 and D3 are assigned, and the quantization level '-1.5 with a coset D2 is assigned to TCQ index' -1 '. ', Quantization level' -2.5 'assigned with coset D1, quantization level' -3.5 'assigned with coset D0, quantization level' -4.5 'assigned with coset D3, and coset D1 at TCQ index' +1 ' The assigned quantization level '+1.5', the quantization level '+2.5' assigned to the coset D2, the quantization level '+3.5' assigned to the coset D3, and the quantization level '+4.5' assigned to the corset D0 are provided.

TCQ 코드북은 양자화 레벨 '0'이 포함된 인덱스를 제외하고 하나의 인덱스에 포함된 양자화 레벨들에 서로 다른 코셋이 할당될 수 있도록 기 설정한다. 다시 말하면, TCQ 코드북은 코셋의 총 가지 수에 해당하는 양자화 레벨들을 하나의 인덱스로 구성하여 양자화 레벨을 분류한다. The TCQ codebook presets different cosets to quantization levels included in one index except for an index including quantization level '0'. In other words, the TCQ codebook classifies quantization levels by constructing one index with quantization levels corresponding to the total number of branches of a corset.

예를 들어, 코셋의 총 가지 수가 4개인 경우 하나의 인덱스에 마련되는 양자화 레벨들의 개수도 4개로 설정하고 각 양자화 레벨에 각기 다른 코셋을 할당한다. 이와 같이 하나의 인덱스에 마련된 양자화 레벨들에 각기 다른 코셋을 할당함으로써 하나의 인덱스 내에서 각 양자화 레벨이 식별될 수 있도록 한다. 이러한 방식으로 구성된 TCQ 코드북에서 입력에 대응하는 TCQ 인덱스를 검출하고 트렐리스에서 양자화 레벨에 대응하는 경로를 검출하여 양자화하고 엔트로피 부호화(entropy coding)를 수행한다.For example, if the total number of branches of the corset is four, the number of quantization levels provided in one index is also set to four and different corsets are assigned to each quantization level. As such, by assigning different corsets to quantization levels provided in one index, each quantization level can be identified within one index. The TCQ codebook configured in this manner detects a TCQ index corresponding to the input, detects and quantizes a path corresponding to the quantization level in the trellis, and performs entropy coding.

도 4는 본 발명에 의한 새로운 인덱스 방식으로 양자화기를 구성하는 방법에 대한 일 실시예를 흐름도로 도시한 것이다.4 is a flowchart illustrating an embodiment of a method of configuring a quantizer in a new index method according to the present invention.

먼저, 트렐리스 및 TCQ 코드북에서 사용할 전체 코셋의 개수를 결정하고 이에 대응하여 코셋들을 설정한다(S400). S400에서는 전체 코셋의 개수를 2^n으로 결정할 수 있다(단, n은 2를 초과하는 정수이다.). 예를 들어, 전체 코셋의 개수를 4로 결정하면 트렐리스 및 TCQ 코드북에서는 도 2 및 3에 도시된 바와 같이 D0, D1, D2 및 D3에 해당하는 4개의 코셋이 설정되며, 전체 코셋의 개수를 8로 결정하면 트렐리스 및 TCQ 코드북에서는 D0, D1, D2, D3, D4, D5, D6, D7에 해당하는 8개의 코셋이 설정된다.First, the total number of corsets to be used in the trellis and TCQ codebooks is determined, and the corsets are set correspondingly (S400). In S400, the total number of corsets may be determined as 2 ^ n (where n is an integer greater than 2). For example, if the total number of corsets is determined as 4, four cosets corresponding to D0, D1, D2, and D3 are set in the trellis and TCQ codebooks as shown in FIGS. 2 and 3, and the total number of corsets is set. When 8 is determined, eight cosets corresponding to D0, D1, D2, D3, D4, D5, D6, and D7 are set in the trellis and TCQ codebooks.

S400에서 설정된 코셋을 이용하여 유니언 코셋(union coset)을 구성한다(S410). 여기서, 유니언 코셋은 소정 스테이트의 노드에 연결된 브렌치에 할당된 코셋들이 양립될 수 없는 코셋들끼리 구성한다. 다시 말하면, 소정 스테이트의 노드에 연결된 브렌치에 할당된 코셋들끼리는 동일한 유니언 코셋에 포함시키지 않는다. 2개의 코셋을 단위로 유니언 코셋을 구성하는 실시예를 테이블로 구성하면 다음에 마련된 표 3과 같이 실시할 수 있다. A union coset is configured using the coset set in S400 (S410). Here, the union corset constitutes corsets in which corsets allocated to branches connected to nodes of a predetermined state are incompatible. In other words, corsets assigned to branches connected to nodes of a given state are not included in the same union corset. If an embodiment of configuring a union corset in units of two corsets is configured as a table, it can be performed as shown in Table 3 below.

여기서, N은 2를 초과하는 정수이며, K는 코셋의 총 가지수이다. 예를 들어 4-코셋 TCQ 코드북에서는 {D0-D2, D1-D3}으로 유니언 코셋을 구성할 수 있으며, 8-코셋 TCQ 코드북에서는 {D0-D4, D1-D5} 및 {D2-D6, D3-D7}로 유니언 코셋을 구성할 수 있다.Where N is an integer greater than 2 and K is the total number of branches of the corset. For example, you can configure union corsets with {D0-D2, D1-D3} in the 4-coset TCQ codebook, and {D0-D4, D1-D5} and {D2-D6, D3- in the 8-coset TCQ codebook. The union corset can be configured with D7}.

S410에서 구성된 유니언 코셋을 이용하여 TCQ 코드북에 마련된 양자화 레벨들을 소정의 단위로 분류하여 인덱싱(indexing)한다(S420). S420에서 인덱싱함에 있어서, 하나의 인덱스에 포함된 양자화 레벨들은 각각 다른 유니언 코셋에 포함된 코셋들만 할당되도록 인덱싱한다. The quantization levels provided in the TCQ codebook are classified and indexed into predetermined units using the union corset configured in S410 (S420). In indexing at S420, the quantization levels included in one index are indexed such that only corsets included in different union corsets are allocated.

예를 들어, {D0-D2, D1-D3}으로 유니언 코셋이 구성된 4-코셋 TCQ 코드북에서는 어떠한 인덱스에도 동일한 유니언 코셋에 포함된 D0과 D2에 대응하는 양자화 레벨들이 같이 포함되어서는 안되며, D1과 D3도 마찬가지이다.For example, in a 4-coset TCQ codebook in which union corsets are configured with {D0-D2, D1-D3}, no index should contain quantization levels corresponding to D0 and D2 included in the same union corset. The same applies to D3.

S420에서 인덱싱되는 인덱스 방식의 실시예로 다음 기술되는 제1 인덱싱 방식과 제2 인덱싱 방식이 있다.An example of the indexing method indexed in S420 includes a first indexing method and a second indexing method described below.

우선, 제1 인덱스 방식을 설명하면, 제1 인덱스는 '0' 보다 큰 양자화 레벨들에는 양의 정수에 해당하는 인덱스가 할당되며, '0' 보다 작은 양자화 레벨들에는 음의 정수에 해당하는 인덱스가 할당되고, '0' 보다 큰 양자화 레벨들과 '0' 보다 작은 양자화 레벨들에 할당된 인덱스의 절대값은 동일하지만 서로 부호만 다르게 할당되도록 '0'을 중심으로 인덱스가 대칭적으로 할당된다. First, when describing the first index scheme, an index corresponding to a positive integer is assigned to quantization levels greater than '0', and an index corresponding to a negative integer to quantization levels smaller than '0'. Are assigned, and the indexes are symmetrically assigned around '0' so that the absolute values of the indices assigned to quantization levels greater than '0' and quantization levels less than '0' are the same, but only different signs are assigned. .

예를 들어, 도 3에 도시된 4-코셋 TCQ 코드북의 하단에 도시된 제1 인덱스가 있다. 제1 인덱스는 '0'을 중심으로 '0' 보다 큰 양자화 레벨들이 +1, +2, ... , +8로 인덱싱되고, '0' 보다 작은 양자화 레벨들이 -1, -2, ... , -8로 인덱싱되며, 서로 인덱스의 절대값은 동일하지만 서로 부호만 다르게 대칭적으로 인덱스가 할당되어 있다. 또한, 어떠한 인덱스에도 동일한 유니언 코셋에 포함된 D0과 D2에 대응하는 양자화 레벨들이 같이 포함되어 있지 않으며, D1과 D3도 마찬가지로 동일한 인덱스에 마련되어 있지 않는다. 따라서 제1 인덱스는 하나의 인덱스에 도 3에 도시된 바와 같이 전술한 TCQ 인덱스에 비해 절반에 해당하는 양자화 레벨들을 포함한다.For example, there is a first index shown at the bottom of the 4-coset TCQ codebook shown in FIG. The first index is indexed to +1, +2, ..., +8 with quantization levels larger than '0' around '0', and quantization levels smaller than '0' are -1, -2, .. Indexed by -8, and the indexes are assigned symmetrically with the same absolute value but different signs. In addition, no index includes quantization levels corresponding to D0 and D2 included in the same union corset, and D1 and D3 are not provided at the same index. Therefore, the first index includes quantization levels corresponding to half of the above-described TCQ index as shown in FIG. 3.

전술한 TCQ 인덱스 방식을 이용하여 다음 기재된 수학식 1에 의해 제1 인덱싱 방식으로 4-코셋 TCQ 코드북을 인덱싱할 수 있다.By using the above-described TCQ index method, the 4-coset TCQ codebook may be indexed by the first indexing method according to Equation 1 described below.

(단, n은 제1 인덱스이며, t는 TCQ 인덱스 임.)(Where n is the first index and t is the TCQ index)

다음으로, 제2 인덱싱 방식을 설명하면, 제2 인덱스는 음수에 해당하는 정수를 인덱스로 할당하지 않고 '0'과 양수에 해당하는 정수만 인덱스로 할당하여 가장 작은 양자화 레벨들이 포함된 인덱스에 '0'을 할당하며 점차 양자화 레벨이 증가함에 따라 순차적으로 큰 양의 정수에 해당하는 인덱스를 할당함으로써 가장 큰 양자화 레벨들이 포함된 인덱스에 가장 큰 인덱스가 포함되도록 인덱스를 할당한다. 제2 인덱싱 방식을 제1 인덱싱 방식과 비교하여 설명하면, 제1 인덱싱 방식과 양자화 레벨들을 분류하는 방식은 동일하고, 가장 작은 양자화 레벨부터 가장 큰 양자화 레벨까지 순차적으로 인덱싱하는 순서는 동일하다. 그러나 인덱스를 할당함에 있어서 제1 인덱스는 양자화 레벨 0을 포함하는 인덱스를 중심으로 '0' 보다 작은 인덱스에 음의 정수를 할당하고 '0' 보다 큰 인덱스에 양의 정수를 할당하며, 제2 인덱스는 제일 작은 양자화 레벨들이 포함된 인덱스에 '0'을 할당하고 제일 큰 양자화 레벨들이 포함된 인덱스까지 순차적으로 양의 정수를 인덱스로 할당하는 차이점이 있다.Next, referring to the second indexing scheme, the second index does not allocate an integer corresponding to a negative number as an index, but assigns only an integer corresponding to '0' and a positive number as an index so that the index including the smallest quantization levels is '0'. As the quantization level gradually increases, an index corresponding to a large positive integer is sequentially assigned to allocate the index such that the largest index is included in the index including the largest quantization levels. When the second indexing scheme is described in comparison with the first indexing scheme, the first indexing scheme and the scheme of classifying the quantization levels are the same, and the order of indexing sequentially from the smallest quantization level to the largest quantization level is the same. However, in assigning an index, a first index allocates a negative integer to an index smaller than '0' around an index including quantization level 0, a positive integer to an index larger than '0', and a second index. There is a difference in that '0' is allocated to an index including the smallest quantization levels and a positive integer is sequentially assigned to the index including the largest quantization level.

예를 들어, 전술한 TCQ 인덱스 방식을 이용하여 다음 기재된 수학식 2에 의해 제2 인덱싱 방식으로 4-코셋 TCQ 코드북을 인덱싱할 수 있다.For example, the 4-coset TCQ codebook may be indexed using the TCQ index method described above in the second indexing method by Equation 2 described below.

(단, n은 제2 인덱스이며, t는 TCQ 인덱스임.)(Where n is the second index and t is the TCQ index)

전술한 TCQ 인덱스, 제1 인덱스, 제2 인덱스를 도 2에 도시된 8-스테이트 트렐리스와 도 3에 도시된 두 개의 제로 레벨이 마련된 4-코셋 TCQ 코드북에서 실시하면 다음 마련된 표 4 및 5와 같이 대응될 수 있다. 여기서, 표 4는 코셋 D0와 D2로 구성된 유니언 코셋 C0에 대한 인덱스들이고, 표 5는 코셋 D1와 D3로 구성된 유니언 코셋 C1에 대한 인덱스들이다.When the above-described TCQ index, first index, and second index are performed in the 4-coset TCQ codebook provided with the 8-state trellis shown in FIG. 2 and the two zero levels shown in FIG. It can correspond as well. Here, Table 4 is an index for the union corset C0 composed of the cosets D0 and D2, and Table 5 is an index for the union corset C1 composed of the cosets D1 and D3.

이렇게 제1 인덱스 방식과 제2 인덱스 방식에 의해서 인덱싱함에 있어서, 양자화 레벨 '0'이 포함된 인덱스는 '0'을 제외한 양자화 레벨들이 포함된 인덱스와 달리 인덱싱된다. 양자화 레벨 '0'에 2개의 코셋이 할당된 "two zero level", 어떠한 코셋도 할당되지 않은 "no zero level", 데드-존으로 마련된 "dead-zone"으로 마련될 수 있다.In the indexing by the first index method and the second index method as described above, an index including the quantization level '0' is indexed unlike an index including the quantization levels except '0'. It may be provided as a "two zero level" in which two corsets are assigned to the quantization level '0', a "no zero level" in which no corset is assigned, and a "dead-zone" provided as a dead zone.

양자화 레벨 '0'에 2개의 코셋이 할당된 TCQ 코드북의 실시예로 도 3에 4-코셋 TCQ 코드북이 도시되어 있다. 여기서, 도 3에 도시된 4-코셋 TCQ 코드북은 도 1에 도시된 4-코셋을 이용하는 8-스테이트 트렐리스 코드의 콘볼류션 부호화기와 도 2에 도시된 4-스테이트 트렐리스를 이용하여 실시할 수 있다.An example of a TCQ codebook in which two cosets are allocated at quantization level '0' is shown in FIG. 3. Here, the 4-coset TCQ codebook shown in FIG. 3 uses a convolutional encoder of 8-state trellis code using the 4-coset shown in FIG. 1 and the 4-state trellis shown in FIG. It can be carried out.

0'에 양자화 레벨이 할당되지 않은 TCQ 코드북의 실시예로 도 3에 4-코셋 TCQ 코드북이 도시되어 있다. 여기서, 도 3에 도시된 4-코셋 TCQ 코드북은, 도 1에 도시된 4-코셋을 이용하는 8-스테이트 트렐리스 코드의 콘볼류션 부호화기와, 도 2에 도시된 4-스테이트 트렐리스를 이용하여 실시할 수 있다.An example of a TCQ codebook with no quantization level assigned to 0 'is shown in FIG. 3 with a 4-coset TCQ codebook. Here, the 4-coset TCQ codebook shown in FIG. 3 includes a convolutional encoder of an 8-state trellis code using the 4-coset shown in FIG. 1, and a 4-state trellis shown in FIG. It can be used.

이후, 무손실 부호화(Lossless Coding) 방법을 설명하면 다음과 같다.Hereinafter, a lossless coding method will be described.

상기와 같은 정수 인덱스(indices)가 DFT(discrete Fourier transform) 값의 TCQ에 해당한다고 가정하였을 때, 복합값(complex-valued) DFT 상수의 실제 및 가상 부분을 (x(2n), x(2n+1)), n = 0,1,2,...,N-1로 정할 수 있다. 상기 상수 지점(points)는 위상(phase)에서 균등하게 분포되고, 실제 및 가상 부분을 결합하여 각 "반경(radius)" 및 "위상(phase)" 프로세싱 인덱스 쌍(실제 및 가상 출력)의 맵핑에 의해 효율적으로 수행될 수 있다..Assuming that such integer indices correspond to the TCQ of a discrete Fourier transform (DFT) value, the real and imaginary portions of the complex-valued DFT constants are defined as (x (2n), x (2n +). 1)), n = 0,1,2, ..., N-1. The constant points are evenly distributed in phase and combine the real and imaginary parts to the mapping of each "radius" and "phase" processing index pair (real and virtual outputs). Can be performed efficiently.

무손실 부호는 각 실제 및 가상 인덱스 쌍, (x(2n), x(2n+1))을 매핑하기 위하여, 비-음수 인덱스(non-negative index pair) 쌍(m(n), e(n))으로 구성될 수 있다. 이때, m(n)은 "반경"을 나타내는 파라미터이고, e(n)은 "위상"을 나타내는 파라미터이며, 동일한 반경을 가지는 인덱스 쌍들의 가능한 조합을 나열하기 위하여 사용된다.A lossless code is a non-negative index pair pair (m (n), e (n)) for mapping each real and virtual index pair, (x (2n), x (2n + 1)). It can be composed of). Where m (n) is a parameter representing "radius" and e (n) is a parameter representing "phase" and is used to list possible combinations of index pairs having the same radius.

이와 같은 방법으로 무손실 부호화는, m(n)을 복호화하기 위하여 가변성 길이 코드 Cm을 사용하고, e(n)을 복호화하기 위하여 m(n)의 상태에 따라서 고정된 길이 코드 Ce를 사용할 수 있다.In this way, lossless coding uses a variable length code Cm to decode m (n) and a fixed length code Ce according to the state of m (n) to decode e (n).

이진 나열 코드(binary enumeration code)는 고정된 길이의 코드이다. 부호화 되어야 할 2L 항목이 있는 경우, 각각은 유일한 L-비트 이진(L-bit binary) 코드워드(codeword)로 표현된다. m(n)을 나타내기 위해서 코드워드 Cm(m)로 표기하고, e(n)을 나타내기 위해서는 코드워드 Ce(e)로 표기하며, (x(2n), x(2n+1))를 나타내기 위한 코드워드는 (Cm(m), Ce(e))의 형태이다. 복호화하기 위하여, Cm(m)은 비-음수형 정수인 m이 복호화되고, m의 상태에 따라서 Ce(e)는 e로 복호화된다. 따라서, 상기 (m(n), e(n))은 다시 (x(2n), x(2n+1))에 맵핑된다.Binary enumeration code is a fixed length code. If there are 2 L items to be encoded, each is represented by a unique L-bit binary codeword. The codeword Cm (m) is used to represent m (n), the codeword Ce (e) is used to represent e (n), and (x (2n), x (2n + 1)). The codeword to represent is in the form of (Cm (m), Ce (e)). In order to decode, Cm (m) is decoded as a non-negative integer m, and Ce (e) is decoded by e depending on the state of m. Thus, (m (n), e (n)) is again mapped to (x (2n), x (2n + 1)).

상기 (x(2n), x(2n+1))의 (m(n), e(n))으로의 맵핑에는 중간 단계가 존재한다. 스퀘어드 반경(squared radius)은 으로 정의하고, 은 사각 반경 k(n)의 (x(2n), x(2n+1))을 산정하고, ( )의 제1 사분원(quadrant)에 대입한다. x(i)이 비-음수인 정수인 경우, (x(2n), x(2n+1))는 사각 반경 k(n)의 평면의 정수 지점에 상응하게 된다. 따라서, (x(2n), x(2n+1))는 이차원(two-dimensional) 정수 래티스(cubic lattice)인 는 제1 사분원에 속하게 되고, 래티스 세타 함수(lattice theta function: J. H. Conway and N. J. A. Sloane, "Voronoi regions of Lattices, second moments of polytopes, and quantization," IEEE Trans. Inform. Th., vol. 28, pp. 211-226, March 1982.)에 기초하여 계산하게 되며, 또한 래티스 코드 백터(lattice codevectors: G. D. Forney, Jr., "Coset codes - Part I: Introduction and geometrical classification," IEEE Trans. Inform. Th., v. 34, pp. 1123-1151, Sept. 1988)의 가중치를 참조하게 된다.An intermediate step exists in the mapping of (x (2n), x (2n + 1)) to (m (n), e (n)). The squared radius is To be defined as, Calculates (x (2n), x (2n + 1)) of square radius k (n), And ) Into the first quadrant of If x (i) is a non-negative integer, (x (2n), x (2n + 1)) will correspond to the integer point of the plane of square radius k (n). Thus, (x (2n), x (2n + 1)) is a two-dimensional integer lattice Belongs to the first quadrant, and the lattice theta function: JH Conway and NJA Sloane, "Voronoi regions of Lattices, second moments of polytopes, and quantization," IEEE Trans. Inform. Th ., Vol. 28, pp 211-226, March 1982.), and also Lattice codevectors (GD Forney, Jr., "Coset codes-Part I: Introduction and geometrical classification," IEEE Trans. Inform. Th . , v. 34, pp. 1123-1151, Sept. 1988).

도 5는 본 발명의 일례에 따른 사각 반경 k의 제1사분원의 2-d 큐빅 래티스 지점(cubic lattice points)의 숫자를 도시한 도면이다.FIG. 5 shows the number of 2-d cubic lattice points of the first quadrant of square radius k in accordance with an example of the present invention.

는 사각 반경 k의 제1사분원(quadrant)의 2차원 큐빅 래티스 지점(2-d cubic lattice points)의 숫자에 따라 정의된다. 에서의 값은 도 7에 도시된 바와 같다. Is defined according to the number of 2-d cubic lattice points of the first quadrant of the square radius k. of The value at is as shown in FIG. 7.

의 범위에서 의 값은 0, 1, 2, 3, 또는 4의 다섯 개의 값만이 가능하다. 의 값이 1인 경우에는, 제1 사분원 래티스 지점만이 존재하고, 따라서 이뉴머레이션(enumeration)을 필요로 하지 않는다. In the range of The value of is possible only five values of 0, 1, 2, 3, or 4. If the value of 1 is 1, only the first quadrant lattice point is present and therefore does not require enumeration.

의 값이 2 또는 4인 경우에, 래티스 지점은 각각 1, 또는 2 비트로 산출 될 수 있다. 의 값이 3인 경우는 비교적 드문 경우로서, 의 범위에서 오직 k의 값이 50 또는 200인 경우에만 발생하게 된다. If the value of is 2 or 4, the lattice point can be calculated as 1 or 2 bits, respectively. A value of 3 is relatively rare. It will only occur if the value of k is 50 or 200 in the range of.

값인 3일 경우에, 래티스 지점을 부호화 하기 위해 2 비트를 사용하는 경우에는, 부호화 효율상의 손실이 거의 발생하지 않는다. When the value is 3, when two bits are used to encode the lattice point, a loss in coding efficiency hardly occurs.

특정 K의 값에는 제로(zero) 래티스 지점들이 존재하기 때문에, m∈{0,1,2,..mmax}이거나, > 0인 경우에만, k(n)에서부터 m(n)까지 일대일(one-to-one) 매핑을 적용하는 것이 편리하다. m>mmax인 경우는 AMR-WB+ 표준에서 사용되는 보로노이 확장(Voronoi extension)에 의한 방법과 같은, 과부하(overload) 부호화 룰을 사용할 수 있다. 상기와 같은 부호화 과정은 도 6에 도시된 바와 같다.Since there are zero lattice points at a particular value of K, m∈ {0,1,2, .. m max }, or Only when> 0, it is convenient to apply a one-to-one mapping from k (n) to m (n). In the case of m> m max , an overload coding rule, such as the Voronoi extension method used in the AMR-WB + standard, may be used. The encoding process as described above is illustrated in FIG. 6.

로서 숫자의 스퀘어드 반경(squared radius) k(m)의 제1 사분원 이차원(2-d) 큐빅 래티스지점을 나타내게 되면, 해당 범위 내의 m일 때 이므로, 이뉴머레이션(enumeration) 부호화는 각 e(n)을 표시하기 위하여 0, 1, 또는 2 비트가 필요하다. As the first quadrant two-dimensional (2-d) cubic lattice point of the squared radius k (m) of a number, Therefore, enumeration encoding requires 0, 1, or 2 bits to indicate each e (n).

상기 이뉴머레이션 부호화 및 복호화는 참조표를 사용하여 구현이 가능하다. m과 관련된 각 값은 제1 사분원 래티스 벡터들(lattice vectors)에 해당되며, 의 형태를 취하게 된다. 예를 들어, m=2(k=2)에 상응하는 싱글 래티스 코드벡터(codevector)는 이다. m=3(k=4)에 상응하는 두 개의 코드 벡터는 이다. 상기 후술한 두 개의 코드벡터는 순열(permutation)로서, 상기 상부에서 보다 큰 인덱스 값에 상응하는 하나의 값을 저장할 수 있다. 순열화된 코드벡터를 코셋(coset)이라고 하며, 상부에서 가장 큰 값을 가지는 코드벡터는 코셋 (또는 코드벡터) 리더가 된다.The enumeration encoding and decoding can be implemented using a reference table. Each value associated with m corresponds to the first quadrant lattice vectors, Will take the form of. For example, a single lattice codevector corresponding to m = 2 (k = 2) to be. The two code vectors corresponding to m = 3 (k = 4) to be. The two code vectors to be described later are permutations, and can store one value corresponding to a larger index value in the upper portion. The permuted code vector is called a coset, and the code vector with the largest value at the top becomes a coset (or code vector) leader.

도 7은 본 발명의 일례에 따른 k 부터 m까지의 맵핑, 필요한 이뉴머레이션 비트의 숫자, 및 코드벡터 리더를 나타내는 이뉴머레이션 비트의 숫자, 및 k 및 m 값의 리스트를 도시한 도면이다.FIG. 7 is a diagram of a mapping from k to m, a required number of enumeration bits, a number of enumeration bits representing a codevector reader, and a list of k and m values, in accordance with an example of the present invention.

보다 상세하게 설명하면, 이뉴머레이션(enumeration) 비트의 숫자, 그리고 구간에서 kmax=100에 상응하는 mmax=43 코드벡터 리더(leaders)인, k 및 m 값의 리스트를 도시하고 있다.More specifically, the number of enumeration bits, and A list of k and m values is shown, which is m max = 43 codevector leaders corresponding to k max = 100 in the interval.

도 8은 본 발명의 일례에 따른 무손실 부호화 과정을 도시한 도면이고, 도 9는 인덱스 쌍의 무손실 부호화를 위한 과부하 영역을 표시한 도면이다.8 is a diagram illustrating a lossless encoding process according to an example of the present invention, and FIG. 9 is a diagram illustrating an overload region for lossless encoding of an index pair.

도 8 및 도 9를 참조하여 본 발명의 일례에 따른 무손실 부호화 과정을 설명한다.A lossless encoding process according to an example of the present invention will be described with reference to FIGS. 8 and 9.

(x(2n), x(2n+1)) 및 값을 계산하고(S900), 매핑 유닛을 사용하여 참조표를 참조하여 k(n)을 m(n)에 맵핑시킨다. 이때, m=kToM[k]이며, kToM[]은 참조표를 나타낸다(S810).(x (2n), x (2n + 1)) and The value is calculated (S900), and k (n) is mapped to m (n) by referring to the reference table using the mapping unit. At this time, m = kToM [k], and kToM [] represents a reference table (S810).

k(n)이 기 설정된 역치 'MAXRAD'보다 적은지를 판단한다(S820). It is determined whether k (n) is less than the preset threshold 'MAXRAD' (S820).

상기 판단 결과, k(n)이 기 설정된 역치 'MAXRAD'보다 적은 경우, 역치보다 낮은 반경을 위하여 무손실 부호화를 실행한다(S830).As a result of the determination, when k (n) is less than the preset threshold 'MAXRAD', lossless coding is performed for a radius lower than the threshold (S830).

이때, m을 Cm(m)으로 부호화하기 위하여 프리픽스-프리(prefix-free) 무손실 부호화 모듈을 사용한다. 프리픽스-프리 상태는 코드워드가 부호화된 비트-스트림(bit-stream)으로부터 유일하게 파싱(parsed) 되도록 한다. In this case, a prefix-free lossless encoding module is used to encode m into Cm (m). The prefix-free state allows the codeword to be uniquely parsed from the coded bit-stream.

이후, 참조표를 사용하여, 이뉴머레이션(enumeration) 부호화를 위하여 상기 비트의 번호를 판단한다(S840).Thereafter, using the reference table, the number of the bit is determined for enumeration encoding (S840).

상기 판단 결과, 이뉴머레이션 비트의 숫자가 0 보다 큰 경우에는, (x(2n), x(2n+1)) 쌍이 저장된 래티스 코드 벡터 리더(lattice codevector leaders)에 의하여 매칭되고, 이뉴머레이션 이진 코드벡터(enumeration binary codevector), 즉 ce(e)가 선택된다(S850).As a result of the determination, when the number of enumeration bits is greater than 0, (x (2n), x (2n + 1)) pairs are matched by stored lattice codevector leaders, and the enumeration binary An enumeration binary codevector, that is, ce (e), is selected (S850).

그렇지 않은 경우, 오직 하나의 인덱스 조합 k(m)이 존재하게 되며, e(n)의 부호화는 불필요하게 된다(S860). (x(2n), x(2n+1))를 위한 코드워드는 (c m (m), c e (e))이다.Otherwise, only one index combination k (m) will be present, and coding of e (n) becomes unnecessary (S860). The codeword for (x (2n), x (2n + 1)) is ( c m ( m ), c e ( e )).

k(n)이 기 설정된 역치 MAXRAD보다 적은 경우에는 과부하 영역을 판단하여(S870, S875), 인덱스 쌍이 상기 과부하 영역 1(1010)에 해당하는 경우에는, 과부하 영역1에 해당하는 코드워드를 사용하여 c m (m)을 부호화한다. 그리고, 이진 코딩에 의하여 x(2n+1)을 부호화하고, 이진 코딩 x(2n)을 x(2n)-THR에 의해 부호화한다(S880).When k (n) is less than the preset threshold MAXRAD, the overload region is determined (S870, S875). When the index pair corresponds to the overload region 1 (1010), the codeword corresponding to the overload region 1 is used. c m Encode m ( m ). Then, x (2n + 1) is encoded by binary coding, and binary coding x (2n) is encoded by x (2n) -THR (S880).

상기 과부하 영역의 판단 결과, 인덱스 쌍이 상기 과부하 영역 2(1020)에 해당하는 경우에는, 과부하 영역2에 해당하는 코드워드를 사용하여 c m (m)을 부호화한다. 그리고, 이진 코딩에 의하여 x(2n+1)을 부호화하고, 이진 코딩 x(2n+1)을 x(2n+1)-THR에 의해 부호화한다(S890).As a result of the determination of the overload region, when the index pair corresponds to the overload region 2 (1020), c m ( m ) is encoded by using a codeword corresponding to the overload region 2. Then, x (2n + 1) is encoded by binary coding, and binary coding x (2n + 1) is encoded by x (2n + 1) -THR (S890).

상기 과부하 영역의 판단 결과, 인덱스 쌍이 상기 과부하 영역 3(1030)에 해당하는 경우, 과부하 영역3에 해당하는 코드워드를 사용하여 c m (m)을 부호화한다. 그리고, 이진 코딩에 의하여 x(2n) 및 x(2n+1)을 부호화하고, x(2n) 및 x(2n+1)을 x(2n)-THR에 의해 부호화한다(S895).As a result of the determination of the overload region, when the index pair corresponds to the overload region 3 (1030), c m ( m ) is encoded using a codeword corresponding to the overload region 3. Then, x (2n) and x (2n + 1) are encoded by binary coding, and x (2n) and x (2n + 1) are encoded by x (2n) -THR (S895).

도 10은 본 발명의 일례에 따른 무손실 복호화 방법을 도시한 도면이다.10 is a diagram illustrating a lossless decoding method according to an example of the present invention.

코드워드 c m 이 비트-스트림 및 복호화된 m 값으로부터 파싱하고(parsed)(S1200), m이 MAXRAD 보다 크기 않은 경우, 주어진 m 및 이뉴머레이션 코드워드(enumeration codeword)를 위해 사용되는 비트 넘버 numEBits를 찾기 위하여 도 7에 도시된 참조표를 사용한다.The bit number numEBits used for the given m and enumeration codewords if codeword c m is parsed from the bit-stream and the decoded m value (S1200) and m is not greater than MAXRAD. To find the reference, use the reference table shown in FIG.

이와 같은 비트들은 비트-스트림(bit-stream)으로부터 읽어 들일 수 있고, 비-부호 정수 e로 해석되며, 판단 결과 통상의 코드워드(Regular Codeword)인 경우에는(S1210), numEBits 가 0 일때 e은 0이 된다(S1020, S1030).These bits can be read from the bit-stream, interpreted as a non-signed integer e, and in the case of a normal codeword as a result of the determination (S1210), when numEBits is 0, e is It becomes 0 (S1020, S1030).

numEBits > 0 인 경우에는, e(n)은 복호화되고 비트-스트림으로부터 파싱된다(S1040).If numEBits> 0, e (n) is decoded and parsed from the bit-stream (S1040).

(x1, x2)쌍으로 m 및 e를 복호화하기 위하여 참조표를 사용한다(S1050).A reference table is used to decode m and e into (x 1 , x 2 ) pairs (S1050).

통상의 코드워드가 아니며, 판단 결과 인덱스 쌍이 상기 과부하 영역 1, c m (OV1)에 해당하는 경우(S1060), x(2n) 이진 코드 ov(2n)을 비트-스트림으로부터 파싱하고, x(2n) 값을 회수하기 위하여 상기 값에 THR을 더한다. 비트-스트림으로부터 x(2n+1)값을 회수하기 위하여 이진 코드 x(2n+1)와 ov(2n+1)을 파싱한다(S1070).If it is not a normal codeword, and the determination result indicates that the index pair corresponds to the overload region 1, c m (OV1) (S1060), the x (2n) binary code ov (2n) is parsed from the bit-stream, and x (2n). ) To recover the value, add THR to the value. The binary code x (2n + 1) and ov (2n + 1) are parsed to recover the x (2n + 1) value from the bit-stream (S1070).

상기 판단 결과, 인덱스 쌍이 상기 과부하 영역 2, c m (OV1)에 해당하는 경우(S1065), x(2n)값을 회수하기 위해, x(2n) 이진 코드 ov(2n)을 비트-스트림으로부터 파싱한다. 비트-스트림으로부터 x(2n+1)값을 회수하기 위하여 상기 값에 THR을 더하고, 이진 코드 x(2n+1)와 ov(2n+1)을 파싱한다(S1080).As a result of the determination, when the index pair corresponds to the overload region 2, c m (OV1) (S1065), the x (2n) binary code ov (2n) is parsed from the bit-stream to recover the x (2n) value. do. In order to recover the x (2n + 1) value from the bit-stream, THR is added to the value, and the binary code x (2n + 1) and ov (2n + 1) are parsed (S1080).

상기 판단 결과, 인덱스 쌍이 상기 과부하 영역 3, c m (OV1)에 해당하는 경우, x(2n) 이진 코드 ov(2n)을 비트-스트림으로부터 파싱하고, x(2n) 값을 회수하기 위하여 상기 값에 THR을 더한다. 비트-스트림으로부터 이진 코드 x(2n+1)와 ov(2n+1)을 파싱하고, x(2n+1)값을 회수하기 위하여 상기 값에 THR을 더한다(S1090).As a result of the determination, when the index pair corresponds to the overload region 3, c m (OV1), the value of x (2n) binary code ov (2n) is parsed from the bit-stream and the value of x (2n) is recovered. Add THR to The binary code x (2n + 1) and ov (2n + 1) are parsed from the bit-stream, and THR is added to the value to recover the x (2n + 1) value (S1090).

해당 범위의 값 을 위하여, 기 설정된 값 k, 은 0, 1, 또는 2 비트를 통하여 표시될 수 있다. k로부터 m으로 일대일 맵핑이 존재하므로, 차후 k 및 m은 상호 교대로 참조될 수 있으며, 실질적으로 k(m)이 스퀘어드 반경(squared radius)이더라도, 또한 m은 코드벡터 스퀘어드 반경으로서 참조될수 있다.M(2,m) = 1인 경우, 주어진 사각 반경의 오직 하나의 래티스 코드백터(lattice codevector)가 존재하므로, 이뉴머레이션(m 값이 복호화되고, 래티스 코드벡터가 참조표를 사용하여 생성 가능할 때)을 위한 비트를 필요로 하지 않는다. 이 경우에는, 상기 코드벡터는 의 형태가 되며, 이뉴머레이션 인덱스 e는 0으로 설정되고, 더 이상 복호화되지 않는다. 인 경우에는, 래티스 코드벡터들이 의 순열 쌍 형태로 형성 된다. 범위 내에 해당하는 m을 위하여, 최대 두쌍이 존재하게 된다. 각 순열 쌍(각 코드벡터 코셋)을 위해, 코드벡터들이 로 정렬된다고 가정한다. 이는 벡터의 제1 차원에 기초하여, 가장 큰 값에서 가장 작은 값으로의 사전 기술 정렬 방법(lexicographic ordering)을 참조하게 된다. 두 쌍이 존재하는 경우에는, 코드벡터들은 그리고 일 때, 로 정렬된다. 그리고, 이뉴머레이션 코드워드 e는 각각 하나의 래티스 코드벡터 쌍의 경우를 위하여 0 또는 1이거나, 또는 두 개의 쌍의 경우를 위하여0,1,2, 또는 3이 된다.The value in that range For this purpose, the preset value k, Can be represented through 0, 1, or 2 bits. Since there is a one-to-one mapping from k to m, later k and m can be referenced to each other alternately, and m can also be referred to as a codevector squared radius, even though k (m) is substantially squared radius. If M (2, m) = 1, there is only one lattice codevector of a given square radius, so that the enumeration (the value of m is decoded and the lattice codevector can be generated using a lookup table) Doesn't need a bit). In this case, the code vector is The enumeration index e is set to 0 and is no longer decoded. If, the lattice codevectors Are formed in the form of permutation pairs. For m in range, there are at most two pairs. For each permutation pair (each codevector corset), Assume that is sorted by. This refers to a lexicographic ordering from the largest value to the smallest value based on the first dimension of the vector. If two pairs exist, the codevectors And when, Sorted by. The enumeration codeword e is 0 or 1 for one lattice codevector pair, or 0, 1, 2 or 3 for two pairs.

이뉴머레이션 부호화는 참조표를 사용하여 구현할 수 있다. 0≤m≤mmax는 코드벡터 사각 반경의 인덱스를 나타낸다. encTable[m][i]으로 표시되어 있는 부호화 표는 크기에 관한 것으로, 이뉴머레이션 부호화 비트의 수를 나타내는 , 는 스퀘어드 반경(squared radius) k(m)의 코드벡터를 유지한다. 일 때의 는 다음의 표 6 및 도 8에 도시된 표를 따르게 된다.Enumeration encoding can be implemented using a look-up table. 0≤m≤m max represents the index of the code vector square radius. The encoding table indicated by encTable [m] [i] is related to the size and indicates the number of enumeration encoding bits. , And Maintains a codevector of squared radius k (m). When Follows the table shown in Table 6 and FIG.

이뉴머레이션 부호화(enumeration encoding) 알고리즘을 설명하면 다음과 같다.The enumeration encoding algorithm is described as follows.

k를 m으로 맵핑하기 위하여 , 그리고 kToM[k]가 주어지며, 로 설정하고, x1과 동일한 을 찾고, e=i-1로 설정한다.to map k to m Wow , And And kToM [ k ], , Equal to x 1 And set e = i-1.

이뉴머레이션 복호화(enumeration decoding)는 상기와 동일한 참조표를 사용하여 구현될 수 있다. 이뉴머레이션 복호화 알고리즘을 설명하면 다음과 같다.Enumeration decoding may be implemented using the same reference table as above. The enumeration decoding algorithm is described as follows.

m값이 복호화되었다고 가정하고, 복호화를 하기 위하여 이뉴머레이션 복호화 코드워드 비트의 숫자를 numBits=encTable[m][0]로 놓는다.Assuming that the m value is decoded, the number of enumeration decoded codeword bits is set to numBits = encTable [m] [0] to decode.

이후, e=0으로 설정하고, numBits>0 인 경우, 비-부호 정수로서 numEBits를 읽어들이고, e=ReadEBits(numBits)로 설정한다. e가 짝수이면, (x1, x2)=(encTable[m][e+1], encTable[m][e+2])이고, e가 홀수이면, (x1, x2)=(encTable[m][e+1], encTable[m][e])가 된다.Then, e = 0 is set, and when numBits> 0, numEBits is read as an unsigned integer, and e = ReadEBits (numBits) is set. If e is even, then (x 1 , x 2 ) = (encTable [m] [e + 1], encTable [m] [e + 2]), and if e is odd, (x 1 , x 2 ) = ( encTable [m] [e + 1], encTable [m] [e]).

도 11은 본 발명의 일례에 따른 비트 레이트 제어(BRC: Bit Rate Control)를 위한 방법을 설명하기 위한 도면이다.FIG. 11 is a diagram for describing a method for bit rate control (BRC) according to an example of the present invention.

도 11을 참조하여 본 발명의 일례에 따른 비트 레이트 제어 방법을 설명하면 다음과 같다.A bit rate control method according to an example of the present invention will be described with reference to FIG. 11 as follows.

계수의 한 개의 프레임이 정수 값으로 라운드화(rounded)되고(S1100), 각 정수의 현재 비트 레이트를 추정하기 위하여 테이블을 참조하여, BRINIT 현재 프레임의 토탈 소비를 계산한다(S1120).One frame of coefficients is rounded to an integer value (S1100), and the total consumption of the current frame BR INIT is calculated with reference to the table to estimate the current bit rate of each integer (S1120).

이후, BRINIT 및 타겟 비트 레이트 BRTAG에 기초하여, 최도 이득 배율 계산 모듈에 의하여 최초 이득을 GAININIT = 2λ△BR로 계산한다(S1130).Since, BR INIT And GAIN INIT the initial gain by the maximum gain magnification calculation module based on the target bit rate BR TAG . = 2 is calculated as λ △ BR (S1130).

입력 계수를 스케일(scale)하기 위하여 GAININIT 을 사용하고, 상기 스케일된 계수를 양자화 및 무손실 부호화 모듈에 적용한다(S1140).GAIN INIT is used to scale input coefficients, and the scaled coefficients are applied to a quantization and lossless coding module (S1140).

△R/BRTAG가 역치 보다(S1160) 크고 현재 상호작용 시간이 N보다 작은 경우, 하나 이상의 루프가 수행되며(S1170), 새로운 이득 배율은 모듈내에서 GAINNEW = GAINOLD×2-λ△BR에 의해서 계산된다(S1180).If ΔR / BR TAG is greater than the threshold (S1160) and the current interaction time is less than N, one or more loops are performed (S1170) and the new gain multiplier is obtained in the module GAIN NEW = GAIN OLD × 2 -λΔBR It is calculated by (S1180).

그렇지 않은 경우에는, 상기 상호작용은 종료되고, 상기 현재 루프의 비트레이트는 최종 부호화 비트레이트가 된다.Otherwise, the interaction ends and the bitrate of the current loop becomes the final coded bitrate.

도 12는 본 발명의 일례에 따른 오디오 신호 부호화 방법을 설명하기 위한 흐름도이다.12 is a flowchart illustrating an audio signal encoding method according to an example of the present invention.

도 12를 참조하여 본 발명의 일례에 따른 오디오 신호 부호화 방법을 설명한다.An audio signal encoding method according to an example of the present invention will be described with reference to FIG. 12.

신호를 프레임화(framing)하고, 프레임화된 신호(framed signal)를 전처리(pre-processed)한다(S1210).The signal is framed and the framed signal is pre-processed (S1210).

또한, 상기 전처리된 신호를 수신하고, 이득 계수(gain factor)에 의하여 상기 전처리된 신호의 변화하는 범위(dynamic range)의 스캐일링(scaling)을 조정한다(S1220). 상기 이득 계수는 입력 신호의 통계치에 기초하여 산출 될 수 있으며, 최종 출력 비트 스트림 비트 레이트(bit stream bit rate)와 타겟 비트 레이트(target bit rate)를 비교하기 위하여 조절된다.In addition, the preprocessed signal is received and a scaling factor of the dynamic range of the preprocessed signal is adjusted by a gain factor (S1220). The gain factor may be calculated based on the statistics of the input signal and is adjusted to compare the final output bit stream bit rate and the target bit rate.

이때, 상기 이득 계수는 BRC(Bit Rate Control Unit)에 의하여 조정할 수 있다. 이때, 블록 형성(Blocking) 및 중요도 결정(Significant decision)이 가능하며, 현재 스캐일링된 입력 신호 프레임을 각각 n-튜플(n-tuple)의 샘플의 길이로 나눌 수 있다. 특정 블록의 모든 n 샘플의 크기가 기 설정된 역치 보다 작으면 상기 블록은 중요하지 않은 블록으로 간주되며, 그렇지 않은 경우에는 중요한 블록으로 간주된다. 상기 각 블록의 중요도에 대한 라벨(label)은 각 블록의 마지막 비트 스트림의 비트(bit)에 포함되어 있다. 스케일링(scaled)된 계수(coefficients)를 위한 블록 형성(Blocking) 및 중요도 체크를 통하여, 부호화 중요도 라벨(coding significant label)을 위한 샘플 총량(overhead) 당 1/n의 비트의 부호화 비트 레이트(rate)를 효과적으로 줄일 수 있다.In this case, the gain factor may be adjusted by a bit rate control unit (BRC). In this case, block forming and critical decision may be performed, and the currently scaled input signal frame may be divided into n-tuple sample lengths, respectively. If the size of all n samples of a particular block is smaller than the preset threshold, then the block is considered to be insignificant, otherwise it is considered to be a significant block. A label for the importance of each block is included in the bit of the last bit stream of each block. A coding bitrate of 1 / n bits per sample overhead for coding significant labels, through block forming and importance checks for scaled coefficients Can be effectively reduced.

이후, 복수개의 정수 인덱스(integer indices)로 구성된 셋(set)의 생성을 위해, 양자화기를 이용하여 상기 프레임을 양자화한다(S1230)Thereafter, in order to generate a set composed of a plurality of integer indices, the frame is quantized using a quantizer (S1230).

중요도가 낮은 블록은 차단되고, 중요도가 높은 블록은 모두 양자화(quantization)를 위하여 새로운 시퀀스로 연결된다. 상기와 같이 중요도가 낮은 블록을 차단하기 위하여, 양자화부(Quantization Unit)는 부호화된 포맷(signed format) 또는 비-부호화된 포맷(non-signed format)에서의 정수 인덱스들의 시리즈(series)를 이용하여 중요 샘플 시퀀스를 양자화 한다.Low priority blocks are blocked, and all high priority blocks are connected in a new sequence for quantization. In order to block the low importance block as described above, the quantization unit uses a series of integer indices in a signed or non-signed format. Quantize important sample sequences.

이때, 상기와 같은 양자화기로는 USQ(Uniform Scalar Quantizer), 래티스 VQ(Lattice Vector Quantizer), Non-USQ(Non-Uniform Scalar Quantizer), VQ(Vector Quantizer), 및 TCQ(Trellis Coded Quantizer) 등이 사용될 수 있다.In this case, as the quantizer, a Uniform Scalar Quantizer (USQ), a Lattice Vector Quantizer (LQ), a Non-Uniform Scalar Quantizer (Non-USQ), a Vector Quantizer (VQ), a Trellis Coded Quantizer (TCQ), etc. may be used. Can be.

상기 정수 인덱스를, 반경 및 위상의 인덱스 쌍으로 매핑시킨다(S1240).The integer index is mapped to an index pair of radius and phase (S1240).

이후, 상기 반경 및 위상 정보를 포함하는 비트 스트림을 생성한다(S1250).Thereafter, a bit stream including the radius and phase information is generated (S1250).

비트 스트림 형성부는 변환(transmission) 또는 저장(storage)을 위하여 비트 스트림(bit stream)에, 이득 계수(gain factor), 중요 라벨(significant labels), 및 무손실 부호화 TCQ 인덱스(lossless coded TCQ indices)들을 비트 스트림에 포함하여 형성한다.The bit stream forming unit bits the gain factor, significant labels, and lossless coded TCQ indices in the bit stream for transmission or storage. Form into stream.

도 13은 본 발명의 일례에 따른 TCQ가 적용된 AMR-WB+ 부호화기를 도시하고 있으며, 도 14는 본 발명의 일례에 따른 TCQ가 적용된 AMR-WB+ 복호화기를 도시하고 있다. 13 illustrates an AMR-WB + encoder to which TCQ is applied according to an example of the present invention, and FIG. 14 illustrates an AMR-WB + decoder to which TCQ is applied according to an example of the present invention.

도 13에 도시된 바와 같이, 본 발명의 일례에 따른 TCQ는 AMR-WB+ 부호화기 내에 구성될 수 있다.As shown in FIG. 13, a TCQ according to an example of the present invention may be configured in an AMR-WB + encoder.

입력 신호는 두 개의 밴드(band)로 구분된다. 제1 밴드는 저-주파수 신호(LF signal)로서, Fs/2에서 샘플링되며, 제2 밴드는 고-주파수 신호(HF signal)로서, 샘플링 된 신호를 얻기 위하여 다운 샘플링 된다.The input signal is divided into two bands. The first band is a low-frequency signal (LF signal), sampled at Fs / 2, and the second band is a high-frequency signal (HF signal), down sampled to obtain a sampled signal.

저-주파수 신호는 ACELP 및 TCX(Transform coded excitation)에 기초한 부호화기/복호화기를 사용하여 부호화 및 복호화 된다. ACELP 모드에서는, 표준 AMR-WB 코덱이 사용된다. 또한, 고-주파수 신호는 BWE(Bandwidth extension) 방법에 의하여 비교적 적은 비트로 부호화된다.The low-frequency signal is encoded and decoded using an encoder / decoder based on ACELP and transform coded excitation (TCX). In the ACELP mode, the standard AMR-WB codec is used. In addition, the high-frequency signal is encoded with relatively few bits by a bandwidth extension (BWE) method.

부호화기로부터 복호화기로 전송되는 파라미터는 모드 선택 비트로서, 저-주파수 파라미터 및 고-주파수 파라미터이다.The parameters sent from the encoder to the decoder are mode select bits, which are low-frequency parameters and high-frequency parameters.

또한, 도 14에 도시된 바와 같이 AMR-WB+ 복호화기에서는, 저-주파수 및 고-주파수 밴드가 각각 별도로 복호화되고, 합성 필터뱅크(synthesis filterbank)에서 결합된다.In addition, in the AMR-WB + decoder as shown in FIG. 14, the low- and high-frequency bands are each decoded separately and combined in a synthesis filterbank.

도 15는 본 발명의 일례에 따른 TCQ가 적용된 TCX 부호화기의 부호화 방법을 설명하기 위한 도면이다.15 is a diagram for describing a coding method of a TCX encoder to which TCQ is applied according to an example of the present invention.

0-Fs/4 kHz 밴드인 코어 모노 신호(core mono signal)를 부호화하기 위하여, AMR-WB+ 코덱은 각 프레임에서 ACELP 또는 TCX 코딩을 사용한다. 부호화 모드는 합성에 의한 폐-루프 분석에 기초하여 선택된다. To encode a core mono signal that is in the 0-Fs / 4 kHz band, the AMR-WB + codec uses ACELP or TCX coding in each frame. The coding mode is selected based on closed-loop analysis by synthesis.

256-샘플 프레임인 경우에는 ACELP가 사용되며, 256, 512, 또는 1024 프레임 샘플인 경우에는 TCX가 사용된다.ACELP is used for 256-sample frames and TCX for 256, 512, or 1024 frame samples.

ACELP 부호화 및 복호화는 표준 AMR-WB 음성 코덱과 유사하며, ACELP 코딩은 LTP 분석, 합성, 및 코드북으로 이루어진다. ACELP 코딩 모드는 AMR-WB+ 코덱에 포함된 AMR-WB에 의하여 이루어진다.ACELP coding and decoding is similar to the standard AMR-WB speech codec, and ACELP coding consists of LTP analysis, synthesis, and codebook. The ACELP coding mode is performed by the AMR-WB included in the AMR-WB + codec.

특히, TCX 모드에서는 변환 도메인 상에서 인지된 신호를 처리하게 된다. 푸리에 변환된 신호(Fourier transformed signal)는 TCQ(Trellis Coded Quantizer)에 의하여 양자화 된다. 상기 변환은 1024, 512, 또는 256 샘플 내에서 이루어진다. 이후, 상기 신호는 양자화된 신호를 역 필터를 통한 역 필터링(inverse filtering)에 의하여 복원된다.In particular, the TCX mode processes signals recognized on the transform domain. Fourier transformed signal (Fourier transformed signal) is quantized by TCQ (Trellis Coded Quantizer). The conversion is within 1024, 512, or 256 samples. The signal is then recovered by inverse filtering of the quantized signal through an inverse filter.

본 발명의 일례에 따른 TCQ(Trellis Coded Quantizer)는 AMR-WB+ 내에 구비될 수 있으며, 특히 상기 TCX 부호화기에 적용되도록 구성이 가능하다. The Trellis Coded Quantizer (TCQ) according to an example of the present invention may be included in the AMR-WB +, and may be configured to be applied to the TCX encoder.

AMR-WB+ 코덱의 부호화 알고리즘은 ACELP/TCX 모델에 기초한다. 입력 신호의 모든 입력을 위해, 부호화기는 ACELP 또는 TCX 모델 중에서 어느 인코딩 모델이 가장 적합한지를 결정하게 되며, TCX 모델은 일반적인 음악에 보다 적합한 모델이다.The encoding algorithm of the AMR-WB + codec is based on the ACELP / TCX model. For all inputs of the input signal, the encoder determines which encoding model is best suited, either the ACELP or TCX model, which is more suitable for general music.

가중 신호(weighted)를 얻기 위하여, 먼저 AMR-WB에서와 동일한 인지 필터(perceptual filter)인 시간 가변 가중 필터(time-varying weighting filter)를 통하여 입력 음성 신호가 필터링 된다(S1510).In order to obtain a weighted signal, an input speech signal is first filtered through a time-varying weighting filter, which is the same perceptual filter as in AMR-WB (S1510).

이후, 상기 가중 신호는 윈도윙이 적용(adaptive windowing)되고(S1520), 상기 윈도윙 된 신호에 푸리에 변환(Fourier Transform)이 적용된다(S1530). 상기 신호는 푸리에 변환 영역에서 부호화 노이즈를 최소화하기 위하여 프리-쉐이핑(pre-shaped)되고(S1540), TCQ를 사용하여 양자화 된다(S1550).Thereafter, windowing is applied to the weighted signal (adaptive windowing) (S1520), and a Fourier transform is applied to the windowed signal (S1530). The signal is pre-shaped to minimize coding noise in a Fourier transform region (S1540) and quantized using TCQ (S1550).

양자화 후에는, 양자화된 시간 도메인 신호를 제공하기 위하여 역변환 되는 스펙트럼으로 역 프리-쉐이핑(pre-shaped)함수가 적용된다(S1560). 해당 프레임의 이득은 원래의 가중 신호와의 코릴레이션(correlation)을 최적화 하기 위하여 다시 스캐일링(rescaling)된다(S1570).After quantization, an inverse pre-shaping function is applied to the inversely transformed spectrum to provide a quantized time domain signal (S1560). The gain of the frame is rescaled in order to optimize correlation with the original weighted signal (S1570).

이득 스캐일링 후에는, 푸리에 변환 영역에서의 양자화에 따른 블록 효과를 최고화하기 위하여, 양자화된 신호에 윈도윙(windowing)이 다시 적용된다.After gain scaling, windowing is again applied to the quantized signal in order to maximize the block effect of quantization in the Fourier transform region.

TCX 모드인 경우에는, 이전 프레임에는 겹치기 및 더하기(overlap-and-add)가 사용되며, 적절한 필터 메모리 업데이트에 의한 역 필터링을 통하여 최종 신호가 생성된다.In TCX mode, overlap-and-add is used for the previous frame, and the final signal is generated through inverse filtering with an appropriate filter memory update.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.

그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the claims below but also by the equivalents of the claims.

Claims (10)

신호를 프레임화(framing)하는 단계;Framing the signal; 복수개의 정수 인덱스(integer indices)로 구성된 셋(set)의 생성을 위해, 양자화기를 이용하여 상기 프레임을 양자화하는 단계;Quantizing the frame using a quantizer to generate a set consisting of a plurality of integer indices; 상기 정수 인덱스를, 반경 및 위상의 인덱스 쌍으로 매핑시키는 단계; 및Mapping the integer index to an index pair of radius and phase; And 상기 반경(radius) 정보 및 위상(phase) 정보를 포함하는 비트 스트림을 생성하는 단계Generating a bit stream including the radius information and phase information 를 포함하는 것을 특징으로 하는 오디오 신호의 부호화 방법.An audio signal encoding method comprising a. 제1항에 있어서,The method of claim 1, 상기 신호는,The signal is, 입력 파형 샘플의 특정 구간, 또는A specific interval of the input waveform sample, or 오디오 파형의 특정 구간의 선형 예측 코딩(Linear Prediction Coding: LPC)에 의해 생성되는, 역 필터링된 잔여 신호 구간인 것을 특징으로 하는 오디오 신호의 부호화 방법.A method of encoding an audio signal, characterized in that it is an inverse filtered residual signal interval generated by linear prediction coding (LPC) of a specific interval of an audio waveform. 제1항에 있어서,The method of claim 1, 상기 양자화기는,The quantizer is, USQ(Uniform Scalar Quantizer), 래티스 VQ(Lattice Vector Quantizer), Non-USQ(Non-Uniform Scalar Quantizer), VQ(Vector Quantizer), 및 TCQ(Trellis Coded Quantizer) 중에서 어느 하나이며, Any one of the following: Uniform Scalar Quantizer (USQ), Lattice Vector Quantizer (Lattice VQ), Non-Uniform Scalar Quantizer (Non-USQ), Vector Quantizer (VQ), and Trellis Coded Quantizer (TCQ) 상기 양자화에 의하여, 부호가 표시된 정수(signed integer) 또는 비-음수형 정수(non-negative integer)가 출력되는 것을 특징으로 하는 오디오 신호의 부호화 방법.And a signed or non-negative integer is output by the quantization. 제3항에 있어서,The method of claim 3, 상기 양자화기가 TCQ(Trellis Coded Quantizer)인 경우,If the quantizer is a Trellis Coded Quantizer (TCQ), 상기 TCQ로부터의 정수 출력은,The integer output from the TCQ is 상기 TCQ의 레벨 및 경로 비트이거나,The level and path bits of the TCQ, or 상기 TCQ의 레벨 및 경로 비트로부터 매핑되는, 상기 TCQ 상태에 따른 부호형 인덱스(signed indices) 이거나, 또는Signed indices according to the TCQ state, mapped from the level and path bits of the TCQ, or 상기 TCQ의 레벨 및 경로 비트로부터 매핑되는, 상기 TCQ 상태에 따른 비-음수형 인덱스(non-negative indices)인 것을 특징으로 하는 오디오 신호의 부호화 방법.And non-negative indices according to the TCQ state, mapped from the level and path bits of the TCQ. 제1항에 있어서,The method of claim 1, 상기 반경 정보 값은, The radius information value is, 상기 인덱스 쌍의 스퀘어드 서메이션(squared summation)에 의해 생성되고,Generated by a squared summation of the index pairs, 모든 반경 셋에 상기 반경 값을 제공하는 이뉴머레이션 코드인, 제2 인덱스에 맵핑되는 것을 특징으로 하는 오디오 신호의 부호화 방법.And mapping to a second index, which is an enumeration code that provides the radius value for every radius set. 제1항에 있어서,The method of claim 1, 상기 위상 정보 값은, The phase information value is 상기 반경 값의 코셋 테이블에서의 이뉴머레이션 값에 의하여 표시되고, 상기 코셋 테이블은 동일한 상기 반경 값을 가지는 인덱스들의 쌍을 포함하는 것을 특징으로 하는 오디오 신호의 부호화 방법.And the coset table includes pairs of indices having the same radius value. 제1항에 있어서,The method of claim 1, BRC(Bit Rate Control)에 의해 상기 이득 계수를 조정하여, 상기 양자화의 인터벌을 조정(tunning)하는 단계Adjusting the gain factor by bit rate control (BRC) to tune the interval of the quantization 를 더 포함하는 것을 특징으로 하는 오디오 신호의 부호화 방법.The encoding method of the audio signal further comprising. 비트 스트림을, 반경 정보 값 및 위상 정보 값으로 디-멀티플렉스(De-multiplex)하는 단계;De-multiplexing the bit stream into radius information values and phase information values; 상기 반경 정보 값 및 위상 정보 값에 의해 인덱스 쌍을 재구성하는 단계; 및Reconstructing an index pair by the radius information value and the phase information value; And 역-양자화기(de-quantizer)가 상기 인덱스 쌍을 이용하여 복수개의 정수 인덱스(integer indices)로 구성된 셋(set)을 복호화하는 단계A de-quantizer decodes a set of a plurality of integer indices using the index pairs 를 포함하는 것을 특징으로 하는 오디오 신호의 복호화 방법.Audio signal decoding method comprising a. 제8항에 있어서,The method of claim 8, 상기 인덱스 쌍의 반경 정보 값은,The radius information value of the index pair is 무손실 복호화(lossless decoding) 과정에 의하여 상기 비트 스트림으로부터 복호화되며,Decoded from the bit stream by a lossless decoding process, 상기 위상 정보 값은,The phase information value is 상기 인덱스 쌍의 이뉴머레이션 인덱스이고, 상기 반경 정보 값 및 상기 위상 정보 값의 이뉴머레이션 인덱스에 의해, 상기 인덱스 쌍이 반경 코셋 표 상에 리더로 재구성되는 것을 특징으로 하는 오디오 신호의 복호화 방법.And an enumeration index of the index pair, wherein the index pair is reconstructed as a leader on a radius coset table by the enumeration index of the radius information value and the phase information value. 입력 음성 신호를 시간 가변 가중 필터(time-varying weighting filter)를 통해 필터링 하여 가중 신호(weighted signla)를 얻는 단계;Filtering the input speech signal through a time-varying weighting filter to obtain a weighted signla; 상기 가중 신호에 윈도윙이 적용(adaptive windowing)되는 단계;Applying windowing to the weighted signal; 상기 윈도윙 된 신호에 푸리에 변환(Fourier Transform)이 적용되는 단계;Applying a Fourier transform to the windowed signal; 상기 윈도윙 된 신호를 프리-쉐이핑(pre-shaped)하여, 푸리에 변환 영역에서의 부호화 노이즈가 최소화되는 단계;Pre-shaping the windowed signal to minimize coding noise in a Fourier transform region; 상기 노이즈가 최소화된 신호가 TCQ(Trellis Coded Quantizer)를 통하여 양자화 되는 단계; 및Quantizing the noise-minimized signal through a Trellis Coded Quantizer (TCQ); And 양자화된 시간 도메인 신호를 제공하기 위하여, 상기 양자화된 신호가 역 프리-쉐이핑(pre-shaped)함수에 의해 역 푸리에 변환되는 단계Inverse Fourier transforming the quantized signal by an inverse pre-shaping function to provide a quantized time domain signal 를 포함하는 것을 특징으로 하는 TCX 부호화기의 부호화 방법.The encoding method of the TCX encoder, characterized in that it comprises a.
KR1020080027042A 2008-03-24 2008-03-24 Method and apparatus for audio signal compression KR101454867B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080027042A KR101454867B1 (en) 2008-03-24 2008-03-24 Method and apparatus for audio signal compression

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080027042A KR101454867B1 (en) 2008-03-24 2008-03-24 Method and apparatus for audio signal compression

Publications (2)

Publication Number Publication Date
KR20090101730A true KR20090101730A (en) 2009-09-29
KR101454867B1 KR101454867B1 (en) 2014-10-28

Family

ID=41359438

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080027042A KR101454867B1 (en) 2008-03-24 2008-03-24 Method and apparatus for audio signal compression

Country Status (1)

Country Link
KR (1) KR101454867B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8731951B2 (en) 2010-12-31 2014-05-20 Korea Electronics Technology Institute Variable order short-term predictor

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4969192A (en) 1987-04-06 1990-11-06 Voicecraft, Inc. Vector adaptive predictive coder for speech and audio
US5040217A (en) 1989-10-18 1991-08-13 At&T Bell Laboratories Perceptual coding of audio signals

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8731951B2 (en) 2010-12-31 2014-05-20 Korea Electronics Technology Institute Variable order short-term predictor

Also Published As

Publication number Publication date
KR101454867B1 (en) 2014-10-28

Similar Documents

Publication Publication Date Title
KR101190875B1 (en) Dimensional vector and variable resolution quantization
US9390720B2 (en) Entropy encoding and decoding using direct level and run-length/level context-adaptive arithmetic coding/decoding modes
US7433824B2 (en) Entropy coding by adapting coding between level and run-length/level modes
WO2007083264A1 (en) Audio coding
US7106228B2 (en) Method and system for multi-rate lattice vector quantization of a signal
US8731947B2 (en) Coding method, decoding method, codec method, codec system and relevant apparatuses
US8510105B2 (en) Compression and decompression of data vectors
WO2003054860A1 (en) Method and system for information signal coding using combinatorial and huffman codes
KR101170137B1 (en) Reduced-complexity vector indexing and de-indexing
US9991905B2 (en) Encoding method, decoding method, encoder and decoder
US20100017196A1 (en) Method, system, and apparatus for compression or decompression of digital signals
US20140006036A1 (en) Method and apparatus for coding and decoding
JP3255022B2 (en) Adaptive transform coding and adaptive transform decoding
KR101454867B1 (en) Method and apparatus for audio signal compression
Goyal et al. On optimal permutation codes
US9318115B2 (en) Efficient coding of binary strings for low bit rate entropy audio coding
JP2002091497A (en) Audio signal encoding method and decoding methods, and storage medium stored with program to execute these methods
Aksu et al. Design, performance, and complexity analysis of residual trellis-coded vector quantizers
JPH08316846A (en) Image coder, image decoder, image coding method and image decoding method
Park et al. Block constrained trellis coded vector quantization of LSF parameters for wideband speech codecs
JPH06202697A (en) Gain quantizing method for excitation signal
Jafarkhani et al. Channel-matched hierarchical table-lookup vector quantization
Krishnan et al. Using dynamic codebook re-ordering to exploit inter-frame correlation in MELP coders.
Dutra et al. Successive approximation trellis-coded vector quantization for embedded coders

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
LAPS Lapse due to unpaid annual fee