The present disclosure relates to a system for modulating the polarization and phase of light reflected from displays, for example, digital displays and microdisplays, such as Liquid Crystal on Silicon (LCOS) display devices and microLED display devices More particularly, the disclosure relates to systems and methods for providing and operating digital microdisplay systems.
LCOS displays typically come in two types characterized primarily by the type of circuitry under each display pixel, namely, analog and digital. These conventional display types are described below one at a time and also in connection with prior art.
In an analog display, the circuitry under each pixel is primarily just a storage capacitor. In operation, a source of analog voltage is sequentially connected to the storage capacitor in each pixel so as to store an analog voltage in the capacitor in each pixel. These stored voltages are connected to the pixel electrodes for the corresponding pixels. The variable voltages on these pixel electrodes in turn determine the response of the Liquid Crystal (LC) directly above each of these pixels. As a result, they ultimately determine (for Amplitude Displays) the amount of polarization change for light reflected from that pixel, or (for Phase Displays) the amount of phase shift applied to the light reflected from that pixel. This variable voltage is an analog quantity, so the resulting modulation of polarization or phase-shift in the LC also varies as a variable analog quantity. This makes the reproduction of gray-scale images straight-forward for such a display. Analog displays have become more and more difficult to build as the pixel size gets smaller, because very small pixels imply very small pixel capacitors, and these small capacitors cannot hold an accurate charge long enough for successful display operation, due to leakage currents bleeding it off.
Analog pixel circuitry may also include a single pixel capacitor and a transistor, which can be used to connect it to an internal analog data source. In use, each pixel is connected to the internal data source long enough to charge the capacitor to the voltage on the data source. Then the transistor switches off and charging of another pixel begins. This action must be repeated for each pixel in the display during each frame.
There are two limitations of this approach. First, once the capacitor is charged to the desired voltage it must retain this voltage for the rest of the frame. There is always some leakage from such capacitors, both through the insulation in and around the capacitor and through the charge control transistor. For large capacitors with substantial stored charge, this leakage can cause the voltage to change very slowly and so the voltage change could be neglected. However, for capacitors small enough to fit under small pixels, even a small amount of leakage will cause the voltage on the capacitor to discharge rapidly. This change of voltage or discharge during the frame is called “droop”, and results in voltage errors over time during the frame. These voltage errors directly translate to amplitude or phase errors. For capacitors small enough to fit in small pixels, it is difficult to prevent this leakage-caused droop from completely discharging the pixel capacitors during the frame. Note that leakage in an IC tends to go up exponentially as die temperature increases, making a difficult problem even worse. Thus, analog circuitry is poorly-suited for very small microdisplays.
The second limitation of this approach is that it takes time to charge each pixel capacitor to its correct value. Since this is basically a serial process (one at a time), it takes a relatively long time to charge all the capacitors for the entire array—typically the entire frame time. This imposes a number of other limitations on the display performance. In particular, it prevents use of other techniques such as Vcom switching or illumination gating which would otherwise be required to make such a display work well, because there is no point in time suitable for these things to happen. To help reduce this charge time, analog designs commonly use multiple analog data sources so that multiple pixels can be charged at the same time, and it is common to encounter designs that use up to 12 data sources running in parallel. Even so, writing a high-resolution display with 2 million or more pixels in a frame time is challenging. The fact that display data is being written over the entire frame time creates limitations.
Digital LCOS displays are a newer development. They incorporate digital memory internal to each pixel, which can store only a “1” or “0” state. This means that the pixel electrode can only be set to two possible voltages, corresponding to LC-states that are fully “on” or fully “off”. On the other hand, this 1 or 0 state can be written to the pixel very quickly, and doesn't “bleed-off” due to leakage.
Digital LCOS displays typically achieve gray-scale by writing a fast series of 1's and 0's to each pixel, which cause the LC to alternate between these fully-on and fully-off states. These changes happen much faster than the eye can respond to, so the eye averages the duty-cycle for these “off” and “on” conditions into an equivalent gray-scale. In use, digital LCOS displays are typically written with “bit-planes” of 1's and 0's many times during each frame to achieve the required equivalent gray-scale values, using some variant of either Duty-Cycle Modulation (DCM) or Pulse-Width Modulation (PWM) encoding. Digital pixel designs can be made very small (3 μm pitch or less) and do not suffer from leakage problems. However, they tend to require more complex pixel circuits with many more transistors. In addition, they also require very high external data rates to write the large number of bit-planes per frame. Also, the averaging via the human eye's response does not work for Phase-mode displays because voltage errors at the pixel correspond to positional errors in the pixel's apparent position, which the eye does not average. As a result, using digital LCOS displays for phase-mode displays has not previously been very successful.
Existing digital pixel displays operate as “bit-plane devices”. This means that the array control logic must write a “1” or “0” value to each pixel data latch in the entire array (a 1 or 0 for every pixel in the display is referred to as a “bit-plane”) for any write operation. This operation of writing a bit-plane (writing data to every pixel in the display) typically takes 100 us or more. This time per bit-plane limitation places constraints on the algorithm for fooling the eye into thinking it is seeing gray scale by sending a sequence of on and off pulses of varying duty cycle. In particular, it means that the shortest voltage pulse that can be present on the pixel electrode is equal to this bit-plane time. This can make high bit-depths difficult, because this bit-plane time is effectively the Least Significant Bit (LSB) time. For example, in an 8-bit system the Most Significant Bit (MSB) is 127 times longer than the LSB time, and it takes 256 LSB-times to display all possible gray values. For example, 256 times 100 us is 25.6 ms, which is longer than a 60 HZ frame. There is also a problem in that this bit-plane time of ˜ 100 us is close to the minimum LC response time of a few hundred μs.
As a result, the response speed of the LC to any one of these pulses depends on what pulses came immediately before. This creates a non-linear dependence on that pixel's pulse history that is difficult to correct for. Consequently, most digital pixel displays use Pulse-Width Modulation (PWM) techniques. In these techniques, there is a single pulse which varies in width from 0 (for off pixels) to on for the full frame time (for fully on pixels). PWM designs are inherently monotonic, however, they require a large number of bit-planes during the frame. For example, a PWM algorithm for 8-bit gray-scale requires 256 bit planes per color during the frame. And, most of these bit-planes are sending redundant data. In other words, most of the time these bit-planes are writing 0 to pixels that are already off, or writing 1 to pixels that are already on. Supporting this is inherently wasteful of power because it requires huge amounts of write activity during the frame. For example, one current HD display requires greater than 40 Gb/s of input data per color to keep it operating. Transporting this much data from one chip to another is also decidedly non-trivial, requiring elaborate wide-bandwidth data links. Such displays struggle to give good performance at higher bit-depths.
A second problem is that PWM implemented like this cannot be used for phase modulation, because the single pulse consisting of a relatively-long on-period followed by a relatively-long off-period would result in the LC alternating between two radically different phase values. At best, this would yield a distorted image. For phase modulation, alternating 1 bit-planes and 0 bit-planes are sent such that the liquid crystal is constantly kept part-way between on and off. The duty-cycle between these on and off bit-planes determines the “degree of on-ness” of the LC and thus the amount of phase-shift. As before, the bit-plane update time determines the shortest amount of time that the LC spends with constant voltage, and thus by how much the LC-state undershoots or overshoots the desired value. This constant under and over-shoot results in “phase ripple” which causes undesirable image fuzziness and lack of contrast.
Embodiments of the present disclosure ameliorate these problems by providing a pixel array architecture and a pixel circuit which achieves the advantage of an analog pixel design (effectively continuously-variable pixel voltage) by using digital circuitry, and aims to avoid the disadvantages of both existing analog and existing digital designs for microdisplay applications. Such embodiments are suitable for various display applications including microdisplays. Among others, one important problem solved by the embodiments herein is the achievement of a design pixel circuitry which is simple enough (has a small enough number of transistors) to fit under each pixel in the display, while still achieving the functionality required for small pixel display applications. Here, “small pixel displays” refer to pixel arrays with a pixel pitch of 4 micrometers (μm) or less.
According to a first embodiment of the present disclosure, there is provided a system for generating a voltage supplied to a pixel array, for example, a liquid crystal display (e.g., an Liquid Crystal on Silicon (LCOS) display or array of pixels) or an LED display (e.g., a microLED display), said system comprising: a plurality of display pixels forming the pixel array, each display pixel comprising a pixel circuit for driving the pixel; a row formatter configured to store a plurality of bits representing image data for a row of display pixels of the pixel array (such as in memory or the like); a row controller configured to write a subset of the plurality of bits representing image data for a pixel of the row into a plurality of data latches of said pixel circuit; a waveform generator for generating a reference pulse represented by a set of reference bits and wherein the number of reference bits is equal to or corresponds to the number of bits stored in the latches of each pixel circuit; and wherein the pixel circuit is configured to compare each reference bit to corresponding bits stored in the latches of each pixel circuit, and to generate a voltage at an electrode of each pixel based on this comparison.
The voltage supplied to the pixel electrodes modulates a polarization, reflectivity, amplitude and/or phase of light reflected from the display pixels.
In an embodiment, the present disclosure may modulate each pixel independently and locally, and thus does not use bit-planes. In a Dynamic Pixel Modulation (hereinafter “DPM”) display according to an embodiment of the present disclosure, the image data may be stored directly in the display pixels (e.g., via the pixel circuitry), and each display pixel may contain circuitry to use this stored data values to control a voltage waveform on its pixel electrode (for example, a reflective device such as a mirror when the display is an LCOS display, and an LED or microLED (or electrode coupled thereto) when the display is a microLED display that is a binary-weighted representation of this stored value, corresponding to the desired gray-scale or phase value. This waveform at each pixel electrode may be a much higher frequency than can be achieved by any bit-plane display. It may be at least an order of magnitude faster than the LC can respond to, so the LC reacts to the RMS value of this waveform instead. The resulting phase ripple may also be at least an order of magnitude smaller and in some or most cases may be negligible.
Additionally, the pixel data may be stored in SRAM latches in each pixel. This is digital storage, and is fully static. This means that there is no droop, and the data remains unchanged until it is re-written, and so the resulting amplitude or phase shift also does not change. Also, digital data can be written into SRAM latches very rapidly, so the entire array can be written in a tiny fraction of the frame time—typically less than 100 μs. Thus, embodiments of the present disclosure does not suffer from the limitations of existing analog microdisplays.
The process of writing the image data to the pixel array may only happen once at the beginning of the imaging process. Thereafter, each pixel takes care of the process of converting this image data to an appropriate pixel electrode voltage waveform.
An embodiment of the present disclosure enables efficient handling of data and allows management of each pixel's amplitude and/or phase modulation based on the loaded values. An embodiment of the present disclosure provides a system and method for handling this conversion, and such system and method are both highly flexible and extremely efficient. This is enabled by the actual circuitry under each pixel which may consist of a digital logic circuit or network (e.g., an AND/OR circuit or network) connected to multiple digital latch circuits, for example 9 latch circuits, that achieves a complex logical function with a minimum number of transistors, such that the transistors can be fit in the available die area under a small pixel, for example a 3 μm×3 μm pixel. Finally, embodiments of the present disclosure provide a fully integrated high-bit-depth, low-phase-ripple digital phase display which does not require an external driver chip.
In an embodiment, the number of bits stored in the latches of each pixel circuit may be 4 to 10 bits. It should be understood by one of ordinary skill in the art that number of bits may vary. The storage of 8-bits of pixel data directly in circuitry under such small pixels (<4 μm) is enabled, and made possible by working at a geometry node (28 nm or 22 nm) not previously used for LCOS microdisplays. It should be understood by one of ordinary skill in the art that number of bits stored in the latch may vary. The number of bits stored in the pixel may be sufficient to define a gray scale value for an entire color sub-frame.
In one embodiment, the waveform generator may be connected to each pixel via a Global Modulation Bus (G-bus). A width of the G-bus may be equal to the number of bits stored in the latches of each pixel circuit. The waveform generator may be configured to send out a word (e.g., 16-bits) of memory contents on the G-bus periodically in sequence to generate a plurality of voltage pulses equal to the width of the G-bus on different G-bus lines.
In another embodiment, a voltage pulse on a G-bus line may be divided across several G-bus lines. This flexibility is an important advantage of embodiments of the present disclosure and allow the exact behavior of the DPM modulation to be almost infinitely altered or adjusted.
The duration of each voltage pulse on the G-bus line may also be programmable via commands written to the display from software on the host or source, and the duration of the voltage pulses may be substantially shorter than a response time of the Liquid Crystal (LC) in the array. In one embodiment, the longest voltage pulses applied to the pixel electrode may be significantly less in duration than the LC response time. It can be appreciated that the software on the host or source may be provided as a computer program, which when run on a computer, causes the computer to configure any apparatus, including a circuit, controller, sensor, filter, or device disclosed herein or perform the commands disclosed herein. The computer program may be a software implementation, and the computer may be considered as any appropriate hardware, including a digital signal processor, a microcontroller, and an implementation in read only memory (ROM), erasable programmable read only memory (EPROM) or electronically erasable programmable read only memory (EEPROM), as non-limiting examples. The software implementation may be an assembly program. The computer program may be provided on a computer readable medium, which may be a physical computer readable medium, such as a disc or a memory device.
The relatively short duration of the voltage pulses means that the all the bits stored in the latches of the pixel circuit may be compared to their corresponding bits stored in the waveform generator within a time period shorter than the LC response time. This comparison can be repeated many times during a display frame or during a sub-frame.
In one embodiment, the output latch is input with bit “1” if the corresponding bit from the logic function output is equal to “1”, otherwise the output latch is input with bit “0”, when a Gset output from the waveform generator is applied to the output latch. The start or onset of the Gset output is coincident with the start of each voltage pulse on a G-bus line. The output of the output latch is inputted into a level shifter.
The output of the level shifter is a voltage level with a higher voltage when the output of the circuit is bit “1”, and a lower voltage if the output of the circuit is bit “0”, wherein the voltage produced by the level shifter is applied to the electrode each pixel in the pixel array.
Thus, the overall operating mode has a via very high frequency duty-cycle voltage modulation of the pixel electrode local to each pixel. Since all these on/off events at the pixel electrode can happen much faster than the LC can respond, the LC responds to the Root Mean Square (RMS) voltage equivalent to the entire sequence of pulses if such sequence is executed sufficiently fast.
In one embodiment, there may be no temporal overlap between the voltage pulse on different G-bus lines. This allows modulation by virtue of comparing the individual bits of the pixel data in each pixel to the G-bus (containing the same number of bits) in a 1-bit at a time manner. This has a significant advantage in that modifying the waveform on the G-bus allows one to completely change the modulation algorithm.
In one embodiment, the system may further comprise a display loader configured to write a value for the plurality of bits representing image data for a row of display pixels into the row formatter and/or configured to write a value for the subset of the plurality of bits representing image data for a pixel of the row into the plurality of data latches of each pixel circuit.
In a system in accordance with embodiments of the present disclosure, the plurality of bits representing image data for a row of display pixels may be loaded from a cache system or other storage system (e.g., a storage system including memory devices).
In another embodiment, the duration of each voltage pulse may be equal to a number of wave-steps clock periods corresponding to a wave-step value stored a waveform delta memory. Each wave-step value stored in the waveform delta memory may represent a different desired gray-scale value. This enables the display to have a programmable response.
The present disclosure is illustrated and described herein with reference to the various drawings, in which like reference numbers are used to denote like system components, as appropriate, and in which:
Firstly, writing a bit-plane takes significant time. For example, HD displays with >2 million pixels typically take between 50 μs and 100 μs to write a bit-plane. This time places a lower limit on how frequently a pixel can change state, and therefore determines the shortest pulse that can appear on a pixel electrode. Secondly, such displays 100 are very inefficient in terms of the array write activity. Most of the time these bit-plane writes will write “1” to pixel memory (e.g., Static Random-Access Memory or SRAM) that are already in the 1-state, and write “0” to SRAMs that are already in the 0-state. These redundant writes do not serve any useful purpose and are wasteful of power. Furthermore, they are inherent in the nature of a bit-plane display 100 and cannot be eliminated without adding a lot of additional complexity to the pixel 120 and array drive circuitry.
Thirdly, it takes a lot of data bandwidth to feed all this bit-plane data 145 to the display 100, much of which is effectively wasted due to the redundancy noted above. For example, to send a continuous sequence of bit-planes to a 1920×1080 HD display (using 100 μs bit-plane time) takes in excess of 20 Gb/s. Supporting this kind of data flow to a display requires extreme interface technology (wide parallel buses or multiple SERDES links) with the attendant high power consumption these imply. It also places demands on the driver IC 110 that are difficult to support and consumes large amounts of power in that chip as well.
In
Before actual display operation can begin, an external control device 315 (CPU 316 or other data source or host) must write 330 values to the “Control Registers” 210 to control the operation of the display. The control values may be stored in memory 317 on the external device 315. These control values may contain some or all of the following: image size in X, Y pixels; image offset (if any) from left/top edges; image flip (if desired) in Horizontal and/or Vertical; row-strobe setup and hold timing adjustments; timing resolution of the Waveform Generator 260; number of Waveform Generator pulses per sub-frame; and other mode-control settings. It is also necessary for the external control device 315 to fill up the Command FIFO 270 with a series of internal commands. Some of these commands define the exact waveform and timing for the Waveform Generator 260. For example, the duration of each voltage pulse on the G-bus line may also be programmable via commands written to the display from software on the host or source. In one embodiment, there may be no temporal overlap between the voltage pulses on different G-bus lines. Turning to the flow-chart 400 provided in
The array 280 is set up so that individual rows of pixel circuits 285 can be written in one operation, by asserting the “L_x” and “Ln_x” row strobe pair of inputs or data inputs for that row, where the “_x” just indicates which row is being driven. Note that in
This is already a fairly heavy electrical load, and, in an embodiment of the present disclosure, D[7:0]_0, D[7:0]_1, D[7:0]_2, . . . are each driven from non-inverting buffers connected to a “master” D[7:0] The “_x” notation and these buffering issues will be omitted in the rest of description required for clarity purposes. In addition,
Referring back to the flow chart 400 of
For each pixel in the row, the L/Ln voltage pair enables an 8-bit data latch 500 in the pixel to capture (or latch) the data from the associated column. In an embodiment of the present disclosure, there may be, between and including, four to ten latches. However, it should be understood by one of ordinary skill in the art that the number of latches may vary. This strobe pair of L/Ln voltage remains asserted for a few clocks (the exact number is programmable via a field in the Control Register) in order to give all the data latches in the first row of pixel circuits time to capture the data. Once these few clocks are up, the L/Ln pair is de-asserted.
Subsequently, Display Loader 230 again begins to write 440 the appropriate data into the row-buffer 255 of the “Row Formatter” 240, and asserts 450 the next “L/Ln” row strobe pair for the next row. At step 460 in
At this point in time, all of the data needed for the current frame (or color sub-frame if this is a Color Sequential display) has been loaded into the pixel data latches, and the actual display process can begin. From this point until the start of the next frame or sub-frame, the data interface and cache memories are not used, and all display data needed to define the image resides within the static-ram pixel data latches 500 of the pixels.
The process is now at the “Send Start command to Waveform Generator” at box 470 in
To understand how this works, it is helpful to look more closely at the logic in a pixel, and a minimal G-bus waveform.
At the end of the G[7] pulse,
Thus, after each pulse the display device 200 checks to see if the previous pulse was the last pulse stored in the waveform memory 272 (step 495 in
The action of the circuitry of the embodiments of this disclosure result in a binary-weighted waveform at the pixel electrode 630 or pixel 281 that repeats a fixed number of times during the frame. How this affects the LC state depends on the waveform timing. The Liquid-Crystals commonly in use in microdisplays like this have rise and fall times in the range of 400 μs to 2 ms. For voltage pulses at the pixel electrode equal to or longer than say ˜100 μs, the LC can at least begin to respond to the voltage pulse by at least beginning to change state during the pulse. For example, for a drive waveform consisting of intermediate-length pulses like these, it becomes quite difficult to predict the response. The LC sees the pulses as long-enough to approach a steady-state conditions and tries to fully respond to them, becoming fully-on or fully-off. Generally, the pulses are not long enough to quite allow a full response before the next pulse begins. The result is that the LC exhibits a “history effect”, where its response to any given pulse sequence depends on the history of recent previous pulses. This is nearly impossible to correct for, and as a result displays of this sort have to use PWM techniques—these are more resistant to errors due to history effects.
When observing the output with a fast-responding light sensor, the LC transmission would rapidly vary between mostly “on” and mostly “off” while displaying a mid-gray, for example. (“Rapidly” in this context is with rise/fall times in the 400 μs to 2 ms range, as noted previously). The eye can average these out and give an acceptable appearance of continuous-tone gray-scale, although getting a smoothly varying gray-ramp can be difficult because of the non-linear consequences of the History-effect. However, when trying to operate in Phase-mode this does not work at all because phase errors actually affect the details of image feature positions, and the eye cannot average this out.
However, the situation changes dramatically if the pulse-lengths become much shorter, and this is why DPM has a big advantage. Embodiments of the present disclosure are not restricted to bit-plane timing, and so the individual pulses in a DPM sub-frame can be as short as desired. In an embodiment, the DPM has the complete sub-frame as short as 32 μs, with individual pulses as short as 125 ns. The LC cannot respond in any substantial way to the individual pulses in such a sequence. Instead, the LC or pixel 281 will respond to the RMS equivalent of the voltage on the pixel electrode 630. This is both a quantitative and qualitative difference. In conventional digital displays, the eye averages the optical appearance of a series of LED or LC-generated light pulses into an equivalent gray-scale. In contrast, in a DPM digital display according to embodiments of the present disclosure, the Liquid-Crystal averages a series of voltage pulses into an equivalent gray-scale. LC displays respond to an emulated series of DPM-style voltage pulses in exactly the same way that they respond to the RMS-equivalent DC voltage.
The advantages for an Amplitude-mode display are mainly that true 8-bit operation without needing to resort to dithering is readily possible (because one can generate shorter pulses than would be possible in a bit-plane display). The advantages for a Phase-mode display are more dramatic. The phase smoothness (or amount of phase-ripple) for a prior-art digital display depends on the length of a bit-plane, as noted typically 50 μs to 100 μs. This bit-plane timing causes significant alternating overshoot and undershoot in a prior-art phase-mode display (generally 2-5%) which are very objectionable, and interferes with getting a clear phase-mode image. Because DPM phase-mode displays according to embodiments of the present disclosure, do not have this minimum bit-plane duration requirement, they can readily generate phase-shifts with peak ripple numbers at least an order of magnitude (10×) smaller than comparable non-DPM displays.
In another embodiment 1000 of the pixel, illustrated in
In an embodiment 2000, the waveform generator of
The phase-modulation capability of the embodiments herein are also a significant advantage. The combination of high-bit-depth (8 bits), high speed, very-low phase ripple, and small pixels are suitable for devices such as holographic display applications, which have wide diffraction angles and require small pixels. Thus, the embodiments herein which provide sizes of approximately 3 μm are ideal when optical efficiency and wide diffraction angles are required.
The subject matter described herein can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structural means disclosed in this specification and structural equivalents thereof, or in combinations of them. The subject matter described herein can be implemented as one or more computer program products, such as one or more computer programs tangibly embodied in an information carrier (e.g., in a machine readable storage device), or embodied in a propagated signal, for execution by, or to control the operation of, data processing apparatus (e.g., a programmable processor, a computer, or multiple computers). A computer program (also known as a program, software, software application, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file. A program can be stored in a portion of a file that holds other programs or data, in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
The processes and logic flows described in this specification, including the method steps of the subject matter described herein, can be performed by one or more programmable processors executing one or more computer programs to perform functions of the subject matter described herein by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus of the subject matter described herein can be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processor of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of nonvolatile memory, including by way of example semiconductor memory devices, (e.g., EPROM, EEPROM, and flash memory devices); magnetic disks, (e.g., internal hard disks or removable disks); magneto optical disks; and optical disks (e.g., CD and DVD disks). The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
The subject matter described herein can be implemented in a computing system that includes a back end component (e.g., a data server), a middleware component (e.g., an application server), or a front end component (e.g., a client computer mobile device, wearable device, having a graphical user interface or a web browser through which a user can interact with an implementation of the subject matter described herein), or any combination of such back end, middleware, and front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.
It is to be understood that the disclosed subject matter is not limited in its application to the details of construction and to the arrangements of the components set forth in the following description or illustrated in the drawings. The disclosed subject matter is capable of other embodiments and of being practiced and carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein are for the purpose of description and should not be regarded as limiting. As such, those skilled in the art will appreciate that the conception, upon which this disclosure is based, may readily be utilized as a basis for the designing of other structures, methods, and systems for carrying out the several purposes of the disclosed subject matter. It is important, therefore, that the claims be regarded as including such equivalent constructions insofar as they do not depart from the spirit and scope of the disclosed subject matter.
Although the disclosed subject matter has been described and illustrated in the foregoing exemplary embodiments, it is understood that the present disclosure has been made only by way of example, and that numerous changes in the details of implementation of the disclosed subject matter may be made without departing from the spirit and scope of the disclosed subject matter, which is limited only by the claims which follow.
This application is a continuation of U.S. patent application Ser. No. 17/791,010, filed Jul. 6, 2022, which application is a U.S. National Stage Filing under 35 U.S.C. 371 from International Application No. PCT/US2021/012262, filed on 6 Jan. 2021, and published as WO 2021/141953 on 15 Jul. 2021, which application claims the benefit of U.S. Provisional Application No. 62/957,684, filed on Jan. 6, 2020. The entire content of which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
62957684 | Jan 2020 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 17791010 | Jul 2022 | US |
Child | 18443552 | US |