Patent Description:
<CIT> discloses achieving improved color image display accuracy across a computer network by obtaining information characterizing the color response of display devices associated with a client residing on the computer network, and using the information to modify color images delivered to the client.

<CIT> discloses that in a remote access environment that includes a server, a client device may remotely access, e.g., medical images from the server and may be provided with a mechanism to retrieve a test image, such as the TG-<NUM> CT or TG-<NUM> MP sample test patterns. The client device communicates display size information to the server, which generates the test image on-the-fly for the particular display size of the client device.

<CIT> discloses a display controller which displays, on a display device, a color to be adjusted used to adjust a display color, and a plurality of candidate colors which define a first color range including the color to be adjusted, all of which are instructed by a user. A selector selects one of the plurality of candidate colors based on a user instruction.

<CIT> discloses a graphical user interface which provides for interactively modifying, on the user's display, the appearance of a palette of colors on one or more hardcopy output devices. The interface provides a graphical representation of a color space in a color space window on the user's display and draws each color in the palette in its current location in the color space, thereby showing the relationship of each color in the palette with other colors in the palette.

The following presents a simplified summary of one or more implementations in order to provide a basic understanding of such implementations. This summary is not an extensive overview of all contemplated implementations, and is intended to neither identify key or critical elements of all implementations nor delineate the scope of any or all implementations. Its sole purpose is to present some concepts of one or more implementations in a simplified form as a prelude to the more detailed description that is presented later.

In an example, a method for determining an effective color space of a display is provided. The method includes obtaining information of the display and determining a color volume of the display based on the information of the display; defining, for at least one color volume vertex, a two-dimensional parametric surface that intersects the color volume of the display; mapping, for the at least one color volume vertex, the two-dimensional parametric surface to a flat bitmap at least in part by mapping, via a parametric equation, color space parameters corresponding to the two-dimensional parametric surface to pixel locations of the flat bitmap and applying one or more filters to convert collections of neighboring pixels to discrete color blocks; displaying, on the display and for the at least one color volume vertex, the flat bitmap; displaying, on the display, a prompt for a selection of the point of the flat bitmap where the color blocks look the same or begin to look the same; receiving, for the at least one color volume vertex and based on the prompt, a selection by a user of a point on the flat bitmap that corresponds to a perceived maximum color; and determining, based at least in part on the perceived maximum color selected for at least one color volume vertex, the effective color space of the display. The effective color space of the display is transmitted to a source for the source to render images based on the effective color space.

In another example, a device for determining an effective color space of a display is provided that includes a memory storing one or more parameters or instructions for determining the effective color space of the display, and at least one processor coupled to the memory. The at least one processor is configured to obtain information of the display and determine a color volume of the display based on the information of the display; define, for at least one color volume vertex, a two-dimensional parametric surface that intersects the color volume of the display; map, for the at least one color volume vertex, the two-dimensional parametric surface to a flat bitmap at least in part by mapping, via a parametric equation, color space parameters corresponding to the two-dimensional parametric surface to pixel locations of the flat bitmap and apply one or more filters to convert collections of neighboring pixels to discrete color blocks; display, on the display and for the at least one color volume vertex, the flat bitmap; display, on the display, a prompt for a selection of the point of the flat bitmap where the color blocks look the same or begin to look the same; receive, for the at least one color volume vertex and based on the prompt, a selection by a user of a point on the flat bitmap that corresponds to a perceived maximum color, and determine, based at least in part on the perceived maximum color selected for the at least one color volume vertex, the effective color space of the display.

In another example, a non-transitory computer-readable medium including code executable by one or more processors for determining an effective color space of a display is provided. The code includes code for obtaining information of the display and determining a color volume of the display based on the information of the display; defining, for at least one color volume vertex, a two-dimensional parametric surface that intersects the color volume of the display; mapping, for the at least one color volume vertex, the two-dimensional parametric surface to a flat bitmap at least in part by mapping, via a parametric equation, color space parameters corresponding to the two-dimensional parametric surface to pixel locations of the flat bitmap and applying one or more filters to convert collections of neighboring pixels to discrete color blocks; displaying, on the display and for the at least one color volume vertex, the flat bitmap; displaying, on the display, a prompt for a selection of the point of the flat bitmap where the color blocks look the same or begin to look the same; receiving, for the at least one color volume vertex and based on the prompt, a selection by a user of a point on the flat bitmap that corresponds to a perceived maximum color, and determining, based at least in part on the perceived maximum color selected for the at least one color volume vertex, the effective color space of the display.

