US20100324913A1 - Method and System for Block Adaptive Fractional-Bit Per Sample Encoding - Google Patents
Method and System for Block Adaptive Fractional-Bit Per Sample Encoding Download PDFInfo
- Publication number
- US20100324913A1 US20100324913A1 US12/818,164 US81816410A US2010324913A1 US 20100324913 A1 US20100324913 A1 US 20100324913A1 US 81816410 A US81816410 A US 81816410A US 2010324913 A1 US2010324913 A1 US 2010324913A1
- Authority
- US
- United States
- Prior art keywords
- frame
- encoding
- samples
- value
- block
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/0017—Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/008—Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/02—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 spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/032—Quantisation or dequantisation of spectral components
- G10L19/038—Vector quantisation, e.g. TwinVQ audio
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/16—Vocoder architecture
- G10L19/167—Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/16—Vocoder architecture
- G10L19/18—Vocoders using multiple modes
- G10L19/24—Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L21/00—Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
- G10L21/02—Speech enhancement, e.g. noise reduction or echo cancellation
- G10L21/038—Speech enhancement, e.g. noise reduction or echo cancellation using band spreading techniques
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
Definitions
- Lossless compression techniques may be used to achieve this goal. Many techniques exist for lossless compression including Huffman coding, run-length coding, and predictive coding. Each of these coding techniques may provide comparatively better compression for certain classes of signals. However, improvements in lossless compression of digital signals are desirable.
- FIG. 1 shows a block diagram of a digital system in accordance with one or more embodiments of the invention
- FIG. 2 shows a flow diagram of a method in accordance with one or more embodiments of the invention
- FIG. 3 shows a block diagram of an audio encoder in accordance with one or more embodiments of the invention.
- FIG. 4 shows an illustrative digital system in accordance with one or more embodiments of the invention.
- ITU-T G.711.0 As approved on Sep. 22, 2009 by ITU-T Study Group 16 is incorporated by reference herein in its entirety.
- embodiments of the invention provide for block adaptive fractional-bit lossless encoding of a digital signal that may reduce the overall number of bits needed to encode data frames of N samples.
- Embodiments of the encoding techniques are capable of achieving bit-rate reduction with respect to NB L bits per frame with acceptable implementation complexity. The acceptable complexity is maintained at the expense of a possible small bit-rate increase with respect to the b NL minimum bits needed for encoding.
- samples in each frame of a digital signal are combined into blocks of M samples for joint encoding, where the maximum number of encoding bits per block is constrained.
- the number of samples M in a block i.e., the block size, may be fixed or may be adapted for each frame.
- the criteria considered in choosing the block size may be the frame size N, the data value range L computed for the frame, and/or a constraint on the maximum number of encoding bits to be used.
- a polynomial value is calculated for each of the K blocks based on the data values in the block and the resulting value is encoded in the output bit-stream.
- a polynomial value is also calculated for the remaining N ⁇ KM data values in the frame, if any, and the resulting value is encoded in the output bit-stream.
- FIG. 1 shows a block diagram of a digital system in accordance with one or more embodiments of the invention.
- the digital system is configured to perform coding of digital audio sequences using embodiments of the methods described herein.
- the system includes a source digital system ( 100 ) that transmits encoded digital audio sequences to a destination digital system ( 102 ) via a communication channel ( 116 ).
- the source digital system ( 100 ) includes an audio capture component ( 104 ), an audio encoder component ( 106 ) and a transmitter component ( 108 ).
- the audio capture component ( 104 ) is configured to provide an audio sequence to be encoded by the audio encoder component ( 106 ).
- the audio capture component ( 104 ) may be, for example, a microphone, a speech synthesizer, an audio archive, or an audio feed from an audio content provider.
- the audio encoder component ( 106 ) receives an audio sequence from the audio capture component ( 104 ) and encodes it for transmission by the transmitter component ( 108 ).
- the audio encoder component ( 106 ) receives the audio sequence from the audio capture component ( 104 ) as a sequence of frames and encodes the audio data in each frame for transmission.
- a method for block adaptive fractional-bit lossless encoding in accordance with one or more of the embodiments described herein may be used.
- the functionality of an embodiment of the audio encoder component ( 106 ) is described in more detail below in reference to FIG. 3 .
- the transmitter component ( 108 ) transmits the encoded audio data to the destination digital system ( 102 ) via the communication channel ( 116 ).
- the communication channel ( 116 ) may be any communication medium, or combination of communication media suitable for transmission of the encoded audio sequence, such as, for example, wired or wireless communication media, a local area network, and/or a wide area network.
- the destination digital system ( 102 ) includes a receiver component ( 110 ), an audio decoder component ( 112 ) and a speaker component ( 114 ).
- the receiver component ( 110 ) receives the encoded audio data from the source digital system ( 100 ) via the communication channel ( 116 ) and provides the encoded audio data to the audio decoder component ( 112 ) for decoding.
- the audio decoder component ( 112 ) reverses the encoding process performed by the audio encoder component ( 106 ) to reconstruct the frames of the audio sequence. The reconstructed audio sequence may then be reproduced by the speaker component ( 114 ).
- the speaker component ( 114 ) may be any suitable audio reproduction device.
- the source digital system ( 100 ) may also include a receiver component and an audio decoder component and/or the destination digital system ( 102 ) may include a transmitter component and an audio encoder component for transmission of audio sequences in both directions.
- the audio encoder component ( 106 ) and the audio decoder component ( 112 ) may perform encoding and decoding in accordance with one or more audio compression standards such as, for example, ITU-T G.711 and G.711.0 standards.
- the audio encoder component ( 106 ) and the audio decoder component ( 112 ) may be implemented in any suitable combination of software, firmware, and hardware, such as, for example, one or more digital signal processors (DSPs), microprocessors, discrete logic, application specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), etc.
- DSPs digital signal processors
- ASICs application specific integrated circuits
- FPGAs field-programmable gate arrays
- Software implementing all or part of the audio encoder and/or audio decoder may be stored in a memory, e.g., internal and/or external ROM and/or RAM, and executed by a suitable instruction execution system, e.g., a microprocessor or DSP.
- Analog-to-digital converters and digital-to-analog converters may provide coupling to the real world
- modulators and demodulators plus antennas for air interfaces
- packetizers may be included to provide formats for transmission.
- FIG. 2 shows a flow diagram of a method for block adaptive fractional-bit lossless encoding of one or more frames of N samples in a digital signal in accordance with one or more embodiments of the invention.
- the N sample values may be normalized to l 0 to l N ⁇ 1 , the polynomial V in Eq. (1) calculated, and the resulting value encoded. Normalization of sample values is discussed below in reference to step 206 .
- V l 0 +l 1 L+l 2 L 2 + . . . +l N ⁇ 1 L N ⁇ 1 (1)
- V is computed for M-sized blocks of the frame.
- the value of M may be selected based on various criteria including an encoding size constraint B v specifying the maximum number of encoding bits per block, i.e., the maximum number of bits for representing V, the data value range L in the frame, and/or N.
- a frame of N samples of the digital signal is received ( 200 ).
- the value of N may be any suitable value.
- N may be 40, 80, 160, 240, or 320.
- Each of the N samples in the frame, I 0 to I N ⁇ 1 may have one of L possible values.
- the data value range L for the frame is then computed ( 202 ).
- the data value range L is an integer representative of the number of possible distinct sample values in the frame.
- the data value range L is reduced to an integer representative of the number of actual distinct sample values in the N samples. For example, if the distinct sample values in the frame are ⁇ 3, ⁇ 2, 0, 1, 2 ⁇ , then L is reduced to 5, indicating that there are five actual sample values in the frame. Any suitable technique may be used to reduce the data value range L, including computing the reduced value of L directly, i.e., without computing the number of possible sample values first. Some suitable methods for reduction of the data value range L are described in copending U.S. patent application Ser. No. ______ (TI-68238), entitled “Adaptive Encoding of a Digital Signal with One or More Missing Values,” filed on Jun. 18, 2010, which is incorporated by reference herein in its entirety. In addition, some suitable methods for data value range reduction are described in ITU-T G.711.0.
- the encoding block size M for the frame is then determined ( 204 ).
- the encoding block size M may be any suitable value and may be determined in any suitable way, e.g., a single empirically determined value, direct computation, table look-up, etc.
- the value of the encoding block size M for the frame is selected such that the number of bits needed to encode the frame B fr is minimized and the polynomial V computed for a sample block of size M contains a sufficiently small number of samples to comply with an encoding size constraint B v , i.e., the number of bits required to represent V does not exceed B v .
- the encoding size constraint B v may have any suitable value and may be empirically determined.
- the encoding size constraint B v may be, for example, 15, i.e., the number of bits that represent a positive value in a 16-bit signed integer.
- each data frame may be encoded with an integer number of bytes (each byte consisting of eight bits).
- minimizing ⁇ B fr /8 ⁇ instead of simply minimizing B fr may be considered as part of selecting the encoding block size M.
- the data value range L of the frame may be considered in selecting the encoding block size M and, in some embodiments of the invention, the frame size N may also be considered.
- information such as the values of L and M and/or a data value set indicator (data value sets are explained below in reference to FIG. 3 and Table 3) need to be communicated to a decoder, and are encoded in the output bit stream in association with the encoded frame.
- this information may be encoded in spare bits left over if the encoded frame data is transmitted as whole bytes.
- the need to transmit such information may also be considered when determining a value for M.
- the encoding block size M may be computed for each frame based on the above discussed criteria for selecting a value for M. In some embodiments of the invention, the encoding block size M may be empirically determined based on statistical analysis of relevant test cases instead of being computed at run time. The empirical determination would include consideration of the criteria for selecting the value of M as discussed above. In some embodiments of the invention, M may be fixed for each frame. In some embodiments of the invention, the encoding block size M may be an empirically determined integer value that is a factor of the frame size(s), i.e., there will be no partial blocks in a frame.
- an empirically determined encoding block size may be provided for each frame size and determining the encoding block size entails selecting the encoding block size corresponding to the size of the received frame.
- empirically determined encoding block sizes may be provided for specific data value ranges. For example, if the data value range L of a frame is 5, the encoding block size M may be set to 3, if the data value range L is 3 or 6, the encoding block size M may be set to 5, etc.
- the N sample values of the frame are normalized ( 206 ). That is, the sample values I 0 to I N ⁇ 1 are mapped to normalized data values l 0 to l N ⁇ 1 .
- the value of V it is desirable that the value of V have a range of twenty seven values. If the normalization is not performed, the range of values of V would be larger than twenty seven, which may lead to inefficient encoding.
- normalized data values are determined and the actual sample values are mapped to the normalized data values.
- the normalized data values may be any suitable values and the mapping of the actual sample values to the normalized sample values may be performed using any suitable mapping technique.
- ⁇ 3,0,3 ⁇ may be mapped to ⁇ 2,1,0 ⁇ or any permutation of ⁇ 0,1,2 ⁇ , as long as the decoder knows how the mapping was done.
- ⁇ 3,0,3 ⁇ may be mapped to ⁇ 1,0,1 ⁇ . In this latter case, even though V may be positive or negative, it still satisfies the constraint that the range of values of V is 27.
- the sample values are normalized such that the values are adjusted to lie between 0 and L ⁇ 1:
- the normalization when data value range reduction is used, the normalization accounts for missing data values in the data value range.
- An example of normalization of sample values when data value range reduction is used is described in ITU-T G.711.0.
- K ⁇ N/M ⁇ consecutive blocks of M samples in the frame are encoded ( 208 ). That is, the polynomial value V is computed for M samples at a time. More specifically, for each data block k in the frame from 0 to K ⁇ 1, a block polynomial value V k is calculated as per Eq. (3).
- V k l kM +l kM+1 L+ . . . +l kM+M ⁇ 1 L M ⁇ 1 (3)
- each V k value is encoded in the output bit-stream.
- the encoding of the V K values in B ML bits may be, for example, a simple binary encoding of each V K value into a binary number represented in B ML bits.
- V K l KM +l KM+1 L+ . . . +l N ⁇ 1 L m ⁇ 1 (4)
- the partial block polynomial value V K value is encoded in the output bit-stream.
- the partial block polynomial value is encoded with ⁇ mb L ⁇ bits.
- the steps 200 - 210 are repeated ( 212 ) for each frame in the digital signal that is to be encoded using block adaptive fractional-bit lossless encoding.
- N, L, and M are known to the decoder, there is no need for transmission of extra information in addition to the bits representing the encoded data.
- the computational complexity increase of embodiments of the above method as compared to to encoding each data value in the frame with B L bits is on the order of N additional multiplications and additions to calculate V k for the encoded blocks.
- steps 204 - 210 are performed solely for frames with selected values of the data value range L and that include selected combinations of distinct sample values, i.e., selected data value sets.
- the selected data value sets, and their data value ranges may be derived by analyzing the results of applying the method to relevant test digital signals to determine the data value sets that could benefit from application of the method, i.e., that had more efficient encoding with application of the method.
- the selected data value sets and data value ranges, or a subset thereof, may then be used to determine if step 204 - 210 are to be performed for a frame.
- the data value range L may be compared to the selected data value ranges. If the value of L is not equal to one of the selected data value ranges, steps 204 - 210 are not performed. If the value of L is equal to one of the selected data value ranges, then the distinct sample values in the frame may be compared to one or more of the selected data value sets that have the same data value range. If the distinct sample values in the frame are the same as those in one of these data value sets, then steps 204 - 210 are performed. Otherwise, they are not performed. Table 3 below shows selected data value sets and data value ranges for an embodiment of the invention included in ITU-T G.711.0.
- Table 1 shows Mb L values for several possible combinations of M and L and Table 2 shows the corresponding B ML and ⁇ values.
- two or more encoding block sizes may be determined and used for encoding the N samples in the frame.
- the forty samples may be divided into six encoding blocks of six samples each and one encoding block of three samples.
- Block polynomial values as per Eq. (3) are then computed for the six six-sample blocks and for the single three-sample block, and the block polynomial values are encoded.
- a partial block polynomial value as per Eq. (4) is also computed for the remaining sample in the frame and encoded. While encoding the frame with a single encoding block size of three may be slightly more efficient, fourteen polynomial calculations are required. Using the two encoding block sizes, some coding efficiency is sacrificed in exchange for reducing the number of polynomial calculations to eight.
- FIG. 3 shows a block diagram of an audio encoder ( 300 ), e.g., the audio encoder ( 106 ) of FIG. 1 , configured to perform block adaptive fractional-bit lossless encoding in accordance with one or more embodiments of the invention. More specifically, FIG. 3 shows a high level block diagram of the ITU-T G.711.0 audio encoder for illustrative purposes.
- the audio encoder ( 300 ) includes a frame buffer ( 302 ), two coding tool selection components ( 304 , 306 ), twelve coding tools, and a multiplexer ( 308 ).
- the audio encoder ( 300 ) receives G.711 audio frames in the frame buffer ( 302 ).
- the frame size N may be 40, 80, 160, 240, or 320 samples. Each frame is then provided to input selection component ( 304 ).
- the input selection component ( 304 ) may select one of seven encoding tools, i.e., the three constant coding tools, the PM zero Rice coding tool, the binary coding tool, the pulse mode coding tool, and the value-location coding tool, to which it is connected for encoding the frame based on an analysis of the audio frame and/or determine that the frame should be encoded by one of the five other coding tools, i.e., the mapped domain LP coding tool, the fractional-bit coding tool, the min-max level coding tool, the direct LP coding tool, and the uncompressed coding tool.
- the five other coding tools i.e., the mapped domain LP coding tool, the fractional-bit coding tool, the min-max level coding tool, the direct LP coding tool, and the uncompressed coding tool.
- the outputs of the latter five coding tools are provided to output selection component ( 306 ) which selects the best output of the five coding tools by analyzing the results of the coding tools.
- the output selection component ( 306 ) may not require a complete encoding by each of the five coding tools, but rather may estimate the resulting encoded frame sizes and select one of the coding tools for performing the actual encoding based on the estimates.
- the multiplexer ( 308 ) selects which coding tool bit stream to output: the bit stream of the coding tool selected by the input selection component ( 304 ) or the bit stream of the coding tool selected by the output selection component ( 306 ).
- the coding techniques provided by each of the coding tools are described in ITU-T G.711.0. Further, the value-location coding tool may provide a coding technique as described in co-pending U.S. patent application Ser. No. ______ (TI-68090), entitled “Method and System For Lossless Value-Location Encoding,” filed on Jun. 18, 2010, which is incorporated by reference herein in its entirety.
- the coding technique described in ITU-T G.711.0 for the fractional-bit coding tool is an embodiment of the method for block adaptive fractional-bit lossless encoding of FIG. 2 .
- the described embodiment also solely encodes frames with selected values of the data value range L and that include selected combinations of distinct sample values, i.e., selected data value sets.
- Table 3 shows the selected data value ranges and data value sets.
- L′ is the reduced value of the data value range L.
- This table also includes prefix codes that are used in lieu of encoding L and the minimum sample value in the output bit stream. Each prefix code represents a specific combination of data value set, data value range, and frame size.
- the data value sets in the table were determined by analysis of the results of applying the method of FIG. 2 to G.711 bit stream test cases. Data value sets were identified that showed bit rate reduction with the application of the method. The twelve data value sets that showed the most bit rate reduction were then chosen for the G.711.0 method embodiment.
- the fractional-bit coding tool may provide coding functionality in accordance with one or more other embodiments of the method of FIG. 2 .
- the value of the encoding block size M may be adapted for each frame, may differ for each frame size, there may be two or more encoding block sizes for a frame, etc.
- Embodiments of the methods and encoders described herein may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the software may be executed in one or more processors, such as a microprocessor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), or digital signal processor (DSP). Any included software may be initially stored in a computer-readable medium such as a compact disc (CD), a diskette, a tape, a file, memory, or any other computer readable storage device and loaded and executed in the processor. In some cases, the software may also be sold in a computer program product, which includes the computer-readable medium and packaging materials for the computer-readable medium. In some cases, the software instructions may be distributed via removable computer readable media (e.g., floppy disk, optical disk, flash memory, USB key), via a transmission path from computer readable media on another digital system, etc.
- removable computer readable media e.g., floppy disk, optical disk, flash memory, USB key
- Embodiments of the methods and encoders for block adaptive fractional-bit encoding as described herein may be implemented for virtually any type of digital system (e.g., a desk top computer, a laptop computer, a handheld device such as a mobile (i.e., cellular) phone, a personal digital assistant, a Voice over Internet Protocol (VOIP) communication device such as a telephone, server or personal computer, etc.) with functionality to capture or otherwise generate digital signals.
- FIG. 4 shows a block diagram of an illustrative digital system ( 400 ) (e.g., a personal computer) that includes a processor ( 402 ), associated memory ( 404 ), a storage device ( 406 ), and numerous other elements and functionalities typical of digital systems (not shown).
- the digital system ( 400 ) may include multiple processors and/or one or more of the processors may be digital signal processors.
- the digital system ( 400 ) may also include input means, such as a keyboard ( 408 ) and a mouse ( 410 ) (or other cursor control device), and output means, such as a monitor ( 412 ) (or other display device).
- the digital system ( 400 ) may also include an audio capture device (not shown) that includes circuitry (e.g., a microphone) for capturing audio sequences.
- the digital system ( 400 ) may include an audio encoder, e.g., the encoder of FIG. 3 , with functionality to perform embodiments of the method of FIG. 2 as described herein.
- the digital system ( 400 ) may be connected to a network (not shown) (e.g., a local area network (LAN), a wide area network (WAN) such as the Internet, a cellular network, any other similar type of network and/or any combination thereof) via a network interface connection (not shown).
- a network e.g., a local area network (LAN), a wide area network (WAN) such as the Internet, a cellular network, any other similar type of network and/or any combination thereof
- LAN local area network
- WAN wide area network
- one or more elements of the aforementioned digital system ( 400 ) may be located at a remote location and connected to the other elements over a network. Further, embodiments of the invention may be implemented on a distributed system having a plurality of nodes, where each portion of the system and software instructions may be located on a different node within the distributed system.
- the node may be a digital system.
- the node may be a processor with associated physical memory.
- the node may alternatively be a processor with shared memory and/or resources.
- Software instructions to perform embodiments of the invention may be stored on a computer readable medium such as a compact disc (CD), a diskette, a tape, a file, memory, or any other computer readable storage device.
- the software instructions may be distributed to the digital system ( 400 ) via removable computer readable media (e.g., floppy disk, optical disk, flash memory, USB key), via a transmission path from computer readable media on another digital system, etc.
Abstract
A method of encoding samples in a digital signal is provided that includes receiving a frame of N samples of the digital signal, computing a data value range L of the N samples, determining a first encoding block size for the frame, mapping the N samples to normalized data values, computing a first block polynomial value for a block of samples in the frame of the first encoding block size, and encoding the first block polynomial value.
Description
- This application claims benefit of U.S. Provisional Patent Application Ser. No. 61/218,307, filed Jun. 18, 2009, U.S. Provisional Patent Application Ser. No. 61/219,198, filed Jun. 22, 2009, and U.S. Provisional Patent Application Ser. No. 61/219,868, filed Jun. 24, 2009, which are incorporated herein by reference in their entirety.
- In many signal processing applications, it is desirable to transmit and/or store a digitized signal such that the exact original signal may be recovered. It is also desirable to reduce the number of bits needed to represent the signal in order to maximize the amount of data that can be handled during the transmission and/or storage process. Lossless compression techniques may be used to achieve this goal. Many techniques exist for lossless compression including Huffman coding, run-length coding, and predictive coding. Each of these coding techniques may provide comparatively better compression for certain classes of signals. However, improvements in lossless compression of digital signals are desirable.
- Particular embodiments in accordance with the invention will now be described, by way of example only, and with reference to the accompanying drawings:
-
FIG. 1 shows a block diagram of a digital system in accordance with one or more embodiments of the invention; -
FIG. 2 shows a flow diagram of a method in accordance with one or more embodiments of the invention; -
FIG. 3 shows a block diagram of an audio encoder in accordance with one or more embodiments of the invention; and -
FIG. 4 shows an illustrative digital system in accordance with one or more embodiments of the invention. - Specific embodiments of the invention will now be described in detail with reference to the accompanying figures. Like elements in the various figures are denoted by like reference numerals for consistency.
- Certain terms are used throughout the following description and the claims to refer to particular system components. As one skilled in the art will appreciate, components in digital systems may be referred to by different names and/or may be combined in ways not shown herein without departing from the described functionality. This document does not intend to distinguish between components that differ in name but not function. In the following discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . . ” Also, the term “couple” and derivatives thereof are intended to mean an indirect, direct, optical, and/or wireless electrical connection. Thus, if a first device couples to a second device, that connection may be through a direct electrical connection, through an indirect electrical connection via other devices and connections, through an optical electrical connection, and/or through a wireless electrical connection.
- In the following detailed description of embodiments of the invention, numerous specific details are set forth in order to provide a more thorough understanding of the invention. However, it will be apparent to one of ordinary skill in the art that the invention may be practiced without these specific details. In other instances, well-known features have not been described in detail to avoid unnecessarily complicating the description. In addition, although method steps may be presented and described herein in a sequential fashion, one or more of the steps shown and described may be omitted, repeated, performed concurrently, and/or performed in a different order than the order shown in the figures and/or described herein. Accordingly, embodiments of the invention should not be considered limited to the specific ordering of steps shown in the figures and/or described herein. Further, while some embodiments of the invention are described herein in reference to the ITU-T G.711.0 standard and/or audio signals, one of ordinary skill in the art will understand that embodiments of the invention are not limited to any particular signal coding standard or type of signal. Recommendation ITU-T G.711.0 (“ITU-T G.711.0”) as approved on Sep. 22, 2009 by ITU-T Study Group 16 is incorporated by reference herein in its entirety.
- The number of bits bL required to encode a data sample of a digital signal having one of L possible data values is bL=log2(L). In most cases, the number bL is not an integer. In many signal encoding systems, an integer number of bits are transmitted so, for each data sample, bL is typically rounded up to the nearest integer BL=┌bL┐. For a uniformly distributed input digital signal with N samples encoded per frame, the minimum number of bits required to encode the full frame is bNL=┌NbL┐. The number of bits actually used, however, may be larger as NBL≧bNL.
- In general, embodiments of the invention provide for block adaptive fractional-bit lossless encoding of a digital signal that may reduce the overall number of bits needed to encode data frames of N samples. Embodiments of the encoding techniques are capable of achieving bit-rate reduction with respect to NBL bits per frame with acceptable implementation complexity. The acceptable complexity is maintained at the expense of a possible small bit-rate increase with respect to the bNL minimum bits needed for encoding.
- More specifically, in one or more embodiments of the invention, samples in each frame of a digital signal are combined into blocks of M samples for joint encoding, where the maximum number of encoding bits per block is constrained. The number of samples M in a block, i.e., the block size, may be fixed or may be adapted for each frame. The criteria considered in choosing the block size may be the frame size N, the data value range L computed for the frame, and/or a constraint on the maximum number of encoding bits to be used. The number of M-sized blocks in a frame is K=└N/M┘ A polynomial value is calculated for each of the K blocks based on the data values in the block and the resulting value is encoded in the output bit-stream. A polynomial value is also calculated for the remaining N−KM data values in the frame, if any, and the resulting value is encoded in the output bit-stream.
-
FIG. 1 shows a block diagram of a digital system in accordance with one or more embodiments of the invention. The digital system is configured to perform coding of digital audio sequences using embodiments of the methods described herein. The system includes a source digital system (100) that transmits encoded digital audio sequences to a destination digital system (102) via a communication channel (116). The source digital system (100) includes an audio capture component (104), an audio encoder component (106) and a transmitter component (108). The audio capture component (104) is configured to provide an audio sequence to be encoded by the audio encoder component (106). The audio capture component (104) may be, for example, a microphone, a speech synthesizer, an audio archive, or an audio feed from an audio content provider. - The audio encoder component (106) receives an audio sequence from the audio capture component (104) and encodes it for transmission by the transmitter component (108). In general, the audio encoder component (106) receives the audio sequence from the audio capture component (104) as a sequence of frames and encodes the audio data in each frame for transmission. During the encoding process, a method for block adaptive fractional-bit lossless encoding in accordance with one or more of the embodiments described herein may be used. The functionality of an embodiment of the audio encoder component (106) is described in more detail below in reference to
FIG. 3 . - The transmitter component (108) transmits the encoded audio data to the destination digital system (102) via the communication channel (116). The communication channel (116) may be any communication medium, or combination of communication media suitable for transmission of the encoded audio sequence, such as, for example, wired or wireless communication media, a local area network, and/or a wide area network.
- The destination digital system (102) includes a receiver component (110), an audio decoder component (112) and a speaker component (114). The receiver component (110) receives the encoded audio data from the source digital system (100) via the communication channel (116) and provides the encoded audio data to the audio decoder component (112) for decoding. In general, the audio decoder component (112) reverses the encoding process performed by the audio encoder component (106) to reconstruct the frames of the audio sequence. The reconstructed audio sequence may then be reproduced by the speaker component (114). The speaker component (114) may be any suitable audio reproduction device.
- In some embodiments of the invention, the source digital system (100) may also include a receiver component and an audio decoder component and/or the destination digital system (102) may include a transmitter component and an audio encoder component for transmission of audio sequences in both directions. Further, the audio encoder component (106) and the audio decoder component (112) may perform encoding and decoding in accordance with one or more audio compression standards such as, for example, ITU-T G.711 and G.711.0 standards. The audio encoder component (106) and the audio decoder component (112) may be implemented in any suitable combination of software, firmware, and hardware, such as, for example, one or more digital signal processors (DSPs), microprocessors, discrete logic, application specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), etc. Software implementing all or part of the audio encoder and/or audio decoder may be stored in a memory, e.g., internal and/or external ROM and/or RAM, and executed by a suitable instruction execution system, e.g., a microprocessor or DSP. Analog-to-digital converters and digital-to-analog converters may provide coupling to the real world, modulators and demodulators (plus antennas for air interfaces) may provide coupling for transmission waveforms, and packetizers may be included to provide formats for transmission.
-
FIG. 2 shows a flow diagram of a method for block adaptive fractional-bit lossless encoding of one or more frames of N samples in a digital signal in accordance with one or more embodiments of the invention. To encode the N samples, the N sample values may be normalized to l0 to lN−1, the polynomial V in Eq. (1) calculated, and the resulting value encoded. Normalization of sample values is discussed below in reference to step 206. -
V=l 0 +l 1 L+l 2 L 2 + . . . +l N−1 L N−1 (1) - For large values of N, calculating V may be unacceptable due to the size of the resulting value. In the method of
FIG. 2 , rather than computing V for the entire frame, V is computed for M-sized blocks of the frame. As is explained in more detail below in reference to step 204, the value of M may be selected based on various criteria including an encoding size constraint Bv specifying the maximum number of encoding bits per block, i.e., the maximum number of bits for representing V, the data value range L in the frame, and/or N. - As shown in
FIG. 2 , initially, a frame of N samples of the digital signal is received (200). The value of N may be any suitable value. For example, N may be 40, 80, 160, 240, or 320. Each of the N samples in the frame, I0 to IN−1, may have one of L possible values. The data value range L for the frame is then computed (202). In one or more embodiments of the invention, the data value range L is an integer representative of the number of possible distinct sample values in the frame. The data value range L may be determined based on the difference between the maximum and minimum values of the N samples in the frame, e.g., L=Imax−Imin+1 where Imax=max{In:n=0, . . . N−1} and Imin=min{In:n=0, . . . N−1}. For example, if the distinct sample values in the frame are {−3, −2, 0, 1, 2}, then L=6, indicating that there are six possible sample values in the frame. - In some embodiments of the invention, the data value range L is reduced to an integer representative of the number of actual distinct sample values in the N samples. For example, if the distinct sample values in the frame are {−3, −2, 0, 1, 2}, then L is reduced to 5, indicating that there are five actual sample values in the frame. Any suitable technique may be used to reduce the data value range L, including computing the reduced value of L directly, i.e., without computing the number of possible sample values first. Some suitable methods for reduction of the data value range L are described in copending U.S. patent application Ser. No. ______ (TI-68238), entitled “Adaptive Encoding of a Digital Signal with One or More Missing Values,” filed on Jun. 18, 2010, which is incorporated by reference herein in its entirety. In addition, some suitable methods for data value range reduction are described in ITU-T G.711.0.
- The encoding block size M for the frame is then determined (204). The encoding block size M may be any suitable value and may be determined in any suitable way, e.g., a single empirically determined value, direct computation, table look-up, etc. The number of bits needed to encode the polynomial V computed for M samples is BML=┌MbL┐. Generally, good values for M result in MbL being slightly less than an integer so that the coding inefficiency ε=BML−MbL is minimized.
- In one or more embodiments of the invention, the value of the encoding block size M for the frame is selected such that the number of bits needed to encode the frame Bfr is minimized and the polynomial V computed for a sample block of size M contains a sufficiently small number of samples to comply with an encoding size constraint Bv, i.e., the number of bits required to represent V does not exceed Bv. The encoding size constraint Bv may have any suitable value and may be empirically determined. For a fixed-point implementation, the encoding size constraint Bv may be, for example, 15, i.e., the number of bits that represent a positive value in a 16-bit signed integer. In some embodiments of the invention, each data frame may be encoded with an integer number of bytes (each byte consisting of eight bits). In such embodiments, minimizing ┌Bfr/8┐ instead of simply minimizing Bfr may be considered as part of selecting the encoding block size M.
- Whether or not an encoding size constraint Bv is considered, the data value range L of the frame may be considered in selecting the encoding block size M and, in some embodiments of the invention, the frame size N may also be considered. For example, the encoding block size M may be determined based on L and N by considering the trade-off between the coding efficiency and the number of values of V that would need to be calculated. For large values of N, a larger value of M may be selected in order to reduce the number of polynomial calculations for encoding the frame, even though the encoding efficiency may be slightly smaller than with a smaller value of M. Compare M=3 versus M=6 for L=5 in Tables 1 and 2 below. In another example, the encoding block size M may be chosen based solely on L by choosing the value of M for a given L that provides the best coding efficiency. For example, for L=5 in the in Tables 1 and 2, M=3 would be selected, since that value provides maximum efficiency in coding.
- In some embodiments of the invention, information such as the values of L and M and/or a data value set indicator (data value sets are explained below in reference to
FIG. 3 and Table 3) need to be communicated to a decoder, and are encoded in the output bit stream in association with the encoded frame. To maximize efficiency, this information may be encoded in spare bits left over if the encoded frame data is transmitted as whole bytes. Thus, the need to transmit such information may also be considered when determining a value for M. - In some embodiments of the invention, the encoding block size M may be computed for each frame based on the above discussed criteria for selecting a value for M. In some embodiments of the invention, the encoding block size M may be empirically determined based on statistical analysis of relevant test cases instead of being computed at run time. The empirical determination would include consideration of the criteria for selecting the value of M as discussed above. In some embodiments of the invention, M may be fixed for each frame. In some embodiments of the invention, the encoding block size M may be an empirically determined integer value that is a factor of the frame size(s), i.e., there will be no partial blocks in a frame. For example, if the possible frame sizes are 40, 80, 160, 240, and 320, M may be set to 5 for all frame sizes. In some embodiments of the invention, an empirically determined encoding block size may be provided for each frame size and determining the encoding block size entails selecting the encoding block size corresponding to the size of the received frame. In some embodiments of the invention, empirically determined encoding block sizes may be provided for specific data value ranges. For example, if the data value range L of a frame is 5, the encoding block size M may be set to 3, if the data value range L is 3 or 6, the encoding block size M may be set to 5, etc.
- Referring again to
FIG. 2 , the N sample values of the frame are normalized (206). That is, the sample values I0 to IN−1 are mapped to normalized data values l0 to lN−1. The normalization is performed to constrain the possible values of the polynomial V for purposes of coding efficiency. For example, if the distinct sample values in a frame are {−3, 0, 3}, then L=3 when data value range reduction is used. Assuming an encoding block size M=3, the polynomial to be calculated is V=l0+l1L+l2L2. If the distinct sample values {−3, 0, 3} are mapped to normalized data values {0, 1, 2}, then the minimum value of V is 0 and the maximum value is 26. This corresponds directly to the fact that for three distinct sample values and an encoding block size of M=3, there are 33=27 possible combinations of the three distinct sample values. To maximize coding efficiency, it is desirable that the value of V have a range of twenty seven values. If the normalization is not performed, the range of values of V would be larger than twenty seven, which may lead to inefficient encoding. - Accordingly, normalized data values are determined and the actual sample values are mapped to the normalized data values. The normalized data values may be any suitable values and the mapping of the actual sample values to the normalized sample values may be performed using any suitable mapping technique. For the above example, {−3,0,3} may be mapped to {2,1,0} or any permutation of {0,1,2}, as long as the decoder knows how the mapping was done. Further, {−3,0,3} may be mapped to {−1,0,1}. In this latter case, even though V may be positive or negative, it still satisfies the constraint that the range of values of V is 27.
- In one or more embodiments of the invention, the sample values are normalized such that the values are adjusted to lie between 0 and L−1:
-
l n =I n −I min n=0, . . . , N−1 (2) - Further, in some embodiments of the invention, when data value range reduction is used, the normalization accounts for missing data values in the data value range. An example of normalization of sample values when data value range reduction is used is described in ITU-T G.711.0.
- Once the encoding block size M is determined and the sample values are normalized, K=└N/M┘ consecutive blocks of M samples in the frame are encoded (208). That is, the polynomial value V is computed for M samples at a time. More specifically, for each data block k in the frame from 0 to K−1, a block polynomial value Vk is calculated as per Eq. (3).
-
V k =l kM +l kM+1 L+ . . . +l kM+M−1 L M−1 (3) - After computation, each Vk value is encoded in the output bit-stream. In some embodiments of the invention, each value is encoded with BML=┌MbL┐=┌M log2(L)┐ bits. In such embodiments, the encoding of the VK values in BML bits may be, for example, a simple binary encoding of each VK value into a binary number represented in BML bits.
- After the K consecutive data blocks are encoded, any remaining samples in the frame are encoded (210). That is, if N−KM is not 0, the remaining m=N−KM samples are encoded. That is, a partial block polynomial value VK is calculated for the m samples as per Eq. (3) and the resulting value is encoded.
-
V K =l KM +l KM+1 L+ . . . +l N−1 L m−1 (4) - After computation, the partial block polynomial value VK value is encoded in the output bit-stream. In some embodiments of the invention, the partial block polynomial value is encoded with ┌mbL┐ bits. The steps 200-210 are repeated (212) for each frame in the digital signal that is to be encoded using block adaptive fractional-bit lossless encoding.
- The total number of bits Bfr needed to encode N samples with the above method is
-
B fr =K┌Mb L ┐+┌mb L┐. - Further, if N, L, and M are known to the decoder, there is no need for transmission of extra information in addition to the bits representing the encoded data. The computational complexity increase of embodiments of the above method as compared to to encoding each data value in the frame with BL bits is on the order of N additional multiplications and additions to calculate Vk for the encoded blocks.
- In one or more embodiments of the invention, steps 204-210 are performed solely for frames with selected values of the data value range L and that include selected combinations of distinct sample values, i.e., selected data value sets. The selected data value sets, and their data value ranges, may be derived by analyzing the results of applying the method to relevant test digital signals to determine the data value sets that could benefit from application of the method, i.e., that had more efficient encoding with application of the method. The selected data value sets and data value ranges, or a subset thereof, may then be used to determine if step 204-210 are to be performed for a frame. In such embodiments, after the data value range L of the received frame is computed, the data value range L may be compared to the selected data value ranges. If the value of L is not equal to one of the selected data value ranges, steps 204-210 are not performed. If the value of L is equal to one of the selected data value ranges, then the distinct sample values in the frame may be compared to one or more of the selected data value sets that have the same data value range. If the distinct sample values in the frame are the same as those in one of these data value sets, then steps 204-210 are performed. Otherwise, they are not performed. Table 3 below shows selected data value sets and data value ranges for an embodiment of the invention included in ITU-T G.711.0.
- In the method of
FIG. 2 , if BL=bL or M=1, no bit-rate reduction is achieved. The number of bits per frame Bfr is bound by NBL≧Bfr≧bNL=┌NbL┐ and the method is potentially most effective when BL−bL≈1. In general, Bfr would be minimized for M=N but, as was previously mentioned, the calculation of a possibly very large polynomial V as per Eq. (1) would be needed that would likely exceed the encoding size constraint Bv. Further, the rounding of Bfr to an integer number of bits introduces a “coding inefficiency” ε that is maximized when the rounding occurs for each data sample, εmax=ε1=N(┌bL┐−bL), and minimized when performed once per frame, εmin=εN=┌NbL┐−NbL as would be done for the case of M=N. For the above method, the coding inefficiency ε depends on the value of M, εM=K(┌MbL┐−MbL)+(┌mbL┐−mbL). Note that ε1≧εM≧εN. - As was previously mentioned, good candidates for the encoding block size M result in MbL being slightly less than an integer so that the coding inefficiency ε=BML−MbL is minimized. For example, Table 1 shows MbL values for several possible combinations of M and L and Table 2 shows the corresponding BML and ε values.
-
TABLE 1 MbL M = 1 M = 2 M = 3 M = 4 M = 5 M = 6 L = 3 1.58 3.17 4.75 6.34 7.92 9.51 L = 5 2.32 4.64 6.97 9.29 11.61 13.93 L = 6 2.58 5.17 7.75 10.34 12.92 15.51 -
TABLE 2 BML ε M = 1 M = 2 M = 3 M = 4 M = 5 M = 6 L = 3 2 0.42 4 0.83 5 0.25 7 0.66 8 0.08 10 0.49 L = 5 3 0.68 5 0.36 7 0.03 10 0.71 12 0.39 14 0.07 L = 6 3 0.42 6 0.83 8 0.25 11 0.66 13 0.08 16 0.49 - As can be seen from these tables, to minimize the coding inefficiency ε for data value ranges L equal 3, 5, and 6, good candidates for the respective encoding block sizes M are 5, 3, and 5. Consider, for example, a case where the data value range L=5 and the frame size N=40. The minimum number of bits needed to encode a frame of forty samples, each taking on one of five possible values, would be ┌40 log2(5)┐=93 bits (twelve bytes). Assuming an integer number of bits per sample, the number of bits used would be larger: 40┌log2(5)┐=120 (fifteen bytes). Applying the method with M=3 or M=5 would result in twelve bytes per frame, equal to the minimum bytes needed to encode the frame and a three byte saving over assumption of an integer number of bits per sample. That is, for M=3, ┌40/3┐=13 blocks of three samples would be encoded with 7 bits per block and the one remaining sample would be encoded with three bits for the total of ┌13*7+3)/8┐=12 bytes per frame. Similarly, for M=5, ┌40/5┐=8 blocks of five samples would be encoded with 12 bits per block for a total of ┌(8*12)/8┐=12 bytes per frame. In this particular case, the M=5 configuration may be preferred as it provides similar performance to the M=3 configuration and also provides an integer number of data blocks within a frame, thus eliminating the need to encode a partial block at the end of the frame.
- Consider also a case where L=5 and the frame size N=160. The minimum number of bits needed to encode a frame of 160 samples would be ┌160 log2(5)┐=258 bits (forty-seven bytes) while the integer-number-of-bits-per-sample encoding would require 160┌log2(5)┐=480 bits (60 bytes). Applying the method with M=3 would result in 47 bytes per frame, i.e., ┌(└160/3┘*7+3)/8┐=47, and with M=5 would result in 48 bytes per frame, i.e., ┌(└160/5┘*12)/8┐=48. Therefore, the M=3 configuration would be preferred in this case and the achieved savings would be 13 bytes (from 60 bytes down to 47 bytes).
- As another simple example, consider the case when L=6 and N=40. The minimum number of bits needed to encode a frame of 40 samples would be ┌40 log2(6)┐=104 (13 bytes) and with an integer number of bits per sample, the number of bits needed would be larger, 40┌log2(6)┐=120 (15 bytes). Applying the method with M=5, the number of bits needed to encode the frame would be └40/5┘*13+0=104 (13 bytes, the same as the minimum number of bits). In this case, two bytes would be saved, from fifteen bytes down to thirteen bytes. For a frame of N=160 samples with L=6, the savings would be eight bytes, from sixty bytes down to fifty-two bytes.
- In one or more embodiments of the invention, instead of determining a single encoding block size M for a frame, two or more encoding block sizes may be determined and used for encoding the N samples in the frame. The use of multiple block sizes in a frame may, for example, reduce the amount of computation needed to encode the frame while maintaining the same or close to the same coding efficiency as using a single block size. For example, if N=40 and L=5, two encoding block sizes, M1=3 and M2=6, may be selected. As can be seen in Table 2 above, the encoding block size M1=3 may yield a better coding efficiency than the encoding block size M2=6, but the difference is very small. The forty samples may be divided into six encoding blocks of six samples each and one encoding block of three samples. Block polynomial values as per Eq. (3) are then computed for the six six-sample blocks and for the single three-sample block, and the block polynomial values are encoded. A partial block polynomial value as per Eq. (4) is also computed for the remaining sample in the frame and encoded. While encoding the frame with a single encoding block size of three may be slightly more efficient, fourteen polynomial calculations are required. Using the two encoding block sizes, some coding efficiency is sacrificed in exchange for reducing the number of polynomial calculations to eight.
-
FIG. 3 shows a block diagram of an audio encoder (300), e.g., the audio encoder (106) ofFIG. 1 , configured to perform block adaptive fractional-bit lossless encoding in accordance with one or more embodiments of the invention. More specifically,FIG. 3 shows a high level block diagram of the ITU-T G.711.0 audio encoder for illustrative purposes. The audio encoder (300) includes a frame buffer (302), two coding tool selection components (304, 306), twelve coding tools, and a multiplexer (308). The audio encoder (300) receives G.711 audio frames in the frame buffer (302). The frame size N may be 40, 80, 160, 240, or 320 samples. Each frame is then provided to input selection component (304). - The input selection component (304) may select one of seven encoding tools, i.e., the three constant coding tools, the PM zero Rice coding tool, the binary coding tool, the pulse mode coding tool, and the value-location coding tool, to which it is connected for encoding the frame based on an analysis of the audio frame and/or determine that the frame should be encoded by one of the five other coding tools, i.e., the mapped domain LP coding tool, the fractional-bit coding tool, the min-max level coding tool, the direct LP coding tool, and the uncompressed coding tool. The outputs of the latter five coding tools are provided to output selection component (306) which selects the best output of the five coding tools by analyzing the results of the coding tools. The output selection component (306) may not require a complete encoding by each of the five coding tools, but rather may estimate the resulting encoded frame sizes and select one of the coding tools for performing the actual encoding based on the estimates. The multiplexer (308) selects which coding tool bit stream to output: the bit stream of the coding tool selected by the input selection component (304) or the bit stream of the coding tool selected by the output selection component (306).
- The coding techniques provided by each of the coding tools are described in ITU-T G.711.0. Further, the value-location coding tool may provide a coding technique as described in co-pending U.S. patent application Ser. No. ______ (TI-68090), entitled “Method and System For Lossless Value-Location Encoding,” filed on Jun. 18, 2010, which is incorporated by reference herein in its entirety. The coding technique described in ITU-T G.711.0 for the fractional-bit coding tool is an embodiment of the method for block adaptive fractional-bit lossless encoding of
FIG. 2 . In the described embodiment, the fractional-bit coding tool uses an empirically determined encoding block size M=5 for all frame sizes, the data value range L is determined based on the difference between the maximum and minimum values in the frame being encoded as previously described, and each block polynomial value Vk is placed in the output bit-stream using ┌M log2(L)┐ bits. Further, the encoding size constraint Bv used during the empirical determination of the value of M was fifteen to ensure that the polynomial values could be represented as positive numbers in a sixteen bit signed integer. - The described embodiment also solely encodes frames with selected values of the data value range L and that include selected combinations of distinct sample values, i.e., selected data value sets. Table 3 shows the selected data value ranges and data value sets. In this table, L′ is the reduced value of the data value range L. This table also includes prefix codes that are used in lieu of encoding L and the minimum sample value in the output bit stream. Each prefix code represents a specific combination of data value set, data value range, and frame size. The data value sets in the table were determined by analysis of the results of applying the method of
FIG. 2 to G.711 bit stream test cases. Data value sets were identified that showed bit rate reduction with the application of the method. The twelve data value sets that showed the most bit rate reduction were then chosen for the G.711.0 method embodiment. -
TABLE 3 Prefix code for each frame length L L′ Data Value Sets 40 80 160 240 320 2 2 {0, 1} 2 14 20 24 28 3 2 {−2, 0} 4 16 22 26 30 3 3 {−2, −1, 0} 6 18 — — — 3 3 {−1, 0, 1} 7 19 — — — 4 3 {−2, 0, 1} 5 17 23 27 31 4 4 {−2, −1, 0, 1} 3 15 21 25 29 5 4 {−3, −2, 0, 1} 8 — — — — 5 4 {−2, 0, 1, 2} 10 — — — — 5 5 {−2, −1, 0, 1, 2} 9 — — — — 6 5 {−3, −2, 0, 1, 2} 12 — — — — 6 6 {−3, −2, −1, 0, 1, 2} 11 — — — — 7 6 {−4, −3, −2, 0, 1, 2} 13 — — — — - In one or more embodiments of the invention, the fractional-bit coding tool may provide coding functionality in accordance with one or more other embodiments of the method of
FIG. 2 . For example, the value of the encoding block size M may be adapted for each frame, may differ for each frame size, there may be two or more encoding block sizes for a frame, etc. - Embodiments of the methods and encoders described herein may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the software may be executed in one or more processors, such as a microprocessor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), or digital signal processor (DSP). Any included software may be initially stored in a computer-readable medium such as a compact disc (CD), a diskette, a tape, a file, memory, or any other computer readable storage device and loaded and executed in the processor. In some cases, the software may also be sold in a computer program product, which includes the computer-readable medium and packaging materials for the computer-readable medium. In some cases, the software instructions may be distributed via removable computer readable media (e.g., floppy disk, optical disk, flash memory, USB key), via a transmission path from computer readable media on another digital system, etc.
- Embodiments of the methods and encoders for block adaptive fractional-bit encoding as described herein may be implemented for virtually any type of digital system (e.g., a desk top computer, a laptop computer, a handheld device such as a mobile (i.e., cellular) phone, a personal digital assistant, a Voice over Internet Protocol (VOIP) communication device such as a telephone, server or personal computer, etc.) with functionality to capture or otherwise generate digital signals.
FIG. 4 shows a block diagram of an illustrative digital system (400) (e.g., a personal computer) that includes a processor (402), associated memory (404), a storage device (406), and numerous other elements and functionalities typical of digital systems (not shown). In one or more embodiments of the invention, the digital system (400) may include multiple processors and/or one or more of the processors may be digital signal processors. - The digital system (400) may also include input means, such as a keyboard (408) and a mouse (410) (or other cursor control device), and output means, such as a monitor (412) (or other display device). The digital system (400) may also include an audio capture device (not shown) that includes circuitry (e.g., a microphone) for capturing audio sequences. The digital system (400) may include an audio encoder, e.g., the encoder of
FIG. 3 , with functionality to perform embodiments of the method ofFIG. 2 as described herein. The digital system (400) may be connected to a network (not shown) (e.g., a local area network (LAN), a wide area network (WAN) such as the Internet, a cellular network, any other similar type of network and/or any combination thereof) via a network interface connection (not shown). Those skilled in the art will appreciate that the input and output means may take other forms. - Further, those skilled in the art will appreciate that one or more elements of the aforementioned digital system (400) may be located at a remote location and connected to the other elements over a network. Further, embodiments of the invention may be implemented on a distributed system having a plurality of nodes, where each portion of the system and software instructions may be located on a different node within the distributed system. In one embodiment of the invention, the node may be a digital system. Alternatively, the node may be a processor with associated physical memory. The node may alternatively be a processor with shared memory and/or resources.
- Software instructions to perform embodiments of the invention may be stored on a computer readable medium such as a compact disc (CD), a diskette, a tape, a file, memory, or any other computer readable storage device. The software instructions may be distributed to the digital system (400) via removable computer readable media (e.g., floppy disk, optical disk, flash memory, USB key), via a transmission path from computer readable media on another digital system, etc.
- While the invention has been described with respect to a limited number of embodiments, those skilled in the art, having benefit of this disclosure, will appreciate that other embodiments can be devised which do not depart from the scope of the invention as disclosed herein. Accordingly, the scope of the invention should be limited only by the attached claims. It is therefore contemplated that the appended claims will cover any such modifications of the embodiments as fall within the true scope and spirit of the invention.
Claims (19)
1. A method of encoding samples in a digital signal, the method comprising:
receiving a frame of N samples of the digital signal;
computing a data value range L of the N samples;
determining a first encoding block size for the frame;
mapping the N samples to normalized data values;
computing a first block polynomial value for a block of samples in the frame of the first encoding block size; and
encoding the first block polynomial value.
2. The method of claim 1 , further comprising:
computing a partial block polynomial value for remaining samples in the frame; and
encoding the partial block polynomial value.
3. The method of claim 1 , further comprising:
determining a second encoding block size for the frame;
computing a second block polynomial value for a block of samples in the frame of the second encoding block size; and
encoding the second block polynomial value.
4. The method of claim 1 , wherein the data value range L indicates a number of possible distinct sample values in the frame.
5. The method of claim 1 , wherein the data range value L indicates a number of actual distinct sample values in the frame.
6. The method of claim 1 , wherein the first encoding block size is an empirically determined value.
7. The method of claim 1 , wherein the first encoding block size is determined based on at least one selected from a group consisting of the data value range L, the value of N, and an encoding size constraint.
8. An encoder for encoding a digital signal, the encoder comprising:
a frame buffer component configured to receive a frame of N samples of the digital signal; and
a fractional-bit coding component configured to encode the frame by:
computing a data value range L of the N samples;
determining a first encoding block size for the frame;
mapping the N samples to normalized data values;
computing a first block polynomial value for a block of samples in the frame of the first encoding block size; and
encoding the first block polynomial value.
9. The encoder of claim 8 , wherein the fractional-bit coding component is further configured to encode the frame by:
computing a partial block polynomial value for remaining samples in the frame; and
encoding the partial block polynomial value.
10. The encoder of claim 8 , wherein the fractional-bit coding component is further configured to encode the frame by:
determining a second encoding block size for the frame;
computing a second block polynomial value for a block of samples in the frame of the second encoding block size; and
encoding the second block polynomial value.
11. The encoder of claim 8 , wherein the data value range L indicates a number of possible distinct sample values in the frame.
12. The encoder of claim 8 , wherein the data range value L indicates a number of actual distinct sample values in the frame.
13. The encoder of claim 8 , wherein the first encoding block size is an empirically determined value.
14. The encoder of claim 8 , wherein the first encoding block size is determined based on at least one selected from a group consisting of the data value range L, the value of N, and an encoding size constraint.
15. A digital system configured to encode samples in a digital signal, the digital system comprising:
means for receiving a frame of N samples of the digital signal;
means for computing a data value range L of the N samples;
means for determining a first encoding block size for the frame;
means for mapping the N samples to normalized data values;
means for computing a first block polynomial value for a block of samples in the frame of the first encoding block size; and
means for encoding the first block polynomial value
16. The digital system of claim 15 , further comprising:
means for computing a partial block polynomial value for remaining samples in the frame; and
means for encoding the partial block polynomial value.
17. The digital system of claim 15 , wherein the data value range L indicates one selected from a group consisting of a number of possible distinct sample values in the frame and a number of actual distinct sample values in the frame.
18. The digital system of claim 15 , wherein the first encoding block size is an empirically determined value.
19. The digital system of claim 15 , wherein the first encoding block size is determined based on at least one selected from a group consisting of the data value range L, the value of N, and an encoding size constraint.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/818,164 US20100324913A1 (en) | 2009-06-18 | 2010-06-18 | Method and System for Block Adaptive Fractional-Bit Per Sample Encoding |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US21830709P | 2009-06-18 | 2009-06-18 | |
US21919809P | 2009-06-22 | 2009-06-22 | |
US21986809P | 2009-06-24 | 2009-06-24 | |
US12/818,164 US20100324913A1 (en) | 2009-06-18 | 2010-06-18 | Method and System for Block Adaptive Fractional-Bit Per Sample Encoding |
Publications (1)
Publication Number | Publication Date |
---|---|
US20100324913A1 true US20100324913A1 (en) | 2010-12-23 |
Family
ID=43355058
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/818,164 Abandoned US20100324913A1 (en) | 2009-06-18 | 2010-06-18 | Method and System for Block Adaptive Fractional-Bit Per Sample Encoding |
US12/818,165 Active 2031-12-07 US8700410B2 (en) | 2009-06-18 | 2010-06-18 | Method and system for lossless value-location encoding |
US12/818,166 Active 2032-06-22 US9245529B2 (en) | 2009-06-18 | 2010-06-18 | Adaptive encoding of a digital signal with one or more missing values |
US14/199,187 Active 2030-07-21 US9257126B2 (en) | 2009-06-18 | 2014-03-06 | Method and system for lossless value-location encoding |
US15/018,524 Active US10510351B2 (en) | 2009-06-18 | 2016-02-08 | Method and system for lossless value-location encoding |
US16/690,536 Active US11380335B2 (en) | 2009-06-18 | 2019-11-21 | Method and system for lossless value-location encoding |
US17/856,031 Pending US20220335958A1 (en) | 2009-06-18 | 2022-07-01 | Method and system for lossless value-location encoding |
Family Applications After (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/818,165 Active 2031-12-07 US8700410B2 (en) | 2009-06-18 | 2010-06-18 | Method and system for lossless value-location encoding |
US12/818,166 Active 2032-06-22 US9245529B2 (en) | 2009-06-18 | 2010-06-18 | Adaptive encoding of a digital signal with one or more missing values |
US14/199,187 Active 2030-07-21 US9257126B2 (en) | 2009-06-18 | 2014-03-06 | Method and system for lossless value-location encoding |
US15/018,524 Active US10510351B2 (en) | 2009-06-18 | 2016-02-08 | Method and system for lossless value-location encoding |
US16/690,536 Active US11380335B2 (en) | 2009-06-18 | 2019-11-21 | Method and system for lossless value-location encoding |
US17/856,031 Pending US20220335958A1 (en) | 2009-06-18 | 2022-07-01 | Method and system for lossless value-location encoding |
Country Status (1)
Country | Link |
---|---|
US (7) | US20100324913A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100324914A1 (en) * | 2009-06-18 | 2010-12-23 | Jacek Piotr Stachurski | Adaptive Encoding of a Digital Signal with One or More Missing Values |
US20110099005A1 (en) * | 2008-12-31 | 2011-04-28 | Dejun Zhang | Framing method and apparatus |
CN103856314A (en) * | 2014-02-27 | 2014-06-11 | 深圳市文鼎创数据科技有限公司 | Audio communication self-adaption baud rate method and device and USB key |
WO2016045232A1 (en) * | 2014-09-28 | 2016-03-31 | 北京塞宾科技有限公司 | Streaming media service providing method |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9047875B2 (en) | 2010-07-19 | 2015-06-02 | Futurewei Technologies, Inc. | Spectrum flatness control for bandwidth extension |
CN103390303B (en) * | 2013-06-28 | 2016-01-06 | 上海爱信诺航芯电子科技有限公司 | Based on financial key and the control method thereof of audio frequency and USB data transmission |
US10109284B2 (en) | 2016-02-12 | 2018-10-23 | Qualcomm Incorporated | Inter-channel encoding and decoding of multiple high-band audio signals |
WO2017223095A1 (en) | 2016-06-20 | 2017-12-28 | Anacode Labs, Inc. | Parallel, block-based data encoding and decoding using multiple computational units |
WO2018204768A1 (en) * | 2017-05-05 | 2018-11-08 | Anacode Labs, Inc. | Encoded block format |
US11064055B2 (en) | 2019-07-22 | 2021-07-13 | Anacode Labs, Inc. | Accelerated data center transfers |
Citations (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4092493A (en) * | 1976-11-30 | 1978-05-30 | Bell Telephone Laboratories, Incorporated | Speech recognition system |
US4819088A (en) * | 1986-03-19 | 1989-04-04 | Victor Company Of Japan, Ltd. | Magnetic recording and reproducing system |
US5394473A (en) * | 1990-04-12 | 1995-02-28 | Dolby Laboratories Licensing Corporation | Adaptive-block-length, adaptive-transforn, and adaptive-window transform coder, decoder, and encoder/decoder for high-quality audio |
US5581653A (en) * | 1993-08-31 | 1996-12-03 | Dolby Laboratories Licensing Corporation | Low bit-rate high-resolution spectral envelope coding for audio encoder and decoder |
US5884269A (en) * | 1995-04-17 | 1999-03-16 | Merging Technologies | Lossless compression/decompression of digital audio data |
US6424936B1 (en) * | 1998-10-29 | 2002-07-23 | Matsushita Electric Industrial Co., Ltd. | Block size determination and adaptation method for audio transform coding |
US6484285B1 (en) * | 2000-02-07 | 2002-11-19 | Ericsson, Inc. | Tailbiting decoder and method |
US20030216924A1 (en) * | 2002-05-20 | 2003-11-20 | Teac Corporation | Compressed audio data editing method and apparatus |
US20040153959A1 (en) * | 2002-10-26 | 2004-08-05 | Samsung Electronics Co., Ltd. | LDPC decoding apparatus and method |
US6778966B2 (en) * | 1999-11-29 | 2004-08-17 | Syfx | Segmented mapping converter system and method |
US6784812B2 (en) * | 1995-05-15 | 2004-08-31 | Dolby Laboratories Licensing Corporation | Lossless coding method for waveform data |
US20050063219A1 (en) * | 2001-09-28 | 2005-03-24 | Stmicroelectronics S.R.I. | Multilevel memory device with memory cells storing non-power of two voltage levels |
US20050065787A1 (en) * | 2003-09-23 | 2005-03-24 | Jacek Stachurski | Hybrid speech coding and system |
US20050114123A1 (en) * | 2003-08-22 | 2005-05-26 | Zelijko Lukac | Speech processing system and method |
US20050159947A1 (en) * | 2001-12-14 | 2005-07-21 | Microsoft Corporation | Quantization matrices for digital audio |
US20050165611A1 (en) * | 2004-01-23 | 2005-07-28 | Microsoft Corporation | Efficient coding of digital media spectral data using wide-sense perceptual similarity |
US20050222775A1 (en) * | 2004-04-02 | 2005-10-06 | Saad Kisra | Data compression methods and systems |
US7003704B2 (en) * | 2002-11-12 | 2006-02-21 | International Business Machines Corporation | Two-dimensional redundancy calculation |
US20060114977A1 (en) * | 2004-12-01 | 2006-06-01 | Texas Instruments, Inc. | System and method to mitigate interference in DSL systems |
US20060153286A1 (en) * | 2001-12-04 | 2006-07-13 | Andersen Soren V | Low bit rate codec |
US20060239576A1 (en) * | 2005-04-22 | 2006-10-26 | Debargha Mukherjee | System and method for compressing an image |
US20070011000A1 (en) * | 2005-07-11 | 2007-01-11 | Lg Electronics Inc. | Apparatus and method of processing an audio signal |
US20070027656A1 (en) * | 2005-05-10 | 2007-02-01 | Baraniuk Richard G | Method and Apparatus for Distributed Compressed Sensing |
US7249153B2 (en) * | 2002-08-01 | 2007-07-24 | The Johns Hopkins University | Data compression using Chebyshev transform |
US20080008246A1 (en) * | 2006-07-05 | 2008-01-10 | Debargha Mukherjee | Optimizing video coding |
US20080095453A1 (en) * | 2003-05-27 | 2008-04-24 | Norihisa Suzuki | Method and apparatus for lossless data transformation with preprocessing by adaptive compression, multidimensional prediction, multi-symbol decoding enhancement enhancements |
US20080144701A1 (en) * | 2001-04-09 | 2008-06-19 | Robert Gold Communication System, Inc. | Method and system for synchronizing and selectively addressing multiple receivers in a wireless, spread spectrum communication system |
US20080154589A1 (en) * | 2005-09-05 | 2008-06-26 | Fujitsu Limited | Apparatus and method for encoding audio signals |
US20080167882A1 (en) * | 2007-01-06 | 2008-07-10 | Yamaha Corporation | Waveform compressing apparatus, waveform decompressing apparatus, and method of producing compressed data |
US20080215317A1 (en) * | 2004-08-04 | 2008-09-04 | Dts, Inc. | Lossless multi-channel audio codec using adaptive segmentation with random access point (RAP) and multiple prediction parameter set (MPPS) capability |
US7471839B2 (en) * | 1999-07-30 | 2008-12-30 | Indinell Sociedad Anonima | Multimedia transmission with image and audio compressions |
US20090070104A1 (en) * | 2000-11-30 | 2009-03-12 | Aled Wynne Jones | Acoustic communication system |
US20090070587A1 (en) * | 2007-08-17 | 2009-03-12 | Venugopal Srinivasan | Advanced Watermarking System and Method |
US20090190755A1 (en) * | 2000-07-27 | 2009-07-30 | Activated Content Corporation | Stegotext encoder and decoder |
US20090281798A1 (en) * | 2005-05-25 | 2009-11-12 | Koninklijke Philips Electronics, N.V. | Predictive encoding of a multi channel signal |
US20090299753A1 (en) * | 2008-05-30 | 2009-12-03 | Yuli You | Audio Signal Transient Detection |
US20090319261A1 (en) * | 2008-06-20 | 2009-12-24 | Qualcomm Incorporated | Coding of transitional speech frames for low-bit-rate applications |
US20090319263A1 (en) * | 2008-06-20 | 2009-12-24 | Qualcomm Incorporated | Coding of transitional speech frames for low-bit-rate applications |
US20090319278A1 (en) * | 2008-06-20 | 2009-12-24 | Microsoft Corporation | Efficient coding of overcomplete representations of audio using the modulated complex lapped transform (mclt) |
US20100166055A1 (en) * | 2008-12-31 | 2010-07-01 | Advanced Micro Devices, Inc. | Face Detection System for Video Encoders |
US20100272185A1 (en) * | 2006-09-30 | 2010-10-28 | Thomson Broadband R&D (Bejing) Co., Ltd | Method and device for encoding and decoding color enhancement layer for video |
US7831434B2 (en) * | 2006-01-20 | 2010-11-09 | Microsoft Corporation | Complex-transform channel coding with extended-band frequency coding |
US20100286991A1 (en) * | 2008-01-04 | 2010-11-11 | Dolby International Ab | Audio encoder and decoder |
US20100324914A1 (en) * | 2009-06-18 | 2010-12-23 | Jacek Piotr Stachurski | Adaptive Encoding of a Digital Signal with One or More Missing Values |
US20110026591A1 (en) * | 2009-07-29 | 2011-02-03 | Judit Martinez Bauza | System and method of compressing video content |
US7885819B2 (en) * | 2007-06-29 | 2011-02-08 | Microsoft Corporation | Bitstream syntax for multi-process audio decoding |
US20110106529A1 (en) * | 2008-03-20 | 2011-05-05 | Sascha Disch | Apparatus and method for converting an audiosignal into a parameterized representation, apparatus and method for modifying a parameterized representation, apparatus and method for synthesizing a parameterized representation of an audio signal |
US7991622B2 (en) * | 2007-03-20 | 2011-08-02 | Microsoft Corporation | Audio compression and decompression using integer-reversible modulated lapped transforms |
US20110257982A1 (en) * | 2008-12-24 | 2011-10-20 | Smithers Michael J | Audio signal loudness determination and modification in the frequency domain |
US8078457B2 (en) * | 2005-04-26 | 2011-12-13 | France Telecom | Method for adapting for an interoperability between short-term correlation models of digital signals |
US20120087504A1 (en) * | 2002-09-04 | 2012-04-12 | Microsoft Corporation | Multi-channel audio encoding and decoding |
US8190425B2 (en) * | 2006-01-20 | 2012-05-29 | Microsoft Corporation | Complex cross-correlation parameters for multi-channel audio |
US20120215546A1 (en) * | 2009-10-30 | 2012-08-23 | Dolby International Ab | Complexity Scalable Perceptual Tempo Estimation |
US20120232911A1 (en) * | 2008-12-01 | 2012-09-13 | Research In Motion Limited | Optimization of mp3 audio encoding by scale factors and global quantization step size |
US8290782B2 (en) * | 2008-07-24 | 2012-10-16 | Dts, Inc. | Compression of audio scale-factors by two-dimensional transformation |
Family Cites Families (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE32580E (en) * | 1981-12-01 | 1988-01-19 | American Telephone And Telegraph Company, At&T Bell Laboratories | Digital speech coder |
CA1323934C (en) * | 1986-04-15 | 1993-11-02 | Tetsu Taguchi | Speech processing apparatus |
US4965668A (en) * | 1989-11-09 | 1990-10-23 | The Grass Valley Group, Inc. | Adaptive rounder for video signals |
US5148487A (en) * | 1990-02-26 | 1992-09-15 | Matsushita Electric Industrial Co., Ltd. | Audio subband encoded signal decoder |
JP3104400B2 (en) * | 1992-04-27 | 2000-10-30 | ソニー株式会社 | Audio signal encoding apparatus and method |
JP2976701B2 (en) * | 1992-06-24 | 1999-11-10 | 日本電気株式会社 | Quantization bit number allocation method |
PT744069E (en) * | 1994-02-01 | 2002-10-31 | Qualcomm Inc | LINEAR PREDICTION OF EXCITATION BY RAJADAS |
US5742773A (en) * | 1996-04-18 | 1998-04-21 | Microsoft Corporation | Method and system for audio compression negotiation for multiple channels |
US5812601A (en) * | 1996-11-15 | 1998-09-22 | Telefonaktiebolaget Lm Ericsson | Coding for higher-level modulation |
JPH10336147A (en) * | 1997-06-03 | 1998-12-18 | Oki Electric Ind Co Ltd | Cdma transmitter-receiver and transmission rate varying method |
DE19729494C2 (en) * | 1997-07-10 | 1999-11-04 | Grundig Ag | Method and arrangement for coding and / or decoding voice signals, in particular for digital dictation machines |
JPH11234136A (en) * | 1998-02-19 | 1999-08-27 | Sanyo Electric Co Ltd | Encoding method and encoding device for digital data |
KR100557177B1 (en) * | 1998-04-04 | 2006-07-21 | 삼성전자주식회사 | Adaptive Channel Code / Decoding Method and Its Code / Decoding Device |
US6944350B2 (en) * | 1999-12-17 | 2005-09-13 | Utah State University | Method for image coding by rate-distortion adaptive zerotree-based residual vector quantization and system for effecting same |
US7389227B2 (en) * | 2000-01-14 | 2008-06-17 | C & S Technology Co., Ltd. | High-speed search method for LSP quantizer using split VQ and fixed codebook of G.729 speech encoder |
JP2002006895A (en) * | 2000-06-20 | 2002-01-11 | Fujitsu Ltd | Method and device for bit assignment |
EP1326223A1 (en) * | 2000-11-30 | 2003-07-09 | THOMSON multimedia S.A. | Method and apparatus for controlling a display device |
DE60135487D1 (en) * | 2000-12-22 | 2008-10-02 | Sony Corp | CODER |
DE60207227T2 (en) * | 2001-04-19 | 2006-07-27 | Koninklijke Philips Electronics N.V. | METHOD AND DEVICE FOR INFORMATION CODING, METHOD AND DEVICE FOR INFORMATION DECODING, STORAGE MEDIUM AND SIGNAL |
JP3469567B2 (en) * | 2001-09-03 | 2003-11-25 | 三菱電機株式会社 | Acoustic encoding device, acoustic decoding device, acoustic encoding method, and acoustic decoding method |
JP4016207B2 (en) * | 2001-10-03 | 2007-12-05 | ソニー株式会社 | Encoding method and decoding method |
FR2830965A1 (en) * | 2001-10-17 | 2003-04-18 | St Microelectronics Sa | METHOD AND CIRCUIT FOR DIGITAL MEASUREMENT OF THE PHASE OF A SINUSOIDAL SIGNAL |
KR100480787B1 (en) * | 2001-11-27 | 2005-04-07 | 삼성전자주식회사 | Encoding/decoding method and apparatus for key value of coordinate interpolator node |
US7027982B2 (en) * | 2001-12-14 | 2006-04-11 | Microsoft Corporation | Quality and rate control strategy for digital audio |
US7310596B2 (en) * | 2002-02-04 | 2007-12-18 | Fujitsu Limited | Method and system for embedding and extracting data from encoded voice code |
US7599835B2 (en) * | 2002-03-08 | 2009-10-06 | Nippon Telegraph And Telephone Corporation | Digital signal encoding method, decoding method, encoding device, decoding device, digital signal encoding program, and decoding program |
US7313520B2 (en) * | 2002-03-20 | 2007-12-25 | The Directv Group, Inc. | Adaptive variable bit rate audio compression encoding |
US7221711B2 (en) * | 2002-03-27 | 2007-05-22 | Woodworth John R | Multilevel data encoding and modulation technique |
WO2003085493A2 (en) * | 2002-03-29 | 2003-10-16 | Agilent Technologies, Inc. | Method and system for predicting multi-variable outcomes |
US7359550B2 (en) * | 2002-04-18 | 2008-04-15 | Mitsubishi Electric Research Laboratories, Inc. | Incremental singular value decomposition of incomplete data |
AUPS270902A0 (en) * | 2002-05-31 | 2002-06-20 | Canon Kabushiki Kaisha | Robust detection and classification of objects in audio using limited training data |
GB2392807A (en) * | 2002-09-06 | 2004-03-10 | Sony Uk Ltd | Processing digital data |
US7463782B2 (en) * | 2002-11-05 | 2008-12-09 | Canon Kabushiki Kaisha | Data encoding with an amplitude model and path between the data and corresponding decoding |
KR100463418B1 (en) * | 2002-11-11 | 2004-12-23 | 한국전자통신연구원 | Variable fixed codebook searching method in CELP speech codec, and apparatus thereof |
US6978416B2 (en) * | 2002-12-19 | 2005-12-20 | International Business Machines Corporation | Error correction with low latency for bus structures |
US7310597B2 (en) * | 2003-01-31 | 2007-12-18 | Harris Corporation | System and method for enhancing bit error tolerance over a bandwidth limited channel |
US7254271B2 (en) * | 2003-03-05 | 2007-08-07 | Seadragon Software, Inc. | Method for encoding and serving geospatial or other vector data as images |
US7103110B2 (en) * | 2003-10-10 | 2006-09-05 | Atmel Corporation | Dual phase pulse modulation encoder circuit |
US7406412B2 (en) * | 2004-04-20 | 2008-07-29 | Dolby Laboratories Licensing Corporation | Reduced computational complexity of bit allocation for perceptual coding |
US20050256722A1 (en) * | 2004-05-14 | 2005-11-17 | Clark Adam L | System and method for lossless audio encoding and decoding |
DE102004036154B3 (en) * | 2004-07-26 | 2005-12-22 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for robust classification of audio signals and method for setting up and operating an audio signal database and computer program |
JP2006041869A (en) * | 2004-07-27 | 2006-02-09 | Matsushita Electric Ind Co Ltd | Method and device for multiplex transmission, and program and recording medium thereof |
US9626973B2 (en) * | 2005-02-23 | 2017-04-18 | Telefonaktiebolaget L M Ericsson (Publ) | Adaptive bit allocation for multi-channel audio encoding |
DE102005040548B4 (en) * | 2005-08-26 | 2010-02-04 | Siemens Ag | Method for reducing Nyquist ghosts in medical magnetic resonance imaging |
ATE451685T1 (en) * | 2005-09-01 | 2009-12-15 | Ericsson Telefon Ab L M | PROCESSING REAL-TIME ENCODED DATA |
US7571094B2 (en) * | 2005-09-21 | 2009-08-04 | Texas Instruments Incorporated | Circuits, processes, devices and systems for codebook search reduction in speech coders |
FR2897742A1 (en) * | 2006-02-17 | 2007-08-24 | France Telecom | PERFECT ENCODING / DECODING OF DIGITAL SIGNALS, IN PARTICULAR VECTOR QUANTIFICATION WITH PERMUTATION CODES |
US7917362B2 (en) * | 2006-04-19 | 2011-03-29 | Mediatek Inc. | Method and apparatus for determining a bit boundary of a repetition-coded signal |
US7805292B2 (en) * | 2006-04-21 | 2010-09-28 | Dilithium Holdings, Inc. | Method and apparatus for audio transcoding |
US8190441B2 (en) * | 2006-09-11 | 2012-05-29 | Apple Inc. | Playback of compressed media files without quantization gaps |
JP5241509B2 (en) * | 2006-12-15 | 2013-07-17 | パナソニック株式会社 | Adaptive excitation vector quantization apparatus, adaptive excitation vector inverse quantization apparatus, and methods thereof |
KR101261524B1 (en) * | 2007-03-14 | 2013-05-06 | 삼성전자주식회사 | Method and apparatus for encoding/decoding audio signal containing noise using low bitrate |
US8107751B2 (en) * | 2007-03-16 | 2012-01-31 | Sharp Laboratories Of America, Inc. | DPCM with adaptive range and PCM escape mode |
US8619853B2 (en) * | 2007-06-15 | 2013-12-31 | Qualcomm Incorporated | Separable directional transforms |
US8521540B2 (en) * | 2007-08-17 | 2013-08-27 | Qualcomm Incorporated | Encoding and/or decoding digital signals using a permutation value |
EP2183851A1 (en) * | 2007-08-24 | 2010-05-12 | France Telecom | Encoding/decoding by symbol planes with dynamic calculation of probability tables |
EP2186087B1 (en) * | 2007-08-27 | 2011-11-30 | Telefonaktiebolaget L M Ericsson (PUBL) | Improved transform coding of speech and audio signals |
US8069051B2 (en) * | 2007-09-25 | 2011-11-29 | Apple Inc. | Zero-gap playback using predictive mixing |
US8032388B1 (en) * | 2007-09-28 | 2011-10-04 | Adobe Systems Incorporated | Dynamic selection of supported audio sampling rates for playback |
US8542727B2 (en) * | 2007-12-31 | 2013-09-24 | Intel Corporation | Systems and apparatuses for performing CABAC parallel encoding and decoding |
US8494100B2 (en) * | 2008-07-16 | 2013-07-23 | Signal Processing Devices Sweden Ab | Device and method for blocking-signal reduction |
GB0817488D0 (en) * | 2008-09-24 | 2008-10-29 | Cambridge Silicon Radio Ltd | Selective transcoding of encoded media files |
CN101430881B (en) * | 2008-11-10 | 2013-04-17 | 华为技术有限公司 | Encoding, decoding and encoding/decoding method, encoding/decoding system and correlated apparatus |
CN101615911B (en) * | 2009-05-12 | 2010-12-08 | 华为技术有限公司 | Coding and decoding methods and devices |
-
2010
- 2010-06-18 US US12/818,164 patent/US20100324913A1/en not_active Abandoned
- 2010-06-18 US US12/818,165 patent/US8700410B2/en active Active
- 2010-06-18 US US12/818,166 patent/US9245529B2/en active Active
-
2014
- 2014-03-06 US US14/199,187 patent/US9257126B2/en active Active
-
2016
- 2016-02-08 US US15/018,524 patent/US10510351B2/en active Active
-
2019
- 2019-11-21 US US16/690,536 patent/US11380335B2/en active Active
-
2022
- 2022-07-01 US US17/856,031 patent/US20220335958A1/en active Pending
Patent Citations (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4092493A (en) * | 1976-11-30 | 1978-05-30 | Bell Telephone Laboratories, Incorporated | Speech recognition system |
US4819088A (en) * | 1986-03-19 | 1989-04-04 | Victor Company Of Japan, Ltd. | Magnetic recording and reproducing system |
US5394473A (en) * | 1990-04-12 | 1995-02-28 | Dolby Laboratories Licensing Corporation | Adaptive-block-length, adaptive-transforn, and adaptive-window transform coder, decoder, and encoder/decoder for high-quality audio |
US5581653A (en) * | 1993-08-31 | 1996-12-03 | Dolby Laboratories Licensing Corporation | Low bit-rate high-resolution spectral envelope coding for audio encoder and decoder |
US5884269A (en) * | 1995-04-17 | 1999-03-16 | Merging Technologies | Lossless compression/decompression of digital audio data |
US6784812B2 (en) * | 1995-05-15 | 2004-08-31 | Dolby Laboratories Licensing Corporation | Lossless coding method for waveform data |
US6424936B1 (en) * | 1998-10-29 | 2002-07-23 | Matsushita Electric Industrial Co., Ltd. | Block size determination and adaptation method for audio transform coding |
US7471839B2 (en) * | 1999-07-30 | 2008-12-30 | Indinell Sociedad Anonima | Multimedia transmission with image and audio compressions |
US6778966B2 (en) * | 1999-11-29 | 2004-08-17 | Syfx | Segmented mapping converter system and method |
US6484285B1 (en) * | 2000-02-07 | 2002-11-19 | Ericsson, Inc. | Tailbiting decoder and method |
US20090190755A1 (en) * | 2000-07-27 | 2009-07-30 | Activated Content Corporation | Stegotext encoder and decoder |
US20090070104A1 (en) * | 2000-11-30 | 2009-03-12 | Aled Wynne Jones | Acoustic communication system |
US20080144701A1 (en) * | 2001-04-09 | 2008-06-19 | Robert Gold Communication System, Inc. | Method and system for synchronizing and selectively addressing multiple receivers in a wireless, spread spectrum communication system |
US20050063219A1 (en) * | 2001-09-28 | 2005-03-24 | Stmicroelectronics S.R.I. | Multilevel memory device with memory cells storing non-power of two voltage levels |
US20060153286A1 (en) * | 2001-12-04 | 2006-07-13 | Andersen Soren V | Low bit rate codec |
US20050159947A1 (en) * | 2001-12-14 | 2005-07-21 | Microsoft Corporation | Quantization matrices for digital audio |
US20030216924A1 (en) * | 2002-05-20 | 2003-11-20 | Teac Corporation | Compressed audio data editing method and apparatus |
US7249153B2 (en) * | 2002-08-01 | 2007-07-24 | The Johns Hopkins University | Data compression using Chebyshev transform |
US20120087504A1 (en) * | 2002-09-04 | 2012-04-12 | Microsoft Corporation | Multi-channel audio encoding and decoding |
US20040153959A1 (en) * | 2002-10-26 | 2004-08-05 | Samsung Electronics Co., Ltd. | LDPC decoding apparatus and method |
US7003704B2 (en) * | 2002-11-12 | 2006-02-21 | International Business Machines Corporation | Two-dimensional redundancy calculation |
US7515762B2 (en) * | 2003-05-27 | 2009-04-07 | Zaxel Systems, Inc. | Method and apparatus for lossless data transformation with preprocessing by adaptive compression, multidimensional prediction, multi-symbol decoding enhancement enhancements |
US20080095453A1 (en) * | 2003-05-27 | 2008-04-24 | Norihisa Suzuki | Method and apparatus for lossless data transformation with preprocessing by adaptive compression, multidimensional prediction, multi-symbol decoding enhancement enhancements |
US20050114123A1 (en) * | 2003-08-22 | 2005-05-26 | Zelijko Lukac | Speech processing system and method |
US20050065787A1 (en) * | 2003-09-23 | 2005-03-24 | Jacek Stachurski | Hybrid speech coding and system |
US20050165611A1 (en) * | 2004-01-23 | 2005-07-28 | Microsoft Corporation | Efficient coding of digital media spectral data using wide-sense perceptual similarity |
US20050222775A1 (en) * | 2004-04-02 | 2005-10-06 | Saad Kisra | Data compression methods and systems |
US7107153B2 (en) * | 2004-04-02 | 2006-09-12 | Schlumberger Technology Corporation | Data compression methods and systems |
US20080215317A1 (en) * | 2004-08-04 | 2008-09-04 | Dts, Inc. | Lossless multi-channel audio codec using adaptive segmentation with random access point (RAP) and multiple prediction parameter set (MPPS) capability |
US20060114977A1 (en) * | 2004-12-01 | 2006-06-01 | Texas Instruments, Inc. | System and method to mitigate interference in DSL systems |
US20060239576A1 (en) * | 2005-04-22 | 2006-10-26 | Debargha Mukherjee | System and method for compressing an image |
US8078457B2 (en) * | 2005-04-26 | 2011-12-13 | France Telecom | Method for adapting for an interoperability between short-term correlation models of digital signals |
US20080129560A1 (en) * | 2005-05-10 | 2008-06-05 | Baraniuk Richard G | Method and Apparatus for Distributed Compressed Sensing |
US20070027656A1 (en) * | 2005-05-10 | 2007-02-01 | Baraniuk Richard G | Method and Apparatus for Distributed Compressed Sensing |
US20090281798A1 (en) * | 2005-05-25 | 2009-11-12 | Koninklijke Philips Electronics, N.V. | Predictive encoding of a multi channel signal |
US20070011000A1 (en) * | 2005-07-11 | 2007-01-11 | Lg Electronics Inc. | Apparatus and method of processing an audio signal |
US20080154589A1 (en) * | 2005-09-05 | 2008-06-26 | Fujitsu Limited | Apparatus and method for encoding audio signals |
US8190425B2 (en) * | 2006-01-20 | 2012-05-29 | Microsoft Corporation | Complex cross-correlation parameters for multi-channel audio |
US7831434B2 (en) * | 2006-01-20 | 2010-11-09 | Microsoft Corporation | Complex-transform channel coding with extended-band frequency coding |
US20080008246A1 (en) * | 2006-07-05 | 2008-01-10 | Debargha Mukherjee | Optimizing video coding |
US20100272185A1 (en) * | 2006-09-30 | 2010-10-28 | Thomson Broadband R&D (Bejing) Co., Ltd | Method and device for encoding and decoding color enhancement layer for video |
US20080167882A1 (en) * | 2007-01-06 | 2008-07-10 | Yamaha Corporation | Waveform compressing apparatus, waveform decompressing apparatus, and method of producing compressed data |
US7991622B2 (en) * | 2007-03-20 | 2011-08-02 | Microsoft Corporation | Audio compression and decompression using integer-reversible modulated lapped transforms |
US7885819B2 (en) * | 2007-06-29 | 2011-02-08 | Microsoft Corporation | Bitstream syntax for multi-process audio decoding |
US20090070587A1 (en) * | 2007-08-17 | 2009-03-12 | Venugopal Srinivasan | Advanced Watermarking System and Method |
US20100286991A1 (en) * | 2008-01-04 | 2010-11-11 | Dolby International Ab | Audio encoder and decoder |
US20100286990A1 (en) * | 2008-01-04 | 2010-11-11 | Dolby International Ab | Audio encoder and decoder |
US20110106529A1 (en) * | 2008-03-20 | 2011-05-05 | Sascha Disch | Apparatus and method for converting an audiosignal into a parameterized representation, apparatus and method for modifying a parameterized representation, apparatus and method for synthesizing a parameterized representation of an audio signal |
US20090299753A1 (en) * | 2008-05-30 | 2009-12-03 | Yuli You | Audio Signal Transient Detection |
US20090319278A1 (en) * | 2008-06-20 | 2009-12-24 | Microsoft Corporation | Efficient coding of overcomplete representations of audio using the modulated complex lapped transform (mclt) |
US20090319263A1 (en) * | 2008-06-20 | 2009-12-24 | Qualcomm Incorporated | Coding of transitional speech frames for low-bit-rate applications |
US20090319261A1 (en) * | 2008-06-20 | 2009-12-24 | Qualcomm Incorporated | Coding of transitional speech frames for low-bit-rate applications |
US8290782B2 (en) * | 2008-07-24 | 2012-10-16 | Dts, Inc. | Compression of audio scale-factors by two-dimensional transformation |
US20120232911A1 (en) * | 2008-12-01 | 2012-09-13 | Research In Motion Limited | Optimization of mp3 audio encoding by scale factors and global quantization step size |
US20110257982A1 (en) * | 2008-12-24 | 2011-10-20 | Smithers Michael J | Audio signal loudness determination and modification in the frequency domain |
US20100166055A1 (en) * | 2008-12-31 | 2010-07-01 | Advanced Micro Devices, Inc. | Face Detection System for Video Encoders |
US20100332238A1 (en) * | 2009-06-18 | 2010-12-30 | Lorin Paul Netsch | Method and System for Lossless Value-Location Encoding |
US20100324914A1 (en) * | 2009-06-18 | 2010-12-23 | Jacek Piotr Stachurski | Adaptive Encoding of a Digital Signal with One or More Missing Values |
US20110026591A1 (en) * | 2009-07-29 | 2011-02-03 | Judit Martinez Bauza | System and method of compressing video content |
US20120215546A1 (en) * | 2009-10-30 | 2012-08-23 | Dolby International Ab | Complexity Scalable Perceptual Tempo Estimation |
Non-Patent Citations (1)
Title |
---|
Jacek Stachurski, Lorin Netsch: Fractional-bit and value-location lossless encoding in G.711.0 coder. ICASSP 2010: 4666-4669. * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110099005A1 (en) * | 2008-12-31 | 2011-04-28 | Dejun Zhang | Framing method and apparatus |
US8843366B2 (en) * | 2008-12-31 | 2014-09-23 | Huawei Technologies Co., Ltd. | Framing method and apparatus |
US20100324914A1 (en) * | 2009-06-18 | 2010-12-23 | Jacek Piotr Stachurski | Adaptive Encoding of a Digital Signal with One or More Missing Values |
US20100332238A1 (en) * | 2009-06-18 | 2010-12-30 | Lorin Paul Netsch | Method and System for Lossless Value-Location Encoding |
US8700410B2 (en) * | 2009-06-18 | 2014-04-15 | Texas Instruments Incorporated | Method and system for lossless value-location encoding |
US9245529B2 (en) * | 2009-06-18 | 2016-01-26 | Texas Instruments Incorporated | Adaptive encoding of a digital signal with one or more missing values |
CN103856314A (en) * | 2014-02-27 | 2014-06-11 | 深圳市文鼎创数据科技有限公司 | Audio communication self-adaption baud rate method and device and USB key |
WO2016045232A1 (en) * | 2014-09-28 | 2016-03-31 | 北京塞宾科技有限公司 | Streaming media service providing method |
Also Published As
Publication number | Publication date |
---|---|
US20160155449A1 (en) | 2016-06-02 |
US11380335B2 (en) | 2022-07-05 |
US20140188490A1 (en) | 2014-07-03 |
US8700410B2 (en) | 2014-04-15 |
US10510351B2 (en) | 2019-12-17 |
US20100324914A1 (en) | 2010-12-23 |
US20100332238A1 (en) | 2010-12-30 |
US9245529B2 (en) | 2016-01-26 |
US20200090667A1 (en) | 2020-03-19 |
US20220335958A1 (en) | 2022-10-20 |
US9257126B2 (en) | 2016-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20100324913A1 (en) | Method and System for Block Adaptive Fractional-Bit Per Sample Encoding | |
JP4426483B2 (en) | Method for improving encoding efficiency of audio signal | |
JP4742087B2 (en) | Double transform coding of audio signals | |
TWI453734B (en) | Method for encoding a symbol, method for decoding a symbol, method for transmitting a symbol from a transmitter to a receiver, encoder, decoder and system for transmitting a symbol from a transmitter to a receiver | |
US8428959B2 (en) | Audio packet loss concealment by transform interpolation | |
US6970479B2 (en) | Encoding and decoding of a digital signal | |
US20060088093A1 (en) | Packet loss compensation | |
US8909521B2 (en) | Coding method, coding apparatus, coding program, and recording medium therefor | |
EP1290835B1 (en) | Transmission over packet switched networks | |
US20110026581A1 (en) | Scalable Coding with Partial Eror Protection | |
KR20110043684A (en) | Method, system, and apparatus for compression or decompression of digital signals | |
US7813922B2 (en) | Audio quantization | |
US7079498B2 (en) | Method, apparatus, and system for reducing memory requirements for echo cancellers | |
WO2015000373A1 (en) | Signal encoding and decoding method and device therefor | |
JPWO2009153995A1 (en) | Quantization apparatus, encoding apparatus, and methods thereof | |
US7408918B1 (en) | Methods and apparatus for lossless compression of delay sensitive signals | |
JP3942523B2 (en) | Digital signal encoding method, decoding method, encoder, decoder, and programs thereof | |
JP2009210644A (en) | Linear prediction coefficient calculator, linear prediction coefficient calculation method, linear prediction coefficient calculation program, and storage medium | |
EP2267700B1 (en) | Apparatus and method for selecting quantisation bands in audio encoders | |
CN107680607B (en) | Signal compression method, signal decompression method and device thereof | |
JP2004023191A (en) | Signal encoding method and signal decoding method, signal encoder and signal decoder, and signal encoding program and signal decoding program | |
US7283587B2 (en) | Distortion measurement | |
JP3816859B2 (en) | Digital signal encoding method, decoding method, encoder and decoder thereof, and program thereof | |
JP2007013642A (en) | Apparatus, method, and program for coding signal, record medium, and cordic method for signal | |
WO2023183666A1 (en) | Bundled multi-rate feedback autoencoder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: TEXAS INSTRUMENTS INCORPORATED, TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:STACHURSKI, JACEK PIOTR;NETSCH, LORIN PAUL;HU, RONGQIANG;REEL/FRAME:024573/0715 Effective date: 20100617 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |