Category Archives: PAVC

Posts related to the Palettized Animation Video Codec (PAVC)

Implementing A Testbed For The Palettized Animation Video Codec

I decided it is time to stop talking about what I going do and start talking about how I am going to do it. I want to try my hand at creating a new video codec. This is my first attempt at such a feat. I need to write both the encoder and decoder simultaneously. I need to develop some idea about which coding theories I wish to test and how I will go about testing them. I need test vectors for encoding.

But first and foremost, I need a name for this new codec. I have decided on “Palettized Animation Video Codec.” That is what its name shall be unless someone can come up with a better name. The fourcc shall be ‘PAVC’ which is yet unclaimed (although ‘PDVC’ is claimed according to fourcc.org). Since this is an article about PAVC, I need to lead in with some cool shots of old video games, if only as a reminder of this endeavor’s challenge:

Crystalis, NES
Widely regarded as the finest video game ever produced


Crystalis
Solar Jetman

Solar Jetman, NES
Perhaps the toughest Nintendo game to get the hang of

Continue reading

General Palettized Animation Codec

Originally, I was building this hypothetical video codec around old 8-bit NES videos. However, my Old Skool gaming colleague, Trixter, suggested that I think more generally and design the codec around video output from 1st and 2st generation gaming consoles. For reference, these generations are defined as:

  • 1st-generation: Atari 2600/5200/7800, Intellivision, Colecovision, Nintendo Entertainment System, Sega Master System, etc. 1976-1988
  • 2nd-generation: Sega Genesis/CD/32X, Super NES, TurboGrafx-16, Neo Geo. 1989-1993

Writing about this codec idea is so much fun because I get to use colorful video game screenshots. For example:

U.N. Squadron

U.N. Squadron, Super Nintendo
Golden Axe

Golden Axe, Sega Genesis

Continue reading

Custom NES Video Codec

The 8-bit Nintendo Entertainment System (NES) is my favorite video game console of all time. I even used to maintain a native Linux NES emulator named TuxNES to help preserve the nostalgia.

Castlevania Screenshot <– Simon vs. the undead fish monsters in Konami’s original Castlevania

Link, the hope of Hyrule, takes on the Octoroks in the original Legend of Zelda –>
Legend of Zelda Screenshot

But I love these: Videos showcasing tool-assisted “Time Attacks”. The basic idea is that the people behind the videos use a variety of feature-rich console emulators to get through games very quickly using some very clever methods. Watching a video from start to finish usually lets you relive the experience of playing through the entire game, all in 10-20 minutes, nominally.

The video is encoded with the DivX codec; the frames are each 256×224 at 60 frames/sec (for NTSC games; 50 fps for PAL games). Audio is generally encoded as MP3 audio at 32-64 kbps. As a multimedia freak, I have to admit that it is a little frustrating to watch these videos which are typically encoded with ISO MPEG-4 (under the fourcc DIVX). So I started to wonder if it would be possible to develop a custom codec specifically for coding this type of video, and losslessly.

Continue reading