Method and apparatus for encoding and decoding digital data sets with reduced amount of data to be stored for error approximation

When combining digital data sets in the time domain into a combined digital data set a subset of samples of each digital data set is adjusted to enable unraveling the data when decoding. To enable correction during decoding of an error introduced by the adjustment, an error approximation is stored for each adjusted sample. A set of error approximations is created which is indexed allowing substantial reduction in size of the error approximations to be stored for the adjusted samples. Instead of creating a set of error approximations for each combined digital data set one set of error approximations is created based on the errors introduced when creating multiple combined digital data sets.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a National Stage of International Application No. PCT/EP2016/054157 filed Feb. 26, 2016, claiming priority based on International Patent Application No. PCT/EP2015/054222, filed Feb. 27, 2015, the contents of all of which are incorporated herein by reference in their entirety.

TECHNICAL FIELD

The present invention relates to encoding and decoding digital data sets, and more particular to a method for combining a first and second digital data set of samples into a third digital data set of samples.

The present invention further relates to a record carrier for storing such combined digital data set.

BACKGROUND ART

EP1592008 discloses a method for mixing two digital data sets into a third digital data set. In order to fit two digital data sets into a single digital data set with a size smaller than the sum of the sizes of the two digital data sets, a reduction of information in the two digital data sets is required. EP1592008 achieves this reduction in defining an interpolation at samples between a first set of predefined positions in the first digital data set and at a non-coinciding set of samples between predefined positions in the second digital data set. The value of the samples between the predefined positions of the digital data sets are adjusted to the interpolation value. After performing this reduction in information in the two digital data sets, each sample of the first digital data set is summed with the corresponding sample of the second digital data set. This results in a third digital data set comprising the summed samples. This summation of samples together with known relationship of the offset between the predefined positions between the first digital data set and the second digital data set allows the recovery of the first digital data set and the second digital data set, albeit only with the samples adjusted by interpolation between the predefined positions. When the method of EP1592008 is used for audio streams this interpolation is not noticeable and the third digital data set can be played as a mixed representation of the two digital data sets comprised. In order to enable the retrieval of the first and second digital data set with the adjusted samples, a start value for both the first and second digital data set must be known and hence these two values are also stored during mixing to allow a later unraveling of the two digital data sets from the third digital data set.

EP2092791 discloses an other method for mixing two digital data sets into a third digital data set. In EP2092791, instead of using interpolation, sample values are adjusted by equating them to the sample value of a neighbouring sample. A disadvantage of this method is that it introduces errors which have to be corrected during decoding.

Both methods, the interpolation in EP1592008 and the equating in EP2092791, effectively adjust the sample value of a subset of samples, thus introducing an error. In order to be able to correct this error during decoding for each adjusted sample the error must be stored for later retrieval during decoding. As storing all errors would result in large files, EP2092791 discloses a method wherein, after determining the errors, a reduction is performed by grouping the errors into error groups. For each error group a representative approximated error is chosen resulting in a sets of error approximations. These sets of error approximations are indexed. For each sample affected by the adjustment an index is chosen corresponding to that error approximation which is closest to the error or satisfies other criteria such as compensation for errors occurring when reversing the interpolation because multiple adjusted sample values are used during the reversing of the interpolation.

It is however still a disadvantage of EP 2092791 that the amount of data which needs to be stored for the sets of error approximations is still large.

It is an objective of the present invention to further reduce the amount of data to be stored for later retrieval during decoding.

DISCLOSURE OF THE INVENTION

To achieve this objective the method further comprises the steps of: grouping errors resulting from adjustment of the samples of the first, second, fourth and fifth digital data sets into error groups,storing, in the set of error approximations, one error approximation for each error group, each error approximation having an index, andassociating with each error of each adjusted sample of the first, second, fourth and fifth digital data set of adjusted sample values the corresponding index of the selected error approximation.

Instead of having one set of error approximations per combined channel as disclosed in EP2092791, one set of error approximations is used for encoding and decoding more than just one combined channel. Surprisingly it was found that even in situations where the digital data channels have little correlation, it is beneficial to group errors from channels that are not to be combined into a single set of error approximations, thus being able to create a single set of error approximations and needing a smaller amount of data to store this set of error approximations than when each combined digital data set had its own sets of error approximations.

Alternatively, it is possible to use this advantage not to reduce the amount of storage space for the set of error approximations but to increase the number of errors approximations when using the same amount of storage space as was used when each combined digital data set had its own sets of error approximations. This allows more error approximations to be stored allowing a more accurate approximation of the errors, which in turn allows a more accurate reconstruction of the original digital data sets when extracting them from the combined digital data set.

In the example of the input digital data sets representing multi channel audio being combined into two combined audio channels to be played back through a stereo system, previously two sets of error approximations were created, one for each of the combined audio channels. Now, a single set of error approximations is derived that applies to both combined audio channels and is in this example derived from all input audio channels.

