Current Server Time: 21:45 (Central Europe)

#apertus IRC Channel Logs

2019/02/24

Timezone: UTC


00:41
lexano
left the channel
00:44
lexano
joined the channel
01:19
futarisIRCcloud
joined the channel
01:41
Bertl_oO
off to bed now ... have a good one everyone!
01:41
Bertl_oO
changed nick to: Bertl_zZ
04:08
futarisIRCcloud
left the channel
04:27
RexOrCine
changed nick to: RexOrCine|away
05:51
parimal
joined the channel
05:55
rohan_
joined the channel
06:01
rohan_
left the channel
06:07
rohan_
joined the channel
06:10
rohan_
hey BAndit1983. I tried swapping every 2 bytes which is giving a worse image
06:10
rohan_
I don't understand the mistake I'm committing. my red channel without any swapping looks like this: https://pasteboard.co/I2BjQqJ.png
06:11
rohan_
any help as to what i should try to do would be appreciated
06:13
parimal
left the channel
06:16
rohan_
left the channel
06:55
aombk
joined the channel
06:55
li
joined the channel
06:57
li
Hello, I am a movie equipment maintenance engineer from China
06:58
li
I have been following your project development progress
06:59
li
I also want to make my own movie camera
07:01
li
But I would like to know when your camera can achieve 4k raw video hard disk recording mode
07:03
BAndiT1983|away
changed nick to: BAndiT1983
07:06
BAndiT1983
hi rohan_, your image shows the typical overflowing of values, either it's caused by missing byte swap or by incorrect split of sensel values
07:07
BAndiT1983
please post the parts of code which do byte swap and also data split on pastebin, without some code it's only a guess
07:11
RexOrCine|away
changed nick to: RexOrCine
07:43
li
left the channel
07:45
li
joined the channel
07:54
li
left the channel
07:55
ayushprd
joined the channel
07:58
Cyna_
left the channel
08:26
ayushprd
left the channel
08:45
illwieckz
left the channel
09:16
illwieckz
joined the channel
10:26
parimal
joined the channel
11:02
Cyna_
joined the channel
11:10
se6astian|away
changed nick to: se6astian
11:18
RexOrCine
changed nick to: RexOrCine|away
12:09
Bertl_zZ
changed nick to: Bertl
12:09
Bertl
morning folks!
12:14
se6astian
good day
12:44
BAndiT1983
changed nick to: BAndiT1983|away
12:58
parimal
Hello Bertl
13:33
BAndiT1983|away
changed nick to: BAndiT1983
13:45
parimal
Hello BAndiT1983, I have completed T872, how should I submit it?
13:48
BAndiT1983
hi parimal
13:48
Bertl
best put it in a github repo and paste the url here
13:48
BAndiT1983
is the code structured and formatted?
13:49
Bertl
at a later time, when the actual GSoC submissions are due, you want to link it with your proposal
13:49
BAndiT1983
we got a lot of spaghetti code last year, this time i will take this also as a factor for decisions
13:49
parimal
Yes I have tried to follow the guidelines but would love some criticism
13:49
parimal
I am using cmake to build the project
13:50
parimal
Also the billinear interpolation, I added it as a dynamic library
13:50
parimal
Maybe it lacks in the documentation department, I have added one line comments to explain which part does what
13:50
parimal
Used camel casing, propoer variable names, and identation. But I have used tabs for identation, not 2 spaces as mentioned
13:50
parimal
Should I use 2 spaces?
13:51
BAndiT1983
as long as indentation is there, i won't complain
13:51
parimal
Should I share the repo here or in private message?
13:52
BAndiT1983
as the repo is probably public and it will be attached to the challenge task description for further processing, you can post it also here
13:52
RexOrCine|away
changed nick to: RexOrCine
13:52
parimal
alright
13:53
parimal
https://github.com/Parimal7/Parimal-T872
13:53
BAndiT1983
where is the libdebayer.so coming from?
13:53
parimal
the debayer.cpp in src folder
13:54
BAndiT1983
why do you attach it as separate.so?
13:54
BAndiT1983
*separate .so
13:54
parimal
Sorry I was reading about dynamic linking today itself, how should I do it?
13:55
BAndiT1983
dynamic linking is a bit of overkill for such task, although you should use it for main task later
13:55
BAndiT1983
how would you structure such an application usually?
13:55
parimal
Oh alright, it was mentioned in the task that it gives bonus points so I decided to learn it today
13:55
BAndiT1983
biggest complain first, everything is in the main()
13:56
BAndiT1983
have to look through description again, as it was written by different people at different points in time
13:56
parimal
oh alright
13:56
BAndiT1983
if you do dynamic linking, then there should be a second project in cmake, which builds the lib
13:57
Bertl
indentation and spacing is also weird
13:57
parimal
ok i will study it more, thanks
13:57
BAndiT1983
pre-compiled libs are a no-go for a project
13:57
BAndiT1983
also you need a header file for dynamic linking, so the functionality is really split
13:58
parimal
oh, the tutorial I studied didn't use one, sorry I will try again with a better resource
13:58
BAndiT1983
what have you used?
13:58
Bertl
not sure why folks can't get code formatting right ... it's not really rocket science is it? :)
13:59
parimal
https://www.geeksforgeeks.org/working-with-shared-libraries-set-2/
13:59
BAndiT1983
Bertl: it can be rocket science, as i have xilinx ISE open at the moment, besides 4k display problem, one has to search many things to find the right option for formatting etc.
14:00
parimal
Bertl, sorry, never done this before, any suggestions for better identation?
14:00
parimal
Or link me an article which you find good?
14:00
Bertl
best check the IRC logs from last year, I guess we convered almost all the indentation and spacing problems there
14:01
BAndiT1983
parimal: this tutorial is somehow off, in my opinion, to have some reusable lib you provide headers and of course .cpp files, which will be built, at the end you would have headers as API description and .so or .dll
14:01
parimal
Yeah I have been reading them too, I will find more about identation from the logs :)
14:01
Bertl
it basically boils down to where to put spaces and where to avoid them consistently
14:01
parimal
BAndiT1983, okay I will read dynamic linking properly and also how to use it with CMake
14:02
Bertl
just as an example from your code:
14:02
Bertl
++index){ <-- missing space
14:02
parimal
wow thanks, never knew there should be a space there :)
14:02
Bertl
if(index%width/2 <-- missing spaces
14:02
BAndiT1983
it's not hard to do it in cmake, but you should use second project, to have a clear line between the main application and the lib
14:03
Bertl
parimal: well, in other places you have a space after the condition
14:03
BAndiT1983
braces should be in the new line for c++, same line is so java and javascript
14:03
parimal
yes I give it randomly
14:03
Bertl
Debayer(COLORImage,arrayImage, width, height);
14:04
Bertl
what's missing here? :)
14:04
parimal
That function is from the dyanmic library I created, the libdebayer.so file, it calls the function from there
14:04
BAndiT1983
COLORImage looks a bit of a mix of C and C++
14:04
BAndiT1983
ColorImage is probably better
14:04
parimal
.so file I created myself from debayer.cpp
14:05
parimal
Okay
14:05
BAndiT1983
just a side note, no need to use uint32_t for sizes, like 4096, as uint16_t is sufficient
14:05
parimal
okay noted
14:06
Bertl
also note that using uint32_t or uint16_t will be slower for e.g. counter values, etc
14:07
Bertl
because it will not use native register sizes on some architectures
14:07
BAndiT1983
aren't they mapped according to used architecture?
14:08
Bertl
so in general, you want to go for strict sized types for stuff you need the specific size and int, long, long long for anything which doesn't care
14:08
BAndiT1983
are there benchmarks for that? as many papaers are telling to use uint*_t
14:09
BAndiT1983
there also fast versions
14:09
BAndiT1983
https://www.iar.com/globalassets/about-us/events/2016-esc-sv-efficient-embedded-programming_mg.pdf
14:11
Bertl
the test_char() vs test_int() is a good example of this
14:11
supragya_raj
joined the channel
14:11
Bertl
uint16_t will result in the same extension as test_char()
14:11
parimal
hello supgragya_raj
14:11
supragya_raj
hallo
14:11
Bertl
while using the 32bit int will be done in one cycle
14:11
parimal
I shared my repo, would you liek to have a lookj too please? :)
14:11
supragya_raj
Bertl, se6astian, BAndiT1983, parimal and all others :)
14:12
BAndiT1983
hi supragya_raj
14:12
BAndiT1983
many people were wondering about 5x5 tile stuff
14:12
supragya_raj
hmm
14:12
supragya_raj
i have seen that
14:12
BAndiT1983
i haven't got any explanation beforehand, so i also lack details to tell them
14:12
supragya_raj
wondering how to rewrite it better
14:12
BAndiT1983
you can create a sample picture or so
14:13
BAndiT1983
is it about providing values of raw data or interpolated?
14:13
supragya_raj
let me have a look myself... hang on
14:13
supragya_raj
raw data
14:13
BAndiT1983
Bertl: next page shows fast versions, which should fit the platform
14:14
supragya_raj
parimal: sure, provide the git link
14:14
BAndiT1983
is in the logs
14:15
parimal
BAndiT1983, any other improvments I can do?
14:15
BAndiT1983
yep, please split the code in functions
14:16
parimal
yeah I noted that :)
14:16
supragya_raj
seems quite a monolithic code
14:16
BAndiT1983
as some blocks are repeating, you can get away by writing a function and re-use it
14:16
parimal
Should I drop dynamic linking or work on it as you suggested?
14:16
BAndiT1983
depends on what you would like to do or to learn
14:17
supragya_raj
dynamic linking can be done when everything else is done
14:17
supragya_raj
it is just to show you can do DLLs, that's it
14:17
parimal
alright I will learn it from a better resource
14:17
BAndiT1983
is your resulting image looking correctly?
14:18
parimal
yes, should I share the pasteboard link?
14:18
supragya_raj
here's an idea - make main() sort of just a driver code which calls other functions like read_raw12(), extract_channels(), debayer_image(), savetoppm() etc
14:18
BAndiT1983
as the code looks a bit shaky there
14:18
BAndiT1983
supragya_raj: please use C++ names and not C
14:19
parimal
supgraya_raj, yes I will do that.
14:19
supragya_raj
also namespaces would be a good thing to look at as well
14:19
BAndiT1983
line 53-57 looks not correct for splitting
14:19
BAndiT1983
namespace is only usable in more complex applications, no need for that here
14:20
rohan_
joined the channel
14:20
parimal
Here is the final image I am getting - https://pasteboard.co/I2EyI1l.png
14:21
parimal
BAndiT1983, I have tried them on paper, it was converting 12 bits into 8 bits correctly
14:22
rohan_
BAndiT1983 : hey, I'll give it another go and will contact you if still I face any problems
14:22
BAndiT1983
hm, looks like you are converting without swapping, which works here, but not for general usage
14:22
BAndiT1983
rohan_: have you seen my reply in the logs?
14:22
rohan_
yes
14:23
BAndiT1983
okay, just wanted to ensure that it hasn't gone by unnoticed
14:23
BAndiT1983
parimal: is the mask really required if you already shift by 4 to the left?
14:24
parimal
I am sorry, cannot understand your question?
14:24
BAndiT1983
but in my opinion its a hacky solution which only fits the task somehow, in real processing you need every bit of information from raw
14:25
BAndiT1983
forget it, not important
14:25
parimal
Oh alright, I have another way which I read, would you like to have a look?
14:25
parimal
https://stackoverflow.com/questions/3920683/how-to-convert-a-12-bit-image-to-8-bit-in-c-c
14:25
BAndiT1983
i hope you also understand what is done there and not only copying the code
14:25
supragya_raj
ln 86-67 is a bit of an issue... 5x5 means the square tile containing 5 rows, 5 cols (first ones)
14:26
rohan_
also I went through parimal's code which runs great but is very heavily reproduced form TofuLynx's last year's code. im unable to understand the essence of the task if we don't make it all by ourselves
14:26
parimal
No, I study the code properly and type it myself
14:26
supragya_raj
hi rohan_ :)
14:26
BAndiT1983
that's why it is important to split the code, to be able to re-use and to understand individual areas
14:26
rohan_
yes there are few changes, but yet not original
14:27
BAndiT1983
ehm, the task should be solved from scratch
14:27
parimal
Yes I read the logs from last year, and studied the algorithms. I understand the code supragya_raj:)
14:27
rohan_
I have been working on my original code for a week now
14:27
BAndiT1983
students should show what they are capable of
14:27
rohan_
hi supragya_raj
14:27
supragya_raj
rohan_: I understand the issue... we take these things into consideration, don't worry
14:28
supragya_raj
you can take a look at peer's code but then references are to be mentioned if there is heavy resemblance
14:28
parimal
How would the code be any different for billinear interpolation?
14:28
parimal
I have mentioned the resources I used for the algoirthms
14:29
rohan_
thank you supragya_raj. I'm still working on my code. will show it to you guys as soon as I make more progress
14:29
BAndiT1983
okay, i will repeat it again: the chaleenge task is not about gathering as many bonus points as possible, it's about showing proper structured code, also the ways one took to solve the problem etc.
14:29
BAndiT1983
we are issuing challenge tasks, to filter out best students
14:29
rohan_
parimal_. you can see my code for bilinear interpolation once I post it online
14:30
parimal
there was no concept of ppm files last year, how can rohan_ just blame me that I reproduced it from TofuLynx?
14:30
BAndiT1983
cause variable look like his
14:30
BAndiT1983
*variables
14:30
BAndiT1983
also debayering
14:31
parimal
Yes, true, it was mentioned we can use other resources as long as we mention them, I will add the repo link for him too
14:32
Bertl
off for now ... bbl
14:32
parimal
And code it from scratch I guess
14:32
Bertl
changed nick to: Bertl_oO
14:32
BAndiT1983
this debayering is not my favourite, as it is monolithic as hell
14:32
BAndiT1983
using nested if/else is always a problem when a bigger code is involved
14:33
parimal
Do you suggest any other way? Since I studied it from this article -http://www.stark-labs.com/craig/articles/assets/Debayering_API.pdf
14:33
BAndiT1983
and especially when it is done in a loop
14:33
parimal
Billinear interpolation, and his code does the same :)
14:34
BAndiT1983
your code is same as the code from Claudio, don't know what i should grade then, as i don't have any obvious points to evaluate
14:34
parimal
the conversion and debayering is same, yes
14:35
parimal
alright I will code it from scratch and use a better way for 12 bit conversion
14:35
supragya_raj
BAndiT1983: can we take out NN and Bilinear off the table then?
14:35
BAndiT1983
NN?
14:35
supragya_raj
nearest neighbor
14:35
BAndiT1983
i would keep it for now
14:35
RexOrCine
changed nick to: RexOrCine|away
14:36
rohan_
no supragya don't do that. already done that part. it was very nerve-wrecking
14:36
BAndiT1983
this are perfect sub-tasks for evaluation, i'm not that much interested in final results, but in proper structure
14:36
BAndiT1983
rohan_: to make it simpler, you can process every channel individually
14:37
BAndiT1983
optimizations are not a requirement
14:37
rohan_
BAndiT I did exactly that
14:37
supragya_raj
BAndiT1983: can I ask why we posted all the repos (for everyone to see) in T872 last time? Maybe that is where this problem is stemming from?
14:38
BAndiT1983
the repos were copied to prevent modifications for evaluation
14:38
BAndiT1983
also they are public, so visible for everyone, also without forking to apertus repo
14:39
BAndiT1983
there is a saying: put 100 developers in a room and you will get 200 solutions
14:39
BAndiT1983
there are many ways to solve either debayering method in code
14:40
BAndiT1983
also nice -> http://www.cis.upenn.edu/~danielkh/files/2013_2014_demosaicing/demosaicing.html
14:41
BAndiT1983
another reference: https://github.com/codeplaysoftware/visioncpp/wiki/Example:-Bayer-Filter-Demosaic
14:44
rohan_
left the channel
14:46
parimal
So I should try it again, with all the criticism :)
14:47
parimal
thanks a lot, also, I didn't copy paste it mindlessly, I do understand everyt bit of code. Sorry if it came out that way.
14:49
BAndiT1983
try to split the debayering code, which would show that you really understood it, as the code is monolithic
14:50
parimal
Alright, will work on it
15:00
parimal
left the channel
15:31
Cyna_
left the channel
15:35
supragya_raj
left the channel
16:23
BAndiT1983
changed nick to: BAndiT1983|away
16:23
BAndiT1983|away
changed nick to: BAndiT1983
16:27
BAndiT1983
changed nick to: BAndiT1983|away
16:54
ASHU
joined the channel
17:19
ASHU
Hola everyone !!!
17:19
ASHU
This is regarding T734 , I have a naive idea , how to make histgram from a raw12 file .
17:20
ASHU
I was trying to understand code base: https://github.com/apertus-open-source-cinema/axiom-beta-firmware/tree/master/software/sensor_tools/hist
17:21
ASHU
I understood that we will be connecting to axiom beta and passing arguments through our system .
17:23
ASHU
Then we are using mmap for memory mapping .But , I did not understand few functions functionality like get_cmv_reg() , set_cmv_reg ()
17:25
ASHU
2- how we are taking these values cmv_base , cmv_size , map_size , are these are predefined values what they signify ?
17:42
ASHU
left the channel
17:54
se6astian
ASHU, these values are hardware specific for our image sensor
18:19
ASHU
joined the channel
18:19
ASHU
Hello se6astian ,
18:20
BAndiT1983|away
changed nick to: BAndiT1983
18:21
BAndiT1983
ASHU: probably you need this -> https://wiki.apertus.org/index.php/CMV12000_Register_Blocks
18:21
ASHU
I wanted to know what approach you have implemented in that code .
18:22
ASHU
as my naive idea was to simply after getting buffer , I will hash values to get histogram .
18:24
BAndiT1983
it depends on the type of histogram you want to generate from it
18:24
BAndiT1983
first thing i would adjust there, is the double loop, which is usually not required and can be replaced by linear one
18:30
ASHU
what do you mean by type of histograms ?
18:30
ASHU
we are trying to get histogram that acts as a graphical representation of the tonal distribution in a digital image , right?
18:30
BAndiT1983
the task mentions waveform and another one
18:30
ASHU
are talking about the line #292 , double loop
18:31
ASHU
?
18:31
BAndiT1983
https://lab.apertus.org/T734
18:32
BAndiT1983
yep, this loop, would try to make it simpler, without the check in it
18:33
BAndiT1983
maybe still double loop, as it should also crop image, but it can be done solely through limits in the loop description
18:34
ASHU
okay , I will think about optimisation and soon update you .
18:37
ASHU
I understood how program is taking arguments and memory mapping taking place(using mmap) .
18:37
BAndiT1983
first it is about readability, as some pointer calculations and also assignments can be done simpler
18:37
BAndiT1983
very good
18:37
ASHU
can you please explain me what approach you have taken afterwards to evaluate histogram in that code ?
18:39
ASHU
" first it is about readability, as some pointer calculations" : yes i will try to take it in account .
18:46
Dev_
joined the channel
18:47
BAndiT1983
ASHU: the code is not mine, so i would have to read through it, but don't have time at the moment
18:47
illwieckz
left the channel
18:48
BAndiT1983
you could take parts of the code and create separate application, load bitmap data there and let it run through it, so you can check what it does
18:49
Dev_
left the channel
18:52
ASHU
okay , thank you very much I will try that .
18:52
BAndiT1983
no problem, good luck
18:56
ASHU
: )
18:56
ASHU
left the channel
19:31
niemand
joined the channel
20:47
sebix
joined the channel
20:47
sebix
left the channel
20:47
sebix
joined the channel
21:43
intrac
left the channel
22:04
BAndiT1983
changed nick to: BAndiT1983|away
22:07
illwieckz
joined the channel
22:12
se6astian
off to bed
22:12
se6astian
good night
22:12
sebix
left the channel
22:16
se6astian
changed nick to: se6astian|away
22:17
niemand
left the channel
22:19
intrac
joined the channel
23:06
illwieckz
left the channel
23:22
illwieckz
joined the channel
23:23
Spirit532
left the channel
23:23
Spirit532
joined the channel
23:40
illwieckz
left the channel