EP2267700B1 - Vorrichtung und Verfahren zum Auswählen von Quantisierungsbändern in Audiokodierern - Google Patents

Vorrichtung und Verfahren zum Auswählen von Quantisierungsbändern in Audiokodierern Download PDF

Info

Publication number
EP2267700B1
EP2267700B1 EP09008170A EP09008170A EP2267700B1 EP 2267700 B1 EP2267700 B1 EP 2267700B1 EP 09008170 A EP09008170 A EP 09008170A EP 09008170 A EP09008170 A EP 09008170A EP 2267700 B1 EP2267700 B1 EP 2267700B1
Authority
EP
European Patent Office
Prior art keywords
data
value
stored
memory
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
EP09008170A
Other languages
English (en)
French (fr)
Other versions
EP2267700A1 (de
Inventor
David Trainor
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Technologies International Ltd
Original Assignee
APT Licensing Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by APT Licensing Ltd filed Critical APT Licensing Ltd
Priority to EP09008170A priority Critical patent/EP2267700B1/de
Priority to AT09008170T priority patent/ATE538470T1/de
Publication of EP2267700A1 publication Critical patent/EP2267700A1/de
Application granted granted Critical
Publication of EP2267700B1 publication Critical patent/EP2267700B1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components

Definitions

  • the present invention relates to audio encoders, especially audio encoders for use in Bluetooth systems.
  • the invention relates particularly to selecting quantisation bands by searching quantiser tables in audio encoders.
  • Bluetooth is a short range wireless communications technology that can create personal area networks (PANs) between a variety of fixed and mobile devices, such as mobile phones, laptops, digital cameras, games consoles and media players. It is estimated that Bluetooth currently enjoys an installed base of almost two billion devices worldwide. Specifications and standards for Bluetooth operation are created and maintained by the Bluetooth Special Interest Group (SIG).
  • SIG Bluetooth Special Interest Group
  • Bluetooth is a ubiquitous wireless communications technology, there are a number of technical considerations when using it for the wireless transmission of high-quality stereo audio.
  • A2DP Advanced Audio Distribution Profile
  • SBC Sub Band Codec
  • a suitably equipped pair of Bluetooth devices may choose to communicate audio using a compression codec other than SBC.
  • the decision as to which compression codec to use is made as part of an initial exchange of messages when the communicating devices first establish the Bluetooth link. This is a process known as pairing.
  • Bluetooth communications capability is typically added to a product, e.g. a mobile device, by integrating one of many single-chip Bluetooth solutions provided by companies such as Cambridge Silicon Radio, Broadcom and others.
  • Audio compression and decompression functions are usually implemented in the form of embedded software executing on a general purpose processor or digital signal processor that is internal to the Bluetooth chip.
  • the execution of the audio compression codec requires the processor to carry out a certain amount of work. This, in turn, causes the processor to draw a corresponding level of current from the battery powering the mobile device, which has a direct effect on how long the device can operate on a single charge of the battery.
  • WO 99/62189 A2 discloses a binary search procedure for determining the optimal quantization step size.
  • a first aspect of the invention provides an apparatus for compressing an audio signal as claimed in claim 1.
  • a second aspect of the invention provides a method of selecting quantisation bands as claimed in claim 14.
  • a third aspect of the invention provides a computer program product as claimed in claim 15.
  • the present invention enables quantiser tables to be searched using relatively few processor instructions for each search iteration. Fewer processor instructions equates to reduced current consumption and better battery life. Further advantageous aspects of the invention will become apparent to those ordinarily skilled in the art upon review of the following description of a preferred embodiment and with reference to the accompanying drawings.
  • an audio compression codec comprising an audio encoder 10 and an audio decoder 50.
  • the encoder 10 and decoder 50 are suitable for use as an audio compression codec in systems that support Bluetooth.
  • the encoder 10 receives an input signal comprising audio samples, i.e. from an audio signal sampled in the time domain.
  • the encoder 10 processes the input signal to produce encoded, or compressed, output samples.
  • the processing performed by the encoder 10 compresses the input signal such that it, or more particularly a compressed representation of it, may be transmitted to the decoder 50 with lower bandwidth requirements than would be necessary for the uncompressed signal.
  • the decoder 50 receives the encoded samples and decodes them to produce time domain audio samples representing the input audio signal received by the encoder.
  • the correspondence between the audio samples produced by the decoder 50 and the audio samples received by the encoder 10 is dependent on the compression techniques used by the encoder 10.
  • the encoder 10 and decoder 50 communicate by means of a communications link (not illustrated) which may, for example, comprises a wireless link such as a Bluetooth link.
  • the encoder 10 is co-operable with a transmitter (not shown) for transmitting the compressed output samples to the decoder 50
  • the decoder 50 is co-operable with a receiver (not shown) for receiving the compressed output samples.
  • the transmitter and receiver each process the samples in accordance with the communications technology, e.g. Bluetooth, that they are configured to support.
  • the encoder 10 processes the input stream 11 of audio samples in groups of multiple, in this case 4, samples per audio channel (i.e. left and right channels).
  • Each successive group of samples is processed by an analysis filter bank 12 that splits the input audio stream into multiple, in this case 4, parallel sub-band sample streams 14, where the sample rate of each sub-band stream 14 is a fraction of, in this case 1 ⁇ 4 of, that of the input audio stream 11.
  • the respective data in each sub-band stream 14 represents a respective subset of audio content from the input stream 11 that falls into a respective frequency range covered by each sub-band.
  • each sub-band is of equal width and covers 1 ⁇ 4 of the range of audible frequencies.
  • each sub-band covers a 6 kHz range of frequencies.
  • the first sub-band passes the audio content within the 0-6 kHz, the second 6-12 kHz, the third 12-18 kHz and the final sub-band passes 18-24 kHz.
  • each sub-band stream represents a particularly frequency range. This allows the data in each sub-band to undergo lossy compression independently and with different levels of loss or distortion in each band. Since the human ear is more sensitive to audio in some frequency ranges than others, additional levels of compression can be gained by more aggressively compressing the frequency bands to which the ear is relatively insensitive.
  • lossy compression of the data in each sub-band is carried out using differential coding and quantization.
  • a respective adaptive predictor filter 16 is provided and acts as a predictor, providing a predicted value for upcoming samples from the sub-band filter bank 12.
  • a respective error calculator 18 is provided for each sub-band stream 14 and is arranged to receive, in respect of each sub-band sample of the respective sub-band stream 14, the actual sub-band value from the sub-band filter bank 12 and the corresponding predicted sub-band value from the predictive filter 16, and to calculate the difference between the predicted value and the actual value to produce a prediction error value.
  • the error calculator 18 is provided for each sub-band stream 14 and is arranged to receive, in respect of each sub-band sample of the respective sub-band stream 14, the actual sub-band value from the sub-band filter bank 12 and the corresponding predicted sub-band value from the predictive filter 16, and to calculate the difference between the predicted value and the actual value to produce a prediction error value.
  • the predictive filter 16 If the predictive filter 16 is performing well then the magnitude of this difference, or prediction error value, is small compared to the sub-band sample. Since the prediction error tends to be small, it can be communicated using fewer bits than the corresponding sub-band sample and hence transmitting prediction errors offers a form of compression.
  • the encoder 10 includes a respective quantizer 20 for each sub-band stream 14 arranged to receive the prediction error values and to produce respective quantized error values. It is the quantization operation that introduces the lossy aspect of the compression, since the quantization causes information to be discarded and is a process that can only be approximately inverted.
  • a respective inverse quantizer 22 is arranged to perform inverse quantization on the error values and the output is provided to the respective predictive filter 16. Inverse quantization is carried out to provide approximate prediction error samples to stimulate the predictive filters 16.
  • the predictor filters 16 produce predictions of future samples emerging from the sub-band filter bank 12 based on a history of previous prediction error values.
  • the same differential coding, quantization, inverse quantization and prediction techniques are applied independently to the respective data in each sub-band stream 14.
  • the sophistication and accuracy of the respective prediction filters 16 and/or the levels of approximation employed by the respective quantizers 20 may differ from one sub-band to the next, for example based on the relative sensitivity of the human ear to audio frequencies in the respective sub-band.
  • the encoder 10 further includes a data packer 24 for concatenating the respective quantized prediction error values for each sub-band to provide a concatenated quantized error value in respect of each group of input audio samples.
  • Each concatenated quantized error value provides a respective compressed output sample of the encoder 10.
  • the data from the respective audio channels is interleaved and so the encoder 10 processes the respective channels alternately, e.g. each channel being processed alternately with the other, one groups of input samples at a time.
  • the illustrated encoder 10 consumes 4 input 16-bit audio samples at a time and produces a single 16-bit compressed sample, hence compressing the input audio by a factor of 4.
  • the encoder may be in general arranged to process audio samples in groups of at least one, but typically a plurality of, samples per audio channel. Further, in alternative embodiments, the encoder may be in general arranged to split the audio signal into any practicable number of sub-band sample streams, or even not to split the audio signal into sub-band streams.
  • the configuration of the encoder, and correspondingly of the decoder, would be adapted accordingly as would be apparent to a skilled person.
  • the preferred encoder 10 of Figure 1 implements a Sub-band Adaptive Differential Pulse Code Modulation (SB-ADPCM) compression scheme employing lossy compression to reduce the required network transmission rate for an audio input signal.
  • SB-ADPCM Sub-band Adaptive Differential Pulse Code Modulation
  • the encoder 10 achieves a fixed compression ratio of 4:1, thereby requiring only 25% of the network transmission rate associated with the communication of uncompressed audio.
  • the decoder 50 must initially synchronise itself to the incoming data stream 51 that it receives from the encoder 10.
  • the encoder 10 and decoder 50 communicate via a Bluetooth link.
  • data is transmitted in groups, or packets, of 8-bit bytes that do not necessarily correspond conveniently with the compressed output samples from the encoder 10.
  • the compressed samples output from the encoder 10 are 16 bits long in the present example and, for stereo transmission, are transmitted in channel interleaved fashion and so compressed samples for the left and right channels are sent alternately.
  • the decoder 50 needs to initially deduce from the sequence of bytes in a received Bluetooth-compatible packet whether a particular byte is the most or least significant byte of a compressed output sample from the encoder 10, and whether it belongs to the output sample for the left or the right channel. This creates four possibilities that need to be resolved and the decoder 50 accomplishes this by examining the incoming data stream 51 for synchronisation data.
  • the synchronisation data is preferably added by the quantization process during encoding. Once the synchronisation data has been found with a high degree of reliability, it uniquely identifies the data from the left and right audio channels and which bytes are the most and least significant bytes of the compressed output samples.
  • the compressed samples are unpacked such that the bits of each compressed sample are split into the respective quantized prediction error value for each sub-band.
  • the synchronisation and unpacking is performed by a synchronisation and unpacking module 52.
  • the module 52 thus produces a respective data stream 53 for each sub-band, each data stream 53 comprising the respective quantized prediction error values.
  • An adaptive inverse quantizer 54 is provided for each sub-band in order to perform inverse quantization of the quantized prediction error values.
  • a respective adaptive predictor filter 56 is provided for each sub-band and is arranged to regenerate the same predicted sample values that were produced by corresponding predictor filters 16 at the encoder 10.
  • a respective adder 58 is provided for adding the inverse-quantized prediction error values produced by the inverse quantizers 54 to the respective predicted sample values produced by the predictor filters 56.
  • a close approximation to the respective original sub-band sample of the respective sub-band stream 14 is obtained.
  • the form of the inverse quantization and prediction performed by the quantizer 54 and predictor filter 56 respectively is identical to that performed for the corresponding sub-band in the encoder 10.
  • the respective sub-band samples produced by the respective inverse quantizers 56 are input to a sub-band synthesis filter bank 60 in order to produce audio samples that are representative of the input audio samples received by the encoder 10.
  • the sub-band filter bank 60 operates in the opposite sense to the filter bank 24 of the encoder 10. That is, instead of analysing an input stream and splitting it into multiple, in this case 4, lower-rate streams covering multiple, in this case 4, frequency ranges, the filter bank 60 takes the lower-rate streams and synthesises the original full-rate stream from it. Hence the consumption of a single compressed sample by the decoder 50 results in multiple, in this case 4, output audio samples being produced.
  • the structure and individual filter specification of the synthesis filter bank 60 is similar in many respects to the analysis filter bank 12 in the encoder 10, but is not identical.
  • the codec 10, 50 is adaptive in two major ways. Firstly, the predictor filter in each sub-band adapts its coefficients based on a history of its input and previous output values. The adjustments are carried out to try to drive the prediction error towards zero and minimise it.
  • the second area of adaptation is around the quantisation and inverse quantisation processes.
  • the width or spacing of the quantisation levels is dynamically adjusted to quantise the signal with minimal distortion. Hence, if the quantiser input (prediction error) is small, the quantiser will tend to reduce the quantisation level spacing, so that small values can be quantised with little additional error. Similarly, if the quantiser input starts to get big, then the quantiser will increase the quantisation level spacing. Failure to do so would result in an inaccurate quantised representations of large input values, even if the outermost quantisation level is chosen.
  • each quantizer 20 is capable of selecting from a plurality of quantization bands, each quantization band covering a respective range of values that the prediction error value could take and being represented by a respective quantization output value.
  • the respective quantization output value becomes the quantized prediction error value.
  • FIG 3 An example is shown in Figure 3 where a continuous waveform 70 is quantized using eight quantization bands 72, the quantized output value 74 associated with each quantization band being, by way of example only, a 3-bit label. Prediction error values corresponding to points A and B on the waveform will, in this example, each be assigned to the same quantization band (with label 011) even though they have different absolute values.
  • the quantization bands are not equally sized. It is noted that the quantization output values may comprise fewer or more than 3 bits. Moreover, the number of bits making up the quantization output value may differ between sub-bands. For example, the quantizer may use a higher number of bits for the quantization output value (i.e. a higher resolution) for sub-bands in respect of which the human ear is more sensitive than for sub-bands in respect of which the human ear is relatively insensitive.
  • Data defining the quantization bands is stored in memory, typically in a quantiser table (illustrated in Figures 5 to 9 ).
  • the quantizer 20 performs a search of the quantiser table in order to determine the most appropriate quantisation band for the respective prediction error value. This is described in further detail below.
  • FIG. 4 shows the pertinent features of a typical hardware structure for a digital signal processor as found on a Bluetooth chip.
  • the architecture 80 includes a processor 82 in the preferred form of a digital signal processor, although other data processors, or microprocessors, may alternatively be used.
  • the processor 82 includes a plurality of data registers, shown in Figure 4 as register bank 84. These registers may comprise general purpose registers for containing data such as input operands and computed results of various arithmetic and logical operations. Optionally, one or more dedicated registers or register banks may be provided for address generation. These are represented in Figure 4 by an address generator unit 86.
  • the processor 82 further includes an arithmetic logic unit (ALU) 88 for performing logical and/or arithmetic computations on operands.
  • a data memory interface unit 90 is also provided to allow the processor 82 to communicate with local memory device(s) 92, and in particular with data memory as is described in more detail hereinafter.
  • Signal processors typically have a set of peripherals, consisting of functions like timers, UARTs and special interfaces to get data on and off the processor in various formats. This is represented in Figure 4 by peripheral unit 85.
  • the architecture 80 typically includes a memory management unit (MMU) 93 with which the processor 82 is in communication for handling accesses to memory 92.
  • the MMU 93 can take any suitable conventional form.
  • the memory device 92 includes a plurality of data memories 94, in this example two data memories labelled as Data Memory 1 and Data Memory 2 in Figure 4 .
  • the data memory interface unit 90 supports a respective data memory interface 91 between the processor 82 and each of the data memories 94.
  • at least one program memory 96 is provided.
  • the processor 82 is in communication with the program memory 96 by means of any suitable conventional program memory interface.
  • the memory device 92 typically comprises one or more random access memory (RAM).
  • the program memory 96 stores processor executable instructions that the processor 82 is required to implement.
  • the instructions take the form of embedded executable computer software for performing one or more of the functions required to implement audio compression or decompression.
  • one of the data memories 94 e.g. Data Memory 1
  • a separate data memory e.g. Data Memory 2
  • stores data defining the quantisation bands typically in the form of one or more quantiser tables.
  • the respective parallel data memory interfaces 91 allow a data value to be read from, or written to, each data memory Data Memory 1, Data Memory 2 concurrently. In conjunction with the ALU 88, this allows an arithmetic or logical computation to be performed in parallel with up to two memory accesses. Arranging the algorithmic computations to maximally exploit this parallelism facilitates keeping the processor instruction count low.
  • the address generator unit 86 has, in respect of each data memory 94, a plurality of address generators that can address the respective data memory.
  • Each address generator comprises 3 hardware registers, namely an index (I) register, which holds the actual memory address to index the corresponding data memory 94; a modify (M) register, which contains a value by which the contents of the corresponding I register are automatically incremented by the processor architecture 80 after a memory access; and a length (L) register, which allows the set-up of modulo addressing, so that a range of addresses that are traversed by the processor hardware 80 in a circular or wrap-around fashion can be defined.
  • I index
  • M modify
  • L length
  • processors within Bluetooth chips are fixed-point processors, meaning that computation results need to be continually limited, scaled or rounded to remain compliant with a fixed numerical format adopted by the processor. This allows simpler and lower-powered processors to be created, but means that signal processing algorithms cannot be implemented in a mathematically-exact fashion.
  • Fixed-point processors often possess a small number of extended-precision registers, which allow relatively short sequences of arithmetic and logical instructions to take place at higher levels of precision, with limits and rounding only being applied when results are moved from an extended-precision register.
  • the quantised value that most closely represents the higher-precision input value i.e. the prediction error value being quantized
  • Successive bands or ranges of input values map to successive quantised values. An example of this mapping is shown in Figure 3 , where 8 bands of input values map to 8 different quantised values.
  • the predictor 16 operation creates a situation whereby small errors are statistically more likely to be fed into the quantisation process than larger errors. Therefore, in order to reduce the average distortion and loss introduced by the quantisation process, it is advantageous to quantise small input values relatively finely and large input values relatively coarsely, i.e. the quantised output values represent small inputs relatively precisely and large inputs relatively inaccurately. The inaccurate representation of large inputs is acceptable because they occur relatively infrequently in a statistical sense.
  • the quantised output values are limited to N bits, the corresponding 2 N input bands are not of equal size or range. Input bands that cover small input values are of relatively small size. As the input value increase, bands become wider.
  • FIG. 3 shows a widening of quantisation bands with increasing input size.
  • the non-linear distribution of quantisation bands means that it is non-trivial to determine which band a particular high-precision input value falls into.
  • the audio compression algorithm may adapt (i.e. change) the width of the quantisation bands dynamically, by linearly scaling the default (non-linearly distributed) input values that mark quantisation band boundaries.
  • the value used for the scaling, called ⁇ may be based on an estimate of the short-term standard deviation of the input signal to the quantisation, and adapts the width of quantisation bands to best cover the current degree of variation seen in the input signal.
  • the quantisation of the magnitude is of primary interest, which is performed on the absolute value of the high-precision input value and results in an N-1 bit output.
  • the default (non-linearly distributed) positive input values that mark quantisation band boundaries are stored in a look-up table (illustrated in Figures 5 to 9 ), or other suitable memory structure, which resides in processor memory (in this example Data Memory 2).
  • the quantisation band boundaries values are sorted according to value within the table (e.g. increasing values in the table are stored at locations with increasing table indices (addresses)). In alternative embodiments, it is possible to use an arrangement whereby increasing table values are stored in decreasing memory addresses. This would still allow the three-instruction cycle for each bisection search iteration that is described hereinafter.
  • quantisation table address offsets would be subtracted, rather than added, to the base address of the quantiser table.
  • the principal criterion for the search to work is that the quantisation table values are sorted (either ascending or descending).
  • This table is searched until the smallest table index, I min , is found for which the contents of the table at that index, when multiplied by the scaling value ⁇ (if applicable), exceeds the high-precision input value.
  • An alternative implementation would be to find the largest table index that gives a result less than or equal to the high-precision input value, assuming ascending quantisation table values are stored in ascending memory addresses.
  • the N-1 output bits for the quantised magnitude are then set to I min , i.e. the table indices serve in this example as the label, or quantized value, for the respective quantization band.
  • I min a table index
  • the base of the table may be located at any convenient memory address.
  • the table memory addresses run from 1000-1015 but the table indices run from 0 to 15. It is the table indices, not the physical memory addresses, that give the N-1 bits that form the absolute quantised value. This is concatenated with the single sign bit to give the (signed) N-bit quantised value.
  • the table searching process could be completed in a naive fashion by starting at the base of the table and incrementing the index by one until the table value multiplied by ⁇ just exceeds the high-precision input value.
  • this is inefficient, since many table entries may have to be tested incrementally before the correct one is found.
  • the search of the table is performed using a binary, or bisection, search technique, where the search procedure iteratively removes approximately half of the table indices that remain eligible as solutions. Therefore, the solution for a table containing 2 N-1 values is obtained in N-1 iterations.
  • Binary searching is not necessarily the fastest searching procedure but it is simple, easy to implement and is guaranteed to converge to the correct solution in all cases.
  • the MMU 93 and memory interface 90 are co-operable with one another to allow the two concurrent accesses to Data Memory 1 and Data Memory 2.
  • RThreshOffset A general-purpose processor register that holds an address offset such that a particular element of the table of default quantisation band boundaries can be accessed by accessing the memory address given by rThreshBase + rThreshOffset.
  • rOldThreshOffset A general-purpose processor register that holds the value of rThreshOffset from the previous iteration of the bisection search.
  • rThreshTableValue A general-purpose processor register that holds a particular value read from the table of default quantisation band boundaries residing in processor memory (Data Memory 2 in the present example).
  • rDelta A general-purpose processor register that holds the current value for the scaling factor ⁇ .
  • IbisOff A dedicated index (I) processor register that holds the memory address of an element of a "bisection offset" table.
  • I dedicated index
  • the IbisOff register may be implemented in the address generator 86, while the remaining registers identified above may be implemented in the register bank 84.
  • the bisection offset table comprises data held in processor memory 92 (for example in Data Memory 1 of Figure 4 ) and is indexed, or addressed, using the dedicated index register IbisOff.
  • the contents of the bisection offset table are descending powers of 2, with the first element containing the value 2 N-3 , where N is the number of bits in the quantised output, including the sign bit.
  • the final element of the table is a trailing value of zero, although. it could be any dummy value (it is read during the final search iteration but never used). It is desirable to keep all the search iterations the same so that the three search instructions can be repeated for the required number of iterations, without having to do a special instruction sequence for the final iteration.
  • the bisection offset table contains the following contents, listed from the first to last element: 16, 8,4, 2,1,0
  • the purpose of the bisection offset table is to generate successively lower powers of 2 by using incrementing memory accesses to a table. This could alternatively be performed by the ALU 88 of the processor 82 by taking the previous power of 2 and generating the new power of 2 by a 1-bit right shift of a binary value.
  • a problem with this approach is that the right shift is an arithmetic/logical operation and only one of these operations can be carried out by a single processor instruction.
  • up to two memory accesses can be carried out by a single processor instruction, so implementing the descending power of 2 generation using a table lookup allows the bisection search iteration to complete using fewer consecutive instructions.
  • the initialisation code causes the memory address (an address in Data Memory 1 in the example of Figure 4 ) of the absolute value of the high-precision input value to the quantisation process is calculated and stored by the processor 82.
  • this address value is stored in an index register in the address generator unit 86, because the processor does not support the particular double memory access format of instruction 1 in the 3-cycle bisection search iteration unless the high-precision input is read from memory via an index (I) register.
  • index (I) register In typical embodiments, in alternative embodiments it may be stored in any convenient location, e.g. the register bank 84.
  • the index register IbisOff is loaded with the address of the first element in the bisection offset table.
  • rT'hreshBase is loaded with the address of the first element in the table of default quantisation band boundaries, and both rThreshOffset and rOldThreshOffset are loaded with the value 2 N-2 , where N is the number of bits in the quantised output, including the sign bit.
  • the input value to the quantiser and the quantisation tables are stored in different data memories so that the first instruction in the bisection search iteration completes in a single clock cycle.
  • the bisection offset table is successively read from simple incrementing addresses.
  • the bisection search process causes the table base and table offset register values to "jump" by relatively large values from one search iteration to the next.
  • the high-precision input value and the quantisation band boundary table are stored in respective data memories (Data Memory 1 and Data Memory 2 respectively in the illustrated example).
  • the bisection offset table can be in either data memory, but is assumed to be in Data Memory 1 in the present example and the example shown in Figs 5-9 .
  • the memory addressing of the processor 82 is based on a flat memory model and so, from a software programming point of view Data Memory 1 and Data Memory 2 are addressed as 2 different regions in one larger address space. In other words, there is "continuity of addressing" of the 2 different memories.
  • the data memories 94 may be separate from one another, e.g. physically and electrically independent from one another, as shown in Figure 4 . Alternatively, they may be implemented as respective independently, or concurrently, accessible portions of the same memory (e.g. in a dual-port memory). Either arrangement allows two memory accesses to occur in the same processor clock cycle.
  • addresses below 1000 are in Data Memory 1 and addresses from 1000 up are in Data Memory 2. It is noted that the specific memory addresses shown in Figures 5-9 are given by way of illustration only and are not intended to correspond with actual memory addresses.
  • Figure 5 shows the state of the processor 82 after the initialisation steps described above.
  • the first processor instruction of the first bisection search iteration is now carried out, updating the state of the processor as shown in Figure 6 . It is noted that the values of rMAC and rThreshTableValue have been updated as a direct consequence of this instruction. The first row of Table 2 explains how the relevant operations have been performed.
  • the second processor instruction of the first bisection search iteration is now carried out, updating the state of the processor as shown in Figure 7 . It is noted that the values of rMAC and rThreshOffset have been updated as a direct consequence of this instruction. The second row of Table 2 explains how the relevant operations have been performed.
  • the third processor instruction of the first bisection search iteration is now carried out. Since this instruction behaves differently depending on whether the value in the register rMAC after the second instruction completes is positive or not, both cases are illustrated below.
  • the value in rMAC is positive. This means that the desired value in the default quantisation band boundary table is in the upper half of the table and it is this table region that should be promoted to the second search iteration.
  • the updated processor state after the third instruction is shown in Figure 8 .
  • the values of rThreshBase, IbisOff and rOldThreshOffset have been updated as a direct consequence of this instruction.
  • the third row of Table 2 explains how the relevant operations have been performed. Note also that the updated value in rThreshBase means that the second bisection search iteration will search only the table elements from address 1008 and above, i.e. the upper section of the table.

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Claims (15)

  1. Vorrichtung zum Komprimieren eines Audiosignals, wobei die Vorrichtung einen Prozessor und einen Datenspeicher umfasst, wobei der Prozessor eine arithmetische Logikeinheit und mehrere Datenregister beinhaltet und so programmiert werden kann, dass er mehrere Prozessorbefehle implementiert, und wobei der Prozessor in Bezug auf einen einzigen Prozessorbefehl eine unkonditionelle Rechenoperation und zwei unabhängige Datenspeicherzugriffe oder eine konditionelle Rechenoperation und einen Datenspeicherzugriff ausführen kann, wobei der Prozessor ferner bewirken kann, dass ein in wenigstens einem der genannten Datenregister enthaltener Wert zum Adressieren des genannten Datenspeichers inkrementiert wird, und wobei die genannte Vorrichtung ferner Folgendes beinhaltet:
    einen ersten Satz von in dem genannten Datenspeicher gespeicherten Datenwerten, wobei der genannte erste Satz Datenwerte umfasst, die jeweils eine jeweilige Quantisierungsbandgrenze repräsentieren und in dem genannten Datenspeicher nach ihren jeweiligen Werten sortiert werden, und
    einen zweiten Satz von in dem genannten Datenspeicher gespeicherten Datenwerten, wobei der genannte zweite Satz wenigstens einen Datenwert umfasst, der eine Zweierpotenz ist, wobei die Datenwerte des genannten zweiten Satzes in dem genannten Datenspeicher in absteigender Wertefolge sortiert werden, und wobei
    ein erstes der genannten Datenregister (rThreshBase) beim Gebrauch eine Speicheradresse für einen ersten Datenwert des genannten ersten Satzes hält, ein zweites der genannten Datenregister (rThreshOffset) beim Gebrauch einen aktuellen Adressenversatzwert hält, ein drittes der genannten Datenregister (rOldThreshOffset) beim Gebrauch einen vorherigen Adressenversatzwert hält, ein viertes der genannten Datenregister (rThreshTableValue) beim Gebrauch einen Datenwert hält, der von dem genannten Prozessor von dem genannten ersten Datensatz erhalten wird, ein fünftes der genannten Datenregister (rMAC) beim Gebrauch einen Datenwert hält, der das Ergebnis von einer oder mehreren Berechnungen ist, die von dem genannten Prozessor in Bezug auf den in dem genannten vierten Register gehaltenen Datenwert durchgeführt werden, und ein sechstes der genannten Datenregister (IbisOff) eine Speicheradresse eines Datenwertes in dem genannten zweiten Satz von Datenwerten hält,
    und wobei die genannte Vorrichtung die Aufgabe hat, in Bezug auf jeden der mehreren Sucheingabewerte, die von dem genannten Audiosignal abgeleitet und in dem genannten Datenspeicher gespeichert sind, eine Bisektionssuche in dem genannten ersten Satz von Datenwerten durchzuführen, um zu ermitteln, welcher der Datenwerte in dem genannten ersten Satz die beste Annäherung an den jeweiligen Eingangswert ist, wobei die genannte Bisektionssuche mit einer oder mehreren Iterationen durchgeführt wird, wobei der genannte Prozessor in Bezug auf jede Suchiteration Folgendes durchführt:
    Lesen, beim Ausführen eines ersten Prozessorbefehls, des jeweiligen Eingangswerts aus dem Datenspeicher und Bewirken, dass der Eingangswert in dem genannten fünften Datenregister gespeichert wird, und Lesen des Datenwertes des genannten ersten Satzes, dessen Adresse in dem genannten Datenspeicher der in dem genannten ersten Datenregister gehaltenen Adresse entspricht, um den in dem genannten zweiten Datenregister gehaltenen aktuellen Adressenversatzwert versetzt, und Bewirken, dass der genannte Datenwert in dem genannten vierten Datenregister gespeichert wird, und
    Berechnen, beim Ausführen eines zweiten Prozessorbefehls, der Differenz zwischen dem in dem genannten fünften Datenregister gespeicherten Eingangswert und dem genannten Datenwert des genannten, in dem genannten vierten Datenregister gespeicherten ersten Satzes, oder eines Derivats davon, und Bewirken, dass der resultierende Wert in dem genannten fünften Datenregister gespeichert wird, und Lesen des Datenwertes des genannten ersten Satzes, dessen Adresse in dem genannten Datenspeicher der im genannten sechsten Datenregister gehaltenen Adresse entspricht, und Bewirken, dass das Ergebnis in dem genannten zweiten Datenregister gespeichert wird, und
    Justieren beim Ausführen eines dritten Prozessorbefehls nur dann, wenn die genannte in dem genannten fünfte Datenregister gehaltene Differenz anzeigt, dass die nächste Iteration der Bisektionssuche in einer oberen Sektion des genannten ersten Satzes von Datenwerten stattfinden soll, der Speicheradresse in dem genannten ersten Datenregister um den in dem genannten dritten Datenregister gespeicherten Versatz und Bewirken, dass die resultierende justierte Speicheradresse in dem genannten ersten Datenregister (rThreshBase) gespeichert wird, Lesen des Datenwertes des genannten zweiten Datensatzes, dessen Adresse in dem genannten Datenspeicher der in dem genannten sechsten Datenregister gehaltenen Adresse entspricht, und Bewirken, dass das Ergebnis in dem genannten dritten Datenregister gespeichert wird, und Bewirken, dass die im Datenregister gehaltene Speicheradresse und bewirken, dass das Ergebnis in dem genannten dritten Datenregister gespeichert wird [sic], und Bewirken, dass die in dem genannten sechsten Datenregister gehaltene Speicheradresse inkrementiert wird, so dass sie auf den nächsten Datenwert in dem genannten zweiten Datensatz zeigt.
  2. Vorrichtung nach Anspruch 1, wobei ein siebtes der genannten Datenregister (rDelta) beim Gebrauch einen aktuellen Wert eines Quantisierungsband-Skalierungsfaktors hält und wobei der genannte Prozessor beim Ausführen des genannten zweiten Prozessorbefehls die Differenz zwischen dem in dem genannten fünften Datenregister gespeicherten Eingangswert und dem genannten Datenwert des genannten ersten Satzes, der in dem genannten vierten Datenregister gespeichert ist, multipliziert mit dem genannten Skalierungsfaktor, berechnet und bewirkt, dass der resultierende Wert in dem genannten fünften Datenregister gespeichert wird.
  3. Vorrichtung nach Anspruch 1 oder 2, wobei der genannte Prozessor beim Ausführen des genannten zweiten Prozessorbefehls die genannte Differenz durch Subtrahieren des genannten Datenwertes des genannten ersten Satzes, der in dem genannten vierten Datenregister gespeichert ist, oder eines Derivats davon, von dem in dem genannten fünften Datenregister gespeicherten Eingangswert berechnet, und wobei der Prozessor beim Ausführen des genannten dritten Prozessorbefehls die Speicheradresse in dem genannten ersten Datenregister nur dann justiert, wenn die genannte Differenz positiv ist.
  4. Vorrichtung nach einem der vorherigen Ansprüche, wobei das genannte fünfte Datenregister ein Prozessorregister mit erweiterter Präzision ist, das den Ausgang von Multiplizier- und Multiplizier/Akkumulier-Operationen ohne Präzisionsverlust hält.
  5. Vorrichtung nach einem der vorherigen Ansprüche, wobei der genannte erste Satz von Datenwerten in dem genannten Datenspeicher so sortiert wird, dass aufeinander folgende Datenwerte mit aufeinander folgenden Adressen in dem genannten Datenspeicher assoziiert werden.
  6. Vorrichtung nach einem der vorherigen Ansprüche, wobei die genannten Datenwerte in dem genannten ersten Satz in dem genannten Datenspeicher sortiert und gespeichert werden, so dass ansteigende Datenwerte an Speicherstellen mit ansteigenden Adressen gespeichert werden.
  7. Vorrichtung nach einem der vorherigen Ansprüche zum Erzeugen, mit Bezug auf jeden der genannten Sucheingangswertes, eines quantisierten Ausgangswerts, der N Bits umfasst, wobei N-1 Bits den quantisierten Wert repräsentieren und das übrige Bit anzeigt, ob der quantisierte N-1 Bit Wert positiv oder negativ ist.
  8. Vorrichtung nach Anspruch 7, wobei der genannte zweite Datensatz wenigstens N-2 Datenwerte umfasst, wobei der erste Datenwert in dem genannten zweiten Satz den Wert 2N-3 annimmt, wobei die nachfolgenden N-3 Datenwerte aufeinander folgende abnehmende Zweierpotenzen sind.
  9. Vorrichtung nach Anspruch 8, wobei der genannte zweite Datensatz N-1 Datenwerte einschließlich eines letzten Dummy-Datenwerts enthält, der z.B. auf null gesetzt ist.
  10. Vorrichtung nach einem der Ansprüche 7 bis 9, wobei das genannte zweite und dritte Datenregister mit dem Wert 2N-2 initialisiert werden.
  11. Vorrichtung nach einem der vorherigen Ansprüche, wobei die genannten Sucheingangswerte in einem separaten Datenspeicher oder wenigstens in einem separat zugängigen Teil eines gemeinsamen Datenspeichers zu dem genannten ersten Datensatz gehalten werden.
  12. Vorrichtung nach einem der Ansprüche 5 bis 11, wobei jeder Datenwert des genannten ersten Satzes mit einem Indexwert assoziiert ist und wobei mehrere Iterationen der genannten Bisektionssuche durchgeführt werden, bis der kleinste Indexwert (Imin) gefunden wird, für den der jeweilige Datenwert bei Multiplikation mit dem genannten Skalierungswert, gegebenenfalls, den Sucheingangswert übersteigt, oder alternativ, bis der größte Index gefunden wird, für den der jeweilige Datenwert gleich oder kleiner als der Sucheingangswert ist.
  13. Vorrichtung nach einem der vorherigen Ansprüche, wobei die Speicheradresse des ersten Datenwertes vor einer ersten Iteration der genannten Bisektionssuche in dem genannten zweiten Datensatz in dem genannten sechsten Datenregister gespeichert wird.
  14. Verfahren zum Wählen von Quantisierungsbändern für eine Vorrichtung nach Anspruch 1, wobei das Verfahren in Bezug auf jeden der mehreren Sucheingangswerte, die von dem genannten Audiosignal abgeleitet und in dem genannten Datenspeicher gespeichert sind, das Ausführen einer Bisektionssuche in dem genannten ersten Satz nach Datenwerten beinhaltet, um zu ermitteln, welcher der Datenwerte in dem genannten ersten Satz die beste Annäherung an den jeweiligen Eingangswert ist, wobei die genannte Bisektionssuche in einer oder mehreren Iterationen durchgeführt wird, wobei das genannte Verfahren in Bezug auf jede Suchiteration Folgendes beinhaltet:
    Lesen, beim Ausführen eines ersten Prozessorbefehls, des jeweiligen Eingangswerts aus dem Datenspeicher und Bewirken, dass der Eingangswert in dem genannten fünften Datenregister gespeichert wird, Lesen des Datenwertes des genannten ersten Satzes, dessen Adresse in dem genannten Datenspeicher der in dem genannten ersten Datenregister gehaltenen Adresse entspricht, um den in dem genannten zweiten Datenregister gehaltenen aktuellen Adressversatzwert versetzt, und Bewirken, dass der genannte Datenwert in dem genannten vierten Datenregister gespeichert wird, und
    Berechnen, beim Ausführen eines zweiten Prozessorbefehls, der Differenz zwischen dem in dem genannten fünften Datenregister gespeicherten Eingangswert und dem genannten Datenwert des genannten ersten Satzes, der in dem genannten vierten Datenregister gespeichert ist, oder eines Derivats davon, Bewirken, dass der resultierende Wert in dem genannten fünften Datenregister gespeichert wird, und Lesen des Datenwertes des genannten zweiten Satzes, dessen Adresse in dem genannten Datenspeicher der im genannten sechsten Datenregister gehaltenen Adresse entspricht, und Bewirken, dass das Ergebnis in dem genannten zweiten Datenregister gespeichert wird, und
    Justieren, beim Ausführen eines dritten Prozessorbefehls, nur dann, wenn die genannte in dem genannten fünften Datenregister gehaltene Differenz anzeigt, dass die nächste Iteration der Bisektionssuche in einer oberen Sektion des genannten ersten Satzes von Datenwerten stattfinden soll, der Speicheradresse in dem genannten ersten Datenregister um den in dem genannten dritten Datenregister gespeicherten Versatz und Bewirken, dass die resultierende justierte Speicheradresse in dem genannten ersten Datenregister (rThreshBase) gespeichert wird, Lesen des Datenwertes des genannten zweiten Satzes, dessen Adresse in dem genannten Datenspeicher der in dem genannten sechsten Datenregister gehaltenen Adresse entspricht, und Bewirken, dass das Ergebnis in dem genannten dritten Datenregister gespeichert wird, und Bewirken, dass die in dem genannten sechsten Datenregister gehaltene Speicheradresse so inkrementiert wird, dass sie auf den nächsten Datenwert in dem genannten zweiten Satz zeigt.
  15. Computerprogrammprodukt, das Computerprogrammcode umfasst, der auf einem von einem Computer benutzbaren Medium gespeichert ist und bewirken soll, dass der Prozessor der Vorrichtung nach Anspruch 1 das Verfahren nach Anspruch 14 ausführt.
EP09008170A 2009-06-22 2009-06-22 Vorrichtung und Verfahren zum Auswählen von Quantisierungsbändern in Audiokodierern Active EP2267700B1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP09008170A EP2267700B1 (de) 2009-06-22 2009-06-22 Vorrichtung und Verfahren zum Auswählen von Quantisierungsbändern in Audiokodierern
AT09008170T ATE538470T1 (de) 2009-06-22 2009-06-22 Vorrichtung und verfahren zum auswählen von quantisierungsbändern in audiokodierern

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP09008170A EP2267700B1 (de) 2009-06-22 2009-06-22 Vorrichtung und Verfahren zum Auswählen von Quantisierungsbändern in Audiokodierern

Publications (2)

Publication Number Publication Date
EP2267700A1 EP2267700A1 (de) 2010-12-29
EP2267700B1 true EP2267700B1 (de) 2011-12-21

Family

ID=41198541

Family Applications (1)

Application Number Title Priority Date Filing Date
EP09008170A Active EP2267700B1 (de) 2009-06-22 2009-06-22 Vorrichtung und Verfahren zum Auswählen von Quantisierungsbändern in Audiokodierern

Country Status (2)

Country Link
EP (1) EP2267700B1 (de)
AT (1) ATE538470T1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102737639B (zh) * 2012-07-13 2014-05-28 北京理工大学 一种语音信息安全通信方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1080462B1 (de) * 1998-05-27 2005-02-02 Microsoft Corporation Verfahren und vorrichtung zur entropie-kodierung von quantisierten transformationskoeffizienten eines signals

Also Published As

Publication number Publication date
EP2267700A1 (de) 2010-12-29
ATE538470T1 (de) 2012-01-15

Similar Documents

Publication Publication Date Title
JP6909265B2 (ja) オーディオ/ビデオサンプルベクトルのピラミッドベクトル量子化インデクシング及びデインデクシングの方法及び装置
US7864083B2 (en) Efficient data compression and decompression of numeric sequences
US8335577B2 (en) Method of generating advanced audio distribution profile (A2DP) source code and chipset using the same
US20200090667A1 (en) Method and system for lossless value-location encoding
EP2261898B1 (de) Audiocodec mit verbesserter Synchronisation
US20100017196A1 (en) Method, system, and apparatus for compression or decompression of digital signals
US20180061429A1 (en) Vector quantizer
EP2267700B1 (de) Vorrichtung und Verfahren zum Auswählen von Quantisierungsbändern in Audiokodierern
KR20040075944A (ko) 디지털 정보신호의 데이터 압축 및 압축해제
CN111933162A (zh) 一种优化lc3编码器残差编码和噪声估计编码的方法
FI110373B (fi) Menetelmä pakatun audiosignaalin purkamiseksi
JP2010160439A (ja) 符号化方法、復号方法、それらの装置、プログラム及び記録媒体
US11935550B1 (en) Audio compression for low overhead decompression
CN106415484A (zh) 专用算术编码指令
Loekken Wireless Loudspeaker System With Real-Time Audio Compression
Liu et al. A leading sign grouping with direct table lookup approach for AAC Huffman decoding
EP2261899A1 (de) Audiokodierer und -dekodierer mit verbesserter Synchronisation
Wassner et al. Speech coding for energy-efficient digital signal processing
KR20030002638A (ko) 적응 차분 펄스부호변조를 구현하는 장치
Dixon et al. Single DSP implementation of a 16 kbps sub-band speech coder for portable communications

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL BA RS

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

17P Request for examination filed

Effective date: 20110610

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK TR

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: CH

Ref legal event code: EP

REG Reference to a national code

Ref country code: AT

Ref legal event code: REF

Ref document number: 538470

Country of ref document: AT

Kind code of ref document: T

Effective date: 20120115

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: DE

Ref legal event code: R096

Ref document number: 602009004245

Country of ref document: DE

Effective date: 20120308

REG Reference to a national code

Ref country code: NL

Ref legal event code: T3

RAP2 Party data changed (patent owner data changed or rights of a patent transferred)

Owner name: CAMBRIDGE SILICON RADIO LIMITED

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20111221

Ref country code: NO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20120321

LTIE Lt: invalidation of european patent or patent extension

Effective date: 20111221

REG Reference to a national code

Ref country code: GB

Ref legal event code: 732E

Free format text: REGISTERED BETWEEN 20120503 AND 20120509

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20111221

Ref country code: GR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20120322

Ref country code: SI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20111221

Ref country code: LV

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20111221

Ref country code: HR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20111221

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CY

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20111221

Ref country code: BE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20111221

REG Reference to a national code

Ref country code: DE

Ref legal event code: R081

Ref document number: 602009004245

Country of ref document: DE

Owner name: CAMBRIDGE SILICON RADIO LIMITED, GB

Free format text: FORMER OWNER: APT LICENSING LTD., BELFAST, GB

Effective date: 20120516

Ref country code: DE

Ref legal event code: R081

Ref document number: 602009004245

Country of ref document: DE

Owner name: QUALCOMM TECHNOLOGIES INTERNATIONAL, LTD., GB

Free format text: FORMER OWNER: APT LICENSING LTD., BELFAST, GB

Effective date: 20120516

REG Reference to a national code

Ref country code: NL

Ref legal event code: SD

Effective date: 20120709

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CZ

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20111221

Ref country code: BG

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20120321

Ref country code: EE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20111221

Ref country code: IS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20120421

Ref country code: SK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20111221

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: RO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20111221

Ref country code: PT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20120423

Ref country code: PL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20111221

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 20120626

Year of fee payment: 4

REG Reference to a national code

Ref country code: AT

Ref legal event code: MK05

Ref document number: 538470

Country of ref document: AT

Kind code of ref document: T

Effective date: 20111221

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20111221

26N No opposition filed

Effective date: 20120924

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20111221

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 602009004245

Country of ref document: DE

Effective date: 20120924

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: AT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20111221

Ref country code: MC

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20120630

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20111221

REG Reference to a national code

Ref country code: IE

Ref legal event code: MM4A

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20120622

Ref country code: ES

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20120401

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: FI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20111221

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20111221

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

REG Reference to a national code

Ref country code: FR

Ref legal event code: ST

Effective date: 20140228

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CH

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20130630

Ref country code: TR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20111221

Ref country code: LI

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20130630

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: FR

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20130701

Ref country code: LU

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20120622

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: HU

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20090622

REG Reference to a national code

Ref country code: DE

Ref legal event code: R082

Ref document number: 602009004245

Country of ref document: DE

Representative=s name: OLSWANG GERMANY LLP, DE

Ref country code: DE

Ref legal event code: R081

Ref document number: 602009004245

Country of ref document: DE

Owner name: QUALCOMM TECHNOLOGIES INTERNATIONAL, LTD., GB

Free format text: FORMER OWNER: CAMBRIDGE SILICON RADIO LIMITED, CAMBRIDGE, GB

Ref country code: DE

Ref legal event code: R082

Ref document number: 602009004245

Country of ref document: DE

Representative=s name: MAUCHER JENKINS PATENTANWAELTE & RECHTSANWAELT, DE

REG Reference to a national code

Ref country code: NL

Ref legal event code: HC

Owner name: QUALCOMM TECHNOLOGIES INTERNATIONAL, LTD.; GB

Free format text: DETAILS ASSIGNMENT: VERANDERING VAN EIGENAAR(S), VERANDERING VAN NAAM VAN DE EIGENAAR(S); FORMER OWNER NAME: CAMBRIDGE SILICON RADIO LIMITED

Effective date: 20160316

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: NL

Payment date: 20170613

Year of fee payment: 9

REG Reference to a national code

Ref country code: DE

Ref legal event code: R082

Ref document number: 602009004245

Country of ref document: DE

Representative=s name: MAUCHER JENKINS PATENTANWAELTE & RECHTSANWAELT, DE

REG Reference to a national code

Ref country code: NL

Ref legal event code: MM

Effective date: 20180701

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: NL

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20180701

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20230509

Year of fee payment: 15

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20230510

Year of fee payment: 15