SPRUIE9D May 2017 – May 2024 DRA74P , DRA75P , DRA76P , DRA77P
Individual register field restrictions are stated in the VTNF Initialization section. Besides those, SIMCOP programming must provide sufficient image buffer(s) with correct address offset to cover the C, P, and O arrays for VTNF input and output.
The line offset VTNF_LOFST should be programmed to be equal to or greater than BLKW[15:0] VTNF_SZ
Assuming size = VTNF_LOFST[15:4] LOFST * VTNF_SZ[31:16] BLKH * 1.5 block size in bytes.
C_range, P_range, O_range must map to valid memory.
C and P must not overlap. O can overlap C or P, however, it must be a complete overlap, O = C or O = P.
In Figure 9-199, cases (a), (b), and (c) are valid use cases. (a) has no overlap. (b) has complete overlap between O and C. (c) has complete overlap between O and P.
Cases (d) and (e) are invalid use cases. Case (d) has C and P overlap, so VTNF cannot read C[i] for certain range of i. Case (e) has O and P overlap.
In case overlapping conditions are present to render the use case invalid, outcome is indeterminate.
As each block is aligned to 128-bit, over-writing O[i] upon C[i] or P[i] would maximize memory utilization and block size flexibility.
Implementation must take care in luma/chroma read/write accesses so that overlapping cases do work.