In an embodiment the step of grouping errors comprises the step of only grouping errors of adjusted samples of the first and second digital data sets.

Using only errors occurring during the adjustment of sample values for a single combined channel to create the set of error approximations results in a small amount of storage space needed to store this set of error approximations at the penalty of less accurate approximations for the other combined channels.

In a further embodiment the step of grouping errors comprises the step of grouping errors of adjusted samples of the first, second, fourth and fifth digital data sets. Using ail errors from all digital data channels results in the best grouping of errors and thus the best set of error approximations.

In a further embodiment the step of associating the index comprises the step of storing association data in one or more meta data blocks of one or more of the combined digital data sets.

Storing the association information in meta data blocks allows this data to be both embedded in the combined digital data sets or to be stored in or transmitted via an auxiliary channel.

A decoding method as claimed comprises the steps ofretrieving a single set of error approximations, each error approximation in the single set of error approximations having an index, andretrieving an association of each adjusted sample of the first, second, fourth and fifth digital data set with a corresponding index of the error approximationsretrieving for each adjusted sample an error approximation corresponding to the index associated with the sample,adding the corresponding error approximation to the sample.

Having a single set of error approximations allows the decoder to retrieve the error approximations quicker and use a single set or error approximations for decoding multiple combined digital data sets allowing a more efficient processing of the combined digital data sets.

An encoder as claimed benefits from the same advantages as obtained by the encoding method.

A decoder as claimed benefits from the same advantages as obtained by the decoding method.

A mobile device comprising an encoder and or decoder benefits from the same advantages as obtained by the encoding method and/or decoding method. In particular mobile devices are often limited in processing and storage capabilities compared to non-mobile devices and as such storage and processing efficiency are highly beneficial for a mobile device.

A multimedia device as claimed benefits from the same advantages as the encoding and/or decoding method as most multimedia data streams are digital data streams and very often many digital data streams are combined into combined digital data streams for storage or transmission purposes which the multimedia device must either be able to encode and/or decode.

A recording medium as claimed can have the meta data blocks both embedded in the combined digital data set(s) or separately stored on the disc.

An explanation of the basic principle of combining digital data sets employing interpolation can be found in paragraphs [0037] up to and including [0048] of EP1592008B1 and is incorporated by reference. An explanation of the interpolation used when combining digital data sets can be found in paragraph [0055] up to and including [0060] of EP1592008B1 and is incorporated by reference.

An explanation of the basic unmixing principle employing interpolation can be found in paragraph [0061] & [0062] of EP1592008B1 and is incorporated by reference.

An explanation of the errors introduced by the equating of neighboring samples can be found on page 4 line 39 up to and including line 54 of EP2092791B1 and is incorporated by reference. An explanation of indexing the set of error approximations can be found in paragraph [0017] of EP2092791B1 and is incorporated by reference.

The use of digital data sets in multi channel audio is disclosed in paragraph [0027] up to and including [0033] and are incorporated here by reference.

An explanation of the basic unmixing principle employing equating can be found in paragraph [0067] & [0068] of EP2092791B1 and is incorporated by reference.

A encoder as described herein can be integrated in a larger device such as a recording system or can be a stand alone encoder coupled to a recording system or a mixing system. The encoder can also be implemented as a computer program for instance for performing the encoding methods of the present invention when run on a computer system suitable to run said computer program. A decoder as described herein can be integrated in a larger device such as an output module in a playback device, an input module in an amplification device or can be a standalone decoder via its input coupled to a source of the encoded combined data stream and via its output coupled to an amplifier.

A digital signal processing device is in this document understood to be a device in the recording section of the recording/transmission/reproduction chain, such as audio mixing table, a recording device for recording on a recording medium such as optical disc or hard disk, a signal processing device or a signal capturing device.

A reproduction device is in this document understood to be a device in the reproduction section of the recording transmission/reproduction chain, such as an audio amplifier or a playback device for retrieving data from a storage medium.

MODES FOR CARRYING OUT THE INVENTION

Moreover, the terms top, bottom, over, under and the like in the description and the claims are used for descriptive purposes and not necessarily for describing relative positions. The terms so used are interchangeable under appropriate circumstances and the embodiments of the invention described herein can operate in other orientations than described or illustrated herein.

Furthermore, the various embodiments, although referred to as “preferred” are to be construed as exemplary manners in which the invention may be implemented rather than as limiting the scope of the invention.

Further, in order to explain the principle, the embodiments are explained using two input streams but the invention can equally be used with three or more input streams being combined into one single output stream. It should further be noted that although the embodiments use separate adjusters, combiners, error approximators, etc for each channel it is equally possible to have just a single adjuster, combiner, error approximator which processes all the channels/digital data sets.

