libjpeg-turbo

Software screenshot:
libjpeg-turbo
Software informatie:
Versie: 1.4.90 Bijgewerkt
Upload datum: 10 Mar 16
Ontwikkelaar: D. R. Commander
Licentie: Gratis
Populariteit: 68

Rating: nan/5 (Total Votes: 0)

libjpeg-turbo is een open source, cross-platform en volledig gratis software ontworpen om een ​​high-speed versie van de originele libjpeg bibliotheek software, speciaal gemaakt voor x86- en x86-64 processors, die SIMD gebruiken bieden ( Single Instruction, Multiple data) instructies, zoals SSE2, MMX en NEON, aan baseline JPEG decompressie en compressie te versnellen.


Een uiterst snelle JPEG-codec

De software is een uiterst snelle JPEG-codec die is over het algemeen 2-4x sneller dan de ongewijzigde versie van libjpeg. Het project werd oorspronkelijk gebaseerd op de libjpeg / SIMD project gecreëerd door Miyasaka Masaru.


Implementeert de traditionele libjpeg API

Deze turbo versie van de libjpeg bibliotheek voert ook de traditionele libjpeg API, evenals de eenvoudige TurboJPEG API. Het beschikt over kleurruimte extensies, waarmee gebruikers voor het comprimeren van of uitpakken naar big-endian en 32-bit pixel buffers (XBGR, RGBX, enz.), En een full-featured Java-interface.


Distributed als native installatieprogramma's voor DEB en RPM-gebaseerde besturingssystemen

Voor uw gemak, de software wordt gedistribueerd als native installatieprogramma's voor DEB en RPM-gebaseerde besturingssystemen, zoals Debian, Ubuntu, Linux Mint, Fedora, CentOS, Red Hat Enterprise Linux, openSUSE, Mageia, enz., Het ondersteunen van zowel 64 en 32-bit hardware platforms.


Aan de slag met libjpeg-turbo

Het libjpeg-turbo project kan eenvoudig worden geïnstalleerd van de belangrijkste software repositories van een GNU / Linux distributie. Het zal ook automatisch worden geïnstalleerd, samen met alle software die het nodig heeft.

Om te installeren handmatig met de source-pakket, voor het geval je wilt om het te optimaliseren voor uw hardware architectuur / besturingssysteem, downloaden en opslaan van de nieuwste archief van Softoware, de inhoud ervan uit te pakken met behulp van een archief manager nut, een Terminal app te openen en ga naar de locatie van de uitgepakte archiefbestand (bijvoorbeeld cd / home / softoware / libjpeg-turbo).

Ren dan de & lsquo; ./ configure && make & rsquo; commando te configureren en te compileren het programma, gevolgd door de & lsquo; sudo make install & rsquo; commad om het te installeren systeem breed en beschikbaar te maken voor alle toepassingen

