Source: http://www.google.com/patents/US5721822?ie=ISO-8859-1
Timestamp: 2015-03-02 05:32:45
Document Index: 124325593

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

Patent US5721822 - Computer implemented process - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inAdvanced Patent SearchPatentsVideo signals are run-length encoded using a scan pattern and encoded video signals are run-length decoded using the scan pattern, where the scan pattern is explicitly encoded into the encoded bitstream. In a preferred embodiment, the scan pattern is generated by applying a constrained sorting rule to...http://www.google.com/patents/US5721822?utm_source=gb-gplus-sharePatent US5721822 - Computer implemented processAdvanced Patent SearchPublication numberUS5721822 APublication typeGrantApplication numberUS 08/537,246Publication dateFeb 24, 1998Filing dateSep 29, 1995Priority dateJul 21, 1995Fee statusPaidPublication number08537246, 537246, US 5721822 A, US 5721822A, US-A-5721822, US5721822 A, US5721822AInventorsRohit AgarwalOriginal AssigneeIntel CorporationExport CitationBiBTeX, EndNote, RefManPatent Citations (2), Referenced by (19), Classifications (53), Legal Events (4) External Links: USPTO, USPTO Assignment, EspacenetComputer implemented process
US 5721822 AAbstract
Video signals are run-length encoded using a scan pattern and encoded video signals are run-length decoded using the scan pattern, where the scan pattern is explicitly encoded into the encoded bitstream. In a preferred embodiment, the scan pattern is generated by applying a constrained sorting rule to energy measures corresponding to the video signals to be encoded. The scan pattern used for encoding can be changed as often as needed where each new scan pattern is explicitly encoded into the bitstream for use in decoding.
1. A computer-implemented process for processing video signals, comprising the steps of:(a) generating energy measures for coefficients of a plurality of blocks of video signals; and (b) applying a constrained sorting rule to the energy measures to generate a scan pattern for run-length encoding. 2. The process of claim 1, further comprising the step of:(c) decoding a block of encoded video signals of an encoded bitstream using run-length decoding based on the scan pattern to generate decoded video signals. 3. The process of claim 2, wherein step (c) comprises the step of decoding the encoded bitstream to determine the scan pattern, wherein the scan pattern is explicitly encoded in the encoded bitstream.
4. The process of claim 2, wherein step (c) comprises the step of run-length decoding the block of encoded video signals using the scan pattern to generate quantized coefficients, wherein the quantized coefficients correspond to one of pixels and pixel differences.
5. The process of claim 1, further comprising the step of:(c) encoding a block of video signals using run-length encoding based on the scan pattern to generate an encoded bitstream. 6. The process of claim 5, wherein step (c) comprises the step of explicitly encoding the scan pattern into the encoded bitstream.
7. The process of claim 5, wherein step (c) comprises the step of run-length encoding quantized coefficients using the scan pattern, wherein the quantized coefficients correspond to one of pixels and pixel differences.
8. The process of claim 1, wherein the energy measures are sums of absolute values of the coefficients.
9. The process of claim 1, wherein step (b) comprises the step of generating the scan pattern according to the relative magnitudes of the energy measures, except, if three or more of the energy measures are within a specified threshold value of each other, then ordering the corresponding three or more coefficients within the scan pattern to minimize distances between subsequent scan points.
10. The process of claim 9, further comprising the step of:(c) encoding a block of video signals using run-length encoding based on the scan pattern to generate an encoded bitstream, wherein: the energy measures are sums of absolute values of the coefficients; the block of step (c) is one of the plurality of blocks of step (a); and step (c) comprises the steps of:(1) run-length encoding quantized coefficients using the scan pattern, the quantized coefficients corresponding to one of pixels and pixel differences; and (2) explicitly encoding the scan pattern into the encoded bitstream. 11. The process of claim 9, further comprising the step of:(c) decoding a block of encoded video signals of an encoded bitstream using run-length decoding based on the scan pattern to generate decoded video signals, wherein: the energy measures are sums of absolute values of the coefficients; the block of step (c) corresponds to one of the plurality of blocks of step (a); and step (c) comprises the steps of:(1) decoding the encoded bitstream to determine the scan pattern, wherein the scan pattern is explicitly encoded in the encoded bitstream; and (2) run-length decoding the block of encoded video signals using the scan pattern to generate quantized coefficients, the quantized coefficients corresponding to one of pixels and pixel differences. 12. An apparatus for processing video signals, comprising:means for generating energy measures for coefficients of a plurality of blocks of video signals; and (b) means for applying a constrained sorting rule to the energy measures to generate a scan pattern for run-length encoding. 13. The apparatus of claim 12, further comprising:(c) means for decoding a block of encoded video signals of an encoded bitstream using run-length decoding based on the scan pattern to generate decoded video signals. 14. The apparatus of claim 13, wherein means (c) decodes the encoded bitstream to determine the scan pattern, wherein the scan pattern is explicitly encoded in the encoded bitstream.
15. The apparatus of claim 13, wherein means (c) run-length decodes the block of encoded video signals using the scan pattern to generate quantized coefficients, wherein the quantized coefficients correspond to one of pixels and pixel differences.
16. The apparatus of claim 12, further comprising:(c) means for encoding a block of video signals using run-length encoding based on the scan pattern to generate an encoded bitstream. 17. The apparatus of claim 16, wherein means (c) explicitly encodes the scan pattern into the encoded bitstream.
18. The apparatus of claim 16, wherein means (c) run-length encodes quantized coefficients using the scan pattern, wherein the quantized coefficients correspond to one of pixels and pixel differences.
19. The apparatus of claim 12, wherein the energy measures are sums of absolute values of the coefficients.
20. The apparatus of claim 12, wherein means (b) generates the scan pattern according to the relative magnitudes of the energy measures, except, if three or more of the energy measures are within a specified threshold value of each other, then ordering the corresponding three or more coefficients within the scan pattern to minimize distances between subsequent scan points.
21. The apparatus of claim 20, further comprising:(c) means for encoding a block of video signals using run-length encoding based on the scan pattern to generate an encoded bitstream, wherein: the energy measures are sums of absolute values of the coefficients; the block of means (c) is one of the plurality of blocks of means (a); and means (c):(1) run-length encodes quantized coefficients using the scan pattern, the quantized coefficients corresponding to one of pixels and pixel differences; and (2) explicitly encodes the scan pattern into the encoded bitstream. 22. The apparatus of claim 20, further comprising:(c) means for decoding a block of encoded video signals of an encoded bitstream using run-length decoding based on the scan pattern to generate decoded video signals, wherein: the energy measures are sums of absolute values of the coefficients; the block of means (c) corresponds to one of the plurality of blocks of means (a); and means (c):(1) decodes the encoded bitstream to determine the scan pattern, wherein the scan pattern is explicitly encoded in the encoded bitstream; and (2) run-length decodes the block of encoded video signals using the scan pattern to generate quantized coefficients, the quantized coefficients corresponding to one of pixels and pixel differences. 23. A storage medium encoded with machine-readable computer program code for processing video signals, comprising:(a) means for causing a computer to generate energy measures for coefficients of a plurality of blocks of video signals; and (b) means for causing the computer to apply a constrained sorting rule to the energy measures to generate a scan pattern for run-length encoding. 24. The storage medium of claim 23, further comprising:(c) means for causing the computer to decode a block of encoded video signals of an encoded bitstream using run-length decoding based on the scan pattern to generate decoded video signals. 25. The storage medium of claim 24, wherein means (c) causes the computer to decode the encoded bitstream to determine the scan pattern, wherein the scan pattern is explicitly encoded in the encoded bitstream.
26. The storage medium of claim 24, wherein means (c) causes the computer to run-length decode the block of encoded video signals using the scan pattern to generate quantized coefficients, wherein the quantized coefficients correspond to one of pixels and pixel differences.
27. The storage medium of claim 23, further comprising:(c) means for causing the computer to encode a block of video signals using run-length encoding based on the scan pattern to generate an encoded bitstream. 28. The storage medium of claim 27, wherein means (c) causes the computer to explicitly encode the scan pattern into the encoded bitstream.
29. The storage medium of claim 27, wherein means (c) causes the computer to run-length encode quantized coefficients using the scan pattern, wherein the quantized coefficients correspond to one of pixels and pixel differences.
30. The storage medium of claim 23, wherein the energy measures are sums of absolute values of the coefficients.
31. The storage medium of claim 23, wherein means (b) causes the computer to generate the scan pattern according to the relative magnitudes of the energy measures, except, if three or more of the energy measures are within a specified threshold value of each other, then ordering the corresponding three or more coefficients within the scan pattern to minimize distances between subsequent scan points.
32. The storage medium of claim 31, further comprising:(c) means for causing the computer to encode a block of video signals using run-length encoding based on the scan pattern to generate an encoded bitstream, wherein: the energy measures are sums of absolute values of the coefficients; the block of means (c) is one of the plurality of blocks of means (a); and means (c) causes the computer to:(1) run-length encode quantized coefficients using the scan pattern, the quantized coefficients corresponding to one of pixels and pixel differences; and (2) explicitly encode the scan pattern into the encoded bitstream. 33. The storage medium of claim 31, further comprising:(c) means for causing the computer to decode a block of encoded video signals of an encoded bitstream using run-length decoding based on the scan pattern to generate decoded video signals, wherein: the energy measures are sums of absolute values of the coefficients; the block of means (c) corresponds to one of the plurality of blocks of means (a); and means (c) causes the computer to:(1) decode the encoded bitstream to determine the scan pattern, wherein the scan pattern is explicitly encoded in the encoded bitstream; and (2) run-length decode the block of encoded video signals using the scan pattern to generate quantized coefficients, the quantized coefficients corresponding to one of pixels and pixel differences. 34. A computer-implemented process for encoding video signals, comprising the steps of:(a) encoding a first set of video signals of a video sequence using run-length encoding based on a first scan pattern to generate a first set of encoded video signals of an encoded bitstream; and (b) explicitly encoding the first scan pattern into the encoded bitstream. 35. The process of claim 34, further comprising the step of:(c) encoding a second set of video signals of the video sequence using run-length encoding based on a second scan pattern, different from the first scan pattern, to generate a second set of encoded video signals of the encoded bitstream, wherein: step (c) comprises the step of explicitly encoding the second scan pattern into the encoded bitstream; and the first set of video signals corresponds to a first band of a video frame of the video sequence and the second set of video signals corresponds to a second band of the video frame. 36. The process of claim 34, wherein step (a) comprises the step of run-length encoding quantized coefficients using the first scan pattern, wherein the quantized coefficients correspond to one of pixels and pixel differences.
37. The process of claim 34, wherein:the first set of video signals correspond to a plurality of blocks of video signals; and step (a) comprises the steps of:(1) generating energy measures for coefficients of the blocks; and (2) applying a constrained sorting rule to the energy measures to generate the first scan pattern. 38. The process of claim 37, wherein step (a)(2) comprises the step of generating the first scan pattern according to the relative magnitudes of the energy measures, except, if three or more of the energy measures are within a specified threshold value of each other, then ordering the corresponding three or more coefficients within the first scan pattern to minimize distances between subsequent scan points.
39. The process of claim 38, further comprising the step of:(c) encoding a second set of video signals of the video sequence using run-length encoding based on a second scan pattern, different from the first scan pattern, to generate a second set of encoded video signals of the encoded bitstream, wherein: step (c) comprises the step of explicitly encoding the second scan pattern into the encoded bitstream; the first set of video signals corresponds to a first band of a video frame of the video sequence and the second set of video signals corresponds to a second band of the video frame; the energy measures are sums of absolute values of the coefficients; and step (a) comprises the steps of:(1) generating the first scan pattern to optimize the run-length encoding of the first set of video signals; and (2) run-length encoding quantized coefficients using the first scan pattern, the quantized coefficients corresponding to one of pixels and pixel differences. 40. An apparatus for encoding video signals, comprising:(a) means for encoding a first set of video signals of a video sequence using run-length encoding based on a first scan pattern to generate a first set of encoded video signals of an encoded bitstream; and (b) means for explicitly encoding the first scan pattern into the encoded bitstream. 41. The apparatus of claim 40, further comprising:(c) means for encoding a second set of video signals of the video sequence using run-length encoding based on a second scan pattern, different from the first scan pattern, to generate a second set of encoded video signals of the encoded bitstream, wherein: means (c) explicitly encodes the second scan pattern into the encoded bitstream; and the first set of video signals corresponds to a first band of a video frame of the video sequence and the second set of video signals corresponds to a second band of the video frame. 42. The apparatus of claim 40, wherein means (a) run-length encodes quantized coefficients using the first scan pattern, wherein the quantized coefficients correspond to one of pixels and pixel differences.
43. The apparatus of claim 40, wherein:the first set of video signals correspond to a plurality of blocks of video signals; and means (a):(1) generates energy measures for coefficients of the blocks; and (2) applies a constrained sorting rule to the energy measures to generate the first scan pattern. 44. The apparatus of claim 43, wherein means (a) generates the first scan pattern according to the relative magnitudes of the energy measures, except, if three or more of the energy measures are within a specified threshold value of each other, then ordering the corresponding three or more coefficients within the first scan pattern to minimize distances between subsequent scan points.
45. The apparatus of claim 44, further comprising:(c) means for encoding a second set of video signals of the video sequence using run-length encoding based on a second scan pattern, different from the first scan pattern, to generate a second set of encoded video signals of the encoded bitstream, wherein: means (c) explicitly encodes the second scan pattern into the encoded bitstream; the first set of video signals corresponds to a first band of a video frame of the video sequence and the second set of video signals corresponds to a second band of the video frame; the energy measures are sums of absolute values of the coefficients; and means (a):(1) generates the first scan pattern to optimize the run-length encoding of the first set of video signals; and (2) run-length encodes quantized coefficients using the first scan pattern, the quantized coefficients corresponding to one of pixels and pixel differences. 46. A storage medium encoded with machine-readable computer program code for encoding video signals, comprising:(a) means for causing a computer to encode a first set of video signals of a video sequence using run-length encoding based on a first scan pattern to generate a first set of encoded video signals of an encoded bitstream; and (b) means for causing the computer to explicitly encode the first scan pattern into the encoded bitstream. 47. The storage medium of claim 46, further comprising:(c) means for causing the computer to encode a second set of video signals of the video sequence using run-length encoding based on a second scan pattern, different from the first scan pattern, to generate a second set of encoded video signals of the encoded bitstream, wherein: means (c) causes the computer to explicitly encode the second scan pattern into the encoded bitstream; and the first set of video signals corresponds to a first band of a video frame of the video sequence and the second set of video signals corresponds to a second band of the video frame. 48. The storage medium of claim 46, wherein means (a) causes the computer to run-length encode quantized coefficients using the first scan pattern, wherein the quantized coefficients correspond to one of pixels and pixel differences.
49. The storage medium of claim 46, wherein:the first set of video signals correspond to a plurality of blocks of video signals; and means (a) causes the computer to:(1) generate energy measures for coefficients of the blocks; and (2) apply a constrained sorting rule to the energy measures to generate the first scan pattern. 50. The storage medium of claim 49, wherein means (a) causes the computer to generate the first scan pattern according to the relative magnitudes of the energy measures, except, if three or more of the energy measures are within a specified threshold value of each other, then ordering the corresponding three or more coefficients within the first scan pattern to minimize distances between subsequent scan points.
51. The storage medium of claim 50, further comprising:(c) means for causing the computer to encode a second set of video signals of the video sequence using run-length encoding based on a second scan pattern, different from the first scan pattern, to generate a second set of encoded video signals of the encoded bitstream, wherein: means (c) causes the computer to explicitly encode the second scan pattern into the encoded bitstream; the first set of video signals corresponds to a first band of a video frame of the video sequence and the second set of video signals corresponds to a second band of the video frame; the energy measures are sums of absolute values of the coefficients; and means (a) causes the computer to:(1) generate the first scan pattern to optimize the run-length encoding of the first set of video signals; and (2) run-length encode quantized coefficients using the first scan pattern, the quantized coefficients corresponding to one of pixels and pixel differences. 52. A computer-implemented process for decoding encoded video signals, comprising the steps of:(a) decoding an encoded bitstream corresponding to a video sequence to determine a first scan pattern, wherein the first scan pattern is explicitly encoded in the encoded bitstream; and (b) decoding a first set of encoded video signals of the encoded bitstream using run-length decoding based on the first scan pattern to generate a first set of decoded video signals of the video sequence. 53. The process of claim 52, further comprising the step of:(c) decoding the encoded bitstream to determine a second scan pattern different from the first scan pattern; and (d) decoding a second set of encoded video signals of the encoded bitstream using run-length decoding based on the second scan pattern to generate a second set of decoded video signals of the video sequence, wherein the first set of encoded video signals corresponds to a first band of a video frame of the video sequence and the second set of video signals corresponds to a second band of the video frame. 54. The process of claim 52, wherein step (b) comprises the step of run-length decoding the first set of encoded video signals using the first scan pattern to generate quantized coefficients, wherein the quantized coefficients correspond to one of pixels and pixel differences.
55. The process of claim 52, wherein:the first set of encoded video signals correspond to a plurality of blocks of video signals; and the first scan pattern was generated by:(1) generating energy measures for coefficients of the blocks; and (2) applying a constrained sorting rule to the energy measures to generate the first scan pattern. 56. The process of claim 55, wherein the first scan pattern has been generated according to the relative magnitudes of the energy measures, except, if three or more of the energy measures were within a specified threshold value of each other, then the corresponding three or more coefficients have been ordered within the first scan pattern to minimize distances between subsequent scan points.
57. The process of claim 56, further comprising the step of:(c) decoding the encoded bitstream to determine a second scan pattern different from the first scan pattern; and (d) decoding a second set of encoded video signals of the encoded bitstream using run-length decoding based on the second scan pattern to generate a second set of decoded video signals of the video sequence, wherein: the first set of encoded video signals corresponds to a first band of a video frame of the video sequence and the second set of video signals corresponds to a second band of the video frame; step (b) comprises the step of run-length decoding the first set of encoded video signals using the first scan pattern to generate quantized coefficients, the quantized coefficients corresponding to one of pixels and pixel differences; the first scan pattern has been generated to optimize the run-length encoding of the first set of encoded video signals; and the energy measures are sums of absolute values of the coefficients. 58. An apparatus for decoding encoded video signals, comprising:(a) means for decoding an encoded bitstream corresponding to a video sequence to determine a first scan pattern, wherein the first scan pattern is explicitly encoded in the encoded bitstream; and (b) means for decoding a first set of encoded video signals of the encoded bitstream using run-length decoding based on the first scan pattern to generate a first set of decoded video signals of the video sequence. 59. The apparatus of claim 58, further comprising:(c) means for decoding the encoded bitstream to determine a second scan pattern different from the first scan pattern; and (d) means for decoding a second set of encoded video signals of the encoded bitstream using run-length decoding based on the second scan pattern to generate a second set of decoded video signals of the video sequence, wherein the first set of encoded video signals corresponds to a first band of a video frame of the video sequence and the second set of video signals corresponds to a second band of the video frame. 60. The apparatus of claim 58, wherein means (b) run-length decodes the first set of encoded video signals using the first scan pattern to generate quantized coefficients, wherein the quantized coefficients correspond to one of pixels and pixel differences.
61. The apparatus of claim 58, wherein:the first set of encoded video signals correspond to a plurality of blocks of video signals; and the first scan pattern was generated by:(1) generating energy measures for coefficients of the blocks; and (2) applying a constrained sorting rule to the energy measures to generate the first scan pattern. 62. The apparatus of claim 61, wherein the first scan pattern has been generated according to the relative magnitudes of the energy measures, except, if three or more of the energy measures were within a specified threshold value of each other, then the corresponding three or more coefficients have been ordered within the first scan pattern to minimize distances between subsequent scan points.
63. The apparatus of claim 62, further comprising:(c) means for decoding the encoded bitstream to determine a second scan pattern different from the first scan pattern; and (d) means for decoding a second set of encoded video signals of the encoded bitstream using run-length decoding based on the second scan pattern to generate a second set of decoded video signals of the video sequence, wherein: the first set of encoded video signals corresponds to a first band of a video frame of the video sequence and the second set of video signals corresponds to a second band of the video frame; means (b) run-length decodes the first set of encoded video signals using the first scan pattern to generate quantized coefficients, the quantized coefficients corresponding to one of pixels and pixel differences; the first scan pattern has been generated to optimize the run-length encoding of the first set of encoded video signals; and the energy measures are sums of absolute values of the coefficients. 64. A storage medium encoded with machine-readable computer program code for decoding encoded video signals, comprising:(a) means for causing a computer to decode an encoded bitstream corresponding to a video sequence to determine a first scan pattern, wherein the first scan pattern is explicitly encoded in the encoded bitstream; and (b) means for causing the computer to decode a first set of encoded video signals of the encoded bitstream using run-length decoding based on the first scan pattern to generate a first set of decoded video signals of the video sequence. 65. The storage medium of claim 64, further comprising:(c) means for causing the computer to decode the encoded bitstream to determine a second scan pattern different from the first scan pattern; and (d) means for causing the computer to decode a second set of encoded video signals of the encoded bitstream using run-length decoding based on the second scan pattern to generate a second set of decoded video signals of the video sequence, wherein the first set of encoded video signals corresponds to a first band of a video frame of the video sequence and the second set of video signals corresponds to a second band of the video frame. 66. The storage medium of claim 64, wherein means (b) causes the computer to run-length decode the first set of encoded video signals using the first scan pattern to generate quantized coefficients, wherein the quantized coefficients correspond to one of pixels and pixel differences.
67. The storage medium of claim 64, wherein:the first set of encoded video signals correspond to a plurality of blocks of video signals; and the first scan pattern was generated by:(1) generating energy measures for coefficients of the blocks; and (2) applying a constrained sorting rule to the energy measures to generate the first scan pattern. 68. The storage medium of claim 67, wherein the first scan pattern has been generated according to the relative magnitudes of the energy measures, except, if three or more of the energy measures were within a specified threshold value of each other, then the corresponding three or more coefficients have been ordered within the first scan pattern to minimize distances between subsequent scan points.
69. The storage medium of claim 68, further comprising:(c) means for causing the computer to decode the encoded bitstream to determine a second scan pattern different from the first scan pattern; and (d) means for causing the computer to decode a second set of encoded video signals of the encoded bitstream using run-length decoding based on the second scan pattern to generate a second set of decoded video signals of the video sequence, wherein: the first set of encoded video signals corresponds to a first band of a video frame of the video sequence and the second set of video signals corresponds to a second band of the video frame; means (b) causes the computer to run-length decode the first set of encoded video signals using the first scan pattern to generate quantized coefficients, the quantized coefficients corresponding to one of pixels and pixel differences; the first scan pattern has been generated to optimize the run-length encoding of the first set of encoded video signals; and the energy measures are sums of absolute values of the coefficients. Description
The present invention comprises a computer-implemented process, apparatus, and storage medium encoded with machine-readable computer program code for processing video signals. According to a preferred embodiment, energy measures are generated for coefficients of a plurality of blocks of video signals. A constrained sorting rule is applied to the energy measures to generate a scan pattern for run-length encoding.
The present invention also 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 video signals of a video sequence is encoded using run-length encoding based on a first scan pattern to generate a first set of encoded video signals of an encoded bitstream, where the first scan pattern is explicitly encoded into the encoded bitstream.
In addition, the present invention 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, an encoded bitstream corresponding to a video sequence is decoded to determine a first scan pattern, wherein the first scan pattern is explicitly encoded in the encoded bitstream. A first set of encoded video signals of the encoded bitstream is decoded using run-length decoding based on the first scan pattern to generate a first set of decoded video signals of the video sequence.
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 in the 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______________________________________
QDelta=-8*log2((Gradi+2*MeanGrad)/(2*Gradi+MeanGrad))
if(Qlevel&lt;8)Qdelta=0
The preferred processing of motion estimator 602 is explained in further detail in the context of the example shown in FIGS. 7-12. In this example, the block size for motion estimation is a (16�16) macroblock and the search range is �15 pixels. FIGS. 7-9 show representations of the pixels in the current (16�16) macroblock of the current frame in the spatial domain. Each small block in FIGS. 7-9 represents a different pixel in the current macroblock. FIGS. 10-12 show representations of the full-pixel motion vectors within the search range in the velocity domain. Each small block in FIGS. 10-12 represents a different motion vector in the velocity domain. Each comparison by motion estimator 602 is preferably based on a SAD measure.
______________________________________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;  } }}______________________________________
For (8�8) slant and (8�8) DCT transforms:
______________________________________0      1       5       6    14    15    27   282      4       7       13   16    26    29   423      8       12      17   25    30    41   439      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   63______________________________________
For the 8�8 Slaar:
______________________________________1      2       6       7    33    34    38   393      5       8       13   35    37    40   454      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   64______________________________________
For (8�8) Haar transform:
______________________________________0      2       6       7    16    17    18   191      3       10      11   28    29    30   314      8       24      25   40    41    42   435      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   60______________________________________
For all (1�8) Haar transforms:
______________________________________0      1       2       3    4     5     6    78      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   63______________________________________
For 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   63______________________________________
For (8�8) blocks that are not transformed:
For (4�4) slant and (4�4) DCT transforms:
______________________________________0            1          5         62            4          7         123            8          11        139            10         14        15______________________________________
For the 4�4 Slaar:
______________________________________1            2          9         103            4          11        125            6          13        147            8          15        16______________________________________
For (4�4) Haar transform:
______________________________________0            1          8         92            3          11        104            5          12        137            6          14        15______________________________________
For all (4�1) transforms:
______________________________________0            4          8         121            5          9         132            6          10        143            7          11        15______________________________________
For all (1�4) transforms:
______________________________________0            1          2         34            5          6         78            9          10        1112           13         14        15______________________________________
For (4�4) blocks that are not transformed:
Stage 1: Stamp Time
The following parameters are initialized at stamp time:
______________________________________switch( Context-&gt;FrameType )case PIC-- TYPE-- I:case PIC-- TYPE-- K:{ // for intra or key framesByteDelta = MaxBuffer/2 - GlobalByteBankFullness;if( ByteDelta &gt; 0 ){ // lower than half the buffer  BytesForThisFrame = BytesPerI+(ByteDelta*ReactPos)/256;}else{ // exceeded half the buffer  BytesForThisFrame = BytesPerI+(ByteDelta*ReactNeg)/256;} // endifGlobalByteBankFullness -= BytesPerI;} // end case I or K framebreak;case PIC-- TYPE-- D:{ // for delta framesByteDelta = 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 framesByteDelta = 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 arelessthan 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 -= 1BytesGenerated = 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 += 1BytesGenerated = Trial encode( GlobalQuant )Delta += 1;}}// Perform final encode using selected global Q level.Final Encode( GlobalQuant )______________________________________
Referring now to FIG. 14, there is shown a flow diagram of the processing run-length encoder 610 of FIG. 6, according to a preferred embodiment of the present invention. Encoder 610 adaptively generates a scan pattern for each band of each frame. For each coefficient in the block of quantized coefficients, the sum of absolute values of the quantized coefficients is generated for all of the blocks in the current band (step 1402 of FIG. 14). For example, for the (0,0) coefficient, the sum of the absolute values of the quantized (0,0) coefficients for all of the blocks of the current band is generated. Step 1402 may be represented as follows:
______________________________________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.  }______________________________________
The range of motion estimation and the maximum number of search points used can be constrained. For example, a 25-point subsampled log search yielding a search range of �7 may be used. In addition, half-pixel motion estimation can be disabled. On B frames, the search range can be limited to the same total number of search points as in D frames, where B-frame motion estimation is performed using two reference frames.
______________________________________TB (bits 0-3)       Represents the number of bits of the k bits       that are decoded by the current table       entry (i.e., the number of bits in the k-bit       signal that correspond to the complete VLE       signals). This value is used to update the       bitstream pointer.NC (bits 4-5)       Represents the number of VLE codes that are       decoded by the current table entry       (i.e., the number of the complete VLE signals       in the k-bit signal).PS (bits 6-7)       Indicates the position of a special VLE code       (e.g., an end-of-block (EOB) code), if one       is present in the current table entry.C1 (bits 8-15)       Represents the decoded value for the first       complete VLE code in the k bits, if a first       complete VLE code is present.C2 (bits 16-23)       Represents the decoded value for the second       complete VLE code in the k bits, if a second       complete VLE code is present.C3 (bits 24-31)       Represents the decoded value for the third       complete VLE code in the k bits, if a third       complete VLE code is present.______________________________________
Those skilled in the art will understand that the present invention provides fast decoding of VLE codes in an encoded bitstream by decoding the most frequently occurring codes (i.e., the shorter codes) using efficient table lookups that decode one, two, or three VLE codes with every table entry. The least frequently occurring codes, (i.e., the longer codes) are decoded using special processing that is implemented relatively infrequently.
______________________________________                                      MotionTarget                                VectorPlat-   Scala-  # of Y                      Y-Band  UV-Band Resolu-Mode form    bility  Bands Transforms                              Transforms                                      tion______________________________________0    High    On      4     S18�8,                              S14�4                                      Half                      S11�8,    Pixel                      S18�1,                      None1    Medium  On      4     Hr8�8,                              Hr4�4                                      Half                      Hr1�8,    Pixel                      Hr8�1,                      None2    Low     On      4     Hr8�8                              Hr4�4                                      Integer                      None,           Pixel                      None,                      None3    High    Off     1     S18�8                              S14�4                                      Half                                      Pixel4    Medium  Off     1     Hr8�8                              Hr4�4                                      Half                                      Pixel5    Low     Off     1     Hr8�8                              Hr4�4                                      Integer                                      Pixel______________________________________
typical bitstream would look like the following:
A picture is one image (i.e., frame) of the video stream. The bitstream supports pictures in different formats, for example, YVU9 or YVU12 format. A picture consists of three component planes (Y, U, and V). Each component plane may be subdivided into one or more bands using the global wavelet decomposition. Each picture contains a description of how the Y plane and U, V planes are subdivided. The subdivision for Y may be different from the subdivision for U, V. The planes are stored in the order: Y, V, U, followed optionally by a transparency plane. Within each plane, the bands are stored sequentially starting from band 0. There are no plane level structures in the bitstream, e.g., there is no plane header. All plane information is stored in the picture header.
The Slant8�1transform is the Slant8 transform applied to each of the eight rows in an 8�8 block and the Slant1�8 transform is the Slant8 transform applied to each of the eight columns in an 8�8 block. The forward Slant8 transform is defined by the following C code:
__________________________________________________________________________#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) - NUM*s2) + DEN/2 )/DEN;\s1 = t;r1 = *src++;r2 = *src++;r3 = *src++;r4 = *src++;r5 = *src++;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;s1); \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); r4                          // 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;}__________________________________________________________________________
______________________________________#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++;bfly(r1,r4); bfly(r2,r3);               // FSlantPart1freflect(r4,r3); bfly(r1,r2);               // FSlantPart2*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 = tr1 = *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;}______________________________________
______________________________________#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 freflect(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;}______________________________________
ad=bc.tm (7)
______________________________________#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++;bfly(r1,r2); bfly(r3,r4);   // FSlaarPart1bfly(r1,r3); bfly(r2,r4);   // FSlaarPart2*Dst++ = r1;*Dst++ = r3;*Dst++ = r2;*Dst++ = r4;}______________________________________
______________________________________#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); // ISlaarPart 1  bfly(r1,r2); bfly(r3,r4); // ISlaarPart 2  *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;5;r3 = *Src++;r7 = *Src++;r2 = *Src++;r4 = *Src++;r6 = *Src++;r8 = *Src++;bfly2(r1,r5);             // HaarInv1;bfly2(r1,r3); bfly2(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!  }}______________________________________
______________________________________#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(i,j) = ( c(i,j)) &gt;&gt; ScalingMatrix i! j!  }}______________________________________
______________________________________(1) Scaling:for( i=0; i&lt;4; i++ )   for( j=0; j&lt;4; j++ )   {     c(i,j) = ( c(i,j)) &gt;&gt; ScalingMatrix i! j!}}______________________________________
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS5477272 *Jul 22, 1993Dec 19, 1995Gte Laboratories IncorporatedVariable-block size multi-resolution motion estimation scheme for pyramid codingUS5537493 *Jun 29, 1994Jul 16, 1996Sony CorporationApparatus for compressing image data employing entropy encoding of data scanned from a plurality of spatial frequency bands* Cited by examinerReferenced byCiting PatentFiling datePublication dateApplicantTitleUS6055017 *Mar 19, 1997Apr 25, 2000Matsushita Electric Industrial Co., Ltd.Adaptive scanning technique for efficient wavelet video codingUS7321674 *Jan 30, 2003Jan 22, 2008Agfa Healthcare, N.V.Method of normalising a digital signal representation of an imageUS7460722Jan 13, 2003Dec 2, 2008Canon Kabushiki KaishaEncoding of digital data with determination of sample pathUS7634526 *Aug 12, 2004Dec 15, 2009Vixs Systems, Inc.Selectable quantization in an encoderUS8208563 *Feb 27, 2009Jun 26, 2012Qualcomm IncorporatedBoundary artifact correction within video unitsUS8326075Dec 5, 2008Dec 4, 2012Google Inc.System and method for video encoding using adaptive loop filterUS8571104Jun 4, 2008Oct 29, 2013Qualcomm, IncorporatedAdaptive coefficient scanning in video codingUS8774281 *Sep 20, 2012Jul 8, 2014Sony CorporationImplementation of a DV video decoder with a VLIW processor and a variable length decoding unitUS8780971Apr 7, 2011Jul 15, 2014Google, Inc.System and method of encoding using selectable loop filtersUS8780996Apr 7, 2011Jul 15, 2014Google, Inc.System and method for encoding and decoding video dataUS8781004Apr 7, 2011Jul 15, 2014Google Inc.System and method for encoding video using variable loop filterUS8885706Sep 16, 2011Nov 11, 2014Google Inc.Apparatus and methodology for a video codec system with noise reduction capabilityUS8897591Nov 29, 2012Nov 25, 2014Google Inc.Method and apparatus for video coding using adaptive loop filterUS20090268823 *Feb 27, 2009Oct 29, 2009Qualcomm IncorporatedBoundary artifact correction within video unitsUS20110249726 *Apr 1, 2011Oct 13, 2011Sony CorporationQp adaptive coefficients scanning and applicationUS20130077695 *Sep 20, 2012Mar 28, 2013Sony Electronics Inc.Implementation of a dv video decoder with a vliw processor and a variable lenght decoding unitEP1304885A2 *Sep 5, 2002Apr 23, 2003Siemens AktiengesellschaftMethod and computer program product for the encoding and decoding of video signalWO2003026307A2 *Sep 11, 2002Mar 27, 2003Siemens AgMethod for producing video coding and programme-productWO2003026308A2 *Sep 11, 2002Mar 27, 2003Siemens AgMethod and device for enhancing coding/decoding of video signals* Cited by examinerClassifications U.S. Classification710/68, 375/E07.229, 375/E07.142, 375/E07.144, 375/E07.176, 375/E07.074, 375/E07.056, 375/E07.211, 375/E07.003, 375/E07.14, 375/E07.181, 708/203, 370/521, 375/E07.001, 375/E07.162, 375/E07.139, 375/E07.03, 375/E07.177, 375/E07.166International ClassificationH04N7/24, H04N7/26, H04N7/30, G06T9/00, H04N7/50Cooperative ClassificationH04N19/126, H04N19/124, H04N19/186, H04N19/619, H04N19/172, H04N19/18, H04N19/129, H04N19/14, H04N19/176, H04N19/63, H04N19/13, H04N19/91, H04N19/70, H04N19/61, H04N7/24European ClassificationH04N7/26A4S, H04N7/50, H04N7/26H30M, H04N7/26H50, H04N7/26H30C1S, H04N7/24, H04N7/26A4Q2, H04N7/26A4Q, H04N7/26A8P, H04N7/26A8C, H04N7/26A4V, H04N7/26A6C2, H04N7/26A6C8, H04N7/26A8BLegal EventsDateCodeEventDescriptionAug 19, 2009FPAYFee paymentYear of fee payment: 12Aug 22, 2005FPAYFee paymentYear of fee payment: 8Aug 10, 2001FPAYFee paymentYear of fee payment: 4Sep 29, 1995ASAssignmentOwner name: INTEL CORPORATION, CALIFORNIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AGARWAL, ROHIT;REEL/FRAME:007702/0951Effective date: 19950928RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services