throbber
Ulllted States Patent [19]
`Fall et al.
`
`US005991515A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,991,515
`Nov. 23, 1999
`
`[54] METHOD AND APPARATUS FOR
`COMPRESSING AND DECOMPRESSING
`DATA PRIOR TO DISPLAY
`
`5/1993 Inui ....................................... .. 358/296
`5,208,676
`8/1993 Yamada
`~
`5,241,397
`
`5,270,728 12/1993 Lund et a1 5,272,768 12/1993 Bauman et a1.
`
`
`
`Nicholas JI Inventors: Richard NI Fall, Palo Foskett Mt View Davin C Wong
`
`
`
`5,295,233
`
`
`
`Sugiura ................................. .. 3/1994 Ota ........................................ .. 395/115
`
`’
`
`'
`
`’ ,
`
`'
`
`’
`
`5,299,292
`
`3/1994 Kadowaki et al
`
`395/108
`
`Berkeley> an of Cahf-
`
`_
`[73] Asslgneei Adobe Systems Incorporated, San
`Jose, Cahf-
`
`[21] APPL NO‘ 08/893’065
`
`[22] Filed:
`
`Jul- 15’ 1997
`
`_
`_
`Related [15- Appllcatloll Data
`
`[63]
`
`Continuation-in-part of application No. 08/851,529, May 5,
`1997, which is a continuation of application No. 08/484,344,
`Jun. 7, 1995, Pat. No. 5,638,498, which is a continuation-
`in-part of application No. 07/974,204, NOV- 10, 1992, Pat-
`N°~ 5,539,865
`[51] Int. Cl? ......................... .. B41B 15/00, H04N 1/387;
`H04N 1/40; G06K 9/36
`[52] US. Cl. ........................ .. 395/114; 395/117; 395/115;
`395/116; 395/112; 395/111; 358/450; 358/444;
`382/232; 382/233
`_
`[58] Field of Search ................................... .. 395/114, 115,
`395/116, 110, 111, 112, 108, 117; 382/232,
`233, 235, 358/450, 444, 540, 426, 261.3,
`264’ 432’ 433
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`_
`$322552?’ """"""""""""""
`
`. . . .. 358/296
`5,347,368
`9/1994 Mochizuki . . . . . . . . .
`395/108
`5,354,135 10/1994 Sakagami et a1.
`. . . .. 395/115
`5,355,441 10/1994 Kawai et a1. . . . . . . .
`395/110
`5,374,943 12/1994 Lehmann et a1.
`5,377,312 12/1994 Kobayashi ............................ .. 395/116
`FOREIGN PATENT DOCUMENTS
`
`0320014A2 6/1989 European Pat. on. .
`0475601A2 3/1992 European Pat. Off. .
`0475601A3 3/1992 European Pat. on. .
`
`OTHER PUBLICATIONS
`_
`“
`_
`Fred MlIltZef, lntegratlng Image IIIIO Computers fOr Pllb
`lishing” IEEE/IEICE Global Telecommunications Conf.
`1987, Nov. 15—18, 1987, Japan pp. 19.6.1—19.6.4.
`Okada, er a1-, “Adaptive Coding for Text and Dithered
`Continuous—Tone Images”, Fujitsu Scienti?c & Technical
`Journah vol- 23, NO- 2, 1981191199118 101—109
`Primary Examiner_EdWaI-d L~ C0165
`Assistant Examiner—TWyler Lamb
`Attorney) Agent) Or Firm_pish & Richardson p_C_
`
`ABSTRACT
`[57]
`Amethod and apparatus for compressing and decompressing
`display data including methods for predicting compression
`results and correcting compression ratios prior to the com
`pression of object data. The compressed objects are then
`decompressed using a related decompression mechanism
`and sent directly to a driver in the output display device for
`
`5,151,949
`
`9/1992 Miyta . . . . . . . . . . . . . . .
`
`. . . . .. 382/56
`
`Pnmmg or dlsPlaY
`
`5,199,803
`5,207,517
`
`400/121
`4/1993 ShimiZu et a1. .
`5/1993 Ito ......................................... .. 395/110
`
`14 Claims, 23 Drawing Sheets
`
`1O \
`
`12
`
`A
`/14
`
`COMPUTER <——->
`
`V PRINTER
`
`16
`
`V
`
`CRT
`
`18
`
`,2
`\ T
`
`TEXT
`
`G
`
`l
`
`COMPUTER
`
`<———>
`
`12
`
`7
`
`OTHER
`
`R 7
`
`2O
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 001
`
`

