Method and apparatus for alpha blending images from different color formats

By converting the image from the initial color format to the mixed color format and using the alpha hybrid transparency optimization logic, the problem of difficulty in retaining the transparency intention when mixing images in different color formats is solved, and the accuracy and consistency of image mixing is achieved.

CN113939847BActive Publication Date: 2025-04-01ATI TECHNOLOGIES ULC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080042570.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-06-28
Filing Date
2020-06-26
Publication Date
2025-04-01
Estimated Expiration
2040-06-26

AI Technical Summary

Technical Problem

The prior art is difficult to effectively retain the initial alpha mixing intention when mixing images in different color formats, resulting in incorrect transparency levels.

Method used

Alpha blending transparency optimization logic is used to generate an alpha blend image by converting the image from the initial color format to the mixed color format, ensuring that the initial alpha blending intention is maintained when converting and alpha blending between different color formats.

Benefits of technology

This enables the initial transparency intention to maintain the accuracy and consistency of image mixing when mixing images between different color formats.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113939847B_ABST
    Figure CN113939847B_ABST
Patent Text Reader

Abstract

In some examples, a device obtains source layer pixels, such as those of a content image, and first destination layer pixels, such as those of a destination image. The first destination layer pixels have associated alpha values. The device obtains information indicating a first blended color format for the alpha values. The first blended color format is different from a first destination layer color format for the first destination layer pixels and an output color format for a display. The device converts the source layer pixels and / or the first destination layer pixels to the first blended color format. The device generates a first alpha-blended pixel based on alpha-blending the source layer pixels with the first destination layer pixels using the associated alpha values. The device provides the first alpha-blended pixel for display on the display.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Before displaying the image on the display, the image processor alpha blends two or more layers or images to generate an alpha blended image. For example, the image processor uses an alpha value associated with the destination image (overlapping image) to alpha blend the source image with the destination image. The alpha value is usually a value between 0 and 1, and indicates the transparency level of the destination image and / or the source image when the destination image and / or the source image are blended together to form a single image. However, the destination image and the source image may be in different color formats. For example, one image may be in a high dynamic range (HDR) color format, and the other image may be in a standard dynamic range (SDR) color format. Due to the nonlinear differences between different color formats, applying the initial alpha value causes the transparency level between the images to be different from the transparency level intended by the author or programmer of one of the images.

[0002] In some cases, in order to accommodate different color formats, the source image and the destination image are converted to a common linear light HDR format, and alpha blending occurs in the common linear light HDR format. However, this may result in incorrect opacity results when the alpha value is formatted for the SDR color format, and this may result in extremely incorrect transparency when the alpha value is formatted for the HDR color format. Other methods are known to compensate by correcting the alpha value. However, this may also result in changing the initial alpha blending intent of the source. Additionally, when mixing HDR and SDR images, there may be problems in providing the correct relative brightness of the image in the color format of the output or display device. Known methods for correcting relative brightness include user preference adjustment sliders and / or dynamic adjustments based on detection of ambient light levels in the viewing environment. However, this only solves part of the problem and does not address how to blend images while maintaining the initial alpha blending intent of the source.

[0003] In addition, each color format may include a gamma space (e.g., a linear / non-linear curve for color encoding) and a specific color source. It is known that a device such as a graphics processing unit (GPU) converts a layer (e.g., a source image and / or a destination image) to a gamma space for a destination image and / or a gamma space for a display interface. Then, after converting to these gamma spaces, the GPU may alpha blend the converted layers (e.g., the source image and / or the destination image is converted to a gamma space for a destination image and / or for a display interface) to form an alpha blended image.

[0004] In many cases, an author or programmer may intend for alpha blending to occur in a color format that is different from the gamma space used for the destination image and / or display interface. However, there are currently no methods or devices available for converting source layer pixels and / or first destination layer pixels to a color format other than the color format of the destination image and / or the color format of the display interface prior to alpha blending. Additionally, an author or programmer may intend for alpha blending to include multiple blending stages (e.g., two pixel layers may be alpha blended together and the result may then be blended with a third pixel layer) using different color formats (e.g., a first color blending format and a second blending color format) between blending stages. Moreover, there are currently no methods or devices available for taking into account different color formats between blending stages. Therefore, one or more improved methods and / or devices are needed to address one or more of the above-noted shortcomings. BRIEF DESCRIPTION OF THE DRAWINGS

[0005] The embodiments will be more readily understood when the following description is considered in conjunction with the following drawings, and in which like reference numerals represent like elements, wherein:

[0006] Figure 1 is a schematic block diagram illustrating an apparatus for alpha blending images from different color formats according to one variation set forth in the present disclosure;

[0007] Figure 2 is a flow chart illustrating a method for alpha blending images from different color formats according to one variation set forth in the present disclosure;

[0008] Figure 3 is a schematic block diagram illustrating an example of alpha transparency optimization logic for alpha blending images from different color formats according to one variation set forth in the present disclosure;

[0009] Figure 4 is a schematic block diagram illustrating another apparatus for alpha blending images from different color formats according to one variation set forth in the present disclosure;

[0010] Figure 5 is a schematic block diagram illustrating a graphics processing unit for alpha blending images from different color formats according to one variation set forth in the present disclosure;

[0011] Figure 6 is a schematic block diagram illustrating another apparatus for alpha blending images from different color formats according to one variation set forth in the present disclosure; and

[0012] Figure 7 is a flow chart illustrating another method for alpha blending images from different color formats according to one variation set forth in the present disclosure. DETAILED DESCRIPTION

[0013] In some instances, methods and devices employ alpha blending transparency optimization logic to preserve or maintain the initial alpha blending intent of an author, such as a programmer, of a destination image (e.g., a destination layer pixel) to be alpha blended with a content image (e.g., a source image or source layer pixel). In some cases, the destination image is a user interface image, a logo image, or another type of destination image. For example, the alpha value indicated by the user interface image is intended to be used to alpha blend an image from a monochrome format such as a destination color format (e.g., a first destination layer color format). Therefore, by converting images (e.g., source images / destination images) from their initial color formats to a blended color format (e.g., a color format for an alpha blended image), the alpha blending transparency optimization logic maintains the initial alpha blending intent or minimizes distortion caused by the destination image and the content image being in different color formats. This will be explained in further detail below.

[0014] In some examples, a device obtains source layer pixels, such as those of a source image or a content image, and first destination layer pixels, such as those of a destination image. The first destination layer pixels have an associated first alpha value. The device obtains information indicating a first blended color format for the first alpha value. The first blended color format (e.g., a standard red-green-blue (sRGB) color format) is different from the first destination layer color format (e.g., a perceptual quantization (PQ) color format) in which the first destination layer pixels are located and is different from an output color format for a display (e.g., a hybrid log-gamma (HLG) color format). The device converts the source layer pixels and / or the first destination layer pixels to the first blended color format. In response to converting the source layer pixels and / or the first destination layer pixels to the first blended color format, the device generates a first alpha-blended pixel based on alpha-blending the source layer pixels with the first destination layer pixels using the first alpha value. The device provides the first alpha-blended pixel for display on the display.