To the accomplishment of the foregoing and related ends, the one or more implementations comprise the features hereinafter fully described and particularly pointed out in the claims. The following description and the annexed drawings set forth in detail certain illustrative features of the one or more implementations. These features are indicative, however, of but a few of the various ways in which the principles of various implementations may be employed, and this description is intended to include all such implementations and their equivalents.

In some instances, well-known components are shown in block diagram form in order to avoid obscuring such concepts.

This disclosure describes various examples related to determining an effective color space of a display. In particular, the various examples allow for determining the effective color space in multiple dimensions without using special equipment. The effective color space may refer to a range of colors a display is capable of effectively displaying (e.g., the range of colors the display can distinctly display), and may be represented over multiple dimensions (e.g., a three-dimensional cube). For example, for one or more color volume vertices, a two-dimensional parametric surface that intersects the full three-dimensional color volume defined for the display can be determined, and a representative flat bitmap can be displayed. A color volume vertex can be defined to include a color primary (e.g., red, blue, green), white point, black point, or similar extrema on the outer surface of the color volume for a display. In addition, the color volume vertex may include a point within the color volume that exhibits a similar color behavior change, such as the maximum <NUM> percent window white point, sometimes referred to as Society of Motion Picture and Television Engineers (SMPTE) standard (ST). <NUM> Maximum Frame Average Light Level (MaxFALL). For a given color volume vertex, a selection of a point on the flat bitmap that corresponds to a perceived maximum color can be received. The effective color space for the display can be determined based on the selected points for each color volume vertex. This can allow a user to quickly measure the effective color space for the display by selecting the point(s) on the flat bitmap(s) for the one or more color volume vertices without special equipment. The selected point(s) can be mapped back to maximum color value(s) for determining the effective color space, which can be provided to a source to optimize display of one or more images based on the effective color space of the display. In addition, using two parameterized dimensions for determining the effective color space, in this regard, can account for more variance represented between color channels, as compared to single-dimension color patch approaches.

In an example, the color volume vertices can include at least one red color primary, at least one green color primary, at least one blue color primary, at least one white point (e.g., for luminance), and/or at least one black point. Using the multiple color volume vertices can allow for mapping a three-dimensional color volume for a display to multiple two-dimensional patterns that can be used to identify relevant saturation points for each of the color volume vertices. In a specific example, for each color volume vertex, the two-dimensional test pattern can be defined by a parametric equation for the color volume vertex based on holding one dimension constant (e.g., constant luminance for red, green, blue primaries). In a more sophisticated example, for the white point and black point, the two-dimensional test pattern can be defined by a parametric equation that varies the correlated color temperature (CCT) in one dimension and luminance in the other. In addition, the two-dimensional patterns are mapped to a flat bitmap based on applying a filter to convert collections of neighboring pixels into discrete color blocks. A user can view each of the flat bitmaps and can select a point where the colors appear to converge or are perceived to be indistinguishable, which can be representative of the maximum color saturation achieved by the display. This selected point can be mapped back to the maximum color saturation for the given color volume vertex and can be used to determine and/or report an effective color space for the display.

Turning now to <FIG>, examples are depicted with reference to one or more components and one or more methods that may perform the actions or operations described herein, where components and/or actions/operations in dashed line may be optional. Although the operations described below in <FIG> are presented in a particular order and/or as being performed by an example component, the ordering of the actions and the components performing the actions may be varied, in some examples, depending on the implementation. Moreover, in some examples, one or more of the actions, functions, and/or described components may be performed by a specially-programmed processor, a processor executing specially-programmed software or computer-readable media, or by any other combination of a hardware component and/or a software component capable of performing the described actions or functions.

