Encoding.com has integrated Cinnafilm's Tachyon — the industry standard for motion-compensated frame rate conversion, telecine (pulldown) handling, and Dark Energy image restoration. Here's how to enable Tachyon in your job requests:
To process an output with Tachyon, set the video settings parameter framerate_method to tachyon and specify the target frame rate with the framerate parameter. Set framerate to copy to keep the source frame rate and use Tachyon only for pulldown handling or Dark Energy restoration.
All parameters of the tachyon_parameters group are optional — any parameter that is not set falls back to Tachyon's automatic behavior, except motion_compensation, which defaults to yes.
The scan type of the Tachyon output follows the video settings parameter force_interlaced: tff or bff make Tachyon deliver interlaced output with that field order, source mirrors the source, and any other value delivers progressive output. Set deinterlacing to no so that Tachyon receives the untouched source.
<?xml version="1.0"?>
<query>
<userid>[UserID]</userid> <!-- required -->
<userkey>[UserKey]</userkey> <!-- required -->
<action>[Action]</action> <!-- required -->
<source>[SourceFile]</source> <!-- required -->
<format>
<output>[OutputFormat]</output> <!-- required -->
<framerate>[FrameRate|copy]</framerate>
<framerate_method>tachyon</framerate_method> <!-- required -->
<tachyon_parameters>
<motion_compensation>[yes|no]</motion_compensation>
<motion_compensation_amount>[xlow|low|medium|high|xhigh|auto]</motion_compensation_amount>
<motion_compensation_fallback_blend_area>[small|medium|large|xlarge|auto]</motion_compensation_fallback_blend_area>
<motion_compensation_block_size>[4|8|16|32|64|128|256|auto]</motion_compensation_block_size>
<extreme_motion_compensation_amount>[xlow|low|medium|high|xhigh|auto]</extreme_motion_compensation_amount>
<extreme_motion_compensation_fallback_blend_area>[small|medium|large|xlarge|auto]</extreme_motion_compensation_fallback_blend_area>
<extreme_motion_compensation_block_size>[4|8|16|32|64|128|256|auto]</extreme_motion_compensation_block_size>
<allow_pulldown_removal>[yes|no]</allow_pulldown_removal>
<pulldown_removal_residual_combing>[yes|no]</pulldown_removal_residual_combing>
<adjust_for_cartoon>[yes|no]</adjust_for_cartoon>
<pulldown_removal_increased_sensitivity>[yes|no]</pulldown_removal_increased_sensitivity>
<allow_2_3_insertion>[yes|no]</allow_2_3_insertion>
<allow_2_2_insertion>[yes|no]</allow_2_2_insertion>
<allow_double_frames>[yes|no]</allow_double_frames>
<allow_4_6_insertion>[yes|no]</allow_4_6_insertion>
<allow_euro_insertion>[yes|no]</allow_euro_insertion>
<allow_adaptive_insertion>[yes|no]</allow_adaptive_insertion>
<overlay_protect>[yes|no]</overlay_protect>
<overlay_protect_amount>[low|high]</overlay_protect_amount>
<subtitle_detect>[yes|no]</subtitle_detect>
<motion_blur>[yes|no]</motion_blur>
<progressive_scene_cuts>[yes|no]</progressive_scene_cuts>
<enable_detectors>[yes|no]</enable_detectors>
<enable_frame_rate_conversion>[yes|no]</enable_frame_rate_conversion>
<cut_detection_sensitivity>[Sensitivity]</cut_detection_sensitivity>
<resample_map>[ResampleMap]</resample_map>
<dark_energy_filter>
<enable_optimize>[yes|no]</enable_optimize>
<power_spatial_filter>[disable|xlow|low|medium|high|xhigh|auto]</power_spatial_filter>
<chroma_noise_removal>[disable|xlow|low|medium|high|xhigh|auto]</chroma_noise_removal>
<sharpen>[disable|xlow|low|medium|high|xhigh|auto]</sharpen>
<texture_amount>[disable|xlow|low|medium|high|xhigh|auto]</texture_amount>
<texture_size>[xsmall|small|medium|large|xlarge|auto]</texture_size>
<texture_color>[color|gray|auto]</texture_color>
<single_event_artifact_removal>[disable|xlow|low|medium|high|xhigh|auto]</single_event_artifact_removal>
<smooth_spatial_filter>[disable|xlow|low|medium|high|xhigh|auto]</smooth_spatial_filter>
<basic_spatial_filter>[disable|xlow|low|medium|high|xhigh|auto]</basic_spatial_filter>
<adj_contrast>[Adjustment]</adj_contrast>
<adj_brightness>[Adjustment]</adj_brightness>
<adj_saturation>[Adjustment]</adj_saturation>
<adj_gamma>[Adjustment]</adj_gamma>
<adj_red>[Adjustment]</adj_red>
<adj_green>[Adjustment]</adj_green>
<adj_blue>[Adjustment]</adj_blue>
</dark_energy_filter>
</tachyon_parameters>
</format>
</query>{
"query": {
"userid": "[UserID]", // required
"userkey": "[UserKey]", // required
"action": "[Action]", // required
"source": "[SourceFile]", // required
"format": {
"output": "[OutputFormat]", // required
"framerate": "[FrameRate|copy]",
"framerate_method": "tachyon", // required
"tachyon_parameters": {
"motion_compensation": "[yes|no]",
"motion_compensation_amount": "[xlow|low|medium|high|xhigh|auto]",
"motion_compensation_fallback_blend_area": "[small|medium|large|xlarge|auto]",
"motion_compensation_block_size": "[4|8|16|32|64|128|256|auto]",
"extreme_motion_compensation_amount": "[xlow|low|medium|high|xhigh|auto]",
"extreme_motion_compensation_fallback_blend_area": "[small|medium|large|xlarge|auto]",
"extreme_motion_compensation_block_size": "[4|8|16|32|64|128|256|auto]",
"allow_pulldown_removal": "[yes|no]",
"pulldown_removal_residual_combing": "[yes|no]",
"adjust_for_cartoon": "[yes|no]",
"pulldown_removal_increased_sensitivity": "[yes|no]",
"allow_2_3_insertion": "[yes|no]",
"allow_2_2_insertion": "[yes|no]",
"allow_double_frames": "[yes|no]",
"allow_4_6_insertion": "[yes|no]",
"allow_euro_insertion": "[yes|no]",
"allow_adaptive_insertion": "[yes|no]",
"overlay_protect": "[yes|no]",
"overlay_protect_amount": "[low|high]",
"subtitle_detect": "[yes|no]",
"motion_blur": "[yes|no]",
"progressive_scene_cuts": "[yes|no]",
"enable_detectors": "[yes|no]",
"enable_frame_rate_conversion": "[yes|no]",
"cut_detection_sensitivity": "[Sensitivity]",
"resample_map": "[ResampleMap]",
"dark_energy_filter": {
"enable_optimize": "[yes|no]",
"power_spatial_filter": "[disable|xlow|low|medium|high|xhigh|auto]",
"chroma_noise_removal": "[disable|xlow|low|medium|high|xhigh|auto]",
"sharpen": "[disable|xlow|low|medium|high|xhigh|auto]",
"texture_amount": "[disable|xlow|low|medium|high|xhigh|auto]",
"texture_size": "[xsmall|small|medium|large|xlarge|auto]",
"texture_color": "[color|gray|auto]",
"single_event_artifact_removal": "[disable|xlow|low|medium|high|xhigh|auto]",
"smooth_spatial_filter": "[disable|xlow|low|medium|high|xhigh|auto]",
"basic_spatial_filter": "[disable|xlow|low|medium|high|xhigh|auto]",
"adj_contrast": "[Adjustment]",
"adj_brightness": "[Adjustment]",
"adj_saturation": "[Adjustment]",
"adj_gamma": "[Adjustment]",
"adj_red": "[Adjustment]",
"adj_green": "[Adjustment]",
"adj_blue": "[Adjustment]"
}
}
}
}
}Frame rate conversion parameters
| Parameter | Description | Allowed Values | Default Value |
|---|---|---|---|
| motion_compensation | Enable motion-compensated frame rate conversion. Defaults to yes; Tachyon only generates new frames when the output frame rate differs from the source. Without motion compensation Tachyon repeats and drops whole frames instead. | yes, no | yes |
| motion_compensation_amount | Amount of motion compensation applied during frame rate conversion. Lower values interpolate more conservatively on difficult motion. | xlow, low, medium, high, xhigh, auto | auto |
| motion_compensation_fallback_blend_area | Size of the region Tachyon blends instead of warping where motion estimation is uncertain. Larger values trade sharpness for fewer halos around moving edges and overlays. | small, medium, large, xlarge, auto | auto |
| motion_compensation_block_size | Motion estimation block size, in pixels. Smaller blocks track fine detail, larger blocks track large objects more stably. | 4, 8, 16, 32, 64, 128, 256, auto | auto |
| extreme_motion_compensation_amount | Motion compensation amount used for frames Tachyon classifies as high motion. | xlow, low, medium, high, xhigh, auto | auto |
| extreme_motion_compensation_fallback_blend_area | Fallback blend region size used for high-motion frames. | small, medium, large, xlarge, auto | auto |
| extreme_motion_compensation_block_size | Motion estimation block size used for high-motion frames, in pixels. | 4, 8, 16, 32, 64, 128, 256, auto | auto |
| progressive_scene_cuts | Treat scene cuts as progressive, so that no interpolated frame mixes the shots on either side of a cut. | yes, no | no |
| enable_detectors | Enable Tachyon's automatic content detectors (cadence, scene and motion analysis). Set to no to convert with motion compensation only, without the automatic decisions the detectors make. | yes, no | yes |
| enable_frame_rate_conversion | Perform frame rate conversion. Set to no to keep the source timing and use Tachyon only for Dark Energy restoration. | yes, no | yes |
| cut_detection_sensitivity | Scene cut detection sensitivity. 0.0 means automatic; typical values are 0.1–0.35. | 0–0.5 | 0 (auto) |
| resample_map | Per-segment retime map, as source:destination frame counts. A source length of 0 inserts black frames; a destination length of 0 drops the segment. A single pair converts a known number of source frames into a known number of output frames. | src1:dst1[,src2:dst2,...] frame counts | none |
Pulldown (telecine) parameters
The allow_* insertion parameters grant Tachyon permission to insert that cadence if its analysis calls for it — they do not force it, and Tachyon may leave a permitted cadence unused. The cadences are named for their field-domain pattern, but they are not restricted to interlaced output: on a progressive target a permitted cadence is applied in the frame domain instead.
| Parameter | Description | Allowed Values | Default Value |
|---|---|---|---|
| allow_pulldown_removal | Allow detection and removal of a pulldown pattern in the source, recovering the original film frames before conversion. | yes, no | no |
| pulldown_removal_increased_sensitivity | Use more sensitive detection when removing pulldown. Helps on sources whose cadence is broken by edits. | yes, no | no |
| pulldown_removal_residual_combing | Apply an additional filter pass after pulldown removal. | yes, no | no |
| adjust_for_cartoon | Tell Tachyon the source is animation, which uses cadence detection tuned for drawn content that holds frames. | yes, no | no |
| allow_2_3_insertion | Allow inserting 3:2 pulldown (standard NTSC telecine), for example 23.976p to 29.97i. | yes, no | no |
| allow_2_2_insertion | Allow a 1:2 cadence. On interlaced output this is 2:2 insertion, carrying each frame as two fields of the same instant (PSF), which never combs. On progressive output it repeats frames instead, the same as allow_double_frames. | yes, no | no |
| allow_double_frames | Allow frame doubling, for example 25p to 50p without interpolation. On a progressive target this behaves the same as allow_2_2_insertion. | yes, no | no |
| allow_4_6_insertion | Allow inserting 4:6 pulldown, for example 25p to 59.94p. | yes, no | no |
| allow_euro_insertion | Allow inserting Euro pulldown, which reaches the higher rate by repeating one field every 12 frames instead of interpolating. Fields then carry different instants, so the output combs unless it is viewed on an interlaced chain. | yes, no | no |
| allow_adaptive_insertion | Allow Tachyon to choose the pulldown cadence per scene. | yes, no | no |
Content protection parameters
| Parameter | Description | Allowed Values | Default Value |
|---|---|---|---|
| overlay_protect | Detect static graphics — score bugs, logos, name bars — and keep them steady while the picture behind them is interpolated. | yes, no | no |
| overlay_protect_amount | Strength of overlay protection. Use high for sports and other graphics-heavy feeds, low for general content. | low, high | low |
| subtitle_detect | Detect burned-in subtitles and protect them the same way. | yes, no | no |
| motion_blur | Synthesize the motion blur a camera would have captured at the target rate when lowering the frame rate. Set to no to keep the source sharpness. | yes, no | yes |
Dark Energy restoration parameters
The dark_energy_filter group configures Tachyon's Dark Energy noise reduction, sharpen, texture, and color adjustment processing.
| Parameter | Description | Allowed Values | Default Value |
|---|---|---|---|
| enable_optimize | Enable Dark Energy restoration. | yes, no | no |
| power_spatial_filter | Main noise reduction amount. | disable, xlow, low, medium, high, xhigh, auto | none |
| chroma_noise_removal | Chroma noise removal amount. | disable, xlow, low, medium, high, xhigh, auto | none |
| sharpen | Sharpen amount. | disable, xlow, low, medium, high, xhigh, auto | none |
| texture_amount | Amount of synthesized grain (texture) added. | disable, xlow, low, medium, high, xhigh, auto | none |
| texture_size | Size of the synthesized grain. | xsmall, small, medium, large, xlarge, auto | none |
| texture_color | Color of the synthesized grain. | color, gray, auto | none |
| single_event_artifact_removal | Removal of single-frame artifacts such as dust and sparkle. | disable, xlow, low, medium, high, xhigh, auto | none |
| smooth_spatial_filter | Smooth spatial filter amount. | disable, xlow, low, medium, high, xhigh, auto | none |
| basic_spatial_filter | Basic spatial filter amount. | disable, xlow, low, medium, high, xhigh, auto | none |
| adj_contrast | Contrast adjustment. | -1.0–1.0 | none |
| adj_brightness | Brightness adjustment. | -1.0–1.0 | none |
| adj_saturation | Saturation adjustment. | -1.0–1.0 | none |
| adj_gamma | Gamma adjustment. | -1.0–1.0 | none |
| adj_red | Red channel adjustment. | -1.0–1.0 | none |
| adj_green | Green channel adjustment. | -1.0–1.0 | none |
| adj_blue | Blue channel adjustment. | -1.0–1.0 | none |
Typical conversions
Tachyon's automatic mode already handles the conversion; the parameters below are the ones worth setting for each case. Set framerate to the target rate in every case.
| Source | Target | Recommended parameters |
|---|---|---|
| 23.976p / 24p film | 25p | defaults |
| 23.976p / 24p film | 25i (PSF) | allow_2_2_insertion: yes + force_interlaced: tff |
| 23.976p / 24p film | 29.97i | allow_2_3_insertion: yes + force_interlaced: tff |
| 25p | 50p | allow_double_frames: yes (frame double instead of interpolation) |
| 25p | 59.94p | allow_4_6_insertion: yes |
| 29.97i / 59.94i video | 50p, 25p | allow_pulldown_removal: yes |
| 29.97i telecined film | 23.976p, 25p | allow_pulldown_removal: yes |
| 29.97i telecined animation | 23.976p, 25p | allow_pulldown_removal: yes + adjust_for_cartoon: yes |
| Any source with static graphics | any | overlay_protect: yes, overlay_protect_amount: high for sports |
| Any source with burned-in subs | any | subtitle_detect: yes |
| Any source, restoration only | same rate | framerate: copy + enable_frame_rate_conversion: no + dark_energy_filter |
When lowering the frame rate, Tachyon synthesizes the motion blur a camera would have captured at the lower rate. Set motion_blur to no to keep the source sharpness instead.
23.976p film to 25i (PSF) with protected graphics
{
"output": "apple_prores",
"type": "apch",
"framerate": "25",
"framerate_method": "tachyon",
"deinterlacing": "no",
"force_interlaced": "tff",
"tachyon_parameters": {
"allow_2_2_insertion": "yes",
"overlay_protect": "yes",
"overlay_protect_amount": "low",
"subtitle_detect": "yes"
}
}Telecined 29.97i master to 25p
{
"output": "mp4",
"framerate": "25",
"framerate_method": "tachyon",
"deinterlacing": "no",
"tachyon_parameters": {
"allow_pulldown_removal": "yes"
}
}