Referring toFIG. 1,FIG. 1shows a prior art encoder for combining four channels into two channels. The coder10, in order to create a first combined digital data set, comprises a first adjustment unit11aand a second adjustment unit11b. Each adjustment unit11aand11breceives a digital data set from a respective input of the encoder10. The first adjustment unit11aselects a first subset of samples of the first digital data set and adjusts each sample of this first subset for instance by equating them to neighbouring samples of a second subset of samples of the first digital data set or by adjusting them to an interpolated value. The resulting digital data set comprising the unaffected samples of the second subset and the adjusted samples of the first sub set can be passed on to a first optional sample size reducer12aor can be passed directly to the combiner13. The second adjustment unit11bselects a third subset of samples of the second digital data set and adjusts each sample of this third subset for instance by equating them to neighbouring samples of a fourth subset of samples of the second digital data set or by adjusting them to an interpolated value. The resulting digital data set comprising the samples of the fourth subset and the adjusted samples of the third sub set can be passed on to an second optional sample size reducer12bor can be passed directly to the combiner13. The first and second sample size reducer12aand12bboth remove a defined number of lower bits from the samples of their respective digital data sets, for instance reducing 24 bit samples to 20 bits by removing the four bits least significant bits. The adjustment of samples as performed by the adjustment units11aand11bintroduces an error. This error is approximated by an error approximator15by comparing the adjusted samples to the original samples and selecting an error approximation that best fits the error. This error approximation can be used by the decoder to more accurately restore the original digital data sets, as will be described below when describing the decoder. The combiner13adds the samples of the first digital data set to corresponding samples of the second digital data set, as provided to its inputs, and supplies the resulting samples of the third combined digital data set via its output to a formatter14which embeds additional data such as seed values from the two digital data sets and the association data between the errors of the adjusted samples and their corresponding error approximations as received from the error approximator15in the lower significant bits of the third digital data set or in meta data blocks and provides the resulting digital data set to a first output of the coder10.

The coder10, in order to create a second combined digital data set, further comprises a third adjustment unit21aand a fourth adjustment unit21b. Each adjustment unit21aand21breceives a digital data set from a respective input of the encoder10. The third adjustment unit21aselects a first subset of samples of the fourth digital data set and adjusts each sample of this first subset for instance by equating them to neighbouring samples of a second subset of samples of the fourth digital data set or by adjusting them to an interpolated value. The resulting digital data set comprising the unaffected samples of the second subset and the adjusted samples of the first sub set can be passed on to a third optional sample size reducer22aor can be passed directly to the second combiner23. The fourth adjustment unit21bselects a third subset of samples of the fourth digital data set and adjusts each sample of this third subset for instance by equating them to neighbouring samples of a fourth subset of samples of the fourth digital data set or by adjusting them to an interpolated value. The resulting digital data set comprising the samples of the fourth subset and the adjusted samples of the third sub set can be passed on to an fourth optional sample size reducer22bor can be passed directly to the second combiner23. The third and fourth sample size reducer22aand22bboth remove a defined number of lower bits from the samples of their respective digital data sets, for instance reducing 24 bit samples to 20 bits by removing the four hits least significant bits. The adjustment of samples as performed by the adjustment units21aand21bintroduces an error. This error is approximated by the second error approximator25by comparing the adjusted samples to the original samples and selecting an error approximation that best fits the error. This error approximation can be used by the decoder to more accurately restore the original digital data sets, as will be described below when describing the decoder. The second combiner23adds the samples of the third digital data set to corresponding samples of the fourth digital data set, as provided to its inputs, and supplies the resulting samples of the sixth combined digital data set via its output to a second formatter24which embeds additional data such as seed values from the two digital data sets and the association data between the errors of the adjusted samples and their corresponding error approximations as received from the second error approximator25in the lower significant bits of the third digital data set or in meta data blocks and provides the resulting digital data set to a second output of the coder10.

