From: Hans de Goede <j.w.r.degoede@hhs.nl>
To: kilgota@banach.math.auburn.edu
Cc: video4linux-list@redhat.com, sqcam-devel@lists.sourceforge.net
Subject: Re: [sqcam-devel] Advice wanted on producing an in kernel sq905 driver
Date: Fri, 21 Nov 2008 09:37:53 +0100 [thread overview]
Message-ID: <49267361.9030703@hhs.nl> (raw)
In-Reply-To: <Pine.LNX.4.64.0811201657020.3763@banach.math.auburn.edu>
kilgota@banach.math.auburn.edu wrote:
>
<snip>
>
>> Easiest way to get my latest code is here:
>> http://people.atrpms.net/~hdegoede/libv4l-0.5.5.tar.gz
>>
>> You are looking for libv4lconvert/bayer.c
>
> Thanks. I got it. By your leave, the first thing I will do is to try to
> speed up my own code. There are, I think, some real possibilities to do
> that. However, without looking at any details of what you did in your
> bayer.c, I will ask a question about organization of the way you did
> things. What happens in libgphoto2 is, first a function is run which
> "spreads out" the (uncompressed) raw data to a block of data of size
> 3*w*h, so that each byte of actual data is in its natural place in the
> finished image and the rest of the locations in the finished image are
> left filled with 00 bytes. Then after this what the algorithm does is to
> work on this copy of the still-not-finished image and to finish it,
> entering each piece of computed or estimated data in its proper
> location. There might be other ways to go about the entire project of
> doing the Bayer demosaicing. Therefore, I ask whether you have done
> things the same way, or did you take one of those other possible routes
> to the final result? For example, in
>
> static void bayer_to_rgbbgr24(const unsigned char *bayer,
> unsigned char *bgr, int width, int height, unsigned int pixfmt,
> int start_with_green, int blue_line)
>
> (which looks like one of the relevant functions) is bgr of size w*h,
> (size of uncompressed input) still, or of size 3*w*h (size of
> interpolated RGB output)? I could figure out all of this stuff in 3
> days, but probably not in 5 minutes.
>
bayer is the raw bayer input here, and that is ofcourse w*h, bgr is w*3*h, and
when this function is done contains complete rgb triplets for all pixels. This
function does the "spread out" and the interpolating in one pass.
<snip>
>> p.s.
>>
>> If you are experienced with reverse engineering decompression
>> algorithms 9for raw bayer), I've got multiple issues where you could
>> help me.
>>
>
> Haha. I was about to ask you the same. On my end, this is *the* problem.
Hehe
<snip>
> As to the cameras I mentioned before, and who figured out the
> decompression:
>
> SQ905 and 905C myself (took several years to get it all done right)
>
> SN9C2028 macam project, with some improvements by myself after they
> did the hard work. The code from the macam project was based, in turn,
> on the work of Bertrik Sikkens on the SN9C10X cameras. The two
> algorithms are similar but not identical.
>
Interesting, so you are familiar with the sn9c10x bayer compression, as you
then may remeber it uses differential compression with the following huffman codes:
0
100
101
1101
1111
11001
110000
1110xxxx /* direct set */
But sometimes it also sends:
110001xx
And we have no idea what this code means, does the sn9c2028 also have something
similar and have you figured it out?
> MR97310 Bertrik figured out some of the basic stuff but it was never
> right, until I was finally (after years) able to figure out what was
> wrong. Again this is a differential Huffman encoding which is similar to
> the one the Sonix cameras are using, but again different in details.
>
> You want quick, go and ask Bertrik. He is, in my experience, either very
> clever or very lucky.
>
Ok, I'll ask him.
Thanks & Regards,
Hans
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
next prev parent reply other threads:[~2008-11-21 8:32 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <mailman.208512.1227000563.24145.sqcam-devel@lists.sourceforge.net>
[not found] ` <Pine.LNX.4.64.0811181216270.2778@banach.math.auburn.edu>
2008-11-19 0:20 ` [sqcam-devel] Advice wanted on producing an in kernel sq905 driver Adam Baker
2008-11-19 7:46 ` Antonio Ospite
2008-11-19 8:42 ` Hans de Goede
[not found] ` <alpine.LNX.1.10.0811192005020.2980@banach.math.auburn.edu>
2008-11-20 9:38 ` Hans de Goede
[not found] ` <Pine.LNX.4.64.0811201130410.3570@banach.math.auburn.edu>
2008-11-20 19:37 ` Hans de Goede
[not found] ` <Pine.LNX.4.64.0811201657020.3763@banach.math.auburn.edu>
2008-11-21 8:37 ` Hans de Goede [this message]
[not found] ` <Pine.LNX.4.64.0811202306360.3930@banach.math.auburn.edu>
2008-11-21 10:54 ` Hans de Goede
[not found] ` <Pine.LNX.4.64.0811211244120.4475@banach.math.auburn.edu>
2008-11-21 21:25 ` Hans de Goede
[not found] ` <Pine.LNX.4.64.0811211929220.4832@banach.math.auburn.edu>
2008-11-23 9:36 ` Report on time needed for completing v4l Bayer interpolation Hans de Goede
[not found] ` <Pine.LNX.4.64.0811231522510.6135@banach.math.auburn.edu>
2008-11-24 8:15 ` Apparent inconsistency in the labels of Bayer tilings Hans de Goede
2008-11-21 21:57 ` [sqcam-devel] Advice wanted on producing an in kernel sq905 driver Adam Baker
2008-11-21 23:39 ` Adam Baker
[not found] ` <Pine.LNX.4.64.0811211658290.4727@banach.math.auburn.edu>
2008-11-22 0:05 ` Adam Baker
[not found] ` <Pine.LNX.4.64.0811211955490.4832@banach.math.auburn.edu>
2008-11-22 21:55 ` The userspace-kernelspace thing. Continuation of sq905 driver discussion Adam Baker
2008-11-24 11:26 ` [sqcam-devel] Advice wanted on producing an in kernel sq905 driver Hans de Goede
[not found] ` <alpine.LNX.1.10.0811191937370.2980@banach.math.auburn.edu>
2008-11-20 7:48 ` Hans de Goede
[not found] ` <492A8E76.3070701@redhat.com>
[not found] ` <Pine.LNX.4.64.0811241446210.6862@banach.math.auburn.edu>
2008-11-25 0:02 ` Adam Baker
[not found] ` <Pine.LNX.4.64.0811241929420.7049@banach.math.auburn.edu>
2008-11-25 20:57 ` Adam Baker
2008-11-25 8:03 ` Hans de Goede
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=49267361.9030703@hhs.nl \
--to=j.w.r.degoede@hhs.nl \
--cc=kilgota@banach.math.auburn.edu \
--cc=sqcam-devel@lists.sourceforge.net \
--cc=video4linux-list@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox