Display device and method of displaying a target colour

By selecting primary wavelengths and employing spatial and temporal dithering, the method addresses the complexity of controlling variable-wavelength LEDs, achieving effective color rendering and gamut expansion in display devices.

WO2025003675A1PCT designated stage expired Publication Date: 2025-01-02PORO TECHNOLOGIES LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/GB2024/051650
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-06-27
Filing Date
2024-06-27
Publication Date
2025-01-02

AI Technical Summary

Technical Problem

Display devices with variable-wavelength LEDs face challenges in precisely controlling driving currents and achieving high brightness and color balance, particularly when mixing shorter and longer wavelengths, due to the dependence of peak emission wavelength on driving signal magnitude, leading to complex control requirements and limited bit depth.

Method used

The method involves selecting a limited set of primary wavelengths from the continuum of emittable colors, programming their corresponding driving conditions, and using spatial and temporal dithering to achieve the target color by averaging emissions across neighboring pixels, allowing for rendering of a wide color gamut with simplified control and reduced power consumption.

Benefits of technology

This approach simplifies the control of variable-wavelength LEDs by using a manageable set of pre-determined driving conditions, enhances color rendering, and extends the displayable color gamut while maintaining acceptable performance despite limitations in bit depth and control complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure GB2024051650_02012025_PF_FP_ABST
    Figure GB2024051650_02012025_PF_FP_ABST
Patent Text Reader

Abstract

A method of displaying a colour on a display device comprising a plurality of variable-wavelength LED pixels: the display device being programmed to operate using a palette of N available primaries, each of the N available primaries being a wavelength emittable by the variable-wavelength LED pixels, the N available primaries defining a color gamut of a plurality of displayable colours, the display device comprising a pixel neighbourhood including a plurality of pixels, one of the pixels within the pixel neighbourhood being located at a first pixel location. The method comprises: identifying a target colour to be displayed at the first pixel location of a frame comprising two or more sequential subframes; determining an error-modified pixel value of each pixel within the pixel neighbourhood for each subframe of the two or more subframes based on the target colour and a received propagated error for each pixel location within the pixel neighbourhood; determining a dithered pixel value of each pixel within the pixel neighbourhood for each subframe of the two or more subframes based on the corresponding error-modified pixel values; determining a luminance value corresponding to the target colour for each dithered pixel value; and approximating the target colour as a combination of component colours by driving a plurality of variable-wavelength LED pixels in the pixel neighbourhood to display a component colour of the component colours in each sequential subframe of the two or more subframes, by driving each of the plurality of variable-wavelength pixels to emit one of the N available primaries during each sequential subframe of the two or more subframes based on the determined dithered pixel values and the luminance values, such that each component colour is displayed by spatial dithering of the primaries emitted by the plurality of pixels in each sequential subframe.
Need to check novelty before this filing date? Find Prior Art

Description

