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 PDFInfo
- 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
Links
- 239000013598 vector Substances 0.000 title claims description 417
- 238000000034 method Methods 0.000 title claims description 126
- 238000013179 statistical model Methods 0.000 claims description 24
- 230000003044 adaptive effect Effects 0.000 claims description 10
- 238000013459 approach Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 38
- 238000010586 diagram Methods 0.000 description 20
- 239000011159 matrix material Substances 0.000 description 13
- 230000014509 gene expression Effects 0.000 description 11
- 230000008901 benefit Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 238000013139 quantization Methods 0.000 description 8
- 230000001419 dependent effect Effects 0.000 description 6
- 230000003247 decreasing effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000001208 nuclear magnetic resonance pulse sequence Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000007619 statistical method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000003245 working effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/94—Vector quantisation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/02—Speech 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/032—Quantisation or dequantisation of spectral components
- G10L19/038—Vector quantisation, e.g. TwinVQ audio
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3082—Vector coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
- H03M7/4012—Binary arithmetic codes
- H03M7/4018—Context adapative binary arithmetic codes [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/1887—Methods 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)
- 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 ; etle 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.
- 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 :
- 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
- 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 à :
- 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 ; etun paramètre d'impulsion qui correspond à des amplitudes des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif.
- 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. - 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 ; etle 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.
- 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. - 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 ; etla 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 ; puisle 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.
- 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.
- 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.
- 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. - 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 ; etla 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.
- 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.
- 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 ; etun mot de code qui représente des amplitudes des positions d'impulsion non à zéro à l'intérieur du vecteur d'impulsion respectif.
- 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. - 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 ; etle 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.
- 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.
- 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 ; etle 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.
- 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. - Dispositif d'équipement d'utilisateur comprenant le système tel que revendiqué selon la revendication 20.
- 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 ; etla 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.
- Dispositif d'équipement d'utilisateur comprenant le système tel que revendiqué selon la revendication 23.
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)
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)
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)
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 |
-
2014
- 2014-08-15 US US14/460,464 patent/US9336788B2/en active Active
-
2015
- 2015-08-06 CN CN201580036000.XA patent/CN106664099B/zh not_active Expired - Fee Related
- 2015-08-06 EP EP15751233.6A patent/EP3180862B1/fr active Active
- 2015-08-06 WO PCT/US2015/043941 patent/WO2016025283A1/fr active Application Filing
-
2016
- 2016-05-03 US US15/145,534 patent/US9584833B2/en not_active Expired - Fee Related
Patent Citations (1)
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)
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'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'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 |