LR-IMP-FORMATS: decode EOS R6 Mark II C-RAW with adaptive QP up to 175

EOS R6 Mark II C-RAW QP maps reach 172 and 175; crx.rs accepted 131-168,
so those files opened as their preview ("Canon CRX adaptive QP value 172").
Adaptive QP now goes to 175 (quantization value 51, step 228), the highest
seen in any file; uniform subband values still stop at 44.

Checked black-box against the camera JPEGs on private files: 144 R6 II /
R7 C-RAW files decode to identical hashes where they decoded before, the 3
failing ones now decode (green follows the JPEG at r 0.98), fine detail per
QP shows no jump at 172/175, 100 % crops are clean, and 1,492 files sampled
from a 35,796-file library decode with max QP 175. No third-party decoder
source consulted. Bumps RENDER_CACHE_VERSION to 63; cr3.md and What's New.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YSGFEf87ba1zKJZb9uzddK
This commit is contained in:
Claude
2026-10-14 08:41:52 +00:00
parent a4b53b28cc
commit 3ae306ecb3
4 changed files with 62 additions and 15 deletions
+17 -1
View File
@@ -93,7 +93,23 @@ The version `0x200` QP predictor and entropy framing were checked independently.
Controlled input mutations establish floor averaging of paired QP rows before
the nonlinear integer table, then multiplication, division by eight, addition
of the subband base and a minimum step of one. QP values 131–167 are verified;
unmeasured values are rejected.
168–175 continue the same integer sequence (below); higher values are rejected.
EOS R6 Mark II C-RAW maps reach QP 172 and 175, which the decoder used to reject ("Canon CRX adaptive QP
value 172"; the file opened as its preview). Quantization values 45–51 (QP 169–175) give steps 114, 128,
144, 160, 180, 204 and 228, continuing the 2^(1/6) ladder of the measured values. No external decoder was
run; the check is black-box against the camera, on a user's private files:
- 144 C-RAW files (EOS R6 Mark II and R7): every file that decoded before decodes to an identical sensor
hash; the 3 that failed (QP maps 168–175) now decode, and their green mosaic follows the camera's
embedded JPEG at Pearson r 0.980–0.984 (24 × 16 cells, as in the corpus test), within the set's range;
- per QP value, the ratio of fine detail in the decode to fine detail in the camera JPEG over the same
16 × 4-pixel QP cells (pooled over the files) is 6.2 at QP 172 and 12.2 at QP 175, inside the
2.8–15.5 spread of the already-accepted QPs 150–165; a wrong step at those QPs would show as a jump;
- 100 % crops round the highest-QP cells of six files show no blocking, banding, ringing or seams, and
no change in noise between high-QP areas and their surroundings;
- 1,492 files sampled from a 35,796-file library (1,094 R7, 298 R6 Mark II, 100 R100) decode with no
errors; the highest QP is 175 (3 of the 298 R6 Mark II files go above 167; the R7 stays at or below 164).
The QP map is coded as follows (established on the EOS R5 Mark II). Its first symbol is a 32-bit
big-endian literal, mapped like every other symbol and added to a prediction of zero. Every later
+5
View File
@@ -2,6 +2,11 @@
## 2026-10-14
### More Canon EOS R6 Mark II C-RAW files decode
- Some EOS R6 Mark II C-RAW files (about 1 in 50 in one photographer's library) opened as their preview with
"Canon CRX adaptive QP value 172" or "175". They now decode from the sensor data. Photos imported before this
switch over with Photo ▸ Reload from Disk.
### Hard-edged Heal and Clone spots
- A spot with Feather at 0 no longer draws black pixels exactly on its radius. This also fixes spots at 0% Opacity
changing pixels along their edge. The hard edge now leaves pixels on the radius unchanged.