# Glossary

## Catmull-Rom spline

A Catmull-Rom spline is a type of mathematical curve used in computer graphics and animation to create smooth and continuous paths between a set of control points. The Catmull-Rom spline was developed by Edwin Catmull and Raphael Rom in the 1970s as a way to interpolate smoothly between points in a computer-generated animation.

The Catmull-Rom spline is defined by a set of control points and a set of tension values that determine the shape of the curve. The curve passes through each of the control points, and the tension values control the curvature of the curve between the points. The curve is designed to be smooth and continuous, without any sharp corners or sudden changes in direction.

## HMAC

HMAC stands for "Keyed-Hash Message Authentication Code" and is a type of cryptographic algorithm that is used to verify the authenticity and integrity of a message or data. It is a combination of a hashing algorithm and a secret key.

The HMAC algorithm takes a message and a secret key as input, and then generates a fixed-length message authentication code (MAC) as output. This MAC is then appended to the message and sent to the recipient. The recipient can then use the same secret key and the same hashing algorithm to compute the MAC of the received message and compare it to the MAC that was sent. If the two MACs match, the recipient can be confident that the message has not been tampered with or altered in any way.

HMAC is widely used in a variety of applications, including secure communication protocols such as SSL/TLS, IPsec, and SSH. It is also used to protect data integrity in databases, file systems, and other storage systems. HMAC is considered to be a very strong and secure method of message authentication, as long as the secret key remains confidential and the underlying hashing algorithm is secure.

## Lanczos kernel

The Lanczos kernel, also known as the Lanczos window or sinc-interpolation kernel, is a mathematical function used in signal processing and image processing to perform a type of interpolation called Lanczos resampling. The Lanczos kernel is named after Cornelius Lanczos, a Hungarian mathematician who first introduced the kernel in 1956.

The Lanczos kernel is a type of windowed sinc function, which means that it is a weighted combination of sinusoids with different frequencies. The kernel is defined by a parameter called the "order", which determines the number of lobes in the sinc function. The higher the order, the more lobes the sinc function has, and the more accurate the interpolation becomes.

The Lanczos kernel is used in image processing to resample images, which involves changing the size or resolution of an image. Lanczos resampling is a type of interpolation that preserves sharp edges and details in an image, while avoiding the blurring and aliasing artifacts that can occur with other types of interpolation, such as nearest neighbor or bilinear interpolation.

## Mitchell-Netravali spline

The Mitchell-Netravali spline is a type of mathematical curve used in computer graphics and image processing to create smooth and continuous paths between a set of control points. It is a type of bicubic interpolation, which means that it uses a combination of neighboring pixels to generate the curve.

The Mitchell-Netravali spline was developed by Don Mitchell and Radek Netravali in 1988 as an improvement over earlier interpolation methods such as bicubic and bilinear interpolation. It is designed to produce high-quality, smooth curves that are visually pleasing and have a natural look and feel.

The Mitchell-Netravali spline is defined by a set of control points and a set of parameters that determine the shape of the curve. The parameters control the curvature of the curve between the control points and can be adjusted to produce different types of curves, from sharp and angular to smooth and flowing.

## Nearest-neighbor interpolation

Nearest-neighbor interpolation is a simple image resampling technique used in computer graphics and digital image processing. It works by selecting the pixel value of the nearest neighboring pixel to the resampled location.

When an image is resampled, the pixel values of the original image are used to create a new image with a different size or resolution. Nearest-neighbor interpolation is the simplest method of resampling, as it only requires finding the closest pixel to the new location and assigning its value to the resampled pixel.

While nearest-neighbor interpolation is computationally efficient, it can produce low-quality results, especially when the new image size or resolution is significantly different from the original. This is because it can create jagged or blocky artifacts in the image due to the sharp transitions between adjacent pixels.