Source: http://www.google.com/patents/US5646618?dq=5,072,412
Timestamp: 2017-08-17 05:08:57
Document Index: 780518963

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

Patent US5646618 - Decoding one or more variable-length encoded signals using a single table lookup - Google Patents
Fixed-length segments of a variable-length encoded (VLE) bitstream are used as indices into a lookup table. The current table entry is interpreted to determine how many complete VLE signals are in current bitstream segment. If the segment contains one or more complete VLE signals, then the corresponding...http://www.google.com/patents/US5646618?utm_source=gb-gplus-sharePatent US5646618 - Decoding one or more variable-length encoded signals using a single table lookup
Publication number US5646618 A
Application number US 08/558,258
Publication number 08558258, 558258, US 5646618 A, US 5646618A, US-A-5646618, US5646618 A, US5646618A
Inventors Thomas E. Walsh
Patent Citations (22), Non-Patent Citations (8), Referenced by (65), Classifications (50), Legal Events (4)
Decoding one or more variable-length encoded signals using a single table lookup
US 5646618 A
1. A computer-implemented process for decoding variable-length encoded (VLE) signals of an encoded bitstream, comprising the steps of:
(a) selecting a k-bit signal from the encoded bitstream;
(b) retrieving a table entry from a lookup table using the k-bit signal as an index into the lookup table;
(c) interpreting the table entry to determine how many complete VLE signals are to be decoded from the k-bit signal; and
(d) retrieving from the table entry at least two decoded signals, if the k-bit signal comprises at least two complete VLE signals to be decoded.
(e) retrieving from the table entry one decoded signal, if the k-bit signal comprises one complete VLE signal to be decoded; and
(f) performing special processing to decode the k-bit signal, if the k-bit signal comprises no complete VLE signals to be decoded, wherein steps (a)-(f) are repeated for additional k-bit signals in the encoded bitstream and further comprising the step of updating, prior to repeating steps (a)-(f) for a next k-bit signal, a bitstream pointer for use in step (a) based on how many bits were decoded by performing steps (a)-(f) for a previous k-bit signal.
3. The process of claim 1, wherein the table entry comprises:
a first value corresponding to how many bits in the k-bit signal correspond to the complete VLE signals;
a second value corresponding to how many complete VLE signals are in the k-bit signal;
a first decoded signal, if the second value indicates that the k-bit signal comprises at least one complete VLE signal; and
a second decoded signal, if the second value indicates that the k-bit signal comprises at least two complete VLE signals.
4. The process of claim 3, wherein the table entry further comprises:
a third value corresponding to a position of a special VLE signal in the k-bit signal; and
a third decoded signal, if the second value indicates that the k-bit signal comprises at least three complete VLE signals.
the table entry comprises a 32-bit value;
the first value comprises bits 0-3 of the table entry;
the second value comprises bits 4-5 of the table entry;
the third value comprises bits 6-7 of the table entry;
the first decoded signal comprises bits 8-15 of the table entry;
the second decoded signal comprises bits 16-23 of the table entry; and
the third decoded signal comprises bits 24-31 of the table entry.
7. The process of claim 1, wherein step (c) further comprises the steps of:
(1) interpreting the table entry to determine whether the k-bit signal comprises a special VLE signal; and
(2) decoding the special VLE signal, if the k-bit signal comprises the special VLE signal.
8. The process of claim 7, wherein step (c)(2) comprises the steps of:
(a) interpreting the table entry to determine a position of the special VLE signal, if the k-bit signal comprises the special VLE signal; and
(b) decoding the k-bit signal based on the position of the special VLE signal, if the k-bit signal comprises the special VLE signal.
the encoded bitstream comprises encoded video signals;
the table entry comprises a 32-bit value; the table entry comprises:
a first value corresponding to how many bits in the k-bit signal correspond to the complete VLE signals, the first value comprising bits 0-3 of the table entry;
a second value corresponding to how many complete VLE signals are in the k-bit signal, the second value comprising bits 4-5 of the table entry;
a third value corresponding to a position of a special VLE signal in the k-bit signal, the third value comprising bits 6-7 of the table entry and the special VLE signal comprising an end-of-block signal;
a first decoded signal, if the second value indicates that the k-bit signal comprises at least one complete VLE signal, the first decoded signal comprising bits 8-15 of the table entry;
a second decoded signal, if the second value indicates that the k-bit signal comprises at least two complete VLE signals, the second decoded signal comprising bits 16-23 of the table entry; and
a third decoded signal, if the second value indicates that the k-bit signal comprises at least three complete VLE signals, the third decoded signal comprising bits 24-31 of the table entry;
(1) interpreting the table entry to determine whether the k-bit signal comprises the special VLE signal;
(2) interpreting the table entry to determine the position of the special VLE signal, if the k-bit signal comprises the special VLE signal; and
(3) decoding the k-bit signal based on the position of the special VLE signal, if the k-bit signal comprises the special VLE signal;
(f) performing special processing to decode the k-bit signal, if the k-bit signal comprises no complete VLE signals to be decoded;
steps (a)-(f) are repeated for additional k-bit signals in the encoded bitstream;
further comprising the step of updating, prior to repeating steps (a)-(f) for a next k-bit signal, a bitstream pointer for use in step (a) based on how many bits were decoded by performing steps (a)-(f) for a previous k-bit signal; and
further comprising the step of generating the lookup table at run time based on a specified VLE codebook and specified parameters, including a first parameter corresponding to a value for k and a second parameter corresponding to a maximum number of VLE signals that can be decoded per table lookup.
14. An apparatus for decoding variable-length encoded (VLE) signals of an encoded bitstream, comprising:
(a) means for selecting a k-bit signal from the encoded bitstream;
(b) means for retrieving a table entry from a lookup table using the k-bit signal as an index into the lookup table;
(c) means for interpreting the table entry to determine how many complete VLE signals are to be decoded from the k-bit signal; and
(d) means for retrieving from tile table entry at least two decoded signals, if the k-bit signal comprises at least two complete VLE signals to be decoded.
(e) means for retrieving from the table entry one decoded signal, if tile k-bit signal comprises one complete VLE signal to be decoded; and
(f) means for performing special processing to decode the k-bit signal, if the k-bit signal comprises no complete VLE signals to be decoded, wherein the processing of means (a)-(f) is repeated for additional k-bit signals in the encoded bitstream and further comprising means for updating, prior to repeating the processing of means (a)-(f) for a next k-bit signal, a bitstream pointer for use in means (a) based on how many bits were decoded by performing the processing of means (a)-(f) for a previous k-bit signal.
16. The apparatus of claim 14, wherein the table entry comprises:
17. The apparatus of claim 16, wherein the table entry further comprises:
20. The apparatus of claim 14, wherein means (c):
interprets the table entry to determine whether the k-bit signal comprises a special VLE signal; and
decodes the special VLE signal, if the k-bit signal comprises the special VLE signal.
21. The apparatus of claim 20, wherein means (c):
interprets the table entry to determine a position of the special VLE signal, if the k-bit signal comprises the special VLE signal; and
decodes the k-bit signal based on the position of the special VLE signal, if the k-bit signal comprises the special VLE signal.
the table entry comprises:
(1) interprets the table entry to determine whether the k-bit signal comprises the special VLE signal;
(2) interprets the table entry to determine the position of the special VLE signal, if the k-bit signal comprises the special VLE signal; and
(3) decodes the k-bit signal based on the position of the special VLE signal, if the k-bit signal comprises the special VLE signal;
(e) means for retrieving from the table entry one decoded signal, if the k-bit signal comprises one complete VLE signal to be decoded; and
(f) means for performing special processing to decode the k-bit signal, if the k-bit signal comprises no complete VLE signals to be decoded;
the processing of means (a)-(f) is repeated for additional k-bit signals in the encoded bitstream;
further comprising means for updating, prior to repeating the processing of means (a)-(f) for a next k-bit signal, a bitstream pointer for use in means (a) based on how many bits were decoded by performing the processing of means (a)-(f) for a previous k-bit signal; and
further comprising means for generating the lookup table at run time based on a specified VLE codebook and specified parameters, including a first parameter corresponding to a value for k and a second parameter corresponding to a maximum number of VLE signals that can be decoded per table lookup.
27. A storage medium encoded with machine-readable computer program code for decoding variable-length encoded (VLE) signals of an encoded bitstream, comprising:
(a) means for causing a computer to select a k-bit signal from the encoded bitstream;
(b) means for causing the computer to retrieve a table entry from a lookup table using the k-bit signal as an index into the lookup table;
(c) means for causing the computer to interpret the table entry to determine how many complete VLE signals are to be decoded from the k-bit signal; and
(d) means for causing the computer to retrieve from the table entry at least two decoded signals, if the k-bit signal comprises at least two complete VLE signals to be decoded.
28. The storage medium of claim 27, further comprising:
(e) means for causing the computer to retrieve from the table entry one decoded signal, if the k-bit signal comprises one complete VLE signal to be decoded; and
(f) means for causing the computer to perform special processing to decode the k-bit signal, if the k-bit signal comprises no complete VLE signals to be decoded, wherein the processing of means (a)-(f) is repeated for additional k-bit signals in the encoded bitstream and further comprising means for causing the computer to update, prior to repeating the processing of means (a)-(f) for a next k-bit signal, a bitstream pointer for use in means (a) based on how many bits were decoded by performing the processing of means (a)-(f) for a previous k-bit signal.
29. The storage medium of claim 27, wherein the table entry comprises:
30. The storage medium of claim 29, wherein the table entry further comprises:
33. The storage medium of claim 27, wherein means (c) causes the computer to:
interpret the table entry to determine whether the k-bit signal comprises a special VLE signal; and
decode the special VLE signal, if the k-bit signal comprises the special VLE signal.
34. The apparatus of claim 33, wherein means (c) causes the computer to:
interpret the table entry to determine a position of the special VLE signal, if the k-bit signal comprises the special VLE signal; and
decode the k-bit signal based on the position of the special VLE signal, if the k-bit signal comprises the special VLE signal.
39. The storage medium of claim 27, wherein:
means (c) causes the computer to:
(1) interpret the table entry to determine whether the k-bit signal comprises the special VLE signal;
(2) interpret the table entry to determine the position of the special VLE signal, if the k-bit signal comprises the special VLE signal; and
(3) decode the k-bit signal based on the position of the special VLE signal, if the k-bit signal comprises the special VLE signal;
(f) means for causing the computer to perform special processing to decode the k-bit signal, if the k-bit signal comprises no complete VLE signals to be decoded;
further comprising means for causing the computer to update, prior to repeating the processing of means (a)-(f) for a next k-bit signal, a bitstream pointer for use in means (a) based on how many bits were decoded by performing the processing of means (a)-(f) for a previous k-bit signal; and
further comprising means for causing the computer to generate the lookup table at run time based on a specified VLE codebook and specified parameters, including a first parameter corresponding to a value for k and a second parameter corresponding to a maximum number of VLE signals that can be decoded per table lookup.
if(Qlevel<8) Qdelta=0
______________________________________for(I=0; I<32, I++)for(j=0; j<BlockSize; j++){  for(k=0; k<BlockSize; k++)  {    QuantSet[i][j][k] = (BaseMatrix[j][k]    *i* ScaleMatrix[j][k]) >> 6;    if( QuantSet[i][j][k] > 511 )      QuantSet[i][j][k] = 511;    if( QuantSet[i][j][k] < 1 )      QuantSet[i][j][k] = 1;  }}}______________________________________
K=mQST * mBPT
______________________________________switch( Context->FrameType )case PIC-- TYPE-- I:case PIC-- TYPE-- K:{//for intra or key framesByteDelta = MaxBuffer/2 -GlobalByteBankFuliness;if( ByteDelta > 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 > 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 bidirectional framesByteDelta = Buffer/2 - GlobalByteBankFuliness;if( ByteDelta > 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 encodeare less than the number of bytes allocated for this frame.if( BytesGenerated During Initial Encode <BytesForThisFrame )Delta = 0;while( BytesGenerated < BytesForThisFrame &&ABS(Delta) < 2 ){//Decrement global Q level and perform trial encode.GlobalQuant -= 1BytesGenerated = Trial Encode( GlobalQuant )Delta -= 1}}else{Delta = 0;while( BytesGenerated < BytesForThisFrame &&ABS(Delta) <2 ){//Increment global Q level and perform trial encode.GlobalQuant += 1BytesGenerated = Trial encode( GlobalQuant )Delta += 1;}}//Perform final encode using selected global Q level.______________________________________
p0=[(b0+b1)+(b2+b3)+2]>>2
p1=[(b0+b1)-(b2+b3)+2]>>2
p2=[(b0-b1)+(b2-b3)+2]>>2                                  (2)
p3=[(b0-b1)-(b2-b3)+2]>>2
p0=[(b0+b1)+2]>>2
p2=[(b0-b1)+2]>>2                                          (3)
p0=[(b0+b2)+2]>>2
p1=[(b0-b2)+2]>>2                                          (4)
______________________________________#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 = *Src++;r6 = *src++;r7 = *src++;r8 = *Src++;bfly(r1,r4); bfly(r2,r3); bfly(r5,r8);                    //FSlantPart1bfly(r6,r7);bfly(r1,r2); freflect(r4,r3); bfly(r5,r6);                    //FSlantPart2freflect(r8,r7);bfly(r1,r5); bfly(r2,r6); bfly(r7,r3);                    //FSlantPart3bfly(r4,r8);t = r5 - (r5>>3) + (r4>>1);                    //FSlantPart4r5 = r4 - (r4>>3) - (r5>>1); r4 = t;*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 with rounding using a,b =1/2, 5/4. */#define reflect(s1,s2)\t = (s1*5 + s2*2 + 2) >> 2;\s2 = (s1*2 - s2*5 + 2) >> 2;\s1 = t;r1 = *Src++;r4 = *Src++;r8 = *Src++;r5 = *Src++;r2 = *Src++;r6 = *Src++;r3 = *Src++;r7 = *Src++;t = (r4*4 + r5*7 + 4) >> 3;\                     //ISlantPart1r5 = (r4*7 - r5*4 + 4) >> 3;\r4 = t;bfly(r1,r5); bfly(r2,r6); bfly(r7,r3); bfly(r4,r8);                     //ISlantPart2bfly(r1,r2); reflect(r4,r3); bfly(r5,r6);                     //ISlantPart3reflect(r8,r7);bfly(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;/* The following is a reflection with rounding using a,b= 1/2, 5/4. */#define reflect(s1,s2)\t = (s1*5 + s2*2 + 2) >> 2;\s2 = (s1*2 - s2*5 + 2) >> 2;\s1 = t;r1 = *p++;r4 = *p++;r2 = *p++;r3 = *p++;bfly(r1,r2); reflect(r4,r3);              //SlantPart1bfly(r1,r4); bfly(r2,r3);              //SlantPart2*p++ = r1;*p++ = r2;*p++ = r3;*p++ = r4;}______________________________________
______________________________________#define bfly(x,v) t1 = x-y; x +=y; y = t1;#defineNUM1 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 = sl + (s1>>2) + (s2>>1);\s2 = -s2 - (s2>>2) + (s1>>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(rl,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>>2) + (s2>>1);s2 = -s2 - (s2>>2) + (s1>>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;}______________________________________
______________________________________#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>>2) + (s2>>1);\s2 = -s2 - (s2>>2) + (s1>>1);\s1 = t;r1 = *p++;r3 = *p++;r2 = *p++;r4 = *p++;bfly(r1,r3); bfly(r2,r4); // ISlaarPart 1bfly(r1,r2); bfly(r3,r4); // ISlaarPart 2*p++ = r1;*p++ = r2;*p++ = r3;*p++ = r4;}______________________________________
______________________________________#define DIV2(x)  ((x)>0?(x)>>1:-(-(x))>>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)>0?(x)>>1:-(-(x))>>1)#define bfly2(x,y) t1 = x-y; x += y; y = DIV2(t1); x = DIV2(x);r1 = *Src++;r1 = r1<<1;r5 = *Src++;r5 = r5<<1;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);                     //HaarInv3;bfly2(r7,r8);*Dst++ = r1;*Dst++ = r2;*Dst++ = r3;*Dst++ = r4;*Dst++ = r5;*Dst++ = r6;*Dst++ = r7;*Dst++ = r8;}______________________________________
______________________________________(1) Haar8×1 forward,(2) Haar1×8 forward, and(3) Scaling:  for(i=0; i<8; i++)  {  for(j=0; j<8; j++)  {    c(i,j) = ( c(i,j))>> Scaling Matrix[i][j]  }______________________________________
______________________________________(1) Scaling:for(i=0; i<8; i++)  for(j=0; j<8; j++)  {    c(i,j) = (c(i,j)) >> ScalingMatrix[i][j]  }}______________________________________
______________________________________#define DIV2(x)  ((x)>0?(x)>>1:-(-(x))>>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)>0?(x)>>1:-(-(x))>>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;}______________________________________
______________________________________(1) Haar4×1 forward,(2) Haarl×4forward, and(3) Scaling:for(i=0; i<4; i++)  for(j=0; j<4; j++)  {    c(i,j) = c(i,j)) >> ScalingMatrix[i][j]  }}______________________________________
______________________________________(1) Scaling:for(i=0; i<4; i++)  for(j=0; j<4; j++)  {    c(i,j) = ( c(i,j)) >> ScalingMatrix[i][j]  }}______________________________________
2 "The i750 Video Processor: A Total Multimedia Solution," Communications of the ACM, vol. 34 , No. 4, Apr. 1991, New York, pp. 64-78.
3 Abramson, N., "Information Theory and Coding," McGraw-Hill 1963, pp. 77-92.
4 * Abramson, N., Information Theory and Coding, McGraw Hill 1963, pp. 77 92.
8 * The i750 Video Processor: A Total Multimedia Solution, Communications of the ACM, vol. 34 , No. 4, Apr. 1991, New York, pp. 64 78.
US7348901 Jun 24, 2003 Mar 25, 2008 Telecom Italia S.P.A. Method and system for decoding variable length encoded signals, computer program product therefor
US8208558 * Jun 9, 2008 Jun 26, 2012 Texas Instruments Incorporated Transform domain fast mode search for spatial prediction in advanced video coding
US8315468 * Oct 13, 2010 Nov 20, 2012 Teradici Corporation Apparatus for block-selected encoding of a digital video signal
US8442138 * Mar 7, 2008 May 14, 2013 Marvell World Trade Ltd. Codebook selection for transmit beamforming
US8942306 May 9, 2013 Jan 27, 2015 Marvell World Trade Ltd. Codebook selection for transmit beamforming
US9078001 * Jun 18, 2013 Jul 7, 2015 Texas Instruments Incorporated Efficient bit-plane decoding algorithm
US20070057825 * Jun 24, 2003 Mar 15, 2007 Juan Carlos De Martin Method and system for decoding variable length encoded signals, computer program product therefor
US20080219373 * Mar 7, 2008 Sep 11, 2008 Hongyuan Zhang Codebook selection for transmit beamforming
US20080304763 * Jun 9, 2008 Dec 11, 2008 Nagori Soyeb N Transform Domain Fast Mode Search for Spatial Prediction in Advanced Video Coding
US20140369419 * Jun 18, 2013 Dec 18, 2014 Txas Instruments Incorporated Efficient bit-plane decoding algorithm
WO2005110049A3 * May 10, 2005 Sep 21, 2006 Quicksilver Tech Inc Processor for video data
U.S. Classification 341/67, 375/E07.231, 375/E07.211, 375/E07.181, 375/E07.161, 375/E07.176, 375/E07.172, 375/E07.144, 375/E07.214, 375/E07.03, 341/106, 375/E07.093, 375/E07.14, 375/E07.107, 375/E07.212, 375/E07.166, 375/E07.226
Cooperative Classification H04N19/42, H04N19/91, H04N19/176, H04N19/53, H04N19/61, H04N19/124, H04N19/136, H03M7/425, H04N19/172, H04N19/162, H04N19/186, H04N19/13, H04N19/63, H04N19/129, H04N19/152
European Classification H04N7/26A4Q, H04N7/26A4S, H04N7/26A8U, H04N7/26A6E6, H03M7/42D, H04N7/26H50, H04N7/26A6C8, H04N7/26M2H, H04N7/26A4V, H04N7/26A6U, H04N7/26A8P, H04N7/26A6C, H04N7/26L, H04N7/26A8B
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WALSH, THOMAS E.;REEL/FRAME:007761/0043