This disclosure relates generally to a method and system for RGB chromaticity calibration of a display. More particularly, but not by way of limitation, this disclosure relates to performing color management operations based on chromaticities of primary colors that are measured while driving the display in a calibrated state based on generated calibration data.
Modern consumer electronic devices incorporate display devices (e.g., liquid crystal display (LCD), organic light emitting diode (OLED), plasma, digital light processing (DLP), and the like) to exchange information with users. Operational characteristics of the display devices may vary from device to device due to inherent properties of the display devices. For example, variations may exist in LCD components, such as backlight variations due to light emitting diode (LED) wavelength and phosphor concentration, color filter thickness, and the like. Thus, each display device may have slightly different color characteristics, white point, and the like.
The following presents a simplified summary of the disclosed subject matter in order to provide a basic understanding of some aspects of the subject matter disclosed herein. This summary is not an exhaustive overview of the technology disclosed herein. It is not intended to identify key or critical elements of the invention or to delineate the scope of the invention. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is discussed later.
In one embodiment, a display calibration method includes: initializing a display panel to a native state (e.g., by bypassing calibration data stored in an on-board memory of the display panel so as to drive the display panel without any corrections being applied based on the calibration data); measuring a native response of the display panel; performing one or more calibration operations for the display panel based on the measured native response and generating calibration data; storing the generated calibration data in an on-board memory of the display panel; measuring a chromaticity value of the display panel while driving the display panel in a calibrated state based on the generated calibration data (e.g., by measuring a maximum intensity of one or more primary chromaticities of the display panel); and storing the measured chromaticity value of the display panel into the on-board memory.
In another embodiment, the method further includes receiving an indication to calibrate the display panel from a user (e.g., via a user interface of a calibration system implementing the display calibration method and connected to a system of the display panel), wherein the display panel is initialized to the native state, and the native response of the display panel is measured in response to receiving the indication to calibrate the display panel, and receiving via the user interface an indication of a measurement instrument to be used for measuring the native response of the display panel. In another embodiment, the on-board memory comprises a timing controller (TCON) provided on-board the display panel for driving the display panel, and the measured chromaticity value of the display panel is stored as Extended Display Identification Data (EDID) or DisplayID Data in the TCON. In yet another embodiment, the one or more calibration operations performed for the display panel include white point calibration, gray tracking calibration, and panel response calibration. In yet another embodiment, a chromaticity value of at least one of the primary chromaticities of the display panel measured while driving the display panel in the calibrated state is different from a chromaticity value of the at least one of the primary chromaticities of the display panel measured while driving the display panel in the native state.
In yet another embodiment, the method may be embodied in computer executable program code and stored in a non-transitory storage device. In yet another embodiment, the method may be implemented on a system.
While certain embodiments will be described in connection with the illustrative embodiments shown herein, the invention is not limited to those embodiments. On the contrary, all alternatives, modifications, and equivalents are included within the spirit and scope of the invention as defined by the claims. In the drawings, which are not to scale, the same reference numerals are used throughout the description and in the drawing figures for components and elements having the same structure, and primed reference numerals are used for components and elements having a similar function and construction to those components and elements having the same unprimed reference numerals.
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the inventive concept. As part of this description, some of this disclosure's drawings represent structures and devices in block diagram form in order to avoid obscuring the invention. In the interest of clarity, not all features of an actual implementation are described. Moreover, the language used in this disclosure has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter, resort to the claims being necessary to determine such inventive subject matter. Reference in this disclosure to “one embodiment” or to “an embodiment” or “another embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention, and multiple references to “one embodiment” or “an embodiment” or “another embodiment” should not be understood as necessarily all referring to the same embodiment.
It will be appreciated that in the development of any actual implementation (as in any development project), numerous decisions must be made to achieve the developers' specific goals (e.g., compliance with system- and business-related constraints), and that these goals may vary from one implementation to another. It will also be appreciated that such development efforts might be complex and time-consuming, but would nevertheless be a routine undertaking for those of ordinary skill in the design and implementation of signal processing having the benefit of this disclosure.
The terms “a,” “an,” and “the” are not intended to refer to a singular entity unless explicitly so defined, but include the general class of which a specific example may be used for illustration. The use of the terms “a” or “an” may therefore mean any number that is at least one, including “one,” “one or more,” “at least one,” and “one or more than one.” The term “or” means any of the alternatives and any combination of the alternatives, including all of the alternatives, unless the alternatives are explicitly indicated as mutually exclusive. The phrase “at least one of” when combined with a list of items, means a single item from the list or any combination of items in the list. The phrase does not require all of the listed items unless explicitly so defined.
This disclosure pertains to improving primary color calibration performed in a calibration pipeline for a display panel. Primary color calibration can be applied as part of a factory calibration pipeline or as part of post-factory calibration performed by a user. In general, any error in primary color calibration (e.g., RGB chromaticity calibration) results in suboptimal color rendition on the screen, or in some cases, to objectionable color artifacts because the primary chromaticity coordinates (e.g., RGB chromaticity values, maximum intensity values) are used in International Color Consortium (ICC) profiles, and consequently, by a color management system associated with the display device to render image data on the display. For example, any discrepancy between: (i) chromaticities of primary colors that a display advertises (e.g., in the EDID, or DisplayID of a timing controller (TCON) chip of a display panel) as being capable of reproducing, and (ii) chromaticities actually reproducible by the display (e.g., after calibration), is a source of error. Techniques disclosed herein look to reduce this error by implementing novel chromaticity calibration techniques as part of a calibration pipeline for a display panel.
The calibration pipeline may aim to measure and/or adjust color response of a display panel to a known state. The calibration pipeline may include setting the display panel to be calibrated in a native mode where no color corrections are applied. In the native mode, chromaticities of RGB primaries (e.g., maximum intensities displayable in the native state for each color channel) of the display may be measured together with other parameters of the display. These measurements may then be used for calibration of the display including, e.g., white point, gray tracking and panel response calibrations. The result of these corrections may be stored in the form of tables or numeric values (e.g., one or more look up tables (LUTs)). These results may constitute calibration information or calibration data of the display, that may be flashed (e.g., stored or recorded) into an on-board memory (e.g., TCON, EDID, or DisplayID) of the display for driving the panel. TCON may be a chip provided on-board the display panel to drive the display panel. TCON may store the calibration information or data used to apply corrections to image data output to the display panel.
The novel chromaticity calibration technique according to the present disclosure may involve re-measuring chromaticities of RGB primaries of the display while driving the display in a calibrated state (e.g., maximum intensities of each color channel displayable by the display in the calibrated state) based on calibration data flashed in the on-board memory (i.e., after the display calibration). By re-measuring chromaticities of RGB primaries of the display after the calibration, the chromaticity calibration technique is able to account for any adjusted level (e.g., less than a ‘native’ level) of maximum intensity for each color channel the display panel is able to reach under the calibration constraints forced by the generated calibration data. The chromaticity calibration technique may then record the re-measured primary color chromaticity values in the on-board memory (e.g., TCON, EDID, or DisplayID) of the display so as to update the calibration information.
When the display is connected to a system, an operating system (OS) may detect the display's EDID (or DisplayID) data and automatically build an ICC profile with the correct re-measured chromaticity coordinates included in the calibration information. The ICC profile may then be used, e.g., by an integrated color management system of the OS, to accurately transform any RGB system color into an RGB display color within the display color gamut displayable on the calibrated screen. The calibration pipeline with the novel chromaticity calibration thus ensures that there is an accurate correspondence between the physical behavior of the calibrated panel and the ICC profile that models this behavior. As a consequence, color reproduction accuracy of the display is improved, the robustness of the color calibration pipeline is increased, and also, yield of the calibration process when the pipeline is implemented as part of a factory calibration during manufacture is increased because of fewer rejections during a verification process. The color calibration pipeline with the novel chromaticity calibration techniques described herein can also be implemented as a part of a post-factory calibration pipeline, e.g., for on-demand self-calibration of the display panel by a user in the field.
Referring now to
Calibration system 100 may be implemented as part of an assembly line in a factory during manufacture of display 140 for performing calibration of display 140 before shipping to a customer. Alternately, calibration system 100 may be implemented as an external calibration system that can be utilized ‘on-demand’ by customers to self-calibrate display 140 by connecting calibration system 100 to a system of display 140. Calibration system 100 may further include measurement unit 130 (e.g., measurement instrument) that may be connected to and controlled by computer system 110. Measurement unit 130 may be any commercially available or custom color calibration instrument like a spectroradiometer, a tristimulus colorimeter, or a photometer. Measurement unit 130 may be a portable or stationary instrument that can be used by a user ‘on-demand’ to self-calibrate display 140. Alternately, measurement unit 130 may be provided on-board display 140.
Computer system 110 may include standard computer components like central processing unit (CPU), read-only memory (ROM), random access memory (RAM), storage device (e.g., hard disk), input/output devices (e.g., keyboard, mouse, monitor) and the like. Calibration pipeline 120 for performing display 140 calibration may be implemented on computer system 110. Calibration performed by calibration pipeline 120 for display 140 may include different types of calibration operations. For example, calibration pipeline 120 may perform white point calibration, gray tracking calibration, panel response calibration, RGB chromaticity calibration, luminance calibration, and the like for display 140. Panel response calibration may include gamma calibration, gray tracking calibration, and other corrections for shadow or highlights. Specific details of calibration performed by calibration pipeline 120 are described below in connection with
During one or more of the calibration operations, computer system 110 may control operation of display 140, output test and calibration image or video color calibration signals (e.g., still and/or moving color patches or patterns) to display 140, and then query measurement unit 130 pointed to an area of display 140 screen where a calibration test image is being displayed to determine what is actually displayed by display 140 in response to the output color calibration signals. Calibration system 100 may perform calibration based on actually measured color response display values identified by computer system 110 via measurement unit 130 as uncorrected output data from display 140. In one embodiment, the color response values detected by measurement unit 130 may be in a device-independent color space like CIELUV color space, CIEXYZ color space, CIE xyY color space, the CIE LAB color space, and the like.
In one embodiment, calibration system 100 controlling measurement unit 130 and display 140 may output solid color patches corresponding to a primary color channel (e.g., blue) with increasing digital count (e.g., 0-255 for blue with 255 representing the most saturated or maximum intensity blue). For example, calibration system 100 may successively output a ‘ramp’ from black to a most saturated blue for measurement by measurement unit 130. When measuring actual uncalibrated color response values via measurement unit 130 corresponding to the output color calibration ‘ramp’, computer system 110 may compensate for ‘noise’ in the measured values. For example, the ‘noise’ may include backlight leakage of panel 140. That is, when the color calibration image data is output to display 140, a certain amount of backlight leakage may get mixed in, thereby changing the corresponding measurement value (e.g., chromaticity value) measured by measurement unit 130 for a particular intensity of blue. To compensate for this ‘noise’, measurement unit 130 may offset all measurements by a pre-measured ‘noise’ value for the backlight leakage of the panel. Computer system 110 may control measurement unit 130 to measure the backlight leakage of display 140 in a device-independent color space (e.g., tristimulus values XYZb) when display 140 is set to a black state (e.g., digital count of output calibration image data for the primary color being measured is 0). Computer system 110 may then control measurement unit 130 to successively measure values corresponding to the output color calibration ‘ramp’ (e.g., digital count of output calibration data for the selected primary color being measured is 1, 2, 3, . . . 255) in a device-independent color space (e.g., tristimulus values XYZm). For each measured value XYZm, computer system 110 may then offset the measured value XYZm by the measured backlight leakage XYZb, to obtain the exact chromaticity of the selected primary color digital count.
Based on the color response values measured by measurement unit 130 (and corrected to remove ‘noise’ by computer system 110), calibration pipeline 120 implemented by computer system 110 may perform one or more calibration operations to generate calibration information or data (e.g., RGB adjustment values in one or more lookup tables (LUTs)) 150 for later use by display 140 during normal operation. The calibration data may be used for color correction so that a standard color or image signal (e.g., D65 white) that is supplied to display 140 will be rendered more faithfully by accounting for the unique characteristics of display 140.
Referring now to
Referring now to
As shown in
For example, at block 330, calibration system 100 may generate data (e.g., RGB adjustment values for the target white point in a LUT) that calibrates the display panel to a target white point (e.g., D65) from the native white point response of the display panel measured at block 310. A native white point of a display device may be defined as a color produced by the device when the device generates all colors at full power (e.g., without any correction or calibration applied). For example, when red, green, and blue channels (i.e., primary colors, colors, or simply, ‘primaries’) for a display device are all active at full power (e.g., maximum voltage applied from display driver to each of the red, green, and blue sub-pixels of the display pixel), the chromaticity values, for example, as measured in Cartesian coordinates x and y with respect to a chromaticity diagram, are the native white point of the display device. The white point may be defined by the pair of chromaticity values (x, y) as represented by x, y in the International Commission on Illumination (CIE) 1931 XYZ color space; or u′, v′ in the CIELUV color space; and the like. White points may vary among display devices due to inherent properties of the particular panel such that when the red, green, and blue channels for a first display device are all active at full power, the resulting (u′, v′) chromaticity value corresponding to the native white point of the first display device is different from the (u′, v′) chromaticity value corresponding to the native white point of another display device when the red, green, and blue channels for the other display device are also all active at full power.
This native or original (uncorrected) white point of the display device may be corrected in a white point calibration process to be adjusted to a target white point which is consistent across multiple display devices. For example, the target white point may correspond to the D65 illuminant of the International Commission on Illumination (CIE). In the white point calibration, each device may be tuned to the target white point by adjusting display control settings such as gain values for the red, green, and blue channels individually. Alternately, RGB adjustment values that produce the color (e.g., represented in a device-independent color space with target chromaticity coordinates (u′0, v′0)) corresponding to the target white point may be stored in a LUT as calibration data 150.
In addition to white point calibration, block 330 of calibration pipeline 300 may also include performing panel response calibration and gray tracking calibration and generating corresponding calibration or correction data. Panel response calibration performed at block 330 of calibration pipeline 300 is described below in connection with
To perform panel response calibration, computer system 100 may control measurement unit 130 to measure the chromaticity coordinates and brightness of the display device while adjusting gray levels for each color channel (e.g., red, green, and blue channels) up to a maximum level. Computer system 100 may then generate calibration data (e.g., LUT) 150 to account for imperfections in the relationship between the encoding gamma and decoding gamma values, as well as the display's particular luminance response characteristics at different input levels.
Referring now to
In addition to accounting for panel response calibration (e.g., gamma calibration), LUT graph 400 (and calibration data 150) may also be generated at block 330 of calibration pipeline 300 so as to account for the gray tracking calibration to faithfully reproduce the full range of gray levels from black to white on the display device so that the shades of gray (e.g., linear range of R=G=B from 0 to 1) at different luminance levels will all appear to have the same neutral hue (e.g., same chromaticity (u′, v′)) for a given target white point. Gray tracking calibration evaluates and corrects for non-linearities in each color channel for each gray step for both hue and brightness. For example, computer system 110 may control measurement unit 130 to actually measure from display 140, colorimetric response display values of uncorrected digital values at suitable points of gray intensity levels output to display 140. Computer system 110 implementing calibration pipeline 300 may then analyze the measured colorimetric response values (actual pixel response) to determine how they deviate from ‘ideal’ values and to generate adjustment values that produce the true (‘ideal’) gray levels with the display device for the associated target white point. Computer system 110 implementing calibration pipeline 300 may also accurately interpolate all values of interest for the associated target white point based on the actual measurements at the suitable points of gray intensity levels to generate the adjustment values for all gray levels for hue and brightness for the associated target white point. Computer system 110 implementing calibration pipeline 300 may thus generate calibration data 150 for gray tracking calibration based on the generated adjustment values which are in turn based on the actually measured colorimetric response display values or interpolated adjustment values. The generated calibration data 150 may then be used to calibrate the red, green, and blue channels of the display device to produce true gray levels with the same neutral hue and corresponding brightness for all gray intensity levels from black to the target white point.
The pixel (e.g., digital values for RGB) adjustment values for gray tracking may be stored in the same LUT as the LUT for gamma correction (and/or white point correction) or may be stored in a different LUT for gray tracking correction. Each LUT may include, for example, a LUT for red values between 0 and 255, a LUT for green values between 0 and 255, and a LUT for blue values between 0 and 255. The LUTs for red, green, and blue values may be independent of each other and provide respective adjustment values for red, green, and blue independently for each of red, green, and blue color. Alternately, each LUT may be a 3D LUT in which respective adjustment values for red, green, and blue are interdependent. Calibration data 150 may thus include data generated to correct for each of gray tracking, white point, and panel response calibration.
Returning to
When the display device is then connected to a computer system (e.g., computer system 220 in
As described above, the ICC profile generated for the display that is calibrated based on calibration pipeline 300 takes into account the RGB chromaticity values measured at block 320 (or average values for a batch of panels determined in the chromaticity calibration) and flashed into the EDID (or DisplayID) of the display panel. However, the primary chromaticities measured at block 320 of pipeline 300 correspond to ‘native’ (e.g., uncorrected or un-calibrated) primaries (or ‘average’ primaries) of the display measured by the measurement instrument. Further, the calibration data generated at block 330 in response to the one or more calibration operations (e.g., white point calibration, gray tracking calibration, panel response calibration) may create calibration constraints for the display such that the display is no longer able to achieve the ‘native’ primary chromaticities (or ‘average’ chromaticities) when it operates in the calibrated state. For example, RGB adjustment values generated as part of calibration data at block 330 in response to white point calibration may change the balance between red, green, and blue channels to achieve a target white point (e.g., D65) by truncating, for example, two of the three channels so that they no longer can reach the maximum ‘native’ saturation (native maximum intensity). As a result, for example, the blue primary may no longer be able to reach its original full blue intensity (e.g., saturation). In this example, this may result in a difference between the ‘native’ blue maximum intensity and the maximum intensity of blue that is achievable after the white point calibration. This also results in different chromaticity values for the ‘native’ blue and the blue in the calibrated state.
As described above, in calibration pipeline 300, since the ‘native’ (or ‘average’) primary chromaticities are flashed in the EDID (or DisplayID) of the display and used in creating the ICC profile of the panel, the panel may end up advertising primary chromaticity values that it cannot actually produce when operating in the calibrated state (e.g., during operation as shown in
Another disadvantage of allowing differences between ‘advertised’ and ‘actual’ primary chromaticities to persist in calibration data (and thus, in the EDID) is decreased yield during the calibration process due to increased panel rejections based on calibration failures.
Further, due to the unique characteristics of the display being calibrated, as illustrated in
A hardware solution to the problems described above in connection with
Another solution to address the problems described above in connection with
In
At block 720, the calibration system (e.g., calibration system 100 of
Based on the native panel (‘bypass’) response measurement at block 720, the calibration system implementing pipeline 700 may perform various calibration operations including white point, gray tracking and panel response calibrations, and generate calibration information or data (block 730). Details of white point, gray tracking, and panel response calibrations that may be performed at block 730 have been explained above in connection with
At block 750, the calibration system implementing calibration pipeline 700 remeasures the RGB chromaticity values while driving the display based on calibration data generated at block 730 and flashed (e.g., stored, recorded) into the TCON at block 740, so as to perform chromaticity calibration. As explained previously, the calibration data that corrects for the gray tracking, white point, and panel response calibration may cause to may create calibration constraints for the display such that the display is no longer able to achieve the ‘native’ primary chromaticities when it operates in the calibrated state. To account for these calibration constraints, the calibration system implementing calibration pipeline 700 at block 750 remeasures the RGB chromaticity values that the display can actually reproduce under the calibration constraints imposed by the one or more calibration operations and corresponding data generated at block 740. That is, at block 750, the remeasured chromaticity values of RGB primaries of the display may correspond to a maximum intensity (or maximum saturation) for the each color primary displayable by the display when color corrections are being applied to output image data based on the calibration data generated at block 730 and stored in the TCON at block 740. Thus, while driving the display in a calibrated state, the maximum intensity of the RGB chromaticity values of the display panel are measured by the measurement instrument. At block 760, the calibration system implementing calibration pipeline 700 records the remeasured primary color chromaticity values as calibration information in the EDID or DisplayID of the display being calibrated. That is, the remeasured primary color chromaticity values are stored as EDID data or DisplayID data in the TCON of the display panel.
As explained above, the remeasuring (block 750) and recording (block 760) of the primary color values (RGB chromaticity values) is performed by the calibration system implementing calibration pipeline 700 after flashing in the TCON of the gray tracking, white point and panel response calibration data (block 740). This is because the panel may no longer reach the similar maximum color values that were measured in the native state (block 720) after the gray tracking, gamma and white point calibration are flashed into the TCON (block 740). In a calibrated display unit, the maximum digital count for a channel cannot take a value higher than that of the value stored in the calibration data (e.g., gamma-LUT for that channel) in the TCON that was calculated and flashed at the time of calibration. Consequently, referring to the example of blue primary calibration previously illustrated in
The calibration method described herein produces several advantages. First, the method improves color accuracy of the calibration and causes the ICC profile to match exactly the response of the calibrated panel. Second, the method eliminates the color error produced by the conventional color calibration, and also increases significantly the accuracy of the color management system relative to the reproduction of color on the calibrated display. Third, when the method is employed as part of factory calibration, the percentage of rejected units as being ‘out-of-spec’ during the validation process at the factory calibration line are considerably reduced, thereby resulting in a higher yield of the factory line. Fourth, the method is able to calibrate and qualify a larger variety of panels with abnormal responses because the method is able to correct for the abnormal panel response. For example, a conventional calibration method may lead to a rejection of a panel with a response as illustrated in
Referring to
Processor 1005 may execute instructions necessary to carry out or control the operation of many functions performed by a multi-functional electronic device 1000 (e.g., such as one or more calibration operations of a calibration pipeline and the like). Processor 1005 may, for instance, drive display 1010 and receive user input from user interface 1015. User interface 1015 can take a variety of forms, such as a button, keypad, dial, a click wheel, keyboard, display screen and/or a touch screen. Processor 1005 may be a system-on-chip such as those found in mobile devices and include a dedicated graphics-processing unit (GPU). Processor 1005 may represent multiple central processing units (CPUs) and may be based on reduced instruction-set computer (RISC) or complex instruction-set computer (CISC) architectures or any other suitable architecture and each may include one or more processing cores. Graphics hardware 1020 may be special purpose computational hardware for processing graphics and/or assisting processor 1005 process graphics information. In one embodiment, graphics hardware 1020 may include one or more programmable graphics-processing unit (GPU), where each such unit has multiple cores.
Sensor and camera circuitry 1050 may capture still and video images that may be processed to generate images in accordance with this disclosure. Sensor in sensor and camera circuitry 1050 may capture raw image data as red, green, and blue (RGB) data that is processed to generate an image. Output from camera circuitry 1050 may be processed, at least in part, by video codec(s) 1055 and/or processor 1005 and/or graphics hardware 1020, and/or a dedicated image-processing unit incorporated within camera circuitry 1050. Images so captured may be stored in memory 1060 and/or storage 1065. Memory 1060 may include one or more different types of media used by processor 1005, graphics hardware 1020, and camera circuitry 1050 to perform device functions. For example, memory 1060 may include memory cache, read-only memory (ROM), and/or random access memory (RAM). Storage 1065 may store media (e.g., audio, image and video files), computer program instructions or software, preference information, device profile information, and any other suitable data. Storage 1065 may include one more non-transitory storage mediums including, for example, magnetic disks (fixed, floppy, and removable) and tape, optical media such as compact disc-ROMs (CD-ROMs) and digital video disks (DVDs), and semiconductor memory devices such as Electrically Programmable Read-Only Memory (EPROM), and Electrically Erasable Programmable Read-Only Memory (EEPROM). Memory 1060 and storage 1065 may be used to retain computer program instructions or code organized into one or more modules and written in any desired computer programming language. When executed by, for example, processor 805 such computer program code may implement one or more of the methods described herein.
Referring to
As used herein, the term “computer system” or “computing system” refers to a single electronic computing device or to two or more electronic devices working together to perform the function described as being performed on or by the computing system. This includes, by way of example, a single laptop, host computer system, wearable electronic device, and/or mobile device (e.g., smartphone, tablet, and/or other smart device).
It is to be understood that the above description is intended to be illustrative, and not restrictive. The material has been presented to enable any person skilled in the art to make and use the claimed subject matter as described herein, and is provided in the context of particular embodiments, variations of which will be readily apparent to those skilled in the art (e.g., some of the disclosed embodiments may be used in combination with each other). In addition, some of the described operations may have their individual steps performed in an order different from, or in conjunction with other steps, than presented herein. More generally, if there is hardware support some operations described in conjunction with
At least one embodiment is disclosed and variations, combinations, and/or modifications of the embodiment(s) and/or features of the embodiment(s) made by a person having ordinary skill in the art are within the scope of the disclosure. Alternative embodiments that result from combining, integrating, and/or omitting features of the embodiment(s) are also within the scope of the disclosure. Where numerical ranges or limitations are expressly stated, such express ranges or limitations may be understood to include iterative ranges or limitations of like magnitude falling within the expressly stated ranges or limitations (e.g., from about 1 to about 10 includes, 2, 3, 4, etc.; greater than 0.10 includes 0.11, 0.12, 0.13, etc.). The use of the term “about” means ±10% of the subsequent number, unless otherwise stated.
Many other embodiments will be apparent to those of skill in the art upon reviewing the above description. The scope of the invention therefore should be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. In the appended claims, the terms “including” and “in which” are used as the plain-English equivalents of the respective terms “comprising” and “wherein.”