Treasured's Movie Repair Guide -- ProRes RAW


ProRes RAW is a RAW digital cinematography format, unveiled by Apple in 2018.

This video codec intends to keep the ease of use of decade-old ProRes, while providing the flexibility of a RAW format in terms of color grading and dynamic range.

ProRes RAW is designed to be a drop-in replacement for ProRes in videographers workflows:

Detection

Treasured can detect ProRes RAW footage in recovered files since version 4.4, and also in cards and in hard disks.
Treasured has a built-in preview function, and shows ProRes RAW thumbnails that help identify the content of the corrupted media..


Left: Thumbnail rendered by Treasured
Right: Ghost thumbnail rendered by first DC coefficient technique (see "bitstream analysis" below)

All flavours of ProRes RAW (standard and HQ), all resolutions and all vendors (DJI, Atomos, ...) are supported.

Failure modes

The causes of failure reported by ProRes RAW users are:

Repairability and Pricing

Due to similarities with ProRes as far as containers and bitstreams are concerned, we can leverage our experience of more than a decade repairing ProRes footage, to provide highly satisfying repairs in ProRes RAW as well.

Corrupted ProRes RAW media can usually be repaired without major problem.
The only failure mode (see list above) that is very challenging to fix is the insufficient card writing speed. This can cause some frames to be only partially written, and those frames will have to be skipped in the recovery process.

Huge ProRes RAW file (hundreds of GB) are not a problem for Treasured and our remote repair system, since only around 200 MB of data need to be sent via Internet. With a small sample, we can figure out the repair technique and send the repair program to the customer.

Aero Quartet engineers develop a Repair Kit with the following features:

ProRes RAW repairs are only available through our 4K and Cinema plans.

Bitstream Analysis

Little is known about the internals of ProRes RAW encoding. As of fall 2018, Apple hasn't published technical details, the codec remains proprietary.


Number of slices depends on the frame resolution.
Slices have fixed resolution of 256 x 16 pixels.
Example: 5440x2880 pixels gives 3960 slices because 5440/256 = 21.25, rounded to 22, 
         and 2880/16 = 180. 3960 is the product of 22 x 108.

Starting at 0090, for each slice, two bytes encode the slice length.
Each slice is then written from top to bottom, left to right into the frame bitstream.

Slice header:
1F80: 40 2D 01 27 01 2C 01 6F 3F
       (11)  (12)  (13)  (14) (15)
                                       (11) Slice header
                                       (12) length of Green
                                       (13) length of Red
                                       (14) length of Blue
Length of second Green can be calculated with formula: (10)-(12)-(13)-(14) - 8
                                       (15) first DC coefficient of Green plane

Using first DC coefficients of each plane and each slice, 
we can generate a very low resolution image.
See "Ghost" thumbnail above.
Free Preview of corrupt ProRes RAW videos with: