1. A method for encoding an image having color components of each image pixel represented by a value of a high dynamic range, the method comprising:
decomposing the image into a plurality of image blocks;
separating, from the high dynamic range value of each pixel, color information and intensity information of the pixels in said image blocks; and
compressing the color information of the pixels in said image blocks and the intensity information of the pixels in said image blocks independently of each other to provide compressed image data.
2. The method according to claim 1, the method further comprising:
compressing the intensity information of the pixels separately for each pixel in said image blocks.
3. The method according to claim 2, the method further comprising:
identifying a minimum intensity within the whole image block; and
storing a floating-point exponent of the minimum intensity in a table of compressed block data as a bias value.
4. The method according to claim 3, the method further comprising:
subtracting the bias value from the exponents of all intensity values within the image block to provide biased intensity values for each pixel; and
storing the number of leading zero bits of the floating-point bit pattern of the largest biased intensity value in the table of compressed block data, whereby a sign bit is ignored from the number of leading zero bits.
5. The method according to claim 4, the method further comprising:
removing from leading zero bits of the floating-point bit patterns of the biased intensity values of each pixel the number of leading zero bits of the floating-point bit pattern of the largest biased intensity value; and
storing a fixed number of leading bits from the resulting floating-point bit patterns of the biased intensity values of each pixel in the table of compressed block data.
6. The method according to claim 1, the method further comprising:
dividing the image data in said image blocks into sub-blocks;
averaging the color information of the pixels in said sub-blocks such that each pixel in said sub-block is determined to have the same averaged color value.
7. The method according to claim 6, the method further comprising:
normalizing the averaged color information by dividing it with the sum of its color components, and
leaving one of the normalized color components out of the compression process.
8. The method according to claim 7, the method further comprising:
encoding the remaining color components as 7-bit fixed point numbers.
9. The method according to claim 1, wherein the size of the image block is 4\xd74 pixels.
10. The method according to claim 6, wherein the size of the sub-block is 2\xd72 pixels.
11. A method for decoding an image from encoded image data, the method comprising:
decomposing the encoded image data into a plurality of encoded image blocks;
decoding an averaged color information of pixels in a sub-block of said image blocks;
decoding intensity information of the pixels in said image blocks;
modulating the intensity information of each pixel with the averaged color information of the corresponding pixel; and
composing the decoded image blocks into an image with the original dynamic range.
12. The method according to claim 11, the method further comprising:
representing the original dynamic range values of the color components of the pixels with 16-bit or 32-bit floating point arithmetic.
13. The method according to claim 11, wherein the step of decoding intensity information of the pixels in said image blocks further comprises:
decoding a fixed number of intensity value bits for each pixel;
decoding a number of leading zero bits to be included in the intensity value bits for each pixel; and
decoding a bias value, which is added to the intensity value bits for each pixel.
14. The method according to claim 11, wherein for decoding any pixel of the encoded image data, the method further comprising:
identifying at least one pixel to be decoded;
determining, after decomposing the encoded image data into the image blocks, an address of the at least one image block including the at least one pixel to be decoded;
retrieving only the at least one image block including the at least one pixel for decoding; and
decoding the image data of said at least one image block to output decoded image data of said at least one pixel.
15. An image encoder comprising:
an image decomposer for receiving an image having color components of each image pixel represented by a value of a high dynamic range and for decomposing the image into a plurality of image blocks;
at least one block encoder for separating, from the high dynamic range value of each pixel, color information and intensity information of the pixels in said image blocks, and for compressing the color information of the pixels in said image blocks and the intensity information of the pixels in said image blocks independently of each other to provide compressed image data; and
an encoded image composer for composing an encoded image file from the compressed image data of said plurality of encoded image blocks.
16. The image encoder according to claim 15, wherein said at least one block encoder is arranged to compress the intensity information of the pixels separately for each pixel in said image blocks.
17. The image encoder according to claim 16, wherein said at least one block encoder is arranged to
identify a minimum intensity within the whole image block; and
store a floating-point exponent of the minimum intensity in a table of compressed block data as a bias value.
18. The image encoder according to claim 17, wherein said at least one block encoder is arranged to
subtract the bias value from the exponents of all intensity values within the image block to provide biased intensity values for each pixel; and
store the number of leading zero bits of the floating-point bit pattern of the largest biased intensity value in the table of compressed block data, whereby a sign bit is ignored from the number of leading zero bits.
19. The image encoder according to claim 18, wherein said at least one block encoder is arranged to
remove from leading zero bits of the floating-point bit patterns of the biased intensity values of each pixel the number of leading zero bits of the floating-point bit pattern of the largest biased intensity value; and
store a fixed number of leading bits from the resulting floating-point bit patterns of the biased intensity values of each pixel in the table of compressed block data.
20. The image encoder according to claim 15, wherein said at least one block encoder is arranged to
divide the image data in said image blocks into sub-blocks;
average the color information of the pixels in said sub-blocks such that each pixel in said sub-block is determined to have the same averaged color value.
21. The image encoder according to claim 20, wherein said at least one block encoder is arranged to
normalize the averaged color information by dividing it with the sum of its color components, and
leave one of the normalized color components out of the compression process.
22. The image encoder according to claim 21, wherein said at least one block encoder is arranged to encode the remaining color components as 7-bit fixed point numbers.
23. The image encoder according to claim 15, wherein the size of the image block is 4\xd74 pixels.
24. The image encoder according to claim 15, wherein the size of the sub-block is 2\xd72 pixels.
25. An image decoder comprising:
an image decomposer for receiving an encoded image data and for decomposing the encoded image data into a plurality of encoded image blocks;
at least one block decoder for decoding an averaged color information of pixels in a sub-block of said image blocks; for decoding intensity information of the pixels in said image blocks; and for modulating the intensity information of each pixel with the averaged color information of the corresponding pixel; and
an image composer for composing the decoded image blocks into an image with the original dynamic range.
26. The image decoder according to claim 25, further comprising:
means for representing the original dynamic range values of the color components of the pixels with 16-bit or 32-bit floating point arithmetic.
27. The image decoder according to claim 25, wherein said at least one block decoder is further arranged to:
decode a fixed number of intensity value bits for each pixel;
decode a number of leading zero bits to be included in the intensity value bits for each pixel; and
decode a bias value and add said bias value to the intensity value bits for each pixel.
28. The image decoder according to claim 25, further comprising:
means for identifying at least one pixel to be decoded;
a block address computation means for determining, after decomposing the encoded image data into the image blocks, an address of the at least one image block including the at least one pixel to be decoded; and
a block fetching means for retrieving only the at least one image block including the at least one pixel for decoding; wherein
said at least one block decoder is arranged to decode the image data of said at least one image block to output decoded image data of said at least one pixel.
29. An image processing device for encoding an image having color components of each image pixel represented by a value of a high dynamic range, the device including an image encoder comprising:
an image decomposer for receiving image data of said image and for decomposing the image into a plurality of image blocks;
at least one block encoder for separating, from the high dynamic range value of each pixel, color information and intensity information of the pixels in said image blocks, and for compressing the color information of the pixels in said image blocks and the intensity information of the pixels in said image blocks independently of each other to provide compressed image data; and
an encoded image composer for composing an encoded image file from the compressed image data of said plurality of encoded image blocks.
30. An image processing device for decoding an encoded image data, the device including an image decoder comprising:
an image decomposer for receiving an encoded image data and for decomposing the encoded image data into a plurality of encoded image blocks;
at least one block decoder for decoding an averaged color information of pixels in a sub-block of said image blocks; for decoding intensity information of the pixels in said image blocks; and for modulating the intensity information of each pixel with the averaged color information of the corresponding pixel; and
an image composer for composing the decoded image blocks into an image with the original dynamic range.
31. A computer program product, stored on a computer readable medium and executable in a data processing device, for encoding an image having color components of each image pixel represented by a value of a high dynamic range, the computer program product comprising:
a computer program code section for receiving image data of said image and for decomposing the image into a plurality of image blocks;
a computer program code section for separating, from the high dynamic range value of each pixel, color information and intensity information of the pixels in said image blocks;
a computer program code section for compressing the color information of the pixels in said image blocks and the intensity information of the pixels in said image blocks independently of each other to provide compressed image data; and
a computer program code section for composing an encoded image file from the compressed image data of said plurality of encoded image blocks.
32. A computer program product, stored on a computer readable medium and executable in a data processing device, for decoding an encoded image data, the computer program product comprising:
a computer program code section for decomposing the encoded image data into a plurality of encoded image blocks;
a computer program code section for decoding an averaged color information of pixels in a sub-block of said image blocks;
a computer program code section for decoding intensity information of the pixels in said image blocks;
a computer program code section for modulating the intensity information of each pixel with the averaged color information of the corresponding pixel; and
a computer program code section for composing the decoded image blocks into an image with the original dynamic range.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method for determining an anatomical pivot point and alignment therewith, the method comprising the steps of:
transmitting ultrasonic signals from an ultrasonic wand to an ultrasonic receiver, where the ultrasonic receiver is attached to a first end of a bone, the bone comprises two ends, and a second end of the bone is sufficiently stationary;
determining paired transmit-receive ranges between the ultrasonic wand and the ultrasonic receiver by weighted time of flight and phase differential measurements of the ultrasonic signals captured and processed at the ultrasonic receiver;
tracking the ultrasonic wand by way of, and relative to, the ultrasonic receiver during constrained rotational and translational movement at the first end from the paired transmit-receive ranges while the ultrasonic wand is positioned stationary, in proximity and in-sight of the ultrasonic receiver;
calculating a three-dimensional displacement and orientation time trajectory of the ultrasonic wand relative to the ultrasonic receiver from the tracking of the ultrasonic, wand and the time of flight and phase differential measurements;
generating a hemispherical surface representation of the constrained movement at the first end of the bone from the three-dimensional displacement and orientation time trajectory; and
calculating a pivot point of the second end of the bone from the hemispherical surface representation of the constrained movement relative to a predetermined origin of the ultrasonic receiver at the first end of the bone.
2. The method of claim 1, where the ultrasonic receiver further performs the steps of;
tracking a wand tip location of the ultrasonic wand upon movement away from the stationary position;
registering a reference point on the bone pointed to by way of the wand tip;
creating a first vector from the pivot point to the reference point;
registering a tracking point on a second bone pointed to by way of the wand tip;
creating a second vector from the reference point to the tracking point; and
reporting alignment of the first vector and the second vector,
where the wand tip has no sensory electronics, transmitters or labeled markers affixed or attached thereon.
3. The method of claim 1, wherein the step of generating a hemispherical surface representation comprises calculating a least squares spherical fit of a locus of three-dimensional surface points produced from the tracking of the ultrasonic receiver during the constrained movement.
4. The method of claim 3, wherein the the east squares sphere fit resolves a radial length of the bone and an origin of the pivot point relative to the ultrasonic receiver from the constrained movement, where the bone is:
an arm bone that moves with respect to a relatively stationary elbow or shoulder pivot joint, or
a leg bone that moves with respect to a relatively stationary knee or hip pivot point.
5. The method of claim 1, further comprising weighting a direct time of flight and phase differential measurements according to a relative location of the ultrasonic wand with respect to a location of the ultrasonic receiver.
6. The method of claim 1, further comprising:
synchronizing a transmit pulsing of the ultrasonic signals transmitted at the ultrasonic wand and
incorporating timing of the synchronized transmit pulsing for determining the time of flight and phase differentials.
7. The method of claim 6, comprising periodically transmitting an optical pulse from a transmitter to the receiver to establish a synchronized and periodic time reference for the time of flight and the phase differential measurements.
8. The method of claim 1, comprising:
creating a sound map of the acoustic propagation characteristics of the-ultrasonic wand transmitters at a plurality of locations in physical space in proximity to the ultrasonic receiver; and
weighting the time of flight and the phase differential measurements of the ultrasonic signals according to the sound map,
where the sound map identifies transmission parameters of temperature, attenuation, frequency and phase.
9. A method for determining an anatomical pivot point and alignment therewith, the method comprising the steps of:
producing a three-dimensional acceleration surface according to changes in a local orientation of an ultrasonic receiver due to acceleration,
where the ultrasonic receiver is attached to a first end of a bone, the bone comprises two ends, and a second end of the bone is sufficiently stationary;
generating a hemispherical surface representation of constrained rotational and translational movement at the first end from the three-dimensional acceleration surface; and
calculating, relative to the ultrasonic receiver, a pivot point of the bone at the second end from the hemisphencai surface representation of the three-dimensional acceleration surface.
10. The method of claim 9, where the ultrasonic receiver further performs the steps of:
directing an ultrasonic wand to transmit ultrasonic signals by way of three or more ultrasonic transducers located thereon;
determining time of flight and phase differential measurements of the transmitted ultrasonic signals at the ultrasonic receiver; and
tracking a wand tip location of the ultrasonic wand that is in proximity and in-sight of the ultrasonic receiver.
11. The method of claim 10, where the ultrasonic receiver performs the steps of:
registering a reference point on the bone pointed to by way of the wand tip;
creating a first vector from the pivot point to the reference point;
identifying a tracking point on a second bone by way of the ultrasonic wand;
creating a second vector from a distal point to the tracking point; and
reporting alignment of the first vector and the second vector,
where the wand tip has no sensory electronics, transducers, or labeled markers affixed or attached thereon.
12. The method of claim 9, comprising
calculating a least squares spherical fit of the acceleration surface for each of a plurality of three or more transducers;
determining an intersection of the least squares spherical fit representing each of the three or more transducers; and
resolving a radial length of the bone and an origin of the pivot point from the intersection.
13. A system for determining an anatomical pivot point and alignment therewith, the system comprising:
an ultrasonic wand including:
three or more ultrasonic transmitters to transmit ultrasonic signals through air;
an electronic circuit to generate and shape driver signals to the three or more ultrasonic transmitters for producing the ultrasonic signals;
an interface to receive user input for registering a wand tip location of the ultrasonic wand,
a communications port to relay the user input and or receiving timing information to control the electronic circuit; and
a battery to power the electronic circuit and associated electronics,
where the wand tip has no sensory electronics, transmitters or labeled markers affixed or attached thereon,
and
an ultrasonic receiver including:
a processor to generate timing information, track hemispherical movement of the ultrasonic receiver from the timing information, and resolve a pivot point of the hemispherical movement when the ultrasonic wand is in proximity;
a communications interface to transmit the timing information to the ultrasonic wand that in response transmits the ultrasonic signals;
three or more microphones to receive the ultrasonic signals transmitted through the air.
a memory to store received ultrasonic signals to produce a history of received ultrasonics signals,
a wireless communication interface to wirelessly convey positional information and alignment of pointing locations to a remote system; and
a battery to power the processor and associated electronics,
where the processor selectively references the history of stored ultrasonic signals to track the hemispherical movement of the ultrasonic receiver over time.
14. The system of claim 13, where the processor:
directs the ultrasonic wand to transmit the ultrasonic signals, where the ultrasonic receiver is configured to be attached to a first end of a bone, the bone comprises two ends, and a second end of the bone is sufficiently stationary;
determines paired transmit-receive ranges between the ultrasonic wand and the ultrasonic receiver by weighted time of flight and phase differential measurements of the ultrasonic signals captured and processed at the ultrasonic receiver;
tracks the ultrasonic wand by way of, and relative to, the ultrasonic receiver during constrained rotational and translational movement of the first end of the bone from the paired transmit-receive ranges while the ultrasonic wand is positioned stationary, in proximity and in-sight of the ultrasonic receiver; and
registers a pointing location of the wand tip responsive to the user input, and determines an alignment of the pivot point and two or more registered wand tip locations.
15. The system of claim 14, where the processor:
calculates a three-dimensional displacement and orientation time trajectory of the ultrasonic wand relative to the ultrasonic receiver from the tracking of the ultrasonic wand and the time of flight and phase differential measurements;
generates a hemispherical surface representation of the movement at the first end of the bone from the three-dimensional displacement and orientation time trajectory; and
calculates the pivot point of the second end of the bone from the hemispherical surface representation of the movement relative to a predetermined origin of the ultrasonic receiver at the first end of the bone,
where the bone is:
a leg bone that is relatively straight with respect to a hip pivot point, or
an arm bone that is relatively straight with respect to a shoulder pivot joint.
16. The system of claim 13, where the processor:
synchronizes a transmit pulsing of the ultrasonic signals at the ultrasonic wand; and
determines the time of flight and phase differentials from the synchronized transmit pulsing.
17. The system of claim 13, where the ultrasonic wand includes:
an infrared transmitter that pulses an infrared timing signal that is synchronized with the transmitting of the ultrasonic signals to the ultrasonic receiver,
where the ultrasonic receiver includes a photo diode for detecting the infrared signal and establishing a transmit time of the ultrasonic signals to permit wireless infrared communication there between.
18. The system of claim 13, where the communications interface of the ultrasonic receiver includes a wireless communication channel operating via BlueTooth, Zig-Bee or Radio Frequency.
19. The system of claim 13, where the ultrasonic receiver includes:
an accelerometer to determine a local orientation relative to the ultrasonic wand, where the ultrasonic receiver is configured to be attached to a first end of a bone, the bone comprises two ends, and a second end of the bone is sufficiently stationary, and the processor:
produces a three-dimensional acceleration surface according to changes in the local orientation of the ultrasonic receiver due to acceleration;
generates a hemispherical surface representation of the movement at the first end of the bone in three-dimensions from the three-dimensional acceleration surface; and
calculates, relative to the ultrasonic receiver, a pivot point of the bone at the second end from the hemispherical surface representation of the three-dimensional acceleration surface.
20. The system of claim 19, where the ultrasonic receiver
directs the ultrasonic wand to transmit ultrasonic signals by way of the three or more ultrasonic transducers located thereon;
determine time of flight and phase differential measurements of the transmitted ultrasonic signals at the ultrasonic receiver;
tracks a wand tip location of the ultrasonic wand that is in proximity and in-sight of the ultrasonic receiver to register two or more points of interest; and
reports alignment of the pivot point and the two or more points of interest.