# US 5,327,254 A · Method and apparatus for compressing and decompressing image data

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 5,327,254 A
- Document ID: US5327254A
- Status: Granted
- Kind: A
- Application number: 07/838,560
- Filed: 1992-02-19
- Granted: 1994-07-05
- Earliest claimed: 1992-02-19
- Inventors: Mohammad A. Daher
- Web page: https://patentgrep.com/patent/US5327254A

## CPC

- H04N 11/042: {Codec means}
- G06T 3/40: Scaling of whole images or parts thereof, e.g. expanding or contracting
- H04N 19/59: involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
- H04N 5/765: Interface circuits between an apparatus for recording and another apparatus
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

Apparatus for compressing and decompressing image data having rows and columns of pixels is disclosed. Compression component of the apparatus includes a mechanism for storing the image data and a mechanism for processing the image data. Processing mechanism includes a mechanism for resizing the image data into resized image data and a mechanism for compressing the resized image data at least once, thereby creating compressed image data. The resizing mechanism includes a mechanism for selecting at least one row from the image data for inclusion in the resized image data, a mechanism for selecting at least one pixel within each selected row for inclusion in the resized image data. Inverse decompression component of the apparatus is also disclosed. Method for compressing and decompressing image data having rows and columns of pixels is disclosed. A computer program product which contains encoded instructions for performing the invented method is also disclosed.

## Claims

### Claim 1

Apparatus for compressing digital image data having rows and columns of pixels, comprising:
(a) means for storing the image data;
(b) means for processing the image data which includes:
(i) means for resizing the image data into resized image data which includes:
means for selecting at least one row from the image data for inclusion in the resized image data; and
means for selecting at least one pixel within each selected row for inclusion in the resized image data; and
(ii) means for compressing the resized image data at least once, to create compressed image data; and
(c) means for communicating information between said storing means and said processing means.

### Claim 2 (depends on 1)

Apparatus according to claim 1, wherein said storing means includes a random access memory device for storing said image data.

### Claim 3 (depends on 1)

Apparatus according to claim 1, wherein said storing means includes a special purpose video random access memory device for storing said image data.

### Claim 4 (depends on 1)

Apparatus according to claim 1, wherein said storing means includes a bi-directional first-in-first-out memory device for storing said image data.

### Claim 5 (depends on 1)

Apparatus according to claim 1, wherein said processing means includes a primary microprocessor and a co-processor, the primary microprocessor and the co-processor being operably connected to one another to control the operation of a display device.

### Claim 6 (depends on 1)

Apparatus according to claim 1, wherein said resizing means comprises processor instructions stored in said storing means, which instructions are accessible and executable by said processing means.

### Claim 7 (depends on 1)

Apparatus according to claim 1, wherein said compressing means comprises a C-Cube CL550 JPEG Image Compression Processor operably connected to both said processing means and said storing means for compressing image data stored in said storing means.

### Claim 8 (depends on 1)

Apparatus according to claim 1, wherein said compressing means comprises run length encoding compression means.

### Claim 9 (depends on 1)

Apparatus according to claim 1, wherein said compressing means comprises discrete cosine transformation compression means.

### Claim 10

Apparatus for decompressing compressed digital image data having rows and columns of pixels, comprising:
(a) means for storing the compressed image data;
(b) means for processing the compressed image data which includes:
(i) means for decompressing the compressed image data at least once, thereby creating decompressed image data, and
(ii) means for resizing the decompressed image data into inverse resized image data which includes:
means for selecting at least one row from the decompressed image data for inclusion in the inverse resized image data; and
means for selecting at least one pixel within each selected row for inclusion in the inverse resized image data; and
(c) means for communicating information between said storing means and said processing means.

### Claim 11 (depends on 10)

Apparatus according to claim 10, wherein said storing means includes a random access memory device for storing said image data.

### Claim 12 (depends on 10)

Apparatus according to claim 10, wherein said storing means includes a special purpose video random access memory device for storing said image data.

### Claim 13 (depends on 10)

Apparatus according to claim 10, wherein said storing means includes a bi-directional first-in-first-out memory device for storing said image data.

### Claim 14 (depends on 10)

Apparatus according to claim 10, wherein said processing means includes a primary microprocessor and a co-processor, the primary microprocessor and the co-processor being operably connected to one another to control the operation of a display device.

### Claim 15 (depends on 10)

Apparatus according to claim 10, wherein said inverse resizing means comprises processor instructions stored in said storing means, which instructions are accessible and executable by said processing means.

### Claim 16 (depends on 10)

Apparatus according to claim 10, wherein said decompressing means comprises a C-Cube CL550 JPEG Image Compression Processor operably connected to both said processing means and said storing means for decompressing image data stored in said storing means.

### Claim 17 (depends on 10)

Apparatus according to claim 10, wherein said decompressing means comprises run length encoding decompression means.

