AU702905B2 - Data storage format - Google Patents

Data storage format Download PDF

Info

Publication number
AU702905B2
AU702905B2 AU28529/95A AU2852995A AU702905B2 AU 702905 B2 AU702905 B2 AU 702905B2 AU 28529/95 A AU28529/95 A AU 28529/95A AU 2852995 A AU2852995 A AU 2852995A AU 702905 B2 AU702905 B2 AU 702905B2
Authority
AU
Australia
Prior art keywords
control points
segments
straight line
storing
curve
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
AU28529/95A
Other versions
AU2852995A (en
Inventor
Anthony David Piper
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Information Systems Research Australia Pty Ltd
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AUPM8224A external-priority patent/AUPM822494A0/en
Application filed by Canon Information Systems Research Australia Pty Ltd, Canon Inc filed Critical Canon Information Systems Research Australia Pty Ltd
Priority to AU28529/95A priority Critical patent/AU702905B2/en
Publication of AU2852995A publication Critical patent/AU2852995A/en
Application granted granted Critical
Publication of AU702905B2 publication Critical patent/AU702905B2/en
Assigned to CANON KABUSHIKI KAISHA reassignment CANON KABUSHIKI KAISHA Alteration of Name(s) in Register under S187 Assignors: CANON INFORMATION SYSTEMS RESEARCH AUSTRALIA PTY LTD, CANON KABUSHIKI KAISHA
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Description

S F Ref: 310384
AUSTRALIA
PATENTS ACT 1990 COMPsLETSE CIFCATIQN FOR A STANDARD PATENT
ORIGINAL
Name and Address of Applicant: Canon Kabushikl Kaisha 30-2, Shimomaruko 3-chome Ohta-ku Tokyo 146
JAPAN
Canon Information Systems Research Australia Pty Ltd 1 Thomas Holt Drive North Ryde New South Wales 2113
AUSTRALIA
Anthony David Piper Spruson Ferguson, Patent Attorneys Level 33 St Martins Tower, 31 Market Street Sydney, New South Wales, 2000, Australia Actual Inventor(s): Address for Service: Invention Title: ASSOCIATED PROVISIONAL [31] Application No(s) PM8224 Data Storage Format APPLICATION DETAILS [33] Country
AU
[32] Application Date 16 September 1994 The following statement is a full description of this invention, incluuing the best method of performing it known to me/us:- 5815
I
-1A- DATA STORAGE FORMAT Field of the Invention The present invention relates to data storage format for computer graphic objects and more particularly discloses an efficient method of storing edges of computer graphic objects.
Background Art In modern computer graphic imaging systems, the images to be created are often stored within the computer system by means of storing their outline and associated internal colour information. For example, the character which is to be rendered on a display or printing device is normally stored in a device independent format by storing the outline of the device, which often comprises a series of splines to define the border of the character and a representation of its internal colour. Other more arbitrary *objects, having a different border structure, can also be stored by means of storing an outline in the form of splines, Where there is a large number of images, with a large proportion of each image S* to be stored in a spline outline format, there is a general need for an efficient and effective way of storing splines so as to minimise the amount of space taken up by their storage while simultaneously allowing for rapid access to the spline data format.
Summary of the Invention 20 It is an object of the present invention to provide an effective storage format for graphical objects made up of splines or the like.
In accordance with one aspect of the present invention there is provided a method for storing data defining a graphical outline of an object, said graphical outline comprising a series of curve segments, said method comprising the steps of: determining those curve segments which comprise straight line segments; storing a first number of associated control points for each of said curve segments which do not comprise straight line segments; and 13103841(zedgt041CFP036SAUI JUAA .srzedgP1zedge04Jauqpeo doc:LDP -2storing a reduced number of associated control points for each of said curve segments which comprise straight line segments.
Bricf Description of the Drawings The preferred embodiment of the present invention will now be described in relation to the accompanying drawings in which: Fig. 1 illustrates two splines and their associated control points; Fig, 2 illustrates the straight line form of a spline; Fig. 3 illustrates a graphical object; Fig. 4 illustrates the data structure utilised to store a graphical object; Fig. 5 illustrates a "Straight Line Aware" block; Fig. 6 illustrates a portion of the object of Fig. 3 in more detail; Fig. 7 illustrates the data structure for storing the fragment of Fig. 6; Fig. 8 illustrates relative and absolute value storage formats utilised for storing data points with the preferred embodiment; Fig. 9 depicts a flow diagram representation of a broad aspect of the present invention; and Fig. 10 is a schematic block diagram representation of a system configured for operation in accordance with the preferred embodiment.
Detailed Description S .The preferred embodiment of the present invention will be described in relation to the storage of splines which, as noted previously, is the traditional form for storing graphic outlines. A cubic B6zier spline is normally defined by means of four data or control points, which consist of the two end points of the spline and two tangential control points. For example, Fig. I shows two splines 1 and 2. The first spline 1 has end points 3 and 4 and tangential control points 5 and 6. Similarly, the second spline 2 has end points 7 and 8 and tangential control points 9 and 10. For further information on the nature and variations on the spline format, reference is made to a standard text such as "Computer Graphics, Principles and Practice" by Foley et al, published 1990 (310384)(zadge4)CFP0365AU) 313 4lizodle04)CIpP0365AU) LOP -3by the Addison Wesley Publishing Company, Reading, MA and more particularly Chapter 11 thereof.
It is has been found, as a result of statistical studies conducted by the present applicant, that the nature of splines stored in a computer graphics system normally take on certain characteristics. For example, there is normally a large number of splines that are equivalent to straight line segments where the control points lie on part of the line. For example, referring now to Fig. 2, there is shown a spline 12 having end points 13 and 14 and tangential control points 15 and 16. It can be seen, that the spline 12 has degenerated to a straight line segment in which the control point s15 and 16 lie on the spline 12.
Other characteristics include the fact that each spline is normally connected to another spline which is further connected to other splines so as to build up the border of various objects.
Referring now to Fig. 3, there is shown an object 18 made up of a series of 15 splines 20-28. The splines 20, 23, 24, 25 and 28 have degenerated to straight line segments and, as such their tangential control points need not be stored, thereby evidencing a substantial saving in storage space. The outline of the object 18 can then be stored in a "Straight Line Aware" (SLA) data structure or block of storage which maximises the stored information content. The object 18 of Fig. 3 could then be stored in a data structure 30 of Fig. 4. This data structure comprises a Start X and Start Y value which indicate an anchor point, say 31, on the object 18 which is a starting point for the object. This is followed by an indicator, denoted Num Curves which indicates the number of curves or splines to follow, which in the case of the object 18 of Fig. 3, is equal to 9. Subsequently, a series of SLA blocks 32 are stored within the data structure 30 with each SLA blocks 32 storing a series of splines. The number of curves or splines stored within each SLA block 32 is normally four, with the last SLA 32 block only storing the remainder number of curves.
1310384)(zedge04)CFP0365AUI Ig3 LDP84)(zedgeO4)CFPO3I3SAUI hi' Referring now to Fig. 5, there is shown a single SLA block 32 which comprises an SLA control byte and a series of data 33 relating to four curves. The SLA control byte consists of 1 byte (8 bits) of information, with each successive 2 bits referring to subsequent curves following the SLA control byte. The 2 bit indicator of the curved type is in accordance with Table 1 below: TABLE 1 Indicator Description 00 Diagonal line, curve contains two values; x and y 01 Horizontal line, curve contains one value for x only Vertical line, curve contains one value for y only 11 General spline, curve contains three value pairs With reference to the object 18 of Fig. 3, the first SLA block data structure will therefore store the first four curves 20 to 23. The second SLA block data structure can store the next four curves 24 to 27 of object 18, with a final SLA block storing the diagonal line 28.
Referring now to Figs. 6 and 7, there is shown in Fig. 6, the portion of the object 18 of Fig. 3 which is stored in the first SLA block 32 of the data structure 30 of Fig. 4 and there is shown in Fig. 7 the corresponding first SLA block 32. The SLA block 32 includes an SLA control block 35 which stores a bit pattern corresponding to the following diagonal line, general spline, general spline and vertical line, curves which make up the curved data of the SLA block 32. The next area of storage 36 corresponds to the diagonal line 20 (Fig. For the diagonal line 20, it is only necessary to store its end point 40 (Fig. 6) as the anchor value 31 of the line 20 will be stored as the Start X and Start Y val ies within data structure 30 of Fig. 4.
Statistical examination of typical objects stored within the computer graphics systems and utilised for imaging, conducted by the present applicant, also show that 13103841(zedge04CFPO365AUI [i A.\csral\zed l odgea04 lauspecl d c:LDPOP many splines are of only a short length, often less than 32 pixels long when printed out on an A3 page. Therefore, advantages can be obtained by storing relative co-ordinates rather than absolute co-ordinates of the various control points. Tlhe two values stored to represent the diagonal line, being 10 and -10, which represent the point 40. The particular storage format is the relative value storage format as represented in Fig. 8 which comprises 7 bits of data and a least significant bit which is set to zero to indicate that the byte of storage is in a relative value storage format. As the data portion of the relative storage format is 7 bits long, values in the range of -64 to +63 can be stored in the relative storage format. If the value required to be stored is outside this range, then the value can be stored in an absolute value storage format which is also shown in Fig.
8, which is a 2 byte storage format with the first byte having the value 1 in its least significant bit. The absolute value storage format is therefore 15 bits altogether, having values which can range from 0 to 32,767 which is sufficient for most output devices.
After the portion 36 devoted to the diagonal line 20, the general spline 21 (Fig. 6) is stored by storing the control points 42 to 44 in a storage area 37 (Fig. After the general spline 21, the general spline 22 is stored by storing the control points 45 to 47 in a storage area 38 (Fig. Finally, the vertical line segment 23 (Fig. 6) is stored in storage area 39 (Fig. 7) by storing only the change in y value, as it is known that the line is vertical by means of SLA control block 35. The rest of the curves of the object 18 of Fig. 3 are stored in subsequent SLA blocks thereby encoding the whole of the outline of the object 18.
As shown in Fig. 9, a method for storing data in the manner described above fundamentally requires a first step 50 of receiving, which in some instance can comprise generating, a graphical outline of an object, composed of data defining a series of curve segments. Next, a step 51 is performed which entails determining friom the data those curve segments which comprise straight line segments. As such the data can be placed into one of two groups depending on the result of the determination.
With one group, a step 52 is performed wiich involves storing a first number of (3103B41(zedge041CFP0365AU) 19:1 srM~ edgv Zedge04)ati %lint oc:LDP associated control points for each of the curve segments which do not define straight line segments. This typically involves storing the endpoints and all intermediate control points of the curve segment. With the other group, a step 53 is performed which involves storing a reduced number of associated control points for each of the curve segments which define straight line segments. Typically, this involves storing only the endpoints of the curve segment.
Fig. 10 schematically illustrates a system 60 configured to perform the preferred method described above. The system includes a computer device 61 generally linked to a display 62 which is typically a video display unit or a printer for example. The 1o device 61 includes a host processor 64 linked by a system bus 65 to other components of the device 61.
The host processor is configured using controlling programs retained in a read- S only-memory (ROM) 69 and/or a hard disc drive (HDD) 71 to performn operations for either generating or manipulating graphic objects for generation of image for reproduction on the display. Typically, the host processor 64 is linked to the display S. via a graphics processor which is specifically configured to perform graphical operations upon display lists of graphic objects generated by the host processor 64. In S"some instances the graphics processor 66 can be connmected to a dedicated graphics memory 68 for the temporary storage of object-based or pixel-based imaged data, depending on the specific application. Further, an output unit 67 can be provided to buffer data between the device 61 and the display 62. In some applications the unit 67 can be used to provide a color fill to graphic objects being rendered.
To operate in accordance with the preferred embodiment, the host processor 64 can receive graphic objects from a variety of sources such as the HDD 71, the ROM 69, a floppy disc drive 71, a PCMCIA memory card socket 73, from a communications network via a communications module 74, or from user generated sources such as a keyboard 76 or a mouse 77 which are interface via an input module 75 to the bus Once received, a program arrange in accordance with the preferred embodiment is run (310384)(zedge04}CFP0365AU) [g.\csrazdzd qcO4Iausjleci doc LDP by the host processor to classify each of the curve segments of each graphic object.
For those straight line objects, control points can be discarded and the objects then stored in the format described above, typically in a semiconductor random access memory (RAM) 70 or the HDD 71, for example. The host processor 64 can then prepare display lists of objects for passing to the graphics processor 66 for rendering and display. as a result of utilizing the preferred embodiment, the useful capacity of the RAM 70 or HDD 71 is effectively increased by reducing the amount of raw data required to be stored therein.
It has been found in practice that the above storage format results in substantial savings for the storage of outline based objects thereby allowing substantially more jects to be stored within a given storage space.
The foregoing describes only one embodiment of the present inention and modifications, obvious to those skilled in the art, can be made thereto without departing from the scope of the invention.
go *ee 0 (310384)(zedge04)CFP0365AU) (31 kcisra zedgrzcdoO4laiuspeci doc.LDP

Claims (12)

1. A method for storing data defining a graphical outline of an object, said graphical outline comprising a series of curve segments, said method comprising the steps of: determining those curve segments which comprise straight line segments; storing a first number of associated control points for each of said curve segments which do not comprise straight line segments; and storing a reduced number of associated control points for each of said curve segments which comprise straight line segments.
2. A method for storing data as claimed in claim 1, wherein each said curve segment comprises a spline having data describing four control points and said reduced number of associated control points is two.
3. A method for storing data as claimed in claim 1 or 2, wherein for each said object, each said curve segment connects to at least one other of said curve segments at each of its ends, wherein said curve segments comprise splines having four control points and said first number of associated control points is three and said reduced number of associated control points is one.
4. A method for storing data as claimed in claim 1, 2 or 3, wherein said control points are stored in a relative format.
5. A method for storing data as claimed in any one of the preceding claims, wherein said control points form a series of values and those members of said series, which are less then a predetermined distance from previous members of said series, are stored in a first relative storage format, and members of said series which are greater than said predetermined distance from a previous member of said series are stored in a second absolute storage format.
6. A method for storing data as claimed in any one of the preceding claims, said method further comprising the step of storing said curve segments in a series of (3103841(zedge0d1CFP0365AU) 103841(zedguO4(CFPO365A doc:LDP I -9- blocks, each said block having an associated therewith a header indicating the type of curves stored within said block.
7. A method for storing data as claimed in claim 6, wherein said blocks have separate storage formats for diagonal lines, vertical lines, horizontal lines and general splines respectively.
8. Apparatus for storing data defining a graphical outline of an object, said graphical outline comprising a series of curve segments, said apparatus comprising first means for receiving said data defining said curve segments; second means for determining from said data those curve segments which comprise straight line segments; third means for storing said data describing a first number of associated control points for each of said curve segments which do not comprise straight line segments; and fourth means for storing said data describing a reduced number of associated 15 control points for each of said curve segments which comprise straight line segments.
9. Apparatus as claimed in claim 8 wherein said fourth means acts to discard tangential control points of said straight line segments.
10. Apparatus as claimed in claim 9 wherein said apparatus comprises a host processor of a computer graphics device. *0
11. A method for storing data substantially as described herein with reference to Figs. 1 to 9 of the drawings. i"
12. Apparatus for storing data substantially as described herein with reference to Figs. 4, 5 8 and 10 of the drawings. DATED this ELEVENTH day of AUGUST 1995 Canon Kabushiki Kaisha Canon Information Systems Research Australia Pty Ltd Patent Attorneys for the Applicants SPRUSON FERGUSON 1310384)(zedg04)CFP0365AU) (31 03Ac sr4) edgeu4)(zedgouspCci LOP I ABSTRACT DATA STORAGE FORMAT A method and apparatus for storing data defining a graphical outline of an object (18) said graphical outline comprising a series of curve segments (20, 21 28) is disclosed. The method comprises firstly determining those curve segments which comprise straight line segments (20, 23, 24, 26, 28). The method next stores a first number of associated control points (40, 42, 43, 44) for each of said curve segments which do not comprise straight line segments. The method then operates to store a reduced number of associated control points (31) for each of said curve segments which comprise l straight line segments. o o (310384)(zedge04)CFP0365AU) (O:N..ctsra\zcdge\zedge4lauspeci. doc:LDP
AU28529/95A 1994-09-16 1995-08-14 Data storage format Ceased AU702905B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU28529/95A AU702905B2 (en) 1994-09-16 1995-08-14 Data storage format

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AUPM8224 1994-09-16
AUPM8224A AUPM822494A0 (en) 1994-09-16 1994-09-16 Data storage format
AU28529/95A AU702905B2 (en) 1994-09-16 1995-08-14 Data storage format

Publications (2)

Publication Number Publication Date
AU2852995A AU2852995A (en) 1996-03-28
AU702905B2 true AU702905B2 (en) 1999-03-11

Family

ID=25620739

Family Applications (1)

Application Number Title Priority Date Filing Date
AU28529/95A Ceased AU702905B2 (en) 1994-09-16 1995-08-14 Data storage format

Country Status (1)

Country Link
AU (1) AU702905B2 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5568601A (en) * 1993-10-06 1996-10-22 Fujitsu Limited Sampling point generating apparatus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5568601A (en) * 1993-10-06 1996-10-22 Fujitsu Limited Sampling point generating apparatus

Also Published As

Publication number Publication date
AU2852995A (en) 1996-03-28

Similar Documents

Publication Publication Date Title
US5689626A (en) System and method for linking a file to a document and selecting the file
AU668150B2 (en) Method and apparatus for filling an object based rasterised image
JP3571735B2 (en) Display graphic system for color laser copy machine
JPS641794B2 (en)
US7982740B2 (en) Low resolution graphics mode support using window descriptors
JPH06217200A (en) Portable video animation device
US5457776A (en) Compact memory for mixed text in graphics
US5760787A (en) Data storage format
US20060109280A1 (en) Systems and methods for rendering a polygon in an image to be displayed
JPH05244437A (en) Picture processing system
AU702905B2 (en) Data storage format
CA2023832C (en) Method and apparatus for filing contours in digital typefaces
US20030080969A1 (en) Dynamically anti-aliased graphics
US5790128A (en) Method for the encoding of image memories
US6919898B2 (en) Method and apparatus for ascertaining and selectively requesting displayed data in a computer graphics system
US5768569A (en) Processing data for an image displayed on a computer controlled display system
JPH0782315B2 (en) Image processing device
AU780003B2 (en) Optimising pixel generation from compositing stack
EP0568360A2 (en) Graphics system using quadratic polynomial fragments
JPS6063679A (en) Filing system for drawing information
JPH0729448B2 (en) Printer controller
JPH08214156A (en) Image processing unit
JPH05241537A (en) Image processor
AU2003248032B2 (en) Apparatus for Printing Using Non-overlapping Graphic Objects
Ahmed et al. REPRESENTATION OF GRAPHICAL DATA INTO GRAPHICS INTERCHANGE FORMAT (GIF)

Legal Events

Date Code Title Description
PC Assignment registered

Owner name: CANON KABUSHIKI KAISHA

Free format text: FORMER OWNER WAS: CANON KABUSHIKI KAISHA, CANON INFORMATION SYSTEMS RESEARCH AUSTRALIA PTY LTD