Abstract:
To process X-ray transmission image data at a high speed, a processor comprises a memory section including at least first, second and third storage, the first storage storing the X-ray transmission image data in a digital form which is used for medical diagnosis, and the second and third storage storing temporarily and exclusively the processed image data. The processor also includes a processor control section including, at least first, second and third address generators each of which independently generates an address signal and applies the same to the corresponding storage respectively, processing circuit which receives the image data and image data which is temporarily stored in one of the second and third storage and processes both image data and applies the same for storage purposes to the remaining of the second and third storage. The processor also includes a central control circuit having control signal generator which simultaneously applies address control signals to the first, second and third address generators respectively, storage control signals to the first, second and third storage respectively, and a control signal to the processing circuit, whereby processing operations in the processing circuit is effected in parallel, and the resultant processed image data is temporarily stored in the remaining of the second and third storage under the control of the central control circuit.

Description:
BACKGROUND OF THE INVENTION 
     The present invention relates to a processor for processing image data, e.g., X-ray transmission image data, at a high speed, and a processing method therefor. 
     Conventionally, in order to process image data by a microprocessor or the like, an arithmetic circuit having a single address bus and a single data bus is arranged to perform a sequence of operations concerning address calculations for a plurality of input data (i.e., output data read out from a plurality of memories), calculations between data, address calculations of output data for a plurality of output data, and data outputs. As a result, the processing speed is decreased, resulting in inconvenience. 
     The present invention has been made in consideration of the above situation, and has for its object to provide a processor and a processing method therefor so as to perform high-speed processing of image data. 
     SUMMARY OF THE INVENTION 
     The object described above may be accomplished by providing a processor comprising: 
     a memory section including at least first, second and third storage means, said first storage means storing original image data in a digital form which is used for medical diagnosis, and said second and third storage means storing temporarily and exclusively processed original image data; and 
     a processor control section including; 
     at least first, second and third address generating means each of which independently generates an address signal and applies the same to said corresponding storage means respectively, 
     processing circuit means which receives said original image data and image data which is temporarily stored in one of said second and third storage means and processes said both image data and applies the same for storage purposes to the remaining of said second and third storage means, and 
     central control circuit means having control signal generating means which simultaneously applies address control signals to said first, second and third address generating means respectively, storage control signals to said first, second and third storage means respectively, and a control signal to said processing circuit means, whereby processing operations in said processing circuit means is effected in parallel, and the resultant processed image data is temporarily stored in the remaining of said second and third storage means under the control of said central control circuit means. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The present invention will be best understood with reference to the accompanying drawings, in which: 
     FIG. 1 shows a schematic diagram of a processor according to one preferred embodiment of the present invention; 
     FIG. 2 shows a schematic diagram of a 3×3 filtering device into which the processor according to the present invention is introduced; 
     FIG. 3 shows a detailed schematic diagram of the processing circuit shown in FIG. 2; 
     FIG. 4 shows a detailed schematic diagram of the control signal generator shown in FIG. 2; 
     FIGS. 5 through 10 are time charts for explaining operations of the filtering device shown in FIG. 2; and 
     FIG. 11 shows a detailed schematic diagram of the processor control section according to another preferred embodiment of the present invention. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     FIG. 1 is a block diagram showing the basic configuration of a processor of the present invention. 
     A processor 100 has a processor control section 10 and a memory section 20. The memory section 20 has three storages 22, 24 and 26. The storage 22 stores original image data. The other storages 24 and 26 serve as first and second working or temporary storages, respectively. 
     Address generators 12, 13 and 14 for respectively accessing the storages 22, 24 and 26 are arranged in the processor control section 10. A processing circuit 15 is arranged in the processor control section 10. The processing circuit 15 receives output image data from the storage 22 and output data from the first working storage 24, and performs predetermined arithmetic operations. The calculation result is then supplied from the first working storage 24 to the second working storage 26. A central control circuit 16 is arranged in the processor control section 10. A control signal generator 17 for generating various control signals S1 to Sn is built into the central control circuit 16. These control signals are used to control respective circuits and devices of the processor (to be described later). A data bus line selector 18 is coupled between the storages 22, 24 and 26 and the processing circuit 15, as indicated by a two-dot/dash line. The data bus line selector 18 is controlled to selectively store the calculation results in the first or second working storages 24 or 26. The storage data can be read out and is fetched by the processing circuit 15 for subsequent calculations. 
     According to this processor, the control signals S1 to S3 are simultaneously supplied from the control signal generator 17 to the address generators 12 to 14, respectively. Similarly, the memory control signals S4 to S6 are simultaneously supplied from the control signal generator 17 to the storages 22 to 26, respectively. The control signal S7 is also supplied from the control signal generator 17 to the processing circuit 15. In this manner, parallel processing can be performed to store the operation results in the second working storage 26. As a result, high-speed operation can be performed, as compared with the operation speed of the conventional processor. 
     More particularly, the address generators 12 to 14 are operated in parallel, thereby performing parallel processing as the main feature of the present invention. This will be described later. 
     FIG. 2 shows a block diagram of a 3×3 filtering device in which the processor according to the present invention is incorporated. The reference numerals used in FIG. 1 denote the same circuit elements in FIG. 2. Reference numeral 200 denotes a filtering device which mainly comprises a processor control section 10, an original image data storage 22, and first and second working storages 24 and 26. The processor control section 10 comprises the first to third address generators 12 to 14, a processing circuit 15, a data bus line selector 18, an external controller 11, an internal controller 19, and the central control circuit (CCC) 16 having the control signal generator 17 therein. Address bus lines l1 to l3 are coupled between the address generator 12 and the storage 22, between the address generator 13 and the storage 24 and between the address generator 14 and the storage 26, respectively. The storages 22 to 26 are coupled to the data bus line selector 18 through data bus lines l5 to l7, respectively. 
     The external controller 11 controls the filtering device 200 in accordance with a control signal externally supplied through a control bus line l15. The internal controller 19 controls an external device (not shown) through a control bus line l16 in accordance with a control signal supplied from the control signal generator 17 through the data bus line selector 18. The address generators 12 to 14 are coupled to the data bus line selector 18 through control bus lines l8 to l10, respectively. The data bus line selector 18 is coupled to the processing circuit 15 through data bus lines l11 to l13. The data bus line selector 18 is controlled in accordance with a control signal from the control signal generator 17 in the central control circuit 16. The control signal generator 17 in the central control circuit 16 generates the control signals S1 to S3 for the address generators 12 to 14, the control signals S4 to S6 for the storages 22 to 26, the control signal S7 for the processing circuit 15, the control signal S8 for the data bus line selector 18, and the control signal S9 for the external controller 11. 
     A filter coefficient storage 28 is arranged in the original image data storage 22. A filter coefficient data F stored in the central control circuit 16 is given as expression (1) below: ##EQU1## The filter coefficient data F is practically divided into three steps. The first step includes the first to third coefficients F11 to F13; the second step includes the fourth to sixth coefficients F21 to F23; and the third step includes the seventh to ninth coefficients F31 to F33. Two adjacent coefficients, or a combination of a coefficient adjacent to a filter coefficient 0 and the filter coefficient 0 is read out for processing in response to the address signal S10 from the first address generator 12 every time a coefficient calculation is performed. For example, coefficients F11 and F12 are processed in the first filtering operation; F13 and 0, in the second filtering operation; F21 and F22, in the third filtering operation; . . . ; and F33 and 0, in the ninth filtering operation, thus completing the filtering processing. 
     FIG. 3 shows a detailed schematic diagram of the processing circuit 15 shown in FIG. 2. The processing circuit 15 comprises: first and second original image data latches 15A and 15B for latching image data G i ,j supplied through the data bus line l11; first and second coefficient data latches 15C and 15D for respectively latching the first and second filter coefficient data supplied through the data bus line l12 and the data bus line selector 18; a processed image data latch 15E for latching the processed image data supplied through the data bus line l12; a first multiplier 15F for multiplying an output from the first original image data latch 15A with an output from the first coefficient data latch 15C; a second multiplier 15G for multiplying an output from the second original image data latch 15B with an output from the second coefficient data latch 15D; a first adder 15H for adding outputs from the first and second multipliers 15F and 15G; a second adder 15I for adding outputs from the processed image data latch 15E and the first adder 15H; and an image data latch 15J for latching an image data sum. 
     FIG. 4 is a block diagram showing the internal configuration of the control signal generator 17. The control signal generator 17 comprises: a program counter 17A which is controlled through a control bus line l18 by the CCC 16; a first control memory 17B having an address area 17B 1  into which the address of the second control memory is stored and a sequence program area 17B 2  ; a first register 17C; a second control memory 17D for storing control data of various circuits which are controlled in response to an output from the first register 17C; and a second register 17E. Sequence data is fed back from the first register 17C to the program counter 17A through a bus line l22. The storage contents of the second control memory 17D include: control data of the first to third address generators 12 to 14 in memory areas A1 to A3; control data of the original image storage 22 in a memory area A4; control data of the first working storage 24 in a memory area A5; control data of the second working memory 26 in a memory area A6; control data of the processing circuit 15 in a memory area A7; control data of the data bus line selector 18 in a memory area A8; control data of the external controller 11 in a memory area A9; and control data of the filter coefficient data storage 28 in a memory area A10. These data are produced as the control signals S1 to S9 through the register 17E. 
     The operation of the control signal generator 17 described above will now be described. 
     In the control signal generator 17 shown in FIG. 4, the program counter 17A is operated in accordance with a control signal which is supplied from the CCC 16 through the control bus line l18 so as to access the first control memory 17B through a bus line l19. The address data and sequence program data of the second control memory 17D are separately stored in the first control memory 17B. The program and address signals which are required for filtering operation are selected in the control memory 17B in accordance with an output from the program counter 17A, and are supplied to the register 17C through a bus line l20. The sequence program data is then fed back to the program counter 17A and is used as timing data. The address data is supplied to the second control memory 17D through the first register 17C and is stored in a predetermined memory area of the second control memory 17D. The control signal of the control system which is stored in the second control memory 17D and is required for filtering operation is selected in units of memory areas and is read out therefrom. This control signal is supplied to each control system through the second register 17E. 
     The-filtering device (FIG. 2) controlled in accordance with the output from the control signal generator 17 is operated as follows. The data data bus line selector 18 is activated in response to the control signal S8 so as to couple the data bus line l5 of the original image data storage 22 to the input data bus line l11 of the processing circuit 15, and the data bus line l6 of the first working memory 24 to the output data bus line l13 of the processing circuit 15. In this state, as described in connection to the expression (1), two filter coefficients data (e.g., F11 and F12) is sent along the coefficient data bus line l11, so that a filtering operation to be described with reference to the processing circuit 15 is performed for the entire area of the original image (i.e., one-frame image data). Thereafter, the image data after this first filtering operation are sequentially stored in the first working storage 24 through the data bus lines l13 and l6. The data bus line selector 18 is then operated to couple the input data bus line l12 of the processing circuit 15 and the data bus line l6 of the working storage 26. The output data bus line l13 of the processing circuit 15 is coupled to the data bus line l7 connected to the second working storage 26. In this state, the coefficients F13 and 0 are sequentially read out from the coefficient data storage 28 and are supplied through the data bus line l5 and the input data bus line l11 to the processing circuit 15, so that the processing circuit 15 performs a second filtering operation of the one-frame image data. At the same time, the image data (i.e., data obtained by the first filtering operation) in the first working storage 24 are stored in the second working storage 26 through the data bus lines l13 and l7. Thereafter, the data bus line selector 18 is operated to couple the data bus line l7 of the second working storage 26 to the input data bus line l12 of the processing circuit 15, so that the output data bus line l13 of the processing circuit 15 is coupled to the data bus line l6 connected to the first working storage 24. In this state, filter coefficients F21 and F22 are read out to perform a third filtering operation. The data obtained by the third filtering operation is added to the data of the first and second filtering operations which are read out from the second working storage 26. A sum is then stored in the first working storage 24. Data obtained by processing the subsequent filter coefficients F23, 0, F31, F32, F33 and 0 in units of two adjacent coefficients are alternately stored in the first and second working storages. This processing will be described in detail later. 
     The detailed operation of the processing circuit 15 will be described with reference to the block diagram in FIG. 3 and the timing charts in FIGS. 5 to 10. 
     In the processing circuit 15, the two filter coefficients F11 and F12 are sequentially latched by the coefficient data latches 15C and 15D, and original image data G i ,j are sequentially latched by the original image data latches 15A and 15B at corresponding addresses. The operation of equation (2) below is performed by the multipliers 15F and 15G and the adders 15H and 15I so as to obtain the first calculation result r1 i ,j. The first calculation result r1 i ,j is latched by the latch 15J and is then stored in the first working storage 24 in the manner previously described: 
     
         r1.sub.i,j =(F11·G.sub.i,j)+(F12·G.sub.i,j+1) (2) 
    
     This calculation is performed for all the original image data G i ,j (see FIG. 5). It is noted that in the following timing charts in FIGS. 5 through 10 &#34;X&#34; indicates &#34;no signal is output&#34; and &#34;φ&#34; means &#34;don&#39;t care&#34;. 
     The filter coefficients F13 and 0 are latched by the latches 15C and 15D, and the original image data G i ,j are sequentially latched by the latches 15A and 15B at corresponding addresses. The first calculation data r1 i ,j stored in the first working storage 24 is latched by the latch 15E, and the calculation of equation (3) below (i.e., the second calculation) is performed, thereby obtaining a second calculation result. This result is latched by the latch 15J and is then stored in the second working storage 26. 
     
         r2.sub.i,j =(F13·G.sub.i,j+2)+(0·G.sub.i,j+3)+r1.sub.i,j (3) 
    
     The above calculation is performed for all the original image data (i.e., one-frame image data) (see FIG. 6). 
     The filter coefficients F21 and F22 are sequentially latched by the latches 15C and 15D, and the original image data G i ,j are latched by the latches 15A and 15B. The second calculation result r2 i ,j currently stored in the second working storage 26 is latched by the latch 15E, and the calculation of equation (4) below is performed, thus obtaining a third calculation result r3 i ,j. This result is latched by the latch 15J and is then stored in the first working storage 24. 
     
         r3.sub.i,j =(F21·G.sub.i+1,j)+(F22·G.sub.i+1,j+1)+r2.sub.i,j (4) 
    
     The above calculation is performed for all the original image data (see FIG. 7). 
     Subsequently, the filter coefficients F23 and 0 are latched by the latches 15C and 15D, and the original image data G i ,j are latched by the latches 15A and 15B. The third calculation result r3 i ,j currently stored in the first working storage 24 is latched by the latch 15E, and the calculation of equation (5) below is performed, thereby obtaining a fourth calculation result. This result is latched by the latch 15J and is then stored in the second working storage 26. 
     
         r4.sub.i,j =(F23·G.sub.i+1,j+2)+(O·G.sub.i+1,j+3)+r3.sub.i,j (5) 
    
     The above calculation is performed for all the original image data (see FIG. 8). 
     The filter coefficients F31 and F32 are latched by the latches 15C and 15D, and the original image data G i ,j are latched by the latches 15A and 15B. The fourth calculation result r4 i ,j currently stored in the second working storage 26 is latched by the latch 15E, and the calculation of equation (6) below is performed, thereby obtaining a fifth calculation result. This result is latched by the latch 15J and is then stored in the first working storage 24. 
     
         r5.sub.i,j =(F31·G.sub.i+2,j)+(F32·G.sub.i+2,j+1)+r4.sub.i,j (6) 
    
     The above calculation is performed for all the original image data (see FIG. 9). 
     Finally, the filter coefficients F33 and 0 are latched by the latches 15C and 15D, and the original image data G i ,j are latched by the latches 15A and 15B. The fifth calculation result r5 i ,j currently stored in the first working storage 24 is latched by the latch 15E, and the calculation of equation (7) below is performed, thereby obtaining a sixth calculation result. This result is latched by the latch 15J and is then stored in the second working storage 26. 
     
         r6.sub.i,j =(F33·G.sub.i+2,j+2)+(O·G.sub.i+2,j+3)+r5.sub.i,j (7) 
    
     The above calculation is performed for all the original image data (see FIG. 10). 
     As a result, equation (7) can be rewritten as equation (8) which provides processed data R i ,j as follows: ##EQU2## The 3×3 filtering processing is thus completed. 
     A modification of the processor control section 10 (FIG. 2) is shown in FIG. 11. A processor control section 10 shown in FIG. 11 comprises a one-chip IC. The circuit configuration of the processor control section 10 in FIG. 11 is substantially the same as that in FIG. 2, and will be briefly described hereinafter. 
     The processor control section 10 includes a timing generator (TG) 50. The timing generator 50 generates control signals in synchronism with an external clock signal CK. Some of the control signals are supplied to an internal controller 19, thereby supplying the timing signals to a processing circuit 15 and a data bus line selector 18. 
     The processor control section 10 also includes an input/output interface section 52 so as to couple an external controller 11, the internal controller 19 and the data bus line selector 18 to each other, so that the data signals processed by the processor control section 10 can be supplied to an external device (not shown) and can receive signals from the external device. The processor control section 10 further includes three address generators 12, 13 and 14 which are connected, through a memory interface section 54, to an original image data storage 22, working storages 24 and 26, and a filter coefficient storage 28. 
     While the invention has been described in terms of certain preferred embodiments, and exemplified with respect thereto, those skilled in the art will readily appreciate that various modifications, changes, omissions and substitutions may be made without departing from the spirit of the invention. 
     For example, a 3×3 filtering operation is exemplified in the above embodiments. However, the present invention may be applied to 5×5 or 7×7 filtering operations. Furthermore, the number of multipliers may be increased and the number of latches accordingly increased so as to perform parallel operations of adjacent coefficients, thereby further increasing the operation speed. 
     The following configuration can be provided as a modification of the control signal generator 17 shown in FIG. 4. This modified control signal generator has a function as a pipeline control section. The output terminal of the address area 17B 1  of the first control memory 17B is connected to a plurality of delay circuits through a latch. These delay circuits are connected to the areas of the second control memory 17D. The output terminal of the sequence program area 17B 2  of the first control memory 17B is connected to the program counter 17A through a command decoder, thereby forming a feedback path. 
     The delay of the signals from the circuit elements (e.g., address generators) in the pipeline operation can be absorbed, so that the number of program steps (control memory capacity) can be decreased.