[0001]DISPLAY DEVICE AND METHOD OF DISPLAYING A TARGET COLOUR The present invention relates to a display device comprising a plurality of variable- wavelength LED pixels, and to a method of displaying a target colour on such a display device. BACKGROUND III-V semiconductor materials are of particular interest for semiconductor device design, in particular the family of III-nitride semiconductor materials. “III-V” semiconductors include binary, ternary and quaternary alloys of Group III elements, such as Ga, Al and In, with Group V elements, such as N, P, As and Sb, and are of great interest for a number of applications, including electronics and optoelectronics. Of particular interest is the class of semiconductor materials known as “III-nitride” materials, which includes gallium nitride (GaN), indium nitride (InN) and aluminium nitride (AlN), along with their ternary and quaternary alloys. (Al,In)GaN is a term encompassing AlGaN, InGaN and GaN. III-nitride materials have not only achieved commercial success in solid-state lighting and power electronics, but also exhibit particular advantages for quantum light sources and light-matter interaction. While a variety of III-nitride materials are commercially interesting, Gallium nitride (GaN) is widely regarded as one of the most important new semiconductor materials, and is of particular interest for a number of applications. The present invention may be realised primarily using LEDs formed from GaN and InGaN, but may advantageously be applicable to LEDs containing alternative III-nitride material combinations. It is known that the introduction of pores into bulk III-nitrides, such as GaN can profoundly affect its material properties (optical, mechanical, electrical, and thermal, etc.). The possibility of tuning a wide range of material properties of GaN and III-nitride semiconductors by altering its porosity therefore makes porous GaN of great interest for optoelectronic applications. In a significant improvement over conventional three-colour LED displays, Poro Technologies Ltd, the present applicant, has developed variable-wavelength LEDs formed from III-nitride semiconductor materials grown over a porous region of III-nitride material. Instead of a conventional LED which emits at a single colour, these variable-wavelength LEDs can emit a broad spectrum of different emission wavelengths in response to variations in the driving conditions provided to the variable-wavelength LED. These variable-wavelength LEDs, and their method of manufacture, are disclosed in international patent application no. PCT / GB2022 / 051997, published as WO2023 / 007174. As the peak emission-wavelength of such variable-wavelength LEDs can be tuned by varying the driving conditions, a single variable-wavelength LED can take the place of multiple “single-colour” subpixels. In particularly preferred embodiments, the same variable- wavelength LED can be tuned to emit any one of red, green or blue light by tuning the driving conditions provided to that LED. This means that a colour display can be formed from an array of variable-wavelength LEDs, with each variable-wavelength LED acting as a colour-variable pixel, or alternatively as a colour-variable subpixel in a subpixellated display. The ability of variable-wavelength LEDs to emit such a broad range of emission wavelengths makes display driving and calibration processes significantly more complex than they would be for a conventional RGB subpixel display. SUMMARY OF INVENTION The invention is defined in the independent claims, to which reference should now be made. Preferred or advantageous features of the invention are defined in the appended sub-claims. The present invention is preferably carried out with a display device comprising a plurality of variable-wavelength LEDs. In preferred embodiments, such display devices comprise an array of variable-wavelength LEDs, with each variable-wavelength LED forming a pixel of the display device. An example of variable-wavelength LEDs usable in the present invention are known as dynamic-pixel-tuning (DPT®) variable-wavelength LEDs from Poro Technologies Ltd, which are disclosed in international patent application no. PCT / GB2022 / 051997, published as WO2023 / 007174. A continuum of different emission wavelengths across an emission wavelength range can be emitted directly from a variable-wavelength LED by varying the driving conditions (the magnitude of the driving current and / or driving voltage) supplied to that LED. In CIE xy colourspace, the variable-wavelength LED can emit any colour along a continuous curved line of wavelengths. The length and shape of the emittable-wavelengths line in CIE xy colourspace is determined by the LED composition and structure, as described in WO2023 / 007174. One way of controlling the wavelength of light emitted by a variable-wavelength LED would be to provide a continuously-variable driving current to the LED. When the display device receives a signal identifying the target colour to be displayed by a given variable- wavelength LED, the driving current to that pixel could then be delivered at whatever magnitude is required for the LED to emit a particular wavelength from its continuum of emittable wavelengths. Downsides of this approach, however, are the difficulty of precisely controlling the variable driving current at all times, and the limitation that the variable- wavelength LED could only display chromaticities which are on the continuous line of emission wavelengths directly-emittable by that LED. An alternative approach to driving variable-wavelength LEDs is to choose a set of pre- determined “primaries” (primary wavelengths) from the continuum of emission wavelengths which are emittable by the variable-wavelength LED. Instead of controlling the emission wavelength to any point across the entire range of emittable colours, a limited set of operating points can be created by selecting a plurality of N primary wavelengths from the range of emittable colours. Each of the N primaries is then used as a pre-determined operating point for the variable-wavelength LED, and the N respective driving conditions required to generate those N primary wavelengths are programmed into a display device incorporating the variable-wavelength LED. The N primary wavelengths which are selected from the LED’s range of emittable wavelengths form a palette of N available primaries, so that at any time the variable- wavelength LED can be controlled to emit light at one of these N predetermined primary wavelengths. The N available primaries define a colour gamut of a plurality of displayable colours, as any colour within this gamut can be displayed by the variable-wavelength LED by mixing the available primary wavelengths. When the display device receives a signal identifying the target colour to be displayed by a given variable-wavelength LED, the device can select, out of the palette of N available primaries, a smaller set of 2 or more primaries which are mixable to render the target colour. Which primaries are selected from the N available primaries will depend on the wavelength of the target colour to be displayed. By driving the LED to emit light at only a plurality of “primary” wavelengths instead of any wavelength from the continuum of directly-emittable wavelengths, the display device can display additional chromaticities which are not directly-emittable by the variable-wavelength LED. Primary wavelengths can be mixed using colour-mixing techniques known for conventional displays, such that the overall colour observed by a viewer is a temporal and / or spatial combination of the emitted primaries, rather than a single colour which is emitted “directly” by a single variable-wavelength LED. Driving variable-wavelength LEDs to emit light at predetermined “primary” wavelengths may also advantageously simplify driving requirements, as instead of having to provide a continuously-variable driving current, the display device can be calibrated to deliver a more manageable set of N pre- determined driving conditions which generate the N available primaries. The number “N” of available primaries can be selected depending on the size of the colour gamut which is desired, and the desired complexity of the control system. The larger the number of N, the larger the displayable colour gamut, but the larger the number of required driving conditions and the more complex the control requirements. As the variable- wavelength LED can emit a continuous range of wavelengths, N can be selected to be any number up to infinity (N = infinity being equivalent to continuous driving to any point within the range of emittable wavelengths). In some embodiments, N may be equal to three, in which the three available primaries corresponding to red, green, and blue. Alternatively, in some embodiments, N is greater than 3, so that the displayable colour gamut is sufficiently large to render a wide range of colours. N may be greater than or equal to 4, or 5, or 6, to encompass a large colour gamut while keeping the control requirements relatively straightforward. In some embodiments, N may be less than or equal to 8, or 10, or 12, to prevent the control requirements from becoming overly complex. In a preferred embodiment of a display device, each variable-wavelength LED is a pixel of the device, and the display device is a field-sequential display. In this embodiment, the same variable-wavelength LED pixel is driven to emit a plurality of discrete primary emission wavelengths in sequential subframes, by driving the LED pixel with the discrete driving conditions which correspond to those primary wavelengths. In a sequential-field display, the same variable-wavelength LED may be controlled to emit multiple discrete primary emission wavelengths one after the other, by supplying different driving conditions to the LED in sequential subframes of a display frame. In this way, the same variable-wavelength LED may be a pixel that emits a plurality of selected “primary emission wavelengths” one after another within the duration of a single display frame. During each individual subframe, only one primary emission wavelength is emitted by the pixel. Thanks to the persistence of vision of human observers, the primary wavelengths emitted during sequential subframes temporally-average, so that the resulting colour observed by a person viewing the display at a normal viewing distance is the mixture of the colours emitted during a display frame. In a subpixellated display, different primary emission wavelengths can be emitted by separate subpixels. The subpixels may all be variable-wavelength LEDs, or some subpixels may be non-variable-wavelength LEDs. The brightness, or greyscale, of the emitted light can be varied by shortening or lengthening the duty cycle (pulse width) of the driving current pulses supplied to the LEDs in the display, which varies the “on time” of the LEDs. In a field-sequential display, the maximum duty cycle is achieved when the driving current is supplied to a variable- wavelength LED for 100% of the duration of the display frame, or subframe, allocated to the colour being emitted. While controlling the magnitudes of the driving currents provided to the variable-wavelength LEDs determines the emitted wavelengths, to achieve variable display brightness the duty cycles of the pulses of driving current must also be variable, which adds an additional layer of complexity to device control. In Poro Technologies Ltd’s dynamic-pixel-tuning (DPT®) variable-wavelength LEDs, the peak emission wavelength of variable-wavelength LEDs is strongly dependent on the magnitude of the electrical driving signal provided to a given LED, and longer-wavelength emission colours require lower-magnitude driving currents / voltages which inherently produce a lower luminance. This presents a challenge for those situations where a high display brightness is desired, and also a challenge for colour-balance when naturally-bright shorter wavelengths must be mixed with naturally-dimmer longer wavelengths. The present disclosure provides a method of displaying a target colour on a display device comprising a plurality of variable-wavelength LED pixels. The display device is preferably an array of variable-wavelength LED pixels. As described above, each pixel can be independently driven with a range of driving currents, to emit a range of different colours. To simplify control of the display device, rather than controlling the variable-wavelength LED pixels to directly emit any colour from anywhere within their continuous range of emittable-wavelengths, in the present invention N “primaries” (primary emission wavelengths) are selected and pre-programmed into the display device. The selected N primaries correspond to N points on the achievable continuous emission range of the variable-wavelength LEDs. For each primary, the inventors know the driving conditions required to get the pixels to emit that wavelength, so the device can be calibrated to have a set of N standard driving conditions which can be selected to drive the emission of N corresponding primary wavelengths. DPT presents some colour-rendering challenges for a number of reasons appreciated by the inventors of the present disclosure. DPT is inherently a multi-primary display, which means that there is more than one way to form a given colour. In other words, the inventors have appreciated the need to solve an over-determined problem. Secondly, DPT’s color gamut allows rendering of colours using a combination of any two primaries from the set of N available. This results in an ill-posed problem that has no general algebraic solution. Finally, DPT has severe restriction on bit depth in at least one channel, which can cause issues for image rendering unless corrective action is taken. This problem cannot be solved in general. The inventors have appreciated that, even if it could be solved algorithmically, the constraints on the display would be onerous as any primary would have to be controlled to ~nm level. Embodiments of the present disclosure exploit the spatio-temporal properties of human vision so that any desired color is rendered correctly as a spatio-temporal average. Embodiments described herein present solutions for specific examples, as well as provide a general solution which can render any color using two primaries selected from the N available with an arbitrary level of greyscale precision. Further discussion of that appreciated by the inventors is as follows. Embodiments involving multi-primary systems work in tristimulus (i.e. XYZ) coordinates. Any tristimulus value C can be expressed as a linear sum with coefficients a1..,.n of the primaries in M, where M is a matrix (below) of tristimulus values with primaries 1 to n arranged row-wise: The pixel values P for any given color C are themselves the coefficients so that: P=[^^^^^^… ^^] where 0 ≤ ^^≤ 1 so that any color C can be expressed as: C = ^P The general color rendering task for any display is to find the pixel values P that give rise to a tristimulus value C for some choice of primaries P. However, since the dimension of M is Nx3, P can be found by inversion if and only if N = 3. There are a number of common approaches to avoid this issue, one of which exploiting the fact that M defines a convex volume that can be tetrahedralized. In this case, C can be expressed as Equation X: ^ = ^P where V is a set of four vertices from the set of N in matrix M such that: and P are the barycentric weights: ^=[^^^^^^^^] where: and 0 ≤ ^^≤ 1. The tetrahedralization of the volume defined by M means that any color C can be expressed as a unique linear combination of any four primaries from N. A search is performed to find the tetrahedron which encloses C; the vertices of the tetrahedron are four primaries from M, and the barycentric weights ^^, which are themselves the pixel values, can be found by inverting equation X. Colour rendering for DPT is further complicated by two system-level limitations: 1. DPT forms colours using a combination of two primaries 2. DPT has limited bit-depth, meaning that the ^^are quantized. With these restrictions, the general problem in order to render colour becomes to find pixel values P, where: ^= [^^^^^^… ^^]for some n = k and n = j under the constraints that for the coefficients ^^^^and ^^^^are quantized according to the bit-depth capability of the display, all ^^^^and ^^^^are zero, and 0 ≤ ^^,^≤ 1. In other words, an arbitrary color C is rendered using some linear two- primary mixture such that: Pixel values ^^,^cannot be found by inversion; moreover no general solution exists because there is no guarantee that the tristimulus values C allows coefficients 0 ≤ ^^,^≤ 1. to be found. In other words, pixel values 0 ≤ ^^,^≤ 1 can only be found if it is possible to draw a line between primaries Mj, Mk on a chromaticity diagram and there will always be some color C for which this is not the case regardless of the number of primaries. The inventors have appreciated that Equation X cannot be solved for any fixed number of primaries N, and C can only be found if it is possible to set the two primaries Mj,k to lie precisely on a line bisecting C. Even if it were possible to choose Mj,k to do this, a backplane design which could provide the ability to set Mj,k arbitrarily is impractical. A general solution to this problem is to accept that C can never be formed exactly, and that some error will always result. However, as long as the colour C can be formed on average – either spatially, temporally, or by a combination of the two – acceptable display performance will result. Dithering algorithms provide a general approach to forming colours on average, and have the ability to include model-based constraints such as those discussed. In Poro Technologies Ltd’s dynamic-pixel-tuning (DPT®) variable-wavelength LEDs, the peak emission wavelength of variable-wavelength LEDs is strongly dependent on the magnitude of the electrical driving signal provided to a given LED, and longer-wavelength emission colours require lower-magnitude driving currents / voltages which inherently produce a lower luminance. This presents a challenge for those situations where a high display brightness is desired, and also a challenge for colour-balance when naturally-bright shorter wavelengths must be mixed with naturally-dimmer longer wavelengths. For example if the display manufacturer wants 6 primaries to choose from, then N = 6, and there are 6 corresponding driving conditions, each of which is programmed into the device. This means that the pixel can be driven to emit any one of 6 wavelengths at a given time. When the display is given a target colour to display (for example when it receives an input signal containing information about an image to be rendered on the display), then the display has to make that target colour from a combination of the available N primary wavelengths that it has to choose from. In order to simplify colour mixing and minimise the power consumption taken up by switching between different magnitudes of driving current, the inventors have appreciated that it is desirable to make any target colour using just 2 of the N available primaries for each pixel. In this embodiment, once the display has identified the target colour to be displayed at a given pixel location, the display selects 2 out of the N available primaries Ideally, the pixel would then be driven to emit those 2 primary wavelengths in the exact proportions that mix to result in the target colour by emitting the 2 primary wavelengths for precise time proportions, so that an observer viewing the display would observe a temporal combination of the 2 primary wavelengths which averages to display exactly the target colour to the observer. However, the inventors have found that such precise temporal colour mixing is very difficult in reality, and requires very complex control of the driving current in order to display the correct target colour. Thus in the present method, instead of trying to mix the 2 selected primaries in the exact proportions needed to arrive at the correct target colour using only a single pixel, the inventors have appreciated that the device may instead create the target colour using spatial dithering over a neighbourhood of nearby pixels. By using multiple neighbouring pixels to each emit component colours which are close to, but not exactly the target colour, the inventors have appreciated that the component colours emitted by the neighbouring pixels will spatially average so that a viewer just sees the intended target colour being displayed on the device. During device manufacture and programming, the manufacturer may decide how many primaries are to be programmed into the display device. N may be greater than 3, but may be varied depending on display requirements. In some embodiments, for example, N = 6, so 6 different primary wavelengths and their associated driving conditions are programmed into the display device. The colour space encompassed by the 6 primaries is the overall colour gamut which can be displayed by the pixels by mixing the proportions of the emitted primary wavelengths. In some embodiments, device control is preferably further simplified by tetrahedralizing the colour gamut – that is, dividing up the convex hull of the colour gamut into a plurality of smaller gamut tetrahedrons. This may be done using a Delaunay tetrahedralization. The overall colour gamut of displayable colours is divided into a series of smaller 4-vertexed tetrahedrons, each of which encompasses a plurality of displayable colours. The 4 vertices of each gamut tetrahedron are component colours which are mixable to obtain any displayable colour within that tetrahedron. Every displayable colour in the gamut is contained within only one gamut tetrahedron, and each displayable colour is obtainable using a unique mixture of the 4 component colours at the tetrahedron vertices. The tetrahedralization of the colour gamut eliminates metamerism by assigning a unique set of colour coordinates to every displayable colour inside the colour gamut. The details of the tetrahedralization are stored in the display device in a database as a collection of vertex values and a connectivity list. When the device receives a signal indicating which target colour is to be displayed at a given pixel location – a “first” pixel location for example - the device interrogates the database to find out which gamut tetrahedron contains the target colour. Once the tetrahedron containing the target colour has been identified, the database also identifies the four component colours at the vertices (corners) of that gamut tetrahedron. In order to display the target colour to an observer, the device will drive neighbouring variable-wavelength LED pixels to emit the four component colours at the vertices (corners) of that gamut tetrahedron. The quantity of each component colour that is emitted (the barycentric weight) can be controlled by controlling the number of pixels emitting each colour, to control how much of each component colour is in the overall colour mixture. This barycentric colour-mixing is required because the overall colour seen by an observer will be an averaged-out mixture of the wavelengths emitted in the vicinity of the first pixel location. The location of the tetrahedron vertices relative to the bounds of the colour gamut will depend on the target colour. Some of the vertices of the tetrahedra will lie inside the gamut convex hull, while others will lie on the surface of the gamut convex hull. These tetrahedron vertices represent component colours which do not match any one primary emission wavelength. In order for a variable-wavelength LED pixel to display a tetrahedron vertex colour, that pixel has to sequentially emit multiple (preferably 2, but optionally more than 2) primary emission wavelengths in sequential subframes, so that those emitted primary emission wavelengths are mixed to display a temporal-average which is the vertex colour. The temporal-average may be further extended across multiple frames, each comprising sequential subframes. For example, a temporal-average approximation of a target colour may be performed by the combination of component colours formed in a first frame and a second frame. Multiple LED pixels are used to emit the 4 vertex colours forming the vertices of the colour gamut which contains the target colour. Those vertex colours are mixed as “effective primaries” or “pseudo-primaries” in the proportions required to create the target colour as the spatial and temporal average of the component colours. Thus in the present method there are at least two “colour mixing” steps: 1 – Multiple variable-wavelength LED pixels at and surrounding a first pixel location each emit and mix 2 primaries to display a component colour which represents a vertex of the gamut tetrahedron. These component colours are themselves formed by a combination of multiple primary emission wavelengths from the N available primaries; 2 – These tetrahedron-vertex component colours are used as pseudo-primaries which are mixed in the proportions required to give the target colour. The component colours formed by different nearby pixels are spatially dithered so that to an observer at a normal viewing distance from the display device, the first pixel location on the display shows a spatio- temporal average colour which is the target colour. Spatial dithering is employed to propagate the colour error across pixel neighbourhoods in the pixel array of the display device, so that the colour error averages out spatially to display the target colour to an observer. This technique means that, although the target colour cannot be arrived at by combining any two of the N available primaries, the target colour is still observed by a person viewing the display, as spatial dithering across the pixel neighbourhood creates a spatial-average of the target colour. Although the first pixel at the first pixel location cannot itself display the target colour, the first pixel is instead driven to display a component colour which is close to the target colour, and the error (the difference between the target colour and the component colour displayed by the first pixel) is diffused across the pixel neighbourhood by driving the neighbouring pixels to emit a particular combination of component colours which compensate for that error. Preferably the component colours displayed by the neighbouring pixels are swapped between the neighbouring pixels at regular intervals, so that the component colours move around between display frames. This creates the additional advantage of averaging the drive current magnitudes supplied to the separate LEDs in the pixel neighbourhood, which prolongs the lifetime of the LED pixels. Each pixel is preferably driven using field-sequential driving, with a display frame time period divided into two or more subframes, and preferably two subframes. For example, a given pixel is driven to emit a first primary wavelength during the first of the two subframes, and a second primary wavelength during the second of those subframes. During the whole display frame, that pixel thus “displays” a temporal-average of those two emitted primary wavelengths. During any given display frame, each pixel is preferably driven to emit two of the N available primaries during the two sequential subframes. Different pixels may emit different pairs of primaries during the same display frame, resulting in those pixels emitting different component colours. The way in which the display device displays the target colour may be considered from two alternative points of view. Pixel-by-pixel over the display frame – Each pixel is driven to emit two different primaries (selected from the N available primaries), during the two sequential subframes of a display frame. During that whole display frame, that pixel displays a component colour which is the temporal-average of the two primary wavelengths that the pixel has emitted in the two subframes. Multiple pixels in the same neighbourhood are driven separately to display their own component colours, each of which is formed by two respective primaries. To a viewer observing the display at a normal viewing distance (anything further than a few cm, for example) the different component colours emitted by the neighbourhood blend together and form a spatial-average of the component colours, which appears to the viewer to be the target colour. Subframe-by-subframe – Alternatively the method may be considered from the point of view of view of the two individual subframes. Each display frame is divided into two subframes, and the observed colour will be a temporal-average of the colours emitted during the two subframes. The target colour may thus be considered to be the temporal average of two spatially-averaged component colours, with the pixel neighbourhood displaying a first spatially-averaged component colour during the first subframe, and a second spatially-averaged component colour during the second subframe. During the first subframe, the pixels in the neighbourhood are driven to emit a selection of primary wavelengths, so that the combination of the emitted colours averages spatially to form a first component colour. During the second subframe, the pixels in the neighbourhood are driven to emit a different selection of primary wavelengths, so that the combination of the emitted colours averages spatially to form a second component colour. The first component colour displayed during the first subframe, and the second component colour displayed during the second subframe, then temporally-average together so that an observer perceives the target colour being displayed during that display frame. For example in order to display a target colour of white, the pixels in the neighbourhood may be driven to display a first component colour of yellow in the first subframe, and then a second component colour of blue in the second subframe, so that a viewer perceives the yellow and blue temporal-average as white. From both points of view, each pixel emits two primaries in two sequential subframes, and the overall colour which an observer sees being displayed is the target colour, formed from a temporal and spatial combination of the wavelengths emitted by the pixels in the pixel neighbourhood surrounding the first pixel location. Controlling greyscale as well as chromaticity adds significant complexity and challenges to the processes required for driving display devices containing variable-wavelength LEDs. In some arrangements, the greyscale may therefore be fixed to simplify things, by pre-setting a duty cycle for the driving conditions associated with each of the N available primary wavelengths. Each of the available N primaries is assigned a standard driving condition, which results in the emission of a specific primary wavelength at a specific intensity. It is relatively straightforward to solve the problem of finding 0 ≤ ^^,^≤ 1 for a given C such that: as long there is only one bit of greyscale i.e. that ^^,^⊂ [0, 1] but without restriction on the number of primaries N. This is achieved building the gamut convex hull, and quantizing a given pixel value to the vertices described by the tetrahedron vertices of that gamut. Since the pixel is either off, or one of the vertices (i.e. a primary), there is no greyscale. Initially, M primaries are chosen, and all of the two-frame combinations of the primaries, M’, are computed. The gamut M’ forms a convex hull, which can be tetrahedralized such that the tetrahedron vertices are color coordinates from the set of primaries M’. A color C can then be rendered on average by using a modified version of a Floyd-Steinberg algorithm. • For example, consider a color C at pixel location (x,y) and write as Cxy • Initialize an error matrix exy to zero, and start at pixel location (x, y) = (1, 1) • Let a 2x3 neighborhood be defined as E = ex:x+3,y:y+2• Let the error-modified pixel value be uxy= Cxy+ E * w, where * is a 2D convolution and w are the error diffusion weights • Since uxysits in a tetrahedron, it can be expressed as a barycentric combination of four vertices ^^^= ^P where P =[^^^^^^^^]and V are any four vertices from M’ • The one-bit dithered value, ^^^^, is a vertex of V for which ^ = arg ^ max ^ and is by ^ definition a combination of two primaries from M • The error introduced by dithering is propagated forward by setting ey+2,x+2 = ^^^^– dxy In this case, even though the one-bit dithered value for the pixel at (x,y), ^^^^, has potentially a significant error compared to the deisired color Cxy, the correct color is formed on average by virtue of the error-propagation steps. The error-modified pixel value uxycan grow without bound. If it grows so that it is lies outside the convex hull of the gamut, uxycannot be dithered because an enclosing tetrahedron cannot be found. To avoid this, an operator P ay be introduced such that u’xy = P{uxy} where P{} projects uxy back to the gamut surface and may work as follows: • Build a list of triangles that make the convex hull of the gamut • For any uxy, we first check if it is in-gamut by comparing against the surface normal of each triangle. • If uxy is out-of-gamut, we compute the intersection of a line (with starting point uxy and end point somewhere inside the gamut) with the gamut. The intersection is on the gamut surface by definition, and is at point u’xy. The error-modified pixel value is now u’xy, sits inside a tetrahedron, and can be dithered to ^^^^as before Embodiments of the present disclosure may significantly also display colours with arbitrary greyscale. That is, in which one or more channels corresponding to primaries have a plurality of available greyscale bits. This is computational more difficult than an example having one bit of greyscale, and in these embodiments, not only is a colour for display determined, but also a luminance value (corresponding to greyscale). As described above, usually brightness (greyscale) can be controlled by varying the duration of the driving current pulse supplied to the pixels. In some embodiments, the display may comprise, or consist of, three primaries, each of which can be shown in any one of three subframes that integrate to one video frame. These primaries may be red, green, and blue. The RGB primaries act as generating vectors for the gamut and so any color C can be expressed as C = ^P where M is the 3x3 matrix containing the R, G and B primaries: The gamut of the display, G, is defined as all binary combinations of the primaries in M because the primaries in M are generating vectors. In an example comprising one frame comprising thee subframes and arbitrary greyscale, the colour at each pixel location may be determined as follows. • Consider a color C at pixel location (x,y) and write as Cxy • Initialize an error matrix exyto zero, and start at pixel location (x, y) = (1, 1) • Let a 2x3 neighborhood be defined as E = ex:x+3,y:y+2• Let the error-modified pixel value be uxy= Cxy+ E * w, where * is a 2D convolution and w are the error diffusion weights • According to the procedure defined in algorithm X, we check if uxyis in gamut defined by G; if it is not, we project uxyback to the gamut. ^ We define the least-significant bit (LSBk) for each primary k as ^^^^= where nkis the number of bits in each channel. (This is important since we may be limited by the display addressing time in the blue channel.) An LSB matrix may be written as: uxy may be split into a whole part ^^^^, which will not be dithered, and a fractional remainder ^^^^which is dithered. • Then find the whole part the floor operator, guaranteeing that the remainder will be positive. • Find the remainder = ^^^^^^^(^^^− ^^^^), which sits in the gamut G • Since ^^^^is in-gamut by definition and sits in a tetrahedron, it can be expressed as a barycentric combination of four vertices = ^P where P =[^^^^^^^^]and V are any four vertices from G • The dithered value, ^^^^, is a vertex of V for which ^ = arg ^ max ^ and is by ^ definition a color from G • The color close to C, having multiple greyscale levels, is therefore: • The error introduced by dithering is propagated forward by setting ey+2,x+2 = ^′ – dxy In some embodiments, the N primaries may again consist of red, green, and blue, with arbitrary greyscale, but include a further aspect of temporally-averaging the displayed colours across multiple frames, for example two frames. In some examples, two frames may be used to form an image (i.e. six subframes, where each frame comprises three subframes). The concept of dithering can be extended to the temporal domain such that a portion of error is diffused to the next frame. In this way, there is a separate dither pattern for each frame, resulting in improved image quality. We write the frame number as n. For example: • Consider a color C at pixel location (x,y) and write as Cxy • Initialize an error matrix at frame n en,xyto zero, and start at pixel location (x, y) = (1, 1) • Let a 2x3 neighborhood in frame n be defined as En= en,x:x+3,y:y+2• In frame 1, let the error-modified pixel value be uxy= Cxy+ En* w, where * is a 2D convolution and w are the error diffusion weights w = [700; 153] / 16 • In frame 2, let the error-modified pixel value be uxy= Cxy+ E1* w + En-1* ww, where * is a 2D convolution and w are the error diffusion weights w = [700; 153] / 16 and ww = [010; 000] is a filter which diffuses error from the current pixel into the next frame. • According to the procedure defined in algorithm X, we check if uxyis in gamut defined by G; if it is not, we project uxyback to the gamut. ^ The least-significant bit (LSBk) may be defined for each primary k as ^^^^= where nk is the number of bits in each channel. (This is important since we may be limited by the display addressing time in the blue channel.) An LSB matrix may be written as: uxyis split into a whole part ^^^^, which will not be dithered, and a fractional remainder ^^^^which is. • Then find the whole part ^^^^= ^^^^^^^^^^^^^where⌊^⌋is the floor operator, guaranteeing that the remainder will be positive. • Find the remainder which sits in the gamut G • Since ^^^^is in-gamut by definition and sits in a tetrahedron, it can be expressed as a barycentric combination of four vertices = ^P where P =[^^^^^^^^]and V are any four vertices from G • The dithered value, ^^^^, is a vertex of V for which ^ = arg ^ max ^ and is by ^ definition a color from G • The color close to C at frame n, Cn’, which has multiple greyscale is therefore • The error introduced by dithering is propagated forward by setting en,y+2,x+2 = ^^′ – dxy A general approach may be provided for displaying a target colour using N primaries with arbitrary greyscale. That is, to express a given color C as a linear combination of two available primaries, is impossible as demonstrated by equation X. However, if it is accepted that there is some error involved then an approximation of C may be formed by using two available primaries and diffusing the error to neighboring pixels. In addition, it is assumed that either of the primaries can be quantized to some greyscale level subject to the capability of the panel. A general approach may be set out as follows: • Build the convex hull and tetrahedralization of the available primaries. Call this M. • Build the tetrahedralization of the available primaries, where each primary is normalized to have a luminace of unity. Call this M’. • Consider a color C at pixel location (x,y) and write as Cxy • Initialize an error matrix exy to zero, and start at pixel location (x, y) = (1, 1) • Let a 2x3 neighborhood be defined as E = ex:x+3,y:y+2• Let the error-modified pixel value be uxy = Cxy + E * w, where * is a 2D convolution and w are the error diffusion weights • According to the procedure defined above, check if uxy is in gamut defined by the available non-normalized primaries M; if it is not, project uxy back to the gamut. The intention is to then find an approximation to u which is the sum of two primaries with arbitrary greyscale. Find color 1 (first of the two primaries) • Consider uxy, which can be expressed as a barycentric combination of four vertices ^^^= ^P where P =[^^^^^^^^]and V are any four vertices from M’ • Consider uxy normalized to have its luminance equal to 1, which is written as ^^^. This can also be written in barycentric form so that ^^^= ^^P^, where ^^arenormalized primaries. • Find a vertex of V, ^^^^^(dithered value), for which ^ = arg ^ max ^ and is by ^ definition a normalized primary and has a corresponding non-normalized representation ^^^ ^ • The luminance of this normalized primary rounded to the nearest available the number of greyscale bits available in that channel. • The color displayed by the panel at this pixel in the first frame, P1, is then ^^= ^^^^^i.e. the normalized primary scaled by the luminance. Find color 2 (second of the two primaries) • Form uxy’ = uxy – P1 • According to the procedure defined above, check if u’xy is in gamut defined by the non-normalized primaries M; if it is not, project u’xy back to the gamut. • Consider uxy, which can be expressed as a barycentric combination of four vertices ^^^= ^P where P = [^^^^^^^^] and V are any four vertices from M’ • Consider uxy normalized to have its luminance equal to 1, which is written as ^^^. This can also be written in barycentric form so that ^^^= ^^P^, where ^^arenormalized primaries. • Find a vertex of V, ^^^^^, for which ^ = arg ^ max ^ and is by definition a normalized ^ primary and has a corresponding non-normalized representation ^^^ ^ • The luminance of this normalized primary rounded to the nearest available the number of greyscale bits available in that channel. We choose the round operator here to prevent the error diffusion algorithm from getting stuck. • The color displayed by the panel at this pixel in the second frame, P2, is then ^^= ^^^^^i.e. the primary scaled by the luminance. Error propagation • The error introduced by dithering is propagated forward by setting ey+2,x+2 = ^^+ ^^– dxy According to an aspect of the present disclosure, there is provided a method of displaying a colour on a display device comprising a plurality of variable-wavelength LED pixels: the display device being programmed to operate using a palette of N available primaries, each of the N available primaries being a wavelength emittable by the variable-wavelength LED pixels, the N available primaries defining a color gamut of a plurality of displayable colours, the display device comprising a pixel neighbourhood including a plurality of pixels, one of the pixels within the pixel neighbourhood being located at a first pixel location, the method comprising: identifying a target colour to be displayed at the first pixel location of a frame comprising two or more sequential subframes; determining an error-modified pixel value of each pixel within the pixel neighbourhood for each subframe of the two or more subframes based on the target colour and a received propagated error for each pixel location within the pixel neighbourhood; determining a dithered pixel value of each pixel within the pixel neighbourhood for each subframe of the two or more subframes based on the corresponding error-modified pixel values; determining a luminance value corresponding to the target colour for each dithered pixel value; and approximating the target colour as a combination of component colours by driving a plurality of variable-wavelength LED pixels in the pixel neighbourhood to display a component colour of the component colours in each sequential subframe of the two or more subframes, by driving each of the plurality of variable-wavelength pixels to emit one of the N available primaries during each sequential subframe of the two or more subframes based on the determined dithered pixel values and the luminance values, such that each component colour is displayed by spatial dithering of the primaries emitted by the plurality of pixels in each sequential subframe. In some embodiments, the target colour is not producible by a linear combination of two of the available N primaries. In some embodiments, each of the dithered pixel values is a colour producible by a linear combination of two of the available N primaries. In some embodiments, the component colours are combined as pseudo-primaries which combine to form the target colour, each of the component colours itself being based on the dithered pixels values each being a combination of two of the available N primaries. In some embodiments, each component colour is produced by a sequential combination of two of the N available primaries. In some embodiments, the step of driving the variable-wavelength LED pixels comprises sequentially driving the variable-wavelength LED pixels to display a component colour by emitting two primary wavelengths during the two sequential subframes. In some embodiments, the component colours displayed by variable-wavelength LED pixels neighbouring the first pixel compensate for the wavelength difference between the target colour and the component colour emitted by the first variable-wavelength LED pixel at the first pixel location. In some embodiments, the method comprises sequentially driving the variable-wavelength LED pixels to display a respective component colour by emitting two primary wavelengths during two sequential subframes. In some embodiments, the luminance value corresponding to the target colour for each dithered value is determined based on a rounding to a quantized nearest available greyscale. In some embodiments, the rounding to the quantized nearest available greyscale is based on a number of greyscale bits available in each channel producible by the display corresponding to each primary. In some embodiments, the method further comprises identifying a plurality of displayable component colours in the colour gamut which are combinable to display the target colour. In some embodiments, the determining the dithered pixel values comprises consulting a database in which the colour gamut is tetrahedralized, and identifying a tetrahedron containing the target colour from a plurality of tetrahedrons associated with the tetrahedralized colour gamut, in which each dithered pixel value corresponds to a vertex of the gamut tetrahedron containing the target colour. In some embodiments, each of the vertices of the plurality of tetrahedrons are displayable component colours which are producible by a combination of two of the available N primaries. In some embodiments, each tetrahedron of the plurality of tetrahedrons has four vertices and encompasses a plurality of displayable colours, such that any given target colour in the colour gamut is positioned inside one gamut tetrahedron and is producible by a unique combination of the component colours at the vertices of that tetrahedron. In some embodiments, the tetrahedralized colour gamut is normalized such that each primary is normalized to have a luminance of one. This normalization may apply for embodiments in which N > 3. In some embodiments, the approximating the target colour as a combination of component colours comprises: determining a first component colour as a first normalised primary and determining a corresponding luminance; determining a second component colour as a second normalised primary and determining a corresponding luminance; and approximating the target colour as a combination of the first normalized primary and the second normalized primary each scaled by the corresponding luminance. In some embodiments, the determining the first component colour as the first normalised primary comprises, for each pixel of the pixel neighbourhood: normalizing the associated error-modified pixel value of a first subframe of the two or more subframes to have a luminance of one; identifying a tetrahedron from a plurality of tetrahedrons associated with the tetrahedralized colour gamut based on a determination that the tetrahedron encloses a location of the normalized pixel value of the first subframe; expressing the normalized pixel value of the first subframe as a barycentric combination of vertices of the tetrahedron; and determining a vertex associated with a maximum barycentric weight of the location of the normalized pixel value of the first subframe as the first normalized primary. In some embodiments, the determining the second component colour as the second normalised primary comprises, for each pixel of the pixel neighbourhood: normalizing the error-modified pixel value of a second subframe of the two or more subframes to have a luminance of one; identifying a second tetrahedron from the plurality of tetrahedrons associated with the colour gamut based on a determination that the second tetrahedron encloses a location of the normalized pixel value of the second subframe; expressing the normalized pixel value of the second subframe as a barycentric combination of vertices of the second tetrahedron; and determining a vertex associated with a maximum barycentric weight of the location of the normalized pixel value of the second subframe as the second normalized primary. In some embodiments, the second normalized primary is determined at least in part based on the first normalized primary. In some embodiments, determining the luminance values comprises defining a least significant bit, LSB, for each primary based on a number of greyscale bits available in a channel producible by the display corresponding to each primary. In some embodiments, the least significant bit, LSB, for each primary is determined by: ^ ^^^ =^^^^, where n is the number of available greyscale bits in a corresponding channel producible by the display. In some embodiments, the luminance value, ^, is determined by: where floor is a floor operator, ^(^^^) is the luminance of the error modified pixel value, and ^(^′^^^) is the luminance of the dithered pixel value. In some embodiments, the N primaries consists of three primaries corresponding to red, blue, and green. In some embodiments, the two or more subframes comprises three subframes. In some embodiments, the frame is a first frame, and the identifying the target colour for the frame comprises identifying the target colour for the first frame and a sequential second frame comprising two or more sequential subframes. In some embodiments, the approximating the target colour as a combination of component colours by driving a plurality of variable-wavelength LED pixels in the pixel neighbourhood to display a component colour of the component colours in each sequential subframe of the two or more subframes of the first frame further comprises: driving each of the plurality of variable-wavelength pixels to emit one of the N available primaries during each sequential subframe of the two or more subframes of the second frame based on the determined dithered pixel values and the luminance values, such that the primaries emitted by different variable-wavelength LED pixels in the two sequential subframes across the first frame and the second frame temporally-average to form the respective component colours. In some embodiments, the determining the error-modified pixel values for each pixel of the neighbourhood of pixels comprises determining an error-modified pixel value for each pixel of the neighbourhood of pixels in the second frame, an error in the error-modified values for the first frame being propagated into the determination of the error-modified values for corresponding pixels in the second frame by a dithering algorithm. In some embodiments, the approximating the target colour comprises forming a temporal average of the target colour between the approximated target colour of the first frame and the subsequent second frame based on an error diffused between subsequent frames. In some embodiments, the method further comprises splitting each error-modified pixel value into a whole part and a fractional remainder, the fractional remainder being within the colour gamut and the dithered pixel values being determined based on the fractional remainder of the error-modified pixel values. n some embodiments, the determining the dithered pixel value of each pixel within the pixel neighbourhood comprises, for each pixel of the neighbourhood of pixels: identifying a tetrahedron from a plurality of tetrahedrons associated with the colour gamut based on a determination that the tetrahedron encloses a location of the associated error-modified pixel value; expressing the fractional remainder as a barycentric combination of vertices of the tetrahedron; and determining a vertex associated with a maximum barycentric weight of the location of the error-modified pixel value as the dithered pixel value. In some embodiments, the received propagated error is propagated to each pixel of the neighbourhood of pixels from neighbouring pixels using a dithering algorithm. In some embodiments, the dithering algorithm is a modified Floyd-Steinberg algorithm. In some embodiments, the method further comprises determining whether each of the error-modified pixel values falls within a three-dimensional colour space defined by the colour gamut. In some embodiments, the determining whether each of the error-modified pixel values falls within the determined colour gamut comprises: determining a set of triangles forming a convex hull of the colour gamut; and comparing the error-modified pixel values against a surface normal of each triangle in the set of triangles. In some embodiments, the method further comprises, if it is determined that an error- modified pixel value of the error-modified pixel values does not fall within the colour gamut, applying an operator to the error-modified pixel value to project the error-modified pixel value onto the surface of the colour gamut. In some embodiments, applying the operator comprises computing an intersection of a projection line with the colour gamut, the projection line having a first point at the error- modified pixel value falling outside of the colour gamut, and a second point inside the colour gamut, wherein the intersection lies on the surface of the colour gamut and the associated dithered pixel value is determined based on the value at the intersection. In some embodiments, the pixel neighbourhood is a 2x3 array of pixels containing the first pixel at the first pixel location. In some embodiments, the method further comprises the steps of: assigning xy coordinates to the pixels in the pixel neighbourhood such that the first pixel location has coordinates (x,y) = (1,1); assigning a target colour, pxy, to be displayed at the first pixel location (x,y) = (1,1); determining the error-modified pixel value, uxy, for the first pixel location, the error- modified pixel value uxy corresponding to an error-modified colour to be displayed at the first pixel location. In some embodiments, the error-modified pixel value uxyis configured to be uxy= pxy+ E * w, wherein * is a two-dimensional convolution, E is the error matrix for the pixel neighbourhood containing the first pixel location, and w are error diffusion weights for the pixels in the pixel neighbourhood. In some embodiments, the error matrix for the pixel neighbourhood is defined as ^ = ^^:^^^,^:^^^.; and in which the error matrix, exy, is set to zero at the first pixel location. According to another aspect of the present disclosure, there is provided a display device comprising a plurality of variable-wavelength LED pixels, the display device being programmed to operate using a palette of N available primaries, each of the N available primaries being a wavelength emittable by the variable-wavelength LED pixels, the N available primaries defining a color gamut of a plurality of displayable colours, the display device comprising a pixel neighbourhood including a plurality of pixels, one of the pixels within the pixel neighbourhood being located at a first pixel location, the display device being configured to: identify a target colour to be displayed at the first pixel location of a frame comprising two or more sequential subframes; determine an error-modified pixel value of each pixel within the pixel neighbourhood for each subframe of the two or more subframes based on the target colour and a received propagated error for each pixel location within the pixel neighbourhood; determine a dithered pixel value of each pixel within the pixel neighbourhood for each subframe of the two or more subframes based on the corresponding error-modified pixel values; determine a luminance value corresponding to the target colour for each dithered pixel value; and approximate the target colour as a combination of component colours by driving a plurality of variable-wavelength LED pixels in the pixel neighbourhood to display a component colour of the component colours in each sequential subframe of the two or more subframes, by driving each of the plurality of variable-wavelength pixels to emit one of the N available primaries during each sequential subframe of the two or more subframes based on the determined dithered pixel values and the luminance values, such that each component colour is displayed by spatial dithering of the primaries emitted by the plurality of pixels in each sequential subframe In some embodiments, the target colour is not producible by a linear combination of two of the available N primaries. In some embodiments, each of the dithered pixel values is a colour producible by a linear combination of two of the available N primaries. In some embodiments, the component colours are combined as pseudo-primaries which combine to form the target colour, each of the component colours itself being based on the dithered pixels values each being a combination of two of the available N primaries. In some embodiments, each component colour is produced by a sequential combination of two of the N available primaries. In some embodiments, the device is further configured to sequentially drive the variable- wavelength LED pixels to display a component colour by emitting two primary wavelengths during the two sequential subframes. In some embodiments, the component colours displayed by variable-wavelength LED pixels neighbouring the first pixel compensate for the wavelength difference between the target colour and the component colour emitted by the first variable-wavelength LED pixel at the first pixel location. In some embodiments, the device is further configured to sequentially drive the variable- wavelength LED pixels to display a respective component colour by emitting two primary wavelengths during two sequential subframes. In some embodiments, the device is further configured to determine the luminance value corresponding to the target colour for each dithered value based on a rounding to a quantized nearest available greyscale. In some embodiments, the rounding to the quantized nearest available greyscale is based on a number of greyscale bits available in each channel producible by the display corresponding to each primary. In some embodiments, the device is further configured to identify a plurality of displayable component colours in the colour gamut which are combinable to display the target colour. In some embodiments, the device is further configured to consult a database in which the colour gamut is tetrahedralized, and identify a tetrahedron containing the target colour from a plurality of tetrahedrons associated with the tetrahedralized colour gamut, in which each dithered pixel value corresponds to a vertex of the gamut tetrahedron containing the target colour. In some embodiments, each of the vertices of the plurality of tetrahedrons are displayable component colours which are producible by a combination of two of the available N primaries. In some embodiments, each tetrahedron of the plurality of tetrahedrons has four vertices and encompasses a plurality of displayable colours, such that any given target colour in the colour gamut is positioned inside one gamut tetrahedron and is producible by a unique combination of the component colours at the vertices of that tetrahedron. In some embodiments, the tetrahedralized colour gamut is normalized such that each primary is normalized to have a luminance of one. This normalization may apply to embodiments in which N > 3. In some embodiments, the device is further configured to approximate the target colour as a combination of component colours by: determining a first component colour as a first normalised primary and determining a corresponding luminance; determining a second component colour as a second normalised primary and determining a corresponding luminance; and approximating the target colour as a combination of the first normalized primary and the second normalized primary each scaled by the corresponding luminance. In some embodiments, the device is further configured to determine the first component colour as the first normalised primary by, for each pixel of the pixel neighbourhood: normalizing the associated error-modified pixel value of a first subframe of the two or more subframes to have a luminance of one; identifying a tetrahedron from a plurality of tetrahedrons associated with the tetrahedralized colour gamut based on a determination that the tetrahedron encloses a location of the normalized pixel value of the first subframe; expressing the normalized pixel value of the first subframe as a barycentric combination of vertices of the tetrahedron; and determining a vertex associated with a maximum barycentric weight of the location of the normalized pixel value of the first subframe as the first normalized primary. In some embodiments, the device is further configured to determine the second component colour as the second normalised primary by, for each pixel of the pixel neighbourhood: normalizing the error-modified pixel value of a second subframe of the two or more subframes to have a luminance of one; identifying a second tetrahedron from the plurality of tetrahedrons associated with the colour gamut based on a determination that the second tetrahedron encloses a location of the normalized pixel value of the second subframe; expressing the normalized pixel value of the second subframe as a barycentric combination of vertices of the second tetrahedron; and determining a vertex associated with a maximum barycentric weight of the location of the normalized pixel value of the second subframe as the second normalized primary. In some embodiments, the device is further configured to determine the second normalized primary at least in part based on the first normalized primary. In some embodiments, the device is further configured to determine the luminance values by defining a least significant bit, LSB, for each primary based on a number of greyscale bits available in a channel producible by the display corresponding to each primary. In some embodiments, the device is further configured to determine the least significant bit, LSB, for each primary by: ^ ^^^ =^^^^, where n is the number of available greyscale bits in a corresponding channel producible by the display. In some embodiments, the luminance value, ^, is determined by: where floor is a floor operator, ^(^^^) is the luminance of the error modified pixel value, and ^(^′^^^) is the luminance of the dithered pixel value. In some embodiments, the N primaries consists of three primaries corresponding to red, blue, and green. In some embodiments, the two or more subframes comprises three subframes. In some embodiments, the frame is a first frame, and the device is further configured to identify the target colour for the first frame and a sequential second frame comprising two or more sequential subframes. In some embodiments, the device is further configured to approximate the target colour as a combination of component colours by also driving each of the plurality of variable- wavelength pixels to emit one of the N available primaries during each sequential subframe of the two or more subframes of the second frame based on the determined dithered pixel values and the luminance values, such that the primaries emitted by different variable- wavelength LED pixels in the two sequential subframes across the first frame and the second frame temporally-average to form the respective component colours. In some embodiments, the device is further configured to determine an error-modified pixel value for each pixel of the neighbourhood of pixels in the second frame, an error in the error-modified values for the first frame being propagated into the determination of the error-modified values for corresponding pixels in the second frame by a dithering algorithm. In some embodiments, the device is further configured to approximate the target colour by forming a temporal average of the target colour between the approximated target colour of the first frame and the subsequent second frame based on an error diffused between subsequent frames. In some embodiments, the device is further configured to split each error-modified pixel value into a whole part and a fractional remainder, the fractional remainder being within the colour gamut and the device being configured to determine the dithered pixel values based on the fractional remainder of the error-modified pixel values. In some embodiments, the device is further configured to, for each pixel of the neighbourhood of pixels: identify a tetrahedron from a plurality of tetrahedrons associated with the colour gamut based on a determination that the tetrahedron encloses a location of the associated error-modified pixel value; express the fractional remainder as a barycentric combination of vertices of the tetrahedron; and determine a vertex associated with a maximum barycentric weight of the location of the error-modified pixel value as the dithered pixel value. In some embodiments, the device is further configured to propagate the received propagated error to each pixel of the neighbourhood of pixels from neighbouring pixels using a dithering algorithm. In some embodiments, the dithering algorithm is a modified Floyd-Steinberg algorithm. In some embodiments, the device is further configured to determine whether each of the error-modified pixel values falls within a three-dimensional colour space defined by the colour gamut. In some embodiments, the device is further configured to determine whether each of the error-modified pixel values falls within the determined colour gamut by: determining a set of triangles forming a convex hull of the colour gamut; and comparing the error-modified pixel values against a surface normal of each triangle in the set of triangles. In some embodiments, the device is further configured to, if it is determined that an error- modified pixel value of the error-modified pixel values does not fall within the colour gamut, apply an operator to the error-modified pixel value to project the error-modified pixel value onto the surface of the colour gamut. In some embodiments, the device is further configured to apply the operator by computing an intersection of a projection line with the colour gamut, the projection line having a first point at the error-modified pixel value falling outside of the colour gamut, and a second point inside the colour gamut, wherein the intersection lies on the surface of the colour gamut and the device is further configured to determine the associated dithered pixel value based on the value at the intersection. In some embodiments, the pixel neighbourhood is a 2x3 array of pixels containing the first pixel at the first pixel location. In some embodiments, the device is further configured to: assign xy coordinates to the pixels in the pixel neighbourhood such that the first pixel location has coordinates (x,y) = (1,1); assign a target colour, pxy, to be displayed at the first pixel location (x,y) = (1,1); determine the error-modified pixel value, uxy, for the first pixel location, the error-modified pixel value uxycorresponding to an error-modified colour to be displayed at the first pixel location. In some embodiments, the error-modified pixel value uxy is configured to be uxy = pxy + E * w, wherein * is a two-dimensional convolution, E is the error matrix for the pixel neighbourhood containing the first pixel location, and w are error diffusion weights for the pixels in the pixel neighbourhood. In some embodiments, the error matrix for the pixel neighbourhood is defined as ^ = ^^:^^^,^:^^^.; and in which the error matrix, exy, is set to zero at the first pixel location. DETAILED DESCRIPTION Porotech’s variable-wavelength DPT® LED technology has the unique property that the emission wavelength varies with applied current. This gives a colour locus from red to blue, and in theory allows the formation of any given colour using two primaries. One of the principle issues associated with this scheme is the difficulty in implementing it in practice. One demonstration picks two wavelengths that are joined by a line that goes through the desired white point; by time-sequencing them quickly a white colour is achieved. However, it is not clear how to extend this to general image rendering because there are many ways of forming the same colour. Further, obtaining both greyscale and colour capability in the same pixel is likely to be extremely difficult due to the two orders of magnitude difference in duty cycles. Finally, this method of setting the white point may be difficult or impossible to carry out in practice because of the difficulty in guaranteeing hitting exactly the right wavelengths required for a linear combination to make white. Embodiments described herein present an algorithm that renders images using N primaries from the set in two subframes. Advantageously, embodiments described herein are also capable of rendering images using N primaries and with arbitrary greyscale (i.e. the available greyscale may be more than one). DPT has the interesting property that wavelength varies with applied current. As the current increases, the locus of the chromaticity coordinate (black trace on Figure 1) shifts from red towards blue. Previous driving methods have focused on driving variable-wavelength LEDs at three fixed currents corresponding to red, green and blue to make the implementation easier. However, the present inventors have arrived at several features which could make current mode driving much simpler. Current-mode drive One of the interesting aspects of current-mode driving is that only any two (of N) primaries are required to make a given colour. One possible driving method exploits this fact to make white by sequentially displaying blue then yellow, controlling the intensity of each by PWM. However, this technique likely cannot work to accurately render target colours in practice because: 1) It would be necessary to precisely control the two primaries to ~nm level 2) It would be necessary to precisely control the PWM to >8 bits 3) There are many ways to form a given color, which will result in metamerism Current-mode drive, but easier The present method makes colour-rendering and display driving much easier by forming colours spatio-temporally. In the present method, a spatial dithering approach is used to form the desired colour on average. Advantageously: • The display does not need to know which wavelengths to use to form a given colour – they are fixed at design time and define the display gamut; • Dithering algorithm determines how colours are formed; • Allows pixel wavelength deviations to be built into the rendering algorithm. Figure 1 illustrates a CIE xy color space plot 100, on which the wavelengths emittable by a variable-wavelength LED are indicated as a continuous black line 101. By varying the driving conditions, such as the magnitude of the driving current or the driving voltage, provided to the LED, the wavelength of light which is directly emitted by the LED may be tuned to any wavelength along line 101. Figure 2 is a CIE xy color space plot 200 which illustrates the same emission line 101 as shown in Figure 1, overlaid with 6 points representing “primaries” P1, P2, P3, P4, P5, P6. These six primaries are specific emission wavelengths which have been selected from the continuous line of emittable-wavelengths 101. The six respective driving conditions required to be supplied to the variable-wavelength LED to result in these six emission wavelengths can be easily found, and those six driving conditions can be programmed into a display device. During operation, those six driving conditions can be supplied to the variable-wavelength LED, leading to the LED emitting light at any one of the six primary wavelengths. The space bounded by the six primaries is the colour gamut of colours which are displayable using the variable-wavelength LED and these six primary wavelengths. By driving the variable-wavelength LED using field-sequential driving, different driving conditions can be supplied to the LED during discrete subframe time periods. Thus during a first subframe time period, a first driving condition can be supplied to the LED so that the LED emits light at primary wavelength P1. During a subsequent subframe time period, a different driving condition can be supplied to the LED so that the LED emits light at a different primary wavelength (one of P2-P6). The overall colour which will be observed by an observer viewing the variable-wavelength LED will be a temporal average of the two primary wavelengths emitted during the display frame. It is possible to divide a display frame into any number of shorter subframes. For example one display frame could be divided into six subframes, so that each of the six primaries could be emitted one after the other within a display frame. However, the present inventors have found that it is desirable to use only two of the available primaries during a given display frame, as doing this simplifies colour mixing and reduces the power that is consumed in switching between driving conditions. In order to render a given target colour, two primary wavelengths are selected from an example available palette of 6 primaries P1- P6, and the two selected primaries are then mixed proportionally to give a temporal average which appears to an observer to be the target colour. As illustrated in Figure 3, the example palette of 6 available primaries P1-P6 can be divided into a plurality of different pairs. Each pair of primaries can then be linearly mixed to display any colour along the straight lines 301 between the two primary wavelengths. As is also evident from Figure 3, however, using a limited set of primaries (N = 6 for example), means that not all colours inside the colour gamut are positioned on a linear mixing line 301 between a pair of primaries. Thus with such a small palette of available primaries, not all of the colours in the gamut can be formed from only a pair of primaries. Figure 4 shows an example tetrahedralization of a five primary (RGBCY) gamut in tristimulus (XYZ) space. Unlike the example of Figures 2 and 3, in this example N = 5, so that the gamut is bounded by only five available primary wavelengths. As shown in Figure 4, the 3-dimensional convex hull of the displayable colour gamut has been divided up into a plurality of tetrahedrons, each of which has 4 vertices. Every displayable colour is contained inside only one of these gamut tetrahedrons, and is formable from a unique combination of the colours at the vertices of that tetrahedron. Figure 5 illustrates a first gamut tetrahedron 510 containing a target colour 501. Figure 6 illustrates the vertices 611, 612, 613, 614 of the first gamut tetrahedron 510 containing the target colour 501. Each vertex is a component colour which is combinable with the other vertices in a range of proportions to form any of the colours contained inside the first gamut tetrahedron 510. Figure 7 similarly illustrates a single gamut-tetrahedron 700 with vertices 711, 712, 713, 714, containing a target colour 701. In order to display target colour 701, the component colours at the four vertices can be combined as effective primaries. The mixing proportions of the four vertex component colours are chosen to have the respective barycentric weights 715, 716, 717, 718 which are required to arrive at the target colour 701. In use, when the display device receives a signal indicating a target colour to be displayed at a first pixel location on the display device, the display device interrogates a database to find which gamut tetrahedron contains the target colour. Once this is known, the database informs the display device of the component colours representing the tetrahedron vertices. The database also contains information indicating the barycentric weights in which the component colours should be mixed in order to display the target colour as an average. The first variable-wavelength LED pixel at the first pixel location is field-sequentially driven to form one of the component colours using two of the available primaries, emitted in two respective subframes. The required luminance for display is determined according to embodiments described herein. Luminance control may be applied to the primaries emitted in one or more of the subframes. As the component colour displayed by the first variable- wavelength LED pixel is not exactly the same as the target colour, this colour-error is propagated to other pixels which are close to the first pixel location. Thus other pixels in the same pixel neighbourhood as the first pixel location are driven to emit the three component colours at the other three vertices of the same tetrahedron. The actual colours displayed by the pixels in the neighbourhood are thus spatially dithered between multiple close-together pixels, so that the colour-error is diffused across the neighbourhood, and an observer at a normal viewing distance sees only the spatio- temporal average which is the target colour. Thus the four component colours corresponding to the tetrahedron vertices are used as the “effective primaries” or “pseudo-primaries” for forming the spatially-dithered target colour using multiple pixels in the same neighbourhood. Each of those pseudo-primary component colours, however, is itself formed by sequential-emission of two primary wavelengths by a single pixel. Figure 8 illustrates an example in which only one bit of greyscale is used, thereby simplifying the process as no luminance control is required. As shown in Figure 8, the yellow and blue primaries do not perfectly add to the white point, because they were chosen arbitrarily. There is therefore no linear combination that can make this choice of yellow / blue primaries sum to white. Despite this, the correct white colour is obtained on average. Neighbouring pixels compensate for any error. Figure 9 illustrates a 2x3 pixel neighbourhood containing a first pixel 900, in which the error in the colour displayed by the first pixel is diffused to other neighbouring pixels in the same pixel neighbourhood. Neighbouring pixels need not be directly-adjacent to one another, but may be positioned diagonally across the array, for example. This technique will also account for spatial variations in wavelength due to e.g. manufacturing variations. In the same way, any colour error due to wavelength variations will be handled by the algorithm (as long as the wavelength error is known). Figures 10a and 10b illustrate two subframes which are integrated to form one frame illustrated in Figure 10c in an embodiment using only one bit of greyscale. In this example, a display has six primaries with one bit of greyscale, each of which can be shown in one of two frames. Figures 11a to 11d illustrated an embodiment having N=3 primaries, consisting of red, green, and blue, with arbitrary greyscale across one frame having three subframes. Each of the primaries can be shown in any one of three subframes that integrate to one video frame. In this example, the display is capable of showing 4 bits in red and green, but only 2 in blue. Figures 11a to 11c illustrated that displayed following the modified Floyd-Steinberg algorithm described herein for each of the primaries red, green, and blue respectively. Figure 11d illustrates the time-integrated result of the three subframes into one frame. Figures 12a to 12c illustrates an embodiment in which N=3, the primaries consisting of red, green, and blue, with arbitrary greyscale, applied across two frames providing an additional temporal-averaging aspect to the display. Each of the frames comprises three subframes as in the embodiment of Figures 11a to 11d. In this example, a field-sequential display has one bit in red, one bit in green, and one bit in blue, but employs two frames to form the image. Figures 12a and 12b illustrate the sequentially shown frames, each having one bit per pixel, with Figure 12c illustrating the time integrated result having more than one bit per pixel. Figures 13a to 13c illustrate an embodiment having N primaries, and in this example 6 primaries corresponding to red, green, blue, cyan, magenta, and yellow, with arbitrary greyscale, and applied to two sequential frames each comprising two subframes. In this example, it is not possible to form white unless using a two-frame combination. In addition, it is specified that the display is only capable of four bits per pixel in this example. Figures 13a and 13b illustrate sequential frames, with Figure 13c illustrating the integrated result over the two frames of Figures 13a and 13b. The result illustrates clearly that the algorithm behaves as expected.

