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 had been used in 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.

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 a non-linear quantizer to increase compression. Compression data-rates typically range from 10:1 to 3.5:1, based on quality settings. An uncompressed mode supports RAW files.

The codec uses a constant quality design, such that the data rate varies 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. CineForm is available only on Mac OS and Microsoft Windows platforms, however a Linux SDK is available. FFmpeg is also capable of decoding and encoding CineForm files.[5]

The DPC format (also known as DPX-C) is a DPX file header with or without an uncompressed DPX image part that contains only a thumbnail. A compressed CineForm sample is attached to that file, containing the wavelet compressed image. The format is used in post production when CineForm files are rendered. Tools can 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 fast and do not cause iterative recompression artifacts.

Plugins for Blackmagic Fusion and The Foundry Nuke compositing systems are available to read and write CineForm natively. These plugins were developed by Magna Mana Production.

CineForm is 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 up to 7x faster encode/decode.

According to a GoPro press release,[6] SMPTE 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 CineForm as open source in October 2017[9][1] dually licensed under the MIT License and the Apache License 2.0[10]

See also

[edit]

References

[edit]
  1. ^ a b "GOPRO OPEN SOURCES THE CINEFORM CODEC". GoPro.com. 2017-10-25.
  2. ^ [1] Archived June 24, 2011, at the Wayback Machine
  3. ^ "NextWaveDV – GoPro, sports camera manufacturer acquires CineForm, video compression software company". Nextwavedv.com. 30 March 2011. Retrieved 2015-05-30.
  4. ^ "GoPro® CineForm Codec Standardized by SMPTE® as the VC-5 Standard | Society of Motion Picture & Television Engineers". www.smpte.org. Archived from the original on 2016-02-16. Retrieved 2016-02-18.
  5. ^ "git.videolan.org Git - ffmpeg.git/commitdiff". git.videolan.org.
  6. ^ "SMPTE Taps GoPro Compression Technology for New Industry Standard". GoPro.com. Retrieved 2015-05-30.
  7. ^ "VC-5 Video Essence Part 1: Elementary Bitstream — SMPTE Standards". Smpte.org. Retrieved 2015-05-30.
  8. ^ Kunhya, Kieran (2016-01-01). "Reverse Engineering the GoPro Cineform Codec". Medium.
  9. ^ "The GoPro® CineForm video codec SDK". GitHub.com. 2017-10-25.
  10. ^ "GitHub - gopro/Cineform-SDK: The GoPro® CineForm video codec SDK". GitHub.com. 2017-10-22.
[edit]