Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND APPARATUS FOR HAPTIC VIBRATION RESPONSE PROFILING AND FEEDBACK
Document Type and Number:
WIPO Patent Application WO/2012/135378
Kind Code:
A1
Abstract:
Embodiments of the present invention may provide a device to adaptively generate a haptic effect. The device may include a controller to generate a haptic command associated with a haptic profile and a haptic driver to generate a drive signal based on the haptic command, wherein the drive signal causes an actuator to produce vibrations corresponding to a haptic effect. Further, the device may include a sensor, coupled mechanically to the actuator, to measure at least one property of the vibrations. The controller may adjust the haptic command according to the measured at least one property. Therefore, the device may continuously tune haptic effect generation according to vibration measurements.

Inventors:
CONWAY MEL J (IE)
PRATT SUSAN MICHELLE (IE)
FLANAGAN ADRIAN (IE)
MOLONEY EOGHAN (IE)
ENGLISH EOIN E (IE)
Application Number:
PCT/US2012/031003
Publication Date:
October 04, 2012
Filing Date:
March 28, 2012
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ANALOG DEVICES INC (US)
CONWAY MEL J (IE)
PRATT SUSAN MICHELLE (IE)
FLANAGAN ADRIAN (IE)
MOLONEY EOGHAN (IE)
ENGLISH EOIN E (IE)
International Classes:
G08B6/00
Foreign References:
US20110075835A12011-03-31
US20040056840A12004-03-25
US7843277B22010-11-30
US20110090153A12011-04-21
Attorney, Agent or Firm:
MESSINA, Gerard A. et al. (1500 K Street N.w, Washington DC, US)
Download PDF:
Claims:
WE CLAIM:

1. A device, comprising:

a controller to generate a haptic command associated with a haptic profile;

a haptic driver to generate a drive signal based on the haptic command, wherein the drive signal causes an actuator to produce vibrations corresponding to a haptic effect; and a sensor, coupled mechanically to the actuator, to measure the vibrations;

wherein the controller is configured to adjust the haptic command according to a property of the measured vibrations.

2. The device of claim 1, further comprises a housing, wherein the controller, haptic driver, and actuator are provided inside the housing, and wherein the sensor measures vibrations generated inside the housing.

3. The device of claim 1, wherein the sensor is an accelerometer sensor.

4. The device of claim 1, wherein the at least one property includes an amplitude level of the vibrations.

5. The device of claim 1, wherein the at least one property includes a resonant frequency of the vibrations.

6. The device of claim 1, wherein the controller comprises

a memory to store the haptic profile, the haptic profile including data representing an ideal property of the vibrations; and

a processor to compare the estimated property and the ideal property, and based on the comparison, adjust the haptic command.

7. The device of claim 6, wherein the processor updates the associated haptic profile according to the adjustment.

8. The device of claim 1, further comprises a gyroscope.

9. The device of claim 1, wherein the adjusted haptic command is applied to the haptic effect before the haptic effect concludes.

10. The device of claim 1, wherein the adjusted haptic command is applied to a subsequent haptic effect.

11. The device of claim 1, further comprising a plurality of actuators, wherein each actuator generates vibration waves that through wave interference with each other to produce the haptic effect.

12. A method to generate a haptic effect, comprising:

generating a haptic command based on a haptic effect profile;

converting the haptic command to a drive signal that causes vibrations in an actuator producing a haptic effect;

receiving a mechanical measurement value corresponding to the vibrations; and adjusting the haptic command based on the mechanical measurement value.

13. The method of claim 12, wherein the mechanical measurement value relates to an amplitude of the vibrations.

14. The method of claim 12, wherein the mechanical measurement value relates to a resonant frequency of the vibrations.

15. The method of claim 12, further comprises comparing the mechanical measurement value with an ideal value in the haptic effect profile, and based on the comparison, adjusting the haptic command.

