Difference between revisions of "Cinepak"

From MultimediaWiki
Jump to navigation Jump to search
(unclear what the wording "official site" actually meant, I find neither any explanation nor reference. probo.com site does not claim anything besides implementing the codec for Windows)
(corrected patch status)
Line 11: Line 11:
 
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 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 [does the person want his name here??] and formerly available at
+
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 (a dead link), see the thread http://multimedia.cx/eggs/playing-video-on-a-sega-dreamcast/
+
http://titan.codemill.se/~tomhar/cinepakenc.patch
  
 
Unfortunately the open source encoder does not use all the possibilities of the format (f.i. skipped or partial codebook replacement). This is the probable reason why it does not achieve the performance of the proprietary one. It is also using the non-compliant YUV420 colorspace (should be easy to fix).
 
Unfortunately the open source encoder does not use all the possibilities of the format (f.i. skipped or partial codebook replacement). This is the probable reason why it does not achieve the performance of the proprietary one. It is also using the non-compliant YUV420 colorspace (should be easy to fix).
  
The mentioned open source encoder was recently adapted for the current (December 2012) ffmpeg and slightly improved. It is available at
+
The mentioned open source encoder was recently adapted for the current (December 2012) ffmpeg and slightly improved by Rl. This version is available at
 
http://www.aetey.se/dl/cinepak-encoder-ffmpeg.patch
 
http://www.aetey.se/dl/cinepak-encoder-ffmpeg.patch
  

Revision as of 08:56, 6 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 encoder does not use all the possibilities of the format (f.i. skipped or partial codebook replacement). This is the probable reason why it does not achieve the performance of the proprietary one. It is also using the non-compliant YUV420 colorspace (should be easy to fix).

The mentioned open source encoder was recently adapted for the current (December 2012) ffmpeg and slightly improved by Rl. This version is available at http://www.aetey.se/dl/cinepak-encoder-ffmpeg.patch

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