- Notifications
You must be signed in to change notification settings - Fork9
⚡ SuperFast codecs for fre:ac
License
enzo1982/superfast
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Attention:SuperFast codecs have been integrated into mainline fre:ac. This repository is kept here for reference only, but is no longer updated. Please refer to thefre:ac Component Architecture project for an up to date version of this code.
This repository provides multi-threaded MP3, AAC, Opus and Speex codec drivers for use with thefre:ac audio converter. The components use multiple instances of the respective codecs in parallel to provide faster processing on systems with multiple CPU cores.
The idea to use multiple codec instances to speed-up audio encoding goes back to 2006 when theLAME MT project tried to build a multi-threaded MP3 encoder. This project picks up the original idea behind LAME MT and takes it to AAC, Opus and Speex encoding in addition to MP3.
To achieve a speed-up, the audio stream is divided into overlapping chunks of audio frames. The chunks are then given to the codec instances in a round-robin manner. Finally, encoded packets are taken from the codec instances and written to the output file in the correct order.
For technical details on how this is implemented, please refer tothis blog post orthe PDF. Additional details on the MP3 implementation can be found inthis blog post.
Download an experimental fre:ac build with multi-threaded Opus, FAAC*, FDK-AAC, Core Audio and Speex converters:
- Windows:x86-64,i686
- macOS:Universal Binary (x86-64, i686 and PPC)
- Linux:x86-64,i686
- FreeBSD:x86-64,i686
* The FAAC encoder is provided as a fallback when neither FDK-AAC nor the Core Audio encoder are available.
Thecomponents
folder contains multi-threaded drivers for the following encoders:
- Core Audio AAC/ALAC (iTunes)
- Fraunhofer FDK AAC Encoder
- Free Advanced Audio Coder (FAAC)
- LAME MP3 Encoder
- Opus
- Speex
Support for additional codecs might be added in the future.
The following packages must be installed in order to compile these components:
- thesmooth Class Library
- theBoCA component framework
When all prerequisites are met, runmake
followed bysudo make install
to compile and install the multi-threaded encoder components.
To actually use the components, please install thefre:ac audio converter.
The official fre:ac homepage:https://www.freac.org/
robert.kausch@freac.org,
Robert Kausch
About
⚡ SuperFast codecs for fre:ac