|Introduction | Sustainability Factors | Content Categories | Format Descriptions | Contact|
|Full name||Apple ProRes 422 Codec Family|
Apple ProRes is a family of proprietary, lossy compressed, high quality video intermediate codecs primarily supported by the Final Cut Pro (FCP) suite of post-production and editing software programs. There are two main branches of Apple ProRes: the Apple ProRes 422 Codec Family (described here) and the Apple ProRes 4444 Codec Family.
The three digits in the name represent the chroma values. Chroma subsampling is usually expressed as a three-part ratio (4:2:2 in the case of ProRes422) although it may also include a fourth part (e.g., 4:4:4:4), when alpha or transparency data is part of the stream as is the case for ProRes4444. As explained in the Wikipedia article Chroma subsampling, the ratio describes the number of luma and chroma samples "in a conceptual region that is J pixels wide, and 2 pixels high." The three key parts of the ratio are as follows, omitting the alpha channel:
See Uncompressed YCbCr Video Picture Stream Family (4:2:2) for more information on 4:2:2 data.
ProRes was designed to be a high quality intermediate codec that keeps post-production workflow data at 10-bit quality, with a bandwidth low enough to be usable for the majority of FCP users.
The key character traits that define the ProRes 422 family are support for:
While ProRes is a 10-bit native codec, it can be used with either 8- or 10-bit sources and 8-bit sources (such as DVCProHD) would need to be upsampled to a 10-bit file.
The Apple ProRes codecs, both the 422 and 4444 families, support both interlaced and progressive scanned images and preserve the scanning method used in the source material. The 422 codecs are differentiated primarily by data rate limits, expected file size ranges and software version support. The 4444 codecs additionally have dynamic range limits (see Notes). Apple provides a summary of the ProRes family technical specifications as well as guidance for selecting appropriate ProRes codecs up to ProRes 4444 based on anticipated workflows. The Apple ProRes family spans a broad range of data rates to support a variety of workflow and application purposes. The authors of this website have selected to use 1920x1080 at 29.97 fps as a comparison target across the ProRes 422 codecs.
ProRes codecs are usually contained within the QuickTime "mov" wrapper but starting with Final Cut Pro 10.3 released on October 27, 2016, the option for using ProRes in the MXF Generic Container was added as an option for broadcast delivery. Previously, MXF import and export was only available through third-party plug-ins starting with version 10.0.6 released in October 23, 2012. See Notes for more information.
While detailed technical information on the ProRes codecs is not freely available directly from Apple, Apple did author a Registered Disclosure Document (RDD) from SMPTE (Society of Motion Picture and Television Engineers) in 2015. RDDs are not engineering documents or standards but rather "are documents within the scope of interest of the Society, submitted by any entity (the “Sponsor” [Apple Inc in this case]) that wishes to make a disclosure available to the public and to use the Society’s publication and distribution mechanisms for this purpose." SMPTE RDD 36-2015: Apple ProRes Bitstream Syntax and Decoding Process (available for a fee from IEEE) defines the Apple ProRes bitstream syntax, the bitstream element semantics, and the decoding process used to produce decompressed images for the 422 and 4444 ProRes codec families. According to this document, each video frame begins with a frame container atom which details the frame_size and frame_identifier which is always icpf for "image codec prores frame". After the frame container comes the frame header which includes the chroma_format declaring the sampling format of the frame (code value 2 for 4:2:2 and code value 3 for 4:4:4) and the alpha_channel_type field declaring the type of alpha channel data encoded in the bitstream, if any in Table 7. Those coded values are 0 = No encoded alpha data present in bitstream; 1 = 8 bits/sample integral alpha; 2 = 16 bits/sample integral alpha; with values 3-15 reserved for future use. Image data within individual frames starts off with a picture_header containing information about the picture size followed by any number of slices, each with its own slice_header. Figure 2 – ProRes bitstream syntax structure hierarchy on p. 8 gives a helpful visual diagram of this tiered structure. Picture data "are divided into macroblocks and then further into blocks. Macroblocks are 16×16 arrays of pixels, and blocks are 8×8 arrays of video component samples. For 4:2:2 sampling, each macroblock thus consists of four Y′ (luma) blocks, two Cb blocks, and two Cr blocks; for 4:4:4 sampling, each consists of four Y′ blocks, four Cb blocks, and four Cr blocks. ... Finally, the macroblocks of a picture are grouped into slices. Each slice consists of 1, 2, 4, or 8 contiguous macroblocks all in the same macroblock row. ... Each slice can be encoded and decoded independently, which facilitates parallel encoding and decoding."
|Production phase||Production (initial state) and post production (middle state).|
|Relationship to other formats|
|Used by||QTV_AppleProRes422, QuickTime Video, Apple ProRes 422 Codec Family|
|Has subtype||Apple_ProRes_422_HQ, Apple ProRes 422 High Quality|
|Has subtype||Apple_ProRes_422, Apple ProRes 422|
|Has subtype||Apple_ProRes_422_LT, Apple ProRes 422 LT|
|Has subtype||Apple_ProRes_422_Proxy, Apple ProRes 422 Proxy|
|Used by||MXF Generic Container Mapped to Apple ProRes 422 Codec Family. Not described at this time|
|Affinity to||Apple_ProRes_4444_Codec_Family, Apple ProRes 4444 Codec Family|
|Affinity to||ProRes_RAW_Family, Apple ProRes RAW Codec Family|
|LC experience or existing holdings||Apple ProRes 422 Codec Family files appear in Library of Congress collections holdings. See Apple_ProRes_422 and Apple_ProRes_HQ.|
|LC preference||The Library of Congress Recommended Formats Statement (RFS) lists Apple ProRes 4444, 4444 XQ and 422 HQ in a QuickTime wrapper as a Preferred format for Video - File-Based and Physical Media.|
|Disclosure||Partially documented. Proprietary format developed by Apple, Inc.|
|Documentation||Apple provides high level information through its frequently updated ProRes White Paper. More detailed information about the Apple ProRes bitstream syntax, the bitstream element semantics, and the decoding process used to produce decompressed images is available in SMPTE RDD 36-2015: Apple ProRes Bitstream Syntax and Decoding Process which is available for a fee. Multimedia Wiki is another source but this site is not updated regularly.|
The ProRes family is widely adopted in professional moving image production. There is extensive use of the 422 family in the creation of documentaries and other programs for broadcast television. There is some use of the ProRes 4444 family in the production of advertising and in content destined for theatrical distribution. The popularity of Apple's Final Cut software suite has encouraged uptake of the codecs. Apple ProRes 422 and Apple ProRes 422 HQ were first supported in Final Cut 2 (2001); Apple ProRes 422 Proxy, Apple ProRes 422 LT and Apple ProRes 4444 were added with Final Cut Pro 7 (2009); Apple ProRes 4444 XQ was added to Final Cut Pro X (2012). Apple has licensed Apple ProRes for use in specific products and workflows. Although Apple complains that unauthorized implementations provided by other third-party software and hardware products including FFmpeg "might result in decoding errors, performance degradation, incompatibility, and instability," this support is a further indicator of adoption.
In November 2015, the New York Times listed ProRes422 as the preferred format for high-resolution assets from video producers, editors, and partners which is later transcoded to a variety of different outputs for specific services including a "single HLS output with six resolutions and bitrates to support adaptive streaming, four different H.264/MP4 outputs, and one VP8/WebM for ... users on the Mozilla Firefox browser running on Microsoft Windows XP."
|Licensing and patents||
Apple licenses and certifies specific third party products and workflows. The full list of licensed products is available.
|Transparency||Proprietary binary format, requires tools to write and read.|
|Self-documentation||For AppleProRes422 in QuickTime implementations, technical metadata is in the QuickTime frame container atoms and frame headers which declare the codec type ("icpf" for ProRes), frame size and color information (stored in src_pix_fmt). The Multimedia Wiki includes a list of src_pix_fmt values.|
|Technical protection considerations||None. Comments welcome.|
|Clarity (high image resolution)||
Potentially excellent depending on the specific codec.
|Functionality beyond normal rendering||
The performance of Apple ProRes codecs scales in multiprocessor environments so that the decoding time per frame goes down as the number of processors increases. When the system spends less time decoding each frame, it has time for more real-time effects processing.
In addition, its scalar quantization allows for the possibility to decode a video at different partial resolutions (½ or ¼ etc size of the full frame size) which lowers the data throughput while maintaining high image quality. This functionality allows the user advantages in playback of additional tracks of video and higher quality previews.
|Filename extension||See note.||The Apple ProRes 422 Codecs are usually contained within the QuickTime "mov" wrapper.|
|FOURCC||See note.||See individual 422 codecs for FOURCC codes|
||See http://www.nationalarchives.gov.uk/PRONOM/fmt/797. However, the entry for Apple ProRes does not distinguish between ProRes 422 and ProRes 4444 codecs or subtypes.|
|Wikidata Title ID||Q1136889
||See https://www.wikidata.org/wiki/Q1136889. This entry does not distinguish between subtypes of ProRes 422.|
|Abbreviation for 'image codec prores frame' according to SMPTE RDD 36:2015 which lists this frame type ID in ProRes frame container. This value does not distinguish between ProRes 422 and ProRes 4444 codec families|
The ProRes 422 Family uses a form of discrete cosine transform (DCT) compression. The scalar quantization allows for full frame playback previews from ½ or ¼ size frame data, lowering the data throughput while maintaining high image quality. This functionality allows the user advantages in playback of additional tracks of video and higher quality previews.
Gary Adcock explains the benefits of ProRes utilizing variable bit rate in this way: "ProRes, being a variable bit rate (VBR) codec, allows the more complex parts of the video to be encoded at a higher bit depth for more detail, while the less complex areas are encoded at a lower bit depth, thereby allowing for overall smaller file sizes [than uncompressed video]. ProRes is approximately a 5.5:1 compression ratio at its maximum and slightly more than 3:1 at its minimum compression level for SD content. This means that despite the quality there is still a fair amount of compression being done on each file."
Apple's ProRes White Paper uses peak signal to noise ratio (PSNR) to indicate image quality, stating that PSNR measures "how closely a compressed image (after being decompressed) matches the original image handed to the encoder. The higher the PSNR value, the more closely the encoded image matches the original." Higher PSNR values also indicates more headroom in the file so that image sequences can be decoded and re-encoded over multiple generations to good effect. In the June 2014 version of the White Paper, a graph on page 13 shows higher PSNR values for a scene encoded as ProRes 422 HQ as compared to the same scene encoded as Avid's DNxHD and Panasonic's D5. Another graph on the same page compares four ProRes 422 subtypes, with this comment, "PSNR for Apple ProRes 422 HQ is 15–20 dB higher than that for Apple ProRes 422 Proxy, but the Apple ProRes 422 HQ stream has nearly five times the data rate of the Apple ProRes 422 Proxy stream. The benefit of higher fidelity comes at the cost of larger file sizes."
The Multimedia Wiki, describes the atom-based structure of ProRes encoded data, a feature that makes them a good fit for the QuickTime file wrapper. The first level is the frame container atom followed by the frame header. The picture data comprises a picture header, which is present for every picture (field), which defines the width and height factors of a slice to inform the decoder how the coded picture is subdivided. The slice index table consists of 16-bit entries - one for each slice - gives the length of the data for each slice, permitting independent processing of the slices in means of multi-threading. Slices data array contains actual encoded macroblock data.
The Apple ProRes 4444 Codec Family, which includes Apple ProRes 4444 and Apple ProRes 4444 XQ, is seeing some use in the creation of productions destined for theaters and high end advertising. The fourth "4" in the name indicates this format's support for alpha (transparency) data, in contrast to ProRes 422. Other features include picture sizes ranging as high as 5K and 4:4:4 chroma subsampling up to 12-bits per sample. Alpha channel sampling can be as high as 16-bits.
|History||While most ProRes 422 codecs use the QuickTime wrapper, the higher technical capabilities of the ProRes4444 codecs lead themselves to application in the broadcast community including MXF users. To facilitate this, Apple authored SMPTE RDD 44:2017-11: SMPTE Registered Disclosure Document - Material Exchange Format — Mapping and Application of Apple ProRes which maps ProRes bitstreams into a subset of the MXF Generic Container (SMPTE ST 379-2). MXF support was added to Final Cut Pro 10.3 in October, 2016.|