Referring now toFIG. 2,FIG. 2shows an encoder according to the present invention for combining two channels in the time domain. The coder10, in order to create a first combined digital data set, comprises a first adjustment unit11aand a second adjustment unit11b. Each adjustment unit11aand11breceives a digital data set from a respective input of the coder10. The first adjustment unit11aselects a first subset of samples of the first digital data set and adjusts each sample of this first subset for instance by equating them to neighbouring samples of a second subset of samples of the first digital data set or by adjusting them to an interpolated value. The resulting digital data set comprising the unaffected samples of the second subset and the adjusted samples of the first sub set, can be passed on to a first optional sample size reducer12aor can be passed directly to the combiner13. The second adjustment unit11bselects a third subset of samples of the second digital data set and adjusts each sample of this third subset for instance by equating them to neighbouring samples of a fourth subset of samples of the second digital data set or by adjusting them to an interpolated value. The resulting digital data set comprising the samples of the fourth subset and the adjusted samples of the third sub set can be passed on to an second optional sample size reducer12bor can be passed directly to the combiner13. The first and second sample size reducer12aand12bboth remove a defined number of lower bits from the samples of their respective digital data sets, for instance reducing 24 bit samples to 20 bits by removing the four bits least significant bits. The combiner13adds the samples of the first digital data set to corresponding samples of the second digital data set, as provided to its inputs. The coder10in order to create a second combined digital data set comprises a third adjustment unit21aand a fourth adjustment unit21b. Each adjustment unit21aand21breceives a digital data set from a respective input of the encoder10. The third adjustment unit21aselects a first subset of samples of the fourth digital data set and adjusts each sample of this first subset for instance by equating them to neighbouring samples of a second subset of samples of the fourth digital data set or by adjusting them to an interpolated value. The resulting digital data set comprising the unaffected samples of the second subset and the adjusted samples of the first sub set can be passed on to a third optional sample size reducer22aor can be passed directly to the second combiner23. The fourth adjustment unit21bselects a third subset of samples of the fourth digital data set and adjusts each sample of this third subset for instance by equating them to neighbouring samples of a fourth subset of samples of the fourth digital data set or by adjusting them to an interpolated value. The resulting digital data set comprising the samples of the fourth subset and the adjusted samples of the third sub set can be passed on to an fourth optional sample size reducer22bor can be passed directly to the second combiner23. The third and fourth sample size reducer22aand22bboth remove a defined number of lower bits from the samples of their respective digital data sets, for instance reducing 24 bit samples to 20 bits by removing the four bits least significant bits.

The adjustment of samples as performed by the adjustment units11aand11bintroduces an error, and the adjustment of samples as performed by the adjustment units21aand21balso introduces an error. These errors from the adjustment units11a,11b,21a,21bare all approximated by error approximator27by comparing the values of adjusted samples received from the adjustment units11a,11b,21a,21bto the values of the original samples directly taken from the corresponding inputs and selecting an error approximation from a set of error approximations that best fits the error. This error approximation can be used by the decoder to more accurately restore the original digital data sets, as will be described below when describing the decoder. As the error approximator27determines the approximation error for samples of several digital data sets an advantage is obtained as the approximation errors can be clustered into groups and a single set of errors that are clustered into error clusters can then be used to represent the approximation errors. This leads to efficiency on the encoder and decoder side as only one set of approximation errors need to be stored and used for multiple digital data sets, respectively multiple channels.

Instead of sending the actual error approximation value, the center value of the corresponding approximation error cluster can be sent, or an index to the cluster so that on the decoding side, where the center values of the clusters are known as a set of error approximations, the decoder can correct for the approximation error by adding the value of the center of the corresponding approximation error cluster to the reconstructed sample value.

As there is now a single error approximator27only a single table, i.e. a single set of error approximations is needed which can most likely be stored in one combined digital data set or, if desired, spread over multiple combined digital data sets. Multiple tables/sets of error approximations no longer need to be stored in each combined digital data sets but only a highly compressable set of error approximations or indexes, thus saving space in the data stream or in a storage medium. It should be noted that the association data linking the adjusted samples to their error approximations needs to be preserved for each adjusted samples. This association data may fit in the auxiliary channel of one combined digital data set or if needed may overflow into auxiliary data channels of other (in this case the second) combined digital data set. The association data may also be kept with the combined digital data set to which it applies.

The combiner13supplies the resulting samples of the third combined digital data set via its output to a formatter14which embeds additional data such as seed values from the two digital data sets, the set of error approximations and the association data between the errors of the adjusted samples and their corresponding error approximations as received from the error approximator27in the lower significant bits of the third digital data set or in meta data blocks and provides the resulting digital data set to a first output of the coder10.

The second combiner23adds the samples of the third digital data set to corresponding samples of the fourth digital data set, as provided to its inputs, and supplies the resulting samples of the sixth combined digital data set via its output to a second formatter24which embeds additional data such as seed values from the two digital data sets in the lower significant bits of the sixth combined digital data set or in meta data blocks, and provides the resulting digital data set to a second output of the coder10. In case the first formatter14was unable to fit the association data between the errors of the adjusted samples and their corresponding error approximations as received from the error approximator27in the third combined digital data set the remaining association data is handed to the second formatter24for embedding in the sixth combined digital data set.

It should be noted that the association data linking the errors of the adjusted samples to their error approximations needs to be preserved for each adjusted sample. This association data may fit in the auxiliary channel of one combined digital data set or may overflow into auxiliary data channels of other (in this case the second) combined digital data set.

In an alternative embodiment, instead of having a first and second formatter14and24, a single combiner can be used that handles the task of formatting for both combined channels. This also allows the seed values, set of error approximations and association data to be combined into a single data block and this data block can be evenly distributed across the available auxiliary data channels or stored in meta data blocks. Having a single formatter facilitates this. The association data may also be kept with the combined digital data set to which it applies. The formatter controls the location where the association data is stored. Therefor, having a single formatter handling more than one combined digital data set channel enables the formatter to choose a suitable distribution of the data.