[0015] For some instances, different color format conversion techniques are used before alpha blending. For example, in some variants, the first mixed color format includes a first mixed gamma space and a first mixed color original set. The gamma space indicates data representing the linearity / non-linearity of the first mixed color format. The device uses a transfer function representing the first mixed gamma space to convert source layer pixels and / or first destination layer pixels to the first mixed gamma space. In some instances, the first mixed gamma space is a linear gamma space and the transfer function is a gamma transfer function. The transfer function for the first mixed gamma space is stored in the memory of the device. In other variants, the device uses data representing one or more gamma transfer functions and / or one or more linear to linear transfer functions to convert source layer pixels and / or first destination layer pixels to the first mixed color original set. One or more gamma transfer functions and / or one or more linear to linear transfer functions are stored in the memory of the device. In yet other variants, the device converts at least one of the source layer pixels and the first destination layer pixels to the first mixed gamma space and the first mixed color original set.

[0016] In some instances, multiple alpha blending stages are employed. For example, in a second, third, or another subsequent alpha blending stage, the device converts a previously generated alpha blended pixel and / or a new destination layer (e.g., a second destination layer pixel) to a second blended color format, where the second blended color format is a color format different from the first blended color format. For example, the device obtains a second destination pixel associated with a second alpha value and information indicating a second blended color format (e.g., a PQ color format). The device then converts a first alpha blended pixel and / or a second destination layer pixel to a second blended color format. In response to converting the first alpha blended pixel and / or the second destination layer pixel, the device generates a second alpha blended pixel based on alpha blending the first alpha blended pixel with the second destination layer pixel using the second alpha value.

[0017] In some cases (e.g., when the device performs multiple alpha blending stages), the first blended color format is a color format that is the same as the first destination layer color format. In some variations, similar to the first blended color format, the second blended color format includes a second blended gamma space and a second blended color primitive set. The device employs different color format conversion techniques for a second or subsequent alpha blending stage. For example, the device converts a first alpha blended pixel and / or a second destination layer pixel to a second blended gamma space using data representing a gamma transfer function associated with the second blended gamma space. In some instances, the second blended gamma space is a gamma space that is the same as the output color format. In some cases, the device converts a first alpha blended pixel and a second destination layer pixel to a second blended color primitive set using data representing one or more gamma transfer functions and one or more linear transfer functions.

[0018] In some instances, before displaying the first alpha-blended pixel on the display, the device further converts the pixel and / or performs HDR tone mapping on the pixel. For example, the device converts the first alpha-blended pixel to an output color format. The device then provides the first alpha-blended pixel for display on the display. In some cases, the device performs tone mapping (e.g., high dynamic range (HDR) tone mapping) for the plurality of first alpha-blended pixels.

[0019] In some cases, the device performs tone mapping instead of or during a color format conversion process. For example, the device converts source layer pixels and / or a first destination layer by tone mapping the source layer pixels and / or the first destination layer pixels. In some variants, the device includes a graphics processing unit (GPU) including a display engine. The display engine includes alpha transparency optimization logic, which is configured to convert source pixels and / or first destination layer pixels to a first mixed color format before alpha blending the source pixels with the first destination layer pixels. In some cases, the device includes a memory having one or more frame buffers for storing source layer pixels, first destination layer pixels, a set of alpha values, and / or a first mixed color format.

[0020] Figure 1 An example of an apparatus 100 (such as an image processing device) for alpha blending images from different color formats is illustrated. In some embodiments, the apparatus 100 includes any type of computing device suitable for implementing aspects of the disclosed subject matter variations. Examples of computing devices include, but are not limited to, workstations, laptops, desktops, tablet computers, handheld devices, display devices, media players, set-top boxes, televisions, game consoles, printers, servers, cloud computing platforms, integrated circuits, etc., with reference to various components of the apparatus 100, which are all covered in Figure 1 within the range.

[0021] In some variations, the device 100 includes alpha transparency optimization logic 108 and a display 112. The alpha transparency optimization logic 108 obtains source layer pixels 102 in a source color format, first destination layer pixels 104 (e.g., an overlay image) in a first destination layer color format (e.g., an overlay color format), a set of first alpha values ​​114 in a first blended color format, information 106 indicating the first blended color format, and / or information 116 indicating an output color format. The first destination layer pixels 104 are associated with the set of first alpha values ​​114. In other words, the programmer and / or author programs or intends that the first destination layer pixels 104 be alpha blended using the set of first alpha values ​​114. In some cases, the same frame buffer in the memory stores the first destination layer pixels 104 and the set of alpha values ​​114. The logic 108 retrieves information including the set of first destination layer pixels 104 and alpha values ​​114 from the frame buffer and then segments the information into the set of first destination layer pixels 104 and alpha values ​​114.

[0022] In some instances, the device 100 is a movie player (e.g., a DVD player and / or a Blu-ray player). The device 100 obtains source pixels 102 and / or source color formats from a content source such as a DVD or Blu-ray disc. The device 100 obtains a first destination pixel 104 and / or a first destination color format from a memory of the movie player. The first destination pixel 104 represents a graphical user interface to be alpha-blended with the source layer pixel 102. The first destination pixel 104, the first destination color format, the first alpha value 114, and the first blended color format are stored in the memory of the movie player. The logic 108 obtains a source layer pixel 102 in a source color format, a first destination layer pixel 104 in a first destination layer color format (e.g., an overlay image), a set of first alpha values ​​114 in a first blended color format, and information 106 indicating the first blended color format from a memory of a game console and / or from a content source. The output color format is a color format for a display 112 (e.g., a display device and / or a display interface). In some cases, the logic 108 obtains information 116 of the output color format from the display 112. The first mixed color format is a color format for mixing a set of first alpha values ​​114 of the source layer pixels 102 and the first destination layer pixels 104.

[0023] In some variations, the device 100 optionally includes a display 112. When present, the alpha transparency optimization logic 108 and the display 112 are in the same device. The display 112 includes one or more monitors, television screens, projection devices, and / or other display screens that display and / or show video or game frames, movies, and / or images. The logic 108 provides the first alpha blended pixel 110 to the display 112, and the display 112 displays the first alpha blended pixel 110. In some instances, the device 100 does not include a display. Therefore, the alpha transparency optimization logic 108 provides (e.g., sends or transmits) image data (such as the first alpha blended pixel 110) to one or more other devices that accommodate the display 112 via the Internet, wirelessly, a wired bus, or by any suitable means. The exemplary device 100 (including the alpha transparency optimization logic 108) is not intended to imply any limitation on the scope of use or functionality of the variations of the present disclosure.

