Ekte lydkodek

Ekte lydkodek
Generell informasjon
programtype tapsfritt lydkodingsformat
utvikler Alexander Djourik
Tillatelse GPL
Lenker
True Audio offisielle nettsted

True Audio (forkortet TTA ) er en enkel gratis, tapsfri lydkodek i sanntid . Den er basert på prognoseadaptive filtre som har vist tilfredsstillende resultater sammenlignet med de fleste moderne analoger. TTA tilbyr høye kompresjonsnivåer, og opprettholder driftshastigheten.

Beskrivelse

TTA-lydkodeken utfører 8-, 16- og 24-bits flerkanalskomprimering av WAV -lydfildata . Avhengig av hvilken type musikk vi komprimerer, vil vi ha komprimeringskoeffisienter rundt 30%-70%. Lar deg lagre opptil 20 lyd-CDer på en DVD-R (ca. 4 GB) samtidig som den originale lydkvaliteten opprettholdes.

Formater

Dataformatet til True audio-kodeken har en enkel struktur.

Overskrift

Overskriftsfilen inneholder formatidentifikatoren etterfulgt av to datablokker. Den første blokken inneholder dataene som trengs for å gjenopprette det opprinnelige signalet (antall kanaler, biter per prøve osv.) og den andre blokken inneholder en tabell med pekere. Denne blokken må ha samme antall pekere som prøver per ramme. Hver peker bruker 4 byte og inneholder lengden i byte av prøven den peker på. Hver datablokk avsluttes med en 32-biters CRC (Error Control Algorithm).

De komprimerte prøvene for hver kanal lagres sekvensielt, akkurat som de er i PCM -formatet .

Plot

Varigheten av en prøve i TTA er fastsatt til omtrent ett sekund. Dermed har hver ramme i en sekvens samme antall sampler, bortsett fra den siste rammen.

Kompresjonsteori

Det er vanskelig å komprimere vilkårlige inngangsdata, for eksempel lyd, uten tap. For å oppnå et høyt komprimeringsnivå for lyddata, vil det måtte brukes en algoritme der de mest karakteristiske dataene til datafilen er tilgjengelige. TTA-kodeken brukes til 8-, 16- eller 24-bits tapsfri lydkomprimering av flerkanalsdata som skal lagres i WAV -filer .

Nesten alle tapsfrie datakompressorer bruker varianter av Lempel-Ziv-algoritmen. Men dette gir ikke gode resultater for multimediedatakomprimering. I disse typene algoritmer er det ikke tatt hensyn til den store avhengigheten mellom nabosampler som lydfiler har, det er også vanskelig å finne gjentatte sampler av signalet i lyd, og derfor vil komprimeringsforholdet være lavt. Dermed er det som gjøres for multimediadata å legge til to foreløpige stadier: et intra-kanal dekorrelasjonstrinn og et signalmodelleringsprognosestadium.

TTA-lydkompressoren inkluderer, som tapsfrie lydkompressorer, fire trinn. Etter blokkdekomponering blir dataene analysert ved intra-kanal dekorrelasjon. Når det er gjort, går prøvene til signalprediksjonsstadiet hvor lineære prediksjonsmetoder ( LPC ) brukes. Deretter overføres forskjellen mellom det opprinnelige signalet og prognosesignalet til entropikoderen.

Signaldekomponering etter blokker

Den optimale blokkstørrelsen avhenger av den valgte algoritmen. Generelt bidrar reduksjon av blokkstørrelsen til å øke antallet topprammer, noe som fører til at komprimeringsnivået reduseres. For komprimering av TTA-lyddata brukes rammer med en varighet på omtrent 1 sekund.

Intra-kanal dekorrelasjon

Multikanals inngangsdata bruker intra-kanal dekorrelasjon. Denne dekorrelasjonen består for eksempel av at hvis vi har to inngangskanaler, transformeres de til to forskjellige kanaler: forskjellskanalen og middelkanalen. Disse vil følge følgende formler:

Men for å unngå tap av data, bruker TTA følgende formler for disse nye kanalene:

For flerkanals lydfiler med god korrelasjon mellom nabokanaler, bidrar denne prosedyren til å utvide komprimeringsforholdet.

Signalvarsel

Hovedmålet for modellering av TTA-kompressoren er å minimere forskjellen mellom signalet som oppnås fra kompressoren og det originale signalet (feil eller rest). Metoden som har blitt brukt for å bygge kompressoren er den som modellerer med adaptive filtre. Denne metoden bruker IIR-filtre hvor parametrene endres under arbeidsprosessene i henhold til egenskapene til signalet. TTA skiller seg litt fra den generelle algoritmen til denne typen filtre. Den har et første nivå der en nullnivåprediktor brukes. Så feilsignalet vil være som følger:

der k er nær 0

Og det siste stadiet av filtrering består av et filtersystem med variabel båndbredde. Denne teknikken er den mest effektive for prediksjonsnøyaktighet og prosesshastighet.

Entropisk koding

Entropikoding tjener til å eliminere all redundans som kan eksistere i signalet oppnådd e[n]. Denne prosessen er viktig fordi den vil tillate oss å komprimere dataene med en høyere hastighet. Det er viktig å merke seg at siden vi koder uten tap, er det ingen tap av informasjon i denne prosessen.

Prosjektet

TTA - prosjektet gir: