IP Library Granted Patent US 7,567,717
Granted Patent B1
US 7,567,717 · App. 11/301,202 · Granted Jul 28, 2009

Method, system, and computer-readable medium for the adaptive filtering and compression of video data

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,567,717
App. No.
11/301,202
Granted
Jul 28, 2009
Kind
B1
Abstract

A method of filtering and encoding video data in a compressed format is provided. The method includes receiving pixels representing video data from an initial video display, receiving pixels representing video data from a subsequent video display, selecting a group of pixels from the subsequent video display as new video data, determining filtered pixel values from the new video data, and encoding the filtered values in a compressed format for communication to another computer accessible via a computer network.

Claims (81)

1. A computer-implemented method of compressing video data in a computer system, comprising performing computer-implemented operations for:

receiving a first plurality of pixels representing video data from a previous video display;

receiving a second plurality of pixels representing video data from a current video display;

selecting a pixel in the second plurality of pixels as a current pixel;

generating a filtered value for the current pixel by determining whether the values of pixels adjacent to the current pixel are within a threshold value of the values of other adjacent pixels within the first plurality of pixels;

generating an encoded value for the filtered value by applying a first algorithm wherein lossless compression is desired or by applying a second algorithm wherein lossy compression is desired; and

compressing the encoded value.

2. The computer-implemented method of claim 1 , wherein

generating a filtered value comprises:

determining whether the value of a first pixel adjacent to the current pixel in the second plurality of pixels is equal to the value of a corresponding pixel in the first plurality of pixels; and

setting the filtered value of the current pixel equal to the value of a pixel corresponding to the current pixel in the first plurality of pixels in response to determining that the value of the first pixel adjacent to the current pixel is equal to the value of a corresponding pixel in the first plurality of pixels.

3. The computer-implemented method of claim 2 , further comprising in response to determining that the value of the pixel adjacent to the current pixel is not equal to the value of a corresponding pixel in the first plurality of pixels:

performing a first threshold check to determine whether the value of the first pixel adjacent to the current pixel is within a threshold value of a second pixel adjacent to the current pixel;

performing a second threshold check to determine whether the value of the second pixel adjacent to the current pixel is within a threshold value of a third pixel adjacent to the current pixel;

setting the filtered value of the current pixel equal to the value of the third pixel adjacent to the current pixel if the first threshold check is true and the second threshold check is false; and

otherwise setting the filtered value of the current pixel equal to the value of the first pixel adjacent to the current pixel.

4. The computer-implemented method of claim 3 , wherein generating an encoded value for the filtered value comprises:

determining whether lossless compression or lossy compression should be utilized;

in response to determining that lossless compression should be utilized, setting the encoded value equal to zero in response to determining that the value of the current pixel is equal to the filtered value of the current pixel,

setting the encoded value equal to a code representing black if the value of the current pixel is zero, and

otherwise setting the encoded value equal to the value of the current pixel.

5. The computer-implemented method of claim 4 , comprising further in response to determining that lossy compression should be utilized:

performing a threshold check to determine whether the value of the current pixel and the filtered value are within a threshold value of one another; and

in response to determining that the value of the current pixel and the filtered value are within a threshold value of one another, setting the encoded value equal to zero,

setting the encoded value equal to a code representing black if the value of the current pixel is zero, and

otherwise setting the encoded value equal to the value of the current pixel.

6. The computer-implemented method of claim 5 , wherein compressing the encoded value comprises:

determining whether the encoded value is equal to zero;

in response to determining that the encoded value is equal to zero, incrementing a run length; and

in response to determining that the encoded value is not equal to zero, flushing a pending run and outputting the encoded value.

7. The computer-implemented method of claim 6 , wherein flushing a pending run comprises outputting a first code and the run length when the length of the run is greater than a predetermined length, and outputting a second code and the run length with the length of the run is less than a predetermined length.

8. The computer-implemented method of claim 7 , wherein the first pixel adjacent to the current pixel comprises the pixel immediately to the left of the current pixel, wherein the second pixel adjacent to the current pixel comprises the pixel immediately to the left and above the current pixel, and wherein the third pixel adjacent to the current pixel comprises the pixel immediately above the current pixel.

9. A computer storage medium having computer-executable instructions stored thereon which, when executed by a computer, cause the computer to:

receive a first plurality of pixels representing video data from a previous video display;

receive a second plurality of pixels representing video data from a current video display;

select a pixel in the second plurality of pixels as a current pixel;

generate a filtered value for the current pixel by determining whether the values of pixels adjacent to the current pixel are within a threshold value of the values of other adjacent pixels within the first plurality of pixels;

generate an encoded value for the filtered value by applying a first algorithm wherein lossless compression is desired or by applying a second algorithm wherein lossy compression is desired; and to

compress the encoded value.

10. The computer storage medium of claim 9 , wherein generating a filtered value comprises:

determining whether the value of a first pixel adjacent to the current pixel in the second plurality of pixels is equal to the value of a corresponding pixel in the first plurality of pixels; and

setting the filtered value of the current pixel equal to the value of a pixel corresponding to the current pixel in the first plurality of pixels in response to determining that the value of the first pixel adjacent to the current pixel is equal to the value of a corresponding pixel in the first plurality of pixels.

