[vorbis] About Vorbis Encoder

Stephen So s.so at griffith.edu.au
Fri Feb 27 02:52:26 PST 2004



Yes, it is confusing at first.  One thing to remember is that when I 
refer to L and R channels, I'm actually talking about the L and R 
residues ;)  But digging into the source code is often the best way of 
learning, though certainly not the easiest. ;)

Best regards,

Steve.

Leena wrote:

>Thanks Stephen !!
>
>  I was  little bit confused as they have stated that polar representation
>has
>seperated spatial audio in point image and diffuse image . From their doc I
>was
>not clear about how mag and angle are compuated .
>  I was getting totally on wrong path while reading the code. As per your
>seggestion
>I will read the follwing code to clear the coupling Idea .
>
>
>      mag_memo=_vp_quantize_couple_memo(vb,
>					&ci->psy_g_param,
>					psy_look,
>					info,
>					gmdct);
>
>      mag_sort=_vp_quantize_couple_sort(vb,
>					psy_look,
>					info,
>					mag_memo);
>
>
>			if(info->coupling_steps){
>	_vp_couple(k,
>		   &ci->psy_g_param,
>		   psy_look,
>    		   info,
>		   vb->pcm,
>		   mag_memo,
>		   mag_sort,
>		   ilogmaskch,
>		   nonzero,
>		   ci->psy_g_param.sliding_lowpass[vb->W][k]);
>      }
>
>Thanks & regards
>
>Leena
>
>
>
>
>-----Original Message-----
>From: owner-vorbis at xiph.org [mailto:owner-vorbis at xiph.org]On Behalf Of
>Stephen So
>Sent: Friday, February 27, 2004 3:48 PM
>To: vorbis at xiph.org
>Subject: Re: [vorbis] About Vorbis Encoder
>
>
>I'm no expert in Vorbis internals but I have been trying to learn more
>to do my own tunings.  I can tell you what I know and hopefully someone
>more knowledgeable can correct me if I make an error. :)
>
>Currently, the Vorbis encoder use a mix of lossless stereo and point
>stereo for 2 channel encoding.  If there are more channels, each channel
>is coded independently, hence they are uncoupled.
>
>As you have read in the stereo documentation, Vorbis uses square polar
>mapping where L and R channels are converted to a magnitude and angle.
>In lossless stereo coupling, assuming A=L, and B=R  (the rc3 source code
>is clearer on this),
>
>1.  if A is larger than B, set mag to A and angle to A-B (if B is
>positive) or B-A (if B is negative).
>2. if B is larger than A, set mag to B and angle to A-B (if B is
>positive) or B-A (if B is negative)
>
>Hence the magnitude represents the strongest common value while the
>angle represents the difference (diffuse sounds) of the other channel.
>This is similar to intensity stereo in MP3 where L and R channels are
>mapped to L and L-R.  In point stereo, the angle is set to 0, thus is no
>diffuse information and the sound appears centered.  The beauty of this
>is that both point stereo and lossless stereo can be decoupled using the
>same procedure (the one in the stereo docs)
>
>Currently, Vorbis mostly uses lossless stereo coupling for quality
>levels of 6 and above while 5 and below uses a mix of point and
>lossless.  In the /lib/modes/psych_44.h file (which contains all the
>important tuning parameters of Vorbis), you will notice close to the
>bottom, a lot of adj_stereo structure initialisations.  The first row
>are prepoint thresholds which govern whether to use point stereo or
>not.  If the quantised residue is less than the threshold, they are
>coupled using point stereo.  Otherwise, they are losslessly coupled.
>
>To see all this in the source code, go to psy.c and the function
>_vp_couple and you will see an if statement determining whether to use
>point stereo or lossless.  To see the decoupling routine, go to
>mapping0.c and it should be in the inverse mapping function down toward
>the end. :)
>
>That's all I know. :)
>
>Best regards,
>
>Steve.
>
>Leena wrote:
>
>  
>
>>Hello !!
>>
>> Can anyone explain me the coupling mechanism used in vorbis . I have read
>>the
>>spects and enocder code also to clear the 'square polar mapping' concept .
>>But still
>>I haven't understood it well .
>>
>>
>>Leena
>>
>>
>>
>>-----Original Message-----
>>From: Leena [mailto:leena.padgaonkar at patni.com]
>>Sent: Monday, February 23, 2004 6:48 PM
>>To: 'vorbis at xiph.org'
>>Subject: RE: [vorbis] About Vorbis Encoder
>>
>>
>>Thanks Steve a lot !! Unless one is clear with encoding process ,only
>>deocder
>>reading is not going to help to understand Ogg vorbis  in details.
>>
>>Leena
>>
>>
>>-----Original Message-----
>>From: owner-vorbis at xiph.org [mailto:owner-vorbis at xiph.org]On Behalf Of
>>Stephen So
>>Sent: Monday, February 23, 2004 6:38 PM
>>To: vorbis at xiph.org
>>Subject: Re: [vorbis] About Vorbis Encoder
>>
>>
>>The Vorbis I specifications only provides details from a decoder point
>>of view, which I assume gives some freedom in the implementation of the
>>encoder.  Currently the best way to understand the encoder is to
>>download the source and try and understand what's going on.  A good
>>source file, from which to observe the sequence of Vorbis encoding, is
>>mapping0.c in the function called mapping0_forward.
>>
>>Good luck :)
>>
>>Best regards,
>>
>>Steve.
>>
>>Leena wrote:
>>
>>
>>
>>    
>>
>>>Hello !!
>>>
>>>
>>> Can I get the vorbis -I encoder spects ..? I have Vorbis I
>>>
>>>
>>>      
>>>
>>specifications
>>
>>
>>    
>>
>>>. That talks mostly about vorbis
>>>Decoder .
>>>
>>>
>>>Leena
>>>
>>>--- >8 ----
>>>List archives:  http://www.xiph.org/archives/
>>>Ogg project homepage: http://www.xiph.org/ogg/
>>>To unsubscribe from this list, send a message to 'vorbis-request at xiph.org'
>>>containing only the word 'unsubscribe' in the body.  No subject is needed.
>>>Unsubscribe messages sent to the list will be ignored/filtered.
>>>
>>>
>>>
>>>
>>>
>>>      
>>>
>>--
>>--------------------------------------------------
>>Stephen So, BEng(Hons)
>>
>>PhD Student,
>>Signal Processing Laboratory,
>>School of Microelectronic Engineering,
>>Faculty of Engineering and Information Technology,
>>Griffith University, Nathan Campus,
>>Brisbane, QLD, Australia, 4111.
>>
>>Phone: +61-7-3875 3754
>>E-mail: s.so at griffith.edu.au
>>--------------------------------------------------
>>
>>--- >8 ----
>>List archives:  http://www.xiph.org/archives/
>>Ogg project homepage: http://www.xiph.org/ogg/
>>To unsubscribe from this list, send a message to 'vorbis-request at xiph.org'
>>containing only the word 'unsubscribe' in the body.  No subject is needed.
>>Unsubscribe messages sent to the list will be ignored/filtered.
>>
>>--- >8 ----
>>List archives:  http://www.xiph.org/archives/
>>Ogg project homepage: http://www.xiph.org/ogg/
>>To unsubscribe from this list, send a message to 'vorbis-request at xiph.org'
>>containing only the word 'unsubscribe' in the body.  No subject is needed.
>>Unsubscribe messages sent to the list will be ignored/filtered.
>>
>>
>>
>>    
>>
>
>--
>--------------------------------------------------
>Stephen So, BEng(Hons)
>
>PhD Student,
>Signal Processing Laboratory,
>School of Microelectronic Engineering,
>Faculty of Engineering and Information Technology,
>Griffith University, Nathan Campus,
>Brisbane, QLD, Australia, 4111.
>
>Phone: +61-7-3875 3754
>E-mail: s.so at griffith.edu.au
>--------------------------------------------------
>
>--- >8 ----
>List archives:  http://www.xiph.org/archives/
>Ogg project homepage: http://www.xiph.org/ogg/
>To unsubscribe from this list, send a message to 'vorbis-request at xiph.org'
>containing only the word 'unsubscribe' in the body.  No subject is needed.
>Unsubscribe messages sent to the list will be ignored/filtered.
>
>--- >8 ----
>List archives:  http://www.xiph.org/archives/
>Ogg project homepage: http://www.xiph.org/ogg/
>To unsubscribe from this list, send a message to 'vorbis-request at xiph.org'
>containing only the word 'unsubscribe' in the body.  No subject is needed.
>Unsubscribe messages sent to the list will be ignored/filtered.
>
>  
>


-- 
--------------------------------------------------
Stephen So, BEng(Hons)

PhD Student, 
Signal Processing Laboratory,
School of Microelectronic Engineering,
Faculty of Engineering and Information Technology,
Griffith University, Nathan Campus,
Brisbane, QLD, Australia, 4111.

Phone: +61-7-3875 3754
E-mail: s.so at griffith.edu.au
--------------------------------------------------

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'vorbis-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.




More information about the Vorbis mailing list