Referring toFIG. 3,FIG. 3shows a decoder according to the prior art. The decoder200for decoding a signal detects (preferably automatically) if ‘audio’ (e.g. 24 bit) has been encoded according to the techniques described above. This can be achieved for instance by a sync detector201that searches the received data stream for a synchronizing pattern in the lower significant bits. The sync detector201has the ability to synchronize to the data blocks in the auxiliary data area formed by the lower significant bits of the samples by finding the synchronization patterns. Alternatively the decoder200can retrieve the seed values and association data between errors of samples and error approximations from meta data blocks. The following will assume that the seed values and error approximation association data is embedded in the combined digital data set that is to be decoded. Once the sync detector201has found any of these matching patterns, it ‘waits’ till a similar pattern is detected. Once that pattern has been detected, the sync detector201gets in a SYNC-candidate-state. Based on the detected synchronizing pattern the sync detector201can also determine whether 2, 4, 6 or 8 bits were used per sample for the auxiliary data area.

On the 2ndsync pattern, the decoder200will scan through the data block to decode the block length, and verify with the next sync pattern if there is a match between the block length and the start of the next sync pattern. If these both match, the decoder200gets in the Sync-state. If this test fails, the decoder200will restart its syncing process from the very beginning. During decode operation, the decoder200will always compare the block length against the number of samples between the start of each successive sync block. As soon as a discrepancy has been detected, the decoder200gets out of Sync-state and the syncing process has to start over.

An error correction code can be applied to data blocks in the auxiliary data area as to protect the data present. This error correction code can also be used for synchronization if the format of the Error Correction Code blocks is known and the position of the auxiliary data in the Error Correction Code blocks is known. InFIG. 3, the sync detector and error detector are shown as being combined in block201, but alternatively the sync detector and error detector may be implemented separately as well.

The error detector calculates the CRC value (using all data from this data block, except syncs) and compares this CRC value with the value found at the end of the data block. If there is a mismatch, the decoder is said to be in CRC-Error state.

The sync detector provides information to the seed value retriever202, the approximation error retriever203and the auxiliary controller204which allows the seed value retriever202, the approximation error retriever203and the auxiliary controller204to extract the relevant data from the auxiliary data area as received from the first input of the decoder200.

Once the sync detector is synced to the data block sync headers, the seed value retriever scans through the data in the data block to determine the offset, i.e. the number of samples between the end of a data block and the first duplicated audio sample (this number could theoretically be negative) and to read these duplicated (audio) samples.

The seed value retriever202retrieves one or more seed values from the auxiliary data area of the received digital data set and provides the retrieved seed values to the unraveler206. The unraveler206performs the basic unraveling of the digital data sets using the seed value(s) as disclosed in paragraph [0067] & [0068] of EP209279161 and is incorporated here by reference.

The result of this unraveling is either multiple digital data sets, or a single digital data set with one or more digital data sets removed from the combined digital data set. This is indicated inFIG. 3by the three arrows connecting the unraveler206to outputs of the decoder200.

The approximation error retriever203will decompress the association data and the error approximation table. The unraveler206applies the error approximations received from the approximation error retriever203to the corresponding samples of the unraveled digital data sets and provides the resulting unraveled digital data set to the first output of the decoder.

As long as the decoder200stays synced to the data-block headers, the approximation error retriever203will continue decompressing the reference lists and the approximation tables, and supply these data to the unraveler206to un-mix the mixed audio samples according to C=A″+B″+E′ or C-E′=A″+B″. The unraveler206uses the duplicated audio samples to start un-mixing into A″ samples and B″ samples. For a combined digital data set in which two digital data sets have been combined, the even indexed samples of A″2imatch with these of A′2i, and A″2i+1are corrected by adding error approximation E′2i+1. Similarly, the odd indexed samples of B″2i+1match with these of B′2i+1, and B″2i+2are corrected by adding error approximation E′2i+2. The extracted and corrected digital data sets are sent out as independent uncorrelated audio streams.

A second channel is equally decoded using a second sync detector211, a second seed value retriever212, a second approximation error retriever213and a second unraveler216. The decoder200detects preferably automatically if ‘audio’ (e.g. 24 bit) has been encoded according to the techniques described above. This can be achieved for instance by a sync detector211which searches the received data stream for a synchronizing pattern in the lower significant bits. The sync detector211has the ability to synchronize to the data blocks in the auxiliary data area formed by the lower significant bits of the samples by finding the synchronization patterns. Alternatively the decoder200can retrieve the seed values and association data between errors of the samples and error approximations from meta data blocks. The following will assume that the seed values and error approximation association data is embedded in the combined digital data set that is to be decoded. Once the sync detector211has found any of these matching patterns, it ‘waits’ till a similar pattern is detected. Once that pattern has been detected, the sync detector211gets in a SYNC-candidate-state. Based on the detected synchronizing pattern the sync detector211can also determine whether 2, 4, 6 or 8 bits were used per sample for the auxiliary data area.

