# US 5,349,348 A · Multi-mode data stream generator

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

- Number: US 5,349,348 A
- Document ID: US5349348A
- Status: Granted
- Kind: A
- Application number: 07/745,640
- Filed: 1991-08-15
- Granted: 1994-09-20
- Earliest claimed: 1991-08-15
- Assignees: International Business Machines Corporation
- Inventors: Karen L. Anderson; Ian R. Finlay; Joan L. Mitchell; Davey S. Thornton
- Web page: https://patentgrep.com/patent/US5349348A

## CPC

- G06T 9/007: {Transform coding, e.g. discrete cosine transform}
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

Improved apparatus and method for encoding and decoding information is disclosed herein. The invention uses the same marker segment information to engage an encoder or a decoder. The technique eliminates many of the complexities associated with building parameter lists, and generating various types of marker segments in a form compatible with both the decode and encode processing.

## Claims

### Claim 1

Apparatus for controlling a data stream generator in a memory, comprising:
(a) means for transmitting information including data and a plurality of marker segments to an encoder;
(b) processor means for analyzing the plurality of marker segments to determine an encoding operation;
(c) processor means for encoding the data in said information in response to said encoding operation; and
(d) processor means for merging the marker segments to the encoded data.

### Claim 2 (depends on 1)

Apparatus as recited in claim 1, further comprising storage means for storing the encoded data.

### Claim 3 (depends on 1)

Apparatus as recited in claim 1, wherein said encoding operation specifies a method for compressing the data.

### Claim 4 (depends on 1)

Apparatus as recited in claim 1, wherein said processor means for encoding encodes said data according to a Joint Photographic Experts Group (JPEG) standard format.

### Claim 5 (depends on 1)

Apparatus as recited in claim 1, wherein said encoding operation specifies Huffman coding of the data.

### Claim 6 (depends on 1)

Apparatus as recited in claim 1, wherein said encoding operation specifies arithmetic encoding for compression of the data.

### Claim 7 (depends on 1)

Apparatus as recited in claim 1, wherein said encoding operation specifies run length encoding for compression of the data.

### Claim 8 (depends on 1)

Apparatus as recited in claim 1, wherein said encoding operation specifies predictive encoding for compression of the data.

### Claim 9

Apparatus for generating and interpreting a data stream in a memory, comprising:
(a) means for transmitting information including data and marker segments to an encoder;
(b) processor means for parsing the marker segments into compression operators;
(c) processor means for encapsulating the data within the marker segments to create a single data stream said processor means being responsive to said compression operators; and
(d) means for storing the single data stream.

### Claim 10

Apparatus for specifying data encapsulation control parameters to a data encapsulation system comprising:
(a) a reusable set of control parameters passed to the data encapsulation system in the form of structured fields;
(b) processor means for parsing the structured fields creating encapsulation orders;
(c) processor means for encoding information in accordance with the encapsulation orders; and
(d) data encapsulator means for encapsulating said encoded information within said structured fields.

### Claim 11

Apparatus for specifying data extraction control parameters to a data extraction system for extracting information from an encapsulated data stream, the apparatus comprising:
(a) a common set of control parameters passed to the data extraction system in the form of structured fields;
(b) processor means for parsing the structured fields creating extraction orders; and
(c) processor means for extracting information from said encapsulated data stream in response to the extraction orders.

### Claim 12

A method for controlling a data stream generator in a memory, comprising the steps of:
(a) transmitting information having data and a plurality of marker segments to an encoder;
(b) transforming the plurality of marker segments into encoding control orders;
(c) encoding the data according to the encoding control orders; and
(d) combining the marker segments and the encoded data to form an encoded data stream.

### Claim 13 (depends on 12)

The method as recited in claim 12, further comprising the step of storing the encoded data stream.

### Claim 14 (depends on 12)

The method as recited in claim 12, wherein the encoding step compresses the data.

### Claim 15 (depends on 12)

The method as recited in claim 12, wherein the encoding step compresses the data in accordance with a Joint Photographic Experts Group (JPEG) standard.

### Claim 16 (depends on 12)

The method as recited in claim 12, wherein the encoding step compresses the data with an arithmetic encoder.

### Claim 17 (depends on 12)

The method as recited in claim 12, wherein the encoding step compresses the data with a run length encoder.

