EP3180862B1 - Procédé pour coder des vecteurs d'impulsion en utilisant des propriétés statistiques - Google Patents

Procédé pour coder des vecteurs d'impulsion en utilisant des propriétés statistiques Download PDF

Info

Publication number
EP3180862B1
EP3180862B1 EP15751233.6A EP15751233A EP3180862B1 EP 3180862 B1 EP3180862 B1 EP 3180862B1 EP 15751233 A EP15751233 A EP 15751233A EP 3180862 B1 EP3180862 B1 EP 3180862B1
Authority
EP
European Patent Office
Prior art keywords
pulse
vector
zero
ensemble
positions
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
EP15751233.6A
Other languages
German (de)
English (en)
Other versions
EP3180862A1 (fr
Inventor
James P. Ashley
Udar Mittal
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.)
Google Technology Holdings LLC
Original Assignee
Google Technology Holdings LLC
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 Google Technology Holdings LLC filed Critical Google Technology Holdings LLC
Publication of EP3180862A1 publication Critical patent/EP3180862A1/fr
Application granted granted Critical
Publication of EP3180862B1 publication Critical patent/EP3180862B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation
    • 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
    • G10L19/038Vector quantisation, e.g. TwinVQ audio
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3082Vector coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • H03M7/4018Context adapative binary arithmetic codes [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/1887Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a variable length codeword

Definitions

  • This application is related to encoding and decoding of video signals. More particularly, this application is related to encoding and decoding pulse vectors, which represent portions of a video frame, using statistical analysis of the pulse vectors.
  • FPC Factorial Pulse Coding
  • FPC Factorial Pulse Coding
  • PVQ Pyramid Vector Quantization
  • FPC has also been included in the following industry standards for audio: 3GPP2 EVRC-B and EVRC-WB, and ITU-TG.718. In these standards, low-complexity fixed-point software implementations are required as part of the distribution packages. Thus, the primary technical advantages of FPC over PVQ are:
  • an FPC bit rate estimator (given in Eqs.1-5) was "plugged" into an existing video codec. Then, while keeping video quality constant, the incremental bit rate of FPC relative to the default coding method was measured (for the default coding method used by video codec). Only the bits used by the default video codec for which the equivalent FPC operations are performed were counted. By keeping the video quality constant (i.e., bit exact with the default codec operations), one can focus on the bit rate aspects, and not be concerned with trying to measure relative quality differences. Maintaining bit-exactness, however, does create other codec specific issues, which will be discussed below.
  • FIG. 1 an example of a mobile communication device, electronic tablet device, video creation/playback device or other user equipment (UE) 1 having a user interface (not specifically shown) is depicted.
  • the UE 1 has a video block 10 comprising hardware and/or software blocks adapted to encode or decode a digital video signal.
  • digital video signals may be divided into a plurality of frames. Often the frames are of different frame types, which are utilized to compensate for motion and at the same time decrease the bit-rate needed to transmit the motion representation within areas of the frame to a decoder.
  • I, B and P coded fields or frames of data in a digital video signal which are well known in the art. Embodiments of the invention work equally well for each of the various types of I, B and P data fields or data frames of video data.
  • FIG. 1 within the video block 10 is a block diagram that represents a high level view of a video codec that may incorporate a Video FPC (FPC) in accordance with various embodiments.
  • a frame of data 12 which is essentially a spatial domain snapshot of a video screen (a single video frame), is divided into multiple macro blocks 14 the form of a grid or matrix.
  • Each macro block 14 can be, for example, 32 x 32 pixels in dimension.
  • each macro block may be sectioned into 64 x 64, 32 x 32, 16 x 16 or 8 x 8 pixels.
  • the macro blocks 14 may be further subdivided into sub blocks 16, which may be for example, 8 x 8 or 4 x 4 pixels.
  • Each of the sub blocks 16 are provided as an array of data to a transform block 18.
  • the transform block 18 performs a discrete cosine transform (DCT) 19 on each of the sub blocks 16, which converts the X Y coordinate system of each sub block into a spatial-frequency domain.
  • the DCT 19 block outputs transform coefficients.
  • the transform coefficients are then quantized in the quantization block 20.
  • different transforms may be performed on each of the sub blocks 16.
  • a Walsh-Hadamard transform WHT
  • WHT Walsh-Hadamard transform
  • the transform coefficients generated by the transform block 19 are already quantized, thus the quantization block 20 is not required and can be bypassed as shown by the dotted lines 21.
  • the quantization step may have little or no effect on the transform coefficients produced in the transform block 19 regardless of whether a DCT is used or not.
  • the 4 x 4 or 8 x 8 blocks of quantized coefficients that were output from the transform block 18, are converted from a two dimensional matrix to a serial string of quantized coefficients. In various embodiments this is performed by scanning the matrix in, for example, a zigzag pattern, as is also known in the art, to turn the 2D matrix into a serial string of quantized coefficients, which may also be referred to as a quantized pulse vector.
  • the serial strings of quantized coefficients may then be provided to a loop filter block 24, which may, among other things, buffer the serial string of quantized coefficients due to a varying bit-rate that is dependent on the complexity of the picture information (e.g., the type of frame data I, B or P frame data) and the amount and type of motion captured in the digital video frame.
  • a loop filter block 24 may, among other things, buffer the serial string of quantized coefficients due to a varying bit-rate that is dependent on the complexity of the picture information (e.g., the type of frame data I, B or P frame data) and the amount and type of motion captured in the digital video frame.
  • the encoder 26 may be configured to have a predetermined number of number unit magnitude pulses m (as in various audio applications) for each pulse vector x, or the number unit magnitude pulses m can be calculated from the pulse vector x signal itself. Conversely, on the decoder side, however, if m is not fixed, it must be conveyed as side information, either by explicit coding or indirectly by coding block energies from which the number of bits m can be derived. Once the number of bits is made available, the number of magnitude pulses m can be determined from there.
  • the Video FPC encoder 26 combines statistical encoding with vector quantization to provide coded video that requires less data and bandwidth than prior video encoding and decoding methods.
  • the coded video output of the Video FPC encoder 26 can then be stored in a memory or data storage device 2, or transmitted wirelessly via a transceiver 4 via antenna 5.
  • One or more processors 6 within the UE 1 control the processing of the digital video data via instructions stored in the memory 2.
  • Embodiments use the transformed and quantized macro blocks and/or sub blocks (i.e., the pulse vectors) in a new way such that Video FPC can be used in a non-uniform way where the probabilities are not uniformly distributed over different frames of data, as explained in more detail below.
  • FIG. 2 is a flow diagram of a prior art method of coding a single pulse vector x.
  • This prior art method uses an encoding technique referred to as factored pulse coding (FPC).
  • FPC is discussed to some degree in US Patent 8,149,144 for audio coding.
  • a single quantized pulse vector x is received at step 30.
  • the number of non-zero positions n p is computed and coded. Since, the number of unit magnitude pulses is fixed or already known in this prior art method in block 40, this information does not have to be calculated.
  • the positions of each non-zero pulse within the pulse vector is coded as a position vector ⁇ .
  • the magnitude of each non-zero pulse within the pulse vector is coded as a magnitude vector ⁇ .
  • the sign of each non-zero pulse within the pulse vector is coded at step 38.
  • the results of each of the steps 32 through 38 are essentially coded numbers that correlate directly to the pulse vector from which they were calculated.
  • the number of non-zero positions in the quantized pulse vector is can be a positive integer number between 0 and the maximum number of pixels in the micro block, which in this example there are 16 possible locations in a 4 x 4 sub block.
  • the position vector ⁇ may indicate that, for example, positions 2, 5, 6, 7 and 8 of the quantized pulse vector (having positions 0 through 15) are non-zero values.
  • VP9 is a video codec standard used by Google, but it is understood that various video codec methods and systems can be used with embodiments of the invention. It was found that embodiments decrease the bandwidth or bit rate of the video data that is necessary or required to recreate the video sub block, macro block and ultimately the video frames. Thus, embodiments enable a lower bandwidth or bit rate necessary to transmit and receive video signals without degradation of the decoded recreated video images displayed on a UE 1 or other display device.
  • the type of information that is contained in a WHT or DCT transform block's 18 output quantized signal vector or pulse vector x was carefully considered.
  • the serial string of quantized coefficients quantized that can be output of the transform block 18 is a series of pulses or pulse vectors that essentially encodes the video signal in the frequency domain.
  • Each pulse sample in the series of pulses or pulse vector has an integer magnitude and a sign (+/-). There are also a number of non-zero pulses within each pulse vector.
  • the quantized output of the transfer block 18, x ⁇ x 0 , x 1 , K, x n -1 ⁇ is a quantized signal vector containing integer values, n is the vector length, and m is the total number of unit magnitude "pulses" within vector x, such that all vector elements are within the range -m ⁇ x i ⁇ m.
  • VP9 For VP9, the inventors found that there were statistical biases in the resulting pulse vectors. Additionally, statistical biases were discovered in the pulse vectors created by other video codecs. It is expected that there are also statistical biases in other video codec outputs such as Daala, VP8, Indeo, Windows Media Video (WMV), QuickTime H264 as well as in other video codecs. Thus, many of the same VFPC methods that are shown to be used herein with VP9 can also be used and will apply to other types of video codecs. It is noted that the "number of unit magnitude pulses" cannot be reused with VP9 as, for example, it could be done in other video codecs like a Daala codec.
  • the parameter m being the total number of unit magnitude pulses within the vector x, should be explicitly coded in or with the vector.
  • a flow chart 50 is presented to describe example encoding methods that utilize statistical models (i.e., probability models) for an ensemble of pulse vectors to more efficiently code the ensemble of pulse vectors.
  • at least one pulse parameter describing the non-zero pulses of a given pulse vector is encoded using the statistical models and the number of non-zero pulse positions for the given pulse vector.
  • Such encoding methods may be performed by an encoder such as encoder 26 in Figure 1 .
  • a pulse vector x k of the ensemble of pulse vectors is received by the encoder 26 from a transform block 18 or other block in which such pulse vectors may be generated or stored (if previously generated).
  • the number of non-zero pulse positions n p in the pulse vector x k is computed.
  • the number of unit magnitude pulses m k in the pulse vector x k is computed (although in some embodiments, as described below, a related quantity m ' k may be computed).
  • the number of unit magnitude pulses m k may also be viewed as a sum of magnitudes of the non-zero pulse positions of the pulse vector x k .
  • a position vector ⁇ k is computed which includes location information for each non-zero pulse position in the pulse vector x k .
  • An example position vector ⁇ k includes a sequence of values indicating the position number of each non-zero pulse position of the pulse vector x k .
  • a magnitude vector ⁇ k is computed which includes magnitude information for each non-zero pulse position in the pulse vector x k .
  • An example magnitude vector ⁇ k includes a sequence of values indicating the absolute magnitude of each non-zero pulse position of the pulse vector x k , and omits any zero-valued positions.
  • step 62 the sign information (i.e., algebraic sign) for each non-zero position of the pulse vector x k is computed and a corresponding sign vector s k is generated.
  • Each of these parameters n p , m k , position vector ⁇ k , magnitude vector ⁇ k , and sign vector s k may be viewed as a respective pulse parameter describing non-zero pulse positions within the respective pulse vector x k of the ensemble of pulse vectors.
  • steps 52, 54, 56, 58, 60, 62 are repeated for every pulse vector x k of the ensemble of N pulse vectors.
  • Such an ensemble of N pulse vectors may represent an entire video frame being evaluated (i.e., each pulse vector x k corresponding to a sub-block of the video frame).
  • each of the respective pulse parameters generated in steps 54 through 62 are accumulated for each respective pulse vector vector x k of the ensemble of N pulse vectors.
  • probability models are calculated for the accumulated pulse parameters for all N pulse vectors of the ensemble. Examples of such probability models are described in greater detail below.
  • the respective pulse parameters for each pulse vector x k are coded into corresponding codewords of a respective vector codeword set.
  • At least one of the pulse parameters for each respective pulse vector x k is coded based on the probability models for the ensemble and also based on the respective number of non-zero positions in the respective pulse vector x k .
  • the respective pulse parameter n p is coded based on the probability models for the ensemble of pulse vectors.
  • one, or more than one, or all of the respective parameters m k , position vector ⁇ k , magnitude vector ⁇ k , and sign vector s k are coded based on the probability models for the ensemble and also based on the respective number of non-zero positions in the respective pulse vector x k . Example methods of coding each of these different pulse parameters are described in greater detail below.
  • the respective vector codeword set i.e., the statistically coded pulse parameters for the number of non-zero positions, the number of unit magnitude pulses, the positions vector, the magnitude vector, and the sign bits
  • a coded bitstream may be subsequently decoded by a decoder to reconstruct the ensemble of pulse vectors (e.g., as part of decoding a video signal represented by the coded bitstream).
  • a bitstream may be stored in memory storage 2, and may be transmitted using transceiver 4 and antenna 5.
  • Other storage blocks and transmission blocks are also contemplated.
  • the probability models for each ensemble of pulse vectors is also coded at step 68 into one or more corresponding codewords of a statistical model codeword set (i.e., the coded probability models) for the ensemble.
  • this statistical model codeword set is transmitted or stored, for subsequent use by a decoder to reconstruct each pulse vector of the ensemble of pulse vectors.
  • a respective vector codeword set i.e., the statistically coded pulse parameters for the number of non-zero positions, the number of unit magnitude pulses, the positions vector, the magnitude vector, and the sign bits
  • the statistical model codeword set i.e., the coded probability models
  • each video frame usually includes a large number of sub-blocks, and since the coded probability models are transmitted relatively infrequently compared to the coded pulse parameters, the particular method used to code the probability models does not have a significant influence on the total number of bits required to code a given video frame, and such coding need not require significant compression.
  • a method for coding an ensemble of pulse vectors includes receiving the ensemble of pulse vectors, and determining, for each respective pulse vector of the ensemble of pulse vectors, a respective plurality of pulse parameters describing non-zero pulse positions within the respective pulse vector. One of the respective plurality of pulse parameters corresponds to a number of non-zero pulse positions within the respective pulse vector.
  • the example method further includes generating a set of statistical parameters for the ensemble of pulse vectors, and coding the set of statistical parameters to produce a statistical model codeword set corresponding to the ensemble of vectors.
  • the example method further includes coding the pulse parameter corresponding to the number of non-zero pulse positions within the respective pulse vector to produce a first codeword of a respective vector codeword set; and coding at least one of a remaining plurality of pulse parameters describing non-zero pulse positions within the respective pulse vector, based upon the number of non-zero pulse positions within the respective pulse vector and the set of statistical parameters for the ensemble, to produce at least one corresponding codeword of the respective vector codeword set.
  • a system for coding an ensemble of pulse vectors includes a first buffer, for example in an encoder block, operable to receive the ensemble of pulse vectors, and a processor, as depicted in Figure 1 .
  • the processor is operable to determine, for each respective pulse vector of the ensemble of pulse vectors, a respective plurality of pulse parameters describing non-zero pulse positions within the respective pulse vector.
  • One of the respective plurality of pulse parameters corresponds to a number of non-zero pulse positions within the respective pulse vector.
  • the processor is further operable to generate a set of statistical parameters for the ensemble of pulse vectors, and to code the set of statistical parameters to produce a statistical model codeword set corresponding to the ensemble of vectors.
  • the processor is further operable, for each respective pulse vector of the ensemble of pulse vectors, to code the pulse parameter corresponding to the number of non-zero pulse positions within the respective pulse vector to produce a first codeword of a respective vector codeword set, and to code at least one of a remaining plurality of pulse parameters describing non-zero pulse positions within the respective pulse vector, based upon the number of non-zero pulse positions within the respective pulse vector and the set of statistical parameters for the ensemble, to produce at least one corresponding codeword of the respective vector codeword set.
  • Decoding such a coded bitstream is computationally less difficult, since it is not necessary to generate the probability models. Rather, the decoder receives the coded probability models for each ensemble from a coded bitstream, then decodes the coded probability models to generate the probability models for the ensemble (e.g., video frame). The decoder also receives each set of coded pulse parameters from the coded bitstream, then uses the probability models to decode the corresponding pulse parameters for each respective pulse vector of the ensemble, and determine each of the non-zero pulse positions within each respective pulse vector of the ensemble using the corresponding pulse parameters.
  • a method for decoding a coded bitstream to reconstruct an ensemble of pulse vectors includes receiving from the coded bitstream a statistical model codeword set, and decoding the statistical model codeword set to determine a set of statistical parameters corresponding to the ensemble of pulse vectors. The example method further includes receiving from the coded bitstream respective vector codeword sets corresponding to respective pulse vectors of the ensemble.
  • the example method further includes decoding a first codeword of the respective vector codeword set to determine a first pulse parameter corresponding to a number of non-zero pulse positions within a corresponding respective pulse vector; decoding at least a one of a remaining plurality of codewords of the respective vector codeword set, using the set of statistical parameters for the ensemble and the number of non-zero positions within the corresponding respective pulse vector, to determine at least one of a remaining plurality of pulse parameters describing the non-zero pulse positions within the corresponding respective pulse vector; and determining each of the non-zero pulse positions within the corresponding respective pulse vector of the ensemble using the respective plurality of pulse parameters.
  • a system for decoding a coded bitstream to reconstruct an ensemble of pulse vectors includes a first buffer and a processor.
  • the first buffer is operable to receive from the coded bitstream a statistical model codeword set, and respective vector codeword sets corresponding to respective pulse vectors of the ensemble.
  • the processor is operable to decode the statistical model codeword set to determine a set of statistical parameters corresponding to the ensemble of pulse vectors.
  • the processor is further operable, for each respective vector codeword set, to decode a first codeword of the respective vector codeword set to determine a first pulse parameter corresponding to a number of non-zero pulse positions within a corresponding respective pulse vector; to decode at least a one of a remaining plurality of codewords of the respective vector codeword set, using the set of statistical parameters for the ensemble and the number of non-zero positions within the corresponding respective pulse vector, to determine at least one of a remaining plurality of pulse parameters describing the non-zero pulse positions within the corresponding respective pulse vector; and to determine each of the non-zero pulse positions within the corresponding respective pulse vector of the ensemble using the respective plurality of pulse parameters.
  • the first step in this part of the encoding process of an embodiment is the coding of the number of non-zero elements n p ( k ) for each vector x k .
  • n is the length of the pulse vector x k , which for a 4x4 block size, is 16.
  • this information is used to explicitly code n p ( k ) using range coding.
  • bitwise probabilities of each bit of m k being set to one are calculated.
  • the "&" symbol represents the bitwise AND operator.
  • P m ( j ) represents the probability that the j -th bit position of the value m k is set to one. This probability can be used to losslessly code the array of m k values for use in signal compression.
  • advantage is taken of a more direct correlation that exists between m ' k and n p ( k ) . That is, when fewer positions are occupied (i.e., n p ( k ) is small relative to n ), there is a corresponding increased probability that m ' k will be relatively small, and conversely, when more positions are occupied, there is an increased probability that m' k will be relatively large.
  • BAC binary arithmetic coding
  • n x N b size matrix that gives the probability of a particular bit of m k ′ i being set for a given predetermined number of occupied positions n p ( k ) .
  • block 64 is operable to accumulate all of the pulse vector parameters in a given frame for the value of k ranging from a value of 0 to N.
  • the value of k is initiated at a null value at a block 410 and then proceeds to a block 412 to receive the k -th pulse vector x k and then to block 414 to calculate the non-zero positions and onto a block 416 to compute the number of unit magnitude pulses for that particular vector.
  • the value of k is tested against the value of N to determine if the frame has been completed. If not, the process loops to block 412. If so, then the process flows from the block 64 to the next process to generate the probability models, this being block 66 from Figure 3 .
  • the bit wise probabilities of m' k is calculated over the entire frame with the value of k ranging from a value of 0 to N.
  • a computed value m ' k representing the number of unit magnitude pulses for the given pulse vector x k .
  • the process is initialized at the "0" for the j -th bit at block 418, and then proceeds to test each bit in m' k .
  • the decision block 420 determines if the currently tested bit is set.
  • the program then flows to a block 426 to calculate c 2 ( n p ( k )) for the number of instances in which x k contains n p ( k ) non-zero positions and then to a block 428 in order to perform this test for all pulse vectors x k in the frame.
  • this process provides the bit wise probabilities of m' k and the process flows to a block 432 to build the table in accordance with equation 1.6 above and then proceeds to a block 432 wherein the table is transmitted or stored and into a block 434 to code the bits of m' k using the probability table for all k, j.
  • the coded bits of m ' k are then transmitted or stored with other statistically coded bits, as indicated by block 436.
  • Figure 5 provides one example of a flow chart of how a state machine can be employed in an embodiment.
  • the pulse vectors are accumulated and bitwise probabilities of m' k are performed as discussed above and shown in Figure 4 .
  • this Figure 5 there are provided two states, a state 0 representing bits not being set and a state 1 indicating the occurrence of a first bit being set.
  • the bits are tested from the MSB to the LSB, taking advantage of the fact that large values of m' k will have a large number of bits not set in the upper portion of the digital word.
  • the state is initially set at state 0 in block 520 and to the first j -th bit of m' k (the MSB Nb-1) in this state.
  • the process flows to the first decision block 522 in order to determine if the state is still state 0.
  • the state will be state 0 until the first j -th bit tested is set.
  • the program will flow along the path from block 522 to block 524 to determine if this tested bit is set. This is the point where the state changes from state 0 to state 1.
  • the process will remain in state 0 and the process will merely calculate c 2 ( n p ( k )) as noted in block 526. However, if the tested bit is set, this indicates that the state operation must change to state 1.
  • the process will bypass block 534; if the j-th bit is not set to state 1.
  • the process then flows to decision block 530 and continues until all bits have been tested for j .
  • the program then flows to a decision block 540 to loop back around to the input of block 524 until all additional pulse vectors in the frame are handled and then proceeds to perform the same functions as set forth above with respect to blocks 430 - 436.
  • the additional probabilities for state 1 are accessed by simply utilizing the zero-th row of the P ( n p ( k ) , j ) probability matrix, which now has the dimension 0 ⁇ n p ( k ) ⁇ n and 0 ⁇ j ⁇ N b , and where the state 1 probabilities are stored at the P (0 , j ) elements.
  • the step of coding of position information involves using binary arithmetic coding to convey whether or not an element of the quantized vector x k contains non-zero information.
  • the overall probability of a given element within the quantized vector is comprised of the conditional probability of the i -th position element being non-zero, given that the number of the j remaining non-zero elements lie the range i to n - 1.
  • a flow diagram that provides detail of an example process for coding quantized pulse vector pulse position information is provided.
  • the parameters for each k vector x k are accumulated as already discussed in Figure 4 .
  • this is the probability of element x k ( i ) being non-zero, given j non-zero valued elements over the remaining n - i positions of vector x k
  • the probability of the i -th element of input vector x k being occupied by a non-zero value is determined by the encoder block via probability calculations, while in other embodiments, these probabilities are received from functional blocks associated with the encoder block.
  • the probability combinations of future coded elements are examined, based on previously coded elements, and their associated probabilities are aggregated in order to adjust the probabilities of the remaining quantized vector elements to be coded.
  • P T P T 0,0 0 0 ⁇ 0 P T 1,0 P T 1,1 0 ⁇ 0 P T 2,0 P T 2,1 P T 2,2 ⁇ 0 ⁇ ⁇ ⁇ ⁇ P T n 0 P T n 1 P T n 2 ⁇ P T n n
  • the matrix elements P ( T ( i,j )) represent the probabilities from using a trellis matrix of having j non-zero elements on the remaining i positions of vector x k .
  • P T 2,0 1 ⁇ P x k n ⁇ 2 ⁇ P T 1,0
  • P T 2,1 P x k n ⁇ 2 ⁇ P T 1,0 + 1 ⁇ P x k n ⁇ 2 ⁇ P T 1,1
  • P T 2,2 P x k n ⁇ 2 ⁇ P T 1,1 , which can be generalized as:
  • the flow diagram of Figure 7 shows a dotted box showing sorting of probabilities P ( x k ( i )) 80.
  • the number of bits needed to code the non-zero positions will not change whether the probabilities are sorted or not.
  • Table 2 Comparison of methods for position coding in 4 x 4 WHT blocks (360 frames, lossless compression, original content resolution 352 x 288) Luminance Chrominance Vector statistics Average number of non-zero positions n p 12.408 10.073 Coding rate (average bits per block) FPC position coding 7.231 10.064 Adaptive conditional arithmetic coding 6.667 9.388
  • a simplified over view flow chart describing coding of the magnitude vectors x k is shown.
  • an ensemble of integer pulse sequence vectors i.e., pulse vectors x k for an entire frame or block is provided having a length n .
  • a mean value vector ⁇ ⁇ 0 , ⁇ 1 , ⁇ 2 ,.... ⁇ n-1 ⁇ of the vectors x k in the ensemble is calculated.
  • the mean value vector ⁇ is sorted such that the components of the vectors x k are re-arranged or re-indexed in, for example memory of the UE, in a decreasing order of mean value vector ⁇ .
  • the magnitude vector of length n p ( k ) is defined as: x ′ ⁇ x k > 0 , such that x ′ ⁇ x 0 ′ , x 1 ′ , ... , x n p ⁇ 1 ′ are the absolute values of all the non-zero elements of vector x k having a length n .
  • the codeword can be generated by a combinatorial coding method that is also dependent on the expected values or mean values ⁇ i .
  • the magnitude vector is arranged such that the ⁇ i are in decreasing order i.e, ⁇ 0 ⁇ ⁇ 1 ⁇ ... ⁇ ⁇ i ⁇ ... ⁇ ⁇ n -1 . If they are not already arranged in decreasing order, then one can first sort ⁇ i , and then re-arrange or re-index the x k ( i ) components such that their mean values are in the decreasing order.
  • x k the initial few components of x k will have higher values, i.e., x k (0), x k (1), etc., as well as a higher probability of being greater than the last few components.
  • the magnitudes are coded using an adaptive combinatorial coding approach, which generates a variable length codeword.
  • This approach is novel and has been named by the inventors as Variable Factorial Pulse Coding ( VFPC ).
  • a j ′ min m , ⁇ j ′ ⁇ ⁇ 0 j / j + 1 x ⁇ 0 j ⁇ ⁇ + ⁇ .
  • a minimum value s is found at step 109 such that F a j ⁇ ⁇ , j ⁇ 2 ⁇ s ⁇ F a j ′ ⁇ ⁇ , j
  • step 110 wherein the process loops back to step 104.
  • the inequality condition in Eq.1.26 of step 109 guarantees that the coding process is still uniquely decodable, and that selecting a minimum value of s will minimize the increase in the number of coded bits.
  • step 116 C is made equal to C + C j .
  • Eq.1.25 and Eq.1.26 are still used for the modifying the values of a j and b j .
  • the final combinatorial codeword C is obtained from step 116 as a summation of respective combinatorial contribution C j :
  • the corresponding decoder process is complementary to the encoder process.
  • Figure 10 provides a flowchart showing VFPC decoding steps in accordance with an embodiment of the invention. Figure 10 is easily understood by one of ordinary skill in the art after understanding the workings of Figure 9 .
  • the mean values are fixed and are known a-priori, the method of Figure 9 can be directly used.
  • the mean value also needs to be computed and transmitted.
  • the mean values of the coefficients x k ( i ) of macro-blocks (vector x k ) may change from frame to frame or may be different depending on the type of macro-block (Luma or Chroma).
  • the mean values are calculated and can be transmitted in each frame of the coded video.
  • the computation of mean value also makes use of the fact that the input to VFPC encoder (see Figure 9 ) is a vector whose components are non-zero and hence it may be better to restrict the mean calculation over only those components of the quantized vector x that are non-zero.
  • I q is an indicator function which is 1 if q is true otherwise it is 0, where q is the value of x k ( i ) ⁇ 0
  • Either Eq.1.31 or Eq.1.19 can be used to calculate the absolute mean values ⁇ i .
  • the mean values thus computed may be quantized (scalar quantization) and transmitted or stored once per frame (see Figure 3 , step 70).
  • VFPC variable length FPC
  • WHT Walsh-Hadamard Transform
  • VFPC video encoding embodiment as a stand alone coding method for coding of the magnitudes
  • the VFPC embodiment was used for coding the magnitudes of non-zero components of pulse vector x in a simulation. In the Table 3 the results of the VFPC magnitude coding method is compared with the regular FPC magnitude coding method.
  • Table 3 Showing comparison average number of bits needed by VFPC vs.
  • Embodiments of the invention provide lossless coding (entropy coding) of blocks of prediction residual data in video coding after being transformed, quantized and mapped into one-dimensional vectors.
  • Embodiments provide a UE that, via hardware and/or program instructions, uses a coding method that segregates video block data originating from a frame into the following units of information and then encodes the units of information efficiently using statistical models that are updated every frame.
  • the units of information comprise a) determining the number of non-zero positions of a quantized pulse vector per block, where a block is a macro or micro block of the frame; b) summing the magnitudes (the absolute values) for the non-zero positions m of the quantized pulse vector; c) determining which positions within the quantized pulse vector have a non-zero magnitude; d) determining the absolute value magnitude of each non-zero position in the quantized pulse vector; and e) determining the sign of each magnitude at the non-zero positions in the quantized pulse vector.
  • the parameters for all the pulse vectors N in the frame are then accumulated.
  • probability models are generated for the frame and for each block unit of information within the frame.
  • the probability models are used to encode the units of information (a through e) for each block of video data to produce encoded video data.
  • the probability models are transmitted or stored, as needed, with each block unit of encoded video data so that the encoded video data can be decoded at a decoder.
  • factorial pulse coding is utilized to generate codes for the magnitude of each non-zero position in a block based on factorial calculations.
  • Fixed codeword lanes and codewords are produced for set of (n, m) values. Since video coding residual blocks are not i.i.d, like audio coding data, each frame block you have very different statistical parameters associated with average values and probabilities with respect to the number of, location of, magnitude of, position of and sign of each non-zero position of the pulse vectors.
  • coding position information is well known
  • various novel encoder embodiments of the invention use arithmetic coding for simultaneous position and magnitude coding. Coding the last non-zero position is accomplished using a determination or "end of block” code.
  • This new method uses a specialized version of arithmetic coding for coding positions where probabilities are adapted in each frame of data based on how many previously coded positions were occupied or unoccupied. The adapted probabilities are precomputed on a frame by frame basis via a trellis, which may be referred to as a "probability matrix" rather than using an explicit termination code, embodiments provide a process that completes when the number of non-zero positions are exhausted. Such embodiments provide lossless encoded video data they can be transmitted at a lower data rate or stored using less memory space than previous digital video encoding techniques.
  • this method and system for coding pulse vectors using statistical properties provides improved methods for coding an ensemble of pulse vectors utilizing statistical models (i.e., probability models) for the ensemble of pulse vectors, to more efficiently code each pulse vector of the ensemble.
  • at least one pulse parameter describing the non-zero pulses of a given pulse vector is coded using statistical models and a number of non-zero pulse positions for the given pulse vector.
  • a number of non-zero pulse positions are coded using range coding.
  • the total number of unit magnitude pulses may be coded using conditional (state driven) bitwise arithmetic coding.
  • Non-zero pulse position locations may be coded using adaptive arithmetic coding. Additionally, non-zero pulse position magnitudes may be coded using probability-based combinatorial coding, and the corresponding sign information may be coded using bitwise arithmetic coding. Such embodiment methods and systems are well suited for coding non-independent-identically-distributed signals, such as coding video information. It should be understood that the drawings and detailed description herein are to be regarded in an illustrative rather than a restrictive manner, and are not intended to be limiting to the particular forms and examples disclosed.

