The
Caimans video codec takes video quality for
GBA to a new level thanks to multipass variable bitrate encoding,
adaptive resolution changing and other advanced features you
could expect to find only in high end video encoders for more
powerful systems.
This page covers only Caimans codec Version 2.2, a new page with tech specs of
Caimans codec pro should be out soon.
Multipass
variable bitrate
Thanks to this advanced encoding techinque the user can choose
the average bitrate or the final size of the encoded material
and the Caimans codec will encode the footage exactly to match
the requested average bitrate or to fit the requested size while
giving more bitrate to the most complex scenes and saving it
for static parts. This is a feature normally available only
on high end mpeg encoders. The Caimans encoder does even better:
you can also manually adjust the encoding parameters to give
more bitrate to some particular sequences you care of, the Caimans
encoder still averages to a bitrate that allows the whole encoded
material to fit exactly in the requested space. Download
this special version of the Aerosmith demo to see how the
bitrate changes with the complexity of the video.
Dynamic resolution changing for very low bitrate encoding
For critical compression tasks, where the most compression is
required at bitrates as low as 12-15Kbytes/sec, the Caimans
encoder can dinamically decrease video resolution in the most
complex parts of the footage to keep an acceptable quality even
at high frame rates, and increase it in the most static parts;
this is the same concept of the variable bitrate encoding but
applied to the resolution instead of the bitrate. It is a "last
resort" feature you can choose to activate when size really
matters.
Dithering at play-time
Even if Gameboy advance only supports 32768 colors, the Caimans
codec internally works in 24bit mode (16M colors). Starting
from version 2.1 this addictional color information is used
to perform a dithering at playtime, simulating the presence
of more than 32768 colors. Expecially when working with computer
generated images this feature greatly enhances the visual perception
of the video. As an example let's take a look at the following
picture:
The
(A) frame shows the internal true color encoding of a Caimans
video frame, (B) is the frame as it would be displayed by the
gameboy without the use of dithering and finally (C) is the
same frame displayed with the dithering function activated.
As you can see expecially when looking at the floor, the (C)
picture really looks like the true color source.
And here is a comparison between the Caimans codec and another GBA
video codec not using dithering at play-time.
Original Frame
scaled to 240x160 |
Other codec:15
bit |
Caimans codec:24 to 15 bit dithering |
|
|
|
|
|
|
|
|
|
High
frame rates
The Caimans codec can decode video up to 30 frames per second
using only 70-80% of Gameboy Advance CPU.
High frame rates also means respect of the original frame rate,
infact not all the video footage comes at 30 FPS, for example
the Watchout movie, the Ornaments clip and most
movie trailers are 24 FPS material, as you can see from the
picture below (or you can download Watchout here, Ornaments
here, and many movie trailers here, and check by yourself) so
the caimans encoder performs a frame by frame compression,
keeping exactly the original number of frames at the original
frame rate. That's why you should not trust people saying "The
decoding frame rate is kept constant to 30 FPS" or "x
frames encoded at 30 FPS" even when dealing with 24
FPS material, because either they are cheating you, or
they mean "Fakes Per Second" ;-)
Audio
encoding
The Caimans codec 2.0 introduces a proprietary compressed audio
system and can decode at frequencies ranging from 8 to 32 Khz
at the highest quality you have ever heard on your GBA while
using only 2 to 10 Kbytes/sec.
Low
ram usage
Caimans codec can run either from iwram, ewram or rom and uses
only 100 Kbytes of ram, including the space needed for the screen. |