11

New Ultra Fast Lossless Audio Codec (HALAC)

 8 months ago
source link: https://hydrogenaud.io/index.php/topic,125248.0.html?PHPSESSID=su12fvq4ar7cordpr8p1uoa7p0
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

HALAC (High Availability Lossless Audio Compression)

2023-12-31 21:12:23

I'm new in this forum. I am glad it was such a special forum on Audio. I am the writer of the lossless image codec called HALIC(High Availability Lossless Image Compression). It is a work that can offer a good compression ratio quite quickly. This time I would like to introduce my work called HALAC(High Availability Lossless Audio Compression).

In the past(2018-2019), I had been working on the lossless audio compression. However, I could not bring together the work I did. Now I have a little time and I think I developed a fast codec. I worked on 16 bit, 2 channel audio data (.wav). Higher bit and channel options can be added if necessary. As a result, the approach is the same.

HALAC, like the HALIC, focuses on a reasonable compression ratio and high processing speed. The compression rate for audio data is usually limited. So I wanted a solution that can work faster with a few percent concessions.

I used a quick estimation with ANS(FSE). I don't know if there are other codecs using ANS, but the majority uses "Rice Coding". However, in my tests, Rice Coding(my own implementation) is a bit behind in terms of speed(0.6x - 0.7x), but it gives better results as compression rate(1% - 2%). The loss of speed in the Rice Coding is due to the calculation of adaptive parameter. I am really happy with ANS right now because speed is more important to me. In addition, I do not think that I use ANS fully efficiently.

GPU or SIMD was not used. Also now in the single-thread version. In the next version, I can add the Multithread option. I couldn't compile the Linux version because my Linux machine collapsed. I tried to find the middle way by working with different music genres.
Below are the comparisons (from original wav, 16 bit, 2 channel, 44100 bps) with FLAC, ALAC and WAVPACK (Pazera_Free_Audio_Extractor ver. 2.11).

Test Machine (2012): i7 3770k, 3.9 ghz, 16 gb ram, 256 gb ssd
Encode Usage: halac_encode.exe input.wav out.halac
Decode Usage: halac_decode.exe out.halac original.wav

attachment.php?attachmentid=10971&d=1704053753
attachment.php?attachmentid=10972&d=1704053768
attachment.php?attachmentid=10973&d=1704053780
index.php?PHPSESSID=su12fvq4ar7cordpr8p1uoa7p0&action=dlattach;topic=125248.0;attach=28393;thumb  HALAC_ENCODE_V.0.1.9.exe 68.50 KB downloaded 66 times
index.php?PHPSESSID=su12fvq4ar7cordpr8p1uoa7p0&action=dlattach;topic=125248.0;attach=28394;thumb  HALAC_DECODE_V.0.1.9.exe 50 KB downloaded 62 times
  • Last Edit: 2023-12-31 21:17:50 by Hakan Abbas

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK