CineForm
CineForm Intermediate is an open source (from October 2017)[1] video codec developed for CineForm Inc by David Taylor, David Newman and Brian Schunck. On March 30, 2011, the company was acquired by GoPro which in particular wanted to use the 3D film capabilities of the CineForm 444 Codec for its 3D HERO System.
The press release in the GoPro acquisition noted that CineForm's codec has been used in several major movies including Slumdog Millionaire and Need For Speed.[2][3][4]
History[edit]
The CineForm Intermediate Codec was originally designed in 2002 for compressed Digital Intermediate workflows for film or television applications using HD or higher resolution media. The CineForm media is most commonly wrapped within AVI or MOV files types, using the 'CFHD' FOURCC code for all compressed media types.
Current[when?] implementations support image formatting for 10-bit 4:2:2 YUV, 12-bit 4:4:4 RGB and RGBA, and 12-bit CFA Bayer filter RAW compression (as used with the Silicon Imaging SI-2K camera.)
All compression is based on an integer reversible wavelet compression kernel, with non-linear quantizer to achieve higher compression. Compression data-rates typically range from 10:1 to 3.5:1, based on quality settings. There is also an uncompressed mode for RAW files.
The codec uses a constant quality design, such that the data rate will vary based on the source image data. It shares some properties with other wavelet codecs, like JPEG 2000, yet it trades off some compression efficiency (larger file sizes) for greater decode and encode performance. Currently[when?], CineForm is only available as software implementations on Mac OS and Microsoft Windows platforms, however a Linux SDK is available. FFmpeg is also capable of decoding and encoding CineForm files.[5]
There is also the DPC format (also known as DPX-C), which is a DPX file header with or without an uncompressed DPX image part that is just containing a thumbnail. Then a compressed CineForm sample is attached to that file, containing the wavelet compressed image in full size. The format is being used in post production when CineForm files need to be rendered by render farms. There are tools to split up CineForm AVI or MOV files into DPC file sequences, and vice versa, to reassemble CineForm MOV and AVI files from DPC sequences. These steps just copy data and do not reencode the images, thus are extremely fast and do not cause iterative recompression artefacts.
There are plugins for Eyeon Fusion and The Foundry Nuke compositing systems to read and write the CineForm DPC, AVI and MOV files natively. These plugins have been developed by Magna Mana Production.
CineForm is very stable to iterative recompression.
Compared to JPEG2000, CineForm has a slightly higher data rate at similar PSNRs (peak signal to noise ratios) with the benefit of being up to 7 times faster to encode/decode on the same hardware.
According to a GoPro press release,[6] SMPTE has standardized the CineForm codec as the SMPTE ST 2073 VC-5 video compression standard.[7] In practice the VC-5 specification did not provide enough information to decode Cineform files and reverse engineering was necessary.[8]
GoPro released[1] CineForm as open source in October 2017[9] dually licensed under the MIT License and the Apache License 2.0[10]
See also[edit]
References[edit]
- ^ a b "GOPRO OPEN SOURCES THE CINEFORM CODEC". GoPro.com. 2017-10-25.
- ^ [1] Archived June 24, 2011, at the Wayback Machine
- ^ "NextWaveDV – GoPro, sports camera manufacturer acquires CineForm, video compression software company". Nextwavedv.com. Retrieved 2015-05-30.
- ^ "GoPro® CineForm Codec Standardized by SMPTE® as the VC-5 Standard | Society of Motion Picture & Television Engineers". www.smpte.org. Retrieved 2016-02-18.
- ^ "FFmpeg git - Cineform HD".
- ^ "SMPTE Taps GoPro Compression Technology for New Industry Standard". GoPro.com. Retrieved 2015-05-30.
- ^ "VC-5 Video Essence Part 1: Elementary Bitstream — SMPTE Standards". Smpte.org. Retrieved 2015-05-30.
- ^ Kunhya, Kieran (2016-01-01). "Reverse Engineering the GoPro Cineform Codec". Medium.
- ^ "The GoPro® CineForm video codec SDK". GitHub.com. 2017-10-25.
- ^ "GitHub - gopro/Cineform-SDK: The GoPro® CineForm video codec SDK". GitHub.com. 2017-10-22.