### Claim 18 (depends on 12)

The method as recited in claim 12, wherein the encoding step compresses the data with a predictive encoder.

### Claim 19

Apparatus for controlling a data stream generator in a memory, comprising:
(a) means for transmitting information having data and a plurality of marker segments to an encoder;
(b) processor means for transforming the plurality of marker segments into encoding operations;
(c) processor means for encoding the data according to said encoding operations;
(d) processor means for merging the marker segments and the encoded data to form an encoded data stream;
(e) decoder means for decoding said encoded data stream, said decoder means including:
-processor means for transforming the plurality of marker segments in said encoded data stream into decoding orders; and
-processor means for decoding the encoded data in response to said decoding orders.

### Claim 20

A method for controlling a data stream generator in a memory, comprising the steps of:
(a) transmitting information including data and a plurality of marker segments to an encoder;
(b) transforming the plurality of marker segments into encoding operations;
(c) encoding the data in response to said encoding operations;
(d) combining the marker segments and the encoded information to create an encoded data stream;
(e) transforming the plurality of marker segments in said encoded data stream into decoding operations; and
(f) decoding the data from said encoded data stream according to said decoding operations.

### Claim 21

A method for encoding data into an encoded data stream, the encoded data stream having a format specified by a plurality of marker segments each specifying an encoding parameter, the method comprising the steps of:
generating an encoding description, said encoding description specifying a plurality of encoding parameters in a first format;
transforming said plurality of encoding parameters in said first format into a plurality of encoding operations in a second format;
applying said encoding operations to said data to create encoded data;
merging said encoding description and said encoded data to form said encoded data stream.

### Claim 22

A system for encoding and decoding data, the system comprising:
input means for receiving input data, said input data being either encoded data containing a plurality of marker segments or unencoded data accompanied separately by marker segment skeletons;
means for testing said input data to determine whether it is encoded data or unencoded data;
means for transforming said marker segments in said encoded data into decoding orders if said input data is encoded data;
means for decoding said encoded data in response to said decoding orders if said input data is encoded data;
means for transforming said marker segment skeletons into encoding orders if said input data is unencoded data;
means for encoding said input data in response to said encoding orders if said input data is unencoded data; and
means for merging said encoded input data and said marker segment skeletons to create an encoded data stream if said input data is unencoded data.

### Claim 23 (depends on 22)

The system of claim 22, wherein said marker segments and said marker segment skeletons conform to a JPEG standard.

### Claim 24 (depends on 22)

The system of claim 22, wherein said encoding orders specify encoding by applying a Huffman algorithm.

### Claim 25 (depends on 22)

The system of claim 22, wherein said encoding orders specify encoding by applying an arithmetic encoding operation.

### Claim 26 (depends on 22)

The system of claim 22, wherein said encoding orders specify encoding by applying a run length encoding operation.

### Claim 27 (depends on 22)

The system of claim 22, wherein said encoding orders specify encoding by applying a predictive encoding operation.

### Claim 28 (depends on 22)

The system of claim 22, further comprising storage means for storing said encoded data stream.

### Claim 29 (depends on 22)

The system of claim 22, wherein said means for transforming said marker segments and said means for transforming said marker segment skeletons comprise a parser.

### Claim 30

A method of encoding and decoding input data, said method comprising the steps of:
specifying a plurality of marker segments that conform to a first encoding specification;
testing said input data to determine whether or not it is already encoded;
transforming said plurality of marker segments into encoding orders if said testing step determines the data is not encoded;
encoding said input data according to said encoding orders if said testing step determines the data is not encoded;
merging said marker segments and said encoding orders to form an encoded data stream, if said testing determines the data is not encoded;
extracting said marker segments from said input data if said testing determines the data is encoded;
transforming the marker segments into decoder orders, if said test determines the data is encoded;
decoding said encoded data if said test determines said data is encoded.

### Claim 31 (depends on 30)

The method of claim 30, wherein said first encoding specification is a JPEG standard.

### Claim 32 (depends on 30)

The method of claim 30, further comprising storing said encoded data stream on a storage device if said testing determines the data is not encoded.

### Claim 33 (depends on 30)

The method of claim 30, wherein said encoding step compresses said input data and said decoding step decompresses said encoded data stream.