<FIG> is a schematic diagram of an example of a device <NUM> (e.g., a computing device) that determine an effective color space of a display. In an example, device <NUM> can include a processor <NUM> and/or memory <NUM> configured to execute or store instructions or other parameters related to providing an operating system <NUM>, which can execute one or more applications, services, etc. For example, processor <NUM> and memory <NUM> may be separate components communicatively coupled by a bus (e.g., on a motherboard or other portion of a computing device, on an integrated circuit, such as a system on a chip (SoC), etc.), components integrated within one another (e.g., processor <NUM> can include the memory <NUM> as an on-board component <NUM>), and/or the like. Memory <NUM> may store instructions, parameters, data structures, etc., for use/execution by processor <NUM> to perform functions described herein.

In addition, for example, device <NUM> may be communicatively coupled to one or more displays, such as display <NUM>, which may include liquid crystal display (LCD) devices, light emitting diode (LED) LCD devices (e.g., having an LED backlight), digital light processing (DLP) display, or substantially any scene-referred color space display having an effective color space that can, for example, be determined based on luminance and chrominance values. The display <NUM> can display images generated and provided by the device <NUM> via operating system <NUM>, applications executing thereon, etc., as described further herein. In an example, the display <NUM> may be one or more displays in a display device, that may include additional hardware components (not shown) to facilitate displaying images, such as one or more display ports, a memory, a backlight, a timing controller, and/or the like.

The one or more applications, services, etc. executing on the operating system <NUM> may include a color space determining component <NUM> for determining an effective color space of a display, an optional image source <NUM> for generating images to be displayed on the display <NUM> based on the effective color space, and/or a display driver <NUM> for communicating image data from device <NUM> to the display <NUM> (e.g., via a display interface and/or display port, which are not shown). In an example, color space determining component <NUM> can include a color volume determining component <NUM> for determining a three-dimensional color space that the display <NUM> may be capable of displaying (e.g., a color space that is at least as deep as the effective color space), a bitmap component <NUM> for generating a flat bitmap representative of a two-dimensional parametric surface of the three-dimension color space for displaying on the display <NUM>, and/or a max color component <NUM> for determining a maximum color observed in the flat bitmap via display <NUM>. Using this information for one or more of a set of color volume vertices, color space determining component <NUM> can determine at least a portion of an effective color space of the display <NUM>, as described herein.

<FIG> is a flowchart of an example of a method <NUM> for determining an effective color space for a display. For example, method <NUM> can be performed by a device <NUM>, and/or one or more components thereof, to determine an effective color space of a display <NUM>. In addition, in an example, the display <NUM> itself may include the color space determining component <NUM> and/or components thereof to determine its effective color space for reporting to device <NUM>.

In method <NUM>, at action <NUM>, a two-dimensional parametric surface that intersects a three-dimensional color space for a display can be defined for at least one color volume vertex. In an example, color volume determining component <NUM>, e.g., in conjunction with processor <NUM>, memory <NUM>, operating system <NUM>, color space determining component <NUM>, etc., can define, for the at least one color volume vertex, a two-dimensional parametric surface that intersects a color volume defined for the display (e.g., display <NUM>). For example, color space determining component <NUM> can determine the color volume for the display <NUM>, which may be based on information of the display <NUM> that may be obtained from display driver <NUM>. For example, the information may indicate a color depth of the display for displaying images, such as a color volume or range and/or bit depth. For example, the display may be a high dynamic range (HDR) display, which can be capable of HDR color volume (e.g., International Telecommunication Union Recommendation (ITU-R) BT. <NUM> color volume) and a <NUM>-bit bit depth. Other color volumes and/or bit depths can be determined for various other types of displays.

In addition, HDR10 displays also support SMPTE ST <NUM> "Mastering Display Color Volume" static metadata to send color calibration data of the mastering display, such as MaxFALL, Maximum Content Light Level (MaxCLL), and/or other static values encoded as supplemental enhancement information (SEI) messages within the video stream. Determining the effective color space for the display, as described herein, can be used as the metadata, or as a replacement to the metadata, for this standard or related SEI messages, in one example.

