Imaging apparatus and methods

Abstract: An imaging apparatus and method acquires image data from a non-invasive examination of a subject. The data is transferred among various agents (20, 30, 40, 50, 60. 70) on a data bus (B). A data acquisition agent (20) receives the image data from the non-invasive examination and generates subsequent agent locations and transmits the subsequent agent locations and the packets of image data along the data bus. Various image processing agents (30, 40, 50) each receive packets of data transmitted with that agent's location and performs imaging and processing operations on the data packets generating another agent location and thereafter transmitting the other agent location and process data packets along the data bus. A display agent (60) receives the processed image data packets from one of the image processing agents via the data bus, stores the processed image data packets and communicates the process image data to a man-readable image display (68).

Description: This invention relates to imaging apparatus and methods. More particularly the invention relates to apparatus and methods for the transfer of image data from one reconstruction agent to another. The invention finds particular application in conjunction with computed tomography (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 computed tomography 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, computed tomography and nuclear magnetic resonance reconstruction systems employ a global memory architecture, as represented in U.S. Patent 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 tomography 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. EP-A-0188828 discloses an image processing apparatus comprising an image data generating means, a data bus for transferring packets of image data, a plurality of image processing agents, each receiving packets of data transmitted along the data bus and transmitting the processed data packets along the data bus and a display agent for receiving processed image data packets from one of the image processing agents or from a picture memory via the data bus and communicating the processed image data to a man-readable image display. It is an object of the present invention to provide imaging apparatus and methods for the transfer of image data from one reconstruction agent to another which allows the various agents faster access to data. According to one aspect of the invention there is provided an imaging apparatus comprising: an image data generating means; a data bus for transferring packets of image data; a plurality of image processing agents, each receiving packets of data transmitted along the data bus with the agent's location, performing an image processing operation on the data packet, generating another agent location, and transmitting the another agent location and processed data packets along the data bus; and a display agent for receiving processed image data packets from one of the image processing agents via the data bus, storing the processed image data packets, and communicating the processed image data to a man-readable image display. In accordance with another aspect of the present invention there is provided an imaging method comprising the steps of generating image data of a subject; acquiring the generated image data, organizing the acquired data into data packets, and generating location messages to be included with the data packets; transmitting the data packets along a data bus, until the data packets reach the location designated by the location message; repeating the steps of organizing image data into data packets, generating location messages for the data packets, and transmitting the data packets on the data bus, for a plurality of varied image processing procedures; and, displaying processed image data packets received from the data bus, on a man-readable image display. 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 allows 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. One apparatus and method in accordance with the invention will now be described by way of example with reference to the accompanying drawings in which:- Figure 1 is a diagrammatic illustration of an imaging apparatus; Figure 2 is a more detailed illustration of components which are common to various agents of the apparatus of Figures 1; Figure 3 is a diagrammatic illustration of the apparatus of Figure 1 modified to provide in a parallel manner several display agents; and Figures 4A and 4B illustrate further alternative arrangements of the agents of the apparatus of Figure 1. With reference to Figure 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 then transferred via the data 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'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's interface 42 . The data is entered to and remains in a view processing agent's memory 44 until retrieved by a view processing agent'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 serial number 276,143, filed November 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'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'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' 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'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'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 FIGURE 2, interface 100 which represents the configuration of interfaces 22, 32, 42, 52, 62, 72 of FIGURE 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 "intelligent interrupt" 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's memory and may never actually leave the interface 100 . As can be seen in FIGURE 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'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 FIGURE 4A, agents 1-4 may be interchanged and re-ordered independent of any particular slot insert D-G as shown, for example, in FIGURE 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 FIGURE 3 are basically "intelligent interrupts" 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 FIGURES 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.

Claims: An imaging apparatus comprising an image data generating means (A); a data bus (B) for transferring packets of image data; a plurality of image processing agents (30, 40, 50), each (30, 40, 50) receiving packets of data transmitted along the data bus with the agent's location, performing an image processing operation on the data packet, generating another agent location, and transmitting the another agent location and processed data packets along the data bus (B); and a display agent (60) for receiving processed image packets from one of the image processing agents (30, 40, 50) via the data bus (B), storing the processed image data packets, and communicating the processed image data to a man-readable image display (68). An apparatus according to Claim 1 further including a data acquisition agent (20) for receiving image data from the image data generating means (A), generating an image processing agent location, and transmitting the agent location with packets of image data along the data bus (B). An imaging apparatus according to Claim 1 or Claim 2 further including interchanging means for interchanging the position of the agents (20, 30, 40, 50, 60) in relationship to one another. An imaging apparatus according to any preceding claim wherein each of at least the plurality of image processing agents (30, 40, 50) includes at least one microprocessor (36, 46, 56), memory means (34, 44, 54) and interface means (32, 42, 52). An imaging apparatus according to Claim 4 wherein the interface means (32, 42, 52) includes direct memory access registers (102). An imaging apparatus according to Claim 4 or Claim 5 wherein the interface means (32, 42, 52) includes means for accepting intelligent interrupts wherein the intelligent interrupts contain various types of information. An apparatus according to Claim 2 or any claim dependent on Claim 2 wherein said image data generating means (A) comprises a source (10) of penetrating radiation and an array of detectors (14) for detecting radiation that has traversed an image region (12); said data acquisition agent (20) receives data from the detector array (14), generates a preprocessing image processing agent location message and transmits packets of detector array data that include the preprocessing agent location on the bus (B); the preprocessing agent (30) receives from the bus (B) data packets that include the preprocessing agent location, processes and stores the received data, generates a view processing image processing agent location message, and transmits packets of preprocessed data that include the view processing agent location on bus (B); the view processing agent (40) receives from the bus (B) data packets that include the view processing agent location, convolves and stores the received data, generates a backprojector image processing agent location message, and transmits packets of image data that include the backprojector agent location on the bus (B); the backprojector agent (50) receives from the bus (B) data packets that include the backprojector agent location, backprojects and stores the received data, generates at least display agent location message, and transmits packets of image data that includes the display agent location on the bus (B); the display agent (60) receives from the bus (B) data packets that include the display agent location, stores and communicates the data to a man-readable display means (68), generates an archiving agent location message and transmits packets of image data that includes the archiving agent location on the bus (B); and the archiving agent (70) receives from the bus (B) data packets including the archiving agent location and thereafter archives the data. An apparatus according to Claim 7 wherein the agents (20, 30, 40, 50, 60, 70) are functionally independent computers, each agent having processing ability, memory and input/output capabilities. An apparatus according to Claim 4 or any claim dependent on Claim 4 wherein each interface means (32, 42, 42) further includes: a first set of input/output means (104) for inputting data not requested by the associated agent (30, 40, 50) and outputting data not requested by another agent (30, 40, 50); a second set of input/output means (102) for inputting data requested by the associated agent and outputting data requested by another agent, the second set of input/output means having direct access to the agent's memory. An apparatus according to Claim 9 wherein in at least one set of input/output means (102) includes direct access means to the associated memory means (34, 44, 54, or 110). An imaging method comprising the steps of: generating image data of a subject; acquiring the generated image data, organizing the acquired data into data packets, and generating location messages to be included with the data packets; transmitting the data packets along a data bus, until the data packets reach the location designated by the location message; repeating the steps of organizing image data into data packets, generating location messages for the data packets, and transmitting the data packets on the data bus, for a plurality of varied image processing procedures; and, displaying processed image data packets received from the data bus, on a man-readable image display. A method according to Claim 11 wherein the processing procedures are carried out concurrently. A method according to Claim 11 or Claim 12 wherein the data packets are portions of larger data blocks to be transferred. A method according to Claim 12 wherein the data packets from one data block are interleaved on the bus with data packets from other data blocks. A method according to any one of Claims 11 to 14 further including interfacing, through interfacing means, between the image processing procedures and the data bus, wherein intelligent interrupts are accepted at the interfacing means. A method according to any one of Claims 11 to 15 wherein the image data is derived from a computed tomography scanning apparatus image data generating means. A method according to any one of Claims 11 to 15 wherein the image data is derived from a nuclear magnetic resonance imaging apparatus image data generating means. A method according to Claim 17 comprising detecting radiation that has traversed an image region; acquiring data indicative of radiation detected which traversed the image region; generating a preprocessing location message; transmitting the generated data packets with the preprocessing location message onto the bus; receiving from the bus the data packet having the preprocessed location message; generating a view processing location message; transmitting the packet of data with the view processing location message onto the bus; receiving from the bus the data packet having the view processing location message; generating a back projector location message; transmitting the packet of data with the backprojector location message onto the bus; receiving from the bus, the data packet having the backprojector location message; generating at least one display location message; transmitting the packet of data with the display location message onto the bus; receiving from the bus the data packet having the display location message; generating an archiving location message; transmitting the generated packet of data with the archiving location message onto the bus; and, receiving from the bus the data packet having the archiving location message.

Inventors: BRUNNETT CARL J, GOCAL BEVERLY M, KERBER MICHAEL M, PEXA JAMES M, VRETTOS CHRIS J, BRUNNETT, CARL J., GOCAL, BEVERLY M., KERBER, MICHAEL M., PEXA JAMES M., VRETTOS, CHRIS J.
Applicants: PICKER INT INC, PICKER INTERNATIONAL, INC.
Application year: 1990
Main classification: A61B6
IPC codes: G06T11, A61B6, G06T1, A61B5