Tremor issues. |
![]() ![]() |
Tremor issues. |
May 6 2005, 12:23
Post
#1
|
|
|
Group: Members Posts: 289 Joined: 12-May 03 From: The Hague Member No.: 6555 |
I first noticed this some 2 years ago. I've got a HP Jornada 568 PocketPC with a 256MB CF card which i use as MP3/OGG/MPC player, i know this is hardly the best way to listen to music, but it's better to use the hardware i have than shell out for something new.
The problem is, i hear noticeable artifacts when playing OGG's with certain types of music, most notably continous low tones. A good example where this happens is the start of Radiohead - Lucky. It sounds like there is some weird higher harmonic in it, i can't really describe it, but it's very audible to me. Mac explained to me this is what you can hear when you reduce bit depth without dithering. Since PocketPC's as far as i'm aware don't have any floating point units and therefore can't use the normal Vorbis decoder, it would appear this is a bug in Tremor. I've tried two different programs to play OGG's on the PocketPC, PocketDiVX (later renamed to PocketMVP) and BetaPlayer, it makes no difference. Because the issue might also be something other than Tremor and i can't decode to a wav file on my PocketPC, i have no way of verifying this and putting some samples online for everone to listen to. Is there a Tremor compile for windows i can use to confirm this? -------------------- Veni Vidi Vorbis.
|
|
|
|
May 6 2005, 12:33
Post
#2
|
|
![]() xcLame and OggDropXPd Developer Group: Developer Posts: 3419 Joined: 30-September 01 From: Bracknell, UK Member No.: 111 |
-------------------- John
---------------------------------------------------------------- My compiles and utilities are at http://www.rarewares.org/ |
|
|
|
May 6 2005, 13:24
Post
#3
|
|
|
Group: Members Posts: 289 Joined: 12-May 03 From: The Hague Member No.: 6555 |
Thanks for the link.
Seems the issue is with the PocketPC, tremor decoded files seem to sound fine on my PC even with no dithering. Are there perhaps older versions of Tremor that behave differently? -------------------- Veni Vidi Vorbis.
|
|
|
|
May 6 2005, 13:48
Post
#4
|
|
![]() xcLame and OggDropXPd Developer Group: Developer Posts: 3419 Joined: 30-September 01 From: Bracknell, UK Member No.: 111 |
I think I'm right in saying that there has never been a formal release of Tremor. The library code was, IIRC, intended to be little more than a 'starting point' for the creation of environment specific implementations. I seem to recall having to tweak it slightly to get it to fly in the win32 environment; an environment that is hardly its intended target!!
I believe there have been few, if any, changes to the reference libs since initial availability. None of this really answers your questions, but sets a little background, hopefully!! -------------------- John
---------------------------------------------------------------- My compiles and utilities are at http://www.rarewares.org/ |
|
|
|
May 6 2005, 14:43
Post
#5
|
|
|
Group: Members Posts: 289 Joined: 12-May 03 From: The Hague Member No.: 6555 |
Even if it doesn't answer my question, it still makes tremor being bugged on my PocketPC entirely plausible even if it's fine on my PC i guess.
Also explains why Vorbis is relatively hard to find on hardware players, shame really as such a thing would be an important factor in ensuring your codec's success and broad acceptation... -------------------- Veni Vidi Vorbis.
|
|
|
|
May 6 2005, 16:16
Post
#6
|
|
![]() Group: Members Posts: 41 Joined: 8-July 04 Member No.: 15153 |
QUOTE (john33 @ May 6 2005, 12:48 PM) I think I'm right in saying that there has never been a formal release of Tremor. The library code was, IIRC, intended to be little more than a 'starting point' for the creation of environment specific implementations. I seem to recall having to tweak it slightly to get it to fly in the win32 environment; an environment that is hardly its intended target!! I believe there have been few, if any, changes to the reference libs since initial availability. None of this really answers your questions, but sets a little background, hopefully!! If anything, Tremor has seen quite a lot more development than the 'standard' Vorbis decoding code, including IIRC the first implementation of a libogg2-style demuxer with zero-copy. The development, however, has mostly been tucked away on a side-branch of CVS, and, as you say, doesn't see formal releases. As a side-point to the side-point, Tremor is actually very easy to build almost anywhere; I'm shipping win32 and Linux/x86 software using Tremor as the preferred decoder, for footprint reasons. Back on topic somewhat, Tremor in low-precision mode often demonstrates an unpleasant sort of mechanical buzzing edge to the output, but normal-precision Tremor was 'good enough' for me. I hope no-one is shipping player products using low-precision Tremor mode, but... |
|
|
|
May 6 2005, 21:32
Post
#7
|
|
|
Group: Members Posts: 289 Joined: 12-May 03 From: The Hague Member No.: 6555 |
Low precision mode you say.. that might be it. A quick benchmark on my 206Mhz StrongARM PocketPC gives a maximum playback rate of ~450%, and this is with the actual sound playing like an overspeeding tape recorder, so it's spending some CPU cycles on resampling as well. Could these sort of speeds indicate low precision mode being used?
Edit: That's for a Q5 file encoded at 161Kbps. This post has been edited by HbG: May 6 2005, 22:23 -------------------- Veni Vidi Vorbis.
|
|
|
|
May 23 2005, 08:32
Post
#8
|
|
|
Group: Members Posts: 8 Joined: 30-June 04 From: Budapest Member No.: 14987 |
QUOTE (aspifox @ May 6 2005, 04:16 PM) Both PocketMVP and BetaPlayer uses low-precision mode |
|
|
|
May 23 2005, 12:50
Post
#9
|
|
|
Group: Members Posts: 289 Joined: 12-May 03 From: The Hague Member No.: 6555 |
It'd be nice if it were possible to use normal precision when playing audio only even if it sacrifices some battery life. Does anyone know the developers?
EDIT: Nevermind This post has been edited by HbG: May 23 2005, 13:17 -------------------- Veni Vidi Vorbis.
|
|
|
|
May 23 2005, 17:59
Post
#10
|
|
|
Group: Members Posts: 72 Joined: 28-October 03 Member No.: 9505 |
QUOTE (picard @ May 23 2005, 03:32 PM) QUOTE (aspifox @ May 6 2005, 04:16 PM) Both PocketMVP and BetaPlayer uses low-precision mode You missed a good player for PocketPC It is GSPlayer. It supports mp3/ogg and plugins. http://hp.vector.co.jp/authors/VA032810/ -------------------- Sorry for my English.
|
|
|
|
May 23 2005, 22:23
Post
#11
|
|
|
Group: Members Posts: 8 Joined: 30-June 04 From: Budapest Member No.: 14987 |
|
|
|
|
Jul 1 2005, 13:13
Post
#12
|
|
|
Group: Members Posts: 2 Joined: 27-May 05 Member No.: 22320 |
Hi all,
I'm searching for a new algorithm for mdct_backward function of Tremor lowmem and I found that Johannes Sandvall, Erik Montnemery implemented it before (http://lists.xiph.org/pipermail/tremor/2003-November/000905.html). The lowmem tremor with a new mdct backward function was available. I goto the link: http://www.sandvall.nu/patch but this link was dead Could someone please send me this patch? Thanks in advance |
|
|
|
Aug 14 2008, 21:57
Post
#13
|
|
|
Group: Members Posts: 5 Joined: 26-February 06 Member No.: 28066 |
I hope no-one is shipping player products using low-precision Tremor mode, but... Well, too bad someone still does. I bought a Cowon iAudio 7 today and most of my Vorbis files sound horrible. According to some other people with the same problem it is because of the low precision tremor. see this thread to understand what I mean. http://www.cowonamerica.com/forums/showthread.php?t=13253 |
|
|
|
Aug 14 2008, 22:27
Post
#14
|
|
|
Group: Members Posts: 2476 Joined: 2-September 02 Member No.: 3264 |
It would be odd for them to use low precision given how ridiculously fast Tremor would be on the Iaudio 7's CPU.
|
|
|
|
Aug 15 2008, 14:37
Post
#15
|
|
![]() Group: FB2K Moderator Posts: 1485 Joined: 30-November 07 Member No.: 49158 |
Unfortunately, Tremor in latest iAUDIO 7 firmware is indeed compiled with _LOW_ACCURACY_.
-------------------- Full-quoting makes you scroll past the same junk over and over.
|
|
|
|
Aug 15 2008, 20:45
Post
#16
|
|
|
Group: Members Posts: 6 Joined: 15-August 08 Member No.: 57112 |
Is by inferring or by actually seeing the code? At least they fixed the issue on the D2. But in my opinion this is unacceptable. My ancient Samsung YP-MT6, a measly 512MB player, does not have this issue.
|
|
|
|
Aug 15 2008, 21:44
Post
#17
|
|
![]() Group: FB2K Moderator Posts: 1485 Joined: 30-November 07 Member No.: 49158 |
By actually seeing the co... uhm, nobody can have their code, of course.
See Tremor source code, floor1.c - there is a nice lookup table with values like CODE XdB(0x69f80e9a), XdB(0x70dafda8), XdB(0x78307d76), XdB(0x7fffffff), whereCODE #ifdef _LOW_ACCURACY_ Search I7_FW.BIN from latest firmware update for plain 0x69F80E9A => "9A 0E F8 69" - nothing.# define XdB(n) ((((n)>>8)+1)>>1) #else # define XdB(n) (n) #endif Search for ((0x69f80e9a >> 8) + 1) >> 1) => 0x0034FC07 => "07 FC 34 00" - you end up in this table, it's at the very end of the file. I don't know what the issue with iAUDIO D2 was and how it was solved, but at least the situation with I7 is a bit complicated by the fact that COWON is using only a highly-customized version of Telechips's SDK provided with the main chip, and Telechips distribute Vorbis decoder as a precompiled library. I'm not sure if it's caused by some kind of one-time licencing policy or large amount of customizations by COWON, but they aren't even using the latest SDK. Combined with short commercial lifetime such products, I wouldn't expect them to address this. (It's on my TODO list immediately behind gapless playback, though.) -------------------- Full-quoting makes you scroll past the same junk over and over.
|
|
|
|
Aug 15 2008, 21:52
Post
#18
|
|
![]() Group: Members Posts: 119 Joined: 18-March 05 From: Wichita, KS Member No.: 20701 |
I'm not sure iAudio themselves even touch that part of the firmware, I suspect they just use what the chipsets manufacturer puts out and adds their "OS" onto it. At least, that's what my impression was when reading up on the Rockbox / D2 porting stuff.
Whoops, Yirkha posted basically the same thing while I was typing that. This post has been edited by Rotareneg: Aug 15 2008, 21:53 -------------------- My photo gallery: http://www.flickr.com/photos/inghramjp
|
|
|
|
Aug 20 2008, 01:20
Post
#19
|
|
|
Group: Members Posts: 6 Joined: 15-August 08 Member No.: 57112 |
I see. The D2, U3, and 7 use the same ARM946-ES core, with the D2 also using an ARM926EJS core most likely for video. If they all use the same core for audio playback, all should be just as easily fixed.
Here's to looking to Aug 29 when Cowon at IFA in Berlin reveals perhaps new stuff. I did some checking, and found the D2 firmware has the right hex values you mentioned, while the U3 has like you said, the low precision values. When I checked the oldest firmware, 2.20 for the D2, it had the low precision hex value. Wait, if I were to take the firmware, change the hex code to the non low accuracy value, would that fix the issue? This post has been edited by sprockkets: Aug 20 2008, 03:55 |
|
|
|
Aug 20 2008, 01:51
Post
#20
|
|
|
Group: Members Posts: 6 Joined: 15-August 08 Member No.: 57112 |
Well, I tried, but of course the firmware is signed or has a checksum to it and my U3 rejects it. Got an idea for this?
This post has been edited by sprockkets: Aug 20 2008, 02:46 |
|
|
|
Aug 20 2008, 04:22
Post
#21
|
|
|
Group: Members Posts: 2476 Joined: 2-September 02 Member No.: 3264 |
Well, I tried, but of course the firmware is signed or has a checksum to it and my U3 rejects it. Got an idea for this? This guy figured out a way: http://forums.rockbox.org/index.php?topic=...31268#msg131268 However, since the LOW_ACCURACY define changes how fixed point multiplies in Tremor work, you'd need to change dozens, if not hundreds of inlined calls to it's MULT* functions. |
|
|
|
Aug 20 2008, 04:37
Post
#22
|
|
|
Group: Members Posts: 6 Joined: 15-August 08 Member No.: 57112 |
Ok, so explain to me what it means to ((((n)>>8)+1)>>1) the hex values so I can do more searching.
|
|
|
|
Aug 20 2008, 04:45
Post
#23
|
|
|
Group: Members Posts: 2476 Joined: 2-September 02 Member No.: 3264 |
|
|
|
|
Aug 20 2008, 05:15
Post
#24
|
|
![]() Group: FB2K Moderator Posts: 1485 Joined: 30-November 07 Member No.: 49158 |
As have been already stated by others, it's not about the one value I randomly chose for easy demonstration.
Although the biggest problem IMHO aren't the inline calls (one SMULL should be shorter than some fixed-point shifting), but rather overall decoder size. In a normal-precision build, there are ~40 kB of various look-up tables, one 32-bit word per value. In a low-precision version, these are stripped down to one quarter of the size by using only 8-bit values. Good luck searching for such space in the firmware... (No, it's not possible to just append it to the end, the firmware is copied from flash to SDRAM at runtime and code/data/bss segments are laid one after another with no space, so one would have to rebase everything. I'll just cut off all the silly JANUS DRM and MTP stuff, probably.) -------------------- Full-quoting makes you scroll past the same junk over and over.
|
|
|
|
Aug 20 2008, 06:00
Post
#25
|
|
|
Group: Members Posts: 6 Joined: 15-August 08 Member No.: 57112 |
I see. And just by changing the value did not work anyhow.
In other words, after being compiled with the different options, a lot of different pieces of code get changed. Or, more likely as you all say, they took the tremor code, edited what they needed, and then compiled it with --low-precision. Well, this problem pisses me off so much that I want to do whatever to change it. Out of curiosity, Yirkha, are you doing work on rockbox for Cowon's flash players? Or doing the work on Cowon's own firmware? Or, what other forums are you posting on? Due to the nature of this issue, I've been scouring the iaudiophile, anythingbutipod, and cowonamerica forums. This post has been edited by sprockkets: Aug 20 2008, 06:43 |
|
|
|
![]() ![]() |
|
Lo-Fi Version | Time is now: 21st November 2009 - 14:26 |