MP3 е вече старомодна отживелица. Бъдещето е в модерните кодеци без загуби: най- новите lossless кодеци

Най-четени

Даниел Десподов
Даниел Десподов
Новинар. Увличам се от съвременни технологии, информационна безопасност, спорт, наука и изкуствен интелект.

За времето си MP3 направи революция в разпространението на музика. Вече не се налагаше да се купуват скъпи компактдискове. Достатъчно беше да се създаде система за изтегляне от Napster през нощта и на сутринта вече са налични множество MP3 файлове за безплатно слушане! Всички изпълнители и албуми. Преди време това си беше направо невероятно.

Но сега времената се промениха. Файловете се свалят за секунди, а дисковото пространство се измерва в терабайти. Няма смисъл музиката да се подлага на осакатяваща компресия със загуба на информация. Можете спокойно да я изтегляте и съхранявате в lossless-формати без загуби, при това със значителна компресия.

MP3 е вече старомодна отживелица. Бъдещето е в модерните кодеци без загуби: най- новите lossless кодеци
Сравнение на производителността на lossless кодеците върху материал с качество на CD, т.е. PCM аудиофайлове с битова дълбочина 16 бита и честота на дискретизация 44,1 kHz

Съществуват редица кодеци без загуби, които са по-ефективни от стандартния .FLAC по отношение на компресията. Нека се спрем малко по-подробно.

Няколко думи за историята на кодеците без загуби

Преди 2000 г. повечето кодеци без загуби бяха асиметрични, т.е. те увеличаваха натоварването на процесора при увеличаване на степента на компресия, но това почти не се отразяваше на скоростта на декодиране.

В началото на 21-ви век сред специалистите се разпространи мнението, че за максимална компресия е необходимо да се използва сложен симетричен алгоритъм. Тези алгоритми изискват големи изчислителни ресурси от страна на процесора при декодиране на звука. Първият компресор, който значително надмина FLAC по отношение на компресията на файловете, беше Monkey’s Audio (формати .APE и .MAC) през 2000 г.

MP3 е вече старомодна отживелица. Бъдещето е в модерните кодеци без загуби: най- новите lossless кодеци
Компресиращата програма Monkey’s Audio

След това беше се появи още по-сложния, но патентован кодек OptimFROG, който превъзхожда останалите в най-тежките си режими на компресия.

Симетричният алгоритъм е приложен и в кодека WavPack от края на 90-те години, който по-късно бе подобрен и усъвършенстван.

След това се появява ТАК, който е отбелязан в зелено на следващата диаграма.

Сравнение на производителността на кодеците без загуби върху материал с качество на CD:

MP3 е вече старомодна отживелица. Бъдещето е в модерните кодеци без загуби: най- новите lossless кодеци
PCM аудиофайлове с дълбочина на битовете 16 бита и честота на дискретизация 44,1 kHz

WavPack и след това OptimFROG реализираха допълнителна обработка на кодирането, която минимално влияе на скоростта на декодиране. В същото време FLAC е значително подобрен. Референтният енкодер работи с произволни LPC коефициенти (линейно предсказващо кодиране) на принципа на грубата оценка на няколко алтернативи (напр. дължина на историята), след което избира най-добрата и я изчислява докрай.

Сравнение на производителността на losless кодеците върху висококачествен материал:

MP3 е вече старомодна отживелица. Бъдещето е в модерните кодеци без загуби: най- новите lossless кодеци
PCM аудиофайлове с дълбочина на битовете 16-24 бита и честота на дискретизация 96-352,8 kHz

При високи честоти на дискретизация аудиоинформацията включва много странни неща, включително празнини. Референтният FLAC не винаги се справя добре с това. Почти всички други кодеци използват същите кодове на Голомб, но се опитват да оптимизират тяхната реализация.

Сравнение производителността на кодеците без загуби при многоканално аудио:

MP3 е вече старомодна отживелица. Бъдещето е в модерните кодеци без загуби: най- новите lossless кодеци
PCM аудиофайлове с повече от два канала, предимно 5.1, включително един нискочестотен (LFE) и два канала за обемно звучене (surround)

Можете да конвертирате всички формати един в друг с помощта на програмата ffmpeg. Само че наскоро тя беше пренаписана на wasm, така че е удобно да се конвертира директно в браузъра: локално на вашия компютър или на сървър. Ето един пример за такъв сървър:

MP3 е вече старомодна отживелица. Бъдещето е в модерните кодеци без загуби: най- новите lossless кодеци

Проектът е с отворен код, което означава, че е лесен за хостване.

Бързият кодек HALAC

Един от новите Lossless кодеци е HALAC (High Availability Lossless Audio Compression) от автора на кодека за изображения с подобно име HALIC (High Availability Lossless Image Compression).

HALAC има приблизително същите качества като своя „събрат“ за изображенията: той се фокусира основно върху високата скорост на кодиране, като същевременно поддържа прилично ниво на компресия. Той е приоритизиран по този начин, тъй като при компресирането без загуби степента на компресия обикновено е ограничена. Не можете да свиете един файл десетки пъти, както при MP3, така че оптимизирането по отношение на размера не е най-благодатната задача. Но оптимизацията по отношение на скоростта е нещо различно. То дава възможност процесът да се ускори няколко пъти в сравнение със стандартните кодеци WavPack и FLAC.

Таблиците по-долу сравняват резултата от кодирането на оригинални аудиофайлове с различни кодеци без компресия: ALAC, WavPack с различни модели на кодиране (Fast и Normal), FLAC с различни модели на кодиране (Fast (0) и Default (5)) – и HALAC версия 0.1.9, която е най-първата версия от декември 2023 г.

