22 December, 2008
H.264 on iPhone...waiting for Flash Player

During the last Flash On The Beach event, Adobe confirmed to be working at the porting of the Flash Player on the iPhone platform. Waiting for this to be reality and hoping for the support of H.264 codec, I'm experimenting new encoding optimizations for the iPhone.

The Apple's iPhone supports a sub-set of H.264 functionalities, in detail it supports level 3.0 and the baseline profile therefore it is less efficient than the Flash Player 9.
Nevertheless it is possible to optimize video encoding specificately for such feature set.

The file you can see below is an iPhone compliant .mp4 with a resolution of 480x320 (the iphone screen resolution) encoded at 400Kbit/s. The video is very fast moving, with lower complex video it is possible to go down with bandwidth to 250-300Kbit/s.

Fortunately European edition of iPhone is a 3.5G class phone with HSDPA support therefore it is easily possible to stream video with bitrate in the range 300-500Kbit/s.

Interesting also the possibility to encode one and deliver to multiple platforms. The video below can be played by iPhone, iPod, H264 enabled Smart phones and obviously by the Flash Player in the browser.

Fabio Sonnati ::

17 December, 2008
MaxEurope: Encoding video for the highest Quality

Finally I published the slides used in my session at Max Europe 2008. They are 50 pages where I talk about H.264 encoding optimizations and Best Practices.

Fabio Sonnati ::

4 December, 2008
A great MAX EUROPE 2008 experience

I had a great time at MAX 2008 in Milan. It has been very interesting to meet Flash experts and evangelists and being able to elaborate a more clear vision of where the technology is heading for the future.

I attended very inspiring sessions by Stefan Richter, Marco Casario, David Hassoun, Michael Thornburgh and others, acquired new skill in Pixel Bender, Flex, FMS, and kept in touch with old and new friends like Dario De Agostini, Andrea Amadeo and Tim Siglin.

The experience as a speaker has been very good too.

Flash Open Screen Project is really exciting, and so the new protocol RTMFP and the new path of development for Flash Media Server.

Another very impressive technologies is Alchemy, a C/C++ to AS3 converter which allows us for a fast and efficient access to billions of line codes written in C/C++.

But the most important "eritage" of the event is the born of new ideas in my mind about Encoding, FMS, streaming enhancement, Pixel Bender, new business opportunity and so on.

Now that I'm returned at home, it's only a matter of starting to work to these ideas, and I'm happy because from a such high number of istirations, someone will be surely good.

Fabio Sonnati ::

25 October, 2008
YouTube experimenting HD with H.264

After the launch of the live service and of entire movies, YouTube's engineers are experimenting the delivery of HD videos using H.264.
These are examples of YouTube HD (Requires Flash Player 9):


The video has a resolution of 1280x720 (720p HD) and is encoded @ 2.2Mbit/s.
Not bad, but the bitrate/quality ratio can be widely improved as is known by who reads my blog and has watched my experiments of HD videos at low bitrate.

I think that the effort to keep low the bandwidth requirements with good quality is very strategic for the effective diffusion of HD on the Internet. This is why I'm in the endless quest for techniques and best practices to push H.264 encoding to the limit.

Here I repost some well-known examples:

- Heima (720p) @ 500Kbit/s
- Heroes (720p) @ 500Kbit/s
- Heima (1080p) @ 1500Kbit/s