[0024] refer to Figures 1 to 3 , illustrates an example of a method 200 for alpha blending images from different color formats and an example of alpha transparency optimization logic. The method 200 will be described with reference to the device 100 and the logic 108. However, any suitable structure may be used. The alpha transparency optimization logic 108 includes a first layer pixel converter 302 (e.g., a source image converter unit), a second layer pixel converter unit 304 (e.g., a destination image converter unit), an alpha blending unit 306, and / or an output conversion and / or tone mapping unit 308. Although these sub-units 302, 304, 306 and / or 308 are illustrated as child units under the parent logic 108, each sub-unit may be operated as a unit separate from the logic 108, and other suitable combinations of sub-units are contemplated to suit different applications.

[0025] In some cases, the output conversion and / or tone mapping unit 308 is optional. When present, the unit 308 performs HDR tone mapping of the first alpha-blended pixel 110. Additionally and / or alternatively, the unit 308 converts the pixel 110 to an output color format for the display 112. If the unit 308 is not present in the logic 108, the logic 108 does not perform HDR tone mapping and / or does not convert the pixel to an output color format (e.g., another entity converts and / or tone maps the first alpha-blended pixel 110).

[0026] Logic 108 is any suitable logic configuration as desired, including but not limited to one or more state machines, one or more digital signal processors, as part of one or more CPUs, GPUs, APUs or processors executing cores and / or other suitable structures. As used herein, the term "unit" refers to, is part of, or includes an application specific integrated circuit (ASIC), an electronic circuit, a processor or microprocessor (shared, dedicated, or group) executing one or more software or firmware programs and / or memory (shared, dedicated, or group), a combinational logic circuit, and / or other suitable components that provide the described functionality.

[0027] In operation, at step 202, the logic 108 obtains source layer pixels 102 (e.g., a source image), first destination layer pixels 104 (e.g., a destination image) associated with a set of first alpha values ​​114, and an indicator indicating a first blended color format 106 for the set of first alpha values ​​114. The first blended color format is different from a first destination layer color format (e.g., a color format of the first destination layer pixels 104) and an output color format (e.g., a color format in which the display 112 outputs or displays an image).

[0028] For example, unit 302 obtains source layer pixel 102. Unit 304 obtains first destination layer pixel 104. In some variations, device 100 generates source layer pixel 102 and first destination layer pixel 104 that unit 302 and / or 304 later obtain. In other variations, device 100 obtains source layer pixel 102 and first destination layer pixel 104 from another entity (e.g., a web server). In still other variations, device 100 generates one of source layer pixel 102 or first destination layer pixel 104 and obtains the other of source layer pixel 102 or first destination layer pixel 104.

[0029] In some examples, the device 100, such as a gaming console, is configured to execute instructions from a content source and / or from a memory. The content source is a device that provides instructions to the device 100 to generate source layer pixels 102 or first destination layer pixels 104, such as a memory, a server, a video disc, a game disc (e.g., a traditional game disc), a DVD, other video or image formats including a memory and / or one or more processors. In addition, the memory of the content source includes instructions that can be executed by the device 100 (e.g., a gaming console and / or a computing device). The device 100 obtains and / or executes instructions from the memory of the content source, and based on executing the instructions, the device 100 obtains and / or generates source layer pixels 102 and / or first destination layer pixels 104. Additionally and / or alternatively, based on executing the instructions, the device 100 determines or identifies a color format (e.g., a source layer color format and a first destination layer color format) for the source layer pixels 102 and / or the first destination layer pixels 104. In other words, by executing the instructions, the device 100 retrieves information indicating the color format for the source layer pixels 102 / first destination layer pixels 104 from the content source.

[0030] In other examples, the device 100 obtains the source layer pixels 102 and / or the first destination layer pixels 104 from a content source, such as a web server for a streaming provider. In such cases, the content source is an entity, such as a web server. The web server (e.g., a video service, a game service, and / or a streaming service web server) provides information indicating a game, movie, television program, and / or other video or image file to the device 100. Additionally and / or alternatively, the device 100 obtains information indicating a color format for the source layer pixels 102 and / or the first destination layer pixels 104 from the content source.

[0031] After generating and / or obtaining pixels 102, 104, device 100 stores pixels 102 in a first frame buffer and stores pixels 104 in a second frame buffer. In other words, the graphics engine or 3-D engine generates pixels 102 and / or 104 and stores these pixels 102, 104 in a frame buffer. In some instances, the frame buffer is in device 100 memory. In other instances, the frame buffer is in a chip or processor memory, such as in a graphics processing unit (GPU) and / or a central processing unit (CPU) data cache. Unit 302 obtains source layer pixels 102 from a frame buffer storing source layer pixels 102. In addition, unit 304 obtains first destination layer pixels 104 from a different frame buffer storing first destination layer pixels 104.

[0032] In some examples, the source layer pixels 102 or the first destination layer pixels 104 are from two different images that were previously alpha blended together. For example, the device 100 generates the source layer pixels 102 by alpha blending the first set of pixels and the second set of pixels using a set of alpha values. The device 100 stores the source layer pixels 102 in a frame buffer and / or feeds it back to the logic 108. The unit 302 obtains the source layer pixels 102 as described above.

[0033] In addition to obtaining the source layer pixels 102, the unit 302 also obtains a source color format 316 for the source layer pixels and information 106 indicating a first mixed color format. In addition, in addition to obtaining the first destination layer pixels 104, the unit 304 also obtains a first destination layer color format for the first destination layer pixels 318 and information indicating a first mixed color format. For example, the source layer pixels 102 and / or the first destination layer pixels 104 each constitute an image. Each pixel of the image has a corresponding light value. The light value of a pixel is a set of physical values ​​that can be measured using a illuminance meter. Using illuminance level normalization and transfer functions, the light value of a pixel can be mapped to different color formats. A color format is also referred to as a color space (e.g., a standard red, green, and blue (sRGB) color space).

[0034] Each color format (e.g., color space) uses different values ​​to represent light values. In addition, each color format includes a combination of a gamma space and a specific color source. A gamma space is data indicating linear and / or nonlinear curves used for color encoding into a color format. These gamma spaces are also commonly referred to as transfer functions (e.g., electro-optical transfer function (EOTF) and / or photoelectric transfer function (OETF)), which can be gamma transfer functions or linear to linear transfer functions. Gamma transfer functions (e.g., transfer functions with gamma values ​​and other more complex transfer functions) include linear to nonlinear transfer functions, nonlinear to linear transfer functions, and nonlinear to nonlinear transfer functions. As will be explained in more detail below, logic 108 uses data representing these transfer functions (including gamma transfer functions and linear to linear transfer functions) to convert between different color formats. The data representing these transfer functions include actual transfer functions and / or matrices representing transfer functions. In some cases, the color format is linear and the transfer function uses gamma 1.0. In some examples, a chromaticity source is a specific mapping or mathematical definition of a color (eg, red, green, blue, white, etc.) by a color standard such as the Commission Internationale de Illumination (CIE) color standard.

