Treasured's Movie Repair Guide -- Sony X-OCN


Sony X-OCN is a RAW digital cinematography format, unveiled by Sony in 2016 with new AXS-R7 recorder.

This video codec intends to provide the flexibility of a RAW format in terms of color grading and dynamic range, while keeping storage and transfer demands reasonable.
In typical Sony fashion, X-OCN stands for eXtended tonal range Original Camera Negative!
X-OCN is supported by new CineAlta Venice, by PMW-F55/F5 camcorders and AXS-R7 portable memory recorder.
Compared to Sony RAW codec introduced in 2012, the new X-OCN format addresses some of the issues that have prevented its successor from taking off:



Detection

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


Sony Venice 6K, the flagship CineAlta camera

All flavours of Sony X-OCN (2K, 4K, ST and LT) are supported.

Failure modes

The causes of failure reported by Sony X-OCN users are:

Repairability and Pricing

Corrupted Sony X-OCN media can usually be repaired without major problem.

Huge MXF files (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:

Sony X-OCN repairs are only available through our 4K and Cinema plans.

Bitstream Analysis

Little is known about the internals of Sony X-OCN encoding. The codec remains proprietary.


0000: 53 42 52 65                       'SBRe' marker
0008: 10 20 04 48                       width (4128) and half height (1096). 32 pixels cropped
0010: 00 1A 10 00                       length (24 bits) of first table row. 5 rows -> 5 values
0030: 03 00 0A 85 00 07 A6 00 07 E5     each table row contains 3 lengths (24 bits) whose sum
0040: 03 00 14 FB 00 0D AE 00 0E C4     is found at 0x0010: A850 + 7A60 + 7E50 = 1A100 
0050: 03 00 3E 0F 00 27 C8 00 2B 8D
0060: 03 00 CA CE 00 68 79 00 78 95     4 rows with 3 entries 
0070: 01 00 BE E4                       and fifth row with 1 entry. Total: 13 entries

With 13 lengths in table, we jump to 13 structures, the first one is found at 0x0080:
0080: 00 16 00 0A 6E 40 40 00 8A 10     structure header
0090: 01 4B 00 15 10 01 4A 00 14 D0     we find 137 values encoded on 12 bits plus 8 padding bits
....
01E0: 23 00 12 20 01 1B 00 00 00 00     137th and last value
01F0: 80 18 7C 15 11 44 1C E4 1A D4     payload of first slice. Length: 0x14B (value at 0x0090)
....
033B: 80 18 54 0F 08 84 9C EC C4 C8     payload of second slice
....
For a 4K frame (4128 x 2192), we have in total 13 x 137 slices encoded in the frame.
This suggests that each slice has a size of 320 x 16 pixels.
Free Preview of corrupt Sony X-OCN videos with: