Skip to content

Instantly share code, notes, and snippets.

View jainxy's full-sized avatar

Vishal Jain jainxy

  • Bengaluru, India
View GitHub Profile
@jainxy
jainxy / YUV_formats.md
Created July 13, 2023 11:11 — forked from Jim-Bar/YUV_formats.md
About YUV formats

About YUV formats

First of all: YUV pixel formats and Recommended 8-Bit YUV Formats for Video Rendering. Chromium's source code contains good documentation about those formats too: chromium/src/media/base/video_types.h and chromium/src/media/base/video_frame.cc (search for RequiresEvenSizeAllocation(), NumPlanes() and those kinds of functions).

YUV?

You can think of an image as a superposition of several planes (or layers in a more natural language). YUV formats have three planes: Y, U, and V.

Y is the luma plane, and can be seen as the image as grayscale. U and V are reffered to as the chroma planes, which are basically the colours. All the YUV formats have these three planes, and differ by the different orderings of them.

@jainxy
jainxy / ffmpeg.md
Created August 22, 2022 19:23 — forked from steven2358/ffmpeg.md
FFmpeg cheat sheet
@jainxy
jainxy / git-bundles.md
Created February 23, 2021 11:04 — forked from PHPirates/git-bundles.md
How to use git bundles

Let machine M be the Main machine with the repo, and A the Auxiliary machine which wants to help out.

First time setup

  1. Machine M creates bundle with complete repo:
git bundle create repo.bundle HEAD master
  1. M sends repo.bundle to A.
  2. A clones repo from bundle:
@jainxy
jainxy / video_to_frames.py
Created September 19, 2020 08:19 — forked from HaydenFaulkner/video_to_frames.py
Fast frame extraction from videos using Python and OpenCV
from concurrent.futures import ProcessPoolExecutor, as_completed
import cv2
import multiprocessing
import os
import sys
def print_progress(iteration, total, prefix='', suffix='', decimals=3, bar_length=100):
"""
Call in a loop to create standard out progress bar
@jainxy
jainxy / video_to_frames_decord.py
Created September 19, 2020 08:17 — forked from HaydenFaulkner/video_to_frames_decord.py
decord version of video_to_frame.py
import cv2 # still used to save images out
import os
import numpy as np
from decord import VideoReader
from decord import cpu, gpu
def extract_frames(video_path, frames_dir, overwrite=False, start=-1, end=-1, every=1):
"""
Extract frames from a video using decord's VideoReader
@jainxy
jainxy / understanding-word-vectors.ipynb
Created June 7, 2020 17:44 — forked from aparrish/understanding-word-vectors.ipynb
Understanding word vectors: A tutorial for "Reading and Writing Electronic Text," a class I teach at ITP. (Python 2.7) Code examples released under CC0 https://creativecommons.org/choose/zero/, other text released under CC BY 4.0 https://creativecommons.org/licenses/by/4.0/
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@jainxy
jainxy / min-char-rnn.py
Created February 14, 2020 11:35 — forked from karpathy/min-char-rnn.py
Minimal character-level language model with a Vanilla Recurrent Neural Network, in Python/numpy
"""
Minimal character-level Vanilla RNN model. Written by Andrej Karpathy (@karpathy)
BSD License
"""
import numpy as np
# data I/O
data = open('input.txt', 'r').read() # should be simple plain text file
chars = list(set(data))
data_size, vocab_size = len(data), len(chars)