EP3903308A1 - High resolution audio coding - Google Patents
High resolution audio codingInfo
- Publication number
- EP3903308A1 EP3903308A1 EP20738546.9A EP20738546A EP3903308A1 EP 3903308 A1 EP3903308 A1 EP 3903308A1 EP 20738546 A EP20738546 A EP 20738546A EP 3903308 A1 EP3903308 A1 EP 3903308A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- pitch
- audio signal
- determining
- pitch lag
- input audio
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000005236 sound signal Effects 0.000 claims abstract description 130
- 238000000034 method Methods 0.000 claims abstract description 67
- 230000008859 change Effects 0.000 claims abstract description 41
- 230000004044 response Effects 0.000 claims abstract description 31
- 230000007774 longterm Effects 0.000 claims abstract description 9
- 238000005070 sampling Methods 0.000 claims description 102
- 238000013459 approach Methods 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 8
- 230000005055 memory storage Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 abstract description 11
- 238000003860 storage Methods 0.000 abstract description 10
- 239000011295 pitch Substances 0.000 description 268
- 238000013139 quantization Methods 0.000 description 96
- 230000003595 spectral effect Effects 0.000 description 24
- 101150036464 aptx gene Proteins 0.000 description 21
- 238000001228 spectrum Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 14
- 238000001514 detection method Methods 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 11
- 238000007906 compression Methods 0.000 description 9
- 230000006835 compression Effects 0.000 description 9
- 230000003044 adaptive effect Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000009826 distribution Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000000873 masking effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 241000353355 Oreosoma atlanticum Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 229920005994 diacetyl cellulose Polymers 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L19/09—Long term prediction, i.e. removing periodical redundancies, e.g. by using adaptive codebook or pitch predictor
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/005—Correction of errors induced by the transmission channel, if related to the coding algorithm
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/90—Pitch determination of speech signals
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L19/083—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being an excitation gain
Definitions
- the present disclosure relates to signal processing, and more specifically to improve efficacy of audio signal coding.
- hi-res audio also known as high-definition audio or HD audio
- HD audio high-resolution audio
- hi-res audio tends to refer to music files that have a higher sampling frequency and/or bit depth than compact disc (CD) - which is specified at 16-bit/44.1 kHz.
- CD compact disc
- the main claimed benefit of hi-res audio files is superior sound quality over compressed audio formats. With more information on the file to play with, hi-res audio tends to boast greater detail and texture, bringing listeners closer to the original performance.
- Hi-res audio comes with a downside though: file size.
- a hi-res file can typically be tens of megabytes in size, and a few tracks can quickly eat up the storage on device.
- storage is much cheaper than it used to be, the size of the files can still make hi-res audio cumbersome to stream over Wi-Fi or mobile network without compression.
- the specification describes techniques for improving efficacy of audio signal coding.
- a method for performing long-term prediction includes: determining a pitch gain and a pitch lag of an input audio signal for at least a predetermined number of frames; determining that the pitch gain of the input audio signal has exceeded a predetermined threshold and that a change of the pitch lag of the input audio signal has been within a predetermined range for at least the predetermined number of frames; and in response to determining that a pitch gain of the input audio signal has exceeded the predetermined threshold and that the change of the pitch lag has been within the predetermined range for at least the predetermined number of frames, setting a pitch gain for a current frame of the input audio signal, in order to improve package loss concealment (PLC).
- PLC package loss concealment
- an electronic device includes: a non-transitory memory storage comprising instructions, and one or more hardware processors in communication with the memory storage, wherein the one or more hardware processors execute the instructions to: determine a pitch gain and a pitch lag of an input audio signal for at least a predetermined number of frames; determine that the pitch gain of the input audio signal has exceeded a predetermined threshold and that a change of the pitch lag of the input audio signal has been within a predetermined range for at least the predetermined number of frames; and in response to determining that a pitch gain of the input audio signal has exceeded the predetermined threshold and that the change of the pitch lag has been within the predetermined range for at least the predetermined number of frames, set a pitch gain for a current frame of the input audio signal, in order to improve PLC.
- a non-transitory computer-readable medium stores computer instructions for performing LTP, that when executed by one or more hardware processors, cause the one or more hardware processors to perform operations including: determining a pitch gain and a pitch lag of an input audio signal for at least a predetermined number of frames; determining that the pitch gain of the input audio signal has exceeded a predetermined threshold and that a change of the pitch lag of the input audio signal has been within a predetermined range for at least the predetermined number of frames; and in response to determining that a pitch gain of the input audio signal has exceeded the predetermined threshold and that the change of the pitch lag has been within the predetermined range for at least the predetermined number of frames, setting a pitch gain for a current frame of the input audio signal, in order to improve PLC.
- FIG. 1 shows an example structure of a L2HC (Low delay & Low complexity High resolution Codec) encoder according to some implementations.
- L2HC Low delay & Low complexity High resolution Codec
- FIG. 2 shows an example structure of a L2HC decoder according to some implementations.
- FIG. 3 shows an example structure of a low low band (LLB) encoder according to some implementations.
- FIG. 4 shows an example structure of an LLB decoder according to some implementations.
- FIG. 5 shows an example structure of a low high band (LHB) encoder according to some implementations.
- FIG. 6 shows an example structure of an LHB decoder according to some implementations.
- FIG. 7 shows an example structure of an encoder for high low band (HLB) and/or high high band (HHB) subband according to some implementations.
- FIG. 8 shows an example structure of a decoder for HLB and/or HHB subband according to some implementations.
- FIG. 9 shows an example spectral structure of a high pitch signal according to some implementations.
- FIG. 10 shows an example process of high pitch detection according to some implementations.
- FIG. 11 is a flowchart illustrating an example method of performing perceptual weighting of a high pitch signal according to some implementations.
- FIG. 12 shows an example structure of a residual quantization encoder according to some implementations.
- FIG. 13 shows an example structure of a residual quantization decoder according to some implementations.
- FIG. 14 is a flowchart illustrating an example method of performing residual quantization for a signal according to some implementations.
- FIG. 15 shows an example of a voiced speech according to some implementations.
- FIG. 16 shows an example process of performing long-term prediction (LTP) control according to some implementations.
- FIG. 17 shows an example spectrum of an audio signal according to some implementations.
- FIG. 18 is a flowchart illustrating an example method of performing long-term prediction (LTP) according to some implementations.
- FIG. 19 is a flowchart illustrating an example method of quantization of linear predictive coding (LPC) parameters according to some implementations.
- LPC linear predictive coding
- FIG. 20 shows an example spectrum of an audio signal according to some implementations.
- FIG. 21 is a diagram illustrating an example structure of an electronic device according to some implementation.
- High-resolution (hi-res) audio also known as high-definition audio or HD audio
- Hi-res audio has slowly but surely hit the mainstream, thanks to the release of more products, streaming services, and even smartphones supporting the hi-res standards.
- high-definition video there’s no single universal standard for hi-res audio.
- hi-res audio tends to refer to music files that have a higher sampling frequency and/or bit depth than compact disc (CD) - which is specified at 16-bit/44.1 kHz.
- Sampling frequency or sample rate refers to the number of times samples of the signal are taken per second during the analogue-to-digital conversion process. The more bits there are, the more accurately the signal can be measured in the first instance.
- Hi-res audio files usually use a sampling frequency of 96 kHz (or even much higher) at 24-bit. In some cases, a sampling frequency of 88.2 kHz can also be used for hi-res audio files too. There also exist 44.1 kHz/24-bit recordings that are labeled HD audio.
- File formats capable of storing high-resolution audio include the popular FLAC (Free Lossless Audio Codec) and ALAC (Apple Lossless Audio Codec) formats, both of which are compressed but in a way which means that, in theory, no information is lost.
- FLAC Free Lossless Audio Codec
- ALAC Apple Lossless Audio Codec
- Other formats include the uncompressed WAV and AIFF formats, DSD (the format used for Super Audio CDs) and the more recent MQA (Master Quality Authenticated).
- MQA Master Quality Authenticated
- WAV Wi-res
- the standard format all CDs are encoded in. Great sound quality but it's uncompressed, meaning huge file sizes (especially for hi-res files). It has poor metadata support (that is, album artwork, artist and song title information).
- AIFF hi-res: Apple’s alternative to WAV, with better metadata support. It is lossless and uncompressed (so big file sizes), but not massively popular.
- FLAC hi-res
- This lossless compression format supports hi-res sample rates, takes up about half the space of WAV, and stores metadata. It’s royalty -free and widely supported (though not by Apple) and is considered the preferred format for downloading and storing hi-res albums.
- ALAC (hi-res): Apple’s own lossless compression format also does hi-res, stores metadata and takes up half the space of WAV. An iTunes- and iOS-friendly alternative to FLAC.
- DSD (hi-res): The single-bit format used for Super Audio CDs. It comes in 2.8 MHz, 5.6 MHz and 11.2 MHz varieties, but isn’t widely supported.
- MQA (hi-res): A lossless compression format that packages hi-res files with more emphasis on the time domain. It is used for Tidal Masters hi-res streaming, but has limited support across products.
- MP3 (not hi-res): Popular, lossy compressed format ensures small file size, but far from the best sound quality. Convenient for storing music on smartphones and iPods, but doesn't support hi- res.
- AAC (not hi-res): An alternative to MP3s, lossy and compressed but sounds better. Used for iTunes downloads, Apple Music streaming (at 256 kbps), and YouTube streaming.
- the main claimed benefit of hi-res audio files is superior sound quality over compressed audio formats.
- Downloads from sites such as Amazon and iTunes, and streaming services such as Spotify use compressed file formats with relatively low bitrates, such as 256 kbps AAC files on Apple Music and 320kbps Ogg Vorbis streams on Spotify.
- the use of lossy compression means data is lost in the encoding process, which in turn means resolution is sacrificed for the sake of convenience and smaller file sizes. This has an effect upon the sound quality.
- the highest quality MP3 has a bit rate of 320 kbps, whereas a 24-bit/l 92 kHz file has a data rate of 9216 kbps.
- Music CDs are 1411 kbps.
- hi-res 24- bit/96 kHz or 24-bit/192 kHz files should, therefore, more closely replicate the sound quality the musicians and engineers were working with in the studio. With more information on the file to play with, hi-res audio tends to boast greater detail and texture, bringing listeners closer to the original performance - provided the playing system is transparent enough.
- Hi-res audio comes with a downside though: file size.
- a hi-res file can typically be tens of megabytes in size, and a few tracks can quickly eat up the storage on device. Although storage is much cheaper than it used to be, the size of the files can still make hi-res audio cumbersome to stream over Wi-Fi or mobile network without compression.
- Smartphones are increasingly supporting hi-res playback. This is restricted to miniaturized Android models, though, such as the current Samsung Galaxy S9 and S9+ and Note 9 (they all support DSD files), and Sony’s Xperia XZ3. LG's V30 and V30S ThinQ’s hi-res supporting phones are currently the ones to offer MQA compatibility, while Samsung’s S9 phones even support Dolby Atmos. Apple iPhones so far don’t support hi-res audio out of the box, though there are ways around this by using the right app, and then either plugging in a digital -to-analog converter (DAC) or using Lightning headphones with the iPhones’ Lightning connector.
- DAC digital -to-analog converter
- High-res-playing tablets also exist and include the likes of the Samsung Galaxy Tab S4.
- MWC 2018 a number of new compatible models were launched, including the M5 range from Huawei and Onkyo’s interesting Granbeat tablet.
- the laptop (Windows, Mac, Linux) is a prime source for storing and playing hi-res music (after all, this is where the tunes from hi-res download sites anyway is downloaded).
- a USB or desktop DAC (such as the Cyrus soundKey or Chord Mojo) is a good way to get great sound quality out of hi-res files stored on the computer or smartphone (whose audio circuits don’t tend to be optimized for sound quality). Simply plug a decent digital-to-analogue converter (DAC) in between the source and headphones for an instant sonic boost.
- DAC digital-to-analogue converter
- Uncompressed audio files encode the full audio input signal into a digital format capable of storing the full load of the incoming data. They offer the highest quality and archival capability that comes at the cost of large file sizes, prohibiting their widespread use in many cases.
- Lossless encoding stands as the middle ground between uncompressed and lossy. It grants similar or same audio quality to uncompressed audio files at reduced sizes. Lossless codecs achieve this by compressing the incoming audio in a non-destructive way on encode before restoring the uncompressed information on decode. The file sizes of Lossless encoded audio are still too large for many applications. Lossy files are encoded differently than uncompressed or Lossless.
- LDAC supports the transfer of 24-bit/96 kHz (Hi-Res) audio files over the air via Bluetooth.
- the closest competing codec is Qualcomm’s aptX HD, which supports 24-bit/48 kHz audio data.
- LDAC comes with three different types of connection mode - quality priority, normal, and connection priority. Each of these offers a different bit rate, weighing in at 990 kbps, 660 kbps, and 330 kbps respectively. Therefore, depending on the type of connection available, there are varying levels of quality. It’s clear that the LDAC’s lowest bit rates aren’t going to give the full 24-bit/96 kHz quality that LDAC boasts though.
- LDAC is an audio coding technology developed by Sony, which allows streaming audio over Bluetooth connections up to 990 kbit/s at 24-bit/96 kHz. It is used by various Sony products, including headphones, smartphones, portable media players, active speakers and home theaters.
- LDAC is a lossy codec, which employs a coding scheme based on the MDCT to provide more efficient data compression.
- LDAC’s main competitor is Qualcomm's aptX-HD technology. High quality standard low-complexity subband codec (SBC) clocks in at a maximum of 328 kbps, Qualcomm’s aptX at 352 kbps, and aptX HD is 576 kbps.
- SBC subband codec
- LDAC Low End connection priority setting
- SBC and aptX SBC and aptX
- SBC and aptX SBC and aptX
- SBC and aptX SBC and aptX
- LDAC makes use of Bluetooth’s optional Enhanced Data Rate (EDR) technology to boost data speeds outside of the usual A2DP (Advanced Audio Distribution Profile) profile limits. But this is hardware dependent. EDR speeds are not usually used by A2DP audio profiles.
- EDR Enhanced Data Rate
- the original aptX algorithm was based on time domain adaptive differential pulse-code modulation (ADPCM) principles without psychoacoustic auditory masking techniques.
- ADPCM time domain adaptive differential pulse-code modulation
- Qualcomm’s aptX audio coding was first introduced to the commercial market as a semiconductor product, a custom programmed DSP integrated circuit with part name APTXIOOED, which was initially adopted by broadcast automation equipment manufacturers who required a means to store CD-quality audio on a computer hard disk drive for automatic playout during a radio show, for example, hence replacing the task of the disc jockey.
- the range of aptX algorithms for real-time audio data compression has continued to expand with intellectual property becoming available in the form of software, firmware, and programmable hardware for professional audio, television and radio broadcast, and consumer electronics, especially applications in wireless audio, low latency wireless audio for gaming and video, and audio over IP.
- the aptX codec can be used instead of SBC (sub-band coding), the sub-band coding scheme for lossy stereo/mono audio streaming mandated by the Bluetooth SIG for the A2DP of Bluetooth, the short-range wireless personal-area network standard. AptX is supported in high-performance Bluetooth peripherals.
- aptX Enhanced aptX
- IP audio codec Today, both standard aptX and Enhanced aptX (E- aptX) are used in both ISDN and IP audio codec hardware from numerous broadcast equipment makers.
- aptX-HD a lossy, but scalable, adaptive audio codec was announced in April, 2009. AptX was previously named apt-X until acquired by CSR pic in 2010. CSR was subsequently acquired by Qualcomm in August 2015.
- the aptX audio codec is used for consumer and automotive wireless audio applications, notably the real-time streaming of lossy stereo audio over the Bluetooth A2DP connection/pairing between a“source” device (such as a smartphone, tablet or laptop) and a“sink” accessory (e.g.
- Enhanced aptX provides coding at 4: 1 compression ratios for professional audio broadcast applications and is suitable for AM, FM, DAB, HD Radio.
- Enhanced aptX supports bit-depths of 16, 20, or 24 bit.
- the bit-rate for E-aptX is 384 kbit/s (dual channel).
- AptX-HD has bit-rate of 576 kbit/s. It supports high- definition audio up to 48 kHz sampling rates and sample resolutions up to 24 bits.
- the codec is still considered lossy. However, it permits a “hybrid” coding scheme for applications where average or peak compressed data rates must be capped at a constrained level. This involves the dynamic application of“near lossless” coding for those sections of audio where completely lossless coding is impossible due to bandwidth constraints.
- “Near lossless” coding maintains a high-definition audio quality, retaining audio frequencies up to 20 kHz and a dynamic range of at least 120 dB. Its main competitor is LDAC codec developed by Sony. Another scalable parameter within aptX-HD is coding latency. It can be dynamically traded against other parameters such as levels of compression and computational complexity.
- LHDC stands for low latency and high-definition audio codec and is announced by Savitech. Comparing to the Bluetooth SBC audio format, LHDC can allow more than 3 times the data transmitted in order to provide the most realistic and high definition wireless audio and achieve no more audio quality disparity between wireless and wired audio devices. The increase of data transmitted enables users to experience more details and a better sound field, and immerse in the emotion of the music. However, more than 3 times SBC data rate can be too high for many practical applications.
- FIG. 1 shows an example structure of an L2HC (Low delay & Low complexity High resolution Codec) encoder 100 according to some implementations.
- FIG. 2 shows an example structure of an L2HC decoder 200 according to some implementations.
- L2HC can offer“transparent” quality at reasonably low bit rate.
- the encoder 100 and decoder 200 may be implemented in a signal codec device.
- the encoder 100 and decoder 200 may be implemented in different devices.
- the encoder 100 and decoder 200 may be implemented in any suitable devices.
- encoder 100 and decoder 200 may have the same algorithm delay (e.g., the same frame size or the same number of subframes).
- the subframe size in samples can be fixed. For example, if the sampling rate is 96 kHz or 48 kHz, the subframe size can be 192 or 96 samples. Each frame can have 1, 2, 3, 4, or 5 subframes, which correspond to different algorithm delays.
- the output sampling rate of the decoder 200 may be 96 kHz or 48 kHz. In some examples, when the input sampling rate of the sampling rate is 48 kHz, the output sampling rate of the decoder 200 may also be 96 kHz or 48 kHz.
- the high band is artificially added if the input sampling rate of the encoder 100 is 48 kHz and the output sampling rate of the decoder 200 is 96 kHz.
- the output sampling rate of the decoder 200 may be 88.2 kHz or 44.1 kHz. In some examples, when the input sampling rate of the encoder 100 is 44.1 kHz, the output sampling rate of the decoder 200 may also be 88.2 kHz or 44.1 kHz. Similarly, the high band may also be artificially added when the input sampling rate of the encoder 100 is 44.1 kHz and the output sampling rate of the decoder 200 is 88.2 kHz. It is the same encoder to encode 96 kHz or 88.2 kHz input signal. It is also the same encoder to encode 48 kHz or 44.1 kHz input signal.
- the input signal bit depth may be 32b, 24b, or 16b.
- the output signal bit depth may also be 32b, 24b, or 16b.
- the encoder bit depth at the encoder 100 and the decoder bit depth at the decoder 200 may be different.
- a coding mode (e.g., ABR_mode) can be set in the encoder 100, and can be modified in real-time during running.
- the ABR_mode information can be sent to the decoder 200 through bit-stream channel by spending 2 bits.
- the default number of channels can be stereo (two channels) as it is for Bluetooth ear phone applications.
- the maximum instant bit rate for all cases/modes may be less than 990 kbps.
- the encoder 100 includes a pre-emphasis filter 104, a quadrature mirror filter (QMF) analysis filter bank 106, a low low band (LLB) encoder 118, a low high band (LHB) encoder 120, a high low band (HLB) encoder 122, a high high band (HHB) encoder 123, and a multiplexer 126.
- the original input digital signal 102 is first pre emphasized by the pre-emphasis filter 104.
- the pre-emphasis filter 104 may be a constant high-pass filter.
- the pre-emphasis filter 104 is helpful for most music signals as the most music signals contain much higher low frequency band energies than high frequency band energies. The increasing of the high frequency band energies can increase the processing precision of the high frequency band signals.
- the output of the pre-emphasis filter 104 passes through the QMF analysis filter bank 106 to generate four subband signals - LLB signal 110, LHB signal 112, HLB signal 114, and HHB signal 116.
- the original input signal is generated at 96 kHz sampling rate.
- the LLB signal 110 includes 0-12 kHz subband
- the LHB signal 112 includes 12-24 kHz subband
- the HLB signal 114 includes 24-36 kHz subband
- the HHB signal 116 includes 36-48 kHz subband.
- each of the four subband signals is encoded respectively by the LLB encoder 118, LHB encoder 120, HLB encoder 122, and HHB encoder 124 to generate an encoded subband signal.
- the four encoded which may be multiplexed by the multiplexer 126 to generate an encoded audio signal.
- 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-process component 214, and a de-emphasis filter 216.
- each one of the LLB decoder 204, LHB decoder 206, HLB decoder 208, and HHB decoder 210 may receive an encoded subband signal from channel 202 respectively, and generate a decoded subband signal.
- the decoded subband signals from the four decoders 204-210 may be summed back through the QMF synthesis filter bank 212 to generate an output signal.
- the output signal may be post-processed by the post-process component 214 if needed, and then de-emphasized by the de-emphasis filter 216 to generate a decoded audio signal 218.
- the de emphasis filter 216 may be a constant filter and may be an inverse filter of the emphasis filter 104.
- the decoded audio signal 218 may be generated by the decoder 200 at the same sampling rate as the input audio signal (e.g., audio signal 102) of the encoder 100. In this example, the decoded audio signal 218 is generated at 96 kHz sampling rate.
- FIG. 3 and FIG. 4 illustrate example structures of an LLB encoder 300 and an LLB decoder 400 respectively.
- the LLB encoder 300 includes a high spectral tilt detection component 304, a tilt filter 306, a linear predictive 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 weighting filter 316, a fast LTP contribution component 318, an addition function unit 320, a bit rate control component 322, an initial residual quantization component 324, a bit rate adjusting component 326, and a fast quantization optimization component 328.
- LPC linear predictive coding
- LTP long-term prediction
- the LLB subband signal 302 first passes through the tilt filter 306 which is controlled by the spectral tilt detection component 304.
- a tilt- filtered LLB signal is generated by the tilt filter 306.
- the tilt-filtered LLB signal may then LPC-analyzed by the LPC analysis component 308 to generate LPC filter parameters in LLB subband.
- the LPC filter parameters may 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 an LLB residual signal. In this residual signal domain, the weighting filter 316 is added for high pitch signal.
- the weighting filter 316 can be switched on or off depending on a high pitch detection by the high-pitch detection component 314, the detail of which will be explained in greater detail later. In some cases, a weighted LLB residual signal can be generated by the weighting filter 316.
- the weighted LLB residual signal becomes a reference signal.
- an LTP (Long-Term Prediction) contribution may be introduced by a fast LTP contribution component 318 based on a LTP condition 312.
- the LTP contribution may be subtracted from the weighted LLB residual signal by the addition function unit 320 to generate a second weighted LLB residual signal which becomes an input signal for the initial LLB residual quantization component 324.
- an output signal of the initial LLB residual quantization component 324 may be processed by the fast quantization optimization component 328 to generate a quantized LLB residual signal 330.
- the quantized LLB residual signal 330 together with the LTP parameters (when LTP exists) may be sent to the LLB decoder 400 through a bitstream channel.
- FIG. 4 shows an example structure of the LLB decoder 400.
- the LLB decoder 400 includes a quantized residual component 406, a fast LTP contribution component 408, an LTP switch 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 spectral tilt flag component 428.
- a quantized residual signal from the quantized residual component 406 an LTP contribution signal from the fast LTP contribution component 408 may be added together by the addition function unit 414 to generate a weighted LLB residual signal as an input signal to the inverse weighting filter 416.
- the inverse weighting filter 416 may be used to remove the weighting and recover the spectral flatness of the LLB quantized residual signal.
- a recovered LLB residual signal may be generated by the inverse weighting filter 416.
- the recovered LLB residual signal may be again filtered by the LPC filter 422 to generate the LLB signal in the signal domain.
- a tilt filter e.g., tilt filter 306
- the LLB signal in the LLB decoder 400 may be filtered by the inverse tilt filter 424 controlled by the high spectral tile flag component 428.
- a decoded LLB signal 430 may be generated by the inverse tilt filter 424.
- FIG. 5 and FIG. 6 illustrate example structures of an LHB encoder 500 and an LHB 600 decoder.
- the LHB encoder 500 includes an LPC analysis component 504, an inverse LPC filter 506, a bit rate control component 510, an initial residual quantization component 512, and a fast quantization optimization component 514.
- an LHB subband signal 502 may be LPC-analyzed by the LPC analysis component 504 to generate LPC filter parameters in LHB subband.
- the LPC filter parameters can 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.
- an LHB residual signal may be generated by the inverse LPC filter 506.
- the LHB residual signal which becomes an input signal for LHB residual quantization, can be processed by the initial residual quantization component 512 and the fast quantization optimization component 514 to generate a quantized LHB residual signal 516.
- the quantized LHB residual signal 516 may be sent to the LHB decoder 600 subsequently.
- the quantized residual 604 obtained from bits 602 may be processed by the LPC filter 606 for LHB subband to generate the decoded LHB signal 608.
- FIG. 7 and FIG. 8 illustrate example structures of an encoder 700 and a decoder 800 for HLB and/or HHB subbands.
- the encoder 700 includes an LPC analysis component 704, an inverse LPC filter 706, a bit rate switch component 708, a bit rate control component 710, a residual quantization component 712, and an energy envelope quantization component 714.
- both HLB and HHB are located at relatively high frequency area. In some cases, they are encoded and decoded in two possible ways. For example, if the bit rate is high enough (e.g., higher than 700 kbps for 96 kHz/24-bit stereo coding), they may be encoded and decoded like LHB.
- HLB or HHB subband signal 702 may be LPC-analyzed by the LPC analysis component 704 to generate LPC filter parameters in HLB or HHB subband.
- the LPC filter parameters may be quantized and sent to the HLB or HHB decoder 800.
- the HLB or HHB subband signal 702 may be filtered by the inverse LPC filter 706 to generate an HLB or HHB residual signal.
- the HLB or HHB residual signal which becomes a target signal for the residual quantization, may be processed by the residual quantization component 712 to generate a quantized HLB or HHB residual signal 716.
- the quantized HLB or HHB residual signal 716 may be subsequently sent to the decoder side (e.g., decoder 800) and processed by the residual decoder 806 and LPC filter 812 to generate decoded HLB or HHB signal 814.
- the decoder side e.g., decoder 800
- the residual decoder 806 and LPC filter 812 may be subsequently sent to the decoder side (e.g., decoder 800) and processed by the residual decoder 806 and LPC filter 812 to generate decoded HLB or HHB signal 814.
- bit rate is relatively low (e.g., lower than 500 kbps for 96 kHz/24-bit stereo coding)
- parameters of the LPC filter generated by the LPC analysis component 704 for HLB or HHB subbands may be still quantized and sent to the decoder side (e.g., decoder 800).
- the HLB or HHB residual signal may be generated without spending any bit, and only the time domain energy envelope of the residual signal is quantized and sent to the decoder with very low bit rate (e.g., less than 3 kbps to encode the energy envelope).
- the energy envelope quantization component 714 may receive the HLB or HHB residual signal from the inverse LPC filter and generate an output signal which may be subsequently sent to the decoder 800. Then, the output signal from the encoder 700 may 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 an HLB or HHB residual signal from the residual generation component 810 and generate decoded HLB or HHB signal 814.
- FIG. 9 shows an example spectral structure 900 of a high pitch signal.
- the spectral structure 900 includes a first harmonic frequency F0 which is relatively higher (e.g., F0>500 Hz) and a background spectrum level which is relatively lower.
- F0 first harmonic frequency
- F0>500 Hz a first harmonic frequency
- an audio signal having the spectral structure 900 may be considered as a high pitch signal.
- the coding error between 0 Hz and F0 may be easily heard due to lack of hearing masking effect.
- the error (e.g., an error between F1 and F2) may be masked by F1 and F2 as long as the peak energies of F1 and F2 are correct. However, if the bit rate is not high enough, the coding errors may not be avoided.
- the adaptive weighting filter can be an one order pole filter as below:
- inverse weighting filter 416 can be an one order zero filter as below:
- the adaptive weighting filter may be shown to improve the high pitch case. However, it may reduce the quality for other cases. Therefore, in some cases, the adaptive weighting filter can be switched on and off based on the detection of the high pitch case (e.g., using the high pitch detection component 314 of FIG. 3). There are many ways to detect high pitch signal. One way is described below with reference to FIG. 10.
- the pitch gain 1002 indicates a periodicity of the signal.
- the smoothed pitch gain 1004 represents a normalized value of the pitch gain 1002. In one example, if the normalized pitch gain (e.g., 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 existence of strong harmonics in spectrum domain. The smoothed pitch gain 1004 may indicate that the periodicity is stable (not just local).
- the pitch lag length 1006 is short (e.g., less than 3 ms), it means the first harmonic frequency F0 is large (high).
- the spectral tilt 1008 may be measured by a segmental signal correlation at one sample distance or the first reflection coefficient of the LPC parameters. In some cases, the spectral tilt 1008 may be used to indicate if the very low frequency area contains significant energy or not. If the energy in the very low frequency area (e.g., frequencies lower than F0) is relatively high, the high pitch signal may not exist. In some cases, when the high pitch signal is detected, the weighting filter may be applied. Otherwise, the weighting filter may not be applied when the high pitch signal is not detected.
- FIG. 11 is a flowchart illustrating an example method 1100 of performing perceptual weighting of a high pitch signal.
- the method 1100 may be implemented by an audio codec device (e.g., LLB encoder 300).
- the method 1100 can be implemented by any suitable device.
- the method 1100 may begin at block 1102 wherein a signal (e.g., signal 102 of FIG. 1) is received.
- the signal may be an audio signal.
- the signal may include one or more subband components.
- the signal may include an LLB component, an LHB component, an HLB component, and an HHB component.
- the signal may be generated at a sampling rate of 96 kHz and have a bandwidth of 48 kHz.
- the LLB component of the signal may include 0-12 kHz subband
- the LHB component may include 12-24 kHz subband
- the HLB component may include 24-36 kHz subband
- the HHB component may include 36-48 kHz subband.
- the signal may be processed by a pre-emphasis filter (e.g., pre-emphasis filter 104) and a QMF analysis filter bank (e.g., QMF analysis filter bank 106) to generate the subband signals in the four subbands.
- a pre-emphasis filter e.g., pre-emphasis filter 104
- a QMF analysis filter bank e.g., QMF analysis filter bank 106
- an LLB subband signal, an LHB subband signal, an HLB subband signal, and an HHB subband signal may be generated respectively for the four subbands.
- a residual signal of at least one of the one or more subband signals is generated based on the at least one of the one or more subband signals.
- at least one of the one or more subband signals may be tilt-filtered to generate a tilt-filtered signal.
- the at least one of the one or more subband signal may include a subband signal in the LLB subband (e.g., the LLB subband signal 302 of FIG. 3).
- the tilt-filtered signal may be further processed by an inverse LPC filter (e.g., inverse LPC filter 310) to generate a residual signal.
- the at least one of the one or more subband signal is a high pitch signal.
- the at least one of the one or more subband signal is determined to be a high pitch signal based on least one of a current pitch gain, a smoothed pitch gain, a pitch lag length, or a spectral tilt of the at least one of the one or more subband signal.
- the pitch gain indicates a periodicity of the signal
- the smoothed pitch gain represents a normalized value of the pitch gain.
- the normalized pitch gain may be 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 existence of strong harmonics in spectrum domain.
- a short pitch lag length means that the first harmonic frequency (e.g., frequency F0 906 of FIG. 9) is large (high). If the first harmonic frequency F0 is relatively higher (e.g., F0>500 Hz) and a background spectrum level which is relatively lower (e.g., below of predetermined threshold), the high pitch signal may be detected.
- the spectral tilt may be measured by a segmental signal correlation at one sample distance or the first reflection coefficient of the LPC parameters. In some cases, the spectral tilt may be used to indicate if the very low frequency area contains significant energy or not. If the energy in the very low frequency area (e.g., frequencies lower than F0) is relatively high, the high pitch signal may not exist.
- a weighting operation is performed on the residual signal of the at least one of the one or more subband signals in response to determining that the at least one of the one or more subband signals is a high pitch signal.
- a weighting filter e.g., weighting filter 316
- a weighted residual signal may be generated.
- the weighting operation may not be performed when the high pitch signal is not detected.
- the coding error at low frequency area may be perceptually sensible due to lack of hearing masking effect. If the bit rate is not high enough, the coding errors may not be avoided.
- the adaptive weighting filter e.g., weighting filter 316
- the weighting methods as described herein may be used to reduce the coding error and improve the signal quality in low frequency area. However, in some cases, this may increase the coding errors at higher frequencies, which may be insignificant for perceptual quality of high pitch signals.
- the adaptive weighting filter may be conditionally turned on and off based on detection of high pitch signal. As described above, the weighting filter may be turned on when high pitch signal is detected and may be turned off when high pitch signal is not detected. In this way, the quality for high pitch cases may still be improved while the quality for non-high-pitch cases may not be compromised.
- a quantized residual signal is generated based on the weighted residual signal as generated at block 1108.
- the weighted residual signal together with an LTP contribution, may be processed an addition function unit to generate a second weighted residual signal.
- the second weighted residual signal may be quantized to generate a quantized residual signal, which may be further sent to the decoder side (e.g., LLB decoder 400 of FIG. 4).
- FIG. 12 and FIG. 13 show example structures of residual quantization encoder 1200 and residual quantization decoder 1300.
- the residual quantization encoder 1200 and residual quantization decoder 1300 may be used to process signals in the LLB subband.
- the residual quantization encoder 1200 includes an energy envelope coding component 1204, a residual normalization component 1206, a first large step coding component 1210, a first fine step component 1212, a target optimizing component 1214, a bit rate adjusting component 1216, a second large step coding component 1218, and a second fine step coding component 1220.
- an LLB subband signal 1202 may be first processed by the energy envelope coding component 1204.
- a time domain energy envelope of the LLB residual signal may be determined and quantized by the energy envelope coding component 1204.
- the quantized time domain energy envelope may be sent to the decoder side (e.g., decoder 1300).
- the determined energy envelope may have a dynamic range from 12 dB to 132 dB in residual domain, covering very low level and very high level.
- every subframe in one frame has one energy level quantization and the peak subframe energy in the frame may be directly coded in dB domain.
- the other subframe energies in the same frame may be coded with Huffman coding approach by coding the difference between the peak energy and the current energy.
- the envelope precision may be acceptable based on human ear masking principle.
- the LLB residual signal may be then normalized by the residual normalization component 1206.
- the LLB residual signal may be normalized based on the quantized time domain energy envelope.
- the LLB residual signal may be divided by the quantized time domain energy envelope to generate a normalized LLB residual signal.
- the normalized LLB residual signal may be used as the initial target signal 1208 for an initial quantization.
- the initial quantization may include two stages of coding/quantization. In some cases, a first stage of coding/quantization includes a large step Huffman coding, and a second stage of coding/quantization includes a fine step uniform coding.
- the initial target signal 1208, which is the normalized LLB residual signal, may be processed by the large step Huffman coding component 1210 first.
- every residual sample may be quantized.
- the Huffman coding may save bits by utilizing the special quantization index probability distribution.
- the quantization index probability distribution becomes proper for Huffman coding.
- the quantization result from the large step quantization may be sub-optimal.
- a uniform quantization may be added with smaller quantization step after the Huffman coding.
- the fine step uniform coding component 1212 may be used to quantize the output signal from the large step Huffman coding component 1210.
- the first stage of coding/quantization of the normalized LLB residual signal selects a relatively large quantization step because the special distribution of the quantized coding index leads to more efficient Huffman coding, and the second stage of coding/quantization uses relatively simple uniform coding with a relatively small quantization step in order to further reduce the quantization errors from the first stage coding/ quantization.
- the initial residual signal may be an ideal target reference if the residual quantization has no error or has small enough error. If the coding bit rate is not high enough, the coding error may always exist and not insignificant. Therefore, this initial residual target reference signal 1208 may be sub-optimal perceptually for the quantization. Although the initial residual target reference signal 1208 is sub-optimal perceptually, it can provide a quick quantization error estimation, which may not only be used to adjust the coding bit rate (e.g., by the bit rate adjusting component 1216), but also be used to build a perceptually optimized target reference signal. In some cases, the perceptually optimized target reference signal may be generated by the target optimizing component 1214 based on the initial residual target reference signal 1208 and the output signal of the initial quantization (e.g., output signal of the fine step uniform coding component 1212).
- the optimized target reference signal may be built in a way not only to minimize the error influence of the current sample but also the previous samples and the future samples. Further, it may optimize the error distribution in spectrum domain for considering human ear perceptual masking effect.
- the first stage Huffman coding and the second stage uniform coding may be performed again in order to replace the first (initial) quantization result and obtain a better perceptual quality.
- the second large step Huffman coding component 1218 and the second fine step uniform coding component 1220 may be used to perform the first stage Huffman coding and the second stage uniform coding on the optimized target reference signal. The quantization of the initial target reference signal and the optimized target reference signal will be discussed below in greater detail.
- the unquantized residual signal or the initial target residual signal may be represented by r(n).
- the residual signal may be initially quantized to get the first quantized residual signal noted as Based on r i (n) , and an impulsive response h w (n) of a perceptual weighting filter, a perceptually optimized target residual signal r o (n) can be evaluated.
- the residual signal may be quantized again to get the second quantized residual signal noted as which has been perceptually optimized to replace the first quantized residual signal
- h w (n) may be determined in many possible ways, for example, by estimating h w (n) based on the LPC filter.
- the LPC filter for LLB subband may be expressed as the following:
- the perceptually weighted filter W(z) can be defined as:
- a is a constant coefficient, 0 ⁇ a ⁇ 1.
- g can be the first reflection coefficient of the LPC filter or simply a constant, - 1 ⁇ g ⁇ 1.
- the impulsive response of the filter W(z) may be defined as h w (n).
- the length of h w (n) depends on the values of a and g.
- the length of h w (n) becomes short and decays to zero quickly. From point view of computational complexity, it is optimal to have a short impulsive response h w (n).
- h w (n) is not short enough, it can be multiplied with a half-hamming window or a half-hanning window in order to make h w (n) decay to zero quickly.
- the target in the perceptually weighted signal domain may be expressed as
- the quantization error may need to be minimized in the perceptually weighted signal domain.
- all residual samples may be jointly quantized. However, this may cause extra complexity.
- the residual may be quantized in the way of sample by sample, but perceptually optimized. For example, may be initially set for all samples in the current frame. Supposing all the samples have been quantized except the sample at m is not quantized, the perceptually best value now at m is not but should be
- the perceptually optimized new target value r o (m) may be quantized again to generate in a way similar to the initial quantization including large step Huffman coding and fine step uniform coding. Then, m will go to next sample position. The above processing is repeated sample by sample, while expressions (7) and (8) are updated with new results until all the samples are optimally quantized. During each updating for each m, expression (8) does not need to be re-calculated because most samples in
- the denominator in expression (7) is a constant so that the division can become a constant multiplication.
- the quantized values from the large step Huffman decoding 1302 and the fine step uniform decoding 1304 are added together by addition function unit 1306 to form the normalized residual signal.
- the normalized residual signal may be processed by the energy envelope decoding component 1308 in the time domain to generate the decoded residual signal 1310.
- FIG. 14 is a flowchart illustrating an example method 1400 of performing residual quantization for a signal.
- the method 1400 may be implemented by an audio codec device (e.g., LLB encoder 300 or residual quantization encoder 1200).
- the method 1100 can be implemented by any suitable device.
- the method 1400 starts at block 1402 where a time domain energy envelope of an input residual signal is determined.
- the input residual signal may be a residual signal in the LLB subband (e.g., LLB residual signal 1202).
- the time domain energy envelope of the input residual signal is quantized to generate a quantized time domain energy envelope.
- the quantized time domain energy envelope may be sent to the decoder side (e.g., decoder 1300).
- the input residual signal is normalized based on the quantized time domain energy envelope to generate a first target residual signal.
- the LLB residual signal may be divided by the quantized time domain energy envelope to generate a normalized LLB residual signal.
- the normalized LLB residual signal may be used as an initial target signal for an initial quantization.
- a first quantization is performed on the first target residual signal at a first bit rate to generate a first quantized residual signal.
- the first residual quantization may include two stages of sub-quantization/coding.
- a first stage of sub quantization may be performed on the first target residual signal at a first quantization step to generate a first sub-quantization output signal.
- a second stage of sub-quantization may be performed on the first sub-quantization output signal at a second quantization step to generate the first quantized residual signal.
- the first quantization step is larger than the second quantization step in size.
- the first stage of sub-quantization may be large step Huffman coding
- the second stage of sub-quantization may be fine step uniform coding.
- the first target residual signal includes a plurality of samples.
- the first quantization may be performed on the first target residual signal sample by sample. In some cases, this may reduce the complexity of the quantization, thereby improving quantization efficiency.
- a second target residual signal is generated based at least on the first quantized residual signal and the first target residual signal.
- the second target residual signal may be generated based on the first target residual signal, the first quantized residual signal, and an impulsive response h w (n) of a perceptual weighting filter.
- a perceptually optimized target residual signal which is the second target residual signal, may be generated for a second residual quantization.
- a second residual quantization is performed on the second target residual signal at a second bit rate to generate a second quantized residual signal.
- the second bit rate may be different from the first bit rate.
- the second bit rate may be higher than the first bit rate.
- the coding error from the first residual quantization at the first bit rate may not insignificant.
- the coding bit rate may be adjusted (e.g., raised) at the second residual quantization to reduce the coding rate.
- the second residual quantization is similar to the first residual quantization.
- the second residual quantization may also include two stages of sub-quantization/coding.
- a first stage of sub-quantization may be performed on the second target residual signal at a large quantization step to generate a sub-quantization output signal.
- a second stage of sub-quantization may be performed on the sub-quantization output signal at a small quantization step to generate the second quantized residual signal.
- the first stage of sub-quantization may be large step Huffman coding
- the second stage of sub-quantization may be fine step uniform coding.
- the second quantized residual signal may be sent to the decoder side (e.g., decoder 1300) through a bitstream channel.
- the LTP may be conditionally turned on and off for better PLC.
- LTP is very helpful for periodic and harmonic signals.
- PLC packet loss concealment
- pitch lag searching adds extra computational complexity to LTP.
- a more efficient may be desirable in LTP to improve coding efficiency.
- An example process of pitch lag searching is described below with reference to FIGS. 15-16.
- FIG. 15 shows an example of voiced speech in which pitch lag 1502 represents the distance between two neighboring periodic cycles (e.g., distance between peaks PI and P2). Some music signals may not only have strong periodicity but also stable pitch lag (almost constant pitch lag).
- FIG. 16 shows an example process 1600 of performing LTP control for better packet loss concealment.
- the process 1600 may be implemented by a codec device (e.g., encoder 100, or encoder 300).
- the process 1600 may be implemented by any suitable device.
- the process 1600 includes a pitch lag (which will be described below as “pitch” for short) searching and an LTP control. Generally, pitch searching can be complicated at high sampling rate with traditional way due to large number of pitch candidates.
- the process 1600 as described herein may include three phases/steps. During a first phase/step, a signal (e.g., the LLB signal 1602) may be low-pass filtered 1604 as the periodicity is mainly in low frequency region.
- a signal e.g., the LLB signal 1602
- the periodicity is mainly in low frequency region.
- the filtered signal may be down- sampled to generate an input signal for a fast initial rough pitch searching 1608.
- the down-sampled signal is generated at 2 kHz sampling rate. Because the total number of pitch candidates at the low sampling rate is not high, a rough pitch result may be obtained in a fast way by searching for all pitch candidates with the low sampling rate.
- the initial pitch searching 1608 may be done using traditional approach of maximizing normalized cross-correlation with short window or auto-correlation with a large window.
- the initial pitch search result can be relatively rough, a fine searching with a cross-correlation approach in the neighborhood of the multiple initial pitches may still be complicated at a high sampling rate (e.g., 24 kHz). Therefore, during a second phase/step (e.g., fast fine pitch search 1610), the pitch precision may be increased in waveform domain by simply looking at waveform peak locations at the low sampling rate. Then, during a third phase/step (e.g., optimized find pitch search 1612), the fine pitch search result from the second phase/step may be optimized with the cross-correlation approach within a small searching range at the high sampling rate.
- a third phase/step e.g., optimized find pitch search 1612
- an initial rough pitch search result may be obtained based on all the pitch candidates that have been searched for.
- a pitch candidate neighborhood may be defined based on the initial rough pitch search result and may be used for the second phase/step to obtain a more precise pitch search result.
- waveform peak locations may be determined based on the pitch candidates and within the pitch candidate neighborhood as determined in the first phase/step.
- the first peak location PI in FIG. 15 may be determined within a limited searching range defined from the initial pitch search result (e.g., the pitch candidate neighborhood determined about 15% variation from the first phase/step).
- the second peak location P2 in FIG. 15 may be determined in a similar way.
- the location difference between PI and P2 becomes a much more precise pitch estimate than the initial pitch estimate.
- the more precise pitch estimate obtained from the second phase/step may be used to define a second pitch candidate neighborhood that can be used in the third phase/step to find an optimized fine pitch lag, e.g., the pitch candidate neighborhood determined about 15% variation from the second phase/step.
- the optimized fine pitch lag can be searched with the normalized cross correlation approach within a very small searching range (e.g., the second pitch candidate neighborhood).
- the LTP may be sub-optimal due to possible error propagation when bitstream packet is lost.
- the LTP may be turned on when it can efficiently improve the audio quality and will not impact PLC significantly.
- the LTP may be efficient when the pitch gain is high and stable, which means the high periodicity lasts at least for several frames (not just for one frame).
- PLC in the high periodicity signal region, PLC is relatively simple and efficient as PLC always uses the periodicity to copy the previous information into the current lost frame.
- the stable pitch lag may also reduce the negative impact to PLC.
- the stable pitch lag means that the pitch lag value does not change significantly at least for several frames, likely resulting in stable pitch in the near future.
- PLC may use the previous pitch information for recovering the current frame.
- the stable pitch lag may help the current pitch estimation for PLC.
- the periodicity detection 1614 and the stability detection 1616 are performed before deciding to turn on or off the LTP.
- the LTP may be turned on.
- pitch gain may be set for highly periodic and stable frames (e.g., the pitch gain is stably high than 0.8), as shown in block 1618.
- an LTP contribution signal may be generated and combined with a weighted residual signal to generate an input signal for residual quantization.
- the pitch gain is not stably high and/or the pitch lag is not stable, the LTP may be turned off.
- the LTP may be also turned off for one or two frames if the LTP has been previously turned on for several frames in order to avoid possible error propagation when bitstream packet is lost.
- the pitch gain may be conditionally reset to zero for better PLC, e.g., when LTP has been previously turned on for several frames.
- a little more coding bit rate may be set in the variable bit rate coding system.
- the pitch gain and the pitch lag may be quantized and sent to the decoder side as shown in block 1622.
- FIG. 17 shows example spectrograms of an audio signal.
- spectrogram 1702 shows time-frequency plot of the audio signal.
- Spectrogram 1702 is shown to include lots of harmonics, which indicates high periodicity of the audio signal.
- Spectrogram 1704 shows original pitch gain of the audio signal. The pitch gain is shown to be stably high for most of the time, which also indicates high periodicity of the audio signal.
- Spectrogram 1706 shows smoothed pitch gain (pitch correlation) of the audio signal. In this example, the smoothed pitch gain represents normalized pitch gain.
- Spectrogram 1708 shows pitch lag and spectrogram 1710 shows quantized pitch gain.
- the pitch lag is shown to be relatively stable for most of the time. As shown the pitch gain has been reset to zero periodically, which indicates the LTP is turned off, to avoid error propagation.
- the quantized pitch gain is also set to zero when the LTP is turned off.
- FIG. 18 is a flowchart illustrating an example method 1800 of performing LTP.
- the method 1400 may be implemented by an audio codec device (e.g., LLB encoder 300).
- the method 1100 can be implemented by any suitable device.
- the method 1800 begins at block 1802 where an input audio signal is received at a first sampling rate.
- the audio signal may include a plurality of first sample, where the plurality of first samples are generated at the first sample rate.
- the plurality of first samples may be generated at a sampling rate of 96 kHz.
- the audio signal is down-sampled.
- the plurality of first samples of the audio signal may be down-sampled to generate a plurality of second samples at a second sampling rate.
- the second sampling rate is lower than the first sampling rate.
- the plurality of second samples may be generated at a sampling rate of 2 kHz.
- a first pitch lag 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 may be obtained in a fast way by searching for all pitch candidates with the low sampling rate.
- a plurality of pitch candidates may be determined based on the plurality of second samples at the second sampling rate.
- the first pitch lag may be determined on the plurality of pitch candidates.
- the first pitch lag may be determined by maximizing normalized cross-correlation with a first window or auto correlation with a second window, where the second window is larger than the first window.
- a second pitch lag is determined based on the first pitch lag as determined at block 1804.
- a first search range may be determined based on the first pitch lag.
- a first peak location and a second peak location may be determined within the first search range.
- the second pitch lag may be determined based on the first peak location and the second peak location. For example, a location difference between the first peak location and the second peak location may be used to determine the second pitch lag.
- a third pitch lag is determined based on the second pitch lag as determined at block 1808.
- the second pitch lag may be used to define a pitch candidate neighborhood that can be used in find an optimized fine pitch lag.
- a second search range may be determined based on the second pitch lag.
- the third pitch lag may be determined within the second search range at a third sampling rate.
- the third sampling rate is higher than the second sampling rate.
- the third sampling rate may be 24 kHz.
- the third pitch lag may be determined using a normalized cross-correlation approach within the second search range at the third sampling rate.
- the third pitch lag may be determined as the pitch lag of the input audio signal.
- a pitch gain of the input audio signal has exceeded a predetermined threshold and that a change of the pitch lag of the input audio signal has been within a predetermined range for the at least a predetermined number of frames.
- the LTP may be more efficient when the pitch gain is high and stable, which means the high periodicity lasts at least for several frames (not just for one frame).
- the stable pitch lag may also reduce the negative impact to PLC.
- the stable pitch lag means that the pitch lag value does not change significantly at least for several frames, likely resulting in stable pitch in the near future.
- a pitch gain is set for a current frame of the input audio signal in response to determining that a pitch gain of the input audio signal has exceeded the predetermined threshold and that the change of the third pitch lag has been within the predetermined range for the at least a predetermined number of previous frames.
- pitch gain is set for highly periodic and stable frames to improve signal quality while not impacting PLC.
- the pitch gain is set to zero for the current frame of the input audio signal. As such, error propagation may be reduced.
- every residual sample is quantized for the high resolution audio codec.
- the computational complexity and the coding bit rate of the residual sample quantization may not change significantly when the frame size changes from 10 ms to 2 ms.
- the computational complexity and the coding bit rate of some codec parameters such as LPC may dramatically increase when the frame size changes from 10 ms to 2 ms.
- LPC parameters need to be quantized and transmitted for every frame.
- LPC differential coding between current frame and previous frame may save bits but it may also cause error propagation when bitstream packet is lost in transmission channel. Therefore, short frame size may be set to achieve a low delay codec.
- the coding bit rate of the LPC parameters may be very high and the computational complexity may be also high as the frame time duration is at the denominator of the bit rate or the complexity.
- a 10 ms frame should contain 5 subframes. Normally, each subframe has an energy level that needs to be quantized. As one frame contains 5 subframes, the 5 subframes’ energy levels may be jointly quantized so that the coding bit rate of the time domain energy envelope is limited. In some cases, when the frame size equals the subframe size or one frame contains one subframe, the coding bit rate may increase significantly if each energy level is quantized independently. In these cases, differential coding of the energy levels between consecutive frames may reduce the coding bit rate. However, such an approach may be sub-optimal as it may cause error propagation when bitstream packet is lost in transmission channel.
- vector quantization of the LPC parameters may deliver lower bit rate. It may take more computational load though. Simple scalar quantization of the LPC parameters may have lower complexity but require higher bit rate. In some cases, a special scalar quantization profiting from Huffman coding may be used. However, this method may not be enough for very short frame size or very low delay coding. A new method of quantization of LPC parameters will be described below with reference to FIGS. 19-20.
- spectrogram 2002 shows a time-frequency plot of the audio signal.
- Spectrogram 2004 shows an absolute value of differential spectrum tilt between current frame and previous frame of the audio signal.
- Spectrogram 2006 shows an absolute value of energy difference between current frame and previous frame of the audio signal.
- Spectrogram 2008 shows a copy decision in which 1 indicates the current frame will copy the quantized LPC parameters from the previous frame and 0 means the current frame will quantize/send the LPC parameters again.
- the absolute values of both the differential spectrum tilt and the energy difference are relatively very small during most time, and they become relatively larger at the end (right side).
- a stability of the audio signal is detected.
- the spectral stability of the audio signal may be determined based on the differential spectrum tile and/or the energy difference between the current frame and the previous frame of the audio signal.
- the spectral stability of the audio signal may be further determined based on the frequency of the audio signal.
- an absolute value of the differential spectrum tilt may be determined based on a spectrum of the audio signal (e.g., the spectrogram 2004).
- an absolute value of the energy difference between current frame and previous frame of the audio signal may be also determined based on a spectrum of the audio signal (e.g., spectrogram 2006).
- the spectral stability of the audio signal may be determined to be detected.
- quantized LPC parameters for the previous frame are copied into the current frame of the audio signal in response to detecting the spectral stability of the audio signal.
- the current LPC parameters for the current frame may not be coded/quantized. Instead, the previous quantized LPC parameters may be copied into the current frame because the unquantized LPC parameters keep almost the same information from the previous frame to the current frame. In such cases, only 1 bit may be sent to tell the decoder that the quantized LPC parameters are copied from the previous frame, resulting in very low bit rate and very low complexity for the current frame.
- the LPC parameters may be forced to be quantized and coded again. In some cases, if it is determined that a change of the absolute value of the differential spectrum tilt between the current frame and the previous frame for the audio signal has not been within a predetermined range for at least a predetermined number frames, it may be determined that the spectral stability of the audio signal is not detected. In some cases, if it is determined that a change of the absolute value of the energy difference has not been within a predetermined range for at least a predetermined number of frames, it may be determined that the spectral stability of the audio signal is not detected.
- the quantized LPC parameters has been copied for at least a predetermined number of frames prior to the current frame. In some cases, if the quantized LPC parameters have been copied for several frames, the LPC parameters may be forced to be quantized and coded again.
- a quantization is performed on the LPC parameters for the current frame in response to determining that the quantized LPC parameters has been copied for at least the predetermined number of frames.
- the number of consecutive frames for copying the quantized LPC parameters is limited in order to avoid error propagation when bitstream packet is lost in transmission channel.
- the LPC copy decision (as shown in spectrogram 2008) may help quantizing the time domain energy envelope.
- the copy decision when the copy decision is 1, a differential energy level between current frame and previous frame may be coded to save bits.
- a direct quantization of the energy level may be performed to avoid error propagation when bitstream packet is lost in transmission channel.
- FIG. 21 is a diagram illustrating an example structure of an electronic device 2100 described in the present disclosure, 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.
- electronic device 2100 can further include one or more circuits for performing any one or a combination of steps described in the present disclosure.
- Described implementations of the subject matter can include one or more features, alone or in combination.
- a method for performing long-term prediction includes: determining a pitch gain and a pitch lag of an input audio signal for at least a predetermined number of frames; determining that the pitch gain of the input audio signal has exceeded a predetermined threshold and that a change of the pitch lag of the input audio signal has been within a predetermined range for at least the predetermined number of frames; and in response to determining that a pitch gain of the input audio signal has exceeded the predetermined threshold and that the change of the pitch lag has been within the predetermined range for at least the predetermined number of frames, setting a pitch gain for a current frame of the input audio signal, in order to improve package loss concealment (PLC).
- PLC package loss concealment
- a first feature combinable with any of the following features, where the method further includes: receiving the input audio signal comprising a plurality of first samples, the plurality of first samples are generated at a first sampling rate; downsampling the plurality of first samples to generate a plurality of second samples at a second sampling rate, wherein the second sampling rate is lower than the first sampling rate; determining a plurality of pitch candidates based on the plurality of second samples at the second sampling rate; and determining a first pitch lag based on the plurality of pitch candidates.
- a second feature, combinable with any of the previous or following features, where determining the first pitch lag based on the plurality of pitch candidates includes determining the first pitch lag by maximizing normalized cross-correlation with a first window or auto-correlation with a second window, wherein the second window is larger than the first window.
- a third feature combinable with any of the previous or following features, where the method further includes: determining a first search range based on the determined first pitch lag; determining a first waveform peak location and a second waveform peak location within the first search range; and determining a second pitch lag based on the first waveform peak location and the second waveform peak location.
- a fourth feature combinable with any of the previous or following features, where the method further includes: determining a second search range based on the second pitch lag; determining a third pitch lag within the second search range at a third sampling rate, wherein the third sampling rate is higher than the second sampling rate; and determining the pitch lag of the input audio signal as the third pitch lag.
- a fifth feature combinable with any of the previous or following features, where determining the third pitch lag within the second search range at the third sampling rate includes determining the third pitch lag using a normalized cross-correlation approach within the second search range at the third sampling rate.
- a sixth feature combinable with any of the previous or following features, where the method further includes: in response to determining at least one of that the pitch gain of the input audio signal is lower than the predetermined threshold or that the change of the pitch lag has not been within the predetermined range for at least the predetermined number of frames, setting a pitch gain to zero for the current frame of the input audio signal, in order to improve PLC.
- a seventh feature combinable with any of the previous or following features, where the method further includes: in response to determining at least one of that the pitch gain of the input audio signal is continuously higher than the predetermined threshold for at least the predetermined number of frames or that the change of the pitch lag has been within the predetermined range for at least the predetermined number of frames, artificially resetting a pitch gain to zero for the current frame of the input audio signal, in order to improve PLC.
- an electronic device includes: a non-transitory memory storage comprising instructions, and one or more hardware processors in communication with the memory storage, wherein the one or more hardware processors execute the instructions to: determine a pitch gain and a pitch lag of an input audio signal for at least a predetermined number of frames; determine that the pitch gain of the input audio signal has exceeded a predetermined threshold and that a change of the pitch lag of the input audio signal has been within a predetermined range for at least the predetermined number of frames; and in response to determining that a pitch gain of the input audio signal has exceeded the predetermined threshold and that the change of the pitch lag has been within the predetermined range for at least the predetermined number of frames, set a pitch gain for a current frame of the input audio signal, in order to improve PLC.
- a first feature combinable with any of the following features, where the one or more hardware processors further execute the instructions to: receive the input audio signal comprising a plurality of first samples, the plurality of first samples are generated at a first sampling rate; downsample the plurality of first samples to generate a plurality of second samples at a second sampling rate, wherein the second sampling rate is lower than the first sampling rate; determine a plurality of pitch candidates based on the plurality of second samples at the second sampling rate; and determine a first pitch lag based on the plurality of pitch candidates.
- a second feature, combinable with any of the previous or following features, where determining the first pitch lag based on the plurality of pitch candidates includes determining the first pitch lag by maximizing normalized cross-correlation with a first window or auto-correlation with a second window, wherein the second window is larger than the first window.
- a third feature combinable with any of the previous or following features, where the one or more hardware processors further execute the instructions to: determine a first search range based on the determined first pitch lag; determine a first waveform peak location and a second waveform peak location within the first search range; and determine a second pitch lag based on the first waveform peak location and the second waveform peak location.
- a fourth feature combinable with any of the previous or following features, where the one or more hardware processors further execute the instructions to: determine a second search range based on the second pitch lag; determine a third pitch lag within the second search range at a third sampling rate, wherein the third sampling rate is higher than the second sampling rate; and determine the pitch lag of the input audio signal as the third pitch lag.
- a fifth feature combinable with any of the previous or following features, where determining the third pitch lag within the second search range at the third sampling rate includes determining the third pitch lag using a normalized cross-correlation approach within the second search range at the third sampling rate.
- a sixth feature combinable with any of the previous or following features, where the one or more hardware processors further execute the instructions to: in response to determining at least one of that the pitch gain of the input audio signal is lower than the predetermined threshold or that the change of the pitch lag has not been within the predetermined range for at least the predetermined number of frames, set a pitch gain to zero for the current frame of the input audio signal, in order to improve PLC.
- a seventh feature combinable with any of the previous or following features, where the one or more hardware processors further execute the instructions to: in response to determining at least one of that the pitch gain of the input audio signal is continuously higher than the predetermined threshold for at least the predetermined number of frames or that the change of the pitch lag has been within the predetermined range for at least the predetermined number of frames, artificially reset a pitch gain to zero for the current frame of the input audio signal, in order to improve PLC.
- a non-transitory computer-readable medium stores computer instructions for performing residual quantization, that when executed by one or more hardware processors, cause the one or more hardware processors to perform operations including: determining a pitch gain and a pitch lag of an input audio signal for at least a predetermined number of frames; determining that the pitch gain of the input audio signal has exceeded a predetermined threshold and that a change of the pitch lag of the input audio signal has been within a predetermined range for at least the predetermined number of frames; and in response to determining that a pitch gain of the input audio signal has exceeded the predetermined threshold and that the change of the pitch lag has been within the predetermined range for at least the predetermined number of frames, setting a pitch gain for a current frame of the input audio signal, in order to improve PLC.
- a first feature combinable with any of the following features, where the operations further include: receiving the input audio signal comprising a plurality of first samples, the plurality of first samples are generated at a first sampling rate; downsampling the plurality of first samples to generate a plurality of second samples at a second sampling rate, wherein the second sampling rate is lower than the first sampling rate; determining a plurality of pitch candidates based on the plurality of second samples at the second sampling rate; and determining a first pitch lag based on the plurality of pitch candidates.
- a second feature, combinable with any of the previous or following features, where determining the first pitch lag based on the plurality of pitch candidates includes determining the first pitch lag by maximizing normalized cross-correlation with a first window or auto-correlation with a second window, wherein the second window is larger than the first window.
- a third feature combinable with any of the previous or following features, where the operations further include: determining a first search range based on the determined first pitch lag; determining a first waveform peak location and a second waveform peak location within the first search range; and determining a second pitch lag based on the first waveform peak location and the second waveform peak location.
- a fourth feature combinable with any of the previous or following features, where the operations further include: determining a second search range based on the second pitch lag; determining a third pitch lag within the second search range at a third sampling rate, wherein the third sampling rate is higher than the second sampling rate; and determining the pitch lag of the input audio signal as the third pitch lag.
- a fifth feature combinable with any of the previous or following features, where determining the third pitch lag within the second search range at the third sampling rate includes determining the third pitch lag using a normalized cross-correlation approach within the second search range at the third sampling rate.
- a sixth feature combinable with any of the previous or following features, where the operations further include: in response to determining at least one of that the pitch gain of the input audio signal is lower than the predetermined threshold or that the change of the pitch lag has not been within the predetermined range for at least the predetermined number of frames, setting a pitch gain to zero for the current frame of the input audio signal, in order to improve PLC.
- a seventh feature combinable with any of the previous or following features, where the operations further include: in response to determining at least one of that the pitch gain of the input audio signal is continuously higher than the predetermined threshold for at least the predetermined number of frames or that the change of the pitch lag has been within the predetermined range for at least the predetermined number of frames, artificially resetting a pitch gain to zero for the current frame of the input audio signal, in order to improve PLC.
- Embodiments of the invention and all of the functional operations described in this specification may be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.
- Embodiments of the 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 for execution by, or to control the operation of, data processing apparatus.
- 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 composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them.
- data processing apparatus encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers.
- the apparatus may include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
- a propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus.
- a computer program (also known as a program, software, software application, script, or code) may be written in any form of programming language, including compiled or interpreted languages, and it may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in 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 that store one or more modules, sub programs, or portions of code).
- a computer program may be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
- 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, and apparatus may be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
- processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer.
- a processor will receive instructions and data from a read only memory or a random access memory or both.
- the essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data.
- a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks.
- mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks.
- a computer need not have such devices.
- a computer may be embedded in another device, e.g., a tablet computer, a mobile telephone, a personal digital assistant (PDA), a mobile audio player, a Global Positioning System (GPS) receiver, to name just 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 by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks.
- the processor and the memory may be supplemented by, or incorporated in, special purpose logic circuitry.
- embodiments of the invention may be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user may provide input to the computer.
- a display device e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
- keyboard and a pointing device e.g., a mouse or a trackball
- Other kinds of devices may be used to provide for interaction with a user as well; for example, feedback provided to the user may be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including acoustic, speech, or tactile input.
- Embodiments of the invention may be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user may interact with an implementation of the invention, or any combination of one or more such back end, middleware, 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 a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.
- LAN local area network
- WAN wide area network
- the computing system may include clients and servers.
- a client and server are generally remote from each other and typically interact through a communication network.
- the relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962791822P | 2019-01-13 | 2019-01-13 | |
PCT/US2020/013301 WO2020146869A1 (en) | 2019-01-13 | 2020-01-13 | High resolution audio coding |
Publications (2)
Publication Number | Publication Date |
---|---|
EP3903308A1 true EP3903308A1 (en) | 2021-11-03 |
EP3903308A4 EP3903308A4 (en) | 2022-02-23 |
Family
ID=71521768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP20738546.9A Pending EP3903308A4 (en) | 2019-01-13 | 2020-01-13 | High resolution audio coding |
Country Status (9)
Country | Link |
---|---|
US (1) | US11749290B2 (en) |
EP (1) | EP3903308A4 (en) |
JP (1) | JP7266689B2 (en) |
KR (1) | KR102664768B1 (en) |
CN (1) | CN113302684B (en) |
AU (1) | AU2020205729A1 (en) |
BR (1) | BR112021013720A2 (en) |
CA (1) | CA3126486A1 (en) |
WO (1) | WO2020146869A1 (en) |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5664055A (en) * | 1995-06-07 | 1997-09-02 | Lucent Technologies Inc. | CS-ACELP speech compression system with adaptive pitch prediction filter gain based on a measure of periodicity |
JP3824706B2 (en) * | 1996-05-08 | 2006-09-20 | 松下電器産業株式会社 | Speech encoding / decoding device |
US7072832B1 (en) * | 1998-08-24 | 2006-07-04 | Mindspeed Technologies, Inc. | System for speech encoding having an adaptive encoding arrangement |
US6968309B1 (en) | 2000-10-31 | 2005-11-22 | Nokia Mobile Phones Ltd. | Method and system for speech frame error concealment in speech decoding |
US7933767B2 (en) * | 2004-12-27 | 2011-04-26 | Nokia Corporation | Systems and methods for determining pitch lag for a current frame of information |
US20080015458A1 (en) | 2006-07-17 | 2008-01-17 | Buarque De Macedo Pedro Steven | Methods of diagnosing and treating neuropsychological disorders |
US8731913B2 (en) * | 2006-08-03 | 2014-05-20 | Broadcom Corporation | Scaled window overlap add for mixed signals |
US8010351B2 (en) * | 2006-12-26 | 2011-08-30 | Yang Gao | Speech coding system to improve packet loss concealment |
EP2077550B8 (en) * | 2008-01-04 | 2012-03-14 | Dolby International AB | Audio encoder and decoder |
US9082416B2 (en) | 2010-09-16 | 2015-07-14 | Qualcomm Incorporated | Estimating a pitch lag |
GB2499505B (en) | 2013-01-15 | 2014-01-08 | Skype | Speech coding |
US9484044B1 (en) * | 2013-07-17 | 2016-11-01 | Knuedge Incorporated | Voice enhancement and/or speech features extraction on noisy audio signals using successively refined transforms |
US9685166B2 (en) * | 2014-07-26 | 2017-06-20 | Huawei Technologies Co., Ltd. | Classification between time-domain coding and frequency domain coding |
EP2980799A1 (en) | 2014-07-28 | 2016-02-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for processing an audio signal using a harmonic post-filter |
TWI602172B (en) * | 2014-08-27 | 2017-10-11 | 弗勞恩霍夫爾協會 | Encoder, decoder and method for encoding and decoding audio content using parameters for enhancing a concealment |
EP3483883A1 (en) | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio coding and decoding with selective postfiltering |
-
2020
- 2020-01-13 CN CN202080008939.6A patent/CN113302684B/en active Active
- 2020-01-13 BR BR112021013720-3A patent/BR112021013720A2/en unknown
- 2020-01-13 EP EP20738546.9A patent/EP3903308A4/en active Pending
- 2020-01-13 AU AU2020205729A patent/AU2020205729A1/en active Pending
- 2020-01-13 CA CA3126486A patent/CA3126486A1/en active Pending
- 2020-01-13 KR KR1020217024677A patent/KR102664768B1/en active IP Right Grant
- 2020-01-13 WO PCT/US2020/013301 patent/WO2020146869A1/en unknown
- 2020-01-13 JP JP2021540408A patent/JP7266689B2/en active Active
-
2021
- 2021-07-12 US US17/373,148 patent/US11749290B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20210343303A1 (en) | 2021-11-04 |
JP2022517234A (en) | 2022-03-07 |
US11749290B2 (en) | 2023-09-05 |
CN113302684A (en) | 2021-08-24 |
JP7266689B2 (en) | 2023-04-28 |
KR20210111815A (en) | 2021-09-13 |
KR102664768B1 (en) | 2024-05-17 |
AU2020205729A1 (en) | 2021-08-05 |
BR112021013720A2 (en) | 2021-09-21 |
CA3126486A1 (en) | 2020-07-16 |
EP3903308A4 (en) | 2022-02-23 |
CN113302684B (en) | 2024-05-17 |
WO2020146869A1 (en) | 2020-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5174027B2 (en) | Mix signal processing apparatus and mix signal processing method | |
US20210343302A1 (en) | High resolution audio coding | |
US9230551B2 (en) | Audio encoder or decoder apparatus | |
EP3550563B1 (en) | Encoder, decoder, encoding method, decoding method, and associated programs | |
US11735193B2 (en) | High resolution audio coding | |
CN106256001B (en) | Signal classification method and apparatus and audio encoding method and apparatus using the same | |
CN113038344A (en) | Electronic device and control method thereof | |
US11715478B2 (en) | High resolution audio coding | |
US11749290B2 (en) | High resolution audio coding for improving package loss concealment | |
JP2013537325A (en) | Determining the pitch cycle energy and scaling the excitation signal | |
RU2800626C2 (en) | High resolution audio encoding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20210728 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R079 Free format text: PREVIOUS MAIN CLASS: G10L0019000000 Ipc: G10L0019080000 |
|
A4 | Supplementary search report drawn up and despatched |
Effective date: 20220126 |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: G10L 19/005 20130101ALN20220120BHEP Ipc: G10L 25/90 20130101ALI20220120BHEP Ipc: G10L 19/08 20130101AFI20220120BHEP |
|
DAV | Request for validation of the european patent (deleted) | ||
DAX | Request for extension of the european patent (deleted) | ||
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
17Q | First examination report despatched |
Effective date: 20230628 |