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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.