In any case, color volume determining component <NUM> can define the two-dimensional parametric surface for a given color volume vertex based on the color volume for the purpose of displaying a wide variety of colors corresponding to the color volume vertex. For example, color volume determining component <NUM> can define the two-dimensional parametric surface based at least on selecting a constant value for one dimension of the three-dimensional color volume and varying values of the other two dimensions. Thus, for example, where the color volume can be represented as a three-dimensional "cube," color volume determining component <NUM> can define the two-dimensional parametric surface as a flat "slice" of the "cube," where the slice can be a two-dimensional layer along the third dimension. For example, the selected slice may additionally or alternatively be at an off-axis angle in the "cube," a curved or otherwise non-flat "slice," a higher-detail selection of the "cube," or substantially any portion of the "cube" that can be reduced to a parametric equation thereof.

In one example, the color volume may use Commission on Illumination (CIE) xyY coordinates: r (u,v)=(x,y,Y). In this example, color space determining component <NUM> may define the two-dimensional parametric surface to have one or more of the following properties: input parameters (u, v) can be defined over the range [<NUM>, <NUM>], and therefore the parametric surface can have four vertices (e.g., corners) and four edges corresponding to the extremes of input parameters (u, v); the vertices of the parametric surface can encompass as many possible colors that correspond to what a display may have for the selected color volume vertex given the color volume - in one example, this can correspond to a set of reasonable display primary values chosen empirically, for example by surveying the color volume vertex values for in-market displays; and no vertex may exceed the signaling color space of the display (e.g. HDR10) - that is, it is possible to encode every point within the parametric surface in the display's signaling color volume. In addition, for example, it may not be possible for a parametric surface to encompass all possible colors for a color volume vertex in a three-dimensional color space volume. Thus, for example, color volume determining component <NUM> can rely on the observation that in-market displays' color volume vertices primarily vary in two independent dimensions, which can be represented by a parametric surface. In one example, the two-dimensional parametric surface for one or more color volume vertices may be determined offline and provided to the color volume determining component <NUM> for generating a flat bitmap for displaying, as described further herein.

In one specific example, color volume determining component <NUM> can define a parametric surface for the red primary as shown in <FIG> illustrates a visual representation of colors perceptible by the human eye <NUM>, along with a definition of the BT. <NUM> color space <NUM> and a definition of the BT. <NUM> color space <NUM> as follows: input parameters (u, v) map to the CIE xyY color space r (u,v)=(x,y,Y). Y (luminance) can be held at a constant value throughout the function, to effectively generate a "slice" of the color space along the xy chromaticity axes. The vertices of the surface in xy space can be: vertex <NUM> (red in the BT. <NUM> color space); vertex <NUM> (projection of the green to red line in the BT. <NUM> color space onto the BT. <NUM> color space boundary); vertex <NUM> (projection of the blue to red line in the BT. <NUM> color space onto the BT. <NUM> color space boundary); and vertex <NUM> (red in the BT. <NUM> color space). This parametric surface can encompass the actual red primary of known HDR10 in-market displays, in one example. Color volume determining component <NUM> can similarly define parametric surfaces for other color volume vertices, such as at least one green primary, at least one blue primary, at least one white point and/or at least one black point, etc. For example, at least one white primary can generally be characterized by luminance (cd/m2) and correlated color temperature (CCT, e.g., in degrees Kelvin) as the two-dimensions for the parametric surface.

