[FFmpeg-devel] [PATCH] doc/filters: Add ascii graphics to clarify what the currently implemented tinterlace modes do
Clément Bœsch
u at pkh.me
Thu Dec 4 17:09:23 CET 2014
On Thu, Dec 04, 2014 at 04:03:00PM +0000, tim nicholson wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 04/12/14 08:24, tim nicholson wrote:
> > On 02/12/14 17:13, Michael Niedermayer wrote:
> >> On Tue, Dec 02, 2014 at 05:02:49PM +0000, tim nicholson wrote:
> >>> On 02/12/14 15:33, Michael Niedermayer wrote:
> >>>> Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> >>>> ---
> >>>> doc/filters.texi | 131 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
> >>>> 1 file changed, 131 insertions(+)
> >>>>
> >>>> diff --git a/doc/filters.texi b/doc/filters.texi
> >>>> index 8c16c7a..0ea3955 100644
> >>>> --- a/doc/filters.texi
> >>>> +++ b/doc/filters.texi
> >>>> @@ -8537,33 +8537,164 @@ Available values are:
> >>>> @item merge, 0
> >>>> Move odd frames into the upper field, even into the lower field,
> >>>> generating a double height frame at half frame rate.
> >>>> + at example
> >>>> + ------> time
> >>>> +Input:
> >>>> +Frame 1 Frame 2 Frame 3 Frame 4
> >>>> +
> >>>> +11111 22222 33333 44444
> >>>> +11111 22222 33333 44444
> >>>> +11111 22222 33333 44444
> >>>> +11111 22222 33333 44444
> >>>> +
> >>>> +Output:
> >>>> +11111 33333
> >>>> +22222 44444
> >>>> +11111 33333
> >>>> +22222 44444
> >>>> +11111 33333
> >>>> +22222 44444
> >>>> +11111 33333
> >>>> +22222 44444
> >>>> [..]
> >>>
> >>> I find the ascii graphic style of the interlace filter more
> >>> understandable....
> >
> >> how do you suggest above (and the other modes) would be documented
> >> in that style ?
> >
> >
> > Sorry for the delayed reply ISP issue...
> >
> > I think the main difference is going left to right, not top to bottom
> > for input to output, this then matches not only interlace but the
> > general filtergraph descriptions.
> >
> > I will try and see if I can give an example if you like.
> >
>
> Attached, follows style of existing interlace filter ascii art.
>
> >
> >> [...]
>
> - --
> Tim.
> Key Fingerprint 38CF DB09 3ED0 F607 8B67 6CED 0C0B FC44 8B0B FC83
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2
>
> iQEcBAEBAgAGBQJUgIWzAAoJEAwL/ESLC/yDGVMIAL/B/xLvAMPYUUW63RHxTiCP
> XQpKYKtfsFR6+QaC+pql1WSl8mYvlFRJUYLOm6ESd9JS72gLv6UTs1rLdITKaRdo
> SkSVLBWiVAdY8nzjNESjxWnolelM1JzcEopnfqT1hcxeGnyAx+IMHBd3pW0+r/6U
> F1BSnTM3yCELBvS/t7d4ZlpZkw4IDO2Lx0qseKi6CvQA/8ehfP9TcRbfdVgotcTf
> 4zorBilGKhZgaqpftxz8Kxbcldv/xrCczBOWVbB3sZRp4A6zLI9Xuc1c2hIyOia9
> EbvHOPmyEBBKdoa31aK8pjFf8gqXF4pM+ZbeaYfR00/WRJC2PbB+tKBQIXXNX4M=
> =cLiK
> -----END PGP SIGNATURE-----
> From 365723f7bae6bd5e233f6c5550826cd9aeb956f2 Mon Sep 17 00:00:00 2001
> From: Tim Nicholson <tim.nicholson at bbc.co.uk>
> Date: Thu, 4 Dec 2014 15:55:59 +0000
> Subject: [PATCH] doc/filters: Add ascii graphics to clarify what the currently
> implemented tinterlace modes do
>
> Signed-off-by: Tim Nicholson <tim.nicholson at bbc.co.uk>
> ---
> doc/filters.texi | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 151 insertions(+)
>
> diff --git a/doc/filters.texi b/doc/filters.texi
> index 8c16c7a..01f1f63 100644
> --- a/doc/filters.texi
> +++ b/doc/filters.texi
> @@ -8537,26 +8537,116 @@ Available values are:
> @item merge, 0
> Move odd frames into the upper field, even into the lower field,
> generating a double height frame at half frame rate.
> + at example
> + Original Original New Frame
> + Frame 'j' Frame 'j+1'
> + ========== =========== ==================
> + Line 0 --------------------> Frame 'j' Line 0
> + Line 0 ----> Frame 'j+1' Line 1
> + Line 1 ---------------------> Frame 'j' Line 2
> + Line 1 ----> Frame 'j+1' Line 3
> + Line 2 --------------------> Frame 'j' Line 4
> + Line 2 ----> Frame 'j+1' Line 5
> + Line 3 ---------------------> Frame 'j' Line 6
> + Line 3 ----> Frame 'j+1' Line 7
> + at end example
>
> @item drop_odd, 1
> Only output even frames, odd frames are dropped, generating a frame with
> unchanged height at half frame rate.
> + at example
> + Original Original New Frame
> + Frame 'j' Frame 'j+1'
> + ========== =========== ==================
> + Line 0
> + Line 0 ----> Frame 'j+1' Line 0
> + Line 1
> + Line 1 ----> Frame 'j+1' Line 1
> + Line 2
> + Line 2 ----> Frame 'j+1' Line 2
> + Line 3
> + Line 3 ----> Frame 'j+1' Line 3
> + at end example
>
> @item drop_even, 2
> Only output odd frames, even frames are dropped, generating a frame with
> unchanged height at half frame rate.
> + at example
> + Original Original New Frame
> + Frame 'j' Frame 'j+1'
> + ========== =========== ==================
> + Line 0 --------------------> Frame 'j' Line 0
> + Line 0
> + Line 1 ---------------------> Frame 'j' Line 1
> + Line 1
> + Line 2 --------------------> Frame 'j' Line 2
> + Line 2
> + Line 3 ---------------------> Frame 'j' Line 3
> + Line 3
> + at end example
>
> @item pad, 3
> Expand each frame to full height, but pad alternate lines with black,
> generating a frame with double height at the same input frame rate.
> + at example
> + Original New Frame
> + Frame 'j' Frame 'n'
> + ========== ==================
> + Line 0 ---------------------> Frame 'j' Line 0
> + black Line 1
> + Line 1 ---------------------> Frame 'j' Line 2
> + black Line 3
> + Line 2 ---------------------> Frame 'j' Line 4
> + black Line 5
> + Line 3 ---------------------> Frame 'j' Line 6
> + black Line 7
> +
> + Original New Frame
> + Frame 'j+1' Frame 'n+1'
> + =========== ==================
> + black Line 0
> + Line 0 ---------------------> Frame 'j+1' Line 1
> + black Line 2
> + Line 1 ---------------------> Frame 'j+1' Line 3
> + black Line 4
> + Line 2 ---------------------> Frame 'j+1' Line 5
> + black Line 6
> + Line 3 ---------------------> Frame 'j+1' Line 7
> + at end example
>
> @item interleave_top, 4
> Interleave the upper field from odd frames with the lower field from
> even frames, generating a frame with unchanged height at half frame rate.
> + at example
> + Original Original New Frame
> + Frame 'j' Frame 'j+1' (tff)
> + ========== =========== ==================
> + Line 0 --------------------> Frame 'j' Line 0
> + Line 1 ----> Frame 'j+1' Line 1
> + Line 2 ---------------------> Frame 'j' Line 2
> + Line 3 ----> Frame 'j+1' Line 3
> + Line 4 --------------------> Frame 'j' Line 4
> + Line 5 ----> Frame 'j+1' Line 5
> + Line 6 ---------------------> Frame 'j' Line 6
> + Line 7 ----> Frame 'j+1' Line 7
> + at end example
>
> @item interleave_bottom, 5
> Interleave the lower field from odd frames with the upper field from
> even frames, generating a frame with unchanged height at half frame rate.
> + at example
> + Original Original New Frame
> + Frame 'j' Frame 'j+1' (bff)
> + ========== =========== ==================
> + Line 0------> Frame 'j+1' Line 0
> + Line 1 ---------------------> Frame 'j' Line 1
> + Line 2------> Frame 'j+1' Line 2
> + Line 3 ---------------------> Frame 'j' Line 3
> + Line 4------> Frame 'j+1' Line 4
> + Line 5 ---------------------> Frame 'j' Line 5
> + Line 6------> Frame 'j+1' Line 6
> + Line 7 ---------------------> Frame 'j' Line 7
> + at end example
>
> @item interlacex2, 6
> Double frame rate with unchanged height. Frames are inserted each
> @@ -8564,6 +8654,67 @@ containing the second temporal field from the previous input frame and
> the first temporal field from the next input frame. This mode relies on
> the top_field_first flag. Useful for interlaced video displays with no
> field synchronisation.
> + at example
> + Original New Frame
> + Frame 'j' Frame 'n'
> + ========== ==================
> + Line 0 ---------------------> Frame 'j' Line 0
> + Line 1 ---------------------> Frame 'j' Line 1
> + Line 2 ---------------------> Frame 'j' Line 2
> + Line 3 ---------------------> Frame 'j' Line 3
> + Line 4 ---------------------> Frame 'j' Line 4
> + Line 5 ---------------------> Frame 'j' Line 5
> + Line 6 ---------------------> Frame 'j' Line 6
> + Line 7 ---------------------> Frame 'j' Line 7
> +
> + Original Original New Frame
> + Frame 'j' Frame 'j+1' Frame 'n+1'
> + ========== =========== ==================
> + Line 0------> Frame 'j+1' Line 0
> + Line 1 ---------------------> Frame 'j' Line 1
> + Line 2------> Frame 'j+1' Line 2
> + Line 3 ---------------------> Frame 'j' Line 3
> + Line 4------> Frame 'j+1' Line 4
> + Line 5 ---------------------> Frame 'j' Line 5
> + Line 6------> Frame 'j+1' Line 6
> + Line 7 ---------------------> Frame 'j' Line 7
> +
> + Original New Frame
> + Frame 'j+1' Frame 'n+2'
> + ========== ==================
> + Line 0 ---------------------> Frame 'j+1' Line 0
> + Line 1 ---------------------> Frame 'j+1' Line 1
> + Line 2 ---------------------> Frame 'j+1' Line 2
> + Line 3 ---------------------> Frame 'j+1' Line 3
> + Line 4 ---------------------> Frame 'j+1' Line 4
> + Line 5 ---------------------> Frame 'j+1' Line 5
> + Line 6 ---------------------> Frame 'j+1' Line 6
> + Line 7 ---------------------> Frame 'j+1' Line 7
> +
> + Original Original New Frame
> + Frame 'j+1' Frame 'j+2' Frame 'n+3'
> + ========== =========== ==================
> + Line 0------> Frame 'j+2' Line 0
> + Line 1 ---------------------> Frame 'j+1' Line 1
> + Line 2------> Frame 'j+2' Line 2
> + Line 3 ---------------------> Frame 'j+1' Line 3
> + Line 4------> Frame 'j+2' Line 4
> + Line 5 ---------------------> Frame 'j+1' Line 5
> + Line 6------> Frame 'j+2' Line 6
> + Line 7 ---------------------> Frame 'j+1' Line 7
> +
> + Original New Frame
> + Frame 'j+2' Frame 'n+4'
> + ========== ==================
> + Line 0 ---------------------> Frame 'j+2' Line 0
> + Line 1 ---------------------> Frame 'j+2' Line 1
> + Line 2 ---------------------> Frame 'j+2' Line 2
> + Line 3 ---------------------> Frame 'j+2' Line 3
> + Line 4 ---------------------> Frame 'j+2' Line 4
> + Line 5 ---------------------> Frame 'j+2' Line 5
> + Line 6 ---------------------> Frame 'j+2' Line 6
> + Line 7 ---------------------> Frame 'j+2' Line 7
> + at end example
> @end table
>
This representation requires way more efforts to me to understand than the
one from Michael...
[...]
--
Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20141204/595cd56e/attachment.asc>
More information about the ffmpeg-devel
mailing list