Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Rockbox mail archive

Subject: Re: MPEG Audio format

Re: MPEG Audio format

From: Bluechip <csbluechip_at_gmail.com>
Date: 2006-01-14

I know this (and many similar/identical) documents well. This is my
personal fave:
http://www.codeproject.com/audio/MPEGAudioInfo.asp

And I agree with "sounds like" ...it also sounds like you can change mpeg
version, layer and samplerate ...in which case the statistical analysis of
the audio data becomes a five (or was it six) dimentional array ...which is
a cakewalk to process and a total nightmare to present to the user as
something useful. So I need to try and reduce the level of complexity at a
more lateral level - that is, the reultant program would whinge about the
"probably legal but nobody actually has one" files in favour of being
helpful the other 99% of the time.

Hope that explains the background behind why I am asking core question: In
reality, what do I atually have to deal with.

BC

At 06:52 14/01/2006, you wrote:
>Okay, I was a little confused by the semantics. I think of "joint stereo" as
>being MS (which stands for Mid/Side which means that instead of encoding
>left and right you encode sum and difference).
>
>It looks like they have "stereo" mode which is simply pure stereo, and
>"joint stereo" which means that you can add the additional features of
>"Mid/Side" and "Intensity Stereo", but if you don't add either one then you
>really have exactly the same thing as just "stereo".
>
>So, in the samples lame generates it switches on and off Mid/Side (and
>probably would use "Intensity Stereo" at lower bitrates), but leaves the
>high-level mode as "Joint Stereo" for all frames. However, in reading the
>frame specification on this site it sounds like the high-level joint stereo
>setting *can* be changed from frame to frame also:
>
>http://www.mp3-tech.org/programmer/frame_header.html
>
>Hope this makes some sense... :)
>
>David
>
>----- Original Message -----
>From: "Bluechip" <csbluechip@gmail.com>
>To: <rockbox-dev@cool.haxx.se>
>Sent: Friday, January 13, 2006 10:12 PM
>Subject: Re: MPEG Audio format
>
>
> > Whoops ...hit send a bit quick
> >
> > Nice of LAME to not update the frame counter when it completes.
> >
> > Meant to append this:
> >
> > D:\x>c:lame themic~1.wav
> > LAME version 3.96.1 (http://lame.sourceforge.net/)
> > CPU features: MMX (ASM used), 3DNow! (ASM used)
> > Using polyphase lowpass filter, transition band: 10758 Hz - 11025 Hz
> > Encoding The Microsoft Sound.wav to The Microsoft Sound.wav.mp3
> > Encoding as 22.05 kHz 64 kbps j-stereo MPEG-2 Layer III (11x) qval=3
> > Frame | CPU time/estim | REAL time/estim | play/CPU |
>ETA
> > 300/302 (99%)| 0:01/ 0:01| 0:02/ 0:02| 4.0816x|
>0:00
> > average: 64.0 kbps LR: 83 (27.30%) MS: 221 (72.70%)
> >
> > Writing LAME Tag...done
> > ReplayGain: -2.6dB
> >
> >
> > @0x000000D0+0.0, 63529 - 304 MPEG audio frames
> > | ,--
> > | | MPEG Version : MPEG Version 2 (ISO/IEC 13818-3)
> > | | MPEG Layer : Layer III
> > | | Samplerate : 22050 Hz
> > | | Bitrate : CBR @ 64 KbpS
> > | | Samples/Frame : 576
> > | | Frame Time : 26.122449 mS
> > | |
> > | | Frame Count : 304 -> 100.0% (of ALL frames)
> > | | Frame Time : 0:00:07.941
> > | `-v
> > | | (%'s below are for this block only)
> > | |
> > | +-- Channels : 304 -> 100.0% @ Joint Stereo [Xing index: 0]
> > | | 83 -> 27.3% @ JS (only)
> > | | 221 -> 72.7% @ JS +M/S
> > | |
> > | +-- Emphasis : 304 -> 100.0% @ No Emphasis
> > | |
> > | | --- Enabled ---- -+- --- Disabled ---
> > | +-- Original : 304 -> 100.0% | 0 -> 0.0%
> > | +-- Copyright : 0 -> 0.0% | 304 -> 100.0%
> > | +-- Private : 0 -> 0.0% | 304 -> 100.0%
> > | | |
> > | +-- Protected : 0 -> 0.0% | 304 -> 100.0%
> > | +-- Padding : 297 -> 97.7% | 7 -> 2.3%
> > | | ^
> > | `-- Bitrate : CBR @ 64 KbpS
> > `---------------------------------------------------------------------
> >
> >
> > >>I just ran lame with no options on the first file I found and got the
> > >>following output:
> > >>---------------
> > >>LAME version 3.96.1 (http://lame.sourceforge.net/)
> > >>CPU features: MMX (ASM used), SSE, SSE2
> > >>Using polyphase lowpass filter, transition band: 17249 Hz - 17782 Hz
> > >>Encoding concat.wav to concat.mp3
> > >>Encoding as 44.1 kHz 128 kbps j-stereo MPEG-1 Layer III (11x) qval=3
> > >> Frame | CPU time/estim | REAL time/estim | play/CPU |
>ETA
> > >> 2379/2381 (100%)| 0:09/ 0:09| 0:10/ 0:10| 6.2245x|
>0:00
> > >>average: 128.0 kbps LR: 849 (35.64%) MS: 1533 (64.36%)
> > >>
> > >>Writing LAME Tag...done
> > >>ReplayGain: -0.8dB
> > >>-----------------
> > >>As you can see on the line starting with "average" this particular
>sample
> > >>used joint-stereo on 64% of the frames.
> > >>
> > >>If you don't have lame installed or can't find a track that produces
>both
> > >>kind of frames, I can easily put this file somewhere.
> > >
> > >LR: 849 (35.64%) MS: 1533 (64.36%)
> > >
> > >Means that 64.36% of the Joint Stereo frames utilise the "+MS" thing ...I
> > >have no idea what it is, but I do know it is a Joint Stereo enhancement
> > >held in the MODE bits of the header - which are only relevant if the
> > >CHANNEL bits are set to Joint Stereo. There is also a "+IS" (intentsity
> > >stereo) and the combo "+M/S +IS"
> > >
> > >BC
> > >
> > >
> > >>David
> > >>
> > >> >
> > >> > >When it comes to sample rate, layer and version switching, I think
>you're
> > >> > >reasonably safe, though it is probably legal. Stereo mode I think
>you
> > >>will
> > >> > >find encoders may switch from frame to frame.
> > >> >
> > >> > Is anyone in a position to send me an example file please? Or
>seond-best,
> > >> > name an encoder with a required set of options.
> > >> >
> > >> > Difficult to test my app without test data - and quite a chore to
> > >> > manufacture such a file by hand. (...and that bit of the app is not
>yet
> > >> > written)
> > >> >
> > >> > BC
> > >> >
> > >> >
> >
> >
Received on Sat Jan 14 20:40:11 2006


Page was last modified "Jan 10 2012" The Rockbox Crew
aaa