Claims

CLAIMS:

1. A method of displaying a colour on a display device comprising a plurality of variable-wavelength LED pixels: the display device being programmed to operate using a palette of N available primaries, each of the N available primaries being a wavelength emittable by the variable- wavelength LED pixels, the N available primaries defining a color gamut of a plurality of displayable colours, the display device comprising a pixel neighbourhood including a plurality of pixels, one of the pixels within the pixel neighbourhood being located at a first pixel location, the method comprising: identifying a target colour to be displayed at the first pixel location of a frame comprising two or more sequential subframes; determining an error-modified pixel value of each pixel within the pixel neighbourhood for each subframe of the two or more subframes based on the target colour and a received propagated error for each pixel location within the pixel neighbourhood; determining a dithered pixel value of each pixel within the pixel neighbourhood for each subframe of the two or more subframes based on the corresponding error-modified pixel values; determining a luminance value corresponding to the target colour for each dithered pixel value; and approximating the target colour as a combination of component colours by driving a plurality of variable-wavelength LED pixels in the pixel neighbourhood to display a component colour of the component colours in each sequential subframe of the two or more subframes, by driving each of the plurality of variable-wavelength pixels to emit one of the N available primaries during each sequential subframe of the two or more subframes based on the determined dithered pixel values and the luminance values, such that each component colour is displayed by spatial dithering of the primaries emitted by the plurality of pixels in each sequential subframe.