Wat is nieuw in deze release:.

    < li> Vast een build probleem op OS X PowerPC platforms (md5cmp niet bouwen, omdat OS X de le32toh () en htole32 () functies. niet verstrekt).
  • De niet-SIMD RGB565 kleurconversie code werkte niet goed op de grote endian machines. Dit is opgelost.
  • een probleem opgelost in tjPlaneSizeYUV () waarbij zij ten onrechte zou terugkeren 1 in plaats van -1 als ComponentID was & gt; 0 en subsamp was TJSAMP_GRAY.
  • een probleem opgelost in tjBufSizeYUV2 () wherby hij ten onrechte zou terugkeren 0 in plaats van -1 als de breedte was & lt; 1.
  • De Huffman-encoder gebruikt nu clz en BSR instructies voor het beetje rekenen op ARM64 platforms.
  • De methode close () in de TJCompressor en TJDecompressor Java-klassen is nu idempotent. Voorheen zou deze methode de functie inheemse tjDestroy (), zelfs als de TurboJPEG instantie was reeds vernietigd noemen. Dit veroorzaakte een uitzondering tijdens de afronding te worden gegooid, als de methode close () werd reeds genoemd. De uitzondering werd gevangen, maar het was nog steeds een dure operatie.
  • De TurboJPEG API eerder gegenereerde een fout (& quot; Kon niet bepalen soort subsampling image & quot JPEG voor;) bij een poging om decomprimeren grijswaarden JPEG-afbeeldingen die zijn gecomprimeerd met een sampling factor anders dan 1 (bijvoorbeeld met 'cjpeg -grayscale - monster 2x2 '). Subsampling technisch heeft geen betekenis met grijstinten JPEG, en daarmee de horizontale en verticale sampling factoren voor dergelijke afbeeldingen worden genegeerd door de decompressor. Echter, de TurboJPEG API is al te rigide en verwachtte de bemonstering factoren gelijk aan 1 te zijn voordat het de afbeelding behandeld als een grijstinten JPEG.
  • cjpeg, djpeg en jpegtran nu accepteren een argument van -version, waarvan de bibliotheek versie en de exit zal worden afgedrukt.
  • Verwijzend naar 1,4 beta1 [15], een uiterst zeldzame omstandigheden ontdekt waarbij lokale buffer de Huffman-encoder kan worden overschreden wanneer een gebufferde bestemming manager wordt gebruikt en een zeer hoge frequentie blok (eigenlijk het troepgegevens) is wordt gecodeerd. Hoewel de Huffman lokale buffer werd verhoogd van 128 bytes tot 136 bytes naar het vorige probleem aan te pakken, het nieuwe nummer veroorzaakte zelfs de grotere buffer te worden overschreden. Verdere analyse toont aan dat, in de absolute ergste geval (zoals het instellen afwisselende AC coëfficiënten en 32.767 -32.768 in de JPEG aftastvolgorde), de Huffman encoder gecodeerde blokken die dubbel zo groot als de gecodeerde blokken benaderen produceren. Zo werd de Huffman lokale buffer verhoogd tot 256 bytes, waarop een dergelijke kwestie moet voorkomen dat opnieuw te voorkomen in de toekomst.
  • De nieuwe tjPlaneSizeYUV (), tjPlaneWidth (), en functies tjPlaneHeight () waren niet echt bruikbaar is op elk platform, behalve OS X en Windows, omdat die functies werden niet opgenomen in de libturbojpeg Mapfile. Dit is opgelost.
  • Hersteld de JPP (), JMETHOD () en FAR macro's in de libjpeg-turbo header-bestanden. De JPP () en JMETHOD () macro werd ingevoerd in libjpeg als een manier ondersteunen van niet-ANSI compilers die steun prototype parameters ontbrak. libjpeg-turbo heeft nog nooit zo'n compilers ondersteund, maar sommige softwarepakketten gebruiken nog steeds de macro's om hun eigen prototypes definiëren. Evenzo is libjpeg-turbo nooit ondersteund MS-DOS en andere platforms die veel symbolen, maar sommige softwarepakketten nog steeds gebruik maken van de FAR macro. Een vrij goed argument kan worden gemaakt dat dit een slechte praktijken van de kant van de software in kwestie, maar aangezien dit meer dan een pakket van invloed, het is gewoon gemakkelijker om het hier op te lossen.
  • Opgeloste problemen dat de ARM 64-bit SIMD code werden verhinderd compileren voor iOS, en omvatte een ARMv8 architectuur in alle van de binaire bestanden van de installatie van de & quot; officiële & quot; libjpeg-turbo SDK voor OS X.

