libjpeg-turbo is 'n oop bron, kruis-platform en heeltemal gratis sagteware ontwerp om 'n hoë spoed weergawe van die oorspronklike libjpeg biblioteek sagteware, spesifiek gemaak vir x86 en x86-64 verwerkers, wat SIMD gebruik voorsien ( enkele Onderrig, verskeie data) instruksies, soos SSE2, MMX en NEON, om basislyn JPEG dekompressie en kompressie versnel.
'N uiters vinnige JPEG beeld codec
Die sagteware is 'n uiters vinnige JPEG beeld codec wat is oor die algemeen 2-4x vinniger as die onveranderde weergawe van libjpeg. Die projek is oorspronklik gebaseer op die libjpeg / SIMD projek geskep deur Miyasaka Masaru.
Implemente die tradisionele libjpeg API
Dit turbo weergawe van die libjpeg biblioteek implemente ook die tradisionele libjpeg API, sowel as die eenvoudige TurboJPEG API. Dit beskik oor kleurruimte uitbreidings, wat gebruikers toelaat om te compress uit of decomprimeren om groot endian en 32-bis pixel buffers (XBGR, RGBX, ens), en 'n volledige Java koppelvlak.
Versprei as moedertaal installeerders vir DEB en-RPM gebaseer bedryfstelsels
Vir u gerief, die sagteware versprei as moedertaal installeerders vir DEB en-RPM gebaseer bedryfstelsels, soos Debian, Ubuntu, Linux Mint, Fedora, CentOS, Red Hat Enterprise Linux, SUSE, Mageia, ens, die ondersteuning van beide 64 en 32-bit hardeware platforms.
Aan die begin met libjpeg-turbo
Die libjpeg-turbo-projek kan maklik geïnstalleer word vanaf die hoof sagteware repositories van 'n GNU / Linux verspreiding. Dit sal ook outomaties geïnstalleer word saam met enige sagteware wat dit verg.
Om te installeer dit met die hand met behulp van die bron pakket, in die geval wat jy wil om dit te optimaliseer vir jou hardeware argitektuur / bedryfstelsel, aflaai en stoor die nuutste argief van Softoware, die inhoud daarvan te onttrek met behulp van 'n argief bestuurder nut, 'n terminaal program oopmaak en gaan na die plek van die onttrek argief lêer (bv CD / huis / softoware / libjpeg-turbo).
Toe, loop die waarde vir './ instel && maak & rsquo; opdrag om op te stel en op te stel die program, gevolg deur die waarde vir 'sudo maak installeer & rsquo; commad om dit te installeer stelsel wyd en maak dit beskikbaar vir alle aansoeke
Wat is nuut in hierdie release:.
- < li> Vaste 'n bou-uitgawe op OS X PowerPC platforms (md5cmp versuim het om op te bou, want OS X die le32toh () en htole32 () funksies. verskaf nie).
- Die nie-SIMD RGB565 kleur omskakeling kode nie korrek werk op groot endian masjiene. Dit is vasgestel.
- Vaste 'n probleem in tjPlaneSizeYUV () waardeur dit verkeerdelik sou terugkeer 1 in plaas van -1 as componentID was & gt; 0 en subsamp was TJSAMP_GRAY.
- Vaste 'n probleem in tjBufSizeYUV2 () deur wie dit verkeerdelik sou terugkeer 0 plaas van -1 as breedte was & lt; 1.
- Die Huffman kodering gebruik nou clz en BSR instruksies vir bietjie toe op ARM64 platforms.
- Die metode naby () in die TJCompressor en TJDecompressor Java klasse is nou idempotente. Voorheen sou hierdie metode die funksie moedertaal tjDestroy () selfs al is die TurboJPEG byvoorbeeld reeds vernietig bel. Dit het veroorsaak dat 'n uitsondering in die finalisering gegooi word, as die metode naby () is reeds genoem. Die uitsondering is gevang, maar dit was nog steeds 'n duur operasie.
- Die TurboJPEG API voorheen gegenereer 'n fout (& quot; Kon nie bepaal tipe subsampling beeld & quot JPEG vir;) tydens 'n poging om decomprimeren gryskleur JPEG beelde wat saamgeperste met 'n voorbeeld faktor buiten 1 (byvoorbeeld, met 'cjpeg -grayscale - monster 2x2). Subsampling tegnies het geen betekenis met gryskleur JPEG, en dus die horisontale en vertikale monsterneming faktore vir sulke beelde word geïgnoreer deur die decompressie. Maar die TurboJPEG API is om te styf en verwag die monsterneming faktore gelyk is aan 1 wees voordat dit die beeld word as 'n gryskleur JPEG.
- cjpeg, djpeg, en jpegtran aanvaar nou 'n argument van -version, wat die biblioteek weergawe en uitgang sal druk.
- Met verwysing na 1.4 beta1 [15], 'n ander uiters skaars omstandighede ontdek waaronder plaaslike buffer die Huffman kodering kan word oorrompel wanneer 'n gebufferde bestemming bestuurder gebruik word en 'n uiters hoë-frekwensie blok (basies beeld rommel data) is word geïnkripteer. Selfs al is die Huffman plaaslike buffer is verhoog vanaf 128 grepe tot 136 grepe die vorige probleem aan te spreek, die nuwe uitgawe veroorsaak selfs die groter buffer te oorrompel. Verdere ontleding toon dat, in die absolute ergste geval (soos die opstel van afwisselende AC koëffisiënte om 32767 en -32.768 in die JPEG skandering einde), die Huffman kodering kan geïnkripteer blokke wat dubbel die grootte van die kos loze blokke nader te produseer. So, is die Huffman plaaslike buffer toegeneem tot 256 grepe, wat so 'n probleem behoort te verhoed weer wat in die toekoms.
- Die nuwe tjPlaneSizeYUV (), tjPlaneWidth (), en funksies tjPlaneHeight () was nie eintlik bruikbare op enige platform behalwe OS X en Windows, want daardie funksies is nie ingesluit in die libturbojpeg mapfile. Dit is vasgestel.
- Herstelde die JPP (), JMETHOD (), maar ver makros in die libjpeg-turbo kop lêers. Die JPP () en JMETHOD () makros is oorspronklik geïmplementeer in libjpeg as 'n manier van die ondersteuning nie-ANSI opstellers dat ondersteuning vir prototipe parameters het 'n tekort. libjpeg-turbo nog nooit so opstellers ondersteun, maar sommige sagteware pakkette gebruik steeds die makros om hul eie prototipes definieer. Net so, het libjpeg-turbo nooit ondersteun MS-DOS en ander platforms wat ver simbole het, maar sommige sagteware pakkette gebruik steeds die FAR makro. 'N goeie argument kan gemaak word dat dit 'n slegte praktyk aan die kant van die sagteware in vraag, maar aangesien dit meer as een pakket raak, is dit net makliker om dit hier op te los.
- Vaste kwessies wat die ARM 64-bit SIMD-kode is die voorkoming van die opstel vir IOS, en sluit 'n ARMv8 argitektuur in al die binaries deur geïnstalleer die & quot; amptelike & quot; libjpeg-turbo SDK vir OS X.
Wat is nuut in weergawe 1.4.2:
- Vaste 'n bou-uitgawe op OS X PowerPC platforms ( md5cmp versuim het om op te bou, want OS X die le32toh () en htole32 () funksies.) verskaf nie.
- Die nie-SIMD RGB565 kleur omskakeling kode nie korrek werk op groot endian masjiene. Dit is vasgestel.
- Vaste 'n probleem in tjPlaneSizeYUV () waardeur dit verkeerdelik sou terugkeer 1 in plaas van -1 as componentID was & gt; 0 en subsamp was TJSAMP_GRAY.
- Vaste 'n probleem in tjBufSizeYUV2 () deur wie dit verkeerdelik sou terugkeer 0 plaas van -1 as breedte was & lt; 1.
- Die Huffman kodering gebruik nou clz en BSR instruksies vir bietjie toe op ARM64 platforms.
- Die metode naby () in die TJCompressor en TJDecompressor Java klasse is nou idempotente. Voorheen sou hierdie metode die funksie moedertaal tjDestroy () selfs al is die TurboJPEG byvoorbeeld reeds vernietig bel. Dit het veroorsaak dat 'n uitsondering in die finalisering gegooi word, as die metode naby () is reeds genoem. Die uitsondering is gevang, maar dit was nog steeds 'n duur operasie.
- Die TurboJPEG API voorheen gegenereer 'n fout (& quot; Kon nie bepaal tipe subsampling beeld & quot JPEG vir;) tydens 'n poging om decomprimeren gryskleur JPEG beelde wat saamgeperste met 'n voorbeeld faktor buiten 1 (byvoorbeeld, met 'cjpeg -grayscale - monster 2x2). Subsampling tegnies het geen betekenis met gryskleur JPEG, en dus die horisontale en vertikale monsterneming faktore vir sulke beelde word geïgnoreer deur die decompressie. Maar die TurboJPEG API is om te styf en verwag die monsterneming faktore gelyk is aan 1 wees voordat dit die beeld word as 'n gryskleur JPEG.
- cjpeg, djpeg, en jpegtran aanvaar nou 'n argument van -version, wat die biblioteek weergawe en uitgang sal druk.
- Met verwysing na 1.4 beta1 [15], 'n ander uiters skaars omstandighede ontdek waaronder plaaslike buffer die Huffman kodering kan word oorrompel wanneer 'n gebufferde bestemming bestuurder gebruik word en 'n uiters hoë-frekwensie blok (basies beeld rommel data) is word geïnkripteer. Selfs al is die Huffman plaaslike buffer is verhoog vanaf 128 grepe tot 136 grepe die vorige probleem aan te spreek, die nuwe uitgawe veroorsaak selfs die groter buffer te oorrompel. Verdere ontleding toon dat, in die absolute ergste geval (soos die opstel van afwisselende AC koëffisiënte om 32767 en -32.768 in die JPEG skandering einde), die Huffman kodering kan geïnkripteer blokke wat dubbel die grootte van die kos loze blokke nader te produseer. So, is die Huffman plaaslike buffer toegeneem tot 256 grepe, wat so 'n probleem behoort te verhoed weer wat in die toekoms.
- Die nuwe tjPlaneSizeYUV (), tjPlaneWidth (), en funksies tjPlaneHeight () was nie eintlik bruikbare op enige platform behalwe OS X en Windows, want daardie funksies is nie ingesluit in die libturbojpeg mapfile. Dit is vasgestel.
- Herstelde die JPP (), JMETHOD (), maar ver makros in die libjpeg-turbo kop lêers. Die JPP () en JMETHOD () makros is oorspronklik geïmplementeer in libjpeg as 'n manier van die ondersteuning nie-ANSI opstellers dat ondersteuning vir prototipe parameters het 'n tekort. libjpeg-turbo nog nooit so opstellers ondersteun, maar sommige sagteware pakkette gebruik steeds die makros om hul eie prototipes definieer. Net so, het libjpeg-turbo nooit ondersteun MS-DOS en ander platforms wat ver simbole het, maar sommige sagteware pakkette gebruik steeds die FAR makro. 'N goeie argument kan gemaak word dat dit 'n slegte praktyk aan die kant van die sagteware in vraag, maar aangesien dit meer as een pakket raak, is dit net makliker om dit hier op te los.
- Vaste kwessies wat die ARM 64-bit SIMD-kode is die voorkoming van die opstel vir IOS, en sluit 'n ARMv8 argitektuur in al die binaries deur geïnstalleer die & quot; amptelike & quot; libjpeg-turbo SDK vir OS X.
Wat is nuut in weergawe 1.4.0:
- Vaste 'n bou-uitgawe op OS X PowerPC platforms ( md5cmp versuim het om op te bou, want OS X die le32toh () en htole32 () funksies.) verskaf nie.
- Die nie-SIMD RGB565 kleur omskakeling kode nie korrek werk op groot endian masjiene. Dit is vasgestel.
- Vaste 'n probleem in tjPlaneSizeYUV () waardeur dit verkeerdelik sou terugkeer 1 in plaas van -1 as componentID was & gt; 0 en subsamp was TJSAMP_GRAY.
- Vaste 'n probleem in tjBufSizeYUV2 () deur wie dit verkeerdelik sou terugkeer 0 plaas van -1 as breedte was & lt; 1.
- Die Huffman kodering gebruik nou clz en BSR instruksies vir bietjie toe op ARM64 platforms.
- Die metode naby () in die TJCompressor en TJDecompressor Java klasse is nou idempotente. Voorheen sou hierdie metode die funksie moedertaal tjDestroy () selfs al is die TurboJPEG byvoorbeeld reeds vernietig bel. Dit het veroorsaak dat 'n uitsondering in die finalisering gegooi word, as die metode naby () is reeds genoem. Die uitsondering is gevang, maar dit was nog steeds 'n duur operasie.
- Die TurboJPEG API voorheen gegenereer 'n fout (& quot; Kon nie bepaal tipe subsampling beeld & quot JPEG vir;) tydens 'n poging om decomprimeren gryskleur JPEG beelde wat saamgeperste met 'n voorbeeld faktor buiten 1 (byvoorbeeld, met 'cjpeg -grayscale - monster 2x2). Subsampling tegnies het geen betekenis met gryskleur JPEG, en dus die horisontale en vertikale monsterneming faktore vir sulke beelde word geïgnoreer deur die decompressie. Maar die TurboJPEG API is om te styf en verwag die monsterneming faktore gelyk is aan 1 wees voordat dit die beeld word as 'n gryskleur JPEG.
- cjpeg, djpeg, en jpegtran aanvaar nou 'n argument van -version, wat die biblioteek weergawe en uitgang sal druk.
- Met verwysing na 1.4 beta1 [15], 'n ander uiters skaars omstandighede ontdek waaronder plaaslike buffer die Huffman kodering kan word oorrompel wanneer 'n gebufferde bestemming bestuurder gebruik word en 'n uiters hoë-frekwensie blok (basies beeld rommel data) is word geïnkripteer. Selfs al is die Huffman plaaslike buffer is verhoog vanaf 128 grepe tot 136 grepe die vorige probleem aan te spreek, die nuwe uitgawe veroorsaak selfs die groter buffer te oorrompel. Verdere ontleding toon dat, in die absolute ergste geval (soos die opstel van afwisselende AC koëffisiënte om 32767 en -32.768 in die JPEG skandering einde), die Huffman kodering kan geïnkripteer blokke wat dubbel die grootte van die kos loze blokke nader te produseer. So, is die Huffman plaaslike buffer toegeneem tot 256 grepe, wat so 'n probleem behoort te verhoed weer wat in die toekoms.
- Die nuwe tjPlaneSizeYUV (), tjPlaneWidth (), en funksies tjPlaneHeight () was nie eintlik bruikbare op enige platform behalwe OS X en Windows, want daardie funksies is nie ingesluit in die libturbojpeg mapfile. Dit is vasgestel.
- Herstelde die JPP (), JMETHOD (), maar ver makros in die libjpeg-turbo kop lêers. Die JPP () en JMETHOD () makros is oorspronklik geïmplementeer in libjpeg as 'n manier van die ondersteuning nie-ANSI opstellers dat ondersteuning vir prototipe parameters het 'n tekort. libjpeg-turbo nog nooit so opstellers ondersteun, maar sommige sagteware pakkette gebruik steeds die makros om hul eie prototipes definieer. Net so, het libjpeg-turbo nooit ondersteun MS-DOS en ander platforms wat ver simbole het, maar sommige sagteware pakkette gebruik steeds die FAR makro. 'N goeie argument kan gemaak word dat dit 'n slegte praktyk aan die kant van die sagteware in vraag, maar aangesien dit meer as een pakket raak, is dit net makliker om dit hier op te los.
- Vaste kwessies wat die ARM 64-bit SIMD-kode is die voorkoming van die opstel vir IOS, en sluit 'n ARMv8 argitektuur in al die binaries deur geïnstalleer die & quot; amptelike & quot; libjpeg-turbo SDK vir OS X.
Wat is nuut in weergawe 1.3.0:
- [1] 'maak toets "werk nou behoorlik op FreeBSD, en dit nie meer vereis dat die md5sum uitvoerbare teenwoordig op ander Un * x platforms te wees.
- [2] Opgeknap die verpakking stelsel: - Om konflik met verkoper verskaf libjpeg-turbo-pakkette te vermy, het die amptelike RPMs en Debs vir libjpeg-turbo is herdoop tot & quot; libjpeg-turbo-amptelike & quot ;. - Die TurboJPEG biblioteke is nou geleë onder / opt / libjpeg-turbo in die amptelike Linux en Mac pakkette, om konflik met die verkoper verskaf pakkette te vermy en ook om die verpakking stelsel meer vaartbelyn te maak. - Release pakkette is nou geskep met die directory struktuur gedefinieer deur die instel veranderlikes & quot; voorvoegsel & quot ;, & quot; bindir & quot ;, & quot; libdir & quot ;, ens (Un * x) of deur die CMAKE_INSTALL_PREFIX veranderlike (Windows.) Die uitsondering is dat die dokumente is altyd geleë onder die stelsel verstek dokumentasie gids op Un * x en Mac-stelsels, en op Windows, is die TurboJPEG DLL altyd geleë in die Windows-stelsel gids. - Om verwarring, amptelike libjpeg-turbo-pakkette op Linux / Unix-platforms (behalwe vir Mac) te vermy sal altyd die 32-bit biblioteke in / opt / libjpeg-turbo / lib32 en die 64-bit biblioteke in / opt / libjpeg- installeer turbo / lib64. - Vaste 'n probleem waar, in sommige gevalle, die libjpeg-turbo executables op Un * x stelsels is nie behoorlik met 'n skakel met die gedeelde biblioteke deur dieselfde pakket geïnstalleer. - Vaste 'n probleem waar die bou van die & quot; installeerder & quot; teiken op Windows wanneer WITH_JAVA = 1 sal misluk as die TurboJPEG JAR het nie voorheen gebou. - Die bou van die & quot; te installeer & quot; teiken op Windows installeer nou lêers in dieselfde plekke wat die installeerder doen.
- [3] Vaste 'n Huffman kodering fout wat ek / O skorsing verhinder behoorlik werk.
Wat is nuut in weergawe 1.2.0:
- 'n opbou kwessie wat ondervind word wanneer die gebruik van YASM op Unix sisteme is vasgestel.
- 'n out-of-grense te lees in die SSE2 SIMD-kode is vasgestel.
- New kleurruimte uitbreiding konstantes wat toelaat dat programme om te spesifiseer dat die ongebruikte byte in 'n 4-byte RGB buffer moet behandel word as 'n alfa-kanaal toe decompressie bygevoeg.
- 'n regressie kwessie wat ondervind word wanneer die bou van duiwel met libjpeg-turbo is vasgestel.
- IOS ondersteuning is om die libjpeg-turbo SDK vir Mac bygevoeg.
Wat is nuut in weergawe 1.1 Beta 1:
- libjpeg-turbo gebou kan word om die libjpeg navolg V7 of v8b API / ABI.
- Die Windows bou stelsel gebruik nou CMake.
- TurboJPEG / OSS kan nou compress uit / decomprimeren te gryskleur bitmaps en omskep RGB of JPEG beelde om YUV planêre uitset.
- jpgtest kan gebruik word om dekompressie prestasie met bestaande JPEG beelde te toets.
- Opsionele rekenkundige ondersteuning enkodering en dekodering is bygevoeg.
- Verdere beskerming bygevoeg teen ongeldig Huffman kodes.
Wat is nuut in weergawe 1.0.0:.
- Verdere bou verbeteringe op FreeBSD
- Unix / Linux pakkette sluit nou libjpeg hardloop-time programme (cjpeg, ens) en die mens bladsye.
- Daar is 'n 32-bit aanvullende pakket vir amd64 Debian stelsels.
- Cygwin ondersteuning.
- Volledige ondersteuning vir die bou / toets op nie-x86 argitektuur.
- 64-bit OS X binaries is nou backwards compatible met OS X 10.4.
- Daar is verskeie Linux verpakking tweaked.
Wat is nuut in weergawe 0.0.91:
- Bygevoeg dokumentasie om pakkette Deb
- Vaste data korrupsie kwessies wanneer decompressie groot JPEG beelde en / of die gebruik van gebuffer I / O met die libjpeg-turbo decompressor
Kommentaar nie gevind