Abstract:
Time-of-flight calculations may be simplified by performing them on the fly at selected intervals and then interpolating the results to obtain a comprehensive set of values. The method and apparatus offer improved accuracy, speed, and hardware savings.

Description:
This is a continuation of application Ser. No. 08/130,042, filed on 30 Sep. 1993 now abandoned. 
    
    
     FIELD OF THE INVENTION 
     This invention generally relates to ultrasound imaging equipment. Specifically, the invention is directed to the calculation of the time-of-flight of an ultrasound beam. 
     BACKGROUND OF THE INVENTION 
     In an ultrasound machine, a receive beamformer serves two functions: it focuses the receive beam and forms the beam. To focus the beam at any given point in space, the signal received by each element of an ultrasound probe or transducer must be properly combined with the signals from the other elements. This can be achieved by variably delaying the signals from each of the various elements so that the reflections from any given point are correctly summed. Additionally, the delay must be provided on a real-time basis. 
     Typically, delay (or time-of-flight) values are precalculated and then stored, but this requires significant amounts of memory and an accompanying time requirement for loading this memory. To economize, a subset is stored and the actual values are derived from the stored quantities, but this yields only an approximation. Moreover, the values are fixed with respect to the beam&#39;s origin and direction and must be recalculated if the user desires a different set of beam parameters. 
     Because these numbers are needed at such a rapid pace during an ultrasound examination, the calculations cannot be performed in software as this would be too slow. Thus, if the time-of-flight values are not precalculated and stored in memory, and a high degree of accuracy is desired, some other means must be provided. 
     SUMMARY OF THE INVENTION 
     These and other objects are achieved by a real-time dynamic time-of-flight calculator that performs calculations in N parallel paths. The physical locations of the elements of the probe are stored in memory. Then, using these locations coupled with the point of origin of the beam and the beam direction, the time-of-flight or delay times are calculated on the fly. Actual calculations are performed every m clock cycles and then interpolated to provide intermediate points. 
     The benefit of performing time-of-flight calculations in this manner is a significant savings in memory for storage of time-of-flight values. Only the element locations for the probe need be stored; the beam origin and direction are provided during the scanning process and the time-of-flight values are calculated at that time. If the probe is changed, only the element locations need be changed. Also, this arrangement allows for dynamic focusing, changing the depth while keeping all other parameters constant, yielding time-of-flight values for varying depths. 
     In actual use, the time-of-flight values are programmed for each beam line. To form each beam line, an acoustic pulse is fired. Then, reception is started, signals are received, and the time-of-flight values are updated dynamically. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     A more complete understanding of the present invention, as well as other objects and advantages thereof not enumerated herein, will become apparent upon consideration of the following detailed description and the accompanying drawings, wherein: 
     FIG. 1 is a partial schematic block diagram of a receive beamformer; 
     FIG. 2 is an x-y plot of a probe, an ultrasound beam, and a focal point (point of interest); 
     FIG. 3 is a schematic block diagram of a time-of-flight calculator; and 
     FIG. 4 is a flowchart of the operation of the time-of-flight calculator. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     A partial schematic block diagram of an ultrasound machine beamformer is shown in FIG. 1. The diagram shows four transducer inputs T 0 , T 1 , T 2 , and T 3  10 that would be connected to an ultrasound transducer or probe (not shown), each input coming from a transducer element capable of receiving ultrasound energy or echoes and converting it to an electrical value. The circuit could have anywhere from 2 to n memories representing 2-to-n channels or parallel paths 12. In practice, a four-channel circuit would be combined with enough similar circuits to accommodate the total number of channels, be it 64, 128, 256, or some other number. Since the circuit here is shown with four channels 12, the remainder of this discussion will similarly assume four channels but it should be understood that the actual number of channels employed is a matter of design choice. 
     Each of the transducer inputs 10 is connected to a RAM 20 at its data input 22. The RAM also has a write address input 24, a read address input 26, and a data output 28. 
     The outputs 28 of the RAMs 20 are connected to a serial summation stage 40 at its inputs 42. The serial summation stage 40 provides a summation of the outputs of the four RAMs 20 at a serial summation stage output 44. 
     The addresses for the write and read functions of the RAMs 20 are provided by a time-of-flight or delay calculator 60, which actually computes addresses correlative to the time-of-flight. The calculator 60 has five outputs: a write address output 62, and four read address ports 0-3 (64, 66, 68, and 70). The addresses on the write address output 62 places the incoming data from the transducer in sequential locations in the RAMs 20. 
     The four read address values are used to read out the data once it has been stored. In receiving a return from an object under examination, e.g. focal point, the energy will arrive at the various elements of the transducer at different times. To reconstruct the return from a single point, the readout of the continuous data must be time delayed over the span of the transducer so that the signals on the transducer inputs 10 can be intelligently combined. 
     The time-of-flight calculation is based on the following relationship: ##EQU1## where: dy is the distance between the element and the beam origin in the y-direction; 
     dx is the distance between the element and the beam origin in the x-direction; 
     z is the coordinate of the element in the z-direction; 
     k is the range cell count; 
     ΔR is the size of the range cell; 
     Θ is angle of the beam with respect to the x-axis (probe normal); 
     c is the speed of sound; and 
     R 0  is the distance from the probe beam origin to the focal point; R 0  =kΔR. 
     The relationship of these variables is illustrated in x-y plot of FIG. 2; the z-dimension is normal to the surface of the paper. The point of interest at any given time is referred to as the range cell or focal point 50. As an ultrasound examination progresses, this point can move axially along the line of the beam 52. 
     The time-of-flight calculator 60 is shown in greater detail in FIG. 3. For the transmit phase, the calculator 60 has a write address generator 80 which can be a circulating 0-n counter that generates the addresses for locations in the RAMs 20. When it reaches the maximum address count, it overflows and cycles back to zero. 
     The calculator 60 has eight inputs: Y n  100, Y init  102, Y incr  104, range cell count R 0  106, X n  108, X init  110, X incr  112, and Z n   2  114. Y n  100, X n  108, and Z n   2  114 represent locations in a memory of the values of the coordinates of the elements 12. Y init  102 and X init  110 are the coordinates of the beam origin and Y incr  104 and X incr  112 are the coordinates of the beam direction. For the purposes of calculating time-of-flight, the location (X init , Y init ) is taken to be the point from which the ultrasound beam effectively originates, even though the beam may actually radiate from a number of elements on the surface of the probe, and not just a single point. The last five values (Y init  102, Y incr  104, range cell count R 0  106, X init  110, and X incr  112) are provided during the operation of the apparatus. An internal clock triggers and drives both the write address generator 80 and the range cell counter R 0  106. In practice, the start of the range cell counter 106 is delayed from the start of the write address generator 80. 
     In the example discussed here (FIG. 2), the value of Z n  is zero, as only the x and y axes are employed. Similarly, while the calculator 60 of FIG. 3 can dynamically focus, i.e., provide time-of-flight values, in three dimensions, control over the direction of the beam or beam steering is limited to the x-y plane. However, if the transducer was a three-dimensional probe, then Z n  could be a non-zero number. Then the beam can be focused in all three dimensions as the time-of-flight equation indicates. Further, with the addition of inputs for values of Z init  and Z incr , the calculator 60 could provide time-of-flight values for placing the beam origin at any point on the probe surface and steering the beam in three-dimensions. 
     Because the circuit shown in FIG. 1 has four channels 12, the schematic of FIG. 3 indicates four values each of Y n  100, X n  108, and Z n   2  114. Three multiplexers 120, 122, and 124 select the appropriate output of the memory. Two multiplication elements 160 and 162 calculate the products of Y incr  104 and R 0  (i.e., kΔRsinΘ), and X incr  112 and R 0  (i.e., kΔRcosΘ), respectively, and two subtraction elements 170 and 172 calculate the differences between Y n  100 and Y init  102 (i.e., dy), and X n  108 and X init  110 (i.e., dx), respectively. Summing elements 180 and 182 perform the respective operations of (dy+kΔRsinΘ) and (dx+kΔRcosΘ). These sums are then squared by squaring functions 190 and 192, and then the three squared terms, dy+kΔRsinΘ) 2 ,(dx+kΔRcosΘ) 2 , and Z 2  are summed by summing element 200. A square root function 202 takes the square root of the sum and the result is added to R 0  by summing element 204. The results are then temporarily stored in a register file 210. 
     The time-of-flight calculator 60 provides dynamic focusing of the beam as the focal point moves outward in the axial, or beam direction. By changing R 0 , counting from 0 to its maximum count, the depth of the range cell 50 varies. In turn, the time-of-flight calculator 60 immediately calculates new addresses on the following clock cycle to accommodate the change in R 0 . 
     In an effort to conserve memory and computation resources, the calculator 60 performs its calculations every m clock cycles and uses interpolation to provide intermediate time-of-flight values or addresses. To accomplish this, the results stored in the register file 210 are channeled through a multiplexer 220 and then interpolated by four delay interpolators 230 to produce the additional m-1 intermediate time-of-flight values. This process yields addresses for the respective data memories 20, enabling the retrieval of data from each memory corresponding to the same point of the object in space, the range cell 50, which has the coordinates (kΔRcosΘ-X init , kΔRsinΘ-Y init ). After the memories 20 are read, the results are summed by the serial summation module 40. The outputs 44 of each of the serial summation modules 40 are similarly summed. 
     The overall operation of the calculator 60 in the beamformer is illustrated by the flowchart of FIG. 4. (The reference numbers in parentheses refer to the blocks in the flowchart.) At the start (300), the ultrasound transmitter (not shown) radiates a pulse (302). The transducer elements of the receive beamformer begin receiving ultrasound echoes (304). With the assistance of the write address generator 80, data from the transducers are written into the RAMs 20 (306). Next, the range cell counter 106 is set to the beginning value of zero (308). Then, the calculator 60 begins generating time-of-flight values for each channel 12 or transducer input 10 (310). As the values are generated, the data is read from the RAMs 20 (310). The range cell count is then incremented (312), and the calculation and data read step (310) is repeated, followed by incrementation, until the maximum range count is reached (314). Then the data is displayed (316), completing the sequence (318). 
     While there has been described what is believed to be the preferred embodiment of the invention, those skilled in the art will recognize that other and further modifications may be made thereto without departing from the spirit of the invention, and it is intended to claim all such embodiments that fall within the true scope of the invention.