Embodiments relate to the field of encoding or decoding digital content, such as encoding or decoding audio information that is represented by digital signals, for example.
For various forms of digitized content, including digitized audio signals, for example, lossless compression and/or decompression may be desirable in a variety of circumstances. Techniques for such compression or decompression continue to be sought, particularly techniques offering low delay or low computational complexity.
Subject matter is particularly pointed out and distinctly claimed in the concluding portion of the specification. Claimed subject matter, however, both as to organization and method of operation, together with objects, features, and advantages thereof, may best be understood by reference of the following detailed description when read with the accompanying drawings in which:
In the following detailed description, numerous specific details are set forth to provide a thorough understanding of claimed subject matter. However, it will be understood by those skilled in the art that claimed subject matter may be practiced without these specific details. In other instances, methods, apparatuses or systems that would be known by one of ordinary skill have not been described in detail so as not to obscure claimed subject matter.
Some portions of the detailed description presented below are presented in terms of algorithms or symbolic representations of operations on binary digital signals stored within a memory of a specific apparatus or special purpose computing device, apparatus, or platform. In the context of this particular specification, the term specific apparatus, special purpose computing device, and/or the like may includes a general purpose computer or other computing device, such as a Personal Digital Assistant, portable telephone, cellular telephone, Smart phone, or the like, once it is programmed to perform particular functions pursuant to instructions from program software. Algorithmic descriptions or symbolic representations are examples of techniques used by those of ordinary skill in the signal processing or related arts to convey the substance of their work to others skilled in the art. An algorithm is here, and generally, is considered to be a self-consistent sequence of operations or similar signal processing leading to a desired result. In this context, operations or processing involve physical manipulation of physical quantities. Typically, although not necessarily, such quantities may take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared or otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to such signals as bits, data, values, elements, symbols, characters, terms, numbers, numerals and/or the like. It should be understood, however, that all of these or similar terms are to be associated with appropriate physical quantities and are merely convenient labels. Unless specifically stated otherwise, as apparent from the following discussion, it is appreciated that throughout this specification discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining” and/or the like refer to actions or processes of a specific apparatus, such as a special purpose computer, special purpose computing apparatus, or a similar special purpose electronic computing device. In the context of this specification, therefore, a special purpose computer or a similar special purpose electronic computing device is capable of manipulating or transforming signals, typically represented as physical electronic or magnetic quantities within memories, registers, or other information storage devices, transmission devices, audio devices, or display devices of the special purpose computer or similar special purpose electronic computing device.
Reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of claimed subject matter. Thus, the appearances of the phrase “in one embodiment” or “an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in one or more embodiments.
For a variety of reasons, discussed more fully below, embodiments of compression or decompression schemes continue to be desirable. Under some circumstances, available audio codecs may be one or more lossy signal compression schemes which allow higher signal compression by effectively removing statistical and/or perceptual redundancies in signals. In such circumstances, decoded signals from a lossy audio compression scheme may not be substantially identical to original audio signals. For example, distortion or coding noise could be introduced during a lossy audio coding scheme or process, although, under some circumstances, such defects may be perceptually reduced, so the processed audio signals may be perceived as at least approximately close to original audio signals.
Under some circumstances, however, lossless coding may be more desirable. For example, a lossless coding scheme or process may allow an original audio signal to be reconstructed from compressed audio signals. Numerous types of lossless audio codecs such as ALAC, MPEG-4 ALS and SLS, Monkey's Audio, Shorten, FLAC, and WavPack have been developed for the compression of one or more audio signals. However, under some circumstances such lossless codecs may employ computationally expensive or complex signal processing. Such signal processing may, under some circumstances, employ relatively large amounts of memory for storing large portion of input data (e.g., 2048 PCM signal samples) and therefore may, under some circumstances, introduce a significant end-to-end latency.
One possible approach, based at least in part on one or more lossless compression schemes within the context of a G.711 standard compliant input signal, such as A-law or μ-law mappings, may be employed in voice communication, such as voice communication over an IP network. In such an application, speech signals represented by 16-bit linear Pulse Code Modulated (PCM) may be mapped to 8-bit non-linear PCM samples. Such 8-bit sample signals may be transmitted to another device or via a communication network and may be decoded by G.711 decoder to a lossy version of the original 16-bit PCM samples. Under such a circumstance, a lossless compression and decompression for 8-bit sample mapped by a G.711 encoding may be desirable for efficient usage of network bandwidth. The above mentioned lossless codecs, however, may not be desirable to be employed in this approach. For example, such lossless codecs may, under some circumstances use significant computational or memory resources. In addition, such codecs may be designed specifically for a particular range value of 16-bit PCM signal samples. Hence, a low-delay low-complexity lossless compression scheme or process may be employed for signals characterized by having a small dynamic range of values.
As used herein, the term “small dynamic range” may refer to a range of signal values, such that one or more representations of such signals values, such as from a highest signal value level to a lowest signal value level may comprise a relatively small range. Although a small dynamic range is not necessarily required to be quantified in terms of bits, nonetheless, it may not be unusual to infer from the number of bits for a binary digital signal its dynamic range. For example, one or more 8-bit signals may have a small dynamic range where all eight bits vary. Likewise, one or more signals having many more bits, such as a 64 bit binary digital signal, may still have a small dynamic range if, for example, a subset of the 64 bits at the lower end of the binary digital signal range vary while the other remaining bits of the 64 do not vary. It is noted, of course that the latter two examples are provided merely for purposes of illustration and are not intended to limit the scope of claimed subject matter in any way. Furthermore, a “signal” as used herein may refer to media signals which may correspond to particular instances or samples in time relative to a particular physical attribute or manifestation, such as, for example, without, limitation, sound, image, video, or the like.
With regard to
With regard to
With regard to a variable bit-length baseline codec, an encoding or decoding device may implement a lossless codec that may be structured to perform the predictive coding scheme, at least in part using one or more predictors to reduce a dynamic range of one or more input signals. In an embodiment, a prediction module, at least in part for determining the one or more predicted signal values, may be implemented using one or more schemes, which may, under some circumstances, result in better prediction gain. For example, a prediction module may employ a set of fixed predictors, high-order forward predictors, adaptive backward predictors, or the like. In an embodiment, one or more differentials between the one or more predicted signal values and one or more signal actual values may be encoded at least in part using one or more variable bit-length entropy codes. In an embodiment, a differential between the one or more predicted signal values and the one or more actual signal values may be referred to as a prediction residual. In an embodiment, one or more prediction residual values may be modeled by a Laplacian distribution, and may be encoded with a variable bit-length coding scheme, such as Golomb-Rice coding, that may be desirable for that particular distribution.
Although, for the most part, described in terms small dynamic range of input signal, a lossless codec in accordance with an embodiment may also be used, such as with one or more modifications, for signals having a larger dynamic of input signal, such as by using a permutation coding scheme. For example, a permutation coding scheme as described in U.S. patent application Ser. No. 11/840,880, entitled ENCODING AND/OR DECODING DIGITAL CONTENT, may under some circumstances be employed with a lossless codec in accordance with an embodiment. Though, of course, claimed subject matter is not limited in this regard and may employ schemes other than those mentioned above.
In an embodiment of an encoding scheme an input signal x(n) may be partitioned into consecutive N-signal sample blocks, and M number of blocks comprise a signal frame, i.e., a frame contains MN input signal samples, of course, claimed subject matter is not limited in this regard. Denoting the n-th signal sample in the m-th block of a signal frame as xm(n) for 0≦n<N and 0≦m<M, the prediction of the current signal sample may be expressed as
Within a block, a previous signal sample may be used as a predicted signal value of a current signal sample. However, under some circumstances, such as at a boundary between one or more blocks, the last signal sample in the previous signal block may serve as a prediction of a first signal sample of a current signal block. Under some circumstances, such as for a first signal sample in the first signal block, no prediction is employed to avoid frame level decoding dependency. For example, it may, under some circumstances be desirable for separate frames of signals to not be dependent upon one another. Accordingly, it may under some circumstances, be desirable for a first signal sample of a frame not to be encoded based on any prior signal samples. In an embodiment, a prediction residual signal may be computed as follows:
Once an N-sample block of prediction residual signal is determined, such prediction residual signal samples may be interleaved in an interleaving block 506 in
The interleaved samples of prediction residual signals may be operated on by a Rice coding process. Such a Rice coding process for a non-negative integer n may include at least one or more of coding elements: unary coding of a quotient └n/2k┘ and constant bit-length coding of k LS bits of a remainder. For example of n=11 (‘1011’), Rice coding with k=2 yields a codeword ‘00111’: unary coding of quotient 2 (‘001’) and 2-bit coding for remainder 3 (‘11’). If a Rice coding parameter is selected as k=1, the integer 11 may be coded in this case as a 7-bit codeword ‘0000011’. From this example, it could be seen that (i) Rice coding of non-negative integer n with parameter k yields └n/2k┘+k+1 bits, and (ii) for a given non-negative integer or a set of non-negative integers, there should be a desirable Rice parameter that produces a smallest number of bits. Given N-sample block of the interleaved values of prediction residual signal, a parameter selection block 604 in
Once a desirable Rice parameter km is determined, such as by a selection module 604, the km may be differentiated from a Rice parameter of the previous block km−1, and the resulting differential may be interleaved to a non-negative value and then be unary-encoded, such as by unary coding module 608, for example. In order to avoid dependency in decoding a Rice parameter, the parameter value of the first block in a frame may be unary-encoded without differential coding from the parameter of the last block of the previous frame. The prediction residual signals are then Rice-coded with the desired Rice km, such as by Rice coding module 610, for example.
For Rice coding of interleaved samples of prediction residuals, such samples may be decomposed into respective quotient and remainder values. In an embodiment, quotient and remainder values may be computed by down-shifting the interleaved sample by km bits and by taking the LS km bits of the interleaved sample, respectively. Then, the quotient and remainder may be respectively encoded via unary coding and constant-bit coding of km LS bits, and their codewords may be packed into a bitstream. After encoding all M blocks, a number of zeros may be inserted at the end of the coded bitstream to make it byte-aligned.
Although the above discussed encoding and decoding schemes may be effective for handling many signals with small dynamic range such as, G.711 PCM compliant speech signal samples, such as A-law or μ-law mappings, there may be some corner cases in which a specialized constant bit-length coding can yield better compression gain than the variable bit-length baseline codec. For example, if a speaker during voice communication over IP network puts the phone in mute mode, speech signal of IP packets may contain only zero or constant-valued signal samples. For such blocks, it may be more cost-effective to signal such cases to decoder with a few number of flag bits, rather than spending more bits by the above mentioned variable bit-length baseline codec. Another instance in which special handling may be desirable may include a sample block for which the lossless compression yields more bits than spending a constant bit for the signal samples in the block. In this case, it appears to be advantageous to encode such signal samples with constant-bit codewords along with smaller bit signaling, for example a 3-bit signaling for an 8-bit precision data and a 4-bit signaling for an 16-bit precision data, that informs the decoder how many bits are used to represent signal samples in the block. It thus could be beneficial to complement the encoding and decoding schemes with a constant bit-length compression scheme which is designed to handle special corner cases. Hence, a switching process may be introduced in the encoder, where for each block the expected numbers of output bits by the variable bit-length coding and by the constant bit-length coding may be respectively computed. The number of bits for constant bit-length coding, for instance, may be computed by the following:
y
max=max{ym(0),ym(1), . . . ,ym(N−1)},
└log2(ymax)┘+1.
After computing the expected numbers of output bits, a switching flag is set to ‘1’ if the constant bit-length coding turns out to spend less bits than the variable bit-length baseline codec. Otherwise, the flag is set to ‘0.’ The flag bit is then inserted in the beginning of bitstream for a block, and the corresponding coding scheme starts encoding and packs the coded bits into bitstream. On the decoder side, this flag is parsed prior to actual signal sample decoding, and proper decoding procedure as is indicated by this flag will perform bitstream decoding.
The above addition may then selectively choose a better encoding scheme between variable bit-length baseline codec and constant bit-length compression scheme for a block. Special care should be taken for transition from one method to the other. Suppose that the m-th block in a signal frame is selected to be encoded by the variable bit-length baseline codec, but the previous block was encoded by constant bit-length coding. Then the Rice parameter of the current block may not be encoded differentially from the previous one, because the Rice parameter was not computed in the previous block. In such cases, the Rice parameter of a current frame itself, instead of the difference from the Rice parameter of previous frame, is encoded, which may degrade coding efficiency of the baseline codec. One efficient way to avoid this problem is to compute the Rice parameter for every block and store it for differential encoding of the signal value of the next block. Under some circumstances such a situation may not cause difficulty on an encoder side, because for a block the signal value may be computed in finding out which method produces fewer bits. On the decoder side, however, extra computations may be expended to make the Rice parameter available for decoding of the next block, even though the block was encoded by the constant bit-length compression scheme. By incorporating such a closed-loop decoding of the Rice parameter that mimics what is performed in the encoder, a relatively seamless transition between two different coding schemes for improved coding efficiency is achieved.
Likewise, the terms, “and,” “or,” and “and/or” as used herein may include a variety of meanings that will depend at least in part upon the context in which it is used. Typically, “and/or” if used to associate a list, such as A, B and/or C, is intended to mean A, B, or C as well as A, B and C. Though, it should be noted that this is merely an illustrative example and claimed subject matter is not limited to this example.
It should be noted that, although aspects of the above system, method, or process have been described in a particular order, the specific order is merely an example of a process and claimed subject matter is of course not limited to the order described. It should also be noted that the systems, methods, and processes described herein, may be capable of being performed by one or more computing platforms or computing devices. In addition, the methods or processes described herein may be capable of being stored on a storage medium as one or more machine readable instructions, that if executed may enable a computing platform, computing device, or specific purpose computing device to perform one or more actions. “Storage medium” as referred to herein relates to media capable of storing information or instructions which may be operated on, or executed by, by one or more machines. For example, a storage medium may comprise one or more storage devices for storing machine-readable instructions or information. Such storage devices may comprise any one of several media types including, for example, magnetic, optical or semiconductor storage media. For further example, one or more computing platforms may be adapted to perform one or more of the processed or methods in accordance with claimed subject matter, such as the methods or processes described herein. However, these are merely examples relating to a storage medium and a computing platform and claimed subject matter is not limited in these respects.
In the preceding description, various aspects of claimed subject matter have been described. For purposes of explanation, specific numbers, systems or configurations were set forth to provide a thorough understanding of claimed subject matter. However, it should be apparent to one skilled in the art having the benefit of this disclosure that claimed subject matter may be practiced without the specific details. In other instances, features that would be understood by one of ordinary skill were omitted or simplified so as not to obscure claimed subject matter. While certain features have been illustrated or described herein, many modifications, substitutions, changes or equivalents will now occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications or changes as fall within the true spirit of claimed subject matter.
The present Application for Patent claims the benefit of Provisional Application No. 61/082,170 entitled “LOW-DELAY AND LOW-COMPLEXITY LOSSLESS CODEC FOR SIGNALS WITH SMALL DYNAMIC RANGE” filed Jul. 18, 2008, and Provisional Application No. 61/091,263 entitled “LOW-DELAY AND LOW-COMPLEXITY LOSSLESS assigned to the assignee hereof.
Number | Date | Country | |
---|---|---|---|
61082170 | Jul 2008 | US | |
61091263 | Aug 2008 | US |