CA1229935A - Terminal independent color memory for a digital image display system - Google Patents
Terminal independent color memory for a digital image display systemInfo
- Publication number
- CA1229935A CA1229935A CA000516984A CA516984A CA1229935A CA 1229935 A CA1229935 A CA 1229935A CA 000516984 A CA000516984 A CA 000516984A CA 516984 A CA516984 A CA 516984A CA 1229935 A CA1229935 A CA 1229935A
- Authority
- CA
- Canada
- Prior art keywords
- color
- data
- blinking
- memory
- block
- 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.)
- Expired
Links
Landscapes
- Controls And Circuits For Display Device (AREA)
Abstract
Abstract:
The present invention relates to a digital image display system. The system is comprised of a color memory for storing color data values and a processor unit which is responsive to a particular command and data sequence providing a blinking of certain picture element data from one particular color specified by the data sequence by periodically changing color data values in the color memory. Multiple color blinking processes are provided which is responsive to multiple commands with each process subsequent to a first process being in delay relationship to the next previous process. A display unit is provided for displaying the multiple color blinking which are responsive to the processor.
The present invention relates to a digital image display system. The system is comprised of a color memory for storing color data values and a processor unit which is responsive to a particular command and data sequence providing a blinking of certain picture element data from one particular color specified by the data sequence by periodically changing color data values in the color memory. Multiple color blinking processes are provided which is responsive to multiple commands with each process subsequent to a first process being in delay relationship to the next previous process. A display unit is provided for displaying the multiple color blinking which are responsive to the processor.
Description
FOR A DIGITAL IMAGE DISPLAY SYSTEM
This is a division of cop ending Canadian Patent Application serial number 403,146 which was filed on May 18, 19820 This invention relates to digital image display systems and, more particularly, to a terminal independent color memory for such systems.
Methods and apparatus for utilizing digital techniques to provide color images on video display screens are well known. A problem, however, has arisen in that computability among digital display systems has been made difficult by the great variety of methods and apparatus for providing the color images. For example, one available system utilizes a specific color value selection method; viz., a direct selection ox data values corresponding to the primary colors - red, green and blue, while other systems employ a technique for specifying both a foreground and a background color by indexing a permanent, "read only" color memory.
The art of color computer graphics generally employs a color look-up table or color map indexed by a binary number to expand the repertory of colors available for display. One such terminal is capable of providing 8 colors for current use from 64 possible color values stored in its color map.
Other features, such as blinking, i.e., the ability to alternate between two visual attributes, may be provided by these terminals. However, the various methods and apparatus for providing such features are similarly incompatible.
With the advent of services known as teletext and videotext or view data, wherein a customer is able to gain access to a remote host computer and associated data base .,, ., , ~.~
I,., ..
This is a division of cop ending Canadian Patent Application serial number 403,146 which was filed on May 18, 19820 This invention relates to digital image display systems and, more particularly, to a terminal independent color memory for such systems.
Methods and apparatus for utilizing digital techniques to provide color images on video display screens are well known. A problem, however, has arisen in that computability among digital display systems has been made difficult by the great variety of methods and apparatus for providing the color images. For example, one available system utilizes a specific color value selection method; viz., a direct selection ox data values corresponding to the primary colors - red, green and blue, while other systems employ a technique for specifying both a foreground and a background color by indexing a permanent, "read only" color memory.
The art of color computer graphics generally employs a color look-up table or color map indexed by a binary number to expand the repertory of colors available for display. One such terminal is capable of providing 8 colors for current use from 64 possible color values stored in its color map.
Other features, such as blinking, i.e., the ability to alternate between two visual attributes, may be provided by these terminals. However, the various methods and apparatus for providing such features are similarly incompatible.
With the advent of services known as teletext and videotext or view data, wherein a customer is able to gain access to a remote host computer and associated data base .,, ., , ~.~
I,., ..
2~3~
from a digital image display terminal, there has arisen a need to solve the problems presented by incompatible terminals.
Summary of the Invention In accordance with an aspect of the invention there is provided a digital image display system, comprising: a color memory for storing color data values;
processing means responsive to a particular command and data sequence providing a blinking of certain picture element data from one particular color specified by the data sequence to another particular color specified by the data sequence by periodically changing color data values in the color memory, multiple color blinking processes being provided responsive to multiple commands, each process subsequent to a first process being in delay relationship to the next previous process; and a display means for displaying the multiple color blinking responsive to the processing means.
In accordance with another aspect of the invention there is provided in a digital image display system, a method for providing a blinking of certain picture element data from a particular color to a particular color, the method characterized by the steps of: specifying multiple blinking processes, each color blinking process including providing a blinking of certain picture element data from one particular color specified by the data sequence to another particular color specified by the data sequence by periodically changing color data values in the color memory; specifying a delay interval if desired, between the processes; and displaying the multiple color blinking.
These problems are solved by the use of an unique process in a terminal independent color memory. Processing means are provided for accessing color data in a terminal independent manner, regardless of the size of color memory at a terminal or its permanent or semi-permanent nature.
Known modes of color access are incorporated into the s - pa process for selecting a particular mode of color memory access, for setting a particular color in a color map or for setting foreground or background colors available for current use (in-use colors). These in-use colors then are applied by subsequently received text and graphics drawing commands. In a system having a permanent color memory, the closest color to the desired color hue is selected from the permanent color selection table.
The content of the color map is established by selecting a gray scale equally spaced between black and white and hue data values equally spaced about a hue circle wherein the primary colors are located in 120 degree relationship. In this manner, a host computer is able upon initialization of the terminal independent color memory, to predict the configuration of a particular color map and the color composition of a digital image or frame of information for display.
Color blinking is provided by means ox a linked list of multiple processes. The on and off intervals of blink-from colors and blink-to colors may be specified.
In addition, the delay between processes is selectable Simple animation is possible with the present technique.
For example, a ball may appear to bounce across an image, a river may appear to flow or stars may appear to twinkle.
grief Description of the Drawings The present invention taken in conjunction with the invention disclosed in cop ending Canadian Patent Application serial number 403,146 which was filed on May 18, 1982, will be described hereinbelow in detail with the aid of the accompanying drawings, in which:
FIG. 1 is a general block diagram of a digital image display system which may employ the principles of the present invention, the system being exemplary of ."
I
arrangements for color processing;
FIG. 2 is an operational diagram of the process for selecting a color data value from a color map for display of particular picture element data;
Fugues 3, 4, and S are flow diagrams of a method for accessing color data values for display regardless of the mode of access employed by a particular digital image display system in accordance with the present invention;
FIG. is a representation of a color hue circle wherein the primary colors - red, green and blue - are - located at 120 degrees, 240 degrees and 350 degrees respectively;
FIG. 7 is an exemplary table of color data values selected in accordance with a method for initializing a color map in a terminal independent manner in accordance with the present invention;
Fugues 8 through 14 generally depict the present method for providing Inultiple processes of color blinking in accordance with the present invention;
FIG. 8 is a depiction of the contents of a memory block associated with a particular blink process FIG. 9 comprises blink process tables indicating the logical connection of linked lists of active and free process blocks as depicted in FIG. 8;
FIG. 10 depicts an active blink process table comprising a plurality of process blocks as depicted in FIG. 8;
FIG. 11 is a flowchart of a method for providing multiple process color blinking;
FIG. 12 is a flowchart diagram of an algorithm for adding a new process to the active blink process table of FIG. 10;
FIG. 13 is an exemplary timing diagram and color tables for a color blink comprising three processes; and FIG. 14 is an exemplary blink process table similar to that depicted in FIX. 9 whose process Emory block entry valves are shown relative to a particular point in the timing diagram ox JIG. 13.
Detailed Description Referring more particularly to FIG. 1, there is shown a general block diagram of a digital image display S system employing the principles of the present invention.
The digital image display system comprises a data processor 1 having bidirectional access to a processor data bus 2. A separate timing generator 3 may provide the clock sisals required on the processor data bus 2; however, in some systems, the timing generator capability is provided by data processor 1. The timing generator 3 may also provide the timing signals on a video data bus 8 for use by video memory 4, and by a video controller 6. The video controller 6 operates video display 7 responsive to the picture element data received over the video data bus 8.
The picture element comprises a binary index for selecting color data values from color map pa. Complete digital images or frames 5 of picture element information are sequentially displayed in color by video display 7.
Data processor 1 may be a microprocessor comprising read-only memory 3 and random access memory 10.
In a view data or teletext terminal which may be located in a residence, it is desirable that data processor 1 be as small as possible; accordingly, a microprocessor may be assured.
Data processor 1 responds to user input from, for example, a keyboard, keypad, joystick or floppy disc via leads 18-21, respectively, or from other data input devices known in the art through peripheral device interface 17.
In accordance with known technology, data processor 1 may program the video memory 4, the timing generator 3 and the video controller 6 to the proper modes ox operation which will allow maximum flexibility in remotely reconfiguring the terminal operating characteristics.
In its application with a view data or teletext terminal, the data processor 1 may also respond to input provided prom a remote or centralized data base such as one .. , located at a television broadcast station or a provider of view data services. Such inputs art provided through communications interface 12. In the case of teletext services, a TV broadcast signal I is received at interface 12 via receiver 14. In the case of view data services, data is provided over a communications line 15 and through a data modulator/demodulator 13 to interface 12.
Input/output controller 11, under user control, provides selectable access to the various data input and output arrangements.
Processor data bus 2 is a bidirectional conduit through which the data processor 1 controls the video memory 4, the timing generator 3 and the video controller 6. The bus generally comprises address capability, a data path and control lines which may include interrupt, reset, clock (for synchronous use), wait (for asynchronous use), and bus request lines.
The timing generator 3 may comprise a chain of programmable logic circuits, digital dividers and counters for providing required timing signal outputs. For operation of the video data bus 8, a number of different timing signals are required. Horizontal and vertical drive signals are provided in accordance with horizontal and field rates respectively. A dot clock signal is provided at the dot frequency picture element or pot rate) of the system. An odd/even field signal indicates if the odd or even field is to be displayed in an interlaced system. A
composite blanking signal indicates if video is being displayed or if vertical or horizontal retrace is occurring. Also, a group clock signal or other signals may be provided. The group clock signal indicates when to access data for a new group of picture element data from memory. For example, picture element (pot) data in video memory having a slow access time may be serially provided in groups of 4, or 16 picture elements. On the other hand, a parallel data transmission scheme is possible, potentially increasing the requirements for leads of video ~L~2~93~
data bus 8.
Controller O accepts digital image information from bus 8; pel-by pot, and converts the digital information, if necessary, to analog form for presentation on video display 7. Controller 6 comprises three components: 1) color map Gay 2) digital to analog conversion and sample and hold circuits (not shown), if required by video display 7; and 3) a standard composite video encoder (not shown), for example, for providing standard video or red, green, blue (RUB) outputs.
Color map pa comprises a random access memory indexed by a binary number component of pot data entering controller 6 by way of bus I. For example, if four bits of color data are compiled per picture element, 16 color Cassius are directly accessible from color map pa. Each indexed choice may comprise, for example, 12 bits of RUB
data, tile domain of possible data values in this case being 4096 possible values. The color map pa may be loaded and updated from the large repertory of possible choices by processor 1 under local or remote control.
Memory 9 may contain a directly accessible color table. Selections of color data values from memory 9 are transferred to color map Spa for subsequent use. Also, memory 10 may contain a color memory, color data similarly being transferable to color map pa. Various modes of access to color memory, wherever located, in a digital image display system, are employed by the providers of view data and teletext services. Means for providing terminal independent color memory will be subsequently discussed in connection with Fugues 3-14.
The color map RUB output may be provided to three separate digital to analog converters, one for each primary color. The RUB output may enter display 7 directly, may first be converted to a composite video signal or be modulated to a particular OF frequency for input through an antenna lead-in.
9~3S
Video display 7 may be a monitor, a television set, a video projection system, a liquid crystal display or an LED display. The list is not intended to be all inclusive and, if another standard forlnat of input video signal is required, the principles of the present invention assume the capability of controller 6 for providing such a standard video signal.
Memory 4 comprises random access memory for storage of video picture element information for display.
In particular, memory 4 generally accepts input from data processor 1 in the form of an image comprising digitized picture element information. Memory 4 stores the information until rearrangement of data occurs and periodically passes the pot information over bus 8 to controller 6 on command of processor 1. As previously ; indicated, the pot data comprises binary data employed to index a particular color entry in color map pa.
Gus 8 connects generator 3 and memory 4 to controller 6. It comprises data leads for picture element ; 20 information which is used for indexing the color map pa, and timing leads for providing video timing and control.
The six timing and control leads include the previously mentioned horizontal and vertical drive signals, the dot clock, the field signal, the composite blanking signal and the group clock signal.
Referring more particularly to FIG. 2, an operational diagram is shown Wylie depicts how a binary number cor.lponent of picture element data stored in memory 4 indexes color map pa so that primary color data values for a video signal are provided for video display. Similar reference characters have been employed in Fugues 2 through 14 and in the subsequent discussions wherever possible. In addition, the first numeral of reference characters employed in Fugues 2 through 14 relates to the location where the referenced element first appears.
In the depicted example a color map of 16 colors is shown. The capacity of the color map may comprise, for Lo I
example, four bits each of red, Green and blue data. The total twelve bit capacity Tulane relates to 4096 possible colors. accordingly, cacti of the 15 tabular values indexed comprises 12 bits of RUG data.
S In the depicted example, picture element data 201 identifies the coordinate location in a particular image or frame 5 for display and specifies the binary index value representing the desired color for picture element 201.
Binary index value 1011 representing the twelfth entry in the color map may, for example, represent color data value 0011 1111 0000; 0011 being red data; 1111 being green data, and 0000 being blue data. The RUG data value, as previously discussed, illuminates the corresponding coordinate location in the particular in-use color in frame S of display 7.
Upon command of a remote host computer, 16 specific colors May be stored in color map 6รข by processor 1 instructions stored in memory 9. Processor 1 may also load the color map under control of local keyboard input.
Either the host computer or the local user may store colors directly in color Map pa from memory 9 or from a semi-permanent memory 10 with color data values for use.
Referring to Fugues 3, I, and S, flow diagrams depict the method in accordance with the invention for accessing color map Ox in a terminal independent manner and for setting the foreground and background colors available for current use. FIG. 3 represents a command decoding process. If a first particular command is found, the sequence depicted by the flow decorum of FIG. 4 is performed within processor 1. If a second particular command is found, then the flow diagram of FIG. S is followed. Other commands are interpreted by the command decoding process depicted in FIG. 3. These other commands may include commands to perform the subsequently described color blinking process or other- text or graphic drawing processes ~!39~5i referring particularly to I 3, the data processor is instructed (box 301) to attempt to locate the next opaqued. The command May be received from a remotely located host computer or locally through the peripheral device interface 17. At decision box 302, processor 1 determines if the command entered is one for selecting a node of color memory access. it box 03, transfer is effected to the mode selection process shown in FIG. 4 if there is a match. If there is not a match, the data processor determines at decision box 304 whether the command entered is one for setting a color data value. At box 305, transfer is effected to the color setting process shown in FIG. 5 if there is a match. In a similar manner, the entered colnmand may be composed with other valid commands 306 and the entire command recoding process repeated.
; Referring to JIG. 4, a process for selecting a mode from a plurality of modes of color memory access and for setting foreground and background in-use colors for two of these modes is shown in flowchart form. Having transferred control to box 401 of FIG. 4 from the flowchart of FIG. 3, processor 1 now interprets the operands or data following the command. In general, it is presumed that a command will always be followed by a sequence of operands or data entry or a new command. Accordingly, in the process depicted in FIG. 4, the data operands are interpreted and, as a result, the mode of access and the background and foreground colors are set, if possible.
In particular at box 402, the first data operand is recovered, if possible. If at box 403 an operand is located, another attempt is made at box 404 to locate a second operand. If at box 407 a second operand is found, the color mode of access is set at box 411 to mode 2. In other words, the color mode is determined by the number of us operands following the command for selecting the mode of access. Accordingly when no operands are found, the color mode is set at box 405 to Mohawk 0. If one operand is found, the color mode is set at box 40~3 to mode 1.
In color mode 0, besides setting the color mode, it may be necessary in systems employing Emory 10 to reinitialize memory Go to a default set of color data values. Accordingly bloc 406 suggests this activity if it may be performed. Color mode 0 of the present terminal independent color memory is adapted for use in digital image display systems employing a direct color selection process either from permanent or semi-permanent color memory.
After setting the color modes to 1 or 2 at blocs ~08 or 911 respectively, the foreground and background in-use colors are set. If foreground and background colors may be set in color mode 0, the subsequently described process of FIG. 5 performs this task. In color Mode 1, only picture element data of the actual character in video err is drawn in the current in-use foreground color without illuminating adjoining picture element data in a background color. In color mode 2, text characters will be drawn in the in-use foreground color over the in-use background color. In other words, a character may fill a rectangular field on display I The actual character is illuminated in foreground color as in color mode 1, and the rectangular field surrounding the actual character is filled with the current in-use background color.
Hereford, in color rode I the foreground color is set at box 409 to the value of the first operand At box 410, the background color is set to a data value representing "invisible" or no color. In color mode 2 the data processor compares the first and second operands entered. of the two operands are equal, then it is assumed that it is desired to change only the background in-use color and not the foreground color. Otherwise, the foreground color is set at box 419 and the background color is set at box 413 to the first and second operands respectively. Control is returned at box 415 to the opaqued . , ~L2;~3~
decoder program upon the completion or the color access sequence.
Fig 5 is a flowchart (1) in color modes 1 or 2, for setting the color data values in memory pa in a S terminal independent manner or (2) in color mode 0, for setting foreground and background colors. At decision box 502, the data processor determines if color mode 0 has been previously entered. It is assumed that, before the command for setting a color data value is entered, the select color access mode command has been read and acted upon in accordance with the flowcharts of Fugues 3 and 4.
If the color access mode at box 502 is 0, the first operand is located if possible at box 503. If the operand is located at box 505, a second operand is located I if possible at box 507.
If a second operand was not located at box 509, the foreground color and the background color will be modified at boxes 512 and 514 respectively. At box 512, the foreground color is set to the index of the closest match of the first operand and a color value from table pa.
At box 514, the background color is set to an "invisible"
color. 'Invisible'' it intended to describe the process of depositing pot values in video memory 4 only at the character or graphics drawing command locations corresponding to the foreground of the resulting image and not over-writing those corresponding to the background.
If a second operand has been successfully located at box 509 then a check is made at box 511 to see if both operands are equal If the first and second operands are equal, only the background color is set at box 515. If the two operands are not equal at box 511, the foreground color is set at box 513 and the background color is subsequently set at box 515. As in the case of a single operand, the foreground color and the background color are set to the index of the closest matched color in table pa.
If the color mode was not n at box 502, table pa will be loaded With colors specified by subsequent ~2~35;
operands. The current in use foreground color index will indicate the first potential color map Monroe table entry to be changed. INDEX is set to the current in-use Foreground color index at box 501. An attempt is made to get an RUB operarld at box 50q if possible. If the operand is found at decision box 506, then the RUG operand is loaded into table pa at the location determined by INDEX.
The INDEX is then incremented at box 510. The sequence of boxes 5Q4, 506, 508 and 510 is repeated as long as operands are available.
Referring to FIG. 6, a color hue circle is shown wherein the primary colors - red, green, and blue -are located at 120 degrees, 2~0 degrees and 360 degrees.
Upon the operation of the box 406, FIG. 4, and on other occasions in the operation of a digital image display system, for example, an explicit resetting operation, it is appropriate to initialize or establish table pa regardless of the number of possible entries and in a predictable fashion. Accordingly, a method is provided whereby one half of the color pa? memory in table pa is filled with a grew scale whose values are equally spaced between black and white and tile other half of table pa is filled with a color hue scale whose values are spaced about a hue circle of 360 degrees.
In particulate, if the number of bits of a binary number index to table pa is defined as N, then the number of entries in the color map is ON. Then the quantity 2N/2 of entries comprise grew scale values and the quantity 2~/2 of entries comprise color hue values.
If the capacity of table pa is M bits of data, the quantity M/3 bits of data represents data for each primary color - red, green, and blue. In general, the relationship between I and N is maintained such that M is greater than or equal to three times the quantity N-l.
By way of example, if a particular color map mottler is indexed by a 4 bit binary index value, then 8 grew scale levels and hues are loaded upon request into table pa. The quantity M theta should be treater than or , :
33~
equal to I: 3 bits each ox red, Green, and blue data.
In this example the grew scale is between zoo on zoo and 111 ill ill and is represented by the binary result of the equation Pi = Cole) where I
represents the decimal number ox grew scale levels, generally 2N/2, k, a quantity between Oily, is the particular entry in the map desired, and Pi is the binary result for a primary color - red, green and blue. It is most convenient if, in the operation of data processor 1, the result is truncated to I bits. The value for all the primary colors is set equal to the truncated result of the binary division.
FIG. 7 depicts an exemplary color map memory table. In accordance with the above method, the first eight values are initialized to grew scale levels in a grew scale 706 between 000 000 000 at address 704 with the binary index value 0000 and value 111 111 111 at address 704 with the binary index value 0111.
To provide the color hue values, data processor 1 must first calculate the angle of a desired color nut. If 2N/2 entries are required then the result of the equation 1 ... n times 360 degrees divided by 2N/2 provides the angle.
In FIG. 6, if eight hue data values are desired, color data values are required for 45 degrees, at location 611, 90 degrees at location 612, 135 degrees at location 613, and so on about the color hue circle.
The data processor must find the location of the closest primary color angle to the desired angle h, the next closest primary color and the primary color furthest from h. For color value 511 at 45 degrees, the primary color blue at location fool or 360 degrees is the closest primary color. This result may be established in temporary memory as variable Pi. The next closest primary color is red at location 603 or 120 degrees. This result may be established in temporary memory as variable Pi. The primary color furthest prom the desired color hue is green at location fin or 240 decrees. This result may be .:
33~i established in temporary memory as variable Pi.
The results Pi, Pi, and Pi, of this calculation are then el!lployed to establish the color data values for the primary colors - red, green and blue. As it is known that Pi is blue in this example, the blue data value in binary form is set in color map memory as all l bits. As it is known that Pi is green, the green data value is set in color map Emory as all 0 bits.
In the case of Pi, data processor l is instructed to calculate the binary result of the equation:
As it is known that Pi is red, the red data value is set in color map memory to the binary result of the above calculation. As with the grew level calculation, it is generally appropriate that the result be truncated to M/3 data bits in length.
Referring again to FIG. 7, the color hue data values are entered in address locations 1000 to 1111 in the depicted exemplary color map memory table. In particular, the above calculation for a hue at 45 degrees on the hue circle of FIG. 6 is located at address 1001. As previously indicated, the blue data value is all 1 bits or 111; the green value is all 0 bits or 000, and the red value is given by the binary result 101.
FIG. 8 depicts a memory block associated with the blink process and identifying its parameters. Each time a blink process is initiated, a blink process block must be established in memory which stores the relevant parameters associated with that process. The first entry 801 in the block stores the LINK value, which is a pointer to the starting address of another blink process block. If the process is active, then the WINK value will point to the next active process block. If the process is inactive, 33~
then the LINK value will point to the next FREE process blocic.
Toe second entry 8~2 in the block stores the current status of the blink process. The status can be either INACTIVE ON or OFF (the latter two of which are considered active states).
The third entry 803 is used to store the BLINK-FROM COLOR which is a binary number index that acts as an index into the color map memory table. This index number is extracted from the operand following command or ox code representing the color blinking process and does not change throughout the life of the process.
The fourth entry 8~4 is used to store the SAVE
COLE, which is an RUB value and not a binary index that is periodically copied out of the color map memory table in a manner that will be described subsequently.
the fifth entry 805 is used to store the BLINK-TO
COLOR which is a binary number that acts as an index into the color map memory table. This number is also extracted from the operand following the blink process ox code and does not change throughout the life of the process.
The sixth entry 806 stores the ON TIME and the seventh entry ~07 stores the OFF TIME, both of which are most conviently numbers between 1 and 64 that represent time intervals and fractions of a second. These are also extracted from the operand following the blink process ox code and do not change throughout the life of the process.
The eighttl entry 808 stores the CURRENT COUNT
- which is also a number that represents a time interval.
This number is updated regularly as the process is executed.
FIG. gives a logical view of how the linked blink process blocks are treated. where are two linked lists kept in memory The first contains all of the active us process blocks and the second contains all of the INACTIVE
or free process blocks. the rlemofy occupied by the INACTIVE process blocks is available ion use by new blink ... .
:12~9~3S
processes, and hence this list is called the FREE list.
The heat 901 of the ACTIVE list is a single pointer that contains the address in memory of the beginning ox the process block of the nicety recently received active blink S process 902. The LINK entry in this bloc in turn points to the beginning of the next most recently received active blink process 903, and so on to the beginning of block 904, block 905 through the entire list of process blocks that contain active blink processes. The displaced appearance lo of the blink process blocks is intended to represent their random appearance in memory. The last process Lock on the list contains a LINK value NULL indicating the end of the list. the head of the FREE list 910 is a single pointer that contains the address in memory of the beginning of the lo Process block of the first inactive blink process 911. The LINK entry in this block points to the beginning of the next inactive process block 912 and so on to the beginning of block 913, block 914 through the remainder of the inactive process blocks. When the system is initialized, as well as any time that there are no currently active blink processes, all of the available blocks of memory allocated to the blink feature are on the TREE list When a new blink process is initiated, the first block in FREE list 911 is jade available for its use. When US this happens, the head of the FREE list pointer 910 is changed to the address of the beginning of the next free block 912. Also, the head of the ACTIVE list pointer 901 is changed to the address of the beginning of the block 911 just allocated, and the LINK pointer within block ill is changed to the address of the beginning of what was the Yost recently received active blink process block 902. The new active process block 91l is then loaded with the relevant ~aran~eters of the blink process being defined.
ERG. lo shows the actual organization within Mueller of blink Irises blocks. The first entry Lowe and the second entry 1002 store the Lydia of the ACTIVE list pointer and head of the Ennui: list pointer, respectively.
29~35 Process blocks are stored in sequential error locations Lowe through loo or until the capacity allocated within Ille~ory 10 is reached. These locations do not necessarily correspond to the order in which the blocks appear on the linked lists.
FIG 11 shows a flow diagram for TIC, the primary blink processing subroutine. TIC is periodically called from a main control program, typically every 1/10 to second. This subroutine goes through, examines, and updates each process block (and the color map memory table if necessary in the ACTIVE list starting with the most recently received blink process block and proceeding to the last.
activity block 1101 with which the TICK
subroutine begins, sets the value of an internal status variable TRY to the address stored in the head of the ACTIVE list. Tin as described previously, points to the most recently received active process block.) Activity block isle initiates loop, Lucy steps comprise blocks 1103 through 1117, that is exited only when it returns a PER value of PULL. The first step in the loop, Jo activity block 1103, subtracts 1 from the COUNT of the process block pointed to by PER. Decision block 1104 then ; checks the value of COUNT to see if it is equal to or less than zero. If it is not, then control action proceeds through block 1109 (by passing blocks 1106 through 1116) to activity block 1117, which changes PER to the address stored in the LINT entry of the process block pointed to by TAO or, in other words, the current process block. Control then loops back to activity block 1103 as long as PER does not have the value NULL. If the COUNT is less than or equal to zero, then control proceeds through block 1105 to decision block 1106. Decision block 1106 checks the value ; of STATUS in tile current process block. If STATUS is on, control proceeds through block 110~ to activity block 1111.
If Strauss is of, control proceeds ., , ~;2;29~35 through block 1107 to activity block lily.
Activity block 1111 takes the RUG value stored in SO COLOR of the current process block and writes it into the color map memory table entry indicated by the index stored in the FROM Courier entry in that process block.
Control then passes to activity block 1112, which sets the COUNT entry of the current process block to the contents of the OFF TIME entry of that block.
Activity block 1116 then sets the STATUS of that process block to OFF before control passes to activity block 1117, whose action has been described previously.
Activity block 1110 copies the RUB value from the color map entry indicated by the index stored in the FROM
COLOR entry of the current process block into the SAVE
COLOR entry of that process block. Activity! block 1113 then copies the RUB value from the color map entry indicated by the index stored in the TO COLOR entry of the current process block into the color map entry indicated by the index stowed in the FROM COLOR entry of that process block. Activity block 1114 then sets the COUNT entry to the value stored in the ON entry. Finally Activity block 1115 sets the STATUS entry to ON before control is passed to Activity block 1117, whose action has been described previously.
When the loop is finally exited, that is, when PER returns the value NULL, the subroutine TICK is complete and control returns to the main control program.
In the previous discussion, the assumption was made that an active process list already had been established.
FIG 12 is a flow diagram illustrating how one active blink process is added to the active list Since only one active process is allowed for the ordered pair of FROM COLOR (FC~ and TO COLOR (TO), the current list of active process blocks must be searched to determine if a process is active for a given pair. This search is indicated in box 1201. If the ordered pair (FC, TO is , . .
I
found in the currently active process blocks, that block is made INACTIVE and is removed from the linked list as indicated in box 120~ hen box 1205 is encountered, an attempt is made to obtain a free process bloc from the previously described FREE list. At decision box 1207 a check is made to see if a free block was successfully obtained. If no block was obtained the entire set of possible blocks must have been already allocated to ACTIVE
processes and therefore no addition can be made, so the entire process addition procedure is exited If a free process block is obtained, it must be initialized as illustrated in box 1210. The new process always begins with a Stylus of OFF which guarantees that the first transition will be OFF-to-ON as previously stated.
The FROM COLOR, TO COrJOR and ON and OFF TIME's are also initialized in box 1210 from data obtained from the operand entered following the blink process opaqued The phase delay (POD) is an offset from the next OE~-to-GN transition ox the most recently received active process (that is, the process of the head of the ACTIVE
process list). The head of the ACTIVE list is checked at decision box 1211 in case the list is empty. If the list is empty, then the phase delay does not apply and the CURRENT COUNT in the new process block is set to the OFF
TIME as indicated in box 1219.
If an active process exists then two situations arise, either the process is currently ON or OFF. The STATUS of the process is checked in decision block 121~.
If the process is ON then tire next OFF-to ON transition will occur when the CURRENT COUNT reaches the interval of time represented by OFF TIME expires. Therefore, the total time to the next OFF-to-ON transition will be the CURRENT
COUNT plus the OF TIME. In order to synchronize the new process to the most recently received active process, its Current COUNT is set to the lima until the next OFF-to-ON
transition plus any phase delay as shown in box 1210.
~2Z~
If the last active process has a STATS of OFF, then the next Often transition will occur at a total time equal to CURT COURT. The new process is therefore synchronized to that transition simply by setting the new process CURRENT COUNT to the CURRENT COUNT of the most recently received process plus any indicated phase delay.
In all cases once the complete process block is initialized, it is added to the active process list as shown in BOX 12200 The ADD IT PROCESS returns control to the main control program.
Referring to FIX. 13, exemplary color tables and a timing diagram are illustrated for three active blink processes. Successive representations of an eight entry color table are illustrated in table 1301. Time is indicated by time line 1312. A legend 1311 indicates the assumed color valves of color table 1301. The information that was used to establish the three blink processes is as shown in Table 1.
~L2~29'~
Arrival Time T = 0 FROM COLOR h Arrival Time T = 5 no COLOR
PHASE DELAY
Arrival Time T = 10 PHASE DELAY
I
- I -Tune color table 1301 at time To contains the color value white in entry 1, the color value red in entry
from a digital image display terminal, there has arisen a need to solve the problems presented by incompatible terminals.
Summary of the Invention In accordance with an aspect of the invention there is provided a digital image display system, comprising: a color memory for storing color data values;
processing means responsive to a particular command and data sequence providing a blinking of certain picture element data from one particular color specified by the data sequence to another particular color specified by the data sequence by periodically changing color data values in the color memory, multiple color blinking processes being provided responsive to multiple commands, each process subsequent to a first process being in delay relationship to the next previous process; and a display means for displaying the multiple color blinking responsive to the processing means.
In accordance with another aspect of the invention there is provided in a digital image display system, a method for providing a blinking of certain picture element data from a particular color to a particular color, the method characterized by the steps of: specifying multiple blinking processes, each color blinking process including providing a blinking of certain picture element data from one particular color specified by the data sequence to another particular color specified by the data sequence by periodically changing color data values in the color memory; specifying a delay interval if desired, between the processes; and displaying the multiple color blinking.
These problems are solved by the use of an unique process in a terminal independent color memory. Processing means are provided for accessing color data in a terminal independent manner, regardless of the size of color memory at a terminal or its permanent or semi-permanent nature.
Known modes of color access are incorporated into the s - pa process for selecting a particular mode of color memory access, for setting a particular color in a color map or for setting foreground or background colors available for current use (in-use colors). These in-use colors then are applied by subsequently received text and graphics drawing commands. In a system having a permanent color memory, the closest color to the desired color hue is selected from the permanent color selection table.
The content of the color map is established by selecting a gray scale equally spaced between black and white and hue data values equally spaced about a hue circle wherein the primary colors are located in 120 degree relationship. In this manner, a host computer is able upon initialization of the terminal independent color memory, to predict the configuration of a particular color map and the color composition of a digital image or frame of information for display.
Color blinking is provided by means ox a linked list of multiple processes. The on and off intervals of blink-from colors and blink-to colors may be specified.
In addition, the delay between processes is selectable Simple animation is possible with the present technique.
For example, a ball may appear to bounce across an image, a river may appear to flow or stars may appear to twinkle.
grief Description of the Drawings The present invention taken in conjunction with the invention disclosed in cop ending Canadian Patent Application serial number 403,146 which was filed on May 18, 1982, will be described hereinbelow in detail with the aid of the accompanying drawings, in which:
FIG. 1 is a general block diagram of a digital image display system which may employ the principles of the present invention, the system being exemplary of ."
I
arrangements for color processing;
FIG. 2 is an operational diagram of the process for selecting a color data value from a color map for display of particular picture element data;
Fugues 3, 4, and S are flow diagrams of a method for accessing color data values for display regardless of the mode of access employed by a particular digital image display system in accordance with the present invention;
FIG. is a representation of a color hue circle wherein the primary colors - red, green and blue - are - located at 120 degrees, 240 degrees and 350 degrees respectively;
FIG. 7 is an exemplary table of color data values selected in accordance with a method for initializing a color map in a terminal independent manner in accordance with the present invention;
Fugues 8 through 14 generally depict the present method for providing Inultiple processes of color blinking in accordance with the present invention;
FIG. 8 is a depiction of the contents of a memory block associated with a particular blink process FIG. 9 comprises blink process tables indicating the logical connection of linked lists of active and free process blocks as depicted in FIG. 8;
FIG. 10 depicts an active blink process table comprising a plurality of process blocks as depicted in FIG. 8;
FIG. 11 is a flowchart of a method for providing multiple process color blinking;
FIG. 12 is a flowchart diagram of an algorithm for adding a new process to the active blink process table of FIG. 10;
FIG. 13 is an exemplary timing diagram and color tables for a color blink comprising three processes; and FIG. 14 is an exemplary blink process table similar to that depicted in FIX. 9 whose process Emory block entry valves are shown relative to a particular point in the timing diagram ox JIG. 13.
Detailed Description Referring more particularly to FIG. 1, there is shown a general block diagram of a digital image display S system employing the principles of the present invention.
The digital image display system comprises a data processor 1 having bidirectional access to a processor data bus 2. A separate timing generator 3 may provide the clock sisals required on the processor data bus 2; however, in some systems, the timing generator capability is provided by data processor 1. The timing generator 3 may also provide the timing signals on a video data bus 8 for use by video memory 4, and by a video controller 6. The video controller 6 operates video display 7 responsive to the picture element data received over the video data bus 8.
The picture element comprises a binary index for selecting color data values from color map pa. Complete digital images or frames 5 of picture element information are sequentially displayed in color by video display 7.
Data processor 1 may be a microprocessor comprising read-only memory 3 and random access memory 10.
In a view data or teletext terminal which may be located in a residence, it is desirable that data processor 1 be as small as possible; accordingly, a microprocessor may be assured.
Data processor 1 responds to user input from, for example, a keyboard, keypad, joystick or floppy disc via leads 18-21, respectively, or from other data input devices known in the art through peripheral device interface 17.
In accordance with known technology, data processor 1 may program the video memory 4, the timing generator 3 and the video controller 6 to the proper modes ox operation which will allow maximum flexibility in remotely reconfiguring the terminal operating characteristics.
In its application with a view data or teletext terminal, the data processor 1 may also respond to input provided prom a remote or centralized data base such as one .. , located at a television broadcast station or a provider of view data services. Such inputs art provided through communications interface 12. In the case of teletext services, a TV broadcast signal I is received at interface 12 via receiver 14. In the case of view data services, data is provided over a communications line 15 and through a data modulator/demodulator 13 to interface 12.
Input/output controller 11, under user control, provides selectable access to the various data input and output arrangements.
Processor data bus 2 is a bidirectional conduit through which the data processor 1 controls the video memory 4, the timing generator 3 and the video controller 6. The bus generally comprises address capability, a data path and control lines which may include interrupt, reset, clock (for synchronous use), wait (for asynchronous use), and bus request lines.
The timing generator 3 may comprise a chain of programmable logic circuits, digital dividers and counters for providing required timing signal outputs. For operation of the video data bus 8, a number of different timing signals are required. Horizontal and vertical drive signals are provided in accordance with horizontal and field rates respectively. A dot clock signal is provided at the dot frequency picture element or pot rate) of the system. An odd/even field signal indicates if the odd or even field is to be displayed in an interlaced system. A
composite blanking signal indicates if video is being displayed or if vertical or horizontal retrace is occurring. Also, a group clock signal or other signals may be provided. The group clock signal indicates when to access data for a new group of picture element data from memory. For example, picture element (pot) data in video memory having a slow access time may be serially provided in groups of 4, or 16 picture elements. On the other hand, a parallel data transmission scheme is possible, potentially increasing the requirements for leads of video ~L~2~93~
data bus 8.
Controller O accepts digital image information from bus 8; pel-by pot, and converts the digital information, if necessary, to analog form for presentation on video display 7. Controller 6 comprises three components: 1) color map Gay 2) digital to analog conversion and sample and hold circuits (not shown), if required by video display 7; and 3) a standard composite video encoder (not shown), for example, for providing standard video or red, green, blue (RUB) outputs.
Color map pa comprises a random access memory indexed by a binary number component of pot data entering controller 6 by way of bus I. For example, if four bits of color data are compiled per picture element, 16 color Cassius are directly accessible from color map pa. Each indexed choice may comprise, for example, 12 bits of RUB
data, tile domain of possible data values in this case being 4096 possible values. The color map pa may be loaded and updated from the large repertory of possible choices by processor 1 under local or remote control.
Memory 9 may contain a directly accessible color table. Selections of color data values from memory 9 are transferred to color map Spa for subsequent use. Also, memory 10 may contain a color memory, color data similarly being transferable to color map pa. Various modes of access to color memory, wherever located, in a digital image display system, are employed by the providers of view data and teletext services. Means for providing terminal independent color memory will be subsequently discussed in connection with Fugues 3-14.
The color map RUB output may be provided to three separate digital to analog converters, one for each primary color. The RUB output may enter display 7 directly, may first be converted to a composite video signal or be modulated to a particular OF frequency for input through an antenna lead-in.
9~3S
Video display 7 may be a monitor, a television set, a video projection system, a liquid crystal display or an LED display. The list is not intended to be all inclusive and, if another standard forlnat of input video signal is required, the principles of the present invention assume the capability of controller 6 for providing such a standard video signal.
Memory 4 comprises random access memory for storage of video picture element information for display.
In particular, memory 4 generally accepts input from data processor 1 in the form of an image comprising digitized picture element information. Memory 4 stores the information until rearrangement of data occurs and periodically passes the pot information over bus 8 to controller 6 on command of processor 1. As previously ; indicated, the pot data comprises binary data employed to index a particular color entry in color map pa.
Gus 8 connects generator 3 and memory 4 to controller 6. It comprises data leads for picture element ; 20 information which is used for indexing the color map pa, and timing leads for providing video timing and control.
The six timing and control leads include the previously mentioned horizontal and vertical drive signals, the dot clock, the field signal, the composite blanking signal and the group clock signal.
Referring more particularly to FIG. 2, an operational diagram is shown Wylie depicts how a binary number cor.lponent of picture element data stored in memory 4 indexes color map pa so that primary color data values for a video signal are provided for video display. Similar reference characters have been employed in Fugues 2 through 14 and in the subsequent discussions wherever possible. In addition, the first numeral of reference characters employed in Fugues 2 through 14 relates to the location where the referenced element first appears.
In the depicted example a color map of 16 colors is shown. The capacity of the color map may comprise, for Lo I
example, four bits each of red, Green and blue data. The total twelve bit capacity Tulane relates to 4096 possible colors. accordingly, cacti of the 15 tabular values indexed comprises 12 bits of RUG data.
S In the depicted example, picture element data 201 identifies the coordinate location in a particular image or frame 5 for display and specifies the binary index value representing the desired color for picture element 201.
Binary index value 1011 representing the twelfth entry in the color map may, for example, represent color data value 0011 1111 0000; 0011 being red data; 1111 being green data, and 0000 being blue data. The RUG data value, as previously discussed, illuminates the corresponding coordinate location in the particular in-use color in frame S of display 7.
Upon command of a remote host computer, 16 specific colors May be stored in color map 6รข by processor 1 instructions stored in memory 9. Processor 1 may also load the color map under control of local keyboard input.
Either the host computer or the local user may store colors directly in color Map pa from memory 9 or from a semi-permanent memory 10 with color data values for use.
Referring to Fugues 3, I, and S, flow diagrams depict the method in accordance with the invention for accessing color map Ox in a terminal independent manner and for setting the foreground and background colors available for current use. FIG. 3 represents a command decoding process. If a first particular command is found, the sequence depicted by the flow decorum of FIG. 4 is performed within processor 1. If a second particular command is found, then the flow diagram of FIG. S is followed. Other commands are interpreted by the command decoding process depicted in FIG. 3. These other commands may include commands to perform the subsequently described color blinking process or other- text or graphic drawing processes ~!39~5i referring particularly to I 3, the data processor is instructed (box 301) to attempt to locate the next opaqued. The command May be received from a remotely located host computer or locally through the peripheral device interface 17. At decision box 302, processor 1 determines if the command entered is one for selecting a node of color memory access. it box 03, transfer is effected to the mode selection process shown in FIG. 4 if there is a match. If there is not a match, the data processor determines at decision box 304 whether the command entered is one for setting a color data value. At box 305, transfer is effected to the color setting process shown in FIG. 5 if there is a match. In a similar manner, the entered colnmand may be composed with other valid commands 306 and the entire command recoding process repeated.
; Referring to JIG. 4, a process for selecting a mode from a plurality of modes of color memory access and for setting foreground and background in-use colors for two of these modes is shown in flowchart form. Having transferred control to box 401 of FIG. 4 from the flowchart of FIG. 3, processor 1 now interprets the operands or data following the command. In general, it is presumed that a command will always be followed by a sequence of operands or data entry or a new command. Accordingly, in the process depicted in FIG. 4, the data operands are interpreted and, as a result, the mode of access and the background and foreground colors are set, if possible.
In particular at box 402, the first data operand is recovered, if possible. If at box 403 an operand is located, another attempt is made at box 404 to locate a second operand. If at box 407 a second operand is found, the color mode of access is set at box 411 to mode 2. In other words, the color mode is determined by the number of us operands following the command for selecting the mode of access. Accordingly when no operands are found, the color mode is set at box 405 to Mohawk 0. If one operand is found, the color mode is set at box 40~3 to mode 1.
In color mode 0, besides setting the color mode, it may be necessary in systems employing Emory 10 to reinitialize memory Go to a default set of color data values. Accordingly bloc 406 suggests this activity if it may be performed. Color mode 0 of the present terminal independent color memory is adapted for use in digital image display systems employing a direct color selection process either from permanent or semi-permanent color memory.
After setting the color modes to 1 or 2 at blocs ~08 or 911 respectively, the foreground and background in-use colors are set. If foreground and background colors may be set in color mode 0, the subsequently described process of FIG. 5 performs this task. In color Mode 1, only picture element data of the actual character in video err is drawn in the current in-use foreground color without illuminating adjoining picture element data in a background color. In color mode 2, text characters will be drawn in the in-use foreground color over the in-use background color. In other words, a character may fill a rectangular field on display I The actual character is illuminated in foreground color as in color mode 1, and the rectangular field surrounding the actual character is filled with the current in-use background color.
Hereford, in color rode I the foreground color is set at box 409 to the value of the first operand At box 410, the background color is set to a data value representing "invisible" or no color. In color mode 2 the data processor compares the first and second operands entered. of the two operands are equal, then it is assumed that it is desired to change only the background in-use color and not the foreground color. Otherwise, the foreground color is set at box 419 and the background color is set at box 413 to the first and second operands respectively. Control is returned at box 415 to the opaqued . , ~L2;~3~
decoder program upon the completion or the color access sequence.
Fig 5 is a flowchart (1) in color modes 1 or 2, for setting the color data values in memory pa in a S terminal independent manner or (2) in color mode 0, for setting foreground and background colors. At decision box 502, the data processor determines if color mode 0 has been previously entered. It is assumed that, before the command for setting a color data value is entered, the select color access mode command has been read and acted upon in accordance with the flowcharts of Fugues 3 and 4.
If the color access mode at box 502 is 0, the first operand is located if possible at box 503. If the operand is located at box 505, a second operand is located I if possible at box 507.
If a second operand was not located at box 509, the foreground color and the background color will be modified at boxes 512 and 514 respectively. At box 512, the foreground color is set to the index of the closest match of the first operand and a color value from table pa.
At box 514, the background color is set to an "invisible"
color. 'Invisible'' it intended to describe the process of depositing pot values in video memory 4 only at the character or graphics drawing command locations corresponding to the foreground of the resulting image and not over-writing those corresponding to the background.
If a second operand has been successfully located at box 509 then a check is made at box 511 to see if both operands are equal If the first and second operands are equal, only the background color is set at box 515. If the two operands are not equal at box 511, the foreground color is set at box 513 and the background color is subsequently set at box 515. As in the case of a single operand, the foreground color and the background color are set to the index of the closest matched color in table pa.
If the color mode was not n at box 502, table pa will be loaded With colors specified by subsequent ~2~35;
operands. The current in use foreground color index will indicate the first potential color map Monroe table entry to be changed. INDEX is set to the current in-use Foreground color index at box 501. An attempt is made to get an RUB operarld at box 50q if possible. If the operand is found at decision box 506, then the RUG operand is loaded into table pa at the location determined by INDEX.
The INDEX is then incremented at box 510. The sequence of boxes 5Q4, 506, 508 and 510 is repeated as long as operands are available.
Referring to FIG. 6, a color hue circle is shown wherein the primary colors - red, green, and blue -are located at 120 degrees, 2~0 degrees and 360 degrees.
Upon the operation of the box 406, FIG. 4, and on other occasions in the operation of a digital image display system, for example, an explicit resetting operation, it is appropriate to initialize or establish table pa regardless of the number of possible entries and in a predictable fashion. Accordingly, a method is provided whereby one half of the color pa? memory in table pa is filled with a grew scale whose values are equally spaced between black and white and tile other half of table pa is filled with a color hue scale whose values are spaced about a hue circle of 360 degrees.
In particulate, if the number of bits of a binary number index to table pa is defined as N, then the number of entries in the color map is ON. Then the quantity 2N/2 of entries comprise grew scale values and the quantity 2~/2 of entries comprise color hue values.
If the capacity of table pa is M bits of data, the quantity M/3 bits of data represents data for each primary color - red, green, and blue. In general, the relationship between I and N is maintained such that M is greater than or equal to three times the quantity N-l.
By way of example, if a particular color map mottler is indexed by a 4 bit binary index value, then 8 grew scale levels and hues are loaded upon request into table pa. The quantity M theta should be treater than or , :
33~
equal to I: 3 bits each ox red, Green, and blue data.
In this example the grew scale is between zoo on zoo and 111 ill ill and is represented by the binary result of the equation Pi = Cole) where I
represents the decimal number ox grew scale levels, generally 2N/2, k, a quantity between Oily, is the particular entry in the map desired, and Pi is the binary result for a primary color - red, green and blue. It is most convenient if, in the operation of data processor 1, the result is truncated to I bits. The value for all the primary colors is set equal to the truncated result of the binary division.
FIG. 7 depicts an exemplary color map memory table. In accordance with the above method, the first eight values are initialized to grew scale levels in a grew scale 706 between 000 000 000 at address 704 with the binary index value 0000 and value 111 111 111 at address 704 with the binary index value 0111.
To provide the color hue values, data processor 1 must first calculate the angle of a desired color nut. If 2N/2 entries are required then the result of the equation 1 ... n times 360 degrees divided by 2N/2 provides the angle.
In FIG. 6, if eight hue data values are desired, color data values are required for 45 degrees, at location 611, 90 degrees at location 612, 135 degrees at location 613, and so on about the color hue circle.
The data processor must find the location of the closest primary color angle to the desired angle h, the next closest primary color and the primary color furthest from h. For color value 511 at 45 degrees, the primary color blue at location fool or 360 degrees is the closest primary color. This result may be established in temporary memory as variable Pi. The next closest primary color is red at location 603 or 120 degrees. This result may be established in temporary memory as variable Pi. The primary color furthest prom the desired color hue is green at location fin or 240 decrees. This result may be .:
33~i established in temporary memory as variable Pi.
The results Pi, Pi, and Pi, of this calculation are then el!lployed to establish the color data values for the primary colors - red, green and blue. As it is known that Pi is blue in this example, the blue data value in binary form is set in color map memory as all l bits. As it is known that Pi is green, the green data value is set in color map Emory as all 0 bits.
In the case of Pi, data processor l is instructed to calculate the binary result of the equation:
As it is known that Pi is red, the red data value is set in color map memory to the binary result of the above calculation. As with the grew level calculation, it is generally appropriate that the result be truncated to M/3 data bits in length.
Referring again to FIG. 7, the color hue data values are entered in address locations 1000 to 1111 in the depicted exemplary color map memory table. In particular, the above calculation for a hue at 45 degrees on the hue circle of FIG. 6 is located at address 1001. As previously indicated, the blue data value is all 1 bits or 111; the green value is all 0 bits or 000, and the red value is given by the binary result 101.
FIG. 8 depicts a memory block associated with the blink process and identifying its parameters. Each time a blink process is initiated, a blink process block must be established in memory which stores the relevant parameters associated with that process. The first entry 801 in the block stores the LINK value, which is a pointer to the starting address of another blink process block. If the process is active, then the WINK value will point to the next active process block. If the process is inactive, 33~
then the LINK value will point to the next FREE process blocic.
Toe second entry 8~2 in the block stores the current status of the blink process. The status can be either INACTIVE ON or OFF (the latter two of which are considered active states).
The third entry 803 is used to store the BLINK-FROM COLOR which is a binary number index that acts as an index into the color map memory table. This index number is extracted from the operand following command or ox code representing the color blinking process and does not change throughout the life of the process.
The fourth entry 8~4 is used to store the SAVE
COLE, which is an RUB value and not a binary index that is periodically copied out of the color map memory table in a manner that will be described subsequently.
the fifth entry 805 is used to store the BLINK-TO
COLOR which is a binary number that acts as an index into the color map memory table. This number is also extracted from the operand following the blink process ox code and does not change throughout the life of the process.
The sixth entry 806 stores the ON TIME and the seventh entry ~07 stores the OFF TIME, both of which are most conviently numbers between 1 and 64 that represent time intervals and fractions of a second. These are also extracted from the operand following the blink process ox code and do not change throughout the life of the process.
The eighttl entry 808 stores the CURRENT COUNT
- which is also a number that represents a time interval.
This number is updated regularly as the process is executed.
FIG. gives a logical view of how the linked blink process blocks are treated. where are two linked lists kept in memory The first contains all of the active us process blocks and the second contains all of the INACTIVE
or free process blocks. the rlemofy occupied by the INACTIVE process blocks is available ion use by new blink ... .
:12~9~3S
processes, and hence this list is called the FREE list.
The heat 901 of the ACTIVE list is a single pointer that contains the address in memory of the beginning ox the process block of the nicety recently received active blink S process 902. The LINK entry in this bloc in turn points to the beginning of the next most recently received active blink process 903, and so on to the beginning of block 904, block 905 through the entire list of process blocks that contain active blink processes. The displaced appearance lo of the blink process blocks is intended to represent their random appearance in memory. The last process Lock on the list contains a LINK value NULL indicating the end of the list. the head of the FREE list 910 is a single pointer that contains the address in memory of the beginning of the lo Process block of the first inactive blink process 911. The LINK entry in this block points to the beginning of the next inactive process block 912 and so on to the beginning of block 913, block 914 through the remainder of the inactive process blocks. When the system is initialized, as well as any time that there are no currently active blink processes, all of the available blocks of memory allocated to the blink feature are on the TREE list When a new blink process is initiated, the first block in FREE list 911 is jade available for its use. When US this happens, the head of the FREE list pointer 910 is changed to the address of the beginning of the next free block 912. Also, the head of the ACTIVE list pointer 901 is changed to the address of the beginning of the block 911 just allocated, and the LINK pointer within block ill is changed to the address of the beginning of what was the Yost recently received active blink process block 902. The new active process block 91l is then loaded with the relevant ~aran~eters of the blink process being defined.
ERG. lo shows the actual organization within Mueller of blink Irises blocks. The first entry Lowe and the second entry 1002 store the Lydia of the ACTIVE list pointer and head of the Ennui: list pointer, respectively.
29~35 Process blocks are stored in sequential error locations Lowe through loo or until the capacity allocated within Ille~ory 10 is reached. These locations do not necessarily correspond to the order in which the blocks appear on the linked lists.
FIG 11 shows a flow diagram for TIC, the primary blink processing subroutine. TIC is periodically called from a main control program, typically every 1/10 to second. This subroutine goes through, examines, and updates each process block (and the color map memory table if necessary in the ACTIVE list starting with the most recently received blink process block and proceeding to the last.
activity block 1101 with which the TICK
subroutine begins, sets the value of an internal status variable TRY to the address stored in the head of the ACTIVE list. Tin as described previously, points to the most recently received active process block.) Activity block isle initiates loop, Lucy steps comprise blocks 1103 through 1117, that is exited only when it returns a PER value of PULL. The first step in the loop, Jo activity block 1103, subtracts 1 from the COUNT of the process block pointed to by PER. Decision block 1104 then ; checks the value of COUNT to see if it is equal to or less than zero. If it is not, then control action proceeds through block 1109 (by passing blocks 1106 through 1116) to activity block 1117, which changes PER to the address stored in the LINT entry of the process block pointed to by TAO or, in other words, the current process block. Control then loops back to activity block 1103 as long as PER does not have the value NULL. If the COUNT is less than or equal to zero, then control proceeds through block 1105 to decision block 1106. Decision block 1106 checks the value ; of STATUS in tile current process block. If STATUS is on, control proceeds through block 110~ to activity block 1111.
If Strauss is of, control proceeds ., , ~;2;29~35 through block 1107 to activity block lily.
Activity block 1111 takes the RUG value stored in SO COLOR of the current process block and writes it into the color map memory table entry indicated by the index stored in the FROM Courier entry in that process block.
Control then passes to activity block 1112, which sets the COUNT entry of the current process block to the contents of the OFF TIME entry of that block.
Activity block 1116 then sets the STATUS of that process block to OFF before control passes to activity block 1117, whose action has been described previously.
Activity block 1110 copies the RUB value from the color map entry indicated by the index stored in the FROM
COLOR entry of the current process block into the SAVE
COLOR entry of that process block. Activity! block 1113 then copies the RUB value from the color map entry indicated by the index stored in the TO COLOR entry of the current process block into the color map entry indicated by the index stowed in the FROM COLOR entry of that process block. Activity block 1114 then sets the COUNT entry to the value stored in the ON entry. Finally Activity block 1115 sets the STATUS entry to ON before control is passed to Activity block 1117, whose action has been described previously.
When the loop is finally exited, that is, when PER returns the value NULL, the subroutine TICK is complete and control returns to the main control program.
In the previous discussion, the assumption was made that an active process list already had been established.
FIG 12 is a flow diagram illustrating how one active blink process is added to the active list Since only one active process is allowed for the ordered pair of FROM COLOR (FC~ and TO COLOR (TO), the current list of active process blocks must be searched to determine if a process is active for a given pair. This search is indicated in box 1201. If the ordered pair (FC, TO is , . .
I
found in the currently active process blocks, that block is made INACTIVE and is removed from the linked list as indicated in box 120~ hen box 1205 is encountered, an attempt is made to obtain a free process bloc from the previously described FREE list. At decision box 1207 a check is made to see if a free block was successfully obtained. If no block was obtained the entire set of possible blocks must have been already allocated to ACTIVE
processes and therefore no addition can be made, so the entire process addition procedure is exited If a free process block is obtained, it must be initialized as illustrated in box 1210. The new process always begins with a Stylus of OFF which guarantees that the first transition will be OFF-to-ON as previously stated.
The FROM COLOR, TO COrJOR and ON and OFF TIME's are also initialized in box 1210 from data obtained from the operand entered following the blink process opaqued The phase delay (POD) is an offset from the next OE~-to-GN transition ox the most recently received active process (that is, the process of the head of the ACTIVE
process list). The head of the ACTIVE list is checked at decision box 1211 in case the list is empty. If the list is empty, then the phase delay does not apply and the CURRENT COUNT in the new process block is set to the OFF
TIME as indicated in box 1219.
If an active process exists then two situations arise, either the process is currently ON or OFF. The STATUS of the process is checked in decision block 121~.
If the process is ON then tire next OFF-to ON transition will occur when the CURRENT COUNT reaches the interval of time represented by OFF TIME expires. Therefore, the total time to the next OFF-to-ON transition will be the CURRENT
COUNT plus the OF TIME. In order to synchronize the new process to the most recently received active process, its Current COUNT is set to the lima until the next OFF-to-ON
transition plus any phase delay as shown in box 1210.
~2Z~
If the last active process has a STATS of OFF, then the next Often transition will occur at a total time equal to CURT COURT. The new process is therefore synchronized to that transition simply by setting the new process CURRENT COUNT to the CURRENT COUNT of the most recently received process plus any indicated phase delay.
In all cases once the complete process block is initialized, it is added to the active process list as shown in BOX 12200 The ADD IT PROCESS returns control to the main control program.
Referring to FIX. 13, exemplary color tables and a timing diagram are illustrated for three active blink processes. Successive representations of an eight entry color table are illustrated in table 1301. Time is indicated by time line 1312. A legend 1311 indicates the assumed color valves of color table 1301. The information that was used to establish the three blink processes is as shown in Table 1.
~L2~29'~
Arrival Time T = 0 FROM COLOR h Arrival Time T = 5 no COLOR
PHASE DELAY
Arrival Time T = 10 PHASE DELAY
I
- I -Tune color table 1301 at time To contains the color value white in entry 1, the color value red in entry
3, the color value Green in entry and the color value blue in entry 7. The other entries relay contain color values but are not important in this example.
Process 1 arrives at time To and assuming no active processes already exist, process 1 is activated with a STATUS of OFF (1304). The phase delay that was specified for process 1 is not relevant because no active blink processes existed when the information for process 1 arrived at time To then process 1 is activated the CURRENT COUNT is set to the OFF TIME which it equal to 2 and therefore an OFF-to-ON transition will occur at time To (1313).
When the OFF-to-ON transition occurs, the color value in the color table indexed by the FROM COLOR, which is equal to 7, is saved in the process block in the SAVE
COLOR entry 1302. The color value saved is blue shown by the entry 1315. After the FROM COLOR is saved, the contents of the color table indexed by the TO COLOR is copied to the color table entry indexed by the FROM COLOR
This results in the color value red in entry 3 at 1316 to be copied to entry 7 at 1317.
As a result of this change, any picture elements which were previously displayed using the color value stored in color map entry 7 will immediately change from blue to red. The STATUS of process 1 will be set to ON and the CURRENT COUNT will be set to the ON TIME which is equal to 2. An ON-to-OFF transition will occur at time To referenced by character 1314. At that transition the previously saved color 1315 is restored in the color table at the entry indexed by the FROM COLOR, which is equal to 7, and referenced by character 1318. The STATUS is again set to OFF and the CURRENT COUNT is set to the OFF TIME
which is equal to 2. The above sequence is repeated as long as the process is active.
Lo 33~;i Process 2 arrives at time To which is after process 1 has been activated. process 2 is started with a STATUS of OFF and must be synchronized with the next OFF-Tao transition of process 1. Since at tile To the STATUS of process 1 is OFF then the time to the next OFF-Tao transition will be equal to 1, which is the CURRENT
COUNT of process 1. A phase delay of 1 was specified with process 2 so the OFF Title of process 2 is set to the sum of the CURRENT COUNT of process 1 plus the phase delay of process 2, which equals 2. This Setting results in the first OFF-to-ON transition occurring at time To referenced by character 1319. Process 2 then begins the color save, copy and restore sequence previously described for process 1.
Process 3 arrives at title T=14 and must be synchronized to process 2. The next OFF-to-ON transition of process 2 occurs at time T=13, and, because of the phase delay of 1, the first OFF-to-ON transition for process 3 will occur at time T=14, referenced by character 1321. As with process 1 and 2, the save, copy and restore sequence will continue for process 3 until changed by either another specification for the same ordered pair of FROM COLOR and TO COLOR or a general resetting procedure.
It should be noted that when colors are copied from one entry in the color table to another that an interaction between processes can result. This is illustrated at time T=13 and T=14. At time T=13, process 2 makes an OFF-to-ON transition referenced by character 1320.
The color white is copied to color table entry 7 as referenced by 1324. At time T=14, process 1 makes an OFF-to-ON transition as referenced by 1322. At that transition, the DAVE COLOR, referenced by 1325, is white because of the previous copy operation performed by process 2 at time T=13. This interaction of colors between processes is useful for simple animation and complex blinking sequences.
~Z~3~
- I
FIG. 14 illustrates the state of the three process blocks at time T=15~
Process 1 arrives at time To and assuming no active processes already exist, process 1 is activated with a STATUS of OFF (1304). The phase delay that was specified for process 1 is not relevant because no active blink processes existed when the information for process 1 arrived at time To then process 1 is activated the CURRENT COUNT is set to the OFF TIME which it equal to 2 and therefore an OFF-to-ON transition will occur at time To (1313).
When the OFF-to-ON transition occurs, the color value in the color table indexed by the FROM COLOR, which is equal to 7, is saved in the process block in the SAVE
COLOR entry 1302. The color value saved is blue shown by the entry 1315. After the FROM COLOR is saved, the contents of the color table indexed by the TO COLOR is copied to the color table entry indexed by the FROM COLOR
This results in the color value red in entry 3 at 1316 to be copied to entry 7 at 1317.
As a result of this change, any picture elements which were previously displayed using the color value stored in color map entry 7 will immediately change from blue to red. The STATUS of process 1 will be set to ON and the CURRENT COUNT will be set to the ON TIME which is equal to 2. An ON-to-OFF transition will occur at time To referenced by character 1314. At that transition the previously saved color 1315 is restored in the color table at the entry indexed by the FROM COLOR, which is equal to 7, and referenced by character 1318. The STATUS is again set to OFF and the CURRENT COUNT is set to the OFF TIME
which is equal to 2. The above sequence is repeated as long as the process is active.
Lo 33~;i Process 2 arrives at time To which is after process 1 has been activated. process 2 is started with a STATUS of OFF and must be synchronized with the next OFF-Tao transition of process 1. Since at tile To the STATUS of process 1 is OFF then the time to the next OFF-Tao transition will be equal to 1, which is the CURRENT
COUNT of process 1. A phase delay of 1 was specified with process 2 so the OFF Title of process 2 is set to the sum of the CURRENT COUNT of process 1 plus the phase delay of process 2, which equals 2. This Setting results in the first OFF-to-ON transition occurring at time To referenced by character 1319. Process 2 then begins the color save, copy and restore sequence previously described for process 1.
Process 3 arrives at title T=14 and must be synchronized to process 2. The next OFF-to-ON transition of process 2 occurs at time T=13, and, because of the phase delay of 1, the first OFF-to-ON transition for process 3 will occur at time T=14, referenced by character 1321. As with process 1 and 2, the save, copy and restore sequence will continue for process 3 until changed by either another specification for the same ordered pair of FROM COLOR and TO COLOR or a general resetting procedure.
It should be noted that when colors are copied from one entry in the color table to another that an interaction between processes can result. This is illustrated at time T=13 and T=14. At time T=13, process 2 makes an OFF-to-ON transition referenced by character 1320.
The color white is copied to color table entry 7 as referenced by 1324. At time T=14, process 1 makes an OFF-to-ON transition as referenced by 1322. At that transition, the DAVE COLOR, referenced by 1325, is white because of the previous copy operation performed by process 2 at time T=13. This interaction of colors between processes is useful for simple animation and complex blinking sequences.
~Z~3~
- I
FIG. 14 illustrates the state of the three process blocks at time T=15~
Claims (4)
1. A digital image display system, comprising:
a color memory for storing color data values;
processing means responsive to a particular command and data sequence providing a blinking of certain picture element data from one particular color specified by the data sequence to another particular color specified by the data sequence by periodically changing color data values in the color memory, multiple color blinking processes being provided responsive to multiple commands, each process subsequent to a first process being in delay relationship to the next previous process; and a display means for displaying the multiple color blinking responsive to the processing means.
a color memory for storing color data values;
processing means responsive to a particular command and data sequence providing a blinking of certain picture element data from one particular color specified by the data sequence to another particular color specified by the data sequence by periodically changing color data values in the color memory, multiple color blinking processes being provided responsive to multiple commands, each process subsequent to a first process being in delay relationship to the next previous process; and a display means for displaying the multiple color blinking responsive to the processing means.
2. A display system as recited in claim 1 wherein the processing means determines the time interval each particular color is displayed during a blinking cycle responsive to the command and data sequence.
3. In a digital image display system, a method for providing a blinking of certain picture element data from a particular color to a particular color, the method characterized by the steps of:
specifying multiple blinking processes, each color blinking process including providing a blinking of certain picture element data from one particular color specified by the data sequence to another particular color specified by the data sequence by periodically changing color data values in the color memory;
specifying a delay interval, if desired, between the processes; and displaying the multiple color blinking.
specifying multiple blinking processes, each color blinking process including providing a blinking of certain picture element data from one particular color specified by the data sequence to another particular color specified by the data sequence by periodically changing color data values in the color memory;
specifying a delay interval, if desired, between the processes; and displaying the multiple color blinking.
4. A method for providing blinking as recited in claim 3 further characterized by the steps of:
specifying a particular time interval a particular color is displayed during a blinking cycle of a particular blinking process.
specifying a particular time interval a particular color is displayed during a blinking cycle of a particular blinking process.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA000516984A CA1229935A (en) | 1981-05-19 | 1986-08-27 | Terminal independent color memory for a digital image display system |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/265,195 US4439759A (en) | 1981-05-19 | 1981-05-19 | Terminal independent color memory for a digital image display system |
US265,195 | 1981-05-19 | ||
CA000403146A CA1219387A (en) | 1981-05-19 | 1982-05-18 | Terminal independent color memory for a digital image display system |
CA000516984A CA1229935A (en) | 1981-05-19 | 1986-08-27 | Terminal independent color memory for a digital image display system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA000403146A Division CA1219387A (en) | 1981-05-19 | 1982-05-18 | Terminal independent color memory for a digital image display system |
Publications (1)
Publication Number | Publication Date |
---|---|
CA1229935A true CA1229935A (en) | 1987-12-01 |
Family
ID=25669683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA000516984A Expired CA1229935A (en) | 1981-05-19 | 1986-08-27 | Terminal independent color memory for a digital image display system |
Country Status (1)
Country | Link |
---|---|
CA (1) | CA1229935A (en) |
-
1986
- 1986-08-27 CA CA000516984A patent/CA1229935A/en not_active Expired
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4439759A (en) | Terminal independent color memory for a digital image display system | |
EP0187417B1 (en) | Television receiver comprising a teletext decoding circuit and a page number memory | |
US6057888A (en) | Method and apparatus for enabling a user to access data network applications from a television system | |
US5815216A (en) | Display device capable of displaying external signals and information data using a double-picture type screen | |
US5398075A (en) | Analog chroma keying on color data | |
AU646584B2 (en) | Television receiver including a teletext decoder | |
KR100504299B1 (en) | Apparatus, method and program for causing a plurality of display units to display images | |
KR100445541B1 (en) | Method and transmitter for transmitting graphic images, display signal generator for generating graphic image display signals, receiver for receiving and processing graphic image display signals, videorecorder, and storage medium | |
US6091457A (en) | Method and apparatus for refreshing a display screen of a television system with images representing network application data | |
WO2000059213A1 (en) | Decimation method for providing pig windows | |
CA1229935A (en) | Terminal independent color memory for a digital image display system | |
US5926648A (en) | I/O port and RAM memory addressing technique | |
KR20020019439A (en) | Device for changing channels in a digital television reception system | |
US5353064A (en) | Multipage teletext decoder for capturing a requested page during a single cycle | |
AU8583482A (en) | Terminal independent color memory for a digital image displaysystem | |
CA2316234C (en) | Flicker filter and interlacer implemented in a television system displaying network application data | |
WO1998010583A2 (en) | Method for indexing data in a digital television transmission system | |
JPS61500637A (en) | Video display system with increased horizontal resolution | |
US6822637B2 (en) | Apparatus, method and program for generating image signal having pointer signal | |
EP0556701A2 (en) | Improved teletext transmission receiver with simplified selection | |
JPH08149450A (en) | Bi-directional catv system | |
JPH10224709A (en) | Display controller and television receiver | |
JP3428089B2 (en) | Image display processing device | |
JPH0591441A (en) | Television receiver | |
JPS63168716A (en) | Display device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MKEX | Expiry |