Source: http://www.google.com/patents/US5812788?dq=5,687,325
Timestamp: 2015-04-01 06:18:00
Document Index: 168659957

Matched Legal Cases: ['art1', 'art2', 'art3', 'art4', 'art1', 'art2', 'art3', 'art4', 'art 1', 'art 2', 'art 1', 'art 2', 'art1', 'art2', 'art1', 'art2']

Patent US5812788 - Computer-implemented process for encoding video signals - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inAdvanced Patent SearchPatentsVideo signals are encoded and decoded using a set of quantization tables that is generated from a base matrix and a scale matrix, which are both explicitly encoded into the encoded video bitstream. The sets of quantization tables may be changed as often as needed as long as the new base and scale matrices...http://www.google.com/patents/US5812788?utm_source=gb-gplus-sharePatent US5812788 - Computer-implemented process for encoding video signalsAdvanced Patent SearchPublication numberUS5812788 APublication typeGrantApplication numberUS 08/537,091Publication dateSep 22, 1998Filing dateSep 29, 1995Priority dateJul 21, 1995Fee statusLapsedPublication number08537091, 537091, US 5812788 A, US 5812788A, US-A-5812788, US5812788 A, US5812788AInventorsRohit AgarwalOriginal AssigneeIntel CorporationExport CitationBiBTeX, EndNote, RefManPatent Citations (2), Referenced by (68), Classifications (54), Legal Events (8) External Links: USPTO, USPTO Assignment, EspacenetComputer-implemented process for encoding video signals
US 5812788 AAbstract
Video signals are encoded and decoded using a set of quantization tables that is generated from a base matrix and a scale matrix, which are both explicitly encoded into the encoded video bitstream. The sets of quantization tables may be changed as often as needed as long as the new base and scale matrices are explicitly encoding into the bitstream.
1. A computer-implemented process for encoding video signals, comprising the steps of:(a) generating a first set of quantization (Q) tables from a first base matrix and a first scale matrix; (b) generating a first set of encoded video signals from a first set of video signals of a video sequence using the first set of Q tables; and (c) encoding the first base matrix, the first scale matrix, and the first set of encoded video signals into an encoded video bitstream. 2. The process of claim 1, wherein step (b) comprises the step of quantizing coefficients corresponding to the first set of video signals using the first set of Q tables.
3. The process of claim 1, further comprising the steps of:(d) generating a second set of Q tables from a second base matrix and a second scale matrix, wherein:the second base matrix is different from the first base matrix; the second scale matrix is different from the first scale matrix; and the second set of Q tables is different from the first set of Q tables; (e) generating a second set of encoded video signals from a second set of video signals of the video sequence using the second set of Q tables; and (f) encoding the second base matrix, the second scale matrix, and the second set of encoded video signals into the encoded video bitstream. 4. The process of claim 3, wherein:the first set of video signals correspond to a first band of a first video frame; the second set of video signals correspond to a second band of the first video frame; and the first and second sets of Q tables are inherited, such that:the first set of Q tables are used to encode a first band of a second video frame; and the second set of Q tables are used to encode a second band of the second video frame. 5. The process of claim 1, wherein step (a) further comprises the step of generating the first base matrix and the first scale matrix as functions of the first set of video signals.
6. The process of claim 1, wherein:step (a) further comprises the step of generating the first base matrix and the first scale matrix as functions of the first set of video signals; and step (b) comprises the step of quantizing coefficients corresponding to the first set of video signals using the first set of Q tables; and further comprising the steps of:(d) generating a second set of Q tables from a second base matrix and a second scale matrix, wherein:the second base matrix is different from the first base matrix; the second scale matrix is different from the first scale matrix; and the second set of Q tables is different from the first set of Q tables; (e) generating a second set of encoded video signals from a second set of video signals of the video sequence using the second set of Q tables; and (f) encoding the second base matrix, the second scale matrix, and the second set of encoded video signals into the encoded video bitstream. 7. The process of claim 6, wherein:the first set of video signals correspond to a first band of a first video frame; the second set of video signals correspond to a second band of the first video frame; and the first and second sets of Q tables are inherited, such that:the first set of Q tables are used to encode a first band of a second video frame; and the second set of Q tables are used to encode a second band of the second video frame. 8. An apparatus for encoding video signals, comprising:(a) means for generating a first set of quantization (Q) tables from a first base matrix and a first scale matrix; (b) means for generating a first set of encoded video signals from a first set of video signals of a video sequence using the first set of Q tables; and (c) means for encoding the first base matrix, the first scale matrix, and the first set of encoded video signals into an encoded video bitstream. 9. The apparatus of claim 8, wherein means (b) quantizes coefficients corresponding to the first set of video signals using the first set of Q tables.
10. The apparatus of claim 8, wherein:means (a) generates a second set of Q tables from a second base matrix and a second scale matrix, wherein:the second base matrix is different from the first base matrix; second scale matrix is different from the first scale matrix; and the second set of Q tables is different from the first set of Q tables; means (b) generates a second set of encoded video signals from a second set of video signals of the video sequence using the second set of Q tables; and means (c) encodes the second base matrix, the second scale matrix, and the second set of encoded video signals into the encoded video bitstream. 11. The apparatus of claim 10, wherein:the first set of video signals correspond to a first band of a first video frame; the second set of video signals correspond to a second band of the first video frame; and the first and second sets of Q tables are inherited, such that:the first set of Q tables are used to encode a first band of a second video frame; and the second set of Q tables are used to encode a second band of the second video frame. 12. The apparatus of claim 8, wherein means (a) generates the first base matrix and the first scale matrix as functions of the first set of video signals.
13. The apparatus of claim 8, wherein:means (a) generates the first base matrix and the first scale matrix as functions of the first set of video signals; means (b) quantizes coefficients corresponding to the first set of video signals using the first set of Q tables; means (a) generates a second set of Q tables from a second base matrix and a second scale matrix, wherein:the second base matrix is different from the first base matrix; the second scale matrix is different from the first scale matrix; and the second set of Q tables is different from the first set of Q tables; means (b) generates a second set of encoded video signals from a second set of video signals of the video sequence using the second set of Q tables; and means (c) encodes the second base matrix, the second scale matrix, and the second set of encoded video signals into the encoded video bitstream. 14. The apparatus of claim 13, wherein:the first set of video signals correspond to a first band of a first video frame; the second set of video signals correspond to a second band of the first video frame; and the first and second sets of Q tables are inherited, such that:first set of Q tables are used to encode a first band of a second video frame; and the second set of Q tables are used to encode a second band of the second video frame. 15. A storage medium having stored thereon a plurality of instructions for encoding video signals, wherein the plurality of instructions, when executed by a processor of a computer, cause the processor to perform the steps of:(a) generating a first set of quantization (Q) tables from a first base matrix and a first scale matrix; (b) generating a first set of encoded video signals from a first set of video signals of a video sequence using the first set of Q tables; and (c) encoding the first base matrix, the first scale matrix, and the first set of encoded video signals into an encoded video bitstream. 16. The storage medium of claim 15, wherein step (b) comprises the step of quantizing coefficients corresponding to the first set of video signals using the first set of Q tables.
17. The storage medium of claim 15, wherein:step (a) comprises the step of generating a second set of Q tables from a second base matrix and a second scale matrix, wherein:the second base matrix is different from the first base matrix; the second scale matrix is different from the first scale matrix; and the second set of Q tables is different from the first set of Q tables; step (b) comprises the step of generating a second set of encoded video signals from a second set of video signals of the video sequence using the second set of Q tables; and step (c) comprises the step of encoding the second base matrix, the second scale matrix, and the second set of encoded video signals into the encoded video bitstream. 18. The storage medium of claim 17, wherein:the first set of video signals correspond to a first band of a first video frame; the second set of video signals correspond to a second band of the first video frame; and the first and second sets of Q tables are inherited, such that:the first set of Q tables are used to encode a first band of a second video frame; and the second set of Q tables are used to encode a second band of the second video frame. 19. The storage medium of claim 15, wherein (a) comprises the step of generating the first base matrix and the first scale matrix as functions of the first set of video signals.
20. The storage medium of claim 15, wherein:step (a) comprises the step of generating the first base matrix and the first scale matrix as functions of the first set of video signals; step (b) comprises the step of quantizing coefficients corresponding to the first set of video signals using the first set of Q tables; step (a) comprises the step of generating a second set of Q tables from a second base matrix and a second scale matrix, wherein:the second base matrix is different from the first base matrix; the second scale matrix is different from the first scale matrix; and the second set of Q tables is different from the first set of Q tables; step (b) comprises the step of generating a second set of encoded video signals from a second set of video signals of the video sequence using the second set of Q tables; and step (c) comprises the step of encoding the second base matrix, the second scale matrix, and the second set of encoded video signals into the encoded video bitstream. 21. The storage medium of claim 20, wherein:the first set of video signals correspond to a first band of a first video frame; the second set of video signals correspond to a second band of the first video frame; and the first and second sets of Q tables are inherited, such that:the first set of Q tables are used to encode a first band of a second video frame; and the second set of Q tables are used to encode a second band of the second video frame. 22. A computer-implemented process for decoding encoded video signals, comprising the steps of:(a) retrieving a first base matrix and a first scale matrix encoded into an encoded video bitstream; (b) generating a first set of quantization (Q) tables from the first base matrix and the first scale matrix; and (c) decoding a first set of encoded video signals encoded into the encoded video bitstream using the first set of Q tables to generate a first set of decoded video signals. 23. The process of claim 22, wherein step (c) comprises the step of dequantizing quantized coefficients corresponding to the first set of encoded video signals using the first set of Q tables.
24. The process of claim 22, further comprising the steps of:(d) retrieving a second base matrix and a second scale matrix encoded into the encoded video bitstream, wherein:the second base matrix is different from the first base matrix; and the second scale matrix is different from the first scale matrix; (e) generating a second set of Q tables from the second base matrix and the second scale matrix, wherein the second set of Q tables is different from the first set of Q tables; and (f) decoding a second set of encoded video signals encoded into the encoded video bitstream using the second set of Q tables to generate a second set of decoded video signals. 25. The process of claim 24, wherein:the first set of decoded video signals correspond to a first band of a first video frame; the second set of decoded video signals correspond to a second band of the first video frame; and the first and second sets of Q tables are inherited, such that:the first set of Q tables are used to decode a first band of a second video frame; and the second set of Q tables are used to decode a second band of the second video frame. 26. The process of claim 22, wherein the first base matrix and the first scale matrix were generated as functions of original video signals corresponding to first set of encoded video signals.
27. The process of claim 22, wherein:the first base matrix and the first scale matrix were generated as functions of original video signals corresponding to first set of encoded video signals; and step (c) comprises the step of dequantizing quantized coefficients corresponding to the first set of encoded video signals using the first set of Q tables; and further comprising the steps of:(d) retrieving a second base matrix and a second scale matrix encoded into the encoded video bitstream, wherein:the second base matrix is different from the first base matrix; and the second scale matrix is different from the first scale matrix; (e) generating a second set of Q tables from the second base matrix and the second scale matrix, wherein the second set of Q tables is different from the first set of Q tables; and (f) decoding a second set of encoded video signals encoded into the encoded video bitstream using the second set of Q tables to generate a second set of decoded video signals. 28. The process of claim 27, wherein:the first set of decoded video signals correspond to a first band of a first video frame; the second set of decoded video signals correspond to a second band of the first video frame; and the first and second sets of Q tables are inherited, such that:the first set of Q tables are used to decode a first band of a second video frame; and the second set of Q tables are used to decode a second band of the second video frame. 29. An apparatus for decoding encoded video signals, comprising:(a) means for retrieving a first base matrix and a first scale matrix encoded into an encoded video bitstream; (b) means for generating a first set of quantization (Q) tables from the first base matrix and the first scale matrix; and (c) means for decoding a first set of encoded video signals encoded into the encoded video bitstream using the first set of Q tables to generate a first set of decoded video signals. 30. The apparatus of claim 29, wherein means (c) dequantizes quantized coefficients corresponding to the first set of encoded video signals using the first set of Q tables.
31. The apparatus of claim 29, wherein:means (a) retrieves a second base matrix and a second scale matrix encoded into the encoded video bitstream, wherein:the second base matrix is different from the first base matrix; and the second scale matrix is different from the first scale matrix; means (b) generates a second set of Q tables from the second base matrix and the second scale matrix, wherein the second set of Q tables is different from the first set of Q tables; and means (c) decodes a second set of encoded video signals encoded into the encoded video bitstream using the second set of Q tables to generate a second set of decoded video signals. 32. The apparatus of claim 31, wherein:the first set of decoded video signals correspond to a first band of a first video frame; the second set of decoded video signals correspond to a second band of the first video frame; and the first and second sets of Q tables are inherited, such that:the first set of Q tables are used to decode a first band of a second video frame; and the second set of Q tables are used to decode a second band of the second video frame. 33. The apparatus of claim 29, wherein the first base matrix and the first scale matrix were generated as functions of original video signals corresponding to first set of encoded video signals.
34. The apparatus of claim 29, wherein:the first base matrix and the first scale matrix were generated as functions of original video signals corresponding to first set of encoded video signals; means (c) dequantizes quantized coefficients corresponding to the first set of encoded video signals using the first set of Q tables; means (a) retrieves a second base matrix and a second scale matrix encoded into the encoded video bitstream, wherein:the second base matrix is different from the first base matrix; and the second scale matrix is different from the first scale matrix; means (b) generates a second set of Q tables from the second base matrix and the second scale matrix, wherein the second set of Q tables is different from the first set of Q tables; and means (c) decodes a second set of encoded video signals encoded into the encoded video bitstream using the second set of Q tables to generate a second set of decoded video signals. 35. The apparatus of claim 34, wherein:the first set of decoded video signals correspond to a first band of a first video frame; the second set of decoded video signals correspond to a second band of the first video frame; and the first and second sets of Q tables are inherited, such that:the first set of Q tables are used to decode a first band of a second video frame; and the second set of Q tables are used to decode a second band of the second video frame. 36. A storage medium having stored thereon a plurality of instructions for decoding encoded video signals, wherein the plurality of instructions, when executed by a processor of a computer, cause the processor to perform the steps of:(a) retrieving a first base matrix and a first scale matrix encoded into an encoded video bitstream; (b) generating a first set of quantization (Q) tables from the first base matrix and the first scale matrix; and (c) decoding a first set of encoded video signals encoded into the encoded video bitstream using the first set of Q tables to generate a first set of decoded video signals. 37. The storage medium of claim 36, wherein step (c) comprises the step of dequantizing quantized coefficients corresponding to the first set of encoded video signals using the first set of Q tables.
38. The storage medium of claim 36, wherein:step (a) comprises the step of retrieving a second base matrix and a second scale matrix encoded into the encoded video bitstream, wherein:the second base matrix is different from the first base matrix; and the second scale matrix is different from the first scale matrix; step (b) comprises the step of generating a second set of Q tables from the second base matrix and the second scale matrix, wherein the second set of Q tables is different from the first set of Q tables; and step (c) comprises the step of decoding a second set of encoded video signals encoded into the encoded video bitstream using the second set of Q tables to generate a second set of decoded video signals. 39. The storage medium of claim 38, wherein:the first set of decoded video signals correspond to a first band of a first video frame; the second set of decoded video signals correspond to a second band of the first video frame; and the first and second sets of Q tables are inherited, such that:the first set of Q tables are used to decode a first band of a second video frame; and the second set of Q tables are used to decode a second band of the second video frame. 40. The storage medium of claim 36, wherein the first base matrix and the first scale matrix were generated as functions of original video signals corresponding to first set of encoded video signals.
41. The storage medium of claim 36, wherein:the first base matrix and the first scale matrix were generated as finctions of original video signals corresponding to first set of encoded video signals; step (c) comprises the step of dequantizing quantized coefficients corresponding to the first set of encoded video signals using the first set of Q tables; step (a) comprises the step of retrieving a second base matrix and a second scale matrix encoded into the encoded video bitstream, wherein:the second base matrix is different from the first base matrix; and the second scale matrix is different from the first scale matrix; step (b) comprises the step of generating a second set of Q tables from the second base matrix and the second scale matrix, wherein the second set of Q tables is different from the first set of Q tables; and step (c) comprises the step of decoding a second set of encoded video signals encoded into the encoded video bitstream using the second set of Q tables to generate a second set of decoded video signals. 42. The storage medium of claim 41, wherein:the first set of decoded video signals correspond to a first band of a first video frame; the second set of decoded video signals correspond to a second band of the first video frame; and the first and second sets of Q tables are inherited, such that:the first set of Q tables are used to decode a first band of a second video frame; and the second set of Q tables are used to decode a second band of the second video frame. Description
The present invention comprises a computer-implemented process, apparatus, and storage medium encoded with machine-readable computer program code for encoding video signals. According to a preferred embodiment, a first set of quantization (Q) tables is generated from a first base matrix and a first scale matrix. A first set of encoded video signals is generated from a first set of video signals of a video sequence using the first set of Q tables. The first base matrix, the first scale matrix, and the first set of encoded video signals are encoded into an encoded video bitstream.
The present invention also comprises a computer-implemented process, apparatus, and storage medium encoded with machine-readable computer program code for decoding encoded video signals. According to a preferred embodiment, a first base matrix and a first scale matrix encoded into an encoded video bitstream are retrieved. A first set of quantization (Q) tables is generated from the first base matrix and the first scale matrix. A first set of encoded video signals encoded into the encoded video bitstream is decoded using the first set of Q tables to generate a first set of decoded video signals.
FIGS. 7-9 show representations of the pixels in the current (16xl6) macroblock of the current frame in the spatial domain used for motion estimation;
During real-time encoding, host processor 116 reads the captured bitmaps from memory device 112 via high-speed memory interface 110 and generates encoded video signals that represent the captured video signals. Depending upon the particular encoding scheme implemented, host processor 116 applies a sequence of compression steps to reduce the amount of data used to represent information in the video signals. The encoded video signals are then stored to memory device 112 via memory interface 112 and/or mass storage device 120 via system bus 114. Host processor 116 may copy the encoded video signals to mass storage device 120 and/or transmit the encoded video signals to transmitter 118 for real-time transmission to a remote receiver (not shown in FIG. 1).
______________________________________{     3,          5,    5,      3, 5,         25,   25,      5, 5,         25,   25,      5, 3,          5,    5,      3   } / 152______________________________________
Key (K) frames and intra (I) frames are both encoded without reference to any other frames.
As such, each block of a K or I frame is encoded as an intra block. Both K and I frames may be used as references for subsequent B or D frames. In one embodiment, the difference between K and I frames is that an I frame may be used as a reference for a previous B frame, while a K frame may not.
QDelta=-8*log2((Gradi+2*MeanGrad)/(2*Gradi+MeanGrad))if(Qlevel&lt;8)Qdelta=0
______________________________________for( I=0; I&lt;32; I++) for( j=0; j&lt;BlockSize; j++) {  for( k=0; k&lt;BlockSize; k++)  {   QuantSet i! j! k! = (BaseMatrix j! k! * i * ScaleMatrix j! k!)&gt;&gt;6;   if( QuantSet i! j! k! &gt; 511 )    QuantSet i! j! k! = 511;   if( QuantSet i! j! k! &lt; 1 )    QuantSet i! j! k! = 1;  } }}______________________________________
BaseMatrix=(w* QST)+((1-w)* K/BPT)
The quantization sensitivity table (QST) is generated empirically off line for each different type of transform. The QST is based on the subjective sensitivity of the human eye to errors in each tranform coefficient. The entries in the QST are the quantization levels at which the human eye begins to detect the effect of quantizing the transform coefficient in the decoded image.
______________________________________For (8 � 8) slant and (8 � 8) DCT transforms: 0     1        5     6     14  15     27  28 2     4        7    13     16  26     29  42 3     8       12    17     25  30     41  43 9    11       18    24     31  40     44  5310    19       23    32     39  45     52  5420    22       33    38     46  51     55  6021    34       37    47     50  56     59  6135    36       48    49     57  58     62  63For the 8 � 8 Slaar: 1     2        6     7     33  34     38  39 3     5        8    13     35  37     40  45 4     9       12    14     36  41     44  4610    11       15    16     42  43     47  4817    18       22    23     49  50     54  5519    21       24    29     51  53     56  6120    25       28    30     52  57     60  6226    27       31    32     58  59     63  64For (8 � 8) Haar transform: 0     2        6     7     16  17     18  19 1     3       10    11     28  29     30  31 4     8       24    25     40  41     42  43 5     9       26    27     47  46     45  4412    20       32    33     48  49     50  5113    21       35    34     55  54     53  5214    22       36    37     56  57     58  5915    23       39    38     63  62     61  60For all (1 � 8) Haar transforms: 0     1        2     3      4   5      6   7 8     9       10    11     12  13     14  1516    17       18    19     20  21     22  2324    25       26    27     28  29     30  3132    33       34    35     36  37     38  3940    41       42    43     44  45     46  4748    49       50    51     52  53     54  5556    57       58    59     60  61     62  63For all (8 � 1) transforms:0      8       16    24     32  40     48  561      9       17    25     33  41     49  572     10       18    26     34  42     50  583     11       19    27     35  43     51  594     12       20    28     36  44     52  605     13       21    29     37  45     53  616     14       22    30     38  46     54  627     15       23    31     39  47     55  63For (8 � 8) blocks that are not transformed: 0     1        5     6     14  15     27  28 2     4        7    13     16  26     29  42 3     8       12    17     25  30     41  43 9    11       18    24     31  40     44  5310    19       23    32     39  45     52  5420    22       33    38     46  51     55  6021    34       37    47     50  56     59  6135    36       48    49     57  58     62  63For (4 � 4) slant and (4 � 4) DCT transforms:0        1             5        62        4             7       123        8            11       139        10           14       15For the 4 � 4 Slaar:1        2             9       103        4            11       125        6            13       147        8            15       16For (4 � 4) Haar transform:0        1             8        92        3            11       104        5            12       137        6            14       15For all (4 � 1) transforms:0        4             8       121        5             9       132        6            10       143        7            11       15For all (1 � 4) transforms:0        1             2        34        5             6        78        9            10       1112       13           14       15For (4 � 4) blocks that are not transformed:0        1             5        62        4             7       123        8            11       139        10           14       15______________________________________
Ratiol--relative size of encoded intra or key frames (preferably initialized to 10);
ReactNeg--bit rate control parameter (preferably initialized to 128).
Denom=Ratiol+RatioD+RatioB
BytesPerI=KByteRate*Ratiol/Denom
______________________________________switch( Context-&gt;FrameType)case PIC-- TYPE-- I:case PIC-- TYPE-- K:{// for intra or key frames ByteDelta = MaxBuffer/2 - GlobalByteBankFullness; if(ByteDelta &gt; 0) { // lower than half the buffer  BytesForThisFrame = BytesPerI+(ByteDelta*ReactPos)/256; }else { // exceeded half the bufferBytesForThisFrame = BytesPerI+(ByteDelta*ReactNeg)/256; }//endif GlobalByteBankFullness -= BytesPerI;}// end case I or K framebreak;case PIC-- TYPE-- D:{// for delta frames ByteDelta = MaxBuffer/2 - GlobalByteBankFullness; if( ByteDelta &gt; 0 ) { // lower than half the buffer  BytesForThisFrame = BytesPerD+(ByteDelta*ReactPos)/256; } else { // exceeded half the buffer  BytesForThisFrame = BytesPerD+(ByteDelta*ReactNeg)/256; } GlobalByteBankFullness -= BytesPerD;}// end case D framebreak;case PIC-- TYPE-- B:{// for bi-directional frames ByteDelta = Buffer/2 GlobalByteBankFullness; if( ByteDelta &gt; 0 ) { // lower than half the buffer  BytesForThisFrame = BytesPerB+(ByteDelta*ReactPos)/256; } else { // exceeded half the buffer  BytesForThisFrame = BytesPerB+(ByteDelta*ReactNeg)/256; } GlobalByteBankFullness -= BytesPerB;}// end case B framebreak;} /* end switch frame type */______________________________________
______________________________________// Perform initial encode using current global Q levelInitial Encode( GlobalQuant )// Test if the number of bytes generated during the initial encode areless than the number of bytes allocated for this frame.if( BytesGenerated During Initial Encode &lt; BytesForThisFrame ) Delta = 0; while( BytesGenerated &lt; BytesForThisFrame &amp;&amp; ABS(Delta) &lt; 2 ) {// Decrement global Q level and perform trial encode.  GlobalQuant -= 1  BytesGenerated = Trial Encode( GlobalQuant )  Delta -= 1 }}else{ Delta = 0; while( BytesGenerated &lt; BytesForThisFrame &amp;&amp; ABS(Delta) &lt; 2 ) {// Increment global Q level and perform trial encode.  GlobalQuant += 1  BytesGenerated = Trial encode( GlobalQuant )  Delta += 1; }}// Perform final encode using selected global Q level.Final Encode( GlobalQuant )______________________________________
GlobalByteBandFullness-=BytesGenerated
______________________________________for (p=0 to BlockSize){ for (q=0 to BlockSize)  { E(p,q) = 0;  for (i=1 to N) { E(p,q) += ABS (Bi(p,q));  }  E(p,q) /= N;   // Normalization step. }______________________________________
If NC is not 1 (step 2012), but is 2 (step 2016), then the current k bits contain two complete VLE codes, and Cl and C2 contain the decoded values for those two VLE codes. In that case, the two VLE codes are decoded by reading out C1 and C2 to the decoded bitstream (step 2018). If NC is not 2 (step 2016), then the current k bits contain three complete VLE codes, and C1, C2, and C3 contain the decoded values for those three VLE codes. In that case, the three VLE codes are decoded by reading out C1, C2, and C3 to the decoded bitstream (step 2020). As in step 2014, following either of steps 2018 or 2020, processing continues to step 2022 where the bitstream pointer is updated per TB.
Video Plavback Scalability
In one possible implementation of Case 4,p2 and p3 are generated by vertically replicating p0 and p1, respectively. In another possible implementation, p2 and p3 are generated by vertically interpolating p0 and p1, respectively.
__________________________________________________________________________    Target    # of Y              Y-Band                    UV-Band                          Motion VectorMode    Platform    Scalability         Bands              Transforms                    Transforms                          Resolution__________________________________________________________________________0   High On   4    SI8 � 8,                    SI4 � 4                          Half Pixel              SI1 � 8,              SI8 � 1,              None1   Medium    On   4    Hr8 � 8,                    Hr4 � 4                          Half Pixel              Hr1 � 8,              Hr8 � 1,              None2   Low  On   4    Hr8 � 8                    Hr4 � 4                          Integer Pixel              None,              None,              None3   High Off  1    SI8 � 8                    SI4 � 4                          Half Pixel4   Medium    Off  1    Hr8 � 8                    Hr4 � 4                          Half Pixel5   Low  Off  1    Hr8 � 8                    Hr4 � 4                          Integer Pixel__________________________________________________________________________
Picture Header, Band0, Band1, Band2, Band3, . . . , BandN, Picture Header, Band0, . . . where each Bandi looks like:
The transparency band (if present) is bit plane, where each bit corresponds to a different pixel of the image and indicates whether the pixel is transparent. The transparency band is encoded by runlength encoding the bit plane, where the runs alternate between runs of 1's and runs of 0's. The runs are then Huffman encoded using a specified transparency codebook.
__________________________________________________________________________#define bfly(x,y) t1 = x-y; x += y; y = t1;#define NUM1  40#define NUM2  16#define DEN   29/* The following is a reflection using a,b = 16/29, 40/29 withoutprescale and with rounding. */#define freflect(s1,s2)\t = (NUM1*s1) + NUM2*s2) + DEN/2)/DEN;\s2 = (NUM2*s1) - (NUM1*s2) + DEN/2 )/DEN;\s1 = t;r1 = *src++;r2 = *src++;r3 = *src++;r4 = *src++;r5 = *scr++;r6 = *src++;r7 = *src++;r8 = *src++;bfly(r1,r4); bfly(r2,r3); bfly(r5,r8); bfly(r6,r7);                       // FSlantPart1bfly(r1,r2); freflect(r4,r3); bfly(r5,r6); freflect(r8,r7);                       // FSlantPart2bfly(r1,r5); bfly(r2,r6); bfly(r7,r3); bfly(r4,r8);                       // FSlantPart3t = r5 - (r5&gt;&gt;3) + (r4&gt;&gt;1); r5 = r4 - (r4&gt;&gt;3) - (r5&gt;&gt;1); r4                       // FSlantPart4*dst++ = r1;*dst++ = r4;*dst++ = r8;*dst++ = r5;*dst++ = r2;*dst++ = r6;*dst++ = r3;*dst++ = r7;}__________________________________________________________________________
__________________________________________________________________________#define bfly(x,y) t1 = x-y; x += y; y = t1;/* The following is a reflection using a,b = 1/2, 5/4. */#define reflect(s1,s2);\t = s1 + (s1&gt;&gt;2) + (s2&gt;&gt;1);\s2 = -s2 - (s2&gt;&gt;2) + (s1&gt;&gt;1);\s1 = t;r1 = *Src++;r4 = *Src++;r8 = *Src++;r5 = *Src++;r2 = *Src++;r6 = *Src++;r3 = *Src++;r7 = *Src++;t = r5 - (r5&gt;&gt;3) + (r4&gt;&gt;1); r5 = r4 - (r4&gt;&gt;3) - (r5&gt;&gt;1); 4                         // ISlantPart1bfly(r1,r5); bfly(r2,r6); bfly(r7,r3); bfly(r4,r8);                         // ISlantPart2bfly(r1,r2); reflect(r4,r3); bfly(r5,r6); reflect(r8,r7);                         // ISlantPart3bfly(r1,r4); bfly(r2,r3); bfly(r5,r8); bfly(r6,r7);                         // ISlantPart4*Dst++ = r1*Dst++ = r2;*Dst++ = r3;*Dst++ = r4;*Dst++ = r5;*Dst++ = r6;*Dst++ = r7;*Dst++ = r8;}__________________________________________________________________________
c(i,j)=(c(i,j)+16)>>5
c(i,j)=(c(i,j)+1)>>1
This last step compensates for the normalization performed during the forward transform. Those skilled in the art will understand that, in a symmetric slant transform, the forward and inverse transforms each contain a shift down of 3 bits.
______________________________________#define bfly(x,y) t1 = x-y; x += y; y = t1;#define NUM1 40#define NUM2 16#define DEN 29/* The following is a reflection using a,b = 16/29,40/29 without prescale and with rounding. */#define freflect(s1,s2)\t = (NUM1*s1) + (NUM2*s2) + DEN/2)/DEN;\s2 = (NUM2*s1) - (NUM1*s2) + DEN/2 )/DEN;\s1 = t;r1 = *Src++;r2 = *Src++;r3 = *Src++;r4 = *Src++;bfly(r1,r4); bfly(r2,r3);                    // FSlantPart 1freflect(r4,r3); bfly(r1,r2);                    // FSlantPart 2*Dst++ = r1;*Dst++ = r4;*Dst++ = r2;*Dst++ = r3;}______________________________________
______________________________________#define bfly(x,y) t1 = x-y; x += y; y = t1;/* The following is a reflection using a,b = 1/2, 5/4 */#define reflect(s1,s2);\t = s1 + (s1&gt;&gt;2) + (s2&gt;&gt;1);\s2 = -s2 - (s2&gt;&gt;2) + (s1&gt;&gt;1);\s1 = t;r1 = *p++;r4 = *p++;r2 = *p++;r3 = *p++;bfly(r1,r2);reflect(r4,r3);                    // ISlantpart 1bfly(r1,r4);bfly(r2,r3); // ISlantpart 2*p++ = r1;*p++ = r2;*p++ = r3*p++ = r4}______________________________________
c(i,j)=(c(i,j)+2)>>2
______________________________________#define bfly(x,y) t1 = x-y; x += y; y = t1;#define NUM1 40#define NUM2 16#define DEN 29/* The following is a reflection using a,b = 16/29, 40/29. */#define freflest(s1,s2)\t = ((NUM1*s1) + (NUM2*s2) + DEN/2 )/DEN;\s2 = ((NUM2*s1) - (NUM1*s2) + DEN/2 )/DEN;\s1 = t;/* The following is a reflection using a,b = 1/2, 5/4. */#define freflect(s1,s2)t = s1 + (s1&gt;&gt;2) + (s2&gt;&gt;1);\s2 = -s2 - (s2&gt;&gt;2) + (s1&gt;&gt;1);\s1 = t;r1 = *Src++;r2 = *Src++;r3 = *Src++;r4 = *Src++;r5 = *Src++;r6 = *Src++;r7 = *Src++;r8 = *Src++;bfly(r1,r2); bfly(r3,r4); bfly(r5,r6); bfly(r7,r8);bfly(r1,r7); bfly(r3,r5); bfly(r2,r8); bfly(r4,r6);freflect(r7,r5); bfly(r1,r3); freflect(r8,r6); bfly(r2,r4);*Dst++ = r1;*Dst++ = r7;*Dst++ = r3;*Dst++ = r5;*Dst++ = r2;*Dst++ = r8;*Dst++ = r4;*Dst++ = r6;}______________________________________
______________________________________#define bfly(x,y) t1 = x-y; x += y; y = t1;#define bfly2(x,y) t1 = x-y; x += y; y = DIV2(t1); x = DIV2(x);#define reflect(s1,s2) t = s1 + (s1&gt;&gt;2) +(s2&gt;&gt;1); s2 = -s2 - (s2&gt;&gt;2) + (s1&gt;&gt;1); s1 = t;r1 = *Src++;r7 = *Src++;r3 = *Src++;r5 = *Src++;r2 = *Src++;r8 = *Src++;r4 = *Src++;r6 = *Src++;reflect(r7,r5); bfly(r1,r3); reflect(r8,r6); bfly(r2,r4);bfly(r1,r7); bfly(r3,r5); bfly(r2,r8); bfly(r4,r6);bfly2(r1,r2); bfly2(r3,r4); bfly2(r5,r6); bfly2(r7,r8);*Dst++ = r1;*Dst++ = r2;*Dst++ = r3;*Dst++ = r4;*Dst++ = r5;*Dst++ = r6;*Dst++ = r7;*Dst++ = r8;}______________________________________
The inverse Slaar8 transform is preferably implemented with fixed reflection coefficients a,b=1/2, 5/4. This provides a fast implementation that is useful for real-time decoding. The forward Slaar8 transform may be implemented with either of two sets of fixed reflection coefficients. The set a,b =1/2, 5/4 is preferably used for real-time encoding, while the set a,b =16/29, 40/29 is preferably used for off-line, non-real-time encoding.
These values for a,b are derived as follows. Let a and b be the reflection coefficients of the forward transform, and c and d be the reflection coefficients of the inverse transform. Then the condition for perfect inversion is: ##EQU1## Equation (5) implies that:
which implies that ##EQU2## For a fixed-point symmetric implementation, any convenient (i.e., easy to compute) values for a,b may be chosen that satisfies Equation (8). In addition, to maintain a linear basis, the values for a,b should stay relatively close to the a=3b condition. The values a,b=1/2, 5/4 satisfy these two criteria. As such, a symmetric transform may be implemented using a,b=1/2, 5/4 and a scale factor of 2.
To find values for c,d that give perfect reconstruction in an asymmetric implementation, the values a,b=1/2, 5/4 are used in Equations (6) and (7). Solving Equation (7) for d and using a,b=1/2, 5/4 yields: ##EQU3## Using Equation (12) and a,b=1/2, 5/4 in Equation (6) yields:
______________________________________#define bfly(x,y) t1 = x-y; x += y; y = t1;#define NUM1 40#define NUM2 16#define DEN 29/* The following is a reflection using a,b = 16/29, 40/29 withoutprescaleand with rounding. */#define freflect(s1,s2)\t = ((NUM1*s1) + (NUM2*s2) + DEN/2 )/DEN;\s2 = ((NUM2*s1) - (NUM1*s2) + DEN/2 )/DEN;\s1 = t;r1 = *Src++;r2 = *Src++;r3 = *Src++;r4 = *Src++;bfly(r1,r2); bfly(r3,r4);                 //FSlaarPart1bfly(r1,r3); bfly(r2,r4);                 //FSlaarPart2*Dst++ = r1;*Dst++ = r3;*Dst++ = r2;*Dst++ = r4;}The inverse Slaar4 transform is defined by the following C code:{#define bfly(x,y) t1 = x-y; x += y; y = t1;/* The following is a reflection using a,b = 1/2, 5/4. */#define reflect(s1,s2)\t = s1 + (s1&gt;&gt;2) + (s2&gt;&gt;1);\s2 = -s2 - (s2&gt;&gt;2) + (s1&gt;&gt;1);\s1 = t;r1 = *p++;r3 = *p++;r2 = *p++;r4 = *p++;bfly(r1,r3); bfly(r2,r4); //ISlaarPart1bfly(r1,r2); bfly(r3,r4); //ISlaarPart2*p++ = r1;*p++ = r2;*p++ = r3;*p++ = r4;}______________________________________
______________________________________#define DIV2(x) ((x)&gt;0?(x)&gt;&gt;1:-(-(x))&gt;&gt;1)#define bfly(x,y) t1 = x-y; x += y; y = t1;#define bfly2(x,y) t1 = x-y; x += y; y = DIV2(t1); x = DIV2(x);r1 = *Src++;r2 = *Src++;r3 = *Src++;r4 = *Src++;r5 = *Src++;r6 = *Src++;r7 = *Src++;r8 = *Src++;bfly(r1,r2); bfly(r3,r4); bfly(r5,r6); bfly(r7,r8);                    //HaarFwd1bfly(r1,r3); bfly(r5,r7);                    //HaarFwd2;bfly(r1,r5);             //HaarFwd3;r1 = DIV2(r1);r5 = DIV2(r5);*Dst++ = r1;*Dst++ = r5;*Dst++ = r3;*Dst++ = r7;*Dst++ = r2;*Dst++ = r4;*Dst++ = r6;*Dst++ = r8;}______________________________________
______________________________________#define DIV2(x) ((x)&gt;0?(x)&gt;&gt;1:-(-(x))&gt;&gt;1)#define bfly2(x,y) t1 = x-y; x += y; y = DIV2(t1); x = DIV2(x);r1 = *Src++;r1 = r1&lt;&lt;1;r5 = *Src++;r5 = r5&lt;&lt;1;r3 = *Src++;r7 = *Src++;r2 = *Src++;r4 = *Src++;r6 = *Src++;r8 = *Src++;bfly2(r1,r5);              //HaarInv1;bfly(r1,r3); bfly(r5,r7);  //HaarInv2;bfly2(r1,r2); bfly2(r3,r4); bfly2(r5,r6); bfly2(r7,r8);                      //HaarInv3;*Dst++ = r1;*Dst++ = r2;*Dst++ = r3;*Dst++ = r4;*Dst++ = r5;*Dst++ = r6;*Dst++ = r7;*Dst++ = r8;}______________________________________
______________________________________for( i=0; i&lt;8; i++ )  for( j=0; j&lt;8; j++ )  {   c(i,j) = ( c(i,j) ) &gt;&gt; ScalingMatrix i! j!  }}______________________________________
______________________________________     { 1, 1, 1, 1, 0, 0, 0, 0,        1, 1, 1, 1, 0, 0, 0, 0,        1, 1, 1, 1, 0, 0, 0, 0,        1, 1, 1, 1, 0, 0, 0, 0,        0, 0, 0, 0, 0, 0, 0, 0,        0, 0, 0, 0, 0, 0, 0, 0,        0, 0, 0, 0, 0, 0, 0, 0,        0, 0, 0, 0, 0, 0, 0, 0 }______________________________________
______________________________________#define DIV2(x) ((x)&gt;0?(x)&gt;&gt;1:-(-(x))&gt;&gt;1)#define bfly(x,y) t1 = x-y; x += y; y = t1;#define bfly2(x,y) t1 = x-y; x += y; y = DIV2(t1); x = DIV2(x);r1 = *Src++;r3 = *Src++;r5 = *Src++;r7 = *Src++;bfly(r1,r3); bfly(r5,r7);                 //HaarFwd1;bfly(r1,r5);          //HaarFwd2;*Dst++ = r1;*Dst++ = r5;*Dst++ = r3;*Dst++ = r7;}______________________________________
______________________________________#define DIV2(x)  ((x)&gt;0?(x)&gt;&gt;1:-(-(x))&gt;&gt;1)#define bfly2(x,y) t1 = x-y; x += y; y = DIV2(t1); x = DIV2(x);r1 = *Src++;r5 = *Src++;r3 = *Src++;r7 = *Src++;bfly2(r1,r5);            // HaarInv1;bfly2(r1,r3); bfly2(r5,r7);                    // HaarInv2;*Dst++ = r1;*Dst++ = r3;*Dst++ = r5;*Dst++ = r7;}______________________________________
______________________________________for( i=0; i&lt;4; i++)for(j=0; j&lt;4; j++){c(ij) = ( c(ij) ) &gt;&gt; ScalingMatrix i! j!}}______________________________________
______________________________________{     1,          1,    0,        0, 1,          1,    0,        0, 0,          0,    0,        0, 0,          0,    0,        0   }______________________________________
______________________________________for( i=0; i&lt;4; i++)for(j=0; j&lt;4; j++){c(ij) = ( c(ij)) &gt;&gt; ScalingMatrix i! j!}}______________________________________
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS5157488 *May 17, 1991Oct 20, 1992International Business Machines CorporationAdaptive quantization within the jpeg sequential modeUS5535138 *Sep 8, 1994Jul 9, 1996Intel CorporationComputer-implemented process* Cited by examinerReferenced byCiting PatentFiling datePublication dateApplicantTitleUS6008857 *Jul 29, 1997Dec 28, 1999Sony CorporationMethods of and apparatus for encoding and decoding digital data for representation in a video frameUS6055017 *Mar 19, 1997Apr 25, 2000Matsushita Electric Industrial Co., Ltd.Adaptive scanning technique for efficient wavelet video codingUS6222885 *Jul 23, 1997Apr 24, 2001Microsoft CorporationVideo codec semiconductor chipUS6263021 *Mar 4, 1999Jul 17, 2001Sarnoff CorporationTreating non-zero quantized transform coefficients as zeros during video compression processingUS6292834Mar 14, 1997Sep 18, 2001Microsoft CorporationDynamic bandwidth selection for efficient transmission of multimedia streams in a computer networkUS6389071 *Oct 9, 1998May 14, 2002Matsushita Electric Industrial Co., Ltd.Method for reducing processing power requirements of a video decoderUS6389074 *Sep 28, 1998May 14, 2002Canon Kabushiki KaishaMethod and apparatus for digital data compressionUS6661904 *Jul 8, 1999Dec 9, 2003PersonalogoMethod and system for automated electronic conveyance of hidden dataUS6671318 *Apr 10, 2001Dec 30, 2003Koninklijke Philips Electronics N.V.Determining the degree of resemblance between a data sample and interpolations of other data samplesUS6798917 *Jan 24, 2001Sep 28, 2004Canon Kabushiki KaishaImage input apparatus, image processing apparatus, image input method, image processing method and image input systemUS6803931Nov 4, 1999Oct 12, 2004Kendyl A. RomanGraphical user interface including zoom control box representing image and magnification of displayed imageUS6826524Jul 7, 2000Nov 30, 2004Purdue Research FoundationSample-adaptive product quantizationUS6871006Jun 30, 2000Mar 22, 2005Emc CorporationProcessing of MPEG encoded video for trick mode operationUS6937770Dec 28, 2000Aug 30, 2005Emc CorporationAdaptive bit rate control for rate reduction of MPEG coded videoUS6947600 *Nov 1, 2000Sep 20, 2005Canon Kabushiki KaishaInformation processing method, apparatus and storage medium for receiving and decoding a code sequence obtained by encoding an imageUS6959116Sep 18, 2001Oct 25, 2005Emc CorporationLargest magnitude indices selection for (run, level) encoding of a block coded pictureUS6968091Sep 18, 2001Nov 22, 2005Emc CorporationInsertion of noise for reduction in the number of bits for variable-length coding of (run, level) pairsUS6980594Sep 11, 2001Dec 27, 2005Emc CorporationGeneration of MPEG slow motion playoutUS7016417Dec 22, 1999Mar 21, 2006Kendyl A. RomanGeneral purpose compression for video images (RHN)US7023924Dec 28, 2000Apr 4, 2006Emc CorporationMethod of pausing an MPEG coded video streamUS7096481Mar 31, 2000Aug 22, 2006Emc CorporationPreparation of metadata for splicing of encoded MPEG video and audioUS7109898 *Nov 8, 2005Sep 19, 2006Matsushita Electric Industrial Co., Ltd.Variable length coding method and variable length decoding methodUS7130351 *May 14, 1998Oct 31, 2006Vulcan Patents LlcStorage reduction during compressionUS7161508Apr 21, 2005Jan 9, 2007Matsushita Electric Industrial Co., Ltd.Variable length coding method and variable length decoding methodUS7191462Nov 8, 1999Mar 13, 2007Kendyl A. Rom�nSystem for transmitting video images over a computer network to a remote receiverUS7233619 *Dec 20, 1999Jun 19, 2007Roman Kendyl AVariable general purpose compression for video images (ZLN)US7248631 *Feb 1, 2002Jul 24, 2007Matsushita Electric Industrial Co., Ltd.Method for reducing processing power requirements of a video decoderUS7257158May 17, 1999Aug 14, 2007Kendyl A. Rom�nSystem for transmitting video images over a computer network to a remote receiverUS7283071Jul 31, 2006Oct 16, 2007Matsushita Electric Industrial Co., Ltd.Variable length coding method and variable length decoding methodUS7312730Oct 6, 2006Dec 25, 2007Matsushita Electric Industrial Co., Ltd.Variable length coding method and variable length decoding methodUS7312731Oct 6, 2006Dec 25, 2007Matsushita Electric Industrial Co., Ltd.Variable length coding method and variable length decoding methodUS7321674 *Jan 30, 2003Jan 22, 2008Agfa Healthcare, N.V.Method of normalising a digital signal representation of an imageUS7327786 *Jun 2, 2003Feb 5, 2008Lsi Logic CorporationMethod for improving rate-distortion performance of a video compression system through parallel coefficient cancellation in the transformUS7336720Sep 26, 2003Feb 26, 2008Vanguard Software Solutions, Inc.Real-time video coding/decodingUS7339506Oct 6, 2006Mar 4, 2008Matsushita Electric Industrial Co., Ltd.Variable length coding method and variable length decoding methodUS7411526Jul 31, 2006Aug 12, 2008Matsushita Electric Industrial Co., Ltd.Variable length coding method and variable length decoding methodUS7541948Jul 31, 2006Jun 2, 2009Panasonic CorporationVariable length coding method and variable length decoding methodUS7671864Jan 10, 2001Mar 2, 2010Roman Kendyl AFaster image processingUS7698653Jul 13, 2004Apr 13, 2010Roman Kendyl AGraphical user interface including zoom control box representing image and magnification of displayed imageUS7714752Oct 31, 2007May 11, 2010Panasonic CorporationVariable length coding method and variable length decoding methodUS7751475 *Jun 22, 2004Jul 6, 2010Apple Inc.Arbitrary-resolution, extreme-quality video codecUS7956774Feb 19, 2010Jun 7, 2011Panasonic CorporationVariable length coding method and variable length decoding methodUS7991052Dec 13, 2006Aug 2, 2011Zin Stai Pte. In, LlcVariable general purpose compression for video images (ZLN)US8004572Dec 4, 2006Aug 23, 2011Zin Stai Pte. In, LlcSystem for transmitting a video stream over a computer network to a remote receiverUS8023562Sep 5, 2008Sep 20, 2011Vanguard Software Solutions, Inc.Real-time video coding/decodingUS8068544Dec 21, 2007Nov 29, 2011Zin Stai Pte. In, LlcCompression with doppler enhancementUS8098946 *Nov 7, 2006Jan 17, 2012Samsung Electronics Co., Ltd.Apparatus and method for image encoding and decoding using predictionUS8116377Nov 6, 2009Feb 14, 2012Interval Licensing LlcLow cost video compression using fast, modified Z-coding of wavelet pyramidsUS8170095Dec 14, 2007May 1, 2012Zin Stai Pte. In, LlcFaster image processingUS8290034Oct 27, 2005Oct 16, 2012Zin Stai Pte. In, LlcVideo transmission and display including bit-wise sub-sampling video compressionUS8416847Jun 18, 2007Apr 9, 2013Zin Stai Pte. In, LlcSeparate plane compression using plurality of compression methods including ZLN and ZLD methodsUS8526488Feb 9, 2011Sep 3, 2013Vanguard Software Solutions, Inc.Video sequence encoding system and algorithmsUS8537898Oct 11, 2011Sep 17, 2013Zin Stai Pte. In, LlcCompression with doppler enhancementUS8588295 *Mar 9, 2009Nov 19, 2013Mediatek Inc.Methods and electronic devices for quantization and de-quantizationUS8604947 *Apr 21, 2011Dec 10, 2013Panasonic CorporationVariable length coding method and variable length decoding methodUS8665960Dec 20, 2011Mar 4, 2014Vanguard Software Solutions, Inc.Real-time video coding/decodingUS8693551Nov 16, 2012Apr 8, 2014Vanguard Software Solutions, Inc.Optimal angular intra prediction for block-based video codingUS8706786 *Nov 24, 2010Apr 22, 2014Industrial Cooperative Foundation Chonbuk National UniversitySignal processing device and image processing deviceUS8891633Nov 14, 2013Nov 18, 2014Vanguard Video LlcVideo compression for high efficiency video coding using a reduced resolution imageUS8941514Nov 4, 2013Jan 27, 2015Panasonic Intellectual Property Corporation Of AmericaImage coding and decoding system using variable length coding and variable length decodingUS20100226429 *Mar 9, 2009Sep 9, 2010Mediatek Inc.Methods and electronic devices for quantization and de-quantizationUS20100322305 *May 24, 2010Dec 23, 2010Apple Inc.Arbitrary-resolution, extreme-quality video codecUS20110193728 *Apr 21, 2011Aug 11, 2011Shinya KadonoVariable length coding method and variable length decoding methodUS20120078990 *Nov 24, 2010Mar 29, 2012Industrial Cooperation Foundation Chonbuk National UniversitySignal processing device and image processing deviceUS20130279821 *Mar 15, 2013Oct 24, 2013Electronics And Telecommunications Research InstituteImage encoding method using binary partition treeCN101005625BNov 22, 2002Jun 2, 2010松下电器产业株式会社Variable length coding method and variable length decoding methodEP1405524A1 *Jun 13, 2002Apr 7, 2004QUALCOMM IncorporatedConfigurable pattern optimizerEP2405657A1 *Jun 13, 2002Jan 11, 2012Qualcomm IncorporatedConfigurable pattern optimizer* Cited by examinerClassifications U.S. Classification709/247, 375/E07.229, 375/E07.176, 375/240.03, 375/E07.211, 375/E07.074, 375/E07.107, 375/E07.03, 375/E07.056, 375/E07.14, 375/E07.003, 375/E07.144, 375/E07.162, 375/E07.214, 375/E07.181, 375/E07.142, 375/E07.166, 375/E07.177International ClassificationH04N21/4143, H04N7/26, H04N7/30, G06T9/00, H04N7/50Cooperative ClassificationH04N19/14, H04N19/61, H04N19/91, H04N19/13, H04N19/63, H04N19/176, H04N19/129, H04N19/126, H04N19/18, H04N19/172, H04N19/53, H04N19/70, H04N19/124, H04N19/186, H04N19/619, H04N21/4143European ClassificationH04N21/4143, H04N7/26H50, H04N7/26A4Q2, H04N7/50E4, H04N7/26A4S, H04N7/26H30C1S, H04N7/50, H04N7/26M2H, H04N7/26H30M, H04N7/26A8P, H04N7/26A4V, H04N7/26A6C8, H04N7/26A8B, H04N7/26A8C, H04N7/26A6C2Legal EventsDateCodeEventDescriptionNov 9, 2010FPExpired due to failure to pay maintenance feeEffective date: 20100922Sep 22, 2010LAPSLapse for failure to pay maintenance feesApr 26, 2010REMIMaintenance fee reminder mailedMar 17, 2006FPAYFee paymentYear of fee payment: 8May 31, 2002SULPSurcharge for late paymentMay 31, 2002FPAYFee paymentYear of fee payment: 4Apr 9, 2002REMIMaintenance fee reminder mailedSep 29, 1995ASAssignmentOwner name: INTEL CORPORATION, CALIFORNIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AGARWAL, ROHIT;REEL/FRAME:007705/0542Effective date: 19950928RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services