2. The method of claim 1, in which the target colour is not producible by a linear combination of two of the available N primaries.

3. The method of claim 1 or claim 2, in which each of the dithered pixel values is a colour producible by a linear combination of two of the available N primaries.

4. The method of any of claims 1 to 3, in which the component colours are combined as pseudo-primaries which combine to form the target colour, each of the component colours itself being based on the dithered pixels values each being a combination of two of the available N primaries.

5. The method of any preceding claim, in which each component colour is produced by a sequential combination of two of the N available primaries.

6. The method of any preceding claim, in which the step of driving the variable- wavelength LED pixels comprises sequentially driving the variable-wavelength LED pixels to display a component colour by emitting two primary wavelengths during the two sequential subframes.

7. The method of any preceding claim, in which the component colours displayed by variable-wavelength LED pixels neighbouring the first pixel compensate for the wavelength difference between the target colour and the component colour emitted by the first variable- wavelength LED pixel at the first pixel location.

8. The method of any preceding claim, in which the method comprises sequentially driving the variable-wavelength LED pixels to display a respective component colour by emitting two primary wavelengths during two sequential subframes.

9. The method of any preceding claim, wherein the luminance value corresponding to the target colour for each dithered value is determined based on a rounding to a quantized nearest available greyscale.

10. The method of claim 9 wherein the rounding to the quantized nearest available greyscale is based on a number of greyscale bits available in each channel producible by the display corresponding to each primary.

