Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
GB2160685A - Data reorganisation apparatus - Google Patents
[go: Go Back, main page]

GB2160685A - Data reorganisation apparatus - Google Patents

Data reorganisation apparatus Download PDF

Info

Publication number
GB2160685A
GB2160685A GB08512816A GB8512816A GB2160685A GB 2160685 A GB2160685 A GB 2160685A GB 08512816 A GB08512816 A GB 08512816A GB 8512816 A GB8512816 A GB 8512816A GB 2160685 A GB2160685 A GB 2160685A
Authority
GB
United Kingdom
Prior art keywords
bits
buffer
bit
data
read
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
GB08512816A
Other versions
GB2160685B (en
GB8512816D0 (en
Inventor
Eric Baddiley
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.)
Fujitsu Services Ltd
Original Assignee
Fujitsu Services 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
Priority claimed from GB848414109A external-priority patent/GB8414109D0/en
Application filed by Fujitsu Services Ltd filed Critical Fujitsu Services Ltd
Priority to GB08512816A priority Critical patent/GB2160685B/en
Publication of GB8512816D0 publication Critical patent/GB8512816D0/en
Publication of GB2160685A publication Critical patent/GB2160685A/en
Application granted granted Critical
Publication of GB2160685B publication Critical patent/GB2160685B/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • G06F7/785Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using a RAM
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G1/00Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data
    • G09G1/06Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data using single beam tubes, e.g. three-dimensional or perspective representation, rotation or translation of display pattern, hidden lines, shadows
    • G09G1/14Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data using single beam tubes, e.g. three-dimensional or perspective representation, rotation or translation of display pattern, hidden lines, shadows the beam tracing a pattern independent of the information to be displayed, this latter determining the parts of the pattern rendered respectively visible and invisible
    • G09G1/16Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data using single beam tubes, e.g. three-dimensional or perspective representation, rotation or translation of display pattern, hidden lines, shadows the beam tracing a pattern independent of the information to be displayed, this latter determining the parts of the pattern rendered respectively visible and invisible the pattern of rectangular co-ordinates extending over the whole area of the screen, i.e. television type raster
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G1/00Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data
    • G09G1/06Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data using single beam tubes, e.g. three-dimensional or perspective representation, rotation or translation of display pattern, hidden lines, shadows
    • G09G1/14Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data using single beam tubes, e.g. three-dimensional or perspective representation, rotation or translation of display pattern, hidden lines, shadows the beam tracing a pattern independent of the information to be displayed, this latter determining the parts of the pattern rendered respectively visible and invisible
    • G09G1/16Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data using single beam tubes, e.g. three-dimensional or perspective representation, rotation or translation of display pattern, hidden lines, shadows the beam tracing a pattern independent of the information to be displayed, this latter determining the parts of the pattern rendered respectively visible and invisible the pattern of rectangular co-ordinates extending over the whole area of the screen, i.e. television type raster
    • G09G1/165Details of a display terminal using a CRT, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G1/167Details of the interface to the display terminal specific for a CRT
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/2007Display of intermediate tones
    • G09G3/2018Display of intermediate tones by time modulation using two or more time intervals
    • G09G3/2022Display of intermediate tones by time modulation using two or more time intervals using sub-frames
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Input (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

Data reorganisation apparatus comprises a double buffer arrangement (20,21) in which data is written into each buffer by rows and is read out by columns. The inputs and outputs of the buffers are time-division multiplexed, which reduces the required width of each buffer by the product of the input and output multiplexing factors. The apparatus can be used for corner turning of image data e.g. receiving data in sub-frame order and reorganising it into scan-line order for display. <IMAGE>

Description

SPECIFICATION Data re-organisation apparatus This invention relates to data re-organisation apparatus.
The invention is particularly although not exclusively concerned with re-organisation of image data. When processing image data, it is often convenient to divide each image frame into a number of sub-frames of a size more conveninent for processing. However, in order to display the data, it is necessary to output the data as a sequence of scan lines. This involves reorganising the data, since each sub-frame contains portions of a number of different scan lines and, conversely, each line is divided amoung a number of different sub-frames.
This data re-organisation operation, for converting between the sub-frame order and the scan line order, is sometimes referred to as corner turning since, as will be shown, it is equivalent to writing the data into a three-dimensional address space as a first set of parallel planes and then reading it from the address space as a second set of parallel planes at right angles to the first set.
This corner-turning may be performed using a buffer store having a width equal to the product of the sizes of the input and output data words. (By the width of a store is meant the number of bit positions which can be accessed in parallel for reading or writing). For example, if the input and output data are both in the form of 32-bit words, then the corner-turning buffer would have a width equal to 32 X 32 = 1024 (1 K) bit positions. These 1 K bit positions are logically organised as a 32 X 32 array. Input data words are written into the rows of the array, and output data words are read out of the columns, to achieve the desired corner-turning.
However, this method of corner-turning requires a very wide buffer store, which in turn requires a large number of memory components. For example, if 4-bit-wide RAM components are used, a total of 256 such components are required to provide a 1 K-bit wide store.
The object of the present invention is to alleviate this problem so as to reduce the required number of memory components.
Summary of the invention According to the invention there is provided data reorganisation apparatus comprising: (a) a buffer store having a width equal to p x q bit positions, these positions being logically arranged in rows and columns with p bits per row and q bits per column, (b) multiplexing means for receiving a succession of input data words each of n x p bits and converting these into a succession of p-bit groups at n times the clock rate of the input words, (c) input means for writing each p-bit group into a selected row of bit positions in the buffer store, (d) output means for reading a succession of q-bit groups from selected columns of bit positions in the buffer store, and (e) demultiplexing means for assembling the q-bit groups read from the buffer store into m x q-bit words at one mth the clock rate of the q-bit groups, wherein p,q,n and m are all integers greater than one.
It can be seen that the apparatus in accordance with the invention handles input and output words of n x p and m x q bits respectively, using a buffer store which is only p x q bits wide. In comparison, the basic corner-turning arrangement described above would require a buffer store of width n x p x m x q. In other words, the invention reduces the required width of the buffer by a factor of n x m, with a corresponding saving in the number of components.
This saving is achieved by increasing the clock rate at which the buffer operates relative to the input and output clock rates: the buffer must operate n times faster than the input data when writing to the buffer, and m times faster than the output data when reading. However, this is in general a favourable trade-off since the speed of the buffer increases only linearly with n (or m) whereas the width of the buffer decreases as the product n x m.
For example, in a particular embodiment of the invention to be described below, the apparatus handles input and output data words of 32 bits, using a buffer store 64 bits wide; that is, p = q = 8 and n = m = 4. In this case, the width of the buffer store is reduced by a factor of 16 compared with the basic arrangement described above, whereas the speed of the buffer is increased by a factor of four.
One data re-organisation apparatus in accordance with the invention will now be described by way of example with reference to the accompanying drawings.
Brief description of the drawings Figure 1 is a block diagram of apparatus for processing image data, including a data reorganisation unit in accordance with the invention.
Figures 2, 3 and 4 show the data re-organisation unit in detail.
Figure 5 is a schematic diagram showing the logical address space of the data re-organisation unit.
Figure 6 illustrates a modification of part of the re-organisation unit.
Description of an embodiment of the invention Fig. 1 shows apparatus for processing image data. The apparatus includes an array processor 10, consisting of 1024 processing elements (PE) connected together in rows and columns to form a 32 x 32 array. All the processing elements are operable in parallel, under control of a single stream of control signals from a common control unit (not shown). Each processing element contains a single-bit arithmetic and logic unit, and has a 16K X 1 bit memory. The memories in the array processor form a three-dimensional store, having 16K individually addressable planes, each plane consiting of an array of 32 X 32 bits, one in each PE. Any selected plane can be read out, over a 32-bit highway 11.
Details of the array processor 10 form no part of the present invention and so will not be described further. The array processor 10 may, for example, be similar to that described in U.S.
Patent No. 3, 979,728.
Input data for the array processor 10 can be supplied by a video input device 12, such as a camera, and output data from the array processor can be fed to a video display device 13.
The video input and output devices handle the image data in the form of a series of video frames. Each frame consists of 1024 horizontal scan lines, each line containing 1024 picture elements (pixels). Each pixel may be encoded as a single bit (for black-and-white images) or as a plurality of bits (for grey-scale or colour images). For simplicity, only the black-and-white case will be considered here; it will be appreciated by those skilled in the art that the invention is equally applicable to the processing of grey-scale or colour images.
For the purpose of processing, each frame is divided into a plurality of sub-frames, each of which consists of an array of 32 x 32 pixels. Each of those sub-frames can therefore be mapped directly on to the 32 X 32 array of processing elements PE, with one pixel per processing element. Successive sub-frames are stored in successive memory planes in the array processor, allowing it to operate on any part of the image as required.
Input data from the video input device 12 to the array processor 10, and output data from the processor to the video display device 13, pass through a data re-organisation unit 14. This re-organises the data as will be described so as to convert it between the scan-line format required by the video devices, and the sub-frame format required by the array processor.
Data re-organisation unit Referring to Fig. 2, this shows the data re-organisation unit 14 in detail.
The unit comprises two buffer stores 20,21 which are used alternately for reading and writing, so as to provide a double buffer arrangement. The buffers are controlled by a selection signal SEL so that when SEL = 1, buffer 20 is selected for writing and buffer 21 for reading, and when SEL = 0, buffer 20 is used for reading and buffer 21 for writing.
Each buffer 20,21 consists of sixteen random-access memory (RAM) components 22. Each RAM 22 contains 512 individually addressable locations and has four bit positions, i.e. each location contains four bits which can be written or read in parallel. In other words, each RAM is four bits wide, and therefore each buffer 20,21 has an overall width of 16 x 4 = 64 bit positions. These 64 bit positions are logically organised as shown as square array having eight rows and eight columns. All the RAMs in the buffer 20 are addressed in parallel by a nine-bit address AO-A8 which selects one of the 512 locations in each RAM. Similarly, the buffer 21 is addressed by a nine-bit address A'0-A'8.
The data re-organisation unit 14 receives input data words on a 32-bit wide path 23, from either the array processor 10 or the video input device 12. These words are multiplexed down to an 8-bit wide path 24, by means of a multiplexing switch 25. The path 24 therefore carries a stream of eight-bit bytes at a clock rate four times that of the input data words. This path is connected in parallel to both buffers 20,21.
Buffer 20 has a decoder 26 which is enabled when SEL = 1, i.e. when this buffer is selected for writing. Similarly, buffer 21 has a decoder 27 which is enabled when SEL = 0. The currently enabled decoder 26 or 27 decodes three control bits WO, W1, W2 to produce a write enable signal which selects one row of bit positions in the associated buffer (e.g. the row indicated by X---X in Fig. 2). This causes the input data byte on path 24 to be written into the selected row.
Referring now to Fig. 3, reading from the buffers 20,21 is controlled by three bits SO,S1,S2.
Bit S2 is decoded along with the selection signal SEL in a decoder 30 to produce one of four output enable signals OE1-OE4 as follows: SEL S2 Output 0 1 OEl 0 1 OE2 1 0 OE3 1 1 OE4 The signals OEl and OE2 are connected to the output enable terminals of the two columns of RAMs in buffer 20, and the signals OE3 and OE4 are connected to the output enable terminals of the two columns of RAMs in buffer 21. The data outputs of the RAMs are connected to eight 4:1 switches 31, controlled by the bits SO,S1. These switches select one bit position from each RAM.
Thus, it can be seen that SEL selects one of the buffers 20,21 for reading, S2 selects one column of RAMs within that buffer, and SO, S1 select one column of bit positions (such as that represented by X---X in Fig. 3) from the selected column of RAMs. The bits are read out on an 8-bit output path 32.
The path 32 is connected in parallel to the data inputs of four 8-bit registers 33. These registers are clocked in turn by signals from a decoder 34, so as to assemble each group of four successive bytes into a 32-bit word. In other words, the registers 33 demultiplex the data, converting it from a succession of 8-bit bytes into 32-bit words at one quarter of the clock rate of the bytes. The output of the registers 33 is fed either to the video display 13 or to the array processor 10.
Referring now to Fig. 4, the buffers 20,21 are controlled by two 12-bit counters 40,41. The bits of each counter are numbered 0-11 where bit 0 is the least significant bit.
Bits 2,3,4,5,6,0.1,10,11 of counter 40 supply a write address WAO-WA8, while bits 7,8,9 supply the control signals WO,W1,W2. Similarly, bits 2,3,4,5,6,10,11,0,1 of counter 41 supply a read address RAO-RA8, while bits 7,8,9 supply the control signals SO,S1,S2.
The read and write addresses are connected to the inputs of a switching circuit 42, which is controlled by the signals SEL. When SEL = 1, the switching circuit takes the positions as shown, so that the address AO-A8 for buffer 20 is supplied by the write address WAO-WA8 while the address A'O-A'8 for buffer 21 is supplied by the read address RAO-RA8. When SEL = 0 the circuit 42 is switched over so that these connections are reversed.
Bits WA5,WA6 also provide the control for the multiplexing switch 25 (Fig. 2) and bits RA7,RA8 provide the control for the demultiplexing registers 33 by way of decoder 34 (Fig. 3).
The counter 40 is incremented by a clock signal C.IN which has a frequency equal to four times the input data word rate. Similarly, the counter 41 is incremented by a clock signal C.0UT at a frequency four times the desired output data word rate.
When the counter 40 reaches its maximum count value (all ones) it stops and produces a signal FULL which indicates that the buffer which is currently being used for writing is now full.
Similarly, when the counter 41 reaches its maximum count value, it stops and produces a signal EMPTY which indicates that the buffer which is currently being used for reading is now empty.
When both these signals are true, an AND gate 43 is enabled, and this switches a bistable circuit 44 into its opposite state so as to complement the value of SEL. This reverses the roles of the two buffers so that the buffer which has just been written to is now selected of reading the vice versa.
The AND gate 43 also produces a LOAD signal which causes preset values from two five-bit registers 45,46 to be loaded into bits 7-11 of the respective counters 40,41, the remaining bits 0-6 being reset to zero. These preset values allow the re-organisation unit to handle words of different sizes if required. For handling 32-bit input and output words, both the preset values are zero; for smaller word sizes, they are set to non-zero values.
Operation It can be seen that each buffer 20,21 contains a total of 32K bits (i.e. 16 RAMs each with 512 x 4 bits). The bits are regarded as being logically arranged in a 32 X 32 X 32 cube as shown in Fig. 5. (This Figure relates to the buffer 20; buffer 21 is similar except that it has address bits A'O-A'8 instead of AO-A8).
As shown, the x-dimension of this address space is addressed by bits SO,S1,S2,A5,A6, where bits A5,A6 specify one of four vertical layers, and bits SO,S1,S2 specify one vertical plane of bits within this layer. The y-dimension is addressed by bits AO-A4. The z-dimension is addressed by bits WO,W1,W2,A7,A8, where bits A7,A8 specify one of four horizontal layers, and bits W0,W1 ,W2 specify one horizontal bit plane within this layer.
When writing data into buffer 20, each byte is written horizontally in this address space, parallel to the x-axis, into a location specified by AO-A8 and WO-W2. As can be seen from Fig.
4, when writing to the buffer 20, bits A5,A6 come from the least significant end of counter 40, bits AO-A4 from the middle, and bits WO,W1,W2,A7,A8 from the most significant end. Thus, the bits A5,A6 are incremented for each byte, so that successive bytes are written into successive byte locations along the direction of the x-axis. A complete 32-bit word is therefore written along a row parallel to the x-axis. The bits AO-A4 are incremented for each word, so that successive words are written into successive rows in the direction of the y-axis. A complete 32 X 32 plane of data is therefore built up parallel to the x-y plane. Successive data planes are written in the direction of the z-axis, as the bits WO,W1,W2,A7,A8 are incremented.
When reading from the buffer 20, each byte is written vertically, parallel to the z-axis, into a location specified by the bits AO-A8 and SO-S2. As seen from Fig. 4, when reading from the buffer, the bits A7,A8 are derived from the least significant end of the counter 41, bits AO-A4 from the middle, and bits SO,S1,S2,A5,A6 from the most significant end. Thus, the bits A7,A8 are incremented for each byte, so that successive bytes are read from successive byte locations alongs the direction of the z-axis. A complete 32-bit word is therefore read from a column parallel to the z-axis. The bits AO-A4 are incremented for each word so that successive words are read out from successive columns in the direction of the y-axis. In this way, a complete plane of data parallel to the y-z plane is read out.Successive data planes in the direction of the x-axis are read out as the bits SO,S1,S2,A5 and A6 are incremented.
In summary, data is written into the buffer as a sequence of planes parallel to the x-y plane, and is then read out as a sequence of planes parallel to the y-z plane (i.e. at right angles to the first planes). This enables the buffer to act as a corner-turning buffer for re-organising data.
In the system shown in Fig. 1, data from the array processor 10 is received by the buffer in sub-frame order, and successive sub-frames are therefore written into the buffer in successive x-y planes. When the buffer is full, it contains a complete row of sub-frames, consisting of 32 complete scan lines. The data is then read out of successive y-z planes. Each of these planes contains the 1024 bits making up a single scan line. Thus the output data is in the correct order for feeding to the video display 13. The operation of the buffer is similar for data passing between the video input device 12 and the array processor 10.
Variable sequence generator The arrangement described above may be modified by replacing the counters 40,41 and the switch 432 by a pair of variable address sequence generators, one for each buffer. Fig. 6 shows the generator for buffer 20; that for buffer 21 is identical except that it is controlled by the inverse of SEL, and produces the address bits A'O-A'8 instead of AO-A8.
The variable sequence generator comprises a programmable read-only memory (PROM) 60 and two counters 61,62 which produce two five-bit counts A and B. The PROM has 512 individually addressable locations, each of which holds six bits, providing six output signals X,D,C,AE,BE and F. Bits C and D provide two single-bit counts which can be combined to act as a two-bit count. Bit X acts as the carry-out for the two-bit count. Bits AE and BE are connected to the enable inputs EN of the counters 61,62 so that whenever one of those bits is true the corresponding count A or B is incremented at the next clock beat. Bit F provides an output signal FINISH indicating the end of the address sequence.
The sequence generator receives a 12-bit preset start address from a register 63. This controls the length of the generated address sequence, in the same way as registers 45,46 in Fig. 4.
The generator also receives a 5-bit sequence number SEQ which selects a particular sequence.
The PROM 60 is addressed by a nine-bit address. The first two bits C',D' of this address are supplied by a two-way switch 64 cntrolled by bit X. When X = 0, the switch is in the position shown and hence selects bits C,D. When X = 1, the switch is set into the opposite position and therefore selects two preset bits from the register 63. The next two address bits are supplied by carry out signals AC, BC from the counters 62,62. The remaining five address bits are supplied by the sequence number SEQ.
The carry-out signals AC,BC are also fed to the load terminals LD of the respective counters 61,62 so that, whenever one of these counters overflows, it is reloaded with preset bits from the register 63.
It can be seen that the sequence generator provides two five-bit counts A,B and two single bit counts C and D. By suitable programming the PROM 60, these four counts can be assembled in various diferent ways to form a single 1 2-bit count. For example, it may be desired to assemble the counts in the order A,D,C,B where A provides the least significant 5 bits of the 1 2-bit count and B provides the most significant five bits.
This count sequence can be achieved by programming the first 16 locations of the PROM 60 as shown in Table I below.
TABLE I Inputs Outputs AC BC C' D' AE BE C D X F 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 1 0 0 O i O 0 1 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 1 1 0 1 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 1 0 1 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 It can be seen that the output AE is always equal to 1. Hence, the counter 61 -is always enabled so that count A is incremented at each clock beat. This is necessary since count A represents the least significant bits of the count sequence.
When count A overflows, AC is true and it can be seen from Table I that this causes the value of D to reverse i.e. each location with AC = 1 has D equal to the complement of D'. Similarly, if both AC and D' are ture, then the value of C is reversed. The effect of this is to cause the two bits C,D to step through the count sequence 00,01,10,11; i.e. the bits C,D provide a two-bit count driven by the carry-out of count A.
When AC, C' and D' are all true, the output signal BE is produced, and this causes count B to be incremented. Also, the signal X is produced, which causes the signals C',D' to be selected from the preset inputs, rather than from C and D; this causes the count C,D to be re-initialised at the specified preset value.
When AC,BC,C' and D' are all true, the output signal F is produced, indicating the end of the sequence.
Referring again to Fig. 6, this also shows the way in which the address bits AO-A8 for the buffer 20 are derived from the output of the sequence generator. Address bits AO-A4 are obtained from the counter 62. Address bits A5,A6 and A7,A8 are selected by switches 65,66, both of which are controlled by the signal SEL. When SEL = 1, the switches are set in the position shown, so that AS and A6 are supplied by C and D, and A7,A8 are supplied by the two least significant bits of counter 61. When SEL = 0, the switches 65,66 are set into the opposite position, so that A5,A6 now come from counter 61 and A7,A8 are supplied by C and D. The three most significant bits of counter 61 provide the bits WO,Wl ,W2 and SO,S1 ,S2.
It will be appreciated that many other modifications to the system described above may be made without departing from the scope of the invention. For example, the buffers 20,21 may be organised at 16 X 4 arrays of bit positions instead of as 8 X 8 arrays. This would allow higher rates of data transfer into (or out of) the buffers than in the opposite direction.

Claims (14)

1. Data reorganisation apparatus comprising: (a) a buffer store having a width equal to p x q bit positions, these positions being logically arranged in rows and columns with p bits per row and q bits per column, (b) multiplexing means for receiving a succession of input data words each of n x p bits and converting these into a succession of p-bit groups at n times the clock rate of the input words, (c) input means for writing each p-bit group into a selected row of bit positions in the buffer store, (d) output means for reading a succession of q-bit groups from selected columns of bit positions in the buffer store, and (e) demultiplexing means for assembling the q-bit groups read from the buffer store into m x q-bit words at one mth the clock rate of the q-bit groups, where p,q,n and m are all integers greater than one.
2. Apparatus according to Claim 1 wherein the buffer store comprises a plurality of randomaccess memory (RAM) components each having a plurality of addressable locations and each location containing a plurality of bits which can be accessed in parallel, wherein the number of RAM components times the number of bits in each RAM location equals pxq.
3. Apparatus according to Claim 2 wherein all the RAM components in the buffer are addressed in parallel so as to select a corresponding location in each RAM component.
4. Apparatus according to Claim 3 including means for generating a write address, means for generating a read address, and switching means for selectively applying either the write address or the read address to the RAM components in the buffer.
5. Apparatus according to Claim 4 wherein said multiplexing means is controlled by a predetermined portion of said write address.
6. Apparatus according to Claim 4 or 5 wherein said demultiplexing means is controlled by a predetermined portion of said read address.
7. Apparatus according to any one of Claims 4 to 6 wherein the means for generating the write address comprises a first counter, predetermined bits of which provide said write address, and further bits of which provide a control signal for selecting the row of bit positions into which the p-bit group is to be written.
8. Apparatus according to Claim 7 wherein the means for generating the read address comprises a second counter, predetermined bits of which provide said read address, and further bits of which provide a control signal for selecting the column of bit positions from which the qbit group is to be read.
9. Apparatus according to any preceding Claim including a second buffer store which operates in conjunction with the first-mentioned buffer store to provide a double buffer arrangement in which data is written into the first buffer while it is being read from the second and vice versa.
10. Apparatus according to Claim 9 when dependent upon Claim 4 wherein said switching means is operable to apply the write address to either buffer store and to apply the read address to the other buffer store.
11. Apparatus according to Claim 10 including means for operating the switching means so as to reverse the application of the read and write addresses to the buffer stores upon detecting that a predetermined number of p-bit groups has been written into the buffer store currently addressed by the write address and a predetermined number of q-bit groups has been read from the other buffer store.
12. Data reorganisation apparatus substantially as hereinbefore described with reference to Figs. 2 to 4 of the accompanying drawings.
13. Data reorganisation apparatus substantially as hereinbefore described with reference to Figs. 2,3 and 5 of the accompanying drawings.
14. Image processing apparatus comprising (a) means for processing image data in sub-frame order, (b) means for displaying image data in scan-line order, and (c) data reorganisation apparatus according to any preceding claim, connected between the processing means and the displaying means, for converting between said sub-frame and said scan-line order for display.
GB08512816A 1984-06-02 1985-05-21 Data reorganisation apparatus Expired GB2160685B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB08512816A GB2160685B (en) 1984-06-02 1985-05-21 Data reorganisation apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB848414109A GB8414109D0 (en) 1984-06-02 1984-06-02 Data reorganisation apparatus
GB08512816A GB2160685B (en) 1984-06-02 1985-05-21 Data reorganisation apparatus

Publications (3)

Publication Number Publication Date
GB8512816D0 GB8512816D0 (en) 1985-06-26
GB2160685A true GB2160685A (en) 1985-12-24
GB2160685B GB2160685B (en) 1987-09-03

Family

ID=26287807

Family Applications (1)

Application Number Title Priority Date Filing Date
GB08512816A Expired GB2160685B (en) 1984-06-02 1985-05-21 Data reorganisation apparatus

Country Status (1)

Country Link
GB (1) GB2160685B (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2217056A (en) * 1988-03-23 1989-10-18 Benchmark Technologies Double buffering in multi-processor
EP0377288A3 (en) * 1988-12-21 1992-04-29 General Electric Company Feature extraction processor and method
EP0424618A3 (en) * 1989-10-24 1992-11-19 International Business Machines Corporation Input/output system
EP0624838A3 (en) * 1993-04-13 1995-02-15 Nokia Mobile Phones Ltd Apparatus and method for interleaving.
WO2005088640A3 (en) * 2004-03-09 2005-10-27 Aspex Semiconductor Ltd Improvements relating to orthogonal data memory

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2217056A (en) * 1988-03-23 1989-10-18 Benchmark Technologies Double buffering in multi-processor
EP0377288A3 (en) * 1988-12-21 1992-04-29 General Electric Company Feature extraction processor and method
EP0424618A3 (en) * 1989-10-24 1992-11-19 International Business Machines Corporation Input/output system
US5410727A (en) * 1989-10-24 1995-04-25 International Business Machines Corporation Input/output system for a massively parallel, single instruction, multiple data (SIMD) computer providing for the simultaneous transfer of data between a host computer input/output system and all SIMD memory devices
EP0624838A3 (en) * 1993-04-13 1995-02-15 Nokia Mobile Phones Ltd Apparatus and method for interleaving.
WO2005088640A3 (en) * 2004-03-09 2005-10-27 Aspex Semiconductor Ltd Improvements relating to orthogonal data memory

Also Published As

Publication number Publication date
GB2160685B (en) 1987-09-03
GB8512816D0 (en) 1985-06-26

Similar Documents

Publication Publication Date Title
US4168488A (en) Image rotation apparatus
US4821208A (en) Display processors accommodating the description of color pixels in variable-length codes
US4852065A (en) Data reorganization apparatus
CA1049167A (en) Apparatus for image manipulation
US4794566A (en) Random access memory apparatus
EP0492939A2 (en) Method and apparatus for arranging access of VRAM to provide accelerated writing of vertical lines to an output display
US4745407A (en) Memory organization apparatus and method
EP0398510B1 (en) Video random access memory
WO1980001422A1 (en) Data processing system and apparatus for color graphics display
JPH0636311B2 (en) Dual port VRAM memory
GB2104760A (en) A line buffer system for displaying multiple images in a video game
US5461680A (en) Method and apparatus for converting image data between bit-plane and multi-bit pixel data formats
JPH01134495A (en) Image data rotation processing device and method
US4845640A (en) High-speed dual mode graphics memory
KR0122741B1 (en) Memory having parallel architecture
US5420609A (en) Frame buffer, systems and methods
GB2160685A (en) Data reorganisation apparatus
US5412740A (en) Signal processing system having reduced memory space
US4916746A (en) Image rotation circuit
US5991186A (en) Four-bit block write for a wide input/output random access memory in a data processing system
EP0264603B1 (en) Raster scan digital display system
US5355150A (en) Sub-screen data storage control unit
US6195463B1 (en) Multiresolution image processing and storage on a single chip
JPH02100715A (en) Effective utilization system for displaying memory
JPH0355671A (en) data stirring device

Legal Events

Date Code Title Description
732 Registration of transactions, instruments or events in the register (sect. 32/1977)
PCNP Patent ceased through non-payment of renewal fee

Effective date: 19920521