IRC log of #maemo-devel for Tuesday, 2010-09-07

*** alvaro__ has quit IRC02:08
*** csaavedra has quit IRC02:44
*** lbt has quit IRC03:13
*** lbt has joined #maemo-devel03:13
*** lbt has quit IRC03:14
*** lbt has joined #maemo-devel03:14
*** GeneralAntilles has joined #maemo-devel03:16
*** DocScrutinizer has quit IRC03:36
*** DocScrutinizer has joined #maemo-devel03:37
*** madsy has joined #maemo-devel03:43
*** swc|666 is now known as Mr_Kingsford03:55
*** ptl has joined #maemo-devel04:11
*** Mr_Kingsford is now known as swc|66604:51
*** MNZ has quit IRC05:40
*** eggonlea has joined #maemo-devel05:50
*** shinkamui has joined #maemo-devel06:17
*** kamui__ has quit IRC06:21
*** eggonlea has quit IRC07:14
*** DocScrutinizer has quit IRC07:30
*** DocScrutinizer has joined #maemo-devel07:30
*** DocScrutinizer has quit IRC07:34
*** DocScrutinizer has joined #maemo-devel07:34
*** swc|666 has quit IRC07:56
*** fragment has quit IRC08:46
*** achipa has joined #maemo-devel09:21
*** mirr0r has quit IRC09:44
*** tomast has quit IRC09:56
*** paul33 has quit IRC10:25
*** tomast has joined #maemo-devel10:34
*** amigadave has joined #maemo-devel10:47
*** JPohlmann has joined #maemo-devel10:51
*** dazo_afk is now known as dazo10:54
*** tomast has quit IRC11:19
*** madsy has quit IRC11:21
*** achipa has quit IRC12:17
*** csaavedra has joined #maemo-devel13:15
*** achipa has joined #maemo-devel13:24
*** Mister_X] has quit IRC13:32
*** Mister_X] has joined #maemo-devel13:32
*** ilius has joined #maemo-devel13:35
*** MNZ has joined #maemo-devel13:49
*** MNZ has quit IRC14:44
*** MNZ has joined #maemo-devel15:28
*** madsy has joined #maemo-devel15:50
*** ilius has quit IRC15:56
*** achipa has quit IRC17:03
MNZAnyone have any info on whether or not, and how, the camera uses the omap3's DSP ? Do we have the kernel code to manage this?17:32
*** JPohlmann has quit IRC17:49
*** amigadave has quit IRC18:02
SpeedEvilIt's complex.18:04
SpeedEvilAs I understand it.18:04
SpeedEvilThe cameras are connected to the same port, with an external selectror switch.18:04
SpeedEvilThis goes to a camera interface block that does the low-level shit.18:05
SpeedEvilYou can then either directly read the image, or put it through a block that does stuff - for example jpeg compression, vignetting correction, noise removal.18:05
SpeedEvilThis block is used inthe normal software.18:06
SpeedEvilIt's configured by a binary blob18:06
SpeedEvilIn principle you can write your own, but this isn't trivial18:06
MNZok, this blob is it the code loaded onto the DSP?18:07
SpeedEvilno18:07
MNZare we using the DSP?18:07
SpeedEvilIt's a seperate functional block with hardware encoding units.18:07
MNZthe jpeg encoding happens in the DSP.... or at least it's possible, and that's what everyone seems to think18:08
MNZSpeedEvil, so you are telling me there's a separate hardware block for the jpeg stuff?18:09
SpeedEvilumm18:10
*** nonick has joined #maemo-devel18:10
SpeedEvilIf you have spruf98d  - it's page 149618:11
SpeedEvilActually18:11
SpeedEvilI'm unsure that there is a jpeg codec on a quick skim18:11
SpeedEvilI know the camera interface can cope with JPEG cameras - I may have confused this18:11
nonickHi, i want to upload to maemo, but i get " dpkg-shlibdeps: error: no dependency information found for /usr/lib/libevent-2.0.so.2" it builds a deb on my sb, but fails when upped to maemo. whats the problem ?18:12
SpeedEvilOk - if the camera outputs JPEG - none of the above modules work18:12
SpeedEvil(the n900 camera does not)18:12
SpeedEvilSo the DSP must be used18:12
MNZSpeedEvil, I do have that datasheet18:13
MNZand I did read a whole bunch of it18:13
MNZand I came to that conclusion :/ and people all assume (or have read somewhere??) that the DSP does the jpeg stuff18:13
MNZnow the trouble is, are we using DSP for video/audio as well? For the life of me I can't figure it out18:14
SpeedEvilAs I understand it, yes, there are some codecs that use the DSP18:14
SpeedEvilI would poke lcuk and pupnik. Pehaps they have some clue, or perhaps I'm confused18:15
MNZAny idea which kernel module/code interfaces with the DSP ?18:15
MNZlcuk, bacon18:15
lcukRT: @PeterMeeGo Got an #N900? Let me know how you use multitasking. Do you keep the dashboard clean or messy? http://talk.maemo.org/showthread.php?t=61869           -    https://twitter.com/PeterMeeGo/status/2324371853118:15
lcukI was brought here by the bacon18:16
MNZlcuk, always works :D could you scroll up a bit and give us an opinion?18:16
*** jacktheripper has joined #maemo-devel18:17
*** kamui__ has joined #maemo-devel18:17
lcukSpeedEvil, MNZ hmm18:18
lcuki think for sure it should be asked more widely18:19
SpeedEvillsmod|grep dsp18:19
SpeedEvildspbridge               1284  018:19
MNZSpeedEvil, good idea18:19
*** shinkamui has quit IRC18:21
SpeedEvilzaheerm woglinde stskeeps have mentioned dspbridge in my logs18:22
ShadowJKdspbridge is like this thing to interfac with the dsp18:30
ShadowJKto load code into it and to retrieve data18:30
MNZSpeedEvil, yes, I have some background now18:30
ShadowJKBut it's best at causing early hairloss18:30
MNZs/SpeedEvil/ShadowJK/18:30
villagerSpeedEvil: the way I understand it, behind the v4l2 interface there's a binary blob that does all the image processing that converts the camera image into YUV... then there's a gstreamer plugin that can use the DSP to convert a YUV image into JPEG18:31
MNZShadowJK, I also have some background on the hairloss :/18:31
MNZvillager, any idea what this gst plugin is called?18:31
SpeedEvilvillager: That sounds plausible18:31
MNZnvm, found it18:32
villagerbut I have no clue whether that binary blob will itself use the dsp18:35
*** lmoura has quit IRC18:35
villagerbut it's probably just using the camera hardware18:35
*** lmoura has joined #maemo-devel18:36
SpeedEvilthe blob configures the camera interface.18:36
SpeedEvilIt's seperate from the DSP code18:36
SpeedEvilAs I understand it.18:36
SpeedEvilI found it a while back - but I forgot wherre it is.18:36
*** _0x47 has joined #maemo-devel19:11
*** VDVsx has joined #maemo-devel19:40
*** pH5 has joined #maemo-devel19:51
*** JPohlmann has joined #maemo-devel20:08
*** VDVsx has quit IRC20:22
*** dazo is now known as dazo_afk20:24
*** VDVsx has joined #maemo-devel20:26
*** JPohlmann has quit IRC20:39
*** JPohlmann1 has joined #maemo-devel20:39
*** MohammadAG51 has joined #maemo-devel20:42
* MohammadAG51 slaps frals with http://pastebin.com/WZfD59Sq20:42
MohammadAG51frals, paste expires in 10 minutes20:43
fralschecking :p20:44
fralsMohammadAG51: can you even start that application?20:52
fralssegfaults when i try to run it20:52
MohammadAG51o_O20:53
fralsguess it was because of gobject import20:53
MohammadAG51weird, wfm20:53
MohammadAG51QWidget::setLayout: Attempting to set QLayout "" on MainWindow "MainWindow", which already has a layout20:54
MohammadAG51yep, wfm20:54
frals~ $ ./test.py20:54
fralsImporting PyQt4 modules20:54
fralsImporting sys20:54
fralsImporting os20:54
fralsimporting gobject20:54
MohammadAG51Segmentation fault20:54
fralsImporting dbus20:54
fralsSegmentation fault (core dumped)20:54
MohammadAG51clicked screenshot button20:54
fralswell21:04
fralsthe fault is not in importing hildon21:04
fralsits because of hildon.hildon_gtk_window_take_screenshot21:04
fralswhich i guess isnt really compatible with a qmainwindow :p21:04
MohammadAG51sigh21:40
*** VDVsx has quit IRC22:04
MNZDocScrutinizer, ping22:14
DocScrutinizerpong22:14
DocScrutinizerMNZ: wazzup?22:14
MNZwell for the shelving filters for bass/treble, I would need to do a bunch of floating point calculations22:14
DocScrutinizer:nod:22:14
MNZand trig22:14
MNZinside the kernel22:15
DocScrutinizereew22:15
MNZideas :S ?22:15
DocScrutinizernah, I'd precompute a 'rainbow table' for -12db@150Hz .. -9, -6. -3, 0, 3 etc22:16
SpeedEvilI'm unsure if the superposition of the outputs of set of FIR filters with given coefficients  is the same as the output of a filter with a superposition of the set of their coefficients22:16
MNZSpeedEvil, it's IIR not FIR btw22:16
SpeedEvilSo you can simply add the coefficients precomputed.22:17
SpeedEvilErr - so it is, yeah22:17
DocScrutinizerSpeedEvil: now even you start talking inuktitut :-/ :-P22:17
MNZSpeedEvil, I have reread that a couple times, still not sure what you mean22:18
SpeedEvilUmm.22:18
SpeedEvilTake 12 IIR filters. Now, load each one with coefficients to implement a bandpass.22:18
DocScrutinizer:nod:22:19
SpeedEvilSo filter 4 is a bandpass from 350 to 470Hz.22:19
SpeedEvilAnd it has a relative output compared to the maximum of -20dB22:19
SpeedEvilIf you sum the output of all of these filters, you clearly get an equaliser.22:19
DocScrutinizeryep22:19
MNZSpeedEvil, which is the whole idea22:19
SpeedEvilNow, what happens if you divide all of the 12 filters coefficients each by 12.22:19
SpeedEvilAnd then add them into one filter22:20
DocScrutinizerwon't fly22:20
MNZAFAIK that wouldn't work22:20
SpeedEvilDo you get a IIR filter that implements an arbitrary filter.22:20
MNZthe coefficients are not linear in any way22:20
MNZand they don't affect the filter in a specific way really22:20
SpeedEvilhmm22:20
SpeedEvilI should read up on this.22:21
MNZalso, you can't implement an arbitrary filter in IIR22:21
MNZ(AFAIK)22:21
SpeedEvilBy coefficients above - I do not refer to the individual coefficients of any one filter - I mean teh whole set of 128 (or whatever) numbers that comprise the filter.22:22
SpeedEvilhmm.22:23
MNZfrom what I gathered, there are specific types of filters that can be implemented with IIR filters. Shelving, EQ, Notch, high/lowpass, etc22:23
SpeedEvilI read the wikipedia page, and it has confused me.22:23
MNZI generally avoid wikipedia for anything mathematics :D22:23
DocScrutinizerMNZ: (specific filter types) ack22:24
SpeedEvilI thought it was simply for each output sample, the input depends on the total value of previoussample[n]*coefficient[n] where n varies from 0 to filtersize.22:25
DocScrutinizerMNZ: aiui it's simulating a certain type of hardware that implements all those basic types of filters in one block, and you can tune the 'circuit' parameters22:26
MNZfor an IIR its output(n) = A1*input(n) + A2*input(n+1) +..... - B1*output(n-1) - B2*output(n-2) ......22:26
MNZDocScrutinizer, yes, that's what I understood as well22:27
MNZwhere A1, A2, B1, B2, etc are coefficients22:28
DocScrutinizermuch like the VCF you had in first moog synti22:28
MNZhttp://www.student.oulu.fi/~oniemita/dsp/dspstuff.txt  <--- this was very useful22:28
MNZskip to the section titled "From poles and zeros to filter coefficients"22:29
MNZnow to computing that table.22:29
MNZThough I wanted to at least have some sort of finer control over the filter :( I was thinking we could *at least* have a parametric equalizer22:30
MNZso I could expose the center frequencies of the two shelving filters and their gain22:30
*** Venemo has joined #maemo-devel22:33
SpeedEvilAh.22:35
SpeedEvilThe superposition argument I made above clearly works for FIR22:35
VenemoSpeedEvil: what's up?22:35
SpeedEvilBut not for IIR22:35
SpeedEvilhmm22:35
SpeedEvilCan you not use IIR in FIR mode by simply setting all of B coefficients to 0?22:36
MNZSpeedEvil, AFAIK yes22:36
SpeedEvilOf course, you will gert poorer performance in terms of possible filter accuracy22:37
MNZI have no idea what the consequences would be22:37
MNZbut I'd imagine you still could not really implement 'arbitrary' filters22:37
MNZie, you cannot really base an entire equalizer on just one F/IIR filter22:38
SpeedEvilIf you can implement an arbitrary response to an impulse, then you can create arbitrary filters.22:38
SpeedEvilSimply as sound is simply a series of superimposed impulses22:38
MNZactually, that equation I wrote for the IIR filter, I'm not entirely sure how it relates to the filter as it is in the audio codec22:42
MNZsee the datasheet, page 3822:44
DocScrutinizersorry for lengthy quote...22:44
DocScrutinizer A note about implementing the equalizer... If the equalizer is to be        adjustable realtime, recalculating the whole equalizer filter formula        with all the trigonometric functions may turn out too heavy. It may be        better to precalculate coefficients for several overlapping filters,        for example these for a three-channel equalizer:22:44
DocScrutinizerWhen calculating the coefficients for the whole equalizer, just pick        the corresponding coefficients from these, scale according to the        "equalizer sliders", and sum.22:44
MNZDocScrutinizer, link?22:45
DocScrutinizerhttp://www.student.oulu.fi/~oniemita/dsp/dspstuff.txt   Windowed FIR filter design22:46
*** Venemo has left #maemo-devel22:46
DocScrutinizerat the bottom. And yes, that's about FIR once again22:46
MNZaha, well as speculated, it's probably possible to use the filter as a FIR22:47
SpeedEvilAh - ok22:48
SpeedEvilThe above argument is moot.22:48
SpeedEvilI was imagining something with significantly more than 5 coefficients.22:49
SpeedEvilSorry22:49
MNZI'm reading that section about equalizer in dspstuff.txt22:57
MNZand I'm not sure any more if it's possible to create an equalizer out of just two filters22:58
SpeedEvilYou won't be able to do much if any equalisation with 5 coefficients22:58
MNZI'd imagined so yes22:58
SpeedEvilhighpass/lowpass is pretty much the limit I imagine.22:58
MNZnot really, there's a way to approximate an EQ, but I'm not entirely sure it'd work22:59
MNZwe have 2 filters to use, so I can pick and match the filters and their shape to approximate the frequency response of a 'real' eq23:00
MNZthe more I think about it, the more it seems to be possible23:00
MNZspecially after mucking about with TI's coefficient calculator23:01
DocScrutinizerSpeedEvil: yes, indeed23:01
MNZDocScrutinizer, did you check out the calculator?23:01
MNZhttp://focus.ti.com/docs/toolsw/folders/print/coefficient-calc.html23:01
*** JPohlmann1 has quit IRC23:01
DocScrutinizeryou got 2 parametric eq blocks, which each of them can do any of the basic filter types in any shape and flavour23:02
*** JPohlmann has joined #maemo-devel23:02
DocScrutinizerMNZ: nope, as I'm not windows affine23:02
MNZit works perfectly on wine, if you have it23:02
DocScrutinizernot even that23:02
MNZooh common. It's a simple apt-get install wine23:03
MNZ(or yum install wine)23:03
MNZ(or whatever, you get what I mean)23:03
MNZso anyway do you reckon an eq approximation is possible or not?23:04
DocScrutinizernope, nothing of any practical purpose23:06
SpeedEvilSorry - my earlier comments were predicated on it being a reasonably long filter - say >>32 coefficients23:06
DocScrutinizeras e.g if you want a notch/bandpass for voice freq, you can have the other filter to work on treble and bass simultaneously but only with same boost/attenuate for both23:07
MNZDocScrutinizer, no, everything is independent for each filter23:08
MNZbandwidth, gain, center frequency23:08
DocScrutinizerMNZ: you don't get my point. You only have two filters, and it's really hard and usually implies restrictions you don't want, to model anything beyond a simple butterworth/bessel or whatever23:09
DocScrutinizerso with the given hardware you only have 2 parametric filters, and you can basically add two simple curves together23:10
*** JPohlmann has quit IRC23:11
DocScrutinizereach of those curves usually has one max/min only23:12
MNZeach of the curves has a 'center frequency', a bandwidth, and a gain23:12
DocScrutinizersure you can model a filter that has notches at 1k 2k 4k 8k, but you can't control each notch individually23:13
DocScrutinizer(freq, bw, gain) that's exactly what a parametric eq block does, yes23:14
DocScrutinizerand it's probably best to expose exactly those via kernel API23:15
MNZDocScrutinizer, actually, yes. It'd be best to expose it as a parametric EQ.23:16
DocScrutinizerif you don't want to do the actual coefficient numbercrunching in userland, and only expose the plain coefficients23:16
MNZI'm still convinced it would be possible to approximate, say, a 6 band EQ23:17
DocScrutinizer(which I'd think is the cleaner way)23:17
MNZso we'd completely depend on a userland app to do the calculations, yeah23:18
DocScrutinizerMNZ: real professional equalizers in studios never are multiband graphic, they are always 2- or 3-block parametric23:18
MNZyeah, but users want a graphic equalizer!23:19
DocScrutinizerso leave it to userland to cope with this insane conversion duty23:19
MNZI just have a bad feeling it will never be done :D23:20
MNZok, I'll just expose the coefficients. Easier for me too :P23:21
DocScrutinizerjust build a userland reference app implementing two parametric blocks offering filter-type-switching (HP, LP, BP, NOTCH) and f0, gain, Q for each23:21
MNZNow will you guys take a look at the de-emphasis block?23:22
DocScrutinizerit's fine for the hifi purists, and anybody inclined can offer an app to have a set of (possibly hundereds) of precalculated EQ settings23:22
DocScrutinizer(userland reference app) sounds like ALSA mixer controls to me23:28
*** MNZ has quit IRC23:28
DocScrutinizerthe number crunching to calculate the coefficients from (type,f0,Q,gain) settings in ALSA mixer, well it seems an ALSA plugin is the perfect place to do this. Have to think a bit longer about it...23:32
DocScrutinizerbut now for some RL, sorry23:32
*** MNZ has joined #maemo-devel23:41
* MNZ scratches head23:42
MNZturns out I was D/Ced since about 20 minutes. Did I miss anything?23:42
MNZnvm, found the logs. Will look into the alsa plugin thing23:45

Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!