SPRUIE9D May 2017 – May 2024 DRA74P , DRA75P , DRA76P , DRA77P
The CAL DPCM decoder block only processes data tagged as DAT_PIX_FS, DAT_PIX_LS, DAT_PIX, DAT_PIX_LE and DAT_PIX_FE (as defined in Figure 9-10, CAL Data Pipeline TAGs). All other data types or data belonging to CPORTs, where DPCM encode/decode is disabled, is simply forwarded. Software selects which CPORT a given pixel processing context must process by setting the CAL_PIX_PROC_i[23:19] CPORT register bit-field to the CPORT ID. The DPCM decompression operation is selected though the CAL_PIX_PROC_i[9:5] DPCMD bit-field, and the DPCM compression operation is selected though the CAL_PIX_PROC_i[15:11] DPCME bit-field.
PIX_DAT_FS and PIX_DAT_LS tags initialize the DPCM encoder.
PIX_DAT_FS and PIX_DAT_LS tags initialize the DPCM decoder, except when the previous TAG received on that context was DPCM_INIT. DPCM_INIT copies the received word into the context status register of the DPCM decoder and discards the initialization word (that is, it is not forwarded to the next pipeline stage). The next word of four pixels received on that context is DPCM decoded and the usual initialization step is skipped. That feature is intended to enable DPCM decoding of an image in multiple vertical stripes without re-decoding each line from the beginning (see Section 9.2.3.8.1, for more details).
Codec | Predictor | Decode | Encode | Performance |
---|---|---|---|---|
10 - 8 - 10 | Predictor 1 | YES | YES | 4 px/cyc |
10 - 8 - 10 | Predictor 2 | |||
10 - 7 - 10 | Predictor 1 | YES | 4 px/cyc | |
10 - 7 - 10 | Predictor 2 | YES | 1 px/cyc | |
10 - 6 - 10 | Predictor 1 | YES | 4 px/cyc | |
10 - 6 - 10 | Predictor 2 | YES | 1 px/cyc | |
12 - 8 - 12 | Predictor 1 | YES | YES | 4 px/cyc |
12 - 8 - 12 | Predictor 2 | |||
12 - 7 - 12 | Predictor 1 | YES | 4 px/cyc | |
12 - 7 - 12 | Predictor 2 | |||
12 - 6 - 12 | Predictor 1 | YES | 4 px/cyc | |
12 - 6 - 12 | Predictor 2 | |||
14 - 10 - 14 | Predictor 1 | YES | YES | 4 px/cyc |
14 - 10 - 14 | Predictor 2 | |||
14 - 8 - 14 | Predictor 1 | YES | YES | 4 px/cyc |
14 - 8 - 14 | Predictor 2 | |||
16 - 12 - 16 | Predictor 1 | YES | YES | 4 px/cyc |
16 - 12 - 16 | Predictor 2 | |||
16 - 10 - 16 | Predictor 1 | YES | YES | 4 px/cyc |
16 - 10 - 16 | Predictor 2 | |||
16 - 8 - 16 | Predictor 1 | YES | YES | 4 px/cyc |
16 - 8 - 16 | Predictor 2 |
The DPCM encoder and decoder are independent. They preserve state for each of the pixel processing contexts (number defined in CAL_HL_HWINFO[12:8] PCTX register bit-field), so that the encoder and the decoder context can be swapped with 4-pixel granularity.
The DPCM encoder and decoder can stall the incoming pixel from the pixel extraction block, if it arrives faster than what they can handle (that is, PREDICTOR2 selection or dataflow stalled by the pixel packing stage/write DMA).