SPRUJ28E November 2021 – September 2024 AM68 , AM68A , TDA4AL-Q1 , TDA4VE-Q1 , TDA4VL-Q1
The overlay manager can blend as many as four input pipelines using three cascaded stages of basically the same alpha-blending logic. Alpha output generation is supported only for the write-back path.
The alpha blending value is defined by:
Table 12-348 shows the remapping and the percentage of alpha blending achieved.
Alpha Blending 1-Bit Value (ARGB16-1555) | Alpha Blending 4-Bit Value (ARGB16-4444) | Alpha Blending 8-Bit Value (Converted Value) | % Blending |
---|---|---|---|
0x0 | 0x0 | 0x00 | 100% (transparent) |
N/A | 0x1 | 0x11 | 93.33% |
N/A | 0x2 | 0x22 | 86.6% |
N/A | ... | ... | ... |
N/A | 0xE | 0xEE | 6.6% |
0x1 | 0xF | 0xFF | 0% (opaque) |
Premultiplied Alpha and Alpha Output Generation
The source image in ARGB format may have its RGB component already premultiplied with the alpha (AR'G'B') where:
In that case, the processing is as follows:
The premultiplied alpha option is accessible through the DSS0_VID_ATTRIBUTES[28] PREMULTIPLYALPHA register bit of the input pipeline. The following settings are available:
When the write-back channel copies back to memory the premultiplied color component, the the alpha value is computed as follows:
A(dst) = A(src)+(1-A(src)A(dst))
When the DSS0_WB_ATTRIBUTES[9] ALPHAENABLE register bit is cleared or when the overlay channel is not selected for write-back, the computation of the A(dst) is disabled.
There is no alpha blending between the background and the next layer (layer-0) above it.
Layer-0 cannot be pre-multiplied, if the overlay output is driving the display, since that layer (or the background color) defines the bottom most layer. In this case, layer-0 alpha is 1 always.
Lyaer-0 can have an alpha value other than 1 when the overlay output is only used to generate an intermediate layer composition result in a memory-to-memory operation (through the WB pipeline). But, if alpha is not 1, the resulting data will be "pre-multiplied". If a non-premultiplied data is required, the resulting overlay output must be fed through a Porter-Duff compositing engine to have the result divided by the overlay alpha output.