Data processing system

Abstract: A data processing system comprising: i) a computational portion comprising a numerical computational circuit for a numerical computation and a characteristics information extracting circuit performing status computation for extracting characteristics value; ii) a sequential processing portion connected to the computational portion for performing sequential processing; iii) a plurality of information compression systems each of which is connected to the computational portion for extracting characteristics value from data to be processed; iv) a data inputting terminal for inputting digital data to the computational portion; v) a sequential processing data inputting terminal for inputting digital data to the sequential processing portion; vi) a selector for selecting an output of the computational portion, the sequential processing portion, or one of information compression systems; vii) an output terminal for outputting an output of the selector.

Description: FIELD OF THE INVENTION The present invention relates to a data processing system settled in image recognition system or acoustic recognition system, for example. BACKGROUND OF THE INVENTION When processing system of large quantity of digital data, for instance image data, is to be designed, an IC on the market especially for digital signal processing on the market or a CPU with larger memory capacity is usually used. When CPU is used, the processing manner relies on the command cycle of the CPU and high speed processing cannot be expected. As to special purpose IC, commands may be provided for a basic function used in image processing, such as data transmission, but actual image processings such as reducing noise, filtering are not supported or quite small part of filtering is supported. Proceedings of the 1978 National Computer Conference, June 5- 8 1978, US; Ken- ichi Mori et al.: "Design of local parallel pattern processor for image processing" discloses a microprogrammable parallel pattern processor which fullfills the functions of parallel numerical calculation (two- dimensional convolution), logical filtering and information compression (histogram computation). SUMMARY OF THE INVENTION Therefore, conventionally, when an image processing system of wide usage and good performance is designed, it has been necessary for the designer to design a lot of hardware and ICs: consequently, expense and term for development cannot be reduced. The present invention is invented so as to solve the above problems of the prior art and has an object to provide a large quantity of digital data processing system of wide usage and good performance. A data processing system according to the present invention is set out in claim 1. It mainly processes characteristics extraction and comprises computational portion which performs status computation as well as numerical computation. It is constructed as a module with sequential processing portion indispensable to sequential processing. Therefore, it can correspond actual digital data processing such as image processing and so on independently, and can be inputted in sequential processing portion in which delay memory capacity is necessary to be settled according to the data capacity: this means that it has wide-usage. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 shows a block diagram of the first embodiment of the present invention. Fig. 2 shows the timing of input and output to/from the data processing system. Fig. 3 shows the relationship between flag signal and image output data bus signal. Fig. 4 shows a block diagram of the structure of numerical formula processing portion. Fig. 5 shows a block diagram of the structure of an integration portion. Fig. 6 shows a diagram of 3x3 convolution. Fig. 7 shows the share of input data of integration portion. Fig. 8 shows the processing of each step of an integration portion on performing Sobel operator. Fig. 9 shows a block diagram of the structure of characteristic information extraction portion. Fig. 10 shows a block diagram of the structure of sequential processing portion. Fig. 11 shows pixel data of 3x3 convolution to explain the processing in sequential processing portion. Fig. 12 shows a diagram of the first judgment condition for thinning for 3x3 convolution. From Fig. 13 to Fig. 16 show the second to the fifth judgment conditions, respectively. Fig. 17 (a) shows a diagram of a vertical line with 2 pixels width of the result after processing. Fig. 17 (b) shows a diagram of a horizontal line with 2 pixels width of the result after processing. Fig. 18 (a) shows a diagram added 1 pixel to a vertical line with 2 pixels width. Fig. 18 (b) shows a diagram added 1 pixel to a horizontal line with 2 pixels width. Fig. 19 (a) shows a diagram of the result after performing processing to Fig. 15 (a). Fig. 19 (b) shows a diagram of the result after performing processing to Fig. 15 (b). 100 computational portion, 110 image information computational portion, 120 the first information compression system, 200 feedback control portion, 300, 370, 380 and 390 the second information compression system. PREFERRED EMBODIMENT OF THE PRESENT INVENTION Hereinafter, the present invention is described with referring to the attached drawings. Fig. 1 shows a data processing system of the present invention. The data processing system is settled in, for example, the system to recognize a letter/character inputted from video camera which is not shown in the figure: it comprises computational portion 100 which includes image information computational portion 110 and the first information compression system 120, feedback control portion 200 and four of the second information compression system 300, 370, 380 and 390. As described later, computational portion 100 performs a certain numerical computation, feed back control portion 200 performs so-called sequential-type processing and information compression systems 300, 370, 380 and 390 extract characteristic value of the data to be processed. In computational portion 100, image information computational portion 110 is a circuit to perform a certain numerical computation, comprises 9 flip-flops from "a" to "i", multiplication portion 111, logical computational portion 112 and numerical formula processing portion 113. The first information compression system 120 is a circuit to perform status computation for extracting characteristics value and comprises characteristics information extracting portion 121. The data sent from a memory outside (not shown) is inputted to multiplication portion 111 through flip-flops from "a" to "i" and is outputted after a multiplication certain coefficient (weight coefficient, for example). The output data is inputted to logical computational portion 112 and is performed logical computations AND, OR, EXOR and so on. The logical computation result is inputted to numerical formula portion 113 and characteristics information extracting portion 121. Numerical formula portion 113 can calculate the maximal value (MAX), the minimal value (MIN) and the absolute value (ABS) as well as performing addition (+), subtraction (-) and division as described later. Characteristics information extracting portion 121 performs computations of neighborhood boundary information, number of neighborhood connectedness and neighborhood characteristics value and so on. Feedback control portion 200 comprises sequential processing portion 210 and label counter 290 and is connected to computational portion 100, the second information compression systems 300, 370, 380 and 390. Computation portion 100 performs parallel-type processing to compute, compare and judge the inputted pixel data: on the other hand, sequential processing portion 210 performs sequence-type processing to rewrite data based on the condition after a processing, such as co-relationship among other data. The sequence-type processing is necessary for thinning and labeling. Label counter 290 is a circuit to output labels (values ) to be used on labeling in sequential processing portion 210. The second information compression systems 300, 370, 380 and 390 calculate characteristics value of the data to be processed by accumulation or comparison. These have the same structure: the structure of only information compression system 300 is shown. Information compression system 300 comprises address counter 301, XY-counter 302, independent variable settlement circuit 303, characteristic value settlement circuit 304, extracting condition settlement circuit 305 and characteristics data processing portion 310. Characteristics data processing portion 310 performs addition (+) and subtraction (-) to input data, and simultaneously, can calculate the maximal value (MAX) and the minimal value (MIN). Independent variable settlement circuit 303, characteristics value settlement circuit 304 and extracting condition settlement circuit 305 are the circuits to settle the conditions for processing in characteristics data processing portion 310. Independent variable settlement circuit 303 settles the extracting condition of input data such as "on what kind of condition input data is to be extracted": for instance "on all the pixels. Characteristic variable settlement circuit 304 settles the condition of characteristics variable such as "what kind of data to be extracted": for instance "the number of pixels". Extracting condition settlement circuit 305 settles the condition of extracting condition such as "for what kind of data to be extracted: for instance "on every labeled pixel". When these conditions are combined, characteristic data processing portion 310 performs the addition of "the number of pixels of every labeled pixel in all the pixels": the area of the labeled image is calculated. Address counter 301 designates the address of compressed data register CDR which is the memory of the second information compression systems 300, 370, 380 and 390. The processing data in characteristics data processing portion 310 is stored in a certain address in the memory. XY-counter 302 outputs the coordinates of X and Y on a point of horizontal scanning in a frame memory. Computational portion 100, feedback control portion 200, information compression systems 300, 370, 380 and 390 work according to command signals stored in register 410 described later and a certain processing result is outputted. The output data of each portion is selected in selector 420 and outputted to the outside of the present apparatus. Register 410 is explained below. Address register PIPADR is the register to hold on inside address to be accessed by host computer in reading or writing from or into data register PIPDR. The value of PIPADR of address register is increased by one on every action of reading and writing of data register PIPDR. Data register PIPDR is the register to store necessary data in order to control computational portion 100 various actions. According to the data stored here, an edge point of an image is calculated or logical computation is executed, for example. For various processing, a data is stored in multiplication register MR, numerical constant register CSTR, pattern register PR, comparate register CPR and control code register COR. In multiplication register MR, the coefficient to be used for multiplication in multiplication portion 111 is stored. In numerical constant register CSTR, the numerical constant to be used for addition and subtraction in numerical formula processing portion 113 is stored. In pattern register PR, 3x3 template data to be used for the processing of pattern matching in characteristics information extracting portion 121 is stored. In comparate register CPR, specific brightness to be used for binarizing input pixel data in characteristic information extracting portion 121 is stored. In control code register COR, data processing manner of the present apparatus, that is the parameter to settle the method of binarizing is stored. Control register FEDCOR0 and FEDCOR1 are the registers to store the necessary data for labeling and thinning in sequential processing portion 210. In control register FEDCOR0,the density value to be processed in selecting labeling is stored. The data processing manner in sequential processing portion 210, that is the data to show what is performed labeling in 8-connectedness,labeling or thinning in 4-connectedness is also stored in it. In control register FEDCOR1, the label value on beginning labeling in the case of selection of labeling. Address register PECADR is the register to give inside address in order for host computer to access data register PECDR by reading or writing. The value of the address register PECADR is increased one by one on every reading and writing in data register PECDR. Data register PECDR comprises register XCNT and YCNT, control code register COR, and compressed data register CDR. In XCNT and YCNT, the initial values are stored of X and Y coordinates generated in XY-counter 302. In compressed data register CDR, the characteristics value extracted from information compression systems 300, 370, 380 and 390 are stored. In control code register COR, control code to settle data processing form in 4 of information compression systems 300, 370, 380 and 390 are stored. The data processing manner means the data flow and the function of each block. It is decided, for example, the location in information compression systems where the data outputted from characteristics information extracting portion 121 is inputted by the control code. As an example of the data processing manner, for example, each element of T, F, D and E of Euler number are calculated by inputting the data outputted from characteristic information extracting portion 121 in light computational portion (not shown). Input and output signal for the present apparatus are described below. Free-flag signal F (low assert) is the signal to switch the process mode of the present apparatus to be host mode or local mode. When free-flag signal F is in high level, the action mode' is host mode; the host computer not shown can access to register 410 of the present apparatus. That is, various command data is stored in register 410. The present apparatus does not work substantially on this case. On the other hand, when free-flag signal F is low level, it is local mode, and the present apparatus works according to the command data stored in register 410. Register select signal RS is the signal to make a choice of address register of PIPADR and PECADR or data register of PIPDR and PECDR in register 410. When register select signal RS is low level, address register is chosen: when register select signal RS is high level, data register is chosen. Data strobing signal DS (low assert) becomes data requiring signal when host computer performs reading the apparatus: it becomes the signal to show valid data is outputted into the data bus on host computer side when host computer performs writing in the present apparatus. Writing signal W (low assert) is the input signal to control the direction of data transmission between host computer and the present apparatus. When write signal W is high level, data is transmitted from the present apparatus to a host computer: when write signal W is low level, data is transmitted from a host computer to the present apparatus. Reset signal RESET (low assert) is a signal to clear the condition inside of the present apparatus. When it is low level, the inside of the present apparatus is cleared. Compressed data register CDR in data register PECDR is not cleared even when reset signal RESET is low level. Therefore, when command data is written in register 410 from host computer, the process is as follows. First, free-flag signal F is settled in high level and the present apparatus becomes host mode; second, reset signal RESET is settled low level and the data in the present apparatus is cleared; third, one of two is selected, address register of PIPADR and PECADR, or data register PIPDR and PECDR; finally, write signal W is transmitted from host computer to the present apparatus in low level. Local reset signal RES1 (low assert) is a signal to clear the first step of flip-flops "c", "f" and "i" which latch data to be inputted as image input data bus signals from GD00 to GD07, from GD10 to GD17, and from GD20 to GD27. When RES1 is low level, the flip-flops are cleared. Mode signal MODE is a term signal to show the term in which valid data is inputted as image input data bus signals from GD00 to GD07, from GD10 to GD17, and from GD20 to GD27, in high level signal. Mode output signal MODEOUT is a term signal to show the term in which valid data is outputted as image output data bus signal from SO0 to SO7 in high level output. Image input data bus signal from GD00 GD07, from GD10 to GD17, and from GD20 to GD27 are bus signals to input image data in the present apparatus. The data inputted through image input data bus signals from GD00 to GD07, from GD10 to GD17, and from GD20 to GD27 is latched on flip-flops from "a" to "i". They are inputted into multiplication portion 111 as image data in the area of 3x3 convolution. Image input data bus signals form DI0 to DI7 are bus signals for inputting feedback data necessary to perform sequential processing such as thinning, labeling, and so on. The signals are inputted to sequential processing portion 210, delaying data of 1 horizontal scanning line minus 6 pixels in delay circuit 430. Image output data bus signal from SO0 to SO7 are output bus signals and are outputted with the same period of rise of clock signal CK. Clock signal CK is the standard signal to perform pipe-line processing in the present apparatus. The processing speed of the present apparatus changes by clock frequency of clock signal. Image data is inputted and outputted with the same period of rise of the clock signal. Fig. 2 shows the timing of data input into the present apparatus and of data output from it. Clock signal CK is outputted with a certain frequency. When CK rises as R1, free-flag signal F becomes low level and local mode is settled. After a certain period T1 from the second rise of clock signal CK, mode signal MODE rises and becomes high level signal. During the output of the high level signal, image input data bus signals from GD00 to GD07, from GD10 to GD17, and from GD20 to GD27 are regarded as valid data. Mode signal MODE falls from rise of clock signal R3 after a certain period T2. When 16 of clock signals CK are outputted after R1 of rise of clock signal and R4 of clock signal rises, mode output signal MODEOUT becomes high level signal after a certain period T3. Image output data bus signals from SO0 to S07 are regarded as valid data by the high level signal. When 16 of clock signals CK are outputted after R3 of rise of clock signal which is just before the fall of mode signal MODE and R5 of clock signal rises, mode output signal MODEOUT becomes low level signal after a certain period T4. Consequently, image output data bus signals from SO0 to S07 are regarded as invalid data. After it, free-flag signal F becomes high level and the present apparatus is switched to host mode from local mode. In Fig. 1, over flow flag signal OF is a flag signal to show by outputting high level output that over flow has occurred in computation result of image information computational portion 110. Sign flag signal NOSIG is a flag signal to show by outputting high level output that under flow is generated in computation result of image information computational portion 110. Label counter over flow flag signal LBLOF is a signal to show by high level output that the count value of label counter 290 overflowed. Fig. 3 shows the relationship among flag signals OF, NOSIG and LBLOF and image output data bus signals from SO0 to SO7. Sign flag signal NOSIG and overflow flag signal OF are usually low level: when under flow or overflow is generated in computation result of image information computational portion 110, NOSIG and OF become high level signal. The rises of high level signals of them are completed while certain times T5 and T6 are passed from R6 of the rise of clock signal CK. Sign flag signal NOSIG and overflow flag signal OF set until certain times T7 and T8 pass from R7 of the rise of the next clock signal. Label counter over flow flag signal LBLOF is usually a low level signal. It becomes a high level signal when the count in label counter 290 overflows: the rise is completed during a certain times T9 from R6 of clock signal CK. X-counter set signal XLOAD (low assert) is a signal to give load signal to X-counter 302 in the present apparatus. When XLOAD of X-counter set signal is low level, the value stored in XCNT in data register PECDR is set in X-counter 302 as the initial value at the same timing of the rise of clock signal CK. When X-counter set signal XLOAD is high level, the value of X-counter is increased at the same timing of the rise of clock signal CK, and data coordinates inputted as image input data bus signal from GD00 to GD07, from GD10 to GD17 and from GD20 to GD27 are stored. Y-counter set signal YLOAD (low assert) is a signal to give load signal to Y-counter 302 in the present apparatus. When Y-counter set signal YLOAD is low level, the value stored in YCNT in data register PECDR is set in Y-counter 302 as the initial value at the same timing of the rise of clock signal CK. When Y-counter set signal YLOAD is high level, at the same timing of the clock signal CK just after the set of X-counter set signal XLOAD, the value of Y-counter is increased and data coordinates inputted as image input data bus signal from GD00 to GD07, from GD10 to GD17 and from GD20 to GD27 are stored. Bidirectional data bus signal from DB00 to DB15 are bus signals to transmit data from/to host computer to/from the present apparatus. Mode signal MODEOUT, overflow flag signal OF, sign flag signal NOSIG and label counter overflow flag signal LBLOF are outputted from the present apparatus through delay circuit 440. Fig. 4 shows the structure of numerical formula processing portion 113, which comprises selector 114 and integration portion 115. After the processings in multiplication portion 111 and logical computational portion 112, the data inputted in selector 114 is selected in it according to the purpose and inputted to a certain terminal in integration portion 115. The number of output terminals of selector 114 is the same as or more than the number of input terminals. Selector 114 leads the data inputted from input terminal to any output terminal and distributes among any plural output terminals. Integration portion 115 performs addition, subtraction, and other computation to, and integrates the data inputted from selector 114, as mentioned below. Fig. 5 shows the structure of integration portion 115. As shown in it, integration portion 115 comprises 7 steps of pipe-line structures. In the figure, "○" means D flip-flop, in which data is hold in each step and sent to the next step in response to a synchronous signal. In the first, second, fourth and sixth steps, addition or subtraction is performed, or the maximal or the minimal value can be calculated. In the third and the fifth step, the absolute value can be calculated, or input data can be outputted as it is. In the seventh step, the absolute value can be calculated or input data can be outputted as it is. Furthermore, performing bit shift to input data, computation of (1/2 n ) is performed, or it is possible to fix the maximal value for input data to be "255" and the minimal value to be "0". Input data for integration portion 115 is described below referring Fig. 6 and Fig. 7. Fig. 6 shows 3x3 convolutions, in which pixel data is given references from "a" to "i" for each. Fig. 7 shows the distribution of input data in integration portion 115: groups A, B, C and D are corresponding to A, B, C and D in Fig. 5, respectively. As to input terminal Al in group A, for example, one of three of pixel data "a", constant value "CON", or "0" can be inputted selectively. In the same way, one of three of pixel data "b", "f", or "0" can be inputted selectively to input terminal A2. One of three of pixel data "c", "e" or "0" can be inputted selectively to input terminal A3. Since the input data is distributed and selectable, the integration portion becomes wide in usage or processing manner. When Sobel operator is executed, which is one of complex computation of image processing, the number of terms of inputs is settled in 12 systems. Since computation becomes complicated when the number of parameters steeply reduced in one step, reduction is executed through 4 steps and input of 12 systems are distributed to A to D of 4 groups. Fig. 8 shows the processing on each step in integration portion 115 when Sobel operator is performed. Sobel operator is expressed by the formula below. |a+b+c-g-h-i| + |a+d+g-c-f-i| "b", "d", "f" and "h" in formula (1) are expected to be multiplied by "2" in multiplication portion 111 beforehand. In Fig. 8, on the first and second step, addition is performed and (a+b+c), (g+h+i), (a+d+g) and (c+f+i) are calculated. Nothing is performed on the third step. On the fourth step, subtraction is performed: on the fifth step, absolute value is calculated. Consequently, |a+b+c-g-h-i| and |a+d+g-c-f-i|are calculated. On the sixth step, addition is performed. Formula (1) is executed through the process above. Nothing is performed on the seventh step. Fig. 9 shows the structure of characteristic information extracting portion 121. Characteristic information extracting portion 121 is constructed by connecting comparator portion 122, delay portion 123, logic portion 124 and selector 125, sequentially. 8 bit data on the previous step of selector 114 (in Fig. 4) of numerical formula processing portion 113 is inputted devidedly to comparator portion 122. Comparator portion 122 is connected to comparate register 126, in which the threshold to binarize 8 bit data is registered. That is, comparator portion 122 compares inputted 8 bit data to the threshold and outputs 1 bit data, which is inputted to delay portion 123. Delay portion 123 outputs the data transmitted from comparator portion 122 by delaying it in order that the output of image information computational portion 110 and the output of characteristic information extracting portion 121 are performed in the same timing. The delay time is registered in status register 127 connected to delay portion 123. The output data of delay portion 123 is inputted to logic portion 124 and is performed various processings as described later. Pattern matching register 128 is connected to logic portion 124 in which templet data of 3x3 is registered as a comparison object in the case of calculating identification ratio. Logic portion 124 judges an object pixel and calculates neighborhood boundary information, number of neighborhood connectedness and neighborhood characteristic value. Object pixel judgment is to decide whether inputted pixel data is to be processed or not: the judgment is "pixel to be processed" or "pixel not to be processed". Neighborhood boundary information is the number of pixels with "0" of binary pattern data in 4-connectedness or 8-connectedness. Number of neighborhood connectedness is the number of connectedness with the object of data of "1" in 4-connectedness or 8-connectedness. Neighborhood characteristics value is neighborhood pattern information, the number of each element of Euler number, and identification ratio for binary pattern data. Neighborhood pattern information adopts the pixel condition of 4-neighborhood or 8-neighborhood as its data. The element of Euler number is T, F, D and E, as will be well known. Identification template data registered in pattern matching register 128. Comparing pixels corresponding to each other, the number of pixels with different values is calculated through the processing of identification ratio. The data outputted from selector 125 is transmitted to D flip-flop 129: it is once hold here and outputted. It means that output data from characteristics information extracting portion 121 is outputted synchronously with sure by D flip-flop. Fig. 10 shows the structure of sequential processing portion 210. It comprises logic portion 211, delay portion 212, flip-flop 213, 214, 215 and comparator 216. Selector 220 is settled on the output side of sequential processing portion 210. Selector 220 leads one of two outputs of image information computational portion 110 and sequential processing portion 210 to the second information compression system 300, 370, 380 and 390 (shown in Fig. 1). Neighborhood information from characteristics information extracting portion 121, that is what to show the signal if each pixel of 8-neighborhood is the same as the counter pixel, is inputted. The output of logic portion 211 is lead to delay portion 212, flip-flop 215 and selector 220. Delay portion 212 outputs the inputted pixel data with delay time subtracted 6 pixels from scan line. Delay portion 212 is connected to flip-flop 213, which is connected to flip-flop 214. Outputs of delay portion 212, flip-flop 213, 214 and 215 lead to comparator 216, whose output is lead to logic portion 211. Flip-flops 213, 214 and 215 works as latches. Therefore, delay portion 212, pixel data outputted from flip-flops 213, 214 and 215 are inputted to comparator 216 simultaneously. The pixel data processed in sequential processing portion 210 is the pixel data of 3x3 convolution as shown in fig. 11. A part of these pixel data is already processed in sequential processing portion 210. Pixel data is inputted to the present apparatus in the order of FP4, FP3, FP2...FP5, P0, P1...P6, P7, P8 along the horizontal scan line. To logic portion 211, already processed pixel data FP4, FP3, FP2 and 5 is inputted by the action of delay portion 212, flip-flop 213, 214 and 215 and unprocessed pixel data P0, P1, P6, P7 and P8 are inputted from image information computational portion 110. Sequential processing portion 210 rewrites the once processed data according to the condition, in this way. Comparator 216 judges if the inputted pixel data has its density on performing labeling. It does not work substantially on the process of thinning. In the present embodiment, thinning prevents dying out a line with 2 pixels width. The following conditions from a-i) to a-v) are adopted to execute it. In 3x3 convolutions in Figs. from 12 to 16, a-i) When the pixel on the left side of object pixel "A" have the pixel value of the same value of background pixels ("0", for example), indicative pixel value different from usual pixel value is given to object pixel "A" (the pixel value impossible to exist in the image, for example "-1") (shown in Fig. 12). a-ii) Objective pixel "A" is kept as it is when the condition does not agree with a-i), pixel "C" on objective pixel "a" has the indicative pixel value and pixel "B" under pixel "A" has the value same as the background pixel, judged in sequential-type (shown in Fig. 13). a-iii) Objective pixel "A" is kept as it is when the condition does not agree with a-i), pixel "C" on left side of objective pixel "A" has the indicative pixel value and pixel "B" on right side of pixel "A" has the value same as the background pixel value, judged in sequential-type (shown in Fig. 14). a-iv) The value of objective pixel "A" is decided to be indicative pixel value when the condition does not agree with a-i) to a-iii), pixel "B" on left side of objective pixel "A" has the indicative pixel value judged in sequential-type, and pixels "C1" and "C2" on and below pixel "B" have the value same as the background pixel value judged in parallel-type. The pixel with indicative pixel value generated through such processing is regarded as the background pixel value for next scanning. When the scan direction is not limited to be from left to right or from up to down, these conditions from a-i) to a-v) are generalized as from b-i) to b-v) in below. b-i) The value of objective pixel is changed to be indicative pixel value when the previous pixel of the objective pixel along the direction of a scan line and the pixel corresponding to the location of the objective pixel in the previous scan line has the same value as the value of background pixel or the indicative pixel value, judged in parallel-type. b-ii) Objective pixel is kept as it is when the condition does not agree with that in b-i), the pixel corresponding to the location of the objective pixel in the previous scan line in parallel direction of scan line has the indicative pixel value, and the pixel corresponding to the location of objective pixel in the next scan line in parallel direction of scan line has the same value of background pixel, judged in sequential-type. b-iii) Objective pixel is kept as it is when the condition does not agree with that in b-i), the pixel on the previous scan line has the indicative pixel value, and the next pixel has the value of background pixel, judged in sequential-type. b-iv) The value of objective pixel is decided to be indicative pixel value when the condition does not agree with those in b-i) to b-iii), and when the pixel corresponding to the location of objective pixel on the previous scan line has the indicative pixel value judged in sequential-type, and the previous and the next pixel of objective pixel have the value of background pixel, judged in parallel-type. b-v) The value of objective pixel is decided to be indicative pixel value when the condition does not agree with those in b-i) to b-iii), the previous pixel to the objective pixel on the same scan line has the indicative pixel value judged in sequential-type, the pixels corresponding to the location of the pixel in the previous and the next scan line have the pixel value same as the peripheral pixel, judged in parallel-type. These conditions are corresponding to the image processings in Fig. 17 to Fig. 19. Fig. 17 (a) shows a vertical line with 2 pixels width, corresponding to the conditions in a-i) and a-iii). In this figure, the left pixel on the top of the line is the object to be judged. Indicative pixel value ("-1", for example) is given to it according to the condition in a-i). Next, the right pixel is the object to be judged. Its pixel value is kept as it is ("1", for example) without deciding it to be the background pixel value according to the condition in a-iii). The vertical line with 2 pixels width is thinned to be a line with one pixel width of right side except the pixel on the bottom through the processing. Fig. 17 (b) shows a horizontal line with 2 pixels width, corresponding to the conditions in a-i) and a-ii). In this figure, the left edge pixel on the top is the object to be judged. Indicative pixel value ("-1", for example) is given to it according to the condition in a-i). All pixels except on the left edge on the top are erased. Next, on the bottom, left edge pixel keeps its pixel value as it is ("1", for example) according to the condition in a-ii). The following pixels are kept in pixel value as they are, in the same way. The horizontal line with 2 pixels is thinned to be a line with one pixel width of bottom line except the pixel on right edge through the processing. Fig. 18 (a) shows a line added pixel "A" on the top left edge to a vertical line with 2 pixels width, which is corresponding to the conditions in a-i) and a-iv). (The figure added a pixel on the top right edge is processed in the same way.) Judging the figure by edge judging condition of simple parallel-type, the process is as follows. The value of pixel "A" is converted to peripheral pixel value because "A" is not an edge pixel (it is touched to 2 pixels "B" and "C"). The value of pixel "B" on left side of 2 pixels width is converted to background pixel value because pixel "A" exists on it. Consequently, the figure dies out. It is possible to prevent dying out of figure by adding the indicative pixel value to pixel "A" according to condition a-i), and to pixel "B" according to condition a-iv), as shown in Fig. 19 (a). Adopting the conditions, the figure is thinned to right line of one pixel width except the pixel on the bottom. Fig. 18 (b) shows a line added pixel "A" on the top left edge to a horizontal line with 2 pixels width, corresponding to the conditions in a-i) and a-v). (The figure added a pixel on the bottom left edge is processed in the same way.) Judging the figure by edge judging condition of simple parallel-type, the process is as follows. The value of pixel "A" is converted to peripheral pixel value because "A" is not an edge pixel (it is touched to 2 pixels "B" and "C"). The value of pixel "B" on left side of 2 pixels width is converted to peripheral pixel value because pixel "A" exists on it, and at last, all the pixel values of the pixels on the top line are converted to background pixel value. As to the bottom line, the left edge pixel is erased because of the existence of pixel "A", and at last, all the pixel values of the pixels on the bottom line are converted to peripheral pixel value. Consequently, the figure dies out at last. It is possible to prevent dying out of a figure by adding the indicative pixel value to pixel "A" according to condition a-i), and to pixel "B" according to condition a-v), as shown in Fig. 19 (b). Adopting the conditions, the figure is thinned to bottom line of one pixel width except the pixel on the right edge. The thinning processing generates good results because a line with 2 pixels width is certainly thinned to 1 pixel width without generating needless pixel. Furthermore, it is processed in high speed because 1 layer processing of boundary pixels can be completed by one scanning. It is described above what includes a kind of pixel value outside of peripheral pixel value in an image. Needless to say, it is possible to perform thinning in the same way for an image with various kinds of pixels. For example, when labeling numbers are added to every group in an image, thinning is performed in the same way as above in every group, or the only figures with labeling numbers to be processed are performed thinning by regarding the labeling numbers as pixel values to be processed. The second information compression systems 300, 370, 380 and 390 are constructed by being connected light computational portion such as full adder on the branch of output of high speed memory such as static RAM, and feeding the output of the light computational portion back to the data input of high speed memory. Such structure can perform the same computation on the same data repeatedly, or perform in high speed complicated computation such as sequential data comparison by small circuit. As mentioned above, the present apparatus comprises i) computational portion 100, comprising image information computational portion 110 which performs a certain numerical computation and the first information compression system 120 which performs status computation for extracting characteristics, ii) feedback control portion 200, connected to computational portion 100, which performs sequential processing, iii) 4 of the second information compression systems 300, 370, 380 and 390, connected to computational portion 100, each of which extracts characteristics of the data to be processed, iv) data input terminals to input digital data to computational portion 100, v) sequential processing data input terminals to input digital data to feedback control portion 200, vi) selector 420 which selects the output of computational portion 100, feedback control portion 200, or one of information compression systems 300, 370, 380 and 390, and vii) output terminals which output the output of selector 420. In this way, the present apparatus is constructed as a module. Therefore, input terminal is connected to preprocessing apparatus, and output terminal is connected to the following processing apparatus. Consequently, it is possible to design easier an image recognition system, it is not necessary to make software: it means that the present apparatus is of wide-usage. As mentioned above, using the present invention, it is possible to reduce a lot of designer's development quantity, and simultaneously, it is possible to make a digital data processing apparatus of wide-usage and high efficiency for a large quantity.

