Prism architecture for ct scanner image reconstruction
BACKGROUND OF THE INVENTION 
     The present invention relates to the transfer of image data from one reconstruction agent to another. The invention finds particular application in conjunction with tomographic (CT) scanners and will be described with particular reference thereto. However, it is to be appreciated that the invention is also applicable to other types of diagnostic imaging, image reconstruction, image and data processing, and the like. 
     In the field of computerized tomographic scanners, the accurate and rapid reconstruction of images is of utmost importance. One of the major drawbacks in accurate image reconstruction has been the amount of time necessary to complete the image reconstructions for each scan of a multiscan procedure. The image from one scan is substantially completed before the next scan is initiated. The longer the time necessary to complete the image and initiate the next scan of the procedure, the more likely procedure degrading occurrences, such as patient movement, become. 
     Increasing the speed at which acquired data is reconstructed results in a corresponding increase in image quality. The speed at which an image is reconstructed is dependent upon the time necessary to pass data among the various reconstruction agents. The speed of this reconstruction is directly related to the accessibility of data required by an agent stored in a memory location. 
     At present, computer tomographic and nuclear magnetic resonance reconstruction systems employ a global memory architecture, as represented in U.S. Pat. No. 4,654,797 to Fujita, et al. In a global memory architecture, all data is located in a main memory. The various agents must gain access to the main memory to acquire data for the performance of its operations and to return the partially processed data. The moving of data into and out of the global memory by many agents causes congestion and limits processing speed. The various components that perform out of global memory operations, access the global memory by first specifying an address and then either reading or writing data to that specific address. 
     All communication between the various agents or components necessary in the reconstruction process is done through accessing of the main memory. Therefore, the speed at which the individual agents or components can function is bound to the speed of the main memory. Additionally, although some special actions in the reconstruction process can be performed concurrently there is a hierarchy or priority of performance of the agents `or the components` functions. 
     While the processing agents may be capable of processing independently, all memory access to acquire data must be outputted serially from the main memory. Thus, some agents must at times sit idle and wait for data while other agents are accessing memory. 
     The global memory architecture presently used in computed tomographic and nuclear magnetic resonance imaging creates a back-up or bottle-neck of agents or components wishing to access the main memory. Implementation of a hierarchial system for access to main memory among the various reconstruction agents implies a slow down in the ability of the various agents to acquire the necessary data to perform their required function. 
     In accordance with the present invention, an architecture which allows the various agents or components faster access to data is provided. 
     SUMMARY OF THE INVENTION 
     In accordance with one aspect of the present invention, a device is provided for the reconstruction of a computerized tomographic image. A source of penetrating radiation impinges upon an array of detectors arranged for detecting radiation that has traversed selected image regions. A data acquisition agent receives the data from the detector array and generates a preprocessing agent location message and transmits packets of detector array data which include the preprocessing agent location on a data bus. A preprocessing agent which has received from the bus data packets including the preprocessing agent location, processes and stores the received data, generates a view processing agent location message, and transmits packets of preprocessed data that include the view processing agent location on the bus. 
     A view processing agent receives from the bus data packets which include the view processing agent location. It performs various calibration and correction processes, and convolves and stores the received data, generates a backprojector agent location message, and transmits packets of image data that include the backprojector location on the bus. A backprojector agent receives from the bus data packets, including the backprojector agent location and backprojects the received data, generates at least a display agent location message, and transmits packets of image data that include the display agent location on the bus. A display agent which receives data packets from the bus that include the display agent location, stores and communicates the data to a man-readable display means or video monitor. The backprojector agent also generates an archiving agent location message, and transmits packets of image data that include the archiving agent location on the bus. Finally, an archiving agent receives data packets from the bus including the archiving agent location on the bus and thereafter archives the data. 
     In accordance with another aspect of the present invention, a data processing image reconstruction system is provided. A data bus for the transfer of image data in the form of data packets is provided. Agents used for the reconstruction or processing of image data are associated with the data bus. Each of the agents used for the processing of data contain an interface for communication between the agent and the data bus. Each agent also has a microprocessor for the processing of data accepted into the agent through the interface, and memory for storage of data accepted into the agent by the interface and for storage of data processed by the microprocessor. 
     One advantage of the present invention resides in its speed. The preferred embodiment allows the transfer of data between the agents at a speed of 40 megabytes per second on the data bus. 
     Another advantage of the present invention resides in the ability of each agent to have immediate access to required data found in memory locations. The preferred embodiment has memory locations associated with each of the reconstruction agents. 
     Another advantage of the present invention is that it provides flexibility of growth to the system. The present invention is constructed to allow additional reconstruction agents to be added, thereby upgrading the entire system. 
     Yet another advantage of the present invention resides in the interchangeability of location of the various agents. By distinction, the prior art required, due to the hard wiring of interrupts and other message paths from board to board, that the reconstruction agents maintain specific physical locations in the system. 
     Still further advantages of the present invention will become apparent to those of ordinary skill in the art upon reading and understanding the detailed description of the preferred embodiment. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The invention may take form in various parts and arrangements of parts and in various steps and arrangements of steps. The drawings are only for purposes of illustrating a preferred embodiment and are not to be construed as limiting the invention. 
     FIG. 1 is a diagrammatic illustration of a computerized tomographic scanner in accordance with the present invention; 
     FIG. 2 is a more detailed illustration of the components which are common to the various agents; 
     FIG. 3 is a simplified block diagrammatic illustration of the present invention arranged in a parallel manner; 
     FIGS. 4A and 4B are alternate embodiments of the present invention as shown in FIG. 1. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     With reference to FIG. 1, an image data generating means A, such as a magnetic resonance or CT scanner, non-invasively examines a subject and generates image data in accordance with the examination. In an illustrated CT embodiment, the scanner includes an x-ray source 10 that projects a fan beam of radiation across an examination region 12. A detector array 14 receives radiation that has traversed the examination region and a portion of the subject therein as the fan beam is rotated therearound. Electronic data signals indicative of radiation absorptive or transmissive properties of the subject in the examination region are generated by the detector array and associated circuitry. 
     A data bus B transfers packets of data from the image data generating means among a plurality of data processing agents C. A first or data acquisition agent 20 comprised of an interface 22, a FIFO memory 24, and a microprocessor 26, acquires data generated by the image data generating means A. The interface 22 organizes the data acquired from the detector array 14 now stored in its memory FIFO 24 into small data packets approximately 32 bytes in size. 
     These data packets are transferred via the data C bus B to a second or preprocessing agent 30. The preprocessing agent has an interface 32 which inputs the data packet into the preprocessing agent 30. The data packets entering the system through the interface 32 are stored in a preprocessing agent memory 34 until a preprocessing agent&#39;s microprocessor 36 requests data stored in the memory. While in the preprocessing agent 30, the data acquired is rearranged and other corrections or adjustments are made by the preprocessing microprocessor 36. Upon request from a third or view processing agent 40, the preprocessed data stored in preprocessing memory 34 is pulled out and organized into small data packets by the interface 32. Each of the data packets is merged with a location message directing the data packet to the view processing agent 40 to form a message that is transferred along the data bus to the view processing agent 40. 
     Upon arriving at the view processing agent 40, the data packet is entered into the agent from data bus B through a view processing agent&#39;s interface 42. The data is entered to and remains in a view processing agent&#39;s memory 44 until retrieved by a view processing agent&#39;s microprocessor 46. While in the view processing agent 40, the microprocessor convolves sets of the data with convolution functions further manipulating and processing it into proper form for backprojecting. This reconstruction technique is further described in U.S. Patent application Ser. No. 276,143, filed Nov. 25, 1988. 
     This image data, which again has been stored in view processing memory 44, is transmitted out of the view processing agent 40 in data packets after a request from a fourth or backprojector agent 50. The requested data packets enter the backprojector agent 50 through a backprojector agent interface 52 and are stored in a backprojector agent memory 54. A backprojector agent microprocessor 56 backprojects the image data sets. 
     Upon a request from a fifth or display agent 60, the backprojector agent 50 forms data packets including the display agent location and transmits the data packets onto the data bus via the backprojector agent&#39;s interface 52. The display agent receives these data packets via a display interface 62, stores them in a display memory 64. A display agent&#39;s microprocessor 66 selectively retrieves image data from the display memory 66 on a video monitor 68 or other type of display means. 
     The image, which is reconstructed and displayed by the display agent 60, is archived by a sixth or archiving agent 70. The archiving agent 70 receives the data in a manner similar to that previously discussed. Specifically, through the interface 72 after which it is stored in its memory 74 until need by its microprocessor 76. 
     Data originally derived by the detector array 14 and then acquired by the data acquisition agent 20 is organized into packets of data to be placed on the data bus B which operates at a speed of 40 megabyte per second. Communication between the data bus B and the agents C occurs through interfaces 22, 32, 42, 52, 62, 72. For example, data from the agents C, stored in the agents&#39; memories 24, 34, 44, 54, 64, 74, after having been processed by the microprocessor 26, 36, 46, 56, 66, 76, are transferred out to the data bus B through the interfaces 22, 32, 42, 52, 62, 72. 
     Upon receiving a request for data, an agent C transfers the requested block of data. The agent transfers the requested block of data in small data packets until the entire block of data is transferred. The sending circuitry transfers the data in packets of data each of which contain the identification (ID) of the sending agent and the ID and location of the receiving agent. The receiving circuitry of interfaces 22, 32, 42, 52, 62, 72 collects only data packets with its ID. 
     The interfaces 22, 32, 42, 52, 62, 72 send small packets, 32 bytes per packet, one at a time on to the data bus. Transferring the data in such a manner, the data packets are interleaved on the data bus with data packets from other agents. For example, a data packet from the view processing agent 40 can be followed by a data packet from the data acquisition agent 20, which can in turn be followed by a packet by the backprojector agent 50. 
     The data acquisition agent 20 receives blocks of data from the CT gantry A and divides it into data packets. The data acquisition agent 20 also generates a preprocessing agent location message, this and other location messages actually being fields within appropriate data packets, which is transmitted with the data packet onto the data bus. The location message tells the data packet its destination once it is on the data bus B. 
     In the preferred embodiment, one agent communicates with another agent, not by addressing the memory in the other agent, but merely by sending what is called a location message. As stated above, the location message is actually a field within the data packet The location message directs the data to a particular agent, e.g. from the data acquisition agent 20 to the data storage and preprocessing agent 30. The message does not specify specifically what is to occur to the data when it arrives at its destination. It is up to the receiving agent to decide, through the use of its individual computing ability, what to do with the data and to manage its own memory. Therefore, transfers of data packets are not from memory location to memory location within a global memory as they are in a conventional global system but are rather from agent to agent. A key point of the present embodiment is that since each of the agents is, in fact, a computer with decision making capabilities, the data packets are coming into each agent autonomously. The packets are not targeted for a particular address as is done in a conventional system. Having agents which are in essence computers allows a data packet to be sent to an agent and then the software, resident in the receiving agent, decides where to put the data and how it is to be used. 
     Each packet is identified as to where the packet is to go and as to what type of data (i.e. scan data, image data, calibration data) it is. 
     When the preprocessing agent 30 receives a data packet from the data bus B, the packet includes the preprocessing agent&#39;s location. Thereafter, the preprocessing agent 30 processes and stores the received data. Upon receiving a request, the preprocessing agent 30 generates a data package having a view processing agent location message in the packet and thereafter transmits packets of data on to the data bus B via its interface 32. The data packet from the preprocessing agent 30 travels along the data bus B interleaved with data packets from other agents until it reaches the location designated by the location message included in its data packet. In this case, it is received by the view processing agent 40 through the view processing agent&#39;s interface 42. The view processing agent 40 processes the data received and thereafter stores the received data in its memory 44. Upon receiving a request, the view processing agent 40 transfers data packets in a similar manner to that discussed above. In the present embodiment these packets are delivered to the backprojector agent 50. 
     The backprojector agent 50, upon receiving a request for data produces data packets, from a larger data block, which includes a location message for the destination of the data packets, in this instance a display agent location message. The backprojector agent 50 puts these data packets onto the data bus B through its interface 52. The data packets travel on the data bus B at 40 megabytes per second until each reaches its destination designated by the display agent location message of the data packet. 
     Upon receiving the data packets from the backprojector agent 50, the display agent 60 stores the data in its memory 64 and communicates the data to a man-readable display, e.g. a video monitor. Upon receiving a request from the archiving agent 70, the backprojector agent 50 passes along the requested data in data packets similar to the previous described methods. 
     With reference to FIG. 2, interface 100 which represents the configuration of interfaces 22, 32, 42, 52, 62, 72 of FIG. 1, each contain a direct memory access register 102 which transfers large blocks of data between agents. Transfer of the large block of data is accomplished through the direct memory access register 102, after the data has been organized into smaller data packets. A transfer initiated by the direct memory access register takes the data directly from memory into direct memory access circuitry and thereafter directly out onto the bus. This direct memory access register 102 is initiated for data exiting an agent and for data entering an agent. 
     The interface also has a standard register 104 for inputting and outputting data. Both registers in interface 100 are designed to be active at the same time. 
     The standard register 104 is arranged in a pipeline fashion wherein several messages can be stacked succeedingly in the register. The messages are read one word at a time, enabling software to perform a read out of register 104. This type of message is an unrequested message or an &#34;intelligent interrupt&#34; and can arrive at any time. The receiving circuitry transfers this type of unrequested data packet into a FIFO buffer 106 where it resides until the microprocessor 108 reads the message. 
     The direct memory access register 102 is activated when information is requested. During a requested exchange, information is written to the direct memory access register 102 and this information moves directly into an agents C memory 110. This information is written in the form of data packets which have been previously discussed. The advantage of the direct memory register is that the bus operates at 40 megabytes per second. Because the direct memory access register 102 outputs the data directly to the bus, the data travels at this faster speed. This is in contrast to two agents directly hooked together with the transfer moving at the slowest speed between the two agents, a transfer speed being based on the speed of the main memory. The direct memory register 102 allows the movement of messages directly from the bus into one of the local agents memories 24, 34, 44, 54, 64, 74. 
     In normal operation, data entering the interface 100 is directed into memory 110. The data is removed from the agent memory and processed by the microprocessor 108 in accordance with the preprogrammed data processing operation or function of the agent. Other data, which is passed on the data bus, is logic-type information used to synchronize the flow of data through the system, or data which states that the system is ready for operation. These types of data contain information that does not end up stored in the agent&#39;s memory and may never actually leave the interface 100. 
     As can be seen in FIG. 3, the parallel arranged system enables the agents to be expanded, e.g. multiple display agents can be added. Display Agent No. 1, 60a, Display Agent No. 2, 60b, and Display Agent No. 3, 60c, are all attached to the bus to allow parallel operation. One display unit can be at an off site location, for instance, a doctor&#39;s office, while another display units can be in other locations. 
     This flexibility in the arrangement of the present invention also allows the system to be upgraded with minimum redesign difficulties. For instance, a low cost scanner can have additional agents added to the system and the potential for a high performance scanner is possible with relatively little redesign in this section. The present invention also allows the system to recognize and by-pass a faulty agent in favor of a functional agent. 
     As illustrated in FIG. 4A, agents 1-4 may be interchanged and re-ordered independent of any particular slot insert D-G as shown, for example, in FIG. 4B. In the traditional global system communication, whether interrupts or data, is handled through wiring from one board to another. In order to pass an interrupt from one piece of circuitry to another, it is necessary to have a wire or connection either through the back plane or from board to board. In the present system, this is not necessary. All of the communication, including interrupts, is handled through messages sent on the data bus B. Therefore, the agents 1-4 are not tied to any one insert slot D-G. 
     The unrequested messages discussed in connection with FIG. 3 are basically &#34;intelligent interrupts&#34; because the messages contain significant amounts of various types of information. It is a message which is not expected, calls for action by the agent to which it is sent, and provides information as to the specific nature of that action. In a conventional computer architecture, these interrupts are hard wired and there is a limited defined finite number of interrupts capable in such a system. Additionally, they convey a limited amount of information. In the present invention, the interrupts are controlled exclusively by the software and there is no limit to the number of such messages. 
     With continuing reference to FIGS. 4A and 4B, the location of a specific agent is not required to be in a specific slot due to internal look-up tables individually produced by each of the agents 1-4, upon energization. When the system is energized, one of the agents 1-4 sends out inquiries interrogating the other agents as to function and location. A message is produced telling the inquiring agent the type of agent and its location. From these messages, this agent constructs a look-up table and sends that to each agent. When an agent wants to send a data packet, the board consults its internal table and pulls up a number which is an identification of the agent at a certain location. This allows the sending agent to put the proper location message with the proper data package. 
     The invention has been described with reference to the preferred embodiment. Obviously, modifications and alterations will occur to others upon reading and understanding the preceding detailed description of the preferred embodiment. It is intended that the invention be construed as including all such modifications and alterations insofar as they come within the scope of the appended claims or the equivalents thereof.