Current Server Time: 22:48 (Central Europe)

#apertus IRC Channel Logs

2019/02/20

Timezone: UTC


00:04
ASHU
joined the channel
00:05
ASHU
left the channel
00:39
futarisIRCcloud
joined the channel
07:44
se6astian|away
changed nick to: se6astian
07:54
BAndiT1983|away
changed nick to: BAndiT1983
07:55
se6astian
good day
08:39
Bertl_zZ
changed nick to: Bertl
08:39
Bertl
morning folks!
08:44
futarisIRCcloud
left the channel
08:45
sebix
joined the channel
10:40
mrohit[m]
Morning Bertl , I have a doubt regarding RAW:
10:40
mrohit[m]
If RAW12 is a binary file, then why am I not able to read it using a bitset container format?
10:41
se6astian
you can look at the raw12 file in a hex editor if you want to see "inside"
10:43
BAndiT1983
mrohit[m], what do you mean?
10:46
mrohit[m]
BAndiT1983: I mean that if the RAW12 file consists of binary numbers (i.e only 0's and 1's) then we can load the file into a bitset container and thus extract any number of bits at a time from it to perform operations.
10:46
BAndiT1983
why do you need a bitset container?
10:47
danieel
isnt bitset rather a random access abstraction?
10:47
vandy2000
joined the channel
10:47
danieel
seems like a hugely inefficient way to do anything useful
10:48
BAndiT1983
i would just grab every 3 bytes and extract the 2 sensels by shifting and concatenating
10:49
mrohit[m]
Yes BAndiT1983 , I was trying to skip the part of shifting and concatenating by extracting only 12 bits at a time
10:50
BAndiT1983
it won't work
10:50
BAndiT1983
or do you know a 12bit native type?
10:50
BAndiT1983
i would use uint16_t for a sensel
10:51
BAndiT1983
you can't go as simple as shifting and concatenating
10:53
mrohit[m]
Okay, was just trying to look for a new approach as I thought it would reduce the load of grabbing an extra half byte and discarding everytime
10:53
BAndiT1983
discarding what?
10:54
mrohit[m]
Not exactly discarding, but rather shifting and concatenating
10:54
BAndiT1983
i don't understand the problem there, it's the usual way to handle such data streams
10:55
danieel
what do you think that bitset class does?
10:56
BAndiT1983
off for a while, will be back later, but will also check the logs from time to time
10:56
BAndiT1983
changed nick to: BAndiT1983|away
10:57
mrohit[m]
danieel: It loads the data in binary form, but rather than alloting a whole char for 0 or 1 it just uses one bit to store
10:57
mrohit[m]
danieel: Please correct me if I am wrong
10:58
danieel
but the raw data when load by read() / fread() is same
10:59
mrohit[m]
Sorry, couldn't understand what do you mean by the data is same?
11:00
danieel
it just adds an abstraction to address individual bits
11:00
danieel
a file blob when loaded into memory is taking up the same space as on drive
11:01
mrohit[m]
ohh...I get it now
11:01
danieel
the bitset is a random access tool
11:01
danieel
if you still want a variable sized bitfield loading, then look into some bitbuff implementations, eg. in ffmpeg or mplayer
11:02
danieel
these do provide only streamed access, and you can read each time a given (and different) number of bits
11:02
danieel
but you cant skip in the stream to random location, it is just a bitstream reader
11:03
vandy2000
left the channel
11:04
mrohit[m]
ok, so I guess bitbuff is what I was looking for
11:06
mrohit[m]
So can we load 12 bits at a time using bitbuff or is it still inefiicient than to load 3 bytes and then splitting them
11:07
danieel
it should be fairly efficient, most of the codecs use them to unpack the variable length encoding
11:07
danieel
there is an overhead for the calling.. but can be inlined.
11:08
danieel
the reason why you do not need this is that the raw12 is a fixed field format, and you can unpack it with a non-parametrized, hardcoded shifts and loads
11:11
mrohit[m]
yes, that makes more sense to use shifts and loads
11:13
mrohit[m]
Thanks danieel
11:16
danieel
i can tell you my approach - for a semi optimal code - process each line individually, and within the line split the processing into a bulk (block type) and the corner case
11:17
danieel
the block part can load the common multiple of input * register size, so with 12 bits, it is the best to load 12 bytes = 3x4 bytes on input, and unpack these to 2x4 pixel values
11:18
danieel
then the corner case at end of line has to ensure to not read past the input buffer boundary, and not write past the output boundary (so it processes single pixels, not a whole block)
11:28
mrohit[m]
Here unpacking to 2x4 pixel values means shifting and concatenating.. right?
11:30
danieel
yes, so from u32 a,b,c, you make a u16 pixel[8]
11:31
danieel
what you need is the a,b,c to be loaded, and then just a u16 dst* that you use as *dst++ = (some shift combo)
11:33
danieel
the abc is read from *src++ that is u32*
11:33
danieel
further simplification - if the image size is fixed and result using only the bulk blocks, you can forget the implementation of the unused corner case :)
11:36
mrohit[m]
What exactly do you mean by *dst++?
11:37
Cyna_
left the channel
11:38
mrohit[m]
You mean the 12 bit data to be seperated is to be stored in *dst right?
11:39
danieel
the in memory buffer of unpacked pixels, which you can later work on
11:39
danieel
(if your algo is unable to work in a streamed way on input data)
11:42
mrohit[m]
Ok. I get it, will try to implement it this way by evening. Will let you know I have any further doubts
11:46
RexOrCine
changed nick to: RexOrCine|away
14:29
danieel
left the channel
14:30
danieel
joined the channel
15:55
ASHU
joined the channel
15:56
ASHU
Hello , everyone !!!
15:58
ASHU
this is about task T872 , Do we need to print 5*5 tile for each R,G,G,B channel or for rgb CFA ?
15:59
ASHU
can you please elaborate ?
15:59
se6astian
hi ASHU
15:59
se6astian
please clarify you question
15:59
se6astian
as the RGGB is the RGB CFA
16:03
ASHU
My question is whether we are suppose to print 5*5 pixel intensity for each extracted channel
16:03
ASHU
or for the whole image we get after debayering ?
16:05
BAndiT1983|away
changed nick to: BAndiT1983
16:06
BAndiT1983
mrohit[m], the sizes are known, 4096x3072, don't see any need for streaming
16:06
BAndiT1983
also the buffers are processed as whole usually, also no streaming there
16:08
BAndiT1983
ASHU, the task description says following -> Output the intensity values of the first 5x5 pixels (square tile) R, G, G, B channels.
16:11
Dev_
joined the channel
16:12
Dev_
Hey Ashu and Bandit1983
16:13
BAndiT1983
hi Dev_
16:15
Dev_
Ashu , i also had the same doubt , I guess he meant , we need to print a small window of 5 * 5 of each grayscale which we have extracted
16:16
mrohit[m]
BAndiT1983: actually my question was in line for finding another approach to load the 12 bits of a pixel (which I thought possibly could be done if I had access to the whole data inside the raw12 file in binary form, for which I looked for bitset as a container of binary values), but as danieel explained why would that be inefficient in case of RAW12, I think using bitset is not a good idea
16:16
BAndiT1983
you could contact Supragy to ask about the details for the 5x5 pixels
16:16
ASHU
Hi dev _
16:17
BAndiT1983
i don't know of any other efficient approach besides shifting and concatenating, additional performance can be achieved by using openmp pragmas possibly
16:18
ASHU
okay thanks BAndiT1983 and Dev_ , got it .
16:18
BAndiT1983
as we know the sizes, we can predict the workflow for the buffer
16:20
ASHU
left the channel
16:20
mrohit[m]
yes, in this case going with shifting and concatenating looks simple and efficient.
16:20
Dev_
left the channel
16:23
mrohit[m]
Thanks BAndiT1983
16:25
BAndiT1983
no problem
16:58
sebix
left the channel
17:01
adnan
joined the channel
17:01
adnan
left the channel
17:16
Cyna_
joined the channel
18:11
niemand
joined the channel
18:11
niemand
left the channel
18:11
niemand
joined the channel
19:17
Cyna_
left the channel
19:17
cryteno[m]
joined the channel
20:24
intrac
left the channel
20:28
intrac
joined the channel
22:08
danieel
left the channel
22:10
niemand
left the channel
22:13
danieel
joined the channel
22:48
se6astian
changed nick to: se6astian|away
23:04
BAndiT1983
changed nick to: BAndiT1983|away
23:19
futarisIRCcloud
joined the channel
23:33
BAndiT1983|away
changed nick to: BAndiT1983
23:45
Bertl
off to bed now ... have a good one everyone!
23:45
Bertl
changed nick to: Bertl_zZ