11. The method of any preceding claim, further comprising identifying a plurality of displayable component colours in the colour gamut which are combinable to display the target colour.

12. The method of any preceding claim, wherein the determining the dithered pixel values comprises consulting a database in which the colour gamut is tetrahedralized, and identifying a tetrahedron containing the target colour from a plurality of tetrahedrons associated with the tetrahedralized colour gamut, in which each dithered pixel value corresponds to a vertex of the gamut tetrahedron containing the target colour.

13. The method of claim 12, in which each of the vertices of the plurality of tetrahedrons are displayable component colours which are producible by a combination of two of the available N primaries.

14. The method of claim 12 or claim 13, wherein each tetrahedron of the plurality of tetrahedrons has four vertices and encompasses a plurality of displayable colours, such that any given target colour in the colour gamut is positioned inside one gamut tetrahedron and is producible by a unique combination of the component colours at the vertices of that tetrahedron.

15. The method of any of claims 12 to 14, wherein the tetrahedralized colour gamut is normalized such that each primary is normalized to have a luminance of one.

16. The method of claim 15 wherein the approximating the target colour as a combination of component colours comprises: determining a first component colour as a first normalised primary and determining a corresponding luminance; determining a second component colour as a second normalised primary and determining a corresponding luminance; and approximating the target colour as a combination of the first normalized primary and the second normalized primary each scaled by the corresponding luminance.

