The Gamma LUT supports bi-directional data throttling between its AXI4-Stream slave and master interfaces. If the slave side data source is not providing valid data samples ( s_axis_video_tvalid is not asserted), the core cannot produce valid output samples after its internal buffers are depleted. Similarly, if the master side interface is not ready to accept valid data samples ( m_axis_video_tready is not asserted) the core cannot accept valid input samples after its buffers become full.
If the master interface is able to provide valid samples ( s_axis_video_tvalid is High) and the slave interface is ready to accept valid samples ( m_axis_video_tready is High), typically the core can process and produce one, two, or four pixels specified by Samples Per Clock in the Vivado ® Integrated Design Environment (IDE) per ap_clk cycle.
However, at the end of each scan line and frame the core flushes internal pipelines for several clock cycles, during which the s_axis_video_tready is deasserted signaling that the core is not ready to process samples.
When the Gamma LUT is processing timed streaming video (which is typical for most video sources), the flushing periods coincide with the blanking periods and therefore do not reduce the throughput of the system.
When operating on a streaming video source (that is, not frame buffered data), the Gamma LUT must operate minimally at the burst data rate. For example, 148.5 MHz for a 1080p60 video source for a one sample per clock configuration of the IP. For a 4K 60 fps video source, the core must operate at 297 MHz for a two sample per clock configuration, or 148.5 MHz for a four sample per clock configuration on slower devices such as Artix ® -7.