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
Unofficial package for fetching users information based on National ID Number (Tanzania)

Nida Unofficial package for fetching users information based on National ID Number made by kalebu Installation You can install it directly or using pi

Jordan Kalebu 57 Dec 28, 2022
4Geeks Academy Full-Stack Developer program final project.

Final Project Chavi, Clara y Pablo 4Geeks Academy Full-Stack Developer program final project. Authors Javier Manteca - Coding - chavisam Clara Rojano

1 Feb 05, 2022
A collection of python exercises to help your learning path!

How to use Step 1: run this command git clone https://github.com/TechPenguineer/Python-Exercises.git Step 2: Run this command cd Python-Exercises You

Tech Penguin 5 Aug 05, 2021
「📖」Tool created to extract metadata from a domain

Metafind is an OSINT tool created with the aim of automating the search for metadata of a particular domain from the search engine known as Google.

9 Dec 28, 2022
Find habits that genuinely increase your productivity

BiProductive Description This repository contains the application BiProductive, which analyzes the habits of the person, tests his productivity, and d

Rizvan Iskaliev 43 Jun 11, 2022
A plugin for poetry that allows you to execute scripts defined in your pyproject.toml, just like you can in npm or pipenv

poetry-exec-plugin A plugin for poetry that allows you to execute scripts defined in your pyproject.toml, just like you can in npm or pipenv Installat

38 Jan 06, 2023
Providing a working, flexible, easier and faster installer than the one officially provided by Arch Linux

Purpose The purpose is to bring more people to Arch Linux by providing a working, flexible, easier and faster installer than the one officially provid

André Luís 0 Nov 09, 2022
Runnable Python demo of ArtLine

artline-demo How to run? pip3 install -r requirements.txt python3 app.py How to use? Run the Flask app Open localhost:5000 in browser Select an image(

Jiang Wenjian 134 Jul 29, 2022
A basic animation modding workflow for FFXIV

AnimAssist Provides a quick and easy way to mod animations in FFXIV. You will need: Before anything, the VC++2012 32-bit Redist from here. Havok will

liam 37 Dec 16, 2022
A tool to assist in code raiding in rust

Kodelock a tool to assist in code raiding in rust This tool is designed to be used on a second monitor. This tools will allow you to see a easily read

3 Oct 27, 2022
Lock a program and kills it indefinitely if it is started.

Kill By Lock Lock a program and kills it indefinitely if it is started. How start it? It' simple, you just have to double-click on the python file (.p

1 Jan 12, 2022
The LiberaPay archive module for the SeanPM life archive project.

By: Top README.md Read this article in a different language Sorted by: A-Z Sorting options unavailable ( af Afrikaans Afrikaans | sq Shqiptare Albania

Sean P. Myrick V19.1.7.2 1 Aug 26, 2022
ripgrep recursively searches directories for a regex pattern while respecting your gitignore

ripgrep (rg) ripgrep is a line-oriented search tool that recursively searches the current directory for a regex pattern. By default, ripgrep will resp

Andrew Gallant 35k Dec 31, 2022
March-madness - March Madness results 1985-2021

march-madness Results for all 2,268 NCAA Division I Men's Basketball Tournament games since the modern format was introduced in 1985. Includes years,

Darik Harter 2 Feb 26, 2022
Gerador de dafaces

🎴 DefaceGenerator Obs: esse script foi criado com a intenção de ajudar pessoas iniciantes no hacking que ainda não conseguem criar suas próprias defa

LordShinigami 3 Jan 09, 2022
Convert a .vcf file to 'aa_table.tsv', including depth & alt frequency info

Produce an 'amino acid table' file from a vcf, including depth and alt frequency info.

Dan Fornika 1 Oct 16, 2021
Singularity Containers on Apple M1 (ARM64)

Singularity Containers on Apple M1 (ARM64) This is a repository containing a ready-to-use environment for singularity in arm64 (M1). It has been prepa

Manuel Parra 4 Nov 14, 2022
Here You will Find CodeChef Challenge Solutions

Here You will Find CodeChef Challenge Solutions

kanishk kashyap 1 Sep 03, 2022
A modern python module including many useful features that make discord bot programming extremely easy.

discord-super-utils Documentation Secondary Documentation A modern python module including many useful features that make discord bot programming extr

106 Dec 19, 2022
LeetComp - Background tasks powering the static content at LeetComp

LeetComp Analysing compensations mentioned on the Leetcode forums (https://kuuts

Kumar Utsav 125 Dec 21, 2022