[FFmpeg-user] bwdif
Mark Filipak
markfilipak.windows+ffmpeg at gmail.com
Tue May 12 01:45:52 EEST 2020
This is a 'straw man' documentation of the 'bwdif' filter. Since it is a 'straw man', do not
consider it to be correct. Kindly correct and post back. Pending possible further clarification, I
will consider your corrections to be authoritative.
Best Regards,
Mark Filipak.
'bwdif': Generate an Output stream of picture frames from an Input stream containing a mix of
picture frames (if any) & interlace frames (if any).
'bwdif' default: 'bwdif=mode=send_field:parity=auto:deint=all'.
Variables (ffprobe):
"IF" ('interlaced_frame=1') identifies an Input interlace frame.
"TFF" (IF+'top_field_first=1') identifies an IF with the top half-picture in the 1st field.
"BFF" (IF+'top_field_first=0') identifies an IF with the bottom half-picture in the 1st field.
"PF" ('interlaced_frame=0') identifies an Input picture frame.
Processes:
"TFF-process" means copy the IF's 1st field to the Output's top half-picture and its 2nd field to
the bottom half-picture.
"BFF-process" means copy the IF's 1st field to the Output's bottom half-picture and its 2nd field to
the top half-picture.
"PF-process" means copy the PF's top lines to the Output's top half-picture and its bottom lines to
the bottom half-picture.
Process directives:
'bwdif=deint=all':
If TFF (or BFF), apply TFF-process (or BFF-process).
If PF, apply PF-process.
'bwdif=deint=interlaced':
If TFF (or BFF), apply TFF-process (or BFF-process).
If PF, pass the Input frame (assumed to be PF) unchanged to the Output.
Input directives:
'parity=auto':
If TFF (or BFF), apply TFF-process (or BFF-process).
If PF, do nothing.
If Input frame interlace is unknown, force TFF.
'parity=tff':
If IF, force TFF.
If PF, do nothing.
If Input frame interlace is unknown, force TFF.
'parity=bff':
If IF, force BFF.
If PF, do nothing.
If Input frame interlace is unknown, force TFF.
Output directives: Generates 1 or 2 frames per input frame depending on 'mode'.
'mode=send_field':
Package the 2 Output half-pictures in 2 separate Output picture frames.
'mode=send_frame':
Package the 2 Output half-pictures in a single Output picture frame.
Question: Does 'bwdif=deint=interlaced' mean that the Output will be variable frame rate?
Output_FPS=Input_FPS+Input_FPS*#IF/#total?
Confusing: "If the interlacing is unknown or the decoder does not export this information...", then
how does the filter know it's an IF?
Confusing: "The picture field parity assumed for the input interlaced video" is confusing because
interlaced frames (as defined by MPEG) do not contain pictures (as defined by MPEG).
--
COVID-19 perspective (May 11, 2020):
The U.S. is 4% of world population, 33% of cases, 28% of deaths, accelerating.
The U.S. & S.Korea reported 1st cases on the same day, 22 Jan 2020.
In March, week 2, S.Korea (pop: 52 million) did 10,000 tests/day, 4 hour results.
In March, week 2, the U.S. (pop: 328 million) did 400 tests/day, 7 day results.
More information about the ffmpeg-user
mailing list