[0035] Examples of different color formats include, but are not limited to, a standard red-green-blue (sRGB) color format, an extended sRGB (EsRGB) color format (e.g., an sRGB color format extended to 10,000 nits), a BT.709 color format, a perceptual quantization (PQ) color format (e.g., a PQ color format defined in the Society of Motion Picture and Television Engineers (SMPTE) ST2084 and / or the International Telecommunication Union (ITU) BT2100), a hybrid log-gamma (HLG) color format, a modified HLG color format, a PQ HLG color format, an EsRGB HLG color format, a standard dynamic range (SDR) color format, and / or a high dynamic range (HDR) color format.

[0036] The first blend color format is associated with a set of first alpha values ​​114 for alpha blending source layer pixels 102 with first destination layer pixels 104. For example, source layer pixels 102 are source images (e.g., images from a content source). First destination layer pixels 104 are destination images (e.g., images to be alpha blended with the source images, such as graphical user interface images). An author and / or programmer intends (e.g., programs or designs) to alpha blend the first destination layer pixels 104 in the first blend color format and using the set of first alpha values ​​114. Device 100 obtains and / or determines the first blend color format for the set of first alpha values ​​114. Device 100 then provides the first blend color format to unit 302 and / or unit 304. In some instances, the graphical user interface image is an image that includes an input that can be selected by a user and is ultimately alpha blended with a content image (e.g., a source image).

[0037] In some cases, the device 100 obtains and / or determines the first mixed color format based on generating and / or obtaining the first destination layer pixels 104. In other words, when executing instructions to generate the first destination layer pixels 104 and / or when obtaining these pixels 104, the device 100 also obtains and / or determines the first mixed color format. In some variations, the device 100 stores the first mixed color format in a frame buffer (such as a frame buffer storing the first destination layer pixels 104 / graphical user interface). The source layer pixel converter unit 302 and the first destination layer pixel converter unit 304 obtain the first mixed color format 106 from the frame buffer.

[0038] Units 302 and 304 obtain information 116 indicating an output color format. As mentioned above, the output color format is associated with the display 112 (e.g., the display 112 displays or outputs images / pixels in the output color format). In some examples, the display 112 provides the information 116 indicating the output color format (e.g., extended display identification data (EDID) information) to the logic 108. In other examples, the device 100 obtains the information 116 via an Internet connection (e.g., from a web server).

[0039] At step 204, the logic 108 converts the source layer pixels 102 and / or the first destination layer pixels 104 to the first mixed color format. For example, after obtaining the source layer pixels 102, the first mixed color format, the output color format, and the source color format, the unit 302 determines whether to convert the source layer pixels 102 to the first mixed color format. For example, the unit 302 compares the source color format to the first mixed color format. If the source color format is different from the first mixed color format, the unit 302 converts the source layer pixels 102 from the source color format to the first mixed color format.

[0040] Similarly, after obtaining the first destination layer pixel 104, the first mixed color format, the output color format, and the first destination color format, the unit 304 determines whether to convert the first destination layer pixel 102 to the first mixed color format. For example, the unit 304 compares the first destination layer color format with the first mixed color format. If the first destination layer color format is different from the first mixed color format, the unit 304 converts the first destination layer pixel 102 from the first destination layer color format to the first mixed color format.

[0041] In other words, before alpha blending the source layer pixels 102 and the first destination layer pixels 104, the logic 108 determines whether the pixels 102, 104 are in the first blended color format, and if not, the pixels 102, 104 are converted from their corresponding color formats to the first blended color format. For example, the author or programmer of the destination image (e.g., the first destination layer pixels 104) expects a certain transparency level of the first destination layer pixels 104 when they are alpha blended. Traditionally, if the source layer pixels 102 and / or the first destination layer pixels 104 are in different color formats, using the first alpha value 114 to alpha blend these pixel layers 102, 104 causes the author's intent to be misinterpreted. Therefore, in order to retain and / or maintain the original intent of the transparency level during alpha blending, before alpha blending the pixels 102, 104, the alpha transparency optimization logic 108 converts the source layer pixels 102 and / or the first destination layer pixels 104 from their corresponding color formats to the first blended color format.

[0042] In some examples, source layer pixels 102 and / or first destination layer pixels 104 are in the same color format as the first mixed color format. For example, if the first destination layer color format is the same as the first mixed color format, unit 304 does not convert pixels 104 to the first mixed color format.

[0043] As previously mentioned, each color format has a gamma space and a specific color source. In some cases, unit 302 compares the gamma space used for the first mixed color format (e.g., the first mixed gamma space) with the gamma space used for the source color format (e.g., the source gamma space). If different, unit 302 uses one or more transfer functions (e.g., the EOTF and / or OETF for the source color format and / or the first mixed color format) to convert the source layer pixels 102 from the source gamma space to the first mixed gamma space. Unit 304 similarly compares the first destination gamma space with the first mixed gamma space and / or converts the first destination layer pixels 104 from the first destination gamma space to the first mixed gamma space. In some variants, the first mixed gamma space is a linear gamma space with a linear transfer function. In other variants, the gamma space is a nonlinear gamma space with a nonlinear transfer function.

[0044] In other cases, the color primaries between the first mixed color format and the source color format / first destination color format are different. For example, unit 302 compares the color primaries used for the first mixed color format with the color primaries used for the source color format. If different, unit 302 uses one or more matrices and / or one or more transfer functions (e.g., EOTF and / or OETF) to convert the source layer pixels 102 from the source color primaries to the first mixed color primitive set. For example, unit 302 uses the EOTF to linearize the source layer pixels 102. Then, unit 302 uses one or more matrices to convert the source layer pixels 102 from the source color primaries to the first mixed color primitive set. Similarly, unit 304 compares the first destination color primaries to the first mixed color primitive set and / or converts the first destination layer pixels 104 from the first destination color primaries to the first mixed color primitive set.

[0045] In yet other cases, both the gamma space and the color primaries are different between the input color format and the first mixed color format. Units 302 and / or 304 convert the source layer pixels 102 and / or the first destination layer pixels 104 from the source layer pixels and / or the first destination gamma space / color primaries to the gamma space and color primaries of the first mixed color format.

