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
- VPAC_LDC_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
- VPAC_LDC_LSE_BUF_ATTR0_j (buf_stride) – define the line stride size (must be 64 byte multiple)
- VPAC_LDC_LSE_BUF_ATTR0_j[15-6] BUF_STRIDE = 2880 (1920 * 1.5)
- VPAC_LDC_LSE_BUF_ATTR0_j[15-6] BUF_STRIDE = 96 (64 * 1.5)
- VPAC_LDC_LSE_BUF_ATTR0_j (cbuf_size) – define the size of the circular buffer in the SL2 (number of lines)
- VPAC_LDC_LSE_BUF_ATTR0_j[24-16] CBUF_SIZE = 68 (2*OBH+4)
- VPAC_LDC_LSE_BUF_ATTR0_j[24-16] CBUF_SIZE = 64 (2*OBH)
- Output SL2 Circular Buffer 2D mode Configuration (applicable for LDC only - TBD)
- VPAC_LDC_LSE_BUF_ATTR1_j (buf_blk_width) – defines the number of bytes equivalent to OBW (output block width) pixels.
- VPAC_LDC_LSE_BUF_ATTR1_j.buf_blk_width = 96 (64*1.5)
- VPAC_LDC_LSE_BUF_ATTR1_j (cbuf_bpr) – defines the number of 2D blocks per row in the SL2 circular buffer.
- VPAC_LDC_LSE_BUF_ATTR1_j[25-16] CBUF_BPR_CHAN = 30
- VPAC_LDC_LSE_BUF_ATTR1_j[25-16] CBUF_BPR_CHAN = 1
- Base Address and Channel Enable:
- VPAC_LDC_LSE_BUF_BA_j[23-6] ADDR – defines the SL2 base address of the Circular buffer for this output channel.
- VPAC_LDC_LSE_BUF_BA_j[31] ENABLE – enables this output channel.