public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
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

  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