Skip to content

Instantly share code, notes, and snippets.

#!/usr/bin/env python3
import os
import sys
import glob
import subprocess
import argparse
class SubsetFont:
@chikuzen
chikuzen / lazyload.js
Last active June 24, 2018 15:02
Lazy load
/*
IntersectionObserver polyfill
Copyright 2016 Google Inc. All Rights Reserved.
Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.
https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
*/
!function(d,_){"use strict";if("IntersectionObserver"in d&&"IntersectionObserverEntry"in d&&"intersectionRatio"in d.IntersectionObserverEntry.prototype)"isIntersecting"in d.IntersectionObserverEntry.prototype||Object.defineProperty(d.IntersectionObserverEntry.prototype,"isIntersecting",{get:function(){return 0<this.intersectionRatio}});else{var e=[];t.prototype.THROTTLE_TIMEOUT=100,t.prototype.POLL_INTERVAL=null,t.prototype.USE_MUTATION_OBSERVER=!0,t.prototype.observe=function(e){if(!this._observationTargets.some(function(t){return t.element==e})){if(!e||1!=e.nodeType)throw new Error("target must be an Element");this._registerInstance(),this._observationTargets.push({element:e,entry:null}),this._monitorIntersections(),this._checkForIntersections()}},t.prototype.unobserve=function(e){this._ob
#include <cstdint>
#include <algorithm>
#include <iostream>
#include <tmmintrin.h>
// pattern0: (R + G + B) / 3
// pattern1: max(R, G, B)
// pattern2: (R + 2*G + B) / 4
// pattern3: R*0.299 + G*0.587 + B*0.114
#include <algorithm>
#include <tmmintrin.h>
#define WIN32_LEAN_AND_MEAN
#define NOMINMAX
#include <windows.h>
#include <avisynth.h>
typedef IScriptEnvironment ise_t;
@chikuzen
chikuzen / transpose_8x8_ps_avx.cpp
Last active July 31, 2016 08:11
why there is no_MM_TRANSPOSE_8_PS macro ?
#include <immintrin.h>
void transpose_8x8_avx(const float* srcp, float* dstp) noexcept
{
__m256 a = _mm256_load_ps(srcp + 0); // a0 a1 a2 a3 a4 a5 a6 a7
__m256 b = _mm256_load_ps(srcp + 8); // b0 b1 b2 b3 b4 b5 b6 b7
__m256 c = _mm256_load_ps(srcp + 16); // c0 c1 c2 c3 c4 c5 c6 c7
__m256 d = _mm256_load_ps(srcp + 24); // d0 d1 d2 d3 d4 d5 d6 d7
__m256 e = _mm256_load_ps(srcp + 32); // e0 e1 e2 e3 e4 e5 e6 e7
__m256 f = _mm256_load_ps(srcp + 40); // f0 f1 f2 f3 f4 f5 f6 f7
#define LOGO "RemoveGrain 1.0\n"
// An Avisynth plugin for removing grain from progressive video
//
// By Rainer Wittmann <gorw@gmx.de>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
@chikuzen
chikuzen / transpose.cpp
Last active December 21, 2015 16:09
Transpose for avisynth2.6x
#include <stdint.h>
#include <malloc.h>
#include <windows.h>
#include <emmintrin.h>
#include "avisynth.h"
static const AVS_Linkage* AVS_linkage = 0;
static __forceinline __m128i mm_movehl_si128(const __m128i& xmm0)
{
@chikuzen
chikuzen / histeresis.cpp
Last active December 20, 2015 15:28
Hysteresis mask for avisynth2.6
#include <windows.h>
#include "avisynth.h"
static const AVS_Linkage* AVS_linkage = 0;
class Footprint {
int index;
int width;
int height;
BYTE* map;
@chikuzen
chikuzen / finesharp.py
Created July 29, 2013 11:17
finesharp for vapoursynth r19 or later
#finesharp.py - finesharp module for VapourSynth
#original author : Didee (http://forum.doom9.org/showthread.php?t=166082)
# requirement: RemoveGrain.dll, Repair.dll
# VapourSynth r19 or later
import vapoursynth as vs
class InvalidArgument(Exception):
def __init__(self, value):
@chikuzen
chikuzen / easyvfr.py
Last active July 28, 2020 18:26
port of EasyVFR for VapourSynth
#!/usr/bin/env python3
'''port of EasyVFR for VapourSynth'''
__author__ = 'Chikuzen <chikuzen.mo at gmail dot com>'
__version__ = '0.2.5'
import vapoursynth as vs