

# Working with progressive and interlaced scan types in AWS Elemental MediaConvert
Progressive and interlaced scan types

*Progressive* and *interlaced* are two types of video display methods. Modern display devices detect whether a video is interlaced or progressive and automatically play back the video correctly. But, progressive video looks much better on modern screens.

To get the best results with using interlacing/deinterlacing and converting to and from telecine, you must consider how your input video was recorded and what transformations have been done to it. For example, when you apply deinterlacing to an input that is not interlaced, your output video quality suffers.

**Topics**
+ [

## Basic scan type vocabulary
](#scan-type-vocabulary)
+ [

## Settings for scan type conversion
](#settings-for-scan-type-conversion)
+ [

# Converting the scan type of your video
](converting-scan-type.md)
+ [

# Valid settings combinations and requirements
](valid-settings-combinations.md)

## Basic scan type vocabulary


Progressive video  
*Progressive video* includes all lines in all frames. It looks better on modern screens because it drastically reduces the amount of image flicker the viewer sees on the screen. Devices displaying progressive video will re-draw all horizontal lines in a frame. For example, a device running at 50 Hertz playing a 1080 progressive video re-draws 1080 lines (every line in the frame) 50 times per second.

Interlaced video  
*Interlaced video* uses a technique that doubles the perceived frame rate of a video display without consuming extra bandwidth. On older displays, most people won't notice decreased video quality with interlaced video. Devices that support interlaced video re-draw every *other* horizontal line in a frame. For example, a device running at 50 Hertz playing a 1080 interlaced video redraws 540 lines (half of the lines in the frame) 50 times per second. 

Field polarity for interlaced frames  
Interlaced video contains two fields of a video frame, each one made up of every other horizontal line the image. *Field polarity* in video distinguishes between these two sets of lines. A set's polarity indicates whether the top field comes first or bottom field comes first. In the following illustration, the set with top field polarity is shown in blue and contains the topmost line. The set with bottom field polarity is shown in red and contains the second horizontal line from the top. The complete frame contains both, with each set being refreshed alternately.  

![\[The illustration representing the complete frame is a square made up of alternating blue and red stripes. The top field square shows only the blue stripes, with white representing space between them. The first blue stripe is at the top of the square. The bottom field square shows only the red stripes. The first red stripe is one stripe's width below the top.\]](http://docs.aws.amazon.com/mediaconvert/latest/ug/images/interlaced-field.PNG)

When you create interlaced outputs with MediaConvert, you can specify which field polarity comes first with the setting **Interlace mode**.

## Settings for scan type conversion
Settings for scan type conversion

To convert between interlaced to progressive video, specify the MediaConvert settings covered in this topic. This topic offers conceptual information and guidance for choosing values for the MediaConvert settings related to interlacing and deinterlacing. For directions for specifying them, see the procedures in the topic [Configuring scan type conversion](converting-scan-type.md).

Valid values for some of these settings depend on what you choose for the other settings. For a table that shows how to specify them together correctly, see [Requirements](valid-settings-combinations.md).

**Deinterlacer** preprocessor `(Deinterlacer`)  
Use this parent setting to enable and disable deinterlacing. If you simply enable the deinterlacer without specifying any further deinterlacing settings, your job will convert interlaced content to progressive. For the default deinterlacing to work correctly, your input video must be interlaced and the frames of your input video must not have metadata that tags them as progressive.

**Deinterlace Control** (`DeinterlacerControl`)  
This setting is a child of the deinterlacer setting. You can optionally use **Deinterlace control** to have MediaConvert deinterlace all frames of your input video, including those that are tagged as progressive. Only use this setting when you know that this metadata in your input video is wrong.

**Deinterlace algorithm** (`DeinterlaceAlgorithm)`  
This setting is a child of the deinterlacer setting. You can optionally use **Deinterlace algorithm** to specify the way that MediaConvert does the deinterlacing to get the best quality for your content. For sharper pictures, choose one of the motion adaptive interpolation options (**Interpolate** or **Interpolate ticker**). For smoother motion, choose one of the blend options (**Blend** or **Blend ticker**). When your source file includes moving text, such as a scrolling headline at the bottom of the frame, choose the ticker version of the algorithm.

**Deinterlace mode** (`DeinterlacerMode`)  
This setting is a child of the deinterlacer setting. You can optionally use **Deinterlace mode** to modify how MediaConvert applies deinterlacing.  
Keep the default value, **Deinterlace**, to do regular deinterlacing.  
Choose **Inverse telecine** to convert hard telecine (29.97 fps, interlaced) to progressive video at 23.976 fps. When you use inverse telecine, you must still specify your output frame rate as 23.97. MediaConvert doesn't automatically set this.   
Choose **Adaptive** to have MediaConvert automatically detect interlaced inputs and apply deinterlacing and inverse telecine to them. Adaptive deinterlace mode is useful when you use output presets, job templates, or custom programming to apply the same job settings to transcode an entire library of assets.  
When you choose **Adaptive** for this setting, MediaConvert automatically uses inverse telecine as well.

**Interlace mode** (`interlaceMode`)  
When you create interlaced video, from either progressive or interlaced inputs, use this MediaConvert setting. The default value of this setting is **Progressive**, so you can ignore this setting unless you want an interlaced output.   
When you use an interlaced input and you keep the default setting, **Progressive**, for **Interlace mode**, you should also enable **Deinterlace**. Otherwise, your progressive output will have very poor video quality.
When you create interlaced outputs, use **Interlace mode** to specify the [field polarity](#scan-type-vocabulary) of your outputs. You can either directly specify the field that comes first, or you can set it to follow the polarity of the source input. For jobs that have multiple inputs, the output might have a mix of top and bottom field first, depending on the polarity of the inputs.  
When you set **Interlace mode** to follow the source and your input is progressive, the output's field polarity depends on which of the follow options you set. **Follow, top field** results in an output that's top field first. **Follow, bottom field** results in an output that's bottom field first.

**Scan type** (`inputScanType`)  
Use this setting only when your input is progressive segmented frame (PsF). MediaConvert automatically detects progressive and interlaced inputs. But it doesn't detect PsF. When your input is PsF, set **Scan type** to **PsF** for better preservation of quality when you do deinterlacing and frame rate conversion.

# Converting the scan type of your video
Configuring scan type conversion

 After you know how you want to specify the relevant settings, use one of the following procedures to set up your job. For conceptual information and guidance about choosing the right values for these settings, see [Settings for scan type conversion](working-with-scan-type.md#settings-for-scan-type-conversion).

**To set up your transcoding job to convert scan type and telecine (console)**

1. Consult the topic [Settings for scan type conversion](working-with-scan-type.md#settings-for-scan-type-conversion) to determine the values that you want to set for interlacing or deinterlacing.

1. Set up your job inputs and outputs as described in [Tutorial: Configuring job settings](setting-up-a-job.md).

1. On the **Create job** page, in the **Job** pane on the left, choose the output that you want to work with.

1. Find the settings you need in the **Encoding settings** section as follows:
   + **Deinterlacer** preprocessor: Choose **Deinterlacer** from the list of preprocessors at the bottom of the **Encoding settings** section.
   + **Deinterlace Control**: Find this setting in the **Deinterlacer** section after you enable the deinterlacer.
   + **Deinterlace algorithm**: Find this setting in the **Deinterlacer** section after you enable the deinterlacer.
   + **Deinterlace mode**: Find this setting in the **Deinterlacer** section after you enable the deinterlacer.
   + **Interlace mode**: Find this setting directly under **Encoding settings**. You might want to use your web browser's search function to find this setting.
   + **Telecine**: This setting is only visible in the MediaConvert console when you set **Frame rate** to **29.970**. Find **Frame rate** directly under **Encoding settings**. You might want to use your web browser's search function to find this setting.

     The default value for **Telecine** is **None**. Therefore, you only need to make this setting visible in the MediaConvert console when you are creating a telecine output.

**To set up your transcoding job to convert scan type and telecine (API, CLI, or SDK)**

If you use the API, CLI, or an SDK, specify the relevant settings in your JSON job specification and then submit it programmatically with your job. For more information about submitting your job programmatically, see one of the introductory topics of the *AWS Elemental MediaConvert API Reference*:
+ [Getting started with AWS Elemental MediaConvert using the AWS SDKs or the AWS CLI](https://docs.aws.amazon.com/mediaconvert/latest/apireference/custom-endpoints.html)
+ [Getting started with AWS Elemental MediaConvert using the API](https://docs.aws.amazon.com/mediaconvert/latest/apireference/getting-started.html)

1. Consult the topic [Settings for scan type conversion](working-with-scan-type.md#settings-for-scan-type-conversion) to determine the values that you want to set for interlacing or deinterlacing.

1. Use the MediaConvert console to generate your JSON job specification. We recommend this approach, because the console functions as an interactive validator against the MediaConvert job schema. Follow these steps to generate your JSON job specification using the console:

   1. Follow the previous procedure for the console.

   1. In the **Job** pane on the left, under **Job settings**, choose **Show job JSON**.

   Find additional information, including where each setting belongs in the job settings structure, in the *AWS Elemental MediaConvert API Reference*. Links in this list go to information about the setting in that document:
   + **Deinterlacer** preprocessor: `[Deinterlacer](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-videopreprocessor-deinterlacer)`
   + **Deinterlace Control**: `[DeinterlacerControl](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-deinterlacer-control)`
   + **Deinterlace algorithm**: `[DeinterlaceAlgorithm](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-deinterlacer-algorithm)`
   + **Deinterlace mode**: `[DeinterlacerMode](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-deinterlacer-mode)`
   + **Interlace mode** (`interlaceMode`)
     + AVC (H.264): `[interlaceMode](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-h264settings-interlacemode)`
     + HEVC (H.265): `[interlaceMode](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-h265settings-interlacemode)`
     + MPEG-2: `[interlaceMode](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-mpeg2settings-interlacemode)`
     + Apple ProRes: `[interlaceMode](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-proressettings-interlacemode)`
   + **Telecine** (`telecine`)
     + AVC (H.264): `[telecine](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-h264settings-telecine)`
     + HEVC (H.265): `[telecine](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-h265settings-telecine)`
     + MPEG-2: `[telecine](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-mpeg2settings-telecine)`
     + Apple ProRes: `[telecine](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-proressettings-telecine)`
   + **Scan type** (`[InputScanType](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-input-inputscantype)`)

# Valid settings combinations and requirements
Requirements

Use this table to confirm that the scan type settings you intend to use are valid together and that they work with the scan type of your source input.

**Note**  
**Deinterlace algorithm** doesn't appear in this table, because whenever it makes sense to enable **Deinterlacer**, you can choose any value regardless of your other settings.


| To convert this input | To this output | Use these settings values | 
| --- | --- | --- | 
|  Progressive  |  Progressive  |  **Deinterlacer**: Disabled **Deinterlace control**: N/A **Deinterlace mode**: N/A **Interlace mode**: Progressive (default) **Telecine**: None (default)  | 
|  Interlaced  |  Progressive  |  **Deinterlacer**: Enabled **Deinterlace control**: Either value **Deinterlace mode**: Deinterlace (default) **Interlace mode**: Progressive (default) **Telecine**: None (default)  | 
|  Hard telecine  |  Progressive  |  **Deinterlacer**: Enabled **Deinterlace control**: Either value **Deinterlace mode**: Inverse telecine **Interlace mode**: Progressive (default) **Telecine**: None (default) **Frame rate**: 23.976  | 
|  Hard telecine  |  Progressive *When you want to use **Adaptive** for **Deinterlace mode***  |  **Deinterlacer**: Enabled **Deinterlace control**: Normal **Deinterlace mode**: Adaptive **Interlace mode**: Progressive (default) **Telecine**: None (default) **Frame rate**: 23.976  | 
|  Soft telecine  |  Progressive  |  **Deinterlacer**: Disabled **Deinterlace control**: N/A **Deinterlace mode**: N/A **Interlace mode**: Progressive (default) **Telecine**: None (default) **Frame rate**: 23.976  | 
|  Multiple inputs, some interlaced and some progressive  |  Progressive  |  **Deinterlacer**: Enabled **Deinterlace control**: Normal **Deinterlace mode**: Adaptive **Interlace mode**: Progressive (default) **Telecine**: None (default)  | 
|  Progressive  |  Hard telecine  |  **Deinterlacer**: Disabled **Deinterlace control**: N/A **Deinterlace mode**: N/A **Interlace mode**: Any value except progressive **Telecine**: Hard **Frame rate**: 29.97  | 
|  Hard telecine  |  Hard telecine  |  **Deinterlacer**: Disabled **Deinterlace control**: N/A **Deinterlace mode**: N/A **Interlace mode**: Any value except progressive **Telecine**: None **Frame rate**: Follow source  | 
|  Soft telecine  |  Hard telecine  |  **Deinterlacer**: Disabled **Interlace mode**: Any value except progressive **Telecine**: Hard **Framerate**: 29.97  | 
|  Multiple inputs, some interlaced and some progressive  |  Hard telecine  |  **Deinterlacer**: Disabled **Deinterlace control**: N/A **Deinterlace mode**: N/A **Interlace mode**: Any value except progressive **Telecine**: Hard **Framerate**: 29.97  | 
|  Interlaced  |  Interlaced  |  **Deinterlacer**: Disabled **Deinterlace control**: N/A **Deinterlace mode**: N/A **Interlace mode**: Any value except progressive **Telecine**: None  | 
|  Multiple inputs, some interlaced and some progressive  |  Interlaced  |  **Deinterlacer**: Disabled **Deinterlace control**: N/A **Deinterlace mode**: N/A **Interlace mode**: Any value except progressive **Telecine**: None  | 
|  Progressive  |  Soft telecine  |  **Deinterlacer**: Disabled **Deinterlace control**: N/A **Deinterlace mode**: N/A **Interlace mode**: Any value except progressive **Telecine**: Soft  | 
|  Hard telecine  |  Soft telecine  |  **Deinterlacer**: Enabled **Deinterlace control**: Either value **Deinterlace mode**: Inverse telecine **Interlace mode**: Any value except progressive **Telecine**: Soft **Framerate**: 23.967  | 
|  Hard telecine  |  Soft telecine *When you want to use **Adaptive** for **Deinterlace mode***  |  **Deinterlacer**: Enabled **Deinterlace control**: Normal **Deinterlace mode**: Adaptive **Interlace mode**: Any value except progressive **Telecine**: Soft **Framerate**: 23.967  | 
|  Soft telecine  |  Soft telecine  |  **Deinterlacer**: Disabled **Deinterlace control**: N/A **Deinterlace mode**: N/A **Interlace mode**: Any value except progressive **Telecine**: Soft  | 
|  Multiple inputs, some interlaced and some progressive  |  Soft telecine  |  **Deinterlacer**: Enabled **Deinterlace control**: Normal **Deinterlace mode**: Adaptive **Interlace mode**: Any value except progressive **Telecine**: Soft **Framerate**: 23.967  | 