AcademySoftwareFoundation / AcademySoftwareFoundation/EncodingGuidelines
Perceptual difference between `scale` and `zscale` after the OCIO filter
- Dominant language
- Dockerfile
- Stars
- 55
- Forks
- 8
- PR merge metrics
- No merged PRs in 30d
Description
When following the `FfmpegOcio.md` guidance to convert from RGB (OCIO filter output) to YCbCr using the `scale` filter, I noticed a perceptible difference from the EXR source. Swapping `scale` for `zscale` resolved it and much closer to the source in my testing.
**Example:**
```
ffmpeg -y -framerate 24 -start_number -i SOURCEFRAMES.%05d.exr \
-c:v prores_ks -profile:v 1 -pix_fmt yuv422p10le \
-vf "ocio=input=ACEScg:output=ACEScct:format=rgb48,zscale=matrix=709:primaries=709:primariesin=709:transfer=unspecified:transferin=unspecified:rangein=pc:range=limited" \
-movflags +faststart+write_colr -vendor apl0 OUTPUTFILE.mov
```
I don't have CLA clearance setup yet, so sharing my branch here instead: [`ffmpeg-ocio-zscale-command`](https://github.com/johnjoumaa/EncodingGuidelines/commit/0ca5457c3ad7a989aa77c7b59ffed3068f458940) on my fork, which adds a `zscale` note + alternate examples to `FfmpegOcio.md` alongside the existing `scale`-based ones. Happy to edit, have someone pick it up, or I can open the PR myself once CLA is sorted.
Let me know what your prefer,
Cheers!
Contributor guide
Research direction
Start with FfmpegOcio.md and compare its existing scale-based guidance with the linked ffmpeg-ocio-zscale-command commit. Confirm the zscale note and alternate examples accurately reflect the reported difference, and consider the documentation complete when those additions are incorporated and the examples remain consistent with the existing guidance.
Written by the indexing model from the issue text.
Assessment
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 1/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 68/100