Following provides the LSE general programming guideline.
It also captures an additional secondary specific use case configuration values for some registers.
- Frame Size = 1920x1080
- Output Block size = 64x32
- Luma data being consumed by MSC and Chroma is written out by UDMA
- Block to line conversion done for Luma data via SL2.
- Chroma data is written out at block level.
- Circular buffer size just to do ping-pong between LDC – MSC(Y) and LDC – UDMA(C)
- 12-bit pixel data
- Pixel Data Format
- LDC_CORE_LSE_BUF_CFG_j (PIX_FMT_PW,
PIX_FMT_CNTRSZ, and PIX_FMT_ALIGN) parameters define the pixel output
data format for this output channel.
- Common data formats:
- Fully packed 12-bit : PIX_FMT_PW=1, PIX_FMT_CNTRSZ=1, PIX_FMT_ALIGN=0
- 12-bit unpacked (MSB aligned) : PIX_FMT_PW = 1, PIX_FMT_CNTRSZ=2, PIX_FMT_ALIGN=1
- Output SL2 Circular Buffer Configuration
- LDC_CORE_LSE_BUF_ATTR0_j (buf_stride) – define
the line stride size (must be 64 byte multiple)
- LDC_CORE_LSE_BUF_ATTR0_j[15-6] BUF_STRIDE = 2880 (1920 *
1.5)
- LDC_CORE_LSE_BUF_ATTR0_j[15-6] BUF_STRIDE = 96 (64 * 1.5)
- LDC_CORE_LSE_BUF_ATTR0_j (cbuf_size) – define the
size of the circular buffer in the SL2 (number of lines)
- LDC_CORE_LSE_BUF_ATTR0_j[24-16] CBUF_SIZE = 68 (2*OBH+4)
- LDC_CORE_LSE_BUF_ATTR0_j[24-16] CBUF_SIZE = 64 (2*OBH)
- Output SL2 Circular Buffer 2D mode Configuration (applicable for LDC only - TBD)
- LDC_CORE_LSE_BUF_ATTR1_j (buf_blk_width) –
defines the number of bytes equivalent to OBW (output block width)
pixels.
- LDC_CORE_LSE_BUF_ATTR1_j.buf_blk_width = 96 (64*1.5)
- LDC_CORE_LSE_BUF_ATTR1_j (cbuf_bpr) – defines the
number of 2D blocks per row in the SL2 circular buffer.
- LDC_CORE_LSE_BUF_ATTR1_j[25-16] CBUF_BPR_CHAN = 30
- LDC_CORE_LSE_BUF_ATTR1_j[25-16] CBUF_BPR_CHAN = 1
- Base Address and Channel Enable:
- LDC_CORE_LSE_BUF_BA_j[23-6] ADDR – defines the
SL2 base address of the Circular buffer for this output channel.
- LDC_CORE_LSE_BUF_BA_j[31] ENABLE – enables this
output channel.