### Claim 18 (depends on 10)

Apparatus according to claim 10, wherein said decompressing means comprises discrete cosine transformation decompression means.

### Claim 19 (depends on 10)

Apparatus according to claim 10, wherein said inverse resizing means includes means for pixel averaging.

### Claim 20

Method for compressing digital image data having rows and columns of pixels, comprising the steps of:
(a) storing the image data;
(b) processing the image data which includes
(i) resizing the image data into resized image data which includes:
selecting at least one row from the image data for inclusion in the resized image data; and
selecting at least one pixel within each selected row for inclusion in the resized image data; and
(ii) compressing the resized image data at least once, thereby creating compressed image data.

### Claim 21 (depends on 20)

Method according to claim 20, wherein step (b)(ii) conforms to JPEG Process.

### Claim 22 (depends on 20)

Method according to claim 20, wherein step (b)(i) includes selecting each odd numbered row for inclusion in the resized image data.

### Claim 23 (depends on 20)

Method according to claim 20, wherein step (b)(i) includes selecting each odd numbered pixel within the row for inclusion in the resized image data.

### Claim 24 (depends on 20)

Method according to claim 20, wherein step (b) (i) includes:
(a) initializing certain variables with preselected values, said preselected variables including fields identifying row number, total number of rows, vertical scaling factor, vertical pixel factor, pixel number, total number of columns, horizontal scaling factor, and horizontal pixel factor;
(b) if the row number is less than the total number of rows plus one, proceeding with step (c), otherwise, terminating step (b) (i) of claim 20;
(c) if the row number multiplied by the vertical scaling factor equals or exceeds the vertical pixel factor plus one, proceeding with step (d), otherwise, proceeding with step (m);
(d) incrementing the vertical pixel factor by one;
(e) if the pixel number is less that the total number of columns plus one, proceeding with step (f), otherwise, proceeding with step (j);
(f) if the pixel number multiplied by the horizontal scaling factor equal or exceeds the horizontal pixel factor plus one, proceeding with step (g), otherwise, proceeding with step (i);
(g) including the pixel currently being processed into the resized image data;
(h) incrementing the horizontal pixel factor by one;
(i) incrementing the pixel number by one and proceeding with step (e);
(j moving to the next row of the resized image data;
(k) resetting the horizontal pixel factor to zero;
(l) resetting the pixel number to one; and
(m) incrementing the row number by one and proceeding with step (a).

### Claim 25

Method for decompressing compressed digital image data having rows and columns of pixels, comprising the steps of:
(a) storing the compressed image data;
(b) processing the compressed image data which includes
(i) decompressing the compressed image data at least once, thereby creating decompressed image data, and
(ii) resizing the decompressed image data into inverse resized image data which includes:
selecting at least one row from the decompressed image data for inclusion in the inverse resized image data; and
selecting at least one pixel within each selected row for inclusion in the inverse resized image data.

### Claim 26 (depends on 25)

Method according to claim 25, wherein step (b)(ii) includes reconstructing a missing pixel M, by performing the following steps for all missing pixels:
(a) determining the value of the next pixel directly above T, below B, to the left L, and to the right R of the missing pixel M;
(b) if pixels T, B, L, and R, are all missing, then selecting a different missing pixel and restarting step (a); and
(c) if at least one value for T, B, L, and R is known, then adding the known values together to form a sum and dividing the sum by the number of known values to form an approximation of the missing pixel.

### Claim 27 (depends on 26)

Method according to claim 26, wherein only a subset of the known values are employed in the averaging calculation of step (c).

### Claim 28 (depends on 26)

Method according to claim 26, wherein a pixel is comprised of an 8-bit red attribute component, an 8-bit green attribute component, and an 8-bit blue attribute component, to form a 24-bit pixel, and each missing 8-bit component of a missing pixel, M, is computed separately based on the values of their respective neighboring 8-bit components.

### Claim 29

A computer program product having a computer readable medium having computer program logic recorded thereon for compressing digital image data having rows and columns of pixels, comprising:
(a) means for resizing the image data into resized image data which includes:
(i) means for selecting at least one row from the image data for inclusion in the resized image data; and
(ii) means for selecting at least one pixel within each selected row for inclusion in the resized image data; and
(b) means for compressing the resized image data at least once, thereby creating compressed image data.

### Claim 30

A computer program product having a computer readable medium having computer program logic recorded thereon for decompressing compressed digital image data having rows and columns of pixels, comprising:
(a) means for decompressing the compressed image data at least once, thereby creating decompressed image data; and
(b) means for resizing the decompressed image data into inverse resized image data which includes:
(i) means for selecting at least one row from the decompressed image data for inclusion in the inverse resized image data; and
(ii) means for selecting at least one pixel within each selected row for inclusion in the inverse resized image data.
