<body><!-- --><div id="b-navbar"><a href="http://www.blogger.com/" id="b-logo" title="Go to Blogger.com"><img src="http://www.blogger.com/img/navbar/1/logobar.gif" alt="Blogger" width="80" height="24" /></a><form id="b-search" name="b-search" action="http://search.blogger.com/"><div id="b-more"><a href="http://www.blogger.com/" id="b-getorpost"><img src="http://www.blogger.com/img/navbar/1/btn_getblog.gif" alt="Get your own blog" width="112" height="15" /></a><a href="http://www.blogger.com/redirect/next_blog.pyra?navBar=true" id="b-next"><img src="http://www.blogger.com/img/navbar/1/btn_nextblog.gif" alt="Next blog" width="72" height="15" /></a></div><div id="b-this"><input type="text" id="b-query" name="as_q" /><input type="hidden" name="ie" value="UTF-8" /><input type="hidden" name="ui" value="blg" /><input type="hidden" name="bl_url" value="infopedia.infomaninc.com" /><input type="image" src="http://www.blogger.com/img/navbar/1/btn_search_this.gif" alt="Search This Blog" id="b-searchbtn" title="Search this blog with Google Blog Search" onclick="document.forms['b-search'].bl_url.value='infopedia.infomaninc.com'" /><input type="image" src="http://www.blogger.com/img/navbar/1/btn_search_all.gif" alt="Search All Blogs" value="Search" id="b-searchallbtn" title="Search all blogs with Google Blog Search" onclick="document.forms['b-search'].bl_url.value=''" /><a href="javascript:BlogThis();" id="b-blogthis">BlogThis!</a></div></form></div><script type="text/javascript"><!-- function BlogThis() {Q='';x=document;y=window;if(x.selection) {Q=x.selection.createRange().text;} else if (y.getSelection) { Q=y.getSelection();} else if (x.getSelection) { Q=x.getSelection();}popw = y.open('http://www.blogger.com/blog_this.pyra?t=' + escape(Q) + '&u=' + escape(location.href) + '&n=' + escape(document.title),'bloggerForm','scrollbars=no,width=475,height=300,top=175,left=75,status=yes,resizable=yes');void(0);} function blogspotInit() {} --></script><script type="text/javascript"> blogspotInit();</script><div id="space-for-ie"></div>

Thursday, November 10, 2005

MPEG-4 Part 3

MPEG-4 Part 3 (formally ISO/IEC 14496-3) is, as the name suggests, the third part of the ISO/IEC MPEG-4 international standard. It specifies audio coding methods.

Bifurcation in the AAC technical standard
The Advanced Audio Coding in MPEG-4 Part 3 was enhanced relative to what was previously specified in MPEG-2 Part 7, in order to provide better sound quality relative to the bit rate used for the encoding.

It is assumed that any Part 3 and Part 7 differences will be ironed out by the ISO standards body in the near future to avoid the possiblity of future bitstream incompatabilites. At present there are no known player or codec incompatibilities due to the newness of the standard.

AAC's mulitple codecs
  • One codec defined in MPEG-4 Part 3 is known as Low Complexity Advanced Audio Coding (LC-AAC).
  • Another codec is known as High-Efficiency Advanced Audio Coding (HE-AAC) or "aacPlus".
  • Another codec is known as Scalable Sample Rate Advanced Audio Coding (AAC-SSR).
aacPlus, or HE-AAC
aacPlus is a lossy data compression scheme for audio streams. It is based on MPEG-4, and combines three techniques: Advanced Audio Coding (AAC), Spectral Band Replication (SBR), and parametric stereo (PS).

aacPlus was standardized by the MPEG under the High Efficiency AAC (HE-AAC) name. The codec can operate at very low bitrates and is good for Internet radio streaming. A 48 kilobit-per-second stream is considered to have higher quality than 128 kbit/s MP3.

aacPlus is supported in the free FAAD2 decoding library, and hence in many free players, and in Winamp and foobar2000. Because iTunes does not support aacPlus, the only player for Mac OS X is VLC. MPlayer and MPlayerOSX plan to soon support aacPlus, as well.

MPEG-4 AAC-SSR
MPEG-4 AAC-SSR or MPEG-4 Advanced Audio Coding - Scalable Sample Rate was introduced by Sony to the MPEG-4 standard. The audio signal is first split into 4 bands using a 4 band polyphase quadrature filter bank. Then these 4 bands are further split using MDCTs with a size k of 32 or 256 samples. This is similar to normal MPEG-4 AAC which uses MDCTs with a size k of 128 or 1024 directly on the audio signal.

The advantage of this technique is that short block switching can be done separately for every PQF band. So high frequencies can be encoded using a short block to enhance temporal resolution, low frequencies can be still encoded with high spectral resolution. However, due to aliasing between the 4 PQF bands coding efficiencies around (1,2,3) * fs/8 is worse than normal MPEG-4 AAC.

MPEG-4 AAC-SSR is very similar to ATRAC and ATRAC-3.

Why AAC-SSR was introduced
The idea behind AAC-SSR was not only the advantage listed above, but also the possibility of reducing the data rate by removing 1, 2 or 3 of the upper PQF bands. A very simple bitstream splitter can remove these bands and thus reduce the bitrate and sample rate.

Example:

4 subbands: bitrate = 128 kbit/s, sample rate = 48 kHz, f_lowpass = 20 kHz 3 subbands: bitrate ~ 120 kbit/s, sample rate = 48 kHz, f_lowpass = 18 kHz 2 subbands: bitrate ~ 100 kbit/s, sample rate = 24 kHz, f_lowpass = 12 kHz 1 subband: bitrate ~ 65 kbit/s, sample rate = 12 kHz, f_lowpass = 6 kHz

Note: although possible, the resulting quality is much worse than typical for this bitrate. So for normal 64 kbit/s AAC a bandwidth of 14...16 kHz is achieved by using intensity stereo and reduced NMRs. This degrades audible quality less than transmitting 6 kHz bandwidth with perfect quality.

0 Comments:

Post a Comment

<< Home