In the docs for FFV1 there's a parameter -context
, which can be set to 'small' or 'large'. That's all the documentation I can find.
While I'm at it, what are the relative benefits of the different encoders: Golomb Rice vs Range Coder?
Video Production Stack Exchange is a question and answer site for engineers, producers, editors, and enthusiasts spanning the fields of video, and media creation. It only takes a minute to sign up.
Sign up to join this communityIn the docs for FFV1 there's a parameter -context
, which can be set to 'small' or 'large'. That's all the documentation I can find.
While I'm at it, what are the relative benefits of the different encoders: Golomb Rice vs Range Coder?
The coder here refers to the process used for entropy coding the error residuals. The context size sets how many neighbouring residuals are considered in this process.
As to the relative benefits, have no particular experience here, but since this is a lossless process, the tradeoff will be between time, size and resource use. This latter question is better suited for https://dsp.stackexchange.com/
About your other question regarding the -coder
option, I was also looking for more info on this.
The current (Dec. 2020) IETF/cellar WG draft "FFV1 Video Coding Format Version 0, 1, and 3" mentions in it's "4.2.3. coder_type" chapter :
Restrictions:
If coder_type is 0, then bits_per_raw_sample SHOULD NOT be > 8.
Background:
At the time of this writing, there is no known implementation of FFV1 bitstream supporting Golomb Rice algorithm with bits_per_raw_sample greater than 8, and Range Coder is prefered.
So without understanding much about it, I just concluded : "always use -coder 1
" ... :-)