Landscapes

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

Claims (24)

  1. Procédé pour coder un ensemble de vecteurs d'impulsion, comprenant :
    la réception de l'ensemble de vecteurs d'impulsion par un codeur ;
    la détermination, par le codeur, pour chaque vecteur d'impulsion respectif de l'ensemble de vecteurs d'impulsion, d'une pluralité respective de paramètres d'impulsion qui décrivent des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif, un paramètre d'impulsion de ladite pluralité respective de paramètres d'impulsion correspondant à un nombre de positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif ;
    la génération, par le codeur, d'un jeu de paramètres statistiques pour l'ensemble de vecteurs d'impulsion ;
    le codage, par le codeur, du jeu de paramètres statistiques de manière à produire un jeu de mots de code de modèle statistique qui correspond à l'ensemble de vecteurs ;
    la détermination, par le codeur, d'un vecteur de valeur moyenne, dans lequel chaque composante du vecteur de valeur moyenne est une moyenne de composantes correspondantes dans l'ensemble de vecteurs d'impulsion ;
    pour chaque vecteur d'impulsion, l'agencement ou l'indexation à nouveau, par le codeur, des composantes de ce vecteur d'impulsion de telle sorte que les composantes de ce vecteur d'impulsion soient selon un ordre décroissant des valeurs moyennes ;
    pour chaque vecteur d'impulsion respectif agencé ou indexé de l'ensemble de vecteurs d'impulsion :
    le codage du paramètre d'impulsion qui correspond au nombre de positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif de manière à produire un premier mot de code d'un jeu de mots de code de vecteur d'impulsion respectif ; et
    le codage, en utilisant une approche par codage combinatoire adaptatif, laquelle approche génère des mots de code de longueur variable, d'au moins un paramètre d'impulsion d'une pluralité restante de paramètres d'impulsion qui décrivent des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif, sur la base du nombre de positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif et du jeu de paramètres statistiques pour l'ensemble, de manière à produire au moins un autre mot de code correspondant du jeu de mots de code de vecteur d'impulsion respectif.
  2. Procédé tel que revendiqué selon la revendication 1, dans lequel le codage du paramètre d'impulsion qui correspond au nombre de positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif comprend : n p k = i = 0 n 1 { 1 , x k i 0 0 , sinon , 0 k < N
    Figure imgb0060
    np(k) est le nombre de positions non à zéro dans le k-ième vecteur d'impulsion x k , n est la longueur de chaque vecteur d'impulsion xk et N est le nombre de vecteurs d'impulsion dans l'ensemble.
  3. Procédé tel que revendiqué selon la revendication 2, dans lequel :
    le codage du paramètre d'impulsion qui correspond au nombre de positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif est basé sur le jeu de paramètres statistiques pour l'ensemble ; et
    la génération d'un jeu de paramètres statistiques pour l'ensemble de vecteurs d'impulsion comprend la génération d'un jeu de probabilités d'un nombre de positions non à zéro particulier np(k) survenant conformément à : P n j = 1 N k = 0 N 1 { 1 , n p k = j 0 , sinon , 1 j n .
    Figure imgb0061
  4. Procédé tel que revendiqué selon la revendication 3, dans lequel le codage du paramètre d'impulsion qui correspond au nombre de positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif comprend un codage de plage du nombre de positions non à zéro np(k) en utilisant un nombre de bits Mp estimé conformément à : M p = j = 0 n 1 P n j log 2 P n j .
    Figure imgb0062
  5. Procédé tel que revendiqué selon la revendication 1, dans lequel la pluralité restante de paramètres d'impulsion qui décrivent des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif comprend :
    un paramètre d'impulsion qui correspond à une somme d'amplitudes des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif ;
    un paramètre d'impulsion qui correspond à des localisations des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif ; et
    un paramètre d'impulsion qui correspond à des amplitudes des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif.
  6. Procédé tel que revendiqué selon la revendication 5, dans lequel la pluralité restante de paramètres d'impulsion qui décrivent des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif comprend en outre :
    un paramètre d'impulsion qui correspond à des signes algébriques de chaque position non à zéro à l'intérieur du vecteur d'impulsion respectif.
  7. Procédé tel que revendiqué selon la revendication 6, dans lequel le codage d'au moins un paramètre d'impulsion de la pluralité restante de paramètres d'impulsion qui décrivent des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif comprend le codage de chaque paramètre d'impulsion pris parmi :
    le paramètre d'impulsion qui correspond à la somme d'amplitudes des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif ;
    le paramètre d'impulsion qui correspond aux localisations des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif ;
    le paramètre d'impulsion qui correspond aux amplitudes des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif ; et
    le paramètre d'impulsion qui correspond à des signes algébriques de chaque position non à zéro à l'intérieur du vecteur d'impulsion respectif ;
    sur la base du nombre de positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif et du jeu de paramètres statistiques pour l'ensemble, de manière à produire des mots de code correspondants du jeu de mots de code de vecteur d'impulsion respectif.
  8. Procédé tel que revendiqué selon la revendication 1, dans lequel le codage d'au moins un paramètre d'impulsion de la pluralité restante de paramètres d'impulsion qui décrivent des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif comprend en outre :
    le codage d'un paramètre d'impulsion respectif qui correspond à une somme d'amplitudes des positions non à zéro à l'intérieur du vecteur d'impulsion respectif, ce codage étant basé sur le nombre de positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif et sur le jeu de paramètres statistiques pour l'ensemble, de manière à produire un mot de code correspondant du jeu de mots de code de vecteur d'impulsion respectif.
  9. Procédé tel que revendiqué selon la revendication 8, dans lequel le codage du paramètre d'impulsion respectif qui correspond à la somme d'amplitudes des positions non à zéro à l'intérieur du vecteur d'impulsion respectif comprend :
    la génération de la somme respective d'amplitudes pour chaque vecteur d'impulsion respectif de l'ensemble ; et
    la génération d'un jeu de probabilités de la somme d'amplitudes pour l'ensemble de vecteurs d'impulsion pour chaque nombre possible de positions non à zéro ; puis
    le codage de la somme respective d'amplitudes pour chaque vecteur d'impulsion respectif en utilisant le nombre respectif de positions non à zéro pour le vecteur d'impulsion respectif et le jeu de probabilités, de manière à produire le mot de code correspondant du jeu de mots de code de vecteur d'impulsion respectif.
  10. Procédé tel que revendiqué selon la revendication 1, dans lequel l'ensemble de vecteurs d'impulsion représente une image vidéo, et dans lequel chaque vecteur d'impulsion respectif dudit ensemble de vecteurs d'impulsion représente un bloc bidimensionnel respectif de ladite image vidéo qui a été transformé, quantifié et cartographié selon un vecteur monodimensionnel.
  11. Procédé tel que revendiqué selon la revendication 10, dans lequel chaque vecteur d'impulsion respectif de l'ensemble de vecteurs d'impulsion représente un bloc bidimensionnel respectif de ladite image vidéo qui a été transformé et quantifié en utilisant une transformation de Walsh-Hadamard, puis cartographié selon un vecteur monodimensionnel.
  12. Procédé tel que revendiqué selon la revendication 10, comprenant en outre :
    la transmission ou le stockage du jeu de mots de code de vecteur d'impulsion respectif pour chaque vecteur d'impulsion respectif de l'ensemble de vecteurs d'impulsion, et du jeu de mots de code de modèle statistique ; dans lequel :
    le jeu de paramètres statistiques est généré sur la base de l'image vidéo complète ; dans lequel :
    le jeu de mots de code de modèle statistique est transmis ou stocké à raison d'une fois par image ; et dans lequel :
    chaque jeu de mots de code de vecteur d'impulsion respectif est transmis ou stocké à raison d'une fois par bloc respectif.
  13. Procédé tel que revendiqué selon l'une quelconque des revendications qui précèdent, dans lequel le vecteur absolu moyen est défini en tant que : μ i = 1 N k = 0 N 1 x k i , 0 i < n
    Figure imgb0063
    xk(i) est la i-ème composante du k-ième vecteur d'impulsion, N est le nombre de vecteurs d'impulsion et n est la longueur de vecteur d'impulsion.
  14. Procédé pour décoder un train de bits codé afin de reconstruire un ensemble de vecteurs d'impulsion, ledit procédé comprenant :
    la réception, par un bloc vidéo, en provenance du train de bits codé, d'un jeu de mots de code de modèle statistique ;
    le décodage, par le bloc vidéo, dudit jeu de mots de code de modèle statistique de manière à déterminer un jeu de paramètres statistiques qui correspond à l'ensemble de vecteurs d'impulsion ;
    la réception, par le bloc vidéo, en provenance du train de bits codé, de jeux de mots de code de vecteur d'impulsion respectif qui correspondent à des vecteurs d'impulsion respectifs de l'ensemble ;
    pour chaque jeu de mots de code de vecteur d'impulsion respectif :
    le décodage d'un premier mot de code du jeu de mots de code de vecteur d'impulsion respectif de manière à déterminer un premier paramètre d'impulsion qui correspond à un nombre de positions d'impulsion non à zéro à l'intérieur d'un vecteur d'impulsion respectif correspondant ;
    le décodage d'au moins un mot de code d'une pluralité restante de mots de code du jeu de mots de code de vecteur d'impulsion respectif, en utilisant le jeu de paramètres statistiques pour l'ensemble et le nombre de positions non à zéro à l'intérieur du vecteur d'impulsion respectif correspondant, de manière à déterminer au moins un paramètre d'impulsion d'une pluralité restante de paramètres d'impulsion qui décrivent les positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif correspondant ;
    la détermination de chacune des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif correspondant de l'ensemble en utilisant la pluralité respective de paramètres d'impulsion ; et
    la reconstruction des composantes de vecteur d'impulsion en utilisant les mots de code décodés et en agençant à nouveau ou en indexant à nouveau les composantes du vecteur d'impulsion conformément aux positions d'impulsion.
  15. Procédé tel que revendiqué selon la revendication 14, dans lequel le décodage d'un premier mot de code du jeu de mots de code de vecteur d'impulsion respectif comprend le décodage dudit premier mot de code en utilisant le jeu de paramètres statistiques pour l'ensemble, de manière à déterminer le nombre de positions non à zéro à l'intérieur du vecteur d'impulsion respectif correspondant.
  16. Procédé tel que revendiqué selon la revendication 14, dans lequel ladite pluralité restante de mots de code du jeu de mots de code de vecteur d'impulsion respectif comprend :
    un mot de code qui représente une somme d'amplitudes des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif ;
    un mot de code qui représente des localisations des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif ; et
    un mot de code qui représente des amplitudes des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif.
  17. Procédé tel que revendiqué selon la revendication 16, dans lequel ladite pluralité restante de mots de code du jeu de mots de code de vecteur d'impulsion respectif comprend en outre :
    un mot de code qui représente des signes algébriques de chaque position non à zéro à l'intérieur du vecteur d'impulsion respectif.
  18. Procédé tel que revendiqué selon la revendication 17, dans lequel le décodage d'au moins un mot de code d'une pluralité restante de mots de code du jeu de mots de code de vecteur d'impulsion respectif comprend le décodage de chaque mot de code pris parmi :
    le mot de code qui représente la somme d'amplitudes des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif ;
    le mot de code qui représente les localisations des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif ;
    le mot de code qui représente les amplitudes des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif ; et
    le mot de code qui représente les signes algébriques de chaque position non à zéro à l'intérieur du vecteur d'impulsion respectif ;
    sur la base du nombre de positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif et du jeu de paramètres statistiques pour l'ensemble.
  19. Procédé tel que revendiqué selon la revendication 14, dans lequel l'ensemble de vecteurs d'impulsion représente une image vidéo, et dans lequel chaque vecteur d'impulsion respectif dudit ensemble de vecteurs d'impulsion représente un vecteur monodimensionnel respectif qui est cartographié à partir d'un bloc bidimensionnel transformé et quantifié de ladite image vidéo.
  20. Système pour coder un ensemble de vecteurs d'impulsion, ledit système comprenant :
    un premier tampon qui peut être rendu opérationnel de manière à ce qu'il reçoive l'ensemble de vecteurs d'impulsion ;
    un processeur qui peut être rendu opérationnel de manière à ce qu'il réalise les actions qui suivent :
    la détermination, pour chaque vecteur d'impulsion respectif de l'ensemble de vecteurs d'impulsion, d'une pluralité respective de paramètres d'impulsion qui décrivent des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif, un paramètre d'impulsion de ladite pluralité respective de paramètres d'impulsion correspondant à un nombre de positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif ;
    la génération d'un jeu de paramètres statistiques pour l'ensemble de vecteurs d'impulsion ;
    le codage du jeu de paramètres statistiques de manière à produire un jeu de mots de code de modèle statistique qui correspond à l'ensemble de vecteurs ;
    la détermination d'un vecteur de valeur moyenne, dans lequel chaque composante du vecteur de valeur moyenne est une moyenne de composantes correspondantes dans l'ensemble de vecteurs d'impulsion ;
    pour chaque vecteur d'impulsion, l'agencement ou l'indexation à nouveau, par le codeur, des composantes de ce vecteur d'impulsion de telle sorte que les composantes de ce vecteur d'impulsion soient selon un ordre décroissant des valeurs moyennes ;
    ledit processeur pouvant en outre être rendu opérationnel, pour chaque vecteur d'impulsion agencé ou indexé de l'ensemble de vecteurs d'impulsion, de manière à ce qu'il réalise les actions qui suivent :
    le codage du paramètre d'impulsion qui correspond au nombre de positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif de manière à produire un premier mot de code d'un jeu de mots de code de vecteur d'impulsion respectif ; et
    le codage, en utilisant une approche par codage combinatoire adaptatif, laquelle approche génère des mots de code de longueur variable, d'au moins un paramètre d'impulsion d'une pluralité restante de paramètres d'impulsion qui décrivent des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif, sur la base du nombre de positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif et du jeu de paramètres statistiques pour l'ensemble, de manière à produire au moins un autre mot de code correspondant du jeu de mots de code de vecteur d'impulsion respectif.
  21. Système tel que revendiqué selon la revendication 20, comprenant en outre :
    un second tampon qui peut être rendu opérationnel de manière à ce qu'il transmette ou stocke le jeu de mots de code de vecteur d'impulsion respectif pour chaque vecteur d'impulsion respectif de l'ensemble de vecteurs d'impulsion, et le jeu de mots de code de modèle statistique.
  22. Dispositif d'équipement d'utilisateur comprenant le système tel que revendiqué selon la revendication 20.
  23. Système pour décoder un train de bits codé afin de reconstruire un ensemble de vecteurs d'impulsion, ledit système comprenant :
    un premier tampon qui peut être rendu opérationnel de manière à ce qu'il reçoive, en provenance du train de bits codé, un jeu de mots de code de modèle statistique et de manière à ce qu'il reçoive, en provenance du train de bits codé, des jeux de mots de code de vecteur d'impulsion respectif qui correspondent à des vecteurs d'impulsion respectifs de l'ensemble ;
    un processeur qui peut être rendu opérationnel de manière à ce qu'il réalise l'action qui suit :
    le décodage dudit jeu de mots de code de modèle statistique de manière à déterminer un jeu de paramètres statistiques qui correspond à l'ensemble de vecteurs d'impulsion ;
    ledit processeur pouvant en outre être rendu opérationnel, pour chaque jeu de mots de code de vecteur d'impulsion respectif, de manière à ce qu'il réalise les actions qui suivent :
    le décodage d'un premier mot de code du jeu de mots de code de vecteur d'impulsion respectif de manière à déterminer un premier paramètre d'impulsion qui correspond à un nombre de positions d'impulsion non à zéro à l'intérieur d'un vecteur d'impulsion respectif correspondant ;
    le décodage d'au moins un mot de code d'une pluralité restante de mots de code du jeu de mots de code de vecteur d'impulsion respectif, en utilisant le jeu de paramètres statistiques pour l'ensemble et le nombre de positions non à zéro à l'intérieur du vecteur d'impulsion respectif correspondant, de manière à déterminer au moins un paramètre d'impulsion d'une pluralité restante de paramètres d'impulsion qui décrivent les positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif correspondant ;
    la détermination de chacune des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif correspondant de l'ensemble en utilisant la pluralité respective de paramètres d'impulsion ; et
    la reconstruction des composantes de vecteur d'impulsion en utilisant les mots de code décodés et en agençant à nouveau ou en indexant à nouveau les composantes du vecteur d'impulsion conformément aux positions d'impulsion.
  24. Dispositif d'équipement d'utilisateur comprenant le système tel que revendiqué selon la revendication 23.
