High-resolution audio codec
By detecting the spectrum stability of the audio signal and copying the quantized LPC parameters, the problem of excessive size of high-resolution audio files is solved, and the efficiency of streaming media is improved.
Patent Information
- Application Number
- CN202080008967.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-01-13
- Filing Date
- 2020-01-13
- Publication Date
- 2025-02-21
- Estimated Expiration
- 2040-01-13
AI Technical Summary
High-resolution audio files are difficult to stream via Wi-Fi or mobile networks due to their large file size.
By detecting the spectrum stability of the audio signal, if stable, copy the quantized LPC parameters of the previous frame into the current frame to reduce the complexity and code rate of the encoding and decoding.
It effectively reduces the complexity and code rate of audio signal encoding and decoding, reduces file size, and improves the efficiency of streaming media.
Smart Images

Figure CN113348507B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to signal processing, and more particularly to improving the efficiency of audio signal encoding and decoding. Background Art
[0002] High-resolution (hi-res) audio (also known as high-definition audio or HD audio) is a marketing term used by some recorded music retailers and suppliers of high-fidelity sound reproduction equipment. In the simplest terms, high-resolution audio tends to refer to music files that have a higher sampling frequency and / or bit depth than that of a compact disc (CD), which is specified as 16-bit / 44.1kHz. The main claimed benefit of high-resolution audio files is their superior sound quality over compressed audio formats. With more information on the playback file, high-resolution audio tends to have more detail and texture, bringing the listener closer to hearing the original performance.
[0003] There is one downside to high-resolution audio: file size. High-resolution files are often tens of megabytes in size, and a few tracks can quickly fill up the storage space on a device. Although storage is much cheaper than it used to be, the file size issue still makes high-resolution audio difficult to stream over Wi-Fi or mobile networks without compression. Summary of the invention
[0004] In some implementations, the specification describes techniques for improving the efficiency of encoding and decoding of audio signals.
[0005] In a first implementation, a method for performing linear prediction coding (LPC) includes: determining at least one of a differential spectral tilt and an energy difference between a current frame and a previous frame of the audio signal; detecting the spectral stability of the audio signal based on at least one of the differential spectral tilt and the energy difference between the current frame and the previous frame of the audio signal; and in response to detecting the spectral stability of the audio signal, copying the quantized LPC parameters of the previous frame to the current frame of the audio signal.
[0006] In a second implementation, an electronic device includes: a non-volatile memory including instructions; and one or more hardware processors communicating with the memory, wherein the one or more hardware processors execute the instructions to: determine at least one of a differential spectral tilt and an energy difference between a current frame and a previous frame of the audio signal; detect spectral stability of the audio signal based on at least one of the differential spectral tilt and the energy difference between the current frame and the previous frame of the audio signal; and in response to detecting the spectral stability of the audio signal, copy quantized LPC parameters of the previous frame to the current frame of the audio signal.
[0007] In a third implementation, a non-transitory computer-readable medium stores computer instructions for performing LPC, which, when executed by one or more hardware processors, causes the one or more hardware processors to perform operations including: determining at least one of a differential spectral tilt and an energy difference between a current frame and a previous frame of the audio signal; detecting spectral stability of the audio signal based on at least one of the differential spectral tilt and the energy difference between the current frame and the previous frame of the audio signal; and in response to detecting the spectral stability of the audio signal, copying quantized LPC parameters of the previous frame to the current frame of the audio signal.
[0008] The previously described implementations may be implemented using: a computer-implemented method; a non-transitory computer-readable medium storing computer-readable instructions for performing the computer-implemented method; and a computer-implemented system comprising a computer memory interoperably coupled to a hardware processor configured to perform the computer-implemented method and the instructions stored on the non-transitory computer-readable medium.
[0009] The details of one or more embodiments of the subject matter of this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, drawings, and claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] Figure 1 An example structure of a low-delay and low-complexity high-resolution codec (L2HC) encoder is shown according to some implementations.
[0011] Figure 2 An example structure of an L2HC decoder according to some implementations is shown.
[0012] Figure 3 An example structure of a low low band (LLB) encoder is shown according to some implementations.
[0013] Figure 4 An example structure of an LLB decoder according to some implementations is shown.
[0014] Figure 5 An example structure of a low high band (LHB) encoder is shown according to some implementations.
[0015] Figure 6 An example structure of an LHB decoder according to some implementations is shown.
[0016] Figure 7 Example structures of encoders for high low band (HLB) and / or high high band (HHB) subbands are shown according to some implementations.
[0017] Figure 8 An example structure of a decoder for HLB and / or HHB subbands according to some implementations is shown.
[0018] Fig. 9 An example spectral structure of a high pitch signal according to some implementations is shown.
[0019] Fig.10 An example process for high pitch detection according to some implementations is shown.
[0020] Fig.11 is a flow chart illustrating an example method of performing perceptual weighting of a high pitch signal according to some implementations.
[0021] Fig.12 An example structure of a residual quantization encoder according to some implementations is shown.
[0022] Fig.13 An example structure of a residual quantization decoder according to some implementations is shown.
[0023] Fig.14 is a flow chart illustrating an example method of performing residual quantization on a signal according to some implementations.
[0024] Fig.15 Examples of voiced speech are shown according to some implementations.
[0025] Fig.16 An example process for performing long-term prediction (LTP) control according to some implementations is shown.
[0026] Fig.17 An example frequency spectrum of an audio signal according to some implementations is shown.
[0027] Fig.18 is a flow chart illustrating an example method of performing long term prediction (LTP) according to some implementations.
[0028] Fig.19 is a flow chart illustrating an example method of quantizing linear prediction codec (LPC) parameters according to some implementations.
[0029] Fig. 20 An example frequency spectrum of an audio signal according to some implementations is shown.
[0030] Fig.21 is a diagram illustrating an example structure of an electronic device according to some implementations.
[0031] Like reference numbers and designations throughout the various drawings refer to like elements. DETAILED DESCRIPTION
[0032] First, it should be understood that although illustrative implementations of one or more embodiments are provided below, the disclosed systems and / or methods can be implemented using any number of techniques (whether currently known or existing). The present invention should in no way be limited to the exemplary implementations, drawings, and techniques shown below, including the exemplary designs and implementations shown and described herein, but can be modified within the scope of the appended claims and their full scope of equivalents.
[0033] High-resolution (hi-res) audio (also known as high-definition audio or HD audio) is a marketing term used by some recorded music retailers and suppliers of high-fidelity sound reproduction equipment. High-resolution audio has gradually and inevitably become mainstream due to the release of more products, streaming services, and even smartphones that support high-resolution standards. However, unlike high-definition video, there is no unified universal standard for high-resolution audio. The Digital Entertainment Group, the Consumer Electronics Association, the Recording Academy of America, and record companies officially define high-resolution audio as "lossless audio that reproduces the full sound of a recording made from a music source that is better than the sound quality of a compact disc (CD).". In the simplest terms, high-resolution audio often refers to music files with a higher sampling frequency and / or bit depth than that of a compact disc (CD), which is specified as 16 bits / 44.1kHz. The sampling frequency (or sampling rate) refers to the number of times a signal is sampled per second during the analog-to-digital conversion process. In the first case, the more bits there are, the more accurately the signal can be measured. Therefore, a bit depth of 16 bits to 24 bits can bring a significant improvement in quality. High-resolution audio files usually use a sampling frequency of 24 bits and 96kHz (or even higher). In some cases, a sampling frequency of 88.2kHz may also be used for high-resolution audio files. There is also a record of 44.1kHz / 24-bit labeled HD audio.
[0034] There are several different high-resolution audio file formats, each with its own compatibility requirements. File formats capable of storing high-resolution audio include the popular free lossless audio codec (FLAC) and Apple lossless audio codec (ALAC) formats, both of which are compressed, but in a way that theoretically no information is lost. Other formats include uncompressed WAV and AIFF formats, DSD (the format used for Super Audio CDs), and the newest master quality authenticated (MQA). Here's a breakdown of the main file formats:
[0035] WAV (High-Resolution): The standard format for all CD encodings. Excellent sound quality, but uncompressed, so file sizes are larger (especially high-resolution files). It has poor support for metadata (i.e. album art, artist, and song title information).
[0036] AIFF (High Resolution): Apple's replacement for WAV, with better metadata support. It is lossless and uncompressed (hence, larger file sizes), but is not widely used.
[0037] FLAC (High-Resolution): This lossless compression format supports high-resolution sample rates, takes up about half the space of WAV, and stores metadata. It is royalty-free and widely supported (but not by Apple), and is considered the preferred format for downloading and storing high-resolution albums.
[0038] ALAC (High Resolution): Apple's own lossless compression format, also with high resolution, stores metadata and takes up half the space of WAV. Supported by iTunes and iOS, it is an alternative format to FLAC.
[0039] DSD (High Resolution): A single-bit format used for Super Audio CDs. It comes in 2.8MHz, 5.6MHz, and 11.2MHz versions, but is not widely supported.
[0040] MQA (High-Resolution): A lossless compression format that packages high-resolution files and is more focused on the time domain. It is used for Tidal Masters high-resolution streaming, but has limited product support.
[0041] MP3 (non-hi-res): Popular lossy compression format that ensures small file sizes, but far from optimal sound quality. Convenient for storing music on smartphones and iPods, but not high-res.
[0042] AAC (non-high-resolution): An alternative to MP3 that is lossy and compressed, but has better sound quality. Used for iTunes downloads, Apple Music streaming (256kbps), and YouTube streaming.
[0043] The main claimed benefit of high-resolution audio files is their superior sound quality over compressed audio formats. Content downloaded from sites like Amazon and iTunes, as well as streaming services like Spotify, uses compressed file formats with lower bitrates, such as 256kbps AAC files on Apple Music and 320kbps Ogg Vorbis streams on Spotify. Using lossy compression means that data is lost during the encoding process, which in turn means that resolution is sacrificed for convenience and to make the file size smaller. This has an impact on the sound quality. For example, the highest-quality MP3 has a bitrate of 320kbps, while a 24-bit / 192kHz file has a data rate of 9216kbps. Music CDs have a bitrate of 1411kbps. Therefore, high-resolution 24-bit / 96kHz or 24-bit / 192kHz files should more closely replicate the sound quality used by musicians and engineers in the studio. With more information played on the file, high-resolution audio tends to have more detail and texture, bringing the listener closer to the original performance - provided the playback system is transparent enough.
[0044] There is one downside to high-resolution audio: file size. High-resolution files are often tens of megabytes in size, and a few tracks can quickly eat up storage space on a device. While storage is much cheaper than it used to be, the file size issue still makes high-resolution audio difficult to stream over Wi-Fi or mobile networks without compression.
[0045] There are a wide variety of products that can play and support High-Resolution Audio. It all depends on the size of your system, your budget, and what methods you primarily use to listen to music. Here are some examples of products that support High-Resolution Audio.
[0046] Smartphone
[0047] Smartphones increasingly support high-resolution playback. However, this is limited to Android flagship models, such as the current Samsung Galaxy S9 and S9+ and Note 9 (which all support DSD files) and Sony's Xperia XZ3. Phones that support high-resolution currently include MQA compatibility with LG's V30 and V30S ThinQ, while Samsung's S9 phones even support Dolby Atmos. Apple iPhones do not support high-resolution audio so far, but this can be fixed by using the appropriate app and then plugging in a digital to analog (DAC) converter or using Lightning headphones with the iPhone's Lightning connector.
[0048] Tablet
[0049] Some tablets also support high-resolution playback, including the Samsung Galaxy Tab S4, and at MWC2018, a number of new compatible models were launched, including Huawei's M5 series and Onkyo's fascinating Granbeat tablet.
[0050] Portable music player
[0051] Alternatively, there are dedicated portable high-resolution music players, such as the various Sony Walkmans and the award-winning Astell&Kern portable players. These music players offer more storage space and better sound quality than a multitasking smartphone. And they are clearly different from traditional portable devices. The extremely expensive Sony DMP-Z1 digital music player can be crammed with high-definition and direct stream digital (DSD) music.
[0052] desktop computer
[0053] For desktop solutions, laptops (Windows, Mac, Linux) are the primary source for storing and playing high-resolution music (after all, that's where you download music from high-resolution download sites, anyway).
[0054] DAC
[0055] A USB or desktop DAC (such as the Cyrus soundKey or Chord Mojo) is a great way to get great sound quality from high-resolution files stored on a computer or smartphone (whose audio circuitry isn't optimized for sound quality). Simply insert a suitable digital to analog converter (DAC) between the source and your headphones, and you'll instantly improve the sound quality.
[0056] Uncompressed audio files encode the entire audio input signal into a digital format that is capable of storing a full payload of input data. They offer the highest quality and archiving capabilities, but at the expense of larger file sizes, which in many cases has prevented their widespread use. Lossless encoding is the middle ground between uncompressed and lossy, granting similar or identical audio quality to uncompressed audio files, but with reduced audio file size. Lossless codecs achieve this by non-destructively compressing the input audio on the encoding side before restoring the uncompressed information on the decoding side. The file sizes of lossless encoded audio are still too large for many applications. Lossy files are encoded differently than uncompressed or lossless files. In lossy encoding techniques, the basic function of analog-to-digital conversion remains the same. Lossy is different from uncompressed. Lossy codecs discard much of the information contained in the original sound wave while trying to keep the subjective audio quality as close to the original as possible. As a result, lossy audio files are much smaller than uncompressed audio files, allowing for use in live audio scenarios. If there is no subjective quality difference between a lossy and uncompressed audio file, the quality of the lossy audio file can be considered "transparent." Recently, several high-resolution lossy audio codecs have been developed, the most popular of which are LDAC (Sony) and AptX (Qualcomm). LHDC (Savitech) is also one of them.
[0057] There has been more discussion about Bluetooth audio among consumers and high-end audio companies lately than ever before. Whether it’s wireless headphones, hands-free headsets, cars, or the connected home, the use cases for high-quality Bluetooth audio are growing. Many companies are offering solutions that go beyond the general performance of out-of-the-box Bluetooth solutions. Qualcomm’s aptX already covers many Android phones, and multimedia giant Sony has its own high-end solution, LDAC. This technology was previously only available in Sony’s Xperia series of phones, but with the launch of Android 8.0 Oreo, the Bluetooth codec will be available as part of the core AOSP code for other OEMs to implement if they wish. At the most basic level, LDAC supports the wireless transmission of 24-bit / 96kHz (high-resolution) audio files over Bluetooth. The closest competing codec is Qualcomm’s aptX HD, which supports 24-bit / 48kHz audio data. LDAC has three different types of connection modes: Quality Priority, Normal, and Connection Priority. Each of these offers different bitrates, 990kbps, 660kbps, and 330kbps respectively. Therefore, the quality will vary depending on the type of connection available. Obviously, LDAC's lowest bitrate doesn't provide the full 24-bit / 96kHz sound quality that LDAC has. LDAC is an audio codec technology developed by Sony that allows 24-bit / 96kHz audio to be transmitted over a Bluetooth connection at speeds of up to 990kbit / s. Sony uses this technology in a variety of products, including headphones, smartphones, portable media players, powered speakers, and home theaters. LDAC is a lossy codec that uses an MDCT-based codec scheme to provide more efficient data compression. LDAC's main competitor is Qualcomm's aptX-HD technology. The high-quality standard low-complexity subband codec (SBC) has a maximum clock rate of 328kbps, Qualcomm's aptX has a clock rate of 352kbps, and aptX HD has a clock rate of 576kbps. In theory, 990kbps LDAC can transmit more data than any other Bluetooth codec. And even the low-end connection priority settings are comparable to SBC and aptX, which will cater to those who play music using the most popular services. Sony's LDAC has two main parts. The first is to achieve a high enough Bluetooth transmission speed to reach 990kbps, and the second is to compress the high-resolution audio data into this bandwidth with minimal loss of quality.LDAC utilizes Bluetooth's optional enhanced data rate (EDR) technology to increase data speeds beyond the usual advanced audio distribution profile (A2DP) profile limits. However, this is hardware dependent. The A2DP audio profile does not typically use EDR speeds.
[0058] The original aptX algorithm is based on the time-domain adaptive differential pulse-code modulation (ADPCM) principle without psychoacoustic hearing masking techniques. Qualcomm's aptX audio codec first entered the commercial market as a semiconductor product, a custom-programmed DSP integrated circuit with the part name APTX100ED, which was initially adopted by broadcast automation equipment manufacturers who needed a way to store CD-quality audio on computer hard drives for automatic playback during broadcast programs, for example, thereby replacing the tasks of disc jockeys. Since its commercial introduction in the early 1990s, the scope of the aptX algorithm for real-time audio data compression has continued to expand as the intellectual property has become available in software, firmware and programmable hardware for professional audio, television and radio broadcasting, and consumer electronics, especially in wireless audio, low-latency wireless audio for gaming and video, and IP audio. In addition, the aptX codec can be used instead of sub-band coding (SBC), which is a sub-band codec scheme for lossy stereo / mono audio streams specified by the Bluetooth SIG for Bluetooth A2DP (short-range wireless area network standard). High-performance Bluetooth peripherals support AptX. Today, many broadcast equipment manufacturers use both standard aptX and enhanced aptX (E-aptX) in their ISDN and IP audio codec hardware. In 2007, another component was added to the aptX family in the form of aptX Live, which provides compression ratios of up to 8:1. aptX-HD is a lossy but scalable adaptive audio codec that was released in April 2009. AptX was known as apt-X until it was acquired by CSR plc in 2010. CSR was subsequently acquired by Qualcomm in August 2015. The aptX audio codec is used in consumer and automotive wireless audio applications, particularly for real-time streaming of lossy stereo audio via a Bluetooth A2DP connection / pairing between a "source" device (e.g., a smartphone, tablet, or laptop) and a "sink" accessory (e.g., Bluetooth stereo speakers, earphones, or headphones). The technology must be combined with both the transmitter and receiver to gain the sonic advantages of the aptX audio codec over the default sub-band coding (SBC) specified by the Bluetooth standard. Enhanced aptX provides a 4:1 compression ratio codec for professional audio broadcast applications, suitable for AM, FM, DAB, and HD Radio.
[0059] Enhanced aptX supports bit depths of 16, 20 or 24 bits. For audio sampled at 48kHz, the bit rate of E-aptX is 384kbit / s (dual channel). The bit rate of AptX-HD is 576kbit / s. It supports high-definition audio up to 48kHz sampling rate and up to 24-bit sample resolution. As the name implies, the codec is still considered lossy. However, for applications where the average or peak compressed data rate must be limited to a restricted level, "hybrid" codec schemes are allowed. This involves the dynamic application of "near-lossless" codecs to those audio parts that cannot be fully lossless due to bandwidth limitations. "Near-lossless" codecs maintain high-definition audio quality, preserving audio frequencies up to 20kHz and a dynamic range of at least 120dB. Its main competitor is the LDAC codec developed by Sony. Another scalable parameter in aptX-HD is the codec delay. It can be dynamically traded with other parameters such as compression level and computational complexity.
[0060] LHDC stands for Low Latency and High Definition Audio Codec and was released by Savitech. Compared to the Bluetooth SBC audio format, LHDC transmits 3 times more data to provide the most realistic and high-definition wireless audio, and there will no longer be audio quality differences between wireless and wired audio devices. The increase in transmitted data allows users to experience more details and a better sound field, and immerse themselves in the emotion of music. However, for many practical applications, more than 3 times the SBC data rate may be too high.
[0061] Figure 1 An example structure of a low delay & low complexity high resolution codec (L2HC) encoder 100 according to some implementations is shown. Figure 2An example structure of an L2HC decoder 200 according to some implementations is shown. Typically, L2HC can provide "transparent" quality at a fairly low code rate. In some cases, the encoder 100 and the decoder 200 may be implemented in a signal codec device. In some cases, the encoder 100 and the decoder 200 may be implemented in different devices. In some cases, the encoder 100 and the decoder 200 may be implemented in any suitable device. In some cases, the encoder 100 and the decoder 200 may have the same algorithmic delay (e.g., the same frame size or the same number of subframes). In some cases, the subframe size in a sample may be fixed. For example, if the sampling rate is 96kHz or 48kHz, the subframe size may be 192 or 96 samples. Each frame may have 1, 2, 3, 4 or 5 subframes, which correspond to different algorithmic delays. In some examples, when the input sampling rate of the encoder 100 is 96kHz, the output sampling rate of the decoder 200 may be 96kHz or 48kHz. In some examples, when the input sampling rate of the sampling rate is 48kHz, the output sampling rate of the decoder 200 may also be 96kHz or 48kHz. In some cases, if the input sampling rate of the encoder 100 is 48kHz and the output sampling rate of the decoder 200 is 96kHz, a high frequency band is artificially added.
[0062] In some examples, when the input sampling rate of encoder 100 is 88.2kHz, the output sampling rate of decoder 200 can be 88.2kHz or 44.1kHz. In some examples, when the input sampling rate of encoder 100 is 44.1kHz, the output sampling rate of decoder 200 can also be 88.2kHz or 44.1kHz. Similarly, when the input sampling rate of encoder 100 is 44.1kHz and the output sampling rate of decoder 200 is 88.2kHz, the high frequency band can also be artificially added. It is the same encoder used to encode 96kHz or 88.2kHz input signals. It is also the same encoder used to encode 48kHz or 44.1kHz input signals.
[0063] In some cases, the input signal bit depth may be 32b, 24b, or 16b at the L2HC encoder 100. The output signal bit depth may also be 32b, 24b, or 16b at the L2HC decoder 200. In some cases, the encoder bit depth at the encoder 100 and the decoder bit depth at the decoder 200 may be different.
[0064] In some cases, the codec mode (e.g., ABR_mode) can be set in the encoder 100 and can be modified in real time during operation. In some cases, ABR_mode=0 indicates a high bit rate, ABR_mode=1 indicates a medium bit rate, and ABR_mode=2 indicates a low bit rate. In some cases, the ABR_mode information can be sent to the decoder 200 through the bitstream channel by spending 2 bits. The default number of channels can be stereo (two channels), just like a Bluetooth headset application. In some examples, the average bit rate of ABR_mode=2 can be 370 to 400kbps, the average bit rate of ABR_mode=1 can be 450 to 550kbps, and the average bit rate of ABR_mode=0 can be 550 to 710kbps. In some cases, the maximum instantaneous bit rate of all situations / modes may be less than 990kbps.
[0065] like Figure 1 As shown, encoder 100 includes pre-emphasis filter 104, quadrature mirror filter (quadraturemirror filter, QMF) analysis filter bank 106, low low band (low low band, LLB) encoder 118, low high band (low high band, LHB) encoder 120, high low band (high low band, HLB) encoder 122, high high band (high high band, HHB) encoder 123 and multiplexer 126. The original input digital signal 102 is first pre-emphasized by pre-emphasis filter 104. In some cases, pre-emphasis filter 104 can be a constant high-pass filter. Pre-emphasis filter 104 is helpful for most music signals, because most music signals contain low frequency band energy much higher than high frequency band energy. The increase of high frequency band energy can improve the processing accuracy of high frequency band signal.
[0066] The output of the pre-emphasis filter 104 generates four sub-band signals through the QMF analysis filter bank 106: LLB signal 110, LHB signal 112, HLB signal 114 and HHB signal 116. In one example, the original input signal is generated at a sampling rate of 96kHz. In this example, the LLB signal 110 includes a sub-band of 0kHz-12kHz, the LHB signal 112 includes a sub-band of 12kHz-24kHz, the HLB signal 114 includes a sub-band of 24kHz-36kHz, and the HLB signal 116 includes a sub-band of 36kHz-48kHz. As shown in the figure, each of the four sub-band signals is encoded by LLB encoder 118, LHB encoder 120, HLB encoder 122 and HLB encoder 124, respectively, to generate a coded sub-band signal. The four sub-band coded signals can be multiplexed by a multiplexer 126 to generate a coded audio signal.
[0067] like Figure 2 As shown, the decoder 200 includes an LLB decoder 204, an LHB decoder 206, an HLB decoder 208, an HHB decoder 210, a QMF synthesis filter bank 212, a post-processing component 214, and a de-emphasis filter 216. In some cases, each of the LLB decoder 204, the LHB decoder 206, the HLB decoder 208, and the HHB decoder 210 can receive a coded subband signal from the channel 202, respectively, and generate a decoded subband signal. The decoded subband signals from the four decoders 204-210 can be added together by the QMF synthesis filter bank 212 to generate an output signal. If necessary, the output signal can be post-processed by the post-processing component 214, and then de-emphasized by the de-emphasis filter 216 to generate a decoded audio signal 218. In some cases, the de-emphasis filter 216 can be a constant filter, and can be an inverse filter of the emphasis filter 104. In one example, the decoded audio signal 218 may be generated by the decoder 200 at the same sampling rate as the input audio signal (eg, the audio signal 102) of the encoder 100. In this example, the decoded audio signal 218 is generated at a sampling rate of 96 kHz.
[0068] Figure 3 and Figure 4 2 and 3 show example structures of the LLB encoder 300 and the LLB decoder 400, respectively. Figure 3As shown, the LLB encoder 300 includes a high frequency spectrum tilt detection component 304, a tilt filter 306, a linear prediction coding (LPC) analysis component 308, an inverse LPC filter 310, a long term prediction (LTP) condition component 312, a high pitch detection component 314, a weighted filter 316, a fast LTP contribution component 318, an addition function unit 320, a rate control component 322, an initial residual quantization component 324, a rate adjustment component 326 and a fast quantization optimization component 328.
[0069] like Figure 3 As shown, the LLB subband signal 302 first passes through the tilt filter 306 controlled by the spectrum tilt detection component 304. In some cases, the tilt-filtered LLB signal is generated by the tilt filter 306. Then the tilt-filtered LLB signal can be subjected to LPC analysis by the LPC analysis component 308 to generate LPC filter parameters in the LLB subband. In some cases, the LPC filter parameters can be quantized and sent to the LLB decoder 400. The inverse LPC filter 310 can be used to filter the tilt-filtered LLB signal and generate the LLB residual signal. In the residual signal domain, a weighted filter 316 is added for the high pitch signal. In some cases, the weighted filter 316 can be turned on or off according to the high pitch detection of the high pitch detection component 314, and the high pitch detection component will be described in detail later. In some cases, the weighted filter 316 can generate a weighted LLB residual signal.
[0070] like Figure 3 As shown, the weighted LLB residual signal becomes the reference signal. In some cases, when there is a strong periodicity in the original signal, the fast LTP contribution component 318 can introduce LTP (long-term prediction) contribution based on the LTP condition 312. In the encoder 300, the LTP contribution can be subtracted from the weighted LLB residual signal by the addition function unit 320 to generate a second weighted LLB residual signal, which becomes the input signal for the initial LLB residual quantization component 324. In some cases, the output signal of the initial LLB residual quantization component 324 can be processed by the fast quantization optimization component 328 to generate a quantized LLB residual signal 330. In some cases, the quantized LLB residual signal 330 together with the LTP parameter (when LTP is present) can be sent to the LLB decoder 400 through the code stream channel.
[0071] Figure 4An example structure of an LLB decoder 400 is shown. As shown, the LLB decoder 400 includes a quantized residual component 406, a fast LTP contribution component 408, an LTP switching flag component 410, an addition function unit 414, an inverse weighting filter 416, a high pitch flag component 420, an LPC filter 422, an inverse tilt filter 424, and a high spectrum tilt flag component 428. In some cases, the quantized residual signal from the quantized residual component 406 and the LTP contribution signal from the fast LTP contribution component 408 can be added together by the addition function unit 414 to generate a weighted LLB residual signal as an input signal of the inverse weighting filter 416.
[0072] In some cases, inverse weighting filter 416 can be used to remove weighting and restore the spectral flatness of quantized LLB residual signal. In some cases, inverse weighting filter 416 can generate the LLB residual signal restored. The restored LLB residual signal can be filtered by LPC filter 422 again to generate LLB signal in signal domain. In some cases, if there is a tilt filter (e.g., tilt filter 306) in LLB encoder 300, the LLB signal in LLB decoder 400 can be filtered by the inverse tilt filter 424 controlled by high frequency spectrum strip mark component 428. In some cases, decoded LLB signal 430 can be generated by inverse tilt filter 424.
[0073] Figure 5 and Figure 6 2 shows an example structure of an LHB encoder 500 and an LHB decoder 600. Figure 5 As shown, the LHB encoder 500 includes an LPC analysis component 504, an inverse LPC filter 506, a rate control component 510, an initial residual quantization component 512, and a fast quantization optimization component 514. In some cases, the LPC analysis component 504 may perform LPC analysis on the LPH subband signal 502 to generate LPC filter parameters in the LHB subband. In some cases, the LPC filter parameters may be quantized and sent to the LHB decoder 600. The LHB subband signal 502 may be filtered by the inverse LPC filter 506 in the encoder 500. In some cases, a LLP residual signal may be generated by the inverse LPC filter 506. The LHB residual signal, which becomes an input signal for LHB residual quantization, may be processed by the initial residual quantization component 512 and the fast quantization optimization component 514 to generate a quantized LHB residual signal 516. In some cases, the quantized LHB residual signal 516 may then be sent to the LHB decoder 600. As shown in FIG. Figure 6 As shown, the quantized residual 604 obtained from the bits 602 may be processed by an LPC filter 606 for the LHB subband to generate a decoded LHB signal 608 .
[0074] Figure 7 and Figure 8 An example structure of an encoder 700 and a decoder 800 for HLB and / or HHB subbands is shown. As shown, the encoder 700 includes an LPC analysis component 704, an inverse LPC filter 706, a rate switching component 708, a rate control component 710, a residual quantization component 712, and an energy envelope quantization component 714. Typically, HLB and HHB are both located in relatively high frequency regions. In some cases, they are encoded and decoded in two possible ways. For example, if the code rate is high enough (e.g., for 96kHz / 24-bit stereo codec, higher than 700kbps), they can be encoded and decoded like LHB. In one example, an LPC analysis can be performed on an HLB or HLB subband signal 702 by an LPC analysis component 704 to generate LPC filter parameters in the HLB or HLB subband. In some cases, the LPC filter parameters can be quantized and sent to an HLB or HHB decoder 800. The HLB or HLB subband signal 702 may be filtered by an inverse LPC filter 706 to generate an HLB or HLB residual signal. The HLB or HLB residual signal, which becomes a target signal for residual quantization, may be processed by a residual quantization component 712 to generate a quantized HLB or HLB residual signal 716. The quantized HLB or HLB residual signal 716 may then be sent to a decoder side (e.g., a decoder 800) and processed by a residual decoder 806 and an LPC filter 812 to generate a decoded HLB or HLB signal 814.
[0075] In some cases, if the code rate is relatively low (e.g., less than 500 kbps for 96 kHz / 24-bit stereo codec), the parameters of the LPC filter generated by the LPC analysis component 704 for the HLB or HHB subband may still be quantized and sent to the decoder side (e.g., decoder 800). However, the HLB or HLB residual signal may be generated without spending any bits, and only the time domain energy envelope of the residual signal may be quantized and sent to the decoder at a very low code rate (e.g., less than 3 kbps, encoding the energy envelope). In one example, the energy envelope quantization component 714 may receive the HLB or HHB residual signal from the inverse LPC filter and generate an output signal that may then be sent to the decoder 800. The output signal from the encoder 700 may then be processed by the energy envelope decoder 808 and the residual generation component 810 to generate an input signal to the LPC filter 812. In some cases, the LPC filter 812 may receive the HLB or HLB residual signal from the residual generation component 810 and generate a decoded HLB or HLB signal 814 .
[0076] Fig. 9An example spectrum structure 900 of a high fundamental frequency signal is shown. Generally, normal speech signals rarely have a relatively high fundamental frequency spectrum structure. However, music signals and singing signals generally contain high fundamental frequency spectrum structures. As shown, the spectrum structure 900 includes a relatively high first harmonic frequency F0 (e.g., F0>500Hz) and a relatively low background spectrum level. In this case, an audio signal with spectrum structure 900 can be considered as a high fundamental frequency signal. In the case of a high fundamental frequency signal, it is easy to hear the codec error between 0Hz and F0 due to the lack of auditory masking effect. As long as the peak energy of F1 and F2 is correct, the error (e.g., the error between F1 and F2) can be masked by F1 and F2. However, if the bit rate is not high enough, the codec error may not be avoided.
[0077] In some cases, finding the correct short pitch (high pitch) period in LTP can help improve signal quality. However, this may not be enough to achieve "transparent" quality. In order to improve signal quality in a robust manner, an adaptive weighting filter can be introduced, which enhances very low frequencies and reduces the codec error at very low frequencies, but at the expense of increasing the codec error at higher frequencies. In some cases, the adaptive weighting filter (e.g., weighting filter 316) can be a first-order pole filter, as shown below:
[0078]
[0079] And the inverse weighting filter (e.g., inverse weighting filter 416) can be a first order zero filter as shown below:
[0080] W D (Z) = 1-a*z -1
[0081] In some cases, an adaptive weighted filter may be used to improve high pitch situations. However, this may degrade quality in other situations. Therefore, in some cases, an adaptive weighted filter may be used based on the detection of high pitch situations (e.g., using Figure 3 The high pitch detection component 314) is used to turn on and off the adaptive weighted filter. There are many ways to detect high pitch signals. Fig.10 Describe a method.
[0082] like Fig.10As shown, the high pitch detection component 1010 can use four parameters, including the current pitch gain 1002, the smoothed pitch gain 1004, the pitch period length 1006, and the spectrum tilt 1008, to determine whether there is a high pitch signal. In some cases, the pitch gain 1002 indicates the periodicity of the signal. In some cases, the smoothed pitch gain 1004 represents the normalized value of the pitch gain 1002. In one example, if the normalized pitch gain (e.g., the smoothed pitch gain 1004) is between 0 and 1, a high value of the normalized pitch gain (e.g., when the normalized pitch gain is close to 1) may indicate that there are strong harmonics in the spectral domain. The smoothed pitch gain 1004 may indicate that the periodicity is stable (not just local). In some cases, if the pitch period length 1006 is short (e.g., less than 3ms), it means that the first harmonic frequency F0 is large (high). The spectrum tilt 1008 can be measured by the first reflection coefficient of the segmented signal correlation or LPC parameters at a sample distance. In some cases, the spectrum tilt 1008 can be used to indicate whether a very low frequency region contains a lot of energy. If the energy in the very low frequency region (e.g., frequency below F0) is relatively high, there may be no high pitch signal. In some cases, when a high pitch signal is detected, a weighted filter can be applied. Otherwise, when no high pitch signal is detected, a weighted filter may not be applied.
[0083] Fig.11 1 is a flow chart illustrating an example method 1100 for performing perceptual weighting of a high pitch signal. In some cases, the method 1100 may be implemented by an audio codec device (eg, LLB encoder 300). In some cases, the method 1100 may be implemented by any suitable device.
[0084] Method 1100 may begin at block 1102 where a signal (e.g., Figure 1In some cases, the signal may be an audio signal. In some cases, the signal may include one or more subband components. In some cases, the signal may include an LLB component, an LHB component, an HLB component, and an HHB component. In one example, the signal may be generated at a sampling rate of 96kHz and have a bandwidth of 48kHz. In this example, the LLB component of the signal may include a subband of 0kHz-12kHz, the LHB component may include a subband of 12kHz-24kHz, the HLB component may include a subband of 24kHz-36kHz, and the HLB component may include a subband of 36kHz-48kHz. In some cases, the signal may be processed by a pre-emphasis filter (e.g., a pre-emphasis filter 104) and a QMF analysis filter bank (e.g., a QMF analysis filter bank 106) to generate subband signals in four subbands. In this example, LLB subband signals, LHB subband signals, HLB subband signals, and HHB subband signals may be generated for the four subbands, respectively.
[0085] In block 1104, a residual signal for at least one of the one or more subband signals is generated based on at least one of the one or more subband signals. In some cases, at least one of the one or more subband signals may be tilt-filtered to generate a tilt-filtered signal. In one example, at least one of the one or more subband signals may include a subband signal in an LLB subband (e.g., Figure 3 In some cases, the tilt-filtered signal may be further processed by an inverse LPC filter (eg, inverse LPC filter 310) to generate a residual signal.
[0086] At least one of the one or more subband signals is determined to be a high pitch signal in block 1106. In some cases, at least one of the one or more subband signals is determined to be a high pitch signal based on at least one of a current pitch gain, a smoothed pitch gain, a pitch period length, or a spectral tilt of at least one of the one or more subband signals.
[0087] In some cases, the pitch gain indicates the periodicity of the signal, and the smoothed pitch gain represents a normalized value of the pitch gain. In some examples, the normalized pitch gain may be between 0 and 1. In these examples, a high value of the normalized pitch gain (e.g., when the normalized pitch gain is close to 1) may indicate the presence of strong harmonics in the spectral domain. In some cases, a short pitch period length refers to a first harmonic frequency (e.g., Fig. 9The frequency F0 906 of the spectrum is relatively large (high). If the first harmonic frequency F0 is relatively high (e.g., F0>500Hz) and the background spectrum level is relatively low (e.g., below a predetermined threshold), a high fundamental tone signal can be detected. In some cases, the spectrum tilt can be measured by the first reflection coefficient of the segmented signal correlation or LPC parameter at a sample distance. In some cases, the spectrum tilt can be used to indicate whether a very low frequency region contains a lot of energy. If the energy in a very low frequency region (e.g., a frequency lower than F0) is relatively high, a high fundamental tone signal may not be present.
[0088] In response to determining that at least one of the one or more subband signals is a high pitch signal, a weighting operation is performed on a residual signal of at least one of the one or more subband signals at block 1108. In some cases, when a high pitch signal is detected, a weighting filter (e.g., weighting filter 316) may be applied to the residual signal. In some cases, a weighted residual signal may be generated. In some cases, when a high pitch signal is not detected, the weighting operation may not be performed.
[0089] As noted, in the case of a high pitch signal, due to the lack of an auditory masking effect, the codec errors in the low frequency region are perceptually perceptible. If the bit rate is not high enough, the codec errors may not be avoided. The adaptive weighted filter (e.g., weighted filter 316) and weighting method described herein can be used to reduce the codec errors and improve the signal quality in the low frequency region. However, in some cases, this may increase the codec errors at higher frequencies, which may not be important for the perceived quality of the high pitch signal. In some cases, the adaptive weighted filter can be conditionally turned on and off based on the detection of a high pitch signal. As described above, when a high pitch signal is detected, the weighted filter can be turned on, and when a high pitch signal is not detected, the weighted filter can be turned off. In this way, the quality of the high pitch situation can still be improved, while the quality of the non-high pitch situation can be unaffected.
[0090] In block 1110, a quantized residual signal is generated based on the weighted residual signal generated in block 1108. In some cases, the weighted residual signal together with the LTP contribution may be processed by an addition function unit to generate a second weighted residual signal. In some cases, the second weighted residual signal may be quantized to generate a quantized residual signal, which may be further sent to a decoder side (e.g., Figure 4 LLB decoder 400).
[0091] Fig.12 and Fig.13An example structure of a residual quantization encoder 1200 and a residual quantization decoder 1300 is shown. In some examples, the residual quantization encoder 1200 and the residual quantization decoder 1300 can be used to process signals in LLB subbands. As shown, the residual quantization encoder 1200 includes an energy envelope codec component 1204, a residual normalization component 1206, a first large step size codec component 1210, a first fine step size component 1212, a target optimization component 1214, a code rate adjustment component 1216, a second large step size codec component 1218, and a second fine step size codec component 1220.
[0092] As shown, the LLB subband signal 1202 may be first processed by the energy envelope codec component 1204. In some cases, the time domain energy envelope of the LLB residual signal may be determined and quantized by the energy envelope codec component 1204. In some cases, the quantized time domain energy envelope may be sent to the decoder side (e.g., decoder 1300). In some examples, the determined energy envelope may have a dynamic range from 12dB to 132dB in the residual domain, covering very low levels and very high levels. In some cases, each subframe in a frame has an energy level quantization, and the peak subframe energy in the frame may be directly encoded and decoded in the dB domain. The Huffman encoding and decoding method may be used to encode and decode other subframe energies in the same frame by encoding and decoding the difference between the peak energy and the current energy. In some cases, since the duration of a subframe may be as short as about 2ms, the envelope accuracy may be acceptable based on the human ear masking principle.
[0093] After having a quantized time-domain energy envelope, the LLB residual signal can be normalized by a residual normalization component 1206. In some cases, the LLB residual signal can be normalized based on the quantized time-domain energy envelope. In some examples, the LLB residual signal can be divided by the quantized time-domain energy envelope to generate a normalized LLB residual signal. In some cases, the normalized LLB residual signal can be used as an initial target signal 1208 for initial quantization. In some cases, the initial quantization may include two-stage codec / quantization. In some cases, the first-stage codec / quantization includes a large-step Huffman codec, and the second-stage codec / quantization includes a fine-step unified codec. As shown, the initial target signal 1208 as a normalized LLB residual signal can be first processed by a large-step Huffman codec component 1210. For a high-resolution audio codec, each residual sample can be quantized. Huffman codec can save bits by utilizing a special quantization index probability distribution. In some cases, when the residual quantization step is large enough, the quantization index probability distribution becomes suitable for Huffman coding. In some cases, the quantization result of large step quantization may not be optimal. After Huffman coding, unified quantization can be added with a smaller quantization step. As shown in the figure, the fine step unified coding component 1212 can be used to quantize the output signal from the large step Huffman coding component 1210. In this way, the first-level coding / quantization of the normalized LLB residual signal selects a relatively large quantization step because the special distribution of the quantized coding index facilitates more efficient Huffman coding, and the second-level coding / quantization uses a relatively simple unified coding with a relatively small quantization step to further reduce the quantization error from the first-level coding / quantization.
[0094] In some cases, if the residual quantization has no error or has a small enough error, the initial residual signal may be an ideal target reference. If the codec rate is not high enough, the codec error may always exist and be negligible. Therefore, the initial residual target reference signal 1208 may not be perceptually optimal for quantization. Although the initial residual target reference signal 1208 is not perceptually optimal, it can provide a fast quantization error estimate, which can be used not only to adjust the codec rate (e.g., by the rate adjustment component 1216), but also to construct a perceptually optimized target reference signal. In some cases, the target optimization component 1214 can generate a perceptually optimized target reference signal based on the initial residual target reference signal 1208 and the output signal of the initial quantization (e.g., the output signal of the fine step unified codec component 1212).
[0095] In some cases, an optimized target reference signal can be constructed in a way that minimizes not only the error contribution of the current sample but also the error contribution of previous and future samples. In addition, it can optimize the error distribution in the spectral domain to account for the perceptual masking effect of the human ear.
[0096] After the target optimization component 1214 constructs the optimized target reference signal, the first level Huffman coding and the second level unified coding can be performed again to replace the first (initial) quantization result and obtain better perceptual quality. In this example, the second large step size Huffman coding component 1218 and the second fine step size unified coding component 1220 can be used to perform the first level Huffman coding and the second level unified coding on the optimized target reference signal. The quantization of the initial target reference signal and the optimized target reference signal will be discussed in more detail below.
[0097] In some examples, the unquantized residual signal or the initial target residual signal may be represented by r i (n) indicates that the i (n) as the target, the residual signal can be initially quantized to obtain The first quantized residual signal based on r i (n) and the impulse response h of the perceptual weighted filter w (n), the target residual signal r of perceptual optimization can be evaluated o (n) Use As the target of updating or optimization, the residual signal can be quantized again to obtain A second quantized residual signal, which has been perceptually optimized to replace the first quantized residual signal In some cases, h can be determined in many possible ways. w (n), for example, by estimating h based on an LPC filter w (n).
[0098] In some cases, the LPC filter for the LLB subband can be expressed as:
[0099]
[0100] The perceptual weighted filter W(z) can be defined as:
[0101]
[0102] Where α is a constant coefficient, 0<α<1. γ can be the first reflection coefficient of the LPC filter or a constant, -1<γ<1. The impulse response of the filter W(z) can be defined as h w (n). In some cases, h wThe length of h (n) depends on the values of α and γ. In some cases, when α and γ are close to zero, h w (n) becomes shorter and decays rapidly to zero. From a computational complexity point of view, it is best to have a short impulse response h w (n). If h w If h is not short enough, it can be multiplied by a half-Hamming window or a half-Hanning window to make h w (n) decays rapidly to zero. w (n) After that, the target in the perceptually weighted signal domain can be expressed as:
[0103] T g (n) = r i (n)*h w (n) = ∑ k r i (k) h w (nk) (3)
[0104] This is r i (n) and h w Convolution between (n). Initial quantization residual The contribution in the perceptually weighted signal domain can be expressed as:
[0105]
[0106] Error in the residual domain
[0107]
[0108] is minimized when quantized in the direct residual domain. However, the error in the perceptually weighted signal domain
[0109]
[0110] may not be minimized. Therefore, it may be necessary to minimize the quantization error in the perceptually weighted signal domain. In some cases, all residual samples may be jointly quantized. However, this may create additional complexity. In some cases, the residuals can be quantized sample by sample and perceptually optimized. For example, all samples in the current frame may be initially set to Assuming that all samples are quantized, but the sample at m is not quantized, then the perceptual optimal value at m is not r i (m), but should be
[0111]
[0112] Where <T g '(n),h w(n)> represents the vector {T g '(n)} and the vector {h w The cross-correlation between the impulse responses {h w (n)}, {T g The starting point of the vector of '(n)} is at m. ||h w (n)|| is a vector {h w (n)}, which is a constant energy in the same frame. g '(n) can be expressed as:
[0113]
[0114] Once the new target value r of perceptual optimization is determined o (m), it can be quantized again to generate Including large step size Huffman coding and fine step size unified coding. Then, m will move to the next sample position. Repeat the above process sample by sample, and update expressions (7) and (8) with the new results until all samples are optimally quantized. In each update process for each m, due to Most of the samples in have not changed, so there is no need to recalculate expression (8). The denominator in expression (7) is a constant, so the division can be turned into a constant multiplication.
[0115] exist Fig.13 At the decoder side, the quantized values from the large step size Huffman decoding 1302 and the fine step size unified decoding 1304 are added together by the addition function unit 1306 to form a normalized residual signal. The normalized residual signal can be processed in the time domain by the energy envelope decoding component 1308 to generate a decoded residual signal 1310.
[0116] Fig.14 1 is a flow chart illustrating an example method 1400 of performing residual quantization on a signal. In some cases, the method 1400 may be implemented by an audio codec device (e.g., LLB encoder 300 or residual quantization encoder 1200). In some cases, the method 1100 may be implemented by any suitable device.
[0117] Method 1400 begins at block 1402, where a time domain energy envelope of an input residual signal is determined. In some cases, the input residual signal may be a residual signal in an LLB subband (eg, LLB residual signal 1202).
[0118] In block 1404, the time domain energy envelope of the input residual signal is quantized to generate a quantized time domain energy envelope. In some cases, the quantized time domain energy envelope may be sent to a decoder side (eg, decoder 1300).
[0119] In block 1406, the input residual signal is normalized based on the quantized time-domain energy envelope to generate a first target residual signal. In some cases, the LLB residual signal may be divided by the quantized time-domain energy envelope to generate a normalized LLB residual signal. In some cases, the normalized LLB residual signal may be used as an initial target signal for initial quantization.
[0120] In block 1408, a first quantization is performed on the first target residual signal at a first code rate to generate a first quantized residual signal. In some cases, the first residual quantization may include two levels of sub-quantization / coding. A first level of sub-quantization may be performed on the first target residual signal at a first quantization step to generate a first sub-quantized output signal. A second level of sub-quantization may be performed on the first sub-quantized output signal at a second quantization step to generate a first quantized residual signal. In some cases, the size of the first quantization step is greater than the size of the second quantization step. In some examples, the first level of sub-quantization may be a large step size Huffman codec, and the second level of sub-quantization may be a fine step size unified codec.
[0121] In some cases, the first target residual signal includes a plurality of samples. The first target residual signal may be first quantized sample by sample. In some cases, this may reduce the complexity of quantization, thereby improving quantization efficiency.
[0122] In block 1410, a second target residual signal is generated based on at least the first quantized residual signal and the first target residual signal. In some cases, the second target residual signal may be generated based on the first target residual signal, the first quantized residual signal, and an impulse response h of a perceptual weighting filter. w (n) to generate a second target residual signal. In some cases, a perceptually optimized target residual signal may be generated, the target residual signal being the second target residual signal for the second residual quantization.
[0123] In block 1412, a second residual quantization is performed on the second target residual signal at a second code rate to generate a second quantized residual signal. In some cases, the second code rate may be different from the first code rate. In one example, the second code rate may be higher than the first code rate. In some cases, the codec error from the first residual quantization quantized at the first code rate may not be trivial. In some cases, the codec code rate may be adjusted (e.g., increased) to reduce the codec rate when the second residual is quantized.
[0124] In some cases, the second residual quantization is similar to the first residual quantization. In some examples, the second residual quantization may also include two-level sub-quantization / coding. In these examples, a first-level sub-quantization may be performed on the second target residual signal at a large quantization step size to generate a sub-quantized output signal. A second-level sub-quantization may be performed on the sub-quantized output signal at a small quantization step size to generate a second quantized residual signal. In some cases, the first-level sub-quantization may be a large-step Huffman codec, and the second-level sub-quantization may be a fine-step unified codec. In some cases, the second quantized residual signal may be sent to a decoder side (e.g., decoder 1300) via a bitstream channel.
[0125] like Figure 3 to Figure 4 As shown in , LTP can be conditionally turned on and off to obtain better PLC. In some cases, LTP is very useful for periodic and harmonic signals when the codec bit rate is not enough to achieve transparent quality. For high-resolution codecs, LTP applications may need to address two issues: (1) the computational complexity should be reduced, because traditional LTP may require high computational complexity in high sampling rate environments; (2) since LTP exploits inter-frame correlation and may cause error propagation when packet loss occurs in the transmission channel, the negative impact on packet loss concealment (PLC) should be limited.
[0126] In some cases, the pitch period search will add additional computational complexity to LTP. More efficient methods may be needed to improve the encoding and decoding efficiency in LTP. Figure 15 to Figure 16 An example process for pitch period search is described.
[0127] Fig.15 An example of voiced speech is shown, where pitch period 1502 represents the distance between two adjacent period cycles (eg, the distance between peaks P1 and P2). Some music signals may not only have strong periodicity, but also have a stable pitch period (almost constant pitch period).
[0128] Fig.16An example process 1600 for performing LTP control to obtain better packet loss concealment is shown. In some cases, process 1600 may be implemented by a codec device (e.g., encoder 100 or encoder 300). In some cases, process 1600 may be implemented by any suitable device. Process 1600 includes pitch period (hereinafter referred to as "pitch") search and LTP control. Typically, pitch search may become complicated at high sampling rates in a traditional manner due to the presence of a large number of pitch candidates. Process 1600 as described herein may include three stages / steps. During the first stage / step, since the periodicity is mainly in the low frequency region, a signal (e.g., LLB signal 1602) may be low-pass filtered 1604. The filtered signal may then be downsampled to generate an input signal for a fast initial coarse pitch search 1608. In one example, the downsampled signal is generated at a sampling rate of 2kHz. Because the total number of pitch candidates at low sampling rates is not high, a rough pitch result can be quickly obtained by searching all candidate pitches at low sampling rates. In some cases, the initial pitch search 1608 may be accomplished using conventional methods that maximize normalized cross-correlation using a short window or autocorrelation using a large window.
[0129] Since the initial pitch search results may be relatively rough, a fine search using a cross-correlation method near multiple initial pitches may still be complex at a high sampling rate (e.g., 24kHz). Therefore, during the second stage / step (e.g., fast fine pitch search 1610), the pitch accuracy can be improved in the waveform domain by simply looking at the waveform peak position at a low sampling rate. Then, during the third stage / step (e.g., optimized lookup pitch search 1612), the cross-correlation method can be used to optimize the fine pitch search results from the second stage / step at a high sampling rate within a small search range.
[0130] For example, during the first stage / step (e.g., initial pitch search 1608), an initial rough pitch search result may be obtained based on all pitch candidates that have been searched. In some cases, a pitch candidate neighborhood may be defined based on the initial rough pitch search result and may be used in the second stage / step to obtain a more precise pitch search result. During the second stage / step (e.g., fast fine pitch search 1610), a waveform peak position may be determined based on the pitch candidates determined in the first stage / step and within the pitch candidate neighborhood. In the example of Fig.15 In one example shown, the search result can be determined within a limited search range defined according to the initial pitch search result. Fig.15 The first peak position P1 in (eg, the pitch candidate neighborhood is determined to be approximately 15% different from the first stage / step). Fig.15The second peak position P2 in the . The position difference between P1 and P2 is much more accurate than the initial pitch estimate. In some cases, the more accurate pitch estimate obtained from the second stage / step can be used to define a second pitch candidate neighborhood, which can be used in the third stage / step to find an optimized fine pitch period, for example, the pitch candidate neighborhood is determined to be about 15% different from the second stage / step. During the third stage / step (e.g., optimized fine pitch search 1612), the normalized cross-correlation method can be used to search for the optimized fine pitch period in a small search range (e.g., the second pitch candidate neighborhood).
[0131] In some cases, if LTP is always turned on, PLC may not be optimal due to the possibility of error propagation when the code stream data packets are lost. In some cases, LTP can be turned on when LTP can effectively improve the audio quality and will not have a significant impact on PLC. In fact, LTP may be efficient when the pitch gain is high and stable, which means that the high periodicity lasts for at least several frames (not just one frame). In some cases, in the high periodicity signal area, PLC is relatively simple and efficient because PLC always uses periodicity to copy previous information to the currently lost frame. In some cases, a stable pitch period can also reduce the negative impact on PLC. A stable pitch period means that the pitch period value will not change significantly at least within a few frames, making it possible to achieve a stable pitch in the near future. In some cases, when the current frame of the code stream data packet is lost, PLC may use the previous pitch information to restore the current frame. In this way, a stable pitch period can help the current PLC pitch estimation.
[0132] Continue to refer Fig.16 In the example of , a periodicity check 1614 and a stability check 1616 are performed before deciding to turn LTP on or off. In some cases, LTP can be turned on when the pitch gain is stable and high and the pitch period is relatively stable. For example, the pitch gain can be set for high periodicity and stable frames (e.g., the pitch gain is stably above 0.8), as shown in block 1618.
[0133] In some cases, reference Figure 3 , an LTP contribution signal may be generated and combined with the weighted residual signal to generate an input signal for residual quantization. On the other hand, if the pitch gain is unstable to high and / or the pitch period is unstable, LTP may be turned off.
[0134] In some cases, if LTP was previously turned on for several frames, LTP can be turned off for one or two frames to avoid possible error propagation when a bitstream packet is lost. In one example, as shown in block 1620, for example, when LTP has been previously turned on for several frames, the pitch gain can be conditionally reset to zero for better PLC. In some cases, when LTP is turned off, more codec bit rates can be set in a variable bit rate codec system. In some cases, when it is decided to turn on LTP, the pitch gain and pitch period can be quantized and sent to the decoder side, as shown in block 1622.
[0135] Fig.17 An example spectrogram of an audio signal is shown. As shown, spectrogram 1702 shows a time-frequency diagram of an audio signal. Spectrogram 1702 is shown to include many harmonics, which indicates the high periodicity of the audio signal. Spectrogram 1704 shows the original pitch gain of the audio signal. In most cases, the pitch gain is shown to be stable and high, which also indicates that the audio signal has high periodicity. Spectrogram 1706 shows the smoothed pitch gain (pitch correlation) of the audio signal. In this example, the smoothed pitch gain represents the normalized pitch gain. Spectrogram 1708 shows the pitch period, and spectrogram 1710 shows the quantized pitch gain. In most cases, the pitch period is shown to be relatively stable. As shown, the pitch gain has been reset to zero periodically, which indicates that LTP is turned off to avoid error propagation. When LTP is turned off, the quantized pitch gain is also set to zero.
[0136] Fig.18 18 is a flow chart illustrating an example method 1800 of performing LTP. In some cases, method 1400 may be implemented by an audio codec device (eg, LLB encoder 300). In some cases, method 1100 may be implemented by any suitable device.
[0137] Method 1800 begins at block 1802, where an input audio signal is received at a first sampling rate. In some cases, the audio signal may include a plurality of first samples, wherein the plurality of first samples are generated at the first sampling rate. In one example, the plurality of first samples may be generated at a sampling rate of 96 kHz.
[0138] In block 1804, the audio signal is downsampled. In some cases, a plurality of first samples of the audio signal may be downsampled to generate a plurality of second samples at a second sampling rate. In some cases, the second sampling rate is lower than the first sampling rate. In this example, the plurality of second samples may be generated at a sampling rate of 2 kHz.
[0139] In block 1806, a first pitch period is determined at the second sampling rate. Because the total number of pitch candidates at the low sampling rate is not high, a rough pitch result can be quickly obtained by searching all candidate pitches at the low sampling rate. In some cases, a plurality of pitch candidates can be determined based on a plurality of second samples generated at the second sampling rate. In some cases, the first pitch period can be determined based on the plurality of pitch candidates. In some cases, the first pitch period can be determined by maximizing a normalized cross-correlation with a first window or an autocorrelation with a second window, wherein the second window is larger than the first window.
[0140] In block 1808, a second pitch period is determined based on the first pitch period determined in block 1804. In some cases, a first search range may be determined based on the first pitch period. In some cases, a first peak position and a second peak position may be determined within the first search range. In some cases, a second pitch period may be determined based on the first peak position and the second peak position. For example, a position difference between the first peak position and the second peak position may be used to determine the second pitch period.
[0141] In block 1810, a third pitch period is determined based on the second pitch period determined in block 1808. In some cases, the second pitch period may be used to define a pitch candidate neighborhood that may be used to find an optimized fine pitch period. For example, a second search range may be determined based on the second pitch period. In some cases, the third pitch period may be determined within the second search range at a third sampling rate. In some cases, the third sampling rate is higher than the second sampling rate. In this example, the third sampling rate may be 24 kHz. In some cases, a normalized cross-correlation method may be used to determine the third pitch period within the second search range at the third sampling rate. In some cases, the third pitch period may be determined as the pitch period of the input audio signal.
[0142] In block 1812, it is determined that the pitch gain of the input audio signal has exceeded a predetermined threshold and that the change in the pitch period of the input audio signal has been within a predetermined range for at least a predetermined number of frames. LTP may be more efficient when the pitch gain is high and stable, meaning that the high periodicity persists for at least a few frames (rather than just one frame). In some cases, a stable pitch period may also reduce the negative impact on PLC. A stable pitch period means that the pitch period value does not change significantly for at least a few frames, thereby making it possible to achieve a stable pitch in the near future.
[0143] In response to determining that the pitch gain of the input audio signal has exceeded a predetermined threshold and that the change in the third pitch period has been within a predetermined range for at least a predetermined number of previous frames, the pitch gain is set for the current frame of the input audio signal in block 1814. In this way, the pitch gain is set for highly periodic and stable frames to improve signal quality without affecting PLC.
[0144] In some cases, in response to determining that the pitch gain of the input audio signal is below a predetermined threshold and / or that the change of the third pitch period is not within a predetermined range for at least a predetermined number of previous frames, the pitch gain is set to zero for a current frame of the input audio signal. In this way, error propagation can be reduced.
[0145] As mentioned earlier, each residual sample is quantized for high-resolution audio codecs. This means that the computational complexity and codec bit rate of residual sample quantization may not change significantly when the frame size changes from 10ms to 2ms. However, the computational complexity and codec bit rate of some codec parameters (such as LPC) may increase dramatically when the frame size changes from 10ms to 2ms. Typically, LPC parameters need to be quantized and transmitted for each frame. In some cases, LPC differential encoding and decoding between the current frame and the previous frame can save bits, but it may also cause error propagation when bitstream packets are lost in the transmission channel. Therefore, a short wei frame size can be set to achieve a low-latency codec. In some cases, when the frame size is as short as (for example) 2ms, the codec bit rate of the LPC parameters may be very high, and since the frame duration is the denominator of the bit rate or complexity, the computational complexity may also be high.
[0146] In reference Fig.12 In an example of time domain energy envelope quantization shown in , if the subframe size is 2ms, a 10ms frame should contain 5 subframes. Typically, each subframe has an energy level that needs to be quantized. Since a frame contains 5 subframes, the energy levels of the 5 subframes can be jointly quantized to limit the codec rate of the time domain energy envelope. In some cases, when the frame size is equal to the subframe size or a frame contains one subframe, the codec rate may increase significantly if each energy level is quantized independently. In these cases, differential encoding and decoding of energy levels between consecutive frames may reduce the codec rate. However, this approach may not be optimal because it may cause error propagation when bitstream packets are lost in the transmission channel.
[0147] In some cases, vector quantization of the LPC parameters may deliver lower bit rates. However, this may require more computational load. Simple scalar quantization of the LPC parameters may have lower complexity, but require higher bit rates. In some cases, special scalar quantization that benefits from Huffman coding can be used. However, for very short frame sizes or very low latency codecs, this approach may not be sufficient. Figures 19 to 20 A new method for describing quantized LPC parameters.
[0148] In block 1902, at least one of a differential spectral tilt and an energy difference between a current frame and a previous frame of an audio signal is determined. Fig. 20 , spectrogram 2002 shows a time-frequency diagram of an audio signal. Spectrogram 2004 shows the absolute value of the differential spectral tilt between the current frame and the previous frame of the audio signal. Spectrogram 2006 shows the absolute value of the energy difference between the current frame and the previous frame of the audio signal. Spectrogram 2008 shows a copy decision, where 1 indicates that the current frame will copy the quantized LPC parameters from the previous frame, and 0 indicates that the current frame will quantize / send the LPC parameters again. In this example, the absolute values of the differential spectral tilt and the energy difference are very small most of the time and become relatively large at the end (right side).
[0149] In box 1904, the stability of the audio signal is detected. In some cases, the spectral stability of the audio signal can be determined based on the differential spectrum band and / or the energy difference between the current frame and the previous frame of the audio signal. In some cases, the spectral stability of the audio signal can be further determined based on the frequency of the audio signal. In some cases, the absolute value of the differential spectrum tilt can be determined based on the spectrum of the audio signal (e.g., spectrogram 2004). In some cases, the absolute value of the energy difference between the current frame and the previous frame of the audio signal can also be determined based on the spectrum of the audio signal (e.g., spectrogram 2006). In some cases, if it is determined that for at least a predetermined number of frames, the change in the absolute value of the differential spectrum tilt and / or the change in the absolute value of the energy difference has been within a predetermined range, it can be determined that the spectral stability of the audio signal has been detected.
[0150] In block 1906, in response to detecting the spectral stability of the audio signal, the quantized LPC parameters of the previous frame are copied to the current frame of the audio signal. In some cases, when the spectrum of the audio signal is very stable and does not substantially change from one frame to the next, the current LPC parameters of the current frame may not be encoded / quantized. Instead, the previously quantized LPC parameters may be copied to the current frame because the unquantized LPC parameters retain almost the same information from the previous frame to the current frame. In this case, only 1 bit may be sent to tell the decoder to copy the quantized LPC parameters from the previous frame, thereby making the code rate of the current frame very low and the complexity very low.
[0151] If the spectral stability of the audio signal is not detected, the LPC parameters may be forced to be quantized and encoded again. In some cases, if it is determined that the change in the absolute value of the differential spectral tilt between the current frame and the previous frame of the audio signal is not within a predetermined range for at least a predetermined number of frames, it can be determined that the spectral stability of the audio signal is not detected. In some cases, if it is determined that the change in the absolute value of the energy difference is not within a predetermined range for at least a predetermined number of frames, it can be determined that the spectral stability of the audio signal is not detected.
[0152] In block 1908, it is determined that the quantized LPC parameters have been copied for at least a predetermined number of frames prior to the current frame.
[0153] In some cases, if the quantized LPC parameters have been copied for several frames, it may be forced to quantize and encode the LPC parameters again.
[0154] In response to determining that the quantized LPC parameters have been copied for at least a predetermined number of frames, quantization is performed on the LPC parameters of the current frame in block 1910. In some cases, the number of consecutive frames used to copy the quantized LPC parameters is limited to avoid error propagation when a bitstream packet is lost in a transmission channel.
[0155] In some cases, the LPC replication decision (as shown in the spectrogram 2008) may help quantize the time domain energy envelope. In some cases, when the replication decision is 1, the differential energy level between the current frame and the previous frame may be encoded to save bits. In some cases, when the replication decision is 0, the energy level may be directly quantized to avoid error propagation when bitstream packets are lost in the transmission channel.
[0156] Fig.212 is a diagram showing an example structure of an electronic device 2100 described in the present invention according to an implementation. The electronic device 2100 includes one or more processors 2102, a memory 2104, an encoding circuit 2106, and a decoding circuit 2108. In some implementations, the electronic device 2100 may further include one or more circuits for performing any one or a combination of steps described in the present invention.
[0157] The described implementations of the present subject matter may include one or more features alone or in combination.
[0158] In a first implementation, a method for performing linear prediction coding (LPC) includes: determining at least one of a differential spectral tilt and an energy difference between a current frame and a previous frame of the audio signal; detecting a spectral stability of the audio signal based on at least one of the differential spectral tilt and the energy difference between the current frame and the previous frame of the audio signal; and in response to detecting the spectral stability of the audio signal, copying quantized LPC parameters of the previous frame to the current frame of the audio signal.
[0159] The foregoing and other described implementations may each optionally include one or more of the following features:
[0160] The first feature can be combined with any one of the following features, wherein detecting the spectral stability of the audio signal based on at least one of the differential spectral tilt and the energy difference between the current frame and the previous frame of the audio signal includes: determining the absolute value of the differential spectral tilt between the current frame and the previous frame of the audio signal; determining the absolute value of the energy difference between the current frame and the previous frame of the audio signal; and in response to determining that for at least a predetermined number of frames, at least one of the change in the absolute value of the differential spectral tilt and the change in the absolute value of the energy difference has been within a predetermined range, determining that the spectral stability of the audio signal has been detected.
[0161] The second feature can be combined with any one of the aforementioned features or the following features, wherein the method further includes: determining that spectral stability of the audio signal is not detected based on at least one of the differential spectral tilt and energy difference between the current frame and the previous frame of the audio signal; and in response to determining that the spectral stability of the audio signal is not detected, performing quantization on the LPC parameters of the current frame to generate quantized LPC parameters of the current frame.
[0162] A third feature, which can be combined with any of the preceding features or the following features, comprises determining that the spectral stability of the audio signal is not detected based on at least one of the differential spectral tilt and the energy difference between the current frame and the previous frame of the audio signal, comprises at least one of the following: determining the absolute value of the differential spectral tilt between the current frame and the previous frame of the audio signal; and determining that for at least a predetermined number of frames, the change in the absolute value of the differential spectral tilt is not yet within a predetermined range; or determining the absolute value of the energy difference between the current frame and the previous frame of the audio signal; and determining that for at least a predetermined number of frames, the change in the absolute value of the energy difference is not yet within a predetermined range.
[0163] The fourth feature can be combined with any one of the above features or the following features, wherein the method further includes: determining that the quantized LPC parameters have been copied for at least a predetermined number of frames before the current frame; and in response to determining that the quantized LPC parameters have been copied for at least the predetermined number of frames before the current frame, performing quantization on the LPC parameters of the current frame to generate quantized LPC parameters of the current frame.
[0164] The fifth feature can be combined with any one of the above features or the following features, wherein the method further includes: sending 1 bit to the decoder to indicate that the quantized LPC parameters are copied from the previous frame.
[0165] The sixth feature can be combined with any one of the above features or the following features, wherein the method also includes: in response to detecting the spectral stability of the audio signal, quantizing the differential energy level between the current frame and the previous frame to generate a quantized differential energy level; and in response to determining that the spectral stability is not detected, quantizing the energy level of the current frame to generate a quantized energy level of the current frame.
[0166] In a second implementation, an electronic device includes: a non-volatile memory including instructions; and one or more hardware processors communicating with the memory, wherein the one or more hardware processors execute the instructions to: determine at least one of a differential spectral tilt and an energy difference between a current frame and a previous frame of the audio signal; detect spectral stability of the audio signal based on at least one of the differential spectral tilt and the energy difference between the current frame and the previous frame of the audio signal; and in response to detecting the spectral stability of the audio signal, copy quantized LPC parameters of the previous frame to the current frame of the audio signal.
[0167] The foregoing and other described implementations may each optionally include one or more of the following features:
[0168] The first feature can be combined with any one of the following features, wherein detecting the spectral stability of the audio signal based on at least one of the differential spectral tilt and the energy difference between the current frame and the previous frame of the audio signal includes: determining the absolute value of the differential spectral tilt between the current frame and the previous frame of the audio signal; determining the absolute value of the energy difference between the current frame and the previous frame of the audio signal; and in response to determining that for at least a predetermined number of frames, at least one of the change in the absolute value of the differential spectral tilt and the change in the absolute value of the energy difference has been within a predetermined range, determining that the spectral stability of the audio signal has been detected.
[0169] The second feature can be combined with the aforementioned feature or any one of the following features, wherein the one or more hardware processors also execute the instructions to: determine that the spectral stability of the audio signal is not detected based on at least one of the differential spectral tilt and the energy difference between the current frame and the previous frame of the audio signal; and in response to determining that the spectral stability of the audio signal is not detected, perform quantization on the LPC parameters of the current frame to generate quantized LPC parameters of the current frame.
[0170] A third feature, which can be combined with any of the preceding features or the following features, comprises determining that the spectral stability of the audio signal is not detected based on at least one of the differential spectral tilt and the energy difference between the current frame and the previous frame of the audio signal, comprises at least one of the following: determining the absolute value of the differential spectral tilt between the current frame and the previous frame of the audio signal; and determining that for at least a predetermined number of frames, the change in the absolute value of the differential spectral tilt is not yet within a predetermined range; or determining the absolute value of the energy difference between the current frame and the previous frame of the audio signal; and determining that for at least a predetermined number of frames, the change in the absolute value of the energy difference is not yet within a predetermined range.
[0171] The fourth feature can be combined with any of the above features or the following features, wherein the one or more hardware processors also execute the instructions to: determine that the quantized LPC parameters have been copied to at least a predetermined number of frames before the current frame; and in response to determining that the quantized LPC parameters have been copied to at least the predetermined number of frames before the current frame, perform quantization on the LPC parameters of the current frame to generate quantized LPC parameters of the current frame.
[0172] The fifth feature can be combined with any one of the above features or the following features, wherein the one or more hardware processors also execute the instructions to: send 1 bit to the decoder to indicate that the quantized LPC parameters are copied from the previous frame.
[0173] The sixth feature can be combined with any of the preceding features or the following features, wherein the one or more hardware processors also execute the instructions to: in response to detecting the spectral stability of the audio signal, quantize the differential energy level between the current frame and the previous frame to generate a quantized differential energy level; and in response to determining that the spectral stability is not detected, quantize the energy level of the current frame to generate a quantized energy level of the current frame.
[0174] In a third implementation, a non-transitory computer-readable medium stores computer instructions for performing LPC, which, when executed by one or more hardware processors, causes the one or more hardware processors to perform operations including: determining at least one of a differential spectral tilt and an energy difference between a current frame and a previous frame of the audio signal; detecting spectral stability of the audio signal based on at least one of the differential spectral tilt and the energy difference between the current frame and the previous frame of the audio signal; and in response to detecting the spectral stability of the audio signal, copying quantized LPC parameters of the previous frame to the current frame of the audio signal.
[0175] The foregoing and other described implementations may each optionally include one or more of the following features:
[0176] The first feature can be combined with any one of the following features, wherein detecting the spectral stability of the audio signal based on at least one of the differential spectral tilt and the energy difference between the current frame and the previous frame of the audio signal includes: determining the absolute value of the differential spectral tilt between the current frame and the previous frame of the audio signal; determining the absolute value of the energy difference between the current frame and the previous frame of the audio signal; and in response to determining that for at least a predetermined number of frames, at least one of the change in the absolute value of the differential spectral tilt and the change in the absolute value of the energy difference has been within a predetermined range, determining that the spectral stability of the audio signal has been detected.
[0177] The second feature can be combined with any one of the aforementioned features or the following features, wherein the operation further includes: determining that spectral stability of the audio signal is not detected based on at least one of the differential spectral tilt and energy difference between the current frame and the previous frame of the audio signal; and in response to determining that the spectral stability of the audio signal is not detected, performing quantization on the LPC parameters of the current frame to generate quantized LPC parameters of the current frame.
[0178] A third feature may be combined with any of the preceding features or the following features, wherein determining that the spectral stability of the audio signal is not detected based on at least one of the differential spectral tilt and the energy difference between the current frame and the previous frame of the audio signal comprises at least one of: determining the absolute value of the differential spectral tilt between the current frame and the previous frame of the audio signal; and determining that for at least a predetermined number of frames, the change in the absolute value of the differential spectral tilt is not yet within a predetermined range; or determining the absolute value of the energy difference between the current frame and the previous frame of the audio signal; and determining that for at least a predetermined number of frames, the change in the absolute value of the energy difference is not yet within a predetermined range.
[0179] The fourth feature can be combined with any one of the above features or the following features, wherein the operation also includes: determining that the quantized LPC parameters have been copied for at least a predetermined number of frames before the current frame; and in response to determining that the quantized LPC parameters have been copied for at least the predetermined number of frames before the current frame, performing quantization on the LPC parameters of the current frame to generate quantized LPC parameters of the current frame.
[0180] The fifth feature can be combined with any one of the above features or the following features, wherein the operation further includes: sending 1 bit to the decoder to indicate that the quantized LPC parameters are copied from the previous frame.
[0181] The sixth feature can be combined with any one of the above features or the following features, wherein the operation also includes: in response to detecting the spectral stability of the audio signal, quantizing the differential energy level between the current frame and the previous frame to generate a quantized differential energy level; and in response to determining that the spectral stability is not detected, quantizing the energy level of the current frame to generate a quantized energy level of the current frame.
[0182] Although several embodiments have been provided in the present invention, it is understood that the disclosed systems and methods may be embodied in many other specific forms without departing from the spirit or scope of the present invention. This example is considered to be illustrative rather than restrictive, and the present invention is not intended to be limited to the details given herein. For example, various elements or components may be combined or integrated in another system, or certain features may be omitted or not implemented.
[0183] In addition, without departing from the scope of the present invention, the techniques, systems, subsystems and methods described and shown as discrete or separate in various embodiments may be combined or integrated with other systems, components, techniques or methods. Other examples of changes, substitutions and alterations may be determined by those skilled in the art and may be made without departing from the spirit and scope disclosed herein.
[0184] The embodiments of the present invention and all functional operations described in this specification may be implemented in digital electronic circuits or computer software, firmware or hardware, including the structures disclosed in this specification and their equivalents, or in a combination of one or more thereof. Embodiments of the present invention may be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium to be executed by a data processing device or to control the operation of the data processing device. The computer-readable medium may be a non-transitory computer-readable storage medium, a machine-readable storage device, a machine-readable storage substrate, a memory device, a material composition that affects a machine-readable propagation signal, or a combination of one or more thereof. The term "data processing device" encompasses all devices, equipment and machines for processing data, including, for example, a programmable processor, a computer or multiple processors or computers. In addition to hardware, the device may also include code that creates an execution environment for the computer program in question, for example, code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more thereof. A propagated signal is an artificially generated signal, such as a machine-generated electrical, optical or electromagnetic signal, which is generated to encode information for transmission to a suitable receiver device.
[0185] A computer program (also referred to as a program, software, software application, script, or code) may be written in any form of programming language, including compiled or interpreted languages, and may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for a computing environment. A computer program does not necessarily correspond to a file in a file system. A program may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files storing one or more modules, subroutines, or portions of code). A computer program may be deployed to execute on one computer or on multiple computers located at one site or distributed over multiple sites and interconnected by a communications network.
[0186] The processes and logic flows described in this specification may be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows may also be performed by special purpose logic circuitry, and the apparatus may be implemented as special purpose logic circuitry, such as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC).
[0187] For example, processors suitable for executing computer programs include general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Typically, the processor will receive instructions and data from a read-only memory or a random access memory or both. The basic elements of a computer are a processor for executing instructions and one or more storage devices for storing instructions and data. Typically, a computer will also include or be operably coupled to receive data from one or more mass storage devices (e.g., magnetic disks, magneto-optical disks, or optical disks) for storing data or to transfer data to one or more mass storage devices or both. However, a computer does not have to have such devices. In addition, a computer may be embedded in another device, such as a tablet computer, a mobile phone, a personal digital assistant (PDA), a mobile audio player, a global positioning system (GPS) receiver, to name a few. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
[0188] To provide interaction with a user, embodiments of the present invention may be implemented on a computer having a display device (e.g., a cathode ray tube (CRT) or a liquid crystal display (LCD) monitor) for displaying information to the user, and a keyboard and pointing device (e.g., a mouse or trackball) for the user to provide input to the computer. Other types of devices may also be used to provide interaction with the user; for example, the feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including sound, voice, or tactile input.
[0189] Embodiments of the present invention may be implemented in a computing system that includes a back-end component (e.g., as a data server) or includes a middleware component (e.g., an application server) or includes a front-end component (e.g., a client computer having a graphical user interface or a web browser with which a user can interact with an implementation of the present invention) or includes a combination of one or more such back-end components, middleware components, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include local area networks ("LANs") and wide area networks ("WANs"), such as the Internet.
[0190] The computing system may include clients and servers. Clients and servers are generally remote from each other and typically interact through a communication network. The relationship between a client and a server is generated by computer programs running on the respective computers and having a client-server relationship to each other.
[0191] Although some implementations have been described in detail above, other modifications are possible. For example, although the client application is described as accessing (one or more) delegates, in other implementations, (one or more) delegates may be adopted by other applications implemented by one or more processors, such as applications executed on one or more servers. In addition, the logic flows depicted in the accompanying drawings do not require the specific order or sequential order shown to achieve the desired results. In addition, other actions may be provided from the described processes, or actions may be deleted, and other components may be added to or deleted from the described systems. Therefore, other implementations are within the scope of the appended claims.
[0192] Although this specification contains many specific implementation details, these should not be interpreted as limitations on any invention or the scope of what may be claimed, but rather as descriptions of features that may be specific to a particular embodiment of a particular invention. Certain features described in this specification in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented individually in multiple embodiments or in any suitable sub-combination. In addition, although features may be described above as working in certain combinations and even initially claimed as such, in some cases one or more features may be cut out of the claimed combination, and the claimed combination may be directed to a sub-combination or a variation of that sub-combination.
[0193] Similarly, although operations are depicted in a particular order in the accompanying drawings, this should not be understood as requiring that such operations be performed in the particular order shown or in a continuous order, or that all of the operations shown be performed to achieve the desired result. In some cases, multitasking and parallel processing may be advantageous. In addition, the separation of various system modules and components in the above-described embodiments should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
[0194] Specific embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve the desired results. As an example, the processes depicted in the accompanying drawings do not necessarily require the particular order shown or sequential order to achieve the desired results. In some implementations, multitasking and parallel processing may be advantageous.
Claims
1. A computer-implemented method for performing linear prediction coding (LPC) of an audio signal, characterized in that include: determining at least one of a differential spectral tilt and an energy difference between a current frame and a previous frame of the audio signal; determining an absolute value of the differential spectral tilt between the current frame and the previous frame of the audio signal; determining an absolute value of the energy difference between the current frame and the previous frame of the audio signal; determining that spectral stability of the audio signal is detected in response to determining that at least one of a change in the absolute value of the differential spectral tilt and a change in the absolute value of the energy difference has been within a predetermined range for at least a predetermined number of frames; as well as In response to detecting the spectral stability of the audio signal, the quantized LPC parameters of the previous frame are copied to the current frame of the audio signal.
2. The computer-implemented method of claim 1, wherein: Also includes: determining that spectral stability of the audio signal is not detected based on at least one of the differential spectral tilt and the energy difference between the current frame and the previous frame of the audio signal; as well as In response to determining that the spectral stability of the audio signal is not detected, quantization is performed on the LPC parameters of the current frame to generate quantized LPC parameters of the current frame.
3. The computer-implemented method of claim 2, wherein: in, Determining that spectral stability of the audio signal is not detected based on at least one of the differential spectral tilt and the energy difference between the current frame and the previous frame of the audio signal comprises at least one of the following: determining an absolute value of the differential spectral tilt between the current frame and the previous frame of the audio signal; and determining that for at least a predetermined number of frames, a change in the absolute value of the differential spectral tilt has not been within a predetermined range; or determining an absolute value of the energy difference between the current frame and the previous frame of the audio signal; and determining that, for at least a predetermined number of frames, a change in the absolute value of the energy difference has not been within a predetermined range.
4. The computer-implemented method of claim 1, wherein: Also includes: determining that the quantized LPC parameters have been copied for at least a predetermined number of frames prior to the current frame; as well as In response to determining that the quantized LPC parameters have been copied for at least the predetermined number of frames before the current frame, quantization is performed on the LPC parameters of the current frame to generate quantized LPC parameters of the current frame.
5. The computer-implemented method of claim 1, wherein: Also includes: One bit is sent to the decoder to indicate that the quantized LPC parameters are copied from the previous frame.
6. The computer-implemented method of claim 1, wherein: Also includes: In response to detecting the spectrum stability of the audio signal, quantizing a differential energy level between the current frame and the previous frame to generate a quantized differential energy level; as well as In response to determining that the spectrum stability is not detected, quantization is performed on the energy level of the current frame to generate a quantized energy level of the current frame.
7. An electronic device, characterized in that: include: Non-transitory memory, including instructions; and and one or more hardware processors in communication with the memory, wherein the one or more hardware processors execute the instructions to: determining at least one of a differential spectral tilt and an energy difference between a current frame and a previous frame of the audio signal; determining an absolute value of the differential spectral tilt between the current frame and the previous frame of the audio signal; determining an absolute value of the energy difference between the current frame and the previous frame of the audio signal; and determining that spectral stability of the audio signal is detected in response to determining that at least one of a change in the absolute value of the differential spectral tilt and a change in the absolute value of the energy difference has been within a predetermined range for at least a predetermined number of frames; as well as In response to detecting the spectral stability of the audio signal, the quantized LPC parameters of the previous frame are copied to the current frame of the audio signal.
8. The electronic device according to claim 7, characterized in that: in, The one or more hardware processors also execute the instructions to: determining that spectral stability of the audio signal is not detected based on at least one of the differential spectral tilt and the energy difference between the current frame and the previous frame of the audio signal; as well as In response to determining that the spectral stability of the audio signal is not detected, quantization is performed on the LPC parameters of the current frame to generate quantized LPC parameters of the current frame.
9. The electronic device according to claim 8, characterized in that: in, Determining that spectral stability of the audio signal is not detected based on at least one of the differential spectral tilt and the energy difference between the current frame and the previous frame of the audio signal comprises at least one of the following: determining an absolute value of the differential spectral tilt between the current frame and the previous frame of the audio signal; and determining that for at least a predetermined number of frames, a change in the absolute value of the differential spectral tilt has not been within a predetermined range; or determining an absolute value of the energy difference between the current frame and the previous frame of the audio signal; and determining that, for at least a predetermined number of frames, a change in the absolute value of the energy difference has not been within a predetermined range.
10. The electronic device according to claim 7, characterized in that: in, The one or more hardware processors also execute the instructions to: determining that the quantized LPC parameters have been copied for at least a predetermined number of frames prior to the current frame; as well as In response to determining that the quantized LPC parameters have been copied for at least the predetermined number of frames before the current frame, quantization is performed on the LPC parameters of the current frame to generate quantized LPC parameters of the current frame.
11. The electronic device according to claim 7, characterized in that: in, The one or more hardware processors also execute the instructions to: One bit is sent to the decoder to indicate that the quantized LPC parameters are copied from the previous frame.
12. The electronic device according to claim 7, characterized in that: in, The one or more hardware processors also execute the instructions to: In response to detecting the spectrum stability of the audio signal, quantizing a differential energy level between the current frame and the previous frame to generate a quantized differential energy level; as well as In response to determining that the spectrum stability is not detected, quantization is performed on the energy level of the current frame to generate a quantized energy level of the current frame.
13. A non-transitory computer readable medium, characterized in that Computer instructions for performing linear predictive coding (LPC) of an audio signal are stored, and when the instructions are executed by one or more hardware processors, the one or more hardware processors perform the method according to any one of claims 1 to 6.
14. A computer program product, characterized in that The method comprises computer program codes or instructions, and when the computer program codes or instructions are executed on a computer, the method according to any one of claims 1 to 6 is implemented.
Citation Information
Patent Citations
Systems, methods, and apparatus for signal change detection
US20080027716A1
Encoder, decoder, and encoding method
US20100274558A1
Apparatus and method for MDCT m / s stereo with global ILD with improved mid / side decision
US20180330740A1
Hybrid concealment method: combination of frequency and time domain packet loss concealment in audio codecs
US20190005967A1