Collection of functions for working with interlaced content in VapourSynth.

Overview

vsfieldkit

Collection of functions for working with interlaced content in VapourSynth. It does not have any hard dependencies outside of VapourSynth.

Included functions:
vsfieldkit.assume_bff(clip)
vsfieldkit.assume_progressive(clip)
vsfieldkit.assume_tff(clip)
vsfieldkit.double(clip)
vsfieldkit.group_by_combed(clip)
vsfieldkit.group_by_field_order(clip)
vsfieldkit.scan_interlaced(clip)

See the documentation for more information.

Comments
  • Allow EdgeFixer plugin instead of ContinuityFixer

    Allow EdgeFixer plugin instead of ContinuityFixer

    Currently there's no release of ContinuityFixer plugin that works with vsfieldkit. Also, according to the author, EdgeFixer should be used instead: https://github.com/MonoS/VS-ContinuityFixer/issues/2

    enhancement plugins 
    opened by tvasenin 3
  • fill_analog_frame_ends updates

    fill_analog_frame_ends updates

    • Allow overriding the pre-fill mode and gives better error messaging when the fillborders plugin is missing the requested mode. The default mode is now "fillmargins" instead of "fixborders" in order to work with the release version of fillborders.
    • Work with progressive clips cropped by factors smaller than interlaced subsampling.
    • More compatible with code autocompletion via removal of decorators.

    Fixes JustinTArthur/vsfieldkit#4.

    opened by JustinTArthur 0
  • Allow brightening of newly scanned lines in scan_interlaced

    Allow brightening of newly scanned lines in scan_interlaced

    Just as we support decaying old lines to a decay base with decay_factor, we could also allow brightening new lines. Borrowing from audio engineering, calling itattack_factor would compliment the existing decay_factor.

    Based on a suggestion by @Tefad.

    enhancement scan_interlaced 
    opened by JustinTArthur 0
  • fill_analog_frame_ends: mod2 field height required on pre-cropped progressive material.

    fill_analog_frame_ends: mod2 field height required on pre-cropped progressive material.

    In case fill_analog_frame_ends encounters interlaced frames, it always attempts field separation. This breaks when the function is fed a progressive clip that's been cropped to something other than mod2 half-height. Ideally, fill_analog_frame_ends is applied before crops, but we can't guarantee users won't try.

    bug fill_analog_frame_ends 
    opened by JustinTArthur 0
  • Add channel separation repair filter using the BBC PAL Transform

    Add channel separation repair filter using the BBC PAL Transform

    For video that's been transmitted as a PAL composite signal (PAL CVBS or PAL terrestrial broadcast), the compositing of Yʹ, U, and V signals causes crosstalk, projected as rainbowing and dot crawl artifacts in the decoded pictures.

    The BBC Transform PAL Decoder originally conceived by @jim-easterbrook has been celebrated in its ability to better reconstruct the original separate Yʹ, U, and V signals from the composite signal prior to decoding to light/color samples. There's even evidence it can help with NTSC composite video artifacts after reinterpreting the NTSC video as PAL. I'd love to see this concept realized as a VapourSynth filter so it can be used alongside fill_analog_frame_ends and upstream of TFM/VFM or QTGMC.

    To perform this repair in transform space within a VapourSynth filter, we'd want to first construct a pseudo-analog PAL CVBS signal using something like pulse code modulation of 4-times-subcarrier-frequency, run the PAL Transform algorithm on the PCM data, then re-digitize the signal as light/color samples before finally resampling the original clip's format characteristics.

    The open source ld-decode project has implementations of conversions between motion RGB and PAL CVBS PCM data. The open source pyctools-pal project has a Python and Cython implementation of the BBC PAL Transform for PAL CVBS PCM. However, both @atsampson's PAL CVBS conversion code and @jim-easterbrook's PAL transform code in these projects are only licensed to the public under the restrictive GNU Public License. A note for myself and anyone looking to add this to vsfieldkit: please avoid looking at the ld-decode/tools/ld-chroma-decoder or pyctools-pal/src/pyctools/components/pal source directories when working on this task. vsfieldkit is currently licensed to the public under the less restrictive MIT License.

    My first try at this in vsfieldkit would be to open a subprocess to installed ld-chroma-encoder and ld-chroma-decoder executables if the user has installed them. The function would convert to/from the ld-* toolchain native RGB format using typical zimg/core.resize resampling kernels. This could potentially avoid licensing issues, but is likely to be inefficient.

    A C, Rust, or even Python implementation of the CVBS conversion and PAL transform separation for VapourSynth could potentially be done in a separate GPL-licensed project using code or deriving code from ld-decode and/or pyctools-pal.

    enhancement repair 
    opened by JustinTArthur 0
