01:07 | Spirit532 | left the channel | |
01:07 | Spirit532 | joined the channel | |
02:11 | illwieckz | joined the channel | |
02:24 | illwieckz | left the channel | |
02:25 | illwieckz | joined the channel | |
02:25 | illwieckz | left the channel | |
02:26 | illwieckz | joined the channel | |
02:26 | illwieckz | left the channel | |
02:26 | illwieckz | joined the channel | |
02:29 | apurvanandan[m] | Hi Bertl, Everything is now working perfectly on post place and route simulation too. Here are the simulation results: https://drive.google.com/open?id=1CGQdv3RswoLHQ1q9w4HtaWdbKB55Ali9
| |
02:29 | apurvanandan[m] | Sorry wrong link
| |
02:29 | apurvanandan[m] | Here is the correct one: https://drive.google.com/open?id=1sJhZLbG2oL8x0Fnl7T6myhYRS0fxcyIN
| |
02:30 | apurvanandan[m] | And https://drive.google.com/open?id=13Nm98KCBIYZPXKWEQmxrlrY60WjrHYtG
| |
02:30 | apurvanandan[m] | Please see and give suggestion!
| |
03:28 | Bertl_oO | excellent! will check tomorrow ... off to bed now.
| |
03:28 | Bertl_oO | changed nick to: Bertl_zZ
| |
05:56 | apurvanandan[m] | Bertl_oO: Can we use the single IOs for signalling the Zynq from the MachXO2 that the link has been trained?
| |
06:48 | BAndiT1983|away | changed nick to: BAndiT1983
| |
06:48 | BAndiT1983 | changed nick to: BAndiT1983|away
| |
07:49 | se6astian|away | changed nick to: se6astian
| |
08:28 | sebix | joined the channel | |
08:38 | sebix | left the channel | |
11:11 | hannes73 | joined the channel | |
11:18 | hannes73 | Hallo zusammen, danke Sebastian für die Einladung. Kurz zu mir: Wir, ein Startup aus Hinterglemm, tauschen uns seit ca. 2 Jahren mit Sebastian und Herbert zu Kameratechnologien aus. Weil unser erstes Entwicklungsziel sind, vollautomatische Kamerastrecken für die Übertragung von professionellen Sportevents. Wir haben schon Förderungen bekommen und a
| |
11:18 | hannes73 | rbeiten unter anderem mit dem OFAI in Wien zusammen. Jetzt suchen wir "Co-player", die Lust haben, mit uns zusammen, die Software, Holly (die KI) und auch die Machine Vision-Skills zu entwickeln. Dafür haben wir unsere ganz eigene Stellenausschreibung verfasst. Die findet ihr hier: https://www.playsys.at/join_us/. Würde mich freuen, wenn es die ein
| |
11:18 | hannes73 | e oder den anderen anspricht, bzw. jemand jemanden kennt oder teilen kann. Bei Fragen auch gerne jederzeit an mich wenden: *email address removed*, 0660 498 18 00. Vielen Dank und lieben Gruß. Danke auch an Sebastian für die Möglichkeit hier zu posten. Hannes
| |
12:12 | se6astian | changed nick to: se6astian|away
| |
12:42 | se6astian|away | changed nick to: se6astian
| |
12:47 | se6astian | changed nick to: se6astian|away
| |
13:59 | Bertl_zZ | changed nick to: Bertl
| |
13:59 | Bertl | morning folks!
| |
14:28 | hannes73 | left the channel | |
14:50 | Bertl | off for now ... bbl
| |
14:50 | Bertl | changed nick to: Bertl_oO
| |
16:26 | BAndiT1983|away | changed nick to: BAndiT1983
| |
16:50 | dev__ | joined the channel | |
16:57 | dev__ | Greeting BAndiT1983 ,
| |
16:57 | BAndiT1983 | hi dev__
| |
16:58 | dev__ | supragya_, will also join , may be
| |
16:58 | dev__ | This is my understanding of task: - Currently we are supplying info's related to processing of frames(downscaling(1/2, 1/3, 1/4 etc) and debayering algo ), space allocation, now we need to make a sparate module which can contain all these info (which are common for all frames) in a class called videoclip class.
| |
16:58 | dev__ | This videoclip class would contain parameters like debayering algo to be used, quality used for downscaling(if required) also methods for changing them, either by user or other modules(otherwise they may contain default values). once we have knowledge of processes(like downscale by 1/3) to be used on frames, we can easily allocate memory according to that( use InitAllocator() which can easily allocate size in mutliple of framesize).
| |
16:58 | dev__ | This will solve problem of memory waste.
| |
16:58 | dev__ | The class should have method which can be used to read bulk of files (each acting as frames) from a directory. I was thinking to use a large memory block agian and agian for each file and then processsing it. Or may be anything better we can come up.
| |
16:59 | BAndiT1983 | which infos should video clip class cotntain?
| |
17:00 | dev__ | info's related to processing methods to be used on frames
| |
17:00 | BAndiT1983 | who fills allocated space with data?
| |
17:00 | BAndiT1983 | does video clip really need it?
| |
17:00 | dev__ | Frames ..
| |
17:00 | BAndiT1983 | isn't the whole process a pipeline?
| |
17:01 | BAndiT1983 | frames are only a container for markers to allocated buckets, which are indexes (integers)
| |
17:01 | dev__ | It will be used for intraction between OCcore and frameserver
| |
17:01 | BAndiT1983 | what will be used?
| |
17:01 | dev__ | video clip class
| |
17:02 | BAndiT1983 | video clip class is only the container for frames and general info like resolution
| |
17:02 | BAndiT1983 | as i said, we have a pipeline, so why should the infos be placed in video clip class, which do not relate to it
| |
17:02 | BAndiT1983 | ?
| |
17:04 | BAndiT1983 | what is the process, when user changes downscaling or any other parameter from frame server UI?
| |
17:04 | BAndiT1983 | how it would trigger the right component to process changes?
| |
17:05 | sraj | joined the channel | |
17:05 | dev__ | process here refers to downscaling or debayering algo
| |
17:05 | dev__ | Good evening sraj
| |
17:05 | sraj | Hello everyone.. I'm living in a desert quite literally... :)
| |
17:05 | BAndiT1983 | it doesn't matter which one, as they derive from same class
| |
17:05 | BAndiT1983 | have you moved to Gobi?
| |
17:06 | sraj | Gobi? Where's that? Anyways... Meeting meeting
| |
17:06 | BAndiT1983 | Gobi Desert
| |
17:06 | BAndiT1983 | https://en.wikipedia.org/wiki/Gobi_Desert
| |
17:06 | sraj | That desert it is .. here
| |
17:06 | sraj | India - Pakistan border
| |
17:06 | BAndiT1983 | ah, i see
| |
17:07 | BAndiT1983 | there are several there, according to wiki
| |
17:07 | BAndiT1983 | hope it's not a punishment by Cisco for bad code ;)
| |
17:07 | sraj | My dad's posted here
| |
17:07 | BAndiT1983 | nevertheless, let's continue the journey through the debris of OC
| |
17:07 | BAndiT1983 | ah, i remember, military
| |
17:08 | BAndiT1983 | dev__, please go on with your explanations
| |
17:08 | sraj | Hmm... What I was trying to tell Dev was just that
| |
17:09 | sraj | Pipeline it will be... Frameserver a whole component in itself
| |
17:09 | sraj | Continue, dev
| |
17:09 | dev__ | yes.
| |
17:09 | BAndiT1983 | let me through in another term: event bus ;)
| |
17:09 | BAndiT1983 | will try to build OC in parallel here
| |
17:11 | sraj | It's better if you explain your whole thought on this matter Andrej
| |
17:11 | dev__ | why should the infos be placed in video clip class, which do not relate to it :- we need something which can set and change these info's that why it is placed in video clip class
| |
17:11 | BAndiT1983 | ok, ok, thought that the code would be known already
| |
17:11 | sraj | Dev could fill in the blanks later maybe... We need to proceed I guess
| |
17:12 | BAndiT1983 | i've implemented event bus a long time ago, to be able to aps messages between different modules, you can inspect OCBacckup code for direct examples
| |
17:12 | BAndiT1983 | but does video clip class really require this settings, like quality?
| |
17:13 | sraj | It needs it during memalloc and then we need to freeze the settings in Oc
| |
17:13 | BAndiT1983 | we can also hold the in pipeline settings
| |
17:13 | dev__ | it will help us to allocate memory
| |
17:13 | BAndiT1983 | which could be created in flexible way
| |
17:13 | dev__ | required memory*
| |
17:13 | sraj | Okay
| |
17:14 | BAndiT1983 | video clip could contain resolution and frame list, frames contain integers which are indexes to buckets in static allocator
| |
17:14 | BAndiT1983 | of some index is -1 or whatever, then the frame is not there and has to be loaded, afterwards set in the frame
| |
17:14 | BAndiT1983 | i mean the indexes to buckets set, e.g. RGB
| |
17:15 | sraj | Hmm.. so event bus... Sounds like event loop in js
| |
17:16 | BAndiT1983 | https://dzone.com/articles/design-patterns-event-bus
| |
17:16 | BAndiT1983 | https://medium.com/elixirlabs/event-bus-implementation-s-d2854a9fafd5
| |
17:16 | sraj | Dev, please save these links for reference
| |
17:17 | dev__ | yes
| |
17:17 | BAndiT1983 | logs are also there
| |
17:17 | BAndiT1983 | e.g. OCBackup uses event bus to trigger progress dialog window
| |
17:18 | BAndiT1983 | this allows to avoid to call it from presenter and also it could be used to trigger multiple things in the system, sadly i don't remember it that well at the moment
| |
17:19 | BAndiT1983 | but the first problem is still there, what is the order to allocate only the required memory
| |
17:19 | sraj | In easy way think of it like a event triggering functions where callbacks are registered
| |
17:19 | BAndiT1983 | will inspect the code and hope that the allocator does not allocate memory over and over and only ditches allocation map of buckets
| |
17:20 | sraj | *event triggered function
| |
17:20 | se6astian|away | changed nick to: se6astian
| |
17:20 | BAndiT1983 | nice examples in the docs there -> https://github.com/gelldur/EventBus
| |
17:21 | sraj | Hi se6astian
| |
17:21 | dev__ | Hello se6astian
| |
17:22 | sraj | BAndiT... So... Event bus is stable as of now?
| |
17:22 | sraj | Or one has to look into testing that as well
| |
17:23 | BAndiT1983 | it's been a while since then, so can'T say much
| |
17:23 | BAndiT1983 | but we need it, as otherwise it would result in some spaghetti code
| |
17:23 | sraj | Yup
| |
17:24 | BAndiT1983 | my qquestion is still not answered, how do we allocate buckets of required frame size and not more?
| |
17:25 | dev__ | If we know the quality parameter , THe InitAllocator can allocate the memory
| |
17:25 | dev__ | https://github.com/kakashi-Of-Saringan/opencine/blob/dev/Source/OCcore/Memory/StaticAllocator.cpp
| |
17:26 | dev__ | I am trying to keep a upper limit , here 15 mB
| |
17:26 | BAndiT1983 | what is the quality parameter?
| |
17:26 | dev__ | We are allocating memory in multiple of framesize and not more than that
| |
17:27 | Y_G | joined the channel | |
17:27 | dev__ | how much downscaling we need, 1/2 ,1/3 , 1/4 ..
| |
17:27 | sraj | There's 1/1 as well :P
| |
17:27 | dev__ | yes
| |
17:27 | BAndiT1983 | but that's not our result, what does it result in, when we set the parameter for downscaler?
| |
17:28 | BAndiT1983 | also there are other parameters which could be used later, but this just as food for reflection on the topic
| |
17:29 | dev__ | like , if I set 1/2 as a parameter , we only need h/2 * w/2 as framesize . The buffer of static allocator will be allocate size in mulyiple of k * framesize
| |
17:30 | dev__ | which will be less than 15 MB
| |
17:30 | sraj | 15MB maybe too less... Just saying #hyperparametertuning
| |
17:30 | dev__ | yes, may be , but we can change it
| |
17:31 | BAndiT1983 | i don't care about memory sizes at the moment
| |
17:31 | BAndiT1983 | it's important to understand the relations of parameters and so on
| |
17:32 | BAndiT1983 | if we set 1/2, 1/3 etc., then our frame size shrinks in terms of width and height (let's leave bits per channel out for now), which is important to us, as we have to tell allocator to calculate bucket offsets according to this sizes
| |
17:33 | BAndiT1983 | the problem is the order for the calls, so we can let the downscaler tell us, that it only requires smaller part of memory, than the original full frame with all the pixels
| |
17:34 | dev__ | so we want downscaler to tell the allocator about this parameters , yes
| |
17:34 | dev__ | ?
| |
17:34 | sraj | Dev
| |
17:34 | sraj | Bandit is asking for who knows what on the pipeline
| |
17:34 | BAndiT1983 | we have loader -> processor -> allocator and so on
| |
17:34 | sraj | Who calls whom, which order and what is exposed to whom.... The architecture in simple terms
| |
17:35 | BAndiT1983 | as we know that loader is loading, then allocator has to allocate and frame processor to process, but we also know that frame processor could reduce the data amount, by using only every second pixel
| |
17:35 | sraj | The end point should know what framesizes it is dealing with... It really doesn't care whats happening beind in the pipeline
| |
17:36 | BAndiT1983 | task is to implement proper point, so the allocator can tell that sizes are different, no events or other voodoo, as we are on the same layer for now
| |
17:37 | BAndiT1983 | and it also has only to happen for first frame, this is a hint ;)
| |
17:37 | sraj | While downscaler can downscale 200*200 to 100*100 or let 100*100 remain 100*100 what matters is whether the final frameserver endpoint knows about the downscaler param...
| |
17:37 | sraj | Should it know, should it not?
| |
17:37 | sraj | And yes, it happens just the first frame
| |
17:37 | BAndiT1983 | frame server will only know about video frame size and maybe pipeline parameters, everytihng else has to happen between loader and allocator, for now it can be quick and dirty, but not totally tight
| |
17:38 | sraj | Well here goes the answer
| |
17:38 | sraj | :)
| |
17:39 | sraj | Two options are there
| |
17:40 | Y_G | left the channel | |
17:40 | sraj | Either alloc something and manage pointers (bad way)
| |
17:40 | sraj | Or manage well sized data structures so calling etc is easy
| |
17:41 | sraj | Both had pros and cons
| |
17:41 | sraj | *has
| |
17:41 | Y_G | joined the channel | |
17:41 | sraj | Dev?
| |
17:41 | dev__ | Yes, I am here
| |
17:42 | BAndiT1983 | pointers are not bad, but if we don't need them, then allocator can manage this stuff, also it's only one time allocation (not considering multiple pages here)
| |
17:42 | dev__ | what should this data structure contain
| |
17:43 | sraj | I would say... Manage mappings
| |
17:43 | BAndiT1983 | so it's fine to allocate 1 chunk, like 512MB or so, then dissect it into buckets, depending on loaded frame size, if video changes just calculate new buckets, nothing difficult there at basic level
| |
17:43 | BAndiT1983 | so you need 1 chunk plus the vector of buckets with offsets
| |
17:44 | sraj | #mappings
| |
17:44 | BAndiT1983 | vector<uint32_t> or whatever data type is sufficient
| |
17:44 | BAndiT1983 | in our case, if we consider uin16_t data, we need 3 buckets per frame
| |
17:44 | sraj | Dev, would you like to add anything to the solution?
| |
17:45 | BAndiT1983 | but we can also use the allocator for uin8_t, which doesn't matter much
| |
17:45 | sraj | As long as we have memory
| |
17:46 | Y_G | left the channel | |
17:46 | BAndiT1983 | 512MB are fine to start with, maybe smaller maybe bigger, wouldn't force too much as i don't remember the limits of OSes
| |
17:46 | sraj | 512MB is fine
| |
17:46 | BAndiT1983 | it's also fine to start with 128MB, but for full frames it would be too small, as usually 4K full frames of CMV were around 70MB
| |
17:46 | sraj | Especially for the file sizes we deal with
| |
17:47 | sraj | Later, static allocator can be extended to include multiallocs and pages
| |
17:47 | sraj | But that's extension for later date
| |
17:47 | BAndiT1983 | exactly
| |
17:47 | BAndiT1983 | dev__, are you there?
| |
17:48 | dev__ | yes
| |
17:48 | BAndiT1983 | any comments?
| |
17:49 | dev__ | Yes, I will let you know if I have doubts , trying to understand this
| |
17:50 | BAndiT1983 | i thought that we discussed it before and also your gdocs contains similar graphics
| |
17:51 | BAndiT1983 | gitkraken is not working for me at the moment, but as soon as i get it up and running i will checkout your code to do a review
| |
17:51 | dev__ | so it's fine to allocate 1 chunk, like 512MB or so, then dissect it into buckets, depending on loaded frame size, if video changes just calculate new buckets : All this is implemented in statica allocators
| |
17:52 | BAndiT1983 | that's what i expect to see
| |
17:52 | sraj | Bertl : ping... There's gotkraken being used :P
| |
17:52 | sraj | Gotkraken*
| |
17:52 | dev__ | So are u helding out videoclip class
| |
17:52 | dev__ | right now
| |
17:52 | BAndiT1983 | :D
| |
17:53 | sraj | Git*
| |
17:53 | BAndiT1983 | dev__, what do you mean?
| |
17:54 | dev__ | nothing . leave it. I will ask if i had doubts
| |
17:54 | BAndiT1983 | do it as soon as possible please, as i want to get more progress this month
| |
17:54 | dev__ | Yes, BAndiT1983
| |
17:54 | BAndiT1983 | trello is the fastest way, as i can see it on my smartphone at work
| |
17:55 | dev__ | okay , understood
| |
17:57 | dev__ | update u soon .
| |
17:59 | dev__ | left the channel | |
17:59 | dev__ | joined the channel | |
18:00 | dev__ | good night sraj and BAndiT1983
| |
18:00 | dev__ | left the channel | |
18:11 | sraj | left the channel | |
18:15 | Y_G | joined the channel | |
18:21 | RexOrCine|away | changed nick to: RexOrCine
| |
18:33 | illwieckz | left the channel | |
19:03 | BAndiT1983 | hi Y_G, have you found the option?
| |
19:11 | Y_G | DGRAM and STREAM don't seem to work rn.
| |
19:12 | Y_G | Still checking if there is something wrong with what I have done .
| |
19:18 | BAndiT1983 | STREAM should work, but maybe you need to adjust both sides
| |
19:18 | BAndiT1983 | DGRAM is meant for complete packages, but if you want to "upload" data blobs, then you require stream and a bit different handling
| |
19:19 | BAndiT1983 | e.g. check if data is incoming and read as long as the packet is not received fully
| |
19:20 | BAndiT1983 | https://developer.ibm.com/tutorials/l-sockpit/
| |
19:21 | BAndiT1983 | maybe you can check if it is possible to open 2 sockets, one for dgram another for stream, as small packets are better suited for dgram
| |
19:21 | BAndiT1983 | or you can prove me wrong and create stable stream connection, which allows to get and set data like it's now
| |
19:22 | BAndiT1983 | here are also some infos on both -> http://www.linuxhowtos.org/C_C++/socket.htm
| |
19:23 | BAndiT1983 | https://stackoverflow.com/questions/21856517/whats-the-practical-limit-on-the-size-of-single-packet-transmitted-over-domain
| |
19:35 | Y_G | Had a look through all of these, but first the question remains that do we need this in first place .
| |
19:35 | Y_G | The default limit on beta is 163840 bytes.
| |
19:36 | Y_G | If we were to send 4096*4 float values for lut_conf ,this can be easily sent over as a single packet.
| |
19:38 | illwieckz | joined the channel | |
19:44 | Nira|away | changed nick to: Nira
| |
19:52 | BAndiT1983 | depends on how much data could be required to be sent
| |
19:53 | BAndiT1983 | you can of course raise the size up, but please ensure that it's not slowing down
| |
19:58 | Y_G | This was the default size , I didn't raise it up.As of now I don't think this is required
| |
19:58 | Y_G | I will clean the code and push it ,maybe you can check if it works according to the requirement
| |
21:44 | BAndiT1983 | changed nick to: BAndiT1983|away
| |
22:01 | Nira | changed nick to: Nira|away
| |
23:08 | se6astian | I am off to bed, good night
| |
23:08 | se6astian | changed nick to: se6astian|away
| |
23:14 | Bertl_oO | nn
| |
00:25 | RexOrCine | changed nick to: RexOrCine|away
| |
00:34 | illwieckz | left the channel |