EP15751233.6A 2014-08-15 2015-08-06 Procédé pour coder des vecteurs d'impulsion en utilisant des propriétés statistiques Active EP3180862B1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/460,464 US9336788B2 (en) 2014-08-15 2014-08-15 Method for coding pulse vectors using statistical properties
PCT/US2015/043941 WO2016025283A1 (fr) 2014-08-15 2015-08-06 Procédé pour coder des vecteurs d'impulsion en utilisant des propriétés statistiques

Publications (2)

Publication Number Publication Date
EP3180862A1 EP3180862A1 (fr) 2017-06-21
EP3180862B1 true EP3180862B1 (fr) 2020-02-12

Family

ID=53879827

Family Applications (1)

Application Number Title Priority Date Filing Date
EP15751233.6A Active EP3180862B1 (fr) 2014-08-15 2015-08-06 Procédé pour coder des vecteurs d'impulsion en utilisant des propriétés statistiques

Country Status (4)

Country Link
US (2) US9336788B2 (fr)
EP (1) EP3180862B1 (fr)
CN (1) CN106664099B (fr)
WO (1) WO2016025283A1 (fr)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10389558B2 (en) * 2016-10-03 2019-08-20 Mediatek Inc. Method and apparatus for synchronization
CN117978996A (zh) * 2020-04-11 2024-05-03 Lg电子株式会社 点云数据发送设备和方法、点云数据接收设备和方法
CN118740566A (zh) * 2023-03-31 2024-10-01 华为技术有限公司 编码方法、解码方法、编码装置和解码装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001011610A1 (fr) * 1999-08-06 2001-02-15 Motorola Inc. Procede de compression factorielle et dispositif de codage d'information

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002330075A (ja) * 2001-05-07 2002-11-15 Matsushita Electric Ind Co Ltd サブバンドadpcm符号化方法、復号方法、サブバンドadpcm符号化装置、復号装置およびワイヤレスマイクロホン送信システム、受信システム
US6662154B2 (en) 2001-12-12 2003-12-09 Motorola, Inc. Method and system for information signal coding using combinatorial and huffman codes
US20040002856A1 (en) 2002-03-08 2004-01-01 Udaya Bhaskar Multi-rate frequency domain interpolative speech CODEC system
US6900748B2 (en) 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
US7379500B2 (en) 2003-09-30 2008-05-27 Microsoft Corporation Low-complexity 2-power transform for image/video compression
US7230550B1 (en) 2006-05-16 2007-06-12 Motorola, Inc. Low-complexity bit-robust method and system for combining codewords to form a single codeword
US7461106B2 (en) 2006-09-12 2008-12-02 Motorola, Inc. Apparatus and method for low complexity combinatorial coding of signals
US20080120098A1 (en) * 2006-11-21 2008-05-22 Nokia Corporation Complexity Adjustment for a Signal Encoder
ES2404408T3 (es) * 2007-03-02 2013-05-27 Panasonic Corporation Dispositivo de codificación y método de codificación
CN101295506B (zh) * 2007-04-29 2011-11-16 华为技术有限公司 脉冲编解码方法及脉冲编解码器
US7889103B2 (en) 2008-03-13 2011-02-15 Motorola Mobility, Inc. Method and apparatus for low complexity combinatorial coding of signals
US8207875B2 (en) 2009-10-28 2012-06-26 Motorola Mobility, Inc. Encoder that optimizes bit allocation for information sub-parts
US7978101B2 (en) 2009-10-28 2011-07-12 Motorola Mobility, Inc. Encoder and decoder using arithmetic stage to compress code space that is not fully utilized
US8149144B2 (en) 2009-12-31 2012-04-03 Motorola Mobility, Inc. Hybrid arithmetic-combinatorial encoder
US8280729B2 (en) * 2010-01-22 2012-10-02 Research In Motion Limited System and method for encoding and decoding pulse indices
WO2011111453A1 (fr) * 2010-03-09 2011-09-15 日本電信電話株式会社 Procédé de codage, procédé de décodage, dispositif, programme et support d'enregistrement
CN102299760B (zh) * 2010-06-24 2014-03-12 华为技术有限公司 脉冲编解码方法及脉冲编解码器
CN103886862B (zh) * 2010-06-24 2018-09-28 华为技术有限公司 脉冲编解码方法及脉冲编解码器
US9236063B2 (en) * 2010-07-30 2016-01-12 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for dynamic bit allocation
US9425820B2 (en) * 2013-06-03 2016-08-23 Mozilla Corporation Vector quantization with non-uniform distributions

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001011610A1 (fr) * 1999-08-06 2001-02-15 Motorola Inc. Procede de compression factorielle et dispositif de codage d'information

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
UDAR MITTAL ET AL: "Coding pulse sequences using a combination of factorial pulse coding and arithmetic coding", SIGNAL PROCESSING AND COMMUNICATIONS (SPCOM), 2010 INTERNATIONAL CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 18 July 2010 (2010-07-18), pages 1 - 5, XP031744814, ISBN: 978-1-4244-7137-9 *

