Wednesday, 2016-07-20

*** tpb has joined #timvideos00:00
*** rohitksingh_work has joined #timvideos04:12
*** sb0 has quit IRC05:03
*** sb0 has joined #timvideos05:32
*** Bertl_zZ is now known as Bertl05:42
*** ssk1328 has joined #timvideos05:50
mithrossk1328: ping?05:56
ssk1328mithro: pong!05:57
mithrossk1328: where are you at with things?05:57
ssk1328mithro: Fixed the errors in float arithmetic and tested on hardware with CSR05:57
ssk1328mithro: With a little help from _florent_05:58
ssk1328mithro: Also added LUT module for CSC conversion05:58
ssk1328mithro: I am looking at RLE stuff right now05:59
mithrossk1328: So, what does the CSR stuff do at the moment?05:59
ssk1328mithro: Completing the things in C code and then look at how to do that in hardware05:59
ssk1328mithro: I have added relevant functions in firmware ci.c05:59
ssk1328mithro: We can give input to float multiplier at HDMI2USB promt and get the output there06:00
ssk1328This is all in the float-arith branch of my forked HDMI2USB-misoc-firmware repo06:01
mithrossk1328: So, I think a better thing to work on now is doing a static combination of two video frames06:01
ssk1328mithro: So I shoudl skip the RLE things for later?06:02
mithrossk1328: For now, I think so06:03
ssk1328mithro: Ok06:03
mithrossk1328: So the idea here is that you can set the output to be a combination of two inputs with a static multiplier06:03
ssk1328mithro: I am supposed to use my float multiplier or '*' in C06:04
ssk1328The latter refers to standard C multiply06:05
mithrossk1328: The command might be something like "video_matrix fade <source0> <source1> <sink1> <time period> <starting multiplier> <ending multiplier>"06:05
mithroIE "video_matrix fade pattern input0 output0 2 0 100"06:06
mithroWhich would cause the output0 to fade between the pattern and input0 over 2 seconds06:07
ssk1328mithro: What exactly is starting/ending multiplier06:08
mithrossk1328: Most of the time it would be 0 and 10006:09
ssk1328mithro: I mean what does it represent?06:10
mithrossk1328: It is the value use to multiply the two frames together in the mixing equation "output = input0 * m + input1 * (1 - m)"06:10
mithrossk1328: actually you can start even simpler06:11
mithrossk1328: Maybe "video_matrix mix <source0> <source1> <sink0> <multiplier>"06:12
ssk1328mithro: And here multiplier is a % between 0 and 100, and will be used a m in that mixing equation06:13
mithroIE "video_matrix fade pattern input0 output0 50" would mean output0 has an image which has every pixel being 50% of pattern and 50% of input006:13
ssk1328mithro: One more thing, the multiplier for mixing equation, I will have to use my float multiplier right?06:14
mithrossk1328: can you confirm this pull request contains your stuff ->
tpbTitle: WIP: Floating point pixel manipulation by mithro · Pull Request #270 · timvideos/HDMI2USB-misoc-firmware · GitHub (at
mithrossk1328: Yes06:14
mithrossk1328: the pixel mixing should be done in hardware using your float multiplication hardware blocks06:15
ssk1328mithro: You discussed some timing related things that I would have to study If i am to add my float stuff to video pipeline06:15
mithrossk1328: that fade obviously needs to run at the pixel clock06:16
ssk1328mithro: This means that at every pixel clock cycle one pixel output should be available for sink006:18
mithrossk1328: yes06:18
mithrossk1328: and that pixel should be a mix of the two inputs06:19
ssk1328mithro: And each of the pipeline I will be adding in between, like RBG to float16 conversion and float arithmetic should work at that pixel clock06:19
mithrossk1328: yes06:19
mithrossk1328: The pipeline will eventually get bigger once you add in the proper gamma correction stuff06:20
ssk1328mithro: And the pixel clock frequency depends on resolution or is it fixed?06:20
mithrossk1328: Depends on the output resolution06:20
ssk1328mithro: I guess we fix it by choosing the mode in processor.c06:21
mithrossk1328:  1080p60 has a pixel clock around 150MHz06:21
mithrossk1328: 720p60 has a pixel clock around 75MHz06:22
ssk1328mithro: Is there a way I can verify each stage of my pipeline adheres to this?06:22
mithrossk1328: You can set timing constraints on the right signals06:23
mithrossk1328: So, you have all of conversion + the multiplication + addition blocks06:24
mithrossk1328: So the next step is to plug this into the video output pipeline06:25
ssk1328mithro: The thing you said about setting timing constraints on right signals? Where exactly o you set this whil synthesizing in Xilinx?06:26
mithrossk1328: Then you add firmware code which lets you vary the pixel multiplier over time -- in a similar vein to heartbeat code06:27
mithrossk1328: 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
ssk1328mithro: 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 firmware06:31
mithrossk1328: In litex you do something like
tpbTitle: litex/ at 9ae16c2f40b96ed58ea0e48447805eabd436942b · enjoy-digital/litex · GitHub (at
mithrossk1328: the mixing equation happens in hardware - the value used in the mixing equation comes from the firmware06:32
mithrossk1328: 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/from06:33
ssk1328mithro: Okay got it06:34
mithrossk1328: I'm pretty sure you will need _florent_'s help to make this work06:37
ssk1328mithro: I will doing this in HDMI2USB-misoc-firmware's migen environment for now06:37
*** Bertl is now known as Bertl_oO06:38
mithrossk1328: You could do this against (which is the nextgen stuff) but I don't quite know the state of that repo06:39
tpbTitle: GitHub - enjoy-digital/opsis-soc: Opsis SoC based on LiteX (at
mithrossk1328: A script to get that stuff running is at
tpbTitle: Script to get all the enjoy-digital repos and set up a conda environment for using them in · GitHub (at
mithrossk1328: as we are quite tight on time, you should choose to do what ever you think is fastest06:41
ssk1328mithro: I am not too sure about this, wherever I get help fast06:42
mithrossk1328: The opsis-soc should work pretty similarly to the HDMI2USB-misoc-firmware but it uses the newer litex stuff06:42
mithrossk1328: however, if you are more comfortable just doing it on HDMI2USB-misoc-firmware - go ahead and do that06:43
ssk1328mithro: I haven't tried running the next-gen stuff on my opsis yet06:44
ssk1328mithro: I guess I will stick with older HDMI2USB-misoc-firmware06:45
mithrossk1328: okay06:45
*** rohitksingh_work has quit IRC06:47
*** rohitksingh_work has joined #timvideos06:52
*** rohitksingh_work has quit IRC08:24
*** rohitksingh_work has joined #timvideos08:41
mithrossk1328: Did you take a look at that pull request?09:04
*** rohitksingh_work has quit IRC09:19
*** rohitksingh_work has joined #timvideos09:22
*** ssk1328 has quit IRC09:35
*** danielki has joined #timvideos09:53
*** danielki has quit IRC10:09
*** danielki has joined #timvideos10:22
*** sb0 has quit IRC11:26
*** panther has joined #timvideos12:08
*** panther is now known as sab_12312:08
*** panther_ has joined #timvideos12:26
*** sab_123 has quit IRC12:29
*** panther_ is now known as sab_12312:39
*** rohitksingh_work has quit IRC13:35
*** rohitksingh has joined #timvideos14:35
*** sb0 has joined #timvideos14:35
*** danielki has quit IRC14:42
*** rohitksingh has quit IRC14:50
*** rohitksingh has joined #timvideos14:51
*** rohitksingh has quit IRC15:08
*** rohitksingh has joined #timvideos15:10
*** rohitksingh has quit IRC15:23
*** ssk1328 has joined #timvideos16:55
*** sb0 has quit IRC17:02
*** danielki has joined #timvideos17:06
*** sab_123 has quit IRC17:19
*** nueces has joined #timvideos19:16
*** nueces has quit IRC20:33
*** nueces has joined #timvideos20:40
*** Bertl_oO is now known as Bertl_zZ20:46
*** ssk1328 has quit IRC21:35
*** nueces has quit IRC22:34
*** danielki has quit IRC23:12

Generated by 2.13.1 by Marius Gedminas - find it at!