16. The method of claim 15, further comprises updating the haptic effect profile according to the adjusting.

17. The method of claim 12, wherein the adjusted haptic command is applied to the haptic effect before the haptic effect concludes.

18. The method of claim 12, wherein the adjusted haptic command is applied to a subsequent haptic effect.

19. The method of claim 12, wherein the drive signal excites a plurality of actuators to generate corresponding vibration waves and the haptic effect is generated from interference of vibration waves.

20. A controller to generate haptic effects, comprising:

a memory to store at least one haptic profile, an interface to receive mechanical sensor data corresponding to vibration properties; and

a processor to generate a haptic effect command based on the at least one haptic profile and the mechanical sensor data.

21. The controller of claim 20, wherein the interface is an I2C interface.

22. The controller of claim 20, wherein the interface is a general purpose input/output interface.

23. The controller of claim 20, wherein the at least one haptic profile is iteratively updated with the sensor data.

24. A method to generate a haptic effect, comprising:

generating a first drive signal to cause a first actuator to produce a first vibration wave;

generating a second drive signal to cause a second actuator to produce a second vibration wave, wherein interference of the vibration waves generate the haptic effect; and controlling the frequency or phase of at least one of the drive signals to control location and severity of the interference.

25. The method of claim 24, wherein the controlling is based on a mechanical sensor measurement.

Description:
METHOD AND APPARATUS FOR HAPTIC VIBRATION RESPONSE PROFILING AND

FEEDBACK

RELATED APPLICATIONS

[01] This application claims priority to provisional U.S. Patent Application Serial No.

61/470,764, entitled "Touch Screen and Haptic Control" filed on April, 1, 2011, the content of which is incorporated herein in its entirety.

BACKGROUND

[02] The present invention relates to user interface control and haptics generation.

[03] Haptics refers to the sense of touch. In electronic devices, haptics relates to providing a touch sensory feedback to the user. Electronic devices incorporating haptics may include cell phones, PDAs, gaming devices, etc. The user interacts with electronic devices through a user interface, such as a touch screen; however, the user often does not know if the user's desired function was recognized or is being performed by the electronic device. Thus, electronic devices generate a haptic feedback in the form of a vibro-tactile sensation (e.g. a simulated "click") to alert the user of the electronic device's performance. Stated differently, haptic feedback lets the user know what is going on with the electronic device. In a gaming electronic device, for example, haptics can provide a sensory stimuli according to game interactions.

[04] Haptic feedback can be generated by electro-mechanical systems. An electrical system produces a drive signal that will then cause a mechanical system to produce the haptic effect. For example, an actuator incorporating a moving mass can be used to generate haptic effects. A linear resonant actuator (LRA) is an example of one such actuator in which a moving mass is spring loaded. For efficient haptic generation using an LRA, the spring loaded mass may be driven at its mechanical resonant frequency, which is the natural vibration frequency of the spring loaded mass. Also, the magnitude of the haptic effect may be controlled by the amplitude of the actuator driving signal.

[05] In some conventional systems, BEMF (Back Electromotive Force) is used to tune the actuator. BEMF is an electrical signal that is induced into a the electrical connections of the motor by the movement of a permanent magnet (which as a mass) relative to a stationary wire wound coil. In theory, the BEMF signal will have electrical properties (e.g., frequency, l amplitude) that correspond to the mechanical vibrations in the actuator. However, the BEMF measurements may be unreliable at times because of electrical interferences in the system and, thus, may not provide accurate representation of the vibrations.

[06] Hence, the inventors recognized a need in the art for an adaptive haptic effect generation technique based on accurate representations of the mechanical vibrations.

BRIEF DESCRIPTION OF THE DRAWINGS

[07] FIG. 1(a) is a simplified block diagram of a haptic generation system according to an embodiment of the present invention.

[08] FIG. 1(b) is a simplified block component diagram of haptic generation system according to an embodiment of the present invention.