(Thanks to Naicu Octavian who posted the link on Stefan "FlashComGuru" Richter's Flash Media Mailing List)

Fabio Sonnati ::

25 October, 2008
A primer to H.264 levels and profiles

H.264 is a very complex standard and sometimes it's very difficult to work with the codecs and their setting. Two important parameters are Level and Profile. Because a lot of people asked me about the meaning of these two parameters, I'd like to underline the most important.

What is the "Profile" ?

H.264 supports some encoding profiles (Baseline, Main, High, High10, Extended). These profiles represent a sub-set of the encoding techniques available in H.264. This is usefull to target decoders with very different decoding capabilities (memory and processing power in primis).

The baseline profile supports only a limited subset of techniques so it is simplier to design, requires less code and less processing power and therefore is aimed at low power mobile devices and the like.

The Main profile supports the majority of encoding techniques so it need more code, more memory and more processing power on the decoder side. Main profile is usually supported by set-top-box and the like.

The High profile supports virtually all the H264's encoding techniques. It is designed for HD and FullHD (Blueray and HD Satellite broadcast) and it's usually supported by software decoders too.

The question is: what profile is it better to use ? The good new is that If you target only the Flash Player you can simply use the High profile, but if you target the iPhone, in example, you will need to encode the video targeting the baseline profile.

What is the "Level" ?

Profiles address the problem of code complexity and processing power. Levels address the problem of bandwidth, max resolution, and memory issues on the decoder side. Any given device supports a max profile depending by the memory and the max resoultion available. Lower levels mean lower resolutions, lower allowed max bitrates and lower memory to store reference frames. In example iPhone support video encoded in baseline profile up to the level 3.0.
The question is the same: what level is it better to use ? Again, Flash Player supports all the level upt to 5.1. Usually I use 4.1 which is perfect for SD and HD videos.

I'll speak about this and other topics at Max Europe 2008 , December 2.

Fabio Sonnati ::

22 November, 2008
FMS 3.5 and other announcements

Adobe announced at MAX SF the next release of Flash Media Server 3.5.
The main innovations of this release are:

- the support of a native multi-bitrate switching (requires Flash Player 10)
- the support of DVR-like features in streaming live
- an integrated HTTP web server

With FMS 3.5 will be also released Flash Media Live Encoder 3 (aka FME) witch will support multi bitrate live encoding (requires FME 3.5 and FP10).
I'll discuss about these features more over, by now to know more take a look at the Kevin Towes' Blog.

Fabio Sonnati ::

7 November, 2008
I'll Speak about H.264 at Max Europe 2008

I'm very proud to join the Max Europe 2008 crew this year, expecially because we will be in Italy, my country.

At Max I'll speak about H.264 and encoding best practices.

This is the abstract of my session (December 2):

Encoding Video for the Highest Quality and Performance

"Make video look the best it can. Get a deep understanding of optimizing H.264 and VP6-S for the highest quality and smoothest delivery experience. Learn how to tweak the encoder for maximum quality in Flash Player and Adobe AIR. The session will focus on understanding the H.264 codec and how you can deploy a larger frame size using new multibitrate technology. This is a great companion to the session on multibitrate video."

If you like to know more about the H.264 video encoding, FMS and Flash Video Technology, join us at Max Europe and register to my session. The session will cover the encoding technologies implemented in H.264, the best settings for optimizing the final video quality and best practices to get the maximum performance in the Flash Player.

Fabio Sonnati ::

1 November, 2008
Can PixelBender be used to enhance video quality ?

PixelBender is a new exciting feature of Flash Player 10. In short it is a language, a runtime environment and a JIT compiler (with a fall back interpreter) capable to generate and execute machine code optimized for image filtering. PixelBender filters are flexible, fast and are execute in multi-threading over multiple core. I suggest the reading of Tinic Uro's Blog to know more about it.

But what is the point about PixelBender and Video Playback Enhancement ?

I think PixelBender to be very interesting for the design of fast and sophisticated post filtering kernels for enhancing video quality. Differently from Vp6 and Vp7, H.264 which is the "king on the hill" codec today, does not implements standard post processing or post filtering technology. This is really a mess, because at high compress ratio post processing is very usefull to reduce blockyness and restore picture sharpness. Now with PixelBender will be possible to create sofisticated custom post-processing filters to fill this lack and futherly enhance H.264 video quality at any resolution.

What we could do with Pixel Bender ? For example:

- enhance the details lost with compression using adaptive hi-pass filters.
- reduce the residual blocking in low bitrate video with deblocking filters.
- restore quality by simulation a fine grain over the video.
- smooth the areas of the picture which suffered of excessive quantization (usually dark areas).

If applyed carefully, post processing can also improve PSNR (Power Signal Noise Ratio) but most of all perceptual quality.
I'm starting a bunch of test about this potentialities. And these are two frames of a standard encoded H.264 (left) and the enhanced one (right). I'll keep you informed.

Fabio Sonnati ::

18 October, 2008
My preferite Flash Player 10 features

A short comment about the recent release of Flash Player 10.

My preferite features by now are:

1. GPU acceleration which promises better performance and better playback of movies and video.
2. Pixel Blender which is a powerfull tool and open new interesting scenarios for video playback enhancing and multithreading elaboration.
3. Better programmatic control of Audio.

I'll analyze more in depth the point 1 and 2 in next post.

Fabio Sonnati ::

18 October, 2008
I'm a father

Indeed I'm a lot of thing, but now I'm also (and above all) a father. My first son (Alessandro) is born Sunday 12 October in the morning. As you can well understand my life is changing completely not only from a practical point of view but most of all from an emotional point of view. Paternity (or parently) is such a powerful and depth link between two souls that can reveal, sometimes, the most true roots of our beeing.

Fabio Sonnati ::

9 October, 2008
SD video encoded at 200Kbit/s in H.264

Sometimes I enjoy myself trying to find the limit of encoding technologies, this is only an experiment and show the level of compression that you can achieve with H.264 starting from standard definion sources.

In the last post I talked about the importance of optimizing the encoding for Standard Definition contents because they are still over the 90% of the content out there. Well, I think we are very near the limit of H.264 with this 200Kbit/s sample.


The source is a SD video (720x480), encoded at 480x288 which is till good for a 16:9 aspect ratio and then interpolated back to 720x480 in the player (indeed, Flash Player 9

When you evaluate the quality level, remember that 200Kbit/s is almost half the bitrate used on YouTube. Compare the quality with the previous samples at 300 and 400Kbps.

Fabio Sonnati ::

1 October, 2008
The good old Standard Definition & H.264

You know that today it's possible to stream HD contents on the web at very good bitrates thanks to codecs like H.264 and the Flash Player 9 (see my previous demos of HD and FullHD video delivery). Ok, but now that the technology is available who has the HD contents and the will to publish them ? Indeed broadcasters still work for the most part with Standard Definition contents on their delivery channels (Satellite, Digital Terrestial, DVD) and there are huge archives of old but precious SD contents.

Therefore, optimizing the encoding of such SD content is very important, sometime strategic. But SD contents are often difficult to encode because in the vast majority they are interlaced and the older clips are noisy.

A custom approach to encoding is required to obtain the best bitrate / quality ratio.
In example, interlacing is one of the worst enemy and it is important to use the best deinterlacing routines available (motion compensated) and other tricks.

Pushing the H.264 potentialities to the limit, it is possible to encode generic SD content in the range 300-600Kbit/s with good results. Let's take a look at these samples:



The first is a 720x480 clip encoded at only 400Kbit/s (the bitrate used by YouTube).
The second is the same clip encoded at 300Kbit/s but with a resolution of 640x480.
Both clips have a sound track encoded at only 32Kbit/s, thanks to the excellent performance of the codec He AACv2. The mix of H.264 and AAC is very effective at low bitrate because using older technology like Vp6 + MP3 at 300Kbit/s needed at least 80Kbit/s (MP3) for the audio track to reach the quality of a 32Kbit/s AAC with the result of a lower bitrate available for the video track (220Kbps vs 268Kbs, 18% less)

Concluding, I think H.264 is not only the "state of the art" in video encoding today, but beeing an open standard it is also an "open lab" where explore the limits of encoding technologies. Therefore, it is not only the best choice for HD videos but for all type of video. The only open issue remains the higher processing power required by H.264 but this is another false myth I will try to demistify because with specific optimizations it is possible to reduce consistently the required precessing power (note: in the previous samples I'm not using optimizations for processing power, yet ;-)

Fabio Sonnati ::

12 September, 2008
Adobe in the encoding industry

During IBC, Adobe announced the Flash Media Encoding Server a new scalable, high-performance server application for encoding generic videos to Flash video files. The solution, derived from Rozhet
, is a robust encoding technology and support H.264, Vp6, AAC, MP3 as output for the Flash Player. FMES is expected to be available by the end of 2008 with a price of 6000$ US.

Fabio Sonnati ::

25 August, 2008
Kevin Towes on FMS scalability

"Breaking 1Gbps with Flash Media Server" is the title of this Kevin Towes' post. Flash Media Server 3 is much more scalable that FMS2. Now the bottle neck is the network connection rather than the CPU or the memory. Kevin advices how to go beyond the limit of a classic 1Gbps nic...

Fabio Sonnati ::

28 July, 2008
Are you ready for FullHD videos on the web ? (part II)

I thinked to post this second part of my FullHD experiment a few days after the first part, but I have been completely absorbed by some projects regarding HD encoding.

First of all I want to comment on my previous experiment trying to give an answer to my question: Are we really ready for efficient HD video on the web ?

Indeed a lot of surfers mailed me sharing their user experence. It seems that when streaming a Full HD content trying to guarantee an high quality of service is a very difficult task. Full HD content decoding requires a very fast computer, a good video card, a good connection and a big monitor.

It seems that windows xp computers are the best performers when talking about dropped frames and general decoding performance. With a 2GHz core duo processor the quality and performance are very good. Sometime I found some strange problems in full screen performance, probably because of video card's driver. Windows Vista absorbs a little more power and shows some strange behaviors at full-screen (on some systems). The strangest behaviour is on Mac. A lot of surfer reported me a number of problems, expecially poor performance. Only the more powerful models played the sample video smoothly... may be some problems in Flash Player's implementation on Mac ? I dont' know.

The required bandwidth is an issue too but not the most important. When you rise the required bandwidth you progressively reduce the number of internet users that can watch your video without problems. Unfortunately it is not only an issue of bandwidth cost but of service consistency. But in this case, achieving FullHD video at only 1.5-2Mbit/s bitrate is very very good.

The last notice is around the user's display. From my blog's log I have found that only a 30% of the visitors can fully appreciate a Full HD video on their monitor and how many people has a Full HD TV ?

In conclusion I think that today, we are not ready to deliver Full HD at a reasonable amount of clients with an high quality of service. Probably only a 15-20% of the audio will be able to receive and decode the stream without problems. A too low number.

On the other hand, I demostrated that today it is possible to deliver HD streams much more efficiently. In this case the audience rise well over the 50-60% (remember that the Flash Player 9 update 3, required for such challenge, has now a penetration of 80%).

Obviously this is only a temporary condition because every month the installed processing power and the available bandwidth rise substantially. Therefore the era of Full HD video on the web is only posponed...

Fabio Sonnati ::

23 June, 2008
Are you ready for FullHD videos on the web ?

As you know, I'm playing around H.264 and all its techniques and properties in the quest for the best quality / bitrate ratio at HD resolutions. The last two experiments,
SigurRos's Heima (720) @ 500Kbit/s and Hero's small extract (720p) @ 500Kbit/s, are extreme attempts to push H.264 to its limit. The quality / bandwidth ratio was very very good, but some of you argued that, on the other hand, "absolute" quality was not soo high, at least not in all scenes.

It is true. Even if I'm able today to reach an appreciably higher quality at such bitrate, It's important to understand that lowering the bitrate too much subtracts details from the picture up to a point in which that picture can not be defined HD anymore. I can first subtract bits from less important parts of a picture but in high motion scene I need to subtract bits also in the most important part of the picture.

Indeed, my efforts today are concentrated to reach vibrant HD quality around 1Mbit/s for every footage type (low, med and high motion), which is a very difficult task.
I'd have very interesting encodings to show, but today I would prefer to go beyond and try some experiment of FullHD Video (1080p) delivery on the web at sustainable bitrates. Can we do it efficiently today ? - What are the problems about it ? - Is the audience ready for that ? - Does the game worth the candle ?

I'll discuss about these topics in the next posts, by now, let's take a look at this "classic" Heima video encoded in Full HD (1920 x 1080 25p) at only 1500Mbit/s:

Observe the wide difference in details preservation and also the fine grain retention in some scenes. To fully enjoy this gorgious Full HD video you need a wide monitor (22'' or 24'' at least) or, better, a big Full HD plasma tv.

Thanks to a fix of my previous full screen player, now the video should play smooth as silk at full screen and a Core 2 duo @ 1.8GHz should do the job without losing frames. This is also the debut of my a new Video Player (Beta). To toggle full screen mode, double click on the movie.

What do you think about it ? How do you compare the absolute quality of the old test to this new one ? Consider that Full HD requires a number of pixels double than HD and so an almost double bitrate is requires.

In the next post I'll publish a much more difficult Full HD encoding. In the while, if you like, send me your user experience notes by email (of the new player look&feel too) and don't forget to mention your hardware-software configuration. Thanks.

Fabio Sonnati ::

28 May, 2008
On2 improves Vp6

On2 has announced to have improved its well known codec Vp6. The improved encoder will be released as a free update of the Flix suite. Videos encoded with this latest release will be perfectly compatible with the Vp6 decoder of Flash Player 8 and 9. A number of improvements are performed in the area of motion compensation with increase in quality of fast moving scenes of up to 40% in some cases.
More later in this year, On2 will release a new update with big improvements in encoding speed.

As you now, the performance of an encoding technology depends by two factors: the technology specifications, which are usually fixed for a given "generation", and the encoding strategies implemented in the encoder. When a standard has been defined, ther is no more possibility to enhance the first factor, but the second can be improved constantly and this is the main reason because the open source x264 encoder is the best for encoding H.264 videos. A great number of developers is working costantly on it to enhance encoding speed and quality.

There is always a margin that can be improved in a video encoder. For example, it is possible to implement specific techniques to distribute the bits in the different parts of a video using "perceptual models", or can be changed the rate control routines.
I'm happy to know that On2 has decided to follow this path and improve both quality and performace of Vp6. Expecially encoding speed of Vp6 was too low in my opinion.

Further more I think that these improvements and a more aggressive licensing strategy will be useful to expand the clients base expecially now that Vp6 has to fight against the well positioned H.264.

Fabio Sonnati ::

15 May, 2008
A new Astro is starting to shine

Adobe has released today the public prerelease of the Flash Player 10. This public prerelease is an opportunity for developers and consumers to test and provide early feedback to Adobe on new features, enhancements, and compatibility with previously authored content. The new key features are:

  • Creative Expression
    • Custom Filters and Effects
    • 3D Effects
    • New Text Engine
    • Text Layout Components
    • Drawing API Enhancements
    • Color Management
  • Visual Performance Improvements
    • GPU Compositing
    • GPU Blitting
    • Anti-Aliasing Engine (Saffron 3.1)
    • Vector Data Type
  • Rich Media
    • Dynamic Streaming
    • RTMFP (Real Time Media Flow Protocol)
    • Speex Audio Codec
  • Other Community Requested Enhancements
    • File Reference
    • Dynamic Sound Generation
    • Large Bitmap Support
    • Context Menu
    • GB18030 Compliance
    • Ubuntu OS Support

My preferites feature are: GPU compositing and blitting which will introduce a ten-fold improvement in drawing speed. Native 3d effects which are very nice expecially if mixed with video streams. Dynamic Streaming very useful to maximise the Qos in video delivery. RTMFP that is an exciting entire new way of communicate and stream in FMS leveraging peer-to-peer connections over UDP and the new Speex Audio Codec that is a great open source, low latency, error resilient audio codec in substitution of the old, closed NellyMoser's Asao.

I noticed only the lack of an updated live video encoder in Flash Player 10. This is a bad news for me as they are years that I look forward to retairement of the old Spark codec. In any case, hope is the last to die. Welcome Astro.

Fabio Sonnati ::

09 April, 2008
Your preferite TV series in HD at 500Kbit/s. Impossible ?

Do you remember my 720p example at only 500Kbit/s ? Well, It has attracted a lot of attention around the potentialities of H.264. The video used for that experiment was indeed uncommon: slow pans, still pictures. Someone asked me to try with a more common footage like TV series. Let's take a look at what it is possible to achieve encoding a typical TV serial's scene. It is clip from Heroes (2° Season).

What do you think about it ? Remeber, the video is encoded in 1280x720 at only 500Kbit/s, a little more than a typical YouTube video ! H.264 is definitely powerful.
Dont' forget to double click on the video with the left mouse button to fo full-screen.
[Hosting and bandwidth courtesy of Voxel Net CDN]

Fabio Sonnati ::

17 March, 2008
My new FMS3 related article on Adobe devnet

Adobe has published my latest article about FMS3. This short article, titled "New buffering strategies in Flash Media Server 3 and Flash Player 9", explains the new buffering behaviour of Flash Player 9 when streaming from FMS2 and FMS3. Expecially when streaming H.264 contents from FMS3 it is usefull to know some differencies and behaviours apparently strange. I'm very happy of these new behavious because optimize greatly the performance and user experience. Now it is also possible to reliably synch multiple stream (before it was a nightmare!).

My previous article about "Dual Threshold buffering strategy in FMS" is still valid to furtherly enhance the FMS buffering performance.

Fabio Sonnati ::

7 March, 2008
New detailed white paper about FMS3

Adobe has released a new technical whitepaper about the Flash Media Server 3.
Authored by Lisa Larson, the document explains in 50 pages the new features of the latest release of Flash Media Server. I recommend to every FMS developer to read this inspiring document ... and yes, I'm very proud to be mentioned among the suggested resources about FMS and Adobe Flash Video Technology.

Fabio Sonnati ::

23 February, 2008
Pushing H.264 and AAC to the limit - Part III

This is the time to experiment what H.264 can offer in the area of low bitrate video streaming. In my Italian Blog, I published an interesting example: a 320x200 video clip encoded at 100Kbit/s with a stereo audio track encoded using HE AAC v2 at only 24Kbit/s. It is very interesting to see how it is possible to stream a generic video with music at only 124Kbit/s. Particularly I'd like to underline the quality of the audio at only 24Kbit/s!. A result similar to what MP3 can reach at 64Kbit/s!. If you are interested in knowing how Advanced Audio Codec can achieve such compression efficiency Youu can read this post. In any case, what do you think about the possibility to stream a music video-clip with the same bandwidth normally necessary to stream the audio track only ?

Fabio Sonnati ::

13 February, 2008
Pushing H.264 to the limit - Part II

My latest H.264 encoding experiment has been largely appreciated by Flash Video fans, developers and media firms' executives. Indeed, a lot of people watched my experiment and congratulate with me for the final result. In the next posts I'll go further in exploring the limits of the H.264, but now, I would like to discuss some point of interest about the "HD video @ 500Kbit/s" topic.

1) Generally speaking, you need more than 500Kbit/s for HD videos.

This is an experiment. Heima footage is very well suited for H.264 encoding. H.264 can retrieve a lot of informations from the previous frames with very little bistream when the video is slowly changing or "quiet". A very fast moving footage, with back and forth or stroboscopic lights is much more difficult to encode and require an higher bitrate. How much higher ? In my experience It is possible to encode *generic* video in 720p with very good result with around 1Mbit/s and 1080p with no less than 2Mbit/s. Its is a great achievement in any case.

2) The video shows less quality in panning scenes

I'm able today to improve such behavior. That is: I'm now able to achieve a slightly higher perceptual quality for the same 500Kbit/s, or go down to less than 450Kbit/s.
This is possible using a better motion vector prediction in B-frame and passing from two to three pass encoding.

3) What tools am I useing ?