17. The method of claim 18, wherein the determining the first component colour as the first normalised primary comprises, for each pixel of the pixel neighbourhood: normalizing the associated error-modified pixel value of a first subframe of the two or more subframes to have a luminance of one; identifying a tetrahedron from a plurality of tetrahedrons associated with the tetrahedralized colour gamut based on a determination that the tetrahedron encloses a location of the normalized pixel value of the first subframe; expressing the normalized pixel value of the first subframe as a barycentric combination of vertices of the tetrahedron; anddetermining a vertex associated with a maximum barycentric weight of the location of the normalized pixel value of the first subframe as the first normalized primary.

18. The method of claim 17, wherein the determining the second component colour as the second normalised primary comprises, for each pixel of the pixel neighbourhood: normalizing the error-modified pixel value of a second subframe of the two or more subframes to have a luminance of one; identifying a second tetrahedron from the plurality of tetrahedrons associated with the colour gamut based on a determination that the second tetrahedron encloses a location of the normalized pixel value of the second subframe; expressing the normalized pixel value of the second subframe as a barycentric combination of vertices of the second tetrahedron; and determining a vertex associated with a maximum barycentric weight of the location of the normalized pixel value of the second subframe as the second normalized primary.

19. The method of claim 18, wherein the second normalized primary is determined at least in part based on the first normalized primary.