On the 2ndsync pattern, the decoder200will scan through the data block to decode the block length, and verify with the next sync pattern if there is a match between the block length and the start of the next sync pattern. If these both match, the decoder200gets in the Sync-state. If this test fails, the decoder200will restart its syncing process from the very beginning. During decode operation, the decoder200will always compare the block length against the number of samples between the start of each successive sync block. As soon as a discrepancy has been detected, the decoder200gets out of Sync-state and the syncing process has to start over.

An error correction code can be applied to data blocks in the auxiliary data area as to protect the data present. This error correction code can also be used for synchronization if the format of the Error Correction Code blocks is known, and the position of the auxiliary data in the Error Correction Code blocks is known. InFIG. 3, the sync detector and error detector are shown as being combined in block211. Alternatively, the sync detector and error detector may be implemented separately as well.

The error detector calculates the CRC value (using all data from this data block, except syncs) and compares this CRC value with the value found at the end of the data block. If there is a mismatch, the decoder is said to be in CRC-Error state.

The sync detector provides information to the seed value retriever212and the approximation error retriever213which allows the seed value retriever212and the approximation error retriever213to extract the relevant data from the auxiliary data area as received from the first input of the decoder200. Once the sync detector is synced to the data block sync headers, the seed value retriever scans through the data in the data block to determine the offset, i.e. the number of samples between the end of a data block and the first duplicated audio sample (this number could theoretically be negative) and to read these duplicated (audio) samples.

The seed value retriever212retrieves one or more seed values from the auxiliary data area of the received digital data set and provides the retrieved seed values to the unraveler216. The unraveler216performs the basic unraveling of the digital data sets using the seed value(s) as disclosed again in paragraph [0067] & [0068] of EP2092791B1 (incorporated here by reference).

The result of this unraveling is either multiple digital data sets, or a single digital data set with one or more digital data sets removed from the combined digital data set. This is indicated inFIG. 3by the three arrows connecting the unraveler216to outputs of the decoder200.

The approximation error retriever213will decompress the association data and the error approximation table. The unraveler216applies the error approximations received from the approximation error retriever213to the corresponding samples of the unraveled digital data sets and provides the resulting unraveled digital data set to the first output of the decoder.

As long as the decoder200stays synced to the data-block headers, the approximation error retriever213will continue decompressing the reference lists and the approximation tables, and supply these data to the unraveler216to un-mix the mixed audio samples according to C=A″+B″+E′ or C-E′=A″+B″ The unraveler216uses the duplicated audio samples to start un-mixing into A′ samples and B′ samples. For a combined digital data set in which two digital data sets have been combined, the even indexed samples of A″2imatch with these of A″2iand A″2i+1are corrected by adding error approximation E′2i+1. Similarly, the odd indexed samples of B″2i+1match with these of B′2i+1and B″2i+2are corrected by adding error approximation E′2i+2. The extracted and corrected digital data sets are sent out as independent uncorrelated audio streams.

Referring now toFIG. 4,FIG. 4shows a decoder according to the invention. The decoder200for decoding the signal as obtained by the invention has to some extend the same structure as the prior art decoder discussed inFIG. 3. The main difference is that the decoder ofFIG. 4has a single approximation error retriever (instead of two approximation error retrievers inFIG. 3where one approximation error retriever is provided for each input). The sync detector201searches the received data stream for a synchronizing pattern in the lower significant bits. The sync detector201has the ability to synchronize to the data blocks in the auxiliary data area formed by the lower significant bits of the samples by finding the synchronization patterns. Alternatively the decoder200can retrieve the seed values and association data between errors of the samples and error approximations from meta data blocks. The following will assume that the seed values and error approximation association data is embedded in the combined digital data set which is to be decoded. Once the sync detector201has found any of these matching patterns, it ‘waits’ till a similar pattern is detected. Once that pattern has been detected, the sync detector201gets in a SYNC-candidate-state. Based on the detected synchronizing pattern the sync detector201can also determine whether 2, 4, 6 or 8 bits were used per sample for the auxiliary data area.

On the 2ndsync pattern, the decoder200will scan through the data block to decode the block length, and verify with the next sync pattern if there is a match between the block length and the start of the next sync pattern. If these both match, the decoder200gets in the Sync-state. If this test fails, the decoder200will restart its syncing process from the very beginning. During decode operation, the decoder200will always compare the block length against the number of samples between the start of each successive sync block. As soon as a discrepancy has been detected, the decoder200gets out of Sync-state and the syncing process has to start over.

An error correction code can be applied to data blocks in the auxiliary data area as to protect the data present. This error correction code can also be used for synchronization if the format of the Error Correction Code blocks is known, and the position of the auxiliary data in the Error Correction Code blocks is known. InFIG. 4, the sync detector and error detector are shown as being combined in block201, but alternatively the sync detector and error detector may be implemented separately as well.

