
CorePNG is a lossless codec based on PNG. Essentially, each frame is compressed as a PNG, so if PNG does it, this codec does too. (RGBA) This codec also has the ability to write P frames and to autodetect when it should. The P frame takes the difference of the previous frame and the current frame and encodes that as a PNG.
CorePNG was originally developed for use with the subtitles, it compresses cartoons and CGI very well and in many cases better than Huffyuv and Loco at the expense of time.
Download
CorePNG-VFW-v0.8.2 Installer (with Source Code) (427KB)
png2avi2png (89KB)
Compression Tests
Using a 31.44 second DivX 3 Simpsons clip.
01:47.265 - 02:18.472 S03E17 - 8F13 Homer at the Bat
512x384 pixels
31.44 seconds
752 frames
No audio
| RGB24 Comparison |
| 158,184KB | Huffyuv |
| 131,190KB | Loco |
| 130,582KB | All I frames Fastest |
| 113,192KB | All I frames Normal |
| 109,812KB | All I frames Best |
| 73,654KB | 2 P frames Normal |
| 61,868KB | 100 P frames Fastest |
| 50,369KB | 100 P frames Normal |
| 49,189KB | 100 P frames Best |
| 40,603KB | 1000 P frames Best with Auto-Delta frames |



Thursday, August 6. 2009 at 10:41 (Reply)
I have animations, like the Simpsons, and usually there is only one or two regions of activity. I don't want to encode the entire frame (or entire frame delta) but rather only the regions that is Homer's mouth or whatever else is moving. This seems to be a way to minimize the drawing and encoding.
Sunday, August 16. 2009 at 15:45 (Link) (Reply)
This means that areas that have not changed will be a solid color and compress very well with PNG/zlib.
Thanks,
Jory
Monday, August 31. 2009 at 17:20 (Reply)
"An out-of-bounds memory access (access violation) occurred in module 'CorePNG_vfw'...
...while opening video codec with FOURCC "png1" (compchoose.cpp:166)...
...while enumerating video codecs (compchoose.cpp:154)."
I'm guessing this might be because I'm running Win XP 64-bit edition? Just thought you might want to know.
Sunday, February 21. 2010 at 20:48 (Link) (Reply)
Just a thought - the compression could be a lot better if P-frames supported some kind of block-based motion prediction. A heuristic for finding the best vectors would slow it down only a few percent. The motion vectors could be saved as a tiny gray+alpha PNG image.