20. The method of any of claims 1 to 14 wherein the N primaries consists of three primaries corresponding to red, blue, and green.

21. The method of claim 20 wherein the two or more subframes comprises three subframes.

22. The method of any preceding claim, wherein determining the luminance values comprises defining a least significant bit, LSB, for each primary based on a number of greyscale bits available in a channel producible by the display corresponding to each primary.

23. The method of claim 22 wherein the least significant bit, LSB, for each primary is determined by: ^ ^^^ =^^^^, where n is the number of available greyscale bits in a corresponding channel producible by the display.

24. The method of any of claims 15 to 19, wherein the luminance value, ^, is determined by:where floor is a floor operator, ^(^^^) is the luminance of the error modified pixel value, ^(^′^^^) is the luminance of the dithered pixel value, and LSB is a least significant bit for each primary based on a number of greyscale bits available in a channel producible by the display corresponding to each primary.

25. The method of any preceding claim, wherein the frame is a first frame, and the identifying the target colour for the frame comprises identifying the target colour for the first frame and a sequential second frame comprising two or more sequential subframes.

26. The method of claim 25 wherein the approximating the target colour as a combination of component colours by driving a plurality of variable-wavelength LED pixels in the pixel neighbourhood to display a component colour of the component colours in each sequential subframe of the two or more subframes of the first frame further comprises: driving each of the plurality of variable-wavelength pixels to emit one of the N available primaries during each sequential subframe of the two or more subframes of the second frame based on the determined dithered pixel values and the luminance values, such that the primaries emitted by different variable-wavelength LED pixels in the two sequential subframes across the first frame and the second frame temporally-average to form the respective component colours.

27. The method of claim 26 or claim 27, wherein the determining the error-modified pixel values for each pixel of the neighbourhood of pixels comprises determining an error- modified pixel value for each pixel of the neighbourhood of pixels in the second frame, an error in the error-modified values for the first frame being propagated into the determination of the error-modified values for corresponding pixels in the second frame by a dithering algorithm.

28. The method of any of claims 25 to 27 wherein the approximating the target colour comprises forming a temporal average of the target colour between the approximated target colour of the first frame and the subsequent second frame based on an error diffused between subsequent frames.

29. The method of any of any preceding claim, further comprising splitting each error- modified pixel value into a whole part and a fractional remainder, the fractional remainder being within the colour gamut and the dithered pixel values being determined based on the fractional remainder of the error-modified pixel values.

30. The method of any preceding claim, wherein the received propagated error is propagated to each pixel of the neighbourhood of pixels from neighbouring pixels using a dithering algorithm.

31. The method of claim 30 wherein the dithering algorithm is a modified Floyd- Steinberg algorithm.

32. The method of any preceding claim further comprising determining whether each of the error-modified pixel values falls within a three-dimensional colour space defined by the colour gamut.

33. The method of claim 32 wherein the determining whether each of the error-modified pixel values falls within the determined colour gamut comprises: determining a set of triangles forming a convex hull of the colour gamut; and comparing the error-modified pixel values against a surface normal of each triangle in the set of triangles.

34. The method of claim 32 or 33 further comprising, if it is determined that an error- modified pixel value of the error-modified pixel values does not fall within the colour gamut, applying an operator to the error-modified pixel value to project the error-modified pixel value onto the surface of the colour gamut.

35. The method of claim 34 wherein applying the operator comprises computing an intersection of a projection line with the colour gamut, the projection line having a first point at the error-modified pixel value falling outside of the colour gamut, and a second point inside the colour gamut, wherein the intersection lies on the surface of the colour gamut and the associated dithered pixel value is determined based on the value at the intersection.

36. The method of any preceding claim, wherein the pixel neighbourhood is a 2x3 array of pixels containing the first pixel at the first pixel location.

37. The method of any preceding claim, further comprising the steps of: assigning xy coordinates to the pixels in the pixel neighbourhood such that the first pixel location has coordinates (x,y) = (1,1); assigning a target colour, pxy, to be displayed at the first pixel location (x,y) = (1,1); determining the error-modified pixel value, uxy, for the first pixel location, the error- modified pixel value uxycorresponding to an error-modified colour to be displayed at the first pixel location.

38. The method of claim 37, wherein the error-modified pixel value uxy is configured to be uxy = pxy + E * w, wherein * is a two-dimensional convolution, E is the error matrix for the pixel neighbourhood containing the first pixel location, and w are error diffusion weights for the pixels in the pixel neighbourhood.