`
`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 1 0f 23
`
`5,991,515
`
`99 I
`
`12
`
`COMPUTER
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 002
`
`

`
`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 2 0f 23
`
`5,991,515
`
`mowwwoomm
`
`
`
`, #965
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 003
`
`

`
`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 3 0f 23
`
`5,991,515
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 004
`
`

`
`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 4 0f 23
`
`5,991,515
`
`m3
`
`mzmuw
`
`S22E25
`
`mmw
`
`662mm
`
`wow
`
`wow
`
`cow
`
`omw kmuoomo
`
`
`
`omw . houoowa
`
`
`
`wow CQwwEQEQQ
`
`
`
`,. mEmcm
`
`vow :QwwmEEoO
`
`
`....wE.mcm_
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 005
`
`

`
`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 5 0f 23
`
`5,991,515
`
`m;
`
`m;
`
`on
`
`B 033
`
`cow
`
`wow
`
`6:02:00
`
`
`
`
`
`Ema 66mm CQmwwEEQO
`
`I 99%
`
`NN
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 006
`
`

`
`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 6 0f 23
`
`5,991,515
`
`420
`
`424-1
`
`424-2
`
`424-3
`
`424-4
`
`424-5
`
`424-6
`
`424-7
`
`w H
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 007
`
`

`
`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 7 0f 23
`
`5,991,515
`
`I
`450
`lderci'iyeafosrcan /
`_
`Processmg
`
`Provide Scan
`Line Position
`' Data to the
`D ecompressor
`
`452 /
`
`V
`Retrieve Object /454
`Descriptor From
`Memory
`
`455
`
`457
`
`Retrieve Next
`Object
`
`Does
`bject Intersec Yes
`the Scan
`Line?
`
`-
`-
`458
`sltgzgrlsllét'isg of /
`-
`9
`Objects
`
`456
`Any More
`Objects to
`Process?
`
`462
`/
`Pass Object
`Entry Information
`to the
`Appropriate
`Decoder
`
`461
`/
`
`460
`
`Determine Object
`.
`.
`<-— Data Type for <— 5222:? ‘Fits;
`Each Entry in List
`p
`
`466
`/
`
`Retrieve and
`Decompress Data
`for the Object
`from Memory
`
`Has
`
`Partially
`I ecoded'7
`
`464
`
`465
`
`Retrieve State
`I nfo rm ation
`
`Has
`Object Been Compietly
`Decompressed ?
`
`No
`
`Store State
`Information
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 008
`
`

`
`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 8 0f 23
`
`5,991,515
`
`42
`
`Rasterize and Compress
`Input Data of a Page Based
`Upon Rasterized Object
`Types and Store
`
`l
`
`Decompress Based upon
`Compression Algorithm and
`Display
`
`44
`
`46
`
`Another Page?
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 009
`
`

`
`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 9 0f 23
`
`5,991,515
`
`52
`
`44
`
`69
`
`Yes 70
`
`Set Compression
`Level to Lowest
`Level
`t
`Represent All
`/
`Bands as
`Compressed Form
`of Whitespace
`l
`Create and Empty
`Collector Per
`Band
`
`Display List
`Storage
`Exhausted?
`
`No
`
`Retrieve Input
`Object
`t
`Store Type and
`Bounding Box of
`Input Object in
`Collector for Bands
`Spanned by Object
`l
`Add Input Object
`to Display List
`I
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 010
`
`

`
`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 10 0f 23
`
`5,991,515
`
`Select a Band,
`Having Display List
`Entries
`
`72
`/
`
`ls Band A Data in
`Compressed State?
`
`44
`
`Is an Uncompressed
`Band Buffer
`Available?
`
`Decompress Band Data
`Into Uncompressed Band
`Buffer
`
`Rasterize Display List
`Entries of Band A Into /
`Uncompressed Band
`B ff
`77
`u er
`Set A = The Band ID of /
`r—————@<i Band in Uncompressed
`80
`Band Buffer
`Attempt to /
`Compress Band A
`Data
`
`Compressed
`Data Fits?
`
`All Display Lists
`with Entries
`Processed?
`
`At End of
`Page?
`
`88
`
`79. 4%
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 011
`
`

`
`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 11 0f 23
`
`5,991,515
`
`44
`
`92
`
`Failure
`
`93
`
`90
`
`Higher Level of
`Compression
`Available?
`
`94
`Advance to Next Higher /
`Compression Level
`
`96
`
`Any Compressed
`Bands Not at Current
`Compression Level?
`
`Select a Band "B" at a
`Lower Compression
`Level
`
`98
`
`1
`
`Decompress Band B into
`Uncompressed Band
`Buffer
`
`l
`
`Attempt to Compress
`Band B Data at Current
`Compression Level
`
`100
`
`102
`
`104
`
`Compressed Band
`B Fits?
`
`1 08
`
`Yes
`Policy to
`Recompress All
`Bands?
`
`Yes
`
`4a
`
`106
`/
`
`Recompress Band B
`at Previous Lower
`Compression Level
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 012
`
`

