GB2207029A - Computer system for converting a higher resolution image to a lower resolution image - Google Patents
Computer system for converting a higher resolution image to a lower resolution image Download PDFInfo
- Publication number
- GB2207029A GB2207029A GB08816565A GB8816565A GB2207029A GB 2207029 A GB2207029 A GB 2207029A GB 08816565 A GB08816565 A GB 08816565A GB 8816565 A GB8816565 A GB 8816565A GB 2207029 A GB2207029 A GB 2207029A
- Authority
- GB
- United Kingdom
- Prior art keywords
- pixels
- pixel
- resolution image
- input
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000012935 Averaging Methods 0.000 claims description 85
- VOXZDWNPVJITMN-ZBRFXRBCSA-N 17β-estradiol Chemical compound OC1=CC=C2[C@H]3CC[C@](C)([C@H](CC4)O)[C@@H]4[C@@H]3CCC2=C1 VOXZDWNPVJITMN-ZBRFXRBCSA-N 0.000 claims 1
- 239000000872 buffer Substances 0.000 description 57
- 230000009977 dual effect Effects 0.000 description 46
- 238000012545 processing Methods 0.000 description 27
- 238000007792 addition Methods 0.000 description 12
- 238000000034 method Methods 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000012937 correction Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000000630 rising effect Effects 0.000 description 4
- 230000000063 preceeding effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010894 electron beam technology Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000003134 recirculating effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/153—Digital output to display device ; Cooperation and interconnection of the display device with other functional units using cathode-ray tubes
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/391—Resolution modifying circuits, e.g. variable screen formats
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Image Processing (AREA)
- Controls And Circuits For Display Device (AREA)
- Control Of Indicators Other Than Cathode Ray Tubes (AREA)
Description
rw r- GGIPUIER SYSI&I FOR COINVM1ING A HIGHER RESOLIHION DIAGE TO A LOWER
RESOLUMA 1HAGE
BACKGROUND Oe fHE INUANú10N
The invention relates generally to computer systems for converting a higher resolution image to a lower resolution image for display on a computer display apparatus generally of the cathode-ray tube type or other types of apparatuses (e.g. liquid crystal display). More specifically, the invention relates to a system utilizing weighted averaging of pixel values to convert from a higher resolution image to a lower resolution image.
Computer systems are capable of displaying graphics using pAxels, which are dots generated on a video screen, such as a computer monitor. A typical computer usually has one output which can generate an image of a certain resolution (e.g. 512 x 256). This video technology is well known and described in various te>:tbooks and references including Eastcr, Gzaphics HandbQok, Droduced by Conrac Division, Conrac Corporation, (ISBN: 09604972-0-X; Library of Congress Catalog No.: 80-69450). Often, a computer has a video output, which can provide a higher resolution image and a lower resolution ima-ge. However, the lower resolution image is independently created and is not derived from or converted from the higher resolution image.
The present invention provides for a means (e.g. a pixel averaging means) for converting from the high resolution image to the low resolution image and thus avoids the need for independent methods of creating the lower resolution image.
1 1 1 i 1 i The present invention includes a special'memory means which is a dual clock shift register; this memory means allows for the outputting of the converted (lower) resolution image at a different clock rate than the input of the high resolution image into the conversion system which converts between the high and low resolution images.
In a typical computer system which displays graphics, the pixel values are stored in an image memory which is a bit map of the screen, as is well-known in the prior art. The pixel values are read out from the image memory, such as a "frame buffer", to produce the image on the screen. The pixels are typically integers represented by digital values from 0 to an upper limit, for example, 255. As is well known in the art, the digital values are converted to analog signals through digital to analog conversion circuitry, which ake used to generate the image. Thus, for example, a pixel having a value of 0 is completely dark while a pixel having a value of 255 produces the brightest possible spot on the screen at the location of the pixel. if the display is an RGB (Red-Green-Blue) color display, each of the three components, red, green and blue, has its own pixel value to indicate the intensity of the particular component. Thus, for example, if the component is the red (R) component then the pixel value 255, in the present example, would be the reddest red possible. If the pixel averaging system of the invention is used with an RGB color display, there will be three pixel averaging means, each of which averages one of the three color'components.
1 1 i i 1 1 1 i 1 i i i It is an object of the present invention to provide a system and process for converting the pixels in a high resolution image to pixel values in a lower resolution image through a pixel averaging means which calculates and outputs weighted averages based on the pixels in the high resolution image.
It is a further object of the invention to provide a way to view a high resolution image on a lower resolution monitor or screen by averaging pixels in the high resolution image. Moreover, it is an object of the invention to provide a system and architecture for averaging the pixels from the high resolution image to the lower resolution image. Moreover, it is an object of the invention to provide a system and architecture for averaging the pixels on a single integrated circuit (IC) chip for each component in a RGB color system.
Furthermore it is an object of the invention to provide a system and architecture for averaging a 3 x 3 group of pixels to a single pixel in a low resolution image. It is also an object to provide a system and architecture to average a group of 2 x 2 pixels to a single pixel for display on a low resolution screen.
It is also an object of the invention to provide a memory means in the form of a dual clock shift register which can output information for the low resolution image at a different clock rate than the clock rate at which it receives converted pixel values.
SUMMARY OF THE INVENTION
The invention involves a computer system for converting a higher resolution image for a computer screen to a lower resolution image for display on a low resolution image display apparatus. The system includes. a pixel averaging means for converting a group of pixels (an area of pixels) in the higher resolution image to a single pixel (or a smaller group of pixels) in the lower resolution image. The pixel averaging means has an input which is coupled to receive the digital values that comprise the higher resolution image. The pixel averaging means calculates a weighted average of the pixels in the group of pixels (from the higher resolution image) and outputs, through the output of the pixel averaging means, the weighted average for display on the lower resolution display apparatus, such as a computer screen. The pixel averaging means preferrably calculates and outputs the averaged values for the lower resolution image at the same time as the high resolution pixel values are being sent to a high resolution display apparatus; that is, the conversion from high to low resolution images occurs as the high resolution image is displayed so that one may view both the high resolution image and the lower resolution image substantially simultaneously. This allows a computer user to use a less expensive, lower resolution computer monitor in place of a higher resolution monitor as the conversion occurs "on the fly." This also allows viewing of the high resolution image while simultaneously outputting the lower resolution video signal to a recording device, such as a TV video cassette recorder (VCR).
1 1 i f z 3 When the pixel averaging means, in one embodiment of the invention, converts a 3 x 3 group of pixels in the higher resolution image to a single pixel in the lower resolution image, the pixel averaging means preferrably calculates the expression i--9 37 wi Pi > W i-1 which expression is used as the weighted average for generating a pixel in the lower resolution image. The value Pi is the ith pixel in the group and W; is the weighting factor for that pixel. The weighted average (through a digital to analog converter) is output to the lower resolution display apparatus for display on that apparatus in the normal manner which is understood in the art.
In a preferred embodiment, the pixel averaging means computes the weighted average in a number of passes, which number depends on the number of rows in the area of pixels being averaged.
Also in the preferred embodiment, there is an overlapping of the pixel area being averaged in order to improve the quality of the averaging process. In particular, the adjacent areas which are being averaged overlap by one row and one column.
- b - DESCRIPTION OF THE DRAWINGS
Figure 1 shows a schematic representation of a computer screen in a graphic display mode where each rectangular subunit ("quadrant") is for a single pixel.
Figure 2a shows a portion of the first three scan lines of a high resolution image and shows, in the circles within each quadrant, the weighting factor for a particular pixel in that quadrant.
Figure 2b shows a portion of the first scan line in the low resolution image resulting from an averaging of the high resolution image shown in Figure 2a to a lower resolution image shown in Figure 2b.
Figure 3 shows the general architecture of a preferred embodiment of the invention for averaging a 3 x 3 group of pixels.
Figure 4 shows a s ystem for averaging a 2 x 2 group of pixels to a single pixel.
Figure 5 shows a portion of the first scan line from the higher resolution image and the fir st pass which is based on the first scan line shown in Figure 5 in a 2 x 2 averaging system.
i j i i i Figure 6 shows a portion of the second scan line and second pass based thereon in the 2 x 2 averaging system.
Figure 7 shows the general construction of a dual clock shift register according to the present invention.
Figure 8 is a schematic drawing showing the dual clock shift register according to the present invention.
Figure 9 shows the operation of the dual clock shift register at a particular stage of processing.
Figure 10 shows an embodiment of the input section of the system shown in Figure 3.
Figure 11 shows embodiment of the Adder 1 of the system shown in Figure 3.
Figure 12 shows a flow chart for a finite state machine for controlling the operation of the system shown in Figure 3.
Figure 13 shows the timing patterns of various signals for controlling the input section of the system shown in Figure 3.
Figure 14 shows the relative timing of the horizontal scan signals for different screens.
Figure 15 shows an example of a finite state machine for controlling the operation of the system shown in Figure 3.
Figure 16 shows an example of a flow chart for a finite state machine for controlling the operation of the system shown in Figure 4.
1 i 1 i i i i i 1 1 DESCRIPTION OF THE INVENTION
The system of the present invention will convert digital values representing a group of pixels on a high resolution image to an average pixel value (or smaller group of pixels) for display on a lower resolution image. Computer screens are catagorized by the number of pixel columns and pixel rows (scan lines) which they can display. For example, a 111280 x 96011 screen can display 1280 columns of pixels and 960 scan lines. The system of the invention takes an area of the high resolution screen and, utilizing the digital values of the pixels in that area, calculates an average based on the pixels in that.area to produce a pixel for display on the lower resolution screen.
Figure 1 shows a computer screen which has been sectioned into quadrants (rectangular subunits) to illustrate the various locations of pixels and scan lines. The first scan line includes pixels Pl, P2, P3, P4f PS, P6 and P7. Pixel 101, which is also shown as pixel Pl, is the first pixel of the first scan line. Pixel 102, which is also shown as P2, is the second pixel of the first scan line. Pixels 102 and 101 will be part of the average of the 3 x 3 (113 by 31') group of pixels referred to by the numeral 103. The area 103 defines a nine pixel group (which is 3 x 3) having three rows and three columns. That group of pixels (area 103) includes pixels P1, P2, P3, and al, a2 and a3, and bl, b2 and W. Similarly, area 104 defines a 3 x 3 group of pixels co,,rprising P3. P4f PS, a3, a4, a5 and W. B4 and b5. It can be seen that the 3 x 3 group of pixels defined by the area 105 of i 1 1 Figure 1 includes pixels P5, P6, P7, a5, a6, a7, b5, b6 and b7.
in the preferred embodiment of the invention which averages the 3 x 3 group of pixels into a single pixel for display on the lower resolution image, the areas 103, 104 and 105 would each be converted into one pixel thus converting areas 103, 104 and 105 into a row of three pixels in the first scan line of lower resolution image.
The system of the invention performs the averaging by processing one line at a time, which is referred to as a 91pass.11 In the example which is described next, the first scan line is processed in the first pass and the second scan line is processed in the second pass. The conversion of a 3 x 3 group of pixels to a single pixel involves three passes to produce the average values in the converted (lower resolution) scan line. When the system, in this example, finishes the calculations in the third pass to,Produce the resulting row of pixels in the lower resolution image, the system proceeds to produce the next row in the lower resolution image by averaging the next 3 rows of pixels which are (because of overlapping) two lines down in the higher resolution image. That is, the next three rows of pixels elected will begin with the third scan line in the high resolution image, which will be a first pass (to produce-the 2nd scan line of the lower resolution image) since it is calculating a new lower resolution scan line from a new group of three lines in the higher resolution image. The fourth scan line (of the hi-res image) consequently is the second pass (of the 2nd scan line of the lower resolution image) and the fifth scan line is the third pass (of the 2nd low- i i 1 i 1 i i 1 i res scan line). It can be seen that this scheme causes the adjacent horizontal pixel areas which are averaged to overlap by one row. In addition, in the preferred embodiment, there is an overlap by one column for vertically adjacent pixel areas. Figure 1 illustrates these overlaps. These overlaps are preferred, but not necessary, since they enhance the averaging process and improve the fidelity of the lower resolution image to the higher resolution image. Other schemes may be utilized in accordance with the present Invention which permit greater overlap or no overlap.
In general, the amount of overlap by rows is determined by the expression IN-R" where N Is the number of rows in a group of pixels being averaged from the high resolution image, and R is the ratio of the number of rows in the high resolution image to the number of rows in the low resolution image. Thus, in the case of a 1280 x 960 high resolution image which is converted, by 3x3 groups, to a 640 x 480 low resolution image, 960 N- R= 3--= 1. 480 That is, the overlap by rows is 1 in this case. Similarly, the amount of overlap by columns is "N-R" where N is the number of columns in the group of pixels being averaged from the high resolution (Ilhi-res") image and R is the ratio of the number of columns in the high resolution image to the number of columns in the lower resolution image. It can be seen that, given the same example, the overlap by columns is one 1280 (NR.3 -- 1). 640 1 1 The conversion system of the present invention includes a pixel averaging means, such as that shown in Figure 3, which shows an embodiment of a pixel averaging means for converting a 3 x 3 group of pixels into a single pixel. The pixel averaging means typically includes an input to receive pixel values fro m the high resolution image and various arithmetic and logic means for calculating a weighted average of the pixels in the area which is averaged. In the general case, the pixel averaging means converts an N x N group of pixel values from the high resolution image to a single pixel value in the lower resolution image. The N x N group of pixels includes N pixels in the first row and N pixels In every one of the N rows in the group of pixels. Such a N x N group has N2 pixels which are represented by N2 pixel values. The pixels may be weighted so that the lower resolution image more accurately reproduces the higher resolution image. For example, they may be weighted towards the center of the group such as the weighting scheme shown in Figure 2a. The weights applied to a particular pixel are shown in a circle within the quadrant of that particular pixel. Thus, for example, the pixel 102 (P2) has a digital value 1 which is weighted by the weight 2 shown in Figure 2a in the circle of the pixel 102. Immediately below pixel 102 is a pixel quadrant having a weight of k which will be multiplied by the pixel value 21 of that pixel. In the general case, each pixel value "Pih has an associated weight Wi and the pixel averaging means calculates the expression:
1 1 i=N 2 37 W, p, i-1 i=N2 37 W i-1 Figure 3 shows an embodiment of the 3 x 3 pixel averaging system of the present invention. The averaging calculation Is done in 3 passes. The general components include an adder 1 which is coupled to a shifter 2 which effectively acts as a multiplier by a factor of 2 or a factor of 1 depending on the number of the pass in the calculation. The adder 3 is coupled to the shifter 2 by a bus carrying eleven signals and receives two inputs, one of which is from the shifter 2 and the other is the recirculated output from the intermediate result shift register 5. The output from the adder 3 is coupled to a 2 to 1 multiplexer 4. The output from the multiplexer 4 is coupled to the intermediate result shift register 5. The output from the intermediate result shift register 5 is recirculated back to the adder 3 through the multiplexer (11MUX11) 6, which is normally set (by selecting the "I" input) to allow the output from the shift register 5 to be inputted to the adder 3 at input D of that adder. The multiplexer 6 is set to input zeros (a I"2-bit zero signal shown as 101) to the adder 3 at input D during the first scan line, which occurs immediately after the beginning of a vertical scan. At all other times the multiplexer 6 is recirculating the output of the intermediate result shift register (IRSR) 5 back to the adder 3. Inputting zeros at input D during the first scan line may also be 4 accomplished by clearing the IRSR 5 immediately before the first (top- most) scan line is processed (e.g. by asserting the signal CLR on the registers in the IRSR 5 during vertical retracing); this may be accomplished without any interruption by the MUX 6 (which may be removed) in the recirculated output from the IRSR 5. It will be appreciated that the large arrows and arrows with numbered slashes indicate buses and the slashes through the arrows indicate the number of digital signals carried on the bus.
A.portion of the output from the adder 3 is coupled also to a dual clock shift register 7 which is described in more detail below. The output from the adder 3 is divided by 16 by taking 8 most significant bits of the 12 bit line (appearing at the output from the adder 3) thereby producing the pixel averaging such as that shown in Figures 2a. and 2b. The following description is specifically qesigned for the weighting factors shown in Figure 2a wherein the weights for the first three pixels in the first pass are 1, 2, and 1 and the weights for the next three pixels below th(:se prior pixels is 2, 4, 2, etc.
The adder 1 is shown in greater detail in Figure 11. The adder 1, as shown in Figure 11, is implemented by two full adders 31 and 32; however, other ways which are well known in the art may be used to implement the adder 1. The full adder 31 has two 8-bit digital inputs G and F which are the 111x11 inputs to the adder 1. The full adder 31 adds the digital values appearing at these inputs G and F and produces a 9-bit digital result which is outputted to the full adder 32, which has one of its two 9-bit 1 1 i i 1 1 1 1 1 i - 15 inputs coupled to the output of the full adder 31. The other 9bit digital input to the full adder 32 is a 9-bit digital signal derived from the input E (the input labelled 112x" of adder 1) by adding a 1101' digital signal (as the least significant bit (LSB)) to the input E signal. It will be apparent that the addition of the "0" signal as the LSB of the input E signal effectively causes the signal at input E to be multiplied by a factor of 2. Thus, the full adder 32 adds the resulting summation from the full adder 31 to the product (2 x input E) and produces the 10-bit output signal.
The operation of the pixel averaging system shown in Figure 3 will now be described using the values shown in Figures 2a and 2b as an example. Each scan line is processed one at a time by summing, in the adder 1, groups of 3 consecutive pixels in the scan line. Thus, the first scan line Is processed in the first pass, producing in the memory means (IRSR) 5, a row of 640 pixel values, each of which is the sum of 3 consecutive pixels from the first scan line. The memory means 5 is a shift register with 640 stages ("registers") each of which can hold digital values with up to 12 bits. The next scan line is inputted at the beginning of the second pass and groups of three consecutive pixels in the second scan line are added by the adder 1 and then multiplied by 2 by multiplier 2 and then added by the adder 3 to the prior first scan line's results which are stored in the intermediate result shift register 5. In the third pass, the third scan line is inputted, groups of.3 consecutive pixels from the third scan line are added by the adder 1, and each of these summations (of 3 i 1 - 16 consecutive pixels) is added to the results of the additions of the two preceding scan lines. These ultimate sums are divided by the sum of the weighting factors 2 W 16, where N = 3) to produce the values of the pixels In the lower resolution image.
Thus, beginning with the first scan line as shown in Figure 2a, values 0, 1, and 2 from that 1 ine are applied to the first stage adder 1. Since this is the first of three scan lines to be processed in the aver aging procedure/calculation which produces the first scan line of the lower resolution image, this is the first pass. The value 1 from the first scan line will be applied at the 2x point (input E of adder 1) of the first stage adder 1 which will add the three values (0, 2xl, and 2), producing the result-4. That result is applied to the multiplier 2, also known as the shifter 2. This multiplier will be set at lx for the first scan line (since this is the first pass) and is controlled by the multiplier control signal on line 231 which is generated by the finite state machine described below. Thus the result from that multiplier 2 will be the same as the input causing a 4 to appear at the input C of the adder 3; at the same time (during the first scan line), the multiplexer 6 will be selected to input zeros through the multiplexer 6 into the adder 3 at input D. The result of that addition (which is 4), will be carried to the input A of the multiplexer 4 which will, during a first pass, output that result 4 into the.intermediate shift register 5. The next three i 1 - 17 values from the first line (which are 2, 3, and 4 because of the overlapping) are inputted into the adder 1, where the 3 is input at the 2x input. Again, in this particular embodiment there is an overlapping by 1 row and 1 column of adjacent 3 x 3 groups of pixels. The result of the additions by adder 1 is 12 (2 + 2 x 3 + 4) which result is output from the adder 1 and conveyed to the shifter 2 where the output is equal to the input (since the calculation is still on the first pass). The output 12 appears at the input C of the adder 3 and another zero from the "H" input of the WOX 6 appears at the input D of the adder 3. The result of the addition (0 + 12) in the adder 3 at this point produces the result 12 which is conveyed to the multiplexer 4 which again conveys the result into the shift register 5. At this point in the shift register 5, the values 12 and then the value 4 appear in the left-most (going left to right) registers with all the remaining registers having a zero (i.e. 1112, 4, 0, 0.., 011).
The rest of the first scan line is processed in a similar manner with the first scan line of 1,280 pixels being reduced to 640 pixel values which are stored in the shift register 5. It may be necessary, when converting from one image to a lower resolution image,, to "input" extra pixels at the end of a row of high resolution (Ilhi-res") pixels or to "input" extra hi-res rows of pixels at the end (usually at the very bottom of the image/screen) of a vertical scan. For example, when averaging from a 1280 x 960 image to a 640 x 480 image by 3 x 3 groups, with an overlap between adjacent groups of one row and one column as shown in Figure 1, it will be necessary to "input" an extra pixel for each - 18 scan line at either the end or the beginning of the line to assure that the last group of consecutive pixels from the hi-res image is complete. In this example, it will also be necessary to input an extra row of pixels so that the average can be computed for the last scan line of the 640 x 480 low resolution (Illo-res") image. This usually arises because of the overlapping between adjacent groups (e.g. 3 x 3) of pixels from the hi-res image. Figure 1 illustrates this problem when the hi-res image is, for example, 7 column x 6 lines. It can be seen that the averaging of that 7 x 6 image by 3 x 3 groups (with a vertical and horizontal overlap as shown in Figure 1) will fit precisely across for each row of the hi-res image but the sixth scan line of the hi-res image remains unused unless a seventh scan line is "inputted" (allowing the 5th, 6th and imaginary 7th lines to be averaged to form the third scan line of the lo-res image). In the case of averaging from a 1280 x 960 image to a 640 x 480 image as noted above, the 640th group of consecutive pixels from a hi-res row will be only 2 pixels rather than the normal 3. Hence, an extra pixel would normally be "inputted" at the end of the row to make the 640th group complete with 3 consecutive pixels.
The general case is given by the expression (N - W) modulo S 0, which will determine what N should be and must be evaluated for both rows and columns. In the case of whether extra pixels should be added to a row, N is the number of pixels in the hi-res row, W is the number (e.g. 3) of pixels in a row of the group of pixels (e.g. 3 x 3 group) and S is horizontal "step" which is taken to move from one group of pixels to the next group i 1 1 - 19 horizontally (e.g. S = 2 as shown in Figure 1). In the case of whether extra rows of pixels should be added to form the last (bottom) scan line of the low resolution image, N is the number of rows in the hi- res image, W is the number (e.g. 3) of pixels in a column of the group of pixels (e.g. a 3 x 3 group) and S is the vertical "step" which Is taken to move from one group of pixels to the next group vertically (e.g. S - 2 as shown In Figure 1). As is well known, the expression (N-W) modulo S = 0 requires one to empirically determine N to get the remainder of the division N-W S to be zero, as is well known in the art.
In the case of the 1280 x 960 to 640 x 480 conversion shown in Figures 2a and 2b, 1281 x 961 hi-res pixels must be inputted. Since only a single extra pixel is required for each row in a preferred embodiment described herein, the extra pixel is given the value zero so that the system actually receives 1280 hi-res pixels for each scan line. Similarly, the last row of hi-res pixels (the 961st row) is all zeros and thus the system actually receives 960 hi-res scan lines. An alternative to inputting zeros for the extra pixel or rows of pixels would be to repeat the last actual pixel (in the case of the extra pixel for each row) or to repeat the last actual row of pixels.
It is appreciated that the first three pixels will be added and stored at the right-most register (closest to the output) of the shift register 5 at the gnd of the processing of the first - 20 scan line (first pass). At the beginning of the second pass the result from the addition of the first three consecutive pixels of the first scan line will be applied to the input D of the adder 3 (through the MUX 6). This will serve to cause the summation of the first three pixels of the first scan line and the first three pixels of the second scan line. Thus, the first three pixels of the second scan line (those pixels having the values 20,_ 21 and 22 as shown in Figure 2a) are applied to the adder 1, where the pixel having a value of 21 will be multiplied by 2 and then added to the pixel values 20 and 22. The output of the adder 1, which will be 84, will be applied to the shifter 2 which will multiply the input by 2 (by performing a shift to the left (MB on right) of the value which is input to the shifter 2). This will produce the value 168 which is applied to the input C of the adder 3. At the same time, the input D to the adder 3 will receive the output of the shift register 5 which, at that point will be the summation of the first 3 pixel values of te first scan line (that value being 4); the adder 3 adds those two numbers (168 + 4) producing the result 172 which is outputted and applied to the input A of the multiplexer 4 which causesthat value, 172, to be applied again to the Intermediate shift register 5 which has shifted one place to the right allowing the new value to be stored and the old values to move to the right one location.
The processing of the second scan line continues in a similar manner producing at the end of the second scan line, 640 summations, each summation being of 6 pixels, which are stored in the shift register 5. That is, the right-most register (closest 1 i 1 1 i i - 21 to the output) of the shift register 5 will have a value of 172 resulting from the weighted addition of the first three pixels of the first scan line and the first three pixels of the second scan line. Similarly, the next register to the left of that register. will contain a value 196 which corresponds to the weighted sum of the values of the 3rd, 4th, and 5th pixels of the first scan line and of the 3rd, 4th, and Sth pixels of the second scan line.
It will be understood in this example that as the third scan line is inputted into the first stage adder 1, and the results derived from that adder 1, those results must be stored for the averaging of the pixels in the 3rd, 4th, and Sth scan lines of the high resolution screen, which scan lines constitute the next series of lines which will be averaged below the first three scan lines. That is, the 3rd, 4th and 5th scan lines of the high resolution image will be averaged to produce the 2nd scan line of the low resolution image, and thus the third pass of the prior calculption is also the first pass of the next calculation. Thus, the result of the adder 1 upon the third line must be saved before the additions to the summations to the two preceding lines. This is accomplished by the 10-bit/signal bus 11 coupled from the output of the adder 1 to the input B of the multiplexer 4; this bus feeds the result of the adder 1 upon the third line into the shift register 5.
The operation of the system shown in Figure 3 will now be described with respect to the processing of the third scan line (third pass). At the beginning of the inputting of the third scan 1 i i line, the shift register 5 is completely full with the 640 summations of the first two scan lines, each of those summations including six pixels. Those summations will be output from the shift register 5 through the MUX 6 to the adder 3 at input D. Thus, the right-most register, having a value 172, will produce the value 172 at the input D of the adder 3 when the summation of the first three pixels from the third scan line appears at input C of the adder 3. The shifter 2 does not shift the third line additions thus, the input C of adder 3 from the first three pixels of the third scan line (Figure 2a) will be 164 (40 + 2 x 41 + 42). The adder 3 adds 164, and 172, producing a result 336, which is divided by 16 yielding 21, which is then applied to the input of dual clock shift register 7 as the first value which will be outputted to the lower resolution display apparatus, such as a computer monitor. The division by 16 is accomplished by taking the 8 most significant bits (MSB) of the 12- bit output of the adder 3; it will be apparent to those in the art that this results in dividing the output of the adder 3 by the value 16. At the same time, the bus 11 will carry the result (164) of the addition of the first three pixels of the third scan line to the multiplexer 4 at input B, which multiplexer 4 s61ects (under control of a signal on line 225 during the third pass) the input B for inputting to the intermediate shift register 5. Thus, the value 164 will appear in the left-most register (closest to the input of the shift register 5) as it is outputted by multiplexer 4. The multiplexer 4 selects input A (of multiplexer 4) for outputting from that multiplexer during the first and second pass; during the third pass, input B is selected for outputting. Thus, 1 1 1 i i 1 i i i 1 the values of the summations of the three consecutive pixel groupings of the third scan line will be stored in the intermediate result shift register 5. The system continues circulating through the third line such that the summations of three consecutive pixels from the third scan line will appear in the shift register 5, completely filling that shift register at the end of the processing of that line and the output of the 3 x 3 averaging for the first 3 scan lines will appear in the dual clock shift register 7 (described below).
It can be seen that during the processing of the third pass 640 summations from the third scan line (each of those summations being formed from the addition of three consecutive pixel values from the 3rd scan line) will be stored in the intermediate result shift register 5. At the same time the summations of groups of three consecutive pixels from the third line will be added to the respective summations from the first two scan lines stored in the shift register 5. At the end of the processing of the third pass, the dual clock shift register 7 will contain one complete scan line for the lower resolution image. At the same time the intermediate result shift register 5 will be prepared to average the next three lines since it contains the 640 summations of three consecutive pixels which will be the first pass for the next three scan lines (to form the 2nd lo-res scan line) which, in this description, will be the third, fourth and fifth scan lines. The processing will then continue by inputting the fourth scan line (which is the 2nd pass with respect to the processing of the second scan line of the lo-res image) to the pixel averaging means - 24 shown in Figure 3. Thus, values from the fourth scan line will be entered, in three Consecutive pixel groupings, to the adder 1. Again, the middle pixel in each of the three consecutive groupings of pixels will be applied to the input E where the value is multiplied by 2 before addition to the other two inputs. The output of the adder 1 proceeds to the multiplier 2 which, in the case of the fourth scan line, will multiply each summation by 2 since the fourth scan line is, in the context of processing the 3rd, 4th and Sth scan lines, the second pass. The processing continues as described above resulting in the storage of the second complete scan line of the lo-res image in the dual clock shift rerister 7 which is output to the lower resolution display app&ratus such as a computer monitor. It can be seen that the bus 11 serves to convey the 640 summations from adder 1 to the intermediate result shift register 5 so that the third pass values. are stored for use as the first pass for processing the next 3 scan lines down the hi-res screen.
The output from the dual clock shift register may be provided "uncorrected" to a lower resolution display apparatus or alternatively, the output from the dual clock shift register may be run through a gamma correction ROM which is utilizied, as is well known in the art, to correct for non linearities in the display mechanism and receptors in the eye. Thus, the multiplexer 10 may select between two inputs, one of which provides the uncorrected averaged scan line, or may select the corrected average values produced by the gamma correction ROM 9 as is well known in the art. It will be appreciated that if no color computer displays will be used, the gamma correction ROM 9 and multiplexer 10 are unnecessary and the output of the pixel averaging system may be taken from the output of the dual clock shift register 7. It is understood that the digital output from the multiplexer 10 will be converted to an analog signal which a computer monitor can accept, through Digital-to-Analog Circuitry (DAC), as is well known in the art.
The dual clock shift register 7 is used because of the different clock rates at the output and the input to the shift register 7. These different clock rates arise because of different pixel scan rates on the different screens (e.g. a high resolution scan line requires a faster pixel scan rate than a lower resolution scan line in order to scan both lines across a screen in substantially the same time).In particular, in one embodiment of the invention the input to the dual clock shift register 7 is about twice as fast as the output from that shift register. A typical shift register includes only a single clock, and therefore a special aspect of this invention involves this dual clock shift register 7 which appears at the output section of the pixel averaging means shown in Figure 3. of course, it will be appreciated that a normal shift register may function in place of the shift register 7 when the input and output rates to the shift register 7 are the same and therefore a single clock is all that is required. Other memory devices may be used in place of the dual clock shift register; for example. RAM (random access memory) or a FIFO (firstin-first-out) may be used? but these alternative memory devices require more chip space than the dual clock shift register and typically could not operate as fast.
In the particular embodiment of the invention shown in Figure 3, the input clock has a frequency of about 50 megahertz (MHz) and the output clock frequency rate is approximately 25 MHz. In this particular implementation, inputted data will not overtake outputted data (and thereby be lost); of course. if these frequencies are modified, care must be taken not to have the inputthd data be lost as it is clocked out of the registers. That is, since the input is faster than the output, one must take care to prevent the inputted data from being lost. Normally, the input clock rate must be less than twice the output clock rate.
Figure 7 shows the general structure of the dual clock shift register (DCSR) 7. There are three main components of that shift register 7, which are the shift register 151, the muxes 152 and the 640 x 8 shift register 153. The shift register 151 includes 640 registers (stages) for storing one of two logical states and hence it is a 640 x 1 shift register (SR). The clock for each of those registers is the output clock (OCK) which is coupled to the clock input of each register 154 as shown in figure 8. Each register 154 in the shift register 151 also includes a clear input which is coupled to receive a clear signal immediately after the end of a third pass. Thus, at the very end of a third pass, all of the registers 154 in the shift register 151 will have been cleared to 0 such that the Q outputs of each of the registers 154 has the value 0 which is a logical state. Each of the registers i 1 1 1 i i 1 1 1 j i 1 i 154 is a D-type flip-flop which are coupled in series to form the shift register 151. It will be apparent to those in the art that the other circuits may be utilized to implement each of the registers 154. Thus, the output of the first register 154 (on the far left) is coupled to the input of the second register in the shift register 151. The input of the first register 154 in the shift register 151 is coupled to a signal which is fixed at a first logical state, such as a logical 1. Of course, that could also be set at logical 0 if an inverter is coupled in series to the select line input of the muxes in the muxes 152 and the shift register 151 is set to all l's instead of cleared to all O's at the very end of a third pass.
It can be seen that as the output clock is asserted, the zeros stored in the registers in the shift register 151 are shifted to the right and l's are shifted Into the shift register 151. The output of each of the registers In the shift register 151 is coupled to an associated multiplexer (MUX) in the 640 (2 to 1) muxes 152. Thus, the first multiplexer 155 is associated with the first register 154; the second register immediately to the right of the first register 154 in the shift register 151 is associated with the second MUX 158 immediately to the right of the first MUX 155. Each MUX in the muxes 152 has two multiplexer inputs. The first multiplexer input 237 of each of the multiplexers in the muxes 152 is coupled, through the AND gate 235, to receive a signal corresponding to the input clock rate (ICK) when the DUR enable signal is asserted on line 236 (the DCSR Control), and the second multiplexer input is coupled to the i i 4 - 28 output clock (OCK). Each MUX in the group of muxes 152 has an output which may carry either the ICK or OCK signal depending on -the logical state of the select line (SL) on the MUX. When the DCSR enable signal is asserted on line 236 (an input to the AND gate 235), the ICK signal will appear at node 237 which is coupled to the first multiplexer input of each mux in the muxes 152, as shown in Figures 7 and 8. Of course, when the DCSR enable signal (on line 236) is NOT asserted, then node 237 will be inactive and no input clock signal will be available to the muxes 152, although the output clock signal will still be available. Thus, it is possible to disable the input side only of the DCSR. If an application of the DCSR does not require the capability to disable oneof the clock signals, then the clock signals may be applied directly to the multiplexers7inputs.
The select line of the first MUX 155 is coupled to the output of the first register (left-most) in the shift register 151. Similarly, the select line of the second MUX 158 (immediately to the right of the first MUX 151) is coupled to the output of the second register in the shift register 151, which thereby associates the second register with the second MUX 158. Thus, it can be seen that the Q output of the first register 154 will control the MUX 155 which can output one of the two clock rates which is inputted to that MUX. In a particular implementation of the invention, a 1 appearing at the output of the first register 154 will cause the input clock signal to be outputted from the MUX 155 as long as the DCSR enable signal is asserted on line 236. At the same time, the second register in the shift register 151 could 1 i 1 j i - 29 have a 0 at its output and therefore select the output clock rate for outputting from the second MUX from the group of muxes 152.
Figure 8 shows a portion of the shift register 153 which contains 8 "rows" of 640 one bit registers coupled in cascaded series. Thus, the first row of registers shown in the shift register 153 of Figure 8 includes 640 one bit registers cascaded in series; similarly, the second row, which is coupled to receive the input "IN2", has 640 one bit registers coupled in series. There are eight such rows of registers making the 640 x 8 shift register 153. The first column of registers (the left-most column in shift register 153) is coupled to the same clock signal which appears at the output of the first MUX 155. It will be understood that the first column forms a 1 x 8 reigster. Similarly, each register in the second column of registers is coupled to the same output of the second MUX 158 in the group of muxes 152 thereby receiving the same clock signal.
At the beginning of each row of 640 registers in the shift register 153 is a first register the input of which is coupled to one of the bit lines which is an input to the dual clock shift register 7 as shown in Figures 7 and 8. The output of that first register 156 is coupled to the input of the second register 157 in the same row. Unlike a typical shift register, however, the clock input for the first register 156 in the first row is different from the clock input for the second register 157 of the first row. That is, the clock input for the first register 156 is coupled to the output of the first multiplexer 155 while the clock input of - 30 the second register 157 is couped to the output of the second MUX 158.
The operation of the dual clock shift register 7 will now be described with reference to Figures 7. 8 and 9 and the abovedescribed example of averaging by 3 x 3 groups. It will be appreciated that at the end of a third pass the phift register 7 is completely full of the average pixel values for a particular scan line of the lower resolution image. At the same time, the shift register 151 will be completely full of l's which causes the entire shift register 153 to be controlled by the input clock. At the very beginning of the next pass. which is actually a second i i pass (since the preceding third pass is the first pass for the next three scan lines which are averaged) the clear signal is asserted for all of the registers in the shift register 151 causing the outputs of each of those registers to be 0 thereby selecting the output clock signal as being the output from each of the muxes in the set of muxes 152. Thus, the dual clock shift register 7 is completely under the control of the output clock (OCK). Since the shift register 151 is controlled by the output clock it will prevent the incoming signals to-the shift register 153 from noverriding11 the outgoing signals which leave at one half the rate at which the incoming signals enter the shift register 153. (It should be noted that the input signals will not actually override the output signals as long as the registers containing the output signals are controlled by the output clock; what happens when the input signals overtake the output is that the input signals are clocked into "oblivion, ' --i.e. lost.) As the 1 i 1 t - 31 averaged values leave the dual clock shift register 7 under the control of the output clock, the pixel averaging means is receiving the second of three scan lines which will be averaged. As described previously, 640 summations of three consecutive pixels each is performed on that second line and those values are summed with the 640 summations from the first line of those three lines. At the same time the registers 154 are shifting l's into the shift register 151 to fill that shift register with l's as it shifts the O's out. The movement of the row of l's through the shift register 151 changes the control of the shift register 153 since the outputs of the registers in the shift register 151 control the select lines of the muxes in the 640 muxes 152.
Figure 9 shows the status of the dual clock shift register at the end of the second pass. In particular, Figure 9 shows that the shift register 153 is split in half such that the first half (input side) of that shift register is under the control of the input clock and the second half is under the control of the output clock. The second half contains one half (320 averaged pixel values) of the "old" 3-line average. The first half of the shift register 153 will contain "garbage,, which will be written over during the third pass when 640 averaged pixel values will be inputted to the dual clock shift register 7. It can be seen that because the input clock rate is no more than twice the frequency of the output clock rate (and preferrably just slightly less than twice the frequency) that the new averaged values are not lost (by running into the boundary between old and new) as those new values enter the dual clock shift register 7.
1 One way of implementing an input section for the pixel averaging means shown in Figure 3 is shown in Figure 10. The input section includes two Input latches 210 and 211 and two input shift registers which are arranged in columns as shown- in Figure 10. The first input shift register Includes registers 214a, 215c, 215b, 215a, 218 and 216. The second input shift register Includes registers 214b, 215g, 215f, 215e, 215d and 217. In addition to a normal 8-bit register 221 (which may be implemented by D flipflops)-, certain of the registers also include a 2 to 1 MUX 220. There are five 1 x 8 registers in each of the latches 210 and 211. Thus, the input latch A which is input latch 211 contains five 1 x 8 registers 213; similarly, the input latch B (input latch 210) Includes five 1 x 8 registers 212. The latches collect an even number of pixels and cause the pixels to be loaded in a parallel fashion into the two shift registers which are clocked to cause the data to be inputted Into the adder 1.
The bus 201, which is a 40 signal bus provides five pixels simultaneously over the five 8 signal buses 202, 203, 204, 205 and 206. It can be seen that when the input latch A clock (IIILA") is asserted the input latch A will accept five pixels and hold those values until the next input latch A clock. Similarly, when the input latch B clock ("ILB11) is asserted the input latch B will collect five pixels from the bus 201. The pixels signals' must be applied to the bus 201 such that the first (left-most) pixel in a line appears on bus 202 and the next pixel (the second pixel) i i i 33 appears on bus 203, and the next pixel (the third pixel) appears on bus 204, and so on.
Timing for the input section as shown in Figure 10 is shown in Figure 13. The signals ILA and ILB are active high. The registers and latches are clocked on the rising edge of the particular signal. In the typical implementation of the invention described above wherein a 1280 x 960 high resolution image is convertedr by 3 x 3 averaging with overlapping as shown in Figure 1, the input latch clock A will be approximately 10 megahertz and the input clock (ICK) will be approximately 50 megahertz. The input shift registers will be parallel loaded (except for the last stAge/register of each shift register -- i.e. registers 216 and 217) on the rising edge of the input clock when the input shift register load enable signal.is asserted. Registers 216 and 217 always shift from the previous stage as shown in Figure 10. No multiplexers are included as part of the registers 216 and 217. All stages in each of these input shift registers shift from the previous stage on the rising edge of the input clock when the input shift register load enable signal is not asserted.
The internal details of the various registers which comprise the input shift registers are shown in Figure 10. Specifically, register 215c shows the internal structure of that register and registers 215a, 215b, 215d, 215e, 215f and 2159. As shown in the register 215c, the output from the previous stage is coupled to the B input of the 2 to 1 MUX 220. The parallel load from the input latch B is coupled to the input A of the 2 to 1 MUX 220, - 34 which MUX selects, according to the input shift register load enable signal, whether input A or input B is outputted to the register 221 which is a 1 x 8 register which has a D input and a 0 output and a clock input signal which is coupled to the input clock. The register 214b shows the details of that tegister and the register 214a. It can be seen that, since there is no prior stage/register with respect to these two registers, that the B input to the multiplexer 220 is set at a fixed logical state. In all other respects, the register-214b and the register 214a are the same as the registers shown as 215c. The register 218 is another variation on the theme and is identical to the register -shown as 215c except that the Q output of the register 221 is coupled to the next register and to the input F of the adder 1. When the input shift register load enable (ISRLE) is asserted, the A input to each of the multiplexers 220 will be selected for outputting through the multiplexer to the D input of the various registers in the input'shift registers. When the input shift register load enable signal is not.asserted, the B input to the multiplexers 220 is selected, thus causing the normal shifting from previous stage to next stage. Thus, the ISRLE signal, when asserted, allows ten new pixel values to be loaded into the ten registers (registers 218, 214a, 214b and 215a-215g) as shown in Figure 10.
The operation of the Input section of the pixel averaging system shown in Figure 10 will now be described with reference to Figures 10 and 13. The input section is controlled by the four timing signals shown in Figure 13, which are permitted to run i i i - 35 continuously. Those signals should be synchronized as shown in Figure 13 to the input clock (ICK) signal. The operation begins with the loading of five pixels in the latch A (input latch 211) when the input latch A clock (ILA) is asserted. Next, the five next pixels are loaded into input latch B (input latch 210) when the ILB signal is asserted. While the 10 pixels have been loading into latches A and B, the input shift registers have been shifting the previous 10 pixel values down the input shift register such that those prior ten pixel values will not be overwritten when the parallel load occurs from the input latches A and B. Near the end of the assertion of the ILB signal, the input shift register load enable signals is asserted causing the new pixel values to appear at the D input of the various registers in the input shift registers shown in Figure 10. At the next input clock, these ten new pixel values are clocked to the Q outputs of the registers. Subsequent input clocks will cause the shifting of the ten new pixel values into the adder 1 for further processing by the system shown in Figure 3. It can be seen from Figure 13 that there are five input clocks (ICK) following the parallel loading into the input shift registers; hence, when the next ten pixels are loaded into the input shift registers the prior pixels will have exited the input section except for pixel values stored in registers 216 and 217 which will exit at the next input clock. The input clock (ICK) signal is half the frequency of the pixel clock which is the clock rate at which the high resolution pixels are propagated to and displayed on the high resolution image display apparatus.
it will be apparent to one with ordinary skill in the art that other ways may be utilized to introduce the input stream of pixel values In the high resolution image to the adder 1 of Figure 3.
The operation of the pixel averaging means shown in Figure 3 may be controlled by a finite state machine which is implemented in a fashion which is well known by those skilled in the art. Figure 15 shows an example of a finite state machine for controlling the pixel averaging means of the invention, such as that shown in Figure 3. The finite-state machine uses a programmable logic array to implement a video processing sequence shown in Figure 12. Figure 12, in flow chart form illustrates the various commands and control signals, in their appropriate order. in particular, certain control signals associated with the pixel averaging means shown in Figure 3 are asserted or not asserted depending on the state (shown in the state register 301) at a particular time of the finite state machine. Each of the boxes in Figure 12 represents a state during the video process sequence. Thus, state 310 is a wait state during which, at each clock input, the programmable logic array checks to see whether the state is still state 310 and checks the status of the vertical scan MCAN) signal.
During each state, the programmable logic array (PLA) at each input clock checks the status of the state register 301 (where the state datum is stored) and checks certain input conditions (HSCAN - horizontal scan; VSCAN - vertical scan) which are registered i i i i i 1 1 1 i - 37 into the PIA 300 at the rising edge of the input clock by the condition registers 302. These condition registers 302, which may again be D flipflops, receive as inputs the horizontal and vertical scan signals from the high resolution video circuitry. The registers 302 at each input clock provide the status'of the VSCAN and.HSCAN signals to the PLA 300. The state register 301 at each input clock provides the current state in the processing sequence to the PLA 300.
Figure 14 shows HSCAN signals for the low and high resolutions without interlacing (non-interlaced). Figure 14 also shows.a lo-res HSCAN interlaced signal, which resembles the horizontal scan in consumer televisions (e.g. NTSC video standards). The HSCAN signals are usually high when asserted; thus, vertical retracing occurs when the HSCAN signals are low (e.g. about 0 volts). The high resolution VSCAN and HSCAN signals are usually supplied by the computer's video processing circuitry; sometimes, however, a particular computer, to which one seeks to add an apparatus of the invention, may generate the inverse of these signals. The inverse signals are HBLANK and VBLANK, which may be converted to the HSCAN and VSCAN signals by inverters, as is well known in the art. The low resolution HSCAN signal may be generated by well known circuitry which receives the high resolution HSCAN signal and converts it to thesynchronized low resolution HSCAN signal which has one-half the frequency of the high resolution scan signal and is synchronized as shown in Figure 14. It is also understood by those in the art that the VSCAN signal (used for both.lo-res and hi-res signals) is asserted 1 during the scanning of all horizontal lines on a screen (for example 960 consecutive horizontal scans when the hi-res screen has 960 rows) and is not asserted during vertical retracing.
The inputs to the PLA 300 determine the next state and hence the status of the various control signals. The various"control signals are shown in Figures 3, 12 and 7. Beginning with Figure 3, the multiplier control signal is applied to line 231 which controls the multiplier 2. The status of the multiplier control signal.at line 231 will determine whether the multiplier 2 multiplies the input by 1 or by 2. As shown in Figure 12, the multiplier 2 is set at multiplication by 2 in state 314; in all othe2 states the multiplier 2 is set at multiplication by 1. select line on the multiplexer 6 is line 230 which is coupled to receive the multiplexer 6 control which selects between input H and input I of multiplexer 6. As shown in Figure 12, the multiplexer 6 control selects the H input only during state 312; during states 314 and 316, the multiplexer 6 control selects the 1 input to the multiplexer 6.
The select line (SL) of the multiplexer 4 is the line 225 which is coupled to receive the multiplexer 4 control signal. The multiplexer 4 control signal selects between input A and input B of the multiplexer 4. Input A is selected for outputting during states 312 and 314 while input B of the multiplexer 4 is selected during state 316, which as noted in Figure 12, is the third/first pass.
1 1 i 1 i i Also as shown in Figure 3, the intermediate result shift register 5 (IRSR) is controlled by the IRSR control appearing at line 228 which is an input to the AND gate 227. The other input to the AND gate 227 is the input clock signal (ICK). Thus, it can be seen that the intermediate shift register 5 will be clocked only when the IRSR is asserted ("enabled"). When the IRSR 5 is enabled by asserting the IRSR control signal, the intermediate result shift register will clock in values for storage. It can be seen from Figure 12 that the intermediate result shift register 5 is enabled during states 312, 314 and 316 by asserting the IRSR control line 228. During the wait states (states 310, 311, 313, 315 and 317), the intermediate result shift register 5 is disabled by not asserting the IRSR control signal on line 228. Similarly, the input side of the dual clock shift register 7 is not enabled during these wait states. For purposes of convenience, the status of the o ther signals (on lines 230, 231 and 225) may be left indeterminate during these wait states because no values are stored in the IRSR 5 during these states since that register 5 is disabled.
As shown in Figure 7, the input side only to the dual clock shift register 7 is controlled by the combination of the AND gate 235 and two inputs thereto. First Input to the AND gate 235 is the input clock signal (ICK) and the other input is the dual clock shift register control signal appearing on line 236. The input clock signal will appear at the node 237 only when the dual clock shift register control signal is asserted on line 236 permitting the input clock signal to appear at node 237. It can be seen from - 40 Figure 8 that the node 237 is applied as one of the inputs to each of the multiplexers in the group of muxes 152. Since there is no interruption of the output clock signal to the dual clock shift register, the output side of the dual clock shift register 7 functions constantly. Of course, if one wanted to disable the output side of the dual clock shift register 7, for whatever reason, the implementation is straight forward and in the same manner as shown for the input side of the dual clock shift register 7. Thus, when the input side of the dual clock shift register is disabled the clock signal ICK will not appear at node 237 and the dual clock shift register will not accept data. Figure 12 shows that the dual clock shift register is disabled (input side only) during states 312 and 314. During state 316 the input side of the dual clock shift register 7 is enabled by asserting the dual clock shift register control on line 236 to permit the input clock signal (ICK) to appear at node 237. It can be seen from Figure 12 that during only state 317 the dual clock shift register 7 is reset by asserting the clear signal appearing as an input to the shift register 151 shown in Figures 7 and 8.
The multiplexer 10 shown in Figure 3 may b& hard wired to a simple mechanical switch allowing the user to select between the two inputs to the multiplexer 10. Many other ways, known to those in the art, may be utilized to control the multiplexer 10.
The outputs of the PLA 300 are clocked into registers as shown in Figure 15. The output of the PLA 300 which indicates the next state is clocked Into the state register 301. Similarly, at i 1 i 1 1 - 41 each input clock, the control signal outputs from the PLA 300 are clocked into the output control registers 303. There is a control register, such as a D flip-flop, for each of the control signals. Thus, there Is a control signal output register for the signal appearing at lines 231, 230# 225, 228 and 236. There is also a control register for the dual clock shift register clear signal which is also an output from the PLA 300, which is asserted only during state 317.
The PLA 300 during the operation of the video sequence shown in Figure 12 looks at the state and conditions inputs and determines the next state based on the present state and condition inputs. The next state which is outputted to the state register 301 determines the status of the control signals described above. The control signals as determined pursuant to the next state are outputted to the output control registers 303 making those control signals available to the pixel averaging means. The PLA 300 is implemented using well known programmable logic techniques.
Starting with state 310, it can be seen that the PLA will examine the state register and the condition input registers 302 to determine whether the state is 310 and whether the video scan signal is asserted or not asserted. If the video scan signal is asserted then the next state is equal to 311 and we move down Figure 12 from state 310 to state 311. If, on the other hand the video scan signal is not asserted during state 310, then the next state is still state 310 causing the PLA 300 to recycle to the beginning of the processing state sequence.
1 - 4 2 - At state 311, the PLA determines the status of the horizontal scan signal. If the horizontal scan signal is not asserted then the next state is still state 311 causing the PLA to recycle back to state 311. If, on the other hand, the horizontal scan signal begins then the PIA sets the next state as state 312, again moving further down Figure 12's processing sequence diagram. During state 312, the PIA examines the status of the horizontal scan signal. If, during that state, the horizontal scan signal is asserted (indicating that the incoming data is still on the same horizontal scan line) then the control signals are asserted as shown in state 312 of Figure 12. At each input clock, during state 312, the finite state machine reexamines the status of the horizontal scan signal; If the data is on the same horizontal scan line the horizontal scan signal will still be asserted and the state machine will recycle back to the beginning of state 312 causing the various control signals shown in state 312 of Figure 12 to be asserted. If, at a particular input clock during state 312, the horizontal scan signal is not asserted then the state machine sets the next state to 313.
At state 313, the state machine executes-the same processing required for state 311 except that the next state while on state 313 is of course state 314 and that if the horizontal scan signal is not asserted the next state is the prior state, i.e. state 313. The processing continues In a similar manner as shown in Figure 14.
1 1 0 If the horizontal scan line starts (which is indicated by the assertion of the horizontal scan signal) then the state machine moves from state 313 to state 314. which is the second pass. During state 314 the second pass scan line is inputted while the various control signals are set as shown in state 314.on Figure 12. At the end of the second pass (indicated by the fact that the horizontal scan signal is not asserted) then the state machine jumps from state 314 to state 315 which waits for the start of the next horizontal scan. The state machine recirculates during state 315 until the next horizontal scan starts, which is indicated by the assertion of the horizontal scan signal. When that signal is asserted the state machine jumps from state 315 to state 316 which is the processing of the third/first pass. The processing of that pass continues during state 316. As long as the horizontal scan signal is asserted during state 316 the next state is state 316. At the end of that horizontal scan (the third pass) the state machine, at the next input clock, moves to state 317 during which the dual clock shift register 7 Is cleared by asserting the clear signal coupled to the shift register 151 as shown in Figures 7 and 8. Also during state 317, the finite state machine checks for the end of the vertical scan which is indicated by the fact that the vertical scan signal is not asserted. Therefore, if the vertical scan Is asserted during state 317, at the next input clock, the state machine will jump from state 317 to state 313 (i.e. next state is set at state 313) to continue processing of the next horizontal scan line from the high resolution image. If, the vertical scan is not asserted (as during vertical retracing) then i i i 1 -44the state machine at the next input clock, will recirculate from state 317 to state 310.
The system of the present invention may be used with a display apparatus which uses interlacing (displaying ev ery other line) in the normal manner associated with the NTSC (National Television System Committee) video standard, such as the standard consumer televisions in the United States. Thus, a low resolution monitor which is used with the system of the present invention may use interlacing as in the NTSC standard. If so, all lines of the low resolution image are computed as described above but alternative lines from the low resolution image are simply discarded by not clocking them into the dual clock shift register (by not enabling the input clock signal to reach node 237 as shown in Figure 7 and Figure 8). Moreover, in order to discard the low resolution line the clear signal of the dual clock shift registers should not be asserted for evety other line. That is, for interlaced low resolution display the dual clock shift register clear signal and the dual clock shift register enable signal are only issued every other line causing alternative output lines of the low resolution image to be discarded.
Another embodiment of the invention is illustrated in Figure 4 and its associated figures, Figure 5 and Figure 6. In this embodiment of the invention, a 2 x 2 group of pixels from a high resolution image is converted to a single pixel for display on a lower resolution image. The 2 x 2 group of pixels is converted by the system shown in Figure 4 to a single pixel for display; no i 1 1 - 45 overlapping is used in this example of a 2 x 2 system. The output of this system may then be mapped through a 256 x 8 gamma correction ROM 80 and the output is provided,. through well known video processing circuitry (e.g. DAC digital-to-analog converter), to a lower resolution display apparatus.
The system of Figure 4 consists of three sections -- an input section, an averaging section and an output section. The system of Figure 4 operates on the digital pixel values on the high resolution image to produce a simple average that is not weighted. Since four pixels are involved in averaging to a single pixel in a low resolution image the result of the sum of a 2 x 2 pixel group is divided by four in accordance with the general principals of this invention. In the input section. as shown in Figure 4, two 5-pixel input latches (input latches A and B) collect an even number (10) of pixels from the 5-pixel wide input bus 56. This input section also includes a pair of 8-bit 5-stage input shift registers (i.e. shift registers 58 and 59). It can be seen that the input section of the pixel averaging means shown in Figure 4 is substantially similar to the input section of the pixel averaging means shown In Figure 3 and Figure 10. Thus, the input latches 54 and 55 of Figure 4 may be implemented as shown in Figure 10. Shift register 58 is comprised of five registers, being registers 58a, 58b, 58c, 58d and 58e; shift register 59 is comprised of register 59a, 59b, 59c, 59d and 59e. The details of register 59d are also shown in Figure 4a. All registers in the shift register 58 and 59, except for 58e and 59e may be implemented as shown for register 59d in Figure 4a. Registers 58e - 46 and 59e may be implemented as shown in Figure 10 for register 214b. As with the input section shown in Figure 10, the input section of the pixel averaging means shown in Figure 4 is controlled by four control signals which are the input clock (ICK), the two latch control signals (ILA and ILB) used for the input latches 54 and 55 and the input shift register (SR) load enable signal w hich is coupled to the select line of the muxes contained in each of the registers in the shift registers 58 and 59. These control signals are shown by way of example in Figure 13.
In the averaging section of the 2 x 2 pixel averaging means shown in Figure 4, a thtee input 9-bit adder 60, a divider 62 and a pair of 640 x 9 scan line buffers 69 and 70 combine to perform the averaging on pairs of input high resolution scan lines. Figure 5 shows a first input scan line from the high resolution image and Figure 6 shows a second input scan line from the high resolution image; immediately below each of those lines in their respective figure is a line representing the running sum pixel values based on their respective high resolution lines which is calculated by the pixel averaging means shown in Figure 4.
In the output section a multiplexer 71, which is a 2 to 1 multiplexer selects between line buffers 69 and 70 for outputting to the low resolution display apparatus. It can be seen that a division by 2 takes place on line 73 by taking only the eight most significant bits from the selected input. This division by 2 in combination with the division by 2 during a second pass which is 0 1 1 i 1 i i i - 47 accomplished by the divider 62, produces the simple, unweighted average of 2 x 2 pixels from the high resolution image.
The line buffer 69 and 70 are effectively swapped by the multiplexer 71 and 72 such that while one line buffer serves as an intermediate result memory means the other line buffer is outputting, according to the output clock rate (which has a frequency rate which is equal to one-half of the frequency rate of the input clock -- where the hi-res and lo-res 'images are both non-interlaced). Thus, while two lines are being processed by, for example line buffer (LB) 69 the preceeding low resolution line is being outputted by line buffer 70 at the output clock (OCK) rate. It can be seen that it takes the line buffer, which Is being used as the output source, two passes to output data since the output clock is one-half the frequency of the input clock.
The averaging process of the pixel averaging means shown in Figure 4 will be described with references to Figures 4 and 16. Figure 16 shows the state machine processing sequence used by a finite state machine which provides the control signals for the pixel averaging means shown in Figure 4. The averaging process begins with the finite state machine waiting for a vertical scan signal. As described above, the finite state machine Is implemented in a programmable logic array (PLA) such as that shown In Figure 15. The state machine has condition registers and a state register and has outputs which output the next state and the control signals used to control the pixel averaging means shown in Figure 4. The state machine is in 401 state (Figure 16) while it i 1 waits for the vertical scan (VSCAN) signal to be asserted. The state machine continues to recycle remaining in state 401 for each input clock until the vertical scan-signal is asserted. When the vertical scan signal is asserted. a new screen will be scanned and the state machine jumps from state 401 to state 402 (i.e. sets next state = 402). During state 402 the line buffer 69 is cleared to all zeros by asserting the clear- signal on line 423 which is coupled to the clear inputs of each of the registers within the line buffer 69. The line buffers 69 and 70 are preferrably shift registers having 640 stages (registers) with each stage holding 9 bits. Following state 402, at the next input clock, the state machine jumps to state 403 during which it waits for a horizontal scan to start, which is indicated by the assertion of the horizontal scan (HSCAN) signal. When the HSCAN signal is asserted, the state machine jumps from state 403 to state 404 during which it asserts controls allowing the inputting of the scan line which is the first pass. During this first pass the line buffer 69 will serve as the "input" buffer in that it will serve to store the intermediate results and the final results on the low resolution line being processed. At the same time the line buffer 70 will be selected for outputting by the multiplexer 71; the select line 436 which is coupled to the MUX 71 selects for outputting between the outputs of line buffer 69 and line buffer 70. Thus, during state 404 the MUX 71 selects the line buffer 70 so that at each output clock the low resolution pixel values leave line buffer 70, pass through the multiplexer 71, are divided by 2 at line 73 and then are corrected in the gamma correction ROM 80. At the same time (state 404) the MUX 65 is preparing the line - 49 buffer 70 by introducing zeros through line 430 into the line buffer 70; the zeros will be used during the next first pass when the line buffer 70 becomes the intermediate result memory means. The zeros are necessary dur.ing the first pass so that the 9-bit input to the adder 60 will have zeros during the first pass.
The following table shows the status of the various control signals during each of the states shown in Figure 16. It Is understood that the finite state machine in this embodiment operates as described with respect-to Figure 15 above. Thus, at each Input clock, the finite state machine checks the condition inputs and the state register to determine the next state and based on the next state also outputs the various control signals as shown in Table 1.
TABLE 1 State 401 402 403 404 Status of Control Signals LB Control (426)-NOT asserted Clear (423)-NOT asserted MUX 64 (line 420) - MUX 65 (line 421) - MUX 71 (select 436) - Does MUX 72 (select 435) - NOT MUX 424 (select 425) - Matter MUX 433 (select 434) - Divider Control (422) Clear (423)-Asserted LB Control (426)-NOT asserted all others - Does NOT matter LB Control (426)-NOT asserted Clear (423)-NOT asserted all others - Does NOT matter LB Control (426)-Asserted Clear (423)-NOT Asserted MUX 64 (line 420)-Divider 62 output MUX 65 (line 421)-10's (on line 430) 11 MUX 71 (line 436)-Line Buffer 70 MUX 72 (line 435)-Line Buffer 69 MUX 424 (select 425)-ICK selected MUX 433 (select 434)-OCK selected Divider Control (422)-Divide by 1 405 406 407 408 409 410 411 LB Control (426)-NOT asserted Clear (423)-NOT asserted all others - Does NOT matter LB Control (426)-Asserted Clear (423)-NOT asserted MUX 64 (line 420)-Divider 62 output MUX 65 (line 421)-10's (on line 430) MUX 71 (line 436)-Line Buffer 70 MUX 72 (line 435)-Line Buffer 69 MUX 424 (select 425)-ICK selected MUX 433 (select 434)-OCK selected Divider Control (422)-Divide by 2 LB Control (426)-NOT Asserted Clear (423)-NOT Asserted all others - Does NOT matter LB Control (426)-Asserted Clear (423)-NOT Asserted MUX 64 (line 420)-10's (on line 429) MUX 65 (line 421)-Divider 62 output MUX 71 (line 436)-Line Buffer 69 MUX 72 (line 435)-Line Buffer 70 MUX 424 (select 425)-OCK selected MUX 433 (select 434)-ICK selected Divider Control (422)-Divide by 1 LB Control (426)-NOT Asserted Clear (423)-NOT Asserted all others - Does NOT matter LB Control (426)-Asserted Clear (423)-NOT Asserted MUX 64 (line 420)-10's (on line 429) MUX 65 (line 421)-Divider 62 output MUX 71 (line 436)-Line Buffer 69 MUX 72 (line 435)-Line Buffer 70 MUX 424 (select 425)-OCK selected MUX 433 (select 434)-ICK selected Divider Control (422)-Divide by 2 LB Control (426)-NOT Asserted Clear (423)-NOT Asserted all others - Does NOT matter 1 i 1 1 1 As the first scan line is inputted during state 404, which is a first pass, pairs of adjacent pixels in the high resolution scan line are added together and stored in the buffer 69. Thus, summations are inputted to line buffer 69 during the first pass and, also during the first pass, the zeros from the clear operation in state 402 are leaving the line buffer 69 and entering the three Input adder 60 through the multiplexer 72 which has been set (via the select line 435) to route the output from line buffer 69 back to the adder 60. Since the line buffer 69 Is serving as the intermediate result storage mechanism, the multiplexer 424 provides the input clock. during this first pass, to the clock input of the registers in the line buffer 69. Hence, during state 404.the output of the multiplexer 424 provides the input clock signal through the AND gate 427; the input clock signal appears because the line buffer control (LBCONTROL) at line 426 has been asserted permitting both clock signals to appear at the multiplexer 424. The AND gate 428 serves a similar function as the AND gate 427. Thus, the multiplexer 424 selects between the output and input clock signals when those signals are permitted to reach the multiplexer 424 by the LBCONTROL (when asserted). It can be seen that the multiplexer 433 performs a similar function allowing the clock input to the line buffer 70 to be connected to either the input clock or the output clock depending on the status of the select line 434 which selects the inputs to the MUX 433. The line buffer control MBCONTROL) 426 controls whether or not the two clock signals are routed to the MUX 433. That is, when the LBCONTROL 426 is asserted the AND gate 431 and the AND gate 432 will allow the two clock signals to appear at the inputs to - 52 the multiplexer 433. The line buffer control 426 has the same effect with respect to AND-gates 427 and 428. Thus, when the LBCONTROL 426 is not asserted the input and output clock signals do not appear at the inputs to the MUX 424 and similarly do not appear at the inputs to the MUX 433.
At the end of the first pass which occurs during state 404, the line buffer 69 will be completely filled with 640 summations which constitute the first pass values shown, for example, in Figure 5 (second part). At the salne time, the line buffer 70 will have shifted 320 zeros into the line buffer and have shifted out 320 values of the preceeding;ow resolution scan.line. The first pass values are unaffected by the divider 62 since that divider divides by 1 on the first pass; the divider 62 is under the control of the divider control signal appearing at line 422.
At the end of the first pass, the horizontal scan signal will not be asserted causing the finite state machine to jump from state 404 to state 405 during which it waits for the next horizontal scan. The state machine cycles through various input clock signals until the next horizontal scan signal is asserted Indicating the start of the next horizontal scan line. When that occurs the state machine jumps from state 405 to state 406 which is a second pass.
As the second high resolution scan line is inputted during this second pass, adjacent pixels are once again added but this time the first pass pixel sum values from the line buffer 69 are - 53 also added in via the recirculation route through the multiplexer 72 which is selected, via the select line 435, to output values from the output of the line buffer 69 to the adder 60. Also during this second pass the multiplexer 64 is still selected to transmit the result from the divider 62 to the line buffer 69 (the multiplexer 64 is controlled by the select line 420 as shown in Table 1). During this second pass the divider 62 divides by 2; this division by 2 and the subsequent division via line 73 (at the output of multiplexer 71) will cause the summation of the four pixel values to be divided by 4 thereby producing a simple, unweighted average of four pixels. The 10-bit result from the adder 60 during the second pass may be divided by 2 by shifting the binary decimal point in the divider 62 as is well known in the art.
At the end of this second pass the line buffer 69 will be completely filled with the pixel values for the low resolution image. At the same time the line buffer 70 will have been filled with zeros via line 430 which is inputted to the MUX 65. Thus, the line buffer 70 will be ready to be swapped with the line buffer 69 which will occur at the start of the next pass. When the horizontal scan line ends. the horizontal scan signal will no longer be asserted and the state machine will jump from state 406 to state 407 during which it waits for the.assertion of the next horizontal scan signal MSCAN). When that signal is asserted, indicating the start of the next scan line, the state machine jumps from state 407 to state 408 which is the next first pass. During this first pass and the next pass the line buffer 69 will - 54 be outputting the low resolution averaged line and the line buffer 70 will serve to store the intermediate results and final results being computed during states 408 and 410.
It can be seen that the line buffers 69 and 70'swapped roles during the operation of the pixel averaging means shown-in Figure 4. Specifically, during state 408 the MUX 71 has selected the line buffer 69 for outputting the lower resolution display apparatus. The MUX 72 has selected the line buffer 70 for recirculation to the adder 60. The multiplexer 424 will select (when the LBCONTROL is asserted) the output clock signal to clock the line buffer 69. The line buffer 70 will now be under control of the input clock as the MUX 433 will select the input clock (through AND gate 431). The MUX 65 will cause the output of the divider 62 to pass to the line buffer 70. The MUX 64 will input zeros throught line 429 into the line buffer 69 at the output clock rate.
At the end of this first pass (state 408) the line buffer 70 will be completely filled with first pass values. At the same time, the line buffer 69 will have 320 zeros filling the first half of that line buffer and will have 320 low resolution pixel values filling the last half of that buffer. Also at the end of state 408 the horizontal scan signal is no longer asserted causing the state machine to jump from state 408 to state 409 during which it waits for the next horizontal scan.
i r 4 At the beginning of the next horizontal scan, indicated by the assertion of the HSCAN signal, the state machine jumps from state 409 to state 410. During state 410 the line buffer 69 is completely emptied of the low resolution pixel values and is filled with zeros for the processing of the next line.. Also during state 410, the line buffer 70 recirculates the first pass values (state 408) back to the adder 60 and at the same time receives the new low resolution values through the multiplexer 65. At the end of state 410, indicated by the end of the assertion of the HSCAN signal, the state machine will jump from state 410 to state 411 during which is checks for the end of the vertical scan. If the vertical scan signal is still asserted, indicating the continuation of the vertical scan, the state machine jumps from state 411 to state 403. If, on the other hand, the VSCAN signal is no longer asserted the state machine jumps from state 411 back to the beginning at state 401. The endof the vertical scan signal indicates a vertical retracing is occurring during which the electron beam(s) is (are) scanned from the bottom of the screen back to the top.
While the invention has been described with reference to specific embodiments, it will be apparent to one with ordinary skill In the art to make various modifications which are within the scope and spirit of the invention as defined by the following claims.
9
Claims (10)
1. A system for converting a higher resolution image for a computer screen to a lower resolution image for display on a lower resolution display apparatus, said system comprising a pixel averaging means for converting a n x n group of pixels In the higher resolution image to a pixel in the lower resolution Image, said pixel averaging means having an input coupled to receive said higher resolution image, said pixel averaging means calculating a weighted average of the pixels in said n x n group-of pixels and outputting said weighted average for display on a lower resolution display apparatus.
2. A system for converting a high resolution image for a computer screen to a lower resolution image for display on a lower resolution display apparatus,said system comprising: a pixel averaging means for converting a n x n group of pixels in the high resolution image to a pixel in the lower resolution image, said pixel averaging means having an input coupled to receive said high resolution image, said n x n group of pixels having n pixels in a first row having pixels P,, P2... Pn, n pixels in a second row having pixels Pn+lr Pn+2 Pn+n, said n x n group of pixels having n rows of pixelst wherein a pixel Pi is the value of the ith pixel in said n x n group of pixels, where i can have any Integer value from 1 to n2 each pixel in said n x n group of pixels having a weighting factor such that said pixel Pi is multiplied by a weighting factor Wi to produce the product WiPi, wherein said pixel averaging means calculates the expression 1 1 1 i 1 i 1 i 1 1 1 1 57 - i - P1P 5- Wi Pi i=1 im N2 E W i i-1 to produce the value of the pixel in the lower resolution image, said pixel averaging means having an output coupled to provide said value to said lower resolution display apparatus to display said lower resolution image.
3. A system for converting a high resolution image for a computer screen to a lower resolution,image for display on a lower resolution display apparatus said system comprising: a pixel averaging means for converting a 3 x 3 group of pixels in the high resolution image to a pixel in the lower resolution image, said pixel averaging means having an input being coupled to receive the digital values of said high resolution image, said 3 x 3 group of pixels having 3 pixels in a first row having pixels P,, P2 and P3, 3 pixels in a second row having pixels P4, PS and P6, 3 pixels in a third row having pixels P7, PG, P9, wherein a pixel Pi is the value of the ith pixel in said 3 x 3 group of pixels, each pixel In said 3 x 3 group of pixels having a weighting factor such that said pixel Pi is multiplied by a weighting factor Wi to produce the product WiPi, wherein said pixel averaging means calculates the expression a i,-9 37 W i p i i-1 i-9 37 vy 1 i-1 to produce the value of the pixel in the lower resolution image, said pixel averaging means having an output coupled to provide said value to said lower resolutio.n display apparatus to display said lower resolution image.
4. A system as in Claim 2 wherein said N x N group of pixels overlaps by one column the next N x N group of pixels immediately to the right of said N x N group of pixels and whereip said N x N group of pixels overlaps by one row the next N x N immediately below said N x N group of pixels.
5. A system as in Claim 4 wherein the expression 1-N 2 W is equal to 16 and wherein N = 3 and wherein said system converts said high resolution image to said lower resolution image substantially simultaneously while said high resolution image Is displayed.
i i 1 i 1 1 4 lk
6. A system as in Claim 2 wherein there are 3 pixel averaging means one for each of the three color components in an RGB computer color system.
7. A system as in Claim 3 wherein said pixel averaging means sums values from a first scan line and stores said values in an intermediate result shift register and recirculates the output of the intermediate result shift register to add values stored therein with the three pixel sums of the second scan line and stores the result to the intermediate shift register, said result being added to the three pixel sums of the third scan line.
8. A system as in Claim 7 wherein said higher resolution image is 1280 pixel columns and 960 scan lines and said lower resolution image has 640 pixels columns and 480 scan lines.
9. A system as in Claim 3 wherein said pixel averaging means includes a three input first stage adder adding three inputs which provide three consecutive pixels from said high resolution image, the output of said adder being coupled to a multiplier, the output of the multiplier being coupled to a second adder which calculates the expression 1-9 37 v 1 i i 1 1 1 - 60
10.A system for converting a higher resolution image for display on a computer screen to a lower resolution image for display on a lower resolution display apparatus, said system comprising a pixel averaging means for converting a n x n group of pixels in the higher resolution image to a pixel in the lower resolution image, said pixel averaging means having an input coupled to receive said higher resolution image, said pixel averaging means calculating a weighted average of the pixels in said n x n group of pixels and outputting said weighted average for display on a lower resolution display apparatus, wherein said outputting of said weighted average occurs substantially simultaneously with the display of the higher resolution image on a computer screen such that said higher resolution image may be viewed substantially simultaneously with said lower resolution image.
A systen for converting a higher resolution iniage for a computer screen to a lower resolution iiiiage for display on a lower resolution display apparatus substantially as hereinbefore described with reference to the accompanying drawings.
v be obtained from The Patent Office.
'he, 1 High Y.T1R F"rt.er copies mk publishea 19b13 at Sate House. C67 - E2C11 - 37 -Atp7ex jq71es ltd. St Ma17 Cray. Ken Con- 1'8_ gt v Crav. OrDington. 7ent BW i I 1
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US7288687A | 1987-07-14 | 1987-07-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
GB8816565D0 GB8816565D0 (en) | 1988-08-17 |
GB2207029A true GB2207029A (en) | 1989-01-18 |
Family
ID=22110341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB08816565A Withdrawn GB2207029A (en) | 1987-07-14 | 1988-07-12 | Computer system for converting a higher resolution image to a lower resolution image |
Country Status (5)
Country | Link |
---|---|
JP (1) | JPH0192796A (en) |
KR (1) | KR890002752A (en) |
DE (1) | DE3823931A1 (en) |
FR (1) | FR2618236A1 (en) |
GB (1) | GB2207029A (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2229344A (en) * | 1988-10-07 | 1990-09-19 | Research Machines Ltd | Converter circuit for video adaptor of computer |
EP0423930A1 (en) * | 1989-09-01 | 1991-04-24 | Quantel Limited | Electronic graphic system using low resolution control image |
WO1992003815A1 (en) * | 1990-08-28 | 1992-03-05 | Avesco Plc | Video image formation |
EP0584941A1 (en) * | 1992-08-14 | 1994-03-02 | Crosfield Electronics Limited | Methods and apparatus for generating graphic patterns |
EP0772179A3 (en) * | 1995-10-31 | 1998-10-21 | Cirrus Logic, Inc. | Method and apparatus for determining chrominance components |
US6642937B2 (en) | 1997-12-18 | 2003-11-04 | Thomson Licensing S.A. | Screen display system |
WO2010091750A1 (en) * | 2009-02-12 | 2010-08-19 | Zoran (France) | Scaling method and device for image signals |
CN113380191A (en) * | 2021-06-08 | 2021-09-10 | 惠州华星光电显示有限公司 | Display panel driving device and display device |
US11545072B2 (en) | 2021-06-08 | 2023-01-03 | Huizhou China Star Optoelectronics Display Co., Ltd. | Driving device of display panel and display device |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1594341A (en) * | 1976-10-14 | 1981-07-30 | Micro Consultants Ltd | Picture information processing system for television |
GB2177567A (en) * | 1985-06-27 | 1987-01-21 | Ibm | Image conversion apparatus |
-
1988
- 1988-07-12 GB GB08816565A patent/GB2207029A/en not_active Withdrawn
- 1988-07-13 FR FR8809569A patent/FR2618236A1/en active Pending
- 1988-07-14 DE DE3823931A patent/DE3823931A1/en not_active Withdrawn
- 1988-07-14 JP JP63173842A patent/JPH0192796A/en active Pending
- 1988-07-14 KR KR1019880008765A patent/KR890002752A/en not_active Application Discontinuation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1594341A (en) * | 1976-10-14 | 1981-07-30 | Micro Consultants Ltd | Picture information processing system for television |
GB2177567A (en) * | 1985-06-27 | 1987-01-21 | Ibm | Image conversion apparatus |
EP0212131A2 (en) * | 1985-06-27 | 1987-03-04 | International Business Machines Corporation | Digital image conversion apparatus |
Non-Patent Citations (1)
Title |
---|
NOTE: GB A 2177567 AND EP 0212131 ARE EQUIVALENT; * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2229344A (en) * | 1988-10-07 | 1990-09-19 | Research Machines Ltd | Converter circuit for video adaptor of computer |
GB2229344B (en) * | 1988-10-07 | 1993-03-10 | Research Machines Ltd | Generation of raster scan video signals for an enhanced resolution monitor |
EP0423930A1 (en) * | 1989-09-01 | 1991-04-24 | Quantel Limited | Electronic graphic system using low resolution control image |
US5142616A (en) * | 1989-09-01 | 1992-08-25 | Quantel Limited | Electronic graphic system |
WO1992003815A1 (en) * | 1990-08-28 | 1992-03-05 | Avesco Plc | Video image formation |
EP0584941A1 (en) * | 1992-08-14 | 1994-03-02 | Crosfield Electronics Limited | Methods and apparatus for generating graphic patterns |
EP0772179A3 (en) * | 1995-10-31 | 1998-10-21 | Cirrus Logic, Inc. | Method and apparatus for determining chrominance components |
US5929837A (en) * | 1995-10-31 | 1999-07-27 | Cirrus Logic, Inc. | Method and apparatus for determining representative chrominance components |
US6642937B2 (en) | 1997-12-18 | 2003-11-04 | Thomson Licensing S.A. | Screen display system |
WO2010091750A1 (en) * | 2009-02-12 | 2010-08-19 | Zoran (France) | Scaling method and device for image signals |
US8588553B2 (en) | 2009-02-12 | 2013-11-19 | Zoran (France) S.A. | Scaling method and device for image signals |
CN113380191A (en) * | 2021-06-08 | 2021-09-10 | 惠州华星光电显示有限公司 | Display panel driving device and display device |
CN113380191B (en) * | 2021-06-08 | 2022-09-09 | 惠州华星光电显示有限公司 | Display panel driving device and display device |
US11545072B2 (en) | 2021-06-08 | 2023-01-03 | Huizhou China Star Optoelectronics Display Co., Ltd. | Driving device of display panel and display device |
Also Published As
Publication number | Publication date |
---|---|
DE3823931A1 (en) | 1989-01-26 |
FR2618236A1 (en) | 1989-01-20 |
GB8816565D0 (en) | 1988-08-17 |
JPH0192796A (en) | 1989-04-12 |
KR890002752A (en) | 1989-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4771279A (en) | Dual clock shift register | |
JP3484298B2 (en) | Video magnifier | |
US7499199B2 (en) | Image processing circuit, image display apparatus, and image processing method | |
KR101107979B1 (en) | Display system having improved multiple modes for displaying image data from multiple input source formats | |
US6222511B1 (en) | AC plasma gas discharge gray scale graphics, including color, and video display drive system | |
US6466224B1 (en) | Image data composition and display apparatus | |
JPH0846927A (en) | Generation of frame pixel data | |
US6556214B1 (en) | Multilevel image display method | |
CA2044558C (en) | Methods and apparatus for cymk-rgb ramdac | |
US4771275A (en) | Method and apparatus for assigning color values to bit map memory display locations | |
GB2207029A (en) | Computer system for converting a higher resolution image to a lower resolution image | |
US6836263B2 (en) | Display apparatus and method for displaying gradation levels | |
JP3492083B2 (en) | Image display device | |
US5444497A (en) | Apparatus and method of transferring video data of a moving picture | |
JPH05207277A (en) | Digital color matrix circuit | |
EP1176823A1 (en) | Image processing circuit | |
EP0929971B1 (en) | A graphical on-screen display system | |
JP3909882B2 (en) | Oscilloscope with video signal input | |
CA2372109C (en) | Apparatus and method for merging pixels | |
US5815143A (en) | Video picture display device and method for controlling video picture display | |
JP3251487B2 (en) | Image processing device | |
US7538807B2 (en) | Method and apparatus for in a multi-pixel pick-up element reducing a pixel-based resolution and/or effecting anti-aliasing through selectively combining selective primary pixel outputs to combined secondary pixel outputs | |
JP3344173B2 (en) | Multi-panel display | |
JP3288214B2 (en) | Gradation display control device | |
JP3440814B2 (en) | Video signal processing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WAP | Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1) |