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
Paprika is a python library that reduces boilerplate. Heavily inspired by Project Lombok.

Image courtesy of Anna Quaglia (Photographer) Paprika Paprika is a python library that reduces boilerplate. It is heavily inspired by Project Lombok.

Rayan Hatout 55 Dec 26, 2022
This repository requires you to solve a problem by writing some basic python code.

Can You Solve a Problem? A beginner friendly repository that requires you to solve familiar problems with python. This could be as simple as implement

Precious Kolawole 11 Nov 30, 2022
script to analyze EQ decay using python

pyq_decay script to analyze EQ decay using python PyQ Decay ver 1.0 A pythonic script to analyze EQ aftershock decay using method of Omori (1894), Mog

1 Nov 04, 2021
Stocks Trading News Alert Using Python

Stocks-Trading-News-Alert-Using-Python Ever Thought of Buying Shares of your Dream Company, When their stock price got down? But It is not possible to

Ayush Verma 3 Jul 29, 2022
News-app - This is a news web app for reading news from different sources and topics

News-app - This is a news web app for reading news from different sources and topics

1 Feb 02, 2022
Block when attacker want to bypass the limit of request

Block when attacker want to bypass the limit of request

iFanpS 1 Dec 01, 2021
A small Blender addon for changing an object's local orientation while in edit mode

A small Blender addon for changing an object's local orientation while in edit mode.

Jonathan Lampel 50 Jan 06, 2023
Машинное обучение на ФКН ВШЭ

Курс "Машинное обучение" на ФКН ВШЭ Конспекты лекций, материалы семинаров и домашние задания (теоретические, практические, соревнования) по курсу "Маш

Evgeny Sokolov 2.2k Jan 04, 2023
Tucan Discord Token Generator - Remastered

TucanGEN-SRC Tucan Discord Token Generator - Remastered Tucan source made better by me. -- idk if it works anymore Includes: hCaptcha Bypass Automatic

Vast 8 Nov 04, 2022
Automate your Microsoft Learn Student Ambassadors event certificate with Python

Microsoft Learn Student Ambassador Certificate Automation This repo simply use a template certificate docx file and generates certificates both docx a

Muhammed Oğuz 24 Aug 24, 2022
A simple calculator made with tkinter.

Simple Calculator A simple calculator made with tkinter. Requirements None, only you need to have windows 😉 ...Enjoy! Installation Clone this reposit

Abhyush 2 Jan 11, 2022
This is the code of Python enthusiasts collection and written.

I am Python's enthusiast, like to collect Python's programs and code.

cnzb 35 Apr 18, 2022
A tool to build reproducible wheels for you Python project or for all of your dependencies

asaman: Amra Saman (আমরা সমান) This is a tool to build reproducible wheels for your Python project or for all of your dependencies. What this means is

Kushal Das 14 Aug 05, 2022
A companion web application to connect stash to deovr

stash-vr-companion This is a companion web application to connect stash to deovr. Stash is a self hosted web application to manage your porn collectio

19 Sep 29, 2022
UF3: a python library for generating ultra-fast interatomic potentials

Ultra-Fast Force Fields (UF3) S. R. Xie, M. Rupp, and R. G. Hennig, "Ultra-fast interpretable machine-learning potentials", preprint arXiv:2110.00624

Ultra-Fast Force Fields 24 Nov 13, 2022
A python script to get your activity

activities A python script to get your activity Not complete Requirements Python (=3.7) Pip (for python = 3.7) Git Pip packages psutil asyncio aioht

StarNumber 3 Nov 07, 2021
An application for automation of the mining function in the game Alienworlds.IO

alienautomation A Python script made to automate the tidious job of mining on AlienWorlds This script: Automatically opens the browser Automatically l

anonieXdev 42 Dec 03, 2022
Template for pre-commit hooks

Pre-commit hook template This repo is a template for a pre-commit hook. Try it out by running: pre-commit try-repo https://github.com/stefsmeets/pre-c

Stef Smeets 1 Dec 09, 2021
Pymon is like nodemon but it is for python,

Pymon is like nodemon but it is for python,

Swaraj Puppalwar 2 Jun 11, 2022
Hospitality app for ERPNext to manage hotels & restaurants.

Hospitality ERPNext Hospitality module is designed to handle workflows for Hotels and Restaurants. Manage Restaurants The Restaurant module in ERPNext

Frappe 19 Dec 26, 2022