Spectrum classifier for audio coding mode selection
By analyzing kurtosis and noise band measurements in the critical spectrum band, the problem of inability to distinguish music signal categories in the prior art is solved, and more accurate encoding mode selection is achieved, and encoding efficiency is improved.
Patent Information
- Application Number
- CN202411598730.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2021-06-29
- Publication Date
- 2025-01-17
AI Technical Summary
Existing speech-music classifiers cannot effectively distinguish different categories in music signals in complex multi-mode codecs, especially the inability to capture the energy distribution and sparseness of the spectrum, resulting in inaccurate encoding mode selection.
By analyzing kurtosis measurements and noise band detection measurements in the critical spectrum band, determining whether to use encoding modes with high peak and low energy concentration, avoiding encoding of noise band signals, using novel frequency domain-based metrics to distinguish overtones and from Similar to noise music signals.
Improves the accuracy of encoding mode selection for audio signals, ensures that appropriate encoding mode is used for signals with specific spectrum characteristics, and improves encoding efficiency and resolution.
Smart Images

Figure CN119323963A_ABST
Abstract
Description
[0001] This application is a divisional application of the Chinese patent application “Spectrum classifier for audio coding mode selection” with application number 202180100019.1 (filing date June 29, 2021). Technical Field
[0002] The present disclosure relates generally to communications, and more particularly, to communication methods and related devices and nodes supporting wireless communications. Background Art
[0003] Modern audio codecs include a variety of compression schemes optimized for signals with different properties. Typically, speech-like signals are processed using codecs that operate in the time domain, while music signals are processed using codecs that operate in the transform domain. Coding schemes designed to handle both speech and music signals require a mechanism to identify the input signal (speech / music classifier) and switch between the appropriate codec modes. Figure 1 An overview diagram of a multi-mode audio codec using mode decision logic based on an input signal is shown.
[0004] In a similar way, within the class of music signals, more noise-like music signals and harmonic music signals can be distinguished and classifiers and optimal coding schemes constructed for each of these groups. In particular, the identification of signals with sparse and peaky structures is of great interest, since transform domain codecs are suitable for processing these types of signals. There are several known signal measures that aim to identify peaky signal structures (e.g., peaks C), which is determined as follows C or spectral flatness f, where
[0005]
[0006] A high spectral flatness or peak may indicate that a coding mode suitable for such a spectrum may be selected. Summary of the invention
[0007] There are some challenges. A variety of speech-music classifiers are used in the field of audio coding. However, these speech-music classifiers may not be able to distinguish between different categories in the music signal space. Many speech-music classifiers do not provide enough resolution to distinguish the categories required in complex multi-mode codecs.
[0008] The problem of distinguishing harmonics from noise-like music fragments is addressed by a novel metric computed directly on the frequency domain coefficients. The metric is based on a measure of the peakyness of the spectrum and a measure indicating the local energy concentration of the noise component of the spectrum.
[0009] Various embodiments of the inventive concept that address these challenges involve analysis in the frequency domain in critical bands of the spectrum. The analysis includes at least a kurtosis measurement, and various embodiments provide additional measurements that give an indication of noise bands in the spectrum. Based on these measurements, it is determined whether to use at least one coding mode that is intended for signals with strong kurtosis while avoiding signals with noise bands.
[0010] According to some embodiments of the inventive concept, a method for determining which of two coding modes or which of two groups of coding modes to use in an encoder is provided. The method includes deriving a spectrum of an input audio signal. The method also includes obtaining the amplitude of a critical frequency range of the spectrum. The method also includes obtaining a kurtosis measurement. The method also includes obtaining a noise band detection measurement. The method also includes determining which of the two coding modes or which of the two groups of coding modes to use based at least on the kurtosis measurement and the noise band detection measurement. The method also includes encoding the input audio signal based on the coding mode determined to be used.
[0011] Similar encoders, computer programs and computer program products are provided.
[0012] According to other embodiments of the present invention, there is provided a method for determining in an encoder whether an input audio signal has high kurtosis and low energy concentration. The method includes deriving a spectrum of the input audio signal. The method also includes obtaining the magnitude of a critical frequency range of the spectrum. The method also includes obtaining a kurtosis measurement. The method also includes obtaining a noise band detection measurement. The method also includes determining an overtone condition based at least on the kurtosis measurement and the noise band detection measurement. The method includes outputting an indication of whether the overtone condition is true or false.
[0013] Similar encoders, computer programs and computer program products are provided. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] The accompanying drawings, which are included to provide a further understanding of the present disclosure and are incorporated in and constitute a part of this application, illustrate certain non-limiting embodiments of the inventive concept. In the drawings:
[0015] Figure 1 is a block diagram illustrating a multi-mode audio codec using a mode decision log based on an audio input signal;
[0016] Figure 2 is a graphical representation of acceptable and unacceptable frequency spectra according to some embodiments of the present inventive concept;
[0017] Figure 3is a diagram illustrating classification of desired signals and undesired signals according to some embodiments of the inventive concept;
[0018] Figure 4 is a flowchart illustrating the operation of an encoder according to some embodiments of the inventive concept;
[0019] Figure 5 is a block diagram illustrating a multi-mode audio codec using a mode decision log based on an audio input signal according to some embodiments of the inventive concept;
[0020] Fig. 6A and Figure 6B is a diagram of a decision tree according to some embodiments of the present inventive concept;
[0021] Figure 7 is a block diagram illustrating an example of an operating environment according to some embodiments of the present inventive concept;
[0022] Figure 8 is a block diagram illustrating a virtualization environment according to some embodiments of the inventive concept;
[0023] Fig. 9 is a block diagram illustrating an encoder according to some embodiments of the inventive concept;
[0024] Figure 10-12 is a flowchart illustrating the operation of an encoder according to some embodiments of the inventive concept. DETAILED DESCRIPTION
[0025] Some embodiments contemplated herein will now be described more fully with reference to the accompanying drawings. Embodiments are provided by way of example to convey the scope of the subject matter to those skilled in the art, wherein examples of embodiments of the inventive concept are shown. However, the inventive concept may be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. On the contrary, these embodiments are provided so that this disclosure will be thorough and complete, and the scope of the inventive concept will be fully conveyed to those skilled in the art. It should also be noted that these embodiments are not mutually exclusive. Components from one embodiment may be assumed to exist / use in another embodiment by default.
[0026] Before describing the embodiments in further detail, Figure 7An example of an operating environment for an encoder 500 that can be used to encode a bitstream as described herein is shown. The encoder 500 receives audio from a network 702 and / or from a storage device 704 and / or from an audio recorder 706, and encodes the audio into a bitstream as described below, and sends the encoded audio to a decoder 708 via a network 710. In some embodiments where the encoder 500 is a distributed encoder, a sending entity 5001 can send the encoded audio to the decoder 708 via the network 710, as shown by the dotted line. The storage device 704 can be part of a repository of multi-channel audio signals, such as a repository of a store or streaming audio service, a separate storage component, a component of a mobile device, etc. The decoder 708 can be part of a device 712 having a media player 714. The device 712 can be a mobile device, a set-top device, a desktop computer, etc.
[0027] Figure 8 800 is a block diagram showing a virtualized environment 800 in which the functions implemented by some embodiments can be virtualized. In this context, virtualization means creating a virtual version of an apparatus or device such as an encoder 500, which may include a virtualized hardware platform, a storage device, and networking resources. As used herein, virtualization can be applied to any device or component thereof described herein, and relates to an implementation in which at least a portion of a function is implemented as one or more virtual components. Some or all of the functions described herein may be implemented as virtual components performed by one or more virtual machines (VMs) implemented in one or more virtual environments 800 hosted by one or more hardware nodes (e.g., hardware computing devices operated as network nodes, UEs, core network nodes, or hosts). In addition, in an embodiment in which a virtual node does not require radio connectivity (e.g., a core network node or host), the node may be fully virtualized.
[0028] Application 802 (which may alternatively be referred to as a software instance, a virtual appliance, a network function, a virtual node, a virtual network function, etc.) runs in a virtualized environment 800 to implement some features, functions and / or advantages of some of the embodiments disclosed herein.
[0029] Hardware 804 includes processing circuitry, memory storing software and / or instructions executable by the hardware processing circuitry, and / or other hardware devices described herein, such as network interfaces, input / output interfaces, etc. The software may be executed by the processing circuitry to instantiate one or more virtualization layers 806 (also referred to as hypervisors or virtual machine monitors (VMMs)), provide VMs 808A and 808B (one or more of which may be collectively referred to as VMs 808), and / or perform any of the functions, features, and / or benefits described in connection with some embodiments described herein. Virtualization layer 806 may present a virtual operating platform that appears to be networked hardware to VMs 808.
[0030] The VM 808 includes virtual processing, virtual memory, virtual networks or interfaces, and virtual storage devices, and can be run by a corresponding virtualization layer 806. Different embodiments of instances of virtual devices 802 can be implemented on one or more of the VMs 808 and can be implemented in different ways. Hardware virtualization is referred to as network function virtualization (NFV) in some contexts. NFV can be used to consolidate many network device types onto industry standard high-volume server hardware, physical switches, and physical storage devices that can be located in data centers and client devices.
[0031] In the context of NFV, VMs 808 can be software implementations of physical machines that run programs as if they were executing on physical, non-virtualized machines. Each VM 808 and the portion of the hardware 804 on which it executes (whether dedicated to the VM and / or hardware shared by the VM with other VMs) form a separate virtual network unit. Still in the context of NFV, a virtual network function is responsible for handling a specific network function running in one or more VMs 808 on top of the hardware 804 and corresponds to an application 802.
[0032] The hardware 804 may be implemented in a standalone network node with general or specialized components. The hardware 804 may implement some functions via virtualization. Alternatively, the hardware 804 may be part of a larger hardware cluster (e.g., in a data center or CPE) where many hardware nodes work together and are managed via management and orchestration 810, which in particular oversees the lifecycle management of the application 802. In some embodiments, the hardware 804 is coupled to one or more radio units, each of which includes one or more transmitters and one or more receivers that may be coupled to one or more antennas. The radio unit may communicate directly with other hardware nodes via one or more appropriate network interfaces, and may be used in conjunction with virtual components to provide radio capabilities (e.g., radio access nodes or base stations) to virtual nodes. In some embodiments, a control system 812 may be utilized to provide some signaling, which may be used alternatively for communication between hardware nodes and radio units.
[0033] Fig. 9is a block diagram illustrating units of an encoder 500 configured to encode audio frames according to some embodiments of the present inventive concept. As shown, the encoder 500 may include a network interface circuit 905 (also referred to as a network interface) configured to provide communication with other devices / entities / functions / etc. The encoder 500 may also include a processor circuit 901 (also referred to as a processor) coupled to the network interface circuit 905 and a memory circuit 903 (also referred to as a memory) coupled to the processor circuit. The memory circuit 903 may include a computer-readable program code that, when executed by the processor circuit 901, causes the processor circuit to perform operations according to the embodiments disclosed herein.
[0034] According to other embodiments, the processor circuit 901 can be defined to include a memory so that a separate memory circuit is not required. As discussed herein, the operations of the encoder 500 can be performed by the processor 901 and / or the network interface 905. For example, the processor 901 can control the network interface 905 to send communications to the decoder 708 and / or receive communications from one or more other network nodes / entities / servers such as other encoder nodes, library servers, etc. through the network interface 905. In addition, modules can be stored in the memory 903, and these modules can provide instructions so that when the instructions of the modules are executed by the processor 901, the processor 901 performs the corresponding operations.
[0035] As mentioned previously, a variety of speech-music classifiers are used in the field of audio coding. However, these classifiers may not be able to distinguish between different classes in the music signal space. Many classifiers do not provide enough resolution to distinguish between the classes required in complex multi-mode codecs. In particular, spectral flatness and peak value do not capture the energy distribution or sparsity of the entire spectrum. Figure 2 In FIG. 5 , two example spectra A and B are shown. Spectrum A is a sparse spectrum, which is suitable for a particular coding mode, while spectrum B is not suitable for the coding mode. However, spectral flatness and peak measurements cannot distinguish between these spectra because they both produce the same value. Figure 3 Further shown are the frequency spectra of a signal that is desired to be encoded by a specific encoding mode and a signal that is not desired to be encoded by a specific encoding mode.
[0036] Figure 4 An abstraction of creating a classifier to determine the class of a signal is shown, which class then controls the mode decision. These embodiments relate to finding better classifiers to distinguish between overtones and noise-like music signals.
[0037] In some embodiments, the inventive concept is part of an audio encoding and decoding system. The audio encoder is a multi-mode audio encoder, and the method improves the selection of an appropriate coding mode for a signal. To clarify that this is the coding mode selected in the encoder, it will be referred to as the coding mode hereinafter, although those skilled in the art understand that these terms can be used interchangeably. The input signal x(m,n), n=0,1,2,…L-1 is divided into audio frames of length L, where m represents the frame index and n represents the sample index within the frame. The input signal is transformed into a frequency domain representation, such as a modified discrete cosine transform (MDCT) or a discrete Fourier transform (DFT). Other frequency domain representations are also possible, such as filter banks, but they should provide a fairly high frequency resolution for the target analysis range. In this embodiment, at least one audio coding mode operates in the MDCT domain. Therefore, it is beneficial to reuse the same transform for frequency domain analysis. MDCT is defined by the following relationship:
[0038]
[0039] Where X(m,k) represents the MDCT spectrum of frame m at frequency index k, and w a (n) is the analysis window. The frequency index k can also be called a frequency bin. Typically, audio frames are extracted with temporal overlap. The analysis window is chosen to achieve a good trade-off between, for example, algorithmic delay, frequency resolution, and shaping of quantization noise. If the frequency domain representation is based on DFT, the spectrum will be defined according to the following formula:
[0040]
[0041] Note that in this case the frame length L may be different in order to provide a suitable frame length for the DFT analysis.
[0042] Signal classification aims to select the coding mode that best represents the input audio file. In particular, the classification aims to identify signals with high peaks and low energy concentrations. The analysis can focus on critical frequency regions where the choice of coding method has a strong influence. Here, we focus on the region with the frequency index k=k start …k end The critical range is the upper half of the spectrum encoded using the bandwidth extension technique. This corresponds to k start =320 and k end=639, where the operating sampling rate is 32kHz and the frame length is L=640. The bandwidth extension of different coding modes differs in spectral signature, which is crucial for mode selection. In more detail, the goal is to identify signals that have a peak structure in the high frequency range but do not have a noise component characterized by a broadband high energy coefficient in the spectrum. Figure 3 This is a diagram of the desired signal and the unexpected signal. This is achieved by analyzing the feature crest(m) and the novel feature rest mod (m) to achieve this.
[0043] Figure 4 The operations performed by the encoder in some embodiments of the present inventive concept are shown. Figure 4 In step 410, the encoder 500 obtains the amplitude or absolute spectrum A of the critical region i (m). The encoder 500 can obtain the amplitude or absolute spectrum A of the critical area according to the following formula: i (m):
[0044]
[0045] Where M = k end -k start +1 is the number of bins or frequency indices in the critical band. In step 420, the encoder 500 derives the peak value of frame m according to the following formula:
[0046]
[0047] Where crest(m) gives a measure of the kurtosis of frame m. Encoder 500 can also obtain a complementary kurtosis measure t(m) according to the following formula:
[0048]
[0049] Among them, A thr is a relative threshold, a suitable value may be A thr =0.1 or in the range of [0.01, 0.4]. In step 430, the encoder 500 calculates the detection measure of the noise band according to the following formula:
[0050]
[0051] Among them, movmean(A i (m),W) is the absolute spectrum A using window size W i A suitable value for the window size may be W = 21 or any odd number in the range [7, 31].
[0052] In one embodiment of the present invention, movemean(A i (m),W) is defined according to the following formula:
[0053]
[0054] a=max(0,i-(W-1) / 2)
[0055] b=min(M-1,i+(W-1) / 2)
[0056] Here, only A i (m) to form the absolute spectrum A i (m) The average value at the edge.
[0057] Alternatively, the definition can be written in recursive form, which requires fewer computational operations:
[0058]
[0059] In another embodiment, movmean(A i The definition of (m), W) can assume that the absolute spectrum is zero outside the range i = 0 ... M-1, which simplifies the numerator in the expression according to the following formula:
[0060]
[0061] a=max(0,i-(W-1) / 2)
[0062] b=min(M-1,i+(W-1) / 2)
[0063] Note that regarding movmean(A i The definition of (m),W) assumes that the window length W is odd, extending the same number of samples in the positive and negative directions from the current frequency bin i. An even window length W can be used with appropriate adaptation of the above equations. For example, if only backward-shifted windows are used, movmean(A) with an even W i (m),W) can be written as:
[0064]
[0065] a=max(0,iW / 2)
[0066] b = min(M-1,i+W / 2-1);
[0067] Or if we want to compute the average of the windows aligned backwards and forwards, we can write:
[0068]
[0069] a=max(0,iW / 2)
[0070] b=min(M-1,i+W / 2-1)
[0071] c=max(0,iW / 2)
[0072] d=min(M-1,i+W / 2-1).
[0073] Typically, a moving average operation can be implemented using a moving average filter of the following form:
[0074]
[0075] Among them, w j are the filter coefficients.
[0076] crest mod (m) gives a measure of the local energy concentration, thus indicating the noise band in the spectrum. In order to make the decision stable, crest(m) and crest mod (m) may be low-pass filtered by encoder 500. For example,
[0077] crest LP (m)=(1-α)·crest(m)+α·crest LP (m-1)
[0078] crest mod,LP (m) = (1-β) crest mod (m)+β·crest mod,LP (m-1)
[0079] Wherein, α and β are filter coefficients. A suitable value of α may be α=0.97 or in the range of [0.5, 1). Equivalently, a suitable value of β may be β=0.97 or in the range of [0.5, 1).
[0080] The encoding mode for peaky spectra without noise components is disabled if the following conditions are met:
[0081]
[0082] Where crest thr 、crest mod,thr and t thr is the decision threshold. Suitable values for these thresholds can be crest thr =7, crest mod,thr =2.128 and t thr= 220. More generally, in the range crest thr ∈[3,12],crest mod,thr ∈[1,4] and t thr ∈[150,300] to find a suitable value. Decomposing these conditions, crest mod,LP (m)>cret mod,thr Make sure to disable encoding mode for the noise component, and crest LP (m)>crest thr and t(m)>t thr Limit the impact of this decision to signals with peaky spectra.
[0083] Alternatively, the condition on t(m) can be omitted, and the decision becomes:
[0084]
[0085] In another embodiment of the present invention, a determination may be made such that, according to the following formula, if crest LP (m) for high and crest LP,mod (m) is low, the harmonic mode is enabled:
[0086]
[0087] Among them, the threshold crest thr2 and crest mod,thr2 Can be similar to crest thr and crest mod,thr .
[0088] In step 440, the encoder 500 selects a coding mode, which at least includes determining Harmonic_decision(m). Finally, in step 450, the encoder 500 performs encoding using the selected coding mode.
[0089] Figure 5 is an overview of a multi-mode audio codec that uses mode decision logic based on the input signal. Figure 5 , an absolute value calculator 510 receives input audio and transforms the input audio into a frequency domain representation, such as a modified discrete cosine transform (MDCT). If the signal has already been transformed into the frequency domain for use in a multimode encoder, the frequency domain representation can be reused in this step. The absolute value calculator 510 then determines the absolute value (e.g., magnitude) of the MDCT. The kurtosis measure 520 uses the absolute magnitude to determine the kurtosis measure of the MDCT. Additional kurtosis measures 530 can also be derived.
[0090] The noise detection measurement 540 receives the absolute value of the MDCT and determines the noisiness of the input audio signal. The mode enable decision 550 receives the kurtosis measurement and the noise detection measurement and determines whether to enable the mode to be selected. For example, if there are two coding modes, the mode enable decision 550 determines which of the two coding modes can be used.
[0091] The mode selector 560 determines the encoding mode to be used and indicates which mode to use to the multimode encoder 580. The multimode encoder 580 encodes the input audio signal and produces encoded audio 590. The determined mode decision 570 is combined with the encoded audio 590 to be transmitted or stored for use in a multimode decoder.
[0092] Fig. 6A An example of which coding mode or set of coding modes to use is shown. In response to the harmonic condition being true (e.g., harmonic_decision(m) is true), it is determined that coding mode C is to be used. In response to the harmonic condition being false (e.g., harmonic_decision(m) is false), it is determined that coding mode D or coding mode E is to be used. Figure 6B An example is shown in which both branches have a set of coding patterns. Figure 6B In response to the harmonic condition being true (eg, harmonic_decision(m) being true), it is determined to use coding mode C or coding mode F. In response to the harmonic condition being false (eg, harmonic_decision(m) being false), it is determined to use coding mode D or coding mode E.
[0093] Reference will now be made to some embodiments according to the present invention. Fig.10 The flow chart of the encoder 500 (using Fig. 9 For example, the module can be stored in Fig. 9 The modules are stored in the memory 903, and these modules can provide instructions, so that when the instructions of the modules are executed by the corresponding communication device processing circuit 901, the processing circuit 901 performs the corresponding operations of the flowchart.
[0094] Steering Fig.10 In block 1001, the processing circuit 901 derives a frequency spectrum of the input audio signal. In some embodiments of the inventive concept, the processing circuit 901 derives the frequency spectrum by dividing the input audio signal x(m,n), n=0,1,2,...L-1 into audio frames of length L (where m represents a frame index and n represents a sample index within the frame), and transforming the input audio signal into a frequency domain representation according to the following formula:
[0095]
[0096] In block 1003, the processing circuit 901 obtains the amplitude of the critical frequency region of the spectrum. The critical frequency region is represented by the frequency index k=k start …k end Definition, where the critical frequency range is the upper half of X(m,k). In some embodiments, the critical frequency range corresponds to k start =320 and k end =639, where the working sampling rate is 32kHz and the frame length is L=640.
[0097] In some embodiments of the present inventive concept, the processing circuit 901 obtains the amplitude of the critical frequency region according to the following formula:
[0098]
[0099] Where M = k end -k start +1 is the number of bins in the critical frequency band associated with the critical frequency region.
[0100] In block 1005, the processing circuit 901 obtains a kurtosis measure. In some embodiments of the inventive concept, the processing circuit 901 obtains the kurtosis measure according to the following formula:
[0101]
[0102] where crest(m) gives a measure of the kurtosis of frame m.
[0103] In other embodiments of the inventive concept, the processing circuit 901 obtains the kurtosis measure of the frame according to the following formula:
[0104]
[0105] Among them, A thr is a relative threshold.
[0106] In some embodiments, A thr =0.1. In other embodiments, A thr In the range [0.01,0.4].
[0107] In block 1007, the processing circuit 901 obtains a noise band detection measure. In some embodiments of the inventive concept, the processing circuit 901 obtains the noise band detection measure according to the following formula:
[0108]
[0109] Among them, crest mod (m) is the noise band detection measurement, movmean(A i(m),W) is the absolute spectrum A using window size W i (m) is the moving average.
[0110] In some embodiments, the processing circuit 901 determines movmean(A) according to the following formula: i (m),W):
[0111]
[0112] a=max(0,i-(W-1) / 2)
[0113] b=min(M-1,i+(W-1) / 2)
[0114] In block 1009, the processing circuit determines which of two coding modes or sets of coding modes to use based at least on the kurtosis measure and the noise band detection measure. For example, a sparse spectrum may be suitable for a first coding mode or set of coding modes, but not for a second coding mode or set of coding modes.
[0115] In some embodiments of the inventive concept, the processing circuit 901 determines which of the two coding modes or which of the two groups of coding modes to use based on at least a kurtosis measurement, a noise band detection measurement by determining which of the two coding modes to use based on when harmonic_decision(m) is true, wherein harmonic_decision(m) is determined according to the following formula:
[0116]
[0117] Among them, crest thr 、crest mod,thr and t thr is the decision threshold, crest LP (m) is the low-pass filtered crest(m), crest mod,LP (m) is the low-pass filtered crest mod (m).
[0118] The processing circuit 901 can determine the low-pass filtered crest(m) and the low-pass filtered crest according to the following formula: mod (m):
[0119] crest LP (m)=(1-α)·crest(m)+α·crest LP (m-1)
[0120] crest mod,LP (m) = (1-β) crestmod (m)+β·crest mod,LP (m-1)
[0121] Wherein, α and β are filter coefficients. In some embodiments, α is in the range of [0.5, 1) and β is in the range of [0.5, 1). In other embodiments, Harmonic_decision(m) is determined according to the following formula:
[0122]
[0123] In other embodiments, the processing circuit 901 determines which of the two coding modes to use based on at least a kurtosis measure, a noise band detection measure, by determining which of the two coding modes to use based on when harmonic_decision(m) is true, wherein harmonic_enabled(m) is determined according to the following formula:
[0124]
[0125] Among them, crest thr2 and crest mod,thr2 is the decision threshold.
[0126] Therefore, the processing circuit 901 determines the coding mode based on at least the kurtosis measure, the noise band detection measure and the harmonic_decision(m).
[0127] Steering Fig.11 In some embodiments of the inventive concept, in block 1101, the processing circuit 901 determines to use a first encoding mode of the two encoding modes or a first encoding mode of the set of encoding modes in response to Harmonic_decision(m) being true. In block 1103, the processing circuit 901 determines to use a second encoding mode of the two encoding modes or a second encoding mode of the set of encoding modes in response to Harmonic_decision(m) being false.
[0128] Return to Fig.10 In block 1011 , the processing circuit 901 encodes the input audio signal based on the encoding mode determined to be used.
[0129] In other embodiments of the inventive concepts, the inventive concepts described herein can be used to determine whether an input audio signal has high humps and low energy concentrations. Fig.12 One embodiment of determining whether an input audio signal has high humps and low energy concentrations is shown.
[0130] Steering Fig.12In block 1201, the processing circuit 901 derives a frequency spectrum of the input audio signal. Block 1201 is similar to block 1001 described above.
[0131] In block 1203, processing circuit 901 obtains the amplitude of the critical frequency region of the spectrum. Block 1203 is similar to block 1003 described above.
[0132] In block 1205, processing circuit 901 obtains a kurtosis measure. Block 1205 is similar to block 1005 described above.
[0133] In block 1207, processing circuit 901 obtains a noise band detection measurement. Block 1207 is similar to block 1007 described above.
[0134] In block 1209 , the processing circuit 901 determines an overtone condition based on at least the kurtosis measure and the noise band detection measure.
[0135] In block 1211 , processing circuit 901 outputs an indication of whether the overtone condition is true or false.
[0136] In some embodiments, the processing circuit 901 is responsive to the low-pass filtered crest(m) being greater than the peak threshold and the low-pass filtered crest mod (m) greater than crest mod , determines whether the overtone condition is true, where crest(m) is a measure of the kurtosis of frame m, crest mod (m) is a measure of local energy concentration.
[0137] In some embodiments of the present inventive concept, the processing circuit 901 determines crest(m) and crest according to the following formula: mod (m):
[0138]
[0139] Among them, A i (m) is the magnitude of the modified discrete cosine transform (MDCT) of the audio signal at frame m, M is the number of frequency indices in the critical region, movmean(A i (m),W) is A using window size W i (m) is the moving average.
[0140] The processing circuit 901 determines A according to the following formula: i (m):
[0141]
[0142] Where X(m,k) represents the MDCT spectrum of frame m at frequency index k, M = k end -kstart +1, where k end and k start is the frequency index of the critical region of X(m,k).
[0143] The above describes the determination of movmean(A i (m), W) various embodiments.
[0144] The processing circuit 901 determines X(m,k) according to the following formula:
[0145]
[0146] Wherein, L is the frame length of frame m.
[0147] Although the computing devices (e.g., UE, network node, host) described herein may include a combination of the hardware components shown, other embodiments may include computing devices with different combinations of components. It should be understood that these computing devices may include any suitable combination of hardware and / or software required to perform the tasks, features, functions, and methods disclosed herein. The determination, calculation, acquisition, or similar operations described herein may be performed by a processing circuit, which may process information by, for example, converting the obtained information into other information, comparing the obtained information or the converted information with the information stored in the network node, and / or performing one or more operations based on the obtained information or the converted information to process the information, and making a determination as a result of the processing. In addition, although the components are depicted as being located within a larger box or nested within a plurality of boxes, in reality, the computing device may include a plurality of different physical components constituting a single illustrated component, and the functions may be divided between separate components. For example, a communication interface may be configured to include any component described herein, and / or the functions of the components may be divided between a processing circuit and a communication interface. In another example, the non-computationally intensive functions of any such component may be implemented in software or firmware, while the computationally intensive functions may be implemented in hardware.
[0148] In some embodiments, some or all of the functions described herein may be provided by a processing circuit that executes instructions stored in a memory, which in some embodiments may be a computer program product in the form of a non-transitory computer-readable storage medium. In alternative embodiments, some or all of the functions may be provided by a processing circuit without the need to, for example, execute instructions stored on a separate or discrete device-readable storage medium in a hardwired manner. In any of these specific embodiments, the processing circuit may be configured to perform the described functions regardless of whether instructions stored on a non-transitory computer-readable storage medium are executed. The benefits provided by such functionality are not limited to processing circuits or other components of a computing device, but are enjoyed by the computing device as a whole and / or generally by end users and wireless networks.
[0149] Further definitions and embodiments are discussed below.
[0150] In the above description of various embodiments of the present invention, it should be understood that the terms used herein are only for the purpose of describing specific embodiments and are not intended to limit the present invention. Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as those generally understood by those of ordinary skill in the art to which the present invention belongs. It will be further understood that terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with their meaning in the context of this specification and related fields, and will not be ideally or overly formally interpreted unless clearly defined herein.
[0151] When a unit is referred to as being "connected" to another unit, "coupled" to another unit, "responding" (or variations thereof) to another unit, it may be directly connected, coupled to another unit, or responding to another unit, or there may be an intermediate unit. On the contrary, when a unit is referred to as being "directly connected" to another unit, "directly coupled" to another unit, "directly responding" (or variations thereof) to another unit, there is no intermediate unit. The same number always refers to the same unit. In addition, "coupling", "connection", "response" or variations thereof used herein may include wireless coupling, connection or response. As used herein, the singular forms of "one", "an" and "the" are intended to also include plural forms, unless the context clearly states otherwise. For the sake of brevity and / or clarity, well-known functions or configurations may not be described in detail. The term "and / or" (abbreviated as " / ") includes any and all combinations of one or more associated listed items.
[0152] It should be understood that although the terms first, second, third, etc. may be used herein to describe various units / operations, these units / operations should not be limited by these terms. These terms are only used to distinguish one unit / operation from another unit / operation. Therefore, without departing from the teachings of the present invention, the first unit / operation in some embodiments may be referred to as the second unit / operation in other embodiments. Throughout the specification, the same reference numerals or the same figure indicators represent the same or similar units.
[0153] As used herein, the terms "comprises," "comprising," "having," or variations thereof are open ended, including one or more of the stated features, integers, units, steps, components, or functions, but do not exclude the presence or addition of one or more other features, integers, units, steps, components, functions, or combinations thereof. In addition, as used herein, the general abbreviation "eg," derived from the Latin phrase "exempli gratia," may be used to introduce or specify a general example or multiple examples of a previously mentioned item, and is not intended to limit such items. The general abbreviation "ie," derived from the Latin phrase "id est," may be used to specify a specific item from a more general narrative.
[0154] Example embodiments are described herein with reference to block diagrams and / or flowchart illustrations of computer-implemented methods, devices (systems and / or equipment), and / or computer program products. It should be understood that a block diagram and / or flowchart illustration of a frame and a combination of frames in a block diagram and / or flowchart illustration can be implemented by computer program instructions executed by one or more computer circuits. These computer program instructions can be provided to a processor circuit of a general-purpose computer circuit, a special-purpose computer circuit, and / or other programmable data processing circuit to produce a machine, so that the instructions executed by the processor of the computer and / or other programmable data processing device transform and control transistors, values stored in storage cells, and other hardware components within such circuits to implement the functions / actions specified in one or more block diagrams and / or flowchart frames, thereby creating a device (function) and / or structure for implementing the functions / actions specified in the block diagram and / or flowchart frames.
[0155] These computer program instructions may also be stored in a tangible computer-readable medium that can instruct a computer or other programmable data processing device to work in a specific manner so that the instructions stored in the computer-readable medium produce an article of manufacture including instructions for implementing the functions / actions specified in one or more block diagrams and / or flowchart blocks. Therefore, embodiments of the present inventive concept may be embodied in hardware and / or software (including firmware, resident software, microcode, etc.) running on a processor such as a digital signal processor, which may be collectively referred to as a "circuit," "module," or variations thereof.
[0156] It should also be noted that in some alternative implementations, the function / action mentioned in the frame may not occur in the order mentioned in the flow chart. For example, the two frames shown in succession can actually be performed substantially simultaneously, or these frames can sometimes be performed in reverse order, depending on the function / action involved. In addition, the function of a given frame of a flow chart and / or block diagram can be divided into multiple frames and / or the function of two or more frames of a flow chart and / or block diagram can be integrated at least in part. Finally, other frames can be added / inserted between the illustrated frames, and / or frames / operations can be omitted without departing from the scope of the inventive concept. In addition, although some figures include arrows on the communication path to illustrate the main direction of communication, it should be understood that communication can occur in the direction opposite to the arrows shown.
[0157] Many changes and modifications can be made to the embodiments without departing from the principles of the present invention. All these changes and modifications are intended to be included in the scope of the present invention. Therefore, the subject matter disclosed above should be considered to be illustrative rather than restrictive, and the examples of the embodiments are intended to cover all such modifications, enhancements and other embodiments that fall within the spirit and scope of the present invention. Therefore, to the maximum extent permitted by law, the scope of the present invention will be determined by the broadest permissible interpretation of the present disclosure including the examples of the embodiments and their equivalents, and should not be constrained or limited by the foregoing detailed description.
[0158] Example
[0159] 1. A method in an encoder for determining which of two coding modes or which of two groups of coding modes to use, the method comprising:
[0160] deriving (901) a frequency spectrum of an input audio signal;
[0161] Obtaining (903) the amplitude of the critical frequency region of the spectrum;
[0162] Obtaining (905) a kurtosis measure of the frame;
[0163] Obtaining (907) a noise band detection measurement;
[0164] determining (909) which of two coding modes or which of two sets of coding modes to use based at least on the kurtosis measure and the noise band detection measure; and
[0165] Based on the encoding mode determined to be used, the input audio signal is encoded (911).
[0166] 2. The method of embodiment 1, wherein encoding the input audio signal based on the encoding mode determined to be used comprises:
[0167] In response to determining that a set of encoding modes is to be used, one of the set of encoding modes is selected for use in encoding the input audio signal.
[0168] 3. The method according to any one of embodiments 1-2, wherein deriving the spectrum comprises: deriving the spectrum X(m,k), wherein X(m,k) represents the spectrum of frame m at frequency index k.
[0169] 4. The method of any one of embodiments 1-3, wherein deriving the spectrum comprises:
[0170] Split the input audio signal x(m,n), n=0,1,2,…L-1 into audio frames of length L, where m represents the frame index and n represents the sample index within the frame;
[0171] The input audio signal is transformed into frequency domain representation according to the following formula:
[0172]
[0173] Where X(m,k) represents the modified discrete cosine transform MDCT spectrum of frame m at frequency index k, and w a (n) is the analysis window;
[0174] Get the frequency index k=k start …k end Define the amplitude spectrum of X(m,k), where the critical frequency range is the upper half of X(m,k).
[0175] 5. The method of any one of embodiments 3-4, wherein the critical frequency range corresponds to k start =320 and k end =639, where the input sampling rate is 32kHz and the frame length is L=640.
[0176] 6. The method according to any one of embodiments 3-5, wherein obtaining the amplitude of the critical frequency region comprises: obtaining the amplitude of the critical frequency region according to the following formula:
[0177]
[0178] Where M = k end -k start +1 is the number of frequency indices in the critical frequency band associated with the critical frequency region.
[0179] 7. The method of embodiment 6, wherein obtaining the kurtosis measure comprises obtaining the kurtosis measure according to the following formula:
[0180]
[0181] where crest(m) gives a measure of the kurtosis of frame m.
[0182] 8. The method of embodiment 6, wherein obtaining the kurtosis measure comprises obtaining the kurtosis measure according to the following formula:
[0183]
[0184] Among them, A thr is a relative threshold.
[0185] 9. The method according to embodiment 8, wherein A thr =0.1.
[0186] 10. The method according to embodiment 8, wherein A thr In the range [0.01, 0.4].
[0187] 11. The method of any one of embodiments 1-10, wherein obtaining the noise band detection measure comprises obtaining the noise band detection measure according to the following formula:
[0188]
[0189] Among them, crest mod (m) is the noise band detection measurement, movmean(A i (m),W) is the absolute spectrum A using window size W i (m) is the moving average.
[0190] 12. The method of embodiment 11, wherein movmean(A i (m),W) is determined according to the following formula:
[0191]
[0192] a=max(0,i-(W-1) / 2)
[0193] b=min(M-1,i+(W-1) / 2).
[0194] 13. The method according to any one of embodiments 7-12, further comprising: calculating crest(m) and crest according to the following formula: mod (m) Perform low-pass filtering:
[0195] crest LP (m)=(1-α)·crest(m)+α·crest LP (m-1)
[0196] crest mod,LP (m) = (1-β) crest mod (m)+β·crest mod,LP (m-1)
[0197] Where α and β are the filter coefficients.
[0198] 14. The method of embodiment 13, wherein α is in the range of [0.5, 1) and β is in the range of [0.5, 1).
[0199] 15. The method of any one of embodiments 1-14, wherein determining which of the two coding modes to use based at least on a kurtosis measurement and a noise band detection measurement comprises: determining which of the two coding modes to use when harmonic_decision(m) is true, wherein harmonic_decision(m) is determined according to the following formula:
[0200]
[0201] Among them, crest thr 、crest mod,thr and t thr is the decision threshold.
[0202] 16. The method of any one of embodiments 1-14, wherein determining which of the two coding modes to use based at least on a kurtosis measurement and a noise band detection measurement comprises: determining which of the two coding modes to use when harmonic_decision(m) is true, wherein harmonic_decision(m) is determined according to the following formula:
[0203]
[0204] Among them, crest thr and crest mod,thr is the decision threshold.
[0205] 17. The method of any one of embodiments 1-14, wherein determining the coding mode based on at least the kurtosis measurement and the noise band detection measurement comprises: determining which of two coding modes to use when harmonic_decision(m) is true, wherein harmonic_decision(m) is determined according to the following formula:
[0206]
[0207] Among them, crest thr2and crest mod,thr2 is the decision threshold.
[0208] 18. A method according to any one of embodiments 15-17, wherein determining the coding mode based on at least kurtosis measurement and noise band detection measurement includes: determining the coding mode based on at least kurtosis measurement, noise band detection measurement, and harmonic_decision(m).
[0209] 19. The method of embodiment 18, wherein determining the coding mode based on at least a kurtosis measure, a noise band detection measure, and harmonic_decision(m) comprises:
[0210] In response to harmonic_decision(m) being true, determining (1101) to use a first coding mode of two coding modes; and
[0211] In response to Harmonic_disabled(m) being false, it is determined (1103) to use a second encoding mode of the two encoding modes.
[0212] 20. A method in an encoder for determining whether an input audio signal has high humps and low energy concentrations, the method comprising:
[0213] deriving (1201) a frequency spectrum of an input audio signal;
[0214] Obtaining (1203) the amplitude of the critical frequency region of the spectrum;
[0215] Get (1205) kurtosis measure;
[0216] Obtaining (1207) a noise band detection measurement;
[0217] determining (1209) an overtone condition based at least on the kurtosis measure and the noise band detection measure; and
[0218] An indication of whether the harmonic condition is true or false is sent (1211).
[0219] 21. The method according to embodiment 20, further comprising:
[0220] In response to the low-pass filtered crest(m) being greater than the peak threshold and the low-pass filtered crest mod (m) greater than crest mod The threshold determines whether the overtone condition is true, where crest(m) is a measure of the kurtosis of frame m, crest mod (m) is a measure of local energy concentration.
[0221] 22. The method of embodiment 21, further comprising:
[0222] Determine crest(m) and crest according to the following formula mod (m):
[0223]
[0224] Among them, A i (m) is the amplitude of the spectrum of the audio signal at frame m, M is the number of frequency indices in the critical region, movmean(A i (m),W) is A using window size W i (m) is the moving average.
[0225] 23. The method according to embodiment 22 further comprises: determining A according to the following formula i (m):
[0226]
[0227] Where X(m,k) represents the spectrum of frame m at frequency index k, M = k end -k start +1, where k end and k start is the frequency index of the critical region of X(m,k).
[0228] 24. The method according to embodiment 23 further comprises: determining X(m,k) according to the following formula:
[0229]
[0230] Wherein, L is the frame length of frame m.
[0231] 25. An encoder device (500), comprising:
[0232] processing circuit (901); and
[0233] A memory (905) coupled to the processing circuit, wherein the memory includes instructions that, when executed by the processing circuit, cause the communication device to perform operations according to any one of embodiments 1-24.
[0234] 26. An encoder device (500) adapted to be implemented according to any one of embodiments 1-24.
[0235] 27. A computer program comprising program code to be executed by processing circuitry (901) of an encoder device (500), whereby execution of the program code causes the encoder device (500) to perform operations according to any one of embodiments 1-24.
[0236] 28. A computer program product comprising a non-transitory storage medium, the non-transitory storage medium comprising program code to be executed by a processing circuit (901) of an encoder device (500), whereby execution of the program code causes the encoder device (500) to perform operations according to any one of embodiments 1-24.
[0237] Provided below are explanations of the various abbreviations / acronyms used in this disclosure.
[0238] Abbreviations
[0239] MDCT Improved Discrete Cosine Transform
[0240] DFT Discrete Fourier Transform
Claims
1. A method in an encoder for determining which of two coding modes or which of two groups of coding modes to use, the method comprising: deriving (901) a frequency spectrum of an input audio signal; obtaining (903) the amplitude of the frequency spectrum in a critical frequency region, the critical frequency region being an upper half of the frequency spectrum of the input audio signal; obtaining (905) a kurtosis measure of the frequency spectrum in the critical frequency region; obtaining (907) a noise band detection measure, wherein the noise band detection measure is a measure of local energy concentration of a noise band in the frequency spectrum indicative of the critical frequency region; determining (909) which of the two coding modes or which of the two sets of coding modes to use based at least on the kurtosis measure and the noise band detection measure; and Based on the encoding mode determined to be used, the input audio signal is encoded (911).
2. The method according to claim 1, wherein: Exporting the frequency spectrum includes: exporting a frequency spectrum X(m,k), wherein X(m,k) represents the frequency spectrum of frame m at frequency index k.
3. The method according to claim 2, wherein: The critical frequency range corresponds to k start =320 and k end =639, where the input sampling rate is 32kHz and the frame length is L=640.
4. The method according to claim 2 or 3, wherein: Obtaining the amplitude of the spectrum in the critical frequency region includes: obtaining the amplitude of the spectrum in the critical frequency region according to the following formula: Where M = k end -k start +1 is the number of frequency indices in the critical frequency band associated with the critical frequency region.
5. The method according to claim 4, wherein: Obtaining the kurtosis measure includes obtaining the kurtosis measure according to the following formula: where crest(m) gives a measure of the kurtosis of frame m.
6. The method according to claim 4, wherein: Obtaining the kurtosis measure includes obtaining the kurtosis measure according to the following formula: Among them, A thr is a relative threshold.
7. The method according to claim 6, wherein: A thr =0.1。 8. The method according to claim 6, wherein: A thr In the range [0.01, 0.4].
9. The method according to any one of claims 1 to 8, wherein: Obtaining the noise frequency band detection measure includes: obtaining the noise frequency band detection measure according to the following formula: Among them, movmean(A i (m),W) is the absolute spectrum A determined using W samples i (m) is the moving average.
10. The method according to claim 9, wherein: movmean(A i (m),W) is determined according to the following formula: Where a = max(0,i-(W-1) / 2) b=min(M-1,i+(W-1) / 2).
11. The method according to claim 5 or 9, further comprising: According to the following formula, crest(m) and crest mod (m) Perform low-pass filtering: crest LP (m)=(1-α)·crest(m)+α·crest LP (m-1) crest mod,LP (m)=(1-β)·crest mod (m)+β·crest mod,LP (m-1) Where α and β are the filter coefficients.
12. The method according to claim 6 or 11, wherein: Determining which of the two coding modes or which of the two groups of coding modes to use based at least on the kurtosis measure and the noise band detection measure comprises: determining one of the two coding modes or one of the two groups of coding modes when harmonic_decision(m) is true, wherein harmonic_decision(m) is determined according to the following formula: Among them, crest thr 、crest mod,thr and t thr is the decision threshold.
13. The method according to claim 12, wherein: Determining the coding mode based at least on the kurtosis measure and the noise band detection measure comprises determining the coding mode based at least on the harmonic_decisoin(m).
14. The method according to claim 13, wherein: Based on the harmonic_decision(m), determining the coding mode includes: In response to the harmonic_decision(m) being true, determining (1101) to use a first coding mode of the two coding modes; and In response to the harmonic_decision(m) being false, it is determined (1103) to use a second encoding mode of the two encoding modes.
15. An encoder device (500) adapted to perform the method according to any of claims 1-14.