0 likes | 17 Views
FLAC audio, which stands for Free Lossless Audio Codec, is a audio compression format that provides a lossless compression for digital audio. FLAC was designed to offer high-quality audio compression while preserving the original audio data without any loss in sound quality. FLAC audio has gained popularity over the years and is now recognized as a reliable and efficient lossless audio compression format. These slides is for speech about low level FLAC audio syntax elements and their viewing and analyzing with Virinext Bitstream Analyzer.
E N D
FLAC audio: high level bitstream overview with Virinext Bitstream Analyzer
FLAC audio overview • FLAC audio (Free Lossless Audio Codec) is a lossless audio compression format; • Was developed by Josh Coalson in 2000; • Main advantage of FLAC is high compression ratios without losing any details of original audio; • This makes FLAC a good choice for archiving, professional audio production, and high-quality audio playback; • We will use Virinext Bitstream Analyzer for analyzing FLAC files.
High level bitstream overview At the high level FLAC audio is the sequence of few metadata blocks followed by audio frames.
FLAC bitstream: metadata blocks types At the high level FLAC audio is the sequence of few metadata blocks followed by audio frames. There are following types of metadata: • Streaminfo metadata - provides essential stream parameters; • Padding metadata - for the insertion of arbitrary amount of padding; • Application metadata - can store additional data paired with 4-byte identifiers; • Seektable metadata - store seek points; • Vorbis comment metadata - contains human-readable information in UTF-8 format; • Picture metadata - stores image data associated with the audio content.
FLAC bitstream: metadata blocks types Screenshot provides METADATA_BLOCK_STREAMINFO from Virinext Bitstream Analyzer.
FLAC bitstream: audio frames • After the final metadata block, one or more frames are present; • Each frame encompasses a frame header, one or more sub-frames, padding zero bits for achieving byte-alignment, and a frame footer; • The number of sub-frames in each frame corresponds to the number of audio channels. Screenshot of FRAME_HEADER syntax element from Virinext Bitstream Analyzer:
FLAC bitstream: audio frames • The frame starts with a 15-bit frame sync code of 0b111111111111100(0x7FFC); • Following the sync code is the blocking strategy bit, which remains unchanged throughout the audio stream; • The sample_rate field indicates the sample rate of the audio within the current frame; • The channel_assignment, also known as the channels bits code, determines both the number of audio channels and the channel configuration, defining the channel mapping for multi-channel audio; • The subsequent field, sample_size, specifies the bit depth of the audio. Lastly, the coded_frame_number field denotes the frame number; • Following the frame header, sub-frames are present, which contain encoded audio data.
FLAC audio analysis with Virinext Bitstream Analyzer • FLAC has gained popularity over the years and is now recognized as a reliable and efficient lossless audio compression format. • It has particularly captured the attention of music enthusiasts and professionals in the recording and music production industry. • Virinext Bitstream Analyzer offers analysis for various encoding standards, including FLAC audio • Virinext Bitstream Analyzer is capable for for both in-depth analysis or a high-level overview of coded audio and video bitstreams
FLAC audio analysis with Virinext Bitstream Analyzer Screenshot of PCM-analysis and GOP widgets of FLAC audio file opened in Virinext Bitstream Analyzer:
References • Virinext Bitsteam Analyzer - GUI tool for displaying and analyzing coded video and audio streams • FLAC audio: high level bitstream overview • FLAC audio on xiph.org • FLAC Format Specification