11. The computer storage medium of claim 10 , comprising further computer-readable instructions which, when executed by the computer, are operative to cause the computer, in response to determining that the value of the pixel adjacent to the current pixel is not equal to the value of a corresponding pixel in the first plurality of pixels, to:

perform a first threshold check to determine whether the value of the first pixel adjacent to the current pixel is within a threshold value of a second pixel adjacent to the current pixel;

perform a second threshold check to determine whether the value of the second pixel adjacent to the current pixel is within a threshold value of a third pixel adjacent to the current pixel;

set the filtered value of the current pixel equal to the value of the third pixel adjacent to the current pixel if the first threshold check is true and the second threshold check is false; and to

otherwise set the filtered value of the current pixel equal to the value of the first pixel adjacent to the current pixel.

12. The computer storage medium of claim 11 , wherein generating an encoded value for the filtered value comprises:

determining whether lossless compression or lossy compression should be utilized;

in response to determining that lossless compression should be utilized, setting the encoded value equal to zero in response to determining that the value of the current pixel is equal to the filtered value of the current pixel,

setting the encoded value equal to a code representing black if the value of the current pixel is zero, and

otherwise setting the encoded value equal to the value of the current pixel.

13. The computer storage medium of claim 12 , comprising further computer readable instructions which, when executed by a computer, will cause the computer, further in response to determining that lossy compression should be utilized, to:

perform a threshold check to determine whether the value of the current pixel and the filtered value are within a threshold value of one another; and

in response to determining that the value of the current pixel and the filtered value are within a threshold value of one another, to set the encoded value equal to zero,

set the encoded value equal to a code representing black if the value of the current pixel is zero, and to

otherwise set the encoded value equal to the value of the current pixel.

14. The computer-readable medium of claim 13 , wherein compressing the encoded value comprises:

determining whether the encoded value is equal to zero;

in response to determining that the encoded value is equal to zero, incrementing a run length; and

in response to determining that the encoded value is not equal to zero, flushing a pending run and outputting the encoded value.

15. The computer storage medium of claim 14 , wherein flushing a pending run comprises outputting a first code and the run length when the length of the run is greater than a predetermined length, and outputting a second code and the run length with the length of the run is less than a predetermined length.

16. The computer storage medium of claim 15 , wherein the first pixel adjacent to the current pixel comprises the pixel immediately to the left of the current pixel, wherein the second pixel adjacent to the current pixel comprises the pixel immediately to the left and above the current pixel, and wherein the third pixel adjacent to the current pixel comprises the pixel immediately above the current pixel.

17. A computer-controlled apparatus, comprising:

a central processing unit (CPU);

a graphics adapter; and

a memory containing computer-readable instructions stored thereon, which when executed by the CPU will cause the CPU to

receive a first plurality of pixels representing video data from a previous video display,

receive a second plurality of pixels representing video data from a current video display,

select a pixel in the second plurality of pixels as a current pixel,

generate a filtered value for the current pixel by determining whether the values of pixels adjacent to the current pixel are within a threshold value of the values of other adjacent pixels within the first plurality of pixels,

generate an encoded value for the filtered value by applying a first algorithm wherein lossless compression is desired or by applying a second algorithm wherein lossy compression is desired, and to

compress the encoded value.

18. The computer-controlled apparatus of claim 17 , wherein generating a filtered value comprises:

determining whether the value of a first pixel adjacent to the current pixel in the second plurality of pixels is equal to the value of a corresponding pixel in the first plurality of pixels; and

setting the filtered value of the current pixel equal to the value of a pixel corresponding to the current pixel in the first plurality of pixels in response to determining that the value of the first pixel adjacent to the current pixel is equal to the value of a corresponding pixel in the first plurality of pixels.

19. The computer-controlled apparatus of claim 17 wherein the memory includes further computer-readable instructions which, when executed by the CPU, are operative to cause the CPU, in response to determining that the value of the pixel adjacent to the current pixel is not equal to the value of a corresponding pixel in the first plurality of pixels, to:

perform a first threshold check to determine whether the value of the first pixel adjacent to the current pixel is within a threshold value of a second pixel adjacent to the current pixel;

perform a second threshold check to determine whether the value of the second pixel adjacent to the current pixel is within a threshold value of a third pixel adjacent to the current pixel;

set the filtered value of the current pixel equal to the value of the third pixel adjacent to the current pixel if the first threshold check is true and the second threshold check is false; and to

otherwise set the filtered value of the current pixel equal to the value of the first pixel adjacent to the current pixel.

Assignments (5)
PATENT SECURITY AGREEMENT Recorded Oct 23, 2024
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC
To: BAIN CAPITAL CREDIT, LP, AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 069229/0834 →
RELEASE OF SECURITY INTEREST Recorded Oct 17, 2024
From: MIDCAP FINANCIAL TRUST
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 069205/0795 →
SECURITY INTEREST Recorded May 6, 2019
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC
To: MIDCAP FINANCIAL TRUST, AS COLLATERAL AGENT
Reel/Frame 049087/0266 →
ENTITY CONVERSION Recorded Apr 15, 2019
From: AMERICAN MEGATRENDS, INC.
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 049091/0973 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2005
From: AYANAM, VARADACHARI SUDAN; KOTHANDAPANI, GOVIND
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 017361/0232 →