This invention relates to the coding of digital signals and more especially coding, decoding and where applicable transcoding methods using vector quantification.
Vector quantification is commonly used in various coding methods. In what follows in this description, attention will be given more particularly to the coding of audio signals, though this is non-limiting.
The invention considers the problem of scalability of the digital data stream transmitted between a coder and a decoder. This property consists in the ability of the coder to construct variable rate output data streams on the basis of the same coding scheme applied to the coded digital signal, and in the corresponding ability of the decoder to reconstruct a faithful version of the signal.
The difficulty here is to secure the highest possible coding quality for each data rate value without unduly increasing the complexity of the circuits used.
Data stream scalability is of particular importance where the data stream is likely to be carried on packet switching networks, such as networks operating according to the IP (Internet Protocol). Historically, the majority of coders have been developed for broadcasting or communications applications in circuit mode, leading to fixed rate coders or coders with the rate selected from several possible values when the connection is set up. In the packet mode context, it is better that the rate should vary more dynamically, so that the data stream can be matched to the congestion encountered when the packets are conveyed while ensuring that the communication is maintained.
Patent application WO99/03210 describes a scalable data stream audio coder having several coding stages. The first stage comprises a coding core, which may be a standard coder of the CELP (Code-Excited Linear Prediction) or other type, and possibly a bank of sub-band separation filters and additional modules to quantify sub-bands higher than the one processed by the coding core. The second stage comprises another bank of filters to separate into sub-bands the residual error signal at the output of the coding core, modules to quantify the components coming from this separation into sub-bands and where applicable additional modules to quantify the residual error signals at the output of the modules quantifying the higher sub-bands of the first stage. The residual error signals at the output of the second stage can then be processed by a third stage etc. The output digital data stream from this coder can be scaled by adjusting the number of coding/quantification modules contributing to it. For the lowest rate, only the coding core is involved. To increase the rate, components and/or stages quantifying the residual errors are added,
U.S. Pat. No. 5,864,650 discloses a method for generating a library of the tree-structured type containing 2L vectors obtained by algebraic sums of L basic vectors. As regards the coder, the search for the vector coding a specific value of a signal to be transmitted proceeds by successive selections from the root to the leaves of the code tree, stopping at the code tree stage corresponding to the number of quantification bits available. A library of this kind is however very constrained and does not allow good coding quality.
U.S. Pat. No. 4,899,384 discloses a bit allocation method in connection with coding in sub-bands, this allocation taking account of the level and energy distribution in the band and in each sub-band, so as to comply with a global data rate constraint while keeping degradation of the signal transmitted to a minimum. However, the quantification envisaged in this document is scalar quantification and not vector quantification.
One main purpose of this invention is to obtain fine adjustment of the rate in the scalability of the digital data stream, allowing the best rate/quality compromise to be sought as a function of the communication conditions.
A first aspect of the invention refers to a method for coding a signal in which, on the basis of a portion of the signal, at least one coding parameter vector is selected belonging to a reference library containing 2Q vectors each designated by an address of Q bits, and an output digital data stream is formed containing an index deduced from the address of the vector selected from the reference library. According to this method, the output digital data stream has a rate which is adjustable by varying the number Qxe2x88x92p of bits forming this index contained in the digital data stream. For each rate value corresponding to a value of the integer pxe2x89xa70, the index contained in the digital data stream is formed of Qxe2x88x92p bits which, completed by p arbitrary bits of predetermined positions, define the indices of Q bits representing a group of 2p addresses including the address of the vector selected from the reference library.
A reduction in the coder rate results from the deletion of p bits of certain vector quantification indices. By varying this number p, we are able to achieve very fine scalability of the output digital data stream.
In order to minimise the impact of the reduction in rate on the quality of the signal which the decoder is capable of reconstructing, the p bits deleted will generally be the least significant bits of the index concerned.
Provision can then be made, for least one rate value corresponding to a value of the integer p greater than 0, for the reference library to be ordered so as to verify a criterion of minimum distances between the vectors belonging to each group of 2p vectors of the reference library having respective addresses which differ only in the p bits having the predetermined positions mentioned.
Another possibility is to look up a transcoding table on the basis of the address of the vector selected from the reference library to obtain a first index of Q bits. For each rate value corresponding to a value of the integer pxe2x89xa70, the index contained in the output digital data stream is then formed of Qxe2x88x92p bits extracted from this first index of Q bits excluding p bits of predetermined positions.
This last possibility is of interest in that it enables an existing coder, optimised according to other criteria, to be matched to the concept of scalability, the transcoding table enabling the degradation in quality due to the removal of certain bits to be limited. Under these conditions, the coder may have a first mode of operation in which, for each rate value corresponding to a value of the integer pxe2x89xa70, the index contained in the output digital data stream is formed of Qxe2x88x92p bits extracted from this first index of Q bits and a second mode of operation with defined rate in which the address of the vector selected from the reference library is included in the output digital data stream instead of this index formed of Qxe2x88x92p bits. One or other of the two modes will be chosen depending on the capabilities of the decoder receiving the data stream and/or according to the means used to convey the data stream as far as this decoder.
A second aspect of the invention relates to a method for decoding a digital data stream representative of a coded signal, the digital data stream containing, for a portion of the signal, at least one index enabling a coding parameter vector, used to construct a decoded version of this portion of the signal, to be obtained by means of a reference library containing 2Q vectors each designated by an address of Q bits. In this decoding method, the digital data stream rate depends on the number Qxe2x88x92p of bits forming this index. For each rate value corresponding to a value of the integer pxe2x89xa70, we obtain the coding parameter vector on the basis of at least one vector in the reference library having an address which belongs to a group of 2p addresses represented respectively by the indices of Q bits formed by completing by p arbitrary bits of predetermined positions the index of Qxe2x88x92p bits contained in the digital data stream.
Several methods may be applied to obtain the coding parameter vector on the basis of the index of Qxe2x88x92p bits when pxe2x89xa70.
The decoding method may thus comprise a mode of operation by vector selection in which, for at least one rate value corresponding to a value of the integer pxe2x89xa70, we obtain the coding parameter vector by selecting from the reference library a vector having an address which belongs to the group of 2p addresses mentioned.
In this mode, the p bits completing the Qxe2x88x92p bits of the index contained in the digital data stream to represent the address of the vector selected may be bits of predetermined values. This is appropriate if the coder has performed the vector quantification using a sub-library of cardinal 2Qxe2x88x92p constituted by the vectors of the reference library having addresses which are represented by indices having these predetermined values for the p missing bits.
These p bits may also be drawn at random. This is appropriate if the magnitudes quantified vectorially by the 2p vectors with addresses which belong to the group have a relatively uniform statistical distribution.
In another version of the mode of operation by vector selection, the coding parameter vector is obtained by selecting it from among the vectors in the reference library having respective addresses belonging to this group of 2p addresses on the basis of information on the coded signal, which can be read from the digital data stream or again obtained by analysis of the decoded version of the signal.
As a variant, or supplement, the decoding method may comprise a mode of operation by averaging vectors in which, for at least one rate value corresponding to a value of the integer pxe2x89xa70, the coding parameter vector is obtained by taking an average of several vectors in the reference library having respective addresses which belong to this group of 2p addresses.
The average taken to obtain the coding parameter vector may be a uniform average of the vectors in the reference library having respective addresses which belong to the group of 2p addresses mentioned. This is appropriate if the magnitudes quantified vectorially by the 2p vectors have a relatively uniform statistical distribution.
It may also be an average weighted to take account of a non-uniform distribution. The weightings used may be fixed coefficients assigned to the reference library vectors in a manner representative of the theoretical probabilities of their occurrence. They may also be variable coefficients determined on the basis of information on the coded signal. This information, referring for example to the degree to which the signal is steady-state, can be read from the digital data stream or again obtained by an analysis of the decoded version of the signal.
In one form of execution of the decoding method, a transcoding table is looked up on the basis of at least one of the indices of Q bits mentioned formed by completing the index of Qxe2x88x92p bits contained in the digital data stream to obtain at least one of the 2p addresses of this group. Similarly to the case of the coding method mentioned above, the decoding method nay then comprise a first mode of operation in which, for each rate value corresponding to a value of the integer pxe2x89xa70, the coding parameter vector is obtained on the basis of at least one vector in the reference library, the address of which is obtained by looking up a transcoding table, and a second mode of operation with a defined rate in which the index contained in the digital data stream is of Q bits and the coding parameter vector is obtained as being the vector with an address equal to this index of Q bits from the reference library.
A third aspect of the invention relates to a method for transcoding an input digital data stream representative of a signal coded by means of at least one reference library containing 2Q coding parameter vectors each designated by an address of Q bits, to form a lower rate output digital data stream,
in which the input digital data stream contains, for a portion of the signal, at least one index of Q bits which is equal to the address in the reference library of a selected coding parameter vector,
in which a transcoding table is looked up on the basis of the address of the vector selected to obtain another index of Q bits,
and in which, in the output data stream, the index of Q bits contained in the input data stream is replaced by translated index of Qxe2x88x92p bits which, completed by p arbitrary bits of predetermined positions, define indices of Q bits representing a group of 2p addresses including the address, already mentioned, of the vector selected, p being an integer such that 0 less than p less than Q, this translated index of Qxe2x88x92p bits being formed of Qxe2x88x92p bits extracted from the other index of Q bits mentioned, excluding p bits of predetermined positions.
This transcoding method can be employed in various contexts. For example, the input digital data stream may be read from the memory of an audio server. It can also be received on a link in a telecommunications network, the output digital data stream being re-transmitted on another link in the network or on a link of another network.
A fourth aspect of the invention relates to a method for transcoding an input digital data stream representative of a signal coded by means of at least one reference library containing 2Q vectors each designated by an address of Q bits to form a higher rate binary output data stream, in which the input digital data stream contains, for a portion of the signal, at least one index of Qxe2x88x92p bits which, completed by p arbitrary bits of predetermined positions, define indices of Q bits representing a group of 2p addresses of vectors in the reference library, p being an integer such that 0 less than p less than Q, and in which, on the basis of this index of Qxe2x88x92p bits, a translated index of Q bits representing one of the addresses of this group of 2p vector addresses is determined, and this translated index of Q bits is inserted into the output data stream.
This is a transcoding method which is the reverse of the previous method. The vector having an address which is represented by the translated index of Q bits may be selected by one of the methods mentioned above for the selection of a vector in the decoding method.