39. The method of claim 37, wherein the error matrix for the pixel neighbourhood is defined as ^ = ^^:^^^,^:^^^.; and in which the error matrix, exy, is set to zero at the first pixel location.

40. A display device comprising a plurality of variable-wavelength LED pixels, the display device being programmed to operate using a palette of N available primaries, each of the N available primaries being a wavelength emittable by the variable- wavelength LED pixels, the N available primaries defining a color gamut of a plurality of displayable colours, the display device comprising a pixel neighbourhood including a plurality of pixels, one of the pixels within the pixel neighbourhood being located at a first pixel location, the display device being configured to: identify a target colour to be displayed at the first pixel location of a frame comprising two or more sequential subframes; determine an error-modified pixel value of each pixel within the pixel neighbourhood for each subframe of the two or more subframes based on the target colour and a received propagated error for each pixel location within the pixel neighbourhood; determine a dithered pixel value of each pixel within the pixel neighbourhood for each subframe of the two or more subframes based on the corresponding error-modified pixel values; determine a luminance value corresponding to the target colour for each dithered pixel value; and approximate the target colour as a combination of component colours by driving a plurality of variable-wavelength LED pixels in the pixel neighbourhood to display acomponent colour of the component colours in each sequential subframe of the two or more subframes, by driving each of the plurality of variable-wavelength pixels to emit one of the N available primaries during each sequential subframe of the two or more subframes based on the determined dithered pixel values and the luminance values, such that each component colour is displayed by spatial dithering of the primaries emitted by the plurality of pixels in each sequential subframe 41. The device of claim 40, in which the target colour is not producible by a linear combination of two of the available N primaries.

42. The device of claim 40 or claim 41, in which each of the dithered pixel values is a colour producible by a linear combination of two of the available N primaries.

43. The device of any of claims 40 to 42, in which the component colours are combined as pseudo-primaries which combine to form the target colour, each of the component colours itself being based on the dithered pixels values each being a combination of two of the available N primaries.

44. The device of any of claims 40 to 43, in which each component colour is produced by a sequential combination of two of the N available primaries.

45. The device of any of claims 40 to 44, in which the device is further configured to sequentially drive the variable-wavelength LED pixels to display a component colour by emitting two primary wavelengths during the two sequential subframes.

46. The device of any of claims 40 to 45, in which the component colours displayed by variable-wavelength LED pixels neighbouring the first pixel compensate for the wavelength difference between the target colour and the component colour emitted by the first variable- wavelength LED pixel at the first pixel location.

47. The device of any of claims 40 to 47, in which the device is further configured to sequentially drive the variable-wavelength LED pixels to display a respective component colour by emitting two primary wavelengths during two sequential subframes.

48. The device of any of claims 40 to 47, wherein the device is further configured to determine the luminance value corresponding to the target colour for each dithered value based on a rounding to a quantized nearest available greyscale.

49. The device of claim 48 wherein the rounding to the quantized nearest available greyscale is based on a number of greyscale bits available in each channel producible by the display corresponding to each primary.

50. The device of any of claims 40 to 49, wherein the device is further configured to identify a plurality of displayable component colours in the colour gamut which are combinable to display the target colour.

51. The device of any preceding claim, wherein the device is further configured to consult a database in which the colour gamut is tetrahedralized, and identify a tetrahedron containing the target colour from a plurality of tetrahedrons associated with the tetrahedralized colour gamut, in which each dithered pixel value corresponds to a vertex of the gamut tetrahedron containing the target colour.

52. The device of claim 51, in which each of the vertices of the plurality of tetrahedrons are displayable component colours which are producible by a combination of two of the available N primaries.

53. The device of claim 51 or claim 52, wherein each tetrahedron of the plurality of tetrahedrons has four vertices and encompasses a plurality of displayable colours, such that any given target colour in the colour gamut is positioned inside one gamut tetrahedron and is producible by a unique combination of the component colours at the vertices of that tetrahedron.

54. The device of any of claims 51 to 53, wherein the tetrahedralized colour gamut is normalized such that each primary is normalized to have a luminance of one.

55. The device of claim 54 wherein the device is further configured to approximate the target colour as a combination of component colours by: determining a first component colour as a first normalised primary and determining a corresponding luminance; determining a second component colour as a second normalised primary and determining a corresponding luminance; and approximating the target colour as a combination of the first normalized primary and the second normalized primary each scaled by the corresponding luminance.

56. The device of claim 55, wherein the device is further configured to determine the first component colour as the first normalised primary by, for each pixel of the pixelneighbourhood: normalizing the associated error-modified pixel value of a first subframe of the two or more subframes to have a luminance of one; identifying a tetrahedron from a plurality of tetrahedrons associated with the tetrahedralized colour gamut based on a determination that the tetrahedron encloses a location of the normalized pixel value of the first subframe; expressing the normalized pixel value of the first subframe as a barycentric combination of vertices of the tetrahedron; and determining a vertex associated with a maximum barycentric weight of the location of the normalized pixel value of the first subframe as the first normalized primary.

57. The device of claim 56, wherein the device is further configured to determine the second component colour as the second normalised primary by, for each pixel of the pixel neighbourhood: normalizing the error-modified pixel value of a second subframe of the two or more subframes to have a luminance of one; identifying a second tetrahedron from the plurality of tetrahedrons associated with the colour gamut based on a determination that the second tetrahedron encloses a location of the normalized pixel value of the second subframe; expressing the normalized pixel value of the second subframe as a barycentric combination of vertices of the second tetrahedron; and determining a vertex associated with a maximum barycentric weight of the location of the normalized pixel value of the second subframe as the second normalized primary.

58. The device of claim 57, wherein the device is further configured to determine the second normalized primary at least in part based on the first normalized primary.

59. The device of any of claims 40 to 53 wherein the N primaries consists of three primaries corresponding to red, blue, and green.

60. The device of claim 59 wherein the two or more subframes comprises three subframes.

61. The device of any of claims 40 to 60, wherein the device is further configured to determine the luminance values by defining a least significant bit, LSB, for each primary based on a number of greyscale bits available in a channel producible by the display corresponding to each primary.

62. The device of claim 61 wherein the device is further configured to determine the least significant bit, LSB, for each primary by: ^ ^^^ =^^^^, where n is the number of available greyscale bits in a corresponding channel producible by the display.

63. The method of any of claims 54 to 58, wherein the luminance value, ^, is determined by:where floor is a floor operator, ^(^^^) is the luminance of the error modified pixel value, ^(^′^^^) is the luminance of the dithered pixel value, and LSB is a least significant bit for each primary based on a number of greyscale bits available in a channel producible by the display corresponding to each primary.

64. The device of any of claims 40 to 63, wherein the frame is a first frame, and the device is further configured to identify the target colour for the first frame and a sequential second frame comprising two or more sequential subframes.

65. The device of claim 64 wherein the device is further configured to approximate the target colour as a combination of component colours by also driving each of the plurality of variable-wavelength pixels to emit one of the N available primaries during each sequential subframe of the two or more subframes of the second frame based on the determined dithered pixel values and the luminance values, such that the primaries emitted by different variable-wavelength LED pixels in the two sequential subframes across the first frame and the second frame temporally-average to form the respective component colours.

66. The device of claim 64 or claim 65, wherein the device is further configured to determine an error-modified pixel value for each pixel of the neighbourhood of pixels in the second frame, an error in the error-modified values for the first frame being propagated into the determination of the error-modified values for corresponding pixels in the second frame by a dithering algorithm.

67. The device of any of claims 64 to 66, wherein the device is further configured to approximate the target colour by forming a temporal average of the target colour between the approximated target colour of the first frame and the subsequent second frame based on an error diffused between subsequent frames.

68. The device of any of claims 40 to 67, wherein the device is further configured to split each error-modified pixel value into a whole part and a fractional remainder, the fractional remainder being within the colour gamut and the device being configured to determine the dithered pixel values based on the fractional remainder of the error-modified pixel values.

69. The device of any of claims 40 to 68, wherein the device is further configured to propagate the received propagated error to each pixel of the neighbourhood of pixels from neighbouring pixels using a dithering algorithm.

70. The device of claim 69, wherein the dithering algorithm is a modified Floyd- Steinberg algorithm.

71. The device of any of claims 40 to 70, wherein the device is further configured to determine whether each of the error-modified pixel values falls within a three-dimensional colour space defined by the colour gamut.

72. The device of claim 71, wherein the device is further configured to determine whether each of the error-modified pixel values falls within the determined colour gamut by: determining a set of triangles forming a convex hull of the colour gamut; and comparing the error-modified pixel values against a surface normal of each triangle in the set of triangles.

73. The device of claim 71 or 72, wherein the device is further configured to, if it is determined that an error-modified pixel value of the error-modified pixel values does not fall within the colour gamut, apply an operator to the error-modified pixel value to project the error-modified pixel value onto the surface of the colour gamut.

74. The device of claim 73, wherein the device is further configured to apply the operator by computing an intersection of a projection line with the colour gamut, the projection line having a first point at the error-modified pixel value falling outside of the colour gamut, and a second point inside the colour gamut, wherein the intersection lies onthe surface of the colour gamut and the device is further configured to determine the associated dithered pixel value based on the value at the intersection.

75. The device of any of claims 40 to 74, wherein the pixel neighbourhood is a 2x3 array of pixels containing the first pixel at the first pixel location.

76. The device of any of claims 40 to 75 claim, wherein the device is further configured to: assign xy coordinates to the pixels in the pixel neighbourhood such that the first pixel location has coordinates (x,y) = (1,1); assign a target colour, pxy, to be displayed at the first pixel location (x,y) = (1,1); determine the error-modified pixel value, uxy, for the first pixel location, the error- modified pixel value uxy corresponding to an error-modified colour to be displayed at the first pixel location.

77. The device of claim 76, wherein the error-modified pixel value uxy is configured to be uxy = pxy + E * w, wherein * is a two-dimensional convolution, E is the error matrix for the pixel neighbourhood containing the first pixel location, and w are error diffusion weights for the pixels in the pixel neighbourhood.

78. The device of claim 77, wherein the error matrix for the pixel neighbourhood is defined as ^ = ^^:^^^,^:^^^.; and in which the error matrix, exy, is set to zero at the first pixel location.

Citation Information

Patent Citations

  • Vector dithering for displays employing subfields having unevenly spaced gray scale values

    US20170278447A1

  • Method and apparatus for rendering color images

    US20220139341A1

  • Variable-wavelength light emitting diode, display device with the same, method of controlling said LED, and method of manufacturing a variable-wavelength LED

    WO2023007174A1