I use a mix of Ffmpeg, x264, Mencoder and Nero AAC. Here some parameters used:
5 reference frames, 5 B-frames, authomatic B-Frames, B-pyramid enabled, adaptive macroblock type, advanced Trellis on, Subq=7, advanced exagon search, deblocking filter with custom alpha e beta parameter, three pass encoding...

4) Why does the video stutter ?

There are a main reason: the web hosting I used, is limited to a 10Mbit/s bandwidth, the high amount of viewer saturated the bandwidth. A second possibility is the processing power of your pc: decoding an HD video require at least a P4@3GHz, Athlon 3500+ or better, but it depends significantly by your monitor's resolution, too.
On my QuadCore @ 3GHz with a 22'' monitor, the 10-15% of the cpu is used.

Fabio Sonnati ::

2 February, 2008
Pushing H.264 to the limit - Part I

I'm experimenting day after day even more advanced encoding techniques, tricks and tips to get the best out of H.264 encoding standard. In a recent post, I showed an high quality footage encoded at 1026x576 @ 1.3Mbit/s. ( You can watch it here ).

A lot of people mailed my to congratulate for the overall quality but indeed I was not completely happy with the result. H.264 can do more ! Expecially in the low bit rate area. Therefore I tryed an almost impossible task: to encode the same video in HD at the lowest bitrate possible.

