Sometimes, you may find that your exported video looks less saturated / washed out / faded / dull compared to how it looks in the editor. Why is that?
The rendering process of a .mp4 video created on FlexClip involves piping a sequence of virtual framebuffers, containing the information of each frame of the composition, to the FFmpeg encoder, which sequentially stitches them into a video with standard H.264 encoding. A virtual framebuffer is just another fancy term for — the array of RGB values corresponding to the pixels of the frame of the video.
The most common color representation is the RGB color space, which uses red, green, and blue colors to combine other colors. YUV is similar to RGB and is also a color encoding method. Among them, Y represents Luminance, U and V represent Chroma.
RGB color spaces are mainly used on digital platforms and are modeled on coloured light. The principal theory is that the three colors, red green and blue blend together to create lots of different colors. In a nutshell, the RGB model presents color as we see it with the naked eye.
RGB is a device-dependent color model: different devices detect or reproduce a given RGB value differently, since the color elements (such as phosphors or dyes) and their response to the individual red, green, and blue levels vary from manufacturer to manufacturer, or even in the same device over time. Thus an RGB value does not define the same color across devices without some kind of color management.
Y’UV, also written YUV, is the color model found in the PAL analogue color TV standard (excluding PAL-N). The YUV color space is what is primarily used on an analog television. Like all color spaces, YUV is just an abbreviated term for ‘luma’, ‘red projection’ and ‘blue projection’. Essentially, a YUV system is a mathematical encoding system like any other, but incorporates both brightness and color.
Human eyes are more sensitive to brightness information and relatively insensitive to color information. This separation characteristic of the YUV color space allows more brightness information to be retained and part of the chrominance information to be discarded during image compression, thereby achieving a higher compression ratio with less impact on visual quality.
Although YUV is not commonly heard of, due to its excellent compression characteristics, it is currently widely used in various image-related technologies:
1). Television broadcasting: YUV is a common color coding method in analog and digital television broadcasting. The Y channel is used for black and white signals, while the U and V channels are used for color information.
2). Video processing: Many video encoding standards, such as MPEG and H.264, use the YUV format.
3). Video conferencing and streaming: YUV format is used to compress videos to reduce bandwidth requirements.
4). Image and video editing: YUV format is also often used for color correction and special effects processing.
5). Machine learning and artificial intelligence: YUV format is used for preprocessing of images and videos to improve the performance of algorithms.
We believe that you have also discovered that YUV is more practical in the video field. So, in the exporting conversion process, we use YUV.
You can translate RGB to YUV and vice versa, as long as you identify the correct conversion formula. In different color spaces, colors represent individual numbers or codes, so to convert these colors to another space requires the user to correctly identify corresponding formulas on each space.
RGB can be converted into YUV representation through simple matrix operations.
However, during this conversion process, obvious or subtle color variations inevitably occur, which remain unsolvable on a technical level currently.
As science and technology develop, we will continue to seek measures to solve this problem or minimize the impact.