Also Published As

Publication number Publication date
CN106664099B (zh) 2020-01-24
US20160049158A1 (en) 2016-02-18
US20160249071A1 (en) 2016-08-25
WO2016025283A1 (fr) 2016-02-18
EP3180862A1 (fr) 2017-06-21
CN106664099A (zh) 2017-05-10
US9336788B2 (en) 2016-05-10
US9584833B2 (en) 2017-02-28

Similar Documents

Publication Publication Date Title
US10515649B2 (en) Method for coding pulse vectors using statistical properties
CN115514978B (zh) 用于在视频压缩中的熵代码化的概率的混合的方法和装置
US10834425B2 (en) Image compression/decompression method and device, and image processing system
US20180343456A1 (en) System and method for using pattern vectors for video and image coding and decoding
RU2417518C2 (ru) Эффективное кодирование и декодирование блоков преобразования
US10382789B2 (en) Systems and methods for digital media compression and recompression
WO2012096389A1 (fr) Procédé de décodage de vidéo codée en tant que flux binaire dans un décodeur vidéo
US9990931B2 (en) Method for coding pulse vectors using statistical properties
US20230106778A1 (en) Quantization for Neural Networks
EP3180862B1 (fr) Procédé pour coder des vecteurs d&#39;impulsion en utilisant des propriétés statistiques
EP1653746A2 (fr) Codage et décodage sans pertes de données entières
EP3180863B1 (fr) Procédé pour coder des vecteurs d&#39;impulsion en utilisant des propriétés statistiques
CN105163130B (zh) 一种基于离散Tchebichef正交多项式的图像无损压缩方法
CN107018430B (zh) 用于二进制数据的压缩和解压缩的方法和设备
US9948928B2 (en) Method and apparatus for encoding an image
Vimala et al. Enhanced ambtc for image compression using block classification and interpolation
US20050084157A1 (en) Method for deblocking and transcoding a media stream
US20160323603A1 (en) Method and apparatus for performing an arithmetic coding for data symbols
CN116746066A (zh) 使用人工神经网络的渐进式数据压缩
Peel et al. Adaptive-search tree-structured residual vector quantization

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

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

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

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20161209

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL 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 RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20190425

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

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