Take a look at this and tell me if it is not exciting:

720p High Definition (1280x720x25Fps) plus HE AACv2 audio @ 500Kbit/s

(try the full-screen mode double clicking on the movie)
Obviously the footage is a good one (no fast motion) and at this bitrate, some scene are not rendered with the same high quality, but you must think we are talking about only 500Kbit/s!

In a next post I'll explore what we can do with generic video-clip and ultra low bitrate.

Fabio Sonnati ::

18 January, 2008
HE AAC v2 - A Quick Technical Overview

Flash Player 9 Update 3
, code name MovieStar, introduced quite a lot of new and interesting features. One of them is the support for HE AAC v2, the state of the art general purpose audio encoding standard. Let's take a look at how it works and compare it to the king: the good old MP3.

The good old MP3

MP3 audio encoding format is on the edge since its debut in the far 1993. MP3 encodes audio signals exploiting a perceptive model which mimic the human ear. Usually it is not possible to hear every frequency in a sound expecially if other frequencies are too "loud". With specific frequency-masking and time-masking roles, it is possible to eliminate informations that a human cannot be usually able to hear.

The first and most important step is to transform the signal from time-domain to frequency-domain. MP3 uses an Hybrid approach. At first the original signal is sent to a band-pass filter bank. Each filtered band is then transformed to frequency domain with an MDCT (Modified Discrete Cosine Transform). Then the specific perceptual model of MP3 is applyed to eliminate informations that can not be heard. Finally the bitstream redundancies are eliminated.