In method <NUM>, optionally at action <NUM>, a flat bitmap can be generated, for the at least one color volume vertex, by mapping, via a parametric equation, color space parameters corresponding to the two-dimensional parametric surface to pixel locations of the flat bitmap. In an example, bitmap component <NUM>, e.g., in conjunction with processor <NUM>, memory <NUM>, operating system <NUM>, color space determining component <NUM>, etc., can generate, for the at least one color volume vertex, the flat bitmap by mapping, via the parametric equation, color space parameters corresponding to the two-dimensional parametric surface to pixel locations of the flat bitmap. In an example, bitmap component <NUM> can generate the flat bitmap as a rectangular shape, though the two-dimension parametric surface may have another shape, as described above. In an example, the parametric equation can be used to map the color space parameters of the two-dimensional parametric surface to the flat bitmap, and then also to map a selected point to a corresponding color value in the color space, as described further herein. In an example, the parametric equation can be obtained from memory <NUM> by the bitmap component <NUM>, and can be defined for the given color volume vertex. For example, the parametric equation can be defined to select out a surface maximizing a color dimension from a larger color volume. Similarly, a corresponding parametric surface can be defined to encompass all reasonable valid color values for the color volume vertex and/or can select two independent dimensions that (e.g., by observation/knowledge of the industry) have a high level of variation between different individual displays and models.

<FIG> illustrates an example of a flat bitmap <NUM> of a two-dimensional parametric surface obtained from a three-dimensional color volume. For example, the bitmap <NUM> can represent a two-dimensional "slice" of the three-dimensional color volume "cube" to render as a test pattern focusing on colors for the blue color primary. In an example, bitmap component <NUM> can generate the flat bitmap <NUM> representative of the two-dimensional parametric surface by stretching the surface to fit a resolution of display <NUM>.

In method <NUM>, in generating the flat bitmap at action <NUM>, optionally at action <NUM>, one or more filters can be applied to convert collections of pixels into discrete color blocks. In an example, bitmap component <NUM>, e.g., in conjunction with processor <NUM>, memory <NUM>, operating system <NUM>, color space determining component <NUM>, etc., can apply the one or more filters to convert collections of pixels into discrete color blocks. For example, bitmap component <NUM> can determine the collections of pixels as an N x M block of pixels, where N can be equal or not equal to M, starting from a top or bottom corner of the bitmap and continuing vertically and/or horizontally. For each given collection, in one example, bitmap component <NUM> can apply a single color to all pixels in the collection. This can achieve a pixelization of the flat bitmap, which may allow for easier detection of a certain property in the flat bitmap, such as a pixel or collection of pixels where the color volume vertex converges, as described herein.

In one example, to enhance the ability for the human eye to distinguish differences between colors, bitmap component <NUM> can apply a pixelate filter and/or a quantization filter as follows: each block of N x N pixels (for example, <NUM> by <NUM>) is filled in with the average color for that block, and the values of the colors can be quantized to the nearest number of color values, P. Bitmap component <NUM>, in one example, can tune the parameters N and P to balance between increased precision (e.g., smaller blocks with smaller color differences between blocks) and ease of identifying color differences (e.g., bigger blocks with larger color differences between blocks). An example is illustrated in <FIG>, which additionally depicts a pixelated flat bitmap <NUM> to facilitate more easily identifying the property in the flat bitmap for the blue color primary, such as the pixel or collection of pixels where the color volume vertex converges.

In method <NUM>, at action <NUM>, a flat bitmap to which the two-dimensional parametric surface is mapped can be displayed, on the display and for the at least one color volume vertex. In an example, bitmap component <NUM>, e.g., in conjunction with processor <NUM>, memory <NUM>, operating system <NUM>, color space determining component <NUM>, etc., can display, on the display (e.g., display <NUM>) and for the at least one color volume vertex, the flat bitmap to which the two-dimensional parametric surface is mapped. For example, as described, the flat bitmap can be stretched to fit a resolution of the display <NUM>, and may be displayed in a pixelated form to ease detection of one or more properties of the flat bitmap. In addition, bitmap component <NUM> may display the flat bitmap as part of a calibration process performed for the display, which may be executed by the device <NUM> based on an application or operating system <NUM> process, executed by the display <NUM> as activated on the display <NUM>, and/or the like.

In method <NUM>, at action <NUM>, a selection of a point on the flat bitmap that corresponds to a perceived maximum color can be received for the at least one color volume vertex. In an example, max color component <NUM>, e.g., in conjunction with processor <NUM>, memory <NUM>, operating system <NUM>, color space determining component <NUM>, etc., can receive, for the at least one color volume vertex, the selection of the point on the flat bitmap that corresponds to the perceived maximum color. For example, max color component <NUM> can receive a selection by a user (e.g., using a mouse to navigate to the pixel or collection of pixels representing the maximum color, using a touch panel to select, by touch, the pixel or collection of pixels representing the maximum color, etc.) for each flat bitmap representing each color volume vertex.

