TECHitMedia.NET

Бъди в крак с технологиите!

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

Сподели с приятели.

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

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

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

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

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

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

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

Компресиращата програма Monkey’s Audio

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

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

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

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

PCM аудиофайлове с дълбочина на битовете 16 бита и честота на дискретизация 44,1 kHz

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

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

PCM аудиофайлове с дълбочина на битовете 16-24 бита и честота на дискретизация 96-352,8 kHz

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

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

PCM аудиофайлове с повече от два канала, предимно 5.1, включително един нискочестотен (LFE) и два канала за обемно звучене (surround)

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

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

Бързият кодек 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 г.

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

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

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

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

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

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

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

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

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

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

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

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, което значително ще увеличи производителността.

Източник: Kaldata

Leave a Reply

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

TECHitMedia.NET
Правила за бисквитките:

Относно бисквитките!

Тази политика обяснява подробно как “TECHitMedia.NET” използва всяка информация, събрана по време на всяка сесия на ползване от вас (наричана по-долу “Вашата информация”).

Вашата информация се събира по два начина. Първо, разглеждането на “ TECHitMedia.NET” ще накара софтуерът да създаде няколко бисквитки, представляващи малки текстови файлове, които се свалят при временните файлове на браузъра на Вашия компютър. Първите две бисквитки съдържат само потребителски идентификатор (наричан по-долу “user-id”) и анонимен идентификатор на сесията (наричан по-долу “session-id”), които са Ви автоматично назначени от софтуера. Трета бисквитка се създадена при преглеждане на теми в “ TECHitMedia.NET ” и се използва за запомняне на прочетените от Вас теми, подобрявайки работата Ви.

Ние можем също така да създадем бисквитки отвъд софтуера при разглеждане на “ TECHitMedia.NET ”, въпреки че те са извън обхвата на този документ, който е предназначен само за покриване на страници, създадени от софтуера. Вторият начин, по който ние събираме Вашата информация, е това какво Вие изпращате към нас. Това може да бъде, и не е ограничено до: писане като анонимен потребител (наричани по-долу “анонимни мнения”), регистриране в “ TECHitMedia.NET ” (наричан по-долу “Вашият акаунт”) и мнения, написани от Вас след регистрация използвайки акаунт (наричани по-долу “Вашите мнения”).

Вашият акаунт ще съдържа минимум уникално идентифициращо име (наричано по-долу “Вашето потребителско име”), лична парола за влизане във Вашия акаунт (наричана по-долу “Вашата парола”) и личен, валиден e-mail адрес (наричан по-долу “Вашият e-mail”). Вашата информация за Вашия акаунт в “ TECHitMedia.NET ” е защитена от законите за защита на данни, приложими в нашата страна. Всякаква информация, различна от Вашето потребителско име, Вашата парола и Вашия e-mail, която се изисква от “ TECHitMedia.NET ” в процеса на регистрация е или задължителна, или незадължителна, по преценка на “ TECHitMedia.NET ”. Във всички случаи, Вие можете да определите каква информация от Вашия акаунт е видима публично. При това, в рамките на Вашия акаунт, Вие можете да се запишете или да се отпишете от получаване на автоматично генерирани писма оt софтуера.

Вашата парола е шифрована (еднопосочно хеширана) така че да бъде в безопасност. Въпреки това е препоръчително да не използвате същата парола в други сайтове. Вашата парола е средството за достъп до Вашия акаунт в “ TECHitMedia.NET ”, затова моля пазете я внимателно и знайте, че при каквито и да било обстоятелства, никой от “ TECHitMedia.NET ”, или друга трета страна няма да поиска Вашата парола. Ако се случи да забравите Вашата парола за Вашия акаунт, можете да използвате функцията „Забравена парола“, предоставена от сайта. Този процес ще поиска от Вас да изпратите Вашето потребителско име и Вашия e-mail, след което TECHitMedia.NET софтуерът ще генерира нова парола, за да възстановите Вашия акаунт.