Wat is nieuw in versie 1.4.2:

  • Fixed a build probleem op OS X PowerPC platforms ( md5cmp niet te bouwen, omdat OS X de le32toh () en htole32 () functies.) niet voorziet.
  • De niet-SIMD RGB565 kleurconversie code werkte niet goed op de grote endian machines. Dit is opgelost.
  • een probleem opgelost in tjPlaneSizeYUV () waarbij zij ten onrechte zou terugkeren 1 in plaats van -1 als ComponentID was & gt; 0 en subsamp was TJSAMP_GRAY.
  • een probleem opgelost in tjBufSizeYUV2 () wherby hij ten onrechte zou terugkeren 0 in plaats van -1 als de breedte was & lt; 1.
  • De Huffman-encoder gebruikt nu clz en BSR instructies voor het beetje rekenen op ARM64 platforms.
  • De methode close () in de TJCompressor en TJDecompressor Java-klassen is nu idempotent. Voorheen zou deze methode de functie inheemse tjDestroy (), zelfs als de TurboJPEG instantie was reeds vernietigd noemen. Dit veroorzaakte een uitzondering tijdens de afronding te worden gegooid, als de methode close () werd reeds genoemd. De uitzondering werd gevangen, maar het was nog steeds een dure operatie.
  • De TurboJPEG API eerder gegenereerde een fout (& quot; Kon niet bepalen soort subsampling image & quot JPEG voor;) bij een poging om decomprimeren grijswaarden JPEG-afbeeldingen die zijn gecomprimeerd met een sampling factor anders dan 1 (bijvoorbeeld met 'cjpeg -grayscale - monster 2x2 '). Subsampling technisch heeft geen betekenis met grijstinten JPEG, en daarmee de horizontale en verticale sampling factoren voor dergelijke afbeeldingen worden genegeerd door de decompressor. Echter, de TurboJPEG API is al te rigide en verwachtte de bemonstering factoren gelijk aan 1 te zijn voordat het de afbeelding behandeld als een grijstinten JPEG.
  • cjpeg, djpeg en jpegtran nu accepteren een argument van -version, waarvan de bibliotheek versie en de exit zal worden afgedrukt.
  • Verwijzend naar 1,4 beta1 [15], een uiterst zeldzame omstandigheden ontdekt waarbij lokale buffer de Huffman-encoder kan worden overschreden wanneer een gebufferde bestemming manager wordt gebruikt en een zeer hoge frequentie blok (eigenlijk het troepgegevens) is wordt gecodeerd. Hoewel de Huffman lokale buffer werd verhoogd van 128 bytes tot 136 bytes naar het vorige probleem aan te pakken, het nieuwe nummer veroorzaakte zelfs de grotere buffer te worden overschreden. Verdere analyse toont aan dat, in de absolute ergste geval (zoals het instellen afwisselende AC coëfficiënten en 32.767 -32.768 in de JPEG aftastvolgorde), de Huffman encoder gecodeerde blokken die dubbel zo groot als de gecodeerde blokken benaderen produceren. Zo werd de Huffman lokale buffer verhoogd tot 256 bytes, waarop een dergelijke kwestie moet voorkomen dat opnieuw te voorkomen in de toekomst.
  • De nieuwe tjPlaneSizeYUV (), tjPlaneWidth (), en functies tjPlaneHeight () waren niet echt bruikbaar is op elk platform, behalve OS X en Windows, omdat die functies werden niet opgenomen in de libturbojpeg Mapfile. Dit is opgelost.
  • Hersteld de JPP (), JMETHOD () en FAR macro's in de libjpeg-turbo header-bestanden. De JPP () en JMETHOD () macro werd ingevoerd in libjpeg als een manier ondersteunen van niet-ANSI compilers die steun prototype parameters ontbrak. libjpeg-turbo heeft nog nooit zo'n compilers ondersteund, maar sommige softwarepakketten gebruiken nog steeds de macro's om hun eigen prototypes definiëren. Evenzo is libjpeg-turbo nooit ondersteund MS-DOS en andere platforms die veel symbolen, maar sommige softwarepakketten nog steeds gebruik maken van de FAR macro. Een vrij goed argument kan worden gemaakt dat dit een slechte praktijken van de kant van de software in kwestie, maar aangezien dit meer dan een pakket van invloed, het is gewoon gemakkelijker om het hier op te lossen.
  • Opgeloste problemen dat de ARM 64-bit SIMD code werden verhinderd compileren voor iOS, en omvatte een ARMv8 architectuur in alle van de binaire bestanden van de installatie van de & quot; officiële & quot; libjpeg-turbo SDK voor OS X.