[0046] In some variations, the first destination layer color format (for the first destination layer pixel 104) is in an SDR color format. The first blended color format is in a linear HDR color format. Therefore, unit 304 converts the first destination layer pixel 104 from the first destination layer color format to a linear HDR color format. The source layer pixel 102 is converted to a linear HDR color format as needed (e.g., if the source layer pixel 102 is not already in a linear HD color format, then unit 302 converts the source layer pixel 102). Unit 306 alpha blends the source pixel 102 with the converted first destination layer pixel 104 and the source layer pixel 102 to generate a first alpha blended pixel 110 in a linear HD color format. Then, unit 308 converts the first alpha blended pixel 110 to an output color format, such as a non-linear HDR color format (e.g., a PQ HDR color format). Then, logic 108 provides the first alpha blended pixel 110 in a non-linear HDR color format to a display 112. Then, the display 112 displays the first alpha blended pixel 110.

[0047] In some examples, a memory (such as device 100 memory and / or cache memory) stores the transfer function and / or matrix. Units 302 and / or 304 obtain data representing the transfer function and / or matrix from the memory and then use this data to convert between color formats.

[0048] Additionally and / or alternatively, in some variants, during the conversion process, units 302 and 304 normalize the values ​​of source layer pixels 102 and / or first destination layer pixels 104. For example, before alpha blending pixels 102 and 104, units 302 and 304 normalize pixels 102 and / or 104 so that the luminance range of pixels 102 and / or 104 is standardized with the luminance range of the first mixed color format. For example, unit 302 determines a normalization ratio based on the source color format and the first mixed color format. In other words, unit 302 determines the brightness of a specific luminance value (e.g., 100 nits) for the source color format. Then, unit 302 determines the brightness of a specific luminance value (e.g., 100 nits) for the first mixed color format. Unit 302 determines the normalization ratio based on the brightness associated with the specific luminance value for the source color format and the first mixed color format. Similarly, unit 304 determines the normalization ratio based on the first mixed color format and the first destination color format. Units 302 and / or 304 apply a normalization ratio during the conversion process for converting between their corresponding color formats (eg, the source color format and / or the first destination color format) to the first mixed color format.

[0049] At step 206, in response to converting the source layer pixel 102 or the first destination layer pixel 104 to the first mixed color format, the logic 108 generates a first alpha-blended pixel 110 based on the set alpha-blending of the source layer pixel 102 with the first destination layer pixel 104 using the first alpha value 114. For example, the alpha blending unit 306 obtains information 310 and 312 from the converter unit 302 and / or 304. The information 310 includes the source layer pixel 102 or the converted source layer pixel 102. Similarly, the information 312 includes the first destination layer pixel 104 or the converted first destination layer pixel 104. The alpha blending unit 306 further obtains the first alpha value 114 in the first mixed color format 106. In some cases, the first alpha value 114 is a global alpha value (e.g., for the entire image). In other cases, the first alpha value 114 is a pixel-by-pixel alpha value. For example, the alpha blending unit 306 obtains the first alpha value 114 from a frame buffer, such as a frame buffer storing the first destination layer pixel 104. In some cases, the device 100 obtains and / or determines the first alpha value 114 based on generating and / or obtaining the first destination layer pixel 104 and / or determining the first blended color format. Based on generating and / or obtaining the first destination layer pixel 104, the device 100 determines and / or obtains the first alpha value 114 and stores the first alpha value 114 in a frame buffer, such as a frame buffer for the first destination layer pixel 104.

[0050] The alpha blending unit 306 performs alpha blending of the source layer pixels 102 (e.g., converted / unconverted source layer pixels) and the first destination layer pixels 104 (e.g., converted / unconverted first destination layer pixels) using the first alpha value 114 to generate the first alpha blended pixel 110. In other words, the source layer pixels 102, the first destination layer pixels 104, and the first alpha value 114 are in the first blended color format due to the conversion units 302 and / or 304. By performing alpha blending in the first blended color format, the logic 108 (e.g., the alpha blending unit 306) preserves and / or maintains the original intent of the author or programmer of the destination pixel (e.g., a user or graphical user interface image) when setting the first alpha value 114.

[0051] Unit 308 obtains information indicating the first alpha-blended pixel 110 and performs HDR tone mapping of the first alpha-blended pixel 110. Unit 308 then provides the first alpha-blended pixel 110 to the display 112. Additionally and / or alternatively, unit 308 converts the first alpha-blended pixel 110 to an output color format for the display 112. For example, unit 308 uses one or more transfer functions and / or matrices to convert from the first blended color format to the output color format. Unit 308 then provides the first alpha-blended pixel 110 to the display 112.

[0052] In some examples, unit 308 is not within logic 108. For example, in some cases, first alpha-blended pixel 110 need not be HDR tone mapped (e.g., if display 112 is an SDR display, or if pixel 110 is already in an HDR color format). In other cases, first alpha-blended pixel 110 is tone mapped and / or converted to an output color format by another entity (e.g., a display engine).

[0053] In other examples, the units 302 and / or 304 perform tone mapping (e.g., HDR tone mapping) of the source layer pixels 102 and / or the first destination layer pixels 104. For example, the units 302 and / or 304 perform HDR tone mapping of the source layer pixels 102 and / or the first destination layer pixels 104 before alpha blending the pixels 102 and / or 104. In some cases, the units 302 and / or 304 perform HDR tone mapping of the source layer pixels 102 and / or the first destination layer pixels 104 during the conversion process between the source color format and / or the first destination color format to the first mixed color format. In other cases, the units 302 and / or 304 do not perform conversion between the source color pixels and / or the first destination color pixels to the first mixed color pixels (e.g., the source color format and / or the first destination color format is in the first mixed color format), and the units 302 and / or 304 only perform HDR tone mapping of the source layer pixels 102 and / or the first destination layer pixels 104.

[0054] At step 208, the logic 108 provides the first alpha-blended pixel 110 for display on the display 112. For example, after alpha-blending the source pixel 102 with the first destination layer pixel 104, converting the first alpha-blended pixel 110 to an output color format, and / or HDR tone mapping the pixel, the device 100 provides the first alpha-blended pixel 110 for display on the display 112. The display 112 outputs the first alpha-blended pixel 110 for display.

[0055] In some variations, multiple alpha blending stages occur before displaying the final image on the display 112. In other words, after a first alpha blending process (e.g., generating the first alpha blended pixel 110 as described in method 200 above), the logic 108 performs one or more additional alpha blending processes (e.g., additionally repeating method 200 one or more times). Figure 4 The device 400 is shown to include two alpha transparency optimization logic blocks 412 and 414. Each of the logic blocks 412 and 414 includes the unit 302, the unit 304, and the alpha blending unit 306. The units 302, 304, and 306 are shown in the above Figure 3 In addition, the first logic 412 is configured to communicate with Figure 3 The logic 108 described in the foregoing description functions similarly and converts the source layer pixels 102 and / or the first destination layer pixels 104 to the first blended color format. The first logic 412 then alpha-blends the source layer pixels 102 and / or the first destination layer pixels 104 using the set of first alpha values ​​114 for the first destination layer pixels 104. The first logic 412 provides the first alpha-blended pixels 110 to the second logic 414.