Claims: A data processing system comprising: i) a parallel type computational portion (100) including an image data computational circuit (110) for calculating characteristic values of image data by performing numerical computation and a characteristics information extracting circuit (121) for extracting neighbourhood pixel pattern information from said image data; ii) a sequential processing portion (210) for performing a thinning and a labelling process on output data received from said computational portion (100); iii) a plurality of information compression systems (300,370,380,390), wherein each of which extracts characteristics information from output data received from said sequential processing portion (110) by executing operations like accumulation or comparison; iv) a data inputting terminal for inputting digital data to said computational portion (100); v) a sequential processing data inputting terminal for inputting digital data to said sequential processing portion (210); vi) a selector (420) for selecting an output of said computational portion, said sequential processing portion, or one of said information compression systems (300,370,380,390); vii) an output terminal for outputting an output of said selector. A data processing system as claimed in Claim 1, further comprising a free-flag terminal for receiving a free-flag signal which shows whether said data processing system is accessible from a host computer or not. A data processing system as claimed in Claim 1, further comprising a mode terminal for receiving a mode signal which shows validity of input signal inputted to said data input terminal and a mode output terminal for outputting a mode output signal which shows validity of output signal from said output terminal.

Inventors: KUMAGAI RYOHEI, KUMAGAI, RYOHEI
Applicants: SHARP KK, YOZAN INC, SHARP KABUSHIKI KAISHA, YOZAN INC.
Application year: 1990
Main classification: G06T1
IPC codes: G06K9