

We now offer a subscription for just 10 cents a day**h1>
You will always enjoy the full version of Mp4Gain with all its features and benefits.
For just 10 cents a day*
*Unlimited FULL version of Mp4Gain, billed $US12.50 Quarterly (+ $5 USD one time subscription payment JUST in the first payment).
All other payments will be just $3.12 per month, billed quaterly.
That's only 10 cents per day!
CLICK TO PURCHASE
THIS PRICE ONLY LASTS FOR A FEW DAYS
For just 10 cents a day*
Praten over enkele basisverschillen tussen VBR en CBR in mp3-bestanden Deel 3

Voor VBR-gecodeerde mp3-bestanden, aangezien de bitsnelheid van elk frame niet vast is, is de gegevensgrootte van elk frame willekeurig.

Het is duidelijk dat de grootte van de gegevens die per seconde worden gereproduceerd, anders is. Op deze manier kan de duur van alle audio niet worden berekend met de bovenstaande formule en zijn andere gegevensvelden nodig, wat een van de tekortkomingen is van de VBR-technologie: het is relatief moeilijk en ingewikkeld om de duur van de audio te berekenen.
Er is nog een nadeel van VBR-technologie. Bij het afspelen van een audiobestand zal er onvermijdelijk een bewerking zijn om naar de positie van de gespecificeerde afspeeltijd te springen (dwz de zogenaamde zoekbewerking). Op dit moment is het noodzakelijk om de tijdpositie van het doel te converteren naar de positie van het bestand. Spring dan naar deze offset van de bestandspositie om te lezen en te decoderen. Als het een download- en afspeelmodus voor netwerkweergave is, moet u tijdens het zoeken eerst de positie van het bestand berekenen. Spring naar deze positie en download een paragraaf voordat je verder gaat met spelen. . Voor CBR-codering is de conversie naar offset van de bestandspositie ook heel eenvoudig, met behulp van de volgende formule:
bestandspositie (byte) = doeltijdpositie ( s ) * bitsnelheid (kbps) * 1000/8 + id3v2-veldgrootte (indien aanwezig)
Maar voor VBR-codering is het natuurlijk onmogelijk om deze formule te gebruiken om de bestandspositie te converteren. De reden is ook heel eenvoudig: de bitsnelheid van elk frame staat niet vast en de lengte van de gegevens per seconde is niet gemiddeld. Daarom zijn, net als het berekenen van de duur, andere gegevensvelden nodig.
De methode om de duur van de audio te berekenen en de zoekbewerking te implementeren met VBR-codering
Om de bovenstaande twee problemen op te lossen, voegt VBR-codering enkele gegevensvelden toe. Op dit moment zijn er hoofdzakelijk twee soorten VBR-coderingstechnologieën, de ene is de Xing-specificatie die wordt voorgesteld door de Xing Company en de andere is de VBRI-specificatie van de Fraunhofer-encoder. Dit artikel laat alleen zien hoe de Xing-specificatie de berekening van de audioduur en de implementatie van de zoekbewerking oplost.
De belangrijkste inhoud van de Xing-specificatie is de Xing-header, wat betekent dat het eerste audioframe aan het begin van de VBR-gecodeerde mp3 niet wordt gebruikt om specifieke audiogegevens op te slaan, maar om aanvullende audio-informatie op te slaan. Deze informatie is gemarkeerd met de vier karakters van “Xing” als het begin van het veld (sommige bestanden gebruiken ook de vier karakters van “Info” als het begin van de Xing-header).
De positie van de Xing-header in het eerste audioframe is na de standaard 4-byte mp3-audioframeheader. Tussen de tabelkop en de Xing-kop bevindt zich een blanco gedeelte met alle gegevensinhoud 0. Deze blanco De lengte van de sectie wordt gespecificeerd. Nadat de decoder de frameheader van het eerste audioframe heeft geparseerd, slaat hij het lege deel van de opgegeven lengte over en beoordeelt vervolgens of de volgende inhoud de vier tekens van ‘Xing’ of ‘Info’ is om de audio te beoordelen. Als de VBR-codering .
De lengte van het lege gedeelte wordt bepaald door de mpeg-versie en het aantal kanalen, zoals weergegeven in de volgende tabel (eenheid is byte):
niet-mono infectieuze mononucleosis MPEG-versie
MPEG 1 18 32 (meest gebruikelijk)
MPEG2 9 18
De volgende afbeelding is een voorbeeld van de veldstructuur van het eerste VBR-gecodeerde mp3-dataframe:
De veldstructuur en de inhoud van de informatie die is opgeslagen in de Xing-header is als volgt:
Locatie (van markering ‘Xing’) lengtegraad richting Voorbeeld
0 4 VBR-headertag, 4-byte ASCII-tekens, inhoud is ‘Xing’ of ‘Info’ ‘Xing’
0 4 Een vlag die de specifieke inhoud van de VBR-header aangeeft, de combinatie is logisch OF. Het gebied is
verplicht
. bestaat, exclusief tags;
0x0004 – TOC-indexopslaggebied ingesteld om te bestaan;
0x0008 – Opslaggebied voor kwaliteitsindicatie ingesteld om te bestaan 0x0007 (wat betekent dat het totale aantal frames, de bestandslengte en het TOC-opslaggebied geldig zijn)
8 4 Slaat de Big-Endian-waarde van het totale aantal frames op 7344
8 of 12 4 Slaat de Big-Endian-waarde van de bestandslengte op in Bytes 45000
8, 12 of 16 100 De TOC-tabel, een bytearray met een lengte van 100, is een positionele index die wordt gebruikt voor snelle adressering in het bestand en wordt voornamelijk gebruikt om de implementatie van de zoekbewerking op te lossen.