[0056] The second logic 414 performs another alpha blending step. For example, the second logic 414 obtains a set of second destination layer pixels 402 (e.g., another destination image), another alpha value 406 (e.g., a second alpha value), and an indicator 408 indicating another blending color format (e.g., a second blending color format). The second alpha value and the second blending color format are associated with the second destination layer pixels 402. In other words, the author or programmer intended to use the second alpha value to alpha blend the second destination layer pixels 402 in the second blending color format. The second blending color format is different from the first blending color format. In other words, the gamma space and / or color primaries used for the second blending color format are different from the gamma space and / or color primaries used for the first blending color format.

[0057] The second logic 414 converts the first alpha-blended pixel 110 and / or the second destination layer pixel 402 to the second blended color format. For example, the second logic 414 determines whether the pixel 110 and / or 402 is in the second blended color format (e.g., whether the gamma space and / or color primaries used for the color format are different). If different, the second logic 414 uses data representing one or more transfer functions and / or one or more matrices to convert the pixels to the second blended color format. In response to converting the pixel 110 and / or 402, the second logic 414 uses the second alpha value 406 to alpha-blend the pixel 110 and / or 402 to generate a second alpha-blended pixel.

[0058] In some examples, the second logic 414 includes the unit 308. As mentioned above, the unit 308 converts the second alpha-blended pixels 410 to an output color format and / or performs HDR tone mapping on the second alpha-blended pixels 410. The second logic 414 then provides these pixels 410 to the display 112 for display. In other examples, the device 400 also includes additional alpha transparency optimization logic (e.g., third logic, fourth logic, etc.). Each additional logic is used to perform another stage of the alpha blending process.

[0059] Although device 400 shows different logic 412 and 414, in some variations, a single logic (such as logic 108) performs multiple different alpha blending stages. Figure 3 After generating the first alpha blended pixel 110, the logic 108 performs another alpha blending stage. For example, the logic 108 provides the pixel 110 back to the unit 302. The unit 304 obtains another layer of pixels (e.g., Figure 4 The second destination layer pixel 402 is shown. The process is then repeated similar to the above until the desired alpha blended image has been generated. The logic 108 then provides the resulting pixel to the unit 308 and / or the display 112.

[0060] Referring to the above example with multiple alpha blending stages, although the first blend color format (the color format used to blend the source layer pixels 102 with the first destination layer pixels 104) is different from the second blend color format (the color format used to blend the alpha-blended source layer pixels 102 and the first destination layer pixels 104 with the second destination layer pixels 402), in some variations, the first blend color format or the second blend color format is the same color format as the output color format for the display 112. Additionally and / or alternatively, the first blend color format or the second blend color format is the same color format as one or more of the input color formats (e.g., the source color format for the source layer pixels 102, the first destination layer color format for the first destination layer pixels 104, and / or the second destination layer color format for the second destination layer pixels 402).

[0061] Figure 1 , Figure 3 and Figure 4 The illustrated exemplary devices 100 and / or 400 (including the alpha transparency optimization logic 108) are not intended to suggest any limitation as to the scope of use or functionality of the variations of the present disclosure. Neither the exemplary devices 100, 400, nor the logic 108 should be interpreted as having any dependency or requirement relating to any single component or combination of components illustrated therein. Additionally, Figure 1 , Figure 3 and Figure 4The various components depicted may be integrated in variations with components from other components described therein (and / or components not illustrated), all of which are considered to be within the scope of the present disclosure.

[0062] Figure 5 5 is a schematic block diagram illustrating an example of a GPU 500 for alpha blending images from different color formats. Figure 5 ) variations. In addition, the following description is merely exemplary in nature and is in no way intended to limit the present disclosure, its application, or uses. Therefore, although the present disclosure includes specific unit examples and arrangements, the scope of the inventive system should not be so limited, as other modifications will be apparent to skilled practitioners.

[0063] The graphics processing unit 500 includes a bus 504 that directly and / or indirectly couples the following hardware components: a video encoder 506, a display engine, a pipeline and / or controller 508, a memory 510 (e.g., a data cache), and / or a 3-D engine 518. Any number of additional components, different components, and / or combinations of components may also be included in the graphics processing unit 500. The bus 504 represents one or more buses (e.g., such as an address bus, a data bus, or a combination thereof).

[0064] In some embodiments, a display engine, pipeline, and / or controller (e.g., display engine) 508 includes alpha transparency optimization logic 108 and / or unit 308. The display engine 508 is an engine, pipeline, and / or controller that converts a frame or image, such as a source image and / or a destination image, into a displayable frame for a display, such as display 112. For example, the display engine 508 obtains the source layer pixels 102 and the first destination layer pixels 104 from the video encoder 506 and / or the 3-D engine 518. In addition, the display engine 508 obtains the first alpha value 114 and / or the first blended color format. The display engine 508 uses the alpha transparency optimization logic 108 to normalize, convert, and / or alpha blend the pixels 102, 104 as described above. In addition, the display engine 508 optionally includes unit 308. Unit 308 performs an HDR tone mapping operation on the first alpha blended pixel 110 and / or converts the pixel 110 to an output color format. The display engine 508 then provides the first alpha-blended pixel 110 to the display 112 .

[0065] In some variations, the video encoder 506 encodes and / or decodes video files and / or image files such as images and / or frames of a video stream. For example, as previously mentioned, in some cases, the content source is a web server. The video stream is encoded to be able to be transmitted via the Internet (e.g., due to large file sizes). The video encoder 506 obtains information 502 indicating a frame such as a source image and / or a destination image from a server and / or from a CPU via the Internet. The video encoder 506 decodes the frame to generate source layer pixels 102 and first destination layer pixels 104. After decoding the frame, the video encoder 506 stores the decoded frame to a frame buffer 512. Additionally and / or alternatively, the video encoder 506 provides the decoded frame to a display engine, pipeline and / or controller 508.

[0066] In some cases, the content source is a device with a memory. The memory stores encoded movies, TV programs, videos and / or other encoded frames. The video encoder 506 decodes the encoded frames to generate source layer pixels 102 and first destination layer pixels 104. In some variants, the 3-D engine 518 is used to generate source layer pixels 102 and first destination layer pixels 104. For example, the device 100 includes a CPU, and the CPU executes instructions stored on the content source. Based on the instructions, the CPU provides information 502 to the 3-D engine 518 to generate pixels 102, 104. Then, the 3-D engine 518 stores the pixels 102 and 104 in the frame buffer 512. Additionally and / or alternatively, the 3-D engine 518 provides pixels 102, 104 to the display engine, pipeline and / or controller 508.