We know that at 128Kbit/s MP3 has a good performance in reproducing a typical song. Below this bitrate, it's easy to feel a progressive degradation of sound quality.

The AAC (Advanced Audio Codec)

AAC was first specified in the standard MPEG-2 Part 7 in 1997 and updated in MPEG-4 Part 3 in 1999. AAC is more linear, eliminating the hybrid approach in favor of a pure MDCT. To better encode both stationary signals and transient signals, the encoder can decide to use a wide 1024 samples window for the MDCT (better frequency resolution for stationary signals) or a set of 8 x 128 samples MDCTs (better time resolution in transient signals). This approach, with other optimizations (better join stereo, entropy coding, perceptual noise shaping, etc..) , assure to AAC an higher perceptual quality compared to MP3 at the same bitrate, expecially below 128Kbit/s.


This enhanced version of AAC introduces the SBR Technique (Side Band Replication). With SBR, a signal frequency spectrum is split in half. The part below 22KHz (lower frequencies) is encoded as usual, the part above (higher frequencies) is reconstructed as a trasformation of the spectrum envelope of the low frequencies block. A very small side-bitstream gives to the decoder the addictional informations necessary to reconstruct the final signal. With SBR, a signal of around 70-75Kbit/s is only slightly worst than a 128Kbit/s MP3.