Особено внимание заслужават долните два реда във всяка таблица: времето за кодиране и времето за декодиране.

MP3 е вече старомодна отживелица. Бъдещето е в модерните кодеци без загуби: най- новите lossless кодеци
Тестовата машина със старата конфигурация: процесор Core i7 3770k, 3,9 GHz, 16 GB RAM, 256 GB SSD
MP3 е вече старомодна отживелица. Бъдещето е в модерните кодеци без загуби: най- новите lossless кодеци
За по-голяма обективност е избрана музика от различни жанрове в бенчмарковете. Всички кодеци работят с изходния материал .wav, 16 бита, 2 канала, 44100 bps)
MP3 е вече старомодна отживелица. Бъдещето е в модерните кодеци без загуби: най- новите lossless кодеци

За година и половина бяха пуснати десетина актуализации и коефициентът на компресия се подобри с около 2%.

MP3 е вече старомодна отживелица. Бъдещето е в модерните кодеци без загуби: най- новите lossless кодеци

Разработена е отделна експериментална версия на HALAC+ с увеличен коефициент на компресия на FLAC -8, като скоростта на кодиране е около четири пъти по-висока. Този кодек прилага алгоритъм за адаптивно рисово кодиране и проста корекция на грешките.

Кодеците като HALAC привличат вниманието не толкова заради практическата си полезност, колкото заради академичния си интерес: как да се подобри ефективността на компресиране и за сметка на какви алгоритми/методи (повече за това по-долу).

Теоретично HALAC може да се използва и като оригинален начин за замаскиране/криптиране на аудиофайловете в неизвестен формат. За „неизвестен“ не е преувеличено: за една година от официалното обявяване във форума на HydrogenAudio енкодерът и декодерът са изтеглени съответно 490 и 463 пъти, а последната версия – 198 и 169 пъти.

Както можете да се види от сравнителните тестове, времето за кодиране и декодиране на HALAC е няколко пъти по-малко от всички други формати за компресия без загуби. Същественото е, че той използва ентропийните кодери Asymmetric Numeral Systems (ANS) и Finite State Entropy (FSE).

Новият метод за ентропийно кодиране – ANS

Ентропийното кодиране е метод за компресиране на данните без загуби (lossless compression) чрез осредняване на вероятностите за поява на елементите в кодираната последователност.

Според теоремата на Шанън за криптиране на източника съществува граница на компресията без загуби, която зависи от ентропията на източника. Колкото по-предсказуеми са получените данни, толкова по-добре могат да бъдат компресирани. Една случайна независима последователност с равна вероятност не може да бъде компресирана без загуби.

Двата най-популярни метода за ентропийно кодиране са кодът на Хъфман и аритметичното кодиране, те се използват в почти всички кодеци, архиватори и др. Основата идея е показана по-долу:

MP3 е вече старомодна отживелица. Бъдещето е в модерните кодеци без загуби: най- новите lossless кодеци

ANS е нов метод за ентропийно кодиране, създаден през 2006 г. от полския учен и програмист Ярек Дуда от Ягелонския университет. ANS дава приблизително толкова добро приближение до оптималното ентропийно кодиране, колкото и аритметичното кодиране по отношение на степента на компресия, но е по-бърз.

Той е също толкова бърз, колкото алгоритмите за декомпресия на Хъфман, не е защитен с патенти и е безплатен за използване. Целта е била именно да се създаде безплатна алтернатива на п;атентованото аритметичното кодиране.

Благодарение на свободния си лиценз и високата си ефективност, от около 2014 г. ANS намери своето място в проекти на софтуер с отворен код, включително:

  • Компресиращата Facebook Zstandard (използвана и в Linux ядрото),
  • браузъра Google Chrome (от версия 123, пусната през март 2024 г.),
  • операционната система Android (от Android 4.14 през януари 2024 г.), публикуван като RFC 8478 за MIME и HTTP,
  • компресора LZFSE на Apple,
  • библиотеката за 3D компресия Google Draco (използвана от Pixar и други),
  • алгоритъма за компресиране на изображения PIK;
  • библиотеката за високоскоростно компресиране Nvidia nvCOMP,
  • алгоритъма за компресиране на Dropbox DivANS,
  • алгоритъма за компресиране на изображенията JPEG XL.

ANS се оказа ефективна алтернатива на аритметичната компресия. Използва се в някои съвременни операционни системи и браузъри, както и във форматите за компресиране на изображения. В същото време досега не е използвана във формати за компресиране на аудио.

В повечето от тях се използват кодовете на Голомб, добре познато семейство ентропийни кодове. Но при тестовете кодовете на Голомб извършват кодиране с около 30-40% по-бавно поради изчисляването на адаптивния параметър $m$, което дава само незначителна печалба в степента на компресия (1-2 %).

HALAC вероятно е първият аудиоформат, който използва ANS за кодиране без загуби. Резултатите от бенчмарковете показват, че той категорично превъзхожда ALAC, WavPack и FLAC, въпреки че разработчикът дори не е сигурен, че е приложил ANS по най-ефективния начин… Кодекът HALAC не използва никакви оптимизации за GPU и SIMD, а настоящата версия е еднонишкова. В бъдеще той планира първо да добави паралелизъм.

HALAC е 3-5 пъти по-бърз от обикновения FLAC. Може да се предположи, че и другите кодеци без загуби от бъдещите поколения ще прилагат методите за компресия на ANS, което значително ще увеличи производителността.

АбонаментВсичко важно от света на технологиите, директно в пощата ти.

С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.


Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!

9 Коментара
стари
нови оценка

Нови ревюта

Подобни новини