[09] FIG. 2 is a simplified block diagram of a user interface (UI) controller according to an embodiment of the present invention.

[10] FIG. 3 illustrates exemplary haptic profile representations according to an embodiment of the present invention.

[11] FIGS. 4(a)-4(c) illustrate haptic actuator configurations according to embodiments of the present invention.

[12] FIG. 5 illustrates an interference pattern according to an embodiment of the present invention.

[13] FIG. 6 is a simplified block diagram of feedback generation system according to an embodiment of the present invention.

DETAILED DESCRIPTION

[14] Embodiments of the present invention may provide a device to adaptively generate a haptic effect. The device may include a controller to generate a haptic command associated with a haptic profile and a haptic driver to generate a drive signal based on the haptic command, wherein the drive signal causes an actuator to produce vibrations corresponding to a haptic effect. Further, the device may include a sensor, coupled mechanically to the actuator, to measure the vibrations. The controller may adjust the haptic command according to a property of the measured vibrations. Therefore, the device may continuously tune haptic effect generation according to vibration measurements. [15] FIG. 1(a) is a simplified block diagram and FIG. 1(b) is a simplified component block diagram of an adaptive haptic generation system 100 according to an embodiment of the present invention. The system 100 may include a User Interface (UI) controller 110, a haptics driver 120, a haptics actuator 130, a mechanical connector 140, a mechanical sensor 150, and a housing 160. The system 100 may be provided within a consumer electronic device such as a cell phone, PDA, gaming device, etc.

[16] The UI controller 110 may be coupled to the haptics driver 120 and a mechanical sensor 150. The UI controller 110 may generate a control signal based on a desired haptic effect and may transmit the control signal to the haptics driver 120. For example, a user may select an icon on a touchscreen, and the UI controller 110 may generate a control signal corresponding to a desired haptic effect such as a clicking vibration to provide a feedback stimuli.

[17] FIG. 2 is a block diagram of a UI controller 110 from FIG. 1 according to an embodiment of the present invention. The UI controller 110 may include a processor 210, a memory 220, a serial interface 230, and a general purpose input/output (GPIO) 240.

[18] The processor 210 may control the operations of the UI controller 110 according to instructions saved in the memory 220. The memory 220 may also store sensor data from the coupled mechanical sensor 150, and the memory 220 may store haptic effect profiles as will be described below. The memory 220 may be provided as a non-volatile memory, a volatile memory such as random access memory (RAM), or a combination thereof.

[19] The serial interface 230 may connect to the coupled mechanical sensor 150. The serial interface 230, for example, may be provided as high speed I2C interfaces. The GPIO 240 may connect to the haptics driver 120. The UI controller 110 may also be coupled to a host system (not shown) of the device via the GPIO 240.

[20] Returning to FIG. 1, the haptics driver 120 may receive the control signal from the UI controller 110 and may generate a drive signal based on the control signal. The drive signal may be an analog signal. The drive signal may be a current signal or a voltage signal.

[21] The haptics driver 120 may be coupled to the haptics actuator 130. The haptics actuator may be embodied as piezoelectric elements, linear resonant actuators (LRAs), eccentric rotating mass actuators (ERMs), and/or other known actuator types. The haptics driver 120 may transmit the drive signal to the haptics actuator 130 causing it to vibrate according to the drive signal properties. The vibrations may be felt by the user providing a vibro-tactile sensory feedback stimuli.

[22] In an embodiment, the haptics actuator 130 may include a mechanical system such as a motor that vibrates to generate the desired haptic effect. For example, the haptics actuator 130 may include a coil motor with a spring loaded mass and a permanent magnet. The coil motor may cause the spring loaded mass to vibrate to generate the haptic effect. The haptics actuator 130 may also include magnetic coils to generate the motion.

