*** tpb has joined #timvideos | 00:00 | |
*** rohitksingh_work has joined #timvideos | 04:12 | |
*** sb0 has quit IRC | 05:03 | |
*** sb0 has joined #timvideos | 05:32 | |
*** Bertl_zZ is now known as Bertl | 05:42 | |
*** ssk1328 has joined #timvideos | 05:50 | |
mithro | ssk1328: ping? | 05:56 |
---|---|---|
ssk1328 | mithro: pong! | 05:57 |
mithro | ssk1328: where are you at with things? | 05:57 |
ssk1328 | mithro: Fixed the errors in float arithmetic and tested on hardware with CSR | 05:57 |
ssk1328 | mithro: With a little help from _florent_ | 05:58 |
ssk1328 | mithro: Also added LUT module for CSC conversion | 05:58 |
ssk1328 | mithro: I am looking at RLE stuff right now | 05:59 |
mithro | ssk1328: So, what does the CSR stuff do at the moment? | 05:59 |
ssk1328 | mithro: Completing the things in C code and then look at how to do that in hardware | 05:59 |
ssk1328 | mithro: I have added relevant functions in firmware ci.c | 05:59 |
ssk1328 | mithro: We can give input to float multiplier at HDMI2USB promt and get the output there | 06:00 |
ssk1328 | This is all in the float-arith branch of my forked HDMI2USB-misoc-firmware repo | 06:01 |
mithro | ssk1328: So, I think a better thing to work on now is doing a static combination of two video frames | 06:01 |
ssk1328 | mithro: So I shoudl skip the RLE things for later? | 06:02 |
mithro | ssk1328: For now, I think so | 06:03 |
ssk1328 | mithro: Ok | 06:03 |
mithro | ssk1328: So the idea here is that you can set the output to be a combination of two inputs with a static multiplier | 06:03 |
ssk1328 | mithro: I am supposed to use my float multiplier or '*' in C | 06:04 |
ssk1328 | The latter refers to standard C multiply | 06:05 |
mithro | ssk1328: The command might be something like "video_matrix fade <source0> <source1> <sink1> <time period> <starting multiplier> <ending multiplier>" | 06:05 |
mithro | s/sink1/sink0/ | 06:06 |
mithro | IE "video_matrix fade pattern input0 output0 2 0 100" | 06:06 |
mithro | Which would cause the output0 to fade between the pattern and input0 over 2 seconds | 06:07 |
ssk1328 | mithro: What exactly is starting/ending multiplier | 06:08 |
mithro | ssk1328: Most of the time it would be 0 and 100 | 06:09 |
ssk1328 | mithro: I mean what does it represent? | 06:10 |
mithro | ssk1328: It is the value use to multiply the two frames together in the mixing equation "output = input0 * m + input1 * (1 - m)" | 06:10 |
mithro | ssk1328: actually you can start even simpler | 06:11 |
mithro | ssk1328: Maybe "video_matrix mix <source0> <source1> <sink0> <multiplier>" | 06:12 |
ssk1328 | mithro: And here multiplier is a % between 0 and 100, and will be used a m in that mixing equation | 06:13 |
mithro | IE "video_matrix fade pattern input0 output0 50" would mean output0 has an image which has every pixel being 50% of pattern and 50% of input0 | 06:13 |
ssk1328 | mithro: One more thing, the multiplier for mixing equation, I will have to use my float multiplier right? | 06:14 |
mithro | ssk1328: can you confirm this pull request contains your stuff -> https://github.com/timvideos/HDMI2USB-misoc-firmware/pull/270 | 06:14 |
tpb | Title: WIP: Floating point pixel manipulation by mithro · Pull Request #270 · timvideos/HDMI2USB-misoc-firmware · GitHub (at github.com) | 06:14 |
mithro | ssk1328: Yes | 06:14 |
mithro | ssk1328: the pixel mixing should be done in hardware using your float multiplication hardware blocks | 06:15 |
ssk1328 | mithro: You discussed some timing related things that I would have to study If i am to add my float stuff to video pipeline | 06:15 |
mithro | ssk1328: that fade obviously needs to run at the pixel clock | 06:16 |
ssk1328 | mithro: This means that at every pixel clock cycle one pixel output should be available for sink0 | 06:18 |
mithro | ssk1328: yes | 06:18 |
mithro | ssk1328: and that pixel should be a mix of the two inputs | 06:19 |
ssk1328 | mithro: And each of the pipeline I will be adding in between, like RBG to float16 conversion and float arithmetic should work at that pixel clock | 06:19 |
mithro | ssk1328: yes | 06:19 |
mithro | ssk1328: The pipeline will eventually get bigger once you add in the proper gamma correction stuff | 06:20 |
ssk1328 | mithro: And the pixel clock frequency depends on resolution or is it fixed? | 06:20 |
mithro | ssk1328: Depends on the output resolution | 06:20 |
ssk1328 | mithro: I guess we fix it by choosing the mode in processor.c | 06:21 |
ssk1328 | *find | 06:21 |
mithro | ssk1328: 1080p60 has a pixel clock around 150MHz | 06:21 |
mithro | ssk1328: 720p60 has a pixel clock around 75MHz | 06:22 |
ssk1328 | mithro: Is there a way I can verify each stage of my pipeline adheres to this? | 06:22 |
mithro | ssk1328: You can set timing constraints on the right signals | 06:23 |
mithro | ssk1328: So, you have all of conversion + the multiplication + addition blocks | 06:24 |
mithro | ssk1328: So the next step is to plug this into the video output pipeline | 06:25 |
ssk1328 | mithro: The thing you said about setting timing constraints on right signals? Where exactly o you set this whil synthesizing in Xilinx? | 06:26 |
mithro | ssk1328: Then you add firmware code which lets you vary the pixel multiplier over time -- in a similar vein to heartbeat code | 06:27 |
mithro | ssk1328: Then once you have that done, you can look at doing the mask generator which lets you do more complex fade where not every pixel is using the same multiplier value. | 06:27 |
ssk1328 | mithro: So basically I can do the first step of adding everything in video pipeline without adding anything to firmware, and once that works, I add the mixing equation in firmware | 06:31 |
mithro | ssk1328: In litex you do something like https://github.com/enjoy-digital/litex/blob/9ae16c2f40b96ed58ea0e48447805eabd436942b/litex/boards/platforms/nexys_video.py#L154 | 06:32 |
tpb | Title: litex/nexys_video.py at 9ae16c2f40b96ed58ea0e48447805eabd436942b · enjoy-digital/litex · GitHub (at github.com) | 06:32 |
mithro | ssk1328: the mixing equation happens in hardware - the value used in the mixing equation comes from the firmware | 06:32 |
mithro | ssk1328: In the same way the video input / output is done in hardware - but the firmware tells it where in memory to write the data too/from | 06:33 |
ssk1328 | mithro: Okay got it | 06:34 |
mithro | ssk1328: I'm pretty sure you will need _florent_'s help to make this work | 06:37 |
ssk1328 | mithro: I will doing this in HDMI2USB-misoc-firmware's migen environment for now | 06:37 |
*** Bertl is now known as Bertl_oO | 06:38 | |
mithro | ssk1328: You could do this against https://github.com/enjoy-digital/opsis-soc (which is the nextgen stuff) but I don't quite know the state of that repo | 06:39 |
tpb | Title: GitHub - enjoy-digital/opsis-soc: Opsis SoC based on LiteX (at github.com) | 06:39 |
mithro | ssk1328: A script to get that stuff running is at https://gist.github.com/mithro/604da515edc1061a77a8ee6c1fe729e6 | 06:40 |
tpb | Title: Script to get all the enjoy-digital repos and set up a conda environment for using them in · GitHub (at gist.github.com) | 06:40 |
mithro | ssk1328: as we are quite tight on time, you should choose to do what ever you think is fastest | 06:41 |
ssk1328 | mithro: I am not too sure about this, wherever I get help fast | 06:42 |
mithro | ssk1328: The opsis-soc should work pretty similarly to the HDMI2USB-misoc-firmware but it uses the newer litex stuff | 06:42 |
mithro | ssk1328: however, if you are more comfortable just doing it on HDMI2USB-misoc-firmware - go ahead and do that | 06:43 |
ssk1328 | mithro: I haven't tried running the next-gen stuff on my opsis yet | 06:44 |
ssk1328 | mithro: I guess I will stick with older HDMI2USB-misoc-firmware | 06:45 |
mithro | ssk1328: okay | 06:45 |
*** rohitksingh_work has quit IRC | 06:47 | |
*** rohitksingh_work has joined #timvideos | 06:52 | |
*** rohitksingh_work has quit IRC | 08:24 | |
*** rohitksingh_work has joined #timvideos | 08:41 | |
mithro | ssk1328: Did you take a look at that pull request? | 09:04 |
*** rohitksingh_work has quit IRC | 09:19 | |
*** rohitksingh_work has joined #timvideos | 09:22 | |
*** ssk1328 has quit IRC | 09:35 | |
*** danielki has joined #timvideos | 09:53 | |
*** danielki has quit IRC | 10:09 | |
*** danielki has joined #timvideos | 10:22 | |
*** sb0 has quit IRC | 11:26 | |
*** panther has joined #timvideos | 12:08 | |
*** panther is now known as sab_123 | 12:08 | |
*** panther_ has joined #timvideos | 12:26 | |
*** sab_123 has quit IRC | 12:29 | |
*** panther_ is now known as sab_123 | 12:39 | |
*** rohitksingh_work has quit IRC | 13:35 | |
*** rohitksingh has joined #timvideos | 14:35 | |
*** sb0 has joined #timvideos | 14:35 | |
*** danielki has quit IRC | 14:42 | |
*** rohitksingh has quit IRC | 14:50 | |
*** rohitksingh has joined #timvideos | 14:51 | |
*** rohitksingh has quit IRC | 15:08 | |
*** rohitksingh has joined #timvideos | 15:10 | |
*** rohitksingh has quit IRC | 15:23 | |
*** ssk1328 has joined #timvideos | 16:55 | |
*** sb0 has quit IRC | 17:02 | |
*** danielki has joined #timvideos | 17:06 | |
*** sab_123 has quit IRC | 17:19 | |
*** nueces has joined #timvideos | 19:16 | |
*** nueces has quit IRC | 20:33 | |
*** nueces has joined #timvideos | 20:40 | |
*** Bertl_oO is now known as Bertl_zZ | 20:46 | |
*** ssk1328 has quit IRC | 21:35 | |
*** nueces has quit IRC | 22:34 | |
*** danielki has quit IRC | 23:12 |
Generated by irclog2html.py 2.13.1 by Marius Gedminas - find it at mg.pov.lt!