Releases(v1.1.0)
  • v1.1.0(Nov 28, 2022)

    Contains updates to two existing functions.

    vsfieldkit.fill_analog_frame_ends

    • Allows overriding the pre-fill mode and gives better error messaging when the fillborders plugin is missing the requested mode. The default mode is now "fillmargins" instead of "fixborders" in order to work with the release version of fillborders.
    • Works with progressive clips cropped by factors smaller than interlaced subsampling.
    • More compatible with code autocompletion via removal of decorators.

    vsfieldkit.scan_interlaced

    • Can brighten newly-scanned fields via new attack_factor argument.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.2(May 31, 2022)

  • v1.0.1(May 12, 2022)

    • Adds vsfieldkit.fill_analog_frame_ends for cleaning up half-black lines at the edges of analog frames.
    • vsfieldkit.bob now shifts to account for relative field position by default. Is deprecated in VapourSynth R58+

    1.0.0 was yanked to immediately fix a vsfieldkit.fill_analog_frame_ends bug.

    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(Apr 17, 2022)

    • New functions for re-interpreting progressive frames encoded with interlaced sub-sampled chroma: vsfieldkit.resample_as_progressive and vsfieldkit.upsample_as_progressive.
    • Adds phosphor decay simulation to vsfieldkit.scan_interlaced
    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Mar 2, 2022)

  • v0.1.0(Feb 13, 2022)

Owner
Justin Turner Arthur
Justin Turner Arthur
Python: Wrangled and unpivoted gaming datasets. Tableau: created dashboards - Market Beacon and Player’s Shopping Guide.

Created two information products for GameStop. Using Python, wrangled and unpivoted datasets, and created Tableau dashboards.

Zinaida Dvoskina 2 Jan 29, 2022
Simple calculator made in python

calculator Uma alculadora simples feita em python CMD, PowerShell, Bash ✔️ Início 💻 apt-get update apt-get upgrade -y apt-get install python git git

Spyware 8 Dec 28, 2021
Python solutions to Codeforces problems

CodeForces This repository is dedicated to my Python solutions for CodeForces problems. Feel free to copy, contribute and/or comment. If you find any

Shukur Sabzaliev 15 Dec 20, 2022
Python script to combine the statistical results of a TOPAS simulation that was split up into multiple batches.

topas-merge-simulations Python script to combine the statistical results of a TOPAS simulation that was split up into multiple batches At the top of t

Sebastian Schäfer 1 Aug 16, 2022
Explore-bikeshare-data - GitHub project as part of the Programming for Data Science with Python Nanodegree from Udacity

Date created February 10, 2022 Project Title Explore US Bikeshare Data Descripti

Thárcyla 1 Feb 14, 2022
Student Management System Built With Python

Student-Management-System Group Members 19BCE183 - Patel Sarthak 19BCE195 - Patel Jinil 19BCE220 - Rana Yash Project Description In our project Studen

Sarthak Patel 6 Oct 20, 2022
Quanser Labs Robotic Arm With Python

Quanser-Labs-Robotic-Arm As a team, we programmed a Robotic-Arm in Python on the

1 Jul 11, 2022
These are my solutions to Advent of Code problems.

Advent of Code These are my solutions to Advent of Code problems. If you want to join my leaderboard, the code is 540750-9589f56d. When I solve for sp

Sumner Evans 5 Dec 19, 2022
Python3 Interface to numa Linux library

py-libnuma is python3 interface to numa Linux library so that you can set task affinity and memory affinity in python level for your process which can help you to improve your code's performence.

Dalong 13 Nov 10, 2022
Scripts to convert the Ted-MDB corpora into the formats for DISRPT shared task and the converted corpora

Scripts to convert the Ted-MDB corpora into the formats for DISRPT shared task and the converted corpora.

1 Feb 08, 2022
El_Binario - A converter for Binary, Decimal, Hexadecimal and Octal numbers

El_Binario El_Binario es un conversor de números Binarios, Decimales, Hexadecima

2 Jan 28, 2022
Brython (Browser Python) is an implementation of Python 3 running in the browser

brython Brython (Browser Python) is an implementation of Python 3 running in the browser, with an interface to the DOM elements and events. Here is a

5.9k Jan 02, 2023
Web app for keeping track of buildings in danger of collapsing in the event of an earthquake

Bulina Roșie 🇷🇴 Un cutremur în București nu este o situație ipotetică. Este o certitudine că acest lucru se va întâmpla. În acest context, la mai bi

Code for Romania 27 Nov 29, 2022
Additional useful operations for Python

Pyteal Extensions Additional useful operations for Python Available Operations MulDiv64: calculate m1*m2/d with no overflow on multiplication (TEAL 3+

Ulam Labs 11 Dec 14, 2022
Block the annoying Token Grabbers on your discord

General We have seen that in the last time many discord servers are infected by fake discord nitro links we want to put an end to this and have develo

BadTiger Network 2 Jul 16, 2022
Convex Optimisation MVA course - Assignment

Convex Optimisation MVA course - Assignment This repository contains the coding files of the third assignment in the MVA Convex Optimisation course. U

1 Nov 27, 2021
Decentralized intelligent voting application.

DiVA Decentralized intelligent voting application. Hack the North 2021. Inspiration Following the previous US election, many voters were fearful that

Ali Shariatmadari 4 Jun 05, 2022
Lags valorant servers by rapidly picking up and throwing shorties.

Lags valorant servers by rapidly picking up and throwing shorties.

Eric Still 9 Dec 30, 2021
An After Effects render queue for ShotGrid Toolkit.

AEQueue An After Effects render queue for ShotGrid Toolkit. Features Render multiple comps to locations defined by templates in your Toolkit config. C

Brand New School 5 Nov 20, 2022
A simple and usefull python calculator.

simplepy-calculator Your simple and fresh calculator. Getting Started Install python3 from the oficial python website or via terminal. Clone this repo

Felix Sanchez 1 Jan 18, 2022