The present invention relates to ultrasound imaging and, more particularly, relates to the focusing of received ultrasound beams for ultrasound imaging.
In ultrasound imaging, a transducer is used to transmit ultrasound beams into the medium to be examined, for example, a region of the human body; receive the ultrasound echoes reflected from various discontinuities in the medium; and, transform the reflected ultrasound echoes into electrical signals. The electrical signals then undergo a number of processing steps and are eventually transformed into an image which can be displayed on a device such as a cathode ray tube or printed in order to be examined by a physician.
Ultrasound transducers typically consist of arrays of small rectangular piezoelectric elements. A subset of such elements used to transmit or receive an ultrasound beam is called a transmit or receive aperture, respectively. Typically, the geometrical centers of transmit and receive apertures coincide, and the ultrasound beam(s) are represented as linear beam axes originating at the center of the apertures.
The receive operation is performed by a multi-channel receive beamformer. The multi-channel receive beamformer applies delays and weights to the signals received by various receive aperture elements and sums them to obtain focused signals along the desired beam axis. The purpose of the delays is to compensate for the difference in arrival time caused by difference in propagation paths from the point of interest of the medium to the different elements of the aperture. In order to obtain ultrasound beams focused at multiple depths along the beam axis, the receive delays are varied with depth such that all the signals which are summed to obtain the echo from a point on the beam axis arrive from that same point. This is called dynamic receive focus, and the image quality is critically dependent on the accuracy of the dynamic receive delays or equivalently of the echo arrival time. It is known in the art that a delay accuracy of 1/32 Fc is desirable, where Fc is the center frequency of the transducer's frequency characteristic.
The received signals can be delayed by various methods, for example, analog and digital, but in all cases a delay, or arrival time, controller has to produce the desired delay control signals. Practical beamformers use circuits which calculate the dynamic delays in real time starting from a small number of pre-calculated initialization parameters. One such circuit is based on a computer graphics algorithm introduced in an article by Van Aken entitled, “An efficient ellipse-drawing algorithm”, IEEE Computer Graphics and Applications Magazine, vol. 4, no. 9, pp. 24-35 (September 1984), and adapted to ultrasound imaging as described in an article by Ki Jeon et al., “An efficient real-time focusing delay calculation in ultrasonic imaging systems”, Ultrasonic Imaging, 16, pp. 231-248 (1994). Variants of and improvements to this delay generation method are described in U.S. Pat. No. 5,669,384 to Park et al. entitled, “Real time digital reception focusing method and apparatus adopting the same”; U.S. Pat. No. 5,836,881 to Bae entitled “Focusing delay calculation method for real-time digital focusing and apparatus adopting the same”; “Low power delay calculation for digital beamforming in handheld ultrasound systems”, H. Feldkamper et. al., Proc. IEEE Ultrason. Symp. 2, pp. 1763-1766 (2000); “Delay generation methods with reduced memory requirements”, B. Tomov and J. Jensen, Proc. SPIE, Vol. 5035, pp. 491-500 (2003); and U.S. Pat. No. 5,724,972 to J. Petrofsky, entitled “Method and apparatus for distributed focus control with slope tracking”. In general these methods calculate the desired quantity (arrival time/delay) iteratively from one depth to the next by adding/subtracting to/from the quantity either a non-zero or a zero value depending on the sign of a decision quantity which is also calculated iteratively.
A first shortcoming of these prior art delay generation methods is their limited accuracy. The original method's error may be up to one half of the sampling period T=1/F, where F is the sampling frequency. In ultrasound imaging F is typically four times the center frequency (F=4 Fc). This results in accuracy of ⅛ Fc, 4 times worse than the desired 1/32 Fc. The prior art methods mentioned above attempt to improve on this result by combining, for example, increasing the sampling rate and increasing the algorithm complexity (and therefore the circuit complexity), both of which are undesirable as is recognized by one of ordinary skill in the art.
A second shortcoming of these prior art methods is the relatively large number of initialization parameters, that is, at least 2 parameters for each array element and each beam direction. For a typical phased array with 128 elements, 256 initialization parameters are required per beam direction.
Therefore, a method and circuit for calculating the delay or the arrival time with an accuracy of at least 1/32 Fc at a sampling rate 4 Fc, and with a reduced number of initialization parameters is required.
In accordance one aspect of the present invention, in an ultrasound imaging system broadly comprising an ultrasound transducer having an array of elements and a beam origin located between two adjacent elements, each element for converting received energy into an echo signal, a process for calculating a timing function, the process broadly comprising the steps of calculating for a first left element and a first right element a distance (dn) at integer-valued depth (n), said distance (dn) measured from said beam origin to a point on a beam axis of an ultrasound beam; estimating a distance ({circumflex over (d)}n) measured from a center of the first left element and the first right element to the point on the beam axis; adding the distance ({circumflex over (d)}n) to the integer-valued depth (n) to generate an arrival time; subtracting the distance ({circumflex over (d)}n) from the integer-valued depth (n) to generate a delay; adding a constant (C2) to the arrival time; and adding a constant (C1) to the delay.
In accordance with another aspect of the present invention, an ultrasound system broadly comprising an ultrasound transducer comprising an array of elements and a beam origin located between two adjacent elements, each of the elements for converting received energy into an echo signal; and a beamformer broadly comprising an initialization controller including initialization controller circuitry for calculating initialization parameters; at least one channel including a delay circuit and a delay controller for calculating a timing function according to the process of claims 1-7; and a summer for summing phase-aligned signals to form a beamformed signal.
In accordance with yet another aspect of the present invention, in an ultrasound imaging system broadly comprising an ultrasound transducer having an array of elements and a beam origin located between two adjacent elements, each element for converting received energy into an echo signal, a process for calculating initialization parameters from a reduced parameter table, the process broadly comprising the steps of setting at least one increment value for at least one initialization parameter for a first left element located to the left of the beam origin and a first right element located to the right of the beam origin; storing in a memory storage device the at least one increment for the first left element and the first right element; calculating the at least one initialization parameter for at least one beam steering angle for the first left element and for the first right element; storing in the memory storage device the at least one initialization parameter for the first left element and the first right element; and calculating at least one additional initialization parameter for the at least one beam steering angle for at least one next left element located to the left of the first left element and for at least one next right element located to the right of the first right element based upon the stored at least one initialization parameter for the first left element and the first right element.
In accordance with yet another aspect of the present invention, an ultrasound system broadly comprises an ultrasound transducer broadly comprising an array of elements and a beam origin located between two adjacent elements, each of the elements for converting received energy into an echo signal; and a beamformer broadly comprising an initialization controller including initialization controller circuitry for calculating initialization parameters according to the process of claims 15-23; at least one channel including a delay circuit and a delay controller; and a summer for summing phase-aligned signals to form a beamformed signal.
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.
a show the general block diagram of a beamformer channel;
Like reference numbers and designations in the various drawings indicate like elements.
It has been discovered using simulation that for most imaging geometries used in medical ultrasound imaging, when the focus point moves by a distance Δ down the beam axis, the distance from the focus point to an aperture element increases by anywhere from (1−½i)Δ to Δ, where i is an integer in the range 2 to 4. This finding leads to algorithms which calculate the echo arrival time or the delay for each depth position iteratively, adding one of the two constants (1−½i)Δ or Δ depending on a decision criterion which is also iteratively calculated. The delay error or arrival time error of the method of the present invention is less than ⅛ of the sampling period. The algorithm of the present invention involves only simple mathematical operations, that is, additions and subtractions. Variants of the method of the present invention that produce even greater accuracy and no increase, or a small increase, in complexity are also described herein.
The initialization parameters of the proposed method(s) of the present invention are proportional with the distance of each element to the center of the array. This allows generating the initialization parameters for all elements using simple mathematical calculations starting from a reduced number of only 4 parameters for each beam direction.
Referring now to
The total travel time, or the arrival time, of the ultrasound beam through the media is shown below in Equation (1):
t=(r+d)/c (1)
where t is the total travel time of the ultrasound beam; r is the distance from the array center aperture to Point P; d is the distance from Point P to an element center; and, c is the velocity of the ultrasound beam.
For beamforming applications, t has to be evaluated for discrete values of r at intervals Δr using an Equation (2) provided below:
Δr=cT/2 (2)
where Δr is the 2-way travel time along the beam axis 16 between two sampling times; T is a unit of time; and, c is the velocity of the ultrasound beam.
We choose T=1/F as a unit of time and cT/2 as a unit of distance the ultrasound beam travels in two directions, i.e., forward and reflection, in an amount of time T. With these units r takes integer values n=0, 1, . . . and t takes the values as shown below in Equations (3) and (4):
tn=(n+dn)/2 (3)
where
dn=√{square root over (n2+x2−2nx sin θ)} (4)
wherein tn is the arrival time; n is the distance from the array center aperture to Point P as measured as an integer value; dn is the distance from Point P to an element center; and, x is the distance from the center of the element to the center of the aperture measured in units of cT/2.
One of ordinary skill in the art will recognize that n may be calculated in real time by a simple counter. Therefore, to obtain the arrival time tn, a method is necessary to calculate dn. However, direct calculation of dn using formula (4) is not practical due to the multiplication and square root operations involved.
Referring now to
It has been discovered that for many array geometries commonly utilized in ultrasound imaging and for a value of f greater than or equal to 1, the slope of the dn vs. n curve is at least ⅞=1−½3. This minimum slope value may be used advantageously in the present invention to provide both high accuracy and a simple algorithm for estimating d.
A slope range of ⅞ to 1 may produce the following first algorithm of Formula 5 for estimating dn+1 when dn is known and n>nf. We denote by {circumflex over (d)}n the estimate of dn.
First Algorithm
Initialization (at n=nf)
n=nf
{circumflex over (d)}n=dn
Update (for any n>nf)
if dn>={circumflex over (d)}n then S=1 else S=⅞
{circumflex over (d)}n+1={circumflex over (d)}n+S
n=n+1 (5)
When the d estimate grows by 1 from one depth value n to the next it may exceed the exact value of d; however, since the exact value of d may also increase by at least ⅞, the error will not be larger than the difference 1−⅞=⅛. Conversely, when the estimate grows by ⅞, the estimate may be less than the exact value of d, however since the exact value of d may not increase by more than 1 the absolute value of the error again will be less than ⅛. This results in a maximum absolute timing error less than T/16= 1/64 Fc and exceeds the accuracy requirements of typical ultrasound imaging systems.
Note that the first algorithm of Formula (5) differs from the prior art in which the choice of the slope (increment) S was between zero and a (constant or depth-dependent) non-zero value. The first algorithm of the present invention uses one of two non-zero slope (increment) S values for the iterative calculation of distance dn.
The first algorithm of Formula (5) described above relies on the availability of the exact value dn at each depth n, which is precisely the problem we were trying to first solve. To overcome this we apply a technique known to one of ordinary skill in the art, rather than decide the slope S based on comparing the exact and estimated values of d we compare the squares of the exact and estimated values of d. However, differently than the prior art, the decision quantity (difference of the squares of the exact and estimated values) may be calculated as shown in the Equation (8) and the second algorithm of Formula (10) shown below.
By squaring both sides of equation (4) mentioned above, replacing n by n+1 and regrouping the terms we find that the square of the exact value of d can be calculated iteratively in Equation (6) as follows:
dn+12=dn2+2n+K (6)
where K=1−2x sin θ (d1)
is a constant for a given beam and element.
The square of the estimate can also be calculated iteratively in Equation (7) as follows:
{circumflex over (d)}n+12={circumflex over (d)}n2+2S{circumflex over (d)}n+S2 (7)
where S is the slope=⅞ or 1, as selected in the first algorithm of Formula (5).
Since we use the 2 squared variables in Equations (6) and (7) only for decision purposes, we are only interested in iteratively calculating their difference. By conveniently grouping terms and using the equations (6) and (7), we obtain the Equation (8) as follows:
dn+12−{circumflex over (d)}n+12=(dn2−{circumflex over (d)}n2)+(2(n−{circumflex over (d)}n)+K)+s{circumflex over (d)}n/4−S2 (8)
where:
if dn>={circumflex over (d)}n then s=0, S=1
else s=1, S=⅞
where s is the sign bit of the difference evaluated at a depth n.
In arriving at equation (8) we made use of the fact that subtracting 2S{circumflex over (d)}n when S=⅞ is equivalent to subtracting 2{circumflex over (d)}n and adding back {circumflex over (d)}n/4, operations involving only arithmetic shifts but no multiplications.
We introduce the notations:
Dn=dn2−{circumflex over (d)}n2 (d2)
An=2(n−{circumflex over (d)}n)+K (d3)
and note that An can be updated iteratively at Equation (9) as follows:
An+1=An+2(1−S) (9)
where S is ⅞ or 1 as described above.
With these modifications and notations the second algorithm for calculating {circumflex over (d)}n becomes Equation (10) as follows:
Second Algorithm:
1. Initialization (at n=nf)
n=nf
{circumflex over (d)}n=dn
An=2(n−dn)+K
Dn=0
2. Update (n>nf)
If Dn≧0
Dn+1+Dn+An+{circumflex over (d)}n/4−49/64
An+1=An
{circumflex over (d)}n+1={circumflex over (d)}n+1
else
Dn+1=Dn+An−1
An+1=An+¼
{circumflex over (d)}n+1={circumflex over (d)}n+⅞
n=n+1 (10)
For purposes of example, the second algorithm was explained based on a minimum slope of ⅞. However, one of ordinary skill in the art recognizes that one can easily modify the algorithm to operate with other minimum slope values of the form 1−½i where i=0, 1, 2 . . . , and preferably i=3. For example, the modifications may involve changes in the constants used in the second algorithm. Thus, if values of f greater than 1.4 are acceptable then a minimum slope of 15/16 may be used and provide further the benefit of reduced error. In the alternative, a minimum slope value of ¾ may also produce adequately small errors and allow smaller values of f. Minimum slopes of form other than 1−½i may also be used; however, alternative minimum slopes may complicate the implementation of the second algorithm. It is also noted that the maximum error is proportional with T and therefore can be further reduced by increasing the sampling frequency F.
Referring now to
During execution of the second algorithm using circuit 200, the most significant (sign) bit of Dn may be used in the control logic (not shown) to select the slope S as specified by the second algorithm. For example when that bit is 0 the gates 211 are disabled; the multiplexer 222 is controlled to pass the slope value 1; the gates 233 are disabled; and, the multiplexer 232 is controlled to pass the squared slope (S2) value 1. The division {circumflex over (d)}n/4 is an arithmetic shift achieved simply by the wiring of output bits of register 224 to the inputs of the gates 233. The logic format used in circuit 200 may be integer(s), with the decimal part of the numbers represented by the least significant bits of the integers. Preferably, three (3) least significant bits are used to represent the decimal part, but a larger number of bits may be used depending on the application and accuracy requirements as is understood by one of ordinary skill in the art. The number of most significant bits, representing the integer part of the various quantities, varies depending upon the maximum number of depth positions. Preferably, typical medical ultrasound systems component 211 has 1 bit (with all other bits hard-wired), components 212, 213 and 214 each have 14 bits, component 222 has 4 bits (with all other bits hard-wired), component 232 has 4 bits (with all other bits hard-wired), and the other components each have 16 bits, and for all these components the least significant three (3) bits represent the decimal part of the respective quantities.
While the circuit 200 of
To this point only method(s) for estimating the distance d of
The second algorithm of the present invention may be incorporated by means, for example, of circuit 200 or a variant of circuit 200 as recognized by one of ordinary skill in the art, in the delay controller 38, where the second algorithm may be used in a manner dependent on the particular method of implementing the delay block 36 as known to one of ordinary skill in the art. For example, the delay block 36 may comprise an arrangement of analog delay lines and analog multiplexers to provide a coarse delay, or may be combined with analog mixers to provide fine phase delay. In another example of an implementation of the method of the present invention, the delay block 36 may contain an analog to digital converter (not shown) to convert the electrical signal into its numerical representation, a memory storage unit (not shown) which provides coarse delay at the resolution of the sampling period, and an interpolator (not shown) to provide fine delay, e.g., subsample. In yet another implementation of the method of the present invention, an analog to digital converter's clock may be phase-modulated to provide the fine delay and the digital signals may then be written to a memory storage unit (not shown) which provides the coarse delay. Such converters, memory storage units and interpolators are well known to those of ordinary skill in the art and are well described in both technical literature and numerous patents. The control signals generated by delay controller 38 may generally be one of three types: delay (δ), arrival time (t), or the sign of the decision quantity Dn. The sign of the decision quantity Dn may be obtained directly from the execution of the second algorithm using circuit 200. The calculation of the other control signals, that is, delay (δ) and arrival time (t), will now be explained in greater detail.
Referring again to
δ=(d−r)/c (11)
or, with the time and distance units defined before, as shown in Equation (12):
δn<(dn−n)/2 (12)
To compensate the delays, the negative values of the delays may be applied to the signals, and may be offset by a constant C1 applied to all channels in order to make the physical delays positive. The delay controller 38 therefore has to generate the control signal shown in Equation (13):
deln=C1−dn/2+n/2 (13)
This can be obtained with a delay controller 58 of
As described above, the beamformer 30 operation may begin with an initialization performed by initialization controller 33. Each channel's delay controller 38 may require an initial value for the variables An and {circumflex over (d)}n as well as the initial depth value nf at which the channel 31 may be activated. For a 128-element phased array and 128 steering angles this requires 64×3×128 parameters, where the symmetry of the steering angles was used to reduce the number of parameters by a factor of 2. Rounding up to a power of 2 results in a memory requirement of 32 KWords per probe. This memory requirement may represent a considerable cost especially in low-end portable ultrasound systems or in other compact ultrasound system designs where space and power are scarce. Other disadvantages are present such as long dead time when switching from one transducer probe to another which requires loading new parameter tables.
Referring now to
nfi=2f*OLi=2f*ORi=ONi (14)
Referring again to
OLi=xi (15)
ONi=nfi=2f|xi|=2f*OLi (16)
LiNi=dnfi (17)
Triangles OLiNi and OLiNj have the angle Ô in common and by equations (15) and (16) OLi/OLj=ONi/Onj=xi/xj; therefore, the two triangles are similar; and, therefore from Equation (17) dnfi/dnfj=LiNi/LiNj=xi/xj. Therefore, both nfi and dnfi grow proportionally to their distance |xi| from the origin of the beam. This now provides a method to calculate the two parameters nfi and dnfi for each left element starting from their value for the left element 0 (nf0 and dnf0) and their increments Δnf and Δdnf from element to element. In order to guarantee integer sampling positions, nf0 is rounded (causing small departures of f from the exact specified value) and considering that x0 is half of the distance, that is, the pitch, between elements we have Equations (18) and (19):
Δnf=2nf0 (18)
Δdnf=dnf1−dnf0 (19)
where dnf1 and dnf0 are calculated in Equations (20) and (21) according to Equation (4).
nfi=nf0+i×Δnf (20)
dnfi=dnf0+i×Δdnf (21)
The expression Ki, according to its definition (d1) of Equation (6), varies proportionally with the signed value of xi and can be calculated in a similar manner according to Equation (22):
Ki=K0−i×ΔK (22)
where ΔK=2×pitch×sin θ
Ani is then obtained by its definition (d3) from nfi, dnfi and Ki.
The same methods may apply to the elements to the right of the array, that is, Ri where i=0, 1, . . . . It should be noted that for the symmetrical aperture described herein nf0 and Δnf are the same on the left and right sides of the phase array 100, but dnf0 and Δdnf are different when the steering angle is a value other than 0. It should also be noted that that for the right side K0 and ΔK are the same as for the left side. However, when implementing the right side K0 and ΔK, Equation (22) takes on a slightly different form as Equation (22′):
Ki=K0+(i+1)×ΔK (22′)
Therefore, only eight (8) parameters are needed for each steering direction irrespective of the number of elements present in the phase array. For the previous example of the 128-element phased array and 128 steering angles this results in a total memory size of 64×8=0.5 Kword. Due to symmetry only 128/2=64 sets of parameters are required. Therefore, a 64-fold reduction in memory at the expense of an additional arithmetic circuit is recognized. The implementation of the second algorithm in ultrasound receive beamformers is advantageous when the initialization controller is implemented with a technology such as a field programmable gate array, where logic and arithmetic units are readily available and inexpensive but memory is relatively scarce.
The parameter table size can be further reduced by taking advantage of the fact that the pitch (Δx) is equivalent to double the distance x0 for the first left/right elements. Considering that, as shown before, the parameters of interest vary from element to element in proportion to the element's position x, it follows that the initial parameter values may be calculated from the increments shown in Equations (23)-(25) as follows:
nf0=Δnf/2 (23)
dnf0=Δdnf/2 (24)
K0=1−ΔK/2 (25)
Note that for the elements on the right side of the phase array 100, Δdnf may be different than for the elements on the left side, and K0 may be calculated with an adder instead of a subtractor as shown in Equation (25′) as follows:
K0=1+ΔK/2 (25′)
Therefore, only the increments are needed in the initialization tables, reducing the memory requirement by another factor of 2 to 256 words or a total reduction by a factor of 128.
In some implementations of the initialization algorithm, that is the second algorithm, of the present invention, multipliers are readily available and the calculation of initialization parameters may be performed using equations (20), (21), (22) directly. Multipliers however are generally expensive. In order to avoid calculations involving multiplication, equations (20), (21) and (22) may be replaced with a third algorithm of Formula (26) which calculates the initialization parameters iteratively, by repeatedly adding the increments Δnf, Δdnf, ΔK to the respective parameters:
Third Algorithm:
1. Set up for first left element
Load increment registers Δnf, Δdnf, ΔK
Load accumulators with first left element values
nfi=Δnf0/2
dnfi=Δdnf0/2
Ki=1−ΔK/2
Calculate first left value of An
Anfi=2(nfi−dnfi)+Ki
2. Iterative calculation for all left elements after first
nfi=nfi+Δnf
dnfi=dnfi+Δdnf
Ki=Ki−ΔK
Anfi=2(nfi−dnfi)+Ki
3. Set up for first right element
Load increment registers Δnf, Δdnf, ΔK
Load accumulators with first right element values
nfi=Δnf0/2
dnfi=Δdnf0/2
Ki=1+ΔK/2
Calculate first left value of An
Anfi=2(nfi−dnfi)+Ki
4. Iterative calculation for all right elements
nfi=nfi+Δnf
dnfi=dnfi+Δdnf
Ki=Ki+ΔK
Anfi=2(nfi−dnfi)+Ki (26)
While the method of calculating initialization parameters has been explained by means of equations (20), (21), (22) and the iterative initialization algorithm, that is, the third algorithm, of Formula (26) above, it will be obvious to one skilled in the art that alternative formulations based on the proportionality principle of the present invention may be conceived and practiced.
Referring now to
The arrival time/delay calculation algorithm and initialization algorithm of the present invention have been described for a 1D (one-dimensional) phased array transducer, and for a scanning geometry in which the beam axis originates from the center of the aperture. However the algorithms may be extended to other configurations as understood by one of ordinary skill in the art, some of which will be briefly discussed below.
In some situations it is desirable to produce beams whose axis originates at different positions on the aperture than its center. In such cases, the value x of the position of the various elements has to be measured against the origin of the beam instead of the center of the aperture, but the equations used in this disclosure except (18), (23), (24), (25), (25′) remain valid. Therefore, the delay/arrival time algorithms remain valid. The initialization algorithm based on proportionality also remains valid except for the portions dependent on the beam origin being halfway between two elements. Thus, if the origin of the beam is not exactly halfway between two elements then nfo will take different values to the left and right of the origin of the beam, therefore one extra initialization parameter will be needed. Likewise the calculation of the first left/right parameters from the increments is no longer so simple and it may be more convenient to increase the size of the table to include both the first left/right values and the increments. If the distance from the beam origin to the closest element center is of the form pitch/2i then the initialization algorithm and its implementation with circuit 70 can still be used with small modifications which will be obvious to one skilled in the art.
The arrival time/delay calculation algorithm based on second algorithm also applies to convex, e.g., curvilinear, arrays when the steering angle θ is 0, that is, no steering, with the following modification of definition (d1) which does not affect the second algorithm formulation:
Kconvex=1+2R(1−cos φ) (d1-convex)
where R is the radius of the convex array and φ is the angular position of the element's center relative to the beam axis.
For the convex array initialization parameters are calculated based on the array's curvilinear geometry, and the method to derive all elements' parameters from initial values and increments no longer applies.
Finally, second algorithm may be extended to include 1.5-dimensional, 1.75-dimensional and 2-dimensional arrays. Indeed, consider an element in the plane of the array and a beam steered at some azimuth and elevation angles and with the origin in the plane of the array. If we construct a plane containing the beam axis and the center of the element, then the beam origin and the beam axis will exhibit the same geometric relationships in that plane as the geometry shown in
One or more embodiments of the present invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. Accordingly, other embodiments are within the scope of the following claims.