GB2269291A - An image store controller - Google Patents

An image store controller Download PDF

Info

Publication number
GB2269291A
GB2269291A GB9215949A GB9215949A GB2269291A GB 2269291 A GB2269291 A GB 2269291A GB 9215949 A GB9215949 A GB 9215949A GB 9215949 A GB9215949 A GB 9215949A GB 2269291 A GB2269291 A GB 2269291A
Authority
GB
United Kingdom
Prior art keywords
image
store
data
controller
zone
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.)
Granted
Application number
GB9215949A
Other versions
GB9215949D0 (en
GB2269291B (en
Inventor
Anthony David Searby
Robin Alexander Cawley
Martin Stewart Ingram
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Quantel Ltd
Original Assignee
Quantel Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Quantel Ltd filed Critical Quantel Ltd
Priority to GB9215949A priority Critical patent/GB2269291B/en
Publication of GB9215949D0 publication Critical patent/GB9215949D0/en
Priority to EP93305893A priority patent/EP0581560A3/en
Priority to JP5185208A priority patent/JPH06266830A/en
Publication of GB2269291A publication Critical patent/GB2269291A/en
Application granted granted Critical
Publication of GB2269291B publication Critical patent/GB2269291B/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports

Description

AN IMAGE STORE CONTROLLER The invention relates to an image store
controller.
In the art of electronic image processing, image stores are used to store data representing an image to be processed. The data usually represents a plurality of individual picture elements which together make up the picture or image to be processed. In early image processing apparatus a store would be provided having sufficient storage locations to store picture element data for only one image. The store was constructed to have the same number of horizontal and vertical storage locations as there were horizontal and vertical picture elements in the image. The limited is number of storage locations available in early apparatus restricted the size of the image that could be stored therein.
As store technology has improved the cost of stores has fallen and at the same time the number of available storage locations has increased. Nowadays it is common practice to provide a store with a large number of storage locations for storing several images each represented by a relatively large number of picture elements.
Images to be processed are nearly always rectangles of one shape and size or another, and it is natural to consider the store to be rectangular and the respective areas within the store for each image 2 to be of the same rectangular f orm. as the image stored thereat. Thus, for example, an image defined by 1K x 2K picture elements would be stored in an area of 1K x 2K storage locations in the store with a direct correspondence between the positions of picture elements within the image and the respective positions of the corresponding storage locations at which the picture element data are stored in the store.
There is, however, a problem associated with the use of a large store to store several images, the problem being to optimise the way in which images are stored so that the maximum number of images are stored with the minimum amount of unused storage locations within the store. This problem will be appreciated from consideration of a simple example. Supposing a store comprises 3x3 storage locations and data representing an image of 2x2 image elements is to be stored therein. If the image data is stored in the store in the shape of the image then four adjacent storage locations will be used say the first two adjacent locations in the first row and the first two adjacent locations in the next row of the store. Five locations will be available for the storage of other data, namely the last location in each bf the first and second rows and all three locations in the third row. The available locations could be used to store data for say a 1x3 or 3xl element image, but cannot be 3 used to store data in the form of a second 2x2 image.
Another store would have to be used to store data for the second image. Thus, it will be appreciated that the constraint of storing image data in a store in the same form as the image tends to be wasteful of locations within the store.
Further discussion of this problem will be given with reference to Figure 1 of the accompanying drawings. In Figure 1 there is shown a store 1 in which there are stored several different images 2 to 8 of different size and rectangular shape. Store management programs are available which aim to store the images 2 to 8 in such a way as to reduce the number and size of unused areas of the store, such as areas 9, 10 and 11 created as a result of the dif f erence in the sizes of the images 2 to 8. For example, the management program might be conf igured such that in the f irst instant images are placed as near as possible to the top left hand corner of the store 1 (as represented in Figure 1). The program might be further configured such that when an image is removed from the store the remaining images are moved around within the store to occupy the vacated locations. Thus, for example, the removal of say image 4 from the store 1 might cause the program to move image 8 into the space previously occupied by image 7.
4 The problem of optimising storage locations is not one that can easily be solved. Where images of different shape and size are stored in a single store there will often be gaps, such as gap 9 in Figure 1, between image data-containing areas. The best utilization of store space for a given combination of different images can only be identified by first trying each and every possible combination of image positions within the store. There is no algorithm that will lead inevitably to the best solution though there are procedures, such as discussed herein above, available for providing a short cut to an optimum solution.
It is undesirable to spend a great deal of processing time in optimising the use of the store since that processing time could be more usefully spent in accessing the stored image data to produce the required processed images. A compromise between store size, store optimisation and processing time must therefore be reached in order to realise a store of acceptable cost, capacity and accessibility.
In one aspect the present invention resides in the realisation that this approach of defining the way in which image data is stored on the basis of the form of the image is a major cause of the abovementioned problems of image store optimisation.
In another aspect the invention resides in the realisation that since the image store is a random access, store picture elements may be stored at and retrieved from any desired locations within the store, then it is not necessary to store the data in an area of memory having the same form as the image.
According to one aspect of the invention therefore there is provided an image store controller for controlling the transfer of image data to and from a store, the controller comprising converting means for converting between plural blocks of image data each representing a two dimensional image and respective one dimensional data lists, the controller thereby enabling data defining a plurality of different shaped images to be stored as a substantially continuous one dimensional sequence of data lists in a store.
The invention also provides a store controller for controlling the transfer of image data to and from a store, the controller comprising a memory for holding control data identifying at least one image portion, a processor for calculating from said control data address values corresponding to addresses in the store at which data defining said at least one image portion are stored, and an interface responsive to 6 said address values f or addressing the store to enable data defining said image portion to be read theref rom.
According to another aspect of the invention there is provided an image store in which a plurality of arrays of data each defining two dimensional image is stored as a corresponding plurality of one dimensional data lists, the store comprising a controller for converting between said one dimensional lists and said two dimensional arrays during the transfer of data to and from the store.
In another aspect of the invention provides a circuit for controlling the transfer of data representing multiple image portions f rom an image data store for display of the portions at respective areas on a monitor, the circuit comprising means for identifying the data defining each of said image portions and means f or dividing the monitor into a plurality of vertical zones, with at least one of the vertical zones being divided into a plurality of horizontal zones, the horizontal and vertical zones together defining said areas in which respective ones of said multiple image portions are to be displayed.
The invention also provides a store controller for controlling the transfer of image data representing a plurality of image, at least some of which are shaped differently from others of said 7 images, to and from a store, the controller comprising a memory for holding control data identifying one as image portions of arbitrary size and shape, a processor for calculating from said control data -5 address values corresponding to addresses in the store at which data defining each of said one or more image portions are stored, and an interface responsive to said address values for addressing the store to enable data defining each of said image portions to be read therefrom.
The above and further features of the invention are set forth with particularity in the appended claims and together with advantages thereof will become clearer from consideration of the following detailed description of an exemplary embodiment of the invention given with reference to the accompanying drawings.
In the drawings:
Figure 1 shows the layout of an exemplary store as already discussed hereinabove; Figure 2 is a schematic diagram of an image processing system embodying the invention; Figure 3 shows a first exemplary display situation and the manner in which image data therefore is stored; Figure 4 shows a second exemplary display 8 situation and the manner in which data theref or is stored; Figure 5 shows a third exemplary display situation and the manner in which data theref or is stored; Figure 6 is a schematic diagram of a store controller embodying the invention; Figure 7 illustrates the manner in which data is stored within the store controller; and Figure 8 illustrates one sequence of operations performed by the store controller.
Turning now to Figure 2 of the accompanying drawings there is shown an image processing system 10 comprising a dynamic random access memory image store is 11 f or storing data relating to one or more images.
The store 11 is configured as a one dimensional array of storage locations each uniquely identified by a numerical address ranging f rom 0 (zero) to a maximum 2n-1, for example 2 32-1. Image data from the store 11 is read for display of the image via a multiplexer 12 on a monitor 13. The reading of the data f rom the store 11 is controlled by a zone controller 14 and associated control RAM 15. The zone controller 14 controls access to the store 11 by controlling the addressing of storage locations within the store. The zone controller 14 comprises several ports, for 9 example sixteen ports, each able to control access to selected storage location within the store 11 for the reading of data therefrom and thereto.
The system 10 also comprises independently controlled drawing processor 16, similar to that described in our British patent number 2,089,625, the teachings of which are incorporated herein by reference, and embodied in our PAINTBOX (Registered Trade Mark). The drawing processor 16 is thus responsive to user manipulations of a stylus/touch tablet device 17. The circuit 11 reads data from the store 11 at locations determined by the position of the stylus on the touch tablet, modifies the data in order to change an image characteristic, e.g. colour, in the portion of the image represented thereby, and writes the modified data back to the same locations replacing the data previously stored there. The read modif y-write circuitry accesses the store via selected ports in the zone controller 14.
The system may be required to display on the monitor 12 an image for several images represented by the data stored in the store 11. Typically, the monitor 13 will be capable of displaying images to a high definition television standard (HDTV), for example 1250 lines at 50Hz. An image to be displayed may be any size. It may for example be significantly smaller than the monitor screen, it may be represented by a number of picture elements identical to the number of display locations available on the monitor screen, or it may be significantly larger (e.g. 10,000 X 8,000 pixels) than the monitor screen. In other words the image may have a resolution which is less than, equal to, or greater than the resolution of the monitor screen.
It should thus be appreciated that several permutations of display are possible. For example, the whole image may be displayed at a reduced resolution over the whole or a portion of the monitor screen; a portion of the image may be displayed at full resolution over the whole or a portion of the monitor screen; or a portion of the image may be displayed at less then full resolution over the whole or a portion of the monitor. This list is far from exhaustive.
Turning now to Figures 3 (a) and (b) of the accompanying drawings data representing an image 18 of width W1 pixels and height H1 pixels is stored in raster scan order in the store 11 at a sequence of storage locations beginning at start address S1 and ending at address Sl+H1.W1-1. The zone controller 14 in Figure 1 generates addresses so that image data is scanned out of the store 11 in raster order for 11 display on the monitor 12. The simplest task required of the zone controller is to scan out the data for display of the whole image on the monitor 13. In this case the zone controller 14 will first address store location S1 and will then step through locations Sl+l, Sl+2, Sl+3 until it reaches location Sl+H1.W1-1 after which it will return to location S1 and repeat the scan.
Since the addressing of data is simply a matter of incrementing a counter by a fixed amount each time it is easy to reverse the addressing by incrementing the counter by a negative number. The ef fect of reversing the addressing in this way is to turn the image upsidedown when displayed on the monitor.
In the case where the image 18 is much larger, i.e. has a greater resolution, than the display screen of the monitor 13 then a cut-out image portion 19 of width XLEN and height YLEN pixels may be defined for display on the monitor 13. The cut-out 19 has a start address Sl' at which data corresponding to the pixel at the top left-hand corner of the cut-out is stored.
The data representing the last pixel in the first line in the cut-out is stored at address Sl'+XLEN-1. The data for the first pixel in the second line is stored at location S.W in the store 11. (It should be noted here that the address is not S.XLEN. This is because 12 it is the data for the whole image 18 that is stored in scan order and not the data- for the cut-out 19).
Thus, each line of the cut-out 19 starts at an address one full width of the whole image 18 away f rom the address of the start of the previous line in the cut out. All of the information necessary to perform the scan of the cut-out 19 is loaded into a memory within the zone controller as will be described in greater detail hereinafter.
It is often necessary to display multiple images simultaneously at respective portions of the monitor screen. For example, in our PAINTBOX (Registered Trade Mark) a pop-up palette or menu area can be selected by the user to facilitate painting and other operations available in the machine. When the palette is selected the image is displayed in the top 71aths of the-screen, and the bottom 'lath of the screen contains the palette. Thus, the two parts of the screen contain wholly unrelated images. The simultaneous display of an image portion 20 and a palette or menu 21 at respective portions of the monitor screen is illustrated in Figure 4(a) of the accompanying drawings.
In order to handle the display situation shown in Figure 4(a) the scan is divided into two Y-zones Y1 and Y2. Each Y-zone has its own start address S1,S2, 13 width W1,W2 and height H1,H2 and occupies its own sequence of addresses in the store 11 as illustrated in Figure 4(b) of the accompanying drawings. The width W of all Y-zones is the same and corresponds to -5 the width in pixels of the display screen of the monitor 13. The zone controller is arranged to process the Y-zones in order, starting with zone Y1 and going on to zone Y2. More than two Y-zones may be defined if required. Thus, as illustrated in Figure 4 the zone controller first scans the store from address S1 to address Sl+H1.W1-1 and then scans from address S2 to address S2+H2.W2-1.
Image data representing a picture will usually define the picture to a high resolution and thus the image will appear crisp and sharp when viewed. The same level of resolution is however not required for defining images representing menus, palettes, etc. and it therefore makes sense to define such images at low resolution in order to free storage space within the store 11 f or other uses. The zone controller is therefore arranged to be able to control the outputting of image data from the store such that the displayed image can be an enlarged version of the stored image, multiplied by a magnification factor M.
Each Y-zone has its own multiplication factor M and is arranged so that MxW f or each zone is equal to the 14 width of the display screen.
As will be come clearer from the description hereinafter, the zone controller 14 of Figure 2 is further arranged so that one or more Y-zones can be divided horizontally into a number of X-zones.
Referring now to Figure 5(a) of the accompanying drawings there is shown an exemplary display configuration in which the screen of the monitor 13 is divided vertically in to two Y-zones Y1 and Y2 which extend across the width of the screen and have respective heights of YLEN1 and YLEN2 display lines.
The first Y-zone Y1 is divided horizontally into three X-zones Xl, X2, X3 having respective widths of XLEN1, XLEN2, XLEN3 display points. The second Y-zone is f ormed as a single X-zone having a width of XLEN4 display points corresponding to the width of the screen. Therefore the display point at the top left hand corner of the f irst X-zone X1 is positioned at the top left-hand corner or origin (0,0) of the screen. The display point at the top left-hand corner of the second X-zone X2 is positions at screen co ordinate (O,XLEN1) and similarly the display point at the top left-hand corner of the third X-zone X3 is positioned at screen co-ordinate (O,XLEN1+XLEN2).
Likewise, the bottom right-hand corner of the fourth X-zone X4 is positioned at screen co-ordinate (YLEN1+YLEN2-1, XLEN4-1).
As shown in Figure 5 (b) of the - accompanying drawings each image or image portion is stored in the store as blocks of scan sequential data and the zone controller 14 controls the reading of the data from the memory for display of the pixels represent thereby in the correct order to achieve the required display arrangement. There may be a one-to-one relationship between the displaying of the image and the data representing the image or the displayed image may be an enlarged version of the stored data in which case each pixel and each line will be replicated Mn times where Mn is the zoom factor M for the image occupying the nth X-zone. Likewise, each displayed image may be the whole of the respective shared image, similar to the case described hereinabove, with reference to Figure 4, or it may be a portion of a larger image, similar to the case described hereinabove with reference to Figure 3.
Returning briefly to Figure 3, it should be appreciated that in order to display the cut-out image 19 within the larger image 18 as shown, a total of five zones 18a, 18b, 19, 18c and 18d must be created.
This is because an X-zone 18b, 18c is required on each side of the cut-out image 19, even though the two X zones 18b, 18c contain part of the same picture as 16 zones 18a and 18d, in order to divide the display correctly to enable the cut-out 19 to be inserted. It should be noted that the zoom values in zones 18b, 19 and 18c are the same because it is impractical to change the Y zoom in a line. Since zones 18b and 18c are part of the same picture as zones 18a and 18d and the picture must be continuous between all zones in which it is shown then the zoom f actor must be the same for all five zones 18a, 18b, 19, 18c, 18d.
Details of the zone controller 14 are shown in Figure 6 of the accompanying drawings. As will have been appreciated from the foregoing description by those skilled in the art, the zone controller generates addresses which are used to access storage locations in the store 11 such that a screen full of pixels distributed in the store is assembled for display on the monitor. Each address is calculated either by adding an of f set value to a base or start address Sn or by replacing the previous base address Sn with a new address Sn+1. Data defining the size of each zone and the location in the store 11 of respective images or image portions is stored in the control RAM 14 (see also Figure 2).
As has already been mentioned hereinabove, the zone controller 14 comprises a plurality of ports, e.g. sixteen ports, in parallel. The ports are 17 operable individually such that f or example control data can be transferred to one port whilst another port controls access to the store 11. In the presently preferred configuration four ports, namely ports zero, one, eight and nine are used exclusively as video ports through which image data is transferred for display of the desired image or combined images on the monitor 13. Two of the ports, say ports zero and one, are used for the display of odd-numbered display fields and the other two ports, say ports eight and nine, are used for the even-numbered f ields. This enables one port to be used f or example to control the reading of data for one scan cycle while the other is being loaded with control data to control the reading of data in the next scan cycle. Other ports are selected as required for example to control the transfer of data in read-modify-write operations, with one port being used in the reading of data and another port being used in the writing of modified data. In order to reduce costs, ports are paired so as to share some common hardware. This means that both ports in a pair cannot be used at the same time, but they can be used in double-buffering operations, e.g. port two controlling loading of data while port ten controls the writing of date to the store 11 and vice versa.
For the sake of clarity only the elements of one port 18 are shown in Figure 6.
The zone controller 14 comprises an internal zone RAM 21 in which are stored sets of data for each port.
The data sets contain all the information necessary to enable the above discussed and other display situations to be realised. The data sets are divided into separate blocks which in turn comprise plural data words which identify locations in the zone RAM 21 where other data words can be found and locations in the store 11 at which image data to be output to the monitor 13 is located.
During an initialising or set up procedure external circuitry (not shown) causes at least three data blocks, referred to herein as port block 22, Y zone block 23 and X-zone block 24 as shown in Figure 7, to be loaded into the zone RAM 21. The data in the zone RAM is then ready for use by the zone controller when a port is selected. There will be a Y-zone data block 23 for each Y-zone defined in the image and an X-zone data block 24 for each X-zone defined in the image. The port data block 22 comprises three fields of information 25-27. The first field 25 identifies the address in the zone RAM 21 at which the first Y zone data block is located and the length of that Y zone (YLEN1 in Figure 5). The second field 26 identifies the address in the zone RAM 21 at which the 19 current Y-zone data block is located and the length of the current Y-zone, and the third field 27 identifies the address in the zone RAM 21 at which the current X zone is located together with the length of the current X-zone (XLEN in Figure 5).
The Y-zone data block 23 only contains two data f ields 28, 29 because it serves merely as a pointer to the data block for the X-zone. The first field 28 of the Y-zone block 23 identifies the address in RAM 21 at which the first X-zone data block for that Y-zone is located, together with the length of the first X zone. The other field 29 identifies the address in the zone RAM 21 at which the next Y-zone data block is stored and the length of the next Y-zone.
As X-zone data block, e.g. block 24, contains all of the information needed to display an X-zone except for the zoom and scroll data which is defined separately. Thus the X-zone data block 24 contains one field 30 which points to the address in RAM 21 at which the next X-zone data block is held, together with data identifying its length. The second field 31 of the X-zone data block identifies the rate at which the address is to be incremented in order to move along the line of data. The third field 32 contains the current address, that is to say the storage location in the store 11 currently being addressed by the zone controller. The fourth field 33 contains the start address of the X-zone and the fifth and sixth fields 34, 35 respectively identify the length of each line in the picture to be displayed (XLEN in Figure 5) and the address in the store 11 at which the current line in the X-zone starts.
The zone RAM 21 has space for storing many separate port, X-zone and Y-zone data blocks for each of the ports provided in the zone controller. As shown in figure 6, the zone controller 14 comprises a port store 36 in which is stored, at the end of a port operation, data identifying the tasks to be performed by the port next time it is requested. When a port is requested the port store 36 transfers its data to a control sequencer which responds to the instruction data thereby causing the zone controller to execute the 'required task. The control sequencer 37 is a microcontroller comprising a small microcode RAM (not shown) in which commands relating to different instruction sequences are stored. The instruction sequence executed by the control sequencer is selected depending on the length values in the various fields of the data blocks 22, 23, 24 discussed hereinabove with respect to Figure 7 of the accompanying drawings.
In order to be able to control all of the tasks that may be required of the zone controller 14 the 21 control sequencer 37 is arranged to be able to control the execution of eight different instructions by the zone controller. By way of example, one of the eight instructions executable by the zone controller is represented by a sequence of data transfers in Figure 8 of the accompanying drawings.
Turning now to Figure 8, one instruction that can be executed by the zone controller under the control of the sequencer is an initialising sequence data to the correct locations in the zone RAM 21 for subsequent tasks. The first operation 38 performed in this initialising or start sequence is to cause a processor 39 (see Figure 6) to read the data identifying the address of the first Y-zone data block 23 from field 325 of the port block 22. In step 40 the processor reads the data identifying the address of the first X-zone data block 24 from field 28 of the
Y-zone block 23. Once the data from field 28 has been read to the processor 39 the XLEN value in field 28 in the zone RAM is decremented in readiness for the next time that field is accessed by the processor 39. The
YLEN value in field 33 is also decremented in readiness for the next time that field is accessed.
In step 41 the data read from the field 25 is written into the second field 26 so that the current Y-zone is identified as the first Y-zone. Next, as represented 22 by step 42, the start address in f ield 33 of the Y zone data block 24 is read into the processor 38. The start address is written to each of fields 32 and 35 in steps 43a and 44 so that the current X address value in the port block 22 and the current address and the address in the X-zone block 24 are all set to the start address value of the first X block. The operation in step 43a of writing to the current address field 32 also causes the processor 39 to output the current address value to a store interface (see Figure 6).
The store interface 45 is connected to the store 11 and provides addresses to enable image data to be read from addressed locations to the multiplexer 12 for modification by the drawing processor 16 or for display of the image represented thereby on the monitor 13.
Thus, the start sequence represented by Figure 8 initialises the data structures in the zone RAM at the start of a new display or drawing cycle. The start sequence only affects data relating to the first X and firstY-zones. Where there are other X and/or Y zones the data for the or each other zone is initialised by a different sequence to be described in greater detail hereinafter.
It will be appreciated that the other operations 23 that can be executed by the zone controller 14 are controlled by similar microprogramme controlled data transfers to and from the zone RAM 21. The construction of such microprogramme controlled sequences are well within the ability of those possessed of the appropriate skills and accordingly the remaining operations performable by the zone controller will not be described herein in such great detail.
In addition to the above discussed start sequence, the microsequencer is configured to be able to cause the zone controller to generate a series of image store addresses to as to travel along a line of image points in a single X-zone. In other words, the is microsequencer causes the zone controller to add the value XINC (field 31 in X-zone block 24) to the address output to the image store and at the same time decrements the X-length value (field 27) to enable the end of the X-zone to be detected when the value reaches zero. During this operation the XLEN value once read f rom the zone RAM 21 is output from the processor 39 to a zero detect circuit 45 (see Figure 6). If the zero detect circuit 45 detects an XLEN value of zero this means that at least the end of a line in an X-zone has been reached.
The zero detect circuit 45 also receives data 24 relating to the YLEN (f ield 26 of port block 22) together with indications as to whether or not the current X and Y-zones are the last X and Y-zones. The zero detect circuit 45 passes the data it receives to an instruction calculator circuit 46 which analyses the data to determine which sequence should be executed next time by the zone controller.
If the XLEN value is zero and the current X-zone is not the last X-zone in the current Y-zone then here is another X-zone to be addressed and the instruction calculator 46 causes the port store 36 to load the control sequencer 37 with microcode so that a sequence for a new X-zone is executed by the zone controller.
The new X-zone sequence is arranged to look at the next X-zone pointer (field 30 in X-zone block 24) and set that value as the current X-zone value. It also adds the value LineInc (field 34) to the X-zone current address (field 27) so that the current address is incremented by one lines worth of storage locations in the store 11. Thereafter, the above discussed X step sequence is executed by the zone controller under the control of the control sequencer 37.
Where the address to be generated by the zone controller corresponds to the start of the first line of a new X-zone in a new Y-zone the above discussed new X-zone sequence is not used. Instead, an X-zone initialising sequence is executed which, instead of adding the value of LineInc to the current address, copies of the start address from the X-zone data block (field 33) into the current address field 32 ready for use in the above discussed X step sequence.
From time to time the length data in Fields 26 and 27 is decremented. The XLEN is decremented with each step along a line and the YLEN is decremented with each line step. Thus, the length data provides an indication of the length remaining in the current X or Y-zone.
When the value of XLEN reaches zero in the previous cycle and the current X-zone is the last X zone in the current line, this means that the end of the line has been reached. The zero detect circuit 45 and the instruction calculator 46 together detect this condition and cause the port store 36 to transfer to the control sequencer 37 microcode for generating addresses for the next line. The next-line control sequence identifies the first X-zone of the current Y zone (from field 23) and then updates the value of the line address in field 35 from the address of the start of the previous line to the address of the start of the current line by adding to it the value LineInc from field 34.
When, in addition to the XLEN value of X length 26 being zero and the current X-zone being the last X zone, the value of YLEN is also zero, then the end of the current Y-zone has been reached. The zero detect circuit 45 and instruction calculator 46 respond by causing the port store 36 to load the control sequencer with microcode for setting up the zone controller for a new Y-zone. The new Y-zone sequence identifies the next Y-zone by reading field 29 in Y zone data block 23 and writing this data to field 25 of block 22. The next-Y data points to a new Y-zone data block 23' which contains a first X field that points to the start address of the data block 24' of the line first X-zone in the new Y-zone. Thus, the new Y-zone sequence identifies the new Y-zone and its first X-zone and sets these up as the current Y and X zones. The sequence also initialises data for the first X-zone by copying the start address in field 33 to the current X address field 27 and initialises the data for all X-zones in the Y-zone in a similar manner as the store addresses progress along this display line.
In the event that the values of XLEN and YLEN are both zero, the current X-zone is the last X-zone and the current Y-zone is the last Y-zone then the end of a display scan has been reached. At this time the zone controller does not know whether the same port or 27 another port will be requested next time round and so an end sequence is executed which saves the contents of the current Y and current X f ields 26, 27 and places the port in a standby condition until such time as the port is again requested, f orcing the start sequence to be run.
There is one further sequence controlled by the control sequencer, namely, a line repeat sequence which is executed during a zoom operation. The zone controller comprises a zoom calculator 47 which calculates when to repeat a line f or a pixel-replicate vertical zoom by causing lines of addresses to be repeated. The zoom calculator 47 also calculates for a horizontal zoom and the current ZLEN is decremented whether new pixel data is needed or whether the previous pixel data is to be used again. If new pixel data is required the current X address is recalculated.
The repeat-line sequence executed by the sequencer 37 overrides the next-line sequence which would otherwise be run. When the end of a line is reached the instruction calculator 46 decides that the next sequence to be performed should be the next-line sequence and causes the port store to pass the appropriate microcode to the sequencer. If, however, the zoom calculator 47 decides that the previous line 28 should be repeated then the microcode selected by the instruction calculator is replaced by microcode defining the repeat-line sequence. The effect of the repeat-line sequence is to get the previous start of line value (field 35) from the zone RAM 21 and make that the current address (field 32), and to decrement the current YLEN value in field 26.
The zone controller 14 co-operates with the multiplexer 12 in order to achieve horizontal pixel replication zoom by sending horizontal scroll from the control ramp to he multiplexer. The multiplexer 12 contains an accumulator (not shown) comprising a register which is loaded with a scroll value at the beginning of a line. The accumulator repeatedly adds a zoom value to the register and depending on the result decides whether or not the same pixel should be displayed more than once. Zoom calculations are carried out in the processor 39 at the beginning of a control sequence while the first values are being read from the zone RAM because during this period the processor is not occupied with zone calculations and therefore is free to be used for zoom calculations.
An X-zoom is processed at the beginning of an X step instruction sequence, and a Y zoom is processed at the beginning of a next-line instruction sequence with the next line sequence being replaced by a repeat-line 29 sequence if appropriate.
When a read-modify-write - operation is to be performed by the drawing processor 16, the zone controller 14 causes the processor to generate a patch of address values from the instantaneous position of the stylus on the touch tablet 17. Also data from the control RAM is sent to the multiplexer 12 to tell it when to start and stop reading and writing. None of the control data is latched in the zone controller.
Having thus described the present invention by reference to a preferred embodiment it is to be well understood that the embodiment in question is exemplary only and that modifications and variations such as will occur to those possessed of appropriate is knowledge and skills may be made without departure f rom the spirit and scope of the invention as set forth in the appended claims and equivalents thereof.

Claims (30)

CLAIMS:
1. An image store controller for controlling the transfer of image data to and from a store, the controller comprising converting means f or converting between plural blocks of image data each representing a two dimensional image and respective one dimensional data lists, the controller thereby enabling data defining a plurality of differently shaped images to be stored as a substantially continuous one dimensional sequence of data lists in a store.
2. A controller as claimed in Claim 1, wherein said converting means is arranged to define store locations f or storing data in said data lists as a one dimensional array of address values, the controller further comprising identifying means for identifying an image portion in at least one of said images; calculating means responsive to said identifying means for calculating image store addresses; and addressing means f or applying the calculated addresses to the image store to enable data corresponding to the image portion to be read therefrom.
3. A controller as claimed in Claim 2. wherein the identifying means identifies each image portion as a 31 start address value.
4. A controller as claimed in Claim 3, wherein the identifying means identifies each image portion in terms of a horizontal line length value and a vertical height value.
5. A controller as claimed in Claim 3 or 4, wherein the calculating means is arranged to calculate each image store address as an offset from said start address value.
6. A controller as claimed in Claim 4 or 5, wherein as each image store address is calculated the horizontal line length value is decremented so as to have a value of zero at the end of each line, the calculating means comprising a detecting means responsive to a zero value 15 for detecting the end of each line and resetting the line length value to enable store addresses in the next line to be calculated.
7. A controller as claimed in claim 6, wherein the identifying means is arranged to identify more than one 20 image portion, with each image portion being identified in terms of a respective start address value, horizontal line length value and vertical height value.
32
8. A controller as claimed in Claim 6 or 7, wherein the or each image portion is associated with a respective zone.
9. A controller as claimed in Claim 8, wherein each zone is defined in terms of a vertical height which can be common to more than one image portion and a horizontal width assigned separately to each image portion.
10. A controller as claimed in any preceding claim, further comprising zoom calculating means, the calculating means being responsive to said zoom calculating means for calculating addresses so as to enable data representing a magnified version of the image portion to be read from the image store.
11. An image store in which a plurality of arrays of data each defining a two dimensional image is stored as a corresponding plurality of one dimensional data lists, the store comprising a controller for converting between said one dimensional lists and said two dimensional arrays during the transfer of data to and from the store.
12. An image store as claimed in Claim 11, wherein each 33 said two dimensional image is defined as a plurality of image lines and wherein the controller is arranged to define the start of the first of said image lines as a start address within said store.
13. An image store as claimed in Claim 12, wherein for each image the start of each subsequent image line is defined in terms of a respective off set value with respect to said start address.
14. An image store as claimed in any of Claims 11 to 10 13, wherein the controller is arranged selectively to address data portions within each one dimensional data list in order to create a data list defining a combined image comprising selected portions of at least some of said plurality of two dimensional images.
15 15. An image store as claimed in any of Claims 11 to 14, wherein the controller is arranged to generate repeatedly addresses so as to enable data representing a magnified version of the or a two dimensional image to be read from the store. 20
16. A circuit for controlling the transfer of data representing multiple image portions from an image data store for display of the portions at respective areas on 34 a monitor, the circuit comprising means for identifying the data defining each of said image portions and means for dividing the monitor into a plurality of vertical zones, with at least one of the vertical zones being divided into a plurality of horizontal zones, the horizontal and vertical zones together defining said areas in which respective ones of said multiple image portions are to be displayed.
17. A circuit as claimed in Claim 16 wherein the data identifying means is arranged to identify data for each image portion as a start address in the store together with data length information.
18. A circuit as claimed in claim 17, wherein said data length information defines the length of a sequence of is data corresponding to the horizontal dimension of the respective horizontal zone.
19. A circuit as claimed in claim 18, wherein said data length information further defines the vertical dimension of each vertical zone.
20. A circuit as claimed in any of claims 16 to 19, further comprising means for defining a magnification factor for at least one image portion and means responsive thereto f or repeatedly reading image data from said store for display of a magnified version of said image portion in its respective area on the monitor.
21. A store controller for controlling the transfer of image data representing a plurality of images, at least some of which are shaped differently from others of said images, to and from a store, the controller comprising a memory for holding control data identifying one or 10 more image portions of arbitrary size and shape, a processor for calculating from said control data address values corresponding to addresses in the store at which data defining each of said one or more image portions are stored, and an interface responsive to said address 15 values for addressing the store to enable data defining each of said image portions to be read therefrom.
22. A store controller as claimed in Claim 21, further comprising a control sequencer for controlling the sequence of operations performed by said processor in 20 co-operation with said memory and said interface.
23. A store controller as claimed in Claim 22- wherein 17 the image data is output for display on a monitor, the 36 processor being responsive to data in the memory that defines plural areas on the monitor as a plurality of vertical zones each having at least one associated horizontal zone with at least one of the vertical zones being divided into a plurality of horizontal zones, the horizontal and vertical zones together defining areas in which respective image portions are to be displayed.
24. A store controller as claimed in Claim 23, wherein each image portion comprises a plurality of image lines and data representing each image line is stored as a respective data list in said store.
25. A store controller as claimed in Claim 24, wherein the processor is arranged to provide an indication when an address value corresponding to the end of a line, the is end of a horizontal zone or a vertical zone has been calculated, the controller comprising means responsive to said indications for determining the next calculation to be performed by said processor.
26. A store controller as claimed in Claim 25, wherein said determining means comprises an instruction calculator, a control sequencer and an instruction store for storing data defining sequences of operations controlled by the control sequencer, the instruction 37 calculation being responsive to said indications to select and transfer data from said instruction store to said sequencer.
27. A store controller as claimed in any of Claims 21 to 26, wherein a plurality of ports are defined, each port comprising at least a memory and a processor to enable each port to calculate address values for the reading of data from the store for use in independent operations.
28. A store controller as claimed in Claim 27, wherein said independent operations include reading said data for display of the image portion represented thereby and reading said data for modification.
29. A store controller substantially as herein described with reference to Figures 2 to 8 of the accompanying drawings.
30. An image store substantially as described herein with reference to Figures 2 to 8 of the accompanying drawings.
GB9215949A 1992-07-27 1992-07-27 An electronic image processing system and method Expired - Fee Related GB2269291B (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
GB9215949A GB2269291B (en) 1992-07-27 1992-07-27 An electronic image processing system and method
EP93305893A EP0581560A3 (en) 1992-07-27 1993-07-26 An electronic image processing system.
JP5185208A JPH06266830A (en) 1992-07-27 1993-07-27 Electronic image processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB9215949A GB2269291B (en) 1992-07-27 1992-07-27 An electronic image processing system and method

Publications (3)

Publication Number Publication Date
GB9215949D0 GB9215949D0 (en) 1992-09-09
GB2269291A true GB2269291A (en) 1994-02-02
GB2269291B GB2269291B (en) 1996-04-24

Family

ID=10719378

Family Applications (1)

Application Number Title Priority Date Filing Date
GB9215949A Expired - Fee Related GB2269291B (en) 1992-07-27 1992-07-27 An electronic image processing system and method

Country Status (3)

Country Link
EP (1) EP0581560A3 (en)
JP (1) JPH06266830A (en)
GB (1) GB2269291B (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2063005A (en) * 1979-10-12 1981-05-28 Dainippon Screen Mfg A method and apparatus for laying out picture images reproduced from original pictures
GB2129648A (en) * 1982-11-01 1984-05-16 Dainippon Screen Mfg Recording images
GB2130857A (en) * 1982-11-02 1984-06-06 Cadtrak Corp Graphics display system with viewports of arbitrary location and content
GB2155272A (en) * 1984-02-13 1985-09-18 Dainippon Screen Mfg Method of, and apparatus for, allocating recording areas on photosensitive film
GB2172767A (en) * 1985-01-31 1986-09-24 Canon Kk Compression and expansion of image signals
GB2174277A (en) * 1985-04-26 1986-10-29 Ibm Method and system for displaying multiple images on a display screen
GB2179227A (en) * 1985-08-01 1987-02-25 Cadtrak Corp Graphics display system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4780709A (en) * 1986-02-10 1988-10-25 Intel Corporation Display processor
US4947257A (en) * 1988-10-04 1990-08-07 Bell Communications Research, Inc. Raster assembly processor

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2063005A (en) * 1979-10-12 1981-05-28 Dainippon Screen Mfg A method and apparatus for laying out picture images reproduced from original pictures
GB2129648A (en) * 1982-11-01 1984-05-16 Dainippon Screen Mfg Recording images
GB2130857A (en) * 1982-11-02 1984-06-06 Cadtrak Corp Graphics display system with viewports of arbitrary location and content
GB2155272A (en) * 1984-02-13 1985-09-18 Dainippon Screen Mfg Method of, and apparatus for, allocating recording areas on photosensitive film
GB2172767A (en) * 1985-01-31 1986-09-24 Canon Kk Compression and expansion of image signals
GB2174277A (en) * 1985-04-26 1986-10-29 Ibm Method and system for displaying multiple images on a display screen
GB2179227A (en) * 1985-08-01 1987-02-25 Cadtrak Corp Graphics display system

Also Published As

Publication number Publication date
EP0581560A3 (en) 1995-02-15
GB9215949D0 (en) 1992-09-09
EP0581560A2 (en) 1994-02-02
GB2269291B (en) 1996-04-24
JPH06266830A (en) 1994-09-22

Similar Documents

Publication Publication Date Title
US5291582A (en) Apparatus for performing direct memory access with stride
JP2796329B2 (en) Display memory and image processing apparatus having the same
KR0167116B1 (en) Equipment and method for provision of frame buffer memory for output display of computer
EP0133903B1 (en) Display control method and display control apparatus
US4225861A (en) Method and means for texture display in raster scanned color graphic
US4670752A (en) Hard-wired circuit for handling screen windows
EP0675479A1 (en) Frame buffer address generator for the multiple format display of multiple format source video
JPH0345838B2 (en)
EP1977372B1 (en) Method and apparatus for scaling down a bayer domain image
CA1220293A (en) Raster scan digital display system
US5020003A (en) Graphics controller image creation
EP0279225A2 (en) Reconfigurable counters for addressing in graphics display systems
US6075545A (en) Methods and apparatus for storing, accessing and processing images through the use of row and column pointers
GB2269291A (en) An image store controller
EP0589724B1 (en) An electronic image processing system and method
EP2024928A1 (en) Programmable data processing circuit
US6046753A (en) Electronic image processing system for modifying initial image data
KR960003072B1 (en) Font data processing apparatus
JPH087565B2 (en) Image display device
JP3379723B2 (en) Display screen superimposition control device
JPS6232491A (en) Crt display unit
EP0431754A2 (en) Color translation circuit
JPH0334078B2 (en)
JP2000354200A (en) Image processor, image processing method, and computer- readable information recording medium recording image processing program
JPH04350895A (en) Image display device

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee

Effective date: 19980727