various embodiments of the present invention , including a preferred embodiment , will be described in detail with reference to the drawings wherein like reference numerals represent like parts and assemblies throughout the several views . reference to the described embodiments does not limit the scope of the invention , which is limited only by the scope of the appended claims . additionally , the logical operations of the various embodiments of the invention described herein are implemented as : ( 1 ) a sequence of computer implemented steps running on a computing system of a work station or an mri scanner ; and / or ( 2 ) interconnected machine modules or programmed engines within the computing system . the implementation used is a matter of choice , and the logical operations making up the embodiments of the invention described herein may be referred to as operations , steps , or modules . in general terms , the present invention relates to processing mri data to create a stream of volume renderings in real time with respect to the time that a scanner collects the mri data from an imaging sample , such as a patient &# 39 ; s body . the mri scanner collects data from the patient and downloads the data to a computer system that continuously processes the data and produces volume renderings depicting internal structures . the volume is rendered concurrently with mri data acquisition and download , which provides a low latency between the time the data is collected from the patient and the time the volume is rendered . it may also provide the generation of many renderings per second . the rendering is continuously refreshed with new mri image data , and a caregiver can view changes in shapes as they occur within a patient &# 39 ; s body . it also allows a caregiver to obtain real - time three - dimensional feedback while manipulating objects within a patient &# 39 ; s body . [ 0018 ] fig1 and 2 illustrate the hardware and operation , respectively , of one possible embodiment of a system that embodies the invention . an mri scanner is generally shown as 100 , and can be any type of scanner that is useful for performing magnetic resonance imaging . an example of such a scanner is signa 1 . 5 tesla echospeed mr scanner using a 4 - element cardiac phased - array coil , which is commercially available from general electric medical systems of milwaukee , wis . however , the claimed invention can be embodied using a variety of other mri scanners and other coil arrangements . the mri scanner 100 includes a data path 1 13 that provides data communication between a pulse sequence generator 102 , data acquisition subsystem 108 , random access memory ( ram ) 110 , and a data transfer device 112 such as a model 618 - 9 u bus adaptor , which is commercially available from the bus adaptor group of sbs technologies , inc . in st . paul , minn . the data transfer device is connected to a data acquisition rack ( not shown ) of the mri scanner 100 and provides bi - directional data communication between the mri scanner 100 and a computer 114 . the pulse sequence generator 102 is in communication with magnetic field gradient coils 103 and radio frequency ( rf ) transmit coils 104 . the data acquisition subsystem 108 is in communication with and receives information from magnetic resonance ( mr ) receiver coils 106 . in one possible embodiment , the pulse sequence generator 102 generates a two - dimensional gradient - recalled echo - train pulse sequence using view sharing between even and odd echoes , which doubles the rate at which frames of the image can be rendered by the computer 114 . other possible embodiments use other types of two - dimensional pulse sequences or even three - dimensional pulse sequences . in operation , referring to fig1 and 2 , a patient 105 is placed in a static magnetic field that is generated by the mri scanner 100 . the static magnetic field aligns protons within tissues of the patient &# 39 ; s body . during operation 200 of the mri scanner 100 , the pulse sequence generator 102 generates waveforms that are sent to the rf and magnetic field gradient coils 104 . these waveforms cause perturbations in the proton alignments in order to produce “ echo ” signals , which are picked up by the mr receiver coils 106 . there is one mr receiver coil for each channel of the mri scanner 100 . in one possible embodiment , the mri scanner 100 has four channels and hence four mr receiver coils 106 , which provide greater signal - to - noise ratio than if fewer channels , are used . when a two - dimensional pulse sequence is used , the raw mri data collected corresponds to imaging planes called slices . each image slice is given a slice number identifying its location relative to other image slices generated by the mri scanner 100 . this slice number is stored in memory 1 10 together with the raw mri data that corresponds to the slice . in one possible embodiment , the image slices are parallel to one another and are equally spaced . the image slices can be generated in any order , although one possible embodiment generates them sequentially . during operation 202 , the data acquisition subsystem 108 samples the electrical signal induced in the mr receiver coils 106 , converting the sampled electrical signals from analog to digital and then storing them in the memory 1 10 at operation 204 . information related to the raw mri data is also stored in the memory 1 10 . examples of this related information include the image slice number , resolution , field - of - view , orientation of the slice , and time and data stamps . during operation 202 , the data acquisition subsystem 108 also may perform other signal processing steps to the sampled electrical signals including amplification and filtering . after the raw mri data is collected for a slice , operation 206 generates a data ready signal that is communicated to the computer 114 and then at operation 207 immediately begins to transfer the raw mri data and related information 208 to the computer 114 . the raw mri data and related information is transferred from the memory 110 , through the data transfer device 112 , and across the data bus 134 to the computer 114 for processing to produce the volume rendering . in one possible embodiment , two - dimensional mri data are transferred at a rate of 15 images per second or higher . the operations 200 , 202 , 204 , and 206 are repeated , until the loop is interrupted by user intervention or otherwise . repeating the mri scans indefinitely provides a continuous stream of raw mri data that is generated , stored in memory 108 , and transferred to the computer 114 . in one possible embodiment , operation 204 , which transfers the raw mri data to the computer 114 , is performed after the data acquisition for each image slice is completed . however , the raw mri data and related information can be downloaded to the computer 114 more or less frequently . for example , the raw mri data and related information can be downloaded to the computer 114 several times during the generation of a single image slice or only after the generation of a plurality of image slices is complete . referring back to fig1 the computer 144 processes the raw mri data to reconstruct images and produce volume renderings . the computer 114 can be any type of computer that is capable of processing data and rendering a graphical display . in one possible embodiment , the computer 114 is a multiprocessor computer that is capable of parallel processing using multi - threading programming techniques . an example of such a computer is an onyx2 reality ™ visualization system , which utilizes four microprocessors and is commercially available form silicon graphics , inc . of mountain view , calif . other embodiments use other types of computing systems and may not utilize parallel processing . the computer 114 includes a data bus 132 ; a monitor 130 ; random access memory ( ram ) 120 , which provides general memory ; high - speed graphics memory , in which is located a 3d image buffer 118 for temporarily storing reconstructed image data ; a data transfer device 124 ; and an input / output subsystem 126 that provides an interface for various peripherals such as user input devices 128 . the data bus 132 provides data communication between the various hardware components of the computer 114 . the data transfer device 124 provides data communication with the data bus 134 and hence the mri scanner 100 . an example of one possible data transfer device 124 is the model 618 - 9 u bus adaptor . the computer also includes storage devices such as a hard disk drive or other drive for storing data on a removable media such as a floppy disk , a compact disk ( cd ), a digital video disk ( dvd ), or any other recordable media . additionally , the ram 120 shares a data bus with the compute engine 122 , and the 3d image buffer 188 shares a data bus with the graphics engine 116 . in another embodiment , the general memory and the 3d image buffer are partitioned within the same ram 120 . the monitor 130 can be any type of monitor suitable for displaying a graphical image . in one possible embodiment , the monitor 130 is an mri compatible lcd display such as models mri18h or mri18l , which are commercially available from aydin displays , inc . of horsham , penn . the monitor 130 and the user input devices 128 then can be placed in a gantry room close to the mri scanner 100 . this position enables a caregiver to view and manipulate the volume rendering while performing procedures on a patient . another possible embodiment utilizes a stereoscopic display , which provides a full three - dimensional effect when using a stereographic viewing device such as crystal eyes ™ goggles , commercially available from stereographics corp . of san rafael , calif . in one embodiment , the computer contains two main processing modules , the compute engine 122 , and the graphics engine 116 . the compute engine 122 is used for managing the flow of mr image data , performing reconstruction of images , responding to user input , and control of the graphics engine 116 , including the submission of new image data to the 3d image buffer 118 . the graphics engine 116 is used for creating the volume rendering from the images stored in the 3d image buffer 118 . below , we discuss multi threading for execution of compute engine 122 tasks in parallel , though other embodiments may use different thread configurations or may not use multi - threading at all . the compute engine 122 utilizes threads to parallelize data transfer , image reconstruction , and control of the graphics engine 116 . the data transfer thread includes code for communicating with the mri scanner 100 to coordinate the downloading of raw mri data and related information 208 from the mri scanner 100 and the transmission of commands from the computer 114 to the mri scanner 100 . the data transfer thread also stores the raw mri data and related information 208 into the ram 120 when it is downloaded from the mri scanner 100 . additionally , there is one image reconstruction thread for each mr receive coil 106 of the mri scanner . in one embodiment , the compute engine 122 utilizes four image reconstruction threads . the image reconstruction threads process the raw mri data to generate reconstructed image data and storing that reconstructed image data into ram 120 . another thread prepares the graphics engine 116 to receive the newly reconstructed image data , and replaces only that portion of image data in the 3d image buffer 118 corresponding to the slice number that has been newly reconstructed . this selective replacement reduces the data transfer overhead and increases system throughput . the graphics engine 116 , upon instruction from the compute engine 122 , retrieves the reconstructed image data from the 3d image buffer 118 and generates the volume rendering on the monitor 130 . in one possible embodiment , the image reconstruction is performed with known fourier transform reconstruction techniques using the fftw library , which was developed at the massachusetts institute of technology . raw data is zero padded up to 192 points in the x axis ( frequency encoding ) and 192 times the fractional phase field - of - view in they axis ( phase encoding ). the phase field - of - view can be set to some fraction less than 1 to increase the frame rate by reducing the number of phase encodings or echoes required , at the cost of reducing the field - of - view in the phase encoding direction . for example , the phase field - ofview can be set to values of 0 . 5 or 0 . 75 . other reconstruction techniques can be used such as wavelets and projection reconstruction . additionally , the compute engine 122 can use time domain filtering or other appropriate techniques and processes to reduce noise and artifacts in the image . referring back to fig2 during operation , the computer 114 initially waits at operation 210 until it receives an interrupt from the data transfer device 124 . the data ready signal from the data transfer device 112 on the mri scanner 100 causes the device in the computer 124 to generate an interrupt that is handled by the data transfer thread on the computer 114 . this signal indicates that new raw mri data and related information 208 is ready to be transferred to the computer 114 . this interrupt provides synchronization between the mri scanner and the computer 114 . at operation 212 , the computer 114 receives the raw mri data and related information 208 from the computer 114 , and the data transfer thread of the compute engine 122 transfers the raw mri data to the memory 120 . during operation 214 , the reconstruction threads retrieve the raw mri data from the ram 120 , processes the raw mri data , and generate the reconstructed image data . the compute engine 122 also stores the reconstructed image data in the 3d image buffer 118 at operation 218 . if the reconstructed image is based on a scan using a two dimensional pulse sequence , each slice is stored in a block of memory that corresponds to its slice number . thus , the first slice of reconstructed image data is assigned to a first memory block . the second slice of reconstructed image data is then assigned to the next consecutive or second memory block . in one possible embodiment , this sequential storage of slices occurs even if the slices are not scanned sequentially . for example , if the second slice or reconstructed image data is actually scanned after the third slice , it is still stored in the second block of memory between the first and third slices . other possible embodiments do not sequentially store image slices so that each consecutive slice is stored in a consecutive block of memory . if a threedimension pulse sequence is used , mri data corresponding to the 3d rectilinear slab is produced , reconstructed , and only one memory location is needed in the 3d image buffer . the computer 114 stores the raw mri data and reconstructed image data on a more permanent memory such as a hard drive in addition to storing the data in the memory 120 and the 3d image buffer 118 , respectively . the raw mri data and related information is continuously stored on the hard drive in a binary file . this data can then be used to reconstruct the volume renderings at a latter date . the hard drive also includes a circular buffer file that stores the most recent 128 sets or slices of raw mri data and related information . additionally , each image slice or rectilinear slab is stored in a separate file so that the images can be easily viewed , printed , or downloaded . at operation 220 , the graphics engine 116 retrieves the reconstructed image data from the 3d image buffer 118 and renders a volume on the monitor 130 . if the image is formed from a series of two - dimensional image slices , the slices are continuously inserted into the 3d image buffer 118 , and the volume rendering is continuously refreshed on the monitor 130 by the graphics engine 116 . this continuous display of volume renderings provides three dimensional feedback that is in real time relative to the time that the raw mri data is collected . in one possible embodiment , the volume rendering is updated on the monitor 130 by the graphics engine 116 after reconstruction of the entire set of raw mri data corresponding to each slice is completed and stored in the 3d image buffer 1 18 . in another possible embodiment , the volume rendering is displayed by the graphics engine 116 as it is processed and stored in the 3d image buffer 118 regardless of whether processing for the entire set of raw mri data corresponding to the image slice is completed by the compute engine 122 . the latter embodiment uses what is referred to as &# 39 ; partial updates &# 39 ; to speed the apparent frame rate of the rendering . if the reconstructed image data is in the form of a three - dimensional rectilinear slab , as obtained from a three - dimensional pulse sequence , the graphics engine 116 will continuously update the volume rendering displayed on the monitor 130 after each set of the reconstructed image data is completed and loaded into the 3d image buffer 118 . in an alternative embodiment , the graphics engine 116 continuously updates the volume rendering displayed on the monitor 130 as each reconstructed image is generated and loaded into the 3d image buffer 118 . this continuous update of the volume rendering occurs regardless of whether the mri scanner 100 has completed the scan or the compute engine 122 has completed processing the set of raw image data from a scan based on three - dimensional pulse sequence . the graphics engine 116 can render the image for display on the monitor 130 using any appropriate graphics software . in one possible embodiment , the compute engine 122 makes calls to the opengl volumizer ™ graphics library and the opengl ® application program interface ( api ), both of which are commercially available from silicon graphics , inc . the open gl volumizerm ™ graphics library can utilize three - dimensional texturing with trilinear interpolation mapping when polygonizing the data and rendering the volume on the monitor 130 using predefined blend functions . the opengl ® api enables selective replacement of three - dimensional texture sub - regions corresponding to newly processed reconstructed image data corresponding to a slice or a rectilinear slab . this selective replacement reduces data transfer overhead and when repeated continuously , providing real - time updates of the volume rendering on the monitor 130 . the operations 210 , 212 , 214 , 216 , 218 , and 220 are repeated until the loop is interrupted by user intervention or otherwise . repeating these operations indefinitely while receiving a continuous stream of raw mri data 208 from the mri scanner 100 provides continuous and real - time updates to the volume rendering that is displayed on the monitor 130 . these updates are in real - time with respect to the time that the raw mri data is collected from an imaging sample such as section of a patient &# 39 ; s body . it is to be understood that with real time processing , there is some measure of delay between the time the raw mri data is collected and the three - dimensional image is rendered due to processing times , data transmission rates , and other system overheads . this delay time is referred to as the latency . accordingly , the real - time processing described herein provides a relatively low latency between the time the raw mri data is collected and the time that the volume is rendered and provides a relatively high frame rate . in one possible embodiment , for example , the latency is below about one third of a second and the frame rate is above about 10 frames per second . in other embodiments , the latency is greater than one third of a second and the frame rate is lower than about 10 frames per second . in yet other possible embodiment , the latency is lower , and might be between about one quarter of a second and about one third of a second , and still other embodiments might have a latency that is as at about one quarter of a second or less . similarly , there are embodiments that have higher frame rates . for example , one embodiment has a frame rate of about 20 frames or more per second . one skilled in the art will recognize that achieving a certain image quality together with a low latency and a high frame rate is accomplished by balancing a variety of factors in the mri scanning process . examples of these factors include the scan rate , the points sampled per echo , the number of echoes per excitation , the length of the excitations , the flip angle , the slice thickness , and the size of the pixels as determined by the field - of - view . in addition to transferring raw mri data from the mri scanner 100 to the computer 114 , the computer 114 can transmit commands to the mri scanner 100 via the data bus 134 . an example of such a command is to specify a new orientation on which to acquire mr image slices . in one embodiment , this specification may be accomplished efficaciously by having the user specify the position of a cut plane through the volume rendering , which causes the volume not to be rendered on one side of the cut plane . the mri scanner 100 may then be instructed to acquire one of a plurality of slices at the position and orientation of the cut plane . other commands changing the position and orientation of the scan relative to the patient &# 39 ; s body also can be transmitted from the computer 114 to the mri scanner 100 . automated scan plane orientation can be used to continually optimize the quality of the volume rendering . resolution in the image plane is generally better than that through the image plane for mr images . as a result , the resolution of the volume rendering is better when the projection ( viewing ) direction is normal to the imaging planes . while the user rotates the rendering on the screen , the scanner is instructed to change the imaging plane orientation such that the projection direction is normal to the imaging planes . the user can also interact with the volume rendering by using user input devices 128 . for example , the user can rotate the three - dimensional image on the monitor 130 , or position cut planes . the graphics engine 116 performs this rotation in the rendering by changing the angle at which projections are made through the three - dimensional data . additionally , the blend function in the graphics library can be toggled between alpha blending and maximum intensity projections ( mip ). in other embodiments , other blend functions may be specified . parameters that the user sets for displaying a three - dimensional image are stored in the ram 120 and are accessed by the graphics engine 116 and the compute engine 122 as required when generating the reconstructed image data or volume rendering . examples of such parameters include image rotation or translation , brightness / contrast adjustment , whether alpha blending or maximum intensity projection is selected , and whether a cut plane is selected and parameters related to the cut plane . the systems and methods described herein can be used for a variety of different applications including both surgical and diagnostic procedures . one type of application includes invasive procedures in which a caregiver inserts a device within a patient &# 39 ; s body during surgical , vascular , or other types of interventions . examples include catheterization for performing a variety of procedures such as angioplasty , stent placement , angiography , biopsy , tumor resection , and many others . examples of diagnostic procedures in which the disclosed systems and methods can be used include monitoring the flow of a contrast material through vascular structures of a patient &# 39 ; s body . other examples include monitoring the cardiac function ( movement of the heart ), pulmonary function ( movement of the lungs ), vocal cord function , gastrointestinal function , and joint motion . although the description of the preferred embodiment and method have been quite specific , it is contemplated that various modifications and equivalents are within the scope of the appended claims and can be made without deviating from the spirit of the present invention . accordingly , it is intended that the scope of the present invention be dictated by the appended claims , rather than by the description of the preferred embodiment and method .