Skip to content
This repository has been archived by the owner on Dec 11, 2020. It is now read-only.

Commit

Permalink
Update Readme.md for new release.
Browse files Browse the repository at this point in the history
  • Loading branch information
enzo1982 committed Jul 21, 2018
1 parent a60828a commit fe07c16
Showing 1 changed file with 10 additions and 9 deletions.
19 changes: 10 additions & 9 deletions Readme.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
# SuperFast Codecs
## Multi-threaded Opus, Speex and AAC codec drivers for fre:ac
## Multi-threaded MP3, AAC, Opus and Speex codec drivers for fre:ac

This repository provides multi-threaded Opus, Speex and AAC codec drivers for use with the [_fre:ac audio converter_](https://github.com/enzo1982/freac/). The components use multiple instances of the respective codecs in parallel to provide faster processing on systems with multiple CPU cores.
This repository provides multi-threaded MP3, AAC, Opus and Speex codec drivers for use with the [_fre:ac audio converter_](https://github.com/enzo1982/freac/). The components use multiple instances of the respective codecs in parallel to provide faster processing on systems with multiple CPU cores.

## Technology

The idea to use multiple codec instances to speed-up audio encoding goes back to 2006 when the [LAME MT](http://softlab-pro-web.technion.ac.il/projects/LAME/html/lame.html) project tried to build a multi-threaded MP3 encoder. This project picks up the original idea behind LAME MT and takes it to Opus, Speex and AAC encoding.
The idea to use multiple codec instances to speed-up audio encoding goes back to 2006 when the [LAME MT](http://softlab-pro-web.technion.ac.il/projects/LAME/html/lame.html) 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 to [this blog post](https://freac.org/developer-blog-mainmenu-9/14-freac/257-introducing-superfast-conversions/) or [the PDF](https://github.com/enzo1982/superfast/blob/master/doc/SuperFast%20Codecs.pdf).
For technical details on how this is implemented, please refer to [this blog post](https://freac.org/developer-blog-mainmenu-9/14-freac/257-introducing-superfast-conversions/) or [the PDF](https://github.com/enzo1982/superfast/blob/master/doc/SuperFast%20Codecs.pdf). Additional details on the MP3 implementation can be found in [this blog post](https://freac.org/developer-blog-mainmenu-9/14-freac/287-superfastlame/).

## Download

Download an experimental fre:ac build with multi-threaded Opus, FAAC*, FDK-AAC, Core Audio and Speex converters:
- Windows: [x86-64](https://github.com/enzo1982/superfast/releases/download/v1.0-pre2/freac-1.1-alpha-20180306-superfast-windows-x64.zip), [i686](https://github.com/enzo1982/superfast/releases/download/v1.0-pre2/freac-1.1-alpha-20180306-superfast-windows.zip)
- macOS: [Universal Binary](https://github.com/enzo1982/superfast/releases/download/v1.0-pre2/freac-1.1-alpha-20180306-superfast-macosx.dmg) (x86-64, i686 and PPC)
- Linux: [x86-64](https://github.com/enzo1982/superfast/releases/download/v1.0-pre2/freac-1.1-alpha-20180306-superfast-linux-x64.tar.gz), [i686](https://github.com/enzo1982/superfast/releases/download/v1.0-pre2/freac-1.1-alpha-20180306-superfast-linux.tar.gz)
- FreeBSD: [x86-64](https://github.com/enzo1982/superfast/releases/download/v1.0-pre2/freac-1.1-alpha-20180306-superfast-freebsd-x64.tar.gz), [i686](https://github.com/enzo1982/superfast/releases/download/v1.0-pre2/freac-1.1-alpha-20180306-superfast-freebsd.tar.gz)
- Windows: [x86-64](https://github.com/enzo1982/superfast/releases/download/v1.0-pre3/freac-1.1-alpha-20180716-superfast-windows-x64.zip), [i686](https://github.com/enzo1982/superfast/releases/download/v1.0-pre3/freac-1.1-alpha-20180716-superfast-windows.zip)
- macOS: [Universal Binary](https://github.com/enzo1982/superfast/releases/download/v1.0-pre3/freac-1.1-alpha-20180716-superfast-macosx.dmg) (x86-64, i686 and PPC)
- Linux: [x86-64](https://github.com/enzo1982/superfast/releases/download/v1.0-pre3/freac-1.1-alpha-20180716-superfast-linux-x64.tar.gz), [i686](https://github.com/enzo1982/superfast/releases/download/v1.0-pre3/freac-1.1-alpha-20180716-superfast-linux.tar.gz)
- FreeBSD: [x86-64](https://github.com/enzo1982/superfast/releases/download/v1.0-pre3/freac-1.1-alpha-20180716-superfast-freebsd-x64.tar.gz), [i686](https://github.com/enzo1982/superfast/releases/download/v1.0-pre3/freac-1.1-alpha-20180716-superfast-freebsd.tar.gz)

\* The FAAC encoder is provided as a fallback when neither FDK-AAC nor the Core Audio encoder are available.

Expand All @@ -28,10 +28,11 @@ The `components` folder contains multi-threaded drivers for the following encode
- Core Audio AAC/ALAC (iTunes)
- Fraunhofer FDK AAC Encoder
- Free Advanced Audio Coder (FAAC)
- LAME MP3 Encoder
- Opus
- Speex

Support for additional codecs will be added in the future.
Support for additional codecs might be added in the future.

## Compiling

Expand Down

0 comments on commit fe07c16

Please sign in to comment.