[0067] In some examples, the data cache 510 includes one or more frame buffers 512. For example, the data cache 510 (e.g., a GPU data cache or processor memory) includes a frame buffer 514 for source layer pixels. Additionally and / or alternatively, the data cache 510 includes a frame buffer 516 for first destination layer pixels. As previously mentioned, in some examples, the first blended color format 106 and / or the first alpha value 114 are stored in the frame buffer 516 for the first destination layer pixels.

[0068] Figure 6 6 is a schematic block diagram illustrating another example of an apparatus 600 for alpha blending images from different color formats. As described above, the method 200 is composed of Figure 1 The device 100 and / or Figure 4 The apparatus 400 described above implements the method 200. The apparatus 600, such as an image processing device, illustrates another exemplary apparatus for implementing the method 200.

[0069] The device 600 includes a bus 610 that directly and / or indirectly couples the following devices: a processor 620 (e.g., a CPU), a coprocessor 500 (e.g., a GPU), a memory 640, one or more Ethernet ports 650, an I / O component 660, and a wireless adapter chip 670. Any number of additional components, different components, and / or combinations of components may also be included in the device 600. In some embodiments, the I / O component 660 includes a presentation component (e.g., such as a touch screen, display 112, speaker, printing device, etc.) and / or an input component or device 662 (e.g., such as a microphone, a joystick, a satellite dish, a scanner, a printer, a wireless device, a keyboard, a pen, a voice input device, a touch input device, a touch screen device, an interactive display, a mouse, etc.) configured to present information to a user.

[0070] Bus 610 represents one or more buses (such as, for example, an address bus, a data bus, or a combination thereof). Similarly, in some embodiments, device 600 includes multiple processors 620 and coprocessors 500, multiple memory components 640, multiple Ethernet ports 650, multiple I / O components 660, and / or multiple wireless adapter chips 670. Additionally, any number or combination of these components are distributed and / or repeated across multiple computing devices.

[0071] In some examples, the processor 620 (e.g., a CPU) executes a graphics driver 622 (stored in memory) to cause the processor to direct, operate, and / or control the alpha transparency optimization logic 108. In some variations, the coprocessor 500 (e.g., a GPU) includes the alpha transparency optimization logic 108 implemented to execute shader code or discrete logic, as desired.

[0072] In some cases, the memory 640 includes one or more frame buffers. The one or more frame buffers store the source layer pixels 102 and / or the first destination layer pixels 104. In some examples, the memory 640 includes computer executable instructions 642 that, when executed, cause the processor 620 and the coprocessor 500 to implement the aspects of the variations of the device components discussed herein and / or to perform the aspects of the variations of the methods and programs discussed herein. The memory 640 is a RAM, a ROM, or any suitable memory.

[0073] Figure 6 The illustrated exemplary device 600 is not intended to suggest any limitation as to the scope of use or functionality of variations of the present disclosure. The exemplary device 600 should not be interpreted as having any dependency or requirement relating to any single component or combination of components illustrated therein.

[0074] Figure 7An example of a method 700 for alpha blending images from different color formats is illustrated. Specifically, Figure 7 Example usage Figure 1 The device 100 and / or Figure 3 The logic 108 shown normalizes, converts between different color formats, and alpha blends the resulting pixels.

[0075] In operation, at step 702, the logic 108 (e.g., converter unit 302 and / or 304) obtains source layer pixels 102, first destination layer pixels 104, source color format, first destination layer color pixels, and / or first mixed color format 106. Figure 7 In the depicted example, the source color format is a PQ color format, the first destination layer color format is an sRGB color format, and the first mixed color format 106 is an sRGB color format. However, the depicted color format is only one example, and the logic 108 may be used to convert between any number of different color formats, including between different linear and / or non-linear color formats.

[0076] At step 704, based on comparing the first mixed color format to the first destination layer color format (e.g., comparing the sRGB color format to the sRGB color format), unit 304 determines that these color formats are the same. Therefore, unit 304 does not convert the first destination layer pixels to a different color format. At step 706, based on comparing the first mixed color format to the source color format (e.g., comparing the sRGB color format to the PQ color format), unit 302 determines that the source color format 106 and the first mixed color format 316 are not the same. Therefore, the following steps 708-714 describe normalizing and / or converting the source layer pixels 102 from the source color format (e.g., the PQ color format) to the first mixed color format (e.g., the sRGB color format).

[0077] At step 708, the converter unit 302 converts the source layer pixels 102 from the source color format (e.g., the non-linear PQ color format) to the linear light color format. The converter unit 302 converts between the non-linear color format (e.g., the source color format 316) and the linear light color format using a transfer function such as a PQ transfer function (e.g., the 'st2084' transfer function). At step 710, the unit 302 converts the color primaries of the source layer pixels 102 using a matrix or a lookup table (LUT) such as a 3-D LUT.

[0078] At step 712, the converter unit 302 normalizes the source layer pixels 102 in the linear light color format to match the first mixed color format (e.g., sRGB color format). For example, the illumination range of the PQ color format (e.g., 0-10,000 nits) is different from the illumination range of the sRGB color format (e.g., 0-250 nits). Therefore, the converter unit 302 normalizes the source layer pixels 102 based on the illumination ranges of the PQ color format and the sRGB color format. In other words, the converter unit 302 uses the peak white values ​​in the two ranges to determine a normalization ratio (e.g., 10,000 / 250). The unit 302 then multiplies the source layer pixels 102 by the normalization ratio (e.g., multiplying the source layer pixels 102 by the peak white value of the PQ color format, 10,000 nits, and dividing by the peak white value of the sRGB color format, 250 nits).

[0079] At step 714, the unit 302 converts the normalized source layer pixels 102 in the linear light color format to a first mixed color format (e.g., a non-linear sRGB color format). For example, the converter unit 302 converts the pixels 102 to the sRGB color format using a transfer function for the sRGB color format. The converter unit 302 then provides the converted source layer pixels 102 in the non-linear sRGB color format to the alpha blending unit 306.

[0080] At step 716, the alpha blending unit 306 alpha blends the converted and normalized source layer pixel 102 and the first destination layer pixel 104 using the first alpha value 114 to generate the first alpha blended pixel 110. The process 700 then ends, and the final logic 108 provides the first alpha blended pixel 110 for display on the display 112 as described above.

[0081] Among other technical benefits, some examples allow the initial transparency level intended by the author or programmer of the user interface to be maintained. Further, in some cases, by allowing the initial transparency level to be maintained, the image displayed on the display is improved. For example, by converting the source layer pixels 102 and / or the first destination layer pixels 104 prior to alpha blending, the alpha transparency optimization logic 108 preserves and / or maintains the transparency level of the image during alpha blending.

[0082] The above detailed description of the present disclosure and the examples described herein have been presented for purposes of illustration and description only and not limitation. Therefore, it is contemplated that the present disclosure encompasses any and all modifications, variations or equivalents that fall within the spirit and scope of the underlying fundamental principles disclosed above and claimed herein.