For example, the bitmap displayed on the display <NUM> can appear as a spectrum of different hues, similar to a color selecting tool in a paint or drawing application. However, because of the saturation behavior described above, a user may observe that some portion of the bitmap appears as a flat/constant color patch, which can be representative of colors that exceed the physical capabilities of the display <NUM>, and are hence saturated/truncated to the same (nearest) color. In this example, the user can select the point on the flat bitmap that is the visual boundary between the saturated/flat section and the normal/spectrum section, e.g. with a cursor or touch. This boundary point can represent the maximum possible color corresponding to the current color volume vertex.

<FIG> illustrates a monochrome representation of an example of a pixelated flat bitmap <NUM> corresponding to the two-dimensional parametric surface defined in <FIG>. In the example of <FIG>, pixel <NUM> may be selected as the maximum color pixel for an effective color volume vertex before the colors saturate to the same or similar color in different dimensions. Color space determining component <NUM> prompts a user to select the area of the image where the color blocks look the same or begin to look the same, and the user can select the area or point in the image, as described, based on the prompt. Conceptually, the selected point <NUM> can correspond to the intersection of Regions A, B, C, and D in the Figure.

Color space determining component <NUM> can, for example, map the selected area or pixel (or collection of pixels) to a color value displayed, based on the parametric function, that can be considered the maximum red color value. In another example, selection of the pixel or collection of pixels may cause bitmap component <NUM> to create another flat bitmap focused on the collection of pixels corresponding to the selection (e.g., and/or one or more neighboring collection of pixels) for a more granular determination of the maximum color value. In any case, once the maximum color value is selected for one or more intended color volume vertices, color space determining component <NUM> can determine the effective color space based on the various maximum vertices.

In method <NUM>, at action <NUM>, the effective color space for the display can be determined based at least in part on the perceived maximum color selected for the at least one color volume vertex. In an example, color space determining component <NUM>, e.g., in conjunction with processor <NUM>, memory <NUM>, operating system <NUM>, etc., can determine, based at least in part on the perceived maximum color selected for the at least one color volume vertex, the effective color space of the display. For example color space determining component <NUM> can determine the effective color space based at least on a maximum color selected for at least one red primary, at least one green primary, at least one blue primary, at least one white primary, and at least one black primary. In addition, in one example, the at least one white primary can include a ten percent window white point and a <NUM> percent window white point. In any case, color space determining component <NUM> can determine the effective color space for the display <NUM>, or at least a portion of the effective color space (e.g., a luminance, chrominance, etc.) as actual color values representing the maximum color volume vertices, percentages of the actual color values as compared to the color values in the color volume defined for the display <NUM>, and/or the like.

In method <NUM>, optionally at action <NUM>, the effective color space can be reported to a source for rendering images based on the effective color space. In an example, color space determining component <NUM>, e.g., in conjunction with processor <NUM>, memory <NUM>, operating system <NUM>, etc., can report the effective color space of the display (e.g., display <NUM>) to the source (e.g., image source <NUM>) for rendering images based on the effective color space, which may include transmitting the effective color space to the source (e.g., an application executing on device <NUM>). In this regard, the image source <NUM> can consider the effective color space in rendering images for displaying on the display <NUM> such to minimize use of saturated colors in rendering the image. For example, the image source <NUM> may render or otherwise create images or instructions for displaying images to not exceed the maximum colors based on the effective color space. In one example, the image source <NUM> can truncate colors determined to be outside of the effective color space or can adjust colors based on a percentage of the effective color volume to the determined color space. In another example, image source <NUM> can adjust the colors via a tone mapping or gamut mapping operation used in this regard to more accurately render an image for the specific display.