[23] The vibrations may also be captured by the mechanical sensor 150 via the mechanical connector 140. The mechanical connector 140 may be provided as a printed circuit board (PCB) where other components, including the UI controller 110, the haptics driver 120, the haptics actuator 130, and/or the mechanical sensor 150, may be mounted. The mechanical sensor 150 may be provided as an accelerometer sensor. For example, the mechanical sensor 150 may be provided as a Microelectromechanical Systems (MEMS) accelerometer sensor. Further, the MEMS accelerometer may be provided as a single axis or multi-axis sensor(s) to measure force(s) corresponding to the vibrations in the haptics actuator 130.

[24] The mechanical sensor 150 may measure mechanical properties of the generated haptic effect vibrations, and may transmit the measured mechanical properties to the UI controller 110. In response to the measured mechanical properties, the UI controller 110 may adjust the control signal for the respective haptic effect.

[25] In operation, the UI controller 110, responsive to a user action, may generate a control signal corresponding to a particular haptic effect. The control signal may be a haptic effect command. The UI controller 110 may generate the control signal based on a stored haptic effect profile associated with the desired haptic effect.

[26] Fig. 1(b) is a simplified component block diagram of the adaptive haptic generation system 100 according to an embodiment of the present invention. The UI controller 110, haptics driver 120, and mechanical sensor 150 may provided as circuit components that are mounted on a printed circuit board (PCB). The PCB and its mounted circuit components may be provided inside a housing 160. The UI controller 110 may be electrically coupled to the haptics driver 120 and the mechanical sensor, for example via electrical traces on the PCB. The haptics driver 120 may also be electrically coupled to the haptics actuator 130. [27] The haptics actuator 130 may include a mechanical system such as a motor that vibrates to generate the desired haptic effect. For example, the haptics actuator 130 may include a coil motor with a spring loaded mass and a permanent magnet. The coil motor may cause the spring loaded mass to vibrate to generate the haptic effect. The haptics actuator may also include magnetic coils to generate the motion. In an embodiment, the haptics actuator 130 may be connected to the housing 160. Hence, when the haptic actuator 130 is driven and vibrates, the connected housing 160 may also vibrate, which may be felt by a user.

[28] The haptics actuator 130 may be coupled to the mechanical sensor 150 via the mechanical connector 140. In an embodiment, the mechanical connector 140 may be provided as the printed circuit board PCB on which other components, including the UI controller 110, the haptics driver 120, the haptics actuator 130, and/or the mechanical sensor 150, may be mounted. The mechanical sensor 150 may be provided as an accelerometer sensor. For example, the mechanical sensor 150 may be provided as a Microelectromechanical Systems (MEMS) accelerometer sensor. Further, the MEMS accelerometer may be provided as a single axis or multi-axis sensor(s) to measure force(s) corresponding to the vibrations in the haptics actuator 130.

[29] The mechanical sensor 150 may measure the vibrations (i.e., haptic effect) generated inside the housing 160 by the haptics actuator 130. The mechanical sensor 150 may measure mechanical properties of the generated haptic effect vibrations, and may transmit the measured mechanical properties to the UI controller 110. In response to the measured mechanical properties, the UI controller 110 may adjust the control signal for the respective haptic effect.

[30] FIG. 3 illustrates an exemplary representation of haptic effect profiles according to an embodiment of the present invention. The haptic effect profiles may be stored in the memory 220 of the UI controller 110 of FIGS. 1 and 2. The memory 220 may store a plurality of haptic effect profiles 310, 340, 350 and each haptic effect profile may correspond to a unique haptic effect.

[31] Each haptic effect profile, for example Haptic effect 1 profile 310, may include two sets of information, ideal properties 320 and their corresponding command variables 330. In an embodiment of the present invention, the ideal properties 320 may be provided as read-only information with respect to the UI controller 110. For example, the ideal properties 320 may be pre-programmed into the UI controller 110 or may be programmed by the host system.

