The exemplary and non-limiting embodiments of this invention relate generally to systems, methods, devices and computer programs adapted to process graphical and image data and, more specifically, to perform color conversions associated with encoding, composition and presentation, as non-limiting examples.
This section is intended to provide a background or context to the invention that is recited in the claims. The description herein may include concepts that could be pursued, but are not necessarily ones that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, what is described in this section is not prior art to the description and claims in this application and is not admitted to be prior art by inclusion in this section.
Various abbreviations that appear in the specification and/or in the drawing figures are defined as follows:
Many devices are capable of producing colors, for example, mobile phones, PDAs, laptops, digital cameras, TVs, etc. Such devices may comprise input systems (e.g., cameras, illumination sensors, data interfaces, etc.) and output systems (e.g., LCD displays, decorative lights (e.g., LEDs), external displays, televisions displays, etc.), and are capable of producing and representing graphical and image-based content. This content can be represented using any one of various color spaces.
OLED LCDs are capable of displaying more colors than can be represented using conventional RGB-color coding. As a result, it is typically necessary to provide conversions between color spaces (e.g., from sRGB to OLED-LCD color space, etc). In a typical implementation, all content is maintained in sRGB (or Adobe® RGB), and the content is converted to a display or hard copy-specific color space during display refresh and/or printing. In the case of display refresh, the data processing needed for the conversion is required to operate in real time, thereby requiring an efficient implementation. For example, typical color processing requires a 3×3 matrix multiplication with offset addition, and the use of a non-linearization technique, such as one accomplished using LUTs.
Due to new display technologies (as well as camera technologies) the color processing requirements are becoming more complex and these types of data processing techniques may not be adequate.
What is needed are new data processing techniques that are capable of fast and efficient operation for color conversion and related operations.
The below summary section is intended to be merely exemplary and non-limiting.
The foregoing and other problems are overcome, and other advantages are realized, by the use of the exemplary embodiments of this invention.
An exemplary embodiment in accordance with this invention is a method for providing color space conversion. The method included receiving a graphics object. The graphics object includes at least a first component expressed in a first color space and a second component expressed in a second color space. The first color space is distinct/different from the second color space. The method also includes piece-wise converting the graphics object to generate output data expressed in a third color space.
A further exemplary embodiment in accordance with this invention is a computer readable medium encoded with a computer program executable by a processor to perform actions for providing color space conversion. The actions include receiving a graphics object includes a first component expressed in a first color space and a second component expressed in a second color space. The first color space is distinct from the second color space. Piece-wise converting the graphics object to generate output data expressed in a third color space is also included in the actions.
An additional exemplary embodiment in accordance with this invention is an apparatus for providing color space conversion. The apparatus includes an input configured to receive a graphics object. The graphics object includes a first component expressed in a first color space and a second component expressed in a second color space. The first color space is distinct from the second color space. The apparatus also includes a color converter configured to piece-wise convert the graphics object to generate output data expressed in a third color space.
A further exemplary embodiment in accordance with this invention is an apparatus for providing color space conversion. The apparatus includes input means for receiving a graphics object includes a first component expressed in a first color space and a second component expressed in a second color space. The first color space is distinct from the second color space. The apparatus also includes color converter means for piece-wise converting the graphics object to generate output data expressed in a third color space.
The foregoing and other aspects of exemplary embodiments of this invention are made more evident in the following Detailed Description, when read in conjunction with the attached Drawing Figures, wherein:
The exemplary embodiments of this invention provide techniques to enable color processing using a single HW pipeline, as opposed to the use of a plurality of HW pipelines. The exemplary embodiments may be implemented in, as non-limiting examples, a display system, as well as in a graphics system, and are also applicable to a graphics system wherein there is a separate composition engine. The exemplary embodiments apply as well to display systems that support composition and to hard-copy device such as printers.
By way of introduction, a color space conversion procedure may be considered to generally follow the procedure outlined in
An aspect of color processing is an ability to achieve an acceptable (for the application of interest) accuracy for color depth and other calculations. For example, the accuracy should be better than 8-bits per color component (e.g., 16-bits per color component). This implies that the processing requirements are relatively demanding for real time applications (such as for a display refresh application), which further implies that a HW-based implementation can involve a considerable area of silicon in an integrated circuit, as well as memory for buffering various parameters and tables. In any integrated circuit-based implementation the total number of logic circuits needed, and the required die area, are important considerations.
In addition, and referring to
The procedure depicted in
The various procedure depicted in
While color processing is clearly needed in the display system embodiments described in reference to
In general texture mapping, as well as bump mapping and displacement maps, are extensively used in computer graphics in order to achieve photorealistic renderings. In all these techniques, the mapping is typically one-to-one and every object surface location is assigned a single texture color, normal, or displacement. Other specialized techniques have also been developed for the rendering of supplementary surface details such as fur, hair, or scales.
As a graphics accelerator device may not have the same real time operational requirements as a display system, it is possible that there may be only one color processing block at the input side (where each separate texture is processed when input to the graphics accelerator). The input color processing block may be integrated in the graphics accelerator, or it may be a separate module. The output of the graphics accelerator is preferably in some specific color space (such as sRGB or Adobe® RGB, which are currently target standards), and another color processing unit (e.g., color processing unit 52 of
In
In a further embodiment a graphics accelerator may include a separate composition unit which may support one or more input pipes. In this case the architecture may resemble that of the display system shown in
In general there are at least three separate systems where multiple color processing units can be employed:
In addition to the foregoing, there are a number of other applications where color processing is useful. These applications include, but are not limited to, a general color processing unit, an ISP-pipeline, and a video/still image decoder post-processing unit.
More particularly, in the general color processing unit 60 shown in
In the ISP pipeline 70 shown in
In the video/still image decoder post-processing embodiment 80 of
In accordance with the exemplary embodiments of this invention, as opposed to providing an input color processing unit for each pipe (as in
In order to enable this functionality each color processing block 90 supports piece-wise (or area-wise) color processing, as described in
The foregoing disclosed exemplary embodiments are not intended to be read as limiting in any way the number of supported color spaces, or the number or type of “pieces” that may be piece-wise processed in accordance with the invention.
In the exemplary embodiments of this invention the input data may be processed in any suitable manner, such as pixel-by-pixel (in any order) during display refresh, line-by-line, tile-by-tile, or rectangle-by-rectangle, as non-limiting examples. In the case of the improved display controller 32 shown in
First, the composition system is enabled to transfer composition information to the color processing unit 90. This composition information includes at least start and end coordinates for composition surfaces that are expressed in the different color spaces.
Second, the color processing unit 90 is assumed to store, or at least have access to, all necessary color conversion parameters. In the case of transparent composition surfaces, it is possible to either utilize either bottom (underlying) or top (overlying) surface color space, or utilize a combination of top/bottom surface color space conversion in order to achieve a best possible outcome when using only one color conversion.
Third, the color processing unit 90 may be enabled to perform two of more consecutive color conversions during a single composition (e.g., first the bottom surface, then the top surface).
All of the above described enhancements found in the color processing unit 90 are also applicable to graphics accelerator implementations, and to separate composition environments.
Further in this regard
In general, the various embodiments of the graphics accelerator 40 may be implemented as parts of, but are not limited to, printers, scanners, software modules, display modules, camera modules, PDAs, GPUs, etc.)
In the case of texture rendering the graphics accelerator 40′ maintains information for the location of the texture in the overall graphics object. One approach may be to switch between color processing parameters when processing tiles (e.g., 4×4 arrays of pixels).
Based on the foregoing description it can be appreciated that an aspect of this invention is to provide, as shown in
The color processing pipeline 90 is capable of recognizing the continuous regions that represent separate and distinct color spaces in the received bitmap. This may be accomplished in various manners, such as by providing a descriptive data structure separate from the color data to be converted, or by providing the descriptive data inline with the color data to be converted. Communication between the texture input block/composition input block and the color processing pipe may thus be provided, depending on the implementation.
In the case of the graphics system architecture (e.g. as shown in
The use of transparency (and opacity) may also be enabled, as described above.
Reference is made to
In
The PROGs 1318 is assumed to include program instructions that, when executed by the associated DP, enable the device to operate in accordance with exemplary embodiments in accordance with this invention.
Exemplary embodiments in accordance with this invention may be implemented at least in part by computer software executable by the DP 1314 of the UE 1310, or by hardware, or by a combination of software and hardware (and firmware).
The UE 1310 may also include dedicated processors, for example, color space converter 1315.
In general, the various embodiments of the UE 1310 can include, but are not limited to, cellular telephones, personal digital assistants (PDAs) having wireless communication capabilities, portable computers having wireless communication capabilities, image capture devices such as digital cameras having wireless communication capabilities, gaming devices having wireless communication capabilities, music storage and playback appliances having wireless communication capabilities, Internet appliances permitting wireless Internet access and browsing, as well as portable units or terminals that incorporate combinations of such functions.
The computer readable MEM 1316 may be of any type suitable to the local technical environment and may be implemented using any suitable data storage technology, such as semiconductor based memory devices, flash memory, magnetic memory devices and systems, optical memory devices and systems, fixed memory and removable memory. The DP 1314 may be of any type suitable to the local technical environment, and may include one or more of general purpose computers, special purpose computers, microprocessors, digital signal processors (DSPs) and processors based on a multicore processor architecture, as non-limiting examples.
Within the sectional view of
Signals to and from the camera 1428 pass through an image/video processor 1444 which encodes and decodes the various image frames. A separate audio processor 1446 may also be present controlling signals to and from the speakers 1434 and the microphone 1424. The graphical display interface 1420 is refreshed from a frame memory 1448 as controlled by a user interface chip 1450 which may process signals to and from the display interface 1420 and/or additionally process user inputs from the keypad 1422 and elsewhere.
Certain embodiments of the UE 1310 may also include one or more secondary radios such as a wireless local area network radio WLAN 1437 and a Bluetooth® radio 1439, which may incorporate an antenna on-chip or be coupled to an off-chip antenna. Throughout the apparatus are various memories such as random access memory RAM 1443, read only memory ROM 1445, and in some embodiments removable memory such as the illustrated memory card 1447. The various programs 1318 are stored in one or more of these memories. All of these components within the UE 1310 may be powered by a portable power supply such as a battery 1449.
Processors 1438, 1440, 1442, 1444, 1446, 1450, if embodied as separate entities in a UE 1310, may operate in a slave relationship to the main processor 1314, which may then be in a master relationship to them. Embodiments of this invention are most relevant to the graphical display interface 1420 and/or the image/video processor 1444, though it is noted that other embodiments need not be disposed there but may be disposed across various chips and memories as shown or disposed within another processor that combines some of the functions described above for
Note that the various chips (e.g., 1438, 1440, 1442, etc.) that were described above may be combined into a fewer number than described and, in a most compact case, may all be embodied physically within a single-chip.
Based on the foregoing it should be apparent that the exemplary embodiments of this invention provide a method, apparatus and computer program product(s) to process graphics data. Referring to
The method of the preceding paragraph, where at least one of the first and second data is texture data.
The method of the preceding paragraphs, further comprising providing the output data to one of a visual display device operable to display the output data or to a printer operable to print the output data.
The method of the preceding paragraphs, where the certain data is output from a combiner that combines the outputs of a plurality of graphical composition pipes, each operating on input data in one of a plurality of color spaces.
The method of the preceding paragraphs, where piece-wise converting includes the use of transparent composition surfaces.
The method of the preceding paragraphs, where piece-wise converting includes performing a plurality of consecutive color conversions during a single composition.
The method of the preceding paragraphs, where piece-wise converting is accomplished in at least one of a pixel-by-pixel basis, a line-by-line basis, a tile-by-tile, or a rectangle-by-rectangle basis, as non-limiting examples.
The method as shown in
The various blocks shown in
An exemplary embodiment in accordance with this invention is a method for providing color space conversion. The method included receiving a graphics object. The graphics object includes at least a first component expressed in a first color space and a second component expressed in a second color space. The first color space is distinct/different from the second color space. The method also includes piece-wise converting the graphics object to generate output data expressed in a third color space.
In an additional exemplary embodiment of the method above, one or more of the first component and the second component is visual content.
In a further exemplary embodiment of any one of the methods above, the method also includes providing the output data to one of a visual display device, a frame buffer or to a printer.
In an additional exemplary embodiment of any one of the methods above, the method also includes receiving a plurality of graphic data via a plurality of graphical composition pipes, where each pipe provides graphic data expressed in one of a plurality of color spaces. Combining the plurality of graphic data to generate the graphics object is also included.
In a further exemplary embodiment of any one of the methods above, converting includes using transparent composition surfaces.
In an additional exemplary embodiment of any one of the methods above, converting includes performing a plurality of consecutive color conversions during a single composition.
In a further exemplary embodiment of any one of the methods above, the method also includes determining a plurality of sub-regions of the graphics object, where an individual sub-region is expressed in an individual color space; and converting each sub-region to generate output sub-region data expressed in a target color space. The output data includes the plurality of output sub-region data.
In an additional exemplary embodiment of any one of the methods above, converting is accomplished in one or more of a pixel-by-pixel basis, a line-by-line basis, a tile-by-tile and a rectangle-by-rectangle basis.
A further exemplary embodiment in accordance with this invention is a computer readable medium encoded with a computer program executable by a processor to perform actions for providing color space conversion. The actions include receiving a graphics object includes a first component expressed in a first color space and a second component expressed in a second color space. The first color space is distinct from the second color space. Piece-wise converting the graphics object to generate output data expressed in a third color space is also included in the actions.
In an additional exemplary embodiment of the computer readable medium above, the actions also include providing the output data to one of a visual display device, a frame buffer or to a printer.
In a further exemplary embodiment of any one of the computer readable media above, the actions further include receiving graphic data via a plurality of graphical composition pipes, where each pipe provides graphic data expressed in one of a plurality of color spaces; and combining the graphic data to generate the graphics object.
In an additional exemplary embodiment of any one of the computer readable media above, converting includes using transparent composition surfaces.
In a further exemplary embodiment of any one of the computer readable media above, converting includes performing a plurality of consecutive color conversions during a single composition.
In an additional exemplary embodiment of any one of the computer readable media above, converting includes performing a plurality of consecutive color conversions during a single composition.
In a further exemplary embodiment of any one of the computer readable media above, the actions also include determining a plurality of sub-regions of the graphics object, where an individual sub-region is expressed in an individual color space; and converting each sub-region to generate output sub-region data expressed in a target color space. The output data includes the plurality of output sub-region data.
In an additional exemplary embodiment of any one of the computer readable media above, converting is accomplished in one or more of a pixel-by-pixel basis, a line-by-line basis, a tile-by-tile and a rectangle-by-rectangle basis.
In a further exemplary embodiment of any one of the computer readable media above, one or more of the first component and the second component is visual content.
An additional exemplary embodiment in accordance with this invention is an apparatus for providing color space conversion. The apparatus includes an input configured to receive a graphics object. The graphics object includes a first component expressed in a first color space and a second component expressed in a second color space. The first color space is distinct from the second color space. The apparatus also includes a color converter configured to piece-wise convert the graphics object to generate output data expressed in a third color space.
In a further exemplary embodiment of the apparatus above, one or more of the first component and the second component is visual content.
In an additional exemplary embodiment of the apparatus above, the apparatus also includes one or more of a visual display device configured to display an image based on the output data and to a printer configured to print the image.
In a further exemplary embodiment of any one of the apparatus above, the apparatus also includes a combiner configured to receive a plurality of graphic data via a plurality of graphical composition pipes, where each pipe provides graphic data expressed in one of a plurality of color spaces; to combine the plurality of graphic data to generate the graphics object; and to provide the graphics object to the input.
In an additional exemplary embodiment of any one of the apparatus above, converting includes using transparent composition surfaces.
In a further exemplary embodiment of any one of the apparatus above, the color converter is also configured to determine a plurality of sub-regions of the graphics object, where an individual sub-region is expressed in an individual color space; and to convert each sub-region to generate output sub-region data expressed in a target color space when piece-wise converting the graphics object. The output data includes the plurality of output sub-region data.
In an additional exemplary embodiment of any one of the apparatus above, converting is accomplished in one or more of a pixel-by-pixel basis, a line-by-line basis, a tile-by-tile and a rectangle-by-rectangle basis.
In a further exemplary embodiment of any one of the apparatus above, the apparatus also includes a memory configured to store a plurality of color space conversion parameters. The color converter is also configured to convert the graphics object based at least in part on color space conversion parameters.
In an additional exemplary embodiment of any one of the apparatus above, the apparatus is embodied as a part of a cellular phone.
In a further exemplary embodiment of any one of the apparatus above, the apparatus also includes at least one of a camera, illumination sensors and a data interface (e.g., DVB-TV antenna, internet connection, etc.).
In an additional exemplary embodiment of any one of the apparatus above, converting includes performing a plurality of consecutive color conversions during a single composition.
A further exemplary embodiment in accordance with this invention is an apparatus for providing color space conversion. The apparatus includes input means for receiving a graphics object includes a first component expressed in a first color space and a second component expressed in a second color space. The first color space is distinct from the second color space. The apparatus also includes color converter means for piece-wise converting the graphics object to generate output data expressed in a third color space.
In an additional exemplary embodiment of the apparatus above, one or more of the first component and the second component is visual content.
In a further exemplary embodiment of the apparatus above, the apparatus also includes one or more of visual display device means for displaying an image based on the output data and printer means for printing the image.
In an additional exemplary embodiment of any one of the apparatus above, converting includes performing a plurality of consecutive color conversions during a single composition.
In a further exemplary embodiment of any one of the apparatus above, the apparatus also includes combining means for receiving a plurality of graphic data via a plurality of graphical composition pipes, where each pipe provides graphic data expressed in one of a plurality of color spaces; for combining the plurality of graphic data to generate the graphics object; and for providing the graphics object to the input.
In an additional exemplary embodiment of any one of the apparatus above, converting includes using transparent composition surfaces.
In a further exemplary embodiment of any one of the apparatus above, the color converter means is also for determining a plurality of sub-regions of the graphics object, where an individual sub-region is expressed in an individual color space; and for converting each sub-region to generate output sub-region data expressed in a target color space when piece-wise converting the graphics object. The output data includes the plurality of output sub-region data.
In an additional exemplary embodiment of any one of the apparatus above, converting is accomplished in one or more of a pixel-by-pixel basis, a line-by-line basis, a tile-by-tile and a rectangle-by-rectangle basis.
In a further exemplary embodiment of any one of the apparatus above, the apparatus also includes memory means for storing a plurality of color space conversion parameters. The color converter means is also configured to convert the graphics object based at least in part on color space conversion parameters.
In an additional exemplary embodiment of any one of the apparatus above, the apparatus is embodied as a part of a cellular phone.
In a further exemplary embodiment of any one of the apparatus above, the apparatus also includes at least one of a camera, illumination sensors and a data interface (e.g., DVB-TV antenna, internet connection, etc.).
In general, the various exemplary embodiments may be implemented in hardware or special purpose circuits, software, logic or any combination thereof. For example, some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software which may be executed by a controller, microprocessor or other computing device, although the invention is not limited thereto. While various aspects of the exemplary embodiments of this invention may be illustrated and described as block diagrams, flow charts, or using some other pictorial representation, it is well understood that these blocks, apparatus, systems, techniques or methods described herein may be implemented in, as non-limiting examples, hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof.
As such, it should be appreciated that at least some aspects of the exemplary embodiments of the inventions may be practiced in various components such as integrated circuit chips and modules.
Various modifications and adaptations to the foregoing exemplary embodiments of this invention may become apparent to those skilled in the relevant arts in view of the foregoing description, when read in conjunction with the accompanying drawings. For example, the use of these embodiments is not restricted to operation with any particular maximum number of color spaces or with any particular pixel coding (e.g., YUV4:2:2, YUV4:2:0, RGB32, etc), or to just the various color spaces mentioned above (e.g., sRGB, Adobe® RGB and/or YUV). In addition, the exemplary embodiments may be used in any suitable type of user equipment, including mobile phones, PDAs, computers and the like, having any suitable type and number of graphics/image presentation devices, such as display screens, projection units, hardcopy devices, decorative illumination elements and the like. Furthermore, it should be appreciated that the color processing unit or chain shown in
It should be noted that the terms “connected,” “coupled,” or any variant thereof, mean any connection or coupling, either direct or indirect, between two or more elements, and may encompass the presence of one or more intermediate elements between two elements that are “connected” or “coupled” together. The coupling or connection between the elements can be physical, logical, or a combination thereof. As employed herein two elements may be considered to be “connected” or “coupled” together by the use of one or more wires, cables and/or printed electrical connections, as well as by the use of electromagnetic energy, such as electromagnetic energy having wavelengths in the radio frequency region, the microwave region and the optical (both visible and invisible) region, as several non-limiting and non-exhaustive examples.
Furthermore, some of the features of the various non-limiting and exemplary embodiments of this invention may be used to advantage without the corresponding use of other features. As such, the foregoing description should be considered as merely illustrative of the principles, teachings and exemplary embodiments of this invention, and not in limitation thereof.
Number | Date | Country | |
---|---|---|---|
61067316 | Feb 2008 | US |