<FIG> illustrates an example of device <NUM>, similar to or the same as device <NUM> (<FIG>) including additional optional component details as those shown in <FIG>. In one implementation, device <NUM> may include processor <NUM>, which may be similar to processor <NUM> for carrying out processing functions associated with one or more of components and functions described herein. Processor <NUM> can include a single or multiple set of processors or multi-core processors. Moreover, processor <NUM> can be implemented as an integrated processing system and/or a distributed processing system.

Device <NUM> may further include memory <NUM>, which may be similar to memory <NUM> such as for storing local versions of applications being executed by processor <NUM>, such as color space determining component <NUM>, an operating system (or other components thereof), applications, related instructions, parameters, etc. Memory <NUM> can include a type of memory usable by a computer, such as random access memory (RAM), read only memory (ROM), tapes, magnetic discs, optical discs, volatile memory, non-volatile memory, and any combination thereof.

Further, device <NUM> may include a communications component <NUM> that provides for establishing and maintaining communications with one or more other devices, parties, entities, etc., utilizing hardware, software, and services as described herein. Communications component <NUM> may carry communications between components on device <NUM> (e.g., display <NUM>), as well as between device <NUM> and external devices, such as devices located across a communications network and/or devices serially or locally connected to device <NUM>. For example, communications component <NUM> may include one or more buses, and may further include transmit chain components and receive chain components associated with a wireless or wired transmitter and receiver, respectively, operable for interfacing with external devices.

Additionally, device <NUM> may include a data store <NUM>, which can be any suitable combination of hardware and/or software, that provides for mass storage of information, databases, and programs employed in connection with implementations described herein. For example, data store <NUM> may be or may include a data repository for applications and/or related parameters (e.g., color space determining component <NUM>, an operating system (or other components thereof), applications, etc.) not currently being executed by processor <NUM>. In addition, data store <NUM> may be a data repository for color space determining component <NUM>, an operating system (or other components thereof), applications, and/or one or more other components of the device <NUM>.

Device <NUM> may include a user interface component <NUM> operable to receive inputs from a user of device <NUM> and further operable to generate outputs for presentation to the user. User interface component <NUM> may include one or more input devices, including but not limited to a keyboard, a number pad, a mouse, a touch-sensitive display, a navigation key, a function key, a microphone, a voice recognition component, a gesture recognition component, a depth sensor, a gaze tracking sensor, a switch/button, any other mechanism capable of receiving an input from a user, or any combination thereof. Further, user interface component <NUM> may include one or more output devices, including but not limited to a display, a speaker, a haptic feedback mechanism, a printer, any other mechanism capable of presenting an output to a user, or any combination thereof.

Device <NUM> may additionally include and/or be communicatively coupled with one or more display devices, such as display <NUM>, and/or a color space determining component <NUM> for determining an effective color volume, as described herein.

Accordingly, in one or more implementations, one or more of the functions described may be implemented in hardware, software, firmware, or any combination thereof. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), and floppy disk where disks usually reproduce data magnetically, while discs reproduce data optically with lasers.

Claim 1:
A method (<NUM>) for determining an effective color space of a display, the method comprising:
obtaining information of the display and determining a color volume of the display based on the information of the display;
defining (<NUM>), for at least one color volume vertex, a two-dimensional parametric surface that intersects the color volume of the display;
mapping (<NUM>), for the at least one color volume vertex, the two-dimensional parametric surface to a flat bitmap at least in part by mapping, via a parametric equation, color space parameters corresponding to the two-dimensional parametric surface to pixel locations of the flat bitmap and applying one or more filters to convert collections of neighboring pixels to discrete color blocks;
displaying (<NUM>), on the display and for at least one color volume vertex, the flat bitmap;
displaying, on the display, a prompt for a selection of the point of the flat bitmap where the color blocks look the same or begin to look the same;
receiving (<NUM>), for at least one color volume vertex and based on the prompt, a selection by a user of a point on the flat bitmap that corresponds to a perceived maximum color;
determining (<NUM>), based at least in part on the perceived maximum color selected for the at least one color volume vertex, the effective color space of the display as a range of colors the display is capable of displaying; and
transmitting (<NUM>) the effective color space of the display to a source for the source to render images based on the effective color space.