#169596 - RobinWatts - Sat Jul 25, 2009 11:44 pm
Hi all,
I've been preparing for a long haul flight by encoding some movies/TV programmes to watch on the NDS using Tuna-viDS.
In order to do this I ended up trying to rebuild tuna-loader, which wouldn't work, so I tried updating devkitpro, and then none of it would build... big can of worms, etc.
Long story short, I've updated the source so it builds with the latest version of the tools, and has some small extra tweaks that people may file useful.
Firstly, I've improved the dithering; graduated areas of colour now look better spatially, and I temporaly dither too, so static things look better over a sequence of frames.
Secondly, I've tweaked it to add a simple volume control to allow me to boost the volume of the sound above 100%. Use this with care as you might end up with distortion, but it really helps with quiet sections.
An archive with the modified source and prebuild binaries can be found at:
http://www.wss.co.uk/pinknoise/tuna-vids/
This is NOT an official release, use with caution etc. If Chishm likes the changes he can of course roll them into his version.
Please don't look to the changes for neatness - I just wanted this to work!
Any questions, just follow up here, or mail me, but I'm about to disappear on holiday fairly soon, hence may lag a bit in replying.
Robin
#169601 - Tommmie - Sun Jul 26, 2009 7:43 am
really thanks, was going to use this video-player to wacht movies on holiday. can i now also wacht video's with a higher frame rate?
ps: thanks for tremolo it's really great, is it possible to optimize it more for the nds?
#169605 - RobinWatts - Sun Jul 26, 2009 11:08 am
Tommmie wrote: |
really thanks, was going to use this video-player to wacht movies on holiday. can i now also wacht video's with a higher frame rate? |
I haven't tried anything above 12.5fps myself (as I've been watching PAL videos, which run natively at 25fps, so I get a nice simple 1/2 rate thing).
I'd *hope* that 15fps should be possible (so NTSC watchers can get a 1/2 rate thing too), but I haven't tested it myself.
I've not boosted the speed at all since Chishm's 1.1 release though...
Quote: |
ps: thanks for tremolo it's really great, is it possible to optimize it more for the nds? |
It has been ages since I looked at it, but when I last did, I think it had hit pretty much all the obvious optimisations.
If you *REALLY* want to do fast digital audio, then you should check out Siren14, and my implementation of that, Siryn.
This runs in a fraction of the time/space required by Tremolo or MP3. The quality doesn't match up to Ogg Vorbis or MP3 at high bitrates, but at low bitrates (such as would seem appropriate for many applications on the DS) it's quality/speed tradeoff is blindingly good.
See http://www.wss.co.uk/pinknoise/siryn for more details.
Robin
#169606 - RobinWatts - Sun Jul 26, 2009 11:49 am
Tommmie wrote: |
really thanks, was going to use this video-player to wacht movies on holiday. can i now also wacht video's with a higher frame rate? |
Some quick tests show that 15fps is no problem here, but that's about it.
Actually, I'd advise you to run some encoding tests yourself, because the bitrates you pick for audio and video and the speed of your SD card/Slot 1 card may come into play...
Robin
#169608 - Tommmie - Sun Jul 26, 2009 1:15 pm
ok will do that, I encode my audioalready at 22050 hz and a bitrate of 64kbs. but will try 15 fps. anyway great update.
and about that siren14, is it's quality at lower bitrates better then ogg? and how can I encode a music file to siren14, do i need a license or something?
#169610 - RobinWatts - Sun Jul 26, 2009 4:10 pm
Tommmie wrote: |
and about that siren14, is it's quality at lower bitrates better then ogg? and how can I encode a music file to siren14, do i need a license or something? |
I haven't done tests myself between Siren14 and Ogg, in terms of quality. Siren14 is MUCH lighter on the CPU though.
The link I gave earlier includes a pointer to the Polycom site. On that site you'll find the following FAQs page: http://www.polycom.com/company/about_us/technology/siren14_g7221c/faq.html
They have demo WAVs and demo PC executables for encoding/decoding, so you can do your own tests. I'll be interested to hear what you think.
Yes, you'll need a license, but you can get a royalty free license without having to pay anything under very reasonable terms. Full details on that page.
Robin
#169653 - Lazy1 - Tue Jul 28, 2009 2:20 am
What is with dark areas having a patchy appearance?
It's hard to describe but it looks like a block of yellowish dots, this happens in every DS movie player I tried.
Is this a limitation of the display?
#169655 - Da-Bomb1 - Tue Jul 28, 2009 3:32 am
I thin it's due to the limited number of colors the screen can display...if you look at it closely, it's just alternating pixels. I don't fully understand it, but it looks to me that they just alternate with every frame to make it look smoother. Don't take my word for this though. :P
#169660 - RobinWatts - Tue Jul 28, 2009 11:00 am
Lazy1 wrote: |
What is with dark areas having a patchy appearance?
It's hard to describe but it looks like a block of yellowish dots, this happens in every DS movie player I tried.
Is this a limitation of the display? |
The DS screen is a 555 one; it can only display 32 different shades of Red/Green/Blue at each pixel, to give a total of 32768 different colours.
When displaying video on such screens, if you have smoothly changing areas of colour, and you simply display the closest colour to each pixel, you get "posterisation". (See http://www.cambridgeincolour.com/tutorials/posterization.htm for what this means.)
To try and avoid this, we dither the output; some pixels are bumped up a bit brighter, some a bit darker. The net effect is that you get the "stippled" (or "dotty") effect that you've noticed. Overall this should result in a more pleasing display.
The dither pattern is varied from frame to frame so that over time each pixel displays the correct colour "on average".
HTH,
Robin
#169803 - hacker013 - Tue Aug 04, 2009 1:15 pm
@RobinWatts
I saw you made some time ago a yuv2rgb script which was faster than the one chishm made for his tuna-vids, have you also changed his script to your script in this build?
_________________
Website / Blog
Let the nds be with you.
#169868 - Lazy1 - Fri Aug 07, 2009 9:54 pm
I see, would any kind of colour correction or similar filter help with this during encoding?
#169936 - RobinWatts - Sun Aug 16, 2009 8:27 am
hacker013 wrote: |
@RobinWatts
I saw you made some time ago a yuv2rgb script which was faster than the one chishm made for his tuna-vids, have you also changed his script to your script in this build? |
My yuv2rgb code was integrated into his v1.1 release. This new release of mine is an update to v1.1, so yes, it has a (modified) version of my code in.
Robin (On holiday, so lagging)
#170197 - hacker013 - Mon Sep 07, 2009 7:39 pm
Can you explain to me why it contains a loader and a player and not just a player with a directory browser ?
_________________
Website / Blog
Let the nds be with you.
#170199 - spinal_cord - Mon Sep 07, 2009 8:43 pm
hacker013 wrote: |
Can you explain to me why it contains a loader and a player and not just a player with a directory browser ? |
To give an example of passing command line arguments. The loader passes the filename to the player by leaving it in a specific location in memory.
_________________
I'm not a boring person, it's just that boring things keep happening to me.
Homepage
#170200 - hacker013 - Mon Sep 07, 2009 9:12 pm
so it isn't nesseary to have those 2 seperated ?
_________________
Website / Blog
Let the nds be with you.
#170206 - RobinWatts - Tue Sep 08, 2009 11:05 am
hacker013 wrote: |
so it isn't nesseary to have those 2 seperated ? |
I'd guess not. That's just the way Chishm did it originally. Having the 2 integrated would be neater, IMHO, but it does serve as some useful example code...
Robin