The latest update of AAC standard, introduces the Parametric Stereo Technique (PS). With PS, only a mono signal is encoded and trasmitted, the second audio signal (supposing a stereo signal in input) is analysed and a set of parameters found and trasmitted to the decoder. These parameters describe matematically the difference beetween the left and the right channel in a stereo sound. This technique allow a further level of compression. At 64Kbit/s, a HE-AAC coded sound and a HE-AAC v2 codec sound are almost identical, but at lower bitrate, as 48Kbit/s, 32Kbit/s and 24Kbit/s, HE-AAC v2 produces a signal with an higher perceptal quality.


The support of AAC allows us to encode our sounds to 64Kbit/s with the same quality of a 128Kbit/s encoded MP3. Further more, for other use more susceptible to bandwidth usage, like Internet Radio, HE-AAC v2 gives us the possibility to encode our sounds to 32Kbit/s or lower with a surpraisingly good final result. In low bitrate streaming scenarios this can make the difference.

Fabio Sonnati ::

5 January, 2008
H.264 + AAC rule! (HD sample)

I'm loving H.264 and AAC encoding. Look at this footage encoded with FFMPEG:
You can enter fullscreen by the context menu (right mouse click). On my Quad core, playing at full screen require only a few percent (7-8%) of the CPU power.