Claims

1. A method for alpha blending images from different color formats, comprising: obtaining, by logic, a plurality of source layer pixels, a plurality of first destination layer pixels associated with a plurality of first alpha values, and information indicating a first blended color format for the first alpha values, wherein the first blended color format is different from a first destination layer color format associated with the plurality of first destination layer pixels and is different from an output color format associated with a display; converting, by the logic, at least one of the plurality of source layer pixels and the plurality of first destination layer pixels to the first blended color format for the first alpha value; as well as In response to the converting of at least one of the plurality of source layer pixels and the plurality of first destination layer pixels, a plurality of first alpha-blended pixels are generated by the logic based on alpha-blending the plurality of source layer pixels with the plurality of first destination layer pixels using the plurality of first alpha values.

2. The method of claim 1, wherein the first mixed color format comprises a first mixed gamma space and a first mixed color primitive set, and Wherein converting the at least one of the plurality of source layer pixels and the plurality of first destination layer pixels to the first mixed color format comprises: The at least one of the plurality of source layer pixels and the plurality of first destination layer pixels is converted to the first hybrid gamma space using data representing a transfer function associated with the first hybrid gamma space.

3. The method of claim 1, wherein the first mixed color format comprises a first mixed gamma space and a first mixed color primitive set, and Wherein converting the at least one of the plurality of source layer pixels and the plurality of first destination layer pixels comprises: The at least one of the plurality of source layer pixels and the plurality of first destination layer pixels is converted to the first mixed color primaries using data representing one or more gamma transfer functions and one or more linear-to-linear transfer functions.

4. The method of claim 1, wherein the first mixed color format comprises a first mixed gamma space and a first mixed color primitive set, and Wherein converting the at least one of the plurality of source layer pixels and the plurality of first destination layer pixels to the first mixed color format comprises: The at least one of the plurality of source layer pixels and the plurality of first destination layer pixels is converted to the first mixed gamma space and the first mixed color primitive set.

5. The method of claim 1, further comprising: obtaining, by the logic, a plurality of second destination layer pixels associated with a plurality of second alpha values ​​and information indicating a second blended color format, wherein the first blended color format is different from the second blended color format; converting at least one of the plurality of first alpha-blended pixels and the plurality of second destination layer pixels to the second blended color format; as well as In response to the converting the at least one of the plurality of first alpha-blended pixels and the plurality of second destination layer pixels, a plurality of second alpha-blended pixels are generated based on alpha-blending the plurality of first alpha-blended pixels with the plurality of second destination layer pixels using the plurality of second alpha values.

6. The method of claim 5, wherein the second mixed color format comprises a second mixed gamma space and a second mixed color primitive set, and wherein converting the at least one of the plurality of second alpha-blended pixels and the plurality of second destination layer pixels to the second blended color format comprises: The at least one of the plurality of first alpha-blended pixels and the plurality of second destination layer pixels is converted to the second blended gamma space using data representing a gamma transfer function associated with the second blended gamma space.

7. An apparatus for alpha blending images from different color formats, comprising: An alpha transparency optimization logic unit, the alpha transparency optimization logic unit being configured to: obtaining a plurality of source layer pixels, a plurality of first destination layer pixels associated with a plurality of first alpha values, and information indicating a first blended color format for the first alpha values, wherein the first blended color format is different from a first destination layer color format associated with the plurality of first destination layer pixels and is different from an output color format associated with a display; converting at least one of the plurality of source layer pixels and the plurality of first destination layer pixels to the first blended color format for the first alpha value; and In response to the converting the at least one of the plurality of source layer pixels and the plurality of first destination layer pixels, a plurality of first alpha-blended pixels are generated based on alpha-blending the plurality of source layer pixels with the plurality of first destination layer pixels using the plurality of first alpha values.

8. The apparatus of claim 7, wherein the first mixed color format comprises a first mixed gamma space and a first mixed color primitive set, and Wherein the alpha transparency optimization logic unit is configured to convert at least one of the plurality of source layer pixels and the plurality of first destination layer pixels to the first mixed color format by converting the plurality of source layer pixels and the plurality of first destination layer pixels to the first mixed gamma space using data representing a transfer function associated with the first mixed gamma space.

9. The apparatus of claim 7, wherein the first mixed color format comprises a first mixed gamma space and a first mixed color primitive set, and Wherein the alpha transparency optimization logic unit is configured to convert the plurality of source layer pixels and the at least one of the plurality of first destination layer pixels to the first mixed color format by converting the at least one of the plurality of source layer pixels and the plurality of first destination layer pixels to the first mixed color primitive set using data representing one or more gamma transfer functions and one or more linear-to-linear transfer functions.

10. The apparatus of claim 7, wherein the first mixed color format comprises a first mixed gamma space and a first mixed color primitive set, and Wherein the alpha transparency optimization logic unit is configured to convert at least one of the multiple source layer pixels and the multiple first destination layer pixels to the first mixed color format by converting the at least one of the multiple source layer pixels and the multiple first destination layer pixels to the first mixed gamma space and the first mixed color primitive set.

11. The apparatus of claim 7, wherein the alpha transparency optimization logic unit is further configured to: obtaining a plurality of second destination layer pixels associated with a plurality of second alpha values ​​and information indicating a second blended color format, wherein the first blended color format is different from the second blended color format; converting at least one of the plurality of first alpha-blended pixels and the plurality of second destination layer pixels to the second blended color format; and In response to the converting the at least one of the plurality of first alpha-blended pixels and the plurality of second destination layer pixels, a plurality of second alpha-blended pixels are generated based on alpha-blending the plurality of first alpha-blended pixels with the plurality of second destination layer pixels using the plurality of second alpha values.

12. The apparatus of claim 11, wherein the second mixed color format comprises a second mixed gamma space and a second mixed color primitive set, and Wherein the alpha transparency optimization logic unit is configured to convert the plurality of first alpha-blended pixels and the at least one of the plurality of second destination layer pixels to the second blended color format by converting the at least one of the plurality of second alpha-blended pixels and the plurality of second destination layer pixels to the second blended gamma space using data representing a gamma transfer function associated with the second blended gamma space.

13. The device of claim 7, wherein the device comprises: a graphics processing unit (GPU), the GPU comprising a display engine, wherein the display engine comprises the alpha transparency optimization logic unit; as well as A memory comprising a first frame buffer and a second frame buffer, wherein the first frame buffer stores the plurality of source layer pixels, and wherein the second frame buffer stores the plurality of first destination layer pixels, the plurality of first alpha values, and the information indicating the first mixed color format.

Citation Information

Patent Citations

  • Digital image processing chain and processing blocks and a display including the same

    US20190027082A1

  • Method and apparatus for an integrated high definition television controller

    US7307667B1