1.5.3. Frame Buffering
During a pointer swap, the design swaps the input buffer pointer with the processing buffer. The samples in the new processing buffer are ready for image processing. Likewise, the design swaps the processing buffer pointer with the output buffer. Then the processed video frame is ready for the design to output. The design swaps the output buffer pointer with the input buffer.
To ensure the design does not swap the processing buffer before it processes an image frame, the pointer change occurs only when image processing on a video frame is complete. The ARM processor informs the mSGDMA of a frame process completion via the FPGA-ARM AXI connection bus. To ensure the input buffer is filled, the swap must also occur only on the start of a new video frame. Processing a video frame can take longer than 1/60 seconds because of algorithmic complexity and the amount of pixel data in one frame, so the design may drop video frames, decreasing the output frame rate.