Fabio Sonnati ::

2 January, 2008
[Flash Video Factory]Blog launched

As previously anticipated, I launched [Flash Video Factory]Blog. The new Blog written in Italian language is intended for developers and executives of media related firms in Italy, you find it inside flashvideofactory.com , a site dedicated to my team's FlashVideo-centric consultanting platform. There I'll post news and analysis about the Adobe Flash Video Ecosystem and related business opportunities. Good reading, or perhaps I should say "Buona lettura".

Fabio Sonnati ::

31 December, 2007
A couple projects for the next year

2007 is ending, and as usual I'm preparing new projects for the next year. A couple of them involve the blogging. First of all, in 2008 I will launch a new Blog in Italian language. This blog will be less technical and more devoted to inform and support Italian executives' decisions involving the use of Adobe Flash Video Ecosystem. The second project is a new showcase of the real potentiality of H.264 technology. In the last two months I played with my new Core 2 Quad @ 3GHz processor testing new H.264 encoders. Believe me, H.264 potentialities are really astounishing and for the most part underused today.
What do you think about encoding HD content (1280x720p@25) in 1000-1200Kbit/s ?
Last but not least, I'll publish a AAC analysis as the conclusive step of our 'excursus' in the H.264 + AAC technology before releasing the "Flash Video Technology - White Paper - 2008". Best Wishes.

Fabio Sonnati ::


:: 2007
:: 2006
:: 2005

My name is Fabio Sonnati. I'm a freelance ICT consultant graduated in Electronic Engineering. I'm Lead Developer and co-founder of Progetto Sinergia, a Team of ICT consultants specialized in Internet, Video, and Multimedia applications.
This is the blog where I want to share my knowledge and tools about Flash Media Server and Flash Video. Read this to know more about Flash Video Factory, our Flash Video based streaming platform. There You'll find my Italian Blog, too.


White Paper


:: FLV D-Killer
(read more here)


:: New buffering strategies in Flash Player 9 and FMS3

:: Implementing a dual threshold buffering strategy in FMS2


:: 2009
:: 2008
:: 2007
:: 2006
:: 2005

RSS Feed :



MX Developer's Journal Blogger :

Sponsored by :


FlashVideo Blog - Optimizations and Tools
F:V:F - Flash Video Factory
Copyright 2005 - Progetto Sinergia