[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