Wat is nieuw in versie 1.4.0:

  • Fixed a build probleem op OS X PowerPC platforms ( md5cmp niet te bouwen, omdat OS X de le32toh () en htole32 () functies.) niet voorziet.
  • De niet-SIMD RGB565 kleurconversie code werkte niet goed op de grote endian machines. Dit is opgelost.
  • een probleem opgelost in tjPlaneSizeYUV () waarbij zij ten onrechte zou terugkeren 1 in plaats van -1 als ComponentID was & gt; 0 en subsamp was TJSAMP_GRAY.
  • een probleem opgelost in tjBufSizeYUV2 () wherby hij ten onrechte zou terugkeren 0 in plaats van -1 als de breedte was & lt; 1.
  • De Huffman-encoder gebruikt nu clz en BSR instructies voor het beetje rekenen op ARM64 platforms.
  • De methode close () in de TJCompressor en TJDecompressor Java-klassen is nu idempotent. Voorheen zou deze methode de functie inheemse tjDestroy (), zelfs als de TurboJPEG instantie was reeds vernietigd noemen. Dit veroorzaakte een uitzondering tijdens de afronding te worden gegooid, als de methode close () werd reeds genoemd. De uitzondering werd gevangen, maar het was nog steeds een dure operatie.
  • De TurboJPEG API eerder gegenereerde een fout (& quot; Kon niet bepalen soort subsampling image & quot JPEG voor;) bij een poging om decomprimeren grijswaarden JPEG-afbeeldingen die zijn gecomprimeerd met een sampling factor anders dan 1 (bijvoorbeeld met 'cjpeg -grayscale - monster 2x2 '). Subsampling technisch heeft geen betekenis met grijstinten JPEG, en daarmee de horizontale en verticale sampling factoren voor dergelijke afbeeldingen worden genegeerd door de decompressor. Echter, de TurboJPEG API is al te rigide en verwachtte de bemonstering factoren gelijk aan 1 te zijn voordat het de afbeelding behandeld als een grijstinten JPEG.
  • cjpeg, djpeg en jpegtran nu accepteren een argument van -version, waarvan de bibliotheek versie en de exit zal worden afgedrukt.
  • Verwijzend naar 1,4 beta1 [15], een uiterst zeldzame omstandigheden ontdekt waarbij lokale buffer de Huffman-encoder kan worden overschreden wanneer een gebufferde bestemming manager wordt gebruikt en een zeer hoge frequentie blok (eigenlijk het troepgegevens) is wordt gecodeerd. Hoewel de Huffman lokale buffer werd verhoogd van 128 bytes tot 136 bytes naar het vorige probleem aan te pakken, het nieuwe nummer veroorzaakte zelfs de grotere buffer te worden overschreden. Verdere analyse toont aan dat, in de absolute ergste geval (zoals het instellen afwisselende AC coëfficiënten en 32.767 -32.768 in de JPEG aftastvolgorde), de Huffman encoder gecodeerde blokken die dubbel zo groot als de gecodeerde blokken benaderen produceren. Zo werd de Huffman lokale buffer verhoogd tot 256 bytes, waarop een dergelijke kwestie moet voorkomen dat opnieuw te voorkomen in de toekomst.
  • De nieuwe tjPlaneSizeYUV (), tjPlaneWidth (), en functies tjPlaneHeight () waren niet echt bruikbaar is op elk platform, behalve OS X en Windows, omdat die functies werden niet opgenomen in de libturbojpeg Mapfile. Dit is opgelost.
  • Hersteld de JPP (), JMETHOD () en FAR macro's in de libjpeg-turbo header-bestanden. De JPP () en JMETHOD () macro werd ingevoerd in libjpeg als een manier ondersteunen van niet-ANSI compilers die steun prototype parameters ontbrak. libjpeg-turbo heeft nog nooit zo'n compilers ondersteund, maar sommige softwarepakketten gebruiken nog steeds de macro's om hun eigen prototypes definiëren. Evenzo is libjpeg-turbo nooit ondersteund MS-DOS en andere platforms die veel symbolen, maar sommige softwarepakketten nog steeds gebruik maken van de FAR macro. Een vrij goed argument kan worden gemaakt dat dit een slechte praktijken van de kant van de software in kwestie, maar aangezien dit meer dan een pakket van invloed, het is gewoon gemakkelijker om het hier op te lossen.
  • Opgeloste problemen dat de ARM 64-bit SIMD code werden verhinderd compileren voor iOS, en omvatte een ARMv8 architectuur in alle van de binaire bestanden van de installatie van de & quot; officiële & quot; libjpeg-turbo SDK voor OS X.