Free format text: STATUS: GRANT OF PATENT IS INTENDED

INTG Intention to grant announced

Effective date: 20190823

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

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

Free format text: STATUS: THE PATENT HAS BEEN GRANTED

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): AL 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 RS SE SI SK SM 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: 1233462

Country of ref document: AT

Kind code of ref document: T

Effective date: 20200215

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: 602015046815

Country of ref document: DE

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

Ref country code: RS

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: 20200212

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: 20200212

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: 20200512

REG Reference to a national code

Ref country code: LT

Ref legal event code: MG4D

REG Reference to a national code

Ref country code: NL

Ref legal event code: MP

Effective date: 20200212

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

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: 20200612

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: 20200512

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: 20200212

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: 20200513

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: 20200212

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: 20200212

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 FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200212

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: 20200212

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: 20200705

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: 20200212

Ref country code: SM

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: 20200212

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: 20200212

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: 20200212

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: 20200212

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: 20200212

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: 20200212

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 602015046815

Country of ref document: DE

REG Reference to a national code

Ref country code: AT

Ref legal event code: MK05

Ref document number: 1233462

Country of ref document: AT

Kind code of ref document: T

Effective date: 20200212

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

26N No opposition filed

Effective date: 20201113

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: 20200212

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: 20200212

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

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: 20200212

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: 20200212

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

Ref country code: MC

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: 20200212

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

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: 20200831

Ref country code: LU

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

Effective date: 20200806

Ref country code: LI

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

Effective date: 20200831

REG Reference to a national code

Ref country code: BE

Ref legal event code: MM

Effective date: 20200831

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: 20200831

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: 20200806

Ref country code: BE

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

Effective date: 20200831

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

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: 20200212

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: 20200212

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: 20200212

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: 20200212

Ref country code: AL

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: 20200212

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

Ref country code: GB

Payment date: 20220829

Year of fee payment: 8

Ref country code: DE

Payment date: 20220829

Year of fee payment: 8

P01 Opt-out of the competence of the unified patent court (upc) registered

Effective date: 20230511

REG Reference to a national code

Ref country code: DE

Ref legal event code: R119

Ref document number: 602015046815

Country of ref document: DE

GBPC Gb: european patent ceased through non-payment of renewal fee

Effective date: 20230806

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

Ref country code: GB

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

Effective date: 20230806

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

Ref country code: GB

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

Effective date: 20230806

Ref country code: DE

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

Effective date: 20240301