[32] The ideal properties 320 may include values corresponding to various characteristic of the respective haptic effect. For example, the ideal properties 320 may include an ideal frequency value, which may correspond to a desired resonant frequency of the haptic effect. The ideal properties 320 may include an ideal amplitude value, which may correspond to a desired magnitude (i.e., "volume") of the haptic effect. The ideal properties may include an ideal duration value, which may correspond to a desired length of the haptic effect. The ideal properties may include an ideal start value, which may correspond to a desired initial vibratory feature of the haptic effect. For example, some haptic effects may have a ramping feature that gradually increases in magnitude over the duration of the haptic effect. The ideal properties may include an ideal braking value, which may correspond to how the haptic effect is stopped. For example, some haptic effects may use a braking technique to slow the vibration using the actuator's natural frequency rather than using an abrupt stop.

[33] Each ideal property value may have a corresponding command variable 330. The command variables 330 may be associated with the control signal that will effectuate the respective haptic effect and, consequently, the desired haptic effect properties. In an embodiment, the UI controller 110 may generate a control signal (i.e., haptic command) using the command variables 330 that will correspond to a drive signal that will generate the desired haptic effect.

[34] For example, a frequency factor may be haptic command variable that causes the haptic actuator 130 to vibrate at an ideal resonant frequency for that respective haptic effect. An amplitude factor may be a haptic command variable that causes the haptic actuator 130 to vibrate at an ideal magnitude for that respective haptic effect. A duration factor may be a haptic command variable that causes the haptic actuator 130 to vibrate for an ideal length for that respective haptic effect. A start factor may be a haptic command variable that causes the haptic actuator 130 to begin vibrating in a certain manner for the initial phase of that respective haptic effect. A braking factor may be a haptic command variable that causes the haptic actuator 130 to stop vibrating in a certain manner for that respective haptic effect.

[35] Ideally, the vibrations of the haptic effect would display the associated ideal properties 320 of the command variables 330. However, various factors such as manufacturing irregularities or wear and tear of parts may lead to discrepancies between the ideal properties and actual properties of the generated haptic effect. Thus, haptic effect generation may be adaptively tuned according to an embodiment of the present invention.

[36] Consequently, the command variables 330 may be programmable by the UI controller 110. The command variables 330 may be adjusted continuously, dynamically, and/or iteratively. According to an embodiment of the present invention, the UI controller 110 may adjust the command variables 330 based on measurement values received from the mechanical sensor 150. The adjustments may synchronize the actual measured properties towards the ideal properties 320 of the respective haptic effect. Thus, the UI controller 110 may compare the received measurement values to the stored ideal properties 320, and based on the comparison(s), the UI controller 110 may adjust the command variables 330 accordingly.

[37] In an embodiment of the present invention, the adjustments may be applied to the current haptic effect from which the measurements were procured. In other words, the UI controller 110 and haptics driver 120 may cause the haptics actuator 130 to vibrate to generate the desired haptic effect. The mechanical sensor 150 may measure the mechanical properties of the haptic effect and may report the measured values to the UI controller 110. Based on the the comparison(s) between the measurement values and ideal properties, the UI controller 110 may adjust the haptic command while the current haptic effect is still occurring. The haptics driver 120, in turn, may drive the haptic actuator 130 according to the adjusted haptic command, which will adjust the current haptic effect before it has finished.

[38] In another embodiment of the present invention, the adjustments may applied to a subsequent haptic effect request. Thus, the adjustments may be saved, and the next time that haptic effect is requested, the UI controller 110 may generate the haptic command based on the saved adjustments.

[39] In an embodiment of the present invention, the command variables 330 may be provided as look up tables (LUTs). The current factors for the command variables 330 may be indicated by a pointer, which may be incremented/decremented based on the comparison(s) between the measurement values and ideal properties.

[40] Haptic elements may be provided at different locations inside the electronic device.

