Compression and decompression scheme performed on shared workstation memory by media coprocessor
First Claim
1. In a computer system having system memory, a system controller for controlling access to system memory, and a central processor for manipulating data stored in said system memory, a compression and decompression engine for compressing and decompressing data stored in said system memory, said compression and decompression engine comprising:
- a first processor for performing cosine transformation on a YCrCb value representing visible pixels into the frequency domain, said central processor adapted to configure said first processor to compress or decompress said data in accordance with a selected compression or decompression algorithm;
a second processor for entropy encoding or decoding a bit stream of frequency domain data, said central processor adapted to configure said second processor to compress or decompress said data in accordance with said selected compression or decompression algorithm;
memory, associated with said first and second processors, said memory divided into at least three independently addressable memory banks; and
a dynamic memory allocation (DMA) controller associated with said first and second processors, for transferring said data between system memory and said memory;
wherein said DMA controller is adapted to transfer a first portion of said data from said system memory to a first of said at least three independently addressable memory banks to initiate a compression or decompression of said data, said DMA controller further adapted to transfer data to a second of said at least three independently addressable memory banks while said first and second processors compress or decompress said data in said first of said at least three independently addressable memory banks, said DMA controller further adapted to transfer compressed or decompressed data in a third of said at least three independently addressable memory banks to said system memory.
7 Assignments
0 Petitions
Accused Products
Abstract
This relates to a general purpose circuit that maximizes the computing power of a Unix workstation or other computer system for processing image or other data in accordance with a selected one or ones of several alternative compression and decompression algorithms. This dynamically allocates system memory for storage of both compressed and uncompressed data and ensures adequate compression and decompression rates.
140 Citations
15 Claims
-
1. In a computer system having system memory, a system controller for controlling access to system memory, and a central processor for manipulating data stored in said system memory, a compression and decompression engine for compressing and decompressing data stored in said system memory, said compression and decompression engine comprising:
-
a first processor for performing cosine transformation on a YCrCb value representing visible pixels into the frequency domain, said central processor adapted to configure said first processor to compress or decompress said data in accordance with a selected compression or decompression algorithm; a second processor for entropy encoding or decoding a bit stream of frequency domain data, said central processor adapted to configure said second processor to compress or decompress said data in accordance with said selected compression or decompression algorithm; memory, associated with said first and second processors, said memory divided into at least three independently addressable memory banks; and a dynamic memory allocation (DMA) controller associated with said first and second processors, for transferring said data between system memory and said memory;
wherein said DMA controller is adapted to transfer a first portion of said data from said system memory to a first of said at least three independently addressable memory banks to initiate a compression or decompression of said data, said DMA controller further adapted to transfer data to a second of said at least three independently addressable memory banks while said first and second processors compress or decompress said data in said first of said at least three independently addressable memory banks, said DMA controller further adapted to transfer compressed or decompressed data in a third of said at least three independently addressable memory banks to said system memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. In a computer system having a central processor and a system memory for storing data, a compression and decompression coprocessor comprising:
-
a local data memory having sufficient storage space for storing only a portion of data in said system memory; processor means, associated with said local data memory for processing the data resident in said local data memory in accordance with a compression or decompression algorithm; means for transferring a portion of said data from said system memory to said local data memory at a rate sufficient to maintain operation of said processor means and for transferring processed data from said local data memory to said system memory; and means associated with said data transferring means for identifying the location of said unprocessed data in said system memory and the location for storing processed data in said system memory. - View Dependent Claims (10, 11, 12)
-
-
13. In a computer system, a method for controlling data flow during the compression and decompression of image data with a compression engine, said method comprising the steps of:
-
a) collecting image data in a region of system memory associated with a computer system; b) configuring a compression engine with a selected compression algorithm; c) transferring a portion of said image data comprising at least one unit of granularity of data to a first local memory associated with said engine; d) concurrently compressing the transferred portion of said image data and transferring an additional portion of said image data to a second local memory associated with said engine; e) storing in a third local memory associated with said engine, the compressed portion of said image data transferred to said first local memory in step c); f) transferring to said system memory the compressed portion of said image data stored in said third local memory in step e); g) concurrently compressing the portion of said image data transferred to said second local memory in step f) and transferring an additional portion of said image data to said third local memory; h) storing in said first local memory, the compressed portion of said image data stored in said second local memory in step f); i) transferring the compressed portion of said image data stored in said first local memory in step h) to said system memory; j) concurrently compressing the portion of said image data transferred to said third local memory in step g) and transferring an additional portion of said image data to said first local memory; k) storing to said second local memory, the compressed portion of said image data stored in said third local memory in step i); l) transferring the compressed portion of said image data stored in said second local memory in step k) to said system memory; and m) repeating steps c) through l) so that said image data in said system memory is transferred from said system memory, compressed, and transferred back to said system memory.
-
-
14. In a computer system, a method for utilizing system memory during the collection of data from a data source for compression or decompression with a compression and decompression engine, said method comprising the steps of:
-
a) collecting data in a plurality of pages in system memory; b) transferring a first portion of said data in one of said plurality of pages to a local memory associated with a compression and decompression engine; c) concurrently transforming said data in accordance with a selected compression or decompression algorithm while transferring a second portion of said data to said local memory; and d) transferring the data transformed in step c) from said local memory to one of a second plurality of pages in said system memory. - View Dependent Claims (15)
-
Specification