Cinepak: Difference between revisions

From MultimediaWiki
Jump to navigation Jump to search
No edit summary
(adjusted the information as the situation changes)
Line 14: Line 14:
http://titan.codemill.se/~tomhar/cinepakenc.patch
http://titan.codemill.se/~tomhar/cinepakenc.patch


Unfortunately both this open source encoder and the decoder present in ffmpeg are using the non-compliant YUV420 colorspace instead of the native Cinepak one (should be easy to fix).
Unfortunately the open source decoder present in ffmpeg is using the non-compliant YUV420 colorspace instead of the native Cinepak one (for the fix see below).


The mentioned open source encoder was recently adapted for the current (December 2012) ffmpeg and bugfixed by Rl. For a (not necessarily the latest) snapshot see
The encoder mentioned above was adapted for the current (December 2012) ffmpeg, bugfixed and improved for better rate/distortion performance by Rl. The compression speed is barely optimized (it is slow), for simplicity and better r/d. A snapshot 2013-02-12 is at
http://www.aetey.se/dl/cinepak-encoder-ffmpeg.patch
http://www.aetey.se/dl/cinepak-encoder-ffmpeg.patch
There is also a patch introducing the correct colorspace for the open source decoder
http://www.aetey.se/dl/cinepak-decoder-colorspace.patch


The encoder was never submitted for inclusion in ffmpeg, feel free to push it upstream.
The encoder was never submitted for inclusion in ffmpeg, feel free to push it upstream.


[[Category:Video Codecs]]
[[Category:Video Codecs]]

Revision as of 08:24, 12 February 2013

The Cinepak coding method is a vector quantization scheme with interframe update optimization. It is known to operate most commonly using a modified YUV 4:2:0 colorspace but also supports 256-grayscale mode. A modified variant of this format is used for full motion video on many Sega Saturn games (in Sega FILM files often bearing the .cpk extension). It is not known if this format has anything in common with the Cinepak For Sega format used in many Sega CD games.

ffmpeg contains an almost compliant decoder (using YUV420 instead of the Cinepak colorspace, which distorts colors somewhat - should be easy to fix).

There are several versions of a binary proprietary encoder/decoder as a windows dll, among others ftp://ftp.probo.com/pub/cinepak/cvid32.zip

There is also a simple and straightforward open source encoder as a ffmpeg patch, written in 2011 by Tomas Härdin and available at http://titan.codemill.se/~tomhar/cinepakenc.patch

Unfortunately the open source decoder present in ffmpeg is using the non-compliant YUV420 colorspace instead of the native Cinepak one (for the fix see below).

The encoder mentioned above was adapted for the current (December 2012) ffmpeg, bugfixed and improved for better rate/distortion performance by Rl. The compression speed is barely optimized (it is slow), for simplicity and better r/d. A snapshot 2013-02-12 is at http://www.aetey.se/dl/cinepak-encoder-ffmpeg.patch

There is also a patch introducing the correct colorspace for the open source decoder http://www.aetey.se/dl/cinepak-decoder-colorspace.patch

The encoder was never submitted for inclusion in ffmpeg, feel free to push it upstream.