Thursday, 2015-11-19

*** tpb has joined #timvideos00:00
*** CarlFK has quit IRC00:45
*** CarlFK has joined #timvideos01:08
*** ChanServ sets mode: +v CarlFK01:08
CarlFKif I run 2 instances of melt that write to the same output file.... what happens ?01:30
CarlFKone is 90% done, one is 92% done01:31
CarlFKI am guessing I should kill the one that started first01:31
CarlFKI am guessing I should have killed them both and started over01:50
mithroysionneau: ping me when you get up01:51
*** springermac has quit IRC02:19
*** springermac has joined #timvideos02:20
*** Kripton has quit IRC02:26
*** miselin has quit IRC02:26
*** miselin has joined #timvideos02:27
*** Kripton has joined #timvideos02:27
*** Niharikaway is now known as Niharika03:02
*** CarlFK has quit IRC04:09
*** CarlFK has joined #timvideos04:24
*** ChanServ sets mode: +v CarlFK04:24
*** Bertl_oO is now known as Bertl_zZ04:56
*** sb0_ has joined #timvideos06:14
*** travis-ci has joined #timvideos06:37
travis-ci[timvideos/HDMI2USB-misoc-firmware/pipstrello#295] (3648d3d): The build passed. (https://travis-ci.org/timvideos/HDMI2USB-misoc-firmware/builds/91334132)06:37
*** travis-ci has left #timvideos06:37
*** se6astian|away is now known as se6astian08:03
*** CarlFK has quit IRC08:14
*** sb0_ has quit IRC09:20
*** Bertl_zZ is now known as Bertl09:53
ysionneaumithro: pong10:17
mithroysionneau: how are things going? I see you pushed some changes for the crc stuff on the HDMI input?10:17
mithroysionneau: which was kind of strange, I thought you'd work on the HDMI output stuff first as you have access to a device which has output capabilities?10:18
ysionneauI took a bit of time to read the hdmi in/out gateware code + how it articulates with the lm32 software10:19
ysionneauyes maybe it was not the smartest idea, but that's what came in mind to be easier for a start10:19
ysionneauwith the drawback that I could not test it myself10:20
mithroysionneau: I actually think the HDMI output stuff is simpler too?10:21
ysionneaufor the hdmi out I have, the only source is the pattern source10:22
ysionneauwhich is generated by the lm32 IIUC10:22
ysionneauI didn't understand clearly where I would put a CRC computation then10:22
mithroysionneau: If I understand correctly, the lm32 generates a pattern into a frame buffer in the DDR10:23
ysionneauyes10:23
mithroysionneau: first step would be to calculate the CRC on the pattern frame buffer10:23
ysionneauwho would check this CRC then?10:24
*** travis-ci has joined #timvideos10:24
travis-ci[timvideos/HDMI2USB-misoc-firmware/master#297] (1a34258): The build has errored. (https://travis-ci.org/timvideos/HDMI2USB-misoc-firmware/builds/91993749)10:24
*** travis-ci has left #timvideos10:24
mithroysionneau: then as the HDMI output DMA's the frame buffer out it should also calculate the CRC on the pixels10:24
mithroysionneau: after the full frame has been output, you check that the CRC matches the one you calculated when generating it10:25
ysionneauhmmm10:26
ysionneauyou mean I check the CRC when the 1st stage of the hdmi_out "pipeline" is reading the data from DDR?10:26
mithroysionneau: yes, it checks that the frame hasn't been corrupted / changed in memory since it was written (and also that nothing goes wrong in the output stuff)10:29
ysionneauok now it's more clear for the checking crc rght after reading the frame from DDR10:29
ysionneaubut the "and also that nothing goes wrong in the output stuff" is not clear to me10:29
mithroysionneau: the same pixels that are getting sent out should be the pixels used for the CRC10:30
ysionneauyes but pixels sent out are transformed, and encoded etc, so I'm not sure I can check the CRC anymore10:30
ysionneauthe different hdmi_out stages are applying transformations to this pixel stream10:31
ysionneaumaybe you have in mind connecting HDMI_out to an HDMI_in port? (but I don't have the hdmi in port)10:32
mithroysionneau: yes, you need to do the CRC before the transform (although we could calculate the CRC on the transformed content too)10:32
ysionneaubefore the transform, to me, means "right after reading from DDR"10:32
mithroysionneau: I don't know if there is any buffering between the DDR and the output10:33
ysionneauI mean, the hdmi_out module is reading from ddr (and buffering, sure) by burst of lasmim.dw (data width) width10:34
ysionneauso I can get those burst and compute the CRC on them10:34
ysionneauthis I understand10:34
mithroysionneau: yes, so you want to put it as late as possible10:34
mithroIE the pixels are they are forwarded into the color space conversion stuff10:35
mithroEventually the idea is to have a self test mode, where you connect a laptop to input 1, then a HDMI cable from output 1 to input 2 - then you put a image with a known CRC on the laptop screen and check that you get the same value at each stage10:36
ysionneauthen I think computing CRC when hdmi_in dma into DDR, and checking when hdmi_out reads from DDR , and comparing from lm32, both, with a known one, would do the job10:39
ysionneauthe more crc you have, indeed, the more precise you have an idea about *where* the problem is10:39
ysionneauI agree about that10:39
ysionneaumaybe I'm wrong about where I would place those CRC generation/check10:41
ysionneaulet's ask _florent_ when he's around where he would put them10:41
ysionneauto me it seems the best place, and I don't think putting (for the case of the hdmi out) the crc further would catch bugs, since we would anyway put it at a stage where no serious transformation has been done10:42
ysionneauso there could be no change, so no crc change10:42
mithroysionneau: the problems I'm trying to identify at the moment are10:46
mithro * Issues with writing / reading the values from the memory10:47
mithro * Issues with pixel alignment10:47
mithroysionneau: eventually want a full self-test mode10:48
mithroysionneau: see some of the issues in https://github.com/timvideos/HDMI2USB-misoc-firmware/issues/13410:48
ysionneauok I see10:48
mithroysionneau: for example, we could start with a completely black frame, then a completely white frame, then a checkerboard, then some more test patterns10:48
ysionneauI don't know much about those things, but maybe some debugging on the v/hsync signals?10:49
ysionneauyou think it could be a "pixel integrity issue"?10:49
mithroysionneau: yes - I've asked cr1901_modern to take a look at getting some strong debugging around the v/hsync signals10:49
ysionneauthe sun picture it really looks (like you said) like an alignment issue10:50
ysionneausince the same "dashes" are seen from the black to white transition, and in the yellow to white (sun) transition10:50
mithroysionneau: the random white/black dashes in the image could be read/write errors10:51
mithroysionneau: did I ever show you https://warmcat.com/hardware%20design/hdmi/fpga/2015/10/23/hdmi-capture-and-analysis-fpga-project-4.html ?10:51
tpbTitle: HDMI Capture and Analysis FPGA Project 4 warmcat.com (at warmcat.com)10:51
mithroysionneau: I want to get the same stats he is generating in that json dump10:52
*** travis-ci has joined #timvideos10:52
travis-ci[timvideos/HDMI2USB-misoc-firmware/master#297] (1a34258): The build passed. (https://travis-ci.org/timvideos/HDMI2USB-misoc-firmware/builds/91993749)10:52
*** travis-ci has left #timvideos10:52
mithroysionneau: picture too -> https://warmcat.com/hdmi-fpga-stats.png10:52
ysionneauah yes I had a look at those pages, really interesting!10:52
mithroysionneau: btw it might be worth you purchasing a miniSpartan6+ with a LX2510:53
ysionneauoh, input and output, awesome10:54
ysionneauvery good idea10:54
ysionneauI'm ordering right now10:54
ysionneauLX25 is small though, but I've seen someone is porting the hdmi2usb to it10:55
ysionneauI'll have to go prepare lunch, but next target for me is to implement the crc for hdmi out, and compare with the known crc of the pattern11:04
ysionneauto see if my gateware crc integration stuff is OK11:04
ysionneau11:50 <@mithro> ysionneau: btw it might be worth you purchasing a miniSpartan6+ with a LX25 < ordered!11:04
mithroysionneau: great11:05
mithroysionneau: yeah, I'm pretty sure the input+output stuff will fix, unsure about the JPEG encoder11:06
ysionneaudo you have other pictures of issues, with for instance wrong pixels in the middle of some colour?11:11
ysionneauor something like that?11:11
ysionneau*afk lunch*11:12
*** se6astian is now known as se6astian|away12:03
* ysionneau is back12:23
_florent_ysionneau: I agree with mithro, just put CRC after the DMA and compute (with software) the CRC of the pattern12:36
_florent_ysionneau: as we discuss, the only thing you have to take care is that the data from lasmim are not necessary 32bits (use print(lasmim.dw) to know it)12:37
ysionneauyep that's a very good point12:37
ysionneauI need to pay attention to that12:37
ysionneauthanks for pointing that out12:37
_florent_ysionneau: but code should be generic and lamim.dw is different on Atlys and Opsis12:37
_florent_IIRC correctly it's 64bits for Atlys and 128bits for Opsis12:38
ysionneaubut the CRC module is adapting itself to the bus data width, isn't it?12:41
ysionneauthere's a data_width input parameter :o12:41
_florent_it's adapting, but for data_width < 3212:43
ysionneauouch, ok12:43
_florent_for data_width > 32 that's not implemented12:43
ysionneau13:33 < _florent_> ysionneau: I agree with mithro, just put CRC after the DMA  < right after the lasmi.Reader()?12:45
_florent_in fact the best place to put it is here:12:47
_florent_https://github.com/timvideos/HDMI2USB-misoc-firmware/blob/master/gateware/hdmi_out/phy.py#L21112:47
tpbTitle: HDMI2USB-misoc-firmware/phy.py at master · timvideos/HDMI2USB-misoc-firmware · GitHub (at github.com)12:47
_florent_and use the input signal of the chroma_upsampler12:47
_florent_data_width will be 16bits for the CRC12:47
_florent_input signal/input signals12:47
_florent_that's the datas from the DDR that have been downconverted to 16bits (y, cb_cr)12:48
_florent_this way, no need to modify CRC module12:49
ysionneauhmm ok, and that will procude the same CRC as the non-downconverted framebuffer?12:49
ysionneauproduce*12:49
_florent_yes, data are the same :)12:51
ysionneauok, thanks! that's what I was afraid of12:52
ysionneauoh, another thing, what's the best approach here, do like your "inserter" which appends the CRC at the end of the stream. The CRC would then be located at the end of the framebuffer, in DDR. Or write the CRC in some CSR?12:53
ysionneauhummm I guess that's a question for the hdmi_in, not for the out12:54
ysionneaufor the out I guess it's mandatory to be in CSR12:54
_florent_I see two options:12:56
_florent_- use CRCInserter (hdmi_in)  and the CRCChecker (hdmi_out)12:57
_florent_with that CRC will be written to memory12:57
ysionneauyep12:57
_florent_and checked by the gateware when read from memory12:57
_florent_but then you have to program the DMA with 4 additional bytes12:57
ysionneauyes, have an artificially "longer" framebuffer12:58
_florent_- use software CRC Engine and CSR and manage check in software12:58
ysionneauok, I tend to think the latter offers more flexibility, you can then have more "software probes" to read the csr and compare them12:58
_florent_but what will be more difficult here is to synchronize CRC values to be checked12:58
_florent_maybe first solution is easier in fact12:59
ysionneauhmmm12:59
ysionneauok12:59
_florent_and only consist of inserting CRCInserter/CRCChecker in the stream12:59
ysionneauyes I see12:59
ysionneauok, I guess I'll do that then12:59
_florent_but I'm just suggesting, see with mithro if that's what he needs12:59
ysionneauallright13:00
ysionneauthanks for the big help! Sorry for the bother, but I wanted to ask you since you are the one who wrote the gateware13:00
mithroI think either option could work13:02
mithroEither way we are going to end up with a C structure describing a frame13:03
ysionneauyes13:04
ysionneauwith framebuffer and crc field13:04
ysionneauand maybe other informations in the future13:05
mithroysionneau: yeah, we should also store size/width plus format13:06
*** rohitksingh has joined #timvideos14:12
*** CarlFK has joined #timvideos14:19
*** ChanServ sets mode: +v CarlFK14:19
*** _florent_ has quit IRC14:49
*** Bertl is now known as Bertl_zZ14:58
*** _florent_ has joined #timvideos15:09
*** rohitksingh has quit IRC16:14
*** rohitksingh has joined #timvideos16:30
*** rohitksingh has quit IRC16:44
*** _florent_ has quit IRC18:10
*** _florent_ has joined #timvideos18:19
*** Bertl_zZ is now known as Bertl19:18
*** se6astian|away is now known as se6astian19:34
*** se6astian is now known as se6astian|away19:51
*** se6astian|away is now known as se6astian19:54
*** se6astian is now known as se6astian|away20:04
*** se6astian|away is now known as se6astian20:06
*** se6astian is now known as se6astian|away20:32
*** se6astian|away is now known as se6astian20:38
*** se6astian is now known as se6astian|away21:03
*** se6astian|away is now known as se6astian22:13
*** se6astian is now known as se6astian|away22:14
*** CarlFK has quit IRC23:16

Generated by irclog2html.py 2.13.1 by Marius Gedminas - find it at mg.pov.lt!