GB2245463A - Generating graphic images with run length encoded data - Google Patents

Generating graphic images with run length encoded data Download PDF

Info

Publication number
GB2245463A
GB2245463A GB9107156A GB9107156A GB2245463A GB 2245463 A GB2245463 A GB 2245463A GB 9107156 A GB9107156 A GB 9107156A GB 9107156 A GB9107156 A GB 9107156A GB 2245463 A GB2245463 A GB 2245463A
Authority
GB
United Kingdom
Prior art keywords
pixel
run
value
characteristic
parameter
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.)
Withdrawn
Application number
GB9107156A
Other versions
GB9107156D0 (en
Inventor
Craig Raymond Southeren
Robert Charles Lindsell
Simon James Fenney
Kia Sliverbrook
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.)
Rank Cintel Ltd
Original Assignee
Rank Cintel Ltd
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
Application filed by Rank Cintel Ltd filed Critical Rank Cintel Ltd
Publication of GB9107156D0 publication Critical patent/GB9107156D0/en
Publication of GB2245463A publication Critical patent/GB2245463A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/001Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes using specific devices not provided for in groups G09G3/02 - G09G3/36, e.g. using an intermediate record carrier such as a film slide; Projection systems; Display of non-alphanumerical information, solely or in combination with alphanumerical information, e.g. digital display on projected diapositive as background
    • G09G3/003Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes using specific devices not provided for in groups G09G3/02 - G09G3/36, e.g. using an intermediate record carrier such as a film slide; Projection systems; Display of non-alphanumerical information, solely or in combination with alphanumerical information, e.g. digital display on projected diapositive as background to produce spatial visual effects
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/391Resolution modifying circuits, e.g. variable screen formats
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/12Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Multimedia (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Input (AREA)
  • Image Generation (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

The system generates a digital pixel image in a framestore memory 20 by expanding run-length encoded data stored in a command memory 22. Each pixel has a variable characteristic such as its colour, or its depth in a 3-D image. The value of the characteristic for each written pixel is determined from the run-length encoded characteristic. In one form, the value of the characteristic for each pixel in the run is determined from a reference parameter which determines the initial value of the characteristic, and a difference parameter which represents the change in the value along the length of the run. In another form, the coordinates of the pixel runs are determined from the coordinates of a preceding run. The initial location and run length for each run are determined relative to the preceding run by delta parameters associated with the current run. The system generates linear colour blends and automatically depth-clips images being written into the framestore 20. <IMAGE>

Description

1 IME= AND APPARATUS EM GEMUMM GRAPEICS
FIELD OF THE INVENTIM
The present invention relates to the conposition and special effects of digital video signals, and particularly to the coqposing of graphics represented as digital video data within a pixel nveimry, or "framestore".
BAMMOM OF THE INVENTIM The pixel sites of the fra-anestore store a variable which represents the value of at least one charactreristic of the pixel. For exanple, the characteristic may be the intensity or it may be the colour of the pixel, or in the case of three dimensional (3-D) graphics it may represent the depth value of the pixel behind the front or viewing plane. The variable may also be a logical bit indicating whether the pixel is "set" or "unset".
Prior art video graphics render techniques rely either on the main processor of the graphics system writing video data directly into the franestore., or on a dedicated genereal purpose slave processor writing video data into the framestore, or alternatively on a spacial high-level graphics control device.
SUMMARY OF THE INVE2MW
The present invention is defined in the appended claims.
The principle of the invention is to generate graphics represented as digital video data in a pixel mewry, or framestore, from =-length encoded data.
In the run7-length encoding, the image is split into segments or strings or blocks of linear runs of pixels. Each run can be represented by coordinates such as a start position corresponding to the pixel site of the initial pixel of the run, and a run--length corresponding to the number of pixels in the run. one or more characteristics of the pixels are encoded in the run-length encoded data. Typically the runs are parallel along consecutive raster scan lines of the framastore.
Th generate the graphics, the run length encoded data is expanded by writing digital video data corresponding to the run-length encoded data into Pixel sites of the pixel nx-zmry. The value of the characteristic for each written pixel is determined from the run--length encoded characteristic.
A preferred method of expanding the run7length encoded data is to provide runs of pixels corresponding to the run--length data, and to write each run into pixel sites of the pixel memory.
Typically the characteristic is the colour of the pixel, or if the image is a 3-D iniage, the characteristic my be the 3-D depth value of the pixel.
- With this technique, the amount of data needed to represent an image can be cornpressed. This can achieve much faster d:mage composition in the framestore, and require less complicated circuits for writing the graphics in the fra-aestore. The following preferred features are directed to further compressing the amount of encoded data and reducing the amount of processing required to expand it into a pixel graphics in a framestore.
1 Preferably, each pixel run has an associated reference parameter representing a reference value of a characteristic of the pixels in the run, and a difference parameter representing the change in the value of the characteristic along the length of the run. The value of each written pixel is determined from the reference parameter and the difference parameter.
The reference parameter and the difference parameter may be constants defined for a block of pixel runs, or alternatively the reference parameter and the differnece parameter may be variables determined for each pixel run.
The method is especially useful when the difference parameter represents a progressive linear change in the value of the characteristic along the length of the run. Preferably the difference parameter corresponds to an increment, or delta, in the value of the characteristic per pixel along the length of the run. The value of the characteristic written at each pixel site can be conveniently determined from an accuTmlating value which is incremented by an amount equal to the difference parameter each time a pixel is written. The difference parameter may be a signed value, taking positive or negative values, or zero. A zero value corresponds to no change in the value of the characteristic aLlong the length of the run, whereas positive or negative values correspond respectively to a progressive increase or decrease in the value of the characteristic.
When the characteristic is the pixel colour, the reference parameter and the difference parameter advantageously have a separate nent for each colour conponent of the pixels. This enables colour blends to be achieved quickly and easily when the image is composed from the run- length encoded data.
When the characteristic is the 3-D depth value of the pixel, the memory can be organised as a Z-buffer. The technique allows the image to be depth clipped by comparing the calculated depth value of each pixel in the run either with a predetermined clipping value, or with the depth value al -eady stored in the pixel site in the mewry. The existing pixel data is only overwritten with the pixel from the run if the calculated depth value is less than the value to which it is compared. The resulting graphics image will automatically be depth clipped according to the predetermined clipping value, or on to the image existing in the memory.
Where the run7-length encoded data corresponds to at least two contiguous runs of pixels, ie. two runs of pixels end to end, the difference parameter for one of the runs can be determined from the reference parameter for a consecutive run. This is equivalent to providing a reference parameter for each run, and determining the values of the characteristic for the pixels in each run by interpolating between the reference values for consecutive runs. The reference parameter preferably corresponds to the value of the characteristic for a pixel at a predetermined position in the run, such as the initial pixel of the run. The interpolation is preferably linear interpolation (or "ramp" interpolation).
Pre-defined run-length encoded data corresponding to at least one predefined graphics image can be stored in a data memory for later retrieval. The run-length encoded data can be stored as "sub-routines" of graphics instructions which are "called" to generate the graphics image in the framestore. The graphics instructions can operate relative to the current specified address, so that the preformed image can be generated at any selected position in the framestore memry.
In one embodiment, the run-length encoded data includes parameters defining co-ordinates of the pixel runs, and the parameters for runs after a designated initial run define the co-ordinates relative to those of a preceding run.
The parameters defining the co-ordinates for each run after the initial run may be constants for a block of pixel runs, or they my be variables determined for each pixel ran. If the parameters are constants, this restricts the shape of the image formed by the pixel runs to having straight edges. If the parameters are variable for each pixel run, the shape of the image can be curved, or irregular.
Preferably, the parameters for a run after the designated initial run define the co-ordinates relative to those of the imnediately preceding run. That is, the co-ordinates for the second run are defined relative to those of the initial run, and the co-ordinates of the third run are defined relative to those of the second run, and similarly for each subsequent pixel run.
The co-ordinates for each run can include the location of the initial pixel site of the run, and the run-length. Preferably, where the coordinates include the initial pixel site of the run, the parameter defining that co-ordinate for pixel runs after the initial run is a delta value. The value of the co-ordinate is determined by adding the delta value to the value of the initial pixel site co-ordinate for the preceding run.
Similarly, where the co-orinates include the run-length, the parameter defining that co-ordinate for runs after the initial run is preferably a delta value. The value of the co-orcIinate is determined by adding the delta value to the value of the run-length co-ordinate for the preceding run.
Preferably, the run--length encoded data corresponds to pixel runs along consecutive raster scan lines of the pixel memory. The parameter defining the initial pixel site location of each run after the initial run can then be encoded as a delta value for the horizontal location along the scan line. The number of pixel runs forming the image can be encoded as a total runs parameter, which can be encoded with the parameters for the initial pixel run. The total runs parameter can indicate the number of pixel runs following the initial run, ie. the number of pixel runs with parameters defining relative co-ordinates.
This technique is especially suitable for composing shaded graphics where conventinal graphics render apparatus might need to be supplied with the same or very similar pixel data many tines in order to produce the shaded image.
This technique is also advantageous when it is desired to generate a predetermined graphics iamge at an arbitrary or randonily selectable position in the framestore. The co-ordinates of the pixel runs are defined relative to one another for each run after the initial run, and it is only necessary to specify the co-ordinates of the initial run to generate the image. Several pre-defined images can be stored in a data memory as "sub-routines" of run-length encoded data. A chosen image can be generated by "calling" the corresponding routine of rur171ength encoded data for that image.
The parameters for the designated initial pixel run may define the co-ordinates for the run either as relative to a preceding run, or as absolute values. The ability to define co-ordinates of an initial run relative to those of a preceding run enables coapound 3zages to be created by ining two or more pre-defined s ' tored images. The und image can be positioned at any desired location in the framestore for display. In this way licated shapes, e.g. alphanumeric characters, can be generated.
Although the preferred features decribed above provide advantages in ressing of the amount of run-length encoded data needed to se a graphics image, and in the speed at which the image can be created in the framestore, these preferred features are particularly advantageous when used together.
The speed at which the umge can be generated with the present invention makes the technique particularly suitable for generating images for real time animation.
in a preferred method of generating shaded graphics represented by digital video data within a dedicated ireinory store, the method comprises the steps of:
providing a plurality of contiguous runs of coloured pixels from digital video data; identifying a start address in said memory store, the colour of the first pixel of each said run, and a colour increment value associated with each run; and incrementing the colour of each said pixel by the associated colour increment value for the associated run and loading said incremented pixels into said memory store commencing at said start address.
If desired, a colour increment value can be provided for each colour component of each pixel within the run.
Also a preferred method for displaying an object correspondingly encoded within a video graphics system cmprises the steps of; 1. Providing an initial one length that defines and initial width of said object, said initial width being the width at the upper most parts of said object with respect to the placement of video scan lines; 2. Providing an object height corresponding to the number of video scan lines occupied by the displayed object; 3. Displaying a first line corresponding to said initial run length; 4. For each sub-sequent line of said height providing an X delta and a length and a length delta, said X delta defining a line start pixel position relative to the preceding line and said length delta defining a line length relative to the preceding line, wherein either said delta can be adapted for display on said systezn, and 5. Displaying each said sub-sequent line as defined by their corresponding X and length deltas.
Another prefer-red method in accordance with this invention is for encoding a graphics representing data to be written into a framestore, signal, said method rising the steps of:
dividing said video image into a sequence of adjacent linear sections each having an associated run length 1 corresponding to the width of the corresponding section; and for each sub-section encoding an end colour together with said run length, said end colour being the pixel colour at one end of the corresponding section; whereupon sub-sequent decoding and display of said image, the displayed colour is varied between adjacent sections to appear as an interpolated linear ranp of colour between the end colours of each pair of sections.
Where run length encoding would require many snall run lengths to start such a change, this nethod of encoded ranp interpolation uses only several larger ones. On decoding, a ranp colour start value is read and the pixels are generated by interpolating the colour up to the next colour ramp start value, whilst producing the specified number of pixels. This process is particularly well suited to a hardware iuplenentation.
A system which can be used for writing run length encoded data into a fran-estore rnffmry is also described in our UK patent application entitled "Video Framestore Access" filed on the same date as the present application DESCRIPTIM OF THE UIWNW Embodiments of the invention will now be described by way of wcairple with reference to the aconpanying drawings, in which: - Fig. 1 is a block diagram showing a graphics generator; Fig. 2 shows a modification of the generator of Fig. 1 in one application for colour graphics; Fig. 3 shows a modification of the generator of Fig. 1 in one application for 3-D graphics; Fig.4 shows an example of depth clipping a 3-D image generated with the generator of Fig. 3; Fig. 5 shows an le of graphics generated using linear interpolation; Fig. 6 is a block diagram showing a second graphics generator; Figs. 7 to 11 show diagramatic examples of images generated by the generator of Fig. 6; Fig. 12 shows a modification of the generator of Fig. 6; and Fig 13 shows a diagramatic example of a compound image generated by the generator of Fig. 12.
DESCR=M OF PREFERRED EMBODR4ENTS The graphics generator shown in Fig. 1 includes a pixel memory or framestore 20 for storing a graphics image represented as digital video data. The memory has pixel sites for storing a variable representing the value of a characteristic of the pixel, for example its colour, or its depth in a 3-D image. The nenory is typically an 8-bit memory for storing the variable. Graphics information instructions for generating a graphics image are stored in a connand memory 22. The command memory 22 supplies the instructions to a 1 1 1 graphics render controller 24. An input mean 23 is alos provided for inputting external graphics instructions. The external instructions can be processed by the controller 24, or stored in the comTand memory 22.
The graphics instructions are in the form of run-length encoded data, and the controller 24 expands the run-length encoded data by providing runs of pixels from, the run-length encoded data, to build up the image in the framestore 20.
The controller 24 includes a sub-section 26 for providing for each pixel run a reference parameter representing a reference value of the pixel characteristic for the run. The reference parameter is provided as a first output 28. The controller 24 also includes a sub-section 30 for providing for each pixel run a difference parameter representing the change in the value of the characteristic along the length of the run. The difference parameter is provided as a second output 32.
In the present embodiment the difference parameter represents a progressive linear change in the value of the characteristic along the length of the run. The difference parameter corresponds to a delta, or increment, in the value of the characteristic per pixel along the length of the run. The reference parameter represents the value of the characteristic for the initial pixel of the run.
The controller 24 also includes a sub-section 34 for providing a start address of the pixel site in the framestore for the initial pixel of the run. The start address is provided as a third output 26.
The controller 24 also includes a sub-section 38 for providing a control pulse signal for each consecutive pixel in the pixel run, and a reset signal at the end of the run. This is provided as a fourth output 40.
The section of the generator shown within the dotted box 42 is coupled between the controller 24 and the fr&-nestore 20, and forms writing means for writing the pixel runs into pixel sites of the framestore 20. The writing means includes calculating means 21 for calculating a value of the pixel characteristic for each pixel of the run., based on the reference parameter and the difference parameter. The calculating means 21 includes a 16-bit algebraic adder 44, a 16-bit accumulator latch 46 and a two-way data multiplexer or selector 48. The second output 32 of the controller 24 is fed to one of the inputs of the adder 44, and the output from the adder is fed to the input of the accumulator latch 46. The output from. the latch 46 is fed through one input of the multiplexer 48 to the other input of the adder 44. The other input of the multiplexer 48 is fed from the first output 28 of the controller 24. The multiplexer 48 is controlled through a control line 50 from the controller 24 to select either the output from the latch 46 or the reference parameter on the first output 28 for feeding to the adder 44.
In use, at the beginning of a pixel run, the control line 50 controls the multiplexer 48 to feed the value of the reference parameter on the first output 28 to the adder. This value is added to the value of the difference parameter which is supplied from the second output 32 from the controller. The sum value output from the adder 44 represents the value of the characteristic for the initial pixel of the run, and is stored in the accumulator latch 46. Thereafter, the control line 50 controls the multiplexer 48 to send the value stored in the accumulator latch 46 to the adder where it is incremented by an amount equal to the difference parameter, and re-stored in the accumulator latch 46. The calculating means therefore opearates by calculating an accumulating value for the characteristic of the written pixels, which accumulating value is incremented each time a pixel is written. The adder 44 is an algebraic adder and therefore for negative values of the difference parameter the effect is to decrement the value stored in the accumulator latch 46 (ie. to increment the value by a negative amount). If the difference parameter is zero, the value in the accLmulator will remain equal to the reference parameter for each pixel in the run, representing that there is no change in the value of the characteristic along the length of the run.
The output from the adder 44 is provided as a f irst output 52 fran the calculating means 21, which is the value of the characteristic for the pixel being written into the framestore 20. Only the most significant 8 bits of the 16-bit output f rom the adder 44 are supplied as the output 52. This is because the memory stores the value of the characteristic as an 8-bit value, and so the output from the adder 44 is truncated for storage at a pixel site. The full 16-bit value is, however, supplied to the accumulator latch so that the precision of the accumulating value is not affected.
The writing means 42 also includes an address counter 54 for determining the address of the pixel sites in the framestore into which the pixel run is written. The counter 54 has an initial or reset value input coupled to the third output 36 from the controller 24. The counter also has an increment/reset control input coupled to the fourth output 40 frorn the controller 24. In use, at the beginning of a pixel run, the start address for the initial pixel of the run is loaded into the counter 54 from the output 36. Therafter, the address value is incremented for each pixel in the run, until the end of the run is reached, whereupon a reset control signal is sent via the fourth output 40 from the controller 24. The address output from the address counter 54 is provided as a second output from the writing means 42.
A third output 58 is also provided from the writing means 42. This is a data write control line for the frarestore memory 20, and is fed directly from a control output of the controller 24.
In use, the generator generates runs of pixels along horizontal raster scan lines of the nkeiwry. The pixel runs are provided from the run7length encoded data in the command naiwry 22. In this way it serves as a high-speed lawlevel graphics accelerator or expander, in contrast to other systerm or devices that execute high-level commands to draw circles, boxes, rectangles, etc. The run-length encoded data contains such information as the address in the framestore where the run of pixels should start, the reference parameter, the difference parameter, and the run length. The initial framestore address is loaded into the address counter and incremented after each pixel is written, as explained hereinbefore.
As explained hereinbefore, the charcteristic can be the colour value of the pixel. The colour value can either be a single brightness or intensity value of the pixel (for monochrome images), or it can be defined by several colour components. For example, the colour may be represented by the colour components red, green and blue (RGB) or as lunii=ce and chrcirdnance (YUV) data.
Fig.2 shows a detail of a modification of Fig.1 for applications in which the colour is defined by three components. For this application each pixel site in the memory is capable of storing the colour value as three separate component values. The writing means includes three calculating means 21a, 21b and 21c for calculating the colour value independently for the three nents. Each of the calculating means 21a, 21b and 21c is the same as the calculating means 21 shown in Fig.i.
The reference parameter sub-section 26 provides an output signal 28a, 28b and 28c for each component of the colour, connected respectively to the caclulating means 21a, 21b and 21c. Similarly, the difference parameter sub-section provides an output signal 32a, 32b and 32c for each component of the colour, connected respectively to the calculating means 21a, 21b and 21c. The control output 50 is commn to all of the calculating means 21a, 21b and 21c.
The colour output from the writing means 42 has three cnents 52a, 52b and 52c which are the outputs from the respective colour calculating means 21a, 21b and 21c.
The arrangement in Fig.2 allows linear colour blends to be rendered automatically from run-length encoded data, by specifying appropriate values for the reference and difference parameters for each colour component.
As explained hereinbefore, the characteristic can also be the depth value of the pixel in a 3-D image. Fig. 3 shows a deta.il of a modification to the generator of Fig.1 for such an application. The memory 20 is arranged as a Z-buffer, such that the characteristic is the 3-D depth value of the pixel frorn the front or viewing plane.
In Fig. 3, the calculating nieans 21 is the same as that in Fig. 1, however, the output 52 is not connected directly to the framestore 20. Instead the output 52 is connected to one input of a comparator control means 60. Another input of the comparator is fed from a data-out line 62 from the framestore 20. The output fram the comparator control neans 60 is connected to the data-in line 64 for the framiestore 20. The data-out and data-in terminals of the framestore may be realised as a single terminal.
In use, for each pixel of a pixel run, the 3-D depth value calculated by the calculating means 21 is compared with the depth value already stored in the corresponding pixel site in the niemory 20 which is read out through the data-out line 62. If the calculated depth is less than the existing depth, the comparator control nieans sends the calculated depth data via the data-in line 64 to overwrite the pixel data in -the framestore 20. If the calculated depth is equal to or greater than the existing depth value, the comparator control mans 60 prevents the existing pixel data in the framestore 20 from being overwritten.
Therefore the pixel in the run will only be written into memory if it represents a point in the image which is "in front" of (ie. nearer the viewing plane than) a pixel which is already stored in the framestore. This technique enables an in-age to be automatically depth clipped when written over or onto an existing image.
A third input 63 is also provided to the comparator control neans 60. This is a control clipping input which allows the written pixel run to be depth clipped according to an external clipping value from the controller 24. Special effects such as selectable depth clipping of a re-defined image can therefore be achieved using the same depth clipping principle described above, with the calculated depth value being ced to the external clipping view.
Fig.4 shows an example of depth clipping. The X, Y and Z axes show the perspective of the image. The X and Y co-ordinates represent the horizontal and vertical addresses of pixel sites in the nEmry, and the Z co-ordinate represents the 3-D depth value fran the viewing plane. For clarity, simple planes are used to illustrate the depth clipping technique, although it will be appreciated that more cmplicated 3-D shaped images can be used. The existing image in the framestore is represented by the plane wall 66. The image being written as runs of pixels is represented by the plane 68. Only the portion 68a of the plane 68 which is in front of the existing plane 66 will be written in to the framestore. The portion 68b which is behind the existing plane 66 will be clipped automatically, and not written into the memory, even though the pixel runs define the whole area of the plane 68.
Although the embodiments described in relation to Figs 1-4 have described a single characteristic being used to define either a colour or a depth value of each pixel, the invention is particularly advantageous where two characteristics of the pixels (e.g. colour and depth) are defined in the run-length encoded data, and represented as separate reference and difference parameters. A graphics generator utilising such a technique could embody both of the arrangements shown in Figs. 2 and 3, ie. a calculating means 21a, 21b and 21c for each colour cnent, and a further calcuating means 21 with associated comparator control means 60 for the 3D depth value. An example of this is described hereinafter with reference to Fig. 12.
Where the run--length encoded data corresponds to at least two contiguous pixel runs, ie. arranged end to end, and the value of the characteristic is substantially continuous along the pixel runs, the difference parameter for each run can be determined from the reference parameter of a consecutive run. Therefore, only a reference parameter needs to be provided in the runrlength encoded data for the runs, the reference parameter correspording to the value of the characteristic for a pixel at a predetermined position in the pixel run. For exariple, the predetermined position could be the initial pixel of the run, or the final pixel in the run. This technique is equivalent determining the values of the characteristic for the intermediate pixels by a process of interpolation between the reference values for consecutive pixel runs. In the enbodiment shown in Fig.1, the interpolation is linear (or "ramp" interpolation), and the determination of the difference parameter can either be performed entirely in the controller 24 as the run-length data is read in from the conuand mnory 22, or it can be performed as each pixel run is generated by using a data return line 59 which feeds back the valueof pixels at the start or end of pixel runs to the controller 24.
With this technique, a further parameter must be Provided for each raster scan line for the interpolation. For exanple, if the predetern-Lined position is the final pixel of the run, the run7length encoded data needs to specify a start value of, the characteristic for the initial pixel of the first pixel run on the scan line. Alternatively, if the predetermined position is the initial pixel of the run, the run7length encoded data needs to specify for each scan line a final value of the characteristic for the final pixel of the last pixel run on the scan line. The technique is nevertheless useful in reducing the overall amount of information that needs to be specified in the run-length encoded data.
Figs. 5a, 5b and 5c show an exmrple of linear interpolation, in which pixel data is stored as a sequence of linear interpolations between key colours. Referring to Figs.5a and 5b, the process of encoding run-length data consists of converting the original image 65 into a series of linear ramps, with each ramp consisting of a colour associated with a run lenth. Fig.5b shows the colour value for each pixel along the line 67 of Fig. Sa. The colour value can be seen to consist of four substantially linear segments 69a, 69b 69c and 69d. Regions of changing colour are encoded as ramps having different start and end values, whereas regions of constant colour are encoded as ramps having zero gradient.
The table in Fig. 5c shows an example of this linear interpolation runlength encoded data for the image. The first point 71 is defined by the colour value of "white", and the second point 73 at the end of the segment 69a is defined by the colour value "black". The third point 75 at the end of the segment 69b is also defined by the colour value "black". The fourth point 77 at the end of the segment 67c is defined by the colour value "white". The fifth point 77 is encoded as an additional parameter to define the end of the segment 67d. The distance between the points is say 100 pixels.
Tb generate the image from the run71ength data, the data is expanded by linearly interpolating between the encoded points. The generation is particularly printed to hardware implementation.
It can be seen that this technique of linear interpolation (or ramp) run-length encoding data will not work well on images containing pixels which are not linearly related in scme way, such as images from. a c&riera. However, a toloerance can be applied to the encoding, such that the linear segnents can approximate the original pixels.
Fig.6 shows a second design of graphics generator. This includes several of the elements of the generator of Fig.1, and the same reference numerals have been used where appropriate.
Referring to Fig.6, the generator includes the pixel memory or framestore20 for storing digital video data representing a graphics in-age for display. The generator also includes the graphics connand memory 22, and the external instructions input means 23.
Graphics instructions in the form of run7-length encoded data are stored in the graphics segnent ccnraand memory 22 wtdch feeds the instructions to a graphics render controller 70. The controller 70 expands the run- length encoded data by providing runs of pixels to build up the image in the framestore 20.
The controller 70 has a sub-section 72 for providing for each pixel run a first parameter defining a first co-ordinate of the run, which coordinate is the location address for the initial pixel of the run. The first parameter is provided as a first output 74 from the controller 70.
The controller 70 also includes a section 76 for providing for each pixel run a second parameter defining a second co-ordinate of the run, which coordinate is the run-length, ie. the number of pixels in the run. The second parameter is provided as a second output 78 from the controller 70.
The controller 70 also provides a control third output 80 which indicates whether the first and second parameters are to be interpreted as relative (delta) values, or as absolute values.
The controller 70 also provides a fourth output 82 which is the data of the pixels being written into the memory. The pixel data may be siiTply a logical-bit value to represent whether the pixel is "set" or "unset", or it may be data representing one or more other characteristics such as colour or 3-D depth of the pixel.
The section of the generator shown within the dotted box 84 forms writing means coupled between the controller 70 and the menory 20 for writing the pixel runs into the fran-estore at pixel sites determined from the first and second parameters.
The writing means 84 includes a first interpreter means 86 coupled to the first and third outputs 74,80, respectively, of the controller 70. The first interpreter 86 interprets the first parameter to determine the value of the first co-ordinate of the pixel =. If the control output 80 indicates that the parameter is an absolute value, the output from the interpreter 86 is set equal to the value of the first parameter. If the control output 80 indicates that the first parameter is delta value, the value of the first co-ordinate is calculated by adding the delta value to the value of the co-ordinate for the preceding pixel run which is stored in an associated latch 88. The value of the co-ordinate stored in the latch 88 is updataed each time a new co-ordinate is outputted from the interpreter 86.
The writing means also includes a second interpreter means 90 coupled to the second and third outputs 78,80, respectively, of the controller 70. The second interpreter 90 is identical in design to the first interpreter 86. Its function is to interpret the second parameter to determine the value of the second co-ordinate of the pixel run in precisely the same manner as the first interpreter. The second interpreter 90 has an associated latch 92 similar to the latch 88 for the first interpreter 86.
The output 94 from the first interpreter 86 represents the-address in the framestore of the initial pixel site of the run. The output 96 from the second interpreter represents the run7-length. The initial pixel site is fed to an initial value input of an address counter 98, and the runlength is fed to the input of a run-length counter 100. The run-length counter repeatedly increments the value of the address counter 98 to generate the pixel run. The number of increments corresponds to and is determined by the run-length value. At the end of the pixel run, the address counter 98 is reset to input a new initial address value from the output 94 of the first interpreter means 86, and the run-length counter 100 is reset to input a new nui7length value from the output 96 of the second interpreter means 90.
The output from the address counter 98 is provided as an address output 102 of the writing means coupled to the address input of the framestore 20. The writing iTeans also has a pixel data output 104 fed fom the fourth output 82 of the controller 70. The pixel data signal is fed through a circuit 106 which may be a buffer latch as in the present embodiment, of it may be more elablorate processing circuitry as explained in more detail hereinafter.
In use, the controller provides pixel runs from run--length encoded data in the command memory 22. For a designated initial pixel run, the first parameter defines an absolute value of the start address representing the initial pixel site of the run. The second parameter defines an absolute value of the run-length. For subsequent pixel runs, the first parameter defines each start address as a delta value relative to the start address of the preceding ran. Similarly, the second parameter defines the run length as a delta value relative to the run.. length of the preceding run.
The number of pixels in each block following a designated initial run is specified in the run-length encoded data as a total runs parameter. The total runs parameter can be encoded with the parameters for the initial pixel run so that the controller 70 can detern-dne how many pixel runs follow the initial run.
In the present embodimient, the pixel runs are written as horizontal runs as long raster scan lines of the framestore 20. Consecutive pixel runs are written on progressive consecutive scan lines. This can be incorporated automatically in the address counter so that the only value that need be specified for the start address co-ordinate relative to a preceding run is an X-delta value which defines the start position column of the run in the scan line. The total runs parameter defines the vertical height of the generated iniage in term of scan lines, and the ran-length co-ordinate of the initial pixel run defines the horizontal width of the top of the image.
The first and second delta par&neters for each run after a designated initial run may be constants for a block of pixel runs, or they may be variables determined for each pixel run.
When the first and second delta parameters are constants, the shapes of the images generated by the pixel runs are limited to horizontally orientated rectangles, parallelograms, trapeziums and triangles. Figs 7 to 9 show diagramatic representations of some of these shapes. In these figures, the shapes all have the same initial width defined by the runlength parameter of the initial pixel ran, and the same vertical height defined by the total runs parameter.
The rectangle shown in Fig. 7 is generated by setting both the X-delta and the run-length delta parameters to zero. The pixel runs are therefore written at the same horizontal positions on consecutive scan lines.
The parallelogram shown in Fig. 8 is generated by setting the X-delta parameter to a negative value, and setting the run-length delta parameter to zero. The negative X-delta causes consecutive pixel runs to be offset to the left (in the negtive X direction). A positive X-delta parameter would cause the parallelogram to slope in the opposite direction.
The trapezium shown in Fig.9 is generated by setting the X-delta parameter to a negative value, and setting the run-length delta parameter to a positive value at least as great as the magnitude (or modulus) of the X-delta parameter. For the shape shown, the ruri--length delta parameter is roughly twice the magnitude of the X-delta parameter.
When the first and second delta parameters are variables determined for each pixel run, this allows the generation of images which may be irregular, or which may have curved edges Fig. 10 shows a diagramatic example of a circle generated in this way. The initial pixel run (111) for this iinage will bw very short, and the X-delta parameter for subsequent runs will initially be a negative value for the upper portion 110 of the circle, increasing to a positive value for the lower portion 112 of the circle. The value of the parameter will vary approximately as a half cycle of a negative cosine wave.
The ran-length delta parameter for p3.Xel runs after the initial run will initially be a positive value for the upper portion 110 of the circle, decreasing to a negative value for the lower portion 112. The value of the parameter will vary approximately as a half cycle of a positive cosine wave, and its magnitude or amplitude will be roughly twice that of -the X-delta parameter.
The images can be positioned at any selected position in the fr&Testore by specifying the start address of the designated initial pixel run.
Conpound images can also be created by combining two or more images each formed by blocks of run-length encoded pixel runs. Fig. 11 shows an example of how a graphics letter 'IV" can be formed from run-length encoding. An initial parallelogram 114 is generated starting from the initial pixel site 116 (shown exagerated in size). The second portion of the image can either be drawn as a trapezium 118, or as another parallelogram 120 which overlaps the bottom. portion of the first parallelogram. Parallelograms may be preferred because they can be formed using constant values for the X-delta and run7length delta parameters, and this reduces the amount of information that has to be specified in the run-length encoded data.
The start address of the initial pixel 122 of the second portion of the compound image can be specified relative to that of a preceding run, for example, relative to the initial pixel 116 of the parallelogram. This technique enables the compound image to be generated at a randomly selectable position in the framestore by specifying the start address for the initial pixel 116.
Fig. 12 shows a modification of the generator shown in Fig.7 to incorporate generation of colour and 3-D images by using the arrangements shown in Figs. 2 and 3. The circuit 1061 replaces the circuit 106 in Fig. 7 and includes the portion shown in the dotted box 130 in Fig.2, and the portion shown in the dotted box 132 in Fig. 3. The controller 70 includes a sub-section 134 for providing a reference colour parameter for each colour cnent, and a sub-section 136 for providing a colour difference parameter for each folour component. The controller 70 also includes a sub-section 138 for providing a depth reference parameter, and a subsection 140 for providing a depth change parameter. The sub-sections 134 and 138 are the same as the sub-section 26 of Fig. 1 and the sub-sections 136 and 140 are the s&re as the sun-section 30. Each pixel site of the framestore 20 stores a 3-component colour value and a 3D depth value, and the outputs from the colour circuit 130 are coupled to three colour inputs 142 of the framestore 20, and the output from the depth value circuit 132 is coupled to the depth value input 144 of the framestore 20.
Fig 13 shows an example of a compound image being generated using the modification of Fig. 12. The imge is similar to that shown in Fig. 11 and is made up of a first parallelogram 146 and a second parallelogram 148, similar to the parallelograms 114 and 120 in Fig. 11. The first parallelogram 146 has a constant colour value, and the second parallelogram 148 is shaded by an amount incrreasing towards 1 its bottom end. The image is a 3-D image, and the second parallelogram 148 is positioned "behind" the first parallelogram 146, as indicated by the colour shading of the second parallelogram 148. The image is generated by first writing the pixel runs corresponding to the first parallelogram 146 into the framestore memory 20. The second framestore 148 is then written using the depth clipping method of ccubining images described hereinbefore. The bottom portion 148a of the second parallelogram 148 will automatically be clipped where it is "hidden,, by the first parallelogram.
Pre-defined run7length encoded data representing pre-defined graphics can be stored in a data memory, e.g. the comTend memory 22, in any of the foregoing embodiments A library of pre-defined images can be formed as sub-routines of run7length encoded graphics instructions. A selected image can be generatred at a desired location in the pixel memory 20 by "calling" -the corresponding sub-routine, and supplying the start address of the image. Commands within the sub-routine then operate relative to the address supplied at the time the routine was called. This is especially suitable for the embodiments in Figs. 6 and 12 which use relative addressing.
Runs of pre-defined video data can also be rendered using a special "Raw Pixel Run" comrand, which specifies that following number of words of data in the memory should be written directly into the franestore as video data, rather than expanded as pixel runs.
It will be appreciated that the embodinents described above enable fairly cwplex images to be generated in a framestore from run-length encoded data. The circuitry required to expand the run-length encoded data is not complex, and provides a high speed technique for rendering graphics into a video framestore. The system using sequences of graphics segment commands to define a given object or scene benefit from the high data compression ratio available through the run71ength encoding technique, and the high speed at which their images can be expaanded into a framestore.
This technique also lends itself to the advantage of some features of current technology to increase the render speed and reduce the circuit amplexity. For example, "Fast Page Mode" DRAMS can be used because the renderer is line based, and this means that the address counter need only contain a column address counter, and a latch to store a row address.
The data into and out of the framestore can be organised as a conventional data format, such as the CCIR-601 or CCIR-656 format.
It will be appreciated that the invention produces the amount of data to specify an inage. For example, a 1024 by 1024 sample image stored as 24 bit RGB can occupy 3 megabytes of framstore memory. If this data is loaded individually per pixel, apart from the prohibitive cost associated with such a large amount of memory to store the data, manipulation of such images is. usually slow. The present invention describes a method whereby ccoplex images can be stored without requiring the data for each pixel to be provided separately.
The high speed at which images can be generated in the framestore means that the generator is suitable for use in real-time animation of graphics images.
In accordance with one aspect of the invention, the technique is used to generate graphics images in a fratnestore, and the images are displayed consecutively to effect real time animation. The run- length encoded data can either represent a ccnplete new image for each frame, or it can represent sections of the image of the fr&ne which are updated to form the image of the next frame.
Although the embodbnents shown in Figs.1-3, 6 and 12 have been iwpleinented in hardware, it will be appreciated that the invention can be implentented as a software technique. However, hardware embodiinents as described hereinbefore may offer the greatest advantages in circuit simplicity and image composition speed.
r L

Claims (90)

CLAIMS:
1. A method for generating a graphics image represented as digital video data in a pixel merrory, each pixel site in the memory storing a variable representing the value of a characteristic of the pixel, couprising expanding run-length encoded data representing the image by writing digital video data corresponding to the run7length encoded data into pixel sites of the memory, the value of the characteristic for each written pixel being determined from the run-length encoded characteristic.
2. A method according to claim 1, wherein the characteristic is the colour value of the pixel.
3. A method according to claim 1, wherein the image represented is a three-diTrensional image, and the characteristic is the depth value of the pixel.
4. A method according to claim 1, including providing from the run-length encloded data a reference parc-aeter representing a reference value of the characteristic and a difference parameter representing the change in the value of the characteristic along the length of the run, the value of the characteristic for each written pixel being determined from the reference parameter and the difference parameter.
5. A method according to claim 3, wherein the run-length encoded data corresponds to at least two runs of pixels end to end, and one of the parameters for the second of the runs is determined from the value of the characteristic for the last pixel of the first run.
6. A method according to claim 3, wherein the run-length encoded data corresponds to at least two runs of pixels end to end, and one of the parameters for the first of the runs is determined fran the value of the characteristic for the initial pixel of the second run.
7. A method according to claim 4, wherein the reference parameter corresponds to the value of the characteristic for the initial pixel of the run.
8. A method according to claim 4, wherein the difference parameter represents a progressive linear change in the value of the characteristic along the length of the run.
9. A method according to claim 8, wherein the difference parameter corresponds to an increment in the value of the characteristic per pixel along the length of the run.
10. A method according to claim 9, wherein the value of the characteristic of each pixel written into a pixel site is determined from an accumulating value which is incremented by an amount equal to the difference parameter each time a pixel is written into a pixel site in the memory.
11. A method according to claim 9, wherein the difference parameter is a signed value, being any of positive, zero or negative.
12. A method according to claim 9, wherein the accumulating value is calculated to a higher precision than is stored in each pixel site of the memory, the value being truncated for storage at a pixel site.
13. A method according to claim 1, wherein the pixel runs are parallel.
14. A method according to claim 1, wherein the run7length encoded data includes a start address corresponding to the location of the pixel site of the initial pixel of the run.
15. A method according to claim 1, wherein the runs of pixels are provided in response to external graphics instructions.
16. A method according to claim 4, wherein the characteristic is the colour of the pixel, the reference parameter being a reference colour and the difference parameter being a colour change parameter.
17. A method according to claim 16, wherein the reference parameter has a cnent for each colour cnent of the pixels.
18. A method according to claim 16, wherein the difference parameter has a coqponent for each colcur conponent of the pixels.
19. A method according to claim 4, wherein the pixel newry is organised as a Z-buffer, and the characteristic is the 3-D depth value of the pixel, the reference parameter being a reference depth and the difference parameter being a depth change parameter.
20. A method according to claim 19, wherein the writing of the pixel run into memry comprises calculating for each pixel of the run a 3-D depth value determined from the reference parameter and the difference parameter, coqmrj-ng the calculated depth value with a predetermined clipping value, and writing the pixel from the pixel run into the memory if the calculated depth value is less than the predetermined clipping value.
21. A method according to claim 16, wherein the pixel memory is organised as a Z-buffer, and a 3-D depth value for each pixel is stored in the memory in addition to said colour characteristic, the method further including providing for each pixel run a reference depth parameter and a depth change parameter representing the change in 3-D depth along the length of the run.
22. A method according to claim 15, wherein pre-defined run7length encoded data corresponding to at least one pre-defined graphics image is stored in a data ne=ry, the generating including reading run--length encoded data from the memory in response to the external instructions, and expanding the run-length encoded data into the pixel memory at pixel- sites determined by the external instructions.
23. A method according to claim 1, wherein the run-length encoded data includes parameters defining co-ordinates of pixel runs, and the parameters for runs after a designated initial run define the coordinates relative to those of a preceding pixel run.
24. A method according to claim 23, wherein the parameters for a run after the initial run define the co-ordinates relative to the co- ordinates of the imediately preceding run.
25. A method according to claim 23, wherein the co-ordinates of each run include the location of the initial pixel site of the run, and the runlength.
26. A method according to claim 25, wherein the parameter defining the initial pixel site for a run after the initial run. is a delta value, and the initial pixel site co-ordinate is determined by adding the delta value to the value of the initial pixel site co-ordinate for the preceding run.
27. A method according to claim 25, wherein the parameter defining the rurk-length co-ordinate for a run after the initial run is a delta value, and the run7-1ength co-ordinate is determined by adding the delta value to the run-length co-ordinate for the preceding run.
28. A method according to claim 23, wherein consecutive runs are written into consecutive scan lines of the pixel mmry.
29. A method according to claim 23, wherein the run-length encoded data further includes a total run parameter indicating the number of pixel runs following the designated initial run.
30. A method according to claim 25, wherein the parameter defining the initial pixel site location of a run after the initial run is a delta value for the horizontal location along the scan line.
31. Apparatus for generating a graphics image represented as digital video data in a pixel memory, each pixel site in the ILMIIOZY storing a variable representing the value of a characteristic of the pixel, comprising means for providing runs of pixels from run7length encoded data representing the image, and means coupled between the providing means and the memory for writing each run into pixel sites in the memory, the writing means including means for determining the value of the characteristic for each written pixel based on the run--length encoded characteristic.
32. Apparatus according to claim 30, wherein the characteristic is the colour value of the pixel.
renreSp.n±pe
33. Apparatus according to claim 30, wherein the image is a three- dimensional image, and the characteristic is the depth value of the pixel.
34. Apparatus according to claim 31, wherein the providing means includes means for providing from the run-length encoded data for each run a reference parameter representing a reference value of the characteristic and a difference parameter representing the change an the value of the characteristic along the length of the run, and the writing means includes neens for determining the value of the characteristic for each written pixel based on the reference -parameter and the difference parameter.
35. Apparatus according to claim 34, wherein the mans for providing the difference parameter for a run includes means for determining the value of the difference parameter from the reference parameter of the imnediately following run.
36. Apparatus according to claim 34, wherein the means for providing the difference parameter for a run includes means for determining the value of the difference parameter from the reference parameter of the imrediately preceding run.
37. Apparatus according to claim 34, wherein the difference parameter represents a progressive linear change in the value of the characteristic along the length of the run, and the calculating mans includes means for calculating a progressive linearly changing value for the characteristic of each pixel dependent on the relative position in the run of the pixel.
38. Apparatus according to claim 37,, wherein the difference parameter corresponds to an increment an the value of the characteristic per pixel along the length of the run, and the calculating means includes means for calculating an accumulating value which is incremented by an amount equal to the difference parameter each time pixel data is written to a pixel site in the nemory.
39. Apparatus according to claizn 38, wherein the calculating means calculates the accumulating value to a greater precision than can be stored at each pixel site of the memory, the calculating means further including truncating means to truncate the value of the characteristic for storage at a pixel site.
40. Apparatus according to claim 38, wherein the providing means provides the reference parameter corresponding to the value of the characteristic of the initial pixel of the run, and the calculating means includes means for setting the accumulating value from the reference parameter at the start of the run.
41. Apparatus according to claim 34, wherein the providing means provides parallel runs of pixels.
42. Apparatus according to claim 32, wherein the reference parameter is a reference colour parameter and the difference parameter is a colour change parameter.
43. Apparatus according to claim 42, wherein the providing means provides a reference colour parameter having a separate component for each colour cnent of the pixels.
44. Apparatus according to claim 42, wherein the providing i 1 means provides a difference colur par&reter having a separate conponent for each colour nent of the pixels
45. Apparatus according to claim 33, wherein the memory is organised as a Z-buffer, the reference parameter being a reference depth parameter, and the difference parameter being a depth change parameter.
46. Apparatus according to claim 45, wherein the writing means ccnprises means for calculating for each pixel of the run its 3-D depth value determined from the reference parameter and the difference parameter, means for conparing the calculated depth value with a predetermined clipping value, and means for writing the pixel from the pixel run if the calculated depth value is less than the predetermined clipping value.
47. Apparatus according to claim 32, wherein the pixel nriwry is organised as a Z-buffer, and a second characteristic of each pixel stored in the memory is a 3-D depth value of the pixel, the providing means further including means for determining the 3-D depth value of each written pixel from the run-length encoded data.
48. Apparatus according to claim 31, further including input means coupled to the providing means, for inputting external graphics comwnds to generate the graphics image.
49. Apparatus according to claim 48, further including a data memory coupled to the providing means, containing pre-defined run71ength encoded data corresponding to at least one pre-defined graphics irmiage, the providing means including mec-m for reading selected run-length encoded data from the data memory in response to the external instructions, and the h.
writing means including means for writing the corresponding pixel runs into the pixel meimry at pixel sites determined by the external instructions.
50. Apparatus according to claim 30, wherein the providing means includes means for providing from the run-length encoded data parameters defining co-ordinates of the pixel runs, the parameters for runs after a designated initial run defining the co-ordinates relative to those of a preceding pixel run.
51. Apparatus according to claim 50, wherein the parameters for a pixel run after the designated initial run define the co-ordinates relative to those of the immediately preceding
52. Apparatus according to claim 50, wherein the co-ordinates of each run includes the locations of the initial pixel site of the run, and the run7- length.
53. Apparatus according to claim 52, wherein the parameter defining the initial pixel site for a run after the designated initial run is a delta value, and the writing means includes means for calculating the initia.1 pixel site of the run by adding the delta value to the value of the initial pixel site co-ordinate of the preceding run.
54. Apparatus according to claim 52, wherein the parameter defining the run length for a run after the designated initial run is a delta value, and the writing means includes means for calculating the run length coordinate of the run by adding the delta value to the value of the run length co-ordinate of the preceding run.
55. Apparatus according to claim 50, wherein the providing 1 means includes means for providing a total runs parameter indicating the number of pixel runs after the designated initial run.
56. Apparatus according to claim 50, wherein the providing means provides consecutive pixel runs along consecutive scan lines of the pixel memory.
57. Apparatus according to claim 53, wherein the providing means provides consecutive pixel runs along consecutive scan lines of the pixel memory, and the parameter representing the initial pixel site co-ordinate for each pixel run after the designated initial run is a delta value for the horizontal location in the scan line.
58. A method of generating shaded graphics represented as digital video data in a pixel nemory from graphics information encoded as runs of colour pixels, comprising identifying for each run a reference colour parameter and a colour change parameter representing the change in colour along the length of the run, and writing each run into p-Lxel sites in the pixel memory, the colour value of each written pixel being determined from the reference colour parameter and colour change parameter.
59. A method of generating a 3-D graphics image represented as digital video data in a Z-buffer pixel memory, from graphics information encoded as runs of pixels, comprising identifying for each run a reference depth parameter and a depth change parameter representing the change in 3-D depth along the length of the run, and writing each run into pixel sites in the pixel memory, the 3-D depth value of each written pixel being determined from the reference depth parameter and the depth change parameter.
60. A method of generating a graphics inage from run-length encoded data, wherein the run-length encoded data is expanded by writing digital video data corresporxiing to the run7length encoded data into pixel sites of a pixel memory, each site in the memory storing a variable representing the value of a characteristic of the pixel, and the value of characteristic for each written pixel being determined from the run-length encoded characteristic.
61. A method according to claim 60, wherein the expanding of the run7length encoded data comprises providing at least one run of pixels from the run--length encoded data, and writing the or each run into pixel sites in the pixel memory.
62. A method according to claim 60, wherein the characteristic is the colour value of the pixel.
63. A method according to claim 60, wherein the characteristic is the 3-D depth value of the pixel.
64. A method of generating a graphics image represented as digital video data in a pixel memory, each pixel site in the n-kemory storing a variable representing the value of a characteristic of the pixel, comprising providing a plurality of runs of pixels from run-length encoded data representing the graphics inage,- providing for each run an associated reference parameter representing the value of the characteristic for a pixel at a predetennined point in the pixel run, and writing each run into pixel sites in the pixel memory, the value of the characteristic for each written pixel being determined by interpolating between the parameter associated with the run, and the parameter associated with a consecutive run.
65. A method according to claim 64, wherein the interpolation is linear interpolation.
66. A method according to claim 64, wherein the predetermined point is the initial pixel of the run, and the consecutive run is the inmediately following pixel run.
67. A method according to claim 66, wherein the run--length data corresponds at least two pixel runs end to end on the same raster scan line of the memry, and a second parameter is provided in association with the last pixel run in the line, which represents the value of the characteristic of the final pixel in the ran, the interpolation for the last pixel run being between the two parameters associated with the run.
68. A method according to claim 64, wherein the predetermined position is the final pixel of the run, and the consecutive run is the irmiediately preceding pixel run.
69. A method according to claim 68, wherein the run-length encoded data corresponds to at least two pixel runs end to end on the same raster scan line of the memory, and a second parameter is provided in association witht he initial pixel run in the line, which represents the value of the characteristic of the initial; pixel in the run, the interpolation for the initial pixel run being between the two parameters associated witht he run.
70. A method according to claim 64, characteristic is the colour of the pixel.
wherein the
71. A method according to claim 70, wherein the reference parameter has a conponent for each colour component of the pixel, and the colour of each written pixel is determined by interpolating each colour component.
72. A method according to claim 64, wherein the characteristic is the 3-D depth value of the pixel.
73. A method according to claim 64, wherein each ran also has an associated run--length parameter representing the number of pixels in the run.
74. Apparatus for generating a graphic image represented as digital video data in a pixel memory, each pixel site in the nniwry storing a variable representing the value of a characteristic of the pixel, comprising means for providing a plurality of runs of pixels from run--length encoded data representing the graphics image, the providing means including means for providing for each pixel run an associated parameter representing the value of the characteristic for a pixel at a predetermined point in the pixel run, and writing means coupled between the providing neans and the memory for writing each run into pixel sites in the pixel memory, the writing means including calculating means for detennining the value of the characteristic for each written pixel by interpolating between the parameter associated with the run and the parameter associated with a consecutive run.
75. Apparatus according to claim 74, wherein the interpolation is linear interpolation.
76. Apparatus according to claim 74, characteristic is the colour of the pixel.
wherein the
77. Apparatus according to claim 74, wherein the characteristic is the 3- D depth value of the pixel.
78. A method of real time animation using iTmges represented by digital video data in a pixel memory, each pixel site in the memory storing a variable representing the value of a characteristic of the pixel, comprising building up consecutive frames in the memory from run-length encoded data representing the images by providing a plurality of runs of pixels corresponding to the run-length encoded data, and writing the runs into pixel sites of the pixel memory, the value of the characteristic for each written pixel being determined fran the run-length encoded characteristic.
79. A method according to claim 78, wherein the characteristic is the colour value of the pixel.
80. A method according to claim 78, wherein the characteristic is the 3-D depth value of the pixel.
81. A method for encoding graphics information for writing graphics as digital video data in a pixel memory, each pixel site in the memory storing a variable representing the value of a characteristic of the pixel, wherein the graphics information is run--length encoded, the value of the characteristic for each pixel is a run being represented by the run-length encoded characteristic.
82. - A method according to claim 81, wherein the characteristic is the colour value of the pixel.
83. A method according to claim 81, wherein the characteristic is the 3-D depth value of the pixel.
84. A method according to claim 81, wherein each run is encoded with a reference parameter representing a reference value of the characteristic, and a difference parameter representing the change in the value of the characteristic along the length of the run, whereby c the value of the characteristic for each pixel in the run can be determined from the reference parameter and the difference parameter.
85. A method according to claim 81, wherein each run is encoded with an associated reference parameter representing the value of the characteristic for a pixel at a predetemined point in the pixel run, such that values of the characteristics for other pixels in the run can be determined by interpolation between parameters for consecutive runs.
86. A method according to claim 81. wherein the co-ordinates for each pixel are encoded as parameters in the run-length encoded data, the parameters for a run after a designated initial run defining the coordinates relative to co-ordinates of a preceding pixel. run.
87. A pre-progra memory containing graphics information encoded according to claim 81.
88. A method according to claim 20, wherein the predetermined clipping value is the depth value already stored in the pixel site in the memory.
89. Apparatus according to claim 46, further including means for providing the predetermined clipping value as the depth value already stored the pixel site.
90. Apparatus according to claim 50 wherein the providing means includes means for indicating whether the parameters are relative or absolute values.
Published 1991 at The Patent Offlice, Concept Hoyse. Cardiff Road, Newport. Gwent NP9 I RH. Further copies may be obtained from Sales Branch. Unit 6, Nine Mile Point. Cwnifelinfach. Cross Keys. Newport. NP1 7HZ. Printed by Multiplex techniques lid. St Mary Cray. Kent.
GB9107156A 1990-06-18 1991-04-05 Generating graphic images with run length encoded data Withdrawn GB2245463A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
AUPK067790 1990-06-18
AUPK079490 1990-06-22
AUPK079290 1990-06-22
AUPK090290 1990-06-28

Publications (2)

Publication Number Publication Date
GB9107156D0 GB9107156D0 (en) 1991-05-22
GB2245463A true GB2245463A (en) 1992-01-02

Family

ID=27424296

Family Applications (2)

Application Number Title Priority Date Filing Date
GB9107156A Withdrawn GB2245463A (en) 1990-06-18 1991-04-05 Generating graphic images with run length encoded data
GB9107133A Withdrawn GB2245394A (en) 1990-06-18 1991-04-05 Video framestore selective addressing system

Family Applications After (1)

Application Number Title Priority Date Filing Date
GB9107133A Withdrawn GB2245394A (en) 1990-06-18 1991-04-05 Video framestore selective addressing system

Country Status (1)

Country Link
GB (2) GB2245463A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0680016A2 (en) * 1994-04-25 1995-11-02 Microsoft Corporation System and method for compressing images
US6091446A (en) 1992-01-21 2000-07-18 Walker; Bradley William Consecutive frame scanning of cinematographic film
AU746985B2 (en) * 1999-08-27 2002-05-09 Canon Kabushiki Kaisha Run-based compositing
US6980220B1 (en) 1999-08-27 2005-12-27 Canon Kabushiki Kaisha Run-based compositing

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774110A (en) * 1994-01-04 1998-06-30 Edelson; Steven D. Filter RAMDAC with hardware 11/2-D zoom function
WO1996024922A1 (en) * 1995-02-06 1996-08-15 Ic Works, Inc. Filter ramdac with hardware 1 1/2-d zoom function
EP0741379A1 (en) * 1995-05-04 1996-11-06 Winbond Electronics Corporation Scaled video output overlaid onto a computer graphics output

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2178277A (en) * 1985-07-18 1987-02-04 Sinclair Res Ltd System for display of colour shaded polygons
GB2179527A (en) * 1984-06-29 1987-03-04 Perspective Technologies Inc Computer graphics system for real-time calculation and display of the perspective view of three-dimensional scenes
GB2186765A (en) * 1986-02-17 1987-08-19 Philips Electronic Associated Data display apparatus
GB2187368A (en) * 1986-02-21 1987-09-03 Gen Electric Graphics display processors
GB2226481A (en) * 1988-12-20 1990-06-27 Sun Microsystems Inc Method and apparatus for decomposing a quadrilateral figure for display and manipulation by a computer system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4477802A (en) * 1981-12-17 1984-10-16 The Bendix Corporation Address generator for generating addresses to read out data from a memory along angularly disposed parallel lines
WO1985000679A1 (en) * 1983-07-20 1985-02-14 Ramtek Corporation Feedback vector generator and method
JPS6072020A (en) * 1983-09-29 1985-04-24 Nec Corp Dual port memory circuit
US4740927A (en) * 1985-02-13 1988-04-26 International Business Machines Corporation Bit addressable multidimensional array
US4773044A (en) * 1986-11-21 1988-09-20 Advanced Micro Devices, Inc Array-word-organized display memory and address generator with time-multiplexed address bus
US4884069A (en) * 1987-03-19 1989-11-28 Apple Computer, Inc. Video apparatus employing VRAMs

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2179527A (en) * 1984-06-29 1987-03-04 Perspective Technologies Inc Computer graphics system for real-time calculation and display of the perspective view of three-dimensional scenes
GB2178277A (en) * 1985-07-18 1987-02-04 Sinclair Res Ltd System for display of colour shaded polygons
GB2186765A (en) * 1986-02-17 1987-08-19 Philips Electronic Associated Data display apparatus
GB2187368A (en) * 1986-02-21 1987-09-03 Gen Electric Graphics display processors
GB2226481A (en) * 1988-12-20 1990-06-27 Sun Microsystems Inc Method and apparatus for decomposing a quadrilateral figure for display and manipulation by a computer system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6091446A (en) 1992-01-21 2000-07-18 Walker; Bradley William Consecutive frame scanning of cinematographic film
EP0680016A2 (en) * 1994-04-25 1995-11-02 Microsoft Corporation System and method for compressing images
EP0680016A3 (en) * 1994-04-25 1996-02-28 Microsoft Corp System and method for compressing images.
AU746985B2 (en) * 1999-08-27 2002-05-09 Canon Kabushiki Kaisha Run-based compositing
US6980220B1 (en) 1999-08-27 2005-12-27 Canon Kabushiki Kaisha Run-based compositing

Also Published As

Publication number Publication date
GB2245394A (en) 1992-01-02
GB9107156D0 (en) 1991-05-22
GB9107133D0 (en) 1991-05-22

Similar Documents

Publication Publication Date Title
US5295235A (en) Polygon engine for updating computer graphic display employing compressed bit map data
US4953107A (en) Video signal processing
US5459529A (en) Video processing for composite images
US4602286A (en) Video processing for composite images
US5408606A (en) Computer graphics system with parallel processing using a switch structure
US4700181A (en) Graphics display system
DE60300788T2 (en) Image with depth of field from Z buffer image data and alpha mixture
US5870101A (en) Image synthesizing system with texture mapping
US5977982A (en) System and method for modification of the visual characteristics of digital 3D objects
Schaufler Nailboards: A rendering primitive for image caching in dynamic scenes
DE69528627T2 (en) Method for generating image data and associated recording media
EP0637813A2 (en) Image processing
JPH0535913B2 (en)
WO1995004331A1 (en) Three-dimensional image synthesis using view interpolation
GB2113950A (en) Image composition system
GB2157122A (en) Image composition system
US5973701A (en) Dynamic switching of texture mip-maps based on pixel depth value
KR910009102B1 (en) Image synthesizing apparatus
KR19990022627A (en) Method and device for texture mapping
US4607255A (en) Three dimensional display using a varifocal mirror
US6441818B1 (en) Image processing apparatus and method of same
JP2976945B2 (en) Image drawing device
GB2245463A (en) Generating graphic images with run length encoded data
JP3349871B2 (en) Image processing device
US6348917B1 (en) Dynamic switching of texture mip-maps based on depth

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)