Wat is nieuw in versie 1.3.0:

  • [1] 'make test' werkt nu op de juiste op FreeBSD, en het niet langer vereist dat de md5sum executable aanwezig zijn op andere Un * x platforms te zijn.
  • [2] opnieuw gekeken naar de verpakking systeem: - Het conflict met leverancier geleverde libjpeg-turbo-pakketten te voorkomen, hebben de officiële RPM en DEB voor libjpeg-turbo is hernoemd naar & quot; libjpeg-turbo-officiële & quot ;. - De TurboJPEG bibliotheken worden nu gevestigd onder / opt / libjpeg-turbo in de officiële Linux en Mac pakketten, om conflicten met de leverancier geleverde pakketten te voorkomen en ook om het verpakkingssysteem te stroomlijnen. - Laat pakketten worden nu gemaakt met de directory structuur worden bepaald door het configure variabelen & quot; prefix & quot ;, & quot; bindir & quot ;, & quot; libdir & quot ;, etc. (Un * x), of door de CMAKE_INSTALL_PREFIX variabele (Windows). De uitzondering is dat de documenten altijd bevinden zich onder het systeem standaard documentatie directory op Un * x en Mac-systemen, en op Windows, wordt de TurboJPEG DLL altijd gelegen in het Windows-systeem directory. - Om verwarring, officiële libjpeg-turbo pakketten op Linux / Unix-platforms (behalve voor Mac) te voorkomen zal altijd de 32-bits bibliotheken in / opt / libjpeg-turbo / lib32 en de 64-bits bibliotheken in / opt / libjpeg- installeren turbo / lib64. - Probleem opgelost waarbij in sommige gevallen de libjpeg-turbo executables op Un * x systemen niet adequaat koppeling met de gedeelde bibliotheken van hetzelfde pakket geïnstalleerd. - Probleem opgelost waarbij de bouw van de & quot; installer & quot; richten op Windows als WITH_JAVA = 1 zou mislukken als de TurboJPEG JAR had niet eerder gebouwd. - Het bouwen van de & quot; installeren & quot; doel op Windows installeert nu bestanden in dezelfde plaatsen dat de installateur doet.
  • [3] Fixed a bug die Huffman encoder I / O ophanging verhinderd goed werkt.

Wat is nieuw in versie 1.2.0:

  • Een build probleem ondervonden bij het gebruik van yasm op Unix-systemen werd vastgesteld.
  • Een out-of-bounds lezen in de SSE2 SIMD code werd vastgesteld.
  • Nieuwe kleurruimte extensie constanten waarmee applicaties aan te geven dat de ongebruikte byte in een 4-byte RGB buffer moet worden behandeld als een alpha-kanaal wanneer de decompressie werden toegevoegd.
  • Een regressie probleem ondervonden bij het bouwen van de duivel met libjpeg-turbo werd vastgesteld.
  • iOS steun werd aan de libjpeg-turbo SDK voor Mac toegevoegd.

Wat is nieuw in versie 1.1 Beta 1:

  • libjpeg-turbo kan worden gebouwd om de libjpeg emuleren v7 of v8b API / ABI.
  • De Windows-build-systeem maakt nu gebruik van CMake.
  • TurboJPEG / OSS kan nu comprimeren van / decomprimeren in grijswaarden bitmaps en omzetten RGB of JPEG-beelden naar YUV vlakke uitgang.
  • jpgtest kan worden gebruikt om decompressie prestaties met bestaande JPEG-afbeeldingen te testen.
  • Optioneel rekenkundige ondersteuning coderen en decoderen werd toegevoegd.
  • Meer bescherming werden toegevoegd tegen ongeldige Huffman codes.

Wat is nieuw in versie 1.0.0:.

  • verder opbouwen van verbeteringen op FreeBSD
  • Unix / Linux-pakketten nu ook libjpeg run-time programma's (cjpeg, etc.) en de man-pagina's.
  • Er is een 32-bit aanvullend pakket voor amd64 Debian-systemen.
  • Cygwin support.
  • Volledige ondersteuning voor het bouwen / testen op niet-x86 architecturen.
  • 64-bit OS X binaries zijn nu compatibel met OS X 10.4.
  • Er zijn verschillende Linux verpakking tweaks.

Wat is nieuw in versie 0.0.91:

  • Toegevoegd documentatie pakketten .deb
  • Vaste data corruptie problemen bij de decompressie grote JPEG beelden en / of het gebruik van gebufferde I / O met de libjpeg-turbo decompressor

Andere software van ontwikkelaar D. R. Commander

TurboVNC
TurboVNC

3 Jun 15

VirtualGL
VirtualGL

7 Mar 16

Reacties op libjpeg-turbo

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!