The haptic effect may vary depending on the location of the haptic elements. FIG. 4 illustrates configurations 400 of piezoelectric actuators for use in accordance with embodiments of the present invention. As illustrated in FIG. 4(a), piezoelectric elements 420.1 may be affixed to a bottom surface of a touch screen 410. In this embodiment, the piezoelectric elements 420.1 may be integrated with the touch screen 410 and may be provided at a layer above certain optically active elements of the screen (for example, higher than the LCD panel and backlight). For example, the piezoelectric elements 420.1 may be affixed to a glass layer of the screen, which typically is the layer that a user touches directly when interfacing with the touch screen 410. In this embodiment, the piezoelectric elements may be provided at locations toward a periphery of the glass layer, outside the viewable area of the touch screen 410. Electrical activation of the piezoelectric elements may cause flexion in a direction normal to the touch screen surface (up and down).

[41] As illustrated in FIG. 4(b), piezoelectric elements 420.2 may be affixed to a periphery of a touch screen 410. Electrical activation of the piezoelectric element may cause flexion in a direction parallel to the touch screen 410 (laterally in the X and/or Y direction). This embodiment places the piezoelectric elements 220.2 at locations that are off the viewable area of the touch screen 410.

[42] As illustrated in FIG. 4(c), piezoelectric elements 420.3 may be provided under a touch screen 410. In this embodiment, the piezoelectric elements may be provided below the touch screen device 410 under the optically active elements of the screen (e.g. below the LCD, backlight, etc.). In this case, the piezoelectric elements 420.1 may be located anywhere along the lower surface of the screen. Electrical activation of the piezoelectric elements 420.2 may cause flexion in a direction normal to the touch screen surface (up and down). Although piezoelectric elements are illustrated above, embodiments of the present invention also permit use of LRAs or ERMs.

[43] In an embodiment, a haptics driver may assert drive signals to the haptics actuators in a manner to create deflection waves laterally across a surface of the touch screen. Consider the configuration shown in FIG. 4(a). In this configuration, haptics elements are provided at edges of the touch screen in four or, optionally, six locations. Each of the elements may be driven with a periodic activation pulse that causes deflection wave to radiate laterally across a screen surface away from the respective elements. Owing to the inertia of the touch screen, digital activation pulses may generate waves on the touch screen surface that are approximately sinusoidal. In such an embodiment, a haptics driver may control a frequency and phase of drive signals to individual haptics elements to tailor deflection waves that emanate from each actuator. Through constructive and destructive interference of these waves, the haptics driver may control the shape, orientation and magnitude of haptics effects.

[44] FIG. 5 is a graph illustrating a simulated interference pattern that may be generated across a surface of a touch screen according to an embodiment of the present invention. In this example, wave 2 has a frequency that is five times higher than wave 1. As illustrated, the waves constructively interfere to cause a spike at a central position of the graph. The position of the spike may be shifted laterally within the graph by manipulating the phase of each wave. The shape of the total effect may be controlled by manipulating the frequency of each wave and the numbers of waves radiated onto the surface.

[45] During operation, a haptics driver may control the frequency and phase of waves surface waves generated on a touch screen surface. In an embodiment, the frequency and phase may be adjusted based on mechanical sensor feedback measurements as described herein. To generate a spatially narrow sharp effect, waves may be controlled to provide a relatively large spike. The generate a spatially broader effect, waves may be controlled to provide a wider spike. Further, during operation, as a user's finger moves across the surface of the touch screen, the haptics driver may manipulate phase of the surface waves output to the touch screen in order to cause the waves to track the user's finger. Moreover, a haptics driver may convey a feeling of texture by manipulating both phase and frequency. In an application where a textured surface is displayed by the device (for example, in a gaming application), a haptic texture effect may be rendered as a user's finger slides along the displayed textured surface.

