An open API service indexing awesome lists of open source software.

https://github.com/alessiomaffeis/xmpng

XMPNG (Differential Motion PNG) is a simple lossless video codec, particularly well-suited for high quality screencasts and screen sharing applications
https://github.com/alessiomaffeis/xmpng

codec lossless video video-codec

Last synced: 11 months ago
JSON representation

XMPNG (Differential Motion PNG) is a simple lossless video codec, particularly well-suited for high quality screencasts and screen sharing applications

Awesome Lists containing this project

README

          

# XMPNG

XMPNG (Differential Motion PNG) is a simple lossless video codec, particularly well-suited for high quality screencasts and screen sharing applications. This is a quick, proof of concept C#/.NET implementation from an old academic project.

The concept is pretty straightforward: the encoder writes the initial **I** frame as a full PNG image, then it writes each subsequent **P** frame as the PNG encoded XOR "difference" with respect of its preceding frame (i.e. P2 = Frame 2 XOR Frame 1).

This method allows to greatly reduce both the inter-frame temporal redundancy, by means of the fast and effective XOR "difference", and the intra-frame spatial redundancy, thanks to PNG's own 2D prediction filter.

![alt tag](http://i.imgur.com/SaEqSrQ.png)

Then, the decoder can reconstruct the exact, original frames by making a XOR operation between each **P** frame and the previous reconstructed frame (e.g. Frame 2 = P2 XOR Frame 1)

![alt tag](http://i.imgur.com/4eBBzYL.png)