Image data read out sytem in a digital image processing system

Abstract: An image data read out system in a digital image processing system comprising: an image buffer memory (20) for storing image data, a predetermined area of the image buffer memory being defined as a window having size of n (columns) x m (rows); an image data processing circuit(40) for sequentially reading out the image data from every one column in the image buffer memory (20), converting a bit structure of the image data from parallel data to serial data, packing the serial data into packed data in predetermined groups of bits, and transferring the packed data to a next stage; a basic line memory group (31a, 31b) having n basic line memories, where n corresponds to a number of columns, each of the basic line memories having m line memories, where m corresponding to number of rows, the image data of one column stored in one basic line memory in such a way that each bit of the image data is shifted one by one at every one of said line memories (31); an order conversion circuit (50) for aligning an order of the image data simultaneously read out from each of the basic line memories in accordance with the order of the columns in the image buffer memory (20); and an image processor (10) for accessing the same address of each of the basic line memories (31),simultaneously reading out accessed image data from each of the basic line memories, and calculating the accessed image data after aligning the accessed image data in the order conversion circuit (50).

Description: The present invention relates to an image data read out system, more particularly, it relates to a read out system for reading out the image data stored in a predetermined area (below, window) of an image buffer memory in response to an instruction from an image processor. In a digital image processing system, an image processor reads out image data from a window having a size of n (columns) x m (rows) of the image buffer memory. As one example of the processing operation, the image data read out from the window is processed based on a "local operation", for example, "spatial filtering". In this case, the reading out operation from the window must be performed with high speed since the amount of data stored in the image buffer memory is very large. Conventionally, a special computer is provided for achieving high speed local operation. Such a special computer has a pipe-line structure and comprises special hardware having a special function in accordance with contents of the processing operation. However, it is troublesome to provide the special hardware in each content of the processing operation. Further, recently, a microprocessor is used as one countermeasure to above problems. The microprocessor may be a general type and is controlled by a microprogram. According to such a microcomputer, it is possible to realize various image processing operations by rewriting software in accordance with contents of the processing operations. In such a microprocessor, however, the processing speed is considerably reduced when performing a complex image processing operation since a complex microprogram must be rewritten. For example, nine access operations by a general type microprocessor are necessary for reading out the image data from a window having a size of 3 (columns) x 3 (rows). Accordingly, it is desirable to provide an image data read out system in a digital image processing system enabling high-speed reading out of image data from a window when using a general type image processor. In accordance with the present invention, there is provided an image data read-out system in a digital image processing system, comprising:- an image buffer memory for storing image data, a predetermined area of said image buffer memory being defined as a window having a size of n (columns) x m (rows), and said image data comprising data units representing pixels of an image; an image data processing circuit for sequentially reading out said image data from each column in said window in said image buffer memory, converting the structure of said image data from parallel data to serial data, packing said serial data into packed data in predetermined groups of data units, and transferring said packed data to a basic line memory group; said basic line memory group having n basic line memories, each of said basic line memories having m line memories, said image data of one column being stored in one said basic line memory in such a way that each data unit of the image data is shifted one-by-one at every one of said line memories; an order conversion circuit for arranging the order of said image data simultaneously read out from each of said basic line memories in accordance with the order of the columns in the image buffer memory; and an image processor for accessing the same address of each of said basic line memories, simultaneously reading out accessed image data from each of said basic line memories, and processing said accessed image data after aligning said accessed image data in said order conversion circuit. Reference is made, by way of example, to the accompanying drawings in which: Fig. 1A is a basic block diagram of an image data read out system embodying to the present invention; Fig. 1B is a view for explaining a reading out operation from an image buffer memory; Fig. 2 is a schematic block diagram of the image data read out system according to one embodiment of the present invention; Fig. 3 shows one example of image data stored in an image buffer memory; Figs. 4A and 4B are views for explaining a packing operation; Fig. 5 is a view for explaining image data stored in a basic line memory; Fig. 6 is a view for explaining conversion of bit order in an order conversion circuit; Fig. 7 is a detailed block diagram of the image data read out system shown in Fig. 2; Figs. 8A and 8B are flowcharts for explaining the operation of the image data read out system shown in Fig. 7; Fig. 9 is a view for explaining a write operation to the basic line memory; Fig. 10 is a detailed block diagram of an order conversion circuit shown in Fig. 7; Fig. 11 is a signal timing chart for explaining a write operation to the basic line memory; and Fig. 12 shows one example of data stored in the image buffer memory. Figure 1A is a schematic block diagram for explaining a principle of the present invention. In Fig. 1, reference number 10 denotes an image processor constituted by, for example, a general type microprocessor. 20 denotes an image buffer memory for temporarily storing the image data. A predetermined area 21 having a size of n (columns) x m (rows) in the image buffer memory 20 is called a "window". 30 denotes a line memory having a capacity to store the image data of one column of the image buffer memory 20. 31 denotes a basic line memory each having m sets of the line memories. The basic line memory group (No. 1 to No. n) is constituted by n sets of basic line memories. 40 denotes an image data processing circuit for sequentially reading out the image data from every column in the image buffer memory 20, converting the bit structure of the image data from parallel data to serial data, packing the serial data into packed data format in predetermined groups of bits, and transferring the packed data to the basic line memory 31. In each basic line memory 31, the read data is sequentially stored in all line memories (i.e., m sets of lines) 30 in such a way that each bit of the read data is shifted one by one at every one of the line memories 30. 50 denotes an order conversion circuit for aligning the order of the image data read out from each basic line memory in accordance with the order of the columns in the image buffer memory. Fig. 1B is a view for explaining a reading out operation from the image buffer memory. As shown in the basic line memory 31, the image data of one line (column) "0, 1, ..., 9" is stored in each line memory 30 in such a way that one bit of the image data is shifted in every line memory as shown in the drawing. Accordingly, when the image processor 10 simultaneously accesses the same address, for example, third address (slant line portions in Fig. 1A) at every basic line memory 31, it is possible to read out the same image data (2, 3, 4, 5) of the window 21 from the basic line memory 31. The read data RD is formed in the same order as that of the window 21 by the order conversion circuit 50. Accordingly, it is possible to achieve high speed processing operation since the image data in the window 21 can be read out by only one access from the image processor. Figure 2 is a schematic block diagram for explaining one embodiment of the present invention. Further, Figure 3 shows one example of the image data stored in the image buffer memory 20. The image data is stored in the size of 8 (columns) x 8 (rows) for simplifying the explanation. In this case, each square denotes one pixel. For example, one pixel corresponds to one bit so that one column and one row are constituted by 8 bits. Accordingly, "ℓ" in Fig. 2 is equal to 8 bits. In Fig. 2, reference number 41 denotes an input circuit, 42 a bit conversion circuit for converting ℓ bits parallel data to one bit serial data, 43 a packing circuit for packing one bit serial data to m bits packed data, and 44 drivers for cyclically selecting the basic line memory. These circuits 41 to 44 constitutes the image data processing circuit 40 shown in Fig. 1. The input circuit 41 sequentially reads out the image data at every column (i.e., 8 bits) from the image buffer memory 20. The bit conversion circuit 42 constituted by a shift register converts 8 bit parallel data to one bit serial data. One bit serial data is packed at every m bits by the packing circuit 43. The packing circuit 43 is constituted by the shift registers 43a and 43b as shown in Fig. 4B. In this case, "m" corresponds to m rows of the window 21 of the image buffer memory 20. In Fig. 3, the window 21 is constituted by, for example, 3 (columns) x 3 (rows). "1-B" is a center pixel (object pixel) to access this window. Figures 4A and 4B are views for explaining the packing operation according to the present invention and this operation is performed in the packing circuit 43. Where "m" in Fig. 2 is given by "3" for simplifying the explanation. As shown in Fig. 4A, 8 bit serial data "0-A, 0-B, ..., 0-H" is sequentially packed at every 3 bits 1 ○ to 6 ○. The first shift register 43a performs this 3 bits packing operation and the packed 3 bits are transferred to the second shift register 43b when a next one bit is input thereto. The second shift register 43b outputs the packed data to the corresponding basic line memory 31. The basic line memory 31 stores each packed data (0-A, 0-B, 0-C), (0-B, 0-C, 0-D), (0-C, 0-D, 0-E), ... as shown in Fig. 5. Each driver 44 is used for cyclically switching the basic line memory 31. That is, when the packing circuit 43 outputs the packed data of the first column of the window, the driver 44a is opened and the packed data is taken into the basic line memory 31a. When the packing circuit 43 outputs the packed data of the second column, the driver 44b is opened and the packed data is taken into the basic line memory 31b. When the packing circuit 43 outputs the packed data of the third column, the driver 44c is opened and the packed data is taken into the basic line memory 31c. Figure 5 is a view for explaining stored image data in the basic line memory 31. The first line memory 31a comprises the line memories 30a, 30b and 30c, where "m" is given by "3". That is, the number of the line memories at every basic line memory is given by "3". This drawing shows the case in which the window has a size of 3 (columns) x 3 (rows) (i.e., n = 3, m = 3). This window is shown in Fig. 3. The center pixel "1-B" is the object pixel in the window. The image processor 10 can simultaneously read out all image data stored in the same address from all of the basic line memories by only one access as explained above. For example, when the image processor 10 designates the second address ADD 2 in each basic line memory, the image data (0-A, 0-B, 0-C), (1-A, 1-B, 1-C) and (2-A, 2-B, 2-C) can be simultaneously read out from each of basic line memories 31a to 31c. Figure 6 is a view for explaining conversion of bit order in the order conversion circuit 50. This circuit is constituted by a plurality of multiplexers and is used for aligning the order of the columns as explained in detail in Fig. 10. That is, since the image data of the fourth column (3-A, 3-B, ..., 3-H) shown in Fig. 3 is taken into in the basic line memory 31a through the driver 44a, the configuration of the window read out from the basic line memories 31a to 31c becomes as shown by (A) in Fig. 6 if the order of the column is not aligned. Accordingly, it is necessary to change the bit order in the window as shown by (B) in Fig. 6. The order conversion circuit 50 is provided for aligning the bit order of the window from the form (A) to the form (B) as explained in detail in Fig. 10. Figure 7 is a detailed block diagram of the image data read out system shown in Fig. 2. In Fig. 7, the same reference numbers in Fig. 2 are attached to the same components in this drawing. The reference number 60 denotes an instruction memory, 70 a central processing unit (CPU) for controlling the whole system. Further, the reference ADC denotes an address counter, LEC a length counter, ADR an address register, and LER a length register. The order conversion circuit 50 is constituted by three multiplexers 51 to 53. Figures 8A and 8B are flowcharts for explaining the operation of the image data read out system shown in Fig. 7. The operation of the image data read out system is explained with reference to Figs. 8A and 8B. The central processing unit 70 loads the microprogram into the instruction memory 60 (step 1). Further, the CPU 70 sets the initial value of the address counter ADC and the length counter LEC through the address register ADR and the length register LER (step 2). The image processor 10 starts a processing operation based on the microprogram stored in the instruction memory 60, and sets the address and the length of the window to the address counter ADC and the length counter LEC through the address register ADR and the length register LER (step 3). When the image buffer memory 20 is activated by the CPU 70 (step 4), the image buffer memory 20 outputs the image data to the image bus 1B (step 5). The image bus control circuit 41 is provided as the input circuit shown in Fig. 2 and generates a clock signal for controlling the operation of the shift registers 42 and 43. The shift register 42 is provided as the bit conversion circuit shown in Fig. 2, and the shift register 43 is provided as the packing circuit 43 shown in Fig. 2. The shift register 42 converts 8 bit (8 pixels) parallel data into one bit (pixel) serial data (step 6). The shift register 43 packs one bit serial data into 3 bits packed data (step 7). The line control register LCR controls ON/0FF of the driver 44 and the image data of the first column is written into the basic line memory 31a (step 8). When the first column is written into the basic line memory 31a, the length counter LEC returns to zero (step 9) and sends an interrupt command INT to the image processor 10 (step 10). In this case, the length counter LEC is set to the number of bits in one column. The above steps are repeated for the second basic line memory 31b and the third basic line memory 31c (step 11). When all image data is stored in all basic line memories 31a to 31c, the image processor 10 reads out the image data from the basic line memories 31a to 31c through the multiplexers 51 to 53 shown in detail in Fig. 10. The image processor 10 calculates the image data (step 13) and the resultant data is written into the image buffer memory 20 through the driver DR and image bus IB (step 14). After the above steps, the line control register LCR is updated (step 15). The image data of the fourth column is written into the first basic line memory 31a by the same steps as the above (step 16). The image processor 10 determines whether or not all columns are transferred to the basic line memory (step 17). If all columns are finished, the interrupt INT is sent from the length counter of the image buffer memory 20 to the CPU 70. Figure 9 is a view for explaining a write operation to the basic line memory. This drawing is provided for explaining the write operation of the image data into the basic line memories 31a to 31c and corresponds to Figs. 4A, 4B, and 5. The serial data from the shift register 42 is input to the shift register 43. The shift register 43 outputs the packed image data in response to the clock signal CLK from the image bus control circuit 41. The output by the first clock (1 CLK) is not written into the basic line memory and is used as dummy bits for forming the window in the first address ADD 1. The shift register 43 outputs the packed data "0-0, 0-1, 0-2" in response to the second clock (2 CLK) and stores it in the address ADD 1 in the basic line memory 31a. The shift register 43 repeats the above operation in response to the clock signal CLK. Figure 10 is a detailed block diagram of the order conversion circuit shown in Fig. 7. Each of multiplexers 51 to 53 is constituted by three multiplexers and is connected to the basic line memories 31a to 31c as shown in the drawing. The image processor 10 sends the command to the line control register LCR so as to select the multiplexer. The line control register LCR generates a two bit selection signal to each multiplexer. For example, the bits "0, 0" selects the multiplexer 51, the bits "0, 1" selects the multiplexer 52 and the bits "1, 0" selects the multiplexer 53. Figure 11 is a signal timing chart for explaining write operation to the basic line memory. In Fig. 11, (A) to (H) corresponds to the same characters in Fig. 7. The data enable signal DE is transferred between the image buffer memory 20 and the image bus IB. The image data on the image bus IB is shown by 8 bits and is synchronized with the data enable signal DE. The shift register 42 outputs the serial data converted from the parallel data. The image bus control circuit 41 outputs the shift enable signal SE to the shift register 42. The shift register 43 outputs the packed data having 3 bits in response to the clock signal CLK from the image bus control circuit 41. The image bus control circuit 41 outputs the address counter enable signal ADCE to the address counter ADC and the length counter LEC. The address counter ADC outputs the line memory address LMA to the basic line memories 31a to 31c. The image bus control circuit 41 outputs the write enable signal WE to the basic line memories 31a to 31c. Figure 12 shows one example of stored data in the image buffer memory. This drawing corresponds to Fig. 3. In this case, one column comprises 16 bits (0-0, 0-1, ..., 0-15). Accordingly, the first 8 bits (0-0, 0-1, ..., 0-7) are input to the shift register 42, and next 8 bits (0-8, 0-9, ..., 0-15) are input to the shift register 42 in the next step as shown in Fig. 9). In the above-described embodiment of the present invention, one pixel corresponds to one bit; however, other embodiments of the invention may be applied to image data in which a data unit of more than one bit represents each pixel of the image.

