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
Script to automate the scanning of "old printed photos"

photoscanner Script to automate the scanning of "old printed photos" Just run: ./scan_photos.py The script is prepared to be run by fades. Otherw

Facundo Batista 2 Jan 21, 2022
An implementation of an interpreter for the Brainfuck esoteric language in Python

Brainfuck Interpreter in Python An implementation of an interpreter for the Brainfuck esoteric language in Python. 🧠 The Brainfuck Language Created i

Carlos Santos 0 Feb 01, 2022
Scitizen - Help scientific research for the benefit of mankind and humanity 🔬

Scitizen - Help scientific research for the benefit of mankind and humanity 🔬 Scitizen has been built from the ground up to give everyone the possibi

Pierre CORBEL 21 Mar 08, 2022
A lightweight solution for local Particle development.

neopo A lightweight solution for local Particle development. Features Builds Particle projects locally without any overhead. Compatible with Particle

Nathan Robinson 19 Jan 01, 2023
An async API wrapper for Dress To Impress written in Python.

dti.py An async API wrapper for Dress To Impress written in Python. Some notes: For the time being, there are no front-facing docs for this beyond doc

Steve C 1 Dec 14, 2022
Practice10 - Operasi String With Python

Operasi String MY SOSIAL MEDIA : Apa itu Python String ? String adalah urutan si

Maulana Reza Badrudin 1 Jan 05, 2022
🏃 Python3 Solutions of All Problems in GKS 2022 (In Progress)

GoogleKickStart 2022 Python3 solutions of Google Kick Start 2022. Solution begins with * means it will get TLE in the largest data set. Total computat

kamyu 38 Dec 29, 2022
Py4J enables Python programs to dynamically access arbitrary Java objects

Py4J Py4J enables Python programs running in a Python interpreter to dynamically access Java objects in a Java Virtual Machine. Methods are called as

Barthelemy Dagenais 1k Jan 02, 2023
Stock Monitoring

Stock Monitoring Description It is a stock monitoring script. This repository is still under developing. Getting Started Prerequisites & Installing pi

Sission 1 Feb 03, 2022
Advanced Variable Manager {AVM} [0.8.0]

Advanced Variable Manager {AVM} [0.8.0] By Grosse pastèque#6705 WARNING : This modules need some typing modifications ! If you try to run it without t

Big watermelon 1 Dec 11, 2021
Arabic to Roman Converter in Python

Arabic-to-Roman-Converter Made together with https://github.com/goltaraya . Arabic to Roman Converter in Python. -Instructions: 1 - Make sure you have

Pedro Lucas Tomazeti Fernandes 6 Oct 28, 2021
Odoo. Open Source Apps To Grow Your Business.

Odoo Odoo is a suite of web based open source business apps. The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Mana

Odoo 27.6k Jan 09, 2023
PatZilla is a modular patent information research platform and data integration toolkit with a modern user interface and access to multiple data sources.

PatZilla is a modular patent information research platform and data integration toolkit with a modern user interface and access to multiple data sources.

IP Tools 68 Dec 14, 2022
The earliest beta version of pytgcalls on Linux x86_64 and ARM64! Use in production at your own risk!

Public beta test. Use in production at your own risk! tgcalls - a python binding for tgcalls (c++ lib by Telegram); pytgcalls - library connecting pyt

Il'ya 21 Jan 13, 2022
《practical python programming》的中文翻译

欢迎光临 大约 25 年前,当我第一次学习 Python 时,发现 Python 竟然可以被高效地应用到各种混乱的工作项目上,我立即被震惊了。15 年前,我自己也将这种乐趣教授给别人。教学的结果就是本课程——一门实用的学习 Python的课程。

编程人 125 Dec 17, 2022
KUIZ is a web application quiz where you can create/take a quiz for learning and sharing knowledge from various subjects, questions and answers.

KUIZ KUIZ is a web application quiz where you can create/take a quiz for learning and sharing knowledge from various subjects, questions and answers.

Thanatibordee Sihaboonthong 3 Sep 12, 2022
A passive recon suite designed for fetching the information about web application

FREAK Suite designed for passive recon Usage: python3 setup.py python3 freak.py warning This tool will throw error if you doesn't provide valid api ke

toxic v3nom 7 Feb 17, 2022
This is a working model for which I have used python.

Jarvis_voiceAssistance This is a working model for which I have used python. This model can: 1)Play a video or song on youtube. 2)Tell us time. 3)Tell

Hardik Jain 1 Jan 30, 2022
Functions to analyze Cell-ID single-cell cytometry data using python language.

PyCellID (building...) Functions to analyze Cell-ID single-cell cytometry data using python language. Dependecies for this project. attrs(=21.1.0) fo

0 Dec 22, 2021
A simple hash system.

PBH-Hash-System A simple hash system. Usage You could use it like this: from pbh import pbh print(pbh("Hey", True)) Output: 2feae2471698cfcdcbd6b98ca

Karim 3 Mar 24, 2022