The present invention relates to digital video processing generally and, more particularly, to a method and/or apparatus for implementing a flexible sampling-rate encoder.
Conventional encoders encode samples with a fixed sampling interval in time. Data compression is often used due to the limited capacity of storage medium and/or the limited bandwidth of transmission medium. High data compression is usually lossy and often involves the transformation of the data into a different representation (such as the frequency domain). Such compression allocates the transmission or storage bits according to a subjective model. Audio encoders generally store higher frequencies with a lower bit-resolution than lower frequencies. Such subjective models have one or more of the following disadvantages (i) the encoding is computationally expensive, (ii) the models are prescriptive and forces the implementation of the decoding to follow a particular scheme that does not encourage the improvement of decoding technologies, and (iii) the encoding is block based which frequently causes artifacts such as pre-echo.
The present invention concerns a method for implementing a flexible sampling-rate encoder, comprising the steps of (A) sampling an input signal at a regular time-interval to produce sampled data, (B) generating a pseudo-random bit sequence having a plurality of bits, wherein each bit corresponds to a different sampling time, (C) encoding a first set of the sampled data to generate an encoded stream when any bit in the pseudo-random bit sequence is equal to a first value, wherein each bit in the encoded stream corresponds to one of the sampling times defined in step (B), and (D) determining the different sampling times for each sample in the encoded stream.
The objects, features and advantages of the present invention include providing a method and/or apparatus that may (i) reduce artifacts such as pre-echo when encoders are implemented as block-based and/or (ii) enable the implementation of decoding to follow a number of schemes which encourages the improvement of decoding technologies.
These and other objects, features and advantages of the present invention will be apparent from the following detailed description and the appended claims and drawings in which:
Referring to
In one example, the signal INPUT may comprise a data set of audio samples S(j) sampled at a regular time-interval with the sampler circuit 102. The pseudo-random bit sequence generator 108 may construct a deterministic pseudo-random bit sequence (PRBS) P(j) (e.g., the signal CTRL). The signal CTRL may include a value 1 for a fraction K of the samples. The signal CTRL may include a value 0 for a remaining fraction (1−K) of the samples. The fraction K may be adjusted in response to a complexity of the signal INPUT. Such a pseudo-random sequence may (a) allow the times of the decoded samples to be reconstructed without wasting storage and/or bandwidth and (b) avoid artifacts from periodic charges in sampling density.
For each sample S(j), if P(j)=1, then the circuit 100 accepts the corresponding sample S(j). If P(j)=0, then the circuit 100 rejects the corresponding sample S(j). For each accepted sample of S(j) and each rejected sample of S(j) a new sequence may be produced with a fraction K of the original samples. The signal ENCODED_STREAM generally comprises the new sequence of accepted samples produced with the fraction K of the original samples. In the simplest case, the PRBS is fixed so samples are selected randomly but with a fixed “average” frequency. The sampling rate may be varied by changing the properties of the PRBS. In a particularly complex part of the audio, there may be many “1s” generated by the PRBS. In a simple part of the audio, there may be many “0s”. This change in the PRBS is normally communicated between the encoder and decoder.
Referring to
In general, the generator 126 may determine the timing of the data samples of the signal ENCODED_STREAM since the same PRBS is provided by the sequence generator 108 and the sequence generator 126. The sample alignment circuit 122 aligns corresponding bits from the PRBS to the bits or data samples on the signal ENCODED_STREAM. After alignment, the signal INT includes data samples encoded on the signal ENCODED_STREAM. The signal INT also includes don't care values which correspond to missing data discarded during the encoding process. The interpolator 124 interpolates the don't care data samples to produce the data samples originally in the signal INPUT. The interpolation process of the decoder 120 may be implemented in a variety of ways, such as with a linear predictive coding and/or neural networks. Because a number of the data samples are close together, the decoder 170 may effectively recover high-frequency information. In one example, the data sample spacing may range between 1:2 and 1:4. However, other spacing may be used to meet the design criteria of a particular implementation. If conventional uniform sampling was implemented, recovery of high frequency information may not be possible.
Referring to
Referring to
In one example, a kernel based method may be implemented to interpolate the data samples of the signal ENCODED_STREAM. The kernel based method takes the encoded data samples S(i) at a time i, and interpolates the unknown samples R(j) as follows:
R(j)=Σ S(i)f(j−i)
In general, a kernel function may be used (to be described in more detail in connection with
Referring to
The state 214 generally comprises decoding the signal ENCODED_STREAM to determine the different sampling times of the sampled data. The state 214 uses the PRBS to determine the sample times of the sampled data on the signal ENCODED_STREAM. The same PRBS generated in the state 206 may also be presented to the decoder 120 to decode the data on the signal ENCODED_STREAM. The state 216 generally comprises interpolating the rejected or the missing sampled data from the signal ENCODED_STREAM. The state 216 recovers the missing or rejected data samples to provide the signal RECOVERED_DATA. The signal RECOVERED_DATA comprises a copy of the original data set of audio samples presented by the signal INPUT.
Referring to
The function performed by the diagrams of
The present invention may also be implemented by the preparation of ASICs, FPGAs, or by interconnecting an appropriate network of conventional component circuits, as is described herein, modifications of which will be readily apparent to those skilled in the art(s).
The present invention thus may also include a computer product which may be a storage medium including instructions which can be used to program a computer to perform a process in accordance with the present invention. The storage medium can include, but is not limited to, any type of disc including floppy disc, optical disc, CD-ROM, magneto-optical discs, ROMs, RAMs, EPROMs, EEPROMs, flash memory, magnetic or optical cards, or any type of media suitable for storing electronic instructions.
While the invention has been particularly shown and described with reference to the preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made without departing from the spirit and scope of the invention.
Number | Name | Date | Kind |
---|---|---|---|
5901178 | Lee et al. | May 1999 | A |
6223053 | Friedmann et al. | Apr 2001 | B1 |
20040017853 | Garrido et al. | Jan 2004 | A1 |
20040080671 | Siemens et al. | Apr 2004 | A1 |
20040247121 | Lee et al. | Dec 2004 | A1 |
20060107154 | Bansal et al. | May 2006 | A1 |
20060177018 | Kobayashi et al. | Aug 2006 | A1 |
Number | Date | Country | |
---|---|---|---|
20070025482 A1 | Feb 2007 | US |