`Dawson
`
`||||||||I||
`US005553160A
`11
`Patent Number:
`5,553,160
`(45) Date of Patent:
`Sep. 3, 1996
`
`54 METHOD AND APPARATUS FOR
`DYNAMICALLY SELECTING AN MAGE
`COMPRESSION PROCESS BASED ON
`IMAGE SIZE AND COLOR RESOLUTION
`
`Primary Examiner-Leo Boudreau
`Assistant Examiner-Andrew W. Johns
`Attorney, Agent, or Firm-Blakely, Sokoloff, Taylor & Zaf
`al
`
`75) Inventor: Bryan J. Dawson, Aloha, Oreg.
`-
`73) Assignee: Intel Corporation, Santa Clara, Calif.
`
`(21) Appl. No.: 299,893
`(22 Filed:
`Sep. 1, 1994
`51) Int. Cl.
`
`G06K9/00
`
`(57)
`ABSTRACT
`Amethod and apparatus which dynamically selects animage
`compression process for an image to be transferred from a
`first agent to a second agent. The image being compressed
`has a particular size associated with it, which indicates the
`amount of storage space required to store the image, such as
`
`52 U.S.C.O.38216,332,235,354 EYES"SEE,
`
`58) Field of Search ..................................... 382/166,232,
`382/239, 244, 286; 358/261.2, 430,449,
`539; 348/404; H04N 1141, 11/02
`
`p
`which indicates the number of different colors which the
`image may contain. Aparticular image compression process
`is selected for the image based on its size and color reso
`lution. In one embodiment, the present invention produces
`one of three possible outcomes. First, the image may remain
`References Cited
`uncompressed. Second, the image may be compressed using
`U.S. PATENT DOCUMENTS
`a lossless compression process, which reduces the size of the
`364/526
`4965,754 10/1990 Stansfield etal
`5,086,488 2/1992 Kato et al. ................................ E: image while retaining all data for the image. Third, the
`358/209
`image may be compressed using a lossy compression pro
`5,249,053 9/1993 Jain .........
`oo
`2
`. 358/539
`cess, which reduces the size of the image by losing a small
`5,353,132 10/1994 Katsuma .
`358/500
`amount of data for the image.
`5,361,144 11/1994 Sugiura .......
`5,363,219 11/1994 Yoshida ................................... 358/539
`FOREIGN PATENT DOCUMENTS
`2249238 4/1992 United Kingdom............. H04N 1/41
`
`56)
`
`9.1 Wovy
`
`allSilco Cial. ......................
`
`25 Claims, 6 Drawing Sheets
`
`
`
`
`
`
`
`
`
`
`
`
`
`410
`
`took BYTES
`
`445
`
`RUN
`OSSLESSPROCESS
`on Portion OFMAge
`
`RUN
`LOSSLESS PROCESS
`ONENTRE IMAGE
`
`S
`CoMPRESSION
`RAng 25:1
`
`OSSESSPROCESS
`ONENTRE MAGE
`
`No
`
`A4
`
`USE
`lossyprocess
`FORCOMPRESSION
`
`
`
`USE
`lossess PROCESS
`FORCOPRESSION
`
`Page 1
`
`NETFLIX, INC
`Exhibit 1025
`IPR2018-01630
`
`
`
`U.S. Patent
`
`Sep. 3, 1996
`
`Sheet 1 of 6
`
`5,553,160
`
`EKOLAETC.
`
`AdOSO CIHVH
`
`III
`
`001
`
`
`
`
`
`
`
`Page 2
`
`
`
`U.S. Patent
`US. Patent
`
`Sep. 3, 1996
`
`Sheet 2 of 6
`
`5,553,160
`5,553,160
`
`bun—.50
`
`nummwzioo
`
`mu;—
`
`SSEITSSOT
`mmmqmmOJ
`
`EOmwmmEEOO
`
`«Imlp
`
`>mm04
`
`mOmmMm—LEOO
`
`fl
`
`
`
`m_.MEDGE
`
`Page 3
`
`Suz-
`
`nummwflmioozn
`
`m0:—
`
`
`
`
`
`
`
`Page 3
`
`
`
`
`
`
`US. Patent
`
`Sep. 3, 1996
`
`Sheet 3 of 6
`
`5,553,160
`
`ZOF<0_2_.==OO
`
`mos—Em;—
`
`29mmmmm§00
`
`¢m0<z<5
`
`
`
`m0<¢0hm<h<n
`
`“05m...—
`
`Emma
`
`aMOS—cub:—
`
`2050.23.58
`
`musimhz.
`
`WW“.
`
`20.3mmnaoo
`
`5323.
`
`MW“.
`
`$5.3mEta
`
`mosmn
`
`mm
`
`Nmun—DO."—
`
`Page 4
`
`Page 4
`
`
`
`U.S. Patent
`
`Sep. 3, 1996
`
`Sheet 4 of 6
`
`5,553,160
`
`
`
`
`
`
`
`
`
`RETRIEVE IMAGE
`
`DEERMINE
`COMPRESSION
`PROCESS
`
`
`
`STORAGE
`REQUESTED
`
`TRANSFER
`
`REQUESTED
`
`FIGURE 3
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`TRANSFERMAGE
`TO TARGET AGENT
`
`
`
`Page 5
`
`
`
`U.S. Patent
`
`Sep. 3, 1996
`
`Sheet 5 of 6
`
`5,553,160
`
`S
`IMAGESZE
`a 4K BYTES
`
`YES
`
`40
`
`NO
`
`NO COMPRESSION
`
`
`
`
`
`
`
`
`
`
`
`COLOR
`
`MAGE 83TS
`
`425
`
`MAd SIZE
`OOK BYTES
`
`445
`
`RUN
`LOSSLESS PROCESS
`ON PORTION OF IMAGE
`
`RUN
`OSSLESS PROCESS
`ON ENTRE IMAGE
`
`
`
`IS
`COMPRESSION
`RATIO 25:
`
`S
`COMPRESSION
`RATI 23:1
`
`
`
`
`
`RUN
`LOSSLESS PROCESS
`ON ENTRE MAGE
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`IS
`COMPRESSION
`RATO 24:
`
`USE
`LOSSY PROCESS
`FOR COMPRESSION
`
`
`
`
`
`
`
`
`
`
`
`USE
`LOSSLESS PROCESS
`FOR COMPRESSION
`
`C END D
`
`FIGURE 4 C END D
`
`Page 6
`
`
`
`US. Patent
`U.S. Patent
`
`Sep. 3, 1996
`Sep. 3, 1996
`
`Sheet 6 of 6
`Sheet 6 of 6
`
`5,553,160
`5,553,160
`
`FIGURE 5
`
`Page 7
`
`
`
`5,553,160
`
`1
`METHOD AND APPARATUS FOR
`DYNAMICALLY SELECTING AN MAGE
`COMPRESSION PROCESS BASED ON
`IMAGE SIZE AND COLOR RESOLUTION .
`
`2
`This increase in display capabilities, however, is accom
`panied by an increase in memory space required to store an
`image being displayed, or to be displayed, on the visual
`display. That is, a color must be stored for each pixel on the
`screen. For example, a display with 800x600 resolution
`contains 480,000 pixels, each of which can have any one of
`the available colors. If the display has a color resolution of
`256 colors (which can be represented using 8 bits), then the
`storage size of an entire-screen image is approximately 500k
`bytes, which is the amount of memory necessary to store the
`image. Thus, it will be apparent that as the color resolution
`increases, the storage area required for an image increases
`dramatically.
`The increase in required storage area generates two sig
`nificant problems. First, the storage device (such as a disk or
`tape drive) must be large enough to store a sufficient number
`of images. The actual number of images is dependent on the
`users of the system. Second, the communication devices
`coupling multiple computer systems are relatively slow,
`compared to the processing capabilities of the computer
`systems. Thus, the time required to transfer such a large
`image between computer systems can be very long.
`One technique used to solve both of these problems is that
`of data compression. Utilizing data compression techniques,
`the storage size of the image is reduced while maintaining
`the same resolution. Thus, the image utilizes a smaller
`amount of space in the storage device, and can be transferred
`via a communication device more quickly.
`Two types of compression techniques are commonly used
`to compress images: lossless compression and lossy com
`pression. In lossless compression, the storage size of the
`image is reduced without losing any data. That is, the image
`can be compressed, stored or transferred, then decom
`pressed, and the decompressed image will be identical to the
`original image. In lossy compression, however, the size of
`the image is reduced and a small amount of data loss occurs.
`Thus, an image which is compressed, stored or transferred,
`and then decompressed will be slightly different from the
`original image. Although lossy compression causes some
`data loss, ideally that data loss is not evident to the user.
`Both lossless and lossy compression processes typically
`work best in situations where the other works poorly. That
`is, when lossless compression works well, lossy compres
`sion generally works poorly, and vice versa. Lossless com
`pression typically works well in situations where the data
`being compressed has significant entropy. Entropy refers to
`repetitions within the data. For example, an image compris
`ing a total of 50 characters, each of which is different, would
`have low entropy, whereas an image comprising 10 occur
`rences each of five different characters would have higher
`entropy.
`Lossy compression, however, typically works well in
`situations where the data being compressed has low entropy.
`In situations of low entropy, little of the data being com
`pressed is repeated. An example of a low entropy image is
`a continuous-tone image with a color resolution of 16
`million colors. Typically, in a continuous-tone image very
`few, if any, pixels have the same color. However, even
`though two adjacent pixels may have slightly different
`colors, the difference in color may not be noticeable to the
`human eye. Thus, in a wide variety of circumstances, the
`assumption is made that two pixels with slightly different
`colors can be treated as having the same color. Lossy
`compression takes advantage of this assumption and alters
`the colors of some of the pixels. Thus, some data loss occurs
`during compression, however ideally this data loss is not
`observable by the system user.
`
`10
`
`15
`
`20
`
`BACKGROUND Of THE INVENTION
`1. Field of the Invention
`The present invention pertains to the fields of computer
`systems, personal conferencing, and image processing.
`More particularly, this invention relates to the compression
`of image data for transfer between two agents.
`2. Background
`Computer technology is continuously advancing, provid
`ing newer computer systems with continuously improved
`performance. This improved performance is evidenced in a
`wide variety of characteristics. For example, the processing
`speeds of computer systems are increasing, the storage
`capabilities are increasing, and the visual display capabili
`ties are increasing. One result of this improved performance
`is an increased use of computer systems by individuals in a
`wide variety of business, academic and personal applica
`tions.
`One problem experienced in the advancement of com
`25
`puter technology is that the various characteristics which
`define a system's performance do not always advance at the
`same rate. For example, storage capabilities are not always
`being improved at the same rate as processing speed. Thus,
`although a computer system may utilize a high-performance
`processor, the storage device of the system (such as a hard
`disk) may be neither fast enough nor large enough to fully
`support the processor.
`In addition, the increase in use of computer systems by
`individuals has found new and expanded areas of usage. One
`35
`such area is that of personal conferencing, which is becom
`ing increasingly demanded by computer users. Personal
`conferencing generally refers to two or more individual
`computer systems in communication with each other via a
`communication device. Such a communication device may
`be, for example, a telephone line or a local area network
`(LAN).
`Although personal conferencing capabilities are increas
`ingly demanded by computer users, the performance of
`communication devices do not always allow computer users
`to take full advantage of their computer systems. For
`example, the communication device(s) used to connect two
`computer systems may not be able to transfer data between
`the systems at the rate each system is able to transmit or
`receive and process data. Thus, two high-performance com
`50
`puter systems communicating with each other may not be
`able to operate at their optimal level; rather, they are
`required to accept the limitations found in the communica
`tion device(s) coupling them.
`For example, increased processing speeds have supported
`an increase in visual display capabilities, as evidenced by an
`increase in both screen and color resolutions. Screen reso
`lution refers to the number of pixels in a visual display. Each
`pixel is an individual screen location which can be illumi
`nated or otherwise activated on the visual display, and can
`be represented by a unique (x,y) coordinate. Modern display
`capabilities include screen resolutions such as 640x480,
`800x600, and 1024x768. Color resolution refers to the color
`depth of each pixel on the display; that is, the number of
`different colors each pixel can display. Modem computer
`systems can provide color resolutions in the order of mil
`lions of colors.
`
`45
`
`30
`
`55
`
`65
`
`Page 8
`
`
`
`3
`These compression techniques can be utilized both to
`transfer image data between two computer systems and to
`store image data in a storage device, thereby reducing
`transfer time and reducing storage requirements, respec
`tively.
`One technique for selecting between these image com
`pression techniques is to always use one or the other. For
`example, if the system typically transfers images with high
`entropy, then the system uses lossless compression for all
`images. Alteratively, if the system typically transfers con
`tinuous-tone images, then the system uses lossy compres
`sion for all images. However, such a technique does not
`work well in systems which transfer both types of images
`because the system is tuned to optimize a particular type of
`image and provides poor performance for other types of
`images.
`Generally, only one of these two compression techniques
`(lossless or lossy) works well on a particular image or
`portion of data. Thus, it would be beneficial to provide a
`system which optimally chooses between these techniques
`for each image being transferred or stored.
`Another technique for selecting between these image
`compression techniques is to allow the system user to
`choose between them. That is, if the system user desires to
`use data compression, he or she is given a choice between
`the two compression techniques and must choose which one
`is used. This technique has several disadvantages. First, the
`system user may not understand which technique works best
`in which situations, and thus may not be qualified to make
`the choice. Second, the image may be such that, even if the
`user is qualified to choose, it may not be readily apparent
`which choice is correct. Third, the user is inconvenienced by
`having to make the choice. This inconvenience is especially
`true in situations where the user is transferring a large
`number of images, and is required to make a choice for each
`of the images being transferred. Fourth, the speed of the
`system is decreased due to the requisite decision time of the
`user. One goal of compression is to increase the speed of
`data transfers; thus, the time required by the user to select a
`compression technique hinders attaining this goal.
`Another technique for selecting an image compression
`process is an adaptive technique which partitions an image
`into multiple smaller sections. A first section is compressed
`using one particular compression algorithm, and if the
`algorithm worked well, then that same compression algo
`rithm is used for the next section. If the compression
`algorithm did not work well, then another algorithm is
`chosen to compress the next section. The first section is not
`recompressed using a different algorithm. This process pro
`ceeds for each section in the image, with the compression
`algorithm for one section being dependent on the success of
`the compression of the previous section. This adaptive
`technique may also be applied to a series of images, where
`each image of the series is analogous to a section. In this
`situation, the compression algorithm for an image is depen
`dent on the success of the compression of the previous image
`in the series.
`This adaptive technique has several disadvantages. For
`example, entropy can often be found in images as a whole,
`however that entropy may not exist when the image is
`partitioned into smaller sections. In addition, several
`attempts may be made to find the proper algorithm, each of
`which may result in a very poor compression ratio for that
`section. Since these sections are not recompressed, the
`compression ratio for the entire image suffers.
`-
`Thus, it would be advantageous to provide a system which
`optimally compresses the image data for storage and/or
`transfer.
`
`4
`it would furthermore be advantageous to provide a system
`which automatically and accurately selects the appropriate
`compression technique for each image.
`In addition, it would be advantageous to provide a system
`which quickly determines the appropriate compression tech
`nique for an image transfer.
`The present invention provides for these and other advan
`tageous results.
`
`SUMMARY OF THE INVENTION
`A method and apparatus for dynamically selecting an
`image compression process is disclosed herein. The appa
`ratus of the present invention compresses an image for
`transfer from a first agent to a second agent. The image being
`compressed has a particular size associated with it, which
`indicates the amount of storage space required to store the
`image, such as in the system memory or a mass storage
`device. The image also has a particular color resolution
`associated with it, which indicates the number of different
`colors which the image may contain. The present invention
`selects a particular image compression process for the image
`based on its size and color resolution.
`In one embodiment, the present invention produces one of
`three possible outcomes. First, the image may remain
`uncompressed. Second, the image may be compressed using
`alossless compression process, which reduces the size of the
`image while retaining all data for the image. Third, the
`image may be compressed using a lossy compression pro
`cess, which reduces the size of the image by losing a small
`amount of data for the image.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`The present invention is illustrated by way of example
`and not limitation in the figures of the accompanying
`drawings, in which like references indicate similar elements
`and in which:
`FIG. 1A shows an overview of an example computer
`system of the present invention;
`FIG. 1B shows the implementation of a compression
`manager in one embodiment of the present invention;
`FIG. 2 shows an overview of an example personal con
`ferencing system of the present invention;
`FIG. 3 is a flowchart showing the steps followed in one
`embodiment of the present invention in storing and trans
`ferring data;
`FIG. 4 is a flowchart showing the steps followed in
`selecting the image compression process in one embodiment
`of the present invention; and
`FIG. 5 is a block diagram of a data storage device in one
`embodiment of the present invention.
`
`DETAILED DESCRIPTION
`In the following detailed description numerous specific
`details are set forth in order to provide a thorough under
`standing of the present invention. However, it will be
`understood by those skilled in the art that the present
`invention may be practiced without these specific details. In
`other instances well known methods, procedures, compo
`nents, and circuits have not been described in detail so as not
`to obscure the present invention.
`Some portions of the detailed descriptions which follow
`are presented in terms of algorithms and symbolic repre
`sentations of operations on data bits within a computer
`
`5,553,160
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Page 9
`
`
`
`5,553,160
`
`5
`memory. These algorithmic descriptions and representations
`are the means used by those skilled in the data processing
`arts to most effectively convey the substance of their work
`to others skilled in the art. An algorithm is here, and
`generally, conceived to be a self-consistent sequence of steps
`leading to a desired result. The steps are those requiring
`physical manipulations of physical quantities. Usually,
`though not necessarily, these quantities take the form of
`electrical or magnetic signals capable of being stored, trans
`ferred, combined, compared, and otherwise manipulated. It
`has proven convenient at times, principally for reasons of
`common usage, to refer to these signals as bits, values,
`elements, symbols, characters, terms, numbers, or the like. It
`should be borne in mind, however, that all of these and
`similar terms are to be associated with the appropriate
`physical quantities and are merely convenient labels applied
`to these quantities. Unless specifically stated otherwise as
`apparent from the following discussions, it is appreciated
`that throughout the present invention, discussions utilizing
`terms such as "processing" or "computing” or "calculating”
`or "determining" or "displaying" or the like, refer to the
`action and processes of a computer system, or similar
`electronic computing device, that manipulates and trans
`forms data represented as physical (electronic) quantities
`within the computer system's registers and memories into
`other data similarly represented as physical quantities within
`the computer system memories or registers or other such
`information storage, transmission or display devices.
`In the descriptions to follow, numerous specific values are
`given. For example, specific image sizes are given and
`specific compression ratios are given for comparison pur
`poses. It will be appreciated that these specific values are
`shown as examples only, These values can be replaced with
`any of a wide range of values within the spirit and scope of
`the present invention.
`FIG. 1A shows an overview of an example computer
`system of the present invention. The computer system
`generally comprises a bus or other communication device
`100 for communicating information, and processor 101
`coupled with bus 100 for processing information and
`instructions. In one implementation, processor 101 is an
`Intel(B) architecture microprocessor; however, the present
`invention may utilize any type of microprocessor architec
`ture. In one embodiment, bus 100 includes address, data and
`control buses. The system also includes random access
`memory (RAM) 104 coupled with bus 100 for storing
`information and instructions for processor 101, a read only
`memory (ROM) 105 coupled with bus 100 for storing static
`information and instructions for processor 101, a data stor
`age device 106 such as a magnetic disk and disk drive
`coupled with bus 100 for storing information and instruc
`tions, a display device 107 coupled to bus 100 for displaying
`information to the computer user, an alphanumeric input
`device 108 including alphanumeric and function keys
`coupled to bus 100 for communicating information and
`command selections to processor 101, a cursor control
`device 109 coupled to the bus for communicating user input
`information and command selections to processor 101, and
`a signal generating device 110 coupled to bus 100 for
`communicating command selections to processor 101.
`Ahard copy device 111, such as a plotter or printer, is also
`coupled to bus 100 for providing a visual representation of
`the computer images. In one embodiment, a network con
`necting device 112 is coupled with bus 100 for allowing the
`system to communicate with other computer systems over a
`larger network of computer systems, such as a local area
`network (LAN).
`
`45
`
`50
`
`55
`
`60
`
`65
`
`10
`
`15
`
`20
`
`30
`
`35
`
`6
`In one embodiment, the method of the present invention
`is implemented as a software routine run by processor 101.
`In one implementation, this software routine is included in
`the personal conferencing application PROSHARETM, pro
`duced by Intel® Corporation of Santa Clara, Calif., the
`corporate assignee of the present invention.
`In one embodiment of the present invention, a separate
`compression manager 114 is also coupled with bus 100. In
`this embodiment, compression manager 114 includes cir
`cuitry for implementing the method of the present invention.
`In one implementation, compression manager 114 comprises
`a random access memory or a read only memory, analogous
`to RAM 104 and ROM 105 discussed above, and the method
`of the present invention is contained in compression man
`ager 114 as a computer program.
`FIG. 1B shows an alternate implementation of compres
`sion manager 114. An uncompressed image is received by
`compression manager 114 and input to both controller 150
`and image router 151. Controller 150 determines the proper
`compression technique to use in compressing the image, as
`discussed in more detail below with respect to FIG. 4, and
`outputs a signal to image router 151 indicating the proper
`compression technique. Image router 151 operates in a
`conventional manner to direct the uncompressed image to
`either lossless compressor 152 or lossy compressor 153,
`based on the signal received from controller 150. It should
`be noted that under certain circumstances, discussed in more
`detail below, controller 150 may signal image router 151 to
`route only a portion of the image to lossless compressor 152
`or lossy compressor 153. Lossless compressor 152 com
`presses images using a conventional lossless algorithm.
`Lossy compressor 153 compresses images using a conven
`tional lossy algorithm. Thus, compression manager 114
`outputs a compressed image, with the compression tech
`nique being determined by controller 150. It should also be
`noted that under certain circumstances, discussed in more
`detail below, a particular uncompressed image may be
`compressed twice, using both compression techniques, how
`ever the result of only one of these compressors is output by
`compression manager 114 as the compressed image.
`Returning to FIG. 1A, the display device 107 utilized with
`the computer system of the present invention may be a liquid
`crystal device, cathode ray tube, or other display device
`suitable for creating graphic images and alphanumeric char
`acters (and ideographic character sets) recognizable to the
`user. The cursor control device 109 allows the computeruser
`to dynamically signal the two dimensional movement of a
`visible symbol (pointer) on a display screen of the display
`device 107. Many implementations of the cursor control
`device are known in the art including a trackball, mouse,
`joystick or special keys on the alphanumeric input device
`108 capable of signaling movement of a given direction or
`manner of displacement. It is to be appreciated that the
`cursor visible symbol (pointer) also may be directed and/or
`activated via input from the keyboard using special keys and
`key sequence commands. Alternatively, the cursor may be
`directed and/or activated via input from a number of spe
`cially adapted cursor directing devices, including those
`uniquely developed for the disabled.
`In some implementations of the present invention addi
`tional processors or other components may be included. In
`addition, certain implementations of the present invention
`may not require nor include all of the above components.
`For example, hard copy device 111, display device 107, or
`data storage device 106 may not be coupled with bus 100.
`FIG. 2 shows an overview of an example personal con
`ferencing system of the present invention. Two agents are
`
`Page 10
`
`
`
`7
`shown, agent 201 and agent 202, coupled together by a
`communication medium 200. Communication medium 200
`may be any of a wide variety of communication media. For
`example, communication medium 200 may be a telephone
`line or a LAN connection.
`Agent 201 includes a central processing unit (CPU) 210,
`a user interface 211, a compression manager 212, a data
`storage device 213, and a communication interface 214.
`Agent 201 also includes an internal bus 209 for communi
`cating instructions and data between these components. In
`one implementation of the present invention, agent 201 is
`the computer system shown in FIG. 1A, with compression
`manager 212 of FIG. 2 being compression manager 114 of
`FIG. 1A and CPU210 of FIG.2 being processor 101 of FIG.
`1A. Alternatively, agent 201 may be a processor-based
`facsimile machine.
`CPU 210 retrieves and executes instructions from data
`storage device 213. Data storage device 213 includes both
`instructions and data for use by CPU 210, analogous to
`processor 101 of FIG. 1A. In one embodiment of the present
`invention data storage device 213 is data storage device 106
`of FIG. 1A. Alternatively, data storage device 213 could be
`RAM 104 or ROM 105 of FIG. 1A.
`Returning to FIG. 2, user interface 211 controls the
`transfer of information and requests between agent 201 and
`the user of agent 201. User interface 211 may include, for
`example, display device 107, alphanumeric input device
`108, and cursor control device 109 of FIG. 1A. Requests for
`data or other instructions by the system user are input to
`agent 201 via user interface 211. In addition, data requested
`by the user is displayed or otherwise provided to the user via
`user interface 211. In one embodiment of the present inven
`tion, user interface 211 operates according to an operating
`system being executed by CPU 210 which controls the
`functioning of the entire agent 201. In an alternate embodi
`ment, user interface 211 operates according to a separate
`software program being executed by CPU 210.
`Compression manager 212 performs the steps of selecting
`an image compression process for the present invention. In
`one embodiment, these steps are as shown in FIG. 4 below.
`Compression manager 212 selects the compression process
`for both transfer of data to agent 201 via communication
`interface 214 and communication medium 200, and also for
`storage in data storage device 213. In one embodiment of the
`present invention, the data or image to be compressed is
`indicated by the system user via interface 211. Both this
`request by the user and the data to be compressed are
`indicated to compression manager 212 via CPU 210.
`In one embodiment of the present invention, compression
`50
`manager 212 compresses the data received by CPU 210.
`Compression manager 212 then stores the data, in com
`pressed format, in data storage device 213. In addition,
`compression manager 212 may also transfer the data to
`agent 202 via communication medium 200, depending on
`the request received from user interface 211.
`In an alternate embodiment, compression manager 212
`stores the data received from CPU210 in data storage device
`213. It should be noted that this data stored in data storage
`device 213 is not in compressed format. Then, dependent on
`60
`the request received from interface 211, compression man
`ager 212 compresses the data received from CPU 210, and
`transfers the data to agent 202 via communication medium
`200. Thus, in this embodiment, the data stored in data
`storage device 213 is not in compressed format; however,
`compression manager 212 compresses the data before trans
`ferring it to agent 202.
`
`35
`
`40
`
`45
`
`55
`
`65
`
`5,553,160
`
`10
`
`15
`
`20
`
`25
`
`30
`
`8
`Communication interface 214 provides an interface
`between communication medium 200 and agent 201. Com
`munication interface 214 includes the necessary components
`to transfer signals via the particular communication medium
`being used as communication medium 200. For example,
`communication interface 214 may be a LAN interface or a
`modem.
`In one embodiment of the present invention, agent 201
`includes header information along with the image being
`transferred to agent 202. This header information provides
`information related to the image(s) being transferred. In one
`implementation, this header information includes an indica
`tor of the compression process used by agent 201 in com
`pressing the image, thereby enabling agent 202 to utilize the
`proper decompression process when decompressing the
`image. Additional information may also be included in the
`header information, such as the color resolution of the
`image, the image size when compressed, and the image size
`when uncompressed.
`In one embodiment of the present invention, agent 201
`also receives images from agent 202. In this embodiment,
`agent 202 operates analogous to agent 201 described above.
`When receiving an image, agent 201 decompresses the
`image received. This decompression is performed in a
`conventional manner by agent 201, based on the technique
`used by agent 202 in compressing the image. In one imple
`mentation, CPU 210 performs the decompression. In an
`alternate implementation, compression manager 212 per
`forms the decompression. The compression technique uti
`lized by agent 202 to compress the image is included in the
`header information for the image, as discussed above.
`In one embodiment of the present invention, agent 202 is
`identical to agent 201. Alternatively, agent 202 may include
`additional components not included in agent 201.
`It will be understood by those skilled in the art that
`additional components may be added to or removed from
`agents 201 and 202 of FIG. 2. For example, additional
`components may be coupled to internal bus 209 of agent
`201, such as those components shown coupled to bus 100 of
`FIG. 1A. Furthermore, certain components shown in FIG. 2
`may not be included within the system. For example, agent
`202 may not contain a data storage device. Thus, data
`transferred from agent 201 to agent 202 is output to the user
`of agent 202 via the user interface, however agent 202 does
`not store the received data.
`FIG. 3 is a flowchart showing the steps followed in one
`embodiment of the present invention in storing and trans
`ferring data. The data representing the image is first
`retrieved, step 310. This image is retrieved via CPU 210,
`from either user interface 211 or data storage device 213, of
`FIG. 2. After retrieving the image, the present invention
`determines which compression process to use, step 320. This
`determination is discussed in more detail below with refer
`ence to FIG