What values to use for minimum blancking for a pixel streaming interface
Info
This question is closed. Reopen it to edit or answer.
Show older comments
I'm using the pixel streaming interface to analyse some HDL supported blocks, basically tying to get mroe details on timing and the number of clock cycles needed to produce an output, the goal is to get a detailed understanding that would allow me to actually put these as generic equations and attempt to estimate timing for larger inputs.
The block I'm testing now is the Image Filter block, timing and clock cycles are dependent on the values chosen for blanking, I'm unsure about those, is there a rule to pick the minimum values for blanking when you have a custom input? say I have a 4 by 4 input I'm feeding into the filter, what would be the minimum blanking value I'd need to produce a valid output? till now I've been just trying different values until I get valid results.
Any information on what happens inside the Image Filter block would be appreciated too, I'm assuming it used the cotnrol signal to buffer the valid pixels into FIFOs then pop out elements to produce a valid window which is multiplied and accumulated by the filter.
Answers (1)
Bharath Venkataraman
on 21 May 2019
0 votes
Typical video interfaces (240p and higher resolution) will have sufficient blanking, so one way to go is to pick blanking requirements from the closest resolution. Blanking intervals are listed in a table in the help page for the Frame To Pixels block.
For the Image Filter, a good back of the envelope calculation is to have the blanking twice the kernel size. based on the Image Filter block documentation, the blanking also needs to be greater than the latency of the block.
You can send the input and output signals of the Image Filter block to the Logic Analyzer to quickly determine the latency.
8 Comments
Alla
on 21 May 2019
Bharath Venkataraman
on 21 May 2019
Edited: Bharath Venkataraman
on 21 May 2019
If you send the input and output signals for the Image Filter block to the Logic Analyzer in Simulink, you can see the latency of block.
There is no way to look inside the block to see the latency within it.
One way to fix the latency to be constant is by using coefficients from the input port in which case the latency is constant since no optimizations are applied.
Bharath Venkataraman
on 23 May 2019
Could you please tell the purpose of determining the latency? The pixel control signals will tell you when to use the output of the Image Filer and the Pixel Stream Alsigner block that can help you align two streams.
Alla
on 23 May 2019
Bharath Venkataraman
on 23 May 2019
Edited: Bharath Venkataraman
on 23 May 2019
it's difficult to define what latency means, so I've attached a model that computes two different kinds of latency - the number of steps between vStart for the input and output of Image Filter, and the number of steps between hStart for the input and output of Image Filter.
For the model shown with 240p video, we have 402 steps in each line. Given this and the default image filter coefficient, you can see that we compute 22 steps between hStart In and hStart Out and 424 steps between vStart In and vStart Out.
Hope this helps.
Bharath Venkataraman
on 24 May 2019
In that case, I think it is best if you run the HDL code in the HDL simulator to see the latency. The line buffer code is in a separte entity so if you look at the vStart and processData coming out of the module in a waveform viewer, it's pretty easy to track down the latency.
This question is closed.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!