I'm trying to understand how works the ADV212 and i'm in front of a problem.
I'm trying to create an ADV212 master on FPGA, the image i have is 1750 pixels * 512 lines. I'm going to send it by frames of 64*64 which means 219 (<610 max) frames. For the moment, I'm trying to put in place a Raw pixel mode utilisation with JDATA on ADV212 which will allow me to send and receive data at the same time, and i have some questions.
In Encode mode i have to send DATA (one frame after another) on VDATA bus using the control signals VSTRB/VFRM/VRDY. The ADV212 will return compressed data on JDATA Bus as soon as VALID is high and HOLD is down. But how do i know how many DATA it is going to send me back? How do i know that the compression is over?
In Decode mode, i send COMPRESSED DATA on JDATA bus (no frames, just compressed data sent when VALID is high) and it has to send me back decompressed data on VDATA bus. It assigns VRDY and VFRM and i have to assign VSTRB. How do i know when to put VSTRB down? How many frames is it going to send me back?
Maybe there is a clear explanation somewhere but i couldn't find it. I read ADV202/212 Output Formats but my questions aren't answered. I can see that in the header (for encode mode) it returns size of compressed data on 4 bytes. Do i have to catch that information thanks to ATTR_TYPE = 4? And how does it know this size? Thanks to the XTOT and YTOT that i configured in the initialization?
I think i'm mixing information and that's why i'm a little bit lost. Could anyone clarify those things for me?