JND-based Quantization to Get Visually Lossless Coding

The Just Noticeable Distortion (JND) model is a curve which is determined by means of subjective experiments, where random noise is added to a flat image  (i.e. all pixels are at a given intensity value ‘v’). The noise is gradually added and for each step in noise intensity level observers are asked whether the noise […]

Free Lossless Image Format (FLIF)

FLIF is a patent-free open source image encoder which outperforms WebP, JPEG2000, JPEG-XR, BPG image codecs. FLIF’s homepage with results of comparison is here; FLIF’s codes are here. To compile FLIF codec in Windows the following operation are required: Get FLIF reference codes:                git   clone   https://github.com/FLIF-hub/FLIF.git   Open the command prompt and go to […]

Frame Rate Conversion

Use Case:  Frame rate conversion from 60 fps to 59 fps A black-boxed encoder produces video with the fixed frame rate 60 fps. However a decoder at client’s side can not cope with the frame rate 60 fps, but it can keep real-time decoding of video streams with the frame rate 59 fps or lower.  […]

Block Flatness

Block flatness score (BF), which is specified as the ratio of absolute magnitude of DC to the sum of absolute values of transform coefficients, is sometimes used in CU partition decision methods, e.g. refer to the paper “Fast Intra CU Size Decision for HEVC Based on Machine Learning“, by Meng Wang, et al, 2018. To […]

JPEG-XS – Visually Lossless Lightweight Image Codec

Content Getting and Compilation of JPEG-XS Codec (in Windows) Running JPEG-XS Reference Codec How to Play JPEG-XS file     JPEG XS is an International Standard from the JPEG Committee, formally known as ISO/IEC SC29 WG1. It provides visually lossless, lightweight and low-latency image compression, compression ratios of JPEG-XS tend to around 10:1.  JPEG-XS files […]

Hoeffding’s Inequality

If we pick 20 random numbers from the [0..1] by means of a random number generator with any distribution, e.g. with python numpy.random.random(20), then the probability that the average of the sample (20 numbers) would deviate by more than 1/4 from the theoretical mean equal is less 0.16. In our case t=1/4, n=20, if we […]

ffmpeg Video Lossless Codecs

Content FFV1 HuffYUV           x264 Codec with zero CRF     ffmpeg-tool supports several video lossless codecs (e.g. for medical imaging applications), implemented from de-facto standards, one of such codecs is FFV1. Note: the full version of ffmpeg binary is here. According to Lossless Video Codec comparisons, most of lossless codecs are too complex, most […]

MPEG-4 Video Encoding with ffmpeg

You are recommended to take full version of ffmpeg build (ffmpeg-git-full.7z) from here. To encode MPEG-4 Simple profile use ‘-c:v mpeg4‘: Example [bitrate 2Mbps]: ffmpeg -video_size 1920×1080 -i crowdrun1080p50fps.yuv    -c:v mpeg4    -b:v 2M -y crowd_mpeg4.avi Video: mpeg4 (Simple Profile) (FMP4 / 0x34504D46), yuv420p, 1920×1080 [SAR 1:1 DAR 16:9], 4297 kb/s To encode with the […]

Simple Wavelet Coder

Python has a particular package ‘PyWavelets‘ for wavelet coding. To install this package merely type:  ‘pip install pywavelets‘ This package contains dozens methods of wavelet coding, denoising with wavelets (for details pls. see official reference ) Simple Python script  WaveletCoder.py to encode still images (regardless to the input format, any format is converted to grayscale, […]

Reference List Reordering in H.264/AVC

Introduction The purpose of the list reordering feature of H264/AVC is to show how reference frame reordering impacts on  coding efficiency. This document describes in details how to make the reference list reordering in order to achieve better coding efficiency. The H.264/AVC supports special reference list reordering commands (signaled in the slice header) and which […]