`
`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 12 0f 23
`
`5,991,515
`
`112
`
`113+
`
`115 ->
`
`117 —->
`
`119 —>
`
`112
`
`121 —>
`
`123 —>
`
`125 —>
`
`W 4d
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 013
`
`

`
`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 13 0f 23
`
`5,991,515
`
`0.6: 02m 2 H2.
`
`B950
`25
`
`mm?
`
`s .2 tap
`
`All
`
`N:
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 014
`
`

`
`U.S. Patent
`
`Nov. 23, 1999
`
`32f0414|.eehS
`
`5,991,515
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 015
`
`

`
`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 15 0f 23
`
`5,991,515
`
`66
`
`New Object Can
`Combine Easily With
`Object Of Same Type?
`
`.
`.
`136
`cmgg'g‘cet'g'ke /
`1
`
`Yes
`
`Enough Storage In
`Collector To Add
`Object's Info?
`
`146
`
`142
`Force Object
`Combinations To /
`Free Storage
`
`144
`Add Object Type /
`And BBox Info To
`Collector
`
`79- 5
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 016
`
`

`
`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 16 0f 23
`
`5,991,515
`
`148 @
`
`136
`
`150
`
`Retrieve Bounding
`Box Coordinates
`of New Object and
`Stored Object
`i
`Replace Any BBox
`Coordinates of Stored Object
`152
`with Corresponding BBox
`/
`Coordinates of New Object if
`Conditions Met
`
`154
`
`142
`
`@1 56
`
`158
`
`Compute the Cost of
`Combining Collected Objects
`with Other Collected Objects
`of the Same Type.
`i
`Select Bounding Box
`Coordinates of the Object Pair
`Having the Smallest Cost of
`Combination
`i
`Replace the Two Selected
`162
`Objects with a New Combined
`Object Having the Same Type /
`and Each BBox Coordinate
`from One of the Two Objects
`
`160
`
`More Combinations
`Possible?
`
`Desired Number of
`Combinations
`done?
`
`164
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 017
`
`