The error detector calculates the CRC value (using all data from this data block, except syncs) and compares this CRC value with the value found at the end of the data block. If there is a mismatch, the decoder is said to be in CRC-Error state.

The sync detector provides information to the seed value retriever202and the approximation error retriever217which allows the seed value retriever202and the approximation error retriever217to extract the relevant data from the auxiliary data area as received from the first input of the decoder200.

Once the sync detector is synced to the data block sync headers, the seed value retriever202scans through the data in the data block to determine the offset, i.e. the number of samples between the end of a data block and the first duplicated audio sample (this number could theoretically be negative) and to read these duplicated (audio) samples.

The seed value retriever202retrieves one or more seed values from the auxiliary data area of the received digital data set and provides the retrieved seed values to the unraveler first206. The unraveler206performs the basic unraveling of the digital data sets using the seed value(s) as disclosed in paragraph [0067] & [0068] of EP2092791B1 which section is incorporated here by reference.

The result of this unraveling is either multiple digital data sets, or a single digital data set with one or more digital data sets removed from the combined digital data set. This is indicated inFIG. 4by the three arrows connecting the unraveler206to outputs of the decoder200.

The approximation error retriever217will decompress the association data and the error approximation table. The unraveler206applies the error approximations received from the approximation error retriever217on the corresponding samples of the unraveled digital data sets and provides the resulting unraveled digital data set to the first output of the decoder.

As long as the decoder200stays synced to the data-block headers, the approximation error retriever217will continue decompressing the reference lists and the approximation tables, and supply these data to the unraveler206to un-mix the mixed audio samples according to C=A″+B″+E′ or C-E′=A″+B″. The unraveler206uses the duplicated audio samples to start un-mixing into A″ samples and B′ samples. For a combined digital data set in which two digital data sets have been combined, the even indexed samples of A″2lmatch with these of A′2iand A″2i+1are corrected by adding error approximation E′2i+1. Similarly, the odd indexed samples of B″2i+1match with these of B′2i+1and B″2i+2are corrected by adding error approximation E′2i+2. The extracted and corrected digital data sets are sent out as independent uncorrelated audio streams.

A second channel is equally decoded using a second sync detector211, a second seed value retriever212the same approximation error retriever217as used for the first channel and a second unraveler216.

The sync detector211searches the received data stream for a synchronizing pattern in the lower significant bits. The sync detector211has the ability to synchronize to the data blocks in the auxiliary data area formed by the lower significant bits of the samples by finding the synchronization patterns. Alternatively the decoder200can retrieve the seed values and association data between errors of the samples and error approximations from meta data blocks. The following will assume that also for the second channel the seed values and optionally error approximation association data are embedded in the combined digital data set that is to be decoded. Once the sync detector211has found any of these matching patterns, it ‘waits’ till a similar pattern is detected. Once that pattern has been detected, the sync detector211gets in a SYNC-candidate-state. Based on the detected synchronizing pattern the sync detector211can also determine whether 2, 4, 6 or 8 bits were used per sample for the auxiliary data area.

On the 2ndsync pattern, the decoder200will scan through the data block to decode the block length, and verify with the next sync pattern if there is a match between the block length and the start of the next sync pattern. If these both match, the decoder200gets in the Sync-state. If this test fails, the decoder200will restart its syncing process from the very beginning. During decode operation, the decoder200will always compare the block length against the number of samples between the start of each successive sync block. As soon as a discrepancy has been detected, the decoder200gets out of Sync-state and the syncing process has to start over.

An error correction code can be applied to data blocks in the auxiliary data area as to protect the data present. This error correction code can also be used for synchronization if the format of the Error Correction Code blocks is known, and the position of the auxiliary data in the Error Correction Code blocks is known. Hence, inFIG. 4the sync detector and error detector are shown as being combined in block211for convenience, but they may be implemented separately as well.

The error detector calculates the CRC value (using all data from this data block, except syncs) and compares this CRC value with the value found at the end of the data block. If there is a mismatch, the decoder is said to be in CRC-Error state.

The sync detector provides information to the seed value retriever212and if association data for the error approximation is found it is provided to the approximation error retriever213which allows the seed value retriever212and the approximation error retriever213to extract the relevant data from the auxiliary data area as received from the first input of the decoder200. As there is now a single approximation error retriever217only a single set of error approximations is needed which can most likely be stored in one combined digital data set and does not need to be stored in both combined digital data sets, thus saving space. It should be noted that the association data linking the errors of the adjusted samples to their error approximations needs to be preserved for each adjusted samples. This association data may fit in the auxiliary channel of one combined digital data set or may overflow into auxiliary data channels of other (in this case the second) combined digital data set. The association data may also be kept with the combined digital data set to which it applies.