Claims: An image data read-out system in a digital image processing system, comprising:- an image buffer memory (20) for storing image data, a predetermined area of said image buffer memory being defined as a window (21) having a size of n (columns) x m (rows), and said image data comprising data units representing pixels of an image; an image data processing circuit (40) for sequentially reading out said image data from each column in said window in said image buffer memory (20), converting the structure of said image data from parallel data to serial data, packing said serial data into packed data in predetermined groups of data units, and transferring said packed data to a basic line memory group; said basic line memory group having n basic line memories (31), each of said basic line memories having m line memories (30), said image data of one column being stored in one said basic line memory in such a way that each data unit of the image data is shifted one-by-one at every one of said line memories; an order conversion circuit (50) for arranging the order of said image data simultaneously read out from each of said basic line memories (31) in accordance with the order of the columns in the image buffer memory (20); and an image processor (10) for accessing the same address of each of said basic line memories (31), simultaneously reading out accessed image data from each of said basic line memories, and processing said accessed image data after aligning said accessed image data in said order conversion circuit (50). An image data read-out system as claimed in claim 1, wherein said image data processing circuit (40) comprises:- an image bus control circuit (41) operatively connected to said image buffer memory (20), a first and second shift register means (42, 43) operatively connected to said image bus control circuit(41), and a plurality of drivers (44a, 44b, 44c) operatively connected between said second shift register means (43) and said basic line memories (31a, 31b, 31c); and wherein, in use, said image bus control circuit (41) generates a shift enable signal (SE) to said first shift register means (42), a clock signal (CLK) to said second shift register means (43), a write enable signal (WE) to said basic line memories (31a, 31b, 31c), and a counter enable signal (ADCE) to an address counter (ADC) and a length counter (LEC); said first shift register means (42) converts parallel data to serial data in response to said shift enable signal (SE); said second shift register means (43) converts said serial data into m units of packed data, where m corresponds to a number of rows; and each of said drivers (44a, 44b, 44c) cyclically selects a respective one of said basic line memories (31a, 31b, 31c). An image data read-out system as claimed in claim 1 or 2, wherein said order conversion circuit (50) comprises a plurality of multiplexers (51, 52, 53) corresponding to the number of said basic line memories (31a, 31b, 31c), each of said multiplexers operatively connected to corresponding said basic line memories, and selected by a line control register (LCR) operatively connected to said image processor (10). An image data read-out system as claimed in claim 1, 2 or 3, wherein an address and bit length of each of said basic line memories is determined by one address counter (ADC) and one length counter (LEC) both controlled by said image processor (10). An image data read-out system as claimed in any preceding claim, wherein an address and bit length of said image buffer memory (20) is determined by another address counter (ADC) and length counter (LEC) both controlled by a central processing unit (70). An image data read out system as claimed in any preceding claim, wherein said image processor (10) is constituted by a microprocessor. An image data read-out system as claimed in any preceding claim, wherein each data unit consists of a single bit.

Inventors: SAKAGUCHI KAZUAKI, SAKAGUCHI, KAZUAKI
Applicants: FUJITSU LTD, FUJITSU LIMITED
Application year: 1989
Main classification: G09G1
IPC codes: G06T5, G06F12, G09G5