UNPKG

video-upscale

Version:
2 lines (1 loc) 678 B
export default "#version 300 es\nprecision highp float;uniform sampler2D u_image;in vec2 A;out vec4 B;vec4 S(sampler2D F,vec2 G){vec2 H=vec2(textureSize(F,0));vec2 T=1./H;vec2 U=H*G;vec2 V=floor(U-.5)+.5;vec4 W;W.zw=1.-(W.xy=U-V);vec4 X=((1.5672*W-2.6445)*W+0.0837)*W+0.9976;vec4 Y=((-0.7389*W+1.3652)*W-0.6295)*W-0.0004;vec4 Z=X;vec2 a=Z.xy+Z.zw;vec4 b=Y.xyzw*a.yxyx;vec2 c=T.xy*(V+Z.zw/a);vec2 d=T.xy*(V-1.);vec2 e=T.xy*(V+2.);float f=b.x+b.y+b.z+b.w+a.x*a.y;b/=f;return vec4(texture(F,vec2(c.x,d.y)).rgb*b.y+texture(F,vec2(d.x,c.y)).rgb*b.x+texture(F,c.xy).rgb*(a.x*a.y/f)+texture(F,vec2(e.x,c.y)).rgb*b.z+texture(F,vec2(c.x,e.y)).rgb*b.w,1.);}void main(){B=S(u_image,A);}";