[46] Principles of this invention may also find application in other adaptive sensory feedback generation. For example, a haptic effect may be accompanied with an auditory effect and/or a visual effect to provide a multi-sensory feedback stimulation. FIG. 6 is a simplified block diagram of an adaptive multi-sensory feedback system 600 according to an embodiment of the present invention. The system 600 may include a User Interface (UI) controller 610, a haptics system 620, a sound system 630, a lighting system 640, a mechanical sensor 650, a sound sensor 660, and a light sensor 670. The system 600 may also include a gyroscope 680. The system 600 may be incorporated into an electronic device such as a cell phone, PDA, gaming device, etc. [47] The UI controller 610 may control the haptic system 620, which may include a haptics driver and haptics actuator, to generate a haptic effect according to mechanical sensor 650 measurements as described above.

[48] The UI controller 610 may also control a sound system 630 to generate an auditory effect. The sound system 630 may include an audio driver and a speaker. The auditory effect may be captured by the sound sensor 660, for example a microphone. As described above with respect to haptic effects, the UI controller 610 may adjust the auditory effect based on the sound sensor 660 measurements.

[49] Furthermore, the UI controller 610 may control a lighting system 640 to generate a visual effect, for example a change in the backlight of the display or touchscreen. The lighting system 640 may include display driver such as a LED/LCD driver. The visual effect may be captured by the light sensor 670. As described above with respect to haptic effects, the UI controller 610 may adjust the visual effect based on the light sensor 670 measurements.

[50] In an embodiment of the present invention, orientation information from the gyroscope 680 may be taken into account when generating sensory effects. For example, the gyroscope 680 may provide information regarding orientation state of the device. In turn, the UI controller 610 may generate or adjust a haptic command based on the orientation information.

[51] Those skilled in the art may appreciate from the foregoing description that the present invention may be implemented in a variety of forms, and that the various embodiments may be implemented alone or in combination. Therefore, while the embodiments of the present invention have been described in connection with particular examples thereof, the true scope of the embodiments and/or methods of the present invention should not be so limited since other modifications will become apparent to the skilled practitioner upon a study of the drawings, specification, and following claims.

[52] Various embodiments may be implemented using hardware elements, software elements, or a combination of both. Examples of hardware elements may include processors, microprocessors, circuits, circuit elements (e.g., transistors, resistors, capacitors, inductors, and so forth), integrated circuits, application specific integrated circuits (ASIC), programmable logic devices (PLD), digital signal processors (DSP), field programmable gate array (FPGA), logic gates, registers, semiconductor device, chips, microchips, chip sets, and so forth. Examples of software may include software components, programs, applications, computer programs, application programs, system programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, application program interfaces (API), instruction sets, computing code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof. Determining whether an embodiment is implemented using hardware elements and/or software elements may vary in accordance with any number of factors, such as desired computational rate, power levels, heat tolerances, processing cycle budget, input data rates, output data rates, memory resources, data bus speeds and other design or performance constraints.

[53] Some embodiments may be implemented, for example, using a computer-readable medium or article which may store an instruction or a set of instructions that, if executed by a machine, may cause the machine to perform a method and/or operations in accordance with the embodiments. Such a machine may include, for example, any suitable processing platform, computing platform, computing device, processing device, computing system, processing system, computer, processor, or the like, and may be implemented using any suitable combination of hardware and/or software. The computer-readable medium or article may include, for example, any suitable type of memory unit, memory device, memory article, memory medium, storage device, storage article, storage medium and/or storage unit, for example, memory, removable or non-removable media, erasable or non-erasable media, writeable or re-writeable media, digital or analog media, hard disk, floppy disk, Compact Disc Read Only Memory (CD-ROM), Compact Disc Recordable (CD-R), Compact Disc Rewriteable (CD-RW), optical disk, magnetic media, magneto-optical media, removable memory cards or disks, various types of Digital Versatile Disc (DVD), a tape, a cassette, or the like. The instructions may include any suitable type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, encrypted code, and the like, implemented using any suitable high-level, low-level, object-oriented, visual, compiled and/or interpreted programming language.