Once the sync detector is synced to the data block sync headers, the seed value retriever scans through the data in the data block to determine the offset, i.e. the number of samples between the end of a data block and the first duplicated audio sample (this number could theoretically be negative and to read these duplicated (audio) samples.

The seed value retriever212retrieves one or more seed values from the auxiliary data area of the received digital data set and provides the retrieved seed values to the unraveler216. The unraveler216performs the basic unraveling of the digital data sets using the seed value(s) as disclosed in paragraph [0067] & [0068] of EP2092791B1 (incorporated here by reference).

The result of this unraveling is either multiple digital data sets, or a single digital data set with one or more digital data sets removed from the combined digital data set. This is indicated inFIG. 4by the three arrows connecting the unraveler216to outputs of the decoder200.

The approximation error retriever217will decompress the association data and already has the error approximation table as it was retrieved in order to decode the first combined digital data set. The unraveler216applies the error approximations received from the approximation error retriever217to the corresponding samples of the unraveled digital data sets and provides the resulting unraveled digital data set to the second output of the decoder.

As long as the decoder200stays synced to the data-block headers, the approximation error retriever217will continue decompressing the reference lists and the approximation tables, and supply these data to the unraveler216to un-mix the mixed audio samples according to C=A″+B″+E′ or C-E′=A″+B″ The unraveler216uses the duplicated audio samples to start un-mixing into A″ samples and B″ samples. For a combined digital data set in which two digital data sets have been combined, the even indexed samples of A″2imatch with these of A′2iand A″2i+1are corrected by adding error approximation E′2i+1. Similarly, the odd indexed samples of B″2i+1match with these of B′2i+1and B″2i+2are corrected by adding error approximation E2i+2. The extracted and corrected digital data sets are sent out as independent uncorrelated audio streams.

FIG. 5shows a mobile device comprising an encoder according to the invention. The mobile device31comprises the encoder10ofFIG. 4. The encoder10is connected to 4 microphones32,33,34,35which provide the source of the digital data set. In order not to complicate the figure, the analog to digital conversion of the microphone signal has been omitted inFIG. 5but the four inputs are receiving a digital data set representing the audio signal picked up by the microphones32,33,34,35. The encoder16combines the digital data set received from first and second microphone35,34into the first combined digital data set and combines the digital data set coming from the third and fourth microphone33,32into the second combined digital data set. A central processing unit28, which coordinates the operation of the mobile device31, receives the first and second combined digital data set from the encoder10and embeds the first and second combined digital data set in a transmission data set which in turn is provided to a communication interface29which subsequently transmits the transmission data via an antenna30. It is evident that instead of transmitting via an antenna30the transmission data can also be transmitted via a wired interface. In an alternative embodiment (not shown), the first and second combined digital data sets are, instead of transmitted, stored on a storage medium such as a flash memory inside the mobile device31or attached to the mobile device31.

The association data and set of error approximations can be transmitted embedded in the combined digital data sets, via meta data block transmitted via an auxiliary transmission channel or stored on the storage medium together with or embedded in the combined digital data sets.

WhereFIG. 5is described for a mobile device, the structure as shown inFIG. 5(and the described alternatives) is the same for any other multimedia device according to the present invention. In other words, a multimedia device according to the invention has the same structure as the mobile device31shown inFIG. 5.

FIG. 6shows a mobile device comprising a decoder according to the invention. The mobile device231comprises an antenna230for receiving a transmitted signal comprising transmission data comprising combined digital data sets as created using the present invention. The antenna230is coupled to a communication interface which receives the transmitted signal from the antenna230and extracts the transmission data from the transmission signal. This transmission data is provided to a central processing unit218which extracts from the transmission signal the first and second combined digital audio sets and in turn provides the first and second combined digital data sets to the decoder200.

The decoder200which is connected to 4 loudspeaker232,233,234,235. In order not to complicate the figure, the digital to analog conversion of the extracted digital data sets into analog signals suitable for analog loudspeakers has been omitted, but the four outputs to the speakers are providing the audio signal to be reproduced by the loudspeakers232,233,234,235. Loudspeakers that accept digital data instead of analog signals of course can be fed directly without digital to analog conversion. The decoder extracts the first and second digital data sets from the first combined digital data set and extracts the third and fourth digital data sets from the second combined digital data set as described inFIG. 4.

It is evident that instead of receiving via an antenna230the transmission data, the transmission data can also be received via a wired interface. In an alternative embodiment (not shown), the first and second combined digital data sets are, instead of received, retrieved from a storage medium such as a flash memory inside the mobile device31or attached to the mobile device31. The association data and set of error approximations can be received embedded in the combined digital data sets, via meta data block transmitted via an auxiliary transmission channel or retrieved from the storage medium.

WhereFIG. 6is described for a mobile device, the structure as shown inFIG. 6(and the described alternatives) is the same for any other multimedia device including a decoder according to the present invention. In other words, a multimedia device suitable for receiving combined digital data sets according to the invention has the same structure as the mobile device231shown inFIG. 6.