`
`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 17 0f 23
`
`5,991,515
`
`180
`
`Using Collected Object Data, Find a
`Set of Non-intersecting Rectangular
`Regions that Covers All Objects in
`Band
`
`182
`
`80
`/
`
`Assign Each Region an Empty Set of
`Types and Set Each Region's
`"Marked" Flag to False
`
`184
`
`L
`'= 0
`
`I
`
`i = i + 1
`
`186
`N0
`
`i < Nomber of
`Objects ll'l
`Band
`
`LYes
`
`188
`For the Set of Regions Covering
`Object (i), Add the Type of Object /
`(i) to Each Region and Set Each
`Region's Marked Flag to "True"
`
`194
`Assign the Best
`Compression Algorithm to /
`Each Region Based on the
`Type of Each Region and
`Other Factors
`
`5
`Combine Any Eligible
`Regions Based on Criteria
`
`196
`
`7 ' 5
`‘9’
`
`200
`
`198
`Attempt to Compress Band
`Data from Regions into /
`Compressed Band Buffer
`According to Assigned
`Algorithms
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 018
`
`

`
`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 18 0f 23
`
`5,991,515
`
`202
`
`203
`
`204
`
`\y ‘[212 ALGORITHM TABLE
`f ALG Entry 1 (LZW) Parameters 1)
`201 KP ALG Entry 2 (DCT - Based) [Parameters 2]
`ALG Entry 3 (LZW) [ Parameters 3]
`ALG Entry 4 (DCT - Based) [ Parameters 4]
`ALG Entry 5 (LZW and DPCM) [ Parameters 5]
`ALG Entry 6 (LZW and DPCM) [ Parameters 6]
`ALG Entry 7 (PDR) [ Parameters 7]
`
`$769 (7e
`
`Text
`
`lmaqe
`
`No
`Yes
`
`No
`No
`
`No
`
`No
`
`No
`
`Yes
`
`Yes
`
`No
`
`No
`
`Yes
`
`Yes
`
`Yes
`
`Yes
`
`Yes
`
`INDEXING TABLE
`Graphic
`208 209
`
`205
`
`21 1
`
`No
`
`(N
`
`Algor?tm Assigned)
`No (Q = 0, CR = 2.0, ALG Entry 1) )}207a
`
`/ (Q = 2, CR = 5.0, ALG Entry 3)
`(Q = 4, CR = 10.0, ALG Entry 5
`
`207
`
`Yes (Q = 0, CR = 2.0, ALG Entry 1)
`2130
`(Q = 0, CR = 3.0, ALG Entry 3)
`(Q = 4, CR = 3.0, ALG Entry 6)
`No (Q = 0, CR = 4.0, ALG Entry 2)
`é (Q = 1, CR = 7.0, ALG Entry 4)
`213
`(Q = 3, CR = 9.0, ALG Entry 5)
`Yes (Q = 0, CR = 2.0, ALG Entry 1)
`(Q = 3, CR = 5.0, ALG Entry 5)
`(Q = 5, OR = 5.0, ALG Entry 6)
`Yes (Q = 0, CR = 2.0, ALG Entry 6)
`(Q = 2, OR = 2.5, ALG Entry 2)
`(Q = 3, CR = 5.0, ALG Entry 7)
`No (Q = 0, CR = 2.0, ALG Entry 6)
`(Q = 1, CR = 3.0, ALG Entry 5) 2075
`(Q = 4, CR = 4.5, ALG Entry 2)
`213
`Yes (Q = 0. CR = 1.5, ALG Entry 5)
`(Q = 2, CR = 2.0, ALG Entry 4)
`
`3759 8%
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 019
`
`

`
`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 19 0f 23
`
`5,991,515
`
`210
`
`Create Array of All X Coordinates that /212
`Describe Left or Right Edges of
`Bounding Boxes in Band
`
`I
`
`Sort Array of X Coordinates in Order of 214
`Increasing X and Remove Duplicate /
`Values: nX = Number of Values in
`Resulting Array
`
`I
`
`Create Array of All Y Coordinates that /216
`Describe Top or Bottom Edges of
`Bounding Boxes in Band
`
`I
`
`Sort Array of Y Coordinates in Order of 218
`Increasing Y and Remove Duplicate /
`Values: nY = Number of Values in
`Resulting Array
`
`I
`
`220
`Divide Band into (nX-1) (nY-1) /
`Rectangular Regions
`
`223
`
`221
`REGION DATA STRUCTURE /
`222\ Master Flag
`224
`Slave Flag /
`226\ Marked Flag 228
`X Index __/
`230\ Y Index
`232
`Object Types /
`
`.
`
`749' q“
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 020
`
`

`
`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 20 of 23
`
`5,991,515
`
`For Each Row of Regions,
`Combine Adjacent Regions
`Having the Same
`Compression Algorithm
`
`Combine Pairs of Non-
`
`Empty Regions with Empty
`Regions separating the Pair
`if Hardware Constraints
`
`Violated on that Row of
`
`Regions
`
`.
`Hardware Constraints
`Still Violated in a Row?
`
`Combine Vertically Adjacent
`Regions When Possible and
`Cost Within Limits
`
`Force
`
`Combinations of
`Addmonm
`Regions Within
`Row
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 021
`
`

`
`U.S. Patent
`
`N0v.23, 1999
`
`Sheet 21 of 23
`
`5,991,515
`
`Designate and Mark
`Lower Left Region as
`Master and Rest of
`
`Regions in Group as
`Slaves
`
`Augment the Object
`Type of the Master with
`All the Object Types of
`the Slave Tiles
`
`Mark Master with the
`Boundaries of Set of
`
`Slaves
`
`Cause All Slaves to Point
`to Master
`
`Read Attributes for a
`Non-Entry Region
`From Region Buffer
`
`Create Region
`Descriptor for Non-
`Empty Region Using
`Attributes
`
`Attempt to Compress
`Non—Empty Region
`From Uncompressed
`Band Buffer Specified
`by Attributes
`
`‘ nother Region
`in Region
`Buffer?
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 022
`
`

`
`U.S. Patent
`
`Nov. 23, 1999
`
`Sheet 22 of 23
`
`5,991,515
`
`290
`
`Load a Number of Regions
`Descriptors into
`Decompression Buffer
`
`296
`
`Determine Regions Crossed
`By Next Scan Line
`
`298
`
`Scan Line Pointer at a
`Region?
`
`Output Background Pixels to
`Display Until Scan Line Pointer
`Points to Start of Region or
`End of scan Line
`
`Get Decompression State for
`Region
`
`Pointer at Start of
`Region?
`
`Decompress and Output
`Region Data Until Scan Line
`Pointer Points to End of
`Region
`
`Pointer at End of Scan
`Line?
`
`Completed Any
`
`yes
`
`Load Additional Region
`
`Regions? I Descriptors
`
`312
`
`Pointer at End of Page?
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 023
`
`

`
`U.S. Patent
`
`Nov. 23, 1999
`
`32f0324|.eehS
`
`5,991,515
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 024
`
`

`
`7
`7
`5 991 515
`
`1
`METHOD AND APPARATUS FOR
`COMPRESSING AND DECOMPRESSING
`DATA PRIOR TO DISPLAY
`
`This is a continuation—in—part of U.S. application Ser. No.
`08/851,529, filed on May 5, 1997, which is a continuation of
`US. application Ser. No. 08/484,344, filed on Jun. 7, 1995
`(Which issued as U.S. Pat. No. 5,638,498), which is a
`continuation-in-part of U.S. application Ser. No. 07/974,
`204, filed Nov. 10, 1992 (which issued as US. Pat. No.
`5,539,865.
`
`5
`
`BACKGROUND
`
`The present invention relates generally to the display of
`data by output devices, and more particularly to a method
`and apparatus for compressing and decompressing data prior
`to display on an output display device.
`A computer system can output data to a wide variety of
`output display devices. Output display devices such as laser
`printers, plotters, and other printing devices produce an
`image or “visual representation” onto a sheet of paper or the
`like, while output display devices such as computer moni-
`tors develop visual representations on a computer screen.
`Many output display devices receive display data in the
`form of a “bitmap” or “pixel map” and generate visual
`representations from the display data. A pixel is a funda-
`mental picture element of a visual representation generated
`by a display device, and a bitmap is a data structure
`including information concerning a number of pixels of the
`representation. Bitmaps that contain more than on/off infor-
`mation are often referred to as “pixel maps.” As used herein,
`both bitmaps and pixel maps are referred to as “bitmaps.”
`Aprinter can print dots on a piece of paper corresponding
`to the information of a bitmap. Alternatively, a computer
`monitor can illuminate pixels based upon the information of
`the bitmap. A “raster” output device creates a visual repre-
`sentation by displaying the array of pixels arranged in rows
`and columns from the bitmap. Most output devices, other
`than plotters, are raster output devices. Typically, a “page”
`of pixels corresponding to a printed or displayed page is
`received and stored in memory before the pixels are dis-
`played by the output display device.
`A visual representation can contain a number of image
`types, including text, graphics, photographic images, etc.
`Data of these types can be efficiently stored in files with
`other image information as high level “objects.” An
`“object”, as referred to herein,
`is the data and attributes
`defining a particular visual representation. The objects can
`be edited or otherwise manipulated using an application _
`program (“software”) running on a computer. When display-
`ing the objects with an output display device such as a
`printer or display screen,
`the objects are typically first
`rasterized (or “rendered”) into bitmaps. The output display
`device stores display bitmap data in memory before display-
`ing the data.
`A problem in the prior art methods of providing bitmaps
`to output display devices is that a large amount of storage
`space is required to store the bitmap before it is displayed.
`The requirements for storage space have become greater as
`the desire for liigh-resolution representations with more
`realistic attributes has become more prominent. For
`example, using a laser printer capable of printing black—and—
`Wliite images at a resolution of 600 dots per inch (dpi), a
`typical displayed page requires about 3.8xl05 bytes of
`memory. When printing a page of color pixels, for example,
`having 8 bits of color per pixel, the memory requirement
`
`.
`
`2
`l2l><l05 bytes of memory. With such
`increases to about
`memory requirements, a significant portion of the cost of
`manufacturing an output display device such as a
`laser
`printer is the cost of the required memory.
`A method that has been used to reduce the memory
`requirements for displaying high—resolution images involves
`the compression of the bitmap data according to a compres-
`sion method or algorithm. A compression algorithm can
`significantly reduce the space needed to store bitmaps by
`removing information from bitmaps or other objects. Some
`compression algorithms are “lossless”, meaning that they
`compress data and reduce storage requirements with no loss
`of essential information. This type of compression is often
`used with text objects and the like, since text character codes
`often include extra information unrelated to the identity of
`the text characters. Other types of compression algorithms
`are “lossy”, meaning that they compress data with some loss
`of information. These types of compression algorithms are
`typically used with image bitmap data, since the loss of
`information can often be unnoticeable in a high resolution
`image. When the compressed bitmap is to be displayed, it is
`decompressed using a corresponding decompression algo-
`rithm and sent to a print engine, monitor, or other output
`display device.
`A problem with the compression methods of the prior art
`occurs when different types of objects are to be displayed by
`an output display device. For example, a page of data can
`include text objects such as words or paragraphs, graphics
`objects such as bar charts or geometric shapes, and image
`objects such as a digitized photograph. A compression
`algorithm that is good for text objects may, for example, be
`less than adequate for image objects, and vice versa. For
`example, lossy compression techniques may be adequate for
`image objects in that they can highly compress the image
`object data, but may be less than adequate for text objects,
`where the lost data would be apparent. A lossless compres-
`sion technique is good for text objects, but may not
`adequately compress image objects. Thus, the selection of a
`single compression algorithm will almost always result in a
`less-than-optimal compression of mixed object types.
`In addition, conventional compression methods compress
`object data based on a compression factor or ratio. The
`compression ratio determines the amount of compression
`required to achieve a particular compression result. The
`compression ratio may be user defined or set based on
`available memory resources. For example, in the processing
`of a page of data, compressed memory wl1icl1 is used to store
`compressed data objects of varying types may become full.
`If more objects remain to be processed for a given page, then
`the compression ratio used to originally compress the object
`data may be required to be changed. Thereafter, the data
`stored in compressed memory is required to be decom-
`pressed and recompressed based on the new compression
`ratio, a process referred to as cycling. The cycling process is
`very time consuming.
`The decompression of compressed data objects from
`compressed memory is another time consuming process.
`Conventional decompression methods require the decom-
`pression of object data directly into memory. Accordingly,
`the printing of an image by a printer employing conventional
`decompression methods is slowed by the inability of the
`printer to decompress object data directly to a print engine.
`SUMMARY OF THE INVENTION
`
`The present invention provides a method and apparatus
`for compressing and deconipressing display data. The
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 025
`
`

`
`7
`7
`5 991 515
`
`3
`present invention compresses multiple types of data objects
`using compression mechanisms that are optimized for each
`type of object according to user constraints and which
`include methods for predicting compression results and
`correcting compression ratios prior to the compression of
`object data. The compressed objects are then decompressed
`using a related decompression mechanism and sent directly
`to a driver in the output display device for printing or
`display.
`The apparatus of the present invention includes a digital
`output processing system with selective object compression
`and decompression. A rasterizer converts data objects into
`bitmap objects of various types. A compressor compresses
`the bitmap objects with a selected compression mechanism.
`The particular compression mechanism selected is
`dependent, at least in part, on the type of the particular
`bitmap object being compressed. For example, if the bitmap
`object is a text type, a gaphics type, or an image type, then
`a compression mechanism best suited to text, graphics, or
`image data, respectively, is selected. The selection of com-
`pression mechanism and compression ratio also depends on
`the size of the available memory to store the compressed
`data and overall page analysis. The compressor analyzes
`data objects prior to compression to determine the suitability
`of the current (user defined or default) compression ratio. In
`the event, the compressed memory is unable to store the
`compressed object data, cycling may be initiated prior to the
`compression of the current object data. The compression
`mechanism produces compressed bitmap regions and stores
`the compressed bitmap regions in digital read/write com-
`pressed memory associated with an output device.
`A decompressor decompresses the compressed bitmap
`regions with a selected decompression mechanism deter-
`mined by the selected compression mechanism for a given
`region. The decompression mechanism for a particular com-
`pressed bitmap region is dependent upon the compression
`mechanism used to compress the bitmap region. The decom-
`pression mechanism then supplies the uncompressed bitmap
`regions to an output display device for display. Suitable
`output display devices include printer devices and display
`screens.
`
`_
`
`The data objects input to the apparatus of the present
`invention are organized into at
`least one page that has
`multiple sections, called “bands.” The bands preferably have
`a display order on the page, and bands of the page are /
`displayed by the output display device in the display order.
`The data objects are stored in display lists corresponding to
`the bands of the page. Preferably, the bitmap objects and
`other background data in the band are rasterized and divided
`into non—intersecting bitmap regions which cover the band.
`The regions are designated as either empty regions covering
`no objects, or non-empty regions covering objects. The
`bitmap regions can be combined into larger regions accord-
`ing to specified constraints. Only the non-empty bitmap
`regions are preferably compressed by the compression
`mechanism according to the assigned compression algo-
`rithms. The decompressor decompresses one page at a time
`by determining where an output scan line intersects regions
`on that scan line and decompressing the compressed regions
`directly to a engine in the output device when the scan line
`intersects the regions. The decompressor outputs back-
`ground data when the scan line does not
`intersect
`the
`compressed regions.
`The present
`invention includes numerous advantages.
`Object data may be pre-screened prior to compression to
`assure that the compression ratio selected will allow for the
`storage of the object data in compressed memory.
`
`4
`Decompressed object data may be provided directly to a
`print driver in a output display device without requiring
`storage in memory.
`These and other advantages of the present invention will
`become apparent to those skilled in the art upon a reading of
`the following specification of the invention and a study of
`the several figures of the drawing.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`5
`
`FIG. 1 is a block diagram of a computer system for
`displaying a page having objects of different types in accor-
`dance with the present invention;
`FIG. 2 is a block diagram of an output device suitable for
`use with the present invention;
`FIG. 2a is a block diagram of a digital processor as shown
`in FIG. 2;
`FIG. 2b is a block diagram of the ASIC of FIG. 2 for
`compressing and decompressing object data;
`FIG. 2c is a block diagram of the compressor of FIG. 2b;
`FIG. 2d is a diagrammatic illustration of a page of objects,
`the page being divided into bands;
`FIG. 26 is a flow diagram illustrating the process of
`decompressing objects for display by an output device
`according to the present invention;
`FIG. 3 is a fiow diagram illustrating the process of
`displaying data with reduced storage requirements accord-
`ing to the present invention;
`FIG. 4a is a flow diagram illustrating the first portion of
`the rasterize and compress input data step of FIG. 3;
`FIG. 4b is a flow diagram illustrating the second portion
`of the rasterize and compress input data step of FIG. 3;
`FIG. 4c is a flow diagram illustrating the third portion of
`the rasterize and compress input data step of FIG. 3;
`FIG. 4d is a diagrammatic illustration of a page of objects,
`the page being divided into bands;
`FIG. 4e is a diagrammatic illustration of a band including
`objects;
`is a diagrammatic illustration of the band of
`FIG.
`objects of FIG. 46 that has been partitioned into non-
`intersecting regions;
`FIG. 5 is a flow diagram illustrating a step of FIG. 4a in
`which input object type and bounding box information is
`stored in collectors associated with bands;
`FIG. 6 is a flow diagram illustrating a step of FIG. 5 in
`which like objects in a collector are joined;
`FIG. 7 is a flow diagram illustrating a step of FIG. 5 in
`which object combinations in a collector are forced to free
`storage;
`FIG. 8 is a flow diagram illustrating a step of FIG. 4b in
`which a band is compressed;
`FIG. 8a is a table of algorithm entries referenced by the
`process of FIG. 8 to assign algorithms to regions;
`FIG. Sb is a table of indexes into the algorithm table of
`FIG. 8a for assigning algorithms to regions;
`FIG. 9 is a flow diagram illustrating a step of FIG. 8 in
`which non—intersecting rectangular regions are designated in
`the band to be compressed;
`FIG. 9a is a diagrammatic illustration of a data structure
`describing a region of FIG. 9;
`FIG. 10 is a flow diagram illustrating a step of FIG. 8 in
`which eligible regions are combined;
`FIG. 11 is a flow diagram illustrating steps of FIG. 10 in
`which regions are combined;
`
`Veritas Techs. LLC
`Exhibit 1007
`Page 026
`
`

`
`7
`7
`5 991 515
`
`5
`FIG. 12 is a flow diagram illustrating a step of FIG. 8 in
`which a band is attempted to be compressed;
`FIG. 13 is a flow diagram illustrating a step of FIG. 3 in
`which the compressed data is decompressed and displayed;
`and
`
`FIG. 13a is a diagrammatic illustration of a band and the
`scanning of the band to decompress data.
`DETAILED DESCRIPTION
`
`invention is well—suited for reducing the
`The present
`storage space requirements for rasterized data that is to be
`sent
`to an output display device. However,
`the present
`invention can also be used to generally reduce storage
`requirements when storing data of different
`types for a
`variety of purposes.
`Anumber of terms are used herein to describe images and
`related structures. “Visual representation” refers to the
`image produced by an output device on a sheet of paper,
`display screen, etc. The term “image” is used to describe a
`type of visual representation or “object type.” “Pixel” refers
`to a single picture element of a displayed visual represen-
`tation. Taken collectively, the pixels form the representation.
`“Bitmap" refers to bits stored in digital memory in a data
`structure that represents the pixels. As used herein, “bitmap”
`can refer to both a data structure for outputting black and
`white pixels, where each pixel either is on or o , as well as
`a “pixel map” having more information for eaca pixel, such
`as for color or gray scale displays. “Raster”, as used herein,
`refers to the arrangement of pixels on an output device that
`creates a visual representation by displaying an array of
`pixels arranged in rows and columns. Raster output devices
`thus include laser printers, computer displays, video
`displays, LCD displays, etc. “Render” and “rasterize” refer
`to the creation of an object bitmap from object primitives,
`such as a character outline or object in a display list. Both
`object primitives and object bitmaps are referred to as
`“objects” herein, where an “object" includes type and loca-
`tion information as well as data describing a visual repre-
`sentation which is to be derived from the object.
`In FIG. 1, a computer system 10 suitable for reducing
`storage requirements in the display of visual representations
`includes one or more digital computers 12, a communica-
`tions bus 14, a printer 16, a display (CRT) 18, or other output
`display device 20. The output of devices 16, 18, or 20 is a
`visual representation on a displayed page 22. Digital com-
`puters 12 can be personal computers (such as an IBM-PC
`AT—compatible or Apple Macintosh personal computer),
`workstations (such as
`a SUN or Hewlett-Packard
`workstation), etc. Computers 12 typically each include a
`1']1lC1’OpI'OC€SSOI',
`3. 1'l'1CI1'lOfy bus, random IICCCSS I1'1CI1'lOI'y
`(RAM), read only memory (ROM), peripherals such as input
`devices (keyboard, pointing device, voice recognizer, etc.),
`and storage devices (floppy disk drive, hard disk drive, etc.).
`In an alternate embodiment of the present invention, display
`data can be sent to other memory devices or storage devices
`instead of being sent to output display devices.
`Printer device 16 is an output display device that can
`produce a printed visual representation of a displayed page
`22 on a piece of paper, a transparency, etc. In the present
`embodiment, printer device 16 is a raster device which
`creates the visual representation with a plurality of printed
`dots arranged in rows and columns corresponding to a
`bitmap. That is, a bitmap can be input to the printer device
`16 and the bits of the bitmap can be displayed as pixels.
`Alternatively, higher-level objects can be sent to the printer
`device 16, and the printer can perform the rasterization
`process.
`
`/
`
`_
`
`6
`Display 18 is an output display device that displays visual
`representations on a screen. Display 18 can include a cath-
`ode ray tube (CRT), which is typically operated as a raster
`device. Other types of displays include LCD screens, elec-
`troluminescent displays, etc.
`Other output display device 20 is any other form of device
`used to display a visual representation, in either a temporary
`or permanent form. Other output display devices include
`projection devices, plotters, etc.
`To display visual representations on an output display
`device, such as printer device 16, display 18, or other output
`device 20, one or more types of procedures can be imple-
`mented. One procedure is to input data objects, and then
`rasterize bitmaps from the objects. For example, the object
`of a text character can include associated information which
`specify how the character is to be displayed, such as
`positional coordinates, size, font, etc.
`A well known page description language for specifying
`objects and related information is the PostScript® language
`by Adobe Systems, Inc. of San Jose, Calif. The ob_ject can,
`for example, include a bitmap describing a text character, or
`the object can reference or point to stored character outlines
`which describe the shape of a character and include other
`rasterizing information, such as font and size. Awell-known
`character outline format is the Type 1® format, by Adobe
`Systems, Inc. In addition, objects such as graphical shapes
`can be stored as graphic primitives, which are basic shape
`objects used to form more complex graphical sha

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket