Case Study: Encoding of Elephants Dream

Elephants Dream “Project Orange” by Monte Video and Blender Foundation

I became aware of the world’s first 3D-animated “open movie” when I was looking for information of video codec; the film titled “Elephants Dream” was created under “Project Orange” by Monte Video and Blender Foundation. It was publicly released under Creative Commons license in the year of 2006. You can take a look on the YouTube 720p version at:

Ben Waggoner at his blog post discussed how he encoded “Elephants Dream” using VC-1 and WMA encoders with the PNG files and audio files released by Blender Foundation. On another blog post, he tweaked and tried to create a VC-1 video at 720p at 2Mbps. As far as lossy encoding goes, the quality is always subjective. But my initial reaction with both versions of “Elephants Dream” is that I did not find much difference with my naked eyes. The question being asked then, was is it possible to have HD video (720p) at 2Mbps. If you are a frequent or heavy YouTube user, many of the 720p, if not all videos from YouTube are encoded at around 2Mbps. I’m not clear which encoder Google might use. With the financial resources as big as Google’s, Google can easily create a proprietary H.264 encoder.

Constant Bit Rate is the term that describes that the bit rate of video remains constant throughout the entire length. The uncompressed video is inherently of Constant Bit Rate; which means that the file size is directly proportional to the video length. In lossy and lossless compression, fewer bit rates is done by eliminating redundancy and tossing out less noticeable data. The redundancy and less noticeable data varies from frame to frame or one video to another; Constant Bit Rate is unlikely for lossless compression; Constant Bit Rate would result in frames of varying of quality as some frames would need more bits than the others. The direct proportionality of file size and length, however, is very useful in the case of streaming or digital transferring of videos; we can tell the length of the video by checking the amount of downloaded data.

On digital broadcast or online video streaming service, while certain degree of variability of bit rate may be allowed to help maintain the video quality, the degree of variability is usually limited by targeted bandwidth constraint, such as setting an upper limit for the bit rate. For lossless encoding, the upper limit of file size is the same as the file size of uncompressed video, which means no redundancy can be found by encoders with certain predefined algorithms. Such a variability of bit rate allows smooth streaming of videos with local caching; even though the instantaneous bit rate may exceed the download speed occasionally, if the average bit rate is lower than the download speed, parts of the data are being downloaded and stored locally, a process known as caching, before the video is played, the smooth streaming is still possible because the video is being played from local storage. If the variability of bit rate is too high, which means that the download time could occasionally be longer than the length of the video, the user may notice the video is being paused at some point or the playback is not smooth.

The question of quality of HD video at 2Mbps is thus cannot be answered conclusively in any ways. To conserve bandwidth and maintain quality of certain level, a video could be encoded in Variable Bit Rate, where 2Mbps is only the average value. Still, what we say for sure is the subjective quality we may get from one video to another; in another word, a statistical result from previously encoded videos. The output quality does depend on algorithms and design of the encoder as well as the encoding settings being used.

While Microsoft may try to tout the superiority of VC-1 codec, such as at VC-1 Technical Overview, VC-1 is not owned by Microsoft alone. Microsoft does own some of the patents related to both VC-1 and H.264.

The intent of Blender Foundation, however, is of course completely different from Microsoft. As of the year of 2012, Blender Foundation has created 4 open movies so far. In each project which is named under a fruit, the master digital copy is available for download. It’s trying show what can be done using the open-source and free software such as Blender, a free 3D computer graphics software. To me, though, it’s a rare opportunity to conduct an experiment on various encoders’ settings over the digital master copy. Whether it is from the Internet, digital or analog broadcast, or physical medium, the commercial or free release of videos are usually of lossy compression. I can of course create a video by using a camera or creating drawings myself. But my main goal is to see how effective the lossy and lossless encodings are in both preserving the quality and reducing file size.

Elephants Dream Video Format and File Size Comparison

Video Format Bit Depth (bit) Number of Frames Frame Rate (FPS)
Uncompressed Video




H.264 Lossless High 4:4:4 Predictive@L4.0

1920 × 1080 pixels

Video Format Rate Control File Size (Bytes) Compression Ratio
Uncompressed Video 97,610,572,800 1
PNG 22,261,842,033 1:4.38
H.264 Lossless High 4:4:4 Predictive@L4.0 -CRF “0” 8,317,441,045 1:11.74

1280 × 720 pixels

  Video Format Rate Control Chroma Format
1 Uncompressed Video 4:4:4
2 H.264 Lossless High 4:4:4 Predictive@L3.1 -CRF “0” 4:4:4
3 H.264 Lossy High 4:4:4 Predictive@L3.1 -CRF “18” 4:4:4
4 H.264 Lossy High@L3.1 -CRF “18” 4:2:0
5 H.264 Lossy High@L3.1 2Mbps 4:2:0
6 VC-1 Lossy Advanced@L4 Quality 100 4:2:0
  File Size (Bytes) Compression Ratio
1 43,382,476,800 1
2 4,127,598,315 1:10.51
3 277,126,104 1:156.54
4 277,082,685 1:156.57
5 163,562,791 1:265.23
6 942,464,746 1:46.03


1. VC-1 encoder is Microsoft Expression Encoder 4 SP1. The VC-1 Settings I used include:

· Video Complexity – 5

· Adaptive Dead Zone – Off

· Differential Quantization – Off

· B-frame Number – 2

· Motion Chroma Search – Luma Only

· Motion Match Method – Adaptive

· Motion Search Range – Adaptive

· Motion Vector Cost – Dynamic

· Threads Used – Auto

· Output Mode – raw

2. I left the other options on Microsoft Expression Encoder 4 SP1 unchanged.

3. Google’s YouTube 720p version is uploaded by Blender Foundation, apparently. It’s being encoded at 2 Mbps. Its compression level is 69.43% higher than of H.264 Lossy High 4:4:4 Predictive@L3.1 CRF 18.

See Also/References

1. Background of Elephants Dream

2. Blender Open Projects

3. Lossy and Lossless Video Encoding

This entry was posted in Uncategorized. Bookmark the permalink.

One Response to Case Study: Encoding of Elephants Dream

  1. Pingback: Workaround for Failure of Copying Many Files | Jia Chie's space

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s