schema_version: 0.1
type: filter
identifier: deshake
title: Vid.Stab Deshake
copyright: Jakub Ksiezniak
creator: Georg Martius
version: 1
license: GPLv2
language: en
url: http://public.hronopik.de/vid.stab/
tags:
  - Video
description: Stabilize Video (for wiggly/rolling video)
notes: >
    Deshakes a video clip by extracting relative transformations
    of subsequent frames and transforms the high-frequency away.
    This is a single pass version of the vidstab filter.

parameters:
  - identifier: shakiness
    title: Shakiness
    type: integer
    description: How shaky the video is.
    readonly: no
    required: no
    minimum: 1
    maximum: 10
    default: 4
    mutable: yes
    widget: spinner

  - identifier: accuracy
    title: Accuracy
    type: integer
    description: The accuracy of shakiness detection.
    readonly: no
    required: no
    minimum: 1
    maximum: 15
    default: 4
    mutable: yes
    widget: spinner

  - identifier: stepsize
    title: Stepsize
    type: integer
    description: The step size of the search process.
    readonly: no
    required: no
    minimum: 0
    maximum: 100
    default: 6
    mutable: yes
    widget: spinner

  - identifier: mincontrast
    title: Minimum Contrast
    type: float
    description: Below this contrast, a field is discarded.
    readonly: no
    required: no
    minimum: 0
    maximum: 1
    default: 0.3
    mutable: yes
    widget: spinner

  - identifier: smoothing
    title: Smoothing
    type: integer
    description: Number of frames for lowpass filtering (2N + 1 frames)
    readonly: no
    required: no
    minimum: 0
    maximum: 100
    default: 15
    mutable: yes
    widget: spinner

  - identifier: maxshift
    title: Maxshift
    type: integer
    description: Maximum number of pixels to transform the image. -1 = no limit
    unit: pixels
    readonly: no
    required: no
    minimum: -1
    maximum: 1000
    default: -1
    mutable: yes
    widget: spinner

  - identifier: maxangle
    title: Maxangle
    type: float
    description: Maximum angle to rotate, -1 = no limit
    unit: radians
    readonly: no
    required: no
    minimum: -1
    maximum: 3.142
    default: -1
    mutable: yes
    widget: spinner

  - identifier: crop
    title: Crop
    type: integer
    description: 0 = keep border, 1 = black background
    readonly: no
    required: no
    minimum: 0
    maximum: 1
    default: 0
    mutable: yes
    widget: spinner

  - identifier: zoom
    title: Zoom
    type: integer
    description: Additional zoom amount
    unit: percent
    readonly: no
    required: no
    minimum: -500
    maximum: 500
    default: 0
    mutable: yes
    widget: spinner

  - identifier: optzoom
    title: Optimal Zoom
    type: integer
    description: Automatically determine optimal zoom. 1 - static zoom, 2 - adaptive zoom
    readonly: no
    required: no
    minimum: 0
    maximum: 2
    default: 1
    mutable: yes
    widget: spinner

  - identifier: zoomspeed
    title: Optimal Zoom Speed
    type: float
    description: Zoom per frame (used when optzoom = 2)
    unit: percent
    readonly: no
    required: no
    minimum: 0
    maximum: 1
    default: 0.25
    mutable: yes
    widget: spinner
