Moving picture response time (MPRT) techniques for liquid crystal displays (LCDs)
11605332 · 2023-03-14
Assignee
Inventors
Cpc classification
G09G2320/0233
PHYSICS
G09G2360/18
PHYSICS
G09G2340/16
PHYSICS
G09G2360/16
PHYSICS
G09G2320/0261
PHYSICS
International classification
G09G3/20
PHYSICS
Abstract
Systems and methods are provided for providing Response Time Compensation (RTC) by generating multiple overdrive look-up tables (LUTs) for a display device are described. In some embodiments, an Information Handling System (IHS) may include a controller and a memory coupled to the controller, the memory having program instructions stored thereon that, upon execution, cause the controller to generate multiple LUTs each having alternate grey levels selected to implement RTC in a Liquid Crystal Display (LCD), wherein the alternate grey levels of each of the LUTs is calculated, at least in part, by taking into account one of a plurality of pixel lines of a video stream.
Claims
1. An Information Handling System (IHS), comprising: a controller; and a memory coupled to the controller, the memory having program instructions stored thereon that, upon execution, cause the controller to: generate a plurality of Look-up Tables (LUTs), wherein each LUT comprises alternate grey levels selected to implement Response Time Compensation (RTC) in a Liquid Crystal Display (LCD), and wherein the alternate grey levels are determined, at least in part, based upon a pixel line of a video stream; and at least one of: (a) in response to a result produced by a given LUT that meets a selected grey level response target (GLRT), record the given LUT; or (b) in response to a result produced by a given LUT that does not meet a selected GLRT, increment the offset margin value and recalculate the given LUT using the incremented offset margin value.
2. The IHS of claim 1, wherein the program instructions, upon execution, further cause the controller to, for each LUT, calculate the alternate grey levels corresponding to a position of the pixel line on the LCD.
3. The IHS of claim 2, wherein each of the LUTs is configured to generate a luminance on its respective pixel line that progressively increases from a top pixel line to a bottom pixel line of the LCD.
4. The IHS of claim 1, wherein the program instructions, upon execution, further cause the controller to, for each LUT, calculate the alternate grey levels such that each of the LUTs generates the same level of luminance at the end of a strobe period of the LCD.
5. The IHS of claim 1, wherein the program instructions, upon execution, further cause the controller to generate a quantity of LUTs corresponding to a quantity of pixel lines of the LCD.
6. The IHS of claim 1, wherein the program instructions, upon execution, further cause the controller to: generate a number of LUTs fewer than a number of pixel lines of the video stream; and interpolate between alternate grey levels of two of the LUTs to calculate resulting grey levels usable to generate the one pixel line.
7. The IHS of claim 1, wherein to generate the plurality of LUTs, the program instructions, upon execution, further cause the controller to calculate: (i) a first luminance for each gray scale level, and (ii) a second grey scale level at the end of a current frame formed by pixel lines of the video stream.
8. A Response Time Compensation (RTC) method for a Liquid Crystal Display (LCD), the method comprising: generating a plurality of Look-up Tables (LUTs), each LUT having alternate grey levels selected to implement RTC in a Liquid Crystal Display (LCD); calculating grey levels for each of the LUTs, at least in part, based upon a pixel line of a video stream; and in response a given LUT not producing a result that meets a selected grey level response target (GLRT), incrementing an offset margin value and recalculating the given LUT using the incremented offset margin value.
9. The RTC method of claim 8, further comprising, for each LUT, calculating the alternate grey levels corresponding to a position of the pixel line on the LCD, wherein each of the LUTs is configured to generate a luminance on its respective pixel line that progressively increases from a top pixel line to a bottom pixel line of the LCD.
10. The RTC method of claim 8, further comprising, for each LUT, calculating the alternate grey levels such that each of the LUTs generates the same level of luminance at the end of a strobe period of the LCD.
11. The RTC method of claim 8, further comprising generating a quantity of LUTs corresponding to a quantity of pixel lines of the LCD.
12. The RTC method of claim 8, further comprising: generating a quantity of LUTs that is less than the quantity of pixel lines of the video stream; and calculating the grey levels used to generate the pixel line by interpolating between the alternate grey levels of two of the LUTs.
13. The RTC method of claim 8, further comprising generating the LUTs, at least in part, by calculating: (i) a first luminance for each gray scale level, and (ii) a second grey scale level at the end of a current frame formed by pixel lines of the video stream.
14. A non-transitory memory storage device having program instructions stored thereon that, upon execution by a controller of a Liquid Crystal Display (LCD), cause the LCD to: generate a plurality of Look-up Tables (LUTs), wherein each LUT comprises alternate grey levels selected to implement Response Time Compensation (RTC) in a Liquid Crystal Display (LCD), and wherein the alternate grey levels are determined, at least in part, based upon a pixel line of a video stream; and in response to a result produced by a given LUT that meets a selected grey level response target (GLRT), record the given LUT.
15. The non-transitory memory storage device of claim 14, wherein the program instructions, upon execution, further cause the controller to, for each LUT, calculate the alternate grey levels corresponding to a position of the pixel line on the LCD.
16. The non-transitory memory storage device of claim 15, wherein each of the LUTs is configured to generate a luminance on its respective pixel line that progressively increases from a top pixel line to a bottom pixel line of the LCD.
17. The non-transitory memory storage device of claim 14, wherein the program instructions, upon execution, further cause the controller to, for each LUT, calculate the alternate grey levels such that each of the LUTs generates the same level of luminance at the end of a strobe period of the LCD.
18. The non-transitory memory storage device of claim 14, wherein to generate the LUTs, the program instructions, upon execution, further cause the controller to calculate: (i) a first luminance for each gray scale level, and (ii) a second grey scale level at the end of a current frame formed by pixel lines of the video stream.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The present invention(s) is/are illustrated by way of example and is/are not limited by the accompanying figures, in which like references indicate similar elements.
(2) Elements in the figures are illustrated for simplicity and clarity, and have not necessarily been drawn to scale.
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
DETAILED DESCRIPTION
(12) The present disclosure is described with reference to the attached figures. The figures are not drawn to scale, and they are provided merely to illustrate the disclosure. Several aspects of the disclosure are described below with reference to example applications for illustration. It should be understood that numerous specific details, relationships, and methods are set forth to provide an understanding of the disclosure. The present disclosure is not limited by the illustrated ordering of acts or events, as some acts may occur in different orders and/or concurrently with other acts or events. Furthermore, not all illustrated acts or events are required to implement a methodology in accordance with the present disclosure.
(13) According to various embodiments of the present disclosure, systems and methods for generating multiple overdrive look-up tables (LUTs) that provide progressive overdrive compensation for edge-lit LCD display's Moving Picture Response Time (MPRT) are described. By introducing the progressive overdrive based on the pixel lines' position on an LCD display, some, most, or all pixel lines may be able to transit to a common target grey level target (G.sub.Target) level when the backlight is turned on. Additional techniques for Response Time Compensation (RTC) may include an architecture for implementing current frame-end grey-level luminance information into the RTC frame buffer, and incorporating values as specified by the International Commission on Illumination (CIE) standard (e.g., CIEDE2000) standard into the overdrive (OD) algorithm.
(14) As gaming displays gain popularity in the consumer market, consumers are paying more attention to the response time and motion blur of a display, which can be a pivotal factor in how well the display accurately reproduces imagery generated by games, and in particular action games that can generate quickly moving imagery. Since Liquid Crystal Displays (LCDs) have an inherently poor response time relative to other types (e.g., Organic Light Emitting Diode (OLED) displays, cathode ray tube (CRT) displays, etc.), MPRT has become an important factor in how well LCD displays reduce the perceived motion blur across the screen of the display. This factor has become particularly relevant given that over 90 percent (%) of LCD displays typically incorporate an edge-lit backlight system. The MPRT in current edge-lit LCD displays can only obtain a limited range (e.g., center band) of blur reduction. This limited range is typically due to an orthogonal relation between a pixel line's transition from the top to the bottom of the screen that is still in progress while the edge-lit system's strobing backlight mechanism is turned on.
(15)
(16) Time t.sub.a refers to an active time in which the pixel lines are being refreshed, time t.sub.r refers to a response time for the individual pixels in each pixel line to be refreshed, t.sub.r indicates a point indicates a point that is the current frame end, while t.sub.s indicates a starting point at which a backlight strobe begins to generate light through each of the pixel lines. Within the ideal progressive scan sequence 100 and actual progressive scan sequence 120, regions 140 and 150 represent a time before the pixels begin their transition to the new values, regions 142 and 152 represent a duration of time that the pixels are in the process of transitioning to the new values, while regions 146 and 154 represent a time after the pixels have been transitioned to the new values. That is, not all pixel lines can complete the transition in the current frame, and thus, some pixel lines continue transition in the next frame.
(17) As shown in the ideal progressive scan sequence 100, all pixel lines have finished transitioning to the new frame level before the backlight strobe is turned on. As shown, point 112 represents completion of frame refresh of all pixel lines before the backlight strobe is turned on. In reality, however, most LCD displays function like the actual frame refresh sequence 120 of
(18) Conventional LCD implementations have involved a trade-off of sacrificing the visual performance of pixel lines proximate the top and bottom of the screen to optimize performance at the center region of the screen. That is, most commercially available edge-lit display products' MPRT use a strobing backlight that turns on without waiting for all the pixels to complete the update process, leading to image quality deterioration across the full screen. Some conventional LCD implementations have involved scanning backlights to solve full screen range motion blur reduction, through either symmetric left-right (e.g., 2×) edge-lit light bar, direct-lit, or mini-LED backlight systems. However, these scanning backlight systems introduce more complexity in product development, thus yielding higher product cost. Furthermore, symmetric left-right edge-lit backlight systems unavoidably increase the bezel thickness on both the left and right edge of the display, while direct-lit backlight systems increase the LCD display's thickness. Hence, scanning backlights are undesirable for the modern slim, narrow bezel, and cost sensitive LCD devices. As such, there has heretofore remained a pressing need in edge-lit LCD systems to reduce or eliminate the MPRT's full screen range motion blur problem and improve the user experience by obtaining the full benefit of the MPRT architecture.
(19) As will be described in detail herein below, embodiments of the present disclosure provide a solution to this problem by introducing progressively different overdrive levels for the pixel lines of an LCD display to achieve an overall fast response time and less motion blur across the entire screen, rather than just emphasizing image quality in center region of the screen. Additionally, a novel response time compensation (RTC) system using a grey level value derived at the end of the current frame as input for the frame buffer to generate more accurate liquid crystal transition position prediction for precise liquid crystal's response control. The RTC system also leverages the widely recognized International Commission on Illumination (CIE) standard (e.g., CIEDE2000) to evaluate MPRT system with objective quantitative measures on HVS's image motion artifacts.
(20) For purposes of this disclosure, an Information Handling System (IHS) may include any instrumentality or aggregate of instrumentalities operable to compute, calculate, determine, classify, process, transmit, receive, retrieve, originate, switch, store, display, communicate, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, or other purposes. For example, an IHS may be a personal computer (e.g., desktop or laptop), tablet computer, mobile device (e.g., Personal Digital Assistant (PDA) or smart phone), server (e.g., blade server or rack server), a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. An IHS may include Random Access Memory (RAM), one or more processing resources such as a Central Processing Unit (CPU) or hardware or software control logic, Read-Only Memory (ROM), and/or other types of nonvolatile memory.
(21) Additional components of an IHS may include one or more disk drives, one or more network ports for communicating with external devices as well as various I/O devices, such as a keyboard, a mouse, touchscreen, and/or a video display. An IHS may also include one or more buses operable to transmit communications between the various hardware components.
(22)
(23) Components of IHS 200 may include, but are not limited to, processor 202 (e.g., central processor unit or “CPU”), input/output (I/O) device interface 204, such as a display, a keyboard, a mouse, and associated controllers, hard drive or disk storage 206, various other subsystems 208, network port 210, and system memory 212. Data is transferred between the various system components via various data buses illustrated generally by bus 214. Video optimizer system 218 couples I/O device interface 204 to LCD display panel 220, as described in more detail below.
(24) In some implementations, IHS 200 may not include each of the components shown in
(25)
L(G′.sub.TOD(n)))=GLRC.sub.G.sub.
(26) Where: L(G) is the luminance of grey-level G; G′.sub.TOD(n) is the grey-level at one frame period of time, per overdriven LUT for the n.sup.th pixel line (1≤n≤V.sub.active, for example, FHD, 1≤n≤1080); GLRC.sub.G.sub.
(27) It may be important to note that the actual liquid crystal normally will not transit to the overdriven grey-level G.sub.TOD(n) at the end of the frame (e.g., 16.7 ms for 60 Hz, or 6 ms for 165 Hz) due to relatively slow native response times (e.g., approximately 10 milliseconds.), the G.sub.TOD(n) will be the end-of-frame value and LC will be refreshed on every frame basis. The delta between G.sub.TOD(n) and G.sub.Target is where the artifact that the human vision system (HVS) captures.
(28)
(29) In
L(G′.sub.ODT)=GLRC.sub.G.sub.
(30) Thus, the over-driven GLRC 401 may be given by:
(31)
(32) As seen in
(33) To minimize artifacts, it becomes necessary to control the total temporal luminance stimulus received on observers' HVS to be equivalent as the luminance integrated by the ideal grey level transition. Moreover, due to the difference between individual HVSs, an error/offset margin (ΔE) may be introduced, shown as curve 403, to further improve the response time.
(34)
(35) Additionally, although the present embodiment is described as having one OD LUT 502a-n for each pixel line of the LCD, it should be appreciated that in other embodiments, the system may generate a quantity of the LUTs that is less than the quantity of pixel lines of the video stream, such that the resulting grey levels for each pixel line is accomplished by interpolating between the alternate grey levels of two of the OD LUTs 502a-n. For example, if LUTs are generated for every tenth pixel line (e.g., n=1 pixel line LUT, n=10 pixel line LUT, and so on), the values for the fifth pixel line may be calculated by averaging the luminance values of the LUTs associated with the first and tenth pixel lines.
(36)
(37)
(38) The timing controller 604 is coupled to row drivers 606 and column drivers 608, which map grey level values to voltage nodes on a series resistance string. The column drivers 608 predetermine the voltage needed at each node to achieve the associated brightness level required to produce the intended grey level value. As grey level commands in digital video stream data 602 are received by the timing controller 604, the RTC logic 612 retrieves the previous grey level to the corresponding element within the video data stream from the FIFO frame buffer 614.
(39) Simultaneously, the RTC logic 612 stores the current grey level in FIFO frame buffer 614 for use in the next frame. The RTC logic 612 then compares the current and previous grey level commands for each separate red, green and blue (RGB) element using separate RGB look-up tables 616. The contents of RGB look-up tables 616 provide a unique grey level surrogate for each pairing of current and previous grey level commands, which is used to calculate the value of grey level substituted boost 308.
(40) Grey level substituted boost commands are communicated by the RTC logic 612 through a data link 618 to column drivers 608, which then produce an override, or “over-drive” command to deliver appropriate higher voltage to the voltage node. Delivering the higher voltage results in compensated response, thereby reducing video artifacts that can contribute to smearing of video images containing motion.
(41) In other embodiments, RTC 612, Frame Buffer FIFO 614, and Look-Up Tables 616 may all be implemented within a scalar processor, which may be disposed inside or outside of the LCD display 620. In those cases, the data input into timing controller 604 may be RTC-processed. That is, the scalar processor may complete the RTC and then pass processed data to timing controller 604 for LCD display 620 to render.
(42) In various embodiments, systems and methods described herein may employed to: capture an LCD panel's native response time and its overdrive response time, and to auto-generate an overdrive LUT based on those measurements. For example, a hardware system may include a grey level photo sensor, test IHS, and a display. A method used to generate an overdrive LUT may be based on a HVS's vision perception, luminance temporal integration, and just-noticeable difference (JND) (e.g., derived from CIEDE2000). Particularly, such a method may control the total temporal luminance stimulus received on observer's HVS to be equivalent as the luminance integrated by ideal grey level transition with an error/offset range of JND (ΔE.sub.00).
(43)
(44) In general, the progressive OD LUTs 502a-n corresponding to the pixel line 704 proximate the middle of the LCD screen is configured to generate an increased luminance intensity relative to the OD LUT 502a-n corresponding to pixel line 702. Additionally, the progressive OD LUTs 502a-n corresponding to the pixel line 706 proximate the bottom of the LCD screen is configured to generate an increased luminous intensity relative to the OD LUT 502a-n corresponding to pixel line 704. Thus, each of the generated LUTs can be considered to generate a luminance on its respective pixel line that progressively increases from the top pixel line 502a to the bottom pixel line 502n of the LCD.
(45) In one embodiment, the progressive OD LUT for each pixel line is configured to have an OD level such that such that each of the LUTs generates at least partially the same level of luminance at the end of a strobe period of the LCD as indicated at points 712a-n. That is, the pixel lines 502a-n toward the bottom of the LCD screen are driven at a progressively harder level so that their luminous intensity is generally similar to that of the pixel lines 502a-n proximate the top of the LCD screen.
(46) The multiple LUTs may be generated based on equation 4.
L(G″.sub.TOD(n))=GLRC.sub.G.sub.
(47) Where is the grey-level at physical frame-end, or end of strobing backlight time stamp as indicated at points 712a-n. It may be important to note that the first top line pixels duration time is much longer than the last bottom line pixels due to the inherent nature of the progressive LCD panel mechanism that begins strobing before the bottom pixel line has finished updating. Nevertheless, every pixel will still be refreshed on every frame period of LCD screen.
(48) In Equation 2, the duration time of the nth line at end of strobing may be set to, where is data addressing time of the pixel line 502n. This can mean that at the time the specific nth horizontal pixel line is addressed to start at the transition phase, as defined by Equation 5:
(49)
(50) Here, the strobing time t.sub.s is defined as the starting time of strobing backlight in each frame, while t.sub.r is referred to the response time that each lines' pixel will take, once being addressed, to complete the transition to its target grey-level. Also, the delta Grey-level may be based on selection(e.g.,=0, 1, 2, 3, etc.) for that particular grey-level, which will be described in detail herein below.
(51) Thus, after the native Grey Level Response Curve across each grey-to-grey response is captured and recorded in the native GLRC raw database, based on Equation 2, for every frame, the framerate only needs to be deduced from Equation 2 to form a progressive OD LUT per line(n), as shown in
(52) Thus, by introducing the progressive overdrive as described above for different pixel lines (the OD response strength is progressively increased from weak for the top pixel line too strong for the bottom pixel line), some, most, or all pixel lines will be able to transit to the target grey level G.sub.Target at the moment when the backlight is turned on.
(53) Of all the pixel lines, the first top horizontal line's pixels will have the longest response reaction duration with the least amount of overdrive strength. Assuming the time taken for the pixel to change from the starting gray level (G.sub.Start) to the target gray level (G.sub.Target) is equal to the strobing time t.sub.s, as illustrated by the blue curve, the top pixel line 702 could have no overshoot OD strength and will use the whole time to complete its transition before strobing backlight is turned on. For the middle pixel line 704, the remaining time for it to complete transition before t.sub.s is shortened by the data addressing time consumption, thus the middle pixel line 704 will require some amount of overshoot overdrive to increase its transition process. Similarly, the bottom pixel line 706 will have the least time for it to finish transition and will hence have the strongest overshoot overdrive as illustrated by the green curve.
(54) Because of the different overdriven strength applied, all frame line is able to transit to the target grey level during backlight strobing, thus, full screen range clearance is accomplished. The pixels of the middle pixel line 704, and those of the bottom pixel line 706 may continue the transition journey if response time t.sub.r (from G.sub.Start to) is longer than 1/Framerate, but since back light strobing is turned off at points 712a-n, the inverse ghosting artifacts by being overdriven will not be noticed by user due to strobing backlight being off during those periods.
(55)
JND.sub.GL=ΔG.sub.GL Equation 6
(56) Thus, by introducing a certain amount of visual unnoticeable error based on DeltaE, it can help to weaken the OD strength for those relatively slow native response time LCD displays, especially at the bottom-line range, and to settle the pixels transition faster within some frames.
(57)
(58) At step 902, the method 900 captures and records a LCD panel's native GLRC across each grey-to-grey response and records it as panel native raw database. The GLRC may be stored in the format of multiple greyscale matrices (e.g., LUTs) which full matrix size depends on color bit-depth, e.g., 255×255 for an 8-bit panel as full matrix. Due to a non-linear liquid crystal temporal response, the larger the matrix size recorded the better the OD LUT optimization. In some cases, to balance capturing process time and accuracy, an interpolation may be used. For example, a 65×65 measured matrix with interpolation may be used to predict the full 255×255 GLRC matrix for an 8-bit panel. Thereafter at step 904, the method 900 sets a framerate for the video stream being processed, and a GLRT target (e.g., 144 Hz, 1 ms).
(59) At step 906, the method identifies a quantity of the LUTs 502a-n to be generated. In one embodiment, the quantity of LUTs may be equivalent to the quantity of pixel lines on the LCD. In another embodiment, the quantity of LUTs may be a subset of the total quantity of pixel lines on the LCD. For example, if the LCD has 1080 horizontal pixel lines, the method 900 may set the quantity at 108 LUTs such that a LUT is generated for every 10 pixel lines on the LCD. In another embodiment, the method 900 may set the quantity based on certain characteristics of the IHS 200, such as an amount of available memory for storing the LUTs, an available amount of processing capabilities, and/or a desired level performance of the LCD.
(60) In general, steps 908 through 920 describe actions that are performed by the method 900 for each LUT to be generated as shown at step 907.
(61) At step 908, the method 900 generates the LUT based on its respective pixel line's position on the LCD. For example, the method 900 may calculate a luminance for each grey scale and an equivalent grey level at first frame end for each grey-to-grey transition based upon its pixel line's position (e.g., n=1 to 1080). In one embodiment, the method 900 calculates the luminance to be increased as the pixel line's position is proximate the bottom portion of the LCD screen. In a particular example, the method 900 may calculate the luminance for each grey scale according to Equation 2(ID) shown above. Additionally, the method 900 may calculate luminance based upon a duration of the n'th pixel line at the end of the strobing period according to Equation 3(ID) shown above.
(62) At step 910, the method 900 initializes ΔE.sub.00 to a “1” value. At step 912, the method 900 may calculate the OD LUT, for example, using equations 2 and 3(ID) above. At step 914, the method 900 determines whether the GLRT target is met. If not, step 916 increases or increments the ΔE.sub.00 level (e.g., ΔE.sub.00=“2,” and so on) and control returns to step 912. Otherwise, at step 918, the method 900 records the current ΔE.sub.00 level and the current OD LUT. Because the framerate and all GLRC values are known, for each, the only variables are G.sub.ODT and, so method 900 may auto-calculate the suitable G.sub.ODT to meet target response time τ.sub.OD(G.sub.
(63) The process as described by steps 908 to 920 is performed for each OD LUT generated by the method 900. Nevertheless, when use of the method 900 is no longer needed or desired, the method 900 ends.
(64) It should be understood that various operations described herein may be implemented in software executed by processing circuitry, hardware, or a combination thereof. The order in which each operation of a given method is performed may be changed, and various operations may be added, reordered, combined, omitted, modified, etc. It is intended that the invention(s) described herein embrace all such modifications and changes and, accordingly, the above description should be regarded in an illustrative rather than a restrictive sense.
(65) The terms “tangible” and “non-transitory,” as used herein, are intended to describe a computer-readable storage medium (or “memory”) excluding propagating electromagnetic signals; but are not intended to otherwise limit the type of physical computer-readable storage device that is encompassed by the phrase computer-readable medium or memory. For instance, the terms “non-transitory computer readable medium” or “tangible memory” are intended to encompass types of storage devices that do not necessarily store information permanently, including, for example, RAM. Program instructions and data stored on a tangible computer-accessible storage medium in non-transitory form may afterwards be transmitted by transmission media or signals such as electrical, electromagnetic, or digital signals, which may be conveyed via a communication medium such as a network and/or a wireless link.
(66) Although the invention(s) is/are described herein with reference to specific embodiments, various modifications and changes can be made without departing from the scope of the present invention(s), as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of the present invention(s). Any benefits, advantages, or solutions to problems that are described herein with regard to specific embodiments are not intended to be construed as a critical, required, or essential feature or element of any or all the claims.
(67) Unless stated otherwise, terms such as “first” and “second” are used to arbitrarily distinguish between the elements such terms describe. Thus, these terms are not necessarily intended to indicate temporal or other prioritization of such elements. The terms “coupled” or “operably coupled” are defined as connected, although not necessarily directly, and not necessarily mechanically. The terms “a” and “an” are defined as one or more unless stated otherwise. The terms “comprise” (and any form of comprise, such as “comprises” and “comprising”), “have” (and any form of have, such as “has” and “having”), “include” (and any form of include, such as “includes” and “including”) and “contain” (and any form of contain, such as “contains” and “containing”) are open-ended linking verbs. As a result, a system, device, or apparatus that “comprises,” “has,” “includes” or “contains” one or more elements possesses those one or more elements but is not limited to possessing only those one or more elements. Similarly, a method or process that “comprises,” “has,” “includes” or